2013-01-06

ZK-1309 的故事

正確來說,ZK-1309 應該稱之為 onFloatUp 的故事...... [淚目]

故事發生在 modal window 當中如果用了 Clients.showNotification(), 要再對 modal window 作 drag 的時候,覆蓋畫面的 mask 就會消失, 在 drop 的時候才又出現;令人傻眼的是,如果繼續 DnD,就又恢復正常行為。

2012-12-30

ZKPushState:用純 Java 處理 History API 的 ZK addon

簡介

HTML5 的規格中引入了新的 History API:

  • history 可以呼叫 pushState() 把一些資料(稱為 state)設定進目前的 session(單純的名詞,不是 HTTP 的那個 session), 並且可以更改目前的 URL(如果有給值的話)
  • history 有變動,browser 會發出一個 onpopstate event,在 window.onpopstate 可以接收到。

2012-11-18

ZK-1220 的故事

ZK-1220 (又)是一個抓蟲三刻鐘,除蟲三秒鐘的 issue。

故事是這樣的,在 ZK 6.0 之後 InputElement/InputWidget(Java/JS)增加了 instant 這個 attribute。 當 instant="true" 的時候,所有的改變會馬上送到 server 端。 如果 end-user 在有設定 instantTextbox 輸入之後馬上(更精準地說是 350ms 內)改變游標位置, 則游標還是會回到最尾端。

2012-11-14

ZK-1441 的故事

ZK-1441 的故事有點 critical,基本上他一定要「快速連續切換 tab」才會有效果,正常操作行為很難遇到這個狀況。

WTF......

終究是名副其實可以複製的 bug,也就只能硬著頭皮上。

Tab._sel()
    Tab._setSel()
        Tabpanel._sel()
            jqzk.slideDown(),在這裡 this.dimension() 會取到錯(較小)的值

基本上無力去探究 jqzk.dimension() 為什麼會取到不對的值,畢竟正常情況下運作是正確的。 只能猜測是因為 animation 的原因導致 jquery 錯亂?

中間試過 setTimeout() 來等 animation 完再換下一個 tab 操作,不過失效(細節略 XD)。 後來只能把腦筋動到弄一個 flag: Tabbox._animating,在呼叫 slideDown() 之前設定, 透過 slideDown() 的 callback function 來拿掉,然後進入 Tab._sel() 的時候用這個判斷是否要擋掉不做。

至於為什麼不用 zk.animating(),那是因為只要有其他 animation 在跑(例如檔案上傳的 Progressmeter), 就會判定不過而被卡掉。(反過來說,用 zk.animating() 來作某些事情的都有這個隱憂?)

套句死神裡頭的台詞(其實我沒看過):「其實我不想用這招的」, JS 對 field 作 CRUD 實在太方便了,一點控管辦法也沒有,只好多寫幾行註解結束這個 issue。

2012-10-31

ZK-1430 的故事

ZK-1430 真是一個曲折離奇的故事,分上下兩集來講好了 XD

上集:召喚 v/hflex="min",結束這個 issue

起手布局是一個 bandbox,然後 bandpopup 當中塞了一個 listbox。 希望這個 listbox 只顯示 5 個 row 的大小,所以設了 rows="5", 但是 bandpopup 不會跟 listbox 一樣大,自己長自己的大小。

算 bug 嗎?