Sent: Monday, March 7, 2016 19:28

Figure1: 在Faas 系统里看不到quick create的input field

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

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

我处理的思路是:

  1. 起初我怀疑quick create的field 在html source里根本未生成,但是用Chrome dev tool排除了这个可能性。
  2. 然后怀疑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的高度

输出是计算出来的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。

而在Faas上,两者的差在5px以下,这说明他们的layout互相重叠了,Footer bar遮住了input field,从end user眼中看,就像是input field消失了。
可以通过在Development tool里将footer bar对应的dom 删除的方式来验证。删除footer bar之后,input field立即就显示出来了。

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

这个toolbar是Faas 框架用JS创建的:

印度人的计算逻辑里,没有考虑到这种scenario。当我在debugger里动态修改代码,把Fass toolbar height从计算出的height里扣掉之后,

FaaS上也能够work了。这里的50是一个hard code的值,代表faas footer bar的高度。

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

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

即使是在local tomcat里run,例如我们从task list navigate到task detail,然后再navigate后来,此时我们会发现$(“footer”)返回两个element,一个是当前active的S2 的footer,另一个是task detail的footer element,尽管此时task detail没有在UI上显示出来,但是在Chrome development tool里的Element tab里仍然能够找到这个element。

因此用这种length为2的办法不能作为判断是否是Faas系统的依据。

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

Fiori as a Service - FaaS - Creation of inline task option is not available相关推荐

  1. footer bar in SAP Fiori as a service

    Created by Wang, Jerry, last modified on Mar 07, 2016 要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  2. why I get 415 error for my http post Service request creation in JMeter

    <?xml version="1.0" encoding="utf-8"?> 005056952A631ED0BBECB7CF70D640B9The ...

  3. FaaS如何在云2.0时代发挥优势,又将走向何方?

    摘要: 过去十年,云服务深刻地改变了社会获取和使用计算能力的方式,云服务自身也以极快的速度演进.在基础设施云化之后,容器.Serverless等技术迅猛发展,开始推动业务能力的云化,云计算进入2.0时 ...

  4. service mysql k8s_Kubernetes/K8S基础使用方法总结【五】——Service

    Service有userspace.iptables.ipvs三种工作模式,可在配置文件/etc/sysconfig/kubelet中添加配置参数KUBE_PROXY_MODE=ipvs来改变kube ...

  5. IaaS、PaaS、SaaS、BaaS和FaaS英文全称以及解释说明

    IaaS.PaaS.SaaS.BaaS和FaaS 先说aaS:As-a-Service IaaS:Infrastructure as a Service PaaS:Platform as a Serv ...

  6. .NET Worker Service 作为 Windows 服务运行及优雅退出改进

    上一篇文章我们了解了如何为 Worker Service 添加 Serilog 日志记录,今天我接着介绍一下如何将 Worker Service 作为 Windows 服务运行. 我曾经在前面一篇文章 ...

  7. 每天一个脚本解析day1==》《service xxxxx status》之service脚本解析

    vim    /sbin/service #!/bin/sh . /etc/init.d/functions #读取环境变量. VERSION="$(basename $0) ver. 0. ...

  8. Micro Service Architecture

    原文链接http://yobriefca.se/blog/2013/04/28/micro-service-architecture/ Micro Service Architecture Micro ...

  9. azure第一个月_MLOps:两个Azure管道的故事

    azure第一个月 Luuk van der Velden and Rik Jongerius 卢克·范德·费尔登(Luuk van der Velden)和里克 ·琼格里乌斯( Rik Jonger ...

最新文章

  1. Oracle 高性能SQL引擎剖析----执行计划
  2. NO.104使用禅道创建和评审需求
  3. 面试阿里挂了却拿到网易、点我达offer,一个三年经验Java程序员的面试总结
  4. cdh集群linux命令,CDH集群中,服务器启动spark2-shell命令行注意事项
  5. k-means算法原理及实战
  6. linux下和htm的运行,嵌入式LINUX下CGI与HTML网页之间的通信
  7. python 读取excel表内容:以获取高铁站点经纬度为例子
  8. 老公分不到股份?问题根源是创业者人才观缺失
  9. web渗透测试----10、信息泄露
  10. atto软件测试速度,那种才是正确的,ATTO Disk Benchmark测试结果到底怎么算?
  11. 82、详解一个交换机能带动多少个网络监控摄像头
  12. 本地计算机无法设置共享文件夹,共享服务,详细教您win10共享文件夹无法访问怎么办...
  13. Windows 7自带的显示器校准
  14. 团队建设之做好技术团队管理
  15. 《观察与思考》:相信中国,寻找下一个比尔·盖茨
  16. php中 act什么意思,剑网三act是什么意思?详解丐帮act概念
  17. loopback端口作用
  18. PHP 版 帕斯卡三角形
  19. 安装包UI美化之路-在线安装包
  20. Unity Shader 之 简单实现物体被黑洞吸收吞噬(或者从黑洞中出来)的效果

热门文章

  1. linux网络配置相关命令
  2. 高德地图JavaScript API开发研究
  3. LA 3644 易爆物 并查集
  4. 面试ASP.NET程序员的笔试题和机试题
  5. localhost,127.0.0.1 与 本机IP的区别
  6. eclipse export jar file 和 runnable jar file 的区别
  7. 优化技巧与理论(part1)
  8. 文献学习(part78-A)--A Survey of Clustering Algorithms for Big Data: T axonomy Empirical Analysis
  9. WebAPI(part3)--事件基础
  10. 初识Mysql(part14)--我需要知道的6个关于创建表的小知识