diff --git a/module/bug/js/browse.js b/module/bug/js/browse.js index 49f06f9bba..9e704131eb 100644 --- a/module/bug/js/browse.js +++ b/module/bug/js/browse.js @@ -3,24 +3,6 @@ $(document).ready(function() if(browseType == 'bysearch') ajaxGetSearchForm(); if($('#bugList thead th.w-title').width() < 150) $('#bugList thead th.w-title').width(150); - $('.dropdown-menu .with-search .menu-search').click(function(e) - { - e.stopPropagation(); - return false; - }).on('keyup change paste', 'input', function() - { - var val = $(this).val().toLowerCase(); - var $options = $(this).closest('.dropdown-menu.with-search').find('.option'); - if(val == '') return $options.removeClass('hide'); - $options.each(function() - { - var $option = $(this); - $option.toggleClass('hide', $option.text().toString().toLowerCase().indexOf(val) < 0 && $option.data('key').toString().toLowerCase().indexOf(val) < 0); - }); - }); - setTimeout(function(){fixedTfootAction('#bugForm')}, 100); - setTimeout(function(){fixedTheadOfList('#bugList')}, 100); - if(flow == 'onlyTest') { $('#modulemenu > .nav').append($('#featurebar > .submenu').html()); diff --git a/module/build/js/view.js b/module/build/js/view.js index 5f8a510b82..a05c919eb0 100644 --- a/module/build/js/view.js +++ b/module/build/js/view.js @@ -8,7 +8,6 @@ function showLink(buildID, type, param) $('#' + type + 'List').closest('form').hide(); var formID = type == 'story' ? '#unlinkedStoriesForm' : '#unlinkedBugsForm'; - setTimeout(function(){fixedTfootAction(formID)}, 100); $('[data-ride="table"]').table(); }); @@ -18,7 +17,6 @@ $(function() if(flow != 'onlyTest') { if(link == 'true') showLink(buildID, type, param); - fixedTfootAction($('#' + type + 'List').closest('form')); $('.nav.nav-tabs a[data-toggle="tab"]').on('shown.zui.tab', function(e) { var href = $(e.target).attr('href'); @@ -26,7 +24,6 @@ $(function() if(tabPane.size() == 0) return; var formID = tabPane.find('.linkBox').find('form:last'); if(formID.size() == 0) formID = tabPane.find('form:last'); - setTimeout(function(){fixedTfootAction(formID)}, 100); }); } }) diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 6dcdecda03..f31f2a75aa 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -252,12 +252,7 @@ $lang->project->dividerMenu = ',story,doc,'; $lang->task = new stdclass(); $lang->build = new stdclass(); $lang->task->menu = $lang->project->menu; -$lang->task->subMenu = $lang->project->subMenu; $lang->build->menu = $lang->project->menu; -$lang->build->subMenu = $lang->project->subMenu; - -$lang->task->dividerMenu = $lang->project->dividerMenu; -$lang->build->dividerMenu = $lang->project->dividerMenu; /* QA视图菜单设置。*/ $lang->qa = new stdclass(); @@ -310,9 +305,9 @@ $lang->caselib->menu->caselib = array('link' => '用例库|testsuite|library', $lang->doc = new stdclass(); $lang->doc->menu = new stdclass(); -$lang->doc->menu->list = array('link' => '%s', 'fixed' => true); -$lang->doc->menu->crumb = array('link' => '%s', 'fixed' => true); -$lang->doc->menu->create = array('link' => ' 添加文档库|doc|createLib', 'float' => 'right'); +//$lang->doc->menu->list = array('link' => '%s', 'fixed' => true); +//$lang->doc->menu->crumb = array('link' => '%s', 'fixed' => true); +//$lang->doc->menu->create = array('link' => ' 添加文档库|doc|createLib', 'float' => 'right'); /* 统计视图菜单设置。*/ $lang->report = new stdclass(); diff --git a/module/common/view/customfield.html.php b/module/common/view/customfield.html.php index 8c2010df40..8623f099cf 100644 --- a/module/common/view/customfield.html.php +++ b/module/common/view/customfield.html.php @@ -10,8 +10,13 @@ * @link http://www.zentao.net */ ?> + - - diff --git a/module/company/js/browse.js b/module/company/js/browse.js index 8b2bc52ed0..e69de29bb2 100644 --- a/module/company/js/browse.js +++ b/module/company/js/browse.js @@ -1,5 +0,0 @@ -$(function() -{ - setTimeout(function(){fixedTfootAction('#userListForm')}, '100'); - setTimeout(function(){fixedTheadOfList('#userList')}, '100'); -}) diff --git a/module/doc/control.php b/module/doc/control.php index 3a577564e6..1b0874c19a 100644 --- a/module/doc/control.php +++ b/module/doc/control.php @@ -37,20 +37,29 @@ class doc extends control */ public function index() { - $this->doc->setMenu(); + $products = $this->doc->getLimitLibs('product'); + $projects = $this->doc->getLimitLibs('project'); + $customLibs = $this->doc->getLimitLibs('custom'); - $products = $this->doc->getLimitLibs('product', '9'); - $projects = $this->doc->getLimitLibs('project', '9'); - $customLibs = $this->doc->getLimitLibs('custom', '9'); $subLibs['product'] = $this->doc->getSubLibGroups('product', array_keys($products)); $subLibs['project'] = $this->doc->getSubLibGroups('project', array_keys($projects)); - $this->view->title = $this->lang->doc->common . $this->lang->colon . $this->lang->doc->index; - $this->view->position[] = $this->lang->doc->index; - $this->view->products = $products; - $this->view->projects = $projects; - $this->view->customLibs = $customLibs; - $this->view->subLibs = $subLibs; + $this->app->loadClass('pager', $static = true); + $pager = new pager(6, 6, 1); + + $this->view->title = $this->lang->doc->common . $this->lang->colon . $this->lang->doc->index; + $this->view->position[] = $this->lang->doc->index; + $this->view->products = $products; + $this->view->projects = $projects; + $this->view->customLibs = $customLibs; + $this->view->subLibs = $subLibs; + $this->view->modules = $this->loadModel('tree')->getDocStructure(); + $this->view->latestEditedDocs = $this->loadModel('doc')->getDocsByBrowseType(0, 'byediteddate', 0, 0, 'editedDate_desc, id_desc', $pager); + $this->view->myDocs = $this->loadModel('doc')->getDocsByBrowseType(0, 'openedbyme', 0, 0, 'addedDate_desc', $pager); + $this->view->statisticInfo = $this->doc->getStatisticInfo(); + $this->view->users = $this->loadModel('user')->getPairs('noletter'); + $this->view->doingProjects = $this->loadModel('project')->getList('isdoing', 5); + $this->display(); } @@ -126,7 +135,7 @@ class doc extends control $pager = new pager($recTotal, $recPerPage, $pageID); /* Append id for secend sort. */ - if($browseType == 'bymenu' and strtolower($orderBy) != 'editeddate_desc' and strtolower($orderBy) != 'addeddate_desc') $orderBy = 'title_asc'; + if($browseType == 'bymenu' and strpos('editeddate_desc,addeddate_desc,visiteddate_desc', strtolower($orderBy)) === false) $orderBy = 'title_asc'; $sort = $this->loadModel('common')->appendOrder($orderBy); /* Get docs by browse type. */ @@ -414,6 +423,9 @@ class doc extends control /* Set menu. */ $this->doc->setMenu($doc->lib, $doc->module); + /* Update visitedDate and views for current doc.*/ + $this->doc->updateVisitData($docID); + $this->view->title = "DOC #$doc->id $doc->title - " . $lib->name; $this->view->position[] = html::a($this->createLink('doc', 'browse', "libID=$doc->lib"), $lib->name); $this->view->position[] = $this->lang->doc->view; diff --git a/module/doc/css/common.css b/module/doc/css/common.css index ca4cf041ec..2889f67bdf 100644 --- a/module/doc/css/common.css +++ b/module/doc/css/common.css @@ -39,7 +39,6 @@ .list-menu-item.active, .list-menu-item:hover {color: #1a53ff} .list-menu-item-footer {clear:left} -#searchLib {padding: 2px 8px; height: 28px; max-width: 190px;} #dropMenu[data-filter] #libMenuGroups {table-layout: auto;} #dropMenu[data-filter="project"] #libMenuProductGroup, diff --git a/module/doc/lang/zh-cn.php b/module/doc/lang/zh-cn.php index 7af011aef3..08cd519fd3 100644 --- a/module/doc/lang/zh-cn.php +++ b/module/doc/lang/zh-cn.php @@ -46,10 +46,16 @@ $lang->doc->users = '用户'; $lang->doc->moduleDoc = '按模块浏览'; $lang->doc->searchDoc = '搜索'; +$lang->doc->fast = '快速访问'; $lang->doc->allDoc = '所有文档'; $lang->doc->openedByMe = '由我创建'; $lang->doc->orderByOpen = '最近添加'; -$lang->doc->orderByEdit = '最近修改'; +$lang->doc->orderByEdit = '最近更新'; +$lang->doc->orderByVisit = '最近访问'; +$lang->doc->todayEdited = '今日更新'; +$lang->doc->pastEdited = '往日更新'; +$lang->doc->myDoc = '我的文档'; +$lang->doc->myCollection = '我的收藏'; /* 方法列表。*/ $lang->doc->index = '首页'; @@ -113,6 +119,16 @@ $lang->doc->browseTypeList['menu'] = '目录'; $lang->doc->browseTypeList['tree'] = '树状图'; $lang->doc->browseTypeList['card'] = '卡片'; +$lang->doc->fastMenuList['editeddate'] = '最近更新'; +$lang->doc->fastMenuList['visiteddate'] = '最近访问'; +$lang->doc->fastMenuList['openedbyme'] = '我的文档'; +$lang->doc->fastMenuList['collectedbyme'] = '我的收藏'; + +$lang->doc->fastMenuIconList['editeddate'] = 'icon-folder-upload'; +$lang->doc->fastMenuIconList['visiteddate'] = 'icon-folder-move'; +$lang->doc->fastMenuIconList['openedbyme'] = 'icon-folder-account'; +$lang->doc->fastMenuIconList['collectedbyme'] = 'icon-folder-star'; + $lang->doc->confirmDelete = "您确定删除该文档吗?"; $lang->doc->confirmDeleteLib = "您确定删除该文档库吗?"; $lang->doc->errorEditSystemDoc = "系统文档库无需修改。"; diff --git a/module/doc/model.php b/module/doc/model.php index 574f7ec20a..8029ca21bd 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -197,12 +197,65 @@ class docModel extends model { $docs = $this->dao->select('*')->from(TABLE_DOC) ->where('deleted')->eq(0) - ->andWhere('lib')->in($libID) + ->beginIF($libID)->andWhere('lib')->in($libID)->fi() ->andWhere('addedBy')->eq($this->app->user->account) ->orderBy($sort) ->page($pager) ->fetchAll(); } + elseif($browseType == 'byediteddate') + { + $docIdList = $this->getPrivDocs($libID, $moduleID); + $docs = $this->dao->select('*')->from(TABLE_DOC) + ->where('deleted')->eq(0) + ->andWhere('id')->in($docIdList) + ->orderBy($sort) + ->page($pager) + ->fetchAll('id'); + + $files = $this->dao->select('*')->from(TABLE_FILE) + ->where('objectType')->eq('doc') + ->andWhere('objectID')->in(array_keys($docs)) + ->fetchGroup('objectID'); + + foreach($docs as $doc) + { + $docs[$doc->id]->fileSize = 0; + if(isset($files[$doc->id])) + { + $fileSize = 0; + foreach($files[$doc->id] as $file) $fileSize += $file->size; + if($fileSize < 1024) + { + $fileSize .= 'B'; + } + elseif($fileSize < 1024 * 1024) + { + $fileSize = round($fileSize / 1024, 2) . 'KB'; + } + elseif($fileSize < 1024 * 1024 * 1024) + { + $fileSize = round($fileSize / 1024 / 1024, 2) . 'MB'; + } + else + { + $fileSize = round($fileSize / 1024 / 1024 /1024, 2) . 'G'; + } + + $docs[$doc->id]->fileSize = $fileSize; + } + } + } + elseif($browseType == "collectedbyme") + { + $docs = $this->dao->select('*')->from(TABLE_DOC) + ->where('deleted')->eq(0) + ->beginIF($libID)->andWhere('lib')->in($libID)->fi() + ->andWhere('collector')->like("%,{$this->app->user->account},%") + ->orderBy($sort) + ->page($pager) + ->fetchAll(); + } elseif($browseType == "bymodule") { $modules = 0; @@ -514,6 +567,19 @@ class docModel extends model } } + /** + * Update visit Data. + * + * @param int $docID + * @access public + * @return bool + */ + public function updateVisitData($docID) + { + $this->dao->update(TABLE_DOC)->set('views = views + 1')->set('visitedDate')->eq(helper::now())->where('id')->eq($docID)->exec(); + return !dao::isError(); + } + /** * Build search form. * @@ -798,7 +864,7 @@ class docModel extends model * @access public * @return array */ - public function getLimitLibs($type, $limit = 4) + public function getLimitLibs($type, $limit = 0) { if($type == 'project' and ($this->config->global->flow == 'onlyStory' or $this->config->global->flow == 'onlyTest')) return array(); if($type == 'product' and $this->config->global->flow == 'onlyTask') return array(); @@ -821,7 +887,7 @@ class docModel extends model $libs = array(); while($docLib = $stmt->fetch()) { - if($i > $limit) break; + if($limit && $i > $limit) break; $key = ($type == 'product' or $type == 'project') ? $type : 'id'; if($this->checkPriv($docLib) and !isset($libs[$docLib->$key])) { @@ -1173,4 +1239,32 @@ class docModel extends model return $teams; } + + /** + * Get statistic information. + * + * @access public + * @return object + */ + public function getStatisticInfo() + { + $docIdList = $this->getPrivDocs(); + + $today = date('Y-m-d'); + $lately = date('Y-m-d', strtotime('-3 day')); + $statisticInfo = $this->dao->select("count(id) as totalDocs, count(editedDate like '{$today}%' or null) as todayEditedDocs, + count(editedDate > '{$lately}' or null) as lastEditedDocs, count(visitedDate > '{$lately}' or null) as lastVisitedDocs, + count(collector like '%,{$this->app->user->account},%' or null) as myCollection, count(addedBy = '{$this->app->user->account}' or null) as myDocs")->from(TABLE_DOC) + ->where('deleted')->eq(0) + ->andWhere('id')->in($docIdList) + ->fetch(); + + $statisticInfo->pastEditedDocs = $statisticInfo->totalDocs - $statisticInfo->todayEditedDocs; + $statisticInfo->lastEditedProgress = $statisticInfo->totalDocs ? round($statisticInfo->lastEditedDocs / $statisticInfo->totalDocs, 2) * 100 : 0; + $statisticInfo->lastVisitedProgress = $statisticInfo->totalDocs ? round($statisticInfo->lastVisitedDocs / $statisticInfo->totalDocs, 2) * 100 : 0; + $statisticInfo->myCollectionProgress = $statisticInfo->totalDocs ? round($statisticInfo->myCollection / $statisticInfo->totalDocs, 2) * 100 : 0; + $statisticInfo->myDocsProgress = $statisticInfo->totalDocs ? round($statisticInfo->myDocs / $statisticInfo->totalDocs, 2) * 100 : 0; + + return $statisticInfo; + } } diff --git a/module/doc/view/index.html.php b/module/doc/view/index.html.php index d16ba749e7..b4424a03e0 100644 --- a/module/doc/view/index.html.php +++ b/module/doc/view/index.html.php @@ -11,148 +11,309 @@ */ ?> -
- - $libs):?> - - -
- - - 8 and $objectNum == 8):?> -
-
- more}{$lang->doc->libTypeList['product']}", '', "title='$lang->more' class='more'")?> +
+
+
+
+
'> +
+ +
+
+
+ createLink('doc', 'createLib'), "", '', "class='btn btn-secondary btn-icon iframe'");?>
- - - id])):?> -
- id]); - ?> -
+
+
    +
  • + doc->fast;?> +
      + doc->fastMenuList as $type => $menu):?> {$lang->doclib->product} " : ''; - echo html::a(inlink('objectLibs', "type=product&objectID=$product->id&from=doc"), $label . $product->name, '', "title='{$product->name}'"); - if($subLibCount > 3) echo html::a(inlink('objectLibs', "type=product&objectID=$product->id&from=doc"), "{$lang->more}", '', "title='{$lang->more}' class='pull-right'"); + if($type == 'editedDate' or $type == 'visitedDate') + { + $link = $this->createLink('doc', 'browse', "libID=0&browseTyp=bymenu&module=0&orderBy={$type}_desc"); + } + else + { + $link = $this->createLink('doc', 'browse', "libID=0&browseTyp={$type}"); + } ?> -
-
- = 3) $widthClass = 'w-lib-p33'; - ?> - id] as $libID => $libName):?> - id"); - elseif($libID == 'files') $libLink = inlink('showFiles', "type=product&objectID=$product->id"); - else $libLink = inlink('browse', "libID=$libID"); - ?> - - ' class='file-icon' /> -
-
- = 2) break;?> - - -
-
- - - +
  • doc->fastMenuIconList[$type]}'> {$menu}");?> + + +
  • +
  • + productCommon;?> +
      + +
    • + createLink('doc', 'objectLibs', "type=product&objectID=$product->id"), " " . $product->name);?> + id])):?> +
        + id] as $libID => $libName):?> + id"); + $icon = 'icon-stack'; + } + elseif($libID == 'files') + { + $libLink = inlink('showFiles', "type=product&objectID=$product->id"); + $icon = 'icon-paper-clip'; + } + else + { + $libLink = inlink('browse', "libID=$libID"); + $icon = 'icon-folder-outline'; + } + ?> +
      • + " . $libName);?> + +
          + +
        • createLink('doc', 'browse', "libID=$libID&browseType=byModule¶m={$module->id}"), " " . $module->name);?>
        • + +
        + +
      • + +
      + +
    • + +
    +
  • +
  • + projectCommon;?> +
      + +
    • + createLink('doc', 'objectLibs', "type=project&objectID=$project->id"), " " . $project->name);?> + id])):?> +
        + id] as $libID => $libName):?> + id"); + $icon = 'icon-paper-clip'; + } + else + { + $libLink = inlink('browse', "libID=$libID"); + $icon = 'icon-paper-outline'; + } + ?> +
      • + " . $libName);?> + +
          + +
        • createLink('doc', 'browse', "libID=$libID&browseType=byModule¶m={$module->id}"), " " . $module->name);?>
        • + +
        + +
      • + +
      + +
    • + +
    +
  • +
  • + doc->custom;?> +
      + $libName):?> +
    • + " . $libName);?> + +
        + +
      • createLink('doc', 'browse', "libID=$libID&browseType=byModule¶m={$module->id}"), " " . $module->name);?>
      • + +
      + +
    • + +
    +
  • +
    -
    - -
    - - - 8 and $objectNum == 8):?> -
    -
    - more}{$lang->doc->libTypeList['project']}", '', "title='$lang->more' class='more'")?> +
    +
    +
    +
    +
    +
    +
    doc->orderByEdit;?>
    + +
    +
    + + + + + + + + + + + + id}");?>"> + + + + + + + +
    doc->title;?>doc->size;?>doc->addedBy;?>doc->editedDate;?>
    title;?>fileSize;?>addedBy);?>editedDate, 'm-d H:i');?>
    - - - id])):?> -
    - id]); - ?> -
    - {$lang->doclib->project} " : ''; - echo html::a(inlink('objectLibs', "type=project&objectID=$project->id&from=doc"), $label . $project->name, '', "title='{$project->name}'"); - if($subLibCount > 3) echo html::a(inlink('objectLibs', "type=project&objectID=$project->id&from=doc"), "{$lang->more}", '', "title='{$lang->more}' class='pull-right'"); - ?> +
    +
    +
    +
    +
    doc->allDoc . ' ' . $statisticInfo->totalDocs;?>
    -
    - = 3) $widthClass = 'w-lib-p33'; - ?> - id] as $libID => $libName):?> - id"); - else $libLink = inlink('browse', "libID=$libID"); - ?> - - ' class='file-icon' /> -
    -
    - = 2) break;?> - - +
    - - - +
    +
    +
    +
    +
    project->statusList['doing'] . $lang->projectCommon;?>
    + +
    +
    + + + + + + + + + + + id}")?>"> + + + + + + +
    project->name;?>doc->addedBy;?>doc->addedDate;?>
    name;?>openedBy);?>openedDate, 'm-d H:i');?>
    +
    +
    +
    +
    +
    +
    +
    doc->myDoc;?>
    + +
    +
    + + + + + + + + + + + + + + + + + +
    doc->title;?>doc->addedBy;?>doc->addedDate;?>
    title;?>addedBy);?>addedDate, 'm-d H:i');?>
    +
    +
    +
    -
    - -
    - - $libName):?> - 8 and $objectNum == 8):?> -
    -
    - more}{$lang->doc->libTypeList['custom']}", '', "title='$lang->more' class='more'")?> -
    -
    - - -
    -
    - {$lang->doc->customAB} "; - echo html::a(inlink('browse', "libID=$libID"), $libName, '', "title='{$libName}'") - ?> -
    -
    - - - - +
    diff --git a/module/file/view/download.html.php b/module/file/view/download.html.php index 6a7f742e8c..3b913a9917 100644 --- a/module/file/view/download.html.php +++ b/module/file/view/download.html.php @@ -6,47 +6,45 @@ #txtFile{padding: 5px 10px;} #txtFile div{overflow-x: auto;} #titlebar span{float: right; padding-right: 25px;} +.main-header .btn-toolbar{margin-left:8px;} -
    -
    - file->common;?> - file->preview;?> +
    +
    +

    file->preview;?>

    - file->charset, $charset, "onchange='setCharset(this.value)'");?> +
    file->charset, $charset, "onchange='setCharset(this.value)' class='chosen'");?>
    -
    - -
    createLink('file', 'read', "fileID=$file->id"));?>
    - -
    -
    - realPath); - if($charset != $config->charset) - { - $fileContent = helper::convertEncoding($fileContent, $charset, $config->charset); - } - else - { - if(extension_loaded('mbstring')) - { - $encoding = mb_detect_encoding($fileContent, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5')); - if($encoding != 'UTF-8') $fileContent = helper::convertEncoding($fileContent, $encoding, $config->charset); - } - else - { - $encoding = 'UTF-8'; - if($config->default->lang == 'zh-cn') $encoding = 'GBK'; - if($config->default->lang == 'zh-tw') $encoding = 'BIG5'; - $fileContent = helper::convertEncoding($fileContent, $encoding, $config->charset); - } - } - a($fileContent); - ?> + +
    createLink('file', 'read', "fileID=$file->id"));?>
    + +
    + realPath); + if($charset != $config->charset) + { + $fileContent = helper::convertEncoding($fileContent, $charset, $config->charset); + } + else + { + if(extension_loaded('mbstring')) + { + $encoding = mb_detect_encoding($fileContent, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5')); + if($encoding != 'UTF-8') $fileContent = helper::convertEncoding($fileContent, $encoding, $config->charset); + } + else + { + $encoding = 'UTF-8'; + if($config->default->lang == 'zh-cn') $encoding = 'GBK'; + if($config->default->lang == 'zh-tw') $encoding = 'BIG5'; + $fileContent = helper::convertEncoding($fileContent, $encoding, $config->charset); + } + } + echo "
    " . htmlspecialchars($fileContent) . "
    "; + ?>
    +
    - -
    -
    - icons['edit']);?> - file->inputFileName;?> +
    +
    +

    file->inputFileName;?>

    -
    -
    - - - - - -
    -
    - title, "class='form-control' autocomplete='off'");?> - .extension;?> -
    -
    -
    +
    + + + + + +
    +
    + title, "class='form-control' autocomplete='off'");?> + .extension;?> +
    +
    +
    +
    diff --git a/module/file/view/export.html.php b/module/file/view/export.html.php index 7582f12939..c99a30da74 100644 --- a/module/file/view/export.html.php +++ b/module/file/view/export.html.php @@ -117,7 +117,7 @@ $(document).ready(function()

    export;?>

    -
    + - + + - + diff --git a/module/my/view/score.html.php b/module/my/view/score.html.php index e6c91d59e9..bbd746d5b1 100644 --- a/module/my/view/score.html.php +++ b/module/my/view/score.html.php @@ -20,8 +20,8 @@ my->scoreRule, '', "class='btn btn-primary'");?> -
    -
    diff --git a/module/my/js/common.js b/module/my/js/common.js index d6befcca8d..bb309aff62 100644 --- a/module/my/js/common.js +++ b/module/my/js/common.js @@ -4,25 +4,4 @@ $(function() var sign = config.requestType == 'GET' ? '&' : '?'; sp.attr('href', sp.attr('href') + sign + 'onlybody=yes').modalTrigger({width:600, type:'iframe'}); scp.attr('href', scp.attr('href') + sign + 'onlybody=yes').modalTrigger({width:500, type:'iframe'}); - - /* Fixed table actions */ - if($('table.tablesorter').closest('form').size() > 0) fixedTfootAction($('table.tablesorter').closest('form')); - /* Fixed table header */ - if($('table.tablesorter').size() > 0) fixedTheadOfList($('table.tablesorter:first')); - - $('.dropdown-menu .with-search .menu-search').click(function(e) - { - e.stopPropagation(); - return false; - }).on('keyup change paste', 'input', function() - { - var val = $(this).val().toLowerCase(); - var $options = $(this).closest('.dropdown-menu.with-search').find('.option'); - if(val == '') return $options.removeClass('hide'); - $options.each(function() - { - var $option = $(this); - $option.toggleClass('hide', $option.text().toString().toLowerCase().indexOf(val) < 0 && $option.data('key').toString().toLowerCase().indexOf(val) < 0); - }); - }); }); diff --git a/module/my/view/bug.html.php b/module/my/view/bug.html.php index 39a1531b68..2fe940949c 100644 --- a/module/my/view/bug.html.php +++ b/module/my/view/bug.html.php @@ -36,28 +36,28 @@ idAB);?> - bug->severityAB);?> priAB);?> bug->severityAB);?> priAB);?> typeAB);?> bug->title);?> openedByAB);?> bug->assignedTo);?> bug->resolvedByAB);?> bug->resolutionAB);?> actions;?> actions;?>
    +
    - - - id);?>
    + + id);?>
    bug->severityList, $bug->severity, $bug->severity)?>'>bug->severityList, $bug->severity, $bug->severity);?> pri?>'>bug->priList, $bug->pri)?>
    +
    +
    diff --git a/module/my/view/story.html.php b/module/my/view/story.html.php index 16e91d76b9..3c8e5ea5b2 100644 --- a/module/my/view/story.html.php +++ b/module/my/view/story.html.php @@ -55,13 +55,13 @@ createLink('story', 'view', "id=$story->id");?> diff --git a/module/my/view/task.html.php b/module/my/view/task.html.php index e17fc348c2..989c02eb12 100644 --- a/module/my/view/task.html.php +++ b/module/my/view/task.html.php @@ -38,31 +38,31 @@ idAB);?> - + - + - + - + diff --git a/module/my/view/testcase.html.php b/module/my/view/testcase.html.php index cb34fe4cc1..9b0345a8b6 100644 --- a/module/my/view/testcase.html.php +++ b/module/my/view/testcase.html.php @@ -25,9 +25,9 @@ ?> -
    +
    -
    score->time; ?>
    +
    - - - id);?>
    + + id);?>
    pri;?>'>story->priList, $story->pri, $story->pri);?> productTitle;?> priAB);?> priAB);?> task->project);?> task->name);?> openedByAB);?> task->assignedTo);?> task->finishedBy);?> task->estimateAB);?> task->estimateAB);?> task->consumedAB);?> task->leftAB);?> task->leftAB);?> task->deadlineAB);?> statusAB);?>actions;?>actions;?>
    +
    - - - id);?>
    + + id);?>
    pri;?>'>task->priList, $task->pri);?> createLink('project', 'browse', "projectid=$task->projectID"), $task->projectName);?>
    +
    app->loadLang('testtask'); @@ -44,7 +44,7 @@ idAB);?> - + @@ -52,7 +52,7 @@ - + @@ -63,12 +63,13 @@ ?> @@ -79,20 +80,23 @@ diff --git a/module/my/view/testtask.html.php b/module/my/view/testtask.html.php index e603402700..c22dd1e61c 100644 --- a/module/my/view/testtask.html.php +++ b/module/my/view/testtask.html.php @@ -22,8 +22,8 @@ ?> -
    -
    priAB);?> priAB);?> testcase->title);?> typeAB);?> openedByAB);?> testtask->lastRunTime);?> testtask->lastRunResult);?> statusAB);?> actions;?> actions;?>
    +
    - - - id);?> +
    + + id);?>
    pri?>'>testcase->priList, $case->pri, $case->pri)?> createLink('testcase', 'view', "testcaseID=$caseID&version=$case->version"), $case->title, null, "style='color: $case->color'");?>lastRunResult) echo $lang->testcase->resultList[$case->lastRunResult];?> testcase->statusList[$case->status];?> - version", '', 'list', 'play', '', 'iframe', '', "data-width='95%'"); - common::printIcon('testtask', 'results', "runID=$runID&caseID=$caseID", '', 'list', 'list-alt', '', 'iframe', '', "data-width='95%'"); - common::printIcon('testcase', 'edit', "caseID=$caseID", $case, 'list', 'edit'); - common::printIcon('testcase', 'create', "productID=$case->product&branch=$case->branch&moduleID=$case->module&from=testcase¶m=$caseID", $case, 'list', 'copy'); +
    + product&branch=$case->branch&extra=caseID=$caseID,version=$case->version,runID=$runID", $case, 'list', 'bug'); + common::printIcon('testcase', 'create', "productID=$case->product&branch=$case->branch&moduleID=$case->module&from=testcase¶m=$caseID", $case, 'list', 'copy'); - if(common::hasPriv('testcase', 'delete')) - { - $deleteURL = $this->createLink('testcase', 'delete', "caseID=$caseID&confirm=yes"); - echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"caseList\",confirmDelete)", '', '', "class='btn' title='{$lang->testcase->delete}'"); - } - - common::printIcon('testcase', 'createBug', "product=$case->product&branch=$case->branch&extra=caseID=$caseID,version=$case->version,runID=$runID", $case, 'list', 'bug'); - ?> + if(common::hasPriv('testcase', 'delete')) + { + $deleteURL = $this->createLink('testcase', 'delete', "caseID=$caseID&confirm=yes"); + echo html::a("javascript:ajaxDelete(\"$deleteURL\",\"caseList\",confirmDelete)", '', '', "class='btn' title='{$lang->testcase->delete}'"); + } + ?> +
    + version", '', 'list', 'play', '', 'iframe', '', "data-width='95%'"); + common::printIcon('testtask', 'results', "runID=$runID&caseID=$caseID", '', 'list', 'list-alt', '', 'iframe', '', "data-width='95%'"); + common::printIcon('testcase', 'edit', "caseID=$caseID", $case, 'list', 'edit'); + ?>
    +
    +
    diff --git a/module/my/view/todo.html.php b/module/my/view/todo.html.php index 7b7cce7779..7eca698051 100644 --- a/module/my/view/todo.html.php +++ b/module/my/view/todo.html.php @@ -68,13 +68,13 @@ diff --git a/module/product/js/all.js b/module/product/js/all.js index 25ecb6b959..f35f9625b9 100644 --- a/module/product/js/all.js +++ b/module/product/js/all.js @@ -6,6 +6,4 @@ $(function() for(i = 0; i < data.list.length; i++) list += $(data.list[i]).attr('data-id') + ','; $.post(createLink('product', 'updateOrder'), {'products' : list, 'orderBy' : orderBy}); }); - fixedTfootAction('#productsForm'); - fixedTheadOfList('#productList'); }); diff --git a/module/product/view/all.html.php b/module/product/view/all.html.php index 0b45a006b6..0cc2079efb 100644 --- a/module/product/view/all.html.php +++ b/module/product/view/all.html.php @@ -58,7 +58,7 @@ '> -
    +
    - - - id?>
    + + id?>
    date == '2030-01-01' ? $lang->todo->periods['future'] : $todo->date;?> todo->typeList[$todo->type];?>
    +
    recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?> diff --git a/module/product/view/batchedit.html.php b/module/product/view/batchedit.html.php index 1dffcebdd1..74a491ace2 100755 --- a/module/product/view/batchedit.html.php +++ b/module/product/view/batchedit.html.php @@ -15,7 +15,7 @@

    product->batchEdit;?>

    createLink('custom', 'ajaxSaveCustomFields', 'module=product§ion=custom&key=batchEditFields')?> - +
    '; } - if(common::hasPriv('story', 'batchChangeModule')) - { - $withSearch = count($modules) > 8; - echo "'; - } - else - { - echo '
  • ' . html::a('javascript:;', $lang->story->moduleAB, '', $class) . '
  • '; - } - - if(common::hasPriv('story', 'batchChangePlan')) - { - unset($plans['']); - $plans = array(0 => $lang->null) + $plans; - $withSearch = count($plans) > 8; - echo "'; - } - else - { - echo '
  • ' . html::a('javascript:;', $lang->story->planAB, '', $class) . '
  • '; - } - if(common::hasPriv('story', 'batchChangeStage')) { echo "
    - recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - delay)):?> - - - - - - - - - - - - - - - - - - + + + + + + + + + + + delay)):?> + + + + + + + + + + + + + + + +
    idAB);?>project->name);?>project->code);?>project->PM);?>project->end);?>project->status);?>project->totalEstimate;?>project->totalConsumed;?>project->totalLeft;?>project->progress;?>project->burn;?>project->updateOrder);?>
    - - - - createLink('project', 'view', 'project=' . $project->id), sprintf('%03d', $project->id));?> - createLink('project', 'view', 'project=' . $project->id), $project->name);?>code;?>PM];?>end;?>project->delayed;?>project->statusList[$project->status];?>hours->totalEstimate;?>hours->totalConsumed;?>hours->totalLeft;?> - - hours->progress;?>% - burns);?>'>
    -
    - - - project->batchEdit);?> +
    + + ' data-ride='table'> + + recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?> + + + + + + + + + + + + + + + - recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}"), $lang->project->updateOrder, '', "class='btn'");?> - - show();?> - - - -
    +
    + +
    + idAB);?> +
    project->name);?>project->code);?>project->PM);?>project->end);?>project->status);?>project->totalEstimate;?>project->totalConsumed;?>project->totalLeft;?>project->progress;?>project->burn;?>project->updateOrder);?>
    - - +
    + +
    + + +
    + + id);?> +
    createLink('project', 'view', 'project=' . $project->id), $project->name);?>code;?>PM];?>end;?> project->delayed;?> project->statusList[$project->status];?>hours->totalEstimate;?>hours->totalConsumed;?>hours->totalLeft;?> + + hours->progress;?>% + burns);?>'>
    + + + + +
    + diff --git a/module/project/view/batchedit.html.php b/module/project/view/batchedit.html.php index df024c668b..6a066b49d9 100755 --- a/module/project/view/batchedit.html.php +++ b/module/project/view/batchedit.html.php @@ -11,72 +11,74 @@ ?> -
    -
    - icons['project']);?> - icons['batchEdit']);?> project->common . $lang->colon . $lang->project->batchEdit;?> -
    - +
    +
    +

    project->batchEdit;?>

    +
    + createLink('custom', 'ajaxSaveCustomFields', 'module=project§ion=custom&key=batchEditFields')?> +
    + 5) ? 'w-150px' : ''; + ?> +
    '> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    idAB;?>project->name;?>project->code;?>'>project->PM;?>'>project->PO;?>'>project->QD;?>'>project->RD;?>'>project->type;?>'>project->status;?>project->begin;?>project->end;?>'> project->desc;?>'>project->teamname;?>'>project->days;?>project->order;?>
    name, "class='form-control' autocomplete='off'");?>code, "class='form-control' autocomplete='off'");?>' style='overflow:visible'>PM, "class='form-control chosen'");?>' style='overflow:visible'>PO, "class='form-control chosen'");?>' style='overflow:visible'>QD, "class='form-control chosen'");?>' style='overflow:visible'>RD, "class='form-control chosen'");?>'>project->typeList, $projects[$projectID]->type, 'class=form-control');?>'>project->statusList, $projects[$projectID]->status, 'class=form-control');?>begin, "class='form-control form-date' onchange='computeWorkDays(this.id)'");?>end, "class='form-control form-date' onchange='computeWorkDays(this.id)'");?>'> desc), "rows='1' class='form-control autosize'");?>'>team, "class='form-control' autocomplete='off'");?>'> +
    + days, "class='form-control' autocomplete='off'");?> + project->day;?> +
    +
    order, "class='form-control' autocomplete='off'")?>
    +
    - 5) ? 'w-150px' : ''; -?> -
    '> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    idAB;?>project->name;?> project->code;?> '>project->PM;?>'>project->PO;?>'>project->QD;?>'>project->RD;?>'>project->type;?>'>project->status;?>project->begin;?> project->end;?> '> project->desc;?>'>project->teamname;?>'>project->days;?>project->order;?>
    name, "class='form-control' autocomplete='off'");?>code, "class='form-control' autocomplete='off'");?>' style='overflow:visible'>PM, "class='form-control chosen'");?>' style='overflow:visible'>PO, "class='form-control chosen'");?>' style='overflow:visible'>QD, "class='form-control chosen'");?>' style='overflow:visible'>RD, "class='form-control chosen'");?>'>project->typeList, $projects[$projectID]->type, 'class=form-control');?>'>project->statusList, $projects[$projectID]->status, 'class=form-control');?>begin, "class='form-control form-date' onchange='computeWorkDays(this.id)'");?>end, "class='form-control form-date' onchange='computeWorkDays(this.id)'");?>'> desc), "rows='1' class='form-control autosize'");?>'>team, "class='form-control' autocomplete='off'");?>'> -
    - days, "class='form-control' autocomplete='off'");?> - project->day;?> -
    -
    order, "class='form-control' autocomplete='off'")?>
    -
    -createLink('custom', 'ajaxSaveCustomFields', 'module=project§ion=custom&key=batchEditFields')?> - project->weekend);?> diff --git a/module/project/view/burn.html.php b/module/project/view/burn.html.php index 6d1c6d5df2..97787a6295 100644 --- a/module/project/view/burn.html.php +++ b/module/project/view/burn.html.php @@ -12,28 +12,27 @@ ?> - -
    -
    -
    - -
    - -
    - - project->computeBurn, 'hiddenwin', "title='{$lang->project->computeBurn}{$lang->project->burn}' class='btn btn-primary btn-sm' id='computeBurn'"); - echo html::a($this->createLink('project', 'burn', "projectID=$projectID&type=$weekend&interval=$interval"), $lang->project->$weekend, '', "class='btn btn-sm'"); - common::printLink('project', 'fixFirst', "project=$project->id", $lang->project->fixFirst, '', "class='btn btn-sm iframe' data-width='600'"); - echo $lang->project->howToUpdateBurn; - ?> + +

    lang->project->burn;?>

    +
    -
    -
    - icons['task']);?> - icons['import']);?> project->importBug;?> + -
    - - - - - - - - - - - - - - - - - - - - - - - - - - deadline > helper::today() and $bug->deadline > $project->begin) ? $bug->deadline : '0000-00-00';?> - - - - - - - - - -
    idAB;?> bug->severityAB;?> priAB;?>bug->title;?>bug->statusAB;?>task->pri;?>task->assignedTo;?>task->estimate;?>task->deadline;?>
    - id]", '');?> - id) . html::hidden("id[$bug->id]", $bug->id);?> - bug->severityList, $bug->severity, $bug->severity)?>'>bug->severityList, $bug->severity, $bug->severity)?>bug->priList, $bug->pri, $bug->pri)?>'>bug->priList, $bug->pri, $bug->pri)?>id", $bug->title, '', "class='preview'", true, true);?>bug->statusList[$bug->status];?>id]", $lang->task->priList, 3, "class='input-sm form-control'");?>id]", $users, zget($users, $bug->assignedTo, '', $bug->assignedTo), "class='input-sm form-control chosen'");?>id]", '', 'size=4 class="input-sm form-control" autocomplete="off"');?>id]", $deadline, 'size=4 class="input-sm form-control form-date" autocomplete="off"');?>
    -
    import) . html::backButton();?> -
    - show();?> -
    -
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + deadline > helper::today() and $bug->deadline > $project->begin) ? $bug->deadline : '0000-00-00';?> + + + + +
    +
    + +
    + idAB;?> +
    bug->severityAB;?> priAB;?>bug->title;?>bug->statusAB;?>task->pri;?>task->assignedTo;?>task->estimate;?>task->deadline;?>
    +
    + + +
    + id) . html::hidden("id[$bug->id]", $bug->id);?> +
    bug->severityList, $bug->severity, $bug->severity)?>'>bug->severityList, $bug->severity, $bug->severity)?>pri;?>'>bug->priList, $bug->pri, $bug->pri)?>id", $bug->title, '', "class='preview'", true, true);?> bug->statusList[$bug->status];?>id]", $lang->task->priList, 3, "class='form-control chosen'");?>id]", $users, zget($users, $bug->assignedTo, '', $bug->assignedTo), "class='form-control chosen'");?>id]", '', 'size=4 class="form-control" autocomplete="off"');?>id]", $deadline, 'size=4 class="form-control form-date" autocomplete="off"');?>
    + + + +
    +
    diff --git a/module/project/view/importtask.html.php b/module/project/view/importtask.html.php index 8957d6d75e..f3b01cf063 100644 --- a/module/project/view/importtask.html.php +++ b/module/project/view/importtask.html.php @@ -11,77 +11,80 @@ */ ?> - -
    -
    - icons['task']);?> - icons['import']);?> project->importTask;?> -
    + -
    - - - - - - - - - - - - - - - - - assignedTo == $app->user->account ? 'style=color:red' : '';?> - - - - - - - - - - + + + +
    idAB;?>project->name ?>priAB;?>task->name;?>task->assignedTo;?>task->leftAB;?>task->deadlineAB;?>statusAB;?>task->story;?>
    - - id", sprintf('%03d', $task->id))) printf('%03d', $task->id);?> - project], 2);?>task->priList, $task->pri, $task->pri)?>'>pri == '0' ? '' : zget($lang->task->priList, $task->pri, $task->pri);?>id", $task->name)) echo $task->name;?>>assignedToRealName;?>left;?>delay)) echo 'delayed';?>>deadline, 0, 4) > 0) echo $task->deadline;?>status;?> >task->statusList[$task->status];?> - storyID) - { - if(common::hasPriv('story', 'view')) +
    + + + + + + + + + + + + + + + + + + assignedTo == $app->user->account ? 'style=color:red' : '';?> + + + + + + + + + + - - - - - - - - -
    +
    + +
    + idAB;?> +
    project->name ?>priAB;?>task->name;?>task->assignedTo;?>task->leftAB;?>task->deadlineAB;?>statusAB;?>task->story;?>
    +
    + + +
    + id);?> +
    project], 2);?>task->priList, $task->pri, $task->pri)?>'>pri == '0' ? '' : zget($lang->task->priList, $task->pri, $task->pri);?>id", $task->name)) echo $task->name;?>>assignedToRealName;?>left;?>delay)) echo 'delayed';?>>deadline, 0, 4) > 0) echo $task->deadline;?>status;?> >task->statusList[$task->status];?> + storyID) { - echo html::a($this->createLink('story', 'view', "storyid=$task->storyID"), $task->storyTitle); + if(common::hasPriv('story', 'view')) + { + echo html::a($this->createLink('story', 'view', "storyid=$task->storyID"), $task->storyTitle); + } + else + { + echo $task->storyTitle; + } } - else - { - echo $task->storyTitle; - } - } - ?> -
    -
    - - project->importTask);?> -
    -
    -
    - + ?> +
    + + + + +
    diff --git a/module/project/view/index.html.php b/module/project/view/index.html.php index e3583c8519..bcb50e3a90 100644 --- a/module/project/view/index.html.php +++ b/module/project/view/index.html.php @@ -17,12 +17,4 @@ fetch('block', 'dashboard', 'module=project');?> - diff --git a/module/project/view/managechilds.html.php b/module/project/view/managechilds.html.php deleted file mode 100644 index 82804b6070..0000000000 --- a/module/project/view/managechilds.html.php +++ /dev/null @@ -1,34 +0,0 @@ - - * @package project - * @version $Id: managechilds.html.php 4129 2013-01-18 01:58:14Z wwccss $ - * @link http://www.zentao.net - */ -?> - -
    -
    -
    - icons['project']);?> - project->manageChilds;?> -
    -
    -
    - - - - - -
    - -
    -
    -
    - diff --git a/module/project/view/task.html.php b/module/project/view/task.html.php index f69dfc6b0e..b0b472461d 100644 --- a/module/project/view/task.html.php +++ b/module/project/view/task.html.php @@ -213,77 +213,87 @@ js::set('browseType', $browseType); @@ -292,22 +302,16 @@ js::set('browseType', $browseType); project->checkedSummary);?> diff --git a/module/release/js/view.js b/module/release/js/view.js index db4e8df12f..e82d814e21 100644 --- a/module/release/js/view.js +++ b/module/release/js/view.js @@ -10,7 +10,6 @@ function showLink(releaseID, type, param) $('#' + type + 'List').closest('form').hide(); var formID = type == 'story' ? '#unlinkedStoriesForm' : (type == 'leftBug' ? '#unlinkedLeftBugsForm' : '#unlinkedBugsForm'); - setTimeout(function(){fixedTfootAction(formID)}, 100); $('[data-ride="table"]').table(); }); @@ -18,7 +17,6 @@ function showLink(releaseID, type, param) $(function() { if(link == 'true') showLink(releaseID, type, param); - fixedTfootAction($('#' + type + 'List').closest('form')); $('.nav.nav-tabs a[data-toggle="tab"]').on('shown.zui.tab', function(e) { var href = $(e.target).attr('href'); @@ -26,6 +24,5 @@ $(function() if(tabPane.size() == 0) return; var formID = tabPane.find('.linkBox').find('form:last'); if(formID.size() == 0) formID = tabPane.find('form:last'); - setTimeout(function(){fixedTfootAction(formID)}, 100); }); }) diff --git a/module/story/js/zerocase.js b/module/story/js/zerocase.js index 87d942d86f..618b5d612c 100644 --- a/module/story/js/zerocase.js +++ b/module/story/js/zerocase.js @@ -1,6 +1,4 @@ $(document).ready(function() { - $('#zerocaseTab').addClass('active'); - fixedTfootAction('#productStoryForm'); - fixedTheadOfList('#storyList'); + $('#zerocaseTab').addClass('btn-active-text'); }); diff --git a/module/story/model.php b/module/story/model.php index a7b0c7f00d..71002bb3c8 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -2343,7 +2343,7 @@ class storyModel extends model switch($id) { case 'id': - echo '
    ' . sprintf('%03d', $story->id) . '
    '; + echo html::checkbox('storyIDList', array($story->id => sprintf('%03d', $story->id))); break; case 'pri': echo ""; diff --git a/module/story/view/activate.html.php b/module/story/view/activate.html.php index 5874cfef45..f63ff4386e 100644 --- a/module/story/view/activate.html.php +++ b/module/story/view/activate.html.php @@ -15,8 +15,8 @@

    - id;?> - createLink('story', 'view', "storyID=$story->id"), $story->title);?> + id;?> + title : html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?> arrow . $lang->story->activate;?>

    diff --git a/module/story/view/batchcreate.html.php b/module/story/view/batchcreate.html.php index 3b2bbb5600..d0d69d43c8 100644 --- a/module/story/view/batchcreate.html.php +++ b/module/story/view/batchcreate.html.php @@ -16,7 +16,7 @@

    story->batchCreate;?>

    createLink('custom', 'ajaxSaveCustomFields', 'module=story§ion=custom&key=batchCreateFields')?> - +

    - story->common . $lang->colon . $lang->story->batchEdit;?> + story->common . $lang->colon . $lang->story->batchEdit;?> icons['product']) . ' ' . $lang->story->product . $lang->colon . ' ' . $productName;?> @@ -38,14 +38,14 @@ foreach(explode(',', $showFields) as $field)
    "> - + - + @@ -79,7 +79,7 @@ foreach(explode(',', $showFields) as $field) $productPlans = array('' => '', 'ditto' => $this->lang->story->ditto) + $productPlans; } ?> - +
    idAB;?> '>story->branch;?> story->module;?> '>story->planAB;?>story->title;?> story->title;?> '> story->estimateAB;?> '> priAB;?> '> story->assignedTo;?>
    ' style='overflow:visible'> diff --git a/module/story/view/change.html.php b/module/story/view/change.html.php index d603a78f92..fc0b518496 100644 --- a/module/story/view/change.html.php +++ b/module/story/view/change.html.php @@ -15,8 +15,8 @@

    - id;?> - createLink('story', 'view', "storyID=$story->id"), $story->title);?> + id;?> + createLink('story', 'view', "storyID=$story->id"), $story->title);?> arrow . ' ' . $lang->story->change;?>

    diff --git a/module/story/view/close.html.php b/module/story/view/close.html.php index 8a9c389b26..4ca78377dc 100644 --- a/module/story/view/close.html.php +++ b/module/story/view/close.html.php @@ -12,43 +12,43 @@ ?>
    -
    -

    - icons['story']);?> id;?> - createLink('story', 'view', "storyID=$story->id"), $story->title);?> - arrow . $lang->story->close;?> -

    -
    - - - - - - - - - - - - - - - - - - - - - - -
    story->closedReason;?>story->reasonList, '', 'class=form-control onchange="setStory(this.value)"');?>
    story->comment;?>
    - - goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"));?> -
    - -
    -
    - +
    +
    +

    + id;?> + title : html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?> + arrow . $lang->story->close;?> +

    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    story->closedReason;?>story->reasonList, '', 'class=form-control onchange="setStory(this.value)"');?>
    story->comment;?>
    + + goback, $app->session->storyList ? $app->session->storyList : inlink('view', "storyID=$story->id"));?> +
    +
    +
    +
    diff --git a/module/story/view/edit.html.php b/module/story/view/edit.html.php index 00c1df3372..3594d0d987 100644 --- a/module/story/view/edit.html.php +++ b/module/story/view/edit.html.php @@ -15,7 +15,7 @@

    - icons['story']);?> id;?> + id;?> createLink('story', 'view', "storyID=$story->id"), $story->title, '', 'class="story-title"');?> arrow . ' ' . $lang->story->edit;?>

    diff --git a/module/story/view/linkstory.html.php b/module/story/view/linkstory.html.php index 1f3433b725..03f6951479 100644 --- a/module/story/view/linkstory.html.php +++ b/module/story/view/linkstory.html.php @@ -14,8 +14,8 @@

    - icons['story']);?> id;?> - createLink('story', 'view', "storyID=$story->id"), $story->title);?> + id;?> + title : html::a($this->createLink('story', 'view', "storyID=$story->id"), $story->title);?> arrow . $lang->story->linkStory;?>

    diff --git a/module/story/view/review.html.php b/module/story/view/review.html.php index 141002a9db..2c4dd21eaf 100644 --- a/module/story/view/review.html.php +++ b/module/story/view/review.html.php @@ -19,8 +19,8 @@ var assignedTo = 'lastEditedBy ? print($story->lastEditedBy) : pri

    - id;?> - createLink('story', 'view', "storyID=$story->id"), $story->title);?> + id;?> + createLink('story', 'view', "storyID=$story->id"), $story->title);?> arrow . $lang->story->review;?>

    diff --git a/module/story/view/zerocase.html.php b/module/story/view/zerocase.html.php index 0f3d270625..c412d09ebc 100644 --- a/module/story/view/zerocase.html.php +++ b/module/story/view/zerocase.html.php @@ -12,7 +12,7 @@ ?> -
    +
    diff --git a/module/task/config.php b/module/task/config.php index ad72f28bfb..ff1eecfd4d 100644 --- a/module/task/config.php +++ b/module/task/config.php @@ -197,5 +197,5 @@ $config->task->datatable->fieldList['lastEditedDate']['required'] = 'no'; $config->task->datatable->fieldList['actions']['title'] = 'actions'; $config->task->datatable->fieldList['actions']['fixed'] = 'right'; -$config->task->datatable->fieldList['actions']['width'] = '156'; +$config->task->datatable->fieldList['actions']['width'] = '160'; $config->task->datatable->fieldList['actions']['required'] = 'yes'; diff --git a/module/task/css/edit.css b/module/task/css/edit.css index 865ead609b..e69de29bb2 100644 --- a/module/task/css/edit.css +++ b/module/task/css/edit.css @@ -1,5 +0,0 @@ -.col-side .chosen-container .chosen-drop {width: 216px!important} -.col-side .chosen-container {width: 218px!important} -#finishedDate.form-control.form-date {width: 218px!important} -#canceledDate.form-control.form-date {width: 218px!important} -#closedDate.form-control.form-date {width: 218px!important} diff --git a/module/task/view/activate.html.php b/module/task/view/activate.html.php index 19c6b8b474..065ae3bae6 100644 --- a/module/task/view/activate.html.php +++ b/module/task/view/activate.html.php @@ -12,44 +12,48 @@ ?> -
    -
    - icons['task']);?> id;?> - createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?> - task->activate;?> icons['activate']);?> +
    +
    +
    +

    + id;?> + name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?> + arrow . $lang->task->activate;?> +

    +
    + + +
    + + + + + + + + + + + + + + + + +
    task->assignedTo;?>finishedBy, "class='form-control chosen'");?>
    task->left;?> +
    + + task->hour;?> +
    +
    comment;?>
    + task->activate); + echo html::linkButton($lang->goback, $this->session->taskList); + ?> +
    + +
    +
    - -
    - - - - - - - - - - - - - - - - -
    task->assignedTo;?>finishedBy, "class='form-control chosen'");?>
    task->left;?> -
    - - task->hour;?> -
    -
    comment;?>
    - task->activate); - echo html::linkButton($lang->goback, $this->session->taskList); - ?> -
    -
    -
    - -
    diff --git a/module/task/view/assignto.html.php b/module/task/view/assignto.html.php index b1bcc59ed1..dc500c2b28 100644 --- a/module/task/view/assignto.html.php +++ b/module/task/view/assignto.html.php @@ -12,33 +12,40 @@ ?> -
    -
    - icons['task']);?> id;?> - createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?> - team) ? $lang->task->assign : $lang->task->transfer;?> +
    +
    +
    +

    + id;?> + name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?> + arrow . (empty($task->team) ? $lang->task->assign : $lang->task->transfer);?> +

    +
    +
    + + + + + + + + + + + + + + + + + +
    team) ? $lang->task->assign : $lang->task->transferTo;?>assignedTo, "class='form-control chosen'");?>
    task->left;?>
    left, "class='form-control' autocomplete='off'");?> task->hour;?>
    comment;?>
    + + goback, $this->session->taskList);?> +
    +
    +
    +
    -
    - - - - - - - - - - - - - - - - -
    team) ? $lang->task->assign : $lang->task->transferTo;?>assignedTo, "class='form-control chosen'");?>
    task->left;?>
    left, "class='form-control' autocomplete='off'");?> task->hour;?>
    comment;?>
    -
    -
    - -
    diff --git a/module/task/view/batchedit.html.php b/module/task/view/batchedit.html.php index 46ddcb32cc..466b3b46ce 100755 --- a/module/task/view/batchedit.html.php +++ b/module/task/view/batchedit.html.php @@ -13,92 +13,100 @@ lang->task->dittoNotice);?> -
    -
    - icons['task']);?> - icons['batchEdit']);?> task->batchEdit . ' ' . $lang->task->common;?> -
    - +
    +
    +

    + task->common . $lang->colon . $lang->task->batchEdit;?> + + icons['project']) . ' ' . $lang->task->project . $lang->colon . ' ' . $projectName;?> + +

    +
    + createLink('custom', 'ajaxSaveCustomFields', 'module=task§ion=custom&key=batchEditFields')?> +
    + +
    + + +
    "> + + + + + + + + + + + + + + + + + + + + + + + + project->getById($tasks[$taskID]->project); + $modules = $this->tree->getOptionMenu($tasks[$taskID]->project, $viewType = 'task'); + foreach($modules as $moduleID => $moduleName) $modules[$moduleID] = '/' . $prjInfo->name. $moduleName; + $modules = array('ditto' => $this->lang->task->ditto) + $modules; + + $members = $this->project->getTeamMemberPairs($tasks[$taskID]->project, 'nodeleted'); + $members = array('' => '', 'ditto' => $this->lang->task->ditto) + $members; + } + ?> + + + + + + + + + + + + + + + + + + + + + + + + + +
    idAB;?>'>task->name?>'>task->module?>'>task->assignedTo;?>typeAB;?>'>task->status;?>'>task->pri;?>'>task->estimateAB;?>'>task->consumedThisTime?>'>task->leftAB?>'>task->estStarted?>'>task->deadline?>'>task->finishedBy;?>'>task->canceledBy;?>'>task->closedBy;?>'>task->closedReason;?>
    +
    + color, "data-provide='colorpicker' data-wrapper='input-group-btn fix-border-right' data-pull-menu-right='false' data-btn-tip='{$lang->task->colorTag}' data-update-text='#names\\[{$taskID}\\]'");?> + name, "class='form-control' autocomplete='off'");?> +
    +
    ' style='overflow:visible'>module, "class='form-control chosen'")?>' style='overflow:visible'>assignedTo, "class='form-control chosen'");?>type, 'class=form-control');?>>status, 'class=form-control');?>>pri, 'class=form-control');?>>estimate, "class='form-control text-center' autocomplete='off'");?>>>left, "class='form-control text-center' autocomplete='off'");?>>estStarted, "class='form-control text-center form-date'");?>>deadline, "class='form-control text-center form-date'");?>' style='overflow:visible'>finishedBy, "class='form-control chosen'");?>' style='overflow:visible'>canceledBy, "class='form-control chosen'");?>' style='overflow:visible'>closedBy, "class='form-control chosen'");?>>task->reasonList, $tasks[$taskID]->closedReason, 'class=form-control');?>
    + + +
    +
    +
    - -
    - - -
    "> - - - - - - - - - - - - - - - - - - - - - - - - project->getById($tasks[$taskID]->project); - $modules = $this->tree->getOptionMenu($tasks[$taskID]->project, $viewType = 'task'); - foreach($modules as $moduleID => $moduleName) $modules[$moduleID] = '/' . $prjInfo->name. $moduleName; - $modules = array('ditto' => $this->lang->task->ditto) + $modules; - - $members = $this->project->getTeamMemberPairs($tasks[$taskID]->project, 'nodeleted'); - $members = array('' => '', 'ditto' => $this->lang->task->ditto) + $members; - } - ?> - - - - - - - - - - - - - - - - - - - - - - - -
    idAB;?> 10) echo "class='w-150px'"?>> task->name?> '>task->module?>'>task->assignedTo;?>typeAB;?> '>task->status;?>'>task->pri;?>'>task->estimateAB;?>'>task->consumedThisTime?>'>task->leftAB?>'>task->estStarted?>'>task->deadline?>'>task->finishedBy;?>'>task->canceledBy;?>'>task->closedBy;?>'>task->closedReason;?>
    -
    - color, "data-provide='colorpicker' data-wrapper='input-group-btn fix-border-right' data-pull-menu-right='false' data-btn-tip='{$lang->task->colorTag}' data-update-text='#names\\[{$taskID}\\]'");?> - name, "class='form-control' autocomplete='off'");?> -
    -
    ' style='overflow:visible'>module, "class='form-control chosen'")?>' style='overflow:visible'>assignedTo, "class='form-control chosen'");?>type, 'class=form-control');?>>status, 'class=form-control');?>>pri, 'class=form-control');?>>estimate, "class='form-control text-center' autocomplete='off'");?>>>left, "class='form-control text-center' autocomplete='off'");?>>estStarted, "class='form-control text-center form-date'");?>>deadline, "class='form-control text-center form-date'");?>' style='overflow:visible'>finishedBy, "class='form-control chosen'");?>' style='overflow:visible'>canceledBy, "class='form-control chosen'");?>' style='overflow:visible'>closedBy, "class='form-control chosen'");?>>task->reasonList, $tasks[$taskID]->closedReason, 'class=form-control');?>
    -
    - -createLink('custom', 'ajaxSaveCustomFields', 'module=task§ion=custom&key=batchEditFields')?> - diff --git a/module/task/view/browse.html.php b/module/task/view/browse.html.php deleted file mode 100644 index 075e48a6c8..0000000000 --- a/module/task/view/browse.html.php +++ /dev/null @@ -1,36 +0,0 @@ - - * @package task - * @version $Id: browse.html.php 4129 2013-01-18 01:58:14Z wwccss $ - * @link http://www.zentao.net - */ -?> - -
    - - - - - - - - - - - - - - -
    task->browse;?>
    task->id;?>task->name;?>task->assignedTo;?>
    id;?>name;?>assignedTo;?>
    - createLink($this->moduleName, 'create', $vars); - echo "{$lang->task->create}"; - ?> -
    - diff --git a/module/task/view/cancel.html.php b/module/task/view/cancel.html.php index 50284a7679..f49100f823 100644 --- a/module/task/view/cancel.html.php +++ b/module/task/view/cancel.html.php @@ -12,24 +12,33 @@ ?> -
    -
    - icons['task']);?> id;?> - createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?> - task->cancel;?> icons['cancel']);?> +
    +
    +
    +

    + id;?> + name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?> + arrow . $lang->task->cancel;?> +

    +
    + +
    + + + + + + + + + +
    comment;?>
    + task->cancel);?> + goback, $this->session->taskList);?> +
    +
    +
    +
    - -
    - - - - - - -
    comment;?>
    task->cancel);?>
    -
    -
    - -
    diff --git a/module/task/view/close.html.php b/module/task/view/close.html.php index 2c483bc613..f5d6bf407a 100644 --- a/module/task/view/close.html.php +++ b/module/task/view/close.html.php @@ -12,26 +12,33 @@ ?> -
    -
    - icons['task']);?> id;?> - createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?> - task->close;?> icons['close']);?> +
    +
    +
    +

    + id;?> + name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?> + arrow . $lang->task->close;?> +

    +
    + +
    + + + + + + + + + +
    comment;?>
    + task->close);?> + goback, $this->session->taskList);?> +
    +
    +
    +
    - -
    - - - - - - - - -
    comment;?>
    task->close);?>
    -
    -
    - -
    diff --git a/module/task/view/edit.html.php b/module/task/view/edit.html.php index 528f946e1d..705801c1ba 100644 --- a/module/task/view/edit.html.php +++ b/module/task/view/edit.html.php @@ -18,228 +18,230 @@ project); ?> task->confirmChangeProject); ?> -
    -
    -
    - icons['task']);?> id;?> - createLink('task', 'view', "taskID=$task->id"), $task->name, '', "class='task-title'");?> - icons['edit']) . ' ' . $lang->task->edit;?> -
    -
    - save)?> -
    -
    -
    -
    -
    -
    -
    - - name, 'class="form-control" autocomplete="off" placeholder="' . $lang->task->name . '"');?> - children) and empty($task->parent) and $task->type != 'affair'):?> - - - - +
    + +
    +

    + id;?> + createLink('task', 'view', "taskID=$task->id"), $task->name, '', "class='task-title'");?> + arrow . $lang->task->edit;?> +

    +
    + save)?> +
    +
    +
    +
    +
    +
    +
    + + name, 'class="form-control" autocomplete="off" placeholder="' . $lang->task->name . '"');?> + children) and empty($task->parent) and $task->type != 'affair'):?> + + + + +
    +
    +
    +
    task->desc;?>
    +
    + desc), "rows='8' class='form-control'");?> +
    +
    +
    +
    comment;?>
    +
    +
    +
    +
    files;?>
    +
    fetch('file', 'buildform');?>
    +
    +
    + lastEditedDate);?> + save) . html::linkButton($lang->goback, $this->inlink('view', "taskID=$task->id")) . html::hidden('consumed', $task->consumed);?> +
    +
    -
    - task->desc;?> -
    - desc), "rows='8' class='form-control'");?> +
    +
    +
    +
    task->legendBasic;?>
    + + parent)):?> + + + + + + + + + + global->flow != 'onlyTask' and $project->type != 'ops'):?> + + + + + + + + + + ' id='teamTr'> + + + + + + + + children)):?> + + + + + + + + + + + + + +
    task->project;?>project, 'class="form-control chosen" onchange="loadAll(this.value)"');?>
    task->module;?>module, 'class="form-control chosen" onchange="loadModuleRelated()"');?>
    task->story;?>story, "class='form-control chosen'");?>
    task->assignedTo;?>assignedTo, "class='form-control chosen'");?>
    task->team;?>task->team, '', "class='form-control btn' data-toggle='modalTeam'");?>
    task->type;?>task->typeList, $task->type, "class='form-control chosen'");?>
    task->status;?>task->statusList, $task->status, "class='form-control chosen'");?>
    task->pri;?>task->priList, $task->pri, "class='form-control chosen'");?>
    task->mailto;?> + acl == 'private' ? $members : $users, str_replace(' ' , '', $task->mailto), 'class="form-control" multiple');?> + fetch('my', 'buildContactLists');?> +
    +
    +
    +
    task->legendEffort;?>
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    task->estStarted;?>estStarted, "class='form-control form-date'");?>
    task->realStarted;?>realStarted, "class='form-control form-date'");?>
    task->deadline;?>deadline, "class='form-control form-date'");?>
    task->estimate;?>estimate, "class='form-control' autocomplete='off'");?>
    task->consumed;?>consumed . ' '; common::printIcon('task', 'recordEstimate', "taskID=$task->id", $task, 'list', '', '', 'iframe', true);?>
    task->left;?>left, "class='form-control' autocomplete='off'");?>
    +
    +
    +
    task->legendLife;?>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    task->openedBy;?>openedBy];?>
    task->finishedBy;?>finishedBy, "class='form-control chosen'");?>
    task->finishedDate;?>finishedDate, 'class="form-control form-date"');?>
    task->canceledBy;?>canceledBy, 'class="form-control chosen"');?>
    task->canceledDate;?>canceledDate, 'class="form-control form-date"');?>
    task->closedBy;?>closedBy, 'class="form-control chosen"');?>
    task->closedReason;?>task->reasonList, $task->closedReason, 'class="form-control chosen"');?>
    task->closedDate;?>closedDate, 'class="form-control form-date"');?>
    +
    -
    -
    - comment;?> -
    -
    -
    - files;?> -
    fetch('file', 'buildform');?>
    -
    -
    - lastEditedDate);?> - save) . html::linkButton($lang->goback, $this->inlink('view', "taskID=$task->id")) . html::hidden('consumed', $task->consumed);?>
    -
    -
    -
    -
    -
    - task->legendBasic;?> - - parent)):?> - - - - - - - - - - global->flow != 'onlyTask' and $project->type != 'ops'):?> - - - - - - - - - - ' id='teamTr'> - - - - - - - - children)):?> - - - - - - - - - - - - - -
    task->project;?>project, 'class="form-control chosen" onchange="loadAll(this.value)"');?>
    task->module;?>module, 'class="form-control chosen" onchange="loadModuleRelated()"');?>
    task->story;?>story, "class='form-control chosen'");?>
    task->assignedTo;?>assignedTo, "class='form-control chosen'");?>
    task->team;?>task->team, '', "class='form-control btn' data-toggle='modalTeam'");?>
    task->type;?>task->typeList, $task->type, "class='form-control chosen'");?>
    task->status;?>task->statusList, $task->status, "class='form-control chosen'");?>
    task->pri;?>task->priList, $task->pri, "class='form-control chosen'");?>
    task->mailto;?> - acl == 'private' ? $members : $users, str_replace(' ' , '', $task->mailto), 'class="form-control" multiple');?> - fetch('my', 'buildContactLists');?> -
    -
    -
    - task->legendEffort;?> - - - - - - - - - - - - - - - - - - - - - - - - - -
    task->estStarted;?>estStarted, "class='form-control form-date'");?>
    task->realStarted;?>realStarted, "class='form-control form-date'");?>
    task->deadline;?>deadline, "class='form-control form-date'");?>
    task->estimate;?>estimate, "class='form-control' autocomplete='off'");?>
    task->consumed;?>consumed . ' '; common::printIcon('task', 'recordEstimate', "taskID=$task->id", $task, 'list', '', '', 'iframe', true);?>
    task->left;?>left, "class='form-control' autocomplete='off'");?>
    -
    -
    - task->legendLife;?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    task->openedBy;?>openedBy];?>
    task->finishedBy;?>finishedBy, "class='form-control chosen'");?>
    task->finishedDate;?>finishedDate, 'class="form-control form-date"');?>
    task->canceledBy;?>canceledBy, 'class="form-control chosen"');?>
    task->canceledDate;?>canceledDate, 'class="form-control form-date"');?>
    task->closedBy;?>closedBy, 'class="form-control chosen"');?>
    task->closedReason;?>task->reasonList, $task->closedReason, 'class="form-control chosen"');?>
    task->closedDate;?>closedDate, 'class="form-control form-date"');?>
    -
    + -
    +
    - - diff --git a/module/task/view/editestimate.html.php b/module/task/view/editestimate.html.php index 0906b25a3c..5fc495b54b 100644 --- a/module/task/view/editestimate.html.php +++ b/module/task/view/editestimate.html.php @@ -13,37 +13,35 @@ task->confirmRecord);?> -
    -
    -
    - task->editEstimate;?> - icons['edit']);?> +
    +
    +
    +

    task->editEstimate;?>

    +
    isLast) echo "onsubmit='return confirmLeft();'"?>> + + + + + + + + + + + + + + + + + + + + + +
    task->date;?>date, 'class="form-control form-date"');?>
    task->record;?>consumed, 'class="form-control" autocomplete="off"');?>
    task->left;?>left, 'class="form-control" autocomplete="off"');?>
    comment;?>work, "class=form-control");?>
    +
    -
    isLast) echo "onsubmit='return confirmLeft();'"?>> - - - - - - - - - - - - - - - - - - - - -
    task->date;?>date, 'class="form-control form-date"');?>
    task->record;?>consumed, 'class="form-control" autocomplete="off"');?>
    task->left;?>left, 'class="form-control" autocomplete="off"');?>
    comment;?>work, "class=form-control");?>
    - -
    -
    diff --git a/module/task/view/finish.html.php b/module/task/view/finish.html.php index 74f5736fdc..bedc286c10 100644 --- a/module/task/view/finish.html.php +++ b/module/task/view/finish.html.php @@ -13,49 +13,59 @@ -
    -
    - icons['task']);?> id;?> - createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?> - task->finish;?> icons['finish']);?> +
    +
    +
    +

    + id;?> + name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?> + arrow . $lang->task->finish;?> +

    +
    +
    + + + + + + + team)):?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    team) ? $lang->task->common . $lang->task->consumed : $lang->task->hasConsumed;?>consumed;?> workingHour;?>
    task->hasConsumed;?>myConsumed;?> workingHour;?>
    task->consumed;?>
    consumed, "class='form-control' autocomplete='off'");?> task->hour;?>
    team) ? $lang->task->assign : $lang->task->transferTo;?>nextBy, "class='form-control chosen'");?>
    task->finishedDate;?>
    files;?>fetch('file', 'buildform');?>
    comment;?>
    + task->finish);?> + goback, $this->session->taskList);?> +
    +
    +
    +
    -
    - - - - - - team)):?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    team) ? $lang->task->common . $lang->task->consumed : $lang->task->hasConsumed;?>consumed;?> workingHour;?>
    task->hasConsumed;?>myConsumed;?> workingHour;?>
    task->consumed;?>
    consumed, "class='form-control' autocomplete='off'");?> task->hour;?>
    team) ? $lang->task->assign : $lang->task->transferTo;?>nextBy, "class='form-control chosen'");?>
    task->finishedDate;?>
    files;?>fetch('file', 'buildform');?>
    comment;?>
    task->finish);?>
    -
    -
    diff --git a/module/task/view/pause.html.php b/module/task/view/pause.html.php index e62b4ed6e0..b8861d551e 100644 --- a/module/task/view/pause.html.php +++ b/module/task/view/pause.html.php @@ -12,26 +12,33 @@ ?> -
    -
    - icons['task']);?> id;?> - createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?> - task->pause;?> icons['pause']);?> +
    +
    +
    +

    + id;?> + name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?> + arrow . $lang->task->pause;?> +

    +
    + +
    + + + + + + + + + +
    comment;?>
    + + goback, $this->session->taskList);?> +
    +
    +
    +
    - -
    - - - - - - - - -
    comment;?>
    -
    -
    - -
    diff --git a/module/task/view/recordestimate.html.php b/module/task/view/recordestimate.html.php index 697cfa17ed..50f2c4ba5f 100644 --- a/module/task/view/recordestimate.html.php +++ b/module/task/view/recordestimate.html.php @@ -14,74 +14,76 @@ task->confirmRecord);?> task->noticeSaveRecord);?> -
    -
    - icons['task']);?> id;?> - createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?> - task->logEfforts;?> icons['recordEstimate']);?> +
    +
    +
    +

    + id;?> + name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?> + arrow . $lang->task->logEfforts;?> +

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + status, array('wait', 'pause', 'doing'))):?> + team) || (!empty($task->team) && in_array($task->assignedTo, array_keys($task->team)))) :?> + + + + + + + + + + + + + + + + + + + + + + + +
    idAB;?>task->date;?>task->consumedThisTime;?>task->leftThisTime;?>comment;?>actions;?>
    id;?>date;?>consumed;?>left;?>work;?> + status == 'wait' or $task->status == 'pause' or $task->status == 'doing') + { + common::printIcon('task', 'editEstimate', "estimateID=$estimate->id", '', 'list', 'pencil', '', 'showinonlybody', true); + common::printIcon('task', 'deleteEstimate', "estimateID=$estimate->id", '', 'list', 'remove', 'hiddenwin', 'showinonlybody'); + } + ?> +
    idAB;?>task->date;?>task->consumedThisTime;?>task->leftThisTime;?>comment;?>
    + + +
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - status, array('wait', 'pause', 'doing'))):?> - team) || (!empty($task->team) && in_array($task->assignedTo, array_keys($task->team)))) :?> - - - - - - - - - - - - - - - - - - - - - - - -
    idAB;?>task->date;?>task->consumedThisTime;?>task->leftThisTime;?>comment;?>actions;?>
    id;?>date;?>consumed;?>left;?>work;?> - status == 'wait' or $task->status == 'pause' or $task->status == 'doing') - { - common::printIcon('task', 'editEstimate', "estimateID=$estimate->id", '', 'list', 'pencil', '', 'showinonlybody', true); - common::printIcon('task', 'deleteEstimate', "estimateID=$estimate->id", '', 'list', 'remove', 'hiddenwin', 'showinonlybody'); - } - ?> -
    idAB;?>task->date;?>task->consumedThisTime;?>task->leftThisTime;?>comment;?>
    - - -
    -
    diff --git a/module/task/view/start.html.php b/module/task/view/start.html.php index fbb6beab8f..b9581e93b4 100644 --- a/module/task/view/start.html.php +++ b/module/task/view/start.html.php @@ -14,44 +14,53 @@ task->confirmFinish);?> -team) && key($task->team) != $this->app->user->account):?> -
    - -
    -

    task->deniedNotice;?>

    +
    + team) && key($task->team) != $this->app->user->account):?> +
    + +
    +

    task->deniedNotice;?>

    +
    -
    - -
    -
    - icons['task']);?> id;?> - createLink('task', 'view', 'task=' . $task->id), $task->name, '_blank');?> - task->start;?> icons['start']);?> + +
    +
    +

    + id;?> + name : html::a($this->createLink('task', 'view', 'task=' . $task->id), $task->name);?> + arrow . $lang->task->start;?> +

    +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    task->realStarted;?>
    realStarted == '0000-00-00' ? helper::today() : $task->realStarted, "class='form-control form-date'");?>
    task->consumed;?>
    consumed, "class='form-control' autocomplete='off'");?> task->hour;?>
    task->left;?>
    left, "class='form-control' autocomplete='off'");?> task->hour;?>
    comment;?>
    + task->start);?> + goback, $this->session->taskList);?> +
    +
    +
    +
    +
    -
    - - - - - - - - - - - - - - - - - - - - -
    task->realStarted;?>
    realStarted == '0000-00-00' ? helper::today() : $task->realStarted, "class='form-control form-date'");?>
    task->consumed;?>
    consumed, "class='form-control' autocomplete='off'");?> task->hour;?>
    task->left;?>
    left, "class='form-control' autocomplete='off'");?> task->hour;?>
    comment;?>
    task->start); ?>
    -
    -
    - diff --git a/module/testcase/js/browse.js b/module/testcase/js/browse.js index 0d3aeb0ae0..cdc140f65d 100644 --- a/module/testcase/js/browse.js +++ b/module/testcase/js/browse.js @@ -24,26 +24,8 @@ function confirmBatchDelete(actionLink) $(document).ready(function() { if(browseType == 'bysearch') ajaxGetSearchForm(); - setTimeout(function(){fixedTfootAction('#batchForm')}, 100); - setTimeout(function(){fixedTheadOfList('#caseList')}, 100); if($('#caseList thead th.w-title').width() < 150) $('#caseList thead th.w-title').width(150); - $('.dropdown-menu .with-search .menu-search').click(function(e) - { - e.stopPropagation(); - return false; - }).on('keyup change paste', 'input', function() - { - var val = $(this).val().toLowerCase(); - var $options = $(this).closest('.dropdown-menu.with-search').find('.option'); - if(val == '') return $options.removeClass('hide'); - $options.each(function() - { - var $option = $(this); - $option.toggleClass('hide', $option.text().toString().toLowerCase().indexOf(val) < 0 && $option.data('key').toString().toLowerCase().indexOf(val) < 0); - }); - }); - setModal4List('runCase', 'caseList'); if(flow == 'onlyTest') diff --git a/module/testcase/js/importfromlib.js b/module/testcase/js/importfromlib.js index 8099a6a25e..e245411100 100644 --- a/module/testcase/js/importfromlib.js +++ b/module/testcase/js/importfromlib.js @@ -23,5 +23,4 @@ function setModule(obj) $(function() { ajaxGetSearchForm('#querybox'); - setTimeout(function(){fixedTfootAction('#importFromLib')}, 500); }); diff --git a/module/testreport/control.php b/module/testreport/control.php index 15e8521f50..8e9896ccac 100644 --- a/module/testreport/control.php +++ b/module/testreport/control.php @@ -452,7 +452,6 @@ class testreport extends control { $this->projects = $this->project->getPairs('nocode'); $projectID = $this->project->saveState($objectID, $this->projects); - $this->lang->testreport->dividerMenu = $this->lang->project->dividerMenu; $this->project->setMenu($this->projects, $projectID); $this->lang->testreport->menu = $this->lang->project->menu; $this->lang->testreport->menu->testtask['subModule'] = 'testreport'; diff --git a/module/testsuite/js/library.js b/module/testsuite/js/library.js index eeaa60011a..c35f8d4b52 100644 --- a/module/testsuite/js/library.js +++ b/module/testsuite/js/library.js @@ -24,22 +24,4 @@ function confirmBatchDelete(actionLink) $(document).ready(function() { if(browseType == 'bysearch') ajaxGetSearchForm(); - setTimeout(function(){fixedTfootAction('#batchForm')}, 100); - setTimeout(function(){fixedTheadOfList('#caseList')}, 100); - - $('.dropdown-menu .with-search .menu-search').click(function(e) - { - e.stopPropagation(); - return false; - }).on('keyup change paste', 'input', function() - { - var val = $(this).val().toLowerCase(); - var $options = $(this).closest('.dropdown-menu.with-search').find('.option'); - if(val == '') return $options.removeClass('hide'); - $options.each(function() - { - var $option = $(this); - $option.toggleClass('hide', $option.text().toString().toLowerCase().indexOf(val) < 0 && $option.data('key').toString().toLowerCase().indexOf(val) < 0); - }); - }); }); diff --git a/module/testtask/js/cases.js b/module/testtask/js/cases.js index 8f8a14db11..63155a80fc 100644 --- a/module/testtask/js/cases.js +++ b/module/testtask/js/cases.js @@ -2,7 +2,5 @@ $(document).ready(function() { setModal4List('runCase', 'caseList', function(){$(".iframe").modalTrigger({width:1024, type:'iframe'});}, 1024); if(browseType == 'bysearch') ajaxGetSearchForm(); - setTimeout(function(){fixedTfootAction('#casesForm')}, 100); - setTimeout(function(){fixedTheadOfList('#caseList')}, 100); if($('#caseList thead th.w-title').width() < 150) $('#caseList thead th.w-title').width(150); }); diff --git a/module/todo/view/batchcreate.html.php b/module/todo/view/batchcreate.html.php index dae108ad72..c77ab514ec 100755 --- a/module/todo/view/batchcreate.html.php +++ b/module/todo/view/batchcreate.html.php @@ -16,7 +16,7 @@ diff --git a/module/tree/view/browsetask.html.php b/module/tree/view/browsetask.html.php index 538160f73a..75c2c9d2b0 100644 --- a/module/tree/view/browsetask.html.php +++ b/module/tree/view/browsetask.html.php @@ -11,93 +11,104 @@ */ ?> -
    -
    tree->common;?>
    +