| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- <?php
- /**
- * The setting view file of message module of ZenTaoPMS.
- * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
- * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
- * @author Mengyi Liu <liumengyi@easycorp.ltd>
- * @package message
- * @link https://www.zentao.net
- */
- namespace zin;
- /* First row. */
- $messageSetting = is_string($config->message->setting) ? json_decode($config->message->setting, true) : $config->message->setting;
- $headerThs = array(h::th());
- foreach($lang->message->typeList as $type => $typeName)
- {
- $headerThs[] = h::th
- (
- checkbox
- (
- on::click('toggleColumnChecked'),
- set::id("type-{$type}"),
- set::name("type-{$type}"),
- set::value(1),
- set::text($typeName)
- )
- );
- }
- $bodyTrs = array();
- foreach($config->message->objectTypes as $objectType => $actions)
- {
- if(!isset($objectTypes[$objectType])) continue;
- $bodyTr = array();
- $bodyTr[] = h::td
- (
- div
- (
- width('150px'),
- checkbox
- (
- on::click('toggleLaneChecked'),
- set::id("objectType-{$objectType}"),
- set::name("objectType-{$objectType}"),
- set::value(1),
- set::text($objectTypes[$objectType])
- )
- )
- );
- foreach($lang->message->typeList as $type => $typeName)
- {
- $cell = array();
- if(isset($config->message->available[$type][$objectType]))
- {
- $availableActions = array();
- foreach($config->message->available[$type][$objectType] as $action)
- {
- if(in_array($type, array('sms', 'webhook')) && $objectType == 'kanbancard' && $action == 'nearing') continue;
- if(!isset($objectActions[$objectType][$action])) continue;
- $availableActions[$action] = $objectActions[$objectType][$action];
- }
- $selected = isset($messageSetting[$type]['setting'][$objectType]) ? join(',', $messageSetting[$type]['setting'][$objectType]) : '';
- foreach($availableActions as $key => $value)
- {
- $cell[] = checkbox
- (
- set::rootClass('w-1/2'),
- set::id("messageSetting{$type}{$objectType}{$key}"),
- set::name("messageSetting[$type][setting][$objectType][]"),
- set::title($value),
- set::value($key),
- set::checked(strpos(",{$selected},", ",{$key},") !== false),
- set::text($value)
- );
- }
- if(isset($config->message->condition[$type][$objectType]))
- {
- $moduleName = $objectType == 'case' ? 'testcase' : $objectType;
- $this->app->loadLang($moduleName);
- foreach(explode(',', $config->message->condition[$type][$objectType]) as $condition)
- {
- $listKey = $condition . 'List';
- $list = isset($this->lang->{$moduleName}->{$listKey}) ? $this->lang->{$moduleName}->{$listKey} : $users;
- $cell[] = picker
- (
- set::name("messageSetting[{$type}][condition][{$objectType}][{$condition}][]"),
- set::items($list),
- set::value(isset($messageSetting[$type]['condition'][$objectType][$condition]) ? join(',', $messageSetting[$type]['condition'][$objectType][$condition]) : ''),
- set::multiple(true)
- );
- }
- }
- }
- $bodyTr[] = h::td
- (
- div
- (
- setClass('flex content-center items-center flex-wrap'),
- $cell
- )
- );
- }
- $bodyTrs[] = h::tr($bodyTr);
- }
- $bodyTrs[] = h::tr
- (
- h::td($lang->message->blockUser),
- h::td
- (
- picker
- (
- set::name('blockUser'),
- set::items($users),
- set::value(isset($config->message->blockUser) ? $config->message->blockUser: ''),
- set::menu(array('checkbox' => true)),
- set::multiple(true)
- )
- )
- );
- panel
- (
- form
- (
- h::table
- (
- setClass('table condensed bordered'),
- h::thead(h::tr($headerThs)),
- h::tbody($bodyTrs)
- )
- )
- );
- render();
|