diff --git a/framework/model.class.php b/framework/model.class.php
index c62d23a153..4ad058725c 100644
--- a/framework/model.class.php
+++ b/framework/model.class.php
@@ -65,11 +65,12 @@ class model extends baseModel
* @param string $target
* @param string $misc
* @param bool $onlyBody
+ * @param bool $returnHtml
* @access public
* @return string
*/
- public function buildMenu($moduleName, $methodName, $params, $data, $type = 'view', $icon = '', $target = '', $class = '', $onlyBody = false, $misc = '' , $title = '')
+ public function buildMenu($moduleName, $methodName, $params, $data, $type = 'view', $icon = '', $target = '', $class = '', $onlyBody = false, $misc = '' , $title = '', $returnHtml = true)
{
if(strpos($moduleName, '.') !== false) list($appName, $moduleName) = explode('.', $moduleName);
@@ -115,6 +116,8 @@ class model extends baseModel
if(method_exists($this, 'isClickable')) $enabled = $this->isClickable($data, $method, $module);
}
+ if(!$returnHtml) return $enabled;
+
$html = '';
$type = $type == 'browse' ? 'list' : 'button';
$html = common::buildIconButton($module, $method, $params, $data, $type, $icon, $target, $class, $onlyBody, $misc, $title, '', $enabled);
diff --git a/module/caselib/model.php b/module/caselib/model.php
index bbdd5e2ee2..bbcec964b7 100644
--- a/module/caselib/model.php
+++ b/module/caselib/model.php
@@ -597,10 +597,10 @@ class caselibModel extends model
}
/**
- * Build case lib menu.
- *
- * @param object $object
- * @param string $type
+ * Build case lib menu.
+ *
+ * @param object $object
+ * @param string $type
* @access public
* @return string
*/
@@ -611,9 +611,9 @@ class caselibModel extends model
}
/**
- * Build case lib view menu.
- *
- * @param object $lib
+ * Build case lib view menu.
+ *
+ * @param object $lib
* @access public
* @return string
*/
@@ -632,9 +632,9 @@ class caselibModel extends model
}
/**
- * Build case lib browse menu.
- *
- * @param object $case
+ * Build case lib browse menu.
+ *
+ * @param object $case
* @access public
* @return string
*/
@@ -648,7 +648,8 @@ class caselibModel extends model
$menu .= $this->buildMenu('testcase', 'review', $params, $case, 'browse', 'glasses', '', 'iframe');
}
$menu .= $this->buildMenu('testcase', 'edit', $params, $case, 'browse');
- if(common::hasPriv('testcase', 'delete'))
+ $deleteIconEnabled = $this->buildMenu('testcase', 'delete', $params, $case, 'browse', '', '', '', '', '', '', false);
+ if(common::hasPriv('testcase', 'delete') && $deleteIconEnabled)
{
$deleteURL = helper::createLink('testcase', 'delete', "$params&confirm=yes");
$menu .= html::a("javascript:ajaxDelete(\"$deleteURL\", \"caseList\", confirmDelete)", '', '', "title='{$this->lang->testcase->delete}' class='btn'");
diff --git a/module/release/model.php b/module/release/model.php
index 1253044b8d..dec9366568 100644
--- a/module/release/model.php
+++ b/module/release/model.php
@@ -737,8 +737,9 @@ class releaseModel extends model
$menu .= $this->buildMenu('release', 'changeStatus', "$params&status=$changedStatus", $release, 'browse', $release->status == 'normal' ? 'pause' : 'play', 'hiddenwin', '', '', '',$this->lang->release->changeStatusList[$changedStatus]);
$menu .= $this->buildMenu('release', 'edit', "release=$release->id", $release, 'browse');
$menu .= $this->buildMenu('release', 'notify', "release=$release->id", $release, 'browse', 'bullhorn', '', 'iframe', true);
+ $deleteIconEnabled = $this->buildMenu('release', 'delete', "release=$release->id", $release, 'browse', '', '', '', '', '', '', false);
- if(common::hasPriv('release', 'delete', $release))
+ if(common::hasPriv('release', 'delete', $release) && $deleteIconEnabled)
{
$deleteURL = helper::createLink('release', 'delete', "releaseID=$release->id&confirm=yes");
$menu .= html::a("javascript:ajaxDelete(\"$deleteURL\", \"releaseList\", confirmDelete)", '', '', "class='btn' title='{$this->lang->release->delete}'");
diff --git a/module/testtask/model.php b/module/testtask/model.php
index a216209699..bb54839c55 100644
--- a/module/testtask/model.php
+++ b/module/testtask/model.php
@@ -2168,10 +2168,10 @@ class testtaskModel extends model
}
/**
- * Build test task menu.
- *
- * @param object $task
- * @param string $type
+ * Build test task menu.
+ *
+ * @param object $task
+ * @param string $type
* @access public
* @return string
*/
@@ -2182,9 +2182,9 @@ class testtaskModel extends model
}
/**
- * Build test task view menu.
- *
- * @param object $task
+ * Build test task view menu.
+ *
+ * @param object $task
* @access public
* @return string
*/
@@ -2208,14 +2208,14 @@ class testtaskModel extends model
$menu .= $this->buildMenu('testtask', 'edit', $params, $task, 'view');
$menu .= $this->buildMenu('testtask', 'delete', $params, $task, 'view', 'trash', 'hiddenwin');
-
+
return $menu;
}
/**
* Build test task browse menu.
- *
- * @param object $task
+ *
+ * @param object $task
* @access public
* @return string
*/
@@ -2231,7 +2231,8 @@ class testtaskModel extends model
$menu .= '';
$menu .= $this->buildMenu('testtask', 'view', $params, $task, 'browse', 'list-alt', '', 'iframe', true, "data-width='90%'");
$menu .= $this->buildMenu('testtask', 'edit', $params, $task, 'browse');
- if(common::hasPriv('testtask', 'delete', $task))
+ $deleteIconEnabled = $this->buildMenu('testtask', 'delete', $params, $task, 'browse', '', '', '', '', '', '', false);
+ if(common::hasPriv('testtask', 'delete', $task) && $deleteIconEnabled)
{
$deleteURL = helper::createLink('testtask', 'delete', "taskID=$task->id&confirm=yes");
$menu .= html::a("javascript:ajaxDelete(\"$deleteURL\",\"taskList\",confirmDelete)", '', '', "title='{$this->lang->testtask->delete}' class='btn'");