天天看点

Fiori as a Service - FaaS - Creation of inline task option is not availableSent: Monday, March 7, 2016 19:28Figure1: 在Faas 系统里看不到quick create的input field

Sent: Monday, March 7, 2016 19:28
Fiori as a Service - FaaS - Creation of inline task option is not availableSent: Monday, March 7, 2016 19:28Figure1: 在Faas 系统里看不到quick create的input field
Figure1: 在Faas 系统里看不到quick create的input field

在我们on premise系统上无法重现这个问题。

Fiori as a Service - FaaS - Creation of inline task option is not availableSent: Monday, March 7, 2016 19:28Figure1: 在Faas 系统里看不到quick create的input field

Figure2: on premise 平台上 input field是显示正常的

我处理的思路是:

起初我怀疑quick create的field 在html source里根本未生成,但是用Chrome dev tool排除了这个可能性。

然后怀疑quick create的dom height render出来为0(之前处理过类似的incident),但是这个可能性也用Chrome dev tool排除了。

既然dom element 存在,高度也是40px, 为什么就是没显示出来?

印度人在S2.controller.js里fixDisplayOfDirectInput有一大串眼花缭乱的计算:

计算的输入是: (如下图所示)

n ScrollContainer的相对Y坐标

n Quick create input的高度

n Footer bar的高度

n 整个window的高度

Fiori as a Service - FaaS - Creation of inline task option is not availableSent: Monday, March 7, 2016 19:28Figure1: 在Faas 系统里看不到quick create的input field

输出是计算出来的ScrollContainer的Height。

我在印度人的计算逻辑里没有发现问题,然后逐一比对FaaS和GM0上相关dom的CSS style,没有任何区别。

然后我自己加了大量log打印每个html element的height,FaaS和GM0也没任何区别。

当打印到每个element的相对Y坐标,就是OffsetTop时,就发现问题了。

每次我上下拖动UI 让resize handler触发时,进入fixDisplayOfDirectInput(), 然后我打印footer和input的相对y坐标。

在工作正常的GM0上,两者的差正好是input field的height。

Fiori as a Service - FaaS - Creation of inline task option is not availableSent: Monday, March 7, 2016 19:28Figure1: 在Faas 系统里看不到quick create的input field

然后需要找到为什么两个element会重叠的原因。仔细观察Faas的UI,发现和on premise Launchpad不同,在my task application的toolbar下面,还有一个Faas的toolbar:

Fiori as a Service - FaaS - Creation of inline task option is not availableSent: Monday, March 7, 2016 19:28Figure1: 在Faas 系统里看不到quick create的input field
Fiori as a Service - FaaS - Creation of inline task option is not availableSent: Monday, March 7, 2016 19:28Figure1: 在Faas 系统里看不到quick create的input field
Fiori as a Service - FaaS - Creation of inline task option is not availableSent: Monday, March 7, 2016 19:28Figure1: 在Faas 系统里看不到quick create的input field

这个solution里如何判断是否有额外的footer bottom bar成为了关键。

考虑到绝大多数的客户即使需要扩展toolbar,也会使用我们的extension point declare新的button放进existing toolbar里,而不是创建全新的toolbar,因此为了handle Faas这种情况,

我认为下面的solution足矣。

Fiori as a Service - FaaS - Creation of inline task option is not availableSent: Monday, March 7, 2016 19:28Figure1: 在Faas 系统里看不到quick create的input field

继续阅读