Merge branch 'master' of github.com:easysoft/zentaopms
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
<th class='w-severity'> <?php common::printOrderLink('severity', $orderBy, $vars, $lang->bug->severityAB);?></th>
|
||||
<th class='w-pri'> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
|
||||
<th> <?php common::printOrderLink('title', $orderBy, $vars, $lang->bug->title);?></th>
|
||||
<th class='w-80px'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->bug->statusAB);?></th>
|
||||
<th class='w-100px'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->bug->statusAB);?></th>
|
||||
|
||||
<?php if($browseType == 'needconfirm'):?>
|
||||
<th class='w-200px'><?php common::printOrderLink('story', $orderBy, $vars, $lang->bug->story);?></th>
|
||||
@@ -62,7 +62,20 @@
|
||||
echo html::a($bugLink, $bug->title, null, "style='color: $bug->color'");
|
||||
?>
|
||||
</td>
|
||||
<td class='bug-<?php echo $bug->status?>'><?php echo $bug->needconfirm ? "<span class='warning'>{$lang->story->changed}</span>" : $lang->bug->statusList[$bug->status];?></td>
|
||||
<td class='bug-<?php echo $bug->status?>'>
|
||||
<?php
|
||||
if($bug->needconfirm)
|
||||
{
|
||||
echo "(<span class='warning'>{$lang->story->changed}</span> ";
|
||||
echo html::a($this->createLink('bug', 'confirmStoryChange', "bugID=$bug->id"), $lang->confirm, 'hiddenwin');
|
||||
echo ")";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $lang->bug->statusList[$bug->status];
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
|
||||
<?php if($browseType == 'needconfirm'):?>
|
||||
<td class='text-left' title="<?php echo $bug->storyTitle?>"><?php echo html::a($this->createLink('story', 'view', "stoyID=$bug->story"), $bug->storyTitle, '_blank');?></td>
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
<?php endforeach;?>
|
||||
</table>
|
||||
</div>
|
||||
<div class='alert alert-info'><?php echo $lang->report->notice->help?></div>
|
||||
</div>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -275,6 +275,9 @@ $lang->report->menu->prj = array('link' => $lang->projectCommon . '|report|p
|
||||
$lang->report->menu->test = array('link' => 'Testing|report|bugcreate', 'alias' => 'bugassign');
|
||||
$lang->report->menu->staff = array('link' => 'Company|report|workload');
|
||||
|
||||
$lang->report->notice = new stdclass();
|
||||
$lang->report->notice->help = 'Note: Report is generated from search results. Please search in the list page before you generate a report.';
|
||||
|
||||
/* 组织结构视图菜单设置。*/
|
||||
$lang->company = new stdclass();
|
||||
$lang->company->menu = new stdclass();
|
||||
|
||||
@@ -275,6 +275,9 @@ $lang->report->menu->prj = array('link' => $lang->projectCommon . '|report|p
|
||||
$lang->report->menu->test = array('link' => '测试|report|bugcreate', 'alias' => 'bugassign');
|
||||
$lang->report->menu->staff = array('link' => '组织|report|workload');
|
||||
|
||||
$lang->report->notice = new stdclass();
|
||||
$lang->report->notice->help = '注:统计报表的数据,来源于列表页面的检索结果,生成统计报表前请先在列表页面进行检索。';
|
||||
|
||||
/* 组织结构视图菜单设置。*/
|
||||
$lang->company = new stdclass();
|
||||
$lang->company->menu = new stdclass();
|
||||
|
||||
@@ -303,10 +303,10 @@ class commonModel extends model
|
||||
echo "<a href='javascript:;' data-toggle='dropdown'>" . $lang->help . " <span class='caret'></span></a>";
|
||||
echo "<ul class='dropdown-menu pull-right'>";
|
||||
echo '<li>' . html::a('javascript:;', $lang->manual, '', "class='open-help-tab'") . '</li>';
|
||||
if(!commonModel::isTutorialMode() and $app->user->account != 'guest') echo '<li>' . html::a(helper::createLink('tutorial', 'start'), $lang->tutorial, '', "class='iframe' data-width='800' data-headerless='true'") . "</li>";
|
||||
echo '<li>' . html::a(helper::createLink('misc', 'changeLog'), $lang->changeLog, '', "class='iframe' data-width='800' data-headerless='true'") . '</li>';
|
||||
if(!commonModel::isTutorialMode() and $app->user->account != 'guest') echo '<li>' . html::a(helper::createLink('tutorial', 'start'), $lang->tutorial, '', "class='iframe' data-width='800' data-headerless='true' data-backdrop='true' data-keyboard='true'") . "</li>";
|
||||
echo '<li>' . html::a(helper::createLink('misc', 'changeLog'), $lang->changeLog, '', "class='iframe' data-width='800' data-headerless='true' data-backdrop='true' data-keyboard='true'") . '</li>';
|
||||
echo "</ul></div>";
|
||||
echo html::a(helper::createLink('misc', 'about'), $lang->aboutZenTao, '', "class='about iframe' data-width='900' data-headerless='true' data-class='modal-about'");
|
||||
echo html::a(helper::createLink('misc', 'about'), $lang->aboutZenTao, '', "class='about iframe' data-width='900' data-headerless='true' data-backdrop='true' data-keyboard='true' data-class='modal-about'");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/datatable.fix.html.php';?>
|
||||
<?php include '../../common/view/tablesorter.html.php';?>
|
||||
<?php js::set('browseType', $browseType);?>
|
||||
<div id='featurebar'>
|
||||
<ul class='nav'>
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/tablesorter.html.php';?>
|
||||
<table class='table table-condensed table-hover table-striped tablesorter table-fixed' id='storyList'>
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
@@ -14,16 +14,16 @@
|
||||
<div id='titlebar'>
|
||||
<div class='heading'><i class='icon-folder-close'></i> <?php echo $lang->product->project;?> </div>
|
||||
</div>
|
||||
<table class='table'>
|
||||
<table class='table table-fixed'>
|
||||
<thead>
|
||||
<tr class='colhead'>
|
||||
<th class='w-150px'><?php echo $lang->project->name;?></th>
|
||||
<th><?php echo $lang->project->code;?></th>
|
||||
<th><?php echo $lang->project->end;?></th>
|
||||
<th><?php echo $lang->project->status;?></th>
|
||||
<th><?php echo $lang->project->totalEstimate;?></th>
|
||||
<th><?php echo $lang->project->totalConsumed;?></th>
|
||||
<th><?php echo $lang->project->totalLeft;?></th>
|
||||
<th><?php echo $lang->project->name;?></th>
|
||||
<th class='w-100px'><?php echo $lang->project->code;?></th>
|
||||
<th class='w-120px'><?php echo $lang->project->end;?></th>
|
||||
<th class='w-80px'><?php echo $lang->project->status;?></th>
|
||||
<th class='w-50px'><?php echo $lang->project->totalEstimate;?></th>
|
||||
<th class='w-50px'><?php echo $lang->project->totalConsumed;?></th>
|
||||
<th class='w-50px'><?php echo $lang->project->totalLeft;?></th>
|
||||
<th class='w-150px'><?php echo $lang->project->progess;?></th>
|
||||
<th class='w-100px'><?php echo $lang->project->burn;?></th>
|
||||
</tr>
|
||||
|
||||
@@ -10,30 +10,32 @@
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/tablesorter.html.php';?>
|
||||
<table class='table table-condensed table-hover table-striped tablesorter table-fixed' id='taskList'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='w-id'> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
|
||||
<th class='w-pri'> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
|
||||
<th class='w-p30'> <?php common::printOrderLink('name', $orderBy, $vars, $lang->task->name);?></th>
|
||||
<th class='w-status'><?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
|
||||
<th class='w-70px'> <?php common::printOrderLink('deadline', $orderBy, $vars, $lang->task->deadlineAB);?></th>
|
||||
<th class='w-id {sorter:false}'> <?php common::printOrderLink('id', $orderBy, $vars, $lang->idAB);?></th>
|
||||
<th class='w-pri {sorter:false}'> <?php common::printOrderLink('pri', $orderBy, $vars, $lang->priAB);?></th>
|
||||
<th class='{sorter:false}'> <?php common::printOrderLink('name', $orderBy, $vars, $lang->task->name);?></th>
|
||||
<th class='w-100px {sorter:false}'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
|
||||
<th class='w-70px {sorter:false}'> <?php common::printOrderLink('deadline', $orderBy, $vars, $lang->task->deadlineAB);?></th>
|
||||
|
||||
<?php if($this->cookie->windowWidth > $this->config->wideSize):?>
|
||||
<th class='w-id'> <?php common::printOrderLink('openedDate', $orderBy, $vars, $lang->task->openedDateAB);?></th>
|
||||
<th class='w-id {sorter:false}'> <?php common::printOrderLink('openedDate', $orderBy, $vars, $lang->task->openedDateAB);?></th>
|
||||
<?php endif;?>
|
||||
|
||||
<th class='w-user'> <?php common::printOrderLink('assignedTo', $orderBy, $vars, $lang->task->assignedToAB);?></th>
|
||||
<th class='w-user'> <?php common::printOrderLink('finishedBy', $orderBy, $vars, $lang->task->finishedByAB);?></th>
|
||||
<th class='w-user {sorter:false}'> <?php common::printOrderLink('assignedTo', $orderBy, $vars, $lang->task->assignedToAB);?></th>
|
||||
<th class='w-user {sorter:false}'> <?php common::printOrderLink('finishedBy', $orderBy, $vars, $lang->task->finishedByAB);?></th>
|
||||
|
||||
<?php if($this->cookie->windowWidth > $this->config->wideSize):?>
|
||||
<th class='w-50px'> <?php common::printOrderLink('finishedDate', $orderBy, $vars, $lang->task->finishedDateAB);?></th>
|
||||
<th class='w-50px {sorter:false}'> <?php common::printOrderLink('finishedDate', $orderBy, $vars, $lang->task->finishedDateAB);?></th>
|
||||
<?php endif;?>
|
||||
|
||||
<th class='w-35px'> <?php common::printOrderLink('estimate', $orderBy, $vars, $lang->task->estimateAB);?></th>
|
||||
<th class='w-50px'> <?php common::printOrderLink('consumed', $orderBy, $vars, $lang->task->consumedAB);?></th>
|
||||
<th class='w-40px nobr'> <?php common::printOrderLink('left', $orderBy, $vars, $lang->task->leftAB);?></th>
|
||||
<?php if($project->type == 'sprint') print '<th>' and common::printOrderLink('story', $orderBy, $vars, $lang->task->story) and print '</th>';?>
|
||||
<th class='w-35px {sorter:false}'> <?php common::printOrderLink('estimate', $orderBy, $vars, $lang->task->estimateAB);?></th>
|
||||
<th class='w-50px {sorter:false}'> <?php common::printOrderLink('consumed', $orderBy, $vars, $lang->task->consumedAB);?></th>
|
||||
<th class='w-40px nobr {sorter:false}'> <?php common::printOrderLink('left', $orderBy, $vars, $lang->task->leftAB);?></th>
|
||||
<th class='w-50px'><?php echo $lang->task->progess;?></th>
|
||||
<?php if($project->type == 'sprint') print "<th class='w-100px {sorter:false}'>" and common::printOrderLink('story', $orderBy, $vars, $lang->task->story) and print '</th>';?>
|
||||
<th class='w-150px {sorter:false}'><?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -58,7 +60,16 @@
|
||||
<td class="<?php echo $task->status;?>">
|
||||
<?php
|
||||
$storyChanged = ($task->storyStatus == 'active' and $task->latestStoryVersion > $task->storyVersion);
|
||||
$storyChanged ? print("<span class='warning'>{$lang->story->changed}</span> ") : print($lang->task->statusList[$task->status]);
|
||||
if($storyChanged)
|
||||
{
|
||||
echo "(<span class='warning'>{$lang->story->changed}</span> ";
|
||||
echo html::a($this->createLink('task', 'confirmStoryChange', "taskID=$task->id"), $lang->confirm, 'hiddenwin');
|
||||
echo ")";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $lang->task->statusList[$task->status];
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
<td class="<?php if(isset($task->delay)) echo 'delayed';?>"><?php if(substr($task->deadline, 0, 4) > 0) echo substr($task->deadline, 5, 6);?></td>
|
||||
@@ -77,6 +88,7 @@
|
||||
<td><?php echo $task->estimate;?></td>
|
||||
<td><?php echo $task->consumed;?></td>
|
||||
<td><?php echo $task->left;?></td>
|
||||
<td><?php echo $task->progess;?>%</td>
|
||||
<?php
|
||||
if($project->type == 'sprint')
|
||||
{
|
||||
|
||||
@@ -61,7 +61,7 @@ class searchModel extends model
|
||||
$valueName = "value$i";
|
||||
|
||||
/* Skip empty values. */
|
||||
if($this->post->$valueName == false) continue;
|
||||
if($this->post->$valueName == false and $this->post->$valueName !== '0') continue;
|
||||
if($this->post->$valueName == 'null') $this->post->$valueName = ''; // Null is special, stands to empty.
|
||||
if($this->post->$valueName == 'ZERO') $this->post->$valueName = 0; // ZERO is special, stands to 0.
|
||||
|
||||
|
||||
@@ -75,6 +75,7 @@
|
||||
<?php endforeach;?>
|
||||
</table>
|
||||
</div>
|
||||
<div class='alert alert-info'><?php echo $lang->report->notice->help?></div>
|
||||
</div>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -33,6 +33,7 @@ $lang->task->reportChart = "Report Chart";
|
||||
$lang->task->fromBug = 'From Bug';
|
||||
$lang->task->case = 'Related Case';
|
||||
$lang->task->confirmStoryChange = "Confirm Story Change";
|
||||
$lang->task->progess = 'Progess';
|
||||
|
||||
$lang->task->common = 'Task';
|
||||
$lang->task->id = 'ID';
|
||||
|
||||
@@ -33,6 +33,7 @@ $lang->task->reportChart = "报表统计";
|
||||
$lang->task->fromBug = '来源Bug';
|
||||
$lang->task->case = '相关用例';
|
||||
$lang->task->confirmStoryChange = "确认需求变动";
|
||||
$lang->task->progess = '进度';
|
||||
|
||||
$lang->task->common = '任务';
|
||||
$lang->task->id = '编号';
|
||||
|
||||
@@ -1190,6 +1190,20 @@ class taskModel extends model
|
||||
$task->productType = $product->type;
|
||||
}
|
||||
|
||||
/* Compute task progess. */
|
||||
if($task->consumed == 0 and $task->left == 0)
|
||||
{
|
||||
$task->progess = 0;
|
||||
}
|
||||
elseif($task->consumed != 0 and $task->left == 0)
|
||||
{
|
||||
$task->progess = 100;
|
||||
}
|
||||
else
|
||||
{
|
||||
$task->progess = round($task->consumed / ($task->consumed + $task->left), 3) * 100;
|
||||
}
|
||||
|
||||
return $task;
|
||||
}
|
||||
|
||||
|
||||
@@ -77,6 +77,7 @@
|
||||
<?php endforeach;?>
|
||||
</table>
|
||||
</div>
|
||||
<div class='alert alert-info'><?php echo $lang->report->notice->help?></div>
|
||||
</div>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<th class='w-80px'> <?php common::printOrderLink('lastRunner', $orderBy, $vars, $lang->testtask->lastRunAccount);?></th>
|
||||
<th class='w-120px'> <?php common::printOrderLink('lastRunDate', $orderBy, $vars, $lang->testtask->lastRunTime);?></th>
|
||||
<th class='w-80px'> <?php common::printOrderLink('lastRunResult', $orderBy, $vars, $lang->testtask->lastRunResult);?></th>
|
||||
<th class='w-status'><?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
|
||||
<th class='w-100px'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->statusAB);?></th>
|
||||
<th class='w-150px {sorter:false}'><?php echo $lang->actions;?></th>
|
||||
<?php endif;?>
|
||||
</tr>
|
||||
@@ -54,7 +54,20 @@
|
||||
<td><?php echo $users[$case->lastRunner];?></td>
|
||||
<td><?php if(!helper::isZeroDate($case->lastRunDate)) echo date(DT_MONTHTIME1, strtotime($case->lastRunDate));?></td>
|
||||
<td class='<?php echo $case->lastRunResult;?>'><?php if($case->lastRunResult) echo $lang->testcase->resultList[$case->lastRunResult];?></td>
|
||||
<td class='<?php if(isset($run)) echo $run->status;?> testcase-<?php echo $case->status?>'><?php echo $case->needconfirm ? "<span class='warning'>{$lang->story->changed}</span>" : $lang->testcase->statusList[$case->status];?></td>
|
||||
<td class='<?php if(isset($run)) echo $run->status;?> testcase-<?php echo $case->status?>'>
|
||||
<?php
|
||||
if($case->needconfirm)
|
||||
{
|
||||
echo "(<span class='warning'>{$lang->story->changed}</span> ";
|
||||
echo html::a($this->createLink('testcase', 'confirmStoryChange', "caseID=$case->id"), $lang->confirm, 'hiddenwin');
|
||||
echo ")";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $lang->testcase->statusList[$case->status];
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
<td class='text-right'>
|
||||
<?php
|
||||
common::printIcon('testtask', 'runCase', "runID=0&caseID=$case->id&version=$case->version", '', 'list', 'play', '', 'runCase iframe');
|
||||
|
||||
@@ -30,6 +30,7 @@ $lang->tree->manageCaseChild = 'Manage Child Case';
|
||||
$lang->tree->manageTaskChild = "Manage Child {$lang->projectCommon}";
|
||||
$lang->tree->syncFromProduct = 'Copy';
|
||||
$lang->tree->dragAndSort = "Drag and Sort";
|
||||
$lang->tree->sort = "Sort";
|
||||
$lang->tree->addChild = "Add Child Module";
|
||||
|
||||
$lang->tree->confirmDelete = 'Do you want to delete this Module and its Child?';
|
||||
|
||||
@@ -30,6 +30,7 @@ $lang->tree->manageCaseChild = '维护用例子模块';
|
||||
$lang->tree->manageTaskChild = "维护{$lang->projectCommon}子模块";
|
||||
$lang->tree->syncFromProduct = '复制';
|
||||
$lang->tree->dragAndSort = "拖放排序";
|
||||
$lang->tree->sort = "排序";
|
||||
$lang->tree->addChild = "增加子模块";
|
||||
|
||||
$lang->tree->confirmDelete = '该模块及其子模块都会被删除,您确定删除吗?';
|
||||
|
||||
@@ -125,7 +125,7 @@ $(function()
|
||||
data: data,
|
||||
itemCreator: function($li, item)
|
||||
{
|
||||
var link = item.id !== undefined ? ('<a href="' + createLink('tree', 'browse', 'root=<?php echo $rootID ?>&viewType=<?php echo $viewType ?>&moduleID={0}&branch={1}'.format(item.id, item.branch)) + '">' + item.name + '</a>') : ('<span class="tree-toggle">' + item.name + '</span>');
|
||||
var link = item.id !== undefined ? ('<a href="' + createLink('tree', 'browse', 'rootID=<?php echo $rootID ?>&viewType=<?php echo $viewType ?>&moduleID={0}&branch={1}'.format(item.id, item.branch)) + '">' + item.name + '</a>') : ('<span class="tree-toggle">' + item.name + '</span>');
|
||||
var $toggle = $('<span class="module-name" data-id="' + item.id + '">' + link + '</span>');
|
||||
if(item.type === 'bug') $toggle.append(' <span class="text-muted">[B]</span>');
|
||||
if(item.type === 'case') $toggle.append(' <span class="text-muted">[C]</span>');
|
||||
@@ -138,19 +138,25 @@ $(function()
|
||||
sort:
|
||||
{
|
||||
title: '<?php echo $lang->tree->dragAndSort ?>',
|
||||
template: '<a class="sort-handler" data-toggle="tooltip" href="javascript:;"><i class="icon icon-move"></i></a>'
|
||||
template: '<a class="sort-handler"><?php echo $lang->tree->sort ?></a>'
|
||||
},
|
||||
edit:
|
||||
{
|
||||
linkTemplate: '<?php echo helper::createLink('tree', 'edit', "moduleID={0}&type=$viewType"); ?>',
|
||||
title: '<?php echo $lang->tree->edit ?>',
|
||||
template: '<a data-toggle="tooltip" href="javascript:;"><?php echo $lang->edit?></a>'
|
||||
template: '<a href="javascript:;"><?php echo $lang->edit?></a>'
|
||||
},
|
||||
"delete":
|
||||
{
|
||||
linkTemplate: '<?php echo helper::createLink('tree', 'delete', "rootID=$rootID&moduleID={0}"); ?>',
|
||||
title: '<?php echo $lang->tree->delete ?>',
|
||||
template: '<a data-toggle="tooltip" href="javascript:;"><?php echo $lang->delete?></a>'
|
||||
template: '<a href="javascript:;"><?php echo $lang->delete?></a>'
|
||||
},
|
||||
subModules:
|
||||
{
|
||||
linkTemplate: '<?php echo helper::createLink('tree', 'browse', "rootID=$rootID&viewType=$viewType&moduleID={0}&branch={1}"); ?>',
|
||||
title: '<?php echo $lang->tree->child ?>',
|
||||
template: '<a href="javascript:;"><?php echo $lang->tree->child?></a>'
|
||||
}
|
||||
},
|
||||
action: function(event)
|
||||
@@ -161,7 +167,8 @@ $(function()
|
||||
$target.modalTrigger(
|
||||
{
|
||||
type: 'ajax',
|
||||
url: action.linkTemplate.format(item.id)
|
||||
url: action.linkTemplate.format(item.id),
|
||||
keyboard: true
|
||||
}).trigger('click');
|
||||
}
|
||||
else if(action.type === 'delete')
|
||||
@@ -182,6 +189,10 @@ $(function()
|
||||
bootbox.alert(lang.timeout);
|
||||
});
|
||||
}
|
||||
else if(action.type === 'subModules')
|
||||
{
|
||||
window.location.href = action.linkTemplate.format(item.id, item.branch);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -114,7 +114,7 @@ $(function()
|
||||
|
||||
|
||||
var title = (item.type === 'product' ? '<i class="icon icon-cube text-muted"></i> ' : '') + item.name;
|
||||
var link = item.id !== undefined ? ('<a href="' + createLink('tree', 'browsetask', 'root=<?php echo $rootID ?>&viewType=task&moduleID={0}'.format(item.id)) + '">' + title + '</a>') : ('<span class="tree-toggle">' + title + '</span>');
|
||||
var link = item.id !== undefined ? ('<a href="' + createLink('tree', 'browsetask', 'rootID=<?php echo $rootID ?>&viewType=task&moduleID={0}'.format(item.id)) + '">' + title + '</a>') : ('<span class="tree-toggle">' + title + '</span>');
|
||||
var $toggle = $('<span class="module-name" data-id="' + item.id + '">' + link + '</span>');
|
||||
if(item.type === 'task')
|
||||
{
|
||||
@@ -131,19 +131,25 @@ $(function()
|
||||
sort:
|
||||
{
|
||||
title: '<?php echo $lang->tree->dragAndSort ?>',
|
||||
template: '<a class="sort-handler" data-toggle="tooltip" href="javascript:;"><i class="icon icon-move"></i></a>'
|
||||
template: '<a class="sort-handler" href="javascript:;"><?php echo $lang->tree->sort ?></a>'
|
||||
},
|
||||
edit:
|
||||
{
|
||||
linkTemplate: '<?php echo helper::createLink('tree', 'edit', "moduleID={0}&type=task"); ?>',
|
||||
title: '<?php echo $lang->tree->edit ?>',
|
||||
template: '<a data-toggle="tooltip" href="javascript:;"><?php echo $lang->edit?></a>'
|
||||
template: '<a href="javascript:;"><?php echo $lang->edit?></a>'
|
||||
},
|
||||
"delete":
|
||||
{
|
||||
linkTemplate: '<?php echo helper::createLink('tree', 'delete', "rootID=$rootID&moduleID={0}"); ?>',
|
||||
title: '<?php echo $lang->tree->delete ?>',
|
||||
template: '<a data-toggle="tooltip" href="javascript:;"><?php echo $lang->delete?></a>'
|
||||
template: '<a href="javascript:;"><?php echo $lang->delete?></a>'
|
||||
},
|
||||
subModules:
|
||||
{
|
||||
linkTemplate: '<?php echo helper::createLink('tree', 'browsetask', "rootID=$rootID&viewType=task&moduleID={0}"); ?>',
|
||||
title: '<?php echo $lang->tree->child ?>',
|
||||
template: '<a href="javascript:;"><?php echo $lang->tree->child?></a>'
|
||||
}
|
||||
},
|
||||
action: function(event)
|
||||
@@ -154,7 +160,8 @@ $(function()
|
||||
$target.modalTrigger(
|
||||
{
|
||||
type: 'ajax',
|
||||
url: action.linkTemplate.format(item.id)
|
||||
url: action.linkTemplate.format(item.id),
|
||||
keyboard: true
|
||||
}).trigger('click');
|
||||
}
|
||||
else if(action.type === 'delete')
|
||||
@@ -179,6 +186,10 @@ $(function()
|
||||
bootbox.alert(lang.timeout);
|
||||
});
|
||||
}
|
||||
else if(action.type === 'subModules')
|
||||
{
|
||||
window.location.href = action.linkTemplate.format(item.id, item.branch);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -14,15 +14,13 @@
|
||||
$webRoot = $this->app->getWebRoot();
|
||||
$jsRoot = $webRoot . "js/";
|
||||
?>
|
||||
<?php include '../../common/view/chosen.html.php'?>
|
||||
<?php include '../../common/view/chosen.html.php';?>
|
||||
<div class='modal-dialog w-500px'>
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title"><strong><?php echo $lang->tree->edit;?></strong></h4>
|
||||
</div>
|
||||
<div class='modal-body'>
|
||||
<div id='titlebar'>
|
||||
<div class='heading'>
|
||||
<span class='prefix'><?php echo html::icon($lang->icons['tree']);?></span>
|
||||
<strong><small class='text-muted'><?php echo html::icon($lang->icons['edit']);?></small> <?php echo $lang->tree->edit;?></strong>
|
||||
</div>
|
||||
</div>
|
||||
<form action="<?php echo inlink('edit', 'module=' . $module->id .'&type=' .$type);?>" target='hiddenwin' class='form-condensed' method='post' class='mt-10px' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<?php if($showProduct):?>
|
||||
|
||||
+23
-20
@@ -989,18 +989,14 @@ function setModal()
|
||||
var type = (setting ? setting.type : false) || ($e.hasClass('iframe') ? 'iframe' : ($e.data('type') || 'ajax'));
|
||||
if(type == 'iframe')
|
||||
{
|
||||
var options =
|
||||
var options = $.extend(
|
||||
{
|
||||
url: url,
|
||||
width: $e.data('width') || 800,
|
||||
height: $e.data('height') || 'auto',
|
||||
icon: $e.data('icon') || '?',
|
||||
title: $e.data('title') || $e.attr('title') || $e.text(),
|
||||
name: $e.data('name') || 'modalIframe',
|
||||
title: $e.attr('title') || $e.text(),
|
||||
cssClass: $e.data('class'),
|
||||
headerless: $e.data('headerless') || false,
|
||||
center: $e.data('center') || true
|
||||
};
|
||||
icon: '?',
|
||||
center: true
|
||||
}, setting, $e.data());
|
||||
|
||||
if(options.icon == '?')
|
||||
{
|
||||
@@ -1008,19 +1004,23 @@ function setModal()
|
||||
options.icon = i.length ? i.attr('class').substring(5) : 'file-text';
|
||||
}
|
||||
|
||||
showIframeModal($.extend(options, setting));
|
||||
showIframeModal(options);
|
||||
}
|
||||
else
|
||||
{
|
||||
initModalFrame();
|
||||
$.get(url, function(data)
|
||||
{
|
||||
var options =
|
||||
var options = $.extend(
|
||||
{
|
||||
width: $e.data('width') || 800,
|
||||
icon: $e.data('icon') || '?',
|
||||
title: $e.data('title') || $e.attr('title') || $e.text(),
|
||||
};
|
||||
width: 800,
|
||||
title: $e.attr('title') || $e.text(),
|
||||
icon: '?',
|
||||
backdrop: 'static',
|
||||
keyboard: false,
|
||||
show: true
|
||||
}, setting, $e.data());
|
||||
|
||||
var ajaxModal = $('#ajaxModal');
|
||||
if(data.indexOf('modal-dialog') < 0)
|
||||
{
|
||||
@@ -1035,8 +1035,7 @@ function setModal()
|
||||
$ajaxModal.data('width', modalWidth).find('.modal-dialog').css('width', modalWidth);
|
||||
ajustModalPosition();
|
||||
}
|
||||
|
||||
ajaxModal.modal('show');
|
||||
ajaxModal.modal(options);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1061,8 +1060,11 @@ function setModal()
|
||||
cssClass: '',
|
||||
headerless: false,
|
||||
waittime: 0,
|
||||
center: true
|
||||
}
|
||||
center: true,
|
||||
backdrop: 'static',
|
||||
keyboard: false,
|
||||
show: true
|
||||
};
|
||||
|
||||
if(typeof(settings) == 'string')
|
||||
{
|
||||
@@ -1118,7 +1120,8 @@ function setModal()
|
||||
}
|
||||
showModal(options, modal, modalBody, dialog);
|
||||
}
|
||||
modal.modal('show');
|
||||
console.log('iframe modal options', options);
|
||||
modal.modal(options);
|
||||
}
|
||||
|
||||
function showModal(options, modal, modalBody, dialog)
|
||||
|
||||
+4
-4
File diff suppressed because one or more lines are too long
@@ -360,13 +360,14 @@ div.form-control[contenteditable='true'] {height: auto; text-align: left; outlin
|
||||
|
||||
/* === Layout === */
|
||||
/* Background */
|
||||
body {font-size: 13px; color:#141414;padding-bottom: 40px;}
|
||||
body {color:#141414; padding-bottom: 40px;}
|
||||
|
||||
/* Header */
|
||||
#header {padding: 12px 20px 0; background:#003366;}
|
||||
|
||||
#topbar {color: #ACCADF;}
|
||||
#topbar > .pull-right {margin-top: -4px; margin-right: -4px;}
|
||||
#topnav .dropdown-submenu > a,
|
||||
#topnav .dropdown-menu {min-width: 110px;}
|
||||
#topnav > .dropdown .caret {border-top-color: #fff}
|
||||
#topnav > .dropdown, #topnav > a {display: block; float: left;}
|
||||
@@ -679,7 +680,6 @@ body {font-size: 13px; color:#141414;padding-bottom: 40px;}
|
||||
|
||||
/* Tree menu. */
|
||||
.tree li:before {width: 8px; height: 8px; background: #f1f1f1; border: 1px solid #ccc; border-radius: 2px; top: 7px;left: 6px;}
|
||||
.tree-lines ul>li:after {width: 15px}
|
||||
.tree-lines li > a.active{font-weight: bold;}
|
||||
|
||||
/* Select all and select reverse. */
|
||||
@@ -722,7 +722,16 @@ body {font-size: 13px; color:#141414;padding-bottom: 40px;}
|
||||
#passwordStrength{display:none;}
|
||||
|
||||
.fixedTfootAction {position: fixed; bottom: 40px; box-shadow: 0 -3px 4px rgba(0,0,0,0.05)}
|
||||
.table > .fixedTfootAction > tr > td {background: #F8FAFE; border-top-color: #bbb; border-bottom: none}
|
||||
.table > .fixedTfootAction > tr > td {background: #114f8e; border: none; color: #fff}
|
||||
.fixedTfootAction .btn {border: 1px solid #fff; border-color: rgba(255,255,255,.5); background-color: #2e6dad!important; text-shadow: none; color: #e5e5e5!important;}
|
||||
.fixedTfootAction .btn:hover {background-color: #114f8e!important;}
|
||||
.fixedTfootAction .pager,
|
||||
.fixedTfootAction .pager > a,
|
||||
.fixedTfootAction .pager > .dropdown > a,
|
||||
.fixedTfootAction .table-actions > .text {color: #e5e5e5}
|
||||
.fixedTfootAction .pager strong,
|
||||
.fixedTfootAction .table-actions > .text strong {color: #fff;}
|
||||
.fixedTfootAction .pager .dropdown > a:hover, .fixedTfootAction .pager > a:hover {background-color: #2e6dad}
|
||||
.fixedTheadOfList {position: fixed; top: 0px; z-index:1000;}
|
||||
.datatable.head-fixed > .datatable-head .table > thead > tr > th,
|
||||
.fixedTheadOfList > thead > tr > th {background-color: #114f8e; border-bottom-color: #bbb; color: #aaa}
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user