* refactor code.

This commit is contained in:
Catouse
2016-04-21 15:43:36 +08:00
parent 9f2e4e99ea
commit 3663f341e9
4 changed files with 82 additions and 49 deletions
+11 -10
View File
@@ -401,9 +401,9 @@ class commonModel extends model
echo "<ul class='nav'>\n";
foreach($menu as $menuItem)
{
if($menuItem->hidden) continue;
if(isset($menuItem->hidden) && $menuItem->hidden) continue;
$active = $menuItem->name == $mainMenu ? "class='$activeName'" : '';
$link = is_array($menuItem->link) ? helper::createLink($menuItem->link['module'], $menuItem->link['method'], $menuItem->link['vars']) : $menuItem->link;
$link = is_array($menuItem->link) ? helper::createLink($menuItem->link['module'], $menuItem->link['method'], isset($menuItem->link['vars']) ? $menuItem->link['vars'] : null) : $menuItem->link;
echo "<li $active data-id='$menuItem->name'><a href='$link' $active>$menuItem->text</a></li>\n";
}
$customLink = helper::createLink('custom', 'menu', "module={$app->getModuleName()}&method={$app->getMethodName()}", '', true);
@@ -483,28 +483,29 @@ class commonModel extends model
/* Cycling to print every sub menus. */
foreach($menu as $menuItem)
{
if($menuItem->hidden) continue;
if(isset($menuItem->hidden) && $menuItem->hidden) continue;
/* Init the these vars. */
if($menuItem->link)
{
$active = '';
$float = $menuItem->float;
$float = isset($menuItem->float) ? $menuItem->float : '';
$alias = '';
$target = '';
$module = '';
$method = '';
$link = is_array($menuItem->link) ? helper::createLink($menuItem->link['module'], $menuItem->link['method'], $menuItem->link['vars']) : $menuItem->link;
$link = is_array($menuItem->link) ? helper::createLink($menuItem->link['module'], $menuItem->link['method'], isset($menuItem->link['vars']) ? $menuItem->link['vars'] : '') : $menuItem->link;
if(is_array($menuItem->link))
{
if($menuItem->link['subModule'])
if(isset($menuItem->link['subModule']))
{
$subModules = explode(',', $menuItem->link['subModule']);
if(in_array($currentModule, $subModules) and $float != 'right') $active = 'active';
}
$alias = $menuItem->link['alias'];
$target = $menuItem->link['target'];
$module = $menuItem->link['module'];
$method = $menuItem->link['method'];
if(isset($menuItem->link['alias'])) $alias = $menuItem->link['alias'];
if(isset($menuItem->link['target'])) $target = $menuItem->link['target'];
if(isset($menuItem->link['module'])) $module = $menuItem->link['module'];
if(isset($menuItem->link['method'])) $method = $menuItem->link['method'];
}
if($float != 'right' and $module == $currentModule and ($method == $currentMethod or strpos(",$alias,", ",$currentMethod,") !== false)) $active = 'active';
echo "<li class='$float $active'>" . html::a($link, $menuItem->text, $target, "data-id='$menuItem->name'") . "</li>\n";
+7 -7
View File
@@ -191,23 +191,23 @@ class customModel extends model
if($module && $method)
{
$itemLink = array('module' => $module, 'method' => $method);
if($link[3]) $itemLink['vars'] = $link[3];
if(isset($link[3])) $itemLink['vars'] = $link[3];
if(is_array($item))
{
$itemLink['subModule'] = $item['subModule'];
$itemLink['alias'] = $item['alias'];
$itemLink['target'] = $item['target'];
if(isset($item['subModule'])) $itemLink['subModule'] = $item['subModule'];
if(isset($item['alias'])) $itemLink['alias'] = $item['alias'];
if(isset($item['target'])) $itemLink['target'] = $item['target'];
}
}
if(is_array($item))
{
$float = $item['float'];
$fixed = $item['fixed'];
if(isset($item['float'])) $float = $item['float'];
if(isset($item['fixed'])) $fixed = $item['fixed'];
}
$hidden = !$fixed && $isSetMenuConfig && $menuConfigMap[$name] && $menuConfigMap[$name]->hidden;
$hidden = !$fixed && $isSetMenuConfig && $menuConfigMap[$name] && isset($menuConfigMap[$name]->hidden) && $menuConfigMap[$name]->hidden;
$menuItem = new stdclass();
$menuItem->name = $name;
+63 -29
View File
@@ -1970,18 +1970,13 @@ class projectModel extends model
$taskItem->left = $task->left;
$taskItem->assignedTo = $users[$task->assignedTo];
$taskItem->url = helper::createLink('task', 'view', "task=$task->id");
$taskItem->storyChanged = $task->storyStatus == 'active' and $task->latestStoryVersion > $task->storyVersion;
$taskItem->storyChanged = isset($task->storyStatus) and $task->storyStatus == 'active' and $task->latestStoryVersion > $task->storyVersion;
$buttons = '';
$buttons .= common::buildIconButton('task', 'assignTo', "projectID=$task->project&taskID=$task->id", $task, 'list', '', '', 'iframe', true);
$buttons .= common::buildIconButton('task', 'start', "taskID=$task->id", $task, 'list', '', '', 'iframe', true);
$buttons .= common::buildIconButton('task', 'recordEstimate', "taskID=$task->id", $task, 'list', 'time', '', 'iframe', true);
if($browseType == 'needconfirm')
{
$lang->task->confirmStoryChange = $lang->confirm;
$buttons .= common::buildIconButton('task', 'confirmStoryChange', "taskid=$task->id", '', 'list', '', 'hiddenwin');
}
$buttons .= common::buildIconButton('task', 'finish', "taskID=$task->id", $task, 'list', '', '', 'iframe', true);
$buttons .= common::buildIconButton('task', 'close', "taskID=$task->id", $task, 'list', '', '', 'iframe', true);
$buttons .= common::buildIconButton('task', 'edit', "taskID=$task->id", '', 'list');
@@ -1992,6 +1987,42 @@ class projectModel extends model
return $taskItems;
}
/**
* Format stories list for tree view
* @param array $stories
* @access public
* @return array
*/
public function formatStoriesForTree($stories)
{
$this->loadModel('task');
$storyItems = array();
foreach ($stories as $story)
{
$storyItem = new stdclass();
$storyItem->type = 'story';
$storyItem->id = 'story' . $story->id;
$storyItem->title = $story->title;
$storyItem->color = $story->color;
$storyItem->pri = (int) $story->pri;
$storyItem->storyId = $story->id;
$storyItem->url = helper::createLink('story', 'view', "storyID=$story->id&version=$story->version&from=project&param=$story->project");
$storyItem->taskCreateUrl = helper::createLink('task', 'batchCreate', "projectID={$story->project}&story={$story->id}");
$storyTasks = $this->task->getStoryTasks($story->id, $story->project);
if(!empty($storyTasks))
{
$taskItems = $this->formatTasksForTree($storyTasks);
$storyItem->tasksCount = count($taskItems);
$storyItem->children = array();
$storyItem->children[] = array('id' => 'tasks' . $story->id, 'tasks' => $taskItems, 'type' => 'tasks', 'actions' => false);
}
$storyItems[] = $storyItem;
}
return $storyItems;
}
/**
* Build product task tree item
* @param object $tree
@@ -2001,12 +2032,11 @@ class projectModel extends model
public function buildProductTaskTree($node, $projectID)
{
$this->loadModel('story');
$this->loadModel('task');
static $users;
if(empty($users)) $users = $this->loadModel('user')->getPairs('noletter');
if($node->children)
if(isset($node->children))
{
foreach ($node->children as $child)
{
@@ -2024,29 +2054,33 @@ class projectModel extends model
$node->type = 'module';
$node->actions = false;
$stories = $this->story->getProjectStories($projectID, 'pri_asc,id_desc', 'byModule', $node->id);
foreach ($stories as $story)
{
$storyItem = new stdclass();
$storyItem->type = 'story';
$storyItem->id = 'story' . $story->id;
$storyItem->title = $story->title;
$storyItem->color = $story->color;
$storyItem->pri = $story->pri;
$storyItem->storyId = $story->id;
$storyItem->url = helper::createLink('story', 'view', "storyID=$story->id&version=$story->version&from=project&param=$projectID");
$storyItem->taskCreateUrl = helper::createLink('task', 'batchCreate', "projectID={$projectID}&story={$story->id}");
$storyTasks = $this->task->getStoryTasks($story->id, $projectID);
if(!empty($storyTasks))
{
$taskItems = $this->formatTasksForTree($storyTasks);
$storyItem->tasksCount = count($taskItems);
$storyItem->children = array();
$storyItem->children[] = array('id' => 'tasks' . $story->id, 'tasks' => $taskItems, 'type' => 'tasks', 'actions' => false);
}
if(isset($node->children)) $node->children = array_merge($node->children, $this->formatStoriesForTree($stories));
else $node->children = $this->formatStoriesForTree($stories);
$node->children[] = $storyItem;
}
// foreach ($stories as $story)
// {
// $storyItem = new stdclass();
// $storyItem->type = 'story';
// $storyItem->id = 'story' . $story->id;
// $storyItem->title = $story->title;
// $storyItem->color = $story->color;
// $storyItem->pri = (int) $story->pri;
// $storyItem->storyId = $story->id;
// $storyItem->url = helper::createLink('story', 'view', "storyID=$story->id&version=$story->version&from=project&param=$projectID");
// $storyItem->taskCreateUrl = helper::createLink('task', 'batchCreate', "projectID={$projectID}&story={$story->id}");
// $storyTasks = $this->task->getStoryTasks($story->id, $projectID);
// if(!empty($storyTasks))
// {
// $taskItems = $this->formatTasksForTree($storyTasks);
// $storyItem->tasksCount = count($taskItems);
// $storyItem->children = array();
// $storyItem->children[] = array('id' => 'tasks' . $story->id, 'tasks' => $taskItems, 'type' => 'tasks', 'actions' => false);
// }
// $node->children[] = $storyItem;
// }
}
return $node;
}
+1 -3
View File
@@ -13,8 +13,6 @@
<?php
include '../../common/view/header.html.php';
include './taskheader.html.php';
js::set('moduleID', $moduleID);
js::set('productID', $productID);
?>
<div class='main'>
@@ -81,7 +79,7 @@ $(function()
}
else if(item.type === 'story')
{
$li.append('<span class="tree-item-title"><i class="icon icon-lightbulb text-muted"></i> </span>').append($('<a>').attr({href: item.url}).text('#' + item.storyId + ' ' + item.title).css('color', item.color));
$li.append('<span><i class="icon icon-lightbulb text-muted"></i> </span>').append($('<a>').attr({href: item.url}).text('#' + item.storyId + ' ' + item.title).css('color', item.color));
if(item.children && item.children.length)
{
if(item.tasksCount) $li.append(' <span class="label label-task-count label-badge">' + item.tasksCount + '</span>');