├── .gitignore
├── README-v1.0.md
├── README-v2.0.md
├── README.md
├── action-shell-exec
├── README.md
├── datamodel.action-shell-exec.xml
├── en.dict.action-shell-exec.php
├── images
│ ├── action-shell-script-1.png
│ ├── action-shell-script-2.png
│ ├── action-shell-script-3.png
│ └── action-shell-script-4.png
├── main.action-shell-exec.php
├── model.action-shell-exec.php
├── module.action-shell-exec.php
└── ru.dict.action-shell-exec.php
├── add-user-action-menu
├── README.md
├── datamodel.add-user-action-menu.xml
├── en.dict.add-user-action-menu.php
├── main.add-user-action-menu.php
├── model.add-user-action-menu.php
├── module.add-user-action-menu.php
└── preview.png
├── api-client
├── datamodel.api-client.xml
├── en.dict.api-client.php
├── main.api-client.php
├── module.api-client.php
└── zh.dict.api-client.php
├── attribute-custom
├── README.md
├── datamodel.attribute-custom.xml
├── main.attribute-custom.php
└── module.attribute-custom.php
├── combodo-autoclose-ticket
├── en.dict.combodo-autoclose-ticket.php
├── fr.dict.combodo-autoclose-ticket.php
├── main.combodo-autoclose-ticket.php
└── module.combodo-autoclose-ticket.php
├── custom-mod
├── README.md
├── datamodel.custom-mod.xml
├── en.dict.custom-mod.php
├── main.custom-mod.php
├── model.custom-mod.php
├── module.custom-mod.php
└── zh.dict.custom-mod.php
├── custom-pages
├── README.md
├── batch_query.php
├── datamodel.custom-pages.xml
├── en.dict.custom-pages.php
├── images
│ ├── error.png
│ ├── lnkusertoserver.png
│ └── right.gif
├── main.custom-pages.php
├── model.custom-pages.php
├── module.custom-pages.php
├── preview
│ ├── account.png
│ └── preview.png
├── resetpwd.php
├── server_accounts.php
├── verify_user.php
└── zh.dict.custom-pages.php
├── email-reply
├── ajax.php
├── data.struct.ta-actions.xml
├── data.struct.ta-links.xml
├── data.struct.ta-triggers.xml
├── de.dict.email-reply.php
├── email-reply.js
├── en.dict.email-reply.php
├── fr.dict.email-reply.php
├── jquery.placeholder.js
├── main.email-reply.php
├── module.email-reply.php
└── paper_clip.png
├── getclass.sh
├── itop-object-copier
├── copy.php
├── en.dict.itop-object-copier.php
├── es_cr.dict.itop-object-copier.php
├── extension.xml
├── fr.dict.itop-object-copier.php
├── main.itop-object-copier.php
├── module.itop-object-copier.php
└── readme.txt
├── itop-request-template-modify
├── README.md
├── datamodel.itop-request-template-modify.xml
├── display_control.js
├── layout.html.twig
├── main.itop-request-template-modify.php
├── model.itop-request-template-modify.php
├── module.itop-request-template-modify.php
├── template_base_3.0.4.patch
└── zh.dict.itop-request-template-modify.php
├── itop-request-template-portal
├── datamodel.itop-request-template-portal.xml
└── module.itop-request-template-portal.php
├── itop-request-template
├── datamodel.itop-request-template.xml
├── en.dict.itop-request-template.php
├── fr.dict.itop-request-template.php
├── main.itop-request-template.php
├── model.itop-request-template.php
└── module.itop-request-template.php
├── itop.dot
├── knowitop-trigger-on-update
├── README.md
├── en.dict.knowitop-trigger-on-update.php
├── main.knowitop-trigger-on-update.php
├── module.knowitop-trigger-on-update.php
└── ru.dict.knowitop-trigger-on-update.php
├── kubernetes
├── README.md
├── composer
│ ├── composer.json
│ ├── composer.lock
│ └── vendor
│ │ ├── autoload.php
│ │ ├── composer
│ │ ├── ClassLoader.php
│ │ ├── LICENSE
│ │ ├── autoload_classmap.php
│ │ ├── autoload_namespaces.php
│ │ ├── autoload_psr4.php
│ │ ├── autoload_real.php
│ │ ├── autoload_static.php
│ │ └── installed.json
│ │ └── sebastian
│ │ └── diff
│ │ ├── .github
│ │ └── stale.yml
│ │ ├── .gitignore
│ │ ├── .php_cs.dist
│ │ ├── .travis.yml
│ │ ├── ChangeLog.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── build.xml
│ │ ├── composer.json
│ │ ├── phpunit.xml
│ │ ├── src
│ │ ├── Chunk.php
│ │ ├── Diff.php
│ │ ├── Differ.php
│ │ ├── Exception
│ │ │ ├── ConfigurationException.php
│ │ │ ├── Exception.php
│ │ │ └── InvalidArgumentException.php
│ │ ├── Line.php
│ │ ├── LongestCommonSubsequenceCalculator.php
│ │ ├── MemoryEfficientLongestCommonSubsequenceCalculator.php
│ │ ├── Output
│ │ │ ├── AbstractChunkOutputBuilder.php
│ │ │ ├── DiffOnlyOutputBuilder.php
│ │ │ ├── DiffOutputBuilderInterface.php
│ │ │ ├── StrictUnifiedDiffOutputBuilder.php
│ │ │ └── UnifiedDiffOutputBuilder.php
│ │ ├── Parser.php
│ │ └── TimeEfficientLongestCommonSubsequenceCalculator.php
│ │ └── tests
│ │ ├── ChunkTest.php
│ │ ├── DiffTest.php
│ │ ├── DifferTest.php
│ │ ├── Exception
│ │ ├── ConfigurationExceptionTest.php
│ │ └── InvalidArgumentExceptionTest.php
│ │ ├── LineTest.php
│ │ ├── LongestCommonSubsequenceTest.php
│ │ ├── MemoryEfficientImplementationTest.php
│ │ ├── Output
│ │ ├── AbstractChunkOutputBuilderTest.php
│ │ ├── DiffOnlyOutputBuilderTest.php
│ │ ├── Integration
│ │ │ ├── StrictUnifiedDiffOutputBuilderIntegrationTest.php
│ │ │ └── UnifiedDiffOutputBuilderIntegrationTest.php
│ │ ├── StrictUnifiedDiffOutputBuilderDataProvider.php
│ │ ├── StrictUnifiedDiffOutputBuilderTest.php
│ │ ├── UnifiedDiffOutputBuilderDataProvider.php
│ │ └── UnifiedDiffOutputBuilderTest.php
│ │ ├── ParserTest.php
│ │ ├── TimeEfficientImplementationTest.php
│ │ ├── Utils
│ │ ├── FileUtils.php
│ │ ├── UnifiedDiffAssertTrait.php
│ │ ├── UnifiedDiffAssertTraitIntegrationTest.php
│ │ └── UnifiedDiffAssertTraitTest.php
│ │ └── fixtures
│ │ ├── .editorconfig
│ │ ├── UnifiedDiffAssertTraitIntegrationTest
│ │ ├── 1_a.txt
│ │ ├── 1_b.txt
│ │ ├── 2_a.txt
│ │ └── 2_b.txt
│ │ ├── out
│ │ ├── .editorconfig
│ │ └── .gitignore
│ │ ├── patch.txt
│ │ ├── patch2.txt
│ │ └── serialized_diff.bin
├── css
│ └── jquery-confirm.min.css
├── datamodel.kubernetes.xml
├── doc
│ └── images
│ │ ├── deployment-debug.png
│ │ ├── deployment-details.png
│ │ ├── deployment-list.png
│ │ ├── ingress-list.png
│ │ └── ingressannotation.png
├── en.dict.kubernetes.php
├── images
│ ├── apptemplate.png
│ ├── configuration.png
│ ├── deployment.png
│ ├── error.png
│ ├── ingress.png
│ ├── k8sappstore.png
│ ├── kubernetes.png
│ ├── new.png
│ ├── secret.png
│ └── sidecar.png
├── js
│ ├── ace
│ │ ├── ace.js
│ │ ├── mode-yaml.js
│ │ ├── theme-terminal.js
│ │ └── theme-xcode.js
│ ├── functions.js
│ ├── highlightjs
│ │ ├── highlight.pack.js
│ │ └── styles
│ │ │ ├── arta.css
│ │ │ ├── atom-one-dark.css
│ │ │ ├── dracula.css
│ │ │ ├── far.css
│ │ │ ├── github.css
│ │ │ ├── monokai.css
│ │ │ ├── vs2015.css
│ │ │ └── xt256.css
│ ├── jquery-confirm.min.js
│ └── jquery.fullscreen-min.js
├── main.kubernetes.php
├── model.kubernetes.php
├── module.kubernetes.php
└── zh.dict.kubernetes.php
├── le-alert-rule
├── README.md
├── datamodel.le-alert-rule.xml
├── en.dict.le-alert-rule.php
├── images
│ └── alertrule.png
├── model.le-alert-rule.php
├── module.le-alert-rule.php
└── zh.dict.le-alert-rule.php
├── le-config-mgmt
├── README.md
├── datamodel.le-config-mgmt.xml
├── en.dict.le-config-mgmt.php
├── images
│ ├── app.png
│ ├── business.png
│ ├── business1.png
│ ├── business2.png
│ ├── cluster.png
│ ├── contact.png
│ ├── database.png
│ ├── domain.png
│ ├── idc.png
│ ├── interface.png
│ ├── link.png
│ ├── logo.png
│ ├── messagequeue.png
│ ├── middleware.png
│ ├── mongodb.png
│ ├── mysql.png
│ ├── rabbitmq.png
│ ├── rack.png
│ ├── rds.png
│ ├── redis.png
│ ├── s3.png
│ ├── swiftmq.png
│ ├── thirdsrv.png
│ ├── url.png
│ └── yunpan.png
├── model.le-config-mgmt.php
├── module.le-config-mgmt.php
├── preview.png
└── zh.dict.le-config-mgmt.php
├── le-itop.png
├── patches
├── README.md
├── css
│ └── jquery-confirm.min.css
├── fix_css.patch
├── fix_expressioncache.patch
├── fix_jquery_i18n.patch
├── fix_restapi_customfields.patch
├── fix_zh_pdf_export.sh
├── improve_alert.patch
├── js
│ ├── jquery-confirm-function.js
│ └── jquery-confirm.min.js
├── lib
│ └── tcpdf
│ │ └── fonts
│ │ ├── droidsansfallback.ctg.z
│ │ ├── droidsansfallback.php
│ │ └── droidsansfallback.z
└── run.sh
├── portal-custom
├── README.txt
├── css
│ ├── bootstrap-theme-darkly.min.css
│ ├── bootstrap-theme-flatly.min.css
│ ├── bootstrap-theme-simplex.min.css
│ ├── bootstrap-theme-slate.min.css
│ ├── bootstrap-theme-superhero.min.css
│ └── bootstrap-theme-united.min.css
├── datamodel.portal-custom.xml
├── fonts
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ ├── glyphicons-halflings-regular.woff
│ └── glyphicons-halflings-regular.woff2
├── module.portal-custom.php
└── zh.dict.portal-custom.php
├── precanned-replies-pro
├── datamodel.precanned-replies-pro.xml
├── de.dict.precanned-replies-pro.php
├── en.dict.precanned-replies-pro.php
├── fr.dict.precanned-replies-pro.php
└── module.precanned-replies-pro.php
├── precanned-replies
├── ajax.php
├── datamodel.precanned-replies.xml
├── de.dict.precanned-replies.php
├── en.dict.precanned-replies.php
├── fr.dict.precanned-replies.php
├── main.precanned-replies.php
├── module.precanned-replies.php
├── precanned-replies.js
└── zh.dict.precanned-replies.php
├── readme.txt
├── relation_of_class.sh
├── rest-ext
├── README.md
├── datamodel.rest-ext.xml
├── en.dict.rest-ext.php
├── main.rest-ext.php
├── model.rest-ext.php
├── module.rest-ext.php
├── preview
│ └── preview.png
└── zh.dict.rest-ext.php
├── templates-base
├── ajax.render.php
├── en.dict.templates-base.php
├── fr.dict.templates-base.php
├── model.templates-base.php
├── module.templates-base.php
└── template_form_handler.js
├── trigger-on-delete
├── README.md
├── en.dict.trigger-on-delete.php
├── main.trigger-on-delete.php
├── module.trigger-on-delete.php
└── zh.dict.trigger-on-delete.php
├── xml2dot.sh
└── zh-language
├── datamodel.zh-language.xml
├── en.dict.zh-language.php
├── include
├── zh.dict.authent-external.php
├── zh.dict.authent-ldap.php
├── zh.dict.authent-local.php
├── zh.dict.itop-attachments.php
├── zh.dict.itop-backup.php
├── zh.dict.itop-change-mgmt-itil.php
├── zh.dict.itop-change-mgmt.php
├── zh.dict.itop-config-mgmt.php
├── zh.dict.itop-config.php
├── zh.dict.itop-incident-mgmt-itil.php
├── zh.dict.itop-knownerror-mgmt.php
├── zh.dict.itop-problem-mgmt.php
├── zh.dict.itop-request-mgmt-itil.php
├── zh.dict.itop-request-mgmt.php
├── zh.dict.itop-service-mgmt-provider.php
├── zh.dict.itop-service-mgmt.php
├── zh.dict.itop-tickets.php
├── zh.dict.itop-welcome-itil.php
├── zh.dict.missing.php
├── zh.dictionary.itop.core.php
└── zh.dictionary.itop.ui.php
├── missing.sh
├── model.zh-language.php
├── module.zh-language.php
├── update.sh
└── zh.dict.zh-language.php
/.gitignore:
--------------------------------------------------------------------------------
1 | *.zip
2 | *.tar.gz
3 | *.gz
4 | *.tar
5 | authent-lesso/
6 |
--------------------------------------------------------------------------------
/README-v2.0.md:
--------------------------------------------------------------------------------
1 | # itop-extensions
2 | iTop扩展
3 |
4 | ## 版本
5 | - v2.0-beta 基于新版portal(2.3.3)
6 | - v1.0 基于legency portal
7 |
8 | ## 扩展列表
9 |
10 | | 名称 | 功能 |备注 |
11 | | ---- | ---- | --- |
12 | |action-shell-exec |支持脚本类型的action |Fork from [action-shell-exec](https://github.com/itop-itsm-ru/action-shell-exec),修改支持自定义变量 |
13 | |add-user-action-menu |右上角新增编辑用户资料按钮 | |
14 | |api-client | iTop Rest/json api的客户端,方便在其他扩展里调用api | |
15 | |attribute-custom |添加AttributeClassCustom类型 | |
16 | |authent-ucenter | 未实现 | |
17 | |combodo-autoclose-ticket | 自动关闭工单 |iTop官方插件 |
18 | |custom-mod |修改工单生命周期(拒绝->关闭, 指派->拒绝) | |
19 | |custom-pages |批量查询页面,服务器账号管理页面 | |
20 | |email-reply | 工单更新邮件通知 |iTop官方插件 |
21 | |itop-object-copier |克隆/复制 对象 |iTop官方插件 |
22 | |itop-request-template |请求模板 |iTop官方插件 |
23 | |templates-base |请求模板-base |iTop官方插件 |
24 | |itop-request-template-portal |请求模板-portal |iTop官方插件 |
25 | |itop-request-template-modify |请求模板-修改,新增自动派单,资源申请自动录入CMDB,唯一性检查等功能 | |
26 | |knowitop-trigger-on-update |触发器(对象更新时) |Fork from: [knowitop-trigger-on-update](https://github.com/vbkunin/knowitop-trigger-on-update) |
27 | |le-alert-rule |定义报警规则 | |
28 | |le-config-mgmt |自定义数据模型 | |
29 | |portal-announcement |在legency portal展示公告信息,修改插件支持富文本 |Fork from: [portal-announcement](https://github.com/itop-itsm-ru/portal-announcement) |
30 | |portal-custom |自定义新版portal样式 | |
31 | |precanned-replies |工单预定义回复 |iTop官方插件 |
32 | |precanned-replies-pro |工单预定义回复 |iTop官方插件 |
33 | |rest-ext |rest/json扩展,新增ext/get_related接口 |
34 | |trigger-on-delete |触发器(对象删除时) | |
35 | |zh-language |中文翻译 | |
36 | |kubernetes |Kubernetes工作流 | |
37 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # itop-extensions
2 | iTop扩展
3 |
4 | ## Features
5 | - 自定义数据模型,唯一性校验
6 | - 修改`request-template`,结合`action-shell-exec`实现工单自动指派,申请资源唯一性检查,资源自动入库
7 | - 独立的中文翻译扩展
8 | - [kubernetes](kubernetes) 工作流支持
9 | - 自定义页面实现批量查询功能
10 | - REST接口新增ext/get_related
11 |
12 | ## 版本
13 | - v3.x 基于2.5.1
14 | - v2.0 基于新版portal(2.3.3)
15 | - v1.0 基于legency portal
16 |
17 | ## 扩展列表
18 |
19 | | 名称 | 功能 |备注 |
20 | | ---- | ---- | --- |
21 | |action-shell-exec |支持脚本类型的action |Fork from [action-shell-exec](https://github.com/itop-itsm-ru/action-shell-exec),修改支持自定义变量 |
22 | |add-user-action-menu |右上角新增编辑用户资料按钮 | |
23 | |api-client | iTop Rest/json api的客户端,方便在其他扩展里调用api | |
24 | |attribute-custom |添加AttributeClassCustom类型 | |
25 | |combodo-autoclose-ticket | 自动关闭工单 |iTop官方插件 |
26 | |custom-mod |修改工单生命周期(拒绝->关闭, 指派->拒绝) | |
27 | |custom-pages |批量查询页面,服务器账号管理页面 | |
28 | |email-reply | 工单更新邮件通知 |iTop官方插件 |
29 | |itop-object-copier |克隆/复制 对象 |iTop官方插件 |
30 | |itop-request-template |请求模板 |iTop官方插件 |
31 | |templates-base |请求模板-base |iTop官方插件 |
32 | |itop-request-template-portal |请求模板-portal |iTop官方插件 |
33 | |itop-request-template-modify |请求模板-修改,新增自动派单,资源申请自动录入CMDB,唯一性检查等功能 | |
34 | |knowitop-trigger-on-update |触发器(对象更新时) |Fork from: [knowitop-trigger-on-update](https://github.com/vbkunin/knowitop-trigger-on-update) |
35 | |le-alert-rule |定义报警规则 | |
36 | |le-config-mgmt |自定义数据模型 | |
37 | |portal-custom |自定义新版portal样式 | |
38 | |precanned-replies |工单预定义回复 |iTop官方插件 |
39 | |precanned-replies-pro |工单预定义回复 |iTop官方插件 |
40 | |rest-ext |rest/json扩展,新增ext/get_related接口 |
41 | |trigger-on-delete |触发器(对象删除时) | |
42 | |zh-language |中文翻译 | |
43 | |kubernetes |Kubernetes工作流 | |
44 |
45 | ## 补丁
46 | 本扩展需要打补丁,参见 [README](patches)
47 |
--------------------------------------------------------------------------------
/action-shell-exec/datamodel.action-shell-exec.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/action-shell-exec/en.dict.action-shell-exec.php:
--------------------------------------------------------------------------------
1 |
6 | * @license http://opensource.org/licenses/AGPL-3.0
7 | */
8 |
9 | Dict::Add('EN US', 'English', 'English', array(
10 |
11 | 'Class:ActionShellExec' => 'Script execution',
12 | 'Class:ActionShellExec+' => 'Action shell-script execution',
13 | 'Class:ActionShellExec/Attribute:script_path' => 'Path',
14 | 'Class:ActionShellExec/Attribute:script_path+' => 'Path to the script',
15 | 'Class:ActionShellExec/Attribute:script_path?' => 'Check the permissions on the script can be executed!!',
16 | 'Class:ActionShellExec/Attribute:params' => 'Parameters',
17 | 'Class:ActionShellExec/Attribute:params+' => 'Passed parameters, one per line',
18 | 'Class:ActionShellExec/Attribute:params?' => "Examples (how to set => how to pick up in the script):
19 | \$this->name\$ => \$THIS_NAME
20 | \$this->caller_id->org_id\$ => \$THIS_CALLER_ID_ORG_ID
21 | START = \$this->start_date\$ => \$START
22 | DESC = \$this->html(description)\$ => \$DESC
23 | YOUR_ENV_VAR = \$this->attcode\$ => \$YOUR_ENV_VAR",
24 |
25 | 'Class:EventNotificationShellExec' => 'Notification of script execution',
26 | 'Class:EventNotificationShellExec+' => 'Notification of script execution',
27 | 'Class:EventNotificationShellExec/Attribute:log' => 'Log',
28 | 'Class:EventNotificationShellExec/Attribute:log+' => 'Log',
29 | ));
30 |
31 |
--------------------------------------------------------------------------------
/action-shell-exec/images/action-shell-script-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ops-itop/itop-extensions/43240f671b8a82e5535dad4588893f0d3ff813de/action-shell-exec/images/action-shell-script-1.png
--------------------------------------------------------------------------------
/action-shell-exec/images/action-shell-script-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ops-itop/itop-extensions/43240f671b8a82e5535dad4588893f0d3ff813de/action-shell-exec/images/action-shell-script-2.png
--------------------------------------------------------------------------------
/action-shell-exec/images/action-shell-script-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ops-itop/itop-extensions/43240f671b8a82e5535dad4588893f0d3ff813de/action-shell-exec/images/action-shell-script-3.png
--------------------------------------------------------------------------------
/action-shell-exec/images/action-shell-script-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ops-itop/itop-extensions/43240f671b8a82e5535dad4588893f0d3ff813de/action-shell-exec/images/action-shell-script-4.png
--------------------------------------------------------------------------------
/action-shell-exec/model.action-shell-exec.php:
--------------------------------------------------------------------------------
1 | "Action Shell Script Execution",
14 | 'category' => 'business',
15 |
16 | // Setup
17 | //
18 | 'dependencies' => array(
19 | 'itop-config-mgmt/2.2.0'
20 | ),
21 | 'mandatory' => false,
22 | 'visible' => true,
23 |
24 | // Components
25 | //
26 | 'datamodel' => array(
27 | 'model.action-shell-exec.php',
28 | 'main.action-shell-exec.php',
29 | ),
30 | 'webservice' => array(
31 |
32 | ),
33 | 'data.struct' => array(
34 | // add your 'structure' definition XML files here,
35 | ),
36 | 'data.sample' => array(
37 | // add your sample data XML files here,
38 | ),
39 |
40 | // Documentation
41 | //
42 | 'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any
43 | 'doc.more_information' => '', // hyperlink to more information, if any
44 |
45 | // Default settings
46 | //
47 | 'settings' => array(
48 | // Module specific settings go here, if any
49 | ),
50 | )
51 | );
52 |
53 |
54 | ?>
55 |
--------------------------------------------------------------------------------
/action-shell-exec/ru.dict.action-shell-exec.php:
--------------------------------------------------------------------------------
1 |
6 | * @license http://opensource.org/licenses/AGPL-3.0
7 | */
8 |
9 | Dict::Add('RU RU', 'Russian', 'Russian', array(
10 |
11 | 'Class:ActionShellExec' => 'Запуск скрипта',
12 | 'Class:ActionShellExec+' => 'Действие запуска shell-скрипта',
13 | 'Class:ActionShellExec/Attribute:script_path' => 'Путь',
14 | 'Class:ActionShellExec/Attribute:script_path+' => 'Путь до файла скрипта',
15 | 'Class:ActionShellExec/Attribute:script_path?' => 'Проверьте наличие прав на запуск файла!',
16 | 'Class:ActionShellExec/Attribute:params' => 'Параметры',
17 | 'Class:ActionShellExec/Attribute:params+' => 'Передаваемые параметры, один на строку',
18 | 'Class:ActionShellExec/Attribute:params?' => "Примеры (как задать => как забрать в скрипте):
19 | \$this->name\$ => \$THIS_NAME
20 | \$this->caller_id->org_id\$ => \$THIS_CALLER_ID_ORG_ID
21 | START = \$this->start_date\$ => \$START
22 | DESC = \$this->html(description)\$ => \$DESC
23 | YOUR_ENV_VAR = \$this->attcode\$ => \$YOUR_ENV_VAR",
24 |
25 | 'Class:EventNotificationShellExec' => 'Уведомление о запуске скрипта',
26 | 'Class:EventNotificationShellExec+' => 'Уведомление о запуске скрипта',
27 | 'Class:EventNotificationShellExec/Attribute:log' => 'Журнал',
28 | 'Class:EventNotificationShellExec/Attribute:log+' => 'Журнал',
29 | ));
30 |
31 |
32 |
--------------------------------------------------------------------------------
/add-user-action-menu/README.md:
--------------------------------------------------------------------------------
1 | ## add-user-action-menu
2 | 右上角新增编辑用户资料按钮
3 |
4 | 
5 |
6 |
--------------------------------------------------------------------------------
/add-user-action-menu/datamodel.add-user-action-menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/add-user-action-menu/en.dict.add-user-action-menu.php:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/add-user-action-menu/main.add-user-action-menu.php:
--------------------------------------------------------------------------------
1 |
18 |
19 | /**
20 | * Sample extension to show how adding menu items in iTop
21 | * This extension does nothing really useful but shows how to use the three possible
22 | * types of menu items:
23 | *
24 | * - An URL to any web page
25 | * - A Javascript function call
26 | * - A separator (horizontal line in the menu)
27 | */
28 | class AddUserActionMenuExtension implements iPopupMenuExtension
29 | {
30 | /**
31 | * Get the list of items to be added to a menu.
32 | *
33 | * This method is called by the framework for each menu.
34 | * The items will be inserted in the menu in the order of the returned array.
35 | * @param int $iMenuId The identifier of the type of menu, as listed by the constants MENU_xxx
36 | * @param mixed $param Depends on $iMenuId, see the constants defined above
37 | * @return object[] An array of ApplicationPopupMenuItem or an empty array if no action is to be added to the menu
38 | */
39 | public static function EnumItems($iMenuId, $param)
40 | {
41 | if($iMenuId == self::MENU_USER_ACTIONS)
42 | {
43 | $sAppRootUrl = trim(MetaModel::GetConfig()->Get('app_root_url'));
44 | $sPersonId = UserRights::GetContactId();
45 | $sUID = 'EditCurrentPerson';
46 | $sLabel = '编辑个人资料';
47 | $sURL = $sAppRootUrl . 'pages/UI.php?operation=modify&class=Person&id=' . $sPersonId;
48 | $sTarget = '';
49 | $oMenuItem = new UrlPopupMenuItem($sUID, $sLabel, $sURL, $sTarget);
50 | return array($oMenuItem);
51 | }
52 | return array();
53 | }
54 | }
55 |
56 |
--------------------------------------------------------------------------------
/add-user-action-menu/model.add-user-action-menu.php:
--------------------------------------------------------------------------------
1 | 'Add User Action Menu',
13 | 'category' => 'business',
14 |
15 | // Setup
16 | //
17 | 'dependencies' => array(
18 |
19 | ),
20 | 'mandatory' => false,
21 | 'visible' => true,
22 |
23 | // Components
24 | //
25 | 'datamodel' => array(
26 | 'main.add-user-action-menu.php',
27 | 'model.add-user-action-menu.php'
28 | ),
29 | 'webservice' => array(
30 |
31 | ),
32 | 'data.struct' => array(
33 | // add your 'structure' definition XML files here,
34 | ),
35 | 'data.sample' => array(
36 | // add your sample data XML files here,
37 | ),
38 |
39 | // Documentation
40 | //
41 | 'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any
42 | 'doc.more_information' => '', // hyperlink to more information, if any
43 |
44 | // Default settings
45 | //
46 | 'settings' => array(
47 | // Module specific settings go here, if any
48 | ),
49 | )
50 | );
51 |
52 |
53 | ?>
54 |
--------------------------------------------------------------------------------
/add-user-action-menu/preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ops-itop/itop-extensions/43240f671b8a82e5535dad4588893f0d3ff813de/add-user-action-menu/preview.png
--------------------------------------------------------------------------------
/api-client/datamodel.api-client.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/api-client/en.dict.api-client.php:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/api-client/module.api-client.php:
--------------------------------------------------------------------------------
1 | 'iTop Api Client',
13 | 'category' => 'business',
14 |
15 | // Setup
16 | //
17 | 'dependencies' => array(
18 | ),
19 | 'mandatory' => false,
20 | 'visible' => true,
21 |
22 | // Components
23 | //
24 | 'datamodel' => array(
25 | 'main.api-client.php',
26 | ),
27 | 'webservice' => array(
28 |
29 | ),
30 | 'data.struct' => array(
31 | // add your 'structure' definition XML files here,
32 | ),
33 | 'data.sample' => array(
34 | // add your sample data XML files here,
35 | ),
36 |
37 | // Documentation
38 | //
39 | 'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any
40 | 'doc.more_information' => '', // hyperlink to more information, if any
41 |
42 | // Default settings
43 | //
44 | 'settings' => array(
45 | 'user' => 'apiuser',
46 | 'passwd' => 'passwd'
47 | // Module specific settings go here, if any
48 | ),
49 | )
50 | );
51 |
52 |
53 | ?>
54 |
--------------------------------------------------------------------------------
/api-client/zh.dict.api-client.php:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/attribute-custom/README.md:
--------------------------------------------------------------------------------
1 | # 自定义Attribute
2 |
3 | ## AttributeClassCustom
4 | 由于setup/compiler.class.inc.php中写死了编译的Attribute类型,AttributeClass不能正确编译,这里自定义一个AttributeClassCustom,将default_value作为class_category,可以走编译的默认行为
5 |
--------------------------------------------------------------------------------
/attribute-custom/datamodel.attribute-custom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/attribute-custom/module.attribute-custom.php:
--------------------------------------------------------------------------------
1 | 'Custom Attribute',
13 | 'category' => 'business',
14 |
15 | // Setup
16 | //
17 | 'dependencies' => array(
18 | ),
19 | 'mandatory' => false,
20 | 'visible' => true,
21 |
22 | // Components
23 | //
24 | 'datamodel' => array(
25 | 'main.attribute-custom.php',
26 | ),
27 | 'webservice' => array(
28 |
29 | ),
30 | 'data.struct' => array(
31 | // add your 'structure' definition XML files here,
32 | ),
33 | 'data.sample' => array(
34 | // add your sample data XML files here,
35 | ),
36 |
37 | // Documentation
38 | //
39 | 'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any
40 | 'doc.more_information' => '', // hyperlink to more information, if any
41 |
42 | // Default settings
43 | //
44 | 'settings' => array(
45 | // Module specific settings go here, if any
46 | ),
47 | )
48 | );
49 |
50 |
51 | ?>
52 |
--------------------------------------------------------------------------------
/combodo-autoclose-ticket/en.dict.combodo-autoclose-ticket.php:
--------------------------------------------------------------------------------
1 |
21 | * @author Romain Quetiez
22 | * @author Denis Flaven
23 | * @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
24 | */
25 |
26 | Dict::Add('EN US', 'English', 'English', array(
27 | // Dictionary entries go here
28 | ));
29 |
30 |
31 | ?>
32 |
--------------------------------------------------------------------------------
/combodo-autoclose-ticket/fr.dict.combodo-autoclose-ticket.php:
--------------------------------------------------------------------------------
1 |
21 | * @author Romain Quetiez
22 | * @author Denis Flaven
23 | * @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
24 | */
25 |
26 | Dict::Add('FR FR', 'French', 'Français', array(
27 | // Dictionary entries go here
28 |
29 |
30 | ));
31 |
32 |
33 | ?>
34 |
--------------------------------------------------------------------------------
/combodo-autoclose-ticket/module.combodo-autoclose-ticket.php:
--------------------------------------------------------------------------------
1 | 'Auto closure of Incident and UserRequest',
24 | 'category' => 'feature',
25 |
26 | // Setup
27 | //
28 | 'dependencies' => array(
29 |
30 | ),
31 | 'mandatory' => false,
32 | 'visible' => true,
33 |
34 | // Components
35 | //
36 | 'datamodel' => array(
37 | 'main.combodo-autoclose-ticket.php'
38 | ),
39 | 'webservice' => array(
40 |
41 | ),
42 | 'data.struct' => array(
43 | // add your 'structure' definition XML files here,
44 | ),
45 | 'data.sample' => array(
46 | // add your sample data XML files here,
47 | ),
48 |
49 | // Documentation
50 | //
51 | 'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any
52 | 'doc.more_information' => '', // hyperlink to more information, if any
53 |
54 | // Default settings
55 | //
56 | 'settings' => array(
57 | // Module specific settings go here, if any
58 | 'incident_autoclose_delay' => '7',
59 | 'userrequest_autoclose_delay' => '7',
60 | ),
61 | )
62 | );
63 |
64 |
65 | ?>
66 |
--------------------------------------------------------------------------------
/custom-mod/README.md:
--------------------------------------------------------------------------------
1 | ## custom-mod
2 | 主要修改工单的生命周期
3 | - 拒绝状态的工单可以被关闭
4 | - 指派状态的工单可以被拒绝
5 | - 删除新portal的location_id
6 |
--------------------------------------------------------------------------------
/custom-mod/en.dict.custom-mod.php:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/custom-mod/main.custom-mod.php:
--------------------------------------------------------------------------------
1 | Get('app_root_url'));
31 | if(isset($_GET["operation"]) && isset($_GET["class"]) && !isAdmin())
32 | {
33 | if($_GET["operation"] == "new" && $_GET["class"] == "UserRequest")
34 | {
35 | $location = "$appRootUrl" . "portal/index.php?operation=create_request";
36 | header("Location: $location");
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/custom-mod/model.custom-mod.php:
--------------------------------------------------------------------------------
1 | 'Custom Modify',
13 | 'category' => 'business',
14 |
15 | // Setup
16 | //
17 | 'dependencies' => array(
18 | 'itop-request-mgmt-itil/2.2.0',
19 | 'itop-tickets/2.2.0'
20 | ),
21 | 'mandatory' => false,
22 | 'visible' => true,
23 |
24 | // Components
25 | //
26 | 'datamodel' => array(
27 | 'model.custom-mod.php',
28 | 'main.custom-mod.php',
29 | ),
30 | 'webservice' => array(
31 |
32 | ),
33 | 'data.struct' => array(
34 | // add your 'structure' definition XML files here,
35 | ),
36 | 'data.sample' => array(
37 | // add your sample data XML files here,
38 | ),
39 |
40 | // Documentation
41 | //
42 | 'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any
43 | 'doc.more_information' => '', // hyperlink to more information, if any
44 |
45 | // Default settings
46 | //
47 | 'settings' => array(
48 | // Module specific settings go here, if any
49 | ),
50 | )
51 | );
52 |
53 |
54 | ?>
55 |
--------------------------------------------------------------------------------
/custom-mod/zh.dict.custom-mod.php:
--------------------------------------------------------------------------------
1 | '提交用户请求',
14 | 'Menu:WelcomeRequest' => '提工单',
15 | 'Menu:WelcomeAudit' => '审计',
16 | 'Menu:PortalUserRequest+' => '创建一个新用户请求工单',
17 | 'Portal:CMDB' => '返回CMDB',
18 | 'Portal:Help' => '查看帮助',
19 | ));
20 |
21 | ?>
22 |
--------------------------------------------------------------------------------
/custom-pages/README.md:
--------------------------------------------------------------------------------
1 | ## custom-pages
2 | ### 提供一个批量查询页面
3 |
4 | 
5 |
6 | ### 服务器账号管理
7 | 
8 |
9 | ### server_accounts 文档
10 | **此部分应该已过期**
11 |
12 | 账号管理工单流程分为工单提交,创建账号,自动指派几个过程,其中,创建账号操作很费时,因此借助除非其和action-shell-exec插件把耗时操作放到后台执行。
13 |
14 | 动作调用的脚本在 [cmdbApi/actions](https://github.com/annProg/cmdbApi/tree/master/actions) 目录下
15 |
16 | #### 需要配置如下触发器及动作
17 |
18 | | 触发器 | 过滤条件 | 动作 |
19 | | ------ | -------- | ---- |
20 | | 工单创建(对象创建时) |SELECT UserRequest WHERE title LIKE '服务器登录权限申请-Server IDs%'| SCRIPT_NAME=accountRequest_create.php ID=$this->ref$ |
21 | | 工单重开(进入一个状态时)| 过滤条件同上, 状态为 new | 同上 |
22 | | 工单完成(进入一个状态时)| 过滤条件同上, 状态为 resolved | SCRIPT_NAME=update_accounts.php ID=$this->ref$ |
23 | | use_pam更新(对象更新时)|tracked attributes: use_pam |SCRIPT_NAME=update_accounts_fromLnk.php ID=$this->id$|
24 | | Server lnkContact新增(对象创建时)| SELECT lnkContactToFunctionalCI WHERE functionalci_id_finalclass_recall='Server'|SCRIPT_NAME=update_accounts_fromLnk.php ID=$this->functionalci_id$ |
25 | | Server lnkContact删除(对象删除时)|同上|同上|
26 |
27 |
--------------------------------------------------------------------------------
/custom-pages/en.dict.custom-pages.php:
--------------------------------------------------------------------------------
1 | 'Batch Query',
12 | 'UI:BatchQuery:SelectClass' => 'Select Query Class',
13 | 'UI:BatchQuery:Values' => '',
14 | 'Menu:BatchQueriesMenu' => 'Batch Query',
15 | 'Menu:BatchQueriesMenu+' => 'Batch Query',
16 | 'Menu:WelcomeBatchQuery' => 'Batch Query',
17 |
18 | 'UI:ServerAccount:Title' => 'Server Account',
19 | 'UI:ServerAccount:ServerYouCanLogin' => 'Server You Can Login',
20 | 'UI:ServerAccount:ServerYouManaged' => 'Server You Managed',
21 | 'UI:ServerAccount:Help' => 'Visit Help',
22 | 'Menu:ServerAccountMenu' => 'Server Account',
23 | 'Menu:ServerAccountMenu+' => 'Server Account',
24 | 'Menu:WelcomeServerAccount' => 'Server Account',
25 |
26 | ));
27 |
28 | ?>
29 |
--------------------------------------------------------------------------------
/custom-pages/images/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ops-itop/itop-extensions/43240f671b8a82e5535dad4588893f0d3ff813de/custom-pages/images/error.png
--------------------------------------------------------------------------------
/custom-pages/images/lnkusertoserver.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ops-itop/itop-extensions/43240f671b8a82e5535dad4588893f0d3ff813de/custom-pages/images/lnkusertoserver.png
--------------------------------------------------------------------------------
/custom-pages/images/right.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ops-itop/itop-extensions/43240f671b8a82e5535dad4588893f0d3ff813de/custom-pages/images/right.gif
--------------------------------------------------------------------------------
/custom-pages/main.custom-pages.php:
--------------------------------------------------------------------------------
1 | Get('app_root_url'));
30 | if(isset($_SESSION['auth_user'])) {
31 | $location = $rootUrl . "env-production/custom-pages/verify_user.php";
32 | if(!isset($_SESSION['verify_user'])) {
33 | $_SESSION['verify_user'] = 0;
34 | header("Location: $location");
35 | }
36 |
37 | if(isset($_SESSION['verify_user']) && $_SESSION['verify_user'] != 1) {
38 | $re = '/pages\/UI\.php\?operation=modify&class=Person&id=[0-9]+|.*\/verify_user\.php.*|pages\/logoff\.php.*/i';
39 | if(!preg_match($re, $_SERVER['REQUEST_URI']))
40 | {
41 | header("Location: $location");
42 | }
43 | }
44 | } else {
45 | unset($_SESSION['verify_user']);
46 | }
47 |
--------------------------------------------------------------------------------
/custom-pages/model.custom-pages.php:
--------------------------------------------------------------------------------
1 | 'Custom Pages',
13 | 'category' => 'business',
14 |
15 | // Setup
16 | //
17 | 'dependencies' => array(
18 | 'itop-request-mgmt/2.0.0||itop-request-mgmt-itil/2.0.0',
19 | 'itop-config-mgmt/2.2.0',
20 | 'itop-request-template/1.0.1',
21 | 'templates-base/2.1.4',
22 | 'api-client/1.0.0'
23 | ),
24 | 'mandatory' => false,
25 | 'visible' => true,
26 |
27 | // Components
28 | //
29 | 'datamodel' => array(
30 | 'model.custom-pages.php',
31 | 'main.custom-pages.php',
32 | ),
33 | 'webservice' => array(
34 |
35 | ),
36 | 'data.struct' => array(
37 | // add your 'structure' definition XML files here,
38 | ),
39 | 'data.sample' => array(
40 | // add your sample data XML files here,
41 | ),
42 |
43 | // Documentation
44 | //
45 | 'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any
46 | 'doc.more_information' => '', // hyperlink to more information, if any
47 |
48 | // Default settings
49 | //
50 | 'settings' => array(
51 | // Module specific settings go here, if any
52 | 'helplink' => 'http://localhost',
53 | 'ip_regexp' => '^\\\s*(([0-9]{1,3}\\.){3}[0-9]{1,3}[\\\n,\\\s]*)*\\\s*([0-9]{1,3}\\.){3}[0-9]{1,3}[\\\n,\\\s]*$',
54 | 'ticket_title' => '服务器登录权限申请-Server IDs: ',
55 | 'service_id' => '1',
56 | 'user_expiration_day' => 3,
57 | 'ak' => 'reset#user#pwd#default*ak'
58 | ),
59 | )
60 | );
61 |
62 |
63 | ?>
64 |
--------------------------------------------------------------------------------
/custom-pages/preview/account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ops-itop/itop-extensions/43240f671b8a82e5535dad4588893f0d3ff813de/custom-pages/preview/account.png
--------------------------------------------------------------------------------
/custom-pages/preview/preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ops-itop/itop-extensions/43240f671b8a82e5535dad4588893f0d3ff813de/custom-pages/preview/preview.png
--------------------------------------------------------------------------------
/custom-pages/zh.dict.custom-pages.php:
--------------------------------------------------------------------------------
1 | '批量查询',
14 | 'UI:BatchQuery:SelectClass' => '选择查询的类型',
15 | 'UI:BatchQuery:Values' => '每行一个值',
16 | 'Menu:BatchQueriesMenu' => '批量查询',
17 | 'Menu:BatchQueriesMenu+' => '批量查询',
18 | 'Menu:WelcomeBatchQuery' => '批量查询',
19 |
20 | 'UI:ServerAccount:Title' => '服务器账号',
21 | 'UI:ServerAccount:ServerYouCanLogin' => '我能登录的服务器列表',
22 | 'UI:ServerAccount:ServerYouManaged' => '我是管理员的服务器列表',
23 | 'UI:ServerAccount:MyTicket' => '我的账号申请工单',
24 | 'UI:ServerAccount:Help' => '点此查看帮助',
25 | 'UI:ServerAccount:Create' => '提交账号申请工单',
26 | 'Menu:ServerAccountMenu' => '服务器账号',
27 | 'Menu:ServerAccountMenu+' => '服务器账号',
28 | 'Menu:WelcomeServerAccount' => '服务器账号',
29 |
30 | 'UI:PersonVerification:Title' => '用户资料验证',
31 | 'Menu:PersonVerificationMenu' => '用户资料验证',
32 | 'Menu:PersonVerificationMenu+' => '用户资料验证',
33 |
34 | 'UI:ServerAccount:AreyousureResetpwd' => '确定重置服务器登录密码?',
35 | 'UI:ServerAccount:ResetPWD' => '重置服务器登录密码',
36 |
37 | ));
38 |
39 | // lnkUserToServer
40 | Dict::Add('ZH CN', 'Chinese', '简体中文', array(
41 | 'Class:lnkUserToServer' => '服务器账号',
42 | 'Class:lnkUserToServer/Attribute:server_id' => '服务器',
43 | 'Class:lnkUserToServer/Attribute:user_id' => '用户账号',
44 | 'Class:lnkUserToServer/Attribute:sudo' => 'Sudo权限',
45 | 'Class:lnkUserToServer/Attribute:status' => '账号状态',
46 | 'Class:lnkUserToServer/Attribute:status/Value:enabled' => '已审核',
47 | 'Class:lnkUserToServer/Attribute:status/Value:disabled' => '未审核',
48 | 'Class:lnkUserToServer/Attribute:expiration' => '过期时间',
49 | 'Class:lnkUserToServer/Error:ThisLnkAlreadyExists' => '此账号已存在,请直接编辑',
50 | ));
51 |
52 | ?>
53 |
--------------------------------------------------------------------------------
/email-reply/data.struct.ta-actions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Notification to caller on User Request public log update
5 | This action informs a caller that the public log of a ticket has been updated
6 | test
7 | test@test.com
8 | test@test.com
9 |
10 | SELECT Person WHERE id=:this->caller_id
11 |
12 |
13 | The ticket $this->ref$ has been updated
14 | <html>
15 | <body>
16 | $this->head_html(public_log)$
17 | </body>
18 | </html>
19 | normal
20 |
21 |
22 |
--------------------------------------------------------------------------------
/email-reply/data.struct.ta-links.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1
5 | 50
6 | 1
7 |
8 |
9 |
--------------------------------------------------------------------------------
/email-reply/data.struct.ta-triggers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | User Request public log update
6 | UserRequest
7 | public_log
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/email-reply/de.dict.email-reply.php:
--------------------------------------------------------------------------------
1 |
21 | * @author Romain Quetiez
22 | * @author Denis Flaven
23 | * @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
24 | */
25 |
26 | //
27 | // Class: TriggerOnLogUpdate
28 | //
29 |
30 | Dict::Add('DE DE', 'German', 'Deutsch', array(
31 | 'Class:TriggerOnLogUpdate' => 'Trigger (wenn ein Log aktualisiert wird)',
32 | 'Class:TriggerOnLogUpdate+' => 'Trigger auf ein Update eines Logs durch einen Endbenutzer',
33 | 'Class:TriggerOnLogUpdate/Attribute:target_log' => 'Attributname des Logs',
34 | 'Class:TriggerOnLogUpdate/Attribute:target_log+' => 'Bezeichnet das zu berücksictigende log (z.B. public_log)',
35 |
36 | 'UI-emry-enable' => 'Send the reply by email~~',
37 | 'UI-emry-noattachment' => 'Kein Attachment',
38 | 'UI-emry-caselog-prompt' => 'Type your text here~~',
39 | 'UI-emry-select-attachments' => 'Select Attachments...~~',
40 | 'UI-emry-attachments-to-be-sent' => 'The following attachments will be sent:~~',
41 | 'UI-emry-select-attachments-tooltip' => 'Click to select the attachments to be sent~~',
42 | ));
43 |
44 |
--------------------------------------------------------------------------------
/email-reply/en.dict.email-reply.php:
--------------------------------------------------------------------------------
1 |
21 | * @author Romain Quetiez
22 | * @author Denis Flaven
23 | * @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
24 | */
25 |
26 | //
27 | // Class: TriggerOnLogUpdate
28 | //
29 |
30 | Dict::Add('EN US', 'English', 'English', array(
31 | 'Class:TriggerOnLogUpdate' => 'Trigger (when log is updated)',
32 | 'Class:TriggerOnLogUpdate+' => 'Trigger on a end-user\'s update in log',
33 | 'Class:TriggerOnLogUpdate/Attribute:target_log' => 'Log attribute code',
34 | 'Class:TriggerOnLogUpdate/Attribute:target_log+' => 'Identifies which log will be considered',
35 |
36 | 'UI-emry-enable' => 'Send the reply by email',
37 | 'UI-emry-noattachment' => 'No attachment',
38 | 'UI-emry-caselog-prompt' => 'Type your text here',
39 | 'UI-emry-select-attachments' => 'Select Attachments...',
40 | 'UI-emry-attachments-to-be-sent' => 'The following attachments will be sent:',
41 | 'UI-emry-select-attachments-tooltip' => 'Click to select the attachments to be sent',
42 | ));
43 |
44 |
--------------------------------------------------------------------------------
/email-reply/fr.dict.email-reply.php:
--------------------------------------------------------------------------------
1 |
21 | * @author Romain Quetiez
22 | * @author Denis Flaven
23 | * @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
24 | */
25 |
26 | //
27 | // Class: TriggerOnLogUpdate
28 | //
29 |
30 | Dict::Add('FR FR', 'French', 'Français', array(
31 | 'Class:TriggerOnLogUpdate' => 'Déclencheur sur mise à jour du journal',
32 | 'Class:TriggerOnLogUpdate+' => 'Déclencheur sur mise à jour du journal',
33 | 'Class:TriggerOnLogUpdate/Attribute:target_log' => 'Code du journal',
34 | 'Class:TriggerOnLogUpdate/Attribute:target_log+' => 'Code de l\'attribut du journal concerné',
35 |
36 | 'UI-emry-enable' => 'Envoyer votre réponse par Email',
37 | 'UI-emry-noattachment' => 'Aucun attachement',
38 | 'UI-emry-caselog-prompt' => 'Entrez votre texte ici',
39 | 'UI-emry-select-attachments' => 'Pièces jointes...',
40 | 'UI-emry-attachments-to-be-sent' => 'Les pièces jointes suivantes seront envoyées:',
41 | 'UI-emry-select-attachments-tooltip' => 'Cliquez pour choisir les pièces jointes à envoyer',
42 | ));
43 |
--------------------------------------------------------------------------------
/email-reply/module.email-reply.php:
--------------------------------------------------------------------------------
1 | 'Send Ticket Log Updates by Email',
24 | 'category' => 'business',
25 |
26 | // Setup
27 | //
28 | 'dependencies' => array(
29 | 'itop-request-mgmt-itil/2.0.0||itop-request-mgmt/1.0.0||itop-incident-mgmt-itil//1.0.0', // Actually needed for the sample data
30 | ),
31 | 'mandatory' => false,
32 | 'visible' => true,
33 |
34 | // Components
35 | //
36 | 'datamodel' => array(
37 | 'main.email-reply.php'
38 | ),
39 | 'webservice' => array(
40 |
41 | ),
42 | 'data.struct' => array(
43 | 'data.struct.ta-actions.xml',
44 | 'data.struct.ta-triggers.xml',
45 | 'data.struct.ta-links.xml',
46 |
47 | ),
48 | 'data.sample' => array(
49 | // add your sample data XML files here,
50 | ),
51 |
52 | // Documentation
53 | //
54 | 'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any
55 | 'doc.more_information' => '', // hyperlink to more information, if any
56 |
57 | // Default settings
58 | //
59 | 'settings' => array(
60 | 'enabled_default' => true,
61 | ),
62 | )
63 | );
64 |
65 |
66 | ?>
67 |
--------------------------------------------------------------------------------
/email-reply/paper_clip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ops-itop/itop-extensions/43240f671b8a82e5535dad4588893f0d3ff813de/email-reply/paper_clip.png
--------------------------------------------------------------------------------
/getclass.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | grep "class id=" datamodel.itop-config-mgmt.xml -n |tr ':' '"' |awk -F '"' '{print $1,$3}'> info.log
4 |
5 | awk '{print $1}' info.log >1.log
6 | awk '{print $2}' info.log >2.log
7 |
8 | sed -i '1d' 1.log
9 | sed -i '$d' 2.log
10 | paste 1.log 2.log >info2.log
11 |
12 | paste info.log info2.log |awk '{print $1,$3,$2}'>info3.log
13 |
14 | while read line;do
15 | start=`echo $line |awk '{print $1}'`
16 | end=`echo $line |awk '{print $2}'`
17 | echo $end |grep '[a-z]' && end="8000"
18 | name=`echo $line |awk '{print $NF}'`
19 |
20 | awk -v start=$start -v end=$end '{if(NR>=start && NR$name-class.xml
21 | done 'Clone...',
12 | 'object-copier:form_label:default' => 'Cloning %1$s',
13 | 'object-copier:report_label:default' => 'Cloned from %1$s',
14 |
15 | 'object-copier:error:preset' => 'An error has been encountered while presetting the object to create: %1$s. Please contact your administrator.',
16 | 'object-copier:error:retrofit' => 'An error has been encountered while retrofitting some information back to the source object: %1$s. Please contact your administrator.',
17 | ));
18 |
--------------------------------------------------------------------------------
/itop-object-copier/es_cr.dict.itop-object-copier.php:
--------------------------------------------------------------------------------
1 | 'Clonar...',
12 | 'object-copier:form_label:default' => 'Clonando %1$s',
13 | 'object-copier:report_label:default' => 'Clonado de %1$s',
14 |
15 | 'object-copier:error:preset' => 'Ocurrio un error mientras presentaba objeto a crear: %1$s. Por favor contacte al admistrador.',
16 | 'object-copier:error:retrofit' => 'Ocurrio un error mientras retroalimentaba alguna información de regreso al objeto origen: %1$s. Por favor contacte al administrador.',
17 | ));
18 |
--------------------------------------------------------------------------------
/itop-object-copier/extension.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | combodo-user-actions-configurator
4 | Combodo SARL
5 |
6 |
7 |
8 | 1.2.1
9 | 2018-06-26
10 |
11 |
12 | stable
13 | false
14 |
15 |
16 |
--------------------------------------------------------------------------------
/itop-object-copier/fr.dict.itop-object-copier.php:
--------------------------------------------------------------------------------
1 | 'Cloner...',
12 | 'object-copier:form_label:default' => 'Clonage de %1$s',
13 | 'object-copier:report_label:default' => 'Cloné depuis %1$s',
14 |
15 | 'object-copier:error:preset' => 'An error has been encountered while presetting the object to create: %1$s. Please contact your administrator.',
16 | 'object-copier:error:retrofit' => 'An error has been encountered while retrofitting some information back to the source object: %1$s. Please contact your administrator.',
17 | ));
18 |
--------------------------------------------------------------------------------
/itop-request-template-modify/display_control.js:
--------------------------------------------------------------------------------
1 | $().ready(function(){
2 | var mode = $(".modal-body").find("form").attr('id');
3 | var index = mode.indexOf('objectform-ticket-create-');
4 | if(index < 0)
5 | {
6 | return;
7 | }
8 | $("div[data-field-id='request_template_ip_textarea']").attr("style", "display:none");
9 | displayTipsButton();
10 | displayTips();
11 | });
12 |
13 | function displayList()
14 | {
15 | $("#le_server_accounts_request").attr("style", "display:block");
16 | $("div[data-field-id=request_template_ip_textarea]").attr("style", "display:none");
17 | }
18 | function displayTextarea()
19 | {
20 | $("#le_server_accounts_request").attr("style", "display:none");
21 | $("div[data-field-id=request_template_ip_textarea]").attr("style", "display:block");
22 | }
23 |
24 | function displayTipsButton()
25 | {
26 | var button = '