diff --git a/config/filter.php b/config/filter.php index eaa7706976..e173dd69be 100644 --- a/config/filter.php +++ b/config/filter.php @@ -97,9 +97,11 @@ $filter->bug->default->cookie['preProductID'] = 'int'; $filter->bug->create->cookie['preBranch'] = 'int'; $filter->bug->export->cookie['checkedItem'] = 'reg::checked'; -$filter->doc->browse->cookie['browseType'] = 'reg::browseType'; -$filter->doc->default->cookie['from'] = 'code'; -$filter->doc->default->cookie['product'] = 'int'; +$filter->doc->browse->cookie['browseType'] = 'reg::browseType'; +$filter->doc->alllibs->cookie['browseType'] = 'reg::browseType'; +$filter->doc->objectlibs->cookie['browseType'] = 'reg::browseType'; +$filter->doc->default->cookie['from'] = 'code'; +$filter->doc->default->cookie['product'] = 'int'; $filter->doc->showfiles->cookie['docFilesViewType'] = 'code'; $filter->file->download->cookie[$config->sessionVar] = 'code'; diff --git a/module/company/lang/en.php b/module/company/lang/en.php index 06eb84d09a..35bd18740d 100644 --- a/module/company/lang/en.php +++ b/module/company/lang/en.php @@ -12,7 +12,7 @@ $lang->company->common = 'Company'; $lang->company->index = "Home"; $lang->company->edit = "Edit Company"; -$lang->company->view = "Company Info"; +$lang->company->view = "Company Information"; $lang->company->browse = "User List"; $lang->company->dynamic = "Dynamic"; $lang->company->orgView = 'View'; @@ -24,7 +24,7 @@ $lang->company->address = 'Mailing Address'; $lang->company->zipcode = 'Zip Code'; $lang->company->website = 'Website'; $lang->company->backyard = 'Intranet'; -$lang->company->guest = 'Anonymous Login'; +$lang->company->guest = 'Guest Login'; $lang->company->admins = 'Administrators'; $lang->company->product = $lang->productCommon; diff --git a/module/doc/control.php b/module/doc/control.php index f2e36ff588..1121c71599 100644 --- a/module/doc/control.php +++ b/module/doc/control.php @@ -619,7 +619,11 @@ class doc extends control $libs = $this->doc->getAllLibsByType($type, $pager, $product); $subLibs = array(); - if($type == 'product' or $type == 'project') $subLibs = $this->doc->getSubLibGroups($type, array_keys($libs)); + if($type == 'product' or $type == 'project') + { + $subLibs = $this->doc->getSubLibGroups($type, array_keys($libs)); + if($this->cookie->browseType == 'bylist') $this->view->users = $this->loadModel('user')->getPairs('noletter'); + } if($type == 'custom') $this->view->itemCounts = $this->doc->statLibCounts(array_keys($libs)); $this->view->type = $type; @@ -739,7 +743,7 @@ class doc extends control public function objectLibs($type, $objectID, $from = 'doc') { $this->from = $from; - setcookie('from', $from, $this->config->cookieLife, $this->config->webRoot); + setcookie('from', $from, $this->config->cookieLife, $this->config->webRoot); $table = $type == 'product' ? TABLE_PRODUCT : TABLE_PROJECT; $object = $this->dao->select('id,name')->from($table)->where('id')->eq($objectID)->fetch(); diff --git a/module/doc/css/common.css b/module/doc/css/common.css index 23926c7d45..b0dcd89fc1 100644 --- a/module/doc/css/common.css +++ b/module/doc/css/common.css @@ -26,9 +26,6 @@ .col-md-size .table .c-datetime {display: none;} .table-files .btn {padding:0 6px;} -.table-files .c-actions .btn > .icon {opacity: 0;} -.table-files .c-actions .btn > .icon.text-yellow, -.table-files tr:hover .c-actions .btn > .icon {opacity: 1;} #docsTree li > a > .icon {opacity: .65;} diff --git a/module/doc/js/browse.js b/module/doc/js/browse.js index be2e21c800..240dfcabf5 100644 --- a/module/doc/js/browse.js +++ b/module/doc/js/browse.js @@ -17,12 +17,6 @@ function browseBySearch() $('#queryBox').addClass('show'); } -function setBrowseType(type) -{ - $.cookie('browseType', type, {expires:config.cookieLife, path:config.webRoot}); - location.href = location.href; -} - $(function(){ $('#' + browseType + 'Tab').addClass('active'); if(browseType == "bysearch") diff --git a/module/doc/js/common.js b/module/doc/js/common.js index b737d4b5e9..e2e3e42572 100644 --- a/module/doc/js/common.js +++ b/module/doc/js/common.js @@ -16,6 +16,12 @@ function toggleAcl(acl) } } +function setBrowseType(type) +{ + $.cookie('browseType', type, {expires:config.cookieLife, path:config.webRoot}); + location.href = location.href; +} + $(document).ready(function() { $('.libs-group.sort').sortable( diff --git a/module/doc/lang/en.php b/module/doc/lang/en.php index 5687eaa540..79e8ab49f6 100644 --- a/module/doc/lang/en.php +++ b/module/doc/lang/en.php @@ -44,6 +44,7 @@ $lang->doc->acl = 'Right'; $lang->doc->groups = 'Groups'; $lang->doc->users = 'Users'; $lang->doc->item = ' Item'; +$lang->doc->num = 'Docs'; $lang->doc->searchResult = 'Search Result'; $lang->doc->moduleDoc = 'By Module'; diff --git a/module/doc/lang/zh-cn.php b/module/doc/lang/zh-cn.php index 278af6fb23..4f2fd54078 100644 --- a/module/doc/lang/zh-cn.php +++ b/module/doc/lang/zh-cn.php @@ -44,6 +44,7 @@ $lang->doc->acl = '权限'; $lang->doc->groups = '分组'; $lang->doc->users = '用户'; $lang->doc->item = '项'; +$lang->doc->num = '文档数量'; $lang->doc->searchResult = '搜索结果'; $lang->doc->moduleDoc = '按模块浏览'; diff --git a/module/doc/view/alllibs.html.php b/module/doc/view/alllibs.html.php index a8c1074660..def2ed82a0 100644 --- a/module/doc/view/alllibs.html.php +++ b/module/doc/view/alllibs.html.php @@ -11,11 +11,14 @@ */ ?> -app->user->feedback) && !$this->cookie->feedbackView && $this->from == 'doc') ? true : false;?> +app->user->feedback) && !$this->cookie->feedbackView) ? true : false;?>
+ cookie->browseType == 'bylist'):?> + +
@@ -25,6 +28,12 @@ projectCommon;?>
+
@@ -36,7 +45,7 @@
-
name;?>
+
collector, $this->app->user->account) !== false ? " " : '') . $lib->name;?>
id] . $lang->doc->item;?>
@@ -45,7 +54,9 @@
- id&objectType=lib", "", 'hiddenwin', "title='{$lang->doc->collect}' class='btn btn-link'")?> + collector, ',' . $this->app->user->account . ',') !== false ? 'icon-star text-yellow' : 'icon-star-empty';?> + collector, ',' . $this->app->user->account . ',') !== false ? $lang->doc->cancelCollection : $lang->doc->collect;?> + id&objectType=doclib");?>" title="" class='btn btn-link ajaxCollect'> id", "", '', "title='{$lang->edit}' class='btn btn-link iframe'")?> id", "", 'hiddenwin', "title='{$lang->delete}' class='btn btn-link'")?> id&type=doc", "", '', "title='{$lang->tree->manage}' class='btn btn-link'")?> @@ -58,5 +69,6 @@
+
diff --git a/module/doc/view/alllibsbylist.html.php b/module/doc/view/alllibsbylist.html.php new file mode 100644 index 0000000000..fcd5c50f25 --- /dev/null +++ b/module/doc/view/alllibsbylist.html.php @@ -0,0 +1,68 @@ +
+
+
+
+ + doc->custom;?> + productCommon;?> + projectCommon;?> + +
+ +
+
+ + + + + product->name;?> + project->name;?> + doc->libName;?> + + + + + + + + + + + + + createLink('doc', 'objectLibs', "type=$type&objectID=$lib->id") : $this->createLink('doc', 'browse', "libID=$lib->id");?> + + + + + + + + + + + + +
doc->num;?>doc->addedBy;?>doc->addedDate;?>actions;?>
name);?> + + id] . $lang->doc->item;?> + + id]) . $lang->doc->item;?> + + createdBy) echo zget($users, $lib->createdBy);?>createdDate != '00-00-00 00:00:00') echo formatTime($lib->createdDate, 'm-d h:i');?> + collector, ',' . $this->app->user->account . ',') !== false ? 'icon-star text-yellow' : 'icon-star-empty';?> + collector, ',' . $this->app->user->account . ',') !== false ? $lang->doc->cancelCollection : $lang->doc->collect;?> + id&objectType=doclib");?>" title="" class='btn btn-link ajaxCollect'> + id", "", '', "title='{$lang->edit}' class='btn btn-link iframe'")?> + id", "", 'hiddenwin', "title='{$lang->delete}' class='btn btn-link'")?> + id&type=doc", "", '', "title='{$lang->tree->manage}' class='btn btn-link'")?> +
+
+ +
+
diff --git a/module/doc/view/objectlibs.html.php b/module/doc/view/objectlibs.html.php index 8e3c4ceea9..36155a33b8 100644 --- a/module/doc/view/objectlibs.html.php +++ b/module/doc/view/objectlibs.html.php @@ -15,6 +15,9 @@ from == 'doc'):?> + cookie->browseType == 'bylist'):?> + +
@@ -22,6 +25,10 @@ name;?>
+
diff --git a/module/doc/view/objectlibsbylist.html.php b/module/doc/view/objectlibsbylist.html.php new file mode 100644 index 0000000000..1e7768410d --- /dev/null +++ b/module/doc/view/objectlibsbylist.html.php @@ -0,0 +1,74 @@ +
+
+
+
+ name;?> +
+ +
+
+ + + + + + + + + + $lib):?> + + doc->custom->objectLibs, 'files') === false && $libID == 'files') continue;?> + doc->custom->objectLibs, 'customFiles') === false && isset($lib->main) && !$lib->main) continue;?> + + + id");?> + id");?> + + + + + + + +
doc->libName;?>doc->num;?>actions;?>
name);?>allCount . $lang->doc->item;?> + + collector, ',' . $this->app->user->account . ',') !== false ? 'icon-star text-yellow' : 'icon-star-empty';?> + collector, ',' . $this->app->user->account . ',') !== false ? $lang->doc->cancelCollection : $lang->doc->collect;?> + " title="" class='btn btn-link ajaxCollect'> + ", '', "title='{$lang->edit}' class='btn btn-link iframe'")?> + main)) common::printLink('doc', 'deleteLib', "libID=$libID", "", 'hiddenwin', "title='{$lang->delete}' class='btn btn-link'")?> + ", '', "title='{$lang->doc->manageType}' class='btn btn-link'")?> + +
+
+
+
diff --git a/module/project/control.php b/module/project/control.php index 6894c34c91..ce5ca4157f 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -2301,7 +2301,7 @@ class project extends control public function importPlanStories($projectID, $planID) { $planStories = $planProducts = array(); - $planStory = $this->loadModel('story')->getPlanStories($planID); + $planStory = $this->loadModel('story')->getPlanStories($planID, 'changed,active,reviewing'); if(!empty($planStory)) { $planStories = array_keys($planStory); diff --git a/module/report/lang/en.php b/module/report/lang/en.php index a5ced624c4..efd8cf87a5 100644 --- a/module/report/lang/en.php +++ b/module/report/lang/en.php @@ -38,11 +38,11 @@ $lang->report->singleColor[] = 'F6BD0F'; $lang->report->projectDeviation = $lang->projectCommon . ' Deviation'; $lang->report->productSummary = $lang->productCommon . ' Summary'; -$lang->report->bugCreate = 'Bug Submission Report'; -$lang->report->bugAssign = 'Bug Assignment Report'; -$lang->report->workload = 'Workload'; -$lang->report->workloadAB = 'Workload'; -$lang->report->bugOpenedDate = 'Bug Created From'; +$lang->report->bugCreate = 'Bug Reported Statement'; +$lang->report->bugAssign = 'Bug Assigned Statement'; +$lang->report->workload = 'Team Workload Statement'; +$lang->report->workloadAB = 'Workload Statement'; +$lang->report->bugOpenedDate = 'Bug reported from'; $lang->report->taskAssignedDate = 'From'; $lang->report->beginAndEnd = ' From'; $lang->report->dept = 'Dept'; @@ -50,9 +50,9 @@ $lang->report->deviationChart = $lang->projectCommon . ' Deviation Chart'; $lang->reportList->project->lists[10] = $lang->projectCommon . ' Deviation|report|projectdeviation'; $lang->reportList->product->lists[10] = $lang->productCommon . ' Summary|report|productsummary'; -$lang->reportList->test->lists[10] = 'Bugs Reported|report|bugcreate'; -$lang->reportList->test->lists[13] = 'Bugs Assigned|report|bugassign'; -$lang->reportList->staff->lists[10] = 'Workload|report|workload'; +$lang->reportList->test->lists[10] = 'Bugs Reported Statement|report|bugcreate'; +$lang->reportList->test->lists[13] = 'Bugs Assigned Statement|report|bugassign'; +$lang->reportList->staff->lists[10] = 'Team Workload Statement|report|workload'; $lang->report->id = 'ID'; $lang->report->project = $lang->projectCommon; diff --git a/module/story/model.php b/module/story/model.php index dcee73ecde..e6c801684f 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -1685,6 +1685,7 @@ class storyModel extends model ->leftJoin(TABLE_PRODUCT)->alias('t4')->on('t2.product = t4.id') ->where($storyQuery) ->andWhere('t1.project')->eq((int)$projectID) + ->andWhere('t2.deleted')->eq(0) ->orderBy($orderBy) ->page($pager, 't2.id') ->fetchAll('id'); diff --git a/module/task/model.php b/module/task/model.php index bea8fd7a40..104e736e9e 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -822,6 +822,11 @@ class taskModel extends model ->setDefault('assignedDate', $now) ->remove('comment,showModule') ->get(); + if($oldTask->status != 'done' and $oldTask->status != 'closed' and $task->left == 0) + { + dao::$errors[] = sprintf($this->lang->error->notempty, $this->lang->task->left); + return false; + } if(!empty($oldTask->team)) { diff --git a/module/task/view/assignto.html.php b/module/task/view/assignto.html.php index dca7f7b55c..befb86256e 100644 --- a/module/task/view/assignto.html.php +++ b/module/task/view/assignto.html.php @@ -39,10 +39,12 @@ team) ? $lang->task->assign : $lang->task->transferTo;?> team) ? $task->assignedTo : $task->nextUser, "class='form-control chosen'");?> + status != 'done' and $task->status != 'closed'):?> task->left;?>
left, "class='form-control' autocomplete='off'");?> task->hour;?>
+ comment;?>