正確來說,ZK-1309 應該稱之為 onFloatUp 的故事...... [淚目]
故事發生在 modal window 當中如果用了 Clients.showNotification(),
要再對 modal window 作 drag 的時候,覆蓋畫面的 mask 就會消失,
在 drop 的時候才又出現;令人傻眼的是,如果繼續 DnD,就又恢復正常行為。
正確來說,ZK-1309 應該稱之為 onFloatUp 的故事...... [淚目]
故事發生在 modal window 當中如果用了 Clients.showNotification(),
要再對 modal window 作 drag 的時候,覆蓋畫面的 mask 就會消失,
在 drop 的時候才又出現;令人傻眼的是,如果繼續 DnD,就又恢復正常行為。
HTML5 的規格中引入了新的 History API:
history 可以呼叫 pushState() 把一些資料(稱為 state)設定進目前的 session(單純的名詞,不是 HTTP 的那個 session),
並且可以更改目前的 URL(如果有給值的話)history 有變動,browser 會發出一個 onpopstate event,在 window.onpopstate 可以接收到。ZK-1220 (又)是一個抓蟲三刻鐘,除蟲三秒鐘的 issue。
故事是這樣的,在 ZK 6.0 之後 InputElement/InputWidget(Java/JS)增加了 instant 這個 attribute。
當 instant="true" 的時候,所有的改變會馬上送到 server 端。
如果 end-user 在有設定 instant 的 Textbox 輸入之後馬上(更精準地說是 350ms 內)改變游標位置,
則游標還是會回到最尾端。
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。
ZK-1430 真是一個曲折離奇的故事,分上下兩集來講好了 XD
起手布局是一個 bandbox,然後 bandpopup 當中塞了一個 listbox。
希望這個 listbox 只顯示 5 個 row 的大小,所以設了 rows="5",
但是 bandpopup 不會跟 listbox 一樣大,自己長自己的大小。
算 bug 嗎?