diff --git a/lib/base/front/front.class.php b/lib/base/front/front.class.php index 962bed302d..633cdfed84 100644 --- a/lib/base/front/front.class.php +++ b/lib/base/front/front.class.php @@ -1062,7 +1062,6 @@ EOT; $jsConfig->runMode = $runMode; $jsConfig->timeout = isset($config->timeout) ? $config->timeout : ''; $jsConfig->pingInterval = isset($config->pingInterval) ? $config->pingInterval : ''; - $jsConfig->debug = $config->debug; $jsLang = new stdclass(); $jsLang->submitting = isset($lang->loading) ? $lang->loading : ''; diff --git a/module/admin/css/index.css b/module/admin/css/index.css index 1a86a067c9..8da6c963c6 100644 --- a/module/admin/css/index.css +++ b/module/admin/css/index.css @@ -12,7 +12,7 @@ .card a, .card:hover a {color: #444} .card a:hover {color: #000;} -#notice {margin: -20px -20px 0} +#notice {margin: -20px -20px 20px} #titlebar {margin-top: -20px; border-top: none} #notice + #titlebar {margin-top: 0; border-top: 1px solid #e5e5e5} #proversion, #zentaotrain{color:#D2322D} diff --git a/module/block/view/productblock.html.php b/module/block/view/productblock.html.php index 6d7990e262..53591f6755 100644 --- a/module/block/view/productblock.html.php +++ b/module/block/view/productblock.html.php @@ -10,18 +10,18 @@ * @link http://www.zentao.net */ ?> -
- +
+
- - + + - + - - + + @@ -32,13 +32,13 @@ ?> > - - + + - + - - + + diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 22e39c2a18..dff44040ff 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -238,8 +238,8 @@ $lang->project->menu->view = array('link' => '概况|project|view|projectID= $lang->project->subMenu = new stdclass(); $lang->project->subMenu->list = new stdclass(); $lang->project->subMenu->list->task = '任务列表|project|task|projectID=%s'; -$lang->project->subMenu->list->tree = '树状图|project|tree|projectID=%s'; $lang->project->subMenu->list->groupTask = '分组视图|project|groupTask|projectID=%s'; +$lang->project->subMenu->list->tree = '树状图|project|tree|projectID=%s'; $lang->project->subMenu->qa = new stdclass(); $lang->project->subMenu->qa->bug = 'Bug|project|bug|projectID=%s'; diff --git a/module/common/view/footer.html.php b/module/common/view/footer.html.php index 0e078fe3b6..d7d1d9b834 100755 --- a/module/common/view/footer.html.php +++ b/module/common/view/footer.html.php @@ -4,7 +4,7 @@
- + diff --git a/module/doc/view/objectlibs.html.php b/module/doc/view/objectlibs.html.php index c0bf4c40e6..511143d5d4 100644 --- a/module/doc/view/objectlibs.html.php +++ b/module/doc/view/objectlibs.html.php @@ -12,7 +12,9 @@ ?>
+ from == 'doc'):?> +
@@ -68,8 +70,8 @@
", 'hiddenwin', "title='{$lang->doc->collect}' class='btn btn-link'")?> - ", '', "title='{$lang->edit}' class='btn btn-link' data-toggle='modal'")?> - ", '', "title='{$lang->delete}' class='btn btn-link'")?> + ", '', "title='{$lang->edit}' class='btn btn-link iframe'")?> + ", 'hiddenwin', "title='{$lang->delete}' class='btn btn-link'")?>
diff --git a/module/my/css/profile.css b/module/my/css/profile.css index 4944237d1a..e69de29bb2 100644 --- a/module/my/css/profile.css +++ b/module/my/css/profile.css @@ -1 +0,0 @@ -.main-content .main-header .actions {position: absolute; top: 12px; right: 60px; float: right !important;} diff --git a/module/my/view/project.html.php b/module/my/view/project.html.php index d4169d4b2f..1314634c98 100644 --- a/module/my/view/project.html.php +++ b/module/my/view/project.html.php @@ -20,40 +20,42 @@
-
product->name;?>product->plans;?>product->releases;?>product->plans;?>product->releases;?> product->currentProject;?>product->currentProject;?> story->statusList['active'] . $lang->story->common;?>bug->unResolved . $lang->bug->common;?>story->statusList['active'] . $lang->story->common;?>bug->unResolved . $lang->bug->common;?>
name?>plans?>releases?>plans?>releases?> id, '');?>id, '');?> stories['active']?>unResolved?>stories['active']?>unResolved?>
id"), "  " . $doc->title);?> id&objectType=doc", "", 'hiddenwin', "title='{$lang->doc->collect}' class='btn btn-link'")?> - id", "", '', "title='{$lang->edit}' class='btn btn-link'")?> - id", "", '', "title='{$lang->delete}' class='btn btn-link'")?> + id", "", '', "title='{$lang->edit}' class='btn btn-link iframe'")?> + id", "", 'hiddenwin', "title='{$lang->delete}' class='btn btn-link'")?> addedBy);?>
- - - - - - - - - - - - - - - - createLink('project', 'browse', "projectID=$project->id");?> - - - - - - - delay)):?> - - - - - - - - - - -
idAB;?>project->code;?>project->name;?>project->begin;?>project->end;?>statusAB;?>team->role;?>team->join;?>team->hours;?>
id);?>code;?>name);?>begin;?>end;?>project->delayed;?>project->statusList[$project->status];?>role;?>join;?>hours;?>
+
+ + + + + + + + + + + + + + + + + createLink('project', 'browse', "projectID=$project->id");?> + + + + + + + delay)):?> + + + + + + + + + + +
idAB;?>project->code;?>project->name;?>project->begin;?>project->end;?>statusAB;?>team->role;?>team->join;?>team->hours;?>
id);?>code;?>name);?>begin;?>end;?>project->delayed;?>project->statusList[$project->status];?>role;?>join;?>hours;?>
+
diff --git a/module/my/view/score.html.php b/module/my/view/score.html.php index bbd746d5b1..ac5522ffc7 100644 --- a/module/my/view/score.html.php +++ b/module/my/view/score.html.php @@ -20,35 +20,37 @@ my->scoreRule, '', "class='btn btn-primary'");?> -
- - - - - - - - - - - - - - - - - - - - - - - - - -
score->time; ?>score->module; ?>score->method; ?>score->before; ?>score->score; ?>score->after; ?>score->desc; ?>
time; ?>score->modules[$score->module]; ?>score->methods[$score->module][$score->method]; ?>before; ?>score; ?>after; ?>desc; ?>
- - - +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
score->time; ?>score->module; ?>score->method; ?>score->before; ?>score->score; ?>score->after; ?>score->desc; ?>
time; ?>score->modules[$score->module]; ?>score->methods[$score->module][$score->method]; ?>before; ?>score; ?>after; ?>desc; ?>
+ + + +
diff --git a/module/my/view/task.html.php b/module/my/view/task.html.php index cd09977fa8..382f9b725b 100644 --- a/module/my/view/task.html.php +++ b/module/my/view/task.html.php @@ -30,7 +30,7 @@ - +
@@ -38,18 +38,18 @@ idAB);?> - priAB);?> - task->project);?> - task->name);?> - openedByAB);?> - task->assignedTo);?> - task->finishedBy);?> - task->estimateAB);?> - task->consumedAB);?> - task->leftAB);?> - task->deadlineAB);?> - statusAB);?> - actions;?> + priAB);?> + task->project);?> + task->name);?> + openedByAB);?> + task->assignedTo);?> + task->finishedBy);?> + task->estimateAB);?> + task->consumedAB);?> + task->leftAB);?> + task->deadlineAB);?> + statusAB);?> + actions;?> @@ -64,21 +64,21 @@ id);?> - pri;?>'>task->priList, $task->pri);?> - createLink('project', 'browse', "projectid=$task->projectID"), $task->projectName);?> - - team)) echo '' . $this->lang->task->multipleAB . ' ';?> - parent)) echo '' . $this->lang->task->childrenAB . ' ';?> + pri;?>'>task->priList, $task->pri);?> + createLink('project', 'browse', "projectid=$task->projectID"), $task->projectName);?> + + team)) echo '' . $this->lang->task->multipleAB . ' ';?> + parent)) echo '' . $this->lang->task->childrenAB . ' ';?> createLink('task', 'view', "taskID=$task->id"), $task->name, null, "style='color: $task->color'");?> - openedBy);?> - assignedTo);?> - finishedBy);?> - estimate;?> - consumed;?> - left;?> - '>deadline, 0, 4) > 0) echo $task->deadline;?> - task->statusList[$task->status];?> + openedBy);?> + assignedTo);?> + finishedBy);?> + estimate;?> + consumed;?> + left;?> + '>deadline, 0, 4) > 0) echo $task->deadline;?> + task->statusList[$task->status];?> project&taskID=$task->id", $task, 'list', 'hand-right', '', 'iframe', true); diff --git a/module/my/view/testcase.html.php b/module/my/view/testcase.html.php index 9b0345a8b6..f2fd02f3b2 100644 --- a/module/my/view/testcase.html.php +++ b/module/my/view/testcase.html.php @@ -25,7 +25,7 @@ ?>
-
+
-
-
- - - - - - - - - - - - - - - - - - - - - - - - + + + +
idAB);?> testtask->name);?> testtask->project);?> testtask->build);?> testtask->begin);?> testtask->end);?> statusAB);?>actions;?>
id);?>createLink('testtask', 'view', "taskID=$task->id"), $task->name);?>projectName?>build == 'trunk' ? print($lang->trunk) : print(html::a($this->createLink('build', 'view', "buildID=$task->build"), $task->buildName));?>begin?>end?>testtask->statusList[$task->status];?> - id", 'play', 'list', 'sitemap'); - common::printIcon('testtask', 'linkCase', "taskID=$task->id", '', 'list', 'link'); - common::printIcon('testtask', 'edit', "taskID=$task->id", '', 'list'); +
+ + + + + + + + + + + + + + + + + + + + + + + + + + - - - -
idAB);?> testtask->name);?> testtask->project);?> testtask->build);?> testtask->begin);?> testtask->end);?> statusAB);?>actions;?>
id);?>createLink('testtask', 'view', "taskID=$task->id"), $task->name);?>projectName?>build == 'trunk' ? print($lang->trunk) : print(html::a($this->createLink('build', 'view', "buildID=$task->build"), $task->buildName));?>begin?>end?>testtask->statusList[$task->status];?> + id", 'play', 'list', 'sitemap'); + common::printIcon('testtask', 'linkCase', "taskID=$task->id", '', 'list', 'link'); + common::printIcon('testtask', 'edit', "taskID=$task->id", '', 'list'); - if(common::hasPriv('testtask', 'delete')) - { - $deleteURL = $this->createLink('testtask', 'delete', "taskID=$task->id&confirm=yes"); - echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"taskList\",confirmDelete)", '', '', "title='{$lang->testtask->delete}' class='btn'"); - } - ?> -
- - - + if(common::hasPriv('testtask', 'delete')) + { + $deleteURL = $this->createLink('testtask', 'delete', "taskID=$task->id&confirm=yes"); + echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"taskList\",confirmDelete)", '', '', "title='{$lang->testtask->delete}' class='btn'"); + } + ?> +
+ + + +
diff --git a/module/product/control.php b/module/product/control.php index aa176f27ad..9fb1944731 100644 --- a/module/product/control.php +++ b/module/product/control.php @@ -15,7 +15,7 @@ class product extends control /** * Construct function. - * + * * @access public * @return void */ @@ -39,11 +39,11 @@ class product extends control * Index page, to browse. * * @param string $locate locate to browse page or not. If not, display all products. - * @param int $productID - * @param string $orderBy - * @param int $recTotal - * @param int $recPerPage - * @param int $pageID + * @param int $productID + * @param string $orderBy + * @param int $recTotal + * @param int $recPerPage + * @param int $pageID * @access public * @return void */ @@ -63,10 +63,10 @@ class product extends control } /** - * project - * - * @param string $status - * @param int $productID + * project + * + * @param string $status + * @param int $productID * @access public * @return void */ @@ -195,8 +195,8 @@ class product extends control } /** - * Create a product. - * + * Create a product. + * * @access public * @return void */ @@ -231,8 +231,8 @@ class product extends control /** * Edit a product. - * - * @param int $productID + * + * @param int $productID * @access public * @return void */ @@ -240,7 +240,7 @@ class product extends control { if(!empty($_POST)) { - $changes = $this->product->update($productID); + $changes = $this->product->update($productID); if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError())); if($action == 'undelete') { @@ -277,8 +277,8 @@ class product extends control /** * Batch edit products. - * - * @param int $productID + * + * @param int $productID * @access public * @return void */ @@ -333,8 +333,8 @@ class product extends control /** * Close product. - * - * @param int $productID + * + * @param int $productID * @access public * @return void */ @@ -368,8 +368,8 @@ class product extends control /** * View a product. - * - * @param int $productID + * + * @param int $productID * @access public * @return void */ @@ -403,8 +403,8 @@ class product extends control /** * Delete a product. - * - * @param int $productID + * + * @param int $productID * @param string $confirm yes|no * @access public * @return void @@ -425,9 +425,9 @@ class product extends control } /** - * Road map of a product. - * - * @param int $productID + * Road map of a product. + * + * @param int $productID * @access public * @return void */ @@ -451,12 +451,12 @@ class product extends control /** * Product dynamic. - * - * @param string $type - * @param string $orderBy - * @param int $recTotal - * @param int $recPerPage - * @param int $pageID + * + * @param string $type + * @param string $orderBy + * @param int $recTotal + * @param int $recPerPage + * @param int $pageID * @access public * @return void */ @@ -511,9 +511,9 @@ class product extends control /** * AJAX: get projects of a product in html select. - * - * @param int $productID - * @param int $projectID + * + * @param int $productID + * @param int $projectID * @param string $number * @access public * @return void @@ -529,7 +529,7 @@ class product extends control $projects = $this->product->getProjectPairs($productID, $branch ? "0,$branch" : $branch, $params = 'nodeleted'); } if($this->app->getViewType() == 'json') die(json_encode($projects)); - + if($number === '') { die(html::select('project', $projects, $projectID, 'class=form-control onchange=loadProjectRelated(this.value)')); @@ -543,10 +543,10 @@ class product extends control } /** - * AJAX: get plans of a product in html select. - * - * @param int $productID - * @param int $planID + * AJAX: get plans of a product in html select. + * + * @param int $productID + * @param int $planID * @param bool $needCreate * @param string $expired * @access public @@ -557,7 +557,7 @@ class product extends control $plans = $this->loadModel('productplan')->getPairs($productID, $branch, $expired); $field = $fieldID ? "plans[$fieldID]" : 'plan'; $output = html::select($field, $plans, $planID, "class='form-control chosen'"); - if(count($plans) == 1 and $needCreate) + if(count($plans) == 1 and $needCreate) { $output .= ""; $output .= html::a($this->createLink('productplan', 'create', "productID=$productID&branch=$branch"), $this->lang->productplan->create, '_blank'); @@ -570,11 +570,11 @@ class product extends control /** * Drop menu page. - * - * @param int $productID - * @param string $module - * @param string $method - * @param string $extra + * + * @param int $productID + * @param string $module + * @param string $method + * @param string $extra * @access public * @return void */ @@ -598,9 +598,9 @@ class product extends control $productList = array(); foreach($lines as $id => $name) { - foreach($products as $key => $product) + foreach($products as $key => $product) { - if($product->line == $id) + if($product->line == $id) { $product->name = $name . '/' . $product->name; $productList[] = $product; @@ -616,7 +616,7 @@ class product extends control /** * Update order. - * + * * @access public * @return void */ @@ -637,8 +637,8 @@ class product extends control /** * Show error no product when visit qa. - * - * @param string $fromModule + * + * @param string $fromModule * @access public * @return void */ @@ -691,10 +691,10 @@ class product extends control } /** - * Export product. - * - * @param string $status - * @param string $orderBy + * Export product. + * + * @param string $status + * @param string $orderBy * @access public * @return void */ @@ -755,8 +755,8 @@ class product extends control /** * Build of product. - * - * @param int $productID + * + * @param int $productID * @access public * @return void */ diff --git a/module/product/model.php b/module/product/model.php index dfd1b743f3..8ac20f5431 100644 --- a/module/product/model.php +++ b/module/product/model.php @@ -629,7 +629,7 @@ class productModel extends model $lastRoadmap['total'] = 0; foreach($lastKeys as $key) { - if($key == '2030') + if($key == '2030') { $lastRoadmap[$this->lang->productplan->future] = $groupRoadmap[$key]; } @@ -832,7 +832,7 @@ class productModel extends model /** * Get priv products. - * + * * @access public * @return array */ diff --git a/module/product/view/browse.html.php b/module/product/view/browse.html.php index 84f50a2d54..134d58036f 100644 --- a/module/product/view/browse.html.php +++ b/module/product/view/browse.html.php @@ -57,7 +57,7 @@
id"), '', '', "class='btn btn-icon' title='{$lang->project->create}'"); - if(common::hasPriv('productplan', 'linkStory')) echo html::a(inlink('view', "planID=$plan->id&type=story&orderBy=id_desc&link=true"), '', '', "class='btn btn-icon' title='{$lang->productplan->linkStory}'"); - if(common::hasPriv('productplan', 'linkBug') and $config->global->flow != 'onlyStory') echo html::a(inlink('view', "planID=$plan->id&type=bug&orderBy=id_desc&link=true"), '', '', "class='btn btn-icon' title='{$lang->productplan->linkBug}'"); + if(common::hasPriv('project', 'create')) echo html::a(helper::createLink('project', 'create', "projectID=©ProjectID=&planID=$plan->id"), '', '', "class='btn' title='{$lang->project->create}'"); + if(common::hasPriv('productplan', 'linkStory')) echo html::a(inlink('view', "planID=$plan->id&type=story&orderBy=id_desc&link=true"), '', '', "class='btn' title='{$lang->productplan->linkStory}'"); + if(common::hasPriv('productplan', 'linkBug') and $config->global->flow != 'onlyStory') echo html::a(inlink('view', "planID=$plan->id&type=bug&orderBy=id_desc&link=true"), '', '', "class='btn' title='{$lang->productplan->linkBug}'"); common::printIcon('productplan', 'edit', "planID=$plan->id", $plan, 'list'); ?> diff --git a/module/project/control.php b/module/project/control.php index 4ab4477ea1..779c84571f 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -984,7 +984,7 @@ class project extends control $acl = $copyProject->acl; $whitelist = $copyProject->whitelist; $products = $this->project->getProducts($copyProjectID); - } + } if(!empty($planID)) { @@ -1462,7 +1462,7 @@ class project extends control $this->view->project = $project; $this->view->projectID = $projectID; $this->view->level = $type; - $this->view->tree = $tree; + $this->view->tree = $this->project->printTree($tree); $this->display(); } @@ -2309,4 +2309,88 @@ class project extends control } die(js::locate(helper::createLink('project', 'story', 'projectID=' . $projectID), 'parent')); } + + /** + * Story info for tree list. + * + * @param int $storyID + * @param int $version + * + * @access public + * @return void + */ + public function treeStory($storyID, $version = 0) + { + $this->loadModel('story'); + $story = $this->story->getById($storyID, $version, true); + + $story->files = $this->loadModel('file')->getByObject('story', $storyID); + $product = $this->dao->findById($story->product)->from(TABLE_PRODUCT)->fields('name, id, type')->fetch(); + $plan = $this->dao->findById($story->plan)->from(TABLE_PRODUCTPLAN)->fetch('title'); + $bugs = $this->dao->select('id,title')->from(TABLE_BUG)->where('story')->eq($storyID)->andWhere('deleted')->eq(0)->fetchAll(); + $fromBug = $this->dao->select('id,title')->from(TABLE_BUG)->where('toStory')->eq($storyID)->fetch(); + $cases = $this->dao->select('id,title')->from(TABLE_CASE)->where('story')->eq($storyID)->andWhere('deleted')->eq(0)->fetchAll(); + $modulePath = $this->loadModel('tree')->getParents($story->module); + $users = $this->loadModel('user')->getPairs('noletter'); + + $this->view->product = $product; + $this->view->branches = $product->type == 'normal' ? array() : $this->loadModel('branch')->getPairs($product->id); + $this->view->plan = $plan; + $this->view->bugs = $bugs; + $this->view->fromBug = $fromBug; + $this->view->cases = $cases; + $this->view->story = $story; + $this->view->users = $users; + $this->view->projects = $this->loadModel('project')->getPairs('nocode'); + $this->view->actions = $this->loadModel('action')->getList('story', $storyID); + $this->view->modulePath = $modulePath; + $this->view->version = $version == 0 ? $story->version : $version; + $this->view->preAndNext = $this->loadModel('common')->getPreAndNextObject('story', $storyID); + $this->display(); + } + + /** + * Task info for tree list. + * + * @param int $taskID + * + * @access public + * @return void + */ + public function treeTask($taskID) + { + $this->loadModel('task'); + $task = $this->task->getById($taskID, true); + if($task->fromBug != 0) + { + $bug = $this->loadModel('bug')->getById($task->fromBug); + $task->bugSteps = ''; + if($bug) + { + $task->bugSteps = $this->loadModel('file')->setImgSize($bug->steps); + foreach($bug->files as $file) $task->files[] = $file; + } + $this->view->fromBug = $bug; + } + else + { + $story = $this->loadModel('story')->getById($task->story); + $task->storySpec = empty($story) ? '' : $this->loadModel('file')->setImgSize($story->spec); + $task->storyVerify = empty($story) ? '' : $this->loadModel('file')->setImgSize($story->verify); + $task->storyFiles = $this->loadModel('file')->getByObject('story', $task->story); + } + + if($task->team) $this->lang->task->assign = $this->lang->task->transfer; + + /* Update action. */ + if($task->assignedTo == $this->app->user->account) $this->loadModel('action')->read('task', $taskID); + + $project = $this->project->getById($task->project); + + $this->view->task = $task; + $this->view->project = $project; + $this->view->actions = $this->loadModel('action')->getList('task', $taskID); + $this->view->users = $this->loadModel('user')->getPairs('noletter'); + $this->display(); + } } diff --git a/module/project/css/common.css b/module/project/css/common.css index 472a5bf6d1..0a25a0bdd8 100644 --- a/module/project/css/common.css +++ b/module/project/css/common.css @@ -5,13 +5,13 @@ #productsBox .has-branch select {width: 100%; display: table-cell; border-radius: 0 2px 2px 0; border-left: none;} #productsBox .has-branch select:focus {box-shadow: inset 1px 0 #4d90fe} -.table-children > td:first-child{border-left:2px solid #ccc;} -.table-children > td:last-child{border-right:2px solid #ccc;} -.fixed-left .table-children > td{border-right:none;} -.flexarea .table-children > td{border-left:none;border-right:none;} -.fixed-right .table-children > td{border-left:none;} -.table-children.table-child-top{border-top:2px solid #ccc;} -.table-children.table-child-bottom{border-bottom:2px solid #ccc;} -.table-striped>tbody>tr.table-children:nth-child(odd)>td, .table-striped>tbody>tr.table-children:nth-child(odd)>th{background-color:#fff;} +.table-children {border-left: 2px solid #cbd0db; border-right: 2px solid #cbd0db;} +.table-children.table-child-top {border-top: 2px solid #cbd0db;} +.table-children.table-child-bottom {border-bottom: 2px solid #cbd0db;} +.table td.has-child > .task-toggle {color: #838a9d; position: relative; top: -1px;} +.table td.has-child > .task-toggle:hover {color: #006af1; cursor: pointer;} +.table td.has-child > .task-toggle > .icon {font-size: 16px; display: inline-block; transition: transform .2s;} +.table td.has-child > .task-toggle > .icon:before {text-align: left;} +.table td.has-child > .task-toggle.collapsed > .icon {transform: rotate(-90deg);} .chosen-container-single .chosen-single > span{max-width:200px;} diff --git a/module/project/css/task.css b/module/project/css/task.css index 2f40bcc11f..e69de29bb2 100644 --- a/module/project/css/task.css +++ b/module/project/css/task.css @@ -1,29 +0,0 @@ -.red{color:red;} - -.bug, .task {color:gray; font-size:9px} -.cont-lt1 .side{width:220px} -#hideButton{cursor:pointer;} -#hideButton span{padding:2px 10px; background:url(theme/default/images/main/zt-icons.png) -100px -161px;} -#featurebar .f-right .icon-green-task-import {padding:2px 8px; background:url(theme/default/images/main/zt-icons.png) 0px -82px;} -.sub-featurebar #querybox {margin:0px;} -.sub-featurebar #bysearchTab.active {padding:0px;} -.sub-featurebar #bysearchTab.active:hover {background:#fff;} - -#createActionMenu .dropdown-menu {width:100%;} - -.dropdown-menu.with-search {padding: 0; min-width: 150px; overflow: hidden; max-height: 302px;} -.dropdown-menu > .menu-search .input-group {width:100%;} -.dropdown-menu > .menu-search .input-group-addon {position: absolute; right: 10px; top: 0; z-index: 10; background: none; border: none; color: #666} -.dropdown-menu > .menu-search .form-control {border: none!important; box-shadow: none!important; border-top: 1px solid #ddd!important;} -.dropdown-list {display: block; padding: 0; max-height: 270px; overflow-y: auto;} -.dropdown-list > li > a {display: block; padding: 3px 20px; clear: both; font-weight: normal; line-height: 1.53846154; color: #141414; white-space: nowrap;} -.dropdown-list > li > a:hover, -.dropdown-list > li > a:focus {color: #1a4f85;text-decoration: none;background-color: #ddd;} - -.pl-5px{padding-left:5px;} - -tbody > tr > td > .btn-icon {margin-right: 2px} -#projectTaskForm{padding:0px 1px;} - -.table td.has-child > a {max-width: 90%; max-width: calc(100% - 30px); display: inline-block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;} -.table td.has-child > .task-toggle {position: relative; top: 1px} diff --git a/module/project/css/tree.css b/module/project/css/tree.css index ccb2a8032d..ff6b6868bf 100644 --- a/module/project/css/tree.css +++ b/module/project/css/tree.css @@ -1,35 +1,51 @@ -.no-padding {padding: 0!important;} +#taskTree li {padding: 0 0 0 8px;} +#taskTree li.has-list {padding-left: 20px;} +#taskTree li > a {display: block; padding: 5px 0; border-radius: 2px; padding-left: 6px;} +#taskTree li > a > span {display: inline-block;} +#taskTree li > a > span + span {margin-left: 8px;} +#taskTree li.selected > a {background-color: #E8F3FC;} +#taskTree li.selected > a > span.title {color: #006AF1;} +.label-product, #taskTree .item-product > a > .label-type {background: #88DE8B;} +.label-story, #taskTree .item-story > a > .label-type {background: #00A9FC;} +.label-module, #taskTree .item-module > a > .label-type {background: #52CEDD;} +.label-task, #taskTree .item-task > a > .label-type {background: #006AF1;} +#taskTree li > a > span.title {color: #3C4353; white-space: nowrap; max-width: 60%; overflow: hidden; text-overflow: ellipsis; vertical-align: middle;} +#taskTree li > a > span.user {color: #A6AAB8;} +#taskTree li > a > span.user > .icon-person {font-size: 14px; position: relative; top: -1px;} +#taskTree li > .list-toggle {transform: rotate(0deg); width: 16px; height: 16px; border: 4px solid #CBD0DB; border-radius: 2px; top: 7px;} +#taskTree li > .list-toggle:before {content: ' '; display: block; position: absolute; border: 1px solid #CBD0DB; top: 2px; left: -3px; right: -3px; bottom: 2px; min-width: 0; transition: all .2s;} +#taskTree li > .list-toggle:hover:before, +#taskTree li > .list-toggle:hover {border-color: #006AF1;} +#taskTree li.open > .list-toggle {width: 12px; height: 12px; top: 9px; background-color: #CBD0DB; border-width: 3px; left: 3px;} +#taskTree li.open > .list-toggle:before {border: none; height: 2px; width: 6px; left: 0; top: 2px; background: #fff;} +#taskTree li.open > .list-toggle:hover {background: #006AF1;} -#projectTree {margin-bottom: 0} -#projectTree .tree-item-id {display: inline-block; font-size: 12px; border: 1px solid #aaa; line-height: 14px; color: #666; padding: 0 2px; margin-right: 5px; min-width: 16px; text-align: center; border-radius: 1px;} -#projectTree .label-story {line-height: 14px; padding: 0 2px; font-size: 12px; display: inline-flex; margin-right: 5px; position: relative; top: -1px; background: #8666b8; color: #fff; border: 1px solid #8666b8; border-radius: 1px;} -#projectTree > .tree-action-item {display: none!important} -#projectTree li > .tree-item-wrapper > .tree-toggle {display: block} -#projectTree li > .tree-item-wrapper:hover {background-color: #edf3fe; cursor: pointer; margin-left: -20px; padding-left: 20px;} -#projectTree li {line-height: 24px; padding-top: 0; padding-bottom: 0} -#projectTree > li.open > .tree-item-wrapper {border-bottom: none} -#projectTree.tree li.has-list.open > ul:after {top: -10px; bottom: 17px; display: none} -#projectTree.tree ul > li.has-list:after {top: 10px} -#projectTree.tree ul > li:after {top: 11px} -#projectTree.tree ul > li:before {display: block; content: ' '; border: none; border-left: 1px dotted #999; top: -8px; bottom: 9px; left: -11px; position: absolute; width: auto; height: auto} -#projectTree.tree ul > li:last-child:before {bottom: auto; height: 19px} -#projectTree.tree ul > li > .tree-item-wrapper:before {display: none;} -#projectTree.tree ul > li.has-list > .tree-item-wrapper:before {display: none;} -#projectTree.tree ul > li.item-type-task > .tree-item-wrapper {padding-left: 15px; margin-left: -15px;} -#projectTree.tree ul > li.item-type-task > .tree-item-wrapper:hover {background-color: #edf3fe} -#projectTree.tree ul > li.item-type-task > .tree-item-wrapper:before {left: 0; z-index: 2} -#projectTree.tree li>.list-toggle {top: -2px} -#projectTree.tree li:before {display: none} -#projectTree .item-type-story > ul > li {padding-left: 10px;} -#projectTree .item-type-tasks > .tree-item-wrapper:hover {background-color: #f5f5f5} -#projectTree .task-assignto {display: inline-block; margin-left: 10px; color: #808080} -#projectTree .task-info {display: none;} -#projectTree .task-info > div {display: inline-block; margin: 0 5px;} -#projectTree .task-info > div.buttons {position: relative; top: 2px} -#projectTree .item-type-task:hover .task-info {display: inline-block; margin-left:10px;} +#taskTree ul > li:after {display: block; position: absolute; content: ' '; border-top: 2px solid #EDEFF3; top: 14px; left: -12px; z-index: 1; width: 10px;} +#taskTree ul > li:before, +#taskTree ul > li.has-list:before {background: none; content: ' '; display: block; position: absolute; width: auto; height: auto; border: none; border-left: 2px solid #EDEFF3; top: -13px; bottom: 12px; left: -12px;} +#taskTree ul > li:last-child:before {bottom: auto; height: 29px;} +#taskTree ul > li:first-child:before {top: -9px;} +#taskTree ul > li.tree-single-item:before {height: 23px;} +#taskTree ul > li.has-list:after {width: 14px;} -.tree-view-btn {min-width: 36px;} -.main > .panel > .panel-heading > .panel-actions {margin-top: -8px; margin-right: -12px;} +.tree-show-root .btn-tree-view[data-type="root"], +.btn-tree-view[data-type="all"] {display: none;} +.tree-show-root .btn-tree-view[data-type="all"] {display: inline-block;} -.label-task-count {background: #ddd; color: #333} +#itemContent {min-height: 200px;} +#mainContent > .side-col {width: 460px; display: table-cell; overflow: hidden; transition: width .2s;} +#mainContent > .side-col > .cell {opacity: 1; transition: opacity .2s .1s;} +#mainContent.hide-side > .side-col {display: table-cell; width: 0px;} +#mainContent.hide-side > .side-col > .cell {opacity: 0;} + +h2.detail-title {font-size: 16px;} +h2.detail-title .label-id, h2.detail-title .label {top: -1px} +#itemContent > .detail:first-child {padding-top: 10px;} +.detail-content > .btn-toolbar {margin-top: 15px;} +.detail-content > .infos > span {display: inline-block;} +.detail-content > .infos > span + span {margin-left: 15px;} +.detail-content > .infos + .infos {margin-top: 5px;} +.detail + .detail {padding-top: 10px;} +.btn-comment.pull-right {z-index: 10;} +details .btn-comment.pull-right {right: 30px;} diff --git a/module/project/js/common.js b/module/project/js/common.js index 8c190e1f15..0d8b3abd47 100644 --- a/module/project/js/common.js +++ b/module/project/js/common.js @@ -220,15 +220,15 @@ function loadBranch(){} /* Auto compute the work days. */ $(function() { - if(typeof(replaceID) != 'undefined') - { - setModal4List('iframe', replaceID, function($list) - { - $list.find('.progress-pie:visible').progressPie(); - var datatable = $list.data('zui.datatable'); - if(datatable) datatable.$datatable.find('.progress-pie:visible').progressPie(); - }); - } + // if(typeof(replaceID) != 'undefined') + // { + // setModal4List('iframe', replaceID, function($list) + // { + // $list.find('.progress-pie:visible').progressPie(); + // var datatable = $list.data('zui.datatable'); + // if(datatable) datatable.$datatable.find('.progress-pie:visible').progressPie(); + // }); + // } $(".date").bind('dateSelected', function() { computeWorkDays(this.id); @@ -239,19 +239,10 @@ $(function() { $(document).on('click', '.task-toggle', function(e) { - var $toggleIcon = $(this).find('i'); - var id = $(this).data('id'); - - if($toggleIcon.hasClass('icon-double-angle-down')) - { - $('tr.parent-'+id).show(); - $toggleIcon.removeClass('icon-double-angle-down').addClass('icon-double-angle-up'); - } - else if($toggleIcon.hasClass('icon-double-angle-up')) - { - $('tr.parent-'+id).hide(); - $toggleIcon.removeClass('icon-double-angle-up').addClass('icon-double-angle-down'); - } + var $toggle = $(this); + var id = $(this).data('id'); + var isCollapsed = $toggle.toggleClass('collapsed').hasClass('collapsed'); + $toggle.closest('tbody').find('tr.parent-' + id).toggle(!isCollapsed); e.stopPropagation(); e.preventDefault(); diff --git a/module/project/js/tree.js b/module/project/js/tree.js new file mode 100644 index 0000000000..4e8f461880 --- /dev/null +++ b/module/project/js/tree.js @@ -0,0 +1,100 @@ +$(function() +{ + var $taskTree = $('#taskTree').tree( + { + name: 'taskTree', + initialState: 'preserve' + }); + + var taskTree = $taskTree.data('zui.tree'); + + // 根据列表展开树形列表 + var showTreeLevel = function(level) + { + if (level === 'root') + { + taskTree.collapse(); + } + else if (level === 'all') + { + taskTree.collapse(); + taskTree.expand($taskTree.find('li.has-list'), true); + } + else if (level === 'task') + { + taskTree.collapse(); + taskTree.show($taskTree.find('li.item-task').parent().parent(), true); + } + else if (level === 'story') + { + taskTree.collapse(); + taskTree.show($taskTree.find('li.item-story').parent().parent(), true); + } + $('#main').toggleClass('tree-show-root', level === 'root'); + }; + + $(document).on('click', '.btn-tree-view', function() + { + showTreeLevel($(this).data('type')); + }); + + // 第一次访问时,展示所以节点 + if (!$.zui.store.get('zui.tree::taskTree#taskTree')) showTreeLevel('all'); + + // 在右侧显示内容 + var $itemContent = $('#itemContent'); + var $mainContent = $('#mainContent'); + var isItemLoading = false, lastAjaxRequest; + var showItem = function(url, loadingText) + { + $.zui.messager.hide(); + $mainContent.toggleClass('hide-side', !url); + if (!url) + { + $taskTree.find('li.selected').removeClass('selected'); + isItemLoading = false; + return; + } + if (lastAjaxRequest) lastAjaxRequest.abort(); + $itemContent.empty().addClass('loading').attr('data-loading', loadingText || ''); + isItemLoading = true; + lastAjaxRequest = $.ajax( + { + url: url, + success: function(data) + { + if (!isItemLoading) return; + $itemContent.html(data).removeClass('loading'); + lastAjaxRequest = null; + isItemLoading = false; + $itemContent.find('.text-limit').textLimit(); + $itemContent.find('.histories').histories(); + }, + error: function() + { + $mainContent.addClass('hide-side'); + isItemLoading = false; + $.zui.messager.danger(window.lang.timeout); + } + }); + }; + + var stopPropagation = function(e) {e.stopPropagation();}; + $taskTree.on('click', '.tree-link', function(e) + { + var $link = $(this); + showItem($link.attr('href'), $link.find('.title').text()); + $taskTree.find('li.selected').removeClass('selected'); + $link.closest('li').addClass('selected'); + e.preventDefault(); + stopPropagation(e); + }); + + $itemContent.on('click', stopPropagation); + $taskTree.on('click', stopPropagation); + + $(document).on('click', function() + { + showItem(false); + }); +}); diff --git a/module/project/lang/en.php b/module/project/lang/en.php index 9d7b341a53..38f3ad2cdd 100644 --- a/module/project/lang/en.php +++ b/module/project/lang/en.php @@ -297,10 +297,10 @@ $lang->project->featureBar['task']['needconfirm'] = 'StoryChanged'; $lang->project->featureBar['task']['status'] = $lang->project->statusSelects['']; $lang->project->treeLevel = array(); +$lang->project->treeLevel['all'] = 'Expand All'; $lang->project->treeLevel['root'] = 'Collapse All'; $lang->project->treeLevel['story'] = 'Show Story'; $lang->project->treeLevel['task'] = 'Show Task'; -$lang->project->treeLevel['all'] = 'Expand All'; global $config; if($config->global->flow == 'onlyTask') diff --git a/module/project/lang/zh-cn.php b/module/project/lang/zh-cn.php index 666d0685e6..19ccb1e108 100644 --- a/module/project/lang/zh-cn.php +++ b/module/project/lang/zh-cn.php @@ -305,10 +305,10 @@ $lang->project->featureBar['task']['needconfirm'] = '需求变动'; $lang->project->featureBar['task']['status'] = $lang->project->statusSelects['']; $lang->project->treeLevel = array(); -$lang->project->treeLevel['root'] = '全部折叠'; -$lang->project->treeLevel['story'] = '显示需求'; -$lang->project->treeLevel['task'] = '显示任务'; $lang->project->treeLevel['all'] = '全部展开'; +$lang->project->treeLevel['root'] = '全部折叠'; +$lang->project->treeLevel['story'] = '只看需求'; +$lang->project->treeLevel['task'] = '只看任务'; global $config; if($config->global->flow == 'onlyTask') diff --git a/module/project/model.php b/module/project/model.php index 1855765bb0..9177e7e92a 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -1381,8 +1381,8 @@ class projectModel extends model /** * Stat story, task, bug data for project. - * - * @param int $projectID + * + * @param int $projectID * @access public * @return void */ @@ -2545,7 +2545,7 @@ class projectModel extends model $taskGroups[$task->module][$task->story][$task->id] = $task; if(!empty($childTasks[$task->id])) { - $taskGroups[$task->module][$task->story][$task->id]->children = $childTasks[$task->id]; + $taskGroups[$task->module][$task->story][$task->id]->children = $childTasks[$task->id]; } } } @@ -2581,6 +2581,8 @@ class projectModel extends model $storyItem->color = $story->color; $storyItem->pri = $story->pri; $storyItem->storyId = $story->id; + $storyItem->openedBy = $story->openedBy; + $storyItem->assignedTo = $story->assignedTo; $storyItem->url = helper::createLink('story', 'view', "storyID=$story->id&version=$story->version&from=project¶m=$projectID"); $storyItem->taskCreateUrl = helper::createLink('task', 'batchCreate', "projectID={$projectID}&story={$story->id}"); @@ -2661,9 +2663,11 @@ class projectModel extends model $taskItem->color = $task->color; $taskItem->pri = (int)$task->pri; $taskItem->status = $task->status; + $taskItem->parent = $task->parent; $taskItem->estimate = $task->estimate; $taskItem->consumed = $task->consumed; $taskItem->left = $task->left; + $taskItem->openedBy = $users[$task->openedBy]; $taskItem->assignedTo = $users[$task->assignedTo]; $taskItem->url = helper::createLink('task', 'view', "task=$task->id"); $taskItem->storyChanged = $story and $story->status == 'active' and $story->version > $story->taskVersion; @@ -2735,4 +2739,52 @@ class projectModel extends model } return $productPlans; } + + /** + * Print html for tree. + * + * @param object $trees + * @access pubic + * @return string + */ + public function printTree($trees) + { + $html = ''; + foreach($trees as $tree) + { + if(is_array($tree)) $tree = (object)$tree; + switch($tree->type) + { + case 'module': + $this->app->loadLang('tree'); + $html .= "
  • "; + $html .= '' . (empty($tree->parent) ? $this->lang->tree->module : $this->lang->tree->child) . '' . $tree->name . ''; + break; + case 'task': + $link = helper::createLink('project', 'treeTask', "taskID={$tree->id}"); + $html .= '
  • '; + $html .= '' . $tree->id . '' . (empty($tree->parent) ? $this->lang->task->common : $this->lang->task->children) . '' . $tree->title . ' ' . (empty($tree->assignedTo) ? $tree->openedBy : $tree->assignedTo) . ''; + break; + case 'product': + $this->app->loadLang('product'); + $html .= '
  • '; + $html .= '' . $this->lang->productCommon . '' . $tree->name . ''; + break; + case 'story': + $this->app->loadLang('story'); + $link = helper::createLink('project', 'treeStory', "storyID={$tree->storyId}"); + $html .= '
  • '; + $html .= '' . $tree->storyId . '' . $this->lang->story->common . '' . $tree->title . ' ' . (empty($tree->assignedTo) ? $tree->openedBy : $tree->assignedTo) . ''; + break; + } + if(isset($tree->children)) + { + $html .= '
      '; + $html .= $this->printTree($tree->children); + $html .= '
    '; + } + $html .= '
  • '; + } + return $html; + } } diff --git a/module/project/view/task.html.php b/module/project/view/task.html.php index f646245249..6c68c12a51 100644 --- a/module/project/view/task.html.php +++ b/module/project/view/task.html.php @@ -185,7 +185,7 @@ js::set('browseType', $browseType); children as $key => $child):?> children)) ? ' table-child-bottom' : '';?> - + task->printCell($field, $child, $users, $browseType, $branchGroups, $modulePairs, $useDatatable ? 'datatable' : 'table', true);?> diff --git a/module/project/view/tree.html.php b/module/project/view/tree.html.php index 6260f7c21b..b9d57cb38f 100644 --- a/module/project/view/tree.html.php +++ b/module/project/view/tree.html.php @@ -10,195 +10,63 @@ * @link http://www.zentao.net */ ?> - + + - -project->treeLevel);?> +
    +
    +
    +
      + +
    +
    +
    +
    +
    +
    +
    +
    +
    diff --git a/module/project/view/treestory.html.php b/module/project/view/treestory.html.php new file mode 100644 index 0000000000..9b8b308b00 --- /dev/null +++ b/module/project/view/treestory.html.php @@ -0,0 +1,288 @@ +
    +

    id?> story->common?> title;?>

    +
    +
    + story->statusList[$story->status];?> + story->stage;?>: story->stageList[$story->stage];?> + story->estimate;?>: estimate;?> +
    +
    + id}"; + common::printIcon('story', 'change', $vars, $story, 'list', 'fork', '', 'btn btn-info btn-icon'); + common::printIcon('story', 'delete', $vars, $story, 'list', 'trash', 'hiddenwin', 'btn btn-info btn-icon'); + common::printIcon('story', 'review', $vars, $story, 'list', 'glasses', '', 'btn btn-info btn-icon'); + common::printIcon('story', 'close', $vars, $story, 'list', 'off', '', 'btn btn-info btn-icon iframe', true); + common::printIcon('story', 'edit', $vars, $story, 'list', '', '', 'btn btn-info btn-icon'); + if($this->config->global->flow != 'onlyStory') common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap', '', 'btn btn-info btn-icon'); + ?> +
    +
    +
    +
    +
    story->legendSpec;?>
    +
    spec;?>
    +
    +
    +
    story->legendVerify;?>
    +
    verify;?>
    +
    + fetch('file', 'printFiles', array('files' => $story->files, 'fieldset' => 'true'));?> + +
    + story->legendBasicInfo;?> +
    + + + + + + + type != 'normal'):?> + + + + + + + + $module) + { + $moduleTitle .= $module->name; + if(!common::printLink('product', 'browse', "productID=$story->product&branch=$story->branch&browseType=byModule¶m=$module->id", $module->name)) echo $module->name; + if(isset($modulePath[$key + 1])) + { + $moduleTitle .= '/'; + echo $lang->arrow; + } + } + } + $printModule = ob_get_contents(); + ob_end_clean(); + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    story->product;?>createLink('product', 'view', "productID=$story->product"), $product->name);?>
    product->branch;?>product&branch=$story->branch", $branches[$story->branch]);?>
    story->module;?>
    story->plan;?> + planTitle)) + { + foreach($story->planTitle as $planID => $planTitle) + { + if(!common::printLink('productplan', 'view', "planID=$planID", $planTitle)) echo $lanTitle; + echo '
    '; + } + } + ?> +
    story->source;?>story->sourceList[$story->source];?>
    story->sourceNote;?>sourceNote;?>
    story->status;?> story->statusList[$story->status];?>
    story->stage;?> + stages and $branches) + { + foreach($story->stages as $branch => $stage) if(isset($branches[$branch])) echo $branches[$branch] . ' : ' . $lang->story->stageList[$stage] . '
    '; + } + else + { + echo $lang->story->stageList[$story->stage]; + } + ?> +
    story->pri;?>pri;?>'>story->priList, $story->pri)?>
    story->estimate;?>estimate;?>
    story->keywords;?>keywords;?>
    story->legendMailto;?>mailto); foreach($mailto as $account) {if(empty($account)) continue; echo "" . $users[trim($account)] . '  '; }?>
    +
    +
    + +
    + story->legendProjectAndTask;?> +
    +
      + tasks as $projectTasks) + { + foreach($projectTasks as $task) + { + if(!isset($projects[$task->project])) continue; + $projectName = $projects[$task->project]; + echo "
    • " . html::a($this->createLink('task', 'view', "taskID=$task->id", '', true), "#$task->id $task->name", '', "class='iframe' data-width='80%'"); + echo html::a($this->createLink('project', 'browse', "projectID=$task->project"), $projectName, '', "class='text-muted'") . '
    • '; + } + } + if(count($story->tasks) == 0) + { + foreach($story->projects as $projectID => $project) + { + echo "
    • " . html::a($this->createLink('project', 'browse', "projectID=$projectID"), $project->name, '', "class='text-muted'") . '
    • '; + } + } + ?> +
    +
    +
    + +
    + story->legendRelated;?> +
    + + + global->flow != 'onlyStory'):?> + + + + + + + + + + + + + + + + + + + + + + + + +
    story->legendFromBug;?> +
      + id $fromBug->title'>" . html::a($this->createLink('bug', 'view', "bugID=$fromBug->id"), "#$fromBug->id $fromBug->title") . '';?> +
    +
    story->legendBugs;?> +
      + id $bug->title'>" . html::a($this->createLink('bug', 'view', "bugID=$bug->id"), "#$bug->id $bug->title") . ''; + } + ?> +
    +
    story->legendCases;?> +
      + id $case->title'>" . html::a($this->createLink('testcase', 'view', "caseID=$case->id"), "#$case->id $case->title") . ''; + } + ?> +
    +
    story->legendLinkStories;?> +
      + linkStories) ; + foreach($linkStories as $linkStoryID) + { + if(isset($story->extraStories[$linkStoryID])) echo '
    • ' . html::a(inlink('view', "storyID=$linkStoryID"), "#$linkStoryID " . $story->extraStories[$linkStoryID]) . '
    • '; + } + ?> +
    +
    story->legendChildStories;?> +
      + childStories) ; + foreach($childStories as $childStoryID) + { + if(isset($story->extraStories[$childStoryID])) echo '
    • ' . html::a(inlink('view', "storyID=$childStoryID"), "#$childStoryID " . $story->extraStories[$childStoryID]) . '
    • '; + } + ?> +
    +
    +
    +
    + +
    + story->legendLifeTime;?> +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    story->openedBy;?>openedBy] . $lang->at . $story->openedDate;?>
    story->assignedTo;?>assignedTo) echo $users[$story->assignedTo] . $lang->at . $story->assignedDate;?>
    story->reviewedBy;?>reviewedBy); foreach($reviewedBy as $account) echo ' ' . $users[trim($account)]; ?>
    story->reviewedDate;?>reviewedBy) echo $story->reviewedDate;?>
    story->closedBy;?>closedBy) echo $users[$story->closedBy] . $lang->at . $story->closedDate;?>
    story->closedReason;?> + closedReason) echo $lang->story->reasonList[$story->closedReason]; + if(isset($story->extraStories[$story->duplicateStory])) + { + echo html::a(inlink('view', "storyID=$story->duplicateStory"), '#' . $story->duplicateStory . ' ' . $story->extraStories[$story->duplicateStory]); + } + ?> +
    story->lastEditedBy;?>lastEditedBy) echo $users[$story->lastEditedBy] . $lang->at . $story->lastEditedDate;?>
    +
    +
    + + createLink('action', 'comment', "objectType=story&objectID=$story->id");?> + diff --git a/module/project/view/treetask.html.php b/module/project/view/treetask.html.php new file mode 100644 index 0000000000..96e243f89f --- /dev/null +++ b/module/project/view/treetask.html.php @@ -0,0 +1,82 @@ +
    +

    + id?> + task->common?> + + parent)) echo '' . $this->lang->task->childrenAB . '';?> + team)) echo '' . $this->lang->task->multipleAB . '';?> + parentName) ? $task->parentName . '/' : '';?>name;?> + +

    +
    +
    + task->statusList, $task->status);?> + task->estimate;?> estimate . $lang->workingHour;?> + task->consumed;?> consumed, 2) . $lang->workingHour;?> + task->left;?> left . $lang->workingHour;?> +
    +
    + task->type;?>: task->typeList[$task->type];?> + task->deadline;?>: deadline; if(isset($task->delay)) printf($lang->task->delayWarning, $task->delay);?> +
    +
    + status == 'wait') common::printIcon('task', 'finish', "taskID=$task->id", $task, 'list', '', '', 'btn btn-info btn-icon iframe', true); + if($task->status == 'wait') common::printIcon('task', 'start', "taskID=$task->id", $task, 'list', '', '', 'btn btn-info btn-icon iframe', true); + if($task->status == 'pause') common::printIcon('task', 'restart', "taskID=$task->id", $task, 'list', '', '', 'btn btn-info btn-icon iframe', true); + if($task->status == 'done' or $task->status == 'cancel' or $task->status == 'closed') common::printIcon('task', 'close', "taskID=$task->id", $task, 'list', '', '', 'btn btn-info btn-icon iframe', true); + if($task->status == 'doing') common::printIcon('task', 'finish', "taskID=$task->id", $task, 'list', '', '', 'btn btn-info btn-icon iframe', true); + + common::printIcon('task', 'recordEstimate', "taskID=$task->id", $task, 'list', 'time', '', 'btn btn-info btn-icon iframe', true); + common::printIcon('task', 'edit', "taskID=$task->id", $task, 'list', '', '', 'btn btn-info btn-icon'); + if(empty($task->team) or empty($task->children)) + { + common::printIcon('task', 'batchCreate', "project=$task->project&storyID=$task->story&moduleID=$task->module&taskID=$task->id&ifame=0", $task, 'list', 'plus', '', 'btn btn-info btn-icon', '', '', $lang->task->children); + } + ?> +
    +
    +
    +
    +
    task->legendDesc;?>
    +
    + desc) ? $task->desc : "
    " . $lang->task->noData . '
    ';?> +
    +
    +type != 'ops'):?> +fromBug != 0):?> +
    +
    bug->steps;?>
    +
    + bugSteps) ? $task->bugSteps : "
    " . $lang->task->noData . '
    ';?> +
    +
    +story):?> +
    +
    task->storySpec;?>
    +
    + storySpec) || !empty($task->storyFiles)) ? $task->storySpec : "
    " . $lang->task->noData . '
    ';?> +
    + fetch('file', 'printFiles', array('files' => $task->storyFiles, 'fieldset' => 'false'));?> +
    +
    +
    task->storyVerify;?>
    +
    + storyVerify) ? $task->storyVerify : "
    " . $lang->task->noData . '
    ';?> +
    +
    + +cases) and $task->cases):?> +
    +
    task->case;?>
    +
    +
      + cases as $caseID => $case) echo '
    • ' . html::a($this->createLink('testcase', 'view', "caseID=$caseID", '', true), "#$caseID " . $case, '', "data-toggle='modal' data-type='iframe' data-width='90%'") . '
    • ';?> +
    +
    +
    + + +fetch('file', 'printFiles', array('files' => $task->files, 'fieldset' => 'true'));?> +createLink('action', 'comment', "objectType=task&objectID=$task->id");?> + \ No newline at end of file diff --git a/module/task/lang/en.php b/module/task/lang/en.php index 1c3d4e6019..fc98f44e11 100644 --- a/module/task/lang/en.php +++ b/module/task/lang/en.php @@ -160,7 +160,7 @@ $lang->task->confirmDeleteEstimate = "Do you want to delete it?"; $lang->task->copyStoryTitle = "Copy Story"; $lang->task->afterSubmit = "After Created,"; $lang->task->successSaved = "Created!"; -$lang->task->delayWarning = " Delay %s days "; +$lang->task->delayWarning = " Delay %s days "; $lang->task->remindBug = "This Task is converted from a Bug. Do you want to update te Bug:%s?"; $lang->task->confirmChangeProject = "If you change {$lang->projectCommon}, the related Module, Story and Assignor will be changed. Do you want to do it?"; $lang->task->confirmFinish = '"Left Hour" is 0. Do you want to change the Status to "Done"?'; diff --git a/module/task/lang/zh-cn.php b/module/task/lang/zh-cn.php index 8e6b96d75a..b749966ad8 100644 --- a/module/task/lang/zh-cn.php +++ b/module/task/lang/zh-cn.php @@ -162,7 +162,7 @@ $lang->task->confirmDeleteEstimate = "您确定要删除这个记录吗?"; $lang->task->copyStoryTitle = "同需求"; $lang->task->afterSubmit = "添加之后"; $lang->task->successSaved = "成功添加,"; -$lang->task->delayWarning = " 延期%s天 "; +$lang->task->delayWarning = " 延期%s天 "; $lang->task->remindBug = "该任务为Bug转化得到,是否更新Bug:%s ?"; $lang->task->confirmChangeProject = "修改{$lang->projectCommon}会导致相应的所属模块、相关需求和指派人发生变化,确定吗?"; $lang->task->confirmFinish = '"预计剩余"为0,确认将任务状态改为"已完成"吗?'; diff --git a/module/task/model.php b/module/task/model.php index b7a5de0b43..2b09fe0da1 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -2243,8 +2243,7 @@ class taskModel extends model if($id == 'deadline' and isset($task->delay)) $class .= ' delayed'; if($id == 'assignedTo') { - $class .= ' c-actions text-left'; - if($task->assignedTo == $account) $class .= ' red'; + $class .= ' has-btn text-left'; } $title = ''; @@ -2274,20 +2273,20 @@ class taskModel extends model echo "
    "; break; case 'name': + if(!empty($task->children)) echo ''; if(!empty($task->product) && isset($branchGroups[$task->product][$task->branch])) echo "" . $branchGroups[$task->product][$task->branch] . ' '; if(empty($task->children) and $task->module and isset($modulePairs[$task->module])) echo "" . $modulePairs[$task->module] . ' '; - if($child or !empty($task->parent)) echo '' . $this->lang->task->childrenAB . ' '; - if(!empty($task->team)) echo '' . $this->lang->task->multipleAB . ' '; + if($child or !empty($task->parent)) echo '' . $this->lang->task->childrenAB . ' '; + if(!empty($task->team)) echo '' . $this->lang->task->multipleAB . ' '; echo $canView ? html::a($taskLink, $task->name, null, "style='color: $task->color'") : "$task->name"; if($task->fromBug) echo html::a(helper::createLink('bug', 'view', "id=$task->fromBug"), "[BUG#$task->fromBug]", '_blank', "class='bug'"); - if(!empty($task->children)) echo '    '; break; case 'type': echo $this->lang->task->typeList[$task->type]; break; case 'status': $storyChanged = (!empty($task->storyStatus) and $task->storyStatus == 'active' and $task->latestStoryVersion > $task->storyVersion); - $storyChanged ? print("{$this->lang->story->changed} ") : print($this->lang->task->statusList[$task->status]); + $storyChanged ? print(" {$this->lang->story->changed}") : print(" {$this->lang->task->statusList[$task->status]}"); break; case 'estimate': echo round($task->estimate, 1); @@ -2317,8 +2316,17 @@ class taskModel extends model echo $task->realStarted; break; case 'assignedTo': - common::printIcon('task', 'assignTo', "projectID=$task->project&taskID=$task->id", $task, 'list', '', '', 'iframe', true); - echo zget($users, $task->assignedTo); + $btnTextClass = ''; + $assignedToText = $task->assignedTo; + if (empty($assignedToText)) + { + $btnTextClass = 'text-primary'; + $assignedToText = $this->lang->task->noAssigned; + } + else if ($assignedToText == $account) $btnTextClass = 'text-red'; + $btnClass = $assignedToText == 'closed' ? ' disabled' : ''; + + echo html::a(helper::createLink('task', 'assignTo', "projectID=$task->project&taskID=$task->id"), " {$assignedToText}", '', "class='iframe btn btn-icon-left{$btnClass}'"); break; case 'assignedDate': echo substr($task->assignedDate, 5, 11); diff --git a/module/task/view/batchcreate.html.php b/module/task/view/batchcreate.html.php index d2d023472d..fa1ceab083 100644 --- a/module/task/view/batchcreate.html.php +++ b/module/task/view/batchcreate.html.php @@ -49,7 +49,7 @@ $hiddenStory = ((isonlybody() and $storyID) || $this->config->global->flow == 'onlyTask') ? ' hidden' : ''; if($hiddenStory and isset($visibleFields['story'])) $colspan -= 1; ?> -
    + diff --git a/module/todo/css/batchcreate.css b/module/todo/css/batchcreate.css index 24b0d67874..a03f4bef7c 100755 --- a/module/todo/css/batchcreate.css +++ b/module/todo/css/batchcreate.css @@ -8,3 +8,4 @@ #todoBatchAddForm .control-time-begin + .chosen-container-single .chosen-single {border-radius: 2px 0 0 2px; border-right-width: 0; padding-right: 1px;} #todoBatchAddForm .control-time-begin + .chosen-container-active .chosen-single {border-right-width: 1px; padding-right: 0;} #todoBatchAddHeader [name="date"]:disabled {color: #ccc; text-decoration: line-through;} +.main-header > .input-group {width: 220px;} \ No newline at end of file diff --git a/module/todo/view/batchcreate.html.php b/module/todo/view/batchcreate.html.php index 2e3444fdf0..d7c8fdccbb 100755 --- a/module/todo/view/batchcreate.html.php +++ b/module/todo/view/batchcreate.html.php @@ -12,17 +12,10 @@ ?> -
    - diff --git a/module/tree/lang/en.php b/module/tree/lang/en.php index ea236ec550..9d2ae405e5 100644 --- a/module/tree/lang/en.php +++ b/module/tree/lang/en.php @@ -43,6 +43,7 @@ $lang->tree->successSave = 'Saved.'; $lang->tree->successFixed = 'Fixed.'; $lang->tree->repeatName = 'The name "%s" has existed!'; +$lang->tree->module = 'Module'; $lang->tree->name = 'Name'; $lang->tree->line = 'Product Line'; $lang->tree->cate = 'Category Name'; diff --git a/module/tree/lang/zh-cn.php b/module/tree/lang/zh-cn.php index 44f262f082..6302eba226 100644 --- a/module/tree/lang/zh-cn.php +++ b/module/tree/lang/zh-cn.php @@ -43,6 +43,7 @@ $lang->tree->successSave = '成功保存'; $lang->tree->successFixed = '成功修正数据!'; $lang->tree->repeatName = '模块名“%s”已经存在!'; +$lang->tree->module = '模块'; $lang->tree->name = '模块名称'; $lang->tree->line = '产品线名称'; $lang->tree->cate = '分类名称'; diff --git a/module/tree/model.php b/module/tree/model.php index ed14055a00..e9f26b7230 100644 --- a/module/tree/model.php +++ b/module/tree/model.php @@ -15,8 +15,8 @@ class treeModel extends model { /** * Get module by ID. - * - * @param int $moduleID + * + * @param int $moduleID * @access public * @return object */ @@ -27,10 +27,10 @@ class treeModel extends model /** * Build the sql query. - * - * @param int $rootID - * @param string $type - * @param int $startModule + * + * @param int $rootID + * @param string $type + * @param int $startModule * @access public * @return void */ @@ -67,15 +67,15 @@ class treeModel extends model ->beginIF((!empty($branch) and $branch != 'null'))->andWhere("branch")->eq($branch)->fi() ->andWhere('deleted')->eq(0) ->orderBy('grade desc, `order`') - ->get(); + ->get(); } /** * Create an option menu in html. - * - * @param int $rootID - * @param string $type - * @param int $startModule + * + * @param int $rootID + * @param string $type + * @param int $startModule * @access public * @return string */ @@ -125,10 +125,10 @@ class treeModel extends model /** * Get module pairs. - * - * @param int $rootID - * @param string $viewType - * @param string $showModule + * + * @param int $rootID + * @param string $viewType + * @param string $showModule * @access public * @return array */ @@ -171,8 +171,8 @@ class treeModel extends model } /** - * Get line pairs. - * + * Get line pairs. + * * @access public * @return array */ @@ -183,9 +183,9 @@ class treeModel extends model /** * Create an option menu of task in html. - * - * @param int $rootID - * @param int $startModule + * + * @param int $rootID + * @param int $startModule * @access public * @return void */ @@ -195,14 +195,14 @@ class treeModel extends model $products = $this->loadModel('product')->getProductsByProject($rootID); $branchGroups = $this->loadModel('branch')->getByProducts(array_keys($products)); - if(!$this->isMergeModule($rootID, 'task') or !$products) return $this->getOptionMenu($rootID, 'task', $startModule); + if(!$this->isMergeModule($rootID, 'task') or !$products) return $this->getOptionMenu($rootID, 'task', $startModule); /* createdVersion > 4.1. */ $startModulePath = ''; if($startModule > 0) { $startModule = $this->getById($startModule); - if($startModule) + if($startModule) { $startModulePath = $startModule->path . '%'; $modulePaths = explode(",", $startModulePath); @@ -258,7 +258,7 @@ class treeModel extends model } foreach($topMenu as $moduleID => $moduleName) { - if(!isset($projectModules[$moduleID])) unset($treeMenu[$moduleID]); + if(!isset($projectModules[$moduleID])) unset($treeMenu[$moduleID]); } } } @@ -267,11 +267,11 @@ class treeModel extends model /** * Build tree array. - * - * @param $&treeMenu - * @param array $modules - * @param object $module - * @param string $moduleName + * + * @param $&treeMenu + * @param array $modules + * @param object $module + * @param string $moduleName * @access public * @return void */ @@ -398,7 +398,7 @@ class treeModel extends model if(!$this->isMergeModule($rootID, 'task') or !$products) { $extra['tip'] = false; - return $this->getTreeMenu($rootID, 'task', $startModule, $userFunc, $extra); + return $this->getTreeMenu($rootID, 'task', $startModule, $userFunc, $extra); } /* createdVersion > 4.1. */ @@ -487,7 +487,7 @@ class treeModel extends model * @access public * @return object */ - public function getTaskStructure($rootID, $productID = 0, $manage = true) + public function getTaskStructure($rootID, $productID = 0, $manage = true) { $extra = array('projectID' => $rootID, 'productID' => $productID, 'tip' => true); @@ -542,9 +542,9 @@ class treeModel extends model /** * Get tree structure. - * - * @param int $rootID - * @param string $type + * + * @param int $rootID + * @param string $type * @access public * @return array */ @@ -556,10 +556,10 @@ class treeModel extends model /** * Get project story tree menu. - * - * @param int $rootID - * @param int $startModule - * @param array $userFunc + * + * @param int $rootID + * @param int $startModule + * @param array $userFunc * @access public * @return string */ @@ -627,13 +627,13 @@ class treeModel extends model /** * Build tree. - * - * @param & $&treeMenu - * @param object $module - * @param string $type - * @param array $userFunc - * @param array $extra - * @param int $branch + * + * @param & $&treeMenu + * @param object $module + * @param string $type + * @param array $userFunc + * @param array $extra + * @param int $branch * @access public * @return void */ @@ -693,21 +693,21 @@ class treeModel extends model if(isset($treeMenu[$module->id]) and !empty($treeMenu[$module->id])) { if(!isset($treeMenu[$module->parent])) $treeMenu[$module->parent] = ''; - $treeMenu[$module->parent] .= "
  • $linkHtml"; + $treeMenu[$module->parent] .= "
  • $linkHtml"; $treeMenu[$module->parent] .= "\n"; } else { if(!isset($treeMenu[$module->parent])) $treeMenu[$module->parent] = ""; - $treeMenu[$module->parent] .= "
  • $linkHtml\n"; + $treeMenu[$module->parent] .= "
  • $linkHtml\n"; } - $treeMenu[$module->parent] .= "
  • \n"; + $treeMenu[$module->parent] .= "\n"; } /** - * Get project modules. - * - * @param int $projectID + * Get project modules. + * + * @param int $projectID * @param bool $parent * @param bool $linkStory * @access public @@ -765,7 +765,7 @@ class treeModel extends model /* Get all modules from paths. */ foreach($paths as $path) { - $modules = explode(',', $path); + $modules = explode(',', $path); foreach($modules as $module) $projectModules[$module] = $module; } return $projectModules; @@ -773,9 +773,9 @@ class treeModel extends model /** * Create link of a story. - * + * * @param string $type - * @param object $module + * @param object $module * @access public * @return string */ @@ -786,9 +786,9 @@ class treeModel extends model /** * Create link of a product line. - * + * * @param string $type - * @param object $module + * @param object $module * @param array $extra * @access public * @return string @@ -802,10 +802,10 @@ class treeModel extends model /** * Create link of a task. - * - * @param string $type - * @param object $module - * @param array $extra + * + * @param string $type + * @param object $module + * @param array $extra * @access public * @return string */ @@ -817,11 +817,11 @@ class treeModel extends model } /** - * Create link of project story. - * - * @param string $type - * @param object $module - * @param array $extra + * Create link of project story. + * + * @param string $type + * @param object $module + * @param array $extra * @access public * @return string */ @@ -834,8 +834,8 @@ class treeModel extends model /** * Create link of a doc. - * - * @param object $module + * + * @param object $module * @access public * @return string */ @@ -846,8 +846,8 @@ class treeModel extends model /** * Create the manage link of a module. - * - * @param object $module + * + * @param object $module * @access public * @return string */ @@ -877,9 +877,9 @@ class treeModel extends model /** * Create the task manage link of a module. - * - * @param int $productID - * @param int $module + * + * @param int $productID + * @param int $module * @access public * @return void */ @@ -906,8 +906,8 @@ class treeModel extends model /** * Create link of a bug. - * - * @param object $module + * + * @param object $module * @access public * @return string */ @@ -918,8 +918,8 @@ class treeModel extends model /** * Create link of a test case. - * - * @param object $module + * + * @param object $module * @access public * @return string */ @@ -930,8 +930,8 @@ class treeModel extends model /** * Create link of a test task. - * - * @param object $module + * + * @param object $module * @access public * @return string */ @@ -941,10 +941,10 @@ class treeModel extends model } /** - * Create case lib link - * - * @param string $type - * @param string $module + * Create case lib link + * + * @param string $type + * @param string $module * @access public * @return string */ @@ -954,12 +954,12 @@ class treeModel extends model } /** - * Create branch link - * - * @param string $type - * @param int $rootID - * @param int $branchID - * @param string $branch + * Create branch link + * + * @param string $type + * @param int $rootID + * @param int $branchID + * @param string $branch * @access public * @return string */ @@ -972,10 +972,10 @@ class treeModel extends model /** * Get sons of a module. - * - * @param int $rootID - * @param int $moduleID - * @param string $type + * + * @param int $rootID + * @param int $moduleID + * @param string $type * @access public * @return array */ @@ -1010,10 +1010,10 @@ class treeModel extends model /** * Get sons of a task module. - * - * @param int $rootID - * @param int $productID - * @param int $moduleID + * + * @param int $rootID + * @param int $productID + * @param int $moduleID * @access public * @return void */ @@ -1043,8 +1043,8 @@ class treeModel extends model /** * Get id list of a module's childs. - * - * @param int $moduleID + * + * @param int $moduleID * @access public * @return array */ @@ -1059,10 +1059,10 @@ class treeModel extends model } /** - * Get project module. - * - * @param int $projectID - * @param int $productID + * Get project module. + * + * @param int $projectID + * @param int $productID * @access public * @return void */ @@ -1087,8 +1087,8 @@ class treeModel extends model /** * Get parents of a module. - * - * @param int $moduleID + * + * @param int $moduleID * @access public * @return array */ @@ -1103,8 +1103,8 @@ class treeModel extends model /** * Get product by moduleID. - * - * @param int $moduleID + * + * @param int $moduleID * @access public * @return void */ @@ -1122,8 +1122,8 @@ class treeModel extends model /** * Get the module that its type == 'story'. - * - * @param int $moduleID + * + * @param int $moduleID * @access public * @return void */ @@ -1185,8 +1185,8 @@ class treeModel extends model /** * Update modules' order. - * - * @param array $orders + * + * @param array $orders * @access public * @return void */ @@ -1291,7 +1291,7 @@ class treeModel extends model /** * Update a module. * - * @param int $moduleID + * @param int $moduleID * @access public * @return void */ @@ -1316,11 +1316,11 @@ class treeModel extends model /** * Change root. - * - * @param int $moduleID - * @param int $oldRoot - * @param int $newRoot - * @param string $type + * + * @param int $moduleID + * @param int $oldRoot + * @param int $newRoot + * @param string $type * @access public * @return void */ @@ -1373,8 +1373,8 @@ class treeModel extends model /** * Delete a module. - * - * @param int $moduleID + * + * @param int $moduleID * @param null $null compatible with that of model::delete() * @access public * @return void @@ -1400,7 +1400,7 @@ class treeModel extends model if($module->type == 'task') $this->dao->update(TABLE_TASK)->set('module')->eq($module->parent)->where('module')->in($childs)->exec(); if($module->type == 'bug') $this->dao->update(TABLE_BUG)->set('module')->eq($module->parent)->where('module')->in($childs)->exec(); if($module->type == 'case') $this->dao->update(TABLE_CASE)->set('module')->eq($module->parent)->where('module')->in($childs)->exec(); - if($module->type == 'story') + if($module->type == 'story') { $this->dao->update(TABLE_STORY)->set('module')->eq($module->parent)->where('module')->in($childs)->exec(); $this->dao->update(TABLE_TASK)->set('module')->eq($module->parent)->where('module')->in($childs)->exec(); @@ -1414,8 +1414,8 @@ class treeModel extends model /** * Fix the path, grade fields according to the id and parent fields. * - * @param string $root - * @param string $type + * @param string $root + * @param string $type * @access public * @return void */ @@ -1464,12 +1464,12 @@ class treeModel extends model /** * Check unique module name. - * - * @param int $rootID - * @param string $viewType - * @param int $parentModuleID - * @param array $modules - * @param array $branches + * + * @param int $rootID + * @param string $viewType + * @param int $parentModuleID + * @param array $modules + * @param array $branches * @access public * @return bool */ @@ -1505,9 +1505,9 @@ class treeModel extends model /** * Check merge module version. - * - * @param int $rootID - * @param string $viewType + * + * @param int $rootID + * @param string $viewType * @access public * @return bool */ @@ -1530,11 +1530,11 @@ class treeModel extends model /** * Get full trees. - * - * @param int $rootID - * @param string $viewType - * @param int $branch - * @param int $currentModuleID + * + * @param int $rootID + * @param string $viewType + * @param int $branch + * @param int $currentModuleID * @access public * @return array */ @@ -1578,7 +1578,7 @@ class treeModel extends model * @access public * @return array */ - public function getDataStructure($stmt, $viewType, $keepModules = array()) + public function getDataStructure($stmt, $viewType, $keepModules = array()) { $parent = array(); while($module = $stmt->fetch()) @@ -1610,11 +1610,11 @@ class treeModel extends model /** * Get all doc structure. - * + * * @access public * @return array */ - public function getDocStructure() + public function getDocStructure() { $stmt = $this->dbh->query($this->dao->select('*')->from(TABLE_MODULE)->where('type')->eq('doc')->get()); $parent = array(); diff --git a/module/upgrade/lang/zh-tw.php b/module/upgrade/lang/zh-tw.php index cd3d571dcc..e87c60bce7 100644 --- a/module/upgrade/lang/zh-tw.php +++ b/module/upgrade/lang/zh-tw.php @@ -133,7 +133,6 @@ $lang->upgrade->fromVersions['9_6_3'] = '9.6.3'; $lang->upgrade->fromVersions['9_7'] = '9.7'; $lang->upgrade->fromVersions['9_8'] = '9.8'; $lang->upgrade->fromVersions['9_8_1'] = '9.8.1'; -<<<<<<< HEAD -======= $lang->upgrade->fromVersions['9_8_2'] = '9.8.2'; ->>>>>>> zentaopms_9.8 +$lang->upgrade->fromVersions['9_8_3'] = '9.8.3'; +$lang->upgrade->fromVersions['10_0_beta'] = '10.0.beta'; diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 7dbff5360d..79c234d48e 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -30,6 +30,7 @@ class upgradeModel extends model */ public function execute($fromVersion) { + set_time_limit(0); switch($fromVersion) { case '0_3beta': $this->execSQL($this->getUpgradeFile('0.3')); @@ -1251,7 +1252,6 @@ class upgradeModel extends model */ public function adjustDocModule() { - set_time_limit(0); $this->app->loadLang('doc'); $productDocModules = $this->dao->select('*')->from(TABLE_MODULE)->where('type')->eq('productdoc')->orderBy('grade,id')->fetchAll('id'); $allProductIdList = $this->dao->select('id,name,acl,whitelist,createdBy')->from(TABLE_PRODUCT)->where('deleted')->eq('0')->fetchAll('id'); @@ -2257,7 +2257,7 @@ class upgradeModel extends model * @access public * @return bool */ - public function addUniqueKeyToTeam() + public function addUniqueKeyToTeam() { $members = $this->dao->select('root, type, account')->from(TABLE_TEAM)->groupBy('root, type, account')->having('count(*)')->gt(1)->fetchAll(); @@ -2279,5 +2279,4 @@ class upgradeModel extends model $this->dao->exec("ALTER TABLE " . TABLE_TEAM . " ADD UNIQUE `team` (`root`, `type`, `account`)"); return !dao::isError(); } ->>>>>>> zentaopms_9.8 } diff --git a/www/js/my.full.js b/www/js/my.full.js index d753ce8479..77f2f9899b 100644 --- a/www/js/my.full.js +++ b/www/js/my.full.js @@ -1671,9 +1671,6 @@ needPing = true; /* When body's ready, execute these. */ $(document).ready(function() { - if(typeof(config.onlybody) != 'undefined' && config.onlybody == 'yes') checkOnlybodyPage(); - $('body').addClass('m-{currentModule}-{currentMethod}'.format(config)); - setTableBehavior(); setForm(); saveWindowSize(); diff --git a/www/js/zui/min.js b/www/js/zui/min.js index 6b7abab3f0..785e23949a 100644 --- a/www/js/zui/min.js +++ b/www/js/zui/min.js @@ -16,8 +16,8 @@ function(t,e,i){"$:nomunge";function s(){n=e[r](function(){a.each(function(){var * Copyright 2006, 2014 Klaus Hartl * Released under the MIT license */ -function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t("object"==typeof exports?require("jquery"):jQuery)}(function(t){function e(t){return r.raw?t:encodeURIComponent(t)}function i(t){return r.raw?t:decodeURIComponent(t)}function s(t){return e(r.json?JSON.stringify(t):String(t))}function n(t){0===t.indexOf('"')&&(t=t.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return t=decodeURIComponent(t.replace(o," ")),r.json?JSON.parse(t):t}catch(e){}}function a(e,i){var s=r.raw?e:n(e);return t.isFunction(i)?i(s):s}var o=/\+/g,r=t.cookie=function(n,o,l){if(void 0!==o&&!t.isFunction(o)){if(l=t.extend({},r.defaults,l),"number"==typeof l.expires){var h=l.expires,c=l.expires=new Date;c.setTime(+c+864e5*h)}return document.cookie=[e(n),"=",s(o),l.expires?"; expires="+l.expires.toUTCString():"",l.path?"; path="+l.path:"",l.domain?"; domain="+l.domain:"",l.secure?"; secure":""].join("")}for(var d=n?void 0:{},u=document.cookie?document.cookie.split("; "):[],p=0,f=u.length;p=0;t--)delete this.page[i[t]];this.set(a,this.page)}},o.prototype.pageRemove=function(t){"undefined"!=typeof this.page[t]&&(this.page[t]=null,this.pageSave())},o.prototype.pageClear=function(){this.page={},this.pageSave()},o.prototype.pageGet=function(t,e){var i=this.page[t];return void 0===e||null!==i&&void 0!==i?i:e},o.prototype.pageSet=function(t,i){e.isPlainObject(t)?e.extend(!0,this.page,t):this.page[this.serialize(t)]=i,this.pageSave()},o.prototype.check=function(){if(!this.enable&&!this.slience)throw new Error("Browser not support localStorage or enable status been set true.");return this.enable},o.prototype.length=function(){return this.check()?i.getLength?i.getLength():i.length:0},o.prototype.removeItem=function(t){return i.removeItem(t),this},o.prototype.remove=function(t){return this.removeItem(t)},o.prototype.getItem=function(t){return i.getItem(t)},o.prototype.get=function(t,e){var i=this.deserialize(this.getItem(t));return"undefined"!=typeof i&&null!==i||"undefined"==typeof e?i:e},o.prototype.key=function(t){return i.key(t)},o.prototype.setItem=function(t,e){return i.setItem(t,e),this},o.prototype.set=function(t,e){return void 0===e?this.remove(t):(this.setItem(t,this.serialize(e)),this)},o.prototype.clear=function(){return i.clear(),this},o.prototype.forEach=function(t){for(var e=this.length(),s=e-1;s>=0;s--){var n=i.key(s);t(n,this.get(n))}return this},o.prototype.getAll=function(){var t={};return this.forEach(function(e,i){t[e]=i}),t},o.prototype.serialize=function(t){return"string"==typeof t?t:JSON.stringify(t)},o.prototype.deserialize=function(t){if("string"==typeof t)try{return JSON.parse(t)}catch(e){return t||void 0}},e.zui({store:new o})}(window,jQuery),function(t){"use strict";var e="zui.searchBox",i=function(e,s){var n=this;n.name=name,n.$=t(e),n.options=s=t.extend({},i.DEFAULTS,n.$.data(),s);var a=n.$.is(s.inputSelector)?n.$:n.$.find(s.inputSelector);if(a.length){var o=function(){n.changeTimer&&(clearTimeout(n.changeTimer),n.changeTimer=null)},r=function(){o();var t=n.getSearch();if(t!==n.lastValue){var e=""===t;a.toggleClass("empty",e),n.$.callComEvent(n,"onSearchChange",[t,e]),n.lastValue=t}};n.$input=a=a.first(),n.lastValue=n.getSearch(),a.on(s.listenEvent,function(t){n.changeTimer=setTimeout(function(){r()},s.changeDelay)}).on("focus",function(t){a.addClass("focus"),n.$.callComEvent(n,"onFocus",[t])}).on("blur",function(t){a.removeClass("focus"),n.$.callComEvent(n,"onBlur",[t])}).on("keydown",function(t){var e=0,i=t.which;27===i&&s.escToClear?(this.setSearch("",!0),r(),e=1):13===i&&s.onPressEnter&&(r(),n.$.callComEvent(n,"onPressEnter",[t]));var a=n.$.callComEvent(n,"onKeyDown",[t]);a===!1&&(e=1),e&&t.preventDefault()}),n.$.on("click",".search-clear-btn",function(t){n.setSearch("",!0),r(),t.preventDefault()}),r()}else console.error("ZUI: search box init error, cannot find search box input element.")};i.DEFAULTS={inputSelector:'input[type="search"],input[type="text"]',listenEvent:"change input paste",changeDelay:500},i.prototype.getSearch=function(){return this.$input&&t.trim(this.$input.val())},i.prototype.setSearch=function(t,e){var i=this.$input;i&&(i.val(t),e||i.trigger("change"))},i.prototype.focus=function(){this.$input&&this.$input.focus()},t.fn.searchBox=function(s){return this.each(function(){var n=t(this),a=n.data(e),o="object"==typeof s&&s;a||n.data(e,a=new i(this,o)),"string"==typeof s&&a[s]()})},i.NAME=e,t.fn.searchBox.Constructor=i}(jQuery),function(t,e){"use strict";var i="zui.draggable",s={container:"body",move:!0},n=0,a=function(e,i){var a=this;a.$=t(e),a.id=n++,a.options=t.extend({},s,a.$.data(),i),a.init()};a.DEFAULTS=s,a.NAME=i,a.prototype.init=function(){var s,n,a,o,r,l=this,h=l.$,c="before",d="drag",u="finish",p="."+i+"."+l.id,f="mousedown"+p,g="mouseup"+p,m="mousemove"+p,v=l.options,y=v.selector,b=v.handle,w=h,x=t.isFunction(v.move),_=function(t){var e=t.pageX,i=t.pageY;r=!0;var n={left:e-a.x,top:i-a.y};w.removeClass("drag-ready").addClass("dragging"),v.move&&(x?v.move(n,w):w.css(n)),v[d]&&v[d]({event:t,element:w,startOffset:a,pos:n,offset:{x:e-s.x,y:i-s.y},smallOffset:{x:e-o.x,y:i-o.y}}),o.x=e,o.y=i,v.stopPropagation&&t.stopPropagation()},C=function(i){if(t(e).off(p),!r)return void w.removeClass("drag-ready");var n={left:i.pageX-a.x,top:i.pageY-a.y};w.removeClass("drag-ready dragging"),v.move&&(x?v.move(n,w):w.css(n)),v[u]&&v[u]({event:i,element:w,startOffset:a,pos:n,offset:{x:i.pageX-s.x,y:i.pageY-s.y},smallOffset:{x:i.pageX-o.x,y:i.pageY-o.y}}),i.preventDefault(),v.stopPropagation&&i.stopPropagation()},k=function(i){var l=t.zui.getMouseButtonCode(v.mouseButton);if(!(l>-1&&i.button!==l)){var h=t(this);if(y&&(w=b?h.closest(y):h),v[c]){var d=v[c]({event:i,element:w});if(d===!1)return}var u=t(v.container),p=w.offset();n=u.offset(),s={x:i.pageX,y:i.pageY},a={x:i.pageX-p.left+n.left,y:i.pageY-p.top+n.top},o=t.extend({},s),r=!1,w.addClass("drag-ready"),i.preventDefault(),v.stopPropagation&&i.stopPropagation(),t(e).on(m,_).on(g,C)}};b?h.on(f,b,k):y?h.on(f,y,k):h.on(f,k)},a.prototype.destroy=function(){var s="."+i+"."+this.id;this.$.off(s),t(e).off(s),this.$.data(i,null)},t.fn.draggable=function(e){return this.each(function(){var s=t(this),n=s.data(i),o="object"==typeof e&&e;n||s.data(i,n=new a(this,o)),"string"==typeof e&&n[e]()})},t.fn.draggable.Constructor=a}(jQuery,document),function(t,e,i){"use strict";var s="zui.droppable",n={target:".droppable-target",deviation:5,sensorOffsetX:0,sensorOffsetY:0},a=0,o=function(e,i){var s=this;s.id=a++,s.$=t(e),s.options=t.extend({},n,s.$.data(),i),s.init()};o.DEFAULTS=n,o.NAME=s,o.prototype.trigger=function(e,i){return t.zui.callEvent(this.options[e],i,this)},o.prototype.init=function(){var n,a,o,r,l,h,c,d,u,p,f,g,m,v=this,y=v.$,b=v.options,w=b.deviation,x="."+s+"."+v.id,_="mousedown"+x,C="mouseup"+x,k="mousemove"+x,T=b.selector,S=b.handle,D=b.flex,M=b.container,P=b.canMoveHere,F=y,z=!1,L=M?t(b.container).first():T?y:t("body"),$=function(e){if(z&&(f={left:e.pageX,top:e.pageY},!(i.abs(f.left-d.left)a&&f.top>o&&f.left-1&&i.button!==s)){var f=t(this);T&&(F=S?f.closest(T):f),F.hasClass("drag-shadow")||b.before&&b.before({event:i,element:F})===!1||(z=!0,n=t.isFunction(b.target)?b.target(F,y):L.find(b.target),a=null,o=null,r=!1,l=!0,h=null,c=F.offset(),u=L.offset(),d={left:i.pageX,top:i.pageY},g=t.extend({},d),p={left:d.left-c.left,top:d.top-c.top},F.addClass("drag-from"),t(e).on(k,$).on(C,E),m=setTimeout(function(){t(e).on(_,E)},10),i.preventDefault())}};S?y.on(_,S,I):T?y.on(_,T,I):y.on(_,I)},o.prototype.destroy=function(){var i="."+s+"."+this.id;this.$.off(i),t(e).off(i),this.$.data(s,null)},o.prototype.reset=function(){this.destroy(),this.init()},t.fn.droppable=function(e){return this.each(function(){var i=t(this),n=i.data(s),a="object"==typeof e&&e;n||i.data(s,n=new o(this,a)),"string"==typeof e&&n[e]()})},t.fn.droppable.Constructor=o}(jQuery,document,Math),+function(t,e){"use strict";function i(e,i,a){return this.each(function(){var o=t(this),r=o.data(s),l=t.extend({},n.DEFAULTS,o.data(),"object"==typeof e&&e);r||o.data(s,r=new n(this,l)),"string"==typeof e?r[e](i,a):l.show&&r.show(i,a)})}var s="zui.modal",n=function(i,n){var a=this;a.options=n,a.$body=t(document.body),a.$element=t(i),a.$backdrop=a.isShown=null,a.scrollbarWidth=0,n.moveable===e&&(a.options.moveable=a.$element.hasClass("modal-moveable")),n.remote&&a.$element.find(".modal-content").load(n.remote,function(){a.$element.trigger("loaded."+s)})};n.VERSION="3.2.0",n.TRANSITION_DURATION=300,n.BACKDROP_TRANSITION_DURATION=150,n.DEFAULTS={backdrop:!0,keyboard:!0,show:!0,position:"fit"};var a=function(e,i){var s=t(window);i.left=Math.max(0,Math.min(i.left,s.width()-e.outerWidth())),i.top=Math.max(0,Math.min(i.top,s.height()-e.outerHeight())),e.css(i)};n.prototype.toggle=function(t,e){return this.isShown?this.hide():this.show(t,e)},n.prototype.ajustPosition=function(i){var n=this,o=n.options;if(i===e&&(i=o.position),i!==e){t.isFunction(i)&&(i=i(n));var r=n.$element.find(".modal-dialog"),l=Math.max(0,(t(window).height()-r.outerHeight())/2);if("fit"===i?i={top:Math.floor(2*l/3)}:"center"===i?i={top:l}:t.isPlainObject(i)||(i={top:i}),r.hasClass("modal-moveable")){var h=null,c=o.rememberPos;c&&(c===!0?h=n.$element.data("modal-pos"):t.zui.store&&(h=t.zui.store.pageGet(s+".rememberPos."+c))),i=t.extend(i,{left:Math.max(0,(t(window).width()-r.outerWidth())/2)},h),"inside"===o.moveable?a(r,i):r.css(i)}else r.css(i)}},n.prototype.setMoveale=function(){t.fn.draggable||console.error("Moveable modal requires draggable.js.");var e=this,i=e.options,n=e.$element.find(".modal-dialog").removeClass("modal-dragged");n.toggleClass("modal-moveable",!!i.moveable),e.$element.data("modal-moveable-setup")||n.draggable({container:e.$element,handle:".modal-header",before:function(){var t=n.css("margin-top");t&&"0px"!==t&&n.css("top",t).css("margin-top","").addClass("modal-dragged")},finish:function(n){var a=i.rememberPos;a&&(e.$element.data("modal-pos",n.pos),t.zui.store&&a!==!0&&t.zui.store.pageSet(s+".rememberPos."+a,n.pos))},move:"inside"!==i.moveable||function(t){a(n,t)}})},n.prototype.show=function(e,i){var a=this,o=t.Event("show."+s,{relatedTarget:e});a.$element.trigger(o),a.isShown||o.isDefaultPrevented()||(a.isShown=!0,a.options.moveable&&a.setMoveale(),a.checkScrollbar(),a.options.backdrop!==!1&&(a.$body.addClass("modal-open"),a.setScrollbar()),a.escape(),a.$element.on("click.dismiss."+s,'[data-dismiss="modal"]',t.proxy(a.hide,a)),a.backdrop(function(){var o=t.support.transition&&a.$element.hasClass("fade");a.$element.parent().length||a.$element.appendTo(a.$body),a.$element.show().scrollTop(0),o&&a.$element[0].offsetWidth,a.$element.addClass("in").attr("aria-hidden",!1),a.ajustPosition(i),a.enforceFocus();var r=t.Event("shown."+s,{relatedTarget:e});o?a.$element.find(".modal-dialog").one("bsTransitionEnd",function(){a.$element.trigger("focus").trigger(r)}).emulateTransitionEnd(n.TRANSITION_DURATION):a.$element.trigger("focus").trigger(r)}))},n.prototype.hide=function(e){e&&e.preventDefault();var i=this;e=t.Event("hide."+s),i.$element.trigger(e),i.isShown&&!e.isDefaultPrevented()&&(i.isShown=!1,i.options.backdrop!==!1&&(i.$body.removeClass("modal-open"),i.resetScrollbar()),i.escape(),t(document).off("focusin."+s),i.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss."+s),t.support.transition&&i.$element.hasClass("fade")?i.$element.one("bsTransitionEnd",t.proxy(i.hideModal,i)).emulateTransitionEnd(n.TRANSITION_DURATION):i.hideModal())},n.prototype.enforceFocus=function(){t(document).off("focusin."+s).on("focusin."+s,t.proxy(function(t){this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},n.prototype.escape=function(){this.isShown&&this.options.keyboard?t(document).on("keydown.dismiss."+s,t.proxy(function(i){if(27==i.which){var n=t.Event("escaping."+s),a=this.$element.triggerHandler(n,"esc");if(a!=e&&!a)return;this.hide()}},this)):this.isShown||t(document).off("keydown.dismiss."+s)},n.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$element.trigger("hidden."+s)})},n.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},n.prototype.backdrop=function(e){var i=this,a=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var o=t.support.transition&&a;if(this.$backdrop=t('').appendTo("body").data(s,r);var d=function(e,s){var n=i[e];t.isFunction(n)&&c.on(s+a,n)};d("onShow","show"),d("shown","shown"),d("onHide","hide"),d("hidden","hidden"),d("loaded","loaded"),c.on("shown"+a,function(){r.isShown=!0}).on("hidden"+a,function(){r.isShown=!1}),this.$modal=c,this.$dialog=c.find(".modal-dialog"),i.mergeOptions&&(this.options=i)},r.prototype.show=function(i){var a=t.extend({},this.options,{url:this.$trigger?this.$trigger.attr("href")||this.$trigger.attr("data-url")||this.$trigger.data("url"):this.options.url},i);this.init(a);var r=this,l=this.$modal,h=this.$dialog,c=a.custom,d=h.find(".modal-body").css("padding",""),u=h.find(".modal-header"),p=h.find(".modal-content");l.toggleClass("fade",a.fade).addClass(a.className).toggleClass("modal-loading",!this.isShown),h.toggleClass("modal-md","md"===a.size).toggleClass("modal-sm","sm"===a.size).toggleClass("modal-lg","lg"===a.size).toggleClass("modal-fullscreen","fullscreen"===a.size),u.toggle(a.showHeader),u.find(".modal-icon").attr("class","modal-icon icon-"+a.icon),u.find(".modal-title-name").text(a.title||""),a.size&&"fullscreen"===a.size&&(a.width="",a.height="");var f=function(){clearTimeout(this.resizeTask),this.resizeTask=setTimeout(function(){r.ajustPosition(a.position)},100)},g=function(t,e){return"undefined"==typeof t&&(t=a.delay),setTimeout(function(){h=l.find(".modal-dialog"),a.width&&"auto"!=a.width&&h.css("width",a.width),a.height&&"auto"!=a.height&&(h.css("height",a.height),"iframe"===a.type&&d.css("height",h.height()-u.outerHeight())),r.ajustPosition(a.position),l.removeClass("modal-loading"),"iframe"!=a.type&&h.off("resize."+s).on("resize."+s,f),e&&e()},t)};if("custom"===a.type&&c)if(t.isFunction(c)){var m=c({modal:l,options:a,modalTrigger:r,ready:g});typeof m===o&&(d.html(m),g())}else c instanceof t?(d.html(t("
    ").append(c.clone()).html()),g()):(d.html(c),g());else if(a.url){var v=function(){var t=l.callComEvent(r,"broken");t&&(d.html(t),g())};if(l.attr("ref",a.url),"iframe"===a.type){l.addClass("modal-iframe"),this.firstLoad=!0;var y="iframe-"+a.name;u.detach(),d.detach(),p.empty().append(u).append(d),d.css("padding",0).html(''),a.waittime>0&&(r.waitTimeout=g(a.waittime,v));var b=document.getElementById(y);b.onload=b.onreadystatechange=function(){if(r.firstLoad&&l.addClass("modal-loading"),!this.readyState||"complete"==this.readyState){r.firstLoad=!1,a.waittime>0&&clearTimeout(r.waitTimeout);try{l.attr("ref",b.contentWindow.location.href);var t=e.frames[y].$;if(t&&"auto"===a.height&&"fullscreen"!=a.size){var i=t("body").addClass("body-modal");a.iframeBodyClass&&i.addClass(a.iframeBodyClass);var n=function(t){l.removeClass("fade"),console.log("$framebody.outerHeight()",i.outerHeight());var e=i.outerHeight();t===!0&&a.onlyIncreaseHeight&&(e=Math.max(e,d.data("minModalHeight")||0),d.data("minModalHeight",e)),d.css("height",e),a.fade&&l.addClass("fade"),g()};l.callComEvent(r,"loaded",{modalType:"iframe",jQuery:t}),setTimeout(n,100),i.off("resize."+s).on("resize."+s,f)}else g()}catch(o){g()}}}}else t.ajax(t.extend({url:a.url,success:function(i){try{var s=t(i);s.filter(".modal-dialog").length?h.replaceWith(s):s.filter(".modal-content").length?h.find(".modal-content").replaceWith(s):d.wrapInner(s)}catch(a){e.console&&e.console.warn&&console.warn("ZUI: Cannot recogernize remote content.",{error:a,data:i}),l.html(i)}l.callComEvent(r,"loaded",{modalType:n}),g()},error:v},a.ajaxOptions))}l.modal({show:"show",backdrop:a.backdrop,moveable:a.moveable,rememberPos:a.rememberPos,keyboard:a.keyboard})},r.prototype.close=function(i,s){(i||s)&&this.$modal.on("hidden"+a,function(){t.isFunction(i)&&i(),typeof s===o&&("this"===s?e.location.reload():e.location=s)}),this.$modal.modal("hide")},r.prototype.toggle=function(t){this.isShown?this.close():this.show(t)},r.prototype.ajustPosition=function(e){e=e===i?this.options.position:e,t.isFunction(e)&&(e=e(this)),this.$modal.modal("ajustPosition",e)},t.zui({ModalTrigger:r,modalTrigger:new r}),t.fn.modalTrigger=function(e,i){return t(this).each(function(){var n=t(this),a=n.data(s),l=t.extend({title:n.attr("title")||n.text(),url:n.attr("href"),type:n.hasClass("iframe")?"iframe":""},n.data(),t.isPlainObject(e)&&e);a||n.data(s,a=new r(l,n)),typeof e==o?a[e](i):l.show&&a.show(i),n.on((l.trigger||"click")+".toggle."+s,function(t){a.toggle(l),n.is("a")&&t.preventDefault()})})};var l=t.fn.modal;t.fn.modal=function(e,i){return t(this).each(function(){var s=t(this);s.hasClass("modal")?l.call(s,e,i):s.modalTrigger(e,i)})};var h=function(e){var i=typeof e;return"undefined"===i?e=t(".modal.modal-trigger"):i===o&&(e=t(e)),e&&e instanceof t?e:null},c=function(i,n,a){var o=i;if(t.isFunction(i)){var r=a;a=n,n=i,i=r}i=h(i),i&&i.length?i.each(function(){t(this).data(s).close(n,a)}):t("body").hasClass("body-modal")&&e.parent.$.zui.closeModal(o,n,a)},d=function(t,e){e=h(e),e&&e.length&&e.modal("ajustPosition",t)};t.zui({closeModal:c,ajustModalPosition:d}),t(document).on("click."+s+".data-api",'[data-toggle="modal"]',function(e){var i=t(this),n=i.attr("href"),a=null;try{a=t(i.attr("data-target")||n&&n.replace(/.*(?=#[^\s]+$)/,""))}catch(o){}a&&a.length||(i.data(s)?i.trigger(".toggle."+s):i.modalTrigger({show:!0})),i.is("a")&&e.preventDefault()}).on("click."+s+".data-api",'[data-dismiss="modal"]',function(){t.zui.closeModal()})}(window.jQuery,window,void 0),+function(t){"use strict";var e=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.init("tooltip",t,e)};e.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'
    ',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},e.prototype.init=function(e,i,s){this.enabled=!0,this.type=e,this.$element=t(i),this.options=this.getOptions(s);for(var n=this.options.trigger.split(" "),a=n.length;a--;){var o=n[a];if("click"==o)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=o){var r="hover"==o?"mouseenter":"focus",l="hover"==o?"mouseleave":"blur";this.$element.on(r+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},e.prototype.getDefaults=function(){return e.DEFAULTS},e.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},e.prototype.getDelegateOptions=function(){var e={},i=this.getDefaults();return this._options&&t.each(this._options,function(t,s){i[t]!=s&&(e[t]=s)}),e},e.prototype.enter=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget)[this.type](this.getDelegateOptions()).data("zui."+this.type);return clearTimeout(i.timeout),i.hoverState="in",i.options.delay&&i.options.delay.show?void(i.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)):i.show()},e.prototype.leave=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget)[this.type](this.getDelegateOptions()).data("zui."+this.type);return clearTimeout(i.timeout),i.hoverState="out",i.options.delay&&i.options.delay.hide?void(i.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)):i.hide()},e.prototype.show=function(e){var i=t.Event("show.zui."+this.type);if((e||this.hasContent())&&this.enabled){var s=this;if(s.$element.trigger(i),i.isDefaultPrevented())return;var n=s.tip();s.setContent(e),s.options.animation&&n.addClass("fade");var a="function"==typeof s.options.placement?s.options.placement.call(s,n[0],s.$element[0]):s.options.placement,o=/\s?auto?\s?/i,r=o.test(a);r&&(a=a.replace(o,"")||"top"),n.detach().css({top:0,left:0,display:"block"}).addClass(a),s.options.container?n.appendTo(s.options.container):n.insertAfter(s.$element);var l=s.getPosition(),h=n[0].offsetWidth,c=n[0].offsetHeight;if(r){var d=s.$element.parent(),u=a,p=document.documentElement.scrollTop||document.body.scrollTop,f="body"==s.options.container?window.innerWidth:d.outerWidth(),g="body"==s.options.container?window.innerHeight:d.outerHeight(),m="body"==s.options.container?0:d.offset().left;a="bottom"==a&&l.top+l.height+c-p>g?"top":"top"==a&&l.top-p-c<0?"bottom":"right"==a&&l.right+h>f?"left":"left"==a&&l.left-h

    '}),e.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),e.prototype.constructor=e,e.prototype.getDefaults=function(){return e.DEFAULTS},e.prototype.setContent=function(){var t=this.tip(),e=this.getTarget();if(e)return e.find(".arrow").length<1&&t.addClass("no-arrow"),void t.html(e.html());var i=this.getTitle(),s=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](i),t.find(".popover-content")[this.options.html?"html":"text"](s),t.removeClass("fade top bottom left right in"),this.options.tipId&&t.attr("id",this.options.tipId),this.options.tipClass&&t.addClass(this.options.tipClass),t.find(".popover-title").html()||t.find(".popover-title").hide()},e.prototype.hasContent=function(){return this.getTarget()||this.getTitle()||this.getContent(); +},e.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},e.prototype.getTarget=function(){var e=this.$element,i=this.options,s=e.attr("data-target")||("function"==typeof i.target?i.target.call(e[0]):i.target);return!!s&&("$next"==s?e.next(".popover"):t(s))},e.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},e.prototype.tip=function(){return this.$tip||(this.$tip=t(this.options.template)),this.$tip};var i=t.fn.popover;t.fn.popover=function(i){return this.each(function(){var s=t(this),n=s.data("zui.popover"),a="object"==typeof i&&i;n||s.data("zui.popover",n=new e(this,a)),"string"==typeof i&&n[i]()})},t.fn.popover.Constructor=e,t.fn.popover.noConflict=function(){return t.fn.popover=i,this}}(window.jQuery),+function(t){"use strict";function e(){t(n).remove(),t(a).each(function(e){var n=i(t(this));n.hasClass("open")&&(n.trigger(e=t.Event("hide."+s)),e.isDefaultPrevented()||n.removeClass("open").trigger("hidden."+s))})}function i(e){var i=e.attr("data-target");i||(i=e.attr("href"),i=i&&/#/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,""));var s;try{s=i&&t(i)}catch(n){}return s&&s.length?s:e.parent()}var s="zui.dropdown",n=".dropdown-backdrop",a="[data-toggle=dropdown]",o=function(e){t(e).on("click."+s,this.toggle)};o.prototype.toggle=function(n){var a=t(this);if(!a.is(".disabled, :disabled")){var o=i(a),r=o.hasClass("open");if(e(),!r){if("ontouchstart"in document.documentElement&&!o.closest(".navbar-nav").length&&t('',a={type:"default",placement:"top",time:4e3,parent:"body",icon:null,close:!0,fade:!0,scale:!0},o={},r=function(e,r){t.isPlainObject(e)&&(r=e,e=r.message);var l=this;r=l.options=t.extend({},a,r),l.id=r.id||s++;var h=o[l.id];h&&h.destroy(),o[l.id]=l,l.message=(r.icon?' ':"")+e,l.$=t(n.format(r)).toggleClass("fade",r.fade).toggleClass("scale",r.scale).attr("id","messager-"+l.id),r.cssClass&&l.$.addClass(r.cssClass);var c=!1,d=l.$.find(".messager-actions"),u=function(e){var s=t('',s={zh_cn:{errorTip:"不是有效的颜色值"},zh_tw:{errorTip:"不是有效的顏色值"},en:{errorTip:"Not a valid color value"}},n=function(i,s){this.name=e,this.$=t(i),this.getOptions(s),this.init()};n.DEFAULTS={colors:["#00BCD4","#388E3C","#3280fc","#3F51B5","#9C27B0","#795548","#F57C00","#F44336","#E91E63"],pullMenuRight:!0,wrapper:"btn-wrapper",tileSize:30,lineCount:5,optional:!0,tooltip:"top",icon:"caret-down",updateBtn:"auto"},n.prototype.init=function(){var e=this,s=e.options,n=e.$,a=n.parent(),o=!1;a.hasClass("colorpicker")?e.$picker=a:(e.$picker=t(s.template||i),o=!0),e.$picker.addClass(s.wrapper).find(".cp-title").toggle(void 0!==s.title).text(s.title),e.$menu=e.$picker.find(".dropdown-menu").toggleClass("pull-right",s.pullMenuRight),e.$btn=e.$picker.find(".btn.dropdown-toggle"),e.$btn.find(".ic").addClass("icon-"+s.icon),s.btnTip&&e.$picker.attr("data-toggle","tooltip").tooltip({title:s.btnTip,placement:s.tooltip,container:"body"}),n.attr("data-provide",null),o&&n.after(e.$picker),e.colors={},t.each(s.colors,function(i,s){if(t.zui.Color.isColor(s)){var n=new t.zui.Color(s);e.colors[n.toCssStr()]=n}}),e.updateColors(),e.$picker.on("click",".cp-tile",function(){e.setValue(t(this).data("color"))});var r=function(){var i=n.val(),a=t.zui.Color.isColor(i);n.parent().toggleClass("has-error",!(a||s.optional&&""===i)),a?e.setValue(i,!0):s.optional&&""===i?n.tooltip("hide"):n.is(":focus")||n.tooltip("show",s.errorTip)};n.is("input:not([type=hidden])")?(s.tooltip&&n.attr("data-toggle","tooltip").tooltip({trigger:"manual",placement:s.tooltip,tipClass:"tooltip-danger",container:"body"}),n.on("keyup paste input change",r)):n.appendTo(e.$picker),r()},n.prototype.addColor=function(e){e instanceof t.zui.Color||(e=new t.zui.Color(e));var i=e.toCssStr(),s=this.options;this.colors[i]||(this.colors[i]=e);var n=t('',{titile:e}).data("color",e).css({color:e.contrast().toCssStr(),background:i,"border-color":e.luma()>.43?"#ccc":"transparent"}).attr("data-color",i);this.$menu.append(t("
  • ").css({width:s.tileSize,height:s.tileSize}).append(n)),s.optional&&this.$menu.find(".cp-tile.empty").parent().detach().appendTo(this.$menu)},n.prototype.updateColors=function(e){var i=(this.$picker,this.$menu.children("li:not(.heading)").remove()),s=this.options,e=e||this.colors,n=this,a=0;if(t.each(e,function(t,e){n.addColor(e),a++}),s.optional){var o=t('
  • ').css({width:s.tileSize,height:s.tileSize});this.$menu.append(o),a++}i.css("width",Math.min(a,s.lineCount)*s.tileSize+6)},n.prototype.setValue=function(e,i){var s=this,n=s.options,a=s.$btn;s.$menu.find(".cp-tile.active").removeClass("active");var o="",r=n.updateBtn;if("auto"===r){var l=a.find(".color-bar");r=!l.length||function(t){l.css("background",t||"")}}if(e){var h=new t.zui.Color(e);o=h.toCssStr().toLowerCase(),r&&(t.isFunction(r)?r(o,a,s):a.css({background:o,color:h.contrast().toCssStr(),borderColor:h.luma()>.43?"#ccc":o})),s.colors[o]||s.addColor(h),i||s.$.val().toLowerCase()===o||s.$.val(o).trigger("change"),s.$menu.find('.cp-tile[data-color="'+o+'"]').addClass("active"),s.$.tooltip("hide"),s.$.trigger("colorchange",h)}else r&&(t.isFunction(r)?r(null,a,s):a.attr("style",null)),i||""===s.$.val()||s.$.val(o).trigger("change"),n.optional&&s.$.tooltip("hide"),s.$menu.find(".cp-tile.empty").addClass("active"),s.$.trigger("colorchange",null);n.updateBorder&&t(n.updateBorder).css("border-color",o),n.updateBackground&&t(n.updateBackground).css("background-color",o),n.updateColor&&t(n.updateColor).css("color",o),n.updateText&&t(n.updateText).text(o)},n.prototype.getOptions=function(e){var i=t.extend({},n.DEFAULTS,this.$.data(),e);"string"==typeof i.colors&&(i.colors=i.colors.split(","));var a=(i.lang||t.zui.clientLang()).toLowerCase();i.errorTip||(i.errorTip=s[a].errorTip),t.fn.tooltip||(i.btnTip=!1),this.options=i},t.fn.colorPicker=function(i){return this.each(function(){var s=t(this),a=s.data(e),o="object"==typeof i&&i;a||s.data(e,a=new n(this,o)),"string"==typeof i&&a[i]()})},t.fn.colorPicker.Constructor=n,t(function(){t('[data-provide="colorpicker"]').colorPicker()})}(jQuery),function(t,e){function i(t){return t===e&&(t=s+=1),n[t%n.length]}var s=0,n=["#00a9fc","#ff5d5d","#fdc137","#00da88","#7ec5ff","#8666b8","#bd7b46","#ff9100","#ff3d00","#f57f17","#00e5ff","#00b0ff","#2979ff","#3d5afe","#651fff","#d500f9","#f50057","#ff1744"];jQuery.fn.tableChart=function(){t(this).each(function(){var e=t(this),s=e.data(),n=s.chart||"pie",a=t(s.target);if(a.length){var o=null;if("pie"===n){s=t.extend({scaleShowLabels:!0,scaleLabel:"<%=label%>: <%=value%>"},s);var r=[],l=e.find("tbody > tr").each(function(e){var s=t(this),n=i();s.attr("data-id",e).find(".chart-color-dot").css("background",n),r.push({label:s.find(".chart-label").text(),value:parseInt(s.find(".chart-value").text()),color:n,id:e})});r.length>1?s.scaleLabelPlacement="outside":1===r.length&&(s.scaleLabelPlacement="inside",r.push({label:"",value:r[0].value/2e3,color:"#fff",showLabel:!1})),o=a.pieChart(r,s),a.on("mousemove",function(t){var e=o.getSegmentsAtEvent(t);l.removeClass("active"),e.length&&l.filter('[data-id="'+e[0].id+'"]').addClass("active")})}else if("bar"===n){var h=i(),c=[],d={label:e.find("thead .chart-label").text(),color:h,data:[]},l=e.find("tbody > tr").each(function(e){var i=t(this);c.push(i.find(".chart-label").text()),d.data.push(parseInt(i.find(".chart-value").text())),i.find(".chart-color-dot").css("background",h)}),r={labels:c,datasets:[d]};c.length&&(s.barValueSpacing=5),o=a.barChart(r,s)}else if("line"===n){var h=i(),c=[],d={label:e.find("thead .chart-label").text(),color:h,data:[]},l=e.find("tbody > tr").each(function(e){var i=t(this);c.push(i.find(".chart-label").text()),d.data.push(parseInt(i.find(".chart-value").text())),i.find(".chart-color-dot").css("background",h)}),r={labels:c,datasets:[d]};c.length&&(s.barValueSpacing=5),o=a.lineChart(r,s)}null!==o&&e.data("zui.chart",o)}})};var a=function(i,s){var n=t(i),a=n.is("canvas")?n:n.find("canvas"),o=t.extend({value:0,color:"#006af1",backColor:"#E9F2FB",doughnut:!0,doughnutSize:85,width:20,height:20,showTip:!1,name:"",tipTemplate:"<%=value%>%",animation:"auto",realValue:parseFloat(n.find(".progress-value").text())},s,n.data()),r=a.length;r||(a=t("").appendTo(n)),a.attr("width")!==e?o.width=a.attr("width"):a.attr("width",o.width),a.attr("height")!==e?o.height=a.attr("height"):a.attr("height",o.height),r||8!=t.zui.browser.ie||G_vmlCanvasManager.initElement(a[0]),"auto"===o.animation&&(o.animation=o.width>30),o.value=Math.max(0,Math.min(100,o.value)),n.addClass("progress-pie-"+o.width);var l=[{value:o.value,label:o.name,color:o.color,circleBeginEnd:!0},{value:100-o.value,label:"",color:o.backColor}];a[o.doughnut?"doughnutChart":"pieChart"](l,t.extend({segmentShowStroke:!1,animation:o.animation,showTooltips:o.showTip,tooltipTemplate:o.tipTemplate,percentageInnerCutout:o.doughnutSize,reverseDrawOrder:!0,animationEasing:"easeInOutQuart",onAnimationProgress:o.realValue?function(t){n.find(".progress-value").text(Math.floor(o.realValue*t))}:e,onAnimationComplete:o.realValue?function(t){n.find(".progress-value").text(o.realValue)}:e},o.chartOptions))};jQuery.fn.progressPie=function(e){t(this).each(function(){var i=t(this),s=i.closest(".tab-pane");s.length&&!s.hasClass("active")?t('[data-toggle="tab"][data-target="#'+s.attr("id")+'"]').one("shown.zui.tab",function(){a(i,e)}):a(this,e)})},t(function(){t(".table-chart").tableChart();var e=t(".progress-pie");e.length>100?setTimeout(function(){e.progressPie()},1e3):e.progressPie()})}(jQuery,void 0),function(t){jQuery.fn.sparkline=function(e){t(this).each(function(){var i=t(this),s=t.extend({values:i.attr("values"),width:i.width()-4,height:i.height()-4},i.data(),e),n=s.height,a=[],o=s.width,r=s.values.split(","),l=0;for(var h in r){var c=parseFloat(r[h]);NaN!=c&&(a.push(c),l=Math.max(c,l))}var d=Math.min(l,30),u=(Math.ceil(l/d),Math.min(o,Math.max(10,a.length*o/30))),p=i.children("canvas");p.length||(i.append(''),p=i.children("canvas")),p.attr("width",u).attr("height",n);var f={labels:a,datasets:[{fillColor:"rgba(0,0,255,0.05)",strokeColor:"#0054EC",pointColor:"rgba(255,136,0,1)",pointStrokeColor:"#fff",data:a}]},g={animation:!0,scaleOverride:!0,scaleStepWidth:Math.ceil(l/10),scaleSteps:10,scaleStartValue:0,showScale:!1,showTooltips:!1,pointDot:!1,scaleShowGridLines:!1,datasetStrokeWidth:1},m=t(p).lineChart(f,g);i.data("sparklineChart",m)})},t(function(){t(".sparkline").sparkline()})}(jQuery),function(t){t(function(){t.fn.fixedDate=function(){return t(this).each(function(){var e=t(this);e.offset().top+200>t(document.body).height()&&e.attr("data-picker-position","top-right"),"0000-00-00"==e.val()&&e.focus(function(){ -"0000-00-00"==e.val()&&e.val("").datetimepicker("update")}).blur(function(){""==e.val()&&e.val("0000-00-00")})})};var e={language:t("html").attr("lang"),weekStart:1,todayBtn:1,autoclose:1,todayHighlight:1,startView:2,forceParse:0,showMeridian:1,format:"yyyy-mm-dd hh:ii",startDate:"1970-1-1"},i=t.extend({},e,{minView:2,format:"yyyy-mm-dd"}),s=t.extend({},e,{startView:1,minView:0,maxView:1,format:"hh:ii"});t(".datepicker-wrapper").click(function(){t(this).find(".form-date, .form-datetime, .form-time").datetimepicker("show").focus()}),window.datepickerOptions=e,t.fn.datepicker=function(e){return this.datetimepicker(t.extend({},i,e))},t.fn.timepicker=function(e){return this.datetimepicker(t.extend({},s,e))},t.fn.datepickerAll=function(){return this.find(".form-datetime").fixedDate().datetimepicker(e),this.find(".form-date").fixedDate().datepicker(),this.find(".form-time").fixedDate().timepicker(),this},t("body").datepickerAll()})}(jQuery),function(t){var e=function(e,i){i=t.extend({idStart:0,idEnd:9,chosen:!0,datetimepicker:!0,colorPicker:!0,hotkeys:!0},i,e.data());var s=e.find(".template");!s.length&&i.template&&(s=t(i.template));var n=0,a=0,o=function(t){t.is("select.chosen")?t.next(".chosen-container").find("input").focus():t.focus()},r=function(t){var i=e.find("[data-ctrl-index]:focus,.chosen-container-active").first();if(i.length){if(i.is(".chosen-container-active")){if(i.hasClass("chosen-with-drop")&&("down"===t||"up"===t))return;i=i.prev("select.chosen")}var s=i.data("ctrlIndex"),r=i.closest("tr").data("row");"down"===t?r0?r-=1:r=a-1:"left"===t?s>0?s-=1:s=n-1:"right"===t&&(s").html(r);l.attr("data-row",e).addClass(s.attr("class")).removeClass("template"),i.rowCreator&&i.rowCreator(l,e,i),o?o.after(l):h.append(l),t.fn.chosen&&i.chosen&&l.find(".chosen").chosen(t.isPlainObject(i.chosen)?i.chosen:null),t.fn.datetimepicker&&i.datetimepicker&&l.datepickerAll(t.isPlainObject(i.datetimepicker)?i.datetimepicker:null),t.fn.colorPicker&&i.colorPicker&&l.find("input.colorpicker").colorPicker(t.isPlainObject(i.colorPicker)?i.colorPicker:null);var d=0;return l.find('input[type!="hidden"],textarea,select').each(function(){var e=t(this);e.parent().hasClass("chosen-search")||e.attr("data-ctrl-index",d++)}),n=Math.max(n,d),l};t.extend(l,{createRow:d,template:c});for(var u=i.idStart;u<=i.idEnd;++u)d(u)}e.on("click",".btn-copy",function(){var e=t(this),i=t(e.data("copyFrom")).val(),s=t(e.data("copyTo")).val(i).addClass("highlight");setTimeout(function(){s.removeClass("highlight")},2e3)}),i.hotkeys&&t(document).on("keydown",function(t){var e={"Ctrl+#37":"left","Ctrl+#39":"right","#38":"up","#40":"down","Ctrl+#38":"up","Ctrl+#40":"down"},i=[];t.ctrlKey&&i.push("Ctrl"),i.push("#"+t.keyCode);var s=e[i.join("+")];s&&(r(s),t.ctrlKey&&(t.stopPropagation(),t.preventDefault()))}),e.data("zui.batchActionForm",l)};t.fn.batchActionForm=function(i){return this.each(function(){e(t(this),i)})}}(jQuery),function(t,e){"use strict";var i="zui.table",s={zh_cn:{selectedItems:"已选择 {0} 项",attrTotal:"{0}总计 {1}"},zh_tw:{selectedItems:"已选择 {0} 项",attrTotal:"{0}总计 {1}"},en:{selectedItems:"Seleted {0} items",attrTotal:"{0} total {1}"}},n=function(e,a){var o=this;o.name=i;var r=o.$=t(e);a=o.options=t.extend({},n.DEFAULTS,this.$.data(),a);var l=a.lang||"zh_cn";o.lang=t.isPlainObject(l)?t.extend(!0,{},s[l.lang||t.zui.clientLang()],l):s[l];var h=o.$table=r.is("table")?r:r.find("table");o.$header=h.find("thead"),o.$footer=r.find(".table-footer");var c=o.$form=r.is("form")?r:r.find("form");a.checkable&&(r.on("click",".check-all",function(){o.checkAll(!t(this).hasClass("checked"))}).on("click","tbody>tr",function(){o.checkRow(t(this))}).on("click",'tbody input[type="checkbox"],tbody label[for]',function(e){e.stopPropagation();var i=t(this);i.is("label")&&(i=i.closest(".checkbox-primary").find('input[type="checkbox"]')),o.checkRow(i.closest("tr"),i.is(":checked"))}).on("click","tbody a,tbody .btn",function(t){t.stopPropagation()}),a.selectable&&r.selectable(t.extend({},{selector:"tbody>tr",selectClass:"",trigger:".c-id",clickBehavior:"multi",listenClick:!1,select:function(t){o.checkRow(t.target,!0)},unselect:function(t){o.checkRow(t.target,!1)},rangeStyle:{border:"1px solid #006af1",backgroundColor:"rgba(50, 128, 252, 0.2)",borderRadius:"2px"}},t.isPlainObject(a.selectable)?a.selectable:null))),c.length&&(a.ajaxForm?c.ajaxForm(t.isPlainObject(a.ajaxForm)?a.ajaxForm:null):c.on("click","[data-form-action]",function(){c.attr("action",t(this).data("formAction")).submit()})),(a.fixFooter||a.fixHeader)&&(o.pageFooterHeight=t("#footer").outerHeight(),o.updateFixUI(),t(window).on("scroll resize",function(){o.updateFixUI()}).on("sidebar.toggle",function(){setTimeout(function(){o.updateFixUI()},200)})),(a.group||h.hasClass("table-grouped"))&&(h.on("click",".group-toggle",function(){o.toggleRowGroup(t(this).closest("tr").data("id"))}),t(document).on("click",".group-collapse-all",function(){o.toggleGroups(!1)}).on("click",".group-expand-all",function(){o.toggleGroups(!0)})),o.$statistic=r.find(".table-statistic"),o.defaultStatistic=o.$statistic.html(),o.updateStatistic()};n.prototype.toggleGroups=function(e){var i=this,s={};i.$.find("tbody>tr").each(function(n){var a=t(this).closest("tr").data("id");s[a]||i.toggleRowGroup(a,e)})},n.prototype.toggleRowGroup=function(i,s){var n=this.$.find('tbody>tr[data-id="'+i+'"]'),a=n.filter(".group-summary"),o=s===e?!a.hasClass("hidden"):!!s;n.not(".group-summary").toggleClass("hidden",!o),a.toggleClass("hidden",o),t("body").toggleClass("table-group-collapsed",!this.$.find("tbody>tr.group-summary.hidden").length)},n.prototype.updateStatistic=function(){var i=this,s=i.$statistic;if(s.length){i.defaultStatistic===e&&(i.defaultStatistic=s.html());var n=i.statisticCols;if(!n&&n!==!1){n={};var a=!1;i.$header.find("th").each(function(e){var i=t(this),s=i.data("statistic");s&&(a=!0,n[e]={format:s,name:i.text()})}),i.statisticCols=!!a&&n}var o=0;n&&t.each(n,function(t){n[t].total=0,n[t].checkedTotal=0}),i.$.find("tbody>tr").each(function(e){var i=t(this),s=i.hasClass("checked"),a=i.children("td");s&&o++,n&&t.each(n,function(t){var e=parseFloat(a.eq(t).text());isNaN(e)&&(e=0),n[t].total+=e,s&&(n[t].checkedTotal+=e)})});var r=[];if(o)r.push(i.lang.selectedItems.format(o));else if(i.defaultStatistic)return void s.html(i.defaultStatistic);n&&t.each(n,function(t){var e=n[t],s=e[o?"checkedTotal":"total"];e.format&&(s=e.format.format(s)),r.push(i.lang.attrTotal.format(e.name,s))}),s.html(r.join(", "))}},n.prototype.updateFixUI=function(t){var e=this,i=(new Date).getTime();return!t&&(e.lastUpdateCall&&clearTimeout(e.lastUpdateCall),!e.lastUpdateTime||i-e.lastUpdateTime<100)?void(e.lastUpdateCall=setTimeout(function(){e.updateFixUI(!0)},30)):(e.lastUpdateTime=i,e.lastUpdateCall&&(clearTimeout(e.lastUpdateCall),e.lastUpdateCall=null),e.options.fixHeader&&e.fixHeader(),void(e.options.fixFooter&&e.fixFooter()))},n.prototype.fixHeader=function(){var e=this,i=e.$header,s=i[0].getBoundingClientRect(),n=e.options.fixFooter,a=t.isFunction(n)?n(s,i):s.top<("number"==typeof n?n:-5),o=e.$.find("table.fixed-header-copy");if(a){o.length||(o=t('
    ').addClass(e.$table.attr("class")).append(i.clone()).insertAfter(e.$table)),o.css({top:0,left:s.left,position:"fixed",width:s.width});var r=o.find("th");i.find("th").each(function(e){r.eq(e).css("width",t(this).outerWidth())})}else o.remove()},n.prototype.fixFooter=function(){var e=this,i=e.$footer,s=e.$.find("tbody")[0].getBoundingClientRect(),n=e.options.fixFooter;i.toggleClass("fixed-footer",!!a);var a=t.isFunction(n)?n(s,i):s.bottom>window.innerHeight-50-("number"==typeof n?n:e.pageFooterHeight||5);i.toggleClass("fixed-footer",!!a),a?i.css({bottom:e.pageFooterHeight,left:s.left,width:s.width}):i.css({width:""})},n.prototype.checkAll=function(e){var i=this,s=i.$.find("tbody>tr");s.each(function(){i.checkRow(t(this),e,!0)}),i.updateCheckUI()},n.prototype.checkRow=function(t,i,s){var n=t.find('input[type="checkbox"]');i===e&&(i=!n.is(":checked")),t.toggleClass("checked",i),n.prop("checked",i),s||this.updateCheckUI()},n.prototype.updateCheckUI=function(){var e=this.$.find("tbody>tr"),i=!1,s=null,n=0,a=!1,o=e.length;e.each(function(e){var r=t(this);a=r.hasClass("checked"),r.toggleClass("row-check-begin",a&&!i),s&&s.toggleClass("row-check-end",!a&&i),a&&(n+=1),s=r,i=a,o===e+1&&r.toggleClass("row-check-end",a)}),this.$.toggleClass("has-row-checked",n>0).find(".check-all").toggleClass("checked",n===o),this.updateStatistic()},n.DEFAULTS={checkable:!0,ajaxForm:!1,selectable:!0,fixHeader:!0,fixFooter:!0},t.fn.table=function(e){return this.each(function(){var s=t(this),a=s.data(i),o="object"==typeof e&&e;a||s.data(i,a=new n(this,o)),"string"==typeof e&&a[e]()})},n.NAME=i,t.fn.table.Constructor=n,t(function(){t('[data-ride="table"]').table()})}(jQuery,void 0),function(t,e,i){t.fn._ajaxForm=t.fn.ajaxForm;var s={timeout:e.config?e.config.timeout:0,dataType:"json",errControlStyle:{borderColor:"#D2322D"}},n="";t.fn.enableForm=function(e){return e===i&&(e=!0),this.each(function(){var i=t(this);i.find('[type="submit"]').attr("disabled",e?null:"disabled"),i.hasClass("load-indicator")&&i.toggleClass("loading",!e)})};var a=function(e,i,s){"string"==typeof i&&(s=i,i=null),s=s||"show",t.zui.messager?t.zui.messager[s](e,i):alert(e)};t.ajaxForm=function(o,r){var l=t(o);if(l.length>1)return l.each(function(){t.ajaxForm(this,r)});t.isFunction(r)&&(r={complete:r}),r=t.extend({},s,l.data(),r);var h=r.beforeSubmit,c=r.error,d=r.success,u=r.finish;delete r.finish,delete r.success,delete r.onError,delete r.beforeSubmit;var p=r.errControlStyle;delete r.errControlStyle,r=t.extend({beforeSubmit:function(s,a,o){if(l.enableForm(!1),(h&&h(s,a,o))!==!1){var c={},d=a.find('[type="file"]');c.fileapi=d.length&&d[0].files!==i,c.formdata=e.FormData!==i;var u=c.fileapi&&a.find('input[type="file"]:enabled').filter(function(){return""!==t(this).val()}),p=u.length,f="multipart/form-data",g=a.attr("enctype")==f||a.attr("encoding")==f,m=c.fileapi&&c.formdata,v=(p||g)&&!m;v&&(""==n&&(n=r.url),r.url!=n&&(r.url=n),r.url=r.url.indexOf("&")>=0?r.url+"&HTTP_X_REQUESTED_WITH=XMLHttpRequest":r.url+"?HTTP_X_REQUESTED_WITH=XMLHttpRequest")}},success:function(i,s,n){if(l.enableForm(),(d&&d(i,s,n,l))!==!1){try{"string"==typeof i&&(i=JSON.parse(i))}catch(o){}if("object"!=typeof i)return i?alert(i):a("No response.","danger");var h=r.responser?t(r.responser):l.find(".form-responser");h.length||(h=t("#responser"));var c=i.message;if("success"===i.result){if(c){var f=l.find('[type="submit"]'),g=!1;f.length&&(f.popover({container:"body",trigger:"manual",content:c,tipClass:"popover-in-modal popover-success text-success",placement:i.placement||r.popoverPlacement||"right"}).popover("show"),setTimeout(function(){f.popover("destroy")},r.popoverTime||2e3),g=!0),h.length&&(h.html(''+c+"").show().delay(3e3).fadeOut(100),g=!0),g||a(c,"success")}if(u)return u(i,!0,l);if((r.closeModal||i.closeModal)&&setTimeout(t.zui.closeModal,r.closeModalTime||2e3),i.callback){var m=e[i.callback];if(t.isFunction(m)&&m()===!1)return}var v=r.locate||i.locate;if(v)if("loadInModal"==v){var y=t(".modal");setTimeout(function(){y.load(y.attr("ref"),function(){t(this).find(".modal-dialog").css("width",t(this).data("width")),t.zui.ajustModalPosition()})},1e3)}else{var b="reload"==v?e.location.href:v;setTimeout(function(){e.location.href=b},1200)}var w=r.ajaxReload||i.ajaxReload;if(w){var x=t(w);x.length&&x.load(e.location.href+" "+w,function(){x.find('[data-toggle="modal"]').modalTrigger()})}}else{if("string"==typeof c)h.length?h.html(''+c+"").show().delay(3e3).fadeOut(100):a(c,"danger");else if("object"==typeof c){var _=!1,C=[];t.each(c,function(e,i){var s=t.isArray(i)?i.join(";"):i,n=t("#"+e);if(!n.length)return void C.push(s);var a=e+"Label",o=t("#"+a);if(!o.length){var r=n.closest(".input-group").length;o=t('
    ').appendTo(r?n.closest(".input-group").parent():n.parent())}o.empty().append(s),n.css(p).addClass("has-error");var l=function(){var e=t("#"+a);if(e.length)return e.remove(),n.removeAttr("style").removeClass("has-error"),!0};n.on("change input mousedown",l);var h=t("#"+e+"_chosen");h.length&&h.find(".chosen-single").css(p).addClass("has-error").on("mousedown",function(){l()===!0&&t(this).removeAttr("style").removeClass("has-error")}),_||(n.focus(),_=!0)}),C.length&&a(C.join(";"),"danger")}if(u)return u(i,!1,l)}}},error:function(t,i,s){if((c&&c(t,i,s,l))!==!1){l.enableForm();var n="timeout"==i||"error"==i?e.lang?e.lang.timeout:i:t.responseText+i+s;a(n,"danger")}}},r),l._ajaxForm(r),l.on("click","[data-form-action]",function(){l.attr("action",t(this).data("formAction")).submit()})},t.fn.ajaxForm=function(e){return this.each(function(){t.ajaxForm(this,e)})},t.fn.setInputRequired=function(){return this.each(function(){var e=t(this),i=e.parent();i.is(".input-control")?i.addClass("required"):e.is(".chosen")&&e.attr("required","").next(".chosen-container").addClass("required")})},t(function(){t('.form-ajax,form[data-type="ajax"]').ajaxForm(),t("input[required],select[required]").setInputRequired()})}(jQuery,window,void 0),function(t){"use strict";var e="zui.searchList",i=function(t,e){if(t&&t.length)for(var i=0;i
    ').append(a)),e.$menu.append(a),e.$menu.removeClass("loading")},error:function(){e.$menu.removeClass("loading").append('
    '+(i.errorText||window.lang&&window.lang.timeout)+"
    ")}},i.ajax))},s.prototype.scrollTo=function(t){t.length&&t[0].scrollIntoView({behavior:"smooth"})},s.prototype.getItems=function(){return this.$.find(this.options.selector)},s.prototype.getActiveItem=function(){return this.getItems().filter(".active:first")},s.prototype.search=function(e){var s=this,n=void 0===e||null===e||""===e,a=s.getItems().removeClass("active");if(n)a.removeClass("hidden");else{var o=t.trim(e).split(" ");a.each(function(){var e=t(this),s=e.text()+" "+(e.data("key")||e.data("filter"));e.toggleClass("hidden",!i(o,s))})}s.scrollTo(a.not(".hidden").first().addClass("active"))},s.DEFAULTS={selector:".list-group a",searchBox:".search-box",onSelectItem:null},t.fn.searchList=function(i){return this.each(function(){var n=t(this),a=n.data(e),o="object"==typeof i&&i;a||n.data(e,a=new s(this,o)),"string"==typeof i&&a[i]()})},s.NAME=e,t.fn.searchList.Constructor=s,t(function(){t('[data-ride="searchList"]').searchList()})}(jQuery),function(t){"use strict";var e="zui.labelSelector",i=function(s,n){var a=this;a.name=e;a.$=t(s);n=a.options=t.extend({},i.DEFAULTS,this.$.data(),n),a.$.hide(),a.update()};i.prototype.select=function(t){t+="",this.$wrapper.find(".label.active").removeClass("active"),""!==t&&"0"!==t&&this.$wrapper.find('.label[data-value="'+t+'"]').addClass("active"),this.$.val(t).trigger("change")},i.prototype.update=function(){var e=this,i=e.options,s=e.$wrapper;if(!s){if(i.wrapper)s=t(i.wrapper);else{var n=e.$.next();s=n.hasClass(".label-selector")?n:t('
    ')}s.parent().length||e.$.after(s),e.$wrapper=s,s.on("click",".label",function(){e.select(t(this).data("value"))})}s.empty();var a=e.$.val();e.$.children("option").each(function(){var e=t(this),n={label:e.text(),value:e.val()},o=t(i.labelTemplate||'');i.labelCreator?o=i.labelCreator(o):(o.data("option",n).attr("data-value",n.value),""!==n.value&&"0"!==n.value||n.label?o.text(n.label).toggleClass("active",a===n.value):o.addClass("empty").append('')),s.append(o)})},i.DEFAULTS={},t.fn.labelSelector=function(s){return this.each(function(){var n=t(this),a=n.data(e),o="object"==typeof s&&s;a||n.data(e,a=new i(this,o)),"string"==typeof s&&a[s]()})},i.NAME=e,t.fn.labelSelector.Constructor=i,t(function(){t('[data-provide="labelSelector"]').labelSelector()})}(jQuery),function(t){"use strict";var e="zui.fileInput";const i=t.BYTE_UNITS={B:1,KB:1024,MB:1048576,GB:1073741824,TB:1099511627776};var s=t.formatBytes=function(t,e,s){return void 0===e&&(e=2),s||(s=to.fileMaxSize&&(h.val(""),(window.bootbox||window).alert(o.fileSizeError.format(s(o.fileMaxSize)))),r.update()}),r.update()};a.prototype.getFile=function(){return this.$input.prop("files")[0]},a.prototype.update=function(t){var e=this,i=e.$,n=e.getFile(),a=!n;i.toggleClass("normal",!a).toggleClass("empty",a),n?(e.oldName=n.name,i.find(".file-title").text(n.name).attr("title",n.name),i.find(".file-size").text(s(n.size)),i.find(".file-editbox").val(n.name).attr("size",n.name.length),e.options.onSelect&&e.options.onSelect(n,e)):i.find(".file-editbox").val("")},a.DEFAULTS={fileMaxSize:0,fileSizeError:"无法上传大于 {0} 的文件。"},t.fn.fileInput=function(i){return this.each(function(){var s=t(this),n=s.data(e),o="object"==typeof i&&i;n||s.data(e,n=new a(this,o)),"string"==typeof i&&n[i]()})},a.NAME=e,t.fn.fileInput.Constructor=a,t(function(){t('[data-provide="fileInput"]').fileInput()});var o="zui.fileInputList",r=function(e,i){var s=this;s.name=o;var n=s.$=t(e);i=s.options=t.extend({},r.DEFAULTS,this.$.data(),i),s.$template=n.find(".file-input").detach(),s.add()};r.prototype.add=function(){var t=this,e=t.options,i=t.$template.clone();"before"===e.appendWay?t.$.prepend(i):t.$.append(i),i.fileInput({fileMaxSize:e.eachFileMaxSize,fileSizeError:e.fileSizeError,onDelete:function(e){e.$.remove(),t.options.onDelete&&t.options.onDelete(e,t)},onSelect:function(e,i){t.add(),t.options.onSelect&&t.options.onSelect(e,i,t)}})},r.DEFAULTS={fileMaxSize:0,eachFileMaxSize:0,appendWay:"after",fileSizeError:"无法上传大于 {0} 的文件。"},t.fn.fileInputList=function(e){return this.each(function(){var i=t(this),s=i.data(o),n="object"==typeof e&&e;s||i.data(o,s=new r(this,n)),"string"==typeof e&&s[e]()})},r.NAME=o,t.fn.fileInputList.Constructor=r,t(function(){t('[data-provide="fileInputList"]').fileInputList()})}(jQuery),function(t){window.config||(window.config={}),t.createLink=window.createLink=function(t,e,s,n,a){if(n||(n=config.defaultView),a||(a=!1),s)for(s=s.split("&"),i=0;i'+d+"")}}t.val()||(time=e(a.format("hh:mm")),time=time-time%10+10,t.val(s(time)))};t.fn.timeSpanControl=function(i){return this.each(function(){var o=t(this),r=t.extend({},i,o.data()),l=o.find('[name="begin"],.control-time-begin'),h=o.find('[name="end"],.control-time-end'),c=function(){var t=l.val();if(o.find(".hide-empty-begin").toggleClass("hide",!t),t){const i=s(e(t)+30);h.find('option[value="'+i+'"]').length&&h.val(i),r.onChange&&r.onChange(h,i)}};if(o.data("timeSpanControlInit")){if(r.begin){const d=n(r.begin).format("hh:mm");l.find('option[value="'+d+'"]').length&&l.val(d),r.onChange&&r.onChange(l,d)}if(r.end){const u=n(r.end).format("hh:mm");h.find('option[value="'+u+'"]').length&&h.val(u),r.onChange&&r.onChange(h,u)}}else l.on("change",c),a(l,r.begin),a(h,r.end),o.data("timeSpanControlInit",!0);r.end||c()})},t.timeSpanControl={convertTimeToNum:e,convertNumToTime:s,initTimeSelect:a,createTime:n},t.fn.blockTodoes=function(){return this.each(function(){var e=t(this),i=e.find("form"),s=i.find('[name="title"]'),n=function(t){void 0===t&&(t=!e.hasClass("show-form")),e.toggleClass("show-form",t),t&&setTimeout(function(){s.focus()},50)};e.on("click",".todo-form-trigger",function(){n(t(this).data("trigger"))}),i.timeSpanControl({onChange:function(t){t.trigger("chosen:updated")}})})},t(function(){t(".block-todoes").blockTodoes()});var o=t("#searchTypeMenu"),r=t("#searchType"),l=function(e){e||(e=r.val()),e=e||"bug",r.val(e),o.find("li.selected").removeClass("selected");var i=o.find('a[data-value="'+e+'"]'),s=i.text();i.parent().addClass("selected"),t("#searchTypeName").text(s)};l(),o.on("click","a[data-value]",function(){l(t(this).data("value"))}),t.chosenDefaultOptions={disable_search_threshold:1,width:"100%",allow_single_deselect:!0,placeholder_text_single:" ",placeholder_text_multiple:" ",search_contains:!0},t.chosenSimpleOptions=t.extend({},t.chosenDefaultOptions,{disable_search_threshold:6}),t.fn._chosen=t.fn.chosen,t.fn.chosen=function(e){return this.each(function(){var i=t(this);return i._chosen(t.extend({},i.hasClass("chosen-simple")?t.chosenSimpleOptions:t.chosenDefaultOptions,e))})},t(function(){t(".chosen").each(function(){var e=t(this);e.closest(".template").length||e.chosen()})}),t.extend(t.fn.pager.Constructor.DEFAULTS,{maxNavCount:8,prevIcon:"icon-angle-left",nextIcon:"icon-angle-right",navEllipsisItem:"…",menuDirection:"dropup",pageSizeOptions:[5,10,15,20,25,30,35,40,45,50,100,200,500,1e3,2e3],elements:["total_text","size_menu","prev_icon","nav","next_icon"],onPageChange:function(t,e){console.log("onPageChange",t,e),t.recPerPage!==e.recPerPage&&(window.location.href=this.createLink())}}),t.zui.Messager.DEFAULTS.cssClass="messagger-zt",t.fn.reverseOrder=function(){return this.each(function(){var e=t(this);e.prependTo(e.parent())})};var h=function(e,i){var s=t(e);i=t.extend({},s.data(),i);var n=s.find(".histories-list"),a=!0,o=!1;s.on("click",".btn-reverse",function(){n.children("li").reverseOrder(),a=!a,t(this).find(".icon").toggleClass("icon-arrow-up",a).toggleClass("icon-arrow-down",!a)}).on("click",".btn-expand-all",function(){var e=t(this).find(".icon");o=!o,e.toggleClass("icon-plus",!o).toggleClass("icon-minus",o),n.children("li").toggleClass("show-changes",o)}).on("click",".btn-expand",function(){t(this).closest("li").toggleClass("show-changes")}).on("click",".btn-strip",function(){var e=t(this),s=e.find(".icon"),n=s.hasClass("icon-code");s.toggleClass("icon-code",!n).toggleClass("icon-text",n),e.attr("title",n?i.original:i.textdiff),e.closest("li").toggleClass("show-original",n)}),n.find(".btn-strip").attr("title",i.original);var r=s.find(".modal-comment").modal({show:!1,backdrop:!1,position:function(t){var e=n[0].getBoundingClientRect(),i=t.$element.find(".modal-dialog"),s=i.outerWidth(),a=i.outerHeight();return{top:Math.min(window.innerHeight-a,e.top-40),left:e.left+e.width-s,margin:0}}});s.on("click",".btn-comment",function(t){r.modal("toggle"),t.preventDefault()}).on("click",".btn-edit-comment,.btn-hide-form",function(){t(this).closest("li").toggleClass("show-form")});var l=s.find(".comment-edit-form");l.ajaxForm({success:function(t,e,i,s){setTimeout(function(){l.closest("li").removeClass("show-form")},2e3)}})};t.fn.histories=function(t){return this.each(function(){h(this,t)})},t(function(){t(".histories").histories()});var c=0,d=0;t.toggleSidebar=function(e){var i=t("#sidebar");if(i.length){var s=t("main");if(void 0===e)e=s.hasClass("hide-sidebar");else if(e&&!s.hasClass("hide-sidebar"))return;s.toggleClass("hide-sidebar",!e),clearTimeout(c),e?(i.addClass("showing"),c=setTimeout(function(){i.removeClass("showing"),i.trigger("sidebar.toggle",e)},210)):i.trigger("sidebar.toggle",e),t.zui.store.set(d,e)}};var u=function(){var e=t("#sidebar");if(e.length&&!e.data("init")){d="sidebar:"+(e.data("id")||config.module+"/"+config.method);var i=t("main");i.on("click",".sidebar-toggle",function(){t.toggleSidebar(i.hasClass("hide-sidebar"))});var s=t.zui.store.get(d,e.data("hide")!==!1);return e.addClass("no-animate"),t.toggleSidebar(s),setTimeout(function(){e.removeClass("no-animate")},500),e.data("init",1),!0}};u()||t(u),t.toggleQueryBox=function(e){var i=t("#queryBox");i.length&&(void 0===e&&(e=!i.hasClass("show")),i.toggleClass("show",!!e),i.data("init")||(i.addClass("load-indicator loading").data("init",1),t.get(t.createLink("search","buildForm"),function(t){i.html(t).removeClass("loading")})),t(".querybox-toggle").toggleClass("querybox-opened",e))},t(function(){var e=t("#queryBox");e.length&&(t(document).on("click",".querybox-toggle",function(){t.toggleQueryBox()}),e.hasClass("show")&&t.toggleQueryBox(!0))}),t.extend(t.fn.colorPicker.Constructor.DEFAULTS,{colors:["#3DA7F5","#75C941","#2DBDB2","#797EC9","#FFAF38","#FF4E3E"]}),t(function(){t("a.iframe").modalTrigger({type:"iframe"})});var p=function(){var e,i,s=t(this),n=t.extend({limitSize:40,suffix:"…"},s.data()),a=s.text();if(a.length>n.limitSize){e=a,i=a.substr(0,n.limitSize)+n.suffix,s.text(i).addClass("limit-text-on");var o=n.toggleBtn?t(n.toggleBtn):s.next(".text-limit-toggle");o.text(o.data("textExpand")),o.on("click",function(){var t=s.toggleClass("limit-text-on").hasClass("limit-text-on");s.text(t?i:e),o.text(o.data(t?"textExpand":"textCollapse"))})}else(n.toggleBtn?t(n.toggleBtn):s.next(".text-limit-toggle")).hide()};t.fn.textLimit=function(){return this.each(p)},t(function(){t(".text-limit").textLimit()}),t.fixedTableHead=window.fixedTableHead=function(e){t(e).scroll(function(){var e=t(this).find(".table-fixed-head").size()>0;if(!e&&(t(this).css("position","relative"),1==t(this).find("table").size())){var i=""+t(this).find("table thead").html()+"
    ";t(this).prepend(i);var s=t(this).find("table.table-fixed-head");s.addClass(t(this).find("table:last").attr("class"));var n=t(this).find("table:last thead th");s.find("thead th").each(function(t){s.find("thead th").eq(t).width(n.eq(t).width())})}t(this).find("table.table-fixed-head").css("top",t(this).scrollTop())})},t(document).on("click","tr[data-url]",function(){var e=t(this),i=e.data("href")||e.data("url");i&&(window.location.href=i)})}(jQuery); \ No newline at end of file +"0000-00-00"==e.val()&&e.val("").datetimepicker("update")}).blur(function(){""==e.val()&&e.val("0000-00-00")})})};var e={language:t("html").attr("lang"),weekStart:1,todayBtn:1,autoclose:1,todayHighlight:1,startView:2,forceParse:0,showMeridian:1,format:"yyyy-mm-dd hh:ii",startDate:"1970-1-1"},i=t.extend({},e,{minView:2,format:"yyyy-mm-dd"}),s=t.extend({},e,{startView:1,minView:0,maxView:1,format:"hh:ii"});t(".datepicker-wrapper").click(function(){t(this).find(".form-date, .form-datetime, .form-time").datetimepicker("show").focus()}),window.datepickerOptions=e,t.fn.datepicker=function(e){return this.datetimepicker(t.extend({},i,e))},t.fn.timepicker=function(e){return this.datetimepicker(t.extend({},s,e))},t.fn.datepickerAll=function(){return this.find(".form-datetime").fixedDate().datetimepicker(e),this.find(".form-date").fixedDate().datepicker(),this.find(".form-time").fixedDate().timepicker(),this},t("body").datepickerAll()})}(jQuery),function(t){var e=function(e,i){i=t.extend({idStart:0,idEnd:9,chosen:!0,datetimepicker:!0,colorPicker:!0,hotkeys:!0},i,e.data());var s=e.find(".template");!s.length&&i.template&&(s=t(i.template));var n=0,a=0,o=function(t){t.is("select.chosen")?t.next(".chosen-container").find("input").focus():t.focus()},r=function(t){var i=e.find("[data-ctrl-index]:focus,.chosen-container-active").first();if(i.length){if(i.is(".chosen-container-active")){if(i.hasClass("chosen-with-drop")&&("down"===t||"up"===t))return;i=i.prev("select.chosen")}var s=i.data("ctrlIndex"),r=i.closest("tr").data("row");"down"===t?r0?r-=1:r=a-1:"left"===t?s>0?s-=1:s=n-1:"right"===t&&(s").html(r);l.attr("data-row",e).addClass(s.attr("class")).removeClass("template"),i.rowCreator&&i.rowCreator(l,e,i),o?o.after(l):h.append(l),t.fn.chosen&&i.chosen&&l.find(".chosen").chosen(t.isPlainObject(i.chosen)?i.chosen:null),t.fn.datetimepicker&&i.datetimepicker&&l.datepickerAll(t.isPlainObject(i.datetimepicker)?i.datetimepicker:null),t.fn.colorPicker&&i.colorPicker&&l.find("input.colorpicker").colorPicker(t.isPlainObject(i.colorPicker)?i.colorPicker:null);var d=0;return l.find('input[type!="hidden"],textarea,select').each(function(){var e=t(this);e.parent().hasClass("chosen-search")||e.attr("data-ctrl-index",d++)}),n=Math.max(n,d),l};t.extend(l,{createRow:d,template:c});for(var u=i.idStart;u<=i.idEnd;++u)d(u)}e.on("click",".btn-copy",function(){var e=t(this),i=t(e.data("copyFrom")).val(),s=t(e.data("copyTo")).val(i).addClass("highlight");setTimeout(function(){s.removeClass("highlight")},2e3)}),i.hotkeys&&t(document).on("keydown",function(t){var e={"Ctrl+#37":"left","Ctrl+#39":"right","#38":"up","#40":"down","Ctrl+#38":"up","Ctrl+#40":"down"},i=[];t.ctrlKey&&i.push("Ctrl"),i.push("#"+t.keyCode);var s=e[i.join("+")];s&&(r(s),t.ctrlKey&&(t.stopPropagation(),t.preventDefault()))}),e.data("zui.batchActionForm",l)};t.fn.batchActionForm=function(i){return this.each(function(){e(t(this),i)})}}(jQuery),function(t,e){"use strict";var i="zui.table",s={zh_cn:{selectedItems:"已选择 {0} 项",attrTotal:"{0}总计 {1}"},zh_tw:{selectedItems:"已选择 {0} 项",attrTotal:"{0}总计 {1}"},en:{selectedItems:"Seleted {0} items",attrTotal:"{0} total {1}"}},n=function(e,a){var o=this;o.name=i;var r=o.$=t(e);a=o.options=t.extend({},n.DEFAULTS,this.$.data(),a);var l=a.lang||"zh_cn";o.lang=t.isPlainObject(l)?t.extend(!0,{},s[l.lang||t.zui.clientLang()],l):s[l];var h=o.$table=r.is("table")?r:r.find("table");o.$header=h.find("thead"),o.$footer=r.find(".table-footer");var c=o.$form=r.is("form")?r:r.find("form");a.checkable&&(r.on("click",".check-all",function(){o.checkAll(!t(this).hasClass("checked"))}).on("click","tbody>tr",function(e){t(e.target).closest(".btn,a,.not-check").length||o.checkRow(t(this))}).on("click",'tbody input[type="checkbox"],tbody label[for]',function(e){e.stopPropagation();var i=t(this);i.is("label")&&(i=i.closest(".checkbox-primary").find('input[type="checkbox"]')),o.checkRow(i.closest("tr"),i.is(":checked"))}),a.selectable&&r.selectable(t.extend({},{selector:"tbody>tr",selectClass:"",trigger:".c-id",clickBehavior:"multi",listenClick:!1,select:function(t){o.checkRow(t.target,!0)},unselect:function(t){o.checkRow(t.target,!1)},rangeStyle:{border:"1px solid #006af1",backgroundColor:"rgba(50, 128, 252, 0.2)",borderRadius:"2px"}},t.isPlainObject(a.selectable)?a.selectable:null))),c.length&&(a.ajaxForm?c.ajaxForm(t.isPlainObject(a.ajaxForm)?a.ajaxForm:null):c.on("click","[data-form-action]",function(){c.attr("action",t(this).data("formAction")).submit()})),(a.fixFooter||a.fixHeader)&&(o.pageFooterHeight=t("#footer").outerHeight(),o.updateFixUI(),t(window).on("scroll resize",function(){o.updateFixUI()}).on("sidebar.toggle",function(){setTimeout(function(){o.updateFixUI()},200)})),(a.group||h.hasClass("table-grouped"))&&(h.on("click",".group-toggle",function(){o.toggleRowGroup(t(this).closest("tr").data("id"))}),t(document).on("click",".group-collapse-all",function(){o.toggleGroups(!1)}).on("click",".group-expand-all",function(){o.toggleGroups(!0)})),a.childRows,o.$statistic=r.find(".table-statistic"),o.defaultStatistic=o.$statistic.html(),o.updateStatistic()};n.prototype.toggleGroups=function(e){var i=this,s={};i.$.find("tbody>tr").each(function(n){var a=t(this).closest("tr").data("id");s[a]||i.toggleRowGroup(a,e)})},n.prototype.toggleRowGroup=function(i,s){var n=this.$.find('tbody>tr[data-id="'+i+'"]'),a=n.filter(".group-summary"),o=s===e?!a.hasClass("hidden"):!!s;n.not(".group-summary").toggleClass("hidden",!o),a.toggleClass("hidden",o),t("body").toggleClass("table-group-collapsed",!this.$.find("tbody>tr.group-summary.hidden").length)},n.prototype.updateStatistic=function(){var i=this,s=i.$statistic;if(s.length){i.defaultStatistic===e&&(i.defaultStatistic=s.html());var n=i.statisticCols;if(!n&&n!==!1){n={};var a=!1;i.$header.find("th").each(function(e){var i=t(this),s=i.data("statistic");s&&(a=!0,n[e]={format:s,name:i.text()})}),i.statisticCols=!!a&&n}var o=0;n&&t.each(n,function(t){n[t].total=0,n[t].checkedTotal=0}),i.$.find("tbody>tr").each(function(e){var i=t(this),s=i.hasClass("checked"),a=i.children("td");s&&o++,n&&t.each(n,function(t){var e=parseFloat(a.eq(t).text());isNaN(e)&&(e=0),n[t].total+=e,s&&(n[t].checkedTotal+=e)})});var r=[];if(o)r.push(i.lang.selectedItems.format(o));else if(i.defaultStatistic)return void s.html(i.defaultStatistic);n&&t.each(n,function(t){var e=n[t],s=e[o?"checkedTotal":"total"];e.format&&(s=e.format.format(s)),r.push(i.lang.attrTotal.format(e.name,s))}),s.html(r.join(", "))}},n.prototype.updateFixUI=function(t){var e=this,i=(new Date).getTime();return!t&&(e.lastUpdateCall&&clearTimeout(e.lastUpdateCall),!e.lastUpdateTime||i-e.lastUpdateTime<100)?void(e.lastUpdateCall=setTimeout(function(){e.updateFixUI(!0)},30)):(e.lastUpdateTime=i,e.lastUpdateCall&&(clearTimeout(e.lastUpdateCall),e.lastUpdateCall=null),e.options.fixHeader&&e.fixHeader(),void(e.options.fixFooter&&e.fixFooter()))},n.prototype.fixHeader=function(){var e=this,i=e.$header,s=i[0].getBoundingClientRect(),n=e.options.fixFooter,a=t.isFunction(n)?n(s,i):s.top<("number"==typeof n?n:-5),o=e.$.find("table.fixed-header-copy");if(a){o.length||(o=t('
    ').addClass(e.$table.attr("class")).append(i.clone()).insertAfter(e.$table)),o.css({top:0,left:s.left,position:"fixed",width:s.width});var r=o.find("th");i.find("th").each(function(e){r.eq(e).css("width",t(this).outerWidth())})}else o.remove()},n.prototype.fixFooter=function(){var e=this,i=e.$footer,s=e.$.find("tbody")[0].getBoundingClientRect(),n=e.options.fixFooter;i.toggleClass("fixed-footer",!!a);var a=t.isFunction(n)?n(s,i):s.bottom>window.innerHeight-50-("number"==typeof n?n:e.pageFooterHeight||5);i.toggleClass("fixed-footer",!!a),a?i.css({bottom:e.pageFooterHeight,left:s.left,width:s.width}):i.css({width:""})},n.prototype.checkAll=function(e){var i=this,s=i.$.find("tbody>tr");s.each(function(){i.checkRow(t(this),e,!0)}),i.updateCheckUI()},n.prototype.checkRow=function(t,i,s){var n=t.find('input[type="checkbox"]');i===e&&(i=!n.is(":checked")),t.toggleClass("checked",i),n.prop("checked",i),s||this.updateCheckUI()},n.prototype.updateCheckUI=function(){var e=this.$.find("tbody>tr"),i=!1,s=null,n=0,a=!1,o=e.length;e.each(function(e){var r=t(this);a=r.hasClass("checked"),r.toggleClass("row-check-begin",a&&!i),s&&s.toggleClass("row-check-end",!a&&i),a&&(n+=1),s=r,i=a,o===e+1&&r.toggleClass("row-check-end",a)}),this.$.toggleClass("has-row-checked",n>0).find(".check-all").toggleClass("checked",n===o),this.updateStatistic()},n.DEFAULTS={checkable:!0,ajaxForm:!1,selectable:!0,fixHeader:!0,fixFooter:!0,childRows:!1},t.fn.table=function(e){return this.each(function(){var s=t(this),a=s.data(i),o="object"==typeof e&&e;a||s.data(i,a=new n(this,o)),"string"==typeof e&&a[e]()})},n.NAME=i,t.fn.table.Constructor=n,t(function(){t('[data-ride="table"]').table()})}(jQuery,void 0),function(t,e,i){t.fn._ajaxForm=t.fn.ajaxForm;var s={timeout:e.config?e.config.timeout:0,dataType:"json",errControlStyle:{borderColor:"#D2322D"}},n="";t.fn.enableForm=function(e){return e===i&&(e=!0),this.each(function(){var i=t(this);i.find('[type="submit"]').attr("disabled",e?null:"disabled"),i.hasClass("load-indicator")&&i.toggleClass("loading",!e)})};var a=function(e,i,s){"string"==typeof i&&(s=i,i=null),s=s||"show",t.zui.messager?t.zui.messager[s](e,i):alert(e)};t.ajaxForm=function(o,r){var l=t(o);if(l.length>1)return l.each(function(){t.ajaxForm(this,r)});t.isFunction(r)&&(r={complete:r}),r=t.extend({},s,l.data(),r);var h=r.beforeSubmit,c=r.error,d=r.success,u=r.finish;delete r.finish,delete r.success,delete r.onError,delete r.beforeSubmit;var p=r.errControlStyle;delete r.errControlStyle,r=t.extend({beforeSubmit:function(s,a,o){if(l.enableForm(!1),(h&&h(s,a,o))!==!1){var c={},d=a.find('[type="file"]');c.fileapi=d.length&&d[0].files!==i,c.formdata=e.FormData!==i;var u=c.fileapi&&a.find('input[type="file"]:enabled').filter(function(){return""!==t(this).val()}),p=u.length,f="multipart/form-data",g=a.attr("enctype")==f||a.attr("encoding")==f,m=c.fileapi&&c.formdata,v=(p||g)&&!m;v&&(""==n&&(n=r.url),r.url!=n&&(r.url=n),r.url=r.url.indexOf("&")>=0?r.url+"&HTTP_X_REQUESTED_WITH=XMLHttpRequest":r.url+"?HTTP_X_REQUESTED_WITH=XMLHttpRequest")}},success:function(i,s,n){if(l.enableForm(),(d&&d(i,s,n,l))!==!1){try{"string"==typeof i&&(i=JSON.parse(i))}catch(o){}if("object"!=typeof i)return i?alert(i):a("No response.","danger");var h=r.responser?t(r.responser):l.find(".form-responser");h.length||(h=t("#responser"));var c=i.message;if("success"===i.result){if(c){var f=l.find('[type="submit"]'),g=!1;f.length&&(f.popover({container:"body",trigger:"manual",content:c,tipClass:"popover-in-modal popover-success text-success",placement:i.placement||r.popoverPlacement||"right"}).popover("show"),setTimeout(function(){f.popover("destroy")},r.popoverTime||2e3),g=!0),h.length&&(h.html(''+c+"").show().delay(3e3).fadeOut(100),g=!0),g||a(c,"success")}if(u)return u(i,!0,l);if((r.closeModal||i.closeModal)&&setTimeout(t.zui.closeModal,r.closeModalTime||2e3),i.callback){var m=e[i.callback];if(t.isFunction(m)&&m()===!1)return}var v=r.locate||i.locate;if(v)if("loadInModal"==v){var y=t(".modal");setTimeout(function(){y.load(y.attr("ref"),function(){t(this).find(".modal-dialog").css("width",t(this).data("width")),t.zui.ajustModalPosition()})},1e3)}else{var b="reload"==v?e.location.href:v;setTimeout(function(){e.location.href=b},1200)}var w=r.ajaxReload||i.ajaxReload;if(w){var x=t(w);x.length&&x.load(e.location.href+" "+w,function(){x.find('[data-toggle="modal"]').modalTrigger()})}}else{if("string"==typeof c)h.length?h.html(''+c+"").show().delay(3e3).fadeOut(100):a(c,"danger");else if("object"==typeof c){var _=!1,C=[];t.each(c,function(e,i){var s=t.isArray(i)?i.join(";"):i,n=t("#"+e);if(!n.length)return void C.push(s);var a=e+"Label",o=t("#"+a);if(!o.length){var r=n.closest(".input-group").length;o=t('
    ').appendTo(r?n.closest(".input-group").parent():n.parent())}o.empty().append(s),n.css(p).addClass("has-error");var l=function(){var e=t("#"+a);if(e.length)return e.remove(),n.removeAttr("style").removeClass("has-error"),!0};n.on("change input mousedown",l);var h=t("#"+e+"_chosen");h.length&&h.find(".chosen-single").css(p).addClass("has-error").on("mousedown",function(){l()===!0&&t(this).removeAttr("style").removeClass("has-error")}),_||(n.focus(),_=!0)}),C.length&&a(C.join(";"),"danger")}if(u)return u(i,!1,l)}}},error:function(t,i,s){if((c&&c(t,i,s,l))!==!1){l.enableForm();var n="timeout"==i||"error"==i?e.lang?e.lang.timeout:i:t.responseText+i+s;a(n,"danger")}}},r),l._ajaxForm(r),l.on("click","[data-form-action]",function(){l.attr("action",t(this).data("formAction")).submit()})},t.fn.ajaxForm=function(e){return this.each(function(){t.ajaxForm(this,e)})},t.fn.setInputRequired=function(){return this.each(function(){var e=t(this),i=e.parent();i.is(".input-control")?i.addClass("required"):e.is(".chosen")&&e.attr("required","").next(".chosen-container").addClass("required")})},t(function(){t('.form-ajax,form[data-type="ajax"]').ajaxForm(),t("input[required],select[required]").setInputRequired()})}(jQuery,window,void 0),function(t){"use strict";var e="zui.searchList",i=function(t,e){if(t&&t.length)for(var i=0;i
    ').append(a)),e.$menu.append(a),e.$menu.removeClass("loading")},error:function(){e.$menu.removeClass("loading").append('
    '+(i.errorText||window.lang&&window.lang.timeout)+"
    ")}},i.ajax))},s.prototype.scrollTo=function(t){t.length&&t[0].scrollIntoView({behavior:"smooth"})},s.prototype.getItems=function(){return this.$.find(this.options.selector)},s.prototype.getActiveItem=function(){return this.getItems().filter(".active:first")},s.prototype.search=function(e){var s=this,n=void 0===e||null===e||""===e,a=s.getItems().removeClass("active");if(n)a.removeClass("hidden");else{var o=t.trim(e).split(" ");a.each(function(){var e=t(this),s=e.text()+" "+(e.data("key")||e.data("filter"));e.toggleClass("hidden",!i(o,s))})}s.scrollTo(a.not(".hidden").first().addClass("active"))},s.DEFAULTS={selector:".list-group a",searchBox:".search-box",onSelectItem:null},t.fn.searchList=function(i){return this.each(function(){var n=t(this),a=n.data(e),o="object"==typeof i&&i;a||n.data(e,a=new s(this,o)),"string"==typeof i&&a[i]()})},s.NAME=e,t.fn.searchList.Constructor=s,t(function(){t('[data-ride="searchList"]').searchList()})}(jQuery),function(t){"use strict";var e="zui.labelSelector",i=function(s,n){var a=this;a.name=e;a.$=t(s);n=a.options=t.extend({},i.DEFAULTS,this.$.data(),n),a.$.hide(),a.update()};i.prototype.select=function(t){t+="",this.$wrapper.find(".label.active").removeClass("active"),""!==t&&"0"!==t&&this.$wrapper.find('.label[data-value="'+t+'"]').addClass("active"),this.$.val(t).trigger("change")},i.prototype.update=function(){var e=this,i=e.options,s=e.$wrapper;if(!s){if(i.wrapper)s=t(i.wrapper);else{var n=e.$.next();s=n.hasClass(".label-selector")?n:t('
    ')}s.parent().length||e.$.after(s),e.$wrapper=s,s.on("click",".label",function(){e.select(t(this).data("value"))})}s.empty();var a=e.$.val();e.$.children("option").each(function(){var e=t(this),n={label:e.text(),value:e.val()},o=t(i.labelTemplate||'');i.labelCreator?o=i.labelCreator(o):(o.data("option",n).attr("data-value",n.value),""!==n.value&&"0"!==n.value||n.label?o.text(n.label).toggleClass("active",a===n.value):o.addClass("empty").append('')),s.append(o)})},i.DEFAULTS={},t.fn.labelSelector=function(s){return this.each(function(){var n=t(this),a=n.data(e),o="object"==typeof s&&s;a||n.data(e,a=new i(this,o)),"string"==typeof s&&a[s]()})},i.NAME=e,t.fn.labelSelector.Constructor=i,t(function(){t('[data-provide="labelSelector"]').labelSelector()})}(jQuery),function(t){"use strict";var e="zui.fileInput";const i=t.BYTE_UNITS={B:1,KB:1024,MB:1048576,GB:1073741824,TB:1099511627776};var s=t.formatBytes=function(t,e,s){return void 0===e&&(e=2),s||(s=to.fileMaxSize&&(h.val(""),(window.bootbox||window).alert(o.fileSizeError.format(s(o.fileMaxSize)))),r.update()}),r.update()};a.prototype.getFile=function(){return this.$input.prop("files")[0]},a.prototype.update=function(t){var e=this,i=e.$,n=e.getFile(),a=!n;i.toggleClass("normal",!a).toggleClass("empty",a),n?(e.oldName=n.name,i.find(".file-title").text(n.name).attr("title",n.name),i.find(".file-size").text(s(n.size)),i.find(".file-editbox").val(n.name).attr("size",n.name.length),e.options.onSelect&&e.options.onSelect(n,e)):i.find(".file-editbox").val("")},a.DEFAULTS={fileMaxSize:0,fileSizeError:"无法上传大于 {0} 的文件。"},t.fn.fileInput=function(i){return this.each(function(){var s=t(this),n=s.data(e),o="object"==typeof i&&i;n||s.data(e,n=new a(this,o)),"string"==typeof i&&n[i]()})},a.NAME=e,t.fn.fileInput.Constructor=a,t(function(){t('[data-provide="fileInput"]').fileInput()});var o="zui.fileInputList",r=function(e,i){var s=this;s.name=o;var n=s.$=t(e);i=s.options=t.extend({},r.DEFAULTS,this.$.data(),i),s.$template=n.find(".file-input").detach(),s.add()};r.prototype.add=function(){var t=this,e=t.options,i=t.$template.clone();"before"===e.appendWay?t.$.prepend(i):t.$.append(i),i.fileInput({fileMaxSize:e.eachFileMaxSize,fileSizeError:e.fileSizeError,onDelete:function(e){e.$.remove(),t.options.onDelete&&t.options.onDelete(e,t)},onSelect:function(e,i){t.add(),t.options.onSelect&&t.options.onSelect(e,i,t)}})},r.DEFAULTS={fileMaxSize:0,eachFileMaxSize:0,appendWay:"after",fileSizeError:"无法上传大于 {0} 的文件。"},t.fn.fileInputList=function(e){return this.each(function(){var i=t(this),s=i.data(o),n="object"==typeof e&&e;s||i.data(o,s=new r(this,n)),"string"==typeof e&&s[e]()})},r.NAME=o,t.fn.fileInputList.Constructor=r,t(function(){t('[data-provide="fileInputList"]').fileInputList()})}(jQuery),function(t){window.config||(window.config={}),t.createLink=window.createLink=function(t,e,s,n,a){if(n||(n=config.defaultView),a||(a=!1),s)for(s=s.split("&"),i=0;i'+d+"")}}t.val()||(time=e(a.format("hh:mm")),time=time-time%10+10,t.val(s(time)))};t.fn.timeSpanControl=function(i){return this.each(function(){var o=t(this),r=t.extend({},i,o.data()),l=o.find('[name="begin"],.control-time-begin'),h=o.find('[name="end"],.control-time-end'),c=function(){var t=l.val();if(o.find(".hide-empty-begin").toggleClass("hide",!t),t){const i=s(e(t)+30);h.find('option[value="'+i+'"]').length&&h.val(i),r.onChange&&r.onChange(h,i)}};if(o.data("timeSpanControlInit")){if(r.begin){const d=n(r.begin).format("hh:mm");l.find('option[value="'+d+'"]').length&&l.val(d),r.onChange&&r.onChange(l,d)}if(r.end){const u=n(r.end).format("hh:mm");h.find('option[value="'+u+'"]').length&&h.val(u),r.onChange&&r.onChange(h,u)}}else l.on("change",c),a(l,r.begin),a(h,r.end),o.data("timeSpanControlInit",!0);r.end||c()})},t.timeSpanControl={convertTimeToNum:e,convertNumToTime:s,initTimeSelect:a,createTime:n},t.fn.blockTodoes=function(){return this.each(function(){var e=t(this),i=e.find("form"),s=i.find('[name="title"]'),n=function(t){void 0===t&&(t=!e.hasClass("show-form")),e.toggleClass("show-form",t),t&&setTimeout(function(){s.focus()},50)};e.on("click",".todo-form-trigger",function(){n(t(this).data("trigger"))}),i.timeSpanControl({onChange:function(t){t.trigger("chosen:updated")}})})},t(function(){t(".block-todoes").blockTodoes()});var o=t("#searchTypeMenu"),r=t("#searchType"),l=function(e){e||(e=r.val()),e=e||"bug",r.val(e),o.find("li.selected").removeClass("selected");var i=o.find('a[data-value="'+e+'"]'),s=i.text();i.parent().addClass("selected"),t("#searchTypeName").text(s)};l(),o.on("click","a[data-value]",function(){l(t(this).data("value"))}),t.chosenDefaultOptions={disable_search_threshold:1,width:"100%",allow_single_deselect:!0,placeholder_text_single:" ",placeholder_text_multiple:" ",search_contains:!0},t.chosenSimpleOptions=t.extend({},t.chosenDefaultOptions,{disable_search_threshold:6}),t.fn._chosen=t.fn.chosen,t.fn.chosen=function(e){return this.each(function(){var i=t(this);return i._chosen(t.extend({},i.hasClass("chosen-simple")?t.chosenSimpleOptions:t.chosenDefaultOptions,e))})},t(function(){t(".chosen").each(function(){var e=t(this);e.closest(".template").length||e.chosen()})}),t.extend(t.fn.pager.Constructor.DEFAULTS,{maxNavCount:8,prevIcon:"icon-angle-left",nextIcon:"icon-angle-right",navEllipsisItem:"…",menuDirection:"dropup",pageSizeOptions:[5,10,15,20,25,30,35,40,45,50,100,200,500,1e3,2e3],elements:["total_text","size_menu","prev_icon","nav","next_icon"],onPageChange:function(t,e){console.log("onPageChange",t,e),t.recPerPage!==e.recPerPage&&(window.location.href=this.createLink())}}),t.zui.Messager.DEFAULTS.cssClass="messagger-zt",t.fn.reverseOrder=function(){return this.each(function(){var e=t(this);e.prependTo(e.parent())})};var h=function(e,i){var s=t(e);i=t.extend({},s.data(),i);var n=s.find(".histories-list"),a=!0,o=!1;s.on("click",".btn-reverse",function(){n.children("li").reverseOrder(),a=!a,t(this).find(".icon").toggleClass("icon-arrow-up",a).toggleClass("icon-arrow-down",!a)}).on("click",".btn-expand-all",function(){var e=t(this).find(".icon");o=!o,e.toggleClass("icon-plus",!o).toggleClass("icon-minus",o),n.children("li").toggleClass("show-changes",o)}).on("click",".btn-expand",function(){t(this).closest("li").toggleClass("show-changes")}).on("click",".btn-strip",function(){var e=t(this),s=e.find(".icon"),n=s.hasClass("icon-code");s.toggleClass("icon-code",!n).toggleClass("icon-text",n),e.attr("title",n?i.original:i.textdiff),e.closest("li").toggleClass("show-original",n)}),n.find(".btn-strip").attr("title",i.original);var r=s.find(".modal-comment").modal({show:!1,backdrop:!1,position:function(t){var e=n[0].getBoundingClientRect(),i=t.$element.find(".modal-dialog"),s=i.outerWidth(),a=i.outerHeight();return{top:Math.min(window.innerHeight-a,e.top-40),left:e.left+e.width-s,margin:0}}});s.on("click",".btn-comment",function(t){r.modal("toggle"),t.preventDefault()}).on("click",".btn-edit-comment,.btn-hide-form",function(){t(this).closest("li").toggleClass("show-form")});var l=s.find(".comment-edit-form");l.ajaxForm({success:function(t,e,i,s){setTimeout(function(){l.closest("li").removeClass("show-form")},2e3)}})};t.fn.histories=function(t){return this.each(function(){h(this,t)})},t(function(){t(".histories").histories()});var c=0,d=0;t.toggleSidebar=function(e){var i=t("#sidebar");if(i.length){var s=t("main");if(void 0===e)e=s.hasClass("hide-sidebar");else if(e&&!s.hasClass("hide-sidebar"))return;s.toggleClass("hide-sidebar",!e),clearTimeout(c),e?(i.addClass("showing"),c=setTimeout(function(){i.removeClass("showing"),i.trigger("sidebar.toggle",e)},210)):i.trigger("sidebar.toggle",e),t.zui.store.set(d,e)}};var u=function(){var e=t("#sidebar");if(e.length&&!e.data("init")){d="sidebar:"+(e.data("id")||config.module+"/"+config.method);var i=t("main");i.on("click",".sidebar-toggle",function(){t.toggleSidebar(i.hasClass("hide-sidebar"))});var s=t.zui.store.get(d,e.data("hide")!==!1);return e.addClass("no-animate"),t.toggleSidebar(s),setTimeout(function(){e.removeClass("no-animate")},500),e.data("init",1),!0}};u()||t(u),t.toggleQueryBox=function(e){var i=t("#queryBox");i.length&&(void 0===e&&(e=!i.hasClass("show")),i.toggleClass("show",!!e),i.data("init")||(i.addClass("load-indicator loading").data("init",1),t.get(t.createLink("search","buildForm"),function(t){i.html(t).removeClass("loading")})),t(".querybox-toggle").toggleClass("querybox-opened",e))},t(function(){var e=t("#queryBox");e.length&&(t(document).on("click",".querybox-toggle",function(){t.toggleQueryBox()}),e.hasClass("show")&&t.toggleQueryBox(!0))}),t.extend(t.fn.colorPicker.Constructor.DEFAULTS,{colors:["#3DA7F5","#75C941","#2DBDB2","#797EC9","#FFAF38","#FF4E3E"]}),t(function(){t("a.iframe").modalTrigger({type:"iframe"})});var p=function(){var e,i,s=t(this),n=t.extend({limitSize:40,suffix:"…"},s.data()),a=s.text();if(a.length>n.limitSize){e=a,i=a.substr(0,n.limitSize)+n.suffix,s.text(i).addClass("limit-text-on");var o=n.toggleBtn?t(n.toggleBtn):s.next(".text-limit-toggle");o.text(o.data("textExpand")),o.on("click",function(){var t=s.toggleClass("limit-text-on").hasClass("limit-text-on");s.text(t?i:e),o.text(o.data(t?"textExpand":"textCollapse"))})}else(n.toggleBtn?t(n.toggleBtn):s.next(".text-limit-toggle")).hide()};t.fn.textLimit=function(){return this.each(p)},t(function(){t(".text-limit").textLimit()}),t.fixedTableHead=window.fixedTableHead=function(e){t(e).scroll(function(){var e=t(this).find(".table-fixed-head").size()>0;if(!e&&(t(this).css("position","relative"),1==t(this).find("table").size())){var i=""+t(this).find("table thead").html()+"
    ";t(this).prepend(i);var s=t(this).find("table.table-fixed-head");s.addClass(t(this).find("table:last").attr("class"));var n=t(this).find("table:last thead th");s.find("thead th").each(function(t){s.find("thead th").eq(t).width(n.eq(t).width())})}t(this).find("table.table-fixed-head").css("top",t(this).scrollTop())})},t(document).on("click","tr[data-url]",function(){var e=t(this),i=e.data("href")||e.data("url");i&&(window.location.href=i)}),"yes"===config.onlybody&&self===parent&&(window.location.href=window.location.href.replace("?onlybody=yes","").replace("&onlybody=yes","")),t(function(){t("body").addClass("m-{currentModule}-{currentMethod}".format(config))})}(jQuery); \ No newline at end of file diff --git a/www/theme/zui/css/min.css b/www/theme/zui/css/min.css index 72c0e6557a..a136fc7171 100644 --- a/www/theme/zui/css/min.css +++ b/www/theme/zui/css/min.css @@ -1,5 +1,5 @@ /*! - * ZUI: Zentao template - v1.8.1 - 2018-05-08 + * ZUI: Zentao template - v1.8.1 - 2018-05-09 * http://zui.sexy * GitHub: https://github.com/easysoft/zui.git * Copyright (c) 2018 cnezsoft.com; Licensed MIT @@ -13,4 +13,4 @@ * * Copyright (c) 2011-2016 Harvest http://getharvest.com * MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md -*/.chosen-container{position:relative;display:inline-block;font-size:14px;vertical-align:middle;zoom:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;*display:inline}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;width:100%;background:#fff;border:1px solid #b6bdcc;border:1px solid rgba(0,0,0,.15);border-top:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.chosen-container .chosen-drop.chosen-drop-size-limited{border-top:1px solid rgba(0,0,0,.15)}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container.chosen-up .chosen-drop{top:inherit;bottom:100%;margin-top:auto;margin-bottom:-1px;border-radius:2px 2px 0 0;-webkit-box-shadow:0 -3px 5px rgba(0,0,0,.175);box-shadow:0 -3px 5px rgba(0,0,0,.175)}.chosen-container-single .chosen-single{display:block;width:100%;height:32px;padding:5px 8px;overflow:hidden;line-height:1.42857143;color:#3c4353;text-decoration:none;white-space:nowrap;vertical-align:middle;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #e8e9ee;border-radius:2px;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.chosen-container-single .chosen-default{color:#a6aab8}.chosen-container-single .chosen-single>span{display:block;margin-right:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:7px;right:24px;display:block;width:20px;height:20px;font-size:21px;font-weight:700;line-height:14px;color:#000;text-align:center;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.chosen-container-single .chosen-single abbr:before{content:'×'}.chosen-container-single .chosen-single abbr:focus,.chosen-container-single .chosen-single abbr:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;height:100%;padding:5px 8px}.chosen-container-single .chosen-single div b{display:inline-block;width:0;height:0;margin-bottom:2px;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.chosen-container-single .chosen-search{position:relative;z-index:1010;padding:3px 4px;margin:0;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{width:100%;height:27px;padding:2px 26px 2px 8px;margin:1px 0;font-size:12px;line-height:1.5;background-color:#fff;border:1px solid #e8e9ee;border-radius:2px;outline:0}.chosen-container-single .chosen-search input[type=text]:focus{border-color:#006af1}.chosen-container-single .chosen-search:before{position:absolute;top:10px;right:10px;display:block;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;color:#a6aab8;text-transform:none;content:"\e928";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.chosen-container-single .chosen-drop{margin-top:-1px;-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:0 0 4px 4px}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{position:relative;max-height:240px;padding:0;margin:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;padding:5px 10px;margin:0;line-height:15px;list-style:none;-webkit-transition:background-color .2s cubic-bezier(.175,.885,.32,1);-o-transition:background-color .2s cubic-bezier(.175,.885,.32,1);transition:background-color .2s cubic-bezier(.175,.885,.32,1);-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{color:#fff;background-color:#006af1}.chosen-container .chosen-results li.no-results{display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;width:100%;min-height:32px;min-height:30px\9;padding:0;margin:0;overflow:hidden;cursor:text;background-color:#fff;border:1px solid #e8e9ee;border-radius:2px;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.chosen-container-multi .chosen-choices:after,.chosen-container-multi .chosen-choices:before{display:table;content:" "}.chosen-container-multi .chosen-choices:after{clear:both}.chosen-container-multi .chosen-choices li{display:block;float:left;padding:0 6px;margin:5px 0 0 6px;list-style:none}.chosen-container-multi .chosen-choices li.search-field{padding:0;margin-bottom:4px;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{height:20px;font-size:100%;color:#a6aab8;background:0 0!important;border:0!important;border-radius:0;outline:0;-webkit-box-shadow:none;box-shadow:none}.chosen-container-multi .chosen-choices li.search-field .default{color:#999}.chosen-container-multi .chosen-choices li.search-field:before{position:absolute;right:8px;bottom:8px;display:block;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;color:#a6aab8;text-transform:none;content:"\e928";opacity:0;-webkit-transition:opacity .2s cubic-bezier(.175,.885,.32,1);-o-transition:opacity .2s cubic-bezier(.175,.885,.32,1);transition:opacity .2s cubic-bezier(.175,.885,.32,1);speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.chosen-container-multi .chosen-choices li.search-choice{position:relative;padding:3px 20px 3px 5px;line-height:12px;cursor:default;background-color:#f1f1f1;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cbd0db;border-radius:3px;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);-webkit-transition:all .4s cubic-bezier(.175,.885,.32,1);-o-transition:all .4s cubic-bezier(.175,.885,.32,1);transition:all .4s cubic-bezier(.175,.885,.32,1)}.chosen-container-multi .chosen-choices li.search-choice:hover{background-color:#fff;border-color:#adb5c6;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 0 rgba(0,0,0,.1)}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:0;right:0;display:block;width:20px;height:20px;font-size:16.8px;font-weight:700;line-height:14px;color:#000;text-align:center;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before{content:'×'}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:focus,.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;color:#666;background-color:#e4e4e4;border:1px solid #ccc}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{padding:5px 0;margin:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border-color:#006af1;-webkit-box-shadow:none,0 0 8px rgba(0,106,241,.6);box-shadow:none,0 0 8px rgba(0,106,241,.6)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #b6bdcc;border:1px solid rgba(0,0,0,.15);border-bottom-right-radius:0;border-bottom-left-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.chosen-container-active.chosen-with-drop .chosen-single div{background:0 0;border-left:none}.chosen-container-active.chosen-with-drop .chosen-single div b{content:"";border-top:0 dotted;border-bottom:4px solid}.chosen-container-active.chosen-with-drop.chosen-up .chosen-single{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.chosen-container-active .chosen-choices{border-color:#006af1;-webkit-box-shadow:none,0 0 8px rgba(0,106,241,.6);box-shadow:none,0 0 8px rgba(0,106,241,.6)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#111!important}.chosen-container-active .chosen-choices li.search-field:before{opacity:1}.chosen-disabled{cursor:default;opacity:.5!important}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.container,.container-fixed,.container-fluid{position:relative}body{padding-bottom:40px;background-color:#f6f6f6}body.body-modal{padding:0;background:0 0}em{font-style:normal}.strong{font-weight:700}.font-normal{font-weight:400!important}.text-middle{vertical-align:middle!important}.text-bottom{vertical-align:bottom!important}.text-top{vertical-align:top!important}.inline-block{display:inline-block!important}.layer{border-radius:4px;-webkit-box-shadow:0 0 20px 0 #bdc9d8;box-shadow:0 0 20px 0 #bdc9d8}.space{margin-bottom:20px}.space-lg{margin-bottom:30px}.muted{opacity:.5}.text-muted em{color:#3c4353}.no-animate{-webkit-transition:none!important;-o-transition:none!important;transition:none!important}.template{display:none!important}.text-left{text-align:left!important}.text-yellow.icon-folder{color:#ffe066}.table-row{display:table;width:100%;table-layout:fixed}.table-col,.table-row>.col,.table-row>[class*=col-],.table-row>[class*="-col"]{display:table-cell;float:none;vertical-align:top}.side-col{width:200px;padding-right:20px}.side-col.col-4{width:33.3333333%}.col-lg{width:260px}.col-xl{width:320px}.col-sm{width:150px}.col-xs{width:100px}.main-col+.side-col{padding-right:0;padding-left:20px}.row-grid>[class*=col-],.row-grid>[class*="-col"]{padding-top:6px;padding-bottom:6px}hr.space{margin:10px 0;border:none}hr.space-sm{margin:5px 0;border:none}.text-secondary{color:#00a9fc}.nav-primary>li>a{min-width:100px;padding:5px 8px;color:#838a9d;border-color:#e7f1fc}.nav-primary>li.active>a{color:#006af1;background-color:#e7f1fc;border-color:#e7f1fc}.nav-primary>li.active>a:hover{color:#006af1;background-color:#c3dcf7;border-color:#c3dcf7}.end-marker{margin-bottom:20px;color:#cbd0db;text-align:center}@-webkit-keyframes highlight{0%{background:#fff;outline:1px solid transparent}100%{background:#fff0d5;outline:2px solid #ffdcbc}}@-o-keyframes highlight{0%{background:#fff;outline:1px solid transparent}100%{background:#fff0d5;outline:2px solid #ffdcbc}}@keyframes highlight{0%{background:#fff;outline:1px solid transparent}100%{background:#fff0d5;outline:2px solid #ffdcbc}}.highlight{-webkit-animation:highlight .5s linear 0s 2 alternate;-o-animation:highlight .5s linear 0s 2 alternate;animation:highlight .5s linear 0s 2 alternate}.progress.inline-block{width:100px;margin:0}@font-face{font-family:ZentaoIcon;font-style:normal;font-weight:400;src:url(../fonts/ZentaoIcon.eot?v=1.1.0);src:url(../fonts/ZentaoIcon.eot?#iefix&v=1.1.0) format('embedded-opentype'),url(../fonts/ZentaoIcon.woff?v=1.1.0) format('woff'),url(../fonts/ZentaoIcon.ttf?v=1.1.0) format('truetype'),url(../fonts/ZentaoIcon.svg#regular?v=1.1.0) format('svg')}.icon,[class*=" icon-"],[class^=icon-]{font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-transform:none;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon:before{display:inline-block;min-width:18px;text-align:center}a .icon,a [class*=" icon-"],a [class^=icon-]{display:inline}.icon-lg:before{font-size:1.33333333em;vertical-align:-10%}.icon-2x{font-size:36px}.icon-3x{font-size:54px}.icon-4x{font-size:72px}.icon-5x{font-size:90px}.icon-spin{display:inline-block;-webkit-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}a .icon-spin{display:inline-block;text-decoration:none}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0);transform:rotate(0)}100%{-o-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);-o-transform:rotate(359deg);transform:rotate(359deg)}}.icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.icon-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.icon-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.icon-flip-horizontal{-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);-o-transform:scale(-1,1);transform:scale(-1,1)}.icon-flip-vertical{-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)}.icon.icon-flip-horizontal,.icon.icon-flip-vertical,.icon.icon-rotate-180,.icon.icon-rotate-270,.icon.icon-rotate-90{display:inline-block}.icon-help:before{content:"\e968"}.icon-folder-account:before{content:"\e942"}.icon-folder-move:before{content:"\e960"}.icon-folder-plus:before{content:"\e961"}.icon-folder-upload:before{content:"\e962"}.icon-folder-star:before{content:"\e963"}.icon-folder-edit:before{content:"\e964"}.icon-folder-download:before{content:"\e965"}.icon-folder-outline:before{content:"\e966"}.icon-restart:before{content:"\e95e"}.icon-history:before{content:"\e95f"}.icon-home:before{content:"\e958"}.icon-pencil:before{content:"\e254"}.icon-angle-down:before{content:"\e313"}.icon-angle-left:before{content:"\e314"}.icon-angle-right:before{content:"\e315"}.icon-angle-top:before{content:"\e316"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-zentao-alt:before{content:"\e900"}.icon-zentao:before{content:"\e901"}.icon-severity:before{content:"\e902"}.icon-bar-chart:before{content:"\e903"}.icon-import:before{content:"\e904"}.icon-export:before{content:"\e905"}.icon-printer:before{content:"\e906"}.icon-hand-right:before{content:"\e907"}.icon-checked:before{content:"\e908"}.icon-off:before{content:"\e909"}.icon-start:before{content:"\e90a"}.icon-play:before{content:"\e90a"}.icon-time:before{content:"\e90b"}.icon-edit:before{content:"\e90c"}.icon-trash:before{content:"\e90d"}.icon-link:before{content:"\e90e"}.icon-unlink:before{content:"\e90f"}.icon-bullhorn:before{content:"\e910"}.icon-bug:before{content:"\e911"}.icon-list-alt:before{content:"\e912"}.icon-fork:before{content:"\e913"}.icon-glasses:before{content:"\e914"}.icon-sitemap:before{content:"\e915"}.icon-plus-sign:before{content:"\e916"}.icon-pluses:before{content:"\e917"}.icon-flag-alt:before{content:"\e918"}.icon-magic:before{content:"\e919"}.icon-treemap:before{content:"\e91a"}.icon-confirm:before{content:"\e91b"}.icon-lightbulb:before{content:"\e91c"}.icon-delay:before{content:"\e91d"}.icon-calendar:before{content:"\e91d"}.icon-pause:before{content:"\e91e"}.icon-ban:before{content:"\e91f"}.icon-plus-bold:before{content:"\e920"}.icon-copy:before{content:"\e921"}.icon-refresh:before{content:"\e922"}.icon-arrow-up:before{content:"\e923"}.icon-arrow-down:before{content:"\e924"}.icon-arrow-left:before{content:"\e952"}.icon-arrow-right:before{content:"\e93e"}.icon-plus:before{content:"\e925"}.icon-minus:before{content:"\e926"}.icon-exchange:before{content:"\e927"}.icon-search:before{content:"\e928"}.icon-envelope-o:before{content:"\e92a"}.icon-check:before{content:"\e5ca"}.icon-circle:before{content:"\e836"}.icon-up-circle:before{content:"\e92b"}.icon-right-circle:before{content:"\e92c"}.icon-down-circle:before{content:"\e92d"}.icon-left-circle:before{content:"\e92e"}.icon-check-circle:before{content:"\e92f"}.icon-exclamation-sign:before{content:"\e930"}.icon-unfold-all:before{content:"\e931"}.icon-fold-all:before{content:"\e932"}.icon-plus-sm:before{content:"\e933"}.icon-chevron-left:before{content:"\e934"}.icon-chevron-right:before{content:"\e935"}.icon-close:before{content:"\e936"}.icon-flag:before{content:"\e937"}.icon-check-sign:before{content:"\e938"}.icon-minus-sign:before{content:"\e939"}.icon-bars-sign:before{content:"\e93a"}.icon-cog:before{content:"\e93b"}.icon-color:before{content:"\e93c"}.icon-paper-clip:before{content:"\e93d"}.icon-back:before{content:"\e93f"}.icon-chat-line:before{content:"\e940"}.icon-person:before{content:"\e941"}.icon-stack:before{content:"\e943"}.icon-cube:before{content:"\e967"}.icon-folder:before{content:"\e944"}.icon-folder-o:before{content:"\e945"}.icon-folder-open-o:before{content:"\e946"}.icon-folder-open:before{content:"\e947"}.icon-bars:before{content:"\e948"}.icon-cards-view:before{content:"\e949"}.icon-star-empty:before{content:"\e94a"}.icon-star:before{content:"\e94b"}.icon-file-empty:before{content:"\e94c"}.icon-file-text:before{content:"\e94d"}.icon-file-picture:before{content:"\e94e"}.icon-file-zip:before{content:"\e94f"}.icon-file-music:before{content:"\e950"}.icon-file-video:before{content:"\e951"}.icon-file-play:before{content:"\e953"}.icon-file-pdf:before{content:"\e954"}.icon-file-word:before{content:"\e955"}.icon-file-excel:before{content:"\e956"}.icon-file-code:before{content:"\f1c9"}.icon-ellipsis-v:before{content:"\e5d4"}.icon-spinner-indicator:before{content:"\e982"}.icon-text:before{content:"\e929"}.icon-code:before{content:"\e957"}.icon-chevron-double-up:before{content:"\e959"}.icon-chevron-double-down:before{content:"\e95a"}.icon-chart-pie:before{content:"\e95b"}.icon-chart-line:before{content:"\e95c"}.icon-chart-bar:before{content:"\e95d"}.icon-sm:before{font-size:14px;vertical-align:10%}.btn{display:inline-block;padding:5px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;border-radius:4px;-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:background,border,outline,opacity,-webkit-box-shadow;-o-transition-property:background,border,box-shadow,outline,opacity;transition-property:background,border,outline,opacity,-webkit-box-shadow;transition-property:background,border,box-shadow,outline,opacity;transition-property:background,border,box-shadow,outline,opacity,-webkit-box-shadow}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:focus,.btn:hover{color:#3c4353;text-decoration:none}.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.1)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:grayscale(1);-webkit-box-shadow:none;box-shadow:none;opacity:.5;-webkit-filter:grayscale(1)}.btn{color:#3c4353;background-color:#fff;border-color:#d9e0e7}.btn.active,.btn.hover,.btn:active,.btn:focus,.btn:hover,.open .dropdown-toggle.btn{color:#3c4353;background-color:rgba(255,255,255,.8);border-color:#bac7d3}.btn.active,.btn:active,.open .dropdown-toggle.btn{background-color:#f2f2f2;background-image:none;border-color:#bac7d3}.btn.disabled,.btn.disabled.active,.btn.disabled:active,.btn.disabled:focus,.btn.disabled:hover,.btn[disabled],.btn[disabled].active,.btn[disabled]:active,.btn[disabled]:focus,.btn[disabled]:hover,fieldset[disabled] .btn,fieldset[disabled] .btn.active,fieldset[disabled] .btn:active,fieldset[disabled] .btn:focus,fieldset[disabled] .btn:hover{color:rgba(60,67,83,.3);background-color:#fff;border-color:#d9e0e7}.btn-gray{color:#82899f;background-color:#f1f1f1;border-color:#f1f1f1}.btn-gray.active,.btn-gray.hover,.btn-gray:active,.btn-gray:focus,.btn-gray:hover,.open .dropdown-toggle.btn-gray{color:#82899f;background-color:rgba(241,241,241,.8);border-color:#d8d8d8}.btn-gray.active,.btn-gray:active,.open .dropdown-toggle.btn-gray{background-color:#e4e4e4;background-image:none;border-color:#d8d8d8}.btn-gray.disabled,.btn-gray.disabled.active,.btn-gray.disabled:active,.btn-gray.disabled:focus,.btn-gray.disabled:hover,.btn-gray[disabled],.btn-gray[disabled].active,.btn-gray[disabled]:active,.btn-gray[disabled]:focus,.btn-gray[disabled]:hover,fieldset[disabled] .btn-gray,fieldset[disabled] .btn-gray.active,fieldset[disabled] .btn-gray:active,fieldset[disabled] .btn-gray:focus,fieldset[disabled] .btn-gray:hover{color:rgba(130,137,159,.3);background-color:#f1f1f1;border-color:#f1f1f1}.btn-primary{color:#fff;background-color:#006af1;border-color:transparent}.btn-primary.active,.btn-primary.hover,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .dropdown-toggle.btn-primary{color:#fff;background-color:rgba(0,106,241,.8);border-color:rgba(0,0,0,0)}.btn-primary.active,.btn-primary:active,.open .dropdown-toggle.btn-primary{background-color:#005fd8;background-image:none;border-color:rgba(0,0,0,0)}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{color:rgba(255,255,255,.3);background-color:#006af1;border-color:transparent}.btn-secondary{color:#fff;background-color:#00a9fc;border-color:transparent}.btn-secondary.active,.btn-secondary.hover,.btn-secondary:active,.btn-secondary:focus,.btn-secondary:hover,.open .dropdown-toggle.btn-secondary{color:#fff;background-color:rgba(0,169,252,.8);border-color:rgba(0,0,0,0)}.btn-secondary.active,.btn-secondary:active,.open .dropdown-toggle.btn-secondary{background-color:#0098e3;background-image:none;border-color:rgba(0,0,0,0)}.btn-secondary.disabled,.btn-secondary.disabled.active,.btn-secondary.disabled:active,.btn-secondary.disabled:focus,.btn-secondary.disabled:hover,.btn-secondary[disabled],.btn-secondary[disabled].active,.btn-secondary[disabled]:active,.btn-secondary[disabled]:focus,.btn-secondary[disabled]:hover,fieldset[disabled] .btn-secondary,fieldset[disabled] .btn-secondary.active,fieldset[disabled] .btn-secondary:active,fieldset[disabled] .btn-secondary:focus,fieldset[disabled] .btn-secondary:hover{color:rgba(255,255,255,.3);background-color:#00a9fc;border-color:transparent}.btn-warning{color:#fff;background-color:#fdc137;border-color:transparent}.btn-warning.active,.btn-warning.hover,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open .dropdown-toggle.btn-warning{color:#fff;background-color:rgba(253,193,55,.8);border-color:rgba(0,0,0,0)}.btn-warning.active,.btn-warning:active,.open .dropdown-toggle.btn-warning{background-color:#fdb91e;background-image:none;border-color:rgba(0,0,0,0)}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{color:rgba(255,255,255,.3);background-color:#fdc137;border-color:transparent}.btn-danger{color:#fff;background-color:#ff5d5d;border-color:transparent}.btn-danger.active,.btn-danger.hover,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .dropdown-toggle.btn-danger{color:#fff;background-color:rgba(255,93,93,.8);border-color:rgba(0,0,0,0)}.btn-danger.active,.btn-danger:active,.open .dropdown-toggle.btn-danger{background-color:#ff4343;background-image:none;border-color:rgba(0,0,0,0)}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{color:rgba(255,255,255,.3);background-color:#ff5d5d;border-color:transparent}.btn-success{color:#fff;background-color:#00da88;border-color:transparent}.btn-success.active,.btn-success.hover,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .dropdown-toggle.btn-success{color:#fff;background-color:rgba(0,218,136,.8);border-color:rgba(0,0,0,0)}.btn-success.active,.btn-success:active,.open .dropdown-toggle.btn-success{background-color:#00c178;background-image:none;border-color:rgba(0,0,0,0)}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{color:rgba(255,255,255,.3);background-color:#00da88;border-color:transparent}.btn-info{color:#006af1;background-color:#e9f2fb;border-color:transparent}.btn-info.active,.btn-info.hover,.btn-info:active,.btn-info:focus,.btn-info:hover,.open .dropdown-toggle.btn-info{color:#006af1;background-color:rgba(233,242,251,.8);border-color:rgba(0,0,0,0)}.btn-info.active,.btn-info:active,.open .dropdown-toggle.btn-info{background-color:#d3e5f7;background-image:none;border-color:rgba(0,0,0,0)}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{color:rgba(0,106,241,.3);background-color:#e9f2fb;border-color:transparent}.btn-link{padding-right:6px;padding-left:6px;font-weight:400;color:#838a9d;text-shadow:none;cursor:pointer;background:0 0;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover,.btn-link[disabled],fieldset[disabled] .btn-link{border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link:focus,.btn-link:hover{color:#3c4353;background-color:#f1f1f1}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#cbd0db;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.25;border-radius:4px}.btn-mini,.btn-sm,.btn-xs{padding:2px 8px;font-size:12px;line-height:1.5;border-radius:4px}.btn-mini,.btn-xs{padding:0 5px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-wide{min-width:120px}.btn-limit{max-width:150px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-limit>.caret{position:absolute;top:14px;right:8px}.btn-circle{border-radius:17px}.btn>.label-icon{top:3px;padding:3px;margin:-2px;background-color:rgba(0,0,0,.1);border-radius:12px}.btn>.label-icon>.icon{font-size:16px;line-height:18px}.btn>.icon+.text{margin-left:5px}.btn.btn-sm.btn-circle{border-radius:12px}.btn.btn-sm>.label-icon{top:1px;width:20px;height:20px;padding:1px;line-height:20px}.btn.btn-sm>.label-icon>.icon{font-size:14px}.btn-icon-left{position:relative;padding-left:35px;overflow:hidden;text-align:right}.btn-icon-left>.label-icon{position:absolute;left:5px;margin:0}.btn-icon-left>.icon{position:absolute;top:0;bottom:0;left:0;display:block;width:30px;line-height:30px;color:#00a9fc;text-align:center;background:#e9f2fb}.btn-icon-right{position:relative;padding-right:35px;text-align:left}.btn-icon-right>.label-icon{position:absolute;right:5px;margin:0}.btn-icon{min-width:32px;padding-right:0;padding-left:0}.btn-icon.btn-sm{width:24px;min-width:24px;height:24px}.btn-group{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group>.btn-group{float:left}.btn-group>.btn{border-radius:0}.btn-group>.btn:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.btn-group>.btn:last-child{border-top-right-radius:2px;border-bottom-right-radius:2px}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.dropdown{float:left;margin-right:10px}.btn-toolbar>.btn-group:last-child,.btn-toolbar>.btn:last-child,.btn-toolbar>.dropdown:last-child{margin-right:0}.btn-toolbar>.divider{float:left;height:20px;margin:7px 5px 4px 10px;border-left:1px solid rgba(0,0,0,.05)}.btn-toolbar .space{float:left;min-height:1px;margin:0 10px 0 10px}.btn-toolbar .input-control{float:left;width:120px}.btn-toolbar .page-title{float:left;margin-left:15px;line-height:34px}.btn-toolbar .page-title .text{font-size:18px}.btn-toolbar .page-title .label{top:-3px;margin-right:10px}.btn-active-line{position:relative;font-weight:700;color:#006af1}.btn-active-line:after{position:absolute;right:5px;bottom:1px;left:5px;display:block;content:' ';border-bottom:2px solid #006af1}.btn-active-line:hover{color:#006af1}.btn-active-text .text{position:relative;display:inline-block;font-weight:700;color:#006af1}.btn-active-text .text:after{position:absolute;bottom:-5px;display:block;width:100%;content:' ';border-bottom:2px solid #006af1}.angle-btn{position:relative;padding:1px;border:1px solid #d9e0e7;border-right:none}.btn-toolbar>.angle-btn{margin-right:8px}.angle-btn:after,.angle-btn:before{position:absolute;top:-1px;right:-8px;display:block;width:0;height:0;content:' ';border-color:transparent transparent transparent #d9e0e7;border-style:solid;border-width:17px 0 17px 8px}.angle-btn:after{right:-7px;border-color:transparent transparent transparent #fff;border-width:17px 0 17px 8px}.angle-btn .btn{padding:5px 6px;color:#838a9d;border:none;border-radius:4px!important}.angle-btn .btn.btn-limit{padding-right:16px}.angle-btn .btn.btn-limit>.caret{right:4px}.angle-btn+.angle-btn{border-left:none}.angle-btn+.angle-btn>.btn-group:first-child{padding-left:8px}.angle-btn+.angle-btn>.btn-group:first-child:after,.angle-btn+.angle-btn>.btn-group:first-child:before{position:absolute;top:-1px;left:0;display:block;width:0;height:0;content:' ';border-color:transparent transparent transparent #d9e0e7;border-style:solid;border-width:17px 0 17px 8px}.angle-btn+.angle-btn>.btn-group:first-child:after{left:-1px;border-color:transparent transparent transparent #fff;border-width:17px 0 17px 8px}.label{position:relative;display:inline-block;padding:3px 5px;font-size:12px;font-weight:400;border-radius:2px}.label+.label{margin-left:4px}.label-pale{background:#e9f2fb}.label-badge{border-radius:9px}.label-outline.label-danger{color:#ff5d5d;background:#ffe5e0;border-color:rgba(255,93,93,.25)}.label-outline.label-light{color:#838a9d;background:#f2f5fb;border-color:#e1e5ee}.label-outline.label-primary{background:#e9f2fb;border-color:rgba(0,106,241,.25)}.label-outline.label-success{background:#ddf4df;border-color:rgba(0,218,136,.25)}.label-light{color:#838a9d;background-color:#e7e7e7}.label-dot{position:relative;top:-1px;padding:0;border-radius:50%}.label-dot+.status-text{display:inline-block;margin-left:5px}.label-icon{min-width:18px;padding:0;line-height:18px;border-radius:10px}.label-id{display:inline-block;min-width:30px;padding:0 5px;font-size:12px;line-height:16px;color:#838a9d;text-align:center;vertical-align:middle;background-color:transparent;border:1px solid #cbd0db;border-radius:2px}.pri-1,.todo-pri-1{color:#ff5d5d}.project-status-delayed,.status-delayed{color:#ff5d5d}.project-status-delayed>.label-dot,.status-delayed>.label-dot{background-color:#ff5d5d}.project-status-wait,.status-wait{color:#a6aab8}.project-status-wait>.label-dot,.status-wait>.label-dot{background-color:#7ec5ff}.project-status-doing,.status-active,.status-doing,.status-unclosed{color:#a6aab8}.project-status-doing>.label-dot,.status-active>.label-dot,.status-doing>.label-dot,.status-unclosed>.label-dot{background-color:#006af1}.project-status-done,.status-done{color:#a6aab8}.project-status-done>.label-dot,.status-done>.label-dot{background-color:#00da88}.status-postpone{color:#a6aab8}.status-postpone>.label-dot{background-color:#ff5d5d}.status-changed{color:#ff5d5d}.status-changed>.label-dot{background-color:#ff5d5d}.project-status-suspended,.status-pause,.status-suspended{color:#fdc137}.project-status-suspended>.label-dot,.status-pause>.label-dot,.status-suspended>.label-dot{background-color:#fdc137}.status-draft{color:#a6aab8}.status-draft>.label-dot{background-color:#8666b8}.status-closed{color:#a6aab8}.status-closed>.label-dot{background-color:#a6aab8}.status-cancel{color:#a6aab8}.status-cancel>.label-dot{background-color:#cbd0db}.label-pri{display:inline-block;min-width:20px;height:20px;padding:0 4px;line-height:20px;color:#a6aab8;text-align:center;white-space:nowrap;background-color:#f0f2f5;border-radius:10px}.label-pri-1{color:#fff;background:#51a1ff}.label-pri-2{color:#fff;background:#72b3ff}.label-pri-3{color:#fff;background:#98c8ff}.label-pri-4{color:#fff;background:#c4dfff}.label-level{position:relative;display:inline-block;width:24px;height:20px;text-align:center}.label-level:before{position:absolute;top:-3px;left:0;z-index:0;font-family:ZentaoIcon;font-size:18px;font-size:24px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;color:#f0f2f5;text-transform:none;content:"\e902";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.label-level:after{position:relative;top:1px;z-index:1;display:inline-block;font-size:12px;line-height:18px;color:#fff;content:attr(data-level)}.label-level[data-level="1"]:before{color:#f65f28}.label-level[data-level="2"]:before{color:#f86e29}.label-level[data-level="3"]:before{color:#f77036}.label-level[data-level="4"]:before{color:#f7824c}.label-level[data-level="5"]:before{color:#fe9527}.label-level[data-level="6"]:before{color:#fea429}.task-status-wait{color:#a6aab8}.task-status-wait>.label-dot{background-color:#7ec5ff}.task-status-doing{color:#a6aab8}.task-status-doing>.label-dot{background-color:#006af1}.task-status-done{color:#a6aab8}.task-status-done>.label-dot{background-color:#00da88}.story-status-draft{color:#7ec5ff}.story-status-draft>.label-dot{background-color:#7ec5ff}.story-status-active{color:#a6aab8}.story-status-active>.label-dot{background-color:#006af1}.story-status-changed{color:#ff5d5d}.story-status-changed>.label-dot{background-color:#ff5d5d}.story-status-closed{color:#a6aab8}.bug-status-active{color:#a6aab8}.bug-status-active>.label-dot{background-color:#006af1}.bug-status-resolved,.status-resolved{color:#a6aab8}.bug-status-resolved>.label-dot,.status-resolved>.label-dot{background-color:#00da88}.bug-status-closed{color:#a6aab8}.checkbox-primary,.radio-primary{position:relative;display:block;vertical-align:middle}.checkbox-primary.inline-block,.radio-primary.inline-block{display:inline-block}.checkbox-primary.inline-block+.inline-block,.radio-primary.inline-block+.inline-block{margin-left:15px}.checkbox-primary>input,.radio-primary>input{position:absolute;top:0;left:0;z-index:3;width:100%;height:100%;margin:0;opacity:0}.checkbox-primary>label,.radio-primary>label{display:block;height:20px;padding-left:30px;margin:0;font-weight:400;line-height:20px;cursor:pointer}.checkbox-primary>label:after,.checkbox-primary>label:before,.radio-primary>label:after,.radio-primary>label:before{position:absolute;top:0;right:0;left:0;display:block;width:20px;height:20px;line-height:20px;text-align:center;content:' ';border-radius:4px}.checkbox-primary>label:after,.radio-primary>label:after{z-index:1;border:2px solid #eee;border-color:rgba(0,0,0,.1);-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:border,background-color;-o-transition-property:border,background-color;transition-property:border,background-color}.checkbox-primary>label:before,.radio-primary>label:before{top:3px;z-index:2;font-family:ZentaoIcon;font-size:18px;font-size:14px;font-style:normal;font-weight:400;font-weight:900;font-variant:normal;line-height:1;text-transform:none;content:"\e5ca";opacity:0;-webkit-transition:.2s cubic-bezier(.175,.885,.32,1);-o-transition:.2s cubic-bezier(.175,.885,.32,1);transition:.2s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:opacity,-webkit-transform;-o-transition-property:opacity,-o-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform,-o-transform;-webkit-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.checkbox-primary.checked>label:after,.checkbox-primary>input:checked+label:after,.radio-primary.checked>label:after,.radio-primary>input:checked+label:after{background-color:#00da88;border-color:#00da88;border-width:4px}.checkbox-primary.checked>label:before,.checkbox-primary>input:checked+label:before,.radio-primary.checked>label:before,.radio-primary>input:checked+label:before{color:#fff;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}.checkbox-primary.focus>label:after,.checkbox-primary>input:focus+label:after,.radio-primary.focus>label:after,.radio-primary>input:focus+label:after{border-color:#00da88;-webkit-box-shadow:0 0 0 3px rgba(0,218,136,.2);box-shadow:0 0 0 3px rgba(0,218,136,.2)}.checkbox-primary input:disabled+label:after,.checkbox-primary.disabled>label:after,.radio-primary input:disabled+label:after,.radio-primary.disabled>label:after{background-color:#e5e5e5;border-color:#bbb}.checkbox-primary input:disabled:checked+label:after,.checkbox-primary.checked.disabled>label:after,.radio-primary input:disabled:checked+label:after,.radio-primary.checked.disabled>label:after{background-color:#bbb}.checkbox-primary:hover>label:after,.radio-primary:hover>label:after{border-color:#00da88}.checkbox-primary.checkbox-right>label,.radio-primary.checkbox-right>label{padding:0 30px 0 0}.checkbox-primary.checkbox-right>label:after,.checkbox-primary.checkbox-right>label:before,.radio-primary.checkbox-right>label:after,.radio-primary.checkbox-right>label:before{right:0;left:auto}.radio-primary>label:after{border-radius:50%}.radio-primary>label:before{top:6px;left:6px;width:8px;height:8px;content:' ';border:none;border-radius:50%}.radio-primary.checked>label:after,.radio-primary>input:checked+label:after{background-color:transparent;border-color:#00da88;border-width:2px}.radio-primary.checked>label:before,.radio-primary>input:checked+label:before{background-color:#00da88}.radio-primary input:disabled:checked+label:after,.radio-primary.checked.disabled>label:after{background-color:transparent;border-color:#bbb}.radio-primary input:disabled:checked+label:before,.radio-primary.checked.disabled>label:before{background-color:#bbb}.panel{position:relative;margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:20px}.panel-body.has-table{padding:10px}.panel-body.has-table .table{margin-bottom:0}.panel-heading{padding:18px 20px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading+.panel-body{padding-top:0}.panel-title{font-size:16px;font-weight:700;line-height:20px}.panel-title .label{top:-1px}.panel-actions{position:absolute;top:0;right:0;z-index:10;padding:13px 10px}.panel-actions>li>a{display:inline-block;min-width:30px;padding:0 5px;line-height:30px;color:#cbd0db}.panel-actions>li>a:hover{color:#a6aab8;text-decoration:initial;background-color:#f1f1f1}.panel-actions .btn-icon{color:#cbd0db}.panel-actions .btn-gray{color:#838a9d}.panel-actions .btn-gray.text-primary{color:#006af1}.progress-text-left{position:relative;margin:7px 0;margin-left:35px;overflow:visible}.progress-text-left .progress-text{position:absolute;top:-7px;left:-35px;display:block;width:35px;height:20px;padding-right:5px;line-height:20px;color:#a6aab8;text-align:right}.chart-color{width:20px}.chart-color-dot{display:inline-block;width:10px;height:10px;border-radius:50%}.chart-row{margin-top:10px}.chart-row+.chart-row{padding-top:10px;border-top:1px solid #eee}.chart-wrapper{padding:10px 5px;background:#eee}.chart-wrapper>h4{margin:5px 0 10px}.table-wrapper{max-height:250px;overflow:auto}.table-wrapper .table{margin:0}.progress-pie{position:relative}.progress-pie .progress-info{position:absolute;top:0;left:0;width:100%;height:100%;padding-top:25px;text-align:center}.progress-pie .progress-info>small{display:block;line-height:14px;color:#a6aab8}.progress-pie .progress-info>strong{display:block;font-size:36px;line-height:40px}.progress-pie .progress-info>strong>small{font-size:20px}.progress-pie-120 .progress-info{padding-top:30px}.progress-pie-120 .progress-info>small{line-height:18px}.progress-pie-50 .progress-info{padding-top:4px}.progress-pie-50 .progress-info>strong{font-size:20px;font-weight:400}.progress-pie-50 .progress-info>strong>small{font-size:14px}.status-bars{display:table;width:100%;height:140px;padding:5px;padding-top:50px;margin:0;overflow:hidden}.status-bars>li{position:relative;display:table-cell;text-align:center;vertical-align:bottom}.status-bars .bar{position:absolute;bottom:20px;left:50%;display:block;width:10px;margin-left:-5px;background:#006af1;border-radius:5px 5px 0 0}.status-bars .bar:after{position:absolute;right:-50px;bottom:0;left:-50px;display:block;height:1px;content:' ';background:#eee}.status-bars .title{font-size:12px;font-weight:400;color:#a6a8b6}.status-bars .value{position:relative;top:-20px;left:-20px;display:inline-block;width:50px;font-size:16px;font-weight:700;text-align:center}.messager{border-radius:4px;-webkit-box-shadow:0 4px 16px rgba(0,0,0,.2),0 2px 8px rgba(0,0,0,.1);box-shadow:0 4px 16px rgba(0,0,0,.2),0 2px 8px rgba(0,0,0,.1)}.messager-content{padding:18px 20px;font-size:18px;line-height:30px}.messager-content>.icon{font-size:28px;line-height:30px}.messager-actions{vertical-align:middle}.messagger-zt{color:#3c4353;background-color:#fff}.messagger-zt .messager-content>.icon{color:#006af1}.messagger-zt .messager-actions>.action{color:#a6aab8}.messagger-zt.messager-success .messager-content>.icon{color:#00da88}.messagger-zt.messager-danger .messager-content>.icon{color:#ff5d5d}.messagger-zt.messager-warning .messager-content>.icon{color:#fdc137}.messagger-zt.messager-info .messager-content>.icon{color:#7ec5ff}.tree{padding-left:0}.tree ul{position:relative;display:none;padding-left:0}.tree li{position:relative;padding:2px 0 2px 15px;list-style:none}.tree li.heading{padding-left:5px;color:#838a9d}.tree li>a{display:block;width:100%;max-width:90%;padding:2px 6px;overflow:hidden;color:#838a9d;text-overflow:ellipsis;white-space:nowrap}.tree li>a:hover{color:#3c4353;background-color:#f0f2f5}.tree li>a.tree-toggle:hover{background:0 0}.tree li.active>a{color:#006af1;background-color:#e9f2fb}.tree li>.list-toggle{position:absolute;top:2px;left:1px;z-index:10;width:20px;font-size:14px;line-height:24px;color:#cbd0db;text-align:center;cursor:pointer;-webkit-transition:all .2s;-o-transition:all .2s;transition:all .2s}.tree li>.list-toggle:before{content:"\f0da"}.tree li>.list-toggle:active,.tree li>.list-toggle:hover{color:#006af1}.tree li.open>ul{display:block}.tree li.open>.list-toggle{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.tree-actions{display:inline-block;margin-left:5px;vertical-align:middle}.tree-actions a{display:inline-block;margin-left:5px;font-size:13px;opacity:.6}.tree-actions a:hover{opacity:1}.tree li>.module-name{display:inline-block;max-width:100px;overflow:hidden;color:#838a9d;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.tree li>.module-name>a{display:inline-block;padding:2px 6px;color:#838a9d}.tree li>.module-name:hover{background-color:#f0f2f5}.tree li>.module-name:hover>a{color:#3c4353}.dropdown-menu{padding:5px 0;border-color:rgba(0,0,0,.1)}.dropdown-menu>li{padding:0 10px}.dropdown-menu>li>a{padding:2px 10px;margin:5px 0;border-radius:3px}.dropdown-menu>li>a>.icon{position:relative;left:-5px;opacity:.5}.dropdown-menu>li.active>a,.dropdown-menu>li.selected>a{position:relative;color:#fff;background-color:#00a9fc}.dropdown-menu>li.selected>a:after{position:absolute;top:2px;right:4px;display:block;font-family:ZentaoIcon;font-size:18px;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;line-height:20px;text-transform:none;content:"\e5ca";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dropdown-menu>li.divider{margin:10px}.dropdown-submenu>a:after{margin-right:-5px}.dropdown-submenu>.dropdown-menu.pull-left{margin-left:-1px}.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{color:#3c4353;background-color:#e9f2fb}.dropdown-submenu:hover>a:after{border-left-color:#006af1}.dropdown-submenu>a:hover:after{border-left-color:#fff}.pager .btn{padding:3px 10px}.pager .btn .caret{opacity:.3}.pager>li>.pager-label{padding:3px 4px}.pager>li>.pager-item{min-width:24px;padding:1px 3px;margin:2px;font-size:16px;line-height:20px;text-align:center;background:0 0;border-color:transparent;border-radius:50%}.pager>li>.pager-item:hover{background-color:rgba(0,0,0,.1)}.pager>li.disabled>a.pager-item{background:0 0;border-color:transparent}.pager>li.pager-item-left>.pager-item,.pager>li.pager-item-right>.pager-item{min-width:28px;padding:3px 4px;border-color:#d9e0e7!important;border-radius:2px!important}.pager>li.active>a{background-color:#00a9fc}.pager>li.pager-item-left>.pager-item{margin:0 5px 0 15px}.pager>li.pager-item-right>.pager-item{margin:0 0 0 5px}.pager .dropdown-menu{width:200px}.pager .dropdown-menu>li{float:left;width:33.333333%}.modal-dialog{max-width:1360px;border:none;-webkit-box-shadow:0 0 20px 0 rgba(0,0,0,.25);box-shadow:0 0 20px 0 rgba(0,0,0,.25)}.modal-header{padding:20px 0;margin:0 20px}.modal-header>.close{color:#838a9d;opacity:1}.modal-header>.close:hover{color:#3c4353}.modal-footer{padding:20px 0;margin:0 20px}.modal-title{font-size:18px;font-weight:400}.modal-actions{position:absolute;top:16px;right:16px}.modal-actions .divider{position:relative;top:5px;display:inline-block;width:0;height:20px;margin:0 10px;border-left:#eee 1px solid}.modal-actions>.dropdown{display:inline-block}.modal-body{padding:20px}.modal.fade .modal-dialog{-webkit-transform:translate(0,-3%);-ms-transform:translate(0,-3%);-o-transform:translate(0,-3%);transform:translate(0,-3%)}.modal.fade.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-simple .modal-footer{padding-top:0;border-top:none}.tile{text-align:center}.tile-title{line-height:20px;color:#838a9d}.tile-amount{font-size:32px;font-weight:700;line-height:56px}.timeline>li{position:relative;list-style:none}.timeline>li:before,.timeline>li>a:after,.timeline>li>div:after{position:absolute;left:-20px;display:block;width:15px;height:15px;content:' ';border-radius:50%}.timeline>li:before{top:14px;left:-16px;z-index:3;width:7px;height:7px;background-color:#cbd0db;border:none;border:1px solid #cbd0db}.timeline>li>a:after,.timeline>li>div:after{top:13px;left:-17px;z-index:3;width:9px;height:9px;background-color:#006af1;border-radius:50%;opacity:0}.timeline>li+li:after{position:absolute;top:-12px;bottom:20px;left:-13px;z-index:1;display:block;content:' ';border-left:1px solid #eee}.timeline>li.active>a:after,.timeline>li.active>div:after{opacity:1}.timeline>li.active:before{top:10px;left:-20px;width:15px;height:15px;background-color:rgba(0,106,241,.2);border:none}.timeline>li>a,.timeline>li>div{display:block;padding:5px;line-height:24px;color:#a6aab8}.timeline>li.active>a{color:#3c4353}.timeline-tag{position:absolute;top:5px;left:-115px;font-size:12px}.timeline-tag-left{padding-left:115px}.timeline-sm{font-size:12px}.timeline-sm>li:before,.timeline-sm>li>a:after,.timeline-sm>li>div:after{top:10px;left:-20px;width:11px;height:11px}.timeline-sm>li.active:before,.timeline-sm>li:before{top:10px;left:-18px;width:11px;height:11px;background:0 0;border:1px solid #eee}.timeline-sm>li>a,.timeline-sm>li>div{line-height:20px}.timeline-sm>li>a:after,.timeline-sm>li>div:after{top:13px;left:-15px;width:5px;height:5px}.form-control{-webkit-box-shadow:none;box-shadow:none}.form-control::-webkit-input-placeholder{font-size:12px}.form-control::-moz-placeholder{font-size:12px}.form-control:-ms-input-placeholder{font-size:12px}.form-control::placeholder{font-size:12px}.form-horizontal .form-group>label{padding-right:0}.form-actions{margin-top:20px;margin-bottom:0}form label{font-weight:400;color:#838a9d}.form-group .btn+.btn{margin-left:5px}.table-form{margin-bottom:0;table-layout:fixed}.table-form>thead>tr>th.required{padding-left:18px}.table-form>thead>tr>th.required:after{top:7px;right:auto;left:5px}.table-form>tbody>tr>td,.table-form>tbody>tr>th,.table-form>tfoot>tr>td,.table-form>thead>tr>th{padding:7px 5px;vertical-align:middle;border-bottom:none}.table-form>tfoot>tr>td{padding:20px 7px 10px}.table-form>tbody>tr>th{width:100px;padding-top:12px;color:#838a9d;text-align:right;vertical-align:top}.table-form .input-group{width:100%}.chosen-container-single .chosen-single div b{color:#cbd0db}.chosen-container-single .chosen-search:before{top:8px}.chosen-container-single .chosen-search input[type=text]{border-radius:14px}.datetimepicker{padding:10px}.datetimepicker td.day.today{background-color:#ff5d5d}.datetimepicker td,.datetimepicker th{border-radius:13px}.datetimepicker tfoot th,.datetimepicker thead th{color:#a6aab8}.input-control .colorpicker{top:0;z-index:auto;opacity:1}.input-control .colorpicker .btn{padding:5px}.input-control .input-control-icon-right.btn{top:0}.colorpicker .dropdown-menu{min-width:232px;padding:5px 10px 10px 10px}.colorpicker .dropdown-menu>li{display:block;float:left;padding:5px}.colorpicker .dropdown-menu>li.heading{width:100%;margin-bottom:5px;font-size:16px;font-weight:700;text-align:left}.colorpicker .dropdown-menu>li.heading>.icon-close{position:relative;top:4px;float:right;cursor:pointer;opacity:.6}.colorpicker .dropdown-menu>li>a{position:relative;display:block;width:100%;height:100%;padding:0;margin:0;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-align:center;text-transform:none;border:1px solid transparent;border-radius:50%;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.colorpicker .dropdown-menu>li>a:before{position:absolute;top:0;display:block;width:100%;height:20px;line-height:18px}.colorpicker .dropdown-menu>li>a:hover{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.25);box-shadow:0 1px 4px rgba(0,0,0,.25)}.colorpicker .dropdown-menu>li>a.active:before{font-size:14px;content:"\e5ca"}.colorpicker .dropdown-menu>li>a.empty{color:#666;background:#fff}.colorpicker .dropdown-menu>li>a.empty:before{content:"\e90d"}.colorpicker .btn{position:relative}.colorpicker .btn .color-bar{position:absolute;right:5px;bottom:3px;left:5px;height:3px}.colorpicker .btn .color-bar[style*=background]+.ic{position:relative;top:-2px}.input-group .chosen-container{display:table-cell}.input-group-addon{border-right:none;border-left:none}.input-group-cell{display:table-cell;width:1%;padding:0 12px;white-space:nowrap;vertical-align:middle}.label-selector>.label{display:inline-block;min-width:30px;height:30px;padding:0 5px;font-size:14px;line-height:28px;color:#82899f;text-align:center;cursor:pointer;background:0 0;border:1px solid #82899f;border-radius:15px}.label-selector>.label+.label{margin-left:10px}.label-selector>.label.active{color:#fff;background-color:#00a9fc;border-color:#00a9fc}.label-selector>.label.empty{border-color:transparent}.ke-container{border-color:#e8e9ee!important;border-radius:2px!important}.ke-container.focus{border-color:#006af1!important}.ke-toolbar{border-color:#e8e9ee!important}.required:after{top:6px;font-size:20px}.file-input{position:relative}.file-input .input-group{width:auto}.file-input .input-group>.input-group-cell:first-child{padding-right:0;padding-left:7px}.file-input input[type=file]{position:absolute;width:0;height:0;opacity:0}.file-input .file-title{display:inline-block;max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.file-input .file-editbox{min-width:200px;max-width:100%}.edit .file-input-empty,.file-input-edit,.file-input-normal,.normal .file-input-empty{display:none}.edit .file-input-edit,.normal .file-input-normal{display:block}.edit .file-input-edit.input-group,.normal .file-input-normal.input-group{display:table}.edit .file-input-normal{display:none!important}#mainHeader{min-height:66px;color:#fff;background:#00b1fd -webkit-gradient(linear,right top,left top,from(#0072f3),to(#00b1fd));background:#00b1fd -webkit-linear-gradient(right,#0072f3 0,#00b1fd 100%);background:#00b1fd -o-linear-gradient(right,#0072f3 0,#00b1fd 100%);background:#00b1fd linear-gradient(-90deg,#0072f3 0,#00b1fd 100%)}#mainHeader>.container{padding:0}#heading{position:absolute;top:18px;left:10px}#heading h1{float:left;max-width:240px;margin:0;overflow:hidden;font-size:20px;font-weight:400;line-height:30px;text-overflow:ellipsis;white-space:nowrap}#heading h1 a{color:inherit;text-decoration:inherit}#heading .btn{display:block;float:left;height:20px;padding:1px 5px;margin:0;margin:5px 0 0 10px;font-size:12px;font-weight:lighter;line-height:18px;background-color:rgba(255,255,255,.2);border:none}#heading .btn:hover{background-color:rgba(0,0,0,.1)}#navbar{margin:12px auto 0;font-size:16px;text-align:center}#navbar .nav{display:inline-block}#navbar .nav>li>a{line-height:24px;color:#fff;opacity:.75}@media (max-width:1380px){#navbar .nav>li>a{padding:8px 10px}}@media (max-width:992px){#navbar .nav>li>a{padding:5px 10px}}#navbar .nav>li>a:hover{background-color:rgba(0,0,0,.1);opacity:1}#navbar .nav>li.active>a{opacity:1}#navbar .nav>li.divider{display:block;width:2px;height:20px;margin:9px 15px;background-color:rgba(255,255,255,.4)}#toolbar{position:absolute;top:0;right:10px;padding:10px 0;font-size:12px;color:#fff}#extraNav{text-align:right}#extraNav>li{display:inline-block;float:none;text-align:left}#extraNav>li>a{display:block;padding:0;color:#fff;opacity:.75}#extraNav>li>a:hover{text-decoration:unset;background-color:rgba(0,0,0,.1);opacity:1}#extraNav>li.open>a{background-color:rgba(0,0,0,.1)}#extraNav>li+li{margin-left:10px}#userMenu{margin-top:5px}#searchbox{position:relative;float:left;width:150px}#searchbox .input-group-btn .btn{position:relative;padding:1px 4px 1px 8px;font-size:12px;line-height:20px;color:#fff;background-color:rgba(255,255,255,.15);border-right:none;border-radius:12px 0 0 12px}#searchbox .input-group-btn .btn:after{position:absolute;top:3px;right:-1px;bottom:3px;display:block;width:1px;content:' ';background-color:rgba(255,255,255,.15)}#searchbox .input-group-btn .btn:hover{background-color:rgba(255,255,255,.25)}#searchGo{position:absolute;top:0;right:-1px;z-index:10;min-width:24px;height:24px;padding:2px 3px;font-size:12px;line-height:20px;color:#fff;background-color:#52b3fd;border-radius:12px}#searchGo:hover{color:#fff!important;background-color:#006af1}#searchInput{height:24px;padding:2px 30px 2px 5px;color:#fff;text-align:left;background:rgba(255,255,255,.15);border-color:transparent;border-radius:0 12px 12px 0;-webkit-transition:background .2s,border .2s;-o-transition:background .2s,border .2s;transition:background .2s,border .2s}#searchInput:hover{background:rgba(255,255,255,.25)}#searchInput:focus{color:#333;background:#fff}#searchInput::-webkit-input-placeholder{font-size:12px;color:#6bcbff}#searchInput::-moz-placeholder{font-size:12px;color:#6bcbff}#searchInput:-ms-input-placeholder{font-size:12px;color:#6bcbff}#searchInput::placeholder{font-size:12px;color:#6bcbff}#searchTypeMenu{min-width:220px}#searchTypeMenu>li{float:left;width:50%}#searchTypeMenu>li>a{margin:4px 0}#userNav{float:right;margin:0 -6px 0 10px}#userNav .avatar{display:inline-block;vertical-align:middle}#userNav>li>a{padding:2px 6px;margin-left:3px;line-height:20px;color:#fff;opacity:.9}#userNav>li>a:hover{background-color:rgba(0,0,0,.1);opacity:1}#userNav>li>a span{display:inline-block;vertical-align:middle}#userNav>li.open>a{background-color:rgba(0,0,0,.1)}#userNav>li.has-new-items>a{position:relative}#userNav>li.has-new-items>a:before{position:absolute;top:3px;right:-1px;display:block;width:4px;height:4px;content:' ';background-color:#ff5d5d;border-radius:50%}#userNav .dropdown-menu{min-width:150px}#userNav .dropdown-menu>li>a>.icon{position:absolute;top:10px;right:5px;display:block;width:20px;height:20px;line-height:20px;text-align:center}#userNav .user-profile-item>a{position:relative;padding-left:45px}#userNav .user-profile-item .avatar{position:absolute;top:6px;left:5px}#userNav .user-profile-name{font-size:16px}#userNav .user-profile-role{font-size:12px;color:#a9abb8}#subHeader{min-height:54px;background:#fff}#pageNav{position:absolute;top:9px;left:0;left:10px}#subNavbar{margin-top:7px;font-size:16px;text-align:center}#subNavbar .nav{display:inline-block}#subNavbar .nav>li>a{padding:8px 10px;line-height:24px;color:#838a9d}#subNavbar .nav>li>a:hover{color:#838a9d;background-color:rgba(0,0,0,.05)}#subNavbar .nav>li.active>a{color:#006af1}#subNavbar .nav>li.divider{display:block;width:2px;height:20px;margin:9px 5px;background-color:rgba(0,0,0,.05)}#pageActions{position:absolute;top:11px;right:10px}@media (max-width:1200px){#navbar{margin-top:45px}#heading{top:8px}#extraNav{float:right;margin:5px 0 0 15px}#userMenu{float:left;margin:0}}@media (max-width:750px){#extraNav{display:none}}@media (max-width:650px){#heading>h1{font-size:18px}#searchbox{display:none}#navbar .nav>li>a{padding:5px 6px;font-size:15px}#navbar .nav>li.divider{height:16px}}@media (max-width:500px){#navbar{padding-top:5px;margin-top:75px;background-color:rgba(0,0,0,.1)}#toolbar{top:35px;right:auto;left:-10px}#navbar .nav>li.divider{width:100%;height:1px;margin:0;background:0 0}}#main{padding:20px 0}#mainMenu{margin:-8px 0 10px}.main-content{padding:20px;background-color:#fff;border-radius:4px}@media (min-width:1100px){.main-content>.center-block{max-width:1002px;padding:20px;border:1px solid #eee}.main-content>.center-block .main-header{background-color:#f1f1f1}}.main-content>h2{margin:0 0 20px}.main-header{padding:12px 20px;border-bottom:1px solid #eee}.main-header>h2{display:inline-block;margin:0;font-size:20px;line-height:34px}.main-content .main-header{margin:-20px -20px 10px}.main-row{display:table;width:100%;table-layout:fixed}.main-row>*{display:table-cell;vertical-align:top}@media (max-width:720px){.main-row{display:block}.main-row>*{display:block}.main-row .side-col{width:100%;padding:0}.main-row .main-col+.side-col,.main-row .side-col+.main-col{margin-top:10px}}.main-row.hide-side .side-col{display:none}.cell{padding:10px;background-color:#fff;border-radius:4px}.cell+.cell{margin-top:10px}.cell>.panel{margin:0;-webkit-box-shadow:none;box-shadow:none}.cell>.panel>.panel-heading{padding:5px 5px 10px}.cell>.panel>.panel-heading .panel-actions{padding:0}.cell>.panel>.panel-body{padding:5px}.cell>.table{margin:0}@media (min-width:720px){.main-form{padding-right:40px}}#mainActions{position:fixed;top:0;right:0;bottom:0;left:0;text-align:center;pointer-events:none}#mainActions .btn-toolbar{position:relative;top:-82px;display:inline-block;padding:4px 15px;color:#fff;pointer-events:auto;background-color:rgba(0,0,0,.7);border-radius:4px}#mainActions .btn-toolbar .divider{margin-right:15px;margin-left:15px;border-color:rgba(255,255,255,.1)}#mainActions .btn-toolbar .btn{padding-right:10px;padding-left:10px;margin-right:0;color:#fff;background-color:transparent;border:none}#mainActions .btn-toolbar .btn+.btn{margin-left:10px}#mainActions .btn-toolbar .btn:focus,#mainActions .btn-toolbar .btn:hover{background-color:rgba(255,255,255,.2)}#mainActions .btn-toolbar .btn.btn-icon{min-width:32px;padding-right:0;padding-left:0}#mainActions .dropdown-menu{text-align:left}#mainActions>.container{height:100%}#nextPage,#prevPage{position:absolute;top:50%;left:-10px;width:40px;height:60px;padding:10px 0;margin-top:-30px;line-height:40px;text-align:center;pointer-events:auto;-webkit-box-shadow:0 2px 15px 2px rgba(0,0,0,.05);box-shadow:0 2px 15px 2px rgba(0,0,0,.05)}#nextPage:hover,#prevPage:hover{-webkit-box-shadow:0 2px 15px 2px rgba(0,0,0,.15);box-shadow:0 2px 15px 2px rgba(0,0,0,.15)}#nextPage>.icon,#prevPage>.icon{display:block;font-size:36px;line-height:36px}#nextPage{right:-10px;left:auto}#sidebarHeader{position:relative;float:left;width:180px;height:34px;padding-left:16px;margin-right:20px;background:#fff}#sidebarHeader:after{position:absolute;top:-1px;right:-8px;display:block;width:0;height:0;content:' ';border-color:transparent transparent transparent #fff;border-style:solid;border-width:18px 0 18px 8px}#sidebarHeader .title{padding:0 5px;overflow:hidden;font-size:16px;line-height:34px;color:#006af1;text-align:center;text-overflow:ellipsis;white-space:nowrap}#sidebarHeader .sidebar-toggle{position:absolute;top:0;left:0;width:18px;min-width:18px;height:100%;border-radius:0}#sidebarHeader .sidebar-toggle .icon{font-size:14px}#sidebar{-webkit-transition:width .2s,padding .2s;-o-transition:width .2s,padding .2s;transition:width .2s,padding .2s}.hide-sidebar #sidebar{width:0;padding:0}#sidebar.showing>.cell,.hide-sidebar #sidebar>.cell{display:none}#queryBox{max-height:0;padding:0;overflow:hidden;-webkit-transition:cubic-bezier(.175,.885,.32,1) .2s;-o-transition:cubic-bezier(.175,.885,.32,1) .2s;transition:cubic-bezier(.175,.885,.32,1) .2s;-webkit-transition-property:padding,max-height,margin;-o-transition-property:padding,max-height,margin;transition-property:padding,max-height,margin}#queryBox>form{visibility:hidden;-webkit-transition:visibility .2s .2s;-o-transition:visibility .2s .2s;transition:visibility .2s .2s}#queryBox.loading{height:50px}#queryBox.show{max-height:300px;margin-bottom:10px;overflow:visible}#queryBox.show>form{visibility:visible}#main .querybox-toggle.querybox-opened{position:relative;color:#006af1}#main .querybox-toggle.querybox-opened:before{position:absolute;bottom:-14px;left:50%;width:0;height:0;content:' ';border-color:transparent transparent #fff transparent;border-style:solid;border-width:0 10px 10px 10px}#contentNav{padding:5px;background:#fff;border-bottom:1px solid #eee}#contentNav .nav>li>a{position:relative;padding:6px 10px;color:#838a9d}#contentNav .nav>li.active>a{font-weight:700;color:#006af1}#contentNav .nav>li.active>a:before{position:absolute;right:10px;bottom:3px;left:10px;display:block;height:2px;content:' ';background:#006af1}.text-middle td,.text-middle th{vertical-align:middle}.text-center td,.text-center th{text-align:center}.c-sm{width:40px}.c-id{width:90px}.c-id-sm{width:70px}.c-date{width:100px}.c-num,.c-type{width:80px}.c-pri{width:60px}.c-begin,.c-end,.c-time{width:65px}.c-hours{width:50px}.c-actions{width:130px}.c-actions-2{width:90px}.c-actions-3{width:156px}.c-actions-4{width:190px}.c-product{width:180px}.c-plan{width:130px}.c-datetime{width:120px}.c-stage,.c-status,.c-user{width:80px}.c-side{width:200px;border-right:10px solid #f6f6f6}.c-assign{width:130px}.c-url{overflow:hidden;text-overflow:ellipsis}.table-lg th.c-actions{width:135px}.table-lg th.c-actions-2{width:95px}.table-lg th.c-actions-3{width:175px}.table-lg th.c-actions-4{width:215px}.table-lg th.c-stage,.table-lg th.c-status,.table-lg th.c-user{width:100px}td.c-begin,td.c-date,td.c-datetime,td.c-end,td.c-hours,td.c-num,td.c-plan,td.c-pri,td.c-stage,td.c-time,td.c-type,td.c-user{color:#a6aab8}td.c-name,td.c-title{overflow:hidden;text-align:left!important;text-overflow:ellipsis;white-space:nowrap}td.c-actions{position:relative;padding-top:0;padding-bottom:0;vertical-align:middle}td.c-actions .btn{padding:4px 5px;color:#00a9fc;background-color:#e9f2fb;border-color:transparent}td.c-actions .btn .icon{font-size:18px}td.c-actions .btn:hover{color:#006af1;background-color:#d3e5f7}td.c-actions .btn-link{color:#838a9d;background:0 0}td.c-actions .btn-link:hover{color:#006af1;background:#e9f2fb}td.c-actions .more{position:absolute;right:100%;display:none;padding-left:20px;margin-right:-5px;white-space:nowrap;background-color:#fafafa}tr:hover td.c-actions .more{display:block}tr[data-url]{cursor:pointer}.table tbody>tr>td,.table thead>tr>th{vertical-align:middle}.table tbody>tr>td.has-btn,.table thead>tr>th.has-btn{padding-top:1px;padding-bottom:1px;overflow:visible}.table tbody>tr>td .progress,.table thead>tr>th .progress{height:6px}.table .em,.table em{color:#3c4353}.table .divider{border-bottom:10px solid #f6f6f6}.table .divider-top{border-top:10px solid #f6f6f6}.table .btn-icon-left{border-color:#eaf3fc}.main-table{border-radius:4px}.main-table table{font-size:13px;table-layout:fixed;background-color:#fff}.main-table table.table-lg{font-size:14px}.main-table tbody>tr>td,.main-table thead>tr>th{padding:5px 10px;line-height:30px}.main-table tbody>tr>td:first-child,.main-table thead>tr>th:first-child{padding-left:15px}.main-table thead>tr>th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:2px solid #ecf0f4}.main-table tbody>tr>td{position:relative;border-bottom:none}.main-table tbody>tr>td.c-actions{padding-right:15px}.main-table tbody>tr>td:first-child:before{position:absolute;top:0;bottom:0;left:0;display:block;width:0;content:'';background:#006af1;opacity:0;-webkit-transition:.2s linear;-o-transition:.2s linear;transition:.2s linear;-webkit-transition-property:width,opacity,border-radius;-o-transition-property:width,opacity,border-radius;transition-property:width,opacity,border-radius}.main-table tbody>tr{-webkit-transition:.2s cubic-bezier(.175,.885,.32,1);-o-transition:.2s cubic-bezier(.175,.885,.32,1);transition:.2s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:background-color,-webkit-box-shadow;-o-transition-property:box-shadow,background-color;transition-property:background-color,-webkit-box-shadow;transition-property:box-shadow,background-color;transition-property:box-shadow,background-color,-webkit-box-shadow}.main-table tbody>tr:hover{background:#fafafa;-webkit-box-shadow:0 0 4px rgba(0,0,0,.15);box-shadow:0 0 4px rgba(0,0,0,.15)}.main-table .table-grouped tbody>tr:hover{background:#f2f7fd;-webkit-box-shadow:none;box-shadow:none}.main-table .table-grouped tbody>tr:hover td.c-actions .more{background:#f2f7fd}.main-table tbody>tr.checked{-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05)}.main-table tbody>tr.checked>td:first-child:before{width:4px;opacity:1}.main-table tbody>tr.checked.row-check-begin{border-top-left-radius:4px;border-top-right-radius:2px;-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05)}.main-table tbody>tr.checked.row-check-begin>td:first-child:before{border-top-left-radius:4px}.main-table tbody>tr.checked.row-check-end{border-bottom-right-radius:2px;border-bottom-left-radius:4px;-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05)}.main-table tbody>tr.checked.row-check-end>td:first-child:before{border-bottom-left-radius:4px}.main-table tbody>tr.checked.row-check-end.row-check-begin{-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05)}.main-table .checkbox-primary{display:inline-block;line-height:20px}.main-table .checkbox-primary label{margin:0}.main-table .table{margin:0}.main-table a:focus{text-decoration:underline}.table-header{padding:4px 0 12px}.table-header .table-statistic{color:#c2c6d3}.table-header .table-statistic strong{font-size:15px;color:#3c4353}.table-header .btn-toolbar{margin-top:-28px}.table-footer{padding:6px 15px;color:#fff;background:rgba(0,0,0,.7)}.talbe-lg+.table-footer{padding:11px 15px}.table-footer .btn-toolbar,.table-footer .checkbox-primary{float:left}.table-footer .checkbox-primary{margin:5px 20px 0 0}.table-footer .checkbox-primary label{color:#fff}.table-footer .checkbox-primary label:after{border-color:rgba(255,255,255,.8)}.table-footer .checkbox-primary.checked label:after{border-color:#00da88}.table-footer .btn{padding:3px 10px;border-radius:2px}.table-footer .pager{float:right;margin:0}.table-footer .pager>li>.pager-item{color:#fff}.table-footer .pager>li.pager-item-left>.pager-item,.table-footer .pager>li.pager-item-right>.pager-item{color:#595959;background:#fff}.table-footer .pager>li.pager-item-left.disabled>.pager-item,.table-footer .pager>li.pager-item-right.disabled>.pager-item{color:#bbb;background:#eee}.table-footer .form-control{height:28px;padding:3px 8px}.table-footer .input-control-icon-right{top:0;height:28px;line-height:28px}.table-footer.fixed-footer{position:fixed;z-index:10}.table-footer .table-statistic{float:left;margin-left:20px;line-height:28px}.table-footer .search-list .input-control-icon-left{top:-1px}.table-actions{width:0;height:28px;visibility:hidden;opacity:0;-webkit-transition:opacity cubic-bezier(.175,.885,.32,1) .8s;-o-transition:opacity cubic-bezier(.175,.885,.32,1) .8s;transition:opacity cubic-bezier(.175,.885,.32,1) .8s}.has-row-checked .table-actions{width:auto;visibility:visible;opacity:1}.table-lg tbody>tr>td{padding:9px 10px}.table-lg tbody>tr>td .btn+.btn{margin-left:5px}.table.has-sort-head thead>tr>th>a{position:relative;display:inline-block;padding-right:16px;color:#a6aab8}.table.has-sort-head thead>tr>th>a:after,.table.has-sort-head thead>tr>th>a:before{position:absolute;top:0;right:0;font-family:ZentaoIcon;font-size:18px;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;line-height:30px;color:#a6aab8;text-transform:none;content:"\f0de";opacity:.5;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.table.has-sort-head thead>tr>th>a:after{content:"\f0dd"}.table.has-sort-head thead>tr>th>a.sort-down,.table.has-sort-head thead>tr>th>a.sort-up,.table.has-sort-head thead>tr>th>a:hover{color:#006af1;text-decoration:none}.table.has-sort-head thead>tr>th>a.sort-down:after,.table.has-sort-head thead>tr>th>a.sort-up:before,.table.has-sort-head thead>tr>th>a:hover:after,.table.has-sort-head thead>tr>th>a:hover:before{color:#006af1;opacity:1}.table.fixed-header-copy{z-index:10;color:#fff;background:rgba(0,0,0,.7)}.table.fixed-header-copy thead>tr>th>a{color:#cbd0db}.table.fixed-header-copy thead>tr>th>a:hover{color:#fff}.table.fixed-header-copy thead>tr>th>a.sort-down,.table.fixed-header-copy thead>tr>th>a.sort-down:after,.table.fixed-header-copy thead>tr>th>a.sort-up,.table.fixed-header-copy thead>tr>th>a.sort-up:before,.table.fixed-header-copy thead>tr>th>a:hover,.table.fixed-header-copy thead>tr>th>a:hover:after,.table.fixed-header-copy thead>tr>th>a:hover:before{color:#e9f2fb}.table-data{margin:0}.table-data tbody>tr>td,.table-data tbody>tr>th{padding:6px 8px;border:none}.table-data tbody>tr>th{width:70px;padding-left:0;font-weight:400;color:#838a9d;text-align:right}.table-data tbody>tr>td{padding-right:0}.table-fixed-head{background:#fff}.table-empty-tip{padding:80px 10px;text-align:center;background:#fff}.table-grouped .group-toggle{cursor:pointer}.group-expand-all,.table-group-collapsed .group-collapse-all{display:none}.table-group-collapsed .group-expand-all{display:inline-block}.block-welcome .col-left{width:25%}.block-welcome .col-left>h4{margin:5px 0;line-height:30px}.block-welcome .col-left .timeline{margin:10px 0 0;font-size:12px}.block-welcome .col-right{width:75%}.block-welcome .col-right>h4{font-weight:400}.block-welcome .col-right>h4 small{display:inline-block;margin-right:8px;font-size:14px}.block-welcome .col-right .tiles{padding:10px 0 0 16px;border-left:1px solid #e5e8ec}.block-welcome .col-right .tile{width:20%}.block-welcome .panel-body{padding-top:15px}.block-welcome .user-notification-icon{position:relative;display:inline-block;margin-left:5px}.block-welcome .user-notification-icon .label-badge{position:absolute;top:1px;right:-8px;min-width:16px;padding:2px;font-size:12px;font-weight:400}.block-dynamic .timeline{margin:0}.block-flowchart{padding:10px}.block-flowchart .table{margin-bottom:0}.block-flowchart .table>tbody>tr>td,.block-flowchart .table>tbody>tr>th,.block-flowchart .table>thead>tr>th{padding:10px;font-weight:400;text-align:center}.block-flowchart .table>tbody>tr>td:first-child,.block-flowchart .table>tbody>tr>th:first-child,.block-flowchart .table>thead>tr>th:first-child{text-align:left}.block-flowchart .table>thead>tr>th{width:18%;vertical-align:top}.block-flowchart .table>thead>tr>th:first-child{width:auto;padding:10px 10px 15px 10px;background:0 0}.block-flowchart .table>thead>tr>th:first-child+th>div{background:0 0}.block-flowchart .table>thead>tr>th,.block-flowchart .table>thead>tr>th>div{padding:0;background:url(data:image/gif;base64,R0lGODlhLQAPAJEAAAAAAP///+7u7v///yH5BAEAAAMALAAAAAAtAA8AAAJPlIY5psn92jrSUGVrRFlfvHHh9JGS6aVQ2K2l+LYOO6KuCpby/No8DjvtgrfiD+gj5ozLpvMIfSanu2FyiKX1qqOsrsaNdbXCcfm8Ok1OBQA7) no-repeat;background-position:right -22px top 15px}.block-flowchart .table>thead>tr>th>div{padding:10px 10px 15px 10px;background-position:left -23px top 15px}.block-flowchart .table>thead>tr>th:last-child{background:0 0}.block-flowchart .table>tbody>tr>td{color:#838a9d}.block-flowchart .table>tbody>tr:nth-child(even)>td{background:#f7f8f9}.block-flowchart .flowchart-title{font-size:16px;font-weight:700;color:#3c4353}.block-flowchart .flowchart-step{display:inline-block;width:24px;height:24px;font-size:16px;line-height:24px;color:#fff;background-color:#00a9fc;border-radius:50%}.block-projects .c-deadline{width:100px;color:#a6aab8;text-align:center}.block-projects .c-status{width:90px}.block-projects .c-estimate{width:60px;text-align:right}.block-projects .c-consumed{width:60px;text-align:right}.block-projects .c-left{width:60px;text-align:right}.block-projects .c-progress{width:155px}.block-projects .c-spark{width:120px}.block-projects td.c-spark{padding:0}.block-stories .c-id{width:55px;color:#a6aab8}.block-stories .c-pri{width:45px;text-align:center}.block-stories .c-estimate{width:55px;color:#a6aab8}.block-stories .c-status{width:80px}.block-stories .c-stage{width:80px;color:#a6aab8}.block-stories.block-sm .c-stage,.block-stories.block-sm .c-status .status-text,.block-stories.block-sm .estimate{display:none}.block-stories.block-sm .c-status{text-align:center}.block-tasks .c-id{width:55px;color:#a6aab8}.block-tasks .c-pri{width:45px;text-align:center}.block-tasks .c-estimate{width:55px;color:#a6aab8}.block-tasks .c-deadline{width:95px;color:#a6aab8}.block-tasks .c-status{width:80px}.block-tasks.block-sm .c-deadline,.block-tasks.block-sm .c-status .status-text,.block-tasks.block-sm .estimate{display:none}.block-tasks.block-sm .c-status{text-align:center}.block-bugs .c-id{width:55px;color:#a6aab8}.block-bugs .c-level{width:50px;text-align:center}.block-bugs .c-pri{width:35px;text-align:center}.block-bugs .c-deadline{width:95px;color:#a6aab8}.block-bugs .c-status{width:80px}.block-bugs.block-sm .c-pri,.block-bugs.block-sm .c-status .status-text{display:none}.block-bugs.block-sm .c-status{text-align:center}.block-todoes .panel-body{position:relative;padding-top:42px}.block-todoes .todoes-input{position:absolute;top:-20px;right:0;left:0;padding:20px}.block-todoes .todoes-input .form-control::-webkit-input-placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes-input .form-control::-moz-placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes-input .form-control:-ms-input-placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes-input .form-control::placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes{padding-left:0;margin:0 -10px}.block-todoes .todoes>li{position:relative;padding:5px 10px 5px 35px;list-style:none}.block-todoes .todoes>li:hover{background-color:#e9f2fb}.block-todoes .todo-title{display:block;padding:5px}.block-todoes .todo-pri{display:inline-block;padding:0 5px;font-size:12px;color:#838a9d}.block-todoes .todo-time{display:inline-block;padding:0 5px;font-size:12px;color:#a6aab8}.block-todoes .todo-check{position:absolute;top:10px;left:10px;display:block;width:20px;height:20px;font-size:20px;color:transparent;cursor:pointer;background:#fff;border:2px solid #eee;border-radius:50%}.block-todoes .todo-check:hover{border-color:#a6aab8}.block-todoes .active>.todo-check{color:#00da88;background:0 0;border:none}.block-todoes .todoes-form{position:absolute;top:-51px;right:0;left:0;z-index:15;padding:20px;visibility:hidden;background:#fff;-webkit-box-shadow:0 0 20px 0 #bdc9d8;box-shadow:0 0 20px 0 #bdc9d8;opacity:0;-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:opacity,visibility;-o-transition-property:opacity,visibility;transition-property:opacity,visibility}.block-todoes .todoes-form .form-group>label{padding-left:0}.block-todoes .todoes-form .form-group>label.text-center{text-align:center!important}.block-todoes .todoes-form>.form-group:last-child{margin-bottom:0}.block-todoes .todoes-form>h3{padding:0 20px 15px;margin:0 -20px 15px;font-size:16px;line-height:20px;border-bottom:1px solid #eee}.block-todoes.show-form .todoes-form{visibility:visible;opacity:1}.block-products .c-plans{width:70px;color:#a6aab8;text-align:center}.block-products .c-publishs{width:70px;color:#a6aab8;text-align:center}.block-products .c-stories{width:80px;color:#a6aab8;text-align:center}.block-products .c-bugs{width:90px;color:#a6aab8;text-align:center}.block-products.block-sm .c-project{display:none}.article-content{color:#838a9d}.article-content img{margin-top:0}.detail{padding:20px 0;margin:0 10px}.detail+.detail{padding-top:25px;border-top:1px solid #eee}.detail-title{font-size:16px;line-height:20px}.detail-title>.pull-right{position:relative;top:-8px}h2.detail-title{margin:0;font-size:24px;font-weight:400}h2.detail-title .label,h2.detail-title .label-id{position:relative;top:-3px}.detail-content{padding:5px 0 0 20px;margin-top:10px;color:#838a9d}.detail-content em{font-style:normal;color:#3c4353}.detail-content .list-unstyled>li+li{margin-top:5px}.side-col .detail-content{padding-left:0}details.detail{padding:10px 0}details.detail summary{position:relative;cursor:pointer;outline:0}details.detail summary::-webkit-details-marker{display:none}details.detail summary:after{position:absolute;top:0;right:0;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-transform:none;content:"\e316";opacity:.4;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}details.detail[open] summary:after{content:"\e313"}.files-list{padding-left:0;list-style:none}.files-list>li>a{display:block;line-height:24px;color:#838a9d}.files-list>li>a>.icon{display:inline-block;margin-right:5px;opacity:.7}.files-list>li>a:hover{color:#006af1}.histories-list{margin-bottom:0}.histories-list .btn-mini{position:relative;top:1px}.histories-list>li{position:relative}.histories-list>li+li{margin-top:10px}.histories-list>li strong{color:#3c4353}.histories-list .comment,.histories-list .show-form .comment-edit-form{padding:5px 5px 5px 10px;margin:5px 0 0;background-color:rgba(0,0,0,.025);border:1px solid #eee}.histories-list .btn-edit-comment{position:absolute;top:28px;right:2px}.histories-list .comment-edit-form,.histories-list .show-form .btn-edit-comment,.histories-list .show-form .comment{display:none}.histories-list .show-form .comment-edit-form{display:block;padding:10px;border:1px solid #eee}.histories .btn-mini{width:16px;min-width:16px;height:16px;overflow:hidden;line-height:16px;color:#cbd0db;vertical-align:-8%;border-radius:1px}.histories .btn-mini>.icon{position:relative;top:-2px;left:-2px}.histories .btn-mini:focus,.histories .btn-mini:hover{color:#006af1;border-color:#006af1}.histories .show-changes .btn-expand>.icon:before{content:"\e926"}.histories .btn-strip{display:none}.histories .show-changes .btn-strip{display:inline-block}.history-changes{display:none;padding:5px;margin-bottom:-5px;margin-left:5px;font-size:12px;line-height:20px;opacity:.65}.history-changes blockquote{padding:5px 5px 5px 10px;margin:5px 0 0;font-size:12px;background-color:rgba(0,0,0,.05);border-left:3px solid #eee}.history-changes blockquote.original{display:none}.show-changes .history-changes,.show-original .history-changes blockquote.original{display:block}.show-original .history-changes blockquote.textdiff{display:none}.search-list{min-width:200px;max-width:300px;min-height:55px;padding:0}.search-list .search-box{float:none;margin:10px 10px 5px}.search-list .search-box .icon-search{opacity:.5}.dropup .search-list .list-group{height:214px}.search-list .list-group{max-height:248px;padding:0 10px 5px 10px;margin:5px 0}.list-group{overflow-y:auto}.list-group>a{display:block;padding:2px 10px 2px 5px;overflow:hidden;line-height:20px;text-overflow:ellipsis;white-space:nowrap;border-radius:4px}.list-group>a+a{margin-top:5px}.list-group>a>.icon{display:inline-block;margin-right:3px;opacity:.5}.list-group>a.selected{color:#e9f2fb;background-color:#006af1}.list-group>a.active{color:#006af1;background-color:#e9f2fb}.list-group>a.active:hover,.list-group>a:hover{color:#fff;background-color:#006af1}.release-path{overflow:hidden}.release-line{display:table;width:100%;padding:0;table-layout:fixed}.release-line>li{display:table-cell;list-style:none}.release-line>li>a{position:relative;display:block}.release-line>li>a:before{position:absolute;left:0;display:block;width:13px;height:13px;content:' ';background:#fff;border:2px solid #838a9d;border-radius:50%}.release-line>li>a:after{position:absolute;left:5px;display:block;width:2px;height:30px;content:' ';background:#e9f2fb}.release-line>li>a>.icon{position:absolute;left:4px;font-size:24px}.release-line>li>a .title{display:block;color:#838a9d;white-space:nowrap}.release-line>li>a .date,.release-line>li>a .info{display:block;font-size:12px;color:#cbd0db}.release-line>li>a:hover:before{background-color:#e9f2fb}.release-line>li>a:hover:after{background-color:#a6aab8}.release-line>li>a:hover .title{color:#006af1}.release-line>li>a:hover .date,.release-line>li>a:hover .info{display:block;font-size:12px;color:#a6aab8}.release-line>li:nth-child(odd){padding-top:90px;vertical-align:top}.release-line>li:nth-child(odd)>a{padding-top:36px;border-top:5px solid #e9f2fb}.release-line>li:nth-child(odd)>a:before{top:-9px}.release-line>li:nth-child(odd)>a:after{top:6px}.release-line>li:nth-child(odd)>a>.icon{top:-26px}.release-line>li:nth-child(even){padding-bottom:90px;vertical-align:bottom}.release-line>li:nth-child(even)>a{padding-bottom:36px;border-bottom:5px solid #e9f2fb}.release-line>li:nth-child(even)>a:before{bottom:-9px}.release-line>li:nth-child(even)>a:after{bottom:6px}.release-line>li:nth-child(even)>a>.icon{bottom:-2px}.release-line>li:last-child>a{border-color:transparent}.release-line>li.active>a:before{border-color:#006af1}.release-line>li+li>a>.date,.release-line>li+li>a>.info,.release-line>li+li>a>.title{position:relative;left:-36%}#footer{position:fixed;right:0;bottom:0;left:0;z-index:1010;height:32px;background:#fff;border-top:1px solid #eff1f7}#footer .breadcrumb{padding:5px 0;margin:0}#footer .breadcrumb>.active,#footer .breadcrumb>li>a{color:#cbd0db}#footer .breadcrumb>li+li:before{content:'>'}#poweredBy{position:absolute;top:0;right:0;padding:5px 10px}#poweredBy .icon-zentao{color:#0097fd}#poweredBy a{color:#3c4353}#poweredBy a+a{margin-left:15px}#poweredBy a:hover{color:#006af1}#poweredBy a:hover .icon-zentao{color:#006af1}#poweredBy #aiux{color:#cbd0dc} \ No newline at end of file +*/.chosen-container{position:relative;display:inline-block;font-size:14px;vertical-align:middle;zoom:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;*display:inline}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;width:100%;background:#fff;border:1px solid #b6bdcc;border:1px solid rgba(0,0,0,.15);border-top:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.chosen-container .chosen-drop.chosen-drop-size-limited{border-top:1px solid rgba(0,0,0,.15)}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container.chosen-up .chosen-drop{top:inherit;bottom:100%;margin-top:auto;margin-bottom:-1px;border-radius:2px 2px 0 0;-webkit-box-shadow:0 -3px 5px rgba(0,0,0,.175);box-shadow:0 -3px 5px rgba(0,0,0,.175)}.chosen-container-single .chosen-single{display:block;width:100%;height:32px;padding:5px 8px;overflow:hidden;line-height:1.42857143;color:#3c4353;text-decoration:none;white-space:nowrap;vertical-align:middle;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #e8e9ee;border-radius:2px;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.chosen-container-single .chosen-default{color:#a6aab8}.chosen-container-single .chosen-single>span{display:block;margin-right:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:7px;right:24px;display:block;width:20px;height:20px;font-size:21px;font-weight:700;line-height:14px;color:#000;text-align:center;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.chosen-container-single .chosen-single abbr:before{content:'×'}.chosen-container-single .chosen-single abbr:focus,.chosen-container-single .chosen-single abbr:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;height:100%;padding:5px 8px}.chosen-container-single .chosen-single div b{display:inline-block;width:0;height:0;margin-bottom:2px;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.chosen-container-single .chosen-search{position:relative;z-index:1010;padding:3px 4px;margin:0;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{width:100%;height:27px;padding:2px 26px 2px 8px;margin:1px 0;font-size:12px;line-height:1.5;background-color:#fff;border:1px solid #e8e9ee;border-radius:2px;outline:0}.chosen-container-single .chosen-search input[type=text]:focus{border-color:#006af1}.chosen-container-single .chosen-search:before{position:absolute;top:10px;right:10px;display:block;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;color:#a6aab8;text-transform:none;content:"\e928";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.chosen-container-single .chosen-drop{margin-top:-1px;-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:0 0 4px 4px}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{position:relative;max-height:240px;padding:0;margin:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;padding:5px 10px;margin:0;line-height:15px;list-style:none;-webkit-transition:background-color .2s cubic-bezier(.175,.885,.32,1);-o-transition:background-color .2s cubic-bezier(.175,.885,.32,1);transition:background-color .2s cubic-bezier(.175,.885,.32,1);-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{color:#fff;background-color:#006af1}.chosen-container .chosen-results li.no-results{display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;width:100%;min-height:32px;min-height:30px\9;padding:0;margin:0;overflow:hidden;cursor:text;background-color:#fff;border:1px solid #e8e9ee;border-radius:2px;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.chosen-container-multi .chosen-choices:after,.chosen-container-multi .chosen-choices:before{display:table;content:" "}.chosen-container-multi .chosen-choices:after{clear:both}.chosen-container-multi .chosen-choices li{display:block;float:left;padding:0 6px;margin:5px 0 0 6px;list-style:none}.chosen-container-multi .chosen-choices li.search-field{padding:0;margin-bottom:4px;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{height:20px;font-size:100%;color:#a6aab8;background:0 0!important;border:0!important;border-radius:0;outline:0;-webkit-box-shadow:none;box-shadow:none}.chosen-container-multi .chosen-choices li.search-field .default{color:#999}.chosen-container-multi .chosen-choices li.search-field:before{position:absolute;right:8px;bottom:8px;display:block;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;color:#a6aab8;text-transform:none;content:"\e928";opacity:0;-webkit-transition:opacity .2s cubic-bezier(.175,.885,.32,1);-o-transition:opacity .2s cubic-bezier(.175,.885,.32,1);transition:opacity .2s cubic-bezier(.175,.885,.32,1);speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.chosen-container-multi .chosen-choices li.search-choice{position:relative;padding:3px 20px 3px 5px;line-height:12px;cursor:default;background-color:#f1f1f1;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cbd0db;border-radius:3px;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);-webkit-transition:all .4s cubic-bezier(.175,.885,.32,1);-o-transition:all .4s cubic-bezier(.175,.885,.32,1);transition:all .4s cubic-bezier(.175,.885,.32,1)}.chosen-container-multi .chosen-choices li.search-choice:hover{background-color:#fff;border-color:#adb5c6;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 0 rgba(0,0,0,.1)}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:0;right:0;display:block;width:20px;height:20px;font-size:16.8px;font-weight:700;line-height:14px;color:#000;text-align:center;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before{content:'×'}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:focus,.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;color:#666;background-color:#e4e4e4;border:1px solid #ccc}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{padding:5px 0;margin:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border-color:#006af1;-webkit-box-shadow:none,0 0 8px rgba(0,106,241,.6);box-shadow:none,0 0 8px rgba(0,106,241,.6)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #b6bdcc;border:1px solid rgba(0,0,0,.15);border-bottom-right-radius:0;border-bottom-left-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.chosen-container-active.chosen-with-drop .chosen-single div{background:0 0;border-left:none}.chosen-container-active.chosen-with-drop .chosen-single div b{content:"";border-top:0 dotted;border-bottom:4px solid}.chosen-container-active.chosen-with-drop.chosen-up .chosen-single{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.chosen-container-active .chosen-choices{border-color:#006af1;-webkit-box-shadow:none,0 0 8px rgba(0,106,241,.6);box-shadow:none,0 0 8px rgba(0,106,241,.6)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#111!important}.chosen-container-active .chosen-choices li.search-field:before{opacity:1}.chosen-disabled{cursor:default;opacity:.5!important}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.container,.container-fixed,.container-fluid{position:relative}body{padding-bottom:40px;background-color:#f6f6f6}body.article-content,body.body-modal{background:0 0}body.body-modal{padding:0}em{font-style:normal}.strong{font-weight:700}.font-normal{font-weight:400!important}.text-middle{vertical-align:middle!important}.text-bottom{vertical-align:bottom!important}.text-top{vertical-align:top!important}.inline-block{display:inline-block!important}.layer{border-radius:4px;-webkit-box-shadow:0 0 20px 0 #bdc9d8;box-shadow:0 0 20px 0 #bdc9d8}.space{margin-bottom:20px}.space-lg{margin-bottom:30px}.muted{opacity:.5}.text-muted em{color:#3c4353}.no-animate{-webkit-transition:none!important;-o-transition:none!important;transition:none!important}.template{display:none!important}.text-left{text-align:left!important}.text-yellow.icon-folder{color:#ffe066}.table-row{display:table;width:100%;table-layout:fixed}.table-col,.table-row>.col,.table-row>[class*=col-],.table-row>[class*="-col"]{display:table-cell;float:none;vertical-align:top}.side-col{width:200px;padding-right:20px}.side-col.col-4{width:33.3333333%}.col-lg{width:260px}.col-xl{width:320px}.col-sm{width:150px}.col-xs{width:100px}.main-col+.side-col{padding-right:0;padding-left:20px}.row-grid>[class*=col-],.row-grid>[class*="-col"]{padding-top:6px;padding-bottom:6px}hr.space{margin:10px 0;border:none}hr.space-sm{margin:5px 0;border:none}.text-secondary{color:#00a9fc}.nav-primary>li>a{min-width:100px;padding:5px 8px;color:#838a9d;border-color:#e7f1fc}.nav-primary>li.active>a{color:#006af1;background-color:#e7f1fc;border-color:#e7f1fc}.nav-primary>li.active>a:hover{color:#006af1;background-color:#c3dcf7;border-color:#c3dcf7}.end-marker{margin-bottom:20px;color:#cbd0db;text-align:center}@-webkit-keyframes highlight{0%{background:#fff;outline:1px solid transparent}100%{background:#fff0d5;outline:2px solid #ffdcbc}}@-o-keyframes highlight{0%{background:#fff;outline:1px solid transparent}100%{background:#fff0d5;outline:2px solid #ffdcbc}}@keyframes highlight{0%{background:#fff;outline:1px solid transparent}100%{background:#fff0d5;outline:2px solid #ffdcbc}}.highlight{-webkit-animation:highlight .5s linear 0s 2 alternate;-o-animation:highlight .5s linear 0s 2 alternate;animation:highlight .5s linear 0s 2 alternate}.progress.inline-block{width:100px;margin:0}.w-p5{width:5%!important}.w-p10{width:10%!important}.w-p15{width:15%!important}.w-p20{width:20%!important}.w-p25{width:25%!important}.w-p30{width:30%!important}.w-p35{width:35%!important}.w-p40{width:40%!important}.w-p45{width:45%!important}.w-p50{width:50%!important}.w-p55{width:55%!important}.w-p60{width:60%!important}.w-p65{width:65%!important}.w-p70{width:70%!important}.w-p75{width:75%!important}.w-p80{width:80%!important}.w-p85{width:85%!important}.w-p90{width:90%!important}.w-p94{width:94%!important}.w-p95{width:95%!important}.w-p98{width:98%!important}.w-p99{width:99%!important}.w-p100{width:100%!important}.w-auto{width:auto!important}.w-10px{width:10px!important}.w-20px{width:20px!important}.w-30px{width:30px!important}.w-35px{width:35px!important}.w-40px{width:40px!important}.w-45px{width:45px!important}.w-50px{width:50px!important}.w-60px{width:60px!important}.w-70px{width:70px!important}.w-80px{width:80px!important}.w-90px{width:90px!important}.w-100px{width:100px!important}.w-110px{width:110px!important}.w-120px{width:120px!important}.w-130px{width:130px!important}.w-140px{width:140px!important}.w-150px{width:150px!important}.w-160px{width:160px!important}.w-180px{width:180px!important}.w-200px{width:200px!important}.w-230px{width:230px!important}.w-250px{width:250px!important}.w-300px{width:300px!important}.w-400px{width:400px!important}.w-500px{width:500px!important}.w-600px{width:600px!important}.w-700px{width:700px!important}.w-800px{width:800px!important}.w-900px{width:900px!important}.mw-200px{max-width:200px!important}.mw-300px{max-width:300px!important}.mw-400px{max-width:400px!important}.mw-500px{max-width:500px!important}.mw-600px{max-width:600px!important}.mw-700px{max-width:700px!important}.mw-800px{max-width:800px!important}.mw-900px{max-width:900px!important}.mw-1400px{max-width:1400px!important}.w-id{width:70px!important}.w-pri{width:40px!important}.w-severity{width:50px!important}.w-hour{width:57px!important}.w-date{width:90px!important}.w-user{width:80px!important}.w-status{width:60px!important}.w-type{width:80px!important}.w-resolution{width:70px!important}.w-p15-f{width:15%!important;min-width:120px!important}.w-p25-f{width:25%!important;min-width:200px!important}.w-p35-f{width:35%!important;min-width:300px!important}.w-p45-f{width:45%!important;min-width:400px!important}.h-5px{height:5px!important}.h-10px{height:10px!important}.h-20px{height:20px!important}.h-30px{height:30px!important}.h-35px{height:35px!important}.h-40px{height:40px!important}.h-45px{height:45px!important}.h-50px{height:50px!important}.h-60px{height:60px!important}.h-70px{height:70px!important}.h-80px{height:80px!important}.h-100px{height:100px!important}.h-120px{height:120px!important}.h-130px{height:130px!important}.h-140px{height:140px!important}.h-150px{height:150px!important}.h-200px{height:200px!important}.pd-0{padding:0!important}.mg-0{margin:0!important}.mgb-20{margin-bottom:20px!important}.mgb-10{margin-bottom:10px!important}.pdb-20{padding-bottom:20px!important}.pdt-20{padding-top:20px!important}.br-0{border-radius:0!important}.bd-0,.bd-none,.borderless{border:none!important}.bg-none{background:0 0!important}@font-face{font-family:ZentaoIcon;font-style:normal;font-weight:400;src:url(../fonts/ZentaoIcon.eot?v=1.1.0);src:url(../fonts/ZentaoIcon.eot?#iefix&v=1.1.0) format('embedded-opentype'),url(../fonts/ZentaoIcon.woff?v=1.1.0) format('woff'),url(../fonts/ZentaoIcon.ttf?v=1.1.0) format('truetype'),url(../fonts/ZentaoIcon.svg#regular?v=1.1.0) format('svg')}.icon,[class*=" icon-"],[class^=icon-]{font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-transform:none;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon:before{display:inline-block;min-width:18px;text-align:center}a .icon,a [class*=" icon-"],a [class^=icon-]{display:inline}.icon-lg:before{font-size:1.33333333em;vertical-align:-10%}.icon-2x{font-size:36px}.icon-3x{font-size:54px}.icon-4x{font-size:72px}.icon-5x{font-size:90px}.icon-spin{display:inline-block;-webkit-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}a .icon-spin{display:inline-block;text-decoration:none}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0);transform:rotate(0)}100%{-o-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);-o-transform:rotate(359deg);transform:rotate(359deg)}}.icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.icon-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.icon-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.icon-flip-horizontal{-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);-o-transform:scale(-1,1);transform:scale(-1,1)}.icon-flip-vertical{-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)}.icon.icon-flip-horizontal,.icon.icon-flip-vertical,.icon.icon-rotate-180,.icon.icon-rotate-270,.icon.icon-rotate-90{display:inline-block}.icon-help:before{content:"\e968"}.icon-folder-account:before{content:"\e942"}.icon-folder-move:before{content:"\e960"}.icon-folder-plus:before{content:"\e961"}.icon-folder-upload:before{content:"\e962"}.icon-folder-star:before{content:"\e963"}.icon-folder-edit:before{content:"\e964"}.icon-folder-download:before{content:"\e965"}.icon-folder-outline:before{content:"\e966"}.icon-restart:before{content:"\e95e"}.icon-history:before{content:"\e95f"}.icon-home:before{content:"\e958"}.icon-pencil:before{content:"\e254"}.icon-angle-down:before{content:"\e313"}.icon-angle-left:before{content:"\e314"}.icon-angle-right:before{content:"\e315"}.icon-angle-top:before{content:"\e316"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-zentao-alt:before{content:"\e900"}.icon-zentao:before{content:"\e901"}.icon-severity:before{content:"\e902"}.icon-bar-chart:before{content:"\e903"}.icon-import:before{content:"\e904"}.icon-export:before{content:"\e905"}.icon-printer:before{content:"\e906"}.icon-hand-right:before{content:"\e907"}.icon-checked:before{content:"\e908"}.icon-off:before{content:"\e909"}.icon-start:before{content:"\e90a"}.icon-play:before{content:"\e90a"}.icon-time:before{content:"\e90b"}.icon-edit:before{content:"\e90c"}.icon-trash:before{content:"\e90d"}.icon-link:before{content:"\e90e"}.icon-unlink:before{content:"\e90f"}.icon-bullhorn:before{content:"\e910"}.icon-bug:before{content:"\e911"}.icon-list-alt:before{content:"\e912"}.icon-fork:before{content:"\e913"}.icon-glasses:before{content:"\e914"}.icon-sitemap:before{content:"\e915"}.icon-plus-sign:before{content:"\e916"}.icon-pluses:before{content:"\e917"}.icon-flag-alt:before{content:"\e918"}.icon-magic:before{content:"\e919"}.icon-treemap:before{content:"\e91a"}.icon-confirm:before{content:"\e91b"}.icon-lightbulb:before{content:"\e91c"}.icon-delay:before{content:"\e91d"}.icon-calendar:before{content:"\e91d"}.icon-pause:before{content:"\e91e"}.icon-ban:before{content:"\e91f"}.icon-plus-bold:before{content:"\e920"}.icon-copy:before{content:"\e921"}.icon-refresh:before{content:"\e922"}.icon-arrow-up:before{content:"\e923"}.icon-arrow-down:before{content:"\e924"}.icon-arrow-left:before{content:"\e952"}.icon-arrow-right:before{content:"\e93e"}.icon-plus:before{content:"\e925"}.icon-minus:before{content:"\e926"}.icon-exchange:before{content:"\e927"}.icon-search:before{content:"\e928"}.icon-envelope-o:before{content:"\e92a"}.icon-check:before{content:"\e5ca"}.icon-circle:before{content:"\e836"}.icon-up-circle:before{content:"\e92b"}.icon-right-circle:before{content:"\e92c"}.icon-down-circle:before{content:"\e92d"}.icon-left-circle:before{content:"\e92e"}.icon-check-circle:before{content:"\e92f"}.icon-exclamation-sign:before{content:"\e930"}.icon-unfold-all:before{content:"\e931"}.icon-fold-all:before{content:"\e932"}.icon-plus-sm:before{content:"\e933"}.icon-chevron-left:before{content:"\e934"}.icon-chevron-right:before{content:"\e935"}.icon-close:before{content:"\e936"}.icon-flag:before{content:"\e937"}.icon-check-sign:before{content:"\e938"}.icon-minus-sign:before{content:"\e939"}.icon-bars-sign:before{content:"\e93a"}.icon-cog:before{content:"\e93b"}.icon-color:before{content:"\e93c"}.icon-paper-clip:before{content:"\e93d"}.icon-back:before{content:"\e93f"}.icon-chat-line:before{content:"\e940"}.icon-person:before{content:"\e941"}.icon-stack:before{content:"\e943"}.icon-cube:before{content:"\e967"}.icon-folder:before{content:"\e944"}.icon-folder-o:before{content:"\e945"}.icon-folder-open-o:before{content:"\e946"}.icon-folder-open:before{content:"\e947"}.icon-bars:before{content:"\e948"}.icon-cards-view:before{content:"\e949"}.icon-star-empty:before{content:"\e94a"}.icon-star:before{content:"\e94b"}.icon-file-empty:before{content:"\e94c"}.icon-file-text:before{content:"\e94d"}.icon-file-picture:before{content:"\e94e"}.icon-file-zip:before{content:"\e94f"}.icon-file-music:before{content:"\e950"}.icon-file-video:before{content:"\e951"}.icon-file-play:before{content:"\e953"}.icon-file-pdf:before{content:"\e954"}.icon-file-word:before{content:"\e955"}.icon-file-excel:before{content:"\e956"}.icon-file-code:before{content:"\f1c9"}.icon-ellipsis-v:before{content:"\e5d4"}.icon-spinner-indicator:before{content:"\e982"}.icon-text:before{content:"\e929"}.icon-code:before{content:"\e957"}.icon-chevron-double-up:before{content:"\e959"}.icon-chevron-double-down:before{content:"\e95a"}.icon-chart-pie:before{content:"\e95b"}.icon-chart-line:before{content:"\e95c"}.icon-chart-bar:before{content:"\e95d"}.icon-sm:before{font-size:14px;vertical-align:10%}.btn{display:inline-block;padding:5px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;border-radius:4px;-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:background,border,outline,opacity,-webkit-box-shadow;-o-transition-property:background,border,box-shadow,outline,opacity;transition-property:background,border,outline,opacity,-webkit-box-shadow;transition-property:background,border,box-shadow,outline,opacity;transition-property:background,border,box-shadow,outline,opacity,-webkit-box-shadow}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:focus,.btn:hover{color:#3c4353;text-decoration:none}.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.1)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:grayscale(1);-webkit-box-shadow:none;box-shadow:none;opacity:.5;-webkit-filter:grayscale(1)}.btn{color:#3c4353;background-color:#fff;border-color:#d9e0e7}.btn.active,.btn.hover,.btn:active,.btn:focus,.btn:hover,.open .dropdown-toggle.btn{color:#3c4353;background-color:rgba(255,255,255,.8);border-color:#bac7d3}.btn.active,.btn:active,.open .dropdown-toggle.btn{background-color:#f2f2f2;background-image:none;border-color:#bac7d3}.btn.disabled,.btn.disabled.active,.btn.disabled:active,.btn.disabled:focus,.btn.disabled:hover,.btn[disabled],.btn[disabled].active,.btn[disabled]:active,.btn[disabled]:focus,.btn[disabled]:hover,fieldset[disabled] .btn,fieldset[disabled] .btn.active,fieldset[disabled] .btn:active,fieldset[disabled] .btn:focus,fieldset[disabled] .btn:hover{color:rgba(60,67,83,.3);background-color:#fff;border-color:#d9e0e7}.btn-gray{color:#82899f;background-color:#f1f1f1;border-color:#f1f1f1}.btn-gray.active,.btn-gray.hover,.btn-gray:active,.btn-gray:focus,.btn-gray:hover,.open .dropdown-toggle.btn-gray{color:#82899f;background-color:rgba(241,241,241,.8);border-color:#d8d8d8}.btn-gray.active,.btn-gray:active,.open .dropdown-toggle.btn-gray{background-color:#e4e4e4;background-image:none;border-color:#d8d8d8}.btn-gray.disabled,.btn-gray.disabled.active,.btn-gray.disabled:active,.btn-gray.disabled:focus,.btn-gray.disabled:hover,.btn-gray[disabled],.btn-gray[disabled].active,.btn-gray[disabled]:active,.btn-gray[disabled]:focus,.btn-gray[disabled]:hover,fieldset[disabled] .btn-gray,fieldset[disabled] .btn-gray.active,fieldset[disabled] .btn-gray:active,fieldset[disabled] .btn-gray:focus,fieldset[disabled] .btn-gray:hover{color:rgba(130,137,159,.3);background-color:#f1f1f1;border-color:#f1f1f1}.btn-primary{color:#fff;background-color:#006af1;border-color:transparent}.btn-primary.active,.btn-primary.hover,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .dropdown-toggle.btn-primary{color:#fff;background-color:rgba(0,106,241,.8);border-color:rgba(0,0,0,0)}.btn-primary.active,.btn-primary:active,.open .dropdown-toggle.btn-primary{background-color:#005fd8;background-image:none;border-color:rgba(0,0,0,0)}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{color:rgba(255,255,255,.3);background-color:#006af1;border-color:transparent}.btn-secondary{color:#fff;background-color:#00a9fc;border-color:transparent}.btn-secondary.active,.btn-secondary.hover,.btn-secondary:active,.btn-secondary:focus,.btn-secondary:hover,.open .dropdown-toggle.btn-secondary{color:#fff;background-color:rgba(0,169,252,.8);border-color:rgba(0,0,0,0)}.btn-secondary.active,.btn-secondary:active,.open .dropdown-toggle.btn-secondary{background-color:#0098e3;background-image:none;border-color:rgba(0,0,0,0)}.btn-secondary.disabled,.btn-secondary.disabled.active,.btn-secondary.disabled:active,.btn-secondary.disabled:focus,.btn-secondary.disabled:hover,.btn-secondary[disabled],.btn-secondary[disabled].active,.btn-secondary[disabled]:active,.btn-secondary[disabled]:focus,.btn-secondary[disabled]:hover,fieldset[disabled] .btn-secondary,fieldset[disabled] .btn-secondary.active,fieldset[disabled] .btn-secondary:active,fieldset[disabled] .btn-secondary:focus,fieldset[disabled] .btn-secondary:hover{color:rgba(255,255,255,.3);background-color:#00a9fc;border-color:transparent}.btn-warning{color:#fff;background-color:#fdc137;border-color:transparent}.btn-warning.active,.btn-warning.hover,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open .dropdown-toggle.btn-warning{color:#fff;background-color:rgba(253,193,55,.8);border-color:rgba(0,0,0,0)}.btn-warning.active,.btn-warning:active,.open .dropdown-toggle.btn-warning{background-color:#fdb91e;background-image:none;border-color:rgba(0,0,0,0)}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{color:rgba(255,255,255,.3);background-color:#fdc137;border-color:transparent}.btn-danger{color:#fff;background-color:#ff5d5d;border-color:transparent}.btn-danger.active,.btn-danger.hover,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .dropdown-toggle.btn-danger{color:#fff;background-color:rgba(255,93,93,.8);border-color:rgba(0,0,0,0)}.btn-danger.active,.btn-danger:active,.open .dropdown-toggle.btn-danger{background-color:#ff4343;background-image:none;border-color:rgba(0,0,0,0)}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{color:rgba(255,255,255,.3);background-color:#ff5d5d;border-color:transparent}.btn-success{color:#fff;background-color:#00da88;border-color:transparent}.btn-success.active,.btn-success.hover,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .dropdown-toggle.btn-success{color:#fff;background-color:rgba(0,218,136,.8);border-color:rgba(0,0,0,0)}.btn-success.active,.btn-success:active,.open .dropdown-toggle.btn-success{background-color:#00c178;background-image:none;border-color:rgba(0,0,0,0)}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{color:rgba(255,255,255,.3);background-color:#00da88;border-color:transparent}.btn-info{color:#006af1;background-color:#e9f2fb;border-color:transparent}.btn-info.active,.btn-info.hover,.btn-info:active,.btn-info:focus,.btn-info:hover,.open .dropdown-toggle.btn-info{color:#006af1;background-color:rgba(233,242,251,.8);border-color:rgba(0,0,0,0)}.btn-info.active,.btn-info:active,.open .dropdown-toggle.btn-info{background-color:#d3e5f7;background-image:none;border-color:rgba(0,0,0,0)}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{color:rgba(0,106,241,.3);background-color:#e9f2fb;border-color:transparent}.btn-link{padding-right:6px;padding-left:6px;font-weight:400;color:#838a9d;text-shadow:none;cursor:pointer;background:0 0;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover,.btn-link[disabled],fieldset[disabled] .btn-link{border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link:focus,.btn-link:hover{color:#3c4353;background-color:#f1f1f1}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#cbd0db;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.25;border-radius:4px}.btn-mini,.btn-sm,.btn-xs{padding:2px 8px;font-size:12px;line-height:1.5;border-radius:4px}.btn-mini,.btn-xs{padding:0 5px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-wide{min-width:120px}.btn-limit{max-width:150px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-limit>.caret{position:absolute;top:14px;right:8px}.btn-circle{border-radius:17px}.btn>.label-icon{top:3px;padding:3px;margin:-2px;background-color:rgba(0,0,0,.1);border-radius:12px}.btn>.label-icon>.icon{font-size:16px;line-height:18px}.btn>.icon+.text{margin-left:5px}.btn.btn-sm.btn-circle{border-radius:12px}.btn.btn-sm>.label-icon{top:1px;width:20px;height:20px;padding:1px;line-height:20px}.btn.btn-sm>.label-icon>.icon{font-size:14px}.btn-icon-left{position:relative;padding-left:35px;overflow:hidden;text-align:right}.btn-icon-left>.label-icon{position:absolute;left:5px;margin:0}.btn-icon-left>.icon{position:absolute;top:0;bottom:0;left:0;display:block;width:30px;line-height:30px;color:#00a9fc;text-align:center;background:#e9f2fb}.btn-icon-right{position:relative;padding-right:35px;text-align:left}.btn-icon-right>.label-icon{position:absolute;right:5px;margin:0}.btn-icon{min-width:32px;padding-right:0;padding-left:0}.btn-icon.btn-sm{width:24px;min-width:24px;height:24px}.btn-group{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group>.btn-group{float:left}.btn-group>.btn{border-radius:0}.btn-group>.btn:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.btn-group>.btn:last-child{border-top-right-radius:2px;border-bottom-right-radius:2px}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.dropdown{float:left;margin-right:10px}.btn-toolbar>.btn-group:last-child,.btn-toolbar>.btn:last-child,.btn-toolbar>.dropdown:last-child{margin-right:0}.btn-toolbar>.divider{float:left;height:20px;margin:7px 5px 4px 10px;border-left:1px solid rgba(0,0,0,.05)}.btn-toolbar .space{float:left;min-height:1px;margin:0 10px 0 10px}.btn-toolbar .input-control{float:left;width:120px}.btn-toolbar .page-title{float:left;margin-left:15px;line-height:34px}.btn-toolbar .page-title .text{font-size:18px}.btn-toolbar .page-title .label{top:-3px;margin-right:10px}.btn-active-line{position:relative;font-weight:700;color:#006af1}.btn-active-line:after{position:absolute;right:5px;bottom:1px;left:5px;display:block;content:' ';border-bottom:2px solid #006af1}.btn-active-line:hover{color:#006af1}.btn-active-text .text{position:relative;display:inline-block;font-weight:700;color:#006af1}.btn-active-text .text:after{position:absolute;bottom:-5px;display:block;width:100%;content:' ';border-bottom:2px solid #006af1}.angle-btn{position:relative;padding:1px;border:1px solid #d9e0e7;border-right:none}.btn-toolbar>.angle-btn{margin-right:8px}.angle-btn:after,.angle-btn:before{position:absolute;top:-1px;right:-8px;display:block;width:0;height:0;content:' ';border-color:transparent transparent transparent #d9e0e7;border-style:solid;border-width:17px 0 17px 8px}.angle-btn:after{right:-7px;border-color:transparent transparent transparent #fff;border-width:17px 0 17px 8px}.angle-btn .btn{padding:5px 6px;color:#838a9d;border:none;border-radius:4px!important}.angle-btn .btn.btn-limit{padding-right:16px}.angle-btn .btn.btn-limit>.caret{right:4px}.angle-btn+.angle-btn{border-left:none}.angle-btn+.angle-btn>.btn-group:first-child{padding-left:8px}.angle-btn+.angle-btn>.btn-group:first-child:after,.angle-btn+.angle-btn>.btn-group:first-child:before{position:absolute;top:-1px;left:0;display:block;width:0;height:0;content:' ';border-color:transparent transparent transparent #d9e0e7;border-style:solid;border-width:17px 0 17px 8px}.angle-btn+.angle-btn>.btn-group:first-child:after{left:-1px;border-color:transparent transparent transparent #fff;border-width:17px 0 17px 8px}.label{position:relative;display:inline-block;padding:3px 5px;font-size:12px;font-weight:400;vertical-align:middle;border-radius:2px}.label+.label{margin-left:4px}.label-pale{background:#e9f2fb}.label-badge{border-radius:9px}.label-outline.label-danger{color:#ff5d5d;background:#ffe5e0;border-color:rgba(255,93,93,.25)}.label-outline.label-light{color:#838a9d;background:#f2f5fb;border-color:#e1e5ee}.label-outline.label-primary{background:#e9f2fb;border-color:rgba(0,106,241,.25)}.label-outline.label-success{background:#ddf4df;border-color:rgba(0,218,136,.25)}.label-light{color:#838a9d;background-color:#e7e7e7}.label-dot{position:relative;top:-1px;padding:0;border-radius:50%}.label-dot+.status-text{display:inline-block;margin-left:5px}.label-icon{min-width:18px;padding:0;line-height:18px;border-radius:10px}.label-id{display:inline-block;min-width:30px;padding:0 5px;font-size:12px;line-height:16px;color:#838a9d;text-align:center;vertical-align:middle;background-color:transparent;border:1px solid #cbd0db;border-radius:2px}.pri-1,.todo-pri-1{color:#ff5d5d}.project-status-delayed,.status-delayed{color:#ff5d5d}.project-status-delayed>.label-dot,.status-delayed>.label-dot{background-color:#ff5d5d}.project-status-wait,.status-wait{color:#a6aab8}.project-status-wait>.label-dot,.status-wait>.label-dot{background-color:#7ec5ff}.project-status-doing,.status-active,.status-doing,.status-unclosed{color:#a6aab8}.project-status-doing>.label-dot,.status-active>.label-dot,.status-doing>.label-dot,.status-unclosed>.label-dot{background-color:#006af1}.project-status-done,.status-done{color:#a6aab8}.project-status-done>.label-dot,.status-done>.label-dot{background-color:#00da88}.status-postpone{color:#a6aab8}.status-postpone>.label-dot{background-color:#ff5d5d}.status-changed{color:#ff5d5d}.status-changed>.label-dot{background-color:#ff5d5d}.project-status-suspended,.status-pause,.status-suspended{color:#fdc137}.project-status-suspended>.label-dot,.status-pause>.label-dot,.status-suspended>.label-dot{background-color:#fdc137}.status-draft{color:#a6aab8}.status-draft>.label-dot{background-color:#8666b8}.status-closed{color:#a6aab8}.status-closed>.label-dot{background-color:#a6aab8}.status-cancel{color:#a6aab8}.status-cancel>.label-dot{background-color:#cbd0db}.label-pri{display:inline-block;min-width:20px;height:20px;padding:0 4px;line-height:20px;color:#a6aab8;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#f0f2f5;border-radius:10px}.label-pri-1{color:#fff;background:#51a1ff}.label-pri-2{color:#fff;background:#72b3ff}.label-pri-3{color:#fff;background:#98c8ff}.label-pri-4{color:#fff;background:#c4dfff}.label-level{position:relative;display:inline-block;width:24px;height:20px;text-align:center}.label-level:before{position:absolute;top:-3px;left:0;z-index:0;font-family:ZentaoIcon;font-size:18px;font-size:24px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;color:#f0f2f5;text-transform:none;content:"\e902";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.label-level:after{position:relative;top:1px;z-index:1;display:inline-block;font-size:12px;line-height:18px;color:#fff;content:attr(data-level)}.label-level[data-level="1"]:before{color:#f65f28}.label-level[data-level="2"]:before{color:#f86e29}.label-level[data-level="3"]:before{color:#f77036}.label-level[data-level="4"]:before{color:#f7824c}.label-level[data-level="5"]:before{color:#fe9527}.label-level[data-level="6"]:before{color:#fea429}.task-status-wait{color:#a6aab8}.task-status-wait>.label-dot{background-color:#7ec5ff}.task-status-doing{color:#a6aab8}.task-status-doing>.label-dot{background-color:#006af1}.task-status-done{color:#a6aab8}.task-status-done>.label-dot{background-color:#00da88}.story-status-draft{color:#7ec5ff}.story-status-draft>.label-dot{background-color:#7ec5ff}.story-status-active{color:#a6aab8}.story-status-active>.label-dot{background-color:#006af1}.story-status-changed{color:#ff5d5d}.story-status-changed>.label-dot{background-color:#ff5d5d}.story-status-closed{color:#a6aab8}.bug-status-active{color:#a6aab8}.bug-status-active>.label-dot{background-color:#006af1}.bug-status-resolved,.status-resolved{color:#a6aab8}.bug-status-resolved>.label-dot,.status-resolved>.label-dot{background-color:#00da88}.bug-status-closed{color:#a6aab8}.checkbox-primary,.radio-primary{position:relative;display:block;vertical-align:middle}.checkbox-primary.inline-block,.radio-primary.inline-block{display:inline-block}.checkbox-primary.inline-block+.inline-block,.radio-primary.inline-block+.inline-block{margin-left:15px}.checkbox-primary>input,.radio-primary>input{position:absolute;top:0;left:0;z-index:3;width:100%;height:100%;margin:0;opacity:0}.checkbox-primary>label,.radio-primary>label{display:block;height:20px;padding-left:30px;margin:0;font-weight:400;line-height:20px;cursor:pointer}.checkbox-primary>label:after,.checkbox-primary>label:before,.radio-primary>label:after,.radio-primary>label:before{position:absolute;top:0;right:0;left:0;display:block;width:20px;height:20px;line-height:20px;text-align:center;content:' ';border-radius:4px}.checkbox-primary>label:after,.radio-primary>label:after{z-index:1;border:2px solid #eee;border-color:rgba(0,0,0,.1);-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:border,background-color;-o-transition-property:border,background-color;transition-property:border,background-color}.checkbox-primary>label:before,.radio-primary>label:before{top:3px;z-index:2;font-family:ZentaoIcon;font-size:18px;font-size:14px;font-style:normal;font-weight:400;font-weight:900;font-variant:normal;line-height:1;text-transform:none;content:"\e5ca";opacity:0;-webkit-transition:.2s cubic-bezier(.175,.885,.32,1);-o-transition:.2s cubic-bezier(.175,.885,.32,1);transition:.2s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:opacity,-webkit-transform;-o-transition-property:opacity,-o-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform,-o-transform;-webkit-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.checkbox-primary.checked>label:after,.checkbox-primary>input:checked+label:after,.radio-primary.checked>label:after,.radio-primary>input:checked+label:after{background-color:#00da88;border-color:#00da88;border-width:4px}.checkbox-primary.checked>label:before,.checkbox-primary>input:checked+label:before,.radio-primary.checked>label:before,.radio-primary>input:checked+label:before{color:#fff;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}.checkbox-primary.focus>label:after,.checkbox-primary>input:focus+label:after,.radio-primary.focus>label:after,.radio-primary>input:focus+label:after{border-color:#00da88;-webkit-box-shadow:0 0 0 3px rgba(0,218,136,.2);box-shadow:0 0 0 3px rgba(0,218,136,.2)}.checkbox-primary input:disabled+label:after,.checkbox-primary.disabled>label:after,.radio-primary input:disabled+label:after,.radio-primary.disabled>label:after{background-color:#e5e5e5;border-color:#bbb}.checkbox-primary input:disabled:checked+label:after,.checkbox-primary.checked.disabled>label:after,.radio-primary input:disabled:checked+label:after,.radio-primary.checked.disabled>label:after{background-color:#bbb}.checkbox-primary:hover>label:after,.radio-primary:hover>label:after{border-color:#00da88}.checkbox-primary.checkbox-right>label,.radio-primary.checkbox-right>label{padding:0 30px 0 0}.checkbox-primary.checkbox-right>label:after,.checkbox-primary.checkbox-right>label:before,.radio-primary.checkbox-right>label:after,.radio-primary.checkbox-right>label:before{right:0;left:auto}.radio-primary>label:after{border-radius:50%}.radio-primary>label:before{top:6px;left:6px;width:8px;height:8px;content:' ';border:none;border-radius:50%}.radio-primary.checked>label:after,.radio-primary>input:checked+label:after{background-color:transparent;border-color:#00da88;border-width:2px}.radio-primary.checked>label:before,.radio-primary>input:checked+label:before{background-color:#00da88}.radio-primary input:disabled:checked+label:after,.radio-primary.checked.disabled>label:after{background-color:transparent;border-color:#bbb}.radio-primary input:disabled:checked+label:before,.radio-primary.checked.disabled>label:before{background-color:#bbb}.panel{position:relative;margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:20px}.panel-body.has-table{padding:10px}.panel-body.has-table .table{margin-bottom:0}.panel-heading{padding:18px 20px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading+.panel-body{padding-top:0}.panel-title{font-size:16px;font-weight:700;line-height:20px}.panel-title .label{top:-1px}.panel-actions{position:absolute;top:0;right:0;z-index:10;padding:13px 10px}.panel-actions>li>a{display:inline-block;min-width:30px;padding:0 5px;line-height:30px;color:#cbd0db}.panel-actions>li>a:hover{color:#a6aab8;text-decoration:initial;background-color:#f1f1f1}.panel-actions .btn-icon{color:#cbd0db}.panel-actions .btn-gray{color:#838a9d}.panel-actions .btn-gray.text-primary{color:#006af1}.progress-text-left{position:relative;margin:7px 0;margin-left:35px;overflow:visible}.progress-text-left .progress-text{position:absolute;top:-7px;left:-35px;display:block;width:35px;height:20px;padding-right:5px;line-height:20px;color:#a6aab8;text-align:right}.chart-color{width:20px}.chart-color-dot{display:inline-block;width:10px;height:10px;border-radius:50%}.chart-row{margin-top:10px}.chart-row+.chart-row{padding-top:10px;border-top:1px solid #eee}.chart-wrapper{padding:10px 5px;background:#eee}.chart-wrapper>h4{margin:5px 0 10px}.table-wrapper{max-height:250px;overflow:auto}.table-wrapper .table{margin:0}.progress-pie{position:relative}.progress-pie .progress-info{position:absolute;top:0;left:0;width:100%;height:100%;padding-top:25px;text-align:center}.progress-pie .progress-info>small{display:block;line-height:14px;color:#a6aab8}.progress-pie .progress-info>strong{display:block;font-size:36px;line-height:40px}.progress-pie .progress-info>strong>small{font-size:20px}.progress-pie-120 .progress-info{padding-top:30px}.progress-pie-120 .progress-info>small{line-height:18px}.progress-pie-50 .progress-info{padding-top:4px}.progress-pie-50 .progress-info>strong{font-size:20px;font-weight:400}.progress-pie-50 .progress-info>strong>small{font-size:14px}.status-bars{display:table;width:100%;height:140px;padding:5px;padding-top:50px;margin:0;overflow:hidden}.status-bars>li{position:relative;display:table-cell;text-align:center;vertical-align:bottom}.status-bars .bar{position:absolute;bottom:20px;left:50%;display:block;width:10px;margin-left:-5px;background:#006af1;border-radius:5px 5px 0 0}.status-bars .bar:after{position:absolute;right:-50px;bottom:0;left:-50px;display:block;height:1px;content:' ';background:#eee}.status-bars .title{font-size:12px;font-weight:400;color:#a6a8b6}.status-bars .value{position:relative;top:-20px;left:-20px;display:inline-block;width:50px;font-size:16px;font-weight:700;text-align:center}.messager{border-radius:4px;-webkit-box-shadow:0 4px 16px rgba(0,0,0,.2),0 2px 8px rgba(0,0,0,.1);box-shadow:0 4px 16px rgba(0,0,0,.2),0 2px 8px rgba(0,0,0,.1)}.messager-content{padding:18px 20px;font-size:18px;line-height:30px}.messager-content>.icon{font-size:28px;line-height:30px}.messager-actions{vertical-align:middle}.messagger-zt{color:#3c4353;background-color:#fff}.messagger-zt .messager-content>.icon{color:#006af1}.messagger-zt .messager-actions>.action{color:#a6aab8}.messagger-zt.messager-success .messager-content>.icon{color:#00da88}.messagger-zt.messager-danger .messager-content>.icon{color:#ff5d5d}.messagger-zt.messager-warning .messager-content>.icon{color:#fdc137}.messagger-zt.messager-info .messager-content>.icon{color:#7ec5ff}.tree{padding-left:0}.tree ul{position:relative;display:none;padding-left:0}.tree li{position:relative;padding:2px 0 2px 15px;list-style:none}.tree li.heading{padding-left:5px;color:#838a9d}.tree li>a{display:block;width:100%;max-width:90%;padding:2px 6px;overflow:hidden;color:#838a9d;text-overflow:ellipsis;white-space:nowrap}.tree li>a:hover{color:#3c4353;background-color:#f0f2f5}.tree li>a.tree-toggle:hover{background:0 0}.tree li.active>a{color:#006af1;background-color:#e9f2fb}.tree li>.list-toggle{position:absolute;top:2px;left:1px;z-index:10;width:20px;font-size:14px;line-height:24px;color:#cbd0db;text-align:center;cursor:pointer;-webkit-transition:all .2s;-o-transition:all .2s;transition:all .2s}.tree li>.list-toggle:before{content:"\f0da"}.tree li>.list-toggle:active,.tree li>.list-toggle:hover{color:#006af1}.tree li.open>ul{display:block}.tree li.open>.list-toggle{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.tree-actions{display:inline-block;margin-left:5px;vertical-align:middle}.tree-actions a{display:inline-block;margin-left:5px;font-size:13px;opacity:.6}.tree-actions a:hover{opacity:1}.tree li>.module-name{display:inline-block;max-width:100px;overflow:hidden;color:#838a9d;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.tree li>.module-name>a{display:inline-block;padding:2px 6px;color:#838a9d}.tree li>.module-name:hover{background-color:#f0f2f5}.tree li>.module-name:hover>a{color:#3c4353}.dropdown-menu{padding:5px 0;border-color:rgba(0,0,0,.1)}.dropdown-menu>li{padding:0 10px}.dropdown-menu>li>a{padding:2px 10px;margin:5px 0;border-radius:3px}.dropdown-menu>li>a>.icon{position:relative;left:-5px;opacity:.5}.dropdown-menu>li.active>a,.dropdown-menu>li.selected>a{position:relative;color:#fff;background-color:#00a9fc}.dropdown-menu>li.selected>a:after{position:absolute;top:2px;right:4px;display:block;font-family:ZentaoIcon;font-size:18px;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;line-height:20px;text-transform:none;content:"\e5ca";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dropdown-menu>li.divider{margin:10px}.dropdown-submenu>a:after{margin-right:-5px}.dropdown-submenu>.dropdown-menu.pull-left{margin-left:-1px}.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{color:#3c4353;background-color:#e9f2fb}.dropdown-submenu:hover>a:after{border-left-color:#006af1}.dropdown-submenu>a:hover:after{border-left-color:#fff}.pager .btn{padding:3px 10px}.pager .btn .caret{opacity:.3}.pager>li>.pager-label{padding:3px 4px}.pager>li>.pager-item{min-width:24px;padding:1px 3px;margin:2px;font-size:16px;line-height:20px;text-align:center;background:0 0;border-color:transparent;border-radius:50%}.pager>li>.pager-item:hover{background-color:rgba(0,0,0,.1)}.pager>li.disabled>a.pager-item{background:0 0;border-color:transparent}.pager>li.pager-item-left>.pager-item,.pager>li.pager-item-right>.pager-item{min-width:28px;padding:3px 4px;border-color:#d9e0e7!important;border-radius:2px!important}.pager>li.active>a{background-color:#00a9fc}.pager>li.pager-item-left>.pager-item{margin:0 5px 0 15px}.pager>li.pager-item-right>.pager-item{margin:0 0 0 5px}.pager .dropdown-menu{width:200px}.pager .dropdown-menu>li{float:left;width:33.333333%}.modal-dialog{max-width:1360px;border:none;-webkit-box-shadow:0 0 20px 0 rgba(0,0,0,.25);box-shadow:0 0 20px 0 rgba(0,0,0,.25)}.modal-header{padding:20px 0;margin:0 20px}.modal-header>.close{color:#838a9d;opacity:1}.modal-header>.close:hover{color:#3c4353}.modal-footer{padding:20px 0;margin:0 20px}.modal-title{font-size:18px;font-weight:400}.modal-actions{position:absolute;top:16px;right:16px}.modal-actions .divider{position:relative;top:5px;display:inline-block;width:0;height:20px;margin:0 10px;border-left:#eee 1px solid}.modal-actions>.dropdown{display:inline-block}.modal-body{padding:20px}.modal.fade .modal-dialog{-webkit-transform:translate(0,-3%);-ms-transform:translate(0,-3%);-o-transform:translate(0,-3%);transform:translate(0,-3%)}.modal.fade.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-simple .modal-footer{padding-top:0;border-top:none}.modal-iframe .modal-header{position:relative;z-index:10;min-height:0;padding:0;border:none}.modal-iframe .modal-title{display:none}.modal-iframe .modal-header .close{position:absolute;top:15px;right:15px;font-size:32px;font-weight:200}.tile{text-align:center}.tile-title{line-height:20px;color:#838a9d}.tile-amount{font-size:32px;font-weight:700;line-height:56px}.timeline>li{position:relative;list-style:none}.timeline>li:before,.timeline>li>a:after,.timeline>li>div:after{position:absolute;left:-20px;display:block;width:15px;height:15px;content:' ';border-radius:50%}.timeline>li:before{top:14px;left:-16px;z-index:3;width:7px;height:7px;background-color:#cbd0db;border:none;border:1px solid #cbd0db}.timeline>li>a:after,.timeline>li>div:after{top:13px;left:-17px;z-index:3;width:9px;height:9px;background-color:#006af1;border-radius:50%;opacity:0}.timeline>li+li:after{position:absolute;top:-12px;bottom:20px;left:-13px;z-index:1;display:block;content:' ';border-left:1px solid #eee}.timeline>li.active>a:after,.timeline>li.active>div:after{opacity:1}.timeline>li.active:before{top:10px;left:-20px;width:15px;height:15px;background-color:rgba(0,106,241,.2);border:none}.timeline>li>a,.timeline>li>div{display:block;padding:5px;line-height:24px;color:#a6aab8}.timeline>li.active>a{color:#3c4353}.timeline-tag{position:absolute;top:5px;left:-115px;font-size:12px}.timeline-tag-left{padding-left:115px}.timeline-sm{font-size:12px}.timeline-sm>li:before,.timeline-sm>li>a:after,.timeline-sm>li>div:after{top:10px;left:-20px;width:11px;height:11px}.timeline-sm>li.active:before,.timeline-sm>li:before{top:10px;left:-18px;width:11px;height:11px;background:0 0;border:1px solid #eee}.timeline-sm>li>a,.timeline-sm>li>div{line-height:20px}.timeline-sm>li>a:after,.timeline-sm>li>div:after{top:13px;left:-15px;width:5px;height:5px}.form-control{-webkit-box-shadow:none;box-shadow:none}.form-control::-webkit-input-placeholder{font-size:12px}.form-control::-moz-placeholder{font-size:12px}.form-control:-ms-input-placeholder{font-size:12px}.form-control::placeholder{font-size:12px}.form-horizontal .form-group>label{padding-right:0}.form-actions{margin-top:20px;margin-bottom:0}form label{font-weight:400;color:#838a9d}.form-group .btn+.btn{margin-left:5px}.table-form{margin-bottom:0;table-layout:fixed}.table-form>thead>tr>th.required{padding-left:18px}.table-form>thead>tr>th.required:after{top:7px;right:auto;left:5px}.table-form>tbody>tr>td,.table-form>tbody>tr>th,.table-form>tfoot>tr>td,.table-form>thead>tr>th{padding:7px 5px;vertical-align:middle;border-bottom:none}.table-form>tfoot>tr>td{padding:20px 7px 10px}.table-form>tbody>tr>th{width:100px;padding-top:12px;color:#838a9d;text-align:right;vertical-align:top}.table-form .input-group{width:100%}.chosen-container-single .chosen-single div b{color:#cbd0db}.chosen-container-single .chosen-search:before{top:8px}.chosen-container-single .chosen-search input[type=text]{border-radius:14px}.datetimepicker{padding:10px}.datetimepicker td.day.today{background-color:#ff5d5d}.datetimepicker td,.datetimepicker th{border-radius:13px}.datetimepicker tfoot th,.datetimepicker thead th{color:#a6aab8}.input-control .colorpicker{top:0;z-index:auto;opacity:1}.input-control .colorpicker .btn{padding:5px}.input-control .input-control-icon-right.btn{top:0}.colorpicker .dropdown-menu{min-width:232px;padding:5px 10px 10px 10px}.colorpicker .dropdown-menu>li{display:block;float:left;padding:5px}.colorpicker .dropdown-menu>li.heading{width:100%;margin-bottom:5px;font-size:16px;font-weight:700;text-align:left}.colorpicker .dropdown-menu>li.heading>.icon-close{position:relative;top:4px;float:right;cursor:pointer;opacity:.6}.colorpicker .dropdown-menu>li>a{position:relative;display:block;width:100%;height:100%;padding:0;margin:0;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-align:center;text-transform:none;border:1px solid transparent;border-radius:50%;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.colorpicker .dropdown-menu>li>a:before{position:absolute;top:0;display:block;width:100%;height:20px;line-height:18px}.colorpicker .dropdown-menu>li>a:hover{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.25);box-shadow:0 1px 4px rgba(0,0,0,.25)}.colorpicker .dropdown-menu>li>a.active:before{font-size:14px;content:"\e5ca"}.colorpicker .dropdown-menu>li>a.empty{color:#666;background:#fff}.colorpicker .dropdown-menu>li>a.empty:before{content:"\e90d"}.colorpicker .btn{position:relative}.colorpicker .btn .color-bar{position:absolute;right:5px;bottom:3px;left:5px;height:3px}.colorpicker .btn .color-bar[style*=background]+.ic{position:relative;top:-2px}.input-group .chosen-container{display:table-cell}.input-group-addon{border-right:none;border-left:none}.input-group-cell{display:table-cell;width:1%;padding:0 12px;white-space:nowrap;vertical-align:middle}.label-selector>.label{display:inline-block;min-width:30px;height:30px;padding:0 5px;font-size:14px;line-height:28px;color:#82899f;text-align:center;cursor:pointer;background:0 0;border:1px solid #82899f;border-radius:15px}.label-selector>.label+.label{margin-left:10px}.label-selector>.label.active{color:#fff;background-color:#00a9fc;border-color:#00a9fc}.label-selector>.label.empty{border-color:transparent}.ke-container{border-color:#e8e9ee!important;border-radius:2px!important}.ke-container.focus{border-color:#006af1!important}.ke-toolbar{border-color:#e8e9ee!important}.required:after{top:6px;font-size:20px}.file-input{position:relative}.file-input .input-group{width:auto}.file-input .input-group>.input-group-cell:first-child{padding-right:0;padding-left:7px}.file-input input[type=file]{position:absolute;width:0;height:0;opacity:0}.file-input .file-title{display:inline-block;max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.file-input .file-editbox{min-width:200px;max-width:100%}.edit .file-input-empty,.file-input-edit,.file-input-normal,.normal .file-input-empty{display:none}.edit .file-input-edit,.normal .file-input-normal{display:block}.edit .file-input-edit.input-group,.normal .file-input-normal.input-group{display:table}.edit .file-input-normal{display:none!important}#mainHeader{min-height:66px;color:#fff;background:#00b1fd -webkit-gradient(linear,right top,left top,from(#0072f3),to(#00b1fd));background:#00b1fd -webkit-linear-gradient(right,#0072f3 0,#00b1fd 100%);background:#00b1fd -o-linear-gradient(right,#0072f3 0,#00b1fd 100%);background:#00b1fd linear-gradient(-90deg,#0072f3 0,#00b1fd 100%)}#mainHeader>.container{padding:0}#heading{position:absolute;top:18px;left:10px}#heading h1{float:left;max-width:240px;margin:0;overflow:hidden;font-size:20px;font-weight:400;line-height:30px;text-overflow:ellipsis;white-space:nowrap}#heading h1 a{color:inherit;text-decoration:inherit}#heading .btn{display:block;float:left;height:20px;padding:1px 5px;margin:0;margin:5px 0 0 10px;font-size:12px;font-weight:lighter;line-height:18px;background-color:rgba(255,255,255,.2);border:none}#heading .btn:hover{background-color:rgba(0,0,0,.1)}#navbar{margin:12px auto 0;font-size:16px;text-align:center}#navbar .nav{display:inline-block}#navbar .nav>li>a{line-height:24px;color:#fff;opacity:.75}@media (max-width:1380px){#navbar .nav>li>a{padding:8px 10px}}@media (max-width:992px){#navbar .nav>li>a{padding:5px 10px}}#navbar .nav>li>a:hover{background-color:rgba(0,0,0,.1);opacity:1}#navbar .nav>li.active>a{opacity:1}#navbar .nav>li.divider{display:block;width:2px;height:20px;margin:9px 15px;background-color:rgba(255,255,255,.4)}#toolbar{position:absolute;top:0;right:10px;padding:10px 0;font-size:12px;color:#fff}#extraNav{text-align:right}#extraNav>li{display:inline-block;float:none;text-align:left}#extraNav>li>a{display:block;padding:0;color:#fff;opacity:.75}#extraNav>li>a:hover{text-decoration:unset;background-color:rgba(0,0,0,.1);opacity:1}#extraNav>li.open>a{background-color:rgba(0,0,0,.1)}#extraNav>li+li{margin-left:10px}#userMenu{margin-top:5px}#searchbox{position:relative;float:left;width:150px}#searchbox .input-group-btn .btn{position:relative;padding:1px 4px 1px 8px;font-size:12px;line-height:20px;color:#fff;background-color:rgba(255,255,255,.15);border-right:none;border-radius:12px 0 0 12px}#searchbox .input-group-btn .btn:after{position:absolute;top:3px;right:-1px;bottom:3px;display:block;width:1px;content:' ';background-color:rgba(255,255,255,.15)}#searchbox .input-group-btn .btn:hover{background-color:rgba(255,255,255,.25)}#searchGo{position:absolute;top:0;right:-1px;z-index:10;min-width:24px;height:24px;padding:2px 3px;font-size:12px;line-height:20px;color:#fff;background-color:#52b3fd;border-radius:12px}#searchGo:hover{color:#fff!important;background-color:#006af1}#searchInput{height:24px;padding:2px 30px 2px 5px;color:#fff;text-align:left;background:rgba(255,255,255,.15);border-color:transparent;border-radius:0 12px 12px 0;-webkit-transition:background .2s,border .2s;-o-transition:background .2s,border .2s;transition:background .2s,border .2s}#searchInput:hover{background:rgba(255,255,255,.25)}#searchInput:focus{color:#333;background:#fff}#searchInput::-webkit-input-placeholder{font-size:12px;color:#6bcbff}#searchInput::-moz-placeholder{font-size:12px;color:#6bcbff}#searchInput:-ms-input-placeholder{font-size:12px;color:#6bcbff}#searchInput::placeholder{font-size:12px;color:#6bcbff}#searchTypeMenu{min-width:220px}#searchTypeMenu>li{float:left;width:50%}#searchTypeMenu>li>a{margin:4px 0}#userNav{float:right;margin:0 -6px 0 10px}#userNav .avatar{display:inline-block;vertical-align:middle}#userNav>li>a{padding:2px 6px;margin-left:3px;line-height:20px;color:#fff;opacity:.9}#userNav>li>a:hover{background-color:rgba(0,0,0,.1);opacity:1}#userNav>li>a span{display:inline-block;vertical-align:middle}#userNav>li.open>a{background-color:rgba(0,0,0,.1)}#userNav>li.has-new-items>a{position:relative}#userNav>li.has-new-items>a:before{position:absolute;top:3px;right:-1px;display:block;width:4px;height:4px;content:' ';background-color:#ff5d5d;border-radius:50%}#userNav .dropdown-menu{min-width:150px}#userNav .dropdown-menu>li>a>.icon{position:absolute;top:10px;right:5px;display:block;width:20px;height:20px;line-height:20px;text-align:center}#userNav .user-profile-item>a{position:relative;padding-left:45px}#userNav .user-profile-item .avatar{position:absolute;top:6px;left:5px}#userNav .user-profile-name{font-size:16px}#userNav .user-profile-role{font-size:12px;color:#a9abb8}#subHeader{min-height:54px;background:#fff}#pageNav{position:absolute;top:9px;left:0;left:10px}#subNavbar{margin-top:7px;font-size:16px;text-align:center}#subNavbar .nav{display:inline-block}#subNavbar .nav>li>a{padding:8px 10px;line-height:24px;color:#838a9d}#subNavbar .nav>li>a:hover{color:#838a9d;background-color:rgba(0,0,0,.05)}#subNavbar .nav>li.active>a{color:#006af1}#subNavbar .nav>li.divider{display:block;width:2px;height:20px;margin:9px 5px;background-color:rgba(0,0,0,.05)}#pageActions{position:absolute;top:11px;right:10px}@media (max-width:1200px){#navbar{margin-top:45px}#heading{top:8px}#extraNav{float:right;margin:5px 0 0 15px}#userMenu{float:left;margin:0}}@media (max-width:750px){#extraNav{display:none}}@media (max-width:650px){#heading>h1{font-size:18px}#searchbox{display:none}#navbar .nav>li>a{padding:5px 6px;font-size:15px}#navbar .nav>li.divider{height:16px}}@media (max-width:500px){#navbar{padding-top:5px;margin-top:75px;background-color:rgba(0,0,0,.1)}#toolbar{top:35px;right:auto;left:-10px}#navbar .nav>li.divider{width:100%;height:1px;margin:0;background:0 0}}#main{padding:20px 0}#mainMenu{margin:-8px 0 10px}.main-content{padding:20px;background-color:#fff;border-radius:4px}@media (min-width:1100px){.main-content>.center-block{max-width:1002px;padding:20px;border:1px solid #eee}.main-content>.center-block .main-header{background-color:#f1f1f1}}.main-content>h2{margin:0 0 20px}.main-header{padding:12px 20px;border-bottom:1px solid #eee}.main-header:after,.main-header:before{display:table;content:" "}.main-header:after{clear:both}.main-header>h2{display:block;float:left;margin:0 10px 0 0;font-size:20px;line-height:34px}.main-content .main-header{margin:-20px -20px 10px}.main-row{display:table;width:100%;table-layout:fixed}.main-row>*{display:table-cell;vertical-align:top}@media (max-width:720px){.main-row{display:block}.main-row>*{display:block}.main-row .side-col{width:100%;padding:0}.main-row .main-col+.side-col,.main-row .side-col+.main-col{margin-top:10px}}.main-row.hide-side .side-col{display:none}.cell{padding:10px;background-color:#fff;border-radius:4px}.cell+.cell{margin-top:10px}.cell>.panel{margin:0;-webkit-box-shadow:none;box-shadow:none}.cell>.panel>.panel-heading{padding:5px 5px 10px}.cell>.panel>.panel-heading .panel-actions{padding:0}.cell>.panel>.panel-body{padding:5px}.cell>.table{margin:0}@media (min-width:720px){.main-form{padding-right:40px}}#mainActions{position:fixed;top:0;right:0;bottom:0;left:0;text-align:center;pointer-events:none}#mainActions .btn-toolbar{position:relative;top:-82px;display:inline-block;padding:4px 15px;color:#fff;pointer-events:auto;background-color:rgba(0,0,0,.7);border-radius:4px}#mainActions .btn-toolbar .divider{margin-right:15px;margin-left:15px;border-color:rgba(255,255,255,.1)}#mainActions .btn-toolbar .btn{padding-right:10px;padding-left:10px;margin-right:0;color:#fff;background-color:transparent;border:none}#mainActions .btn-toolbar .btn+.btn{margin-left:10px}#mainActions .btn-toolbar .btn:focus,#mainActions .btn-toolbar .btn:hover{background-color:rgba(255,255,255,.2)}#mainActions .btn-toolbar .btn.btn-icon{min-width:32px;padding-right:0;padding-left:0}#mainActions .dropdown-menu{text-align:left}#mainActions>.container{height:100%}#nextPage,#prevPage{position:absolute;top:50%;left:-10px;width:40px;height:60px;padding:10px 0;margin-top:-30px;line-height:40px;text-align:center;pointer-events:auto;-webkit-box-shadow:0 2px 15px 2px rgba(0,0,0,.05);box-shadow:0 2px 15px 2px rgba(0,0,0,.05)}#nextPage:hover,#prevPage:hover{-webkit-box-shadow:0 2px 15px 2px rgba(0,0,0,.15);box-shadow:0 2px 15px 2px rgba(0,0,0,.15)}#nextPage>.icon,#prevPage>.icon{display:block;font-size:36px;line-height:36px}#nextPage{right:-10px;left:auto}#sidebarHeader{position:relative;float:left;width:180px;height:34px;padding-left:16px;margin-right:20px;background:#fff}#sidebarHeader:after{position:absolute;top:-1px;right:-8px;display:block;width:0;height:0;content:' ';border-color:transparent transparent transparent #fff;border-style:solid;border-width:18px 0 18px 8px}#sidebarHeader .title{padding:0 5px;overflow:hidden;font-size:16px;line-height:34px;color:#006af1;text-align:center;text-overflow:ellipsis;white-space:nowrap}#sidebarHeader .sidebar-toggle{position:absolute;top:0;left:0;width:18px;min-width:18px;height:100%;border-radius:0}#sidebarHeader .sidebar-toggle .icon{font-size:14px}#sidebar{-webkit-transition:width .2s,padding .2s;-o-transition:width .2s,padding .2s;transition:width .2s,padding .2s}.hide-sidebar #sidebar{width:0;padding:0}#sidebar.showing>.cell,.hide-sidebar #sidebar>.cell{display:none}#queryBox{max-height:0;padding:0;overflow:hidden;-webkit-transition:cubic-bezier(.175,.885,.32,1) .2s;-o-transition:cubic-bezier(.175,.885,.32,1) .2s;transition:cubic-bezier(.175,.885,.32,1) .2s;-webkit-transition-property:padding,max-height,margin;-o-transition-property:padding,max-height,margin;transition-property:padding,max-height,margin}#queryBox>form{visibility:hidden;-webkit-transition:visibility .2s .2s;-o-transition:visibility .2s .2s;transition:visibility .2s .2s}#queryBox.loading{height:50px}#queryBox.show{max-height:300px;margin-bottom:10px;overflow:visible}#queryBox.show>form{visibility:visible}#main .querybox-toggle.querybox-opened{position:relative;color:#006af1}#main .querybox-toggle.querybox-opened:before{position:absolute;bottom:-14px;left:50%;width:0;height:0;content:' ';border-color:transparent transparent #fff transparent;border-style:solid;border-width:0 10px 10px 10px}#contentNav{padding:5px;background:#fff;border-bottom:1px solid #eee}#contentNav .nav>li>a{position:relative;padding:6px 10px;color:#838a9d}#contentNav .nav>li.active>a{font-weight:700;color:#006af1}#contentNav .nav>li.active>a:before{position:absolute;right:10px;bottom:3px;left:10px;display:block;height:2px;content:' ';background:#006af1}.body-modal #main{padding:0}.body-modal .main-header{padding:16px 48px 16px 0;margin:-20px -10px 10px}.body-modal .main-header>h2{font-size:18px;font-weight:400}.text-middle td,.text-middle th{vertical-align:middle}.text-center td,.text-center th{text-align:center}.c-sm{width:40px}.c-id{width:90px}.c-id-sm{width:70px}.c-date{width:100px}.c-num,.c-type{width:80px}.c-pri{width:60px}.c-begin,.c-end,.c-time{width:65px}.c-hours{width:60px}.c-actions{width:130px}.c-actions-2{width:90px}.c-actions-3{width:156px}.c-actions-4{width:190px}.c-product,.c-project{width:180px}.c-plan{width:130px}.c-datetime{width:120px}.c-stage,.c-status,.c-user{width:80px}.c-side{width:200px;border-right:10px solid #f6f6f6}.c-assign{width:130px}.c-url{overflow:hidden;text-overflow:ellipsis}.c-progress{width:155px}.table-lg th.c-actions{width:135px}.table-lg th.c-actions-2{width:95px}.table-lg th.c-actions-3{width:175px}.table-lg th.c-actions-4{width:215px}.table-lg th.c-stage,.table-lg th.c-status,.table-lg th.c-user{width:100px}td.c-begin,td.c-date,td.c-datetime,td.c-end,td.c-hours,td.c-num,td.c-plan,td.c-pri,td.c-stage,td.c-time,td.c-type,td.c-user{color:#a6aab8}td.c-name,td.c-title{overflow:hidden;text-align:left!important;text-overflow:ellipsis;white-space:nowrap}td.c-actions{position:relative;padding-top:0;padding-bottom:0;vertical-align:middle}td.c-actions .btn{min-width:30px;padding:4px;color:#00a9fc;background-color:#e9f2fb;border-color:transparent}td.c-actions .btn .icon{font-size:18px}td.c-actions .btn:hover{color:#006af1;background-color:#d3e5f7}td.c-actions .btn-link{color:#838a9d;background:0 0}td.c-actions .btn-link:hover{color:#006af1;background:#e9f2fb}td.c-actions .more{position:absolute;right:100%;display:none;padding-left:20px;margin-right:-5px;white-space:nowrap;background-color:#fafafa}tr:hover td.c-actions .more{display:block}tr[data-url]{cursor:pointer}.table tbody>tr>td,.table thead>tr>th{vertical-align:middle}.table tbody>tr>td.has-btn,.table thead>tr>th.has-btn{padding-top:1px;padding-bottom:1px;overflow:visible}.table tbody>tr>td .progress,.table thead>tr>th .progress{height:6px}.table .em,.table em{color:#3c4353}.table .divider{border-bottom:10px solid #f6f6f6}.table .divider-top{border-top:10px solid #f6f6f6}.table .btn-icon-left{border-color:#eaf3fc}.table a{vertical-align:middle}.main-table{border-radius:4px}.main-table table{font-size:13px;table-layout:fixed;background-color:#fff}.main-table table.table-lg{font-size:14px}.main-table tbody>tr>td,.main-table thead>tr>th{padding:5px 8px;line-height:30px}.main-table tbody>tr>td:first-child,.main-table thead>tr>th:first-child{padding-left:15px}.main-table thead>tr>th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:2px solid #ecf0f4}.main-table tbody>tr>td{position:relative;border-bottom:none}.main-table tbody>tr>td.c-actions{padding-right:15px}.main-table tbody>tr>td.c-side+td:before,.main-table tbody>tr>td:first-child:before{position:absolute;top:0;bottom:0;left:0;display:block;width:0;content:'';background:#006af1;opacity:0;-webkit-transition:.2s linear;-o-transition:.2s linear;transition:.2s linear;-webkit-transition-property:width,opacity,border-radius;-o-transition-property:width,opacity,border-radius;transition-property:width,opacity,border-radius}.main-table tbody>tr>td.c-side:before{display:none}.main-table tbody>tr{-webkit-transition:.2s cubic-bezier(.175,.885,.32,1);-o-transition:.2s cubic-bezier(.175,.885,.32,1);transition:.2s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:background-color,-webkit-box-shadow;-o-transition-property:box-shadow,background-color;transition-property:background-color,-webkit-box-shadow;transition-property:box-shadow,background-color;transition-property:box-shadow,background-color,-webkit-box-shadow}.main-table tbody>tr:hover{background:#fafafa;-webkit-box-shadow:0 0 4px rgba(0,0,0,.15);box-shadow:0 0 4px rgba(0,0,0,.15)}.main-table .table-grouped tbody>tr:hover{background:#f2f7fd;-webkit-box-shadow:none;box-shadow:none}.main-table .table-grouped tbody>tr:hover td.c-actions .more{background:#f2f7fd}.main-table tbody>tr.checked{-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05)}.main-table tbody>tr.checked>td.c-side+td:before,.main-table tbody>tr.checked>td:first-child:before{width:4px;opacity:1}.main-table tbody>tr.checked.row-check-begin{border-top-left-radius:4px;border-top-right-radius:2px;-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05)}.main-table tbody>tr.checked.row-check-begin>td:first-child:before{border-top-left-radius:4px}.main-table tbody>tr.checked.row-check-end{border-bottom-right-radius:2px;border-bottom-left-radius:4px;-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05)}.main-table tbody>tr.checked.row-check-end>td:first-child:before{border-bottom-left-radius:4px}.main-table tbody>tr.checked.row-check-end.row-check-begin{-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05)}.main-table .checkbox-primary{display:inline-block;line-height:20px}.main-table .checkbox-primary label{margin:0}.main-table .table{margin:0}.main-table a:focus{text-decoration:underline}.table-header{padding:4px 0 12px}.table-header .table-statistic{color:#c2c6d3}.table-header .table-statistic strong{font-size:15px;color:#3c4353}.table-header .btn-toolbar{margin-top:-28px}.table-footer{padding:6px 15px;color:#fff;background:rgba(0,0,0,.7)}.talbe-lg+.table-footer{padding:11px 15px}.table-footer .btn-toolbar,.table-footer .checkbox-primary{float:left}.table-footer .checkbox-primary{margin:5px 20px 0 0}.table-footer .checkbox-primary label{color:#fff}.table-footer .checkbox-primary label:after{border-color:rgba(255,255,255,.8)}.table-footer .checkbox-primary.checked label:after{border-color:#00da88}.table-footer .btn{padding:3px 10px;border-radius:2px}.table-footer .pager{float:right;margin:0}.table-footer .pager>li>.pager-item{color:#fff}.table-footer .pager>li.pager-item-left>.pager-item,.table-footer .pager>li.pager-item-right>.pager-item{color:#595959;background:#fff}.table-footer .pager>li.pager-item-left.disabled>.pager-item,.table-footer .pager>li.pager-item-right.disabled>.pager-item{color:#bbb;background:#eee}.table-footer .form-control{height:28px;padding:3px 8px}.table-footer .input-control-icon-right{top:0;height:28px;line-height:28px}.table-footer.fixed-footer{position:fixed;z-index:10}.table-footer .table-statistic{float:left;margin-left:20px;line-height:28px}.table-footer .search-list .input-control-icon-left{top:-1px}.table-actions{width:0;height:28px;visibility:hidden;opacity:0;-webkit-transition:opacity cubic-bezier(.175,.885,.32,1) .8s;-o-transition:opacity cubic-bezier(.175,.885,.32,1) .8s;transition:opacity cubic-bezier(.175,.885,.32,1) .8s}.has-row-checked .table-actions{width:auto;visibility:visible;opacity:1}.table-lg tbody>tr>td{padding:9px 10px}.table-lg tbody>tr>td .btn+.btn{margin-left:5px}.table.has-sort-head thead>tr>th>a{position:relative;display:inline-block;padding-right:16px;color:#a6aab8}.table.has-sort-head thead>tr>th>a:after,.table.has-sort-head thead>tr>th>a:before{position:absolute;top:0;right:0;font-family:ZentaoIcon;font-size:18px;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;line-height:30px;color:#a6aab8;text-transform:none;content:"\f0de";opacity:.5;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.table.has-sort-head thead>tr>th>a:after{content:"\f0dd"}.table.has-sort-head thead>tr>th>a.sort-down,.table.has-sort-head thead>tr>th>a.sort-up,.table.has-sort-head thead>tr>th>a:hover{color:#006af1;text-decoration:none}.table.has-sort-head thead>tr>th>a.sort-down:after,.table.has-sort-head thead>tr>th>a.sort-up:before,.table.has-sort-head thead>tr>th>a:hover:after,.table.has-sort-head thead>tr>th>a:hover:before{color:#006af1;opacity:1}.table.fixed-header-copy{z-index:10;color:#fff;background:rgba(0,0,0,.7)}.table.fixed-header-copy thead>tr>th>a{color:#cbd0db}.table.fixed-header-copy thead>tr>th>a:hover{color:#fff}.table.fixed-header-copy thead>tr>th>a.sort-down,.table.fixed-header-copy thead>tr>th>a.sort-down:after,.table.fixed-header-copy thead>tr>th>a.sort-up,.table.fixed-header-copy thead>tr>th>a.sort-up:before,.table.fixed-header-copy thead>tr>th>a:hover,.table.fixed-header-copy thead>tr>th>a:hover:after,.table.fixed-header-copy thead>tr>th>a:hover:before{color:#e9f2fb}.table-data{margin:0}.table-data tbody>tr>td,.table-data tbody>tr>th{padding:6px 8px;border:none}.table-data tbody>tr>th{width:70px;padding-left:0;font-weight:400;color:#838a9d;text-align:right}.table-data tbody>tr>td{padding-right:0}.table-fixed-head{background:#fff}.table-empty-tip{padding:80px 10px;text-align:center;background:#fff}.table-grouped .group-toggle{cursor:pointer}.group-expand-all,.table-group-collapsed .group-collapse-all{display:none}.table-group-collapsed .group-expand-all{display:inline-block}.block-welcome .col-left{width:25%}.block-welcome .col-left>h4{margin:5px 0;line-height:30px}.block-welcome .col-left .timeline{margin:10px 0 0;font-size:12px}.block-welcome .col-right{width:75%}.block-welcome .col-right>h4{font-weight:400}.block-welcome .col-right>h4 small{display:inline-block;margin-right:8px;font-size:14px}.block-welcome .col-right .tiles{padding:10px 0 0 16px;border-left:1px solid #e5e8ec}.block-welcome .col-right .tile{width:20%}.block-welcome .panel-body{padding-top:15px}.block-welcome .user-notification-icon{position:relative;display:inline-block;margin-left:5px}.block-welcome .user-notification-icon .label-badge{position:absolute;top:1px;right:-8px;min-width:16px;padding:2px;font-size:12px;font-weight:400}.block-dynamic .timeline{margin:0}.block-flowchart{padding:10px}.block-flowchart .table{margin-bottom:0}.block-flowchart .table>tbody>tr>td,.block-flowchart .table>tbody>tr>th,.block-flowchart .table>thead>tr>th{padding:10px;font-weight:400;text-align:center}.block-flowchart .table>tbody>tr>td:first-child,.block-flowchart .table>tbody>tr>th:first-child,.block-flowchart .table>thead>tr>th:first-child{text-align:left}.block-flowchart .table>thead>tr>th{width:18%;vertical-align:top}.block-flowchart .table>thead>tr>th:first-child{width:auto;padding:10px 10px 15px 10px;background:0 0}.block-flowchart .table>thead>tr>th:first-child+th>div{background:0 0}.block-flowchart .table>thead>tr>th,.block-flowchart .table>thead>tr>th>div{padding:0;background:url(data:image/gif;base64,R0lGODlhLQAPAJEAAAAAAP///+7u7v///yH5BAEAAAMALAAAAAAtAA8AAAJPlIY5psn92jrSUGVrRFlfvHHh9JGS6aVQ2K2l+LYOO6KuCpby/No8DjvtgrfiD+gj5ozLpvMIfSanu2FyiKX1qqOsrsaNdbXCcfm8Ok1OBQA7) no-repeat;background-position:right -22px top 15px}.block-flowchart .table>thead>tr>th>div{padding:10px 10px 15px 10px;background-position:left -23px top 15px}.block-flowchart .table>thead>tr>th:last-child{background:0 0}.block-flowchart .table>tbody>tr>td{color:#838a9d}.block-flowchart .table>tbody>tr:nth-child(even)>td{background:#f7f8f9}.block-flowchart .flowchart-title{font-size:16px;font-weight:700;color:#3c4353}.block-flowchart .flowchart-step{display:inline-block;width:24px;height:24px;font-size:16px;line-height:24px;color:#fff;background-color:#00a9fc;border-radius:50%}.block-projects .c-deadline{width:100px;color:#a6aab8;text-align:center}.block-projects .c-status{width:90px}.block-projects .c-estimate{width:60px;text-align:right}.block-projects .c-consumed{width:60px;text-align:right}.block-projects .c-left{width:60px;text-align:right}.block-projects .c-progress{width:155px}.block-projects .c-spark{width:120px}.block-projects td.c-spark{padding:0}.block-stories .c-id{width:55px;color:#a6aab8}.block-stories .c-pri{width:45px;text-align:center}.block-stories .c-estimate{width:55px;color:#a6aab8}.block-stories .c-status{width:80px}.block-stories .c-stage{width:80px;color:#a6aab8}.block-stories.block-sm .c-stage,.block-stories.block-sm .c-status .status-text,.block-stories.block-sm .estimate{display:none}.block-stories.block-sm .c-status{text-align:center}.block-tasks .c-id{width:55px;color:#a6aab8}.block-tasks .c-pri{width:45px;text-align:center}.block-tasks .c-estimate{width:55px;color:#a6aab8}.block-tasks .c-deadline{width:95px;color:#a6aab8}.block-tasks .c-status{width:80px}.block-tasks.block-sm .c-deadline,.block-tasks.block-sm .c-status .status-text,.block-tasks.block-sm .estimate{display:none}.block-tasks.block-sm .c-status{text-align:center}.block-bugs .c-id{width:55px;color:#a6aab8}.block-bugs .c-level{width:50px;text-align:center}.block-bugs .c-pri{width:35px;text-align:center}.block-bugs .c-deadline{width:95px;color:#a6aab8}.block-bugs .c-status{width:80px}.block-bugs.block-sm .c-pri,.block-bugs.block-sm .c-status .status-text{display:none}.block-bugs.block-sm .c-status{text-align:center}.block-todoes .panel-body{position:relative;padding-top:42px}.block-todoes .todoes-input{position:absolute;top:-20px;right:0;left:0;padding:20px}.block-todoes .todoes-input .form-control::-webkit-input-placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes-input .form-control::-moz-placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes-input .form-control:-ms-input-placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes-input .form-control::placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes{padding-left:0;margin:0 -10px}.block-todoes .todoes>li{position:relative;padding:5px 10px 5px 35px;list-style:none}.block-todoes .todoes>li:hover{background-color:#e9f2fb}.block-todoes .todo-title{display:block;padding:5px}.block-todoes .todo-pri{display:inline-block;padding:0 5px;font-size:12px;color:#838a9d}.block-todoes .todo-time{display:inline-block;padding:0 5px;font-size:12px;color:#a6aab8}.block-todoes .todo-check{position:absolute;top:10px;left:10px;display:block;width:20px;height:20px;font-size:20px;color:transparent;cursor:pointer;background:#fff;border:2px solid #eee;border-radius:50%}.block-todoes .todo-check:hover{border-color:#a6aab8}.block-todoes .active>.todo-check{color:#00da88;background:0 0;border:none}.block-todoes .todoes-form{position:absolute;top:-51px;right:0;left:0;z-index:15;padding:20px;visibility:hidden;background:#fff;-webkit-box-shadow:0 0 20px 0 #bdc9d8;box-shadow:0 0 20px 0 #bdc9d8;opacity:0;-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:opacity,visibility;-o-transition-property:opacity,visibility;transition-property:opacity,visibility}.block-todoes .todoes-form .form-group>label{padding-left:0}.block-todoes .todoes-form .form-group>label.text-center{text-align:center!important}.block-todoes .todoes-form>.form-group:last-child{margin-bottom:0}.block-todoes .todoes-form>h3{padding:0 20px 15px;margin:0 -20px 15px;font-size:16px;line-height:20px;border-bottom:1px solid #eee}.block-todoes.show-form .todoes-form{visibility:visible;opacity:1}.block-products .c-plans{width:70px;color:#a6aab8;text-align:center}.block-products .c-publishs{width:70px;color:#a6aab8;text-align:center}.block-products .c-stories{width:80px;color:#a6aab8;text-align:center}.block-products .c-bugs{width:90px;color:#a6aab8;text-align:center}.block-products.block-sm .c-project{display:none}.article-content{color:#838a9d}.article-content img{margin-top:0}.detail{padding:20px 0;margin:0 10px}.detail+.detail{padding-top:25px;border-top:1px solid #eee}.detail-title{font-size:16px;line-height:20px}.detail-title>.pull-right{position:relative;top:-8px}h2.detail-title{margin:0;font-size:24px;font-weight:400}h2.detail-title .label,h2.detail-title .label-id{position:relative;top:-3px}.detail-content{padding:5px 0 0 20px;margin-top:10px;color:#838a9d}.detail-content em{font-style:normal;color:#3c4353}.detail-content .list-unstyled>li+li{margin-top:5px}.side-col .detail-content{padding-left:0}details.detail{padding:10px 0}details.detail summary{position:relative;cursor:pointer;outline:0}details.detail summary::-webkit-details-marker{display:none}details.detail summary:after{position:absolute;top:0;right:0;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-transform:none;content:"\e316";opacity:.4;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}details.detail[open] summary:after{content:"\e313"}.files-list{padding-left:0;list-style:none}.files-list>li>a{display:block;line-height:24px;color:#838a9d}.files-list>li>a>.icon{display:inline-block;margin-right:5px;opacity:.7}.files-list>li>a:hover{color:#006af1}.histories-list{margin-bottom:0}.histories-list .btn-mini{position:relative;top:1px}.histories-list>li{position:relative}.histories-list>li+li{margin-top:10px}.histories-list>li strong{color:#3c4353}.histories-list .comment,.histories-list .show-form .comment-edit-form{padding:5px 5px 5px 10px;margin:5px 0 0;background-color:rgba(0,0,0,.025);border:1px solid #eee}.histories-list .btn-edit-comment{position:absolute;top:28px;right:2px}.histories-list .comment-edit-form,.histories-list .show-form .btn-edit-comment,.histories-list .show-form .comment{display:none}.histories-list .show-form .comment-edit-form{display:block;padding:10px;border:1px solid #eee}.histories .btn-mini{width:16px;min-width:16px;height:16px;overflow:hidden;line-height:16px;color:#cbd0db;vertical-align:-8%;border-radius:1px}.histories .btn-mini>.icon{position:relative;top:-2px;left:-2px}.histories .btn-mini:focus,.histories .btn-mini:hover{color:#006af1;border-color:#006af1}.histories .show-changes .btn-expand>.icon:before{content:"\e926"}.histories .btn-strip{display:none}.histories .show-changes .btn-strip{display:inline-block}.history-changes{display:none;padding:5px;margin-bottom:-5px;margin-left:5px;font-size:12px;line-height:20px;opacity:.65}.history-changes blockquote{padding:5px 5px 5px 10px;margin:5px 0 0;font-size:12px;background-color:rgba(0,0,0,.05);border-left:3px solid #eee}.history-changes blockquote.original{display:none}.show-changes .history-changes,.show-original .history-changes blockquote.original{display:block}.show-original .history-changes blockquote.textdiff{display:none}.search-list{min-width:200px;max-width:300px;min-height:55px;padding:0}.search-list .search-box{float:none;width:auto;margin:10px 10px 5px}.search-list .search-box .icon-search{opacity:.5}.dropup .search-list .list-group{height:214px}.search-list .list-group{max-height:248px;padding:0 10px 5px 10px;margin:5px 0}.list-group{overflow-y:auto}.list-group>a{display:block;padding:2px 10px 2px 5px;overflow:hidden;line-height:20px;text-overflow:ellipsis;white-space:nowrap;border-radius:4px}.list-group>a+a{margin-top:5px}.list-group>a>.icon{display:inline-block;margin-right:3px;opacity:.5}.list-group>a.selected{color:#e9f2fb;background-color:#006af1}.list-group>a.active{color:#006af1;background-color:#e9f2fb}.list-group>a.active:hover,.list-group>a:hover{color:#fff;background-color:#006af1}.release-path{overflow:hidden}.release-line{display:table;width:100%;padding:0;table-layout:fixed}.release-line>li{display:table-cell;list-style:none}.release-line>li>a{position:relative;display:block}.release-line>li>a:before{position:absolute;left:0;display:block;width:13px;height:13px;content:' ';background:#fff;border:2px solid #838a9d;border-radius:50%}.release-line>li>a:after{position:absolute;left:5px;display:block;width:2px;height:30px;content:' ';background:#e9f2fb}.release-line>li>a>.icon{position:absolute;left:4px;font-size:24px}.release-line>li>a .title{display:block;color:#838a9d;white-space:nowrap}.release-line>li>a .date,.release-line>li>a .info{display:block;font-size:12px;color:#cbd0db}.release-line>li>a:hover:before{background-color:#e9f2fb}.release-line>li>a:hover:after{background-color:#a6aab8}.release-line>li>a:hover .title{color:#006af1}.release-line>li>a:hover .date,.release-line>li>a:hover .info{display:block;font-size:12px;color:#a6aab8}.release-line>li:nth-child(odd){padding-top:90px;vertical-align:top}.release-line>li:nth-child(odd)>a{padding-top:36px;border-top:5px solid #e9f2fb}.release-line>li:nth-child(odd)>a:before{top:-9px}.release-line>li:nth-child(odd)>a:after{top:6px}.release-line>li:nth-child(odd)>a>.icon{top:-26px}.release-line>li:nth-child(even){padding-bottom:90px;vertical-align:bottom}.release-line>li:nth-child(even)>a{padding-bottom:36px;border-bottom:5px solid #e9f2fb}.release-line>li:nth-child(even)>a:before{bottom:-9px}.release-line>li:nth-child(even)>a:after{bottom:6px}.release-line>li:nth-child(even)>a>.icon{bottom:-2px}.release-line>li:last-child>a{border-color:transparent}.release-line>li.active>a:before{border-color:#006af1}.release-line>li+li>a>.date,.release-line>li+li>a>.info,.release-line>li+li>a>.title{position:relative;left:-36%}#footer{position:fixed;right:0;bottom:0;left:0;z-index:1010;height:32px;background:#fff;border-top:1px solid #eff1f7}#footer .breadcrumb{padding:5px 0;margin:0}#footer .breadcrumb>.active,#footer .breadcrumb>li>a{color:#cbd0db}#footer .breadcrumb>li+li:before{content:'>'}#poweredBy{position:absolute;top:0;right:0;padding:5px 10px}#poweredBy .icon-zentao{color:#0097fd}#poweredBy a{color:#3c4353}#poweredBy a+a{margin-left:15px}#poweredBy a:hover{color:#006af1}#poweredBy a:hover .icon-zentao{color:#006af1}#poweredBy #aiux{color:#cbd0dc} \ No newline at end of file