* Add required function for old view pages.
This commit is contained in:
@@ -126,6 +126,79 @@ class model extends baseModel
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build menu of a module.
|
||||
*
|
||||
* @param string $moduleName
|
||||
* @param string $methodName
|
||||
* @param string $params
|
||||
* @param object $data
|
||||
* @param string $type
|
||||
* @param string $icon
|
||||
* @param string $target
|
||||
* @param string $class
|
||||
* @param bool $onlyBody
|
||||
* @param string $misc
|
||||
* @param string $title
|
||||
* @param bool $returnHtml
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
|
||||
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);
|
||||
|
||||
if(strpos($methodName, '_') !== false && strpos($methodName, '_') > 0) list($module, $method) = explode('_', $methodName);
|
||||
|
||||
if(empty($module)) $module = $moduleName;
|
||||
if(empty($method)) $method = $methodName;
|
||||
|
||||
static $actions = array();
|
||||
if(isset($this->config->bizVersion))
|
||||
{
|
||||
if(empty($actions[$moduleName]))
|
||||
{
|
||||
$actions[$moduleName] = $this->dao->select('*')->from(TABLE_WORKFLOWACTION)
|
||||
->where('module')->eq($moduleName)
|
||||
->andWhere('buildin')->eq('1')
|
||||
->andWhere('status')->eq('enable')
|
||||
->beginIF(!empty($this->config->vision))->andWhere('vision')->eq($this->config->vision)->fi()
|
||||
->fetchAll('action');
|
||||
}
|
||||
}
|
||||
|
||||
$enabled = true;
|
||||
if(!empty($actions) and isset($actions[$moduleName][$methodName]))
|
||||
{
|
||||
$action = $actions[$moduleName][$methodName];
|
||||
|
||||
if($action->extensionType == 'override') return $this->loadModel('flow')->buildActionMenu($moduleName, $action, $data, $type);
|
||||
|
||||
$conditions = json_decode($action->conditions);
|
||||
if($conditions and $action->extensionType == 'extend')
|
||||
{
|
||||
if($icon != 'copy' and $methodName != 'create') $title = $action->name;
|
||||
if($conditions) $enabled = $this->loadModel('flow')->checkConditions($conditions, $data);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(method_exists($this, 'isClickable')) $enabled = $this->isClickable($data, $method, $module);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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);
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build menu of actions created by workflow action.
|
||||
*
|
||||
|
||||
+55
-1
@@ -2596,7 +2596,7 @@ class commonModel extends model
|
||||
$currentMethod = strtolower($method);
|
||||
if(!commonModel::hasPriv($module, $method, $object, $vars) and !in_array("$currentModule.$currentMethod", $config->openMethods)) return false;
|
||||
|
||||
$link = helper::createLink($module, $method, $vars, '', $onlyBody);
|
||||
$link = helper::createLink($module, $method, $vars, '', $onlyBody ? true : false);
|
||||
|
||||
/* Set the icon title, try search the $method defination in $module's lang or $common's lang. */
|
||||
if(empty($title))
|
||||
@@ -3449,6 +3449,60 @@ class commonModel extends model
|
||||
echo html::a(helper::createLink($module, $method, $vars, '', $onlyBody), $label, $target, $misc, $newline);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Print pre and next link
|
||||
*
|
||||
* @param string $preAndNext
|
||||
* @param string $linkTemplate
|
||||
* @static
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public static function printPreAndNext($preAndNext = '', $linkTemplate = '')
|
||||
{
|
||||
global $lang, $app;
|
||||
if(isonlybody()) return false;
|
||||
|
||||
$moduleName = ($app->getModuleName() == 'story' and $app->tab == 'project') ? 'projectstory' : $app->getModuleName();
|
||||
echo "<nav class='container'>";
|
||||
if(isset($preAndNext->pre) and $preAndNext->pre)
|
||||
{
|
||||
$id = (isset($_SESSION['testcaseOnlyCondition']) and !$_SESSION['testcaseOnlyCondition'] and $app->getModuleName() == 'testcase' and isset($preAndNext->pre->case)) ? 'case' : 'id';
|
||||
$title = isset($preAndNext->pre->title) ? $preAndNext->pre->title : $preAndNext->pre->name;
|
||||
$title = '#' . $preAndNext->pre->$id . ' ' . $title . ' ' . $lang->preShortcutKey;
|
||||
|
||||
$params = $moduleName == 'story' ? "&version=0¶m=0&storyType={$preAndNext->pre->type}" : '';
|
||||
$link = $linkTemplate ? sprintf($linkTemplate, $preAndNext->pre->$id) : helper::createLink($moduleName, 'view', "ID={$preAndNext->pre->$id}" . $params);
|
||||
$link .= '#app=' . $app->tab;
|
||||
if(isset($preAndNext->pre->objectType) and $preAndNext->pre->objectType == 'doc')
|
||||
{
|
||||
echo html::a('javascript:void(0)', '<i class="icon-pre icon-chevron-left"></i>', '', "id='prevPage' class='btn' title='{$title}' data-url='{$link}'");
|
||||
}
|
||||
else
|
||||
{
|
||||
echo html::a($link, '<i class="icon-pre icon-chevron-left"></i>', '', "id='prevPage' class='btn' title='{$title}'");
|
||||
}
|
||||
}
|
||||
if(isset($preAndNext->next) and $preAndNext->next)
|
||||
{
|
||||
$id = (isset($_SESSION['testcaseOnlyCondition']) and !$_SESSION['testcaseOnlyCondition'] and $app->getModuleName() == 'testcase' and isset($preAndNext->next->case)) ? 'case' : 'id';
|
||||
$title = isset($preAndNext->next->title) ? $preAndNext->next->title : $preAndNext->next->name;
|
||||
$title = '#' . $preAndNext->next->$id . ' ' . $title . ' ' . $lang->nextShortcutKey;
|
||||
$params = $moduleName == 'story' ? "&version=0¶m=0&storyType={$preAndNext->next->type}" : '';
|
||||
$link = $linkTemplate ? sprintf($linkTemplate, $preAndNext->next->$id) : helper::createLink($moduleName, 'view', "ID={$preAndNext->next->$id}" . $params);
|
||||
$link .= '#app=' . $app->tab;
|
||||
if(isset($preAndNext->next->objectType) and $preAndNext->next->objectType == 'doc')
|
||||
{
|
||||
echo html::a('javascript:void(0)', '<i class="icon-pre icon-chevron-right"></i>', '', "id='nextPage' class='btn' title='$title' data-url='{$link}'");
|
||||
}
|
||||
else
|
||||
{
|
||||
echo html::a($link, '<i class="icon-pre icon-chevron-right"></i>', '', "id='nextPage' class='btn' title='$title'");
|
||||
}
|
||||
}
|
||||
echo '</nav>';
|
||||
}
|
||||
}
|
||||
|
||||
class common extends commonModel
|
||||
|
||||
Reference in New Issue
Block a user