Fiori as a Service - FaaS - Creation of inline task option is not available
Sent: Monday, March 7, 2016 19:28
Figure1: 在Faas 系統(tǒng)里看不到quick create的input field
在我們on premise系統(tǒng)上無法重現(xiàn)這個(gè)問題。
Figure2: on premise 平臺(tái)上 input field是顯示正常的
我處理的思路是:
既然dom element 存在,高度也是40px, 為什么就是沒顯示出來?
印度人在S2.controller.js里fixDisplayOfDirectInput有一大串眼花繚亂的計(jì)算:
計(jì)算的輸入是: (如下圖所示)
n ScrollContainer的相對(duì)Y坐標(biāo)
n Quick create input的高度
n Footer bar的高度
n 整個(gè)window的高度
輸出是計(jì)算出來的ScrollContainer的Height。
我在印度人的計(jì)算邏輯里沒有發(fā)現(xiàn)問題,然后逐一比對(duì)FaaS和GM0上相關(guān)dom的CSS style,沒有任何區(qū)別。
然后我自己加了大量log打印每個(gè)html element的height,FaaS和GM0也沒任何區(qū)別。
當(dāng)打印到每個(gè)element的相對(duì)Y坐標(biāo),就是OffsetTop時(shí),就發(fā)現(xiàn)問題了。
每次我上下拖動(dòng)UI 讓resize handler觸發(fā)時(shí),進(jìn)入fixDisplayOfDirectInput(), 然后我打印footer和input的相對(duì)y坐標(biāo)。
在工作正常的GM0上,兩者的差正好是input field的height。
而在Faas上,兩者的差在5px以下,這說明他們的layout互相重疊了,Footer bar遮住了input field,從end user眼中看,就像是input field消失了。
可以通過在Development tool里將footer bar對(duì)應(yīng)的dom 刪除的方式來驗(yàn)證。刪除footer bar之后,input field立即就顯示出來了。
然后需要找到為什么兩個(gè)element會(huì)重疊的原因。仔細(xì)觀察Faas的UI,發(fā)現(xiàn)和on premise Launchpad不同,在my task application的toolbar下面,還有一個(gè)Faas的toolbar:
這個(gè)toolbar是Faas 框架用JS創(chuàng)建的:
印度人的計(jì)算邏輯里,沒有考慮到這種scenario。當(dāng)我在debugger里動(dòng)態(tài)修改代碼,把Fass toolbar height從計(jì)算出的height里扣掉之后,
FaaS上也能夠work了。這里的50是一個(gè)hard code的值,代表faas footer bar的高度。
這個(gè)solution里如何判斷是否有額外的footer bottom bar成為了關(guān)鍵。考慮到絕大多數(shù)的客戶即使需要擴(kuò)展toolbar,也會(huì)使用我們的extension point declare新的button放進(jìn)existing toolbar里,而不是創(chuàng)建全新的toolbar,因此為了handle Faas這種情況,
我認(rèn)為下面的solution足矣。
因此用這種length為2的辦法不能作為判斷是否是Faas系統(tǒng)的依據(jù)。
要獲取更多Jerry的原創(chuàng)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的Fiori as a Service - FaaS - Creation of inline task option is not available的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iPhone 14遭多位机主集体投诉 原
- 下一篇: 针对SAP OData 模型Addres