iTop 3.0 版本变化

iTop 3.0 beta 已于 2021 年 4 月发布[1]https://www.itophub.io/wiki/page?id=3_0_0%3Arelease%3A3_0_whats_new,最大的变化是重写了界面,更加现代化。另外还包含很多用户操作体验上的新功能或者优化。在插件开发方面,目前看变化不大,如果老插件有自定义的界面,可能会和新界面不太协调。正式版本预计夏季发布,应该很快了。新实施的应该尽量选择 3.0 版本,2.x 也应该考虑尽可能升级到新版。

主页

一些功能的位置做了调整,新版全局搜索在左上角,登录/注销、用户首选项的位置挪到了左下角。

iTop 3.0 主页

用户首选项

用户界面

新增了几个参数来定制对象的显示方式。

iTop 3.0 新增用户首选项设置

标签页布局

标签页布局(Tabs Layout),表示对象标签页的布局方式,可以像 2.x 那样水平(Horizontal)显示,或者用新增的 垂直(Vertical) 显示,即显示在对象的左侧。

iTop 3.0 新增标签页垂直布局

标签页导航

标签页导航(Tabs Navigation),定义对象标签页的切换形式。可选 经典(Classic)和 滚动(Scrollable),经典模式和 2.x 保持一致,一次只显示一个标签页;滚动模式下所有标签都显示在同一页,通过鼠标滚动来展示标签页。滚动模式不显示耗时的标签页,需要点击一个图片来加载耗时的标签页。这些模式适用于iTop的所有对象,以及编辑模式。

iTop 3.0 新增标签页滚动展示

富文本编辑器

Toolbar default state 选项允许您在每次编辑HTML字段时是否默认打开工具栏。

活动面板

选项 Entry form opened by default 用来定义当进入一个有 caselog 字段的对象详情页(通常是 Ticket)时,是否默认展示活动面板。如果不默认展示,需要点击右侧的图标来展示。

iTop 3.0 活动面板

快捷键

如果你喜欢用键盘快速导航,iTop 3.0 为频繁的操作添加了快捷方式。由于这些默认快捷方式可能与您的浏览器或操作系统的快捷方式冲突,您可以更改它们。

iTop 3.0 新增支持快捷键

快速搜索

快速搜索(全局搜索)从之前的右侧移动到了左侧:

  • 主要的新特性是它能记住你过去的搜索字符串
  • 与以前一样,当您重新打开快速搜索时,最后一次搜索仍然在那里,因此如果您输入了错误,您可以修复它,而无需重新输入整个字符串
iTop 3.0 全局搜索

另外这些特性是可配置的,在配置文件中通过 global_search.xxx[2]https://www.itophub.io/wiki/page?id=3_0_0%3Aadmin%3Aitop_configuration_file#f-l 相关参数来改变全局搜索的行为:

  • 可以完全禁用此特性
  • 移除对过去搜索的跟踪和显示
  • 调整过去搜索的保存数量(默认10)

快速创建

这是一个新功能,允许用户快速创建对象,不需要向 2.x 那样先找到菜单或者图标才能创建。只要键入您想要的类的开头,就会显示匹配的类。

  • 如果只有一个匹配的类,只需按回车,就会显示这个类的创建表单
  • 可以使用键盘上的方向键在建议的列表中导航
iTop 3.0 支持快速创建对象功能

此功能同样可以通过配置文件里 quick_create.xxx[3]https://www.itophub.io/wiki/page?id=latest%3Aadmin%3Aitop_configuration_file#o-r 相关参数来调整:

  • 完全关闭
  • 不显示历史记录
  • 调整历史记录数量(默认10)
  • 调整 自动完成建议结果 的显示数量(默认10)

菜单

欢迎

左上角的图标现在可以导航到 iTop 主页了(默认主页是欢迎页),2.x 版本下,Logo 默认导航到 Combodo(但是可以通过配置文件修改)。另外图标也支持自定义,事实上,所有的菜单图标都可以自定义[4]https://www.itophub.io/wiki/page?id=3_0_0%3Acustomization%3Amenu-icon

菜单的展开/折叠

  • 使用汉堡包图标来展开和折叠第一级菜单。
  • 当展开菜单栏时,它将显示文本和组图标。
  • 当菜单栏被折叠时,如果您过滤了特定的组织,您将看到一个带有红色圆圈的视觉反馈。
iTop 3.0 菜单展开/折叠功能

对象计数

预定义查询菜单(指OQLMenuNode类型的菜单)中对象的确切数量将显示在菜单本身中,除非它高于 99,在这种情况下,99+只是表示它们大于99

菜单搜索

  • 只要输入一些字符,它就会显示包含输入字符串的菜单
  • 可以使用快捷键 Alt+M Chrome浏览器搜索菜单
  • 注意,搜索空白字符,将显示所有菜单
iTop 3.0 对象计数
iTop 3.0 菜单搜索

Caselogs群聊方式展示

门户(Portal)里 caselogs 以流行的IM软件群聊方式展示。

iTop 3.0 caselog

活动面板

独立的 caselog 编辑

支持在对象查看状态编辑 caselog(通常是工单的caselog)。当用户只需要新增一个工单的caselog条目(可能还会更改工单状态)时,此操作会更加高效。

iTop 3.0 Caselog 编辑器

如果您编辑了多个案例日志,就会显示一个警告,提醒您将同时保存多个条目。

过滤操作历史

活动面板下的活动(Activity)选项卡,支持检索日志和历史,并且将 caselog 及 操作历史合并在一个时间轴,使用户能更加有效地理解对象的完整历史。

  • 您可以过滤此面板,以查看以下类型的任何条目
    • 查看 caselog 条目,可以筛选 Public 或者 Private Log
    • 仅查看状态变化记录
    • 查看对象编辑记录
  • 在条目旁边,显示用户图片(如果有的话),否则显示其首字母
iTop 3.0 过滤操作历史

历史记录的时间默认显示为 相对时间,当距离当前时间超过指定的时间后显示为绝对时间。可以通过activity_panel.datetimes_reformat_limit 选项来配置,当设置为 0 时,所有条目显示绝对时间。

另外可以通过 activity_panel.show_author_name_below_entries 选项来指定是否在时间下面显示用户名,如果不显示,当鼠标停留在用户头像上时才会显示用户名。

@某人

支持在 caselog 里提到别人。您可能希望在 caselog 中快速通知某人以引起他们的注意。这个人可能与工单并没有关联,但我们仍然想通知他们。只需键入@ 和人名的开头,将提示您可用的人员。

触发器和通知(Notification action)允许指定电子邮件正文和消息。在提交包含提及的案例日志条目时,该触发器只会发生一次。可以在同一案件中提到多个人。

iTop 3.0 支持@某人

展开和折叠

活动面板可以通过右侧的工具来展开或者折叠。

并发写

当启用了并发写限制[5]https://www.itophub.io/wiki/page?id=3_0_0%3Aadmin%3Aitop_configuration_file#c之后,活动面板里编辑和编辑普通对象是一样的,并发写时会显示提示,并禁用提交按钮。

iTop 3.0 caselog 并发写

关联关系

N:N 关系现在支持就地修改,即编辑时就像一个 外建 属性那样,允许把一个对象直接改为另一个对象,不用像 2.x 那样先移除一个对象,在新增一个对象。提高了编辑效率。比如,团队成员减少一人增加一人时,直接将减少的人员替换为新增的人员,如图所示:

iTop 3.0 N:N 关系支持快速修改

预定义的OQL查询

本节需要更新,目前不太明白此功能的用途。

安装时

  • 在安装(新安装或版本升级)时,一组可用的OQL查询将自动加载到通知中。
  • 当翻译存在时,查询标签和描述是 iTop 默认语言(目前是 EN US和FR FR)
  • 对于要加载的每个查询,iTop搜索标记为Template for OQL fields并具有完全相同的表达式(OQL)的OQLQuery
    • 如果没有找到,则创建一个新的 OQLQuery
    • 如果已经存在且只存在一个查询,则不会加载任何新查询,也不会更新现有查询。
    • 如果找到多个,则创建一个新的(已知的iTop限制)

在通知中的用法

  • OQL Queries flagged as Template for OQL fields, are proposed when editing any iTop field of type OQL, as a new action to retrieve existing queries and easily copy the OQL from the selected OQL Query.
  • You can create your own template queries
  • You can modify the label and description of the template OQL queries automatically loaded.
  • A modification of the OQL in a template OQL Query has no effect on Notifications which in the past, have used that OQL Query as source. Those notifications keep the old version of the query.

定制开发

移除枚举允许的值

现在可以在数据模型中删除 Enum 属性的现有值(通过插件或在ITSM设计器中),在安装或者使用 Toolkit 更新时或者邮件动作中不会报错,即使一些记录仍然使用那些需要删除的值。2.x 时代,需要特别注意 Enum 定义的改动,如果数据已经包含某个将要被删除的枚举值,需要先手动去数据库将其修改为一个合法的 Enum 值,然后才能正常执行 Setup。稍不注意可能就会把线上 iTop 搞挂掉。因此 此更新 算是一个好消息。

  • 如果对象用了已经被删除的枚举值,读取模式下仍然可以看到该值
  • 但在修改中,由于它不是一个允许的值,编辑对象的用户将被迫更改它(假设字段对他来说是可编辑的,否则将保留旧的值)
  • 如果通过 CSV 导入更新使用了过时枚举值的对象的其他属性,过时的枚举值保持不变[6]May Need Fix Me
  • 无法通过对象列表页的标准搜索来获取使用过时枚举值的对象,但是可以通过 OQL 查询
  • 这种新机制的优点是可以在单个Setup/MTP 中更改 Enum 的值
  • 将数据迁移到新值之后,下一个设置将更改该字段上的数据库模式,将其限制为数据模型所需要的内容,但在此之前,它将使用数据模型需求与所使用的值相结合[7]需要看一下实现方式
  • 限制:如果你有一个同步任务使用旧值的枚举,那么它不会工作!

记录对过时文件和PHP函数的调用

3.0.0 中添加了一个新的日志文件: log/deprecated-calls.log

This will contains logs of calls to deprecated files or PHP methods, and will help developers to migrate their code. Actually parts of the iTop API marked with @deprecated[8]https://docs.phpdoc.org/3.0/guide/references/phpdoc/tags/deprecated.html#deprecated are usually removed in the next iTop major version : ie a method marked as @deprecated in iTop 3.0.0 will certainly be removed in iTop 3.1.0.

By default those logs are disabled, but you can enabled them using the log_level_min config parameter for the appropriate log channels. Also, the logger will have a different behavior if used on a GitHub clone.

See the corresponding documentation[9]https://www.itophub.io/wiki/page?id=3_0_0%3Aadmin%3Alog%3Achannels#deprecated_calls for reference.

DBObject新方法

We have added 2 new methods on DBObjects, available on all classes (mainly useful for XML developers and ITSM Designer users to modify attributes on transitions without coding): SetCurrentDateIfNull and AddValue

Check that new page for details on methods available[10]https://www.itophub.io/wiki/page?id=3_0_0%3Acustomization%3Aactions-on-transitions, usable as action on transitions.

编译变化之预编译主题

This feature is an optimization of the setup to spare significant time with themes (about 30 seconds per theme).

for more details see theme precompilation[11]https://www.itophub.io/wiki/page?id=3_0_0%3Aadvancedtopics%3Asetup_theme_precompilation.

编译变化之生成符号链接

This option is available only if both following conditions are met :

  • we are running on a dev environment (\utils::IsDevelopmentEnvironment)
  • the symmlink PHP function is available

If the compiler is launched with a generate symlinks options checked, it will add a flag to remember this choice : data/.compilation-symlinks file.

If the flag is present, a new option is added in the setup, in the “Miscellaneous Parameters” wizard step.

This flag will be used whenever a client (ITSM Designer connector, Hub connector, custom script calling RuntimeEnvironment, …) doesn't set a true or false value for the useSymLinks parameter : if the file is present then compilation will generate symlinks.

This is a gain for extension developers : if you are developping using the toolkit with the symlinks option, and if you need to launch the setup, you will get directly symlinks. Before it was mandatory to compile again using the toolkit to get the symlinks back.

监控

健康检查状态页

提供了一个健康检查监控页面[12]https://www.itophub.io/wiki/page?id=3_0_0%3Aadmin%3Amonitoring%3Ahealthcheck,允许在未登录的情况下查看 iTop 状态,目前状态信息还比较简单,只能显示 iTop 是否在运行。

REST/JSON

In CLI mode the JSON data structure can now be put in a separate file and in the command line, you just provide the path of the file, like this json-data@<path>.

参考资料

参考资料
1 https://www.itophub.io/wiki/page?id=3_0_0%3Arelease%3A3_0_whats_new
2 https://www.itophub.io/wiki/page?id=3_0_0%3Aadmin%3Aitop_configuration_file#f-l
3 https://www.itophub.io/wiki/page?id=latest%3Aadmin%3Aitop_configuration_file#o-r
4 https://www.itophub.io/wiki/page?id=3_0_0%3Acustomization%3Amenu-icon
5 https://www.itophub.io/wiki/page?id=3_0_0%3Aadmin%3Aitop_configuration_file#c
6 May Need Fix Me
7 需要看一下实现方式
8 https://docs.phpdoc.org/3.0/guide/references/phpdoc/tags/deprecated.html#deprecated
9 https://www.itophub.io/wiki/page?id=3_0_0%3Aadmin%3Alog%3Achannels#deprecated_calls
10 https://www.itophub.io/wiki/page?id=3_0_0%3Acustomization%3Aactions-on-transitions
11 https://www.itophub.io/wiki/page?id=3_0_0%3Aadvancedtopics%3Asetup_theme_precompilation
12 https://www.itophub.io/wiki/page?id=3_0_0%3Aadmin%3Amonitoring%3Ahealthcheck

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注