+ Add workflow extension actions for caselib detail page.

This commit is contained in:
tianshujie
2024-03-27 14:29:15 +08:00
parent d94fb39f2f
commit 1ee5e003d4
4 changed files with 46 additions and 8 deletions
+3
View File
@@ -34,3 +34,6 @@ $config->caselib->actionList['delete']['className'] = 'ajax-submit';
$config->caselib->actionList['delete']['data-confirm'] = array('message' => $lang->caselib->libraryDelete, 'icon' => 'icon-exclamation-sign', 'iconClass' => 'warning-pale rounded-full icon-2x');
$config->caselib->exportTemplateFields = array('module', 'title', 'precondition', 'stepDesc', 'stepExpect', 'keywords', 'pri', 'type', 'stage');
$config->caselib->actions = new stdclass();
$config->caselib->actions->view['mainActions'] = array('edit', 'delete');
+14
View File
@@ -317,4 +317,18 @@ class caselibModel extends model
return true;
}
/**
* 判断操作是否可以点击。
* Judge an action is clickable or not.
*
* @param object $lib
* @param string $action
* @access public
* @return bool
*/
public function isClickable(object $lib, string $action): bool
{
return common::hasPriv('caselib', $action);
}
}
+27
View File
@@ -0,0 +1,27 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
/**
title=测试 caselibModel->isClickable();
cid=1
- 测试操作为空时,是否可点击 @1
- 测试操作为编辑时,是否可点击 @1
- 测试操作为删除时,是否可点击 @1
- 测试操作为不存在时,是否可点击 @1
*/
su('admin');
$lib = new stdclass();
$actions = array('', 'edit', 'delete', 'test');
global $tester;
$caselibModel = $tester->loadModel('caselib');
r($caselibModel->isClickable($lib, $actions[0])) && p() && e('1'); // 测试操作为空时,是否可点击
r($caselibModel->isClickable($lib, $actions[1])) && p() && e('1'); // 测试操作为编辑时,是否可点击
r($caselibModel->isClickable($lib, $actions[2])) && p() && e('1'); // 测试操作为删除时,是否可点击
r($caselibModel->isClickable($lib, $actions[3])) && p() && e('1'); // 测试操作为不存在时,是否可点击
+2 -8
View File
@@ -19,13 +19,7 @@ detailHeader
to::title(entityLabel(set(array('entityID' => $lib->id, 'level' => 1, 'text' => $lib->name))))
);
$commonActions = array();
foreach($config->caselib->actionList as $operate => $settings)
{
if(!common::hasPriv('caselib', $operate)) continue;
$commonActions[] = $settings;
}
$commonActions = $this->loadModel('common')->buildOperateMenu($lib);
detailBody
(
sectionList
@@ -44,7 +38,7 @@ detailBody
(
array(array('icon' => 'back', 'text' => $lang->goback, 'url' => 'javascript:goBack("execution-task", "execution-task")'))
) : '',
set::suffix($commonActions),
set::suffix($commonActions['mainActions']),
set::object($lib)
)
);