diff --git a/config/config.php b/config/config.php index a59d0e88eb..d9430f6863 100644 --- a/config/config.php +++ b/config/config.php @@ -138,8 +138,9 @@ $config->features->checkClient = true; /* 文件上传设置。 Upload settings. */ $config->file = new stdclass(); -$config->file->dangers = 'php,php3,php4,phtml,php5,jsp,py,rb,asp,aspx,ashx,asa,cer,cdx,aspl,shtm,shtml,html,htm'; -$config->file->allowed = 'txt,doc,docx,dot,wps,wri,pdf,ppt,pptx,xls,xlsx,ett,xlt,xlsm,csv,jpg,jpeg,png,psd,gif,ico,bmp,swf,avi,rmvb,rm,mp3,mp4,3gp,flv,mov,movie,rar,zip,bz,bz2,tar,gz,mpp,rp,pdm,vsdx,vsd,sql'; +$config->file->dangers = 'php,php3,php4,phtml,php5,jsp,py,rb,asp,aspx,ashx,asa,cer,cdx,aspl,shtm,shtml,html,htm'; +$config->file->allowed = 'txt,doc,docx,dot,wps,wri,pdf,ppt,pptx,xls,xlsx,ett,xlt,xlsm,csv,jpg,jpeg,png,psd,gif,ico,bmp,swf,avi,rmvb,rm,mp3,mp4,3gp,flv,mov,movie,rar,zip,bz,bz2,tar,gz,mpp,rp,pdm,vsdx,vsd,sql'; +$config->file->storageType = 'fs'; // fs or s3 /* Upload settings. */ $config->allowedTags = '
diff --git a/module/bug/control.php b/module/bug/control.php index d42ddb861f..aa08869665 100644 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -61,7 +61,7 @@ class bug extends control } else { - $products = $this->product->getPairs(); + $products = $this->product->getPairs('', 0, 'program_asc'); } $this->view->products = $this->products = $products; @@ -401,7 +401,7 @@ class bug extends control else { setcookie('bugModule', 0, 0, $this->config->webRoot, '', $this->config->cookieSecure, false); - $location = $this->createLink('bug', 'browse', "productID={$this->post->product}&branch=$branch&browseType=unclosed¶m=0&orderBy=id_desc"); + $location = $this->createLink('bug', 'browse', "productID={$this->post->product}&branch=$branch&browseType=byModule¶m={$this->post->module}&orderBy=id_desc"); } if($this->app->getViewType() == 'xhtml') $location = $this->createLink('bug', 'view', "bugID=$bugID"); $response['locate'] = $location; @@ -514,7 +514,7 @@ class bug extends control if(empty($moduleOptionMenu)) die(js::locate(helper::createLink('tree', 'browse', "productID=$productID&view=story"))); /* Get products and projects. */ - $products = $this->config->CRProduct ? $this->products : $this->product->getPairs('noclosed'); + $products = $this->config->CRProduct ? $this->products : $this->product->getPairs('noclosed', 0, 'program_asc'); $projects = array(0 => ''); if($projectID) { diff --git a/module/bug/js/common.js b/module/bug/js/common.js index d5dbd1b402..92ff94764e 100644 --- a/module/bug/js/common.js +++ b/module/bug/js/common.js @@ -544,7 +544,7 @@ function notice() if($('#openedBuild').find('option').length <= 1) { var html = ''; - if($('#execution').length == 0 || $('#execution').val() == '') + if($('#execution').length == 0 || $('#execution').val() == 0) { var branch = $('#branch').val(); if(typeof(branch) == 'undefined') branch = 0; @@ -556,7 +556,9 @@ function notice() else { executionID = $('#execution').val(); - link = createLink('build', 'create','executionID=' + executionID + '&productID=' + $('#product').val()); + productID = $('#product').val(); + projectID = $('#project').val(); + link = createLink('build', 'create','executionID=' + executionID + '&productID=' + productID + '&projectID=' + projectID); link += config.requestType == 'GET' ? '&onlybody=yes' : '?onlybody=yes'; html += '' + createBuild + ' '; html += '' + refresh + ''; diff --git a/module/bug/lang/zh-cn.php b/module/bug/lang/zh-cn.php index bc104b0318..30c19c2640 100644 --- a/module/bug/lang/zh-cn.php +++ b/module/bug/lang/zh-cn.php @@ -19,7 +19,7 @@ $lang->bug->module = '所属模块'; $lang->bug->moduleAB = '模块'; $lang->bug->project = '所属项目'; $lang->bug->execution = '所属' . $lang->executionCommon; -$lang->bug->story = "相关{$lang->SRCommon}"; +$lang->bug->story = "相关需求"; $lang->bug->storyVersion = "{$lang->SRCommon}版本"; $lang->bug->color = '标题颜色'; $lang->bug->task = '相关任务'; diff --git a/module/bug/view/create.html.php b/module/bug/view/create.html.php index eb8f6ca079..7dba03779c 100644 --- a/module/bug/view/create.html.php +++ b/module/bug/view/create.html.php @@ -325,7 +325,7 @@ js::set('blockID', $blockID); - + id);?> diff --git a/module/bug/view/view.html.php b/module/bug/view/view.html.php index 40338b4cd7..c0eda594be 100644 --- a/module/bug/view/view.html.php +++ b/module/bug/view/view.html.php @@ -117,7 +117,7 @@ type != 'normal'):?> - product->branch, $lang->product->branchName[$product->name]);?> + product->branch, $lang->product->branchName[$product->type]);?> product&branch=$bug->branch", $branchName)) echo $branchName;?> @@ -240,7 +240,7 @@ - bug->execution;?> + bug->execution;?> execution) echo html::a($this->createLink('execution', 'browse', "executionid=$bug->execution"), $bug->executionName);?> diff --git a/module/caselib/control.php b/module/caselib/control.php index 6c28247299..f2e28ecbd8 100644 --- a/module/caselib/control.php +++ b/module/caselib/control.php @@ -505,7 +505,7 @@ class caselib extends control $file = $file[0]; $fileName = $this->file->savePath . $this->file->getSaveName($file['pathname']); - helper::saveFile($file['tmpname'], $fileName); + move_uploaded_file($file['tmpname'], $fileName); $rows = $this->file->parseCSV($fileName); $fields = $this->testcase->getImportFields($productID); diff --git a/module/caselib/model.php b/module/caselib/model.php index 328bf2572a..55b27f7336 100644 --- a/module/caselib/model.php +++ b/module/caselib/model.php @@ -29,7 +29,9 @@ class caselibModel extends model if($libraries) { - $currentLibName = zget($libraries, $libID, ''); + $libName = ''; + if(!isset($libraries[$libID])) $libName = $this->dao->select('name')->from(TABLE_TESTSUITE)->where('id')->eq($libID)->fetch('name'); + $currentLibName = zget($libraries, $libID, $libName); setCookie("lastCaseLib", $libID, $this->config->cookieLife, $this->config->webRoot, '', false, true); $dropMenuLink = helper::createLink('caselib', 'ajaxGetDropMenu', "objectID=$libID&module=caselib&method=browse"); diff --git a/module/common/lang/menu.php b/module/common/lang/menu.php index 3b92fdd05b..b9fe0c7024 100644 --- a/module/common/lang/menu.php +++ b/module/common/lang/menu.php @@ -183,7 +183,7 @@ $lang->project->homeMenu->browse = array('link' => ($config->systemMode == 'new' $lang->scrum->menu = new stdclass(); $lang->scrum->menu->index = array('link' => "{$lang->dashboard}|project|index|project=%s"); $lang->scrum->menu->execution = array('link' => "$lang->executionCommon|project|execution|status=all&projectID=%s"); -$lang->scrum->menu->story = array('link' => "$lang->SRCommon|projectstory|story|projectID=%s", 'subModule' => 'projectstory', 'alias' => 'story,track'); +$lang->scrum->menu->story = array('link' => "$lang->SRCommon|projectstory|story|projectID=%s", 'subModule' => 'projectstory,tree', 'alias' => 'story,track'); $lang->scrum->menu->doc = array('link' => "{$lang->doc->common}|doc|objectLibs|type=project&objectID=%s", 'subModule' => 'doc'); $lang->scrum->menu->qa = array('link' => "{$lang->qa->common}|project|bug|projectID=%s", 'subModule' => 'testcase,testtask,bug,testreport', 'alias' => 'bug,testtask,testcase,testreport'); $lang->scrum->menu->devops = array('link' => "{$lang->repo->common}|repo|browse|repoID=0&branchID=&objectID=%s", 'subModule' => 'repo'); diff --git a/module/doc/view/editlib.html.php b/module/doc/view/editlib.html.php index 49361eb4b7..c72d7835b5 100644 --- a/module/doc/view/editlib.html.php +++ b/module/doc/view/editlib.html.php @@ -43,7 +43,7 @@ doclib->control;?> - type == 'product' or $lib->type == 'execution' or ($config->systemMode == 'classic' and $lib->type != 'custom')):?> + type == 'product' or $lib->type == 'execution'):?> doclib->aclListA, $lib->acl, "onchange='toggleAcl(this.value, \"lib\")'")?> doc->noticeAcl['lib'][$lib->type][$lib->acl];?> diff --git a/module/execution/control.php b/module/execution/control.php index 5382f57de5..d3e55078a0 100644 --- a/module/execution/control.php +++ b/module/execution/control.php @@ -1361,6 +1361,13 @@ class execution extends control if(!empty($_POST)) { + $oldPlans = $this->dao->select('plan')->from(TABLE_PROJECTPRODUCT)->where('project')->eq($executionID)->fetchPairs('plan'); + $oldPlanStories = $this->dao->select('t1.story')->from(TABLE_PROJECTSTORY)->alias('t1') + ->leftJoin(TABLE_PROJECTPRODUCT)->alias('t2')->on('t1.project=t2.project') + ->where('t1.project')->eq($executionID) + ->andWhere('t2.plan')->in(array_keys($oldPlans)) + ->fetchAll('story'); + $oldProducts = $this->execution->getProducts($executionID); $changes = $this->execution->update($executionID); if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError())); @@ -1386,6 +1393,16 @@ class execution extends control $actionID = $this->loadModel('action')->create($this->objectType, $executionID, 'edited', '', $products); $this->action->logHistory($actionID, $changes); } + + /* Link the plan stories. */ + $diffResult = array_diff($oldPlans, $_POST['plans']); + if(!empty($_POST['plans']) and !empty($diffResult)) + { + $projectID = $this->dao->select('project')->from(TABLE_EXECUTION)->where('id')->eq($executionID)->fetch('project'); + $this->loadModel('productplan')->linkProject($executionID, $_POST['plans'], $oldPlanStories); + $this->loadModel('productplan')->linkProject($projectID, $_POST['plans']); + } + $this->executeHooks($executionID); $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('view', "executionID=$executionID"))); } @@ -2044,6 +2061,13 @@ class execution extends control if($unresolvedBugs->count) $tips .= sprintf($this->lang->execution->unresolvedBug, $unresolvedBugs->count); if($tips) $tips = $this->lang->execution->unfinishedExecution . $tips; + $type = $this->dao->select('type')->from(TABLE_EXECUTION)->where('id')->eq($executionID)->fetch('type'); + if($type == 'stage') + { + if($tips) $tips = str_replace($this->lang->executionCommon, $this->lang->project->stage, $tips); + $this->lang->execution->confirmDelete = str_replace($this->lang->executionCommon, $this->lang->project->stage, $this->lang->execution->confirmDelete); + } + echo js::confirm($tips . sprintf($this->lang->execution->confirmDelete, $this->executions[$executionID]), $this->createLink('execution', 'delete', "executionID=$executionID&confirm=yes")); exit; } @@ -2817,6 +2841,10 @@ class execution extends control $this->fetch('file', 'export2' . $this->post->fileType, $_POST); } + $this->loadModel('project'); + $project = $this->project->getByID($this->session->project); + if($project->model == 'waterfall') $this->lang->executionCommon = $this->lang->project->stage; + $this->view->fileName = (in_array($status, array('all', 'undone')) ? $this->lang->execution->$status : $this->lang->execution->statusList[$status]) . $this->lang->executionCommon; $this->display(); diff --git a/module/execution/lang/de.php b/module/execution/lang/de.php index 86162d4178..87ed04529d 100644 --- a/module/execution/lang/de.php +++ b/module/execution/lang/de.php @@ -277,7 +277,7 @@ $lang->execution->howToUpdateBurn = " Story verknüpfen。"; $lang->execution->haveDraft = "There are %s draft stories can't be linked."; -$lang->execution->doneExecutions = 'Erledigt'; +$lang->execution->doneExecutions = 'Erledigt'; $lang->execution->selectDept = 'Abteilung wählen'; $lang->execution->selectDeptTitle = 'Abteilung wählen'; $lang->execution->copyTeam = 'Team kopieren'; @@ -285,12 +285,13 @@ $lang->execution->copyFromTeam = "Kopieren von {$lang->executionCommon} T $lang->execution->noMatched = "$lang->executionCommon mit '%s' konnte nicht gefunden werden."; $lang->execution->copyTitle = "Wählen Sie ein {$lang->executionCommon} zum Kopieren."; $lang->execution->copyTeamTitle = "Wählen Sie ein {$lang->executionCommon} Team zum Kopieren."; -$lang->execution->copyNoExecution = "{$lang->executionCommon} kann nicht kopiert werden."; -$lang->execution->copyFromExecution = "Kopie von {$lang->executionCommon} %s"; +$lang->execution->copyNoExecution = "{$lang->executionCommon} kann nicht kopiert werden."; +$lang->execution->copyFromExecution = "Kopie von {$lang->executionCommon} %s"; $lang->execution->cancelCopy = 'Kopieren abbrechen'; $lang->execution->byPeriod = 'Nach Zeit'; $lang->execution->byUser = 'Nach Benutzer'; -$lang->execution->noExecution = 'Keine Projekte. '; +$lang->execution->noExecution = 'Keine Projekte. '; +$lang->execution->noExecutions = "No {$lang->execution->common}."; $lang->execution->noMembers = 'Keine Mitglieder. '; $lang->execution->workloadTotal = "The cumulative workload ratio should not exceed 100, and the total workload under the current product is: %s"; $lang->execution->linkPRJStoryTip = "(Link {$lang->SRCommon} comes from {$lang->SRCommon} linked under the project)"; diff --git a/module/execution/lang/en.php b/module/execution/lang/en.php index 21dc5aed81..f68dd5d4bb 100644 --- a/module/execution/lang/en.php +++ b/module/execution/lang/en.php @@ -291,6 +291,7 @@ $lang->execution->cancelCopy = 'Cancel Copy'; $lang->execution->byPeriod = 'By Time'; $lang->execution->byUser = 'By User'; $lang->execution->noExecution = "No {$lang->executionCommon}. "; +$lang->execution->noExecutions = "No {$lang->execution->common}."; $lang->execution->noMembers = 'No team members yet. '; $lang->execution->workloadTotal = "The cumulative workload ratio should not exceed 100, and the total workload under the current product is: %s"; // $lang->execution->linkProjectStoryTip = "(Link {$lang->SRCommon} comes from {$lang->SRCommon} linked under the execution)"; diff --git a/module/execution/lang/fr.php b/module/execution/lang/fr.php index 5e9a4a1e0b..70eb03758b 100644 --- a/module/execution/lang/fr.php +++ b/module/execution/lang/fr.php @@ -277,7 +277,7 @@ $lang->execution->howToUpdateBurn = "executionCommon} qui sont associées à {$lang->productCommon} et vérifiez qu'elles ont bien été validées."; $lang->execution->productStories = "Les stories associées au {$lang->executionCommon} sont une portion des stories associées au {$lang->productCommon}. Les stories ne peuvent être associées à un {$lang->executionCommon} qu'après avoir été validées. Associer Stories maintenant."; $lang->execution->haveDraft = "%s stories sont encore en conception, elles ne peuvent pas être associées au {$lang->executionCommon} actuellement."; -$lang->execution->doneExecutions = 'Terminé'; +$lang->execution->doneExecutions = 'Terminé'; $lang->execution->selectDept = 'Sélection Compartiment'; $lang->execution->selectDeptTitle = 'Sélection Utilisateur'; $lang->execution->copyTeam = 'Copier Equipe'; @@ -285,12 +285,13 @@ $lang->execution->copyFromTeam = "Copié de l'Equipe {$lang->executionCom $lang->execution->noMatched = "Aucun $lang->executionCommon inclus '%s' ne peut être trouvé."; $lang->execution->copyTitle = "Choisissez un {$lang->executionCommon} à copier."; $lang->execution->copyTeamTitle = "Choisissez une Equipe {$lang->executionCommon} à copier."; -$lang->execution->copyNoExecution = "Aucun {$lang->executionCommon} ne peut être copié."; -$lang->execution->copyFromExecution = "Copié du {$lang->executionCommon} %s"; +$lang->execution->copyNoExecution = "Aucun {$lang->executionCommon} ne peut être copié."; +$lang->execution->copyFromExecution = "Copié du {$lang->executionCommon} %s"; $lang->execution->cancelCopy = 'Annuler la copie'; $lang->execution->byPeriod = 'Par Temps'; $lang->execution->byUser = 'Par Utilisateur'; -$lang->execution->noExecution = "Aucun {$lang->executionCommon}. "; +$lang->execution->noExecution = "Aucun {$lang->executionCommon}. "; +$lang->execution->noExecutions = "Aucun {$lang->execution->common}."; $lang->execution->noMembers = "Actuellement il n'y a aucun membre dans l'équipe. On ne va pas aller loin... "; $lang->execution->workloadTotal = "The cumulative workload ratio should not exceed 100, and the total workload under the current product is: %s"; $lang->execution->linkPRJStoryTip = "(Link {$lang->SRCommon} comes from {$lang->SRCommon} linked under the project)"; diff --git a/module/execution/lang/vi.php b/module/execution/lang/vi.php index da7273e33c..cdd7cb6076 100644 --- a/module/execution/lang/vi.php +++ b/module/execution/lang/vi.php @@ -277,7 +277,7 @@ $lang->execution->howToUpdateBurn = " Liên kết câu chuyện now."; $lang->execution->haveDraft = "%s câu chuyện đang nháp, bởi vậy chúng không thể liên kết."; -$lang->execution->doneExecutions = 'Kết thúc'; +$lang->execution->doneExecutions = 'Kết thúc'; $lang->execution->selectDept = 'Chọn phòng/ban'; $lang->execution->selectDeptTitle = 'Chọn người dùng'; $lang->execution->copyTeam = 'Copy đội nhóm'; @@ -285,12 +285,13 @@ $lang->execution->copyFromTeam = "Sao chép từ {$lang->executionCommon} $lang->execution->noMatched = "Không có $lang->executionCommon bao gồm '%s' có thể được tìm thấy."; $lang->execution->copyTitle = "Chọn một {$lang->executionCommon} để sao chép."; $lang->execution->copyTeamTitle = "Chọn một {$lang->executionCommon} đội nhóm để sao chép."; -$lang->execution->copyNoExecution = "Không có {$lang->executionCommon} có thể sao chép."; -$lang->execution->copyFromExecution = "Sao chép từ {$lang->executionCommon} %s"; +$lang->execution->copyNoExecution = "Không có {$lang->executionCommon} có thể sao chép."; +$lang->execution->copyFromExecution = "Sao chép từ {$lang->executionCommon} %s"; $lang->execution->cancelCopy = 'Hủy sao chép'; $lang->execution->byPeriod = 'Theo thời gian'; $lang->execution->byUser = 'Theo người dùng'; -$lang->execution->noExecution = "Không có {$lang->executionCommon} nào"; +$lang->execution->noExecution = "Không có {$lang->executionCommon} nào"; +$lang->execution->noExecutions = "Không có {$lang->execution->common} nào"; $lang->execution->noMembers = 'Không có thành viên đội nhóm nào'; $lang->execution->workloadTotal = "The cumulative workload ratio should not exceed 100, and the total workload under the current product is: %s"; $lang->execution->linkPRJStoryTip = "(Link {$lang->SRCommon} comes from {$lang->SRCommon} linked under the project)"; diff --git a/module/execution/lang/zh-cn.php b/module/execution/lang/zh-cn.php index b35489f57c..503582f9aa 100644 --- a/module/execution/lang/zh-cn.php +++ b/module/execution/lang/zh-cn.php @@ -291,6 +291,7 @@ $lang->execution->cancelCopy = '取消复制'; $lang->execution->byPeriod = '按时间段'; $lang->execution->byUser = '按用户'; $lang->execution->noExecution = "暂时没有{$lang->executionCommon}。"; +$lang->execution->noExecutions = "暂时没有{$lang->execution->common}。"; $lang->execution->noMembers = '暂时没有团队成员。'; $lang->execution->workloadTotal = "工作量占比累计不应当超过100, 当前产品下的工作量之和为%s"; // $lang->execution->linkProjectStoryTip = "(关联{$lang->SRCommon}来源于项目下所关联的{$lang->SRCommon})"; diff --git a/module/execution/lang/zh-tw.php b/module/execution/lang/zh-tw.php index a41f945e45..09c12bc18b 100644 --- a/module/execution/lang/zh-tw.php +++ b/module/execution/lang/zh-tw.php @@ -291,6 +291,7 @@ $lang->execution->cancelCopy = '取消複製'; $lang->execution->byPeriod = '按時間段'; $lang->execution->byUser = '按用戶'; $lang->execution->noExecution = "暫時沒有{$lang->executionCommon}。"; +$lang->execution->noExecutions = "暫時沒有{$lang->execution->common}。"; $lang->execution->noMembers = '暫時沒有團隊成員。'; $lang->execution->workloadTotal = "工作量占比累計不應當超過100, 當前產品下的工作量之和為%s"; // $lang->execution->linkProjectStoryTip = "(關聯{$lang->SRCommon}來源於項目下所關聯的{$lang->SRCommon})"; diff --git a/module/execution/model.php b/module/execution/model.php index e3f33659d8..68f135c88c 100644 --- a/module/execution/model.php +++ b/module/execution/model.php @@ -69,6 +69,15 @@ class executionModel extends model /* Unset story, bug, build and testtask if type is ops. */ $execution = $this->getByID($executionID); + if($execution->type == 'stage') + { + global $lang; + $this->loadModel('execution'); + $this->app->loadLang('project'); + $lang->executionCommon = $lang->project->stage; + include $this->app->getModulePath('execution') . 'lang/' . $this->app->getClientLang() . '.php'; + } + if($execution and $execution->lifetime == 'ops') { unset($this->lang->execution->menu->story); @@ -387,10 +396,10 @@ class executionModel extends model $this->app->loadLang('doc'); $lib = new stdclass(); $lib->execution = $executionID; - $lib->name = $this->lang->doclib->main['execution']; - $lib->type = 'execution'; - $lib->main = '1'; - $lib->acl = 'default'; + $lib->name = $type == 'stage' ? str_replace($this->lang->executionCommon, $this->lang->project->stage, $this->lang->doclib->main['execution']) : $this->lang->doclib->main['execution']; + $lib->type = 'execution'; + $lib->main = '1'; + $lib->acl = 'default'; $this->dao->insert(TABLE_DOCLIB)->data($lib)->exec(); $whitelist = explode(',', $sprint->whitelist); @@ -840,7 +849,7 @@ class executionModel extends model */ public function getSwitcher($executionID, $currentModule, $currentMethod) { - if(in_array($currentMethod, array('index', 'all', 'batchedit', 'create'))) return; + if($currentModule == 'execution' and in_array($currentMethod, array('index', 'all', 'batchedit', 'create'))) return; $currentExecutionName = $this->lang->execution->common; if($executionID) @@ -1151,6 +1160,11 @@ class executionModel extends model $module = 'execution'; $method = 'story'; } + if($module == 'product' and $method == 'showerrornone') + { + $module = 'execution'; + $method = 'task'; + } if($module == 'execution' and $method == 'create') return; if($extra != '') @@ -2114,7 +2128,7 @@ class executionModel extends model $this->loadModel('story')->setStage($storyID); $this->unlinkCases($executionID, $storyID); - $objectType = $executionID == $this->session->project ? unlinkedfromproject : unlinkedfromexecution; + $objectType = $executionID == $this->session->project ? 'unlinkedfromproject' : 'unlinkedfromexecution'; $this->loadModel('action')->create('story', $storyID, $objectType, '', $executionID); $tasks = $this->dao->select('id')->from(TABLE_TASK)->where('story')->eq($storyID)->andWhere('execution')->eq($executionID)->andWhere('status')->in('wait,doing')->fetchPairs('id'); diff --git a/module/execution/view/all.html.php b/module/execution/view/all.html.php index 1aefbfff89..eab25a40f5 100644 --- a/module/execution/view/all.html.php +++ b/module/execution/view/all.html.php @@ -38,6 +38,16 @@ td.hours {text-align: right; overflow: hidden; text-overflow: ellipsis; white-sp + + + + execution->noExecutions : $lang->execution->noExecution;?> + + createLink('execution', 'create', "projectID=$projectID"), " " . ((($from == 'execution') and ($config->systemMode == 'new')) ? $lang->execution->createExec : $lang->execution->create), '', "class='btn btn-info' data-app='$from'");?> + + + + ' data-ride='table'> @@ -154,6 +164,7 @@ td.hours {text-align: right; overflow: hidden; text-overflow: ellipsis; white-sp +
+ execution->noExecutions : $lang->execution->noExecution;?> + + createLink('execution', 'create', "projectID=$projectID"), " " . ((($from == 'execution') and ($config->systemMode == 'new')) ? $lang->execution->createExec : $lang->execution->create), '', "class='btn btn-info' data-app='$from'");?> + +