* Add the unlink story button for project story.
This commit is contained in:
@@ -3,6 +3,7 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(1, 'projectstory', 'story'),
|
||||
(1, 'projectstory', 'track'),
|
||||
(1, 'projectstory', 'linkStory'),
|
||||
(1, 'projectstory', 'unLinkStory'),
|
||||
(1, 'my', 'preference'),
|
||||
(1, 'my', 'uploadAvatar'),
|
||||
(1, 'user', 'cropAvatar'),
|
||||
@@ -28,6 +29,7 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(5, 'projectstory', 'story'),
|
||||
(5, 'projectstory', 'track'),
|
||||
(5, 'projectstory', 'linkStory'),
|
||||
(5, 'projectstory', 'unLinkStory'),
|
||||
(5, 'my', 'preference'),
|
||||
(5, 'my', 'uploadAvatar'),
|
||||
(5, 'user', 'cropAvatar'),
|
||||
@@ -41,6 +43,7 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(7, 'projectstory', 'story'),
|
||||
(7, 'projectstory', 'track'),
|
||||
(7, 'projectstory', 'linkStory'),
|
||||
(7, 'projectstory', 'unLinkStory'),
|
||||
(7, 'my', 'preference'),
|
||||
(7, 'my', 'uploadAvatar'),
|
||||
(7, 'user', 'cropAvatar'),
|
||||
@@ -54,6 +57,7 @@ REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES
|
||||
(9, 'projectstory', 'story'),
|
||||
(9, 'projectstory', 'track'),
|
||||
(9, 'projectstory', 'linkStory'),
|
||||
(9, 'projectstory', 'unLinkStory'),
|
||||
(9, 'my', 'preference'),
|
||||
(9, 'my', 'uploadAvatar'),
|
||||
(9, 'user', 'cropAvatar'),
|
||||
|
||||
@@ -53,7 +53,7 @@ $lang->my->menuOrder[55] = 'contacts';
|
||||
$lang->todo->menuOrder = $lang->my->menuOrder;
|
||||
|
||||
/* product menu order. */
|
||||
$lang->product->menuOrder[5] = 'requirement';
|
||||
$lang->product->menuOrder[5] = 'requirement';
|
||||
$lang->product->menuOrder[10] = 'story';
|
||||
$lang->product->menuOrder[15] = 'track';
|
||||
$lang->product->menuOrder[20] = 'plan';
|
||||
|
||||
@@ -489,13 +489,15 @@ $lang->productplan->methodOrder[60] = 'batchEdit';
|
||||
|
||||
/* Project Story. */
|
||||
$lang->resource->projectstory = new stdclass();
|
||||
$lang->resource->projectstory->story = 'story';
|
||||
$lang->resource->projectstory->track = 'track';
|
||||
$lang->resource->projectstory->linkStory = 'linkStory';
|
||||
$lang->resource->projectstory->story = 'story';
|
||||
$lang->resource->projectstory->track = 'track';
|
||||
$lang->resource->projectstory->linkStory = 'linkStory';
|
||||
$lang->resource->projectstory->unLinkStory = 'unLinkStory';
|
||||
|
||||
$lang->productplan->methodOrder[5] = 'story';
|
||||
$lang->productplan->methodOrder[10] = 'track';
|
||||
$lang->productplan->methodOrder[15] = 'linkStory';
|
||||
$lang->productplan->methodOrder[20] = 'unLinkStory';
|
||||
|
||||
/* Release. */
|
||||
$lang->resource->release = new stdclass();
|
||||
|
||||
@@ -2174,7 +2174,7 @@ class project extends control
|
||||
}
|
||||
|
||||
/* Build the search form. */
|
||||
$actionURL = $this->createLink('project', 'linkStory', "projectID=$projectID&browseType=bySearch&queryID=myQueryID");
|
||||
$actionURL = $this->createLink($this->app->rawModule, 'linkStory', "projectID=$projectID&browseType=bySearch&queryID=myQueryID");
|
||||
$branchGroups = $this->loadModel('branch')->getByProducts(array_keys($products), 'noempty');
|
||||
$this->project->buildStorySearchForm($products, $branchGroups, $modules, $queryID, $actionURL, 'linkStory');
|
||||
|
||||
@@ -2237,7 +2237,8 @@ class project extends control
|
||||
{
|
||||
if($confirm == 'no')
|
||||
{
|
||||
die(js::confirm($this->lang->project->confirmUnlinkStory, $this->createLink('project', 'unlinkstory', "projectID=$projectID&storyID=$storyID&confirm=yes")));
|
||||
$tip = $this->app->rawModule == 'projectstory' ? $this->lang->project->confirmUnlinkProjectStory : $this->lang->project->confirmUnlinkStory;
|
||||
die(js::confirm($tip, $this->createLink('project', 'unlinkstory', "projectID=$projectID&storyID=$storyID&confirm=yes")));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
+21
-19
@@ -270,25 +270,27 @@ $lang->project->linkPRJStoryTip = "(Link {$lang->SRCommon} comes from {$lang
|
||||
$lang->project->linkAllStoryTip = "({$lang->SRCommon} has never been linked under the project, and can be directly linked with {$lang->SRCommon} of the product linked with the sprint/stage)";
|
||||
|
||||
/* 交互提示。*/
|
||||
$lang->project->confirmDelete = "Möchten Sie {$lang->executionCommon}[%s] löschen?";
|
||||
$lang->project->confirmUnlinkMember = "Möchten Sie den Benutzer vom {$lang->executionCommon} entfernen?";
|
||||
$lang->project->confirmUnlinkStory = "Möchten Sie die Story vom {$lang->executionCommon} entfernen?";
|
||||
$lang->project->errorNoLinkedProducts = "Kein verknüpftes {$lang->productCommon} in {$lang->executionCommon} gefunden. Sie werden auf die {$lang->productCommon} Seite geleitet.";
|
||||
$lang->project->errorSameProducts = "{$lang->executionCommon} Kann nicht mit mehreren identischen {$lang->productCommon} verknüpft werden";
|
||||
$lang->project->accessDenied = "Zugriff zu {$lang->executionCommon} verweigert!";
|
||||
$lang->project->tips = 'Hinweis';
|
||||
$lang->project->afterInfo = "{$lang->executionCommon} wurde erstellt. Als nächstes können Sie ";
|
||||
$lang->project->setTeam = 'Team setzen';
|
||||
$lang->project->linkStory = 'Storys verküpfen';
|
||||
$lang->project->createTask = 'Aufgaben erstellen';
|
||||
$lang->project->goback = "Zurückkehren";
|
||||
$lang->project->noweekend = 'Ohne Wochenende';
|
||||
$lang->project->withweekend = 'Mit Wochenende';
|
||||
$lang->project->interval = 'Intervale ';
|
||||
$lang->project->fixFirstWithLeft = 'Modify the left';
|
||||
$lang->project->unfinishedProject = "This {$lang->executionCommon} has ";
|
||||
$lang->project->unfinishedTask = "[%s] unfinished tasks. ";
|
||||
$lang->project->unresolvedBug = "[%s] unresolved bugs. ";
|
||||
$lang->project->confirmDelete = "Möchten Sie {$lang->executionCommon}[%s] löschen?";
|
||||
$lang->project->confirmUnlinkMember = "Möchten Sie den Benutzer vom {$lang->executionCommon} entfernen?";
|
||||
$lang->project->confirmUnlinkStory = "Möchten Sie die Story vom {$lang->executionCommon} entfernen?";
|
||||
$lang->project->confirmUnlinkProjectStory = "Do you want to unlink this Story from the project?";
|
||||
$lang->project->notAllowedUnlinkStory = "This {$lang->SRCommon} is linked to the {$lang->executionCommon} of the project. Remove it from the {$lang->executionCommon}, then try again."
|
||||
$lang->project->errorNoLinkedProducts = "Kein verknüpftes {$lang->productCommon} in {$lang->executionCommon} gefunden. Sie werden auf die {$lang->productCommon} Seite geleitet.";
|
||||
$lang->project->errorSameProducts = "{$lang->executionCommon} Kann nicht mit mehreren identischen {$lang->productCommon} verknüpft werden";
|
||||
$lang->project->accessDenied = "Zugriff zu {$lang->executionCommon} verweigert!";
|
||||
$lang->project->tips = 'Hinweis';
|
||||
$lang->project->afterInfo = "{$lang->executionCommon} wurde erstellt. Als nächstes können Sie ";
|
||||
$lang->project->setTeam = 'Team setzen';
|
||||
$lang->project->linkStory = 'Storys verküpfen';
|
||||
$lang->project->createTask = 'Aufgaben erstellen';
|
||||
$lang->project->goback = "Zurückkehren";
|
||||
$lang->project->noweekend = 'Ohne Wochenende';
|
||||
$lang->project->withweekend = 'Mit Wochenende';
|
||||
$lang->project->interval = 'Intervale ';
|
||||
$lang->project->fixFirstWithLeft = 'Modify the left';
|
||||
$lang->project->unfinishedProject = "This {$lang->executionCommon} has ";
|
||||
$lang->project->unfinishedTask = "[%s] unfinished tasks. ";
|
||||
$lang->project->unresolvedBug = "[%s] unresolved bugs. ";
|
||||
|
||||
$lang->project->action = new stdclass();
|
||||
$lang->project->action->opened = '$date, created by <strong>$actor</strong> . $extra' . "\n";
|
||||
|
||||
+21
-19
@@ -270,25 +270,27 @@ $lang->project->linkPRJStoryTip = "(Link {$lang->SRCommon} comes from {$lang
|
||||
$lang->project->linkAllStoryTip = "({$lang->SRCommon} has never been linked under the project, and can be directly linked with {$lang->SRCommon} of the product linked with the sprint/stage)";
|
||||
|
||||
/* Interactive prompts. */
|
||||
$lang->project->confirmDelete = "Do you want to delete the {$lang->executionCommon}[%s]?";
|
||||
$lang->project->confirmUnlinkMember = "Do you want to unlink this User from {$lang->executionCommon}?";
|
||||
$lang->project->confirmUnlinkStory = "Do you want to unlink this Story from {$lang->executionCommon}?";
|
||||
$lang->project->errorNoLinkedProducts = "No {$lang->productCommon} is linked to {$lang->executionCommon}. You will be directed to {$lang->productCommon} page to link one.";
|
||||
$lang->project->errorSameProducts = "{$lang->executionCommon} cannot be linked to the same {$lang->productCommon} twice.";
|
||||
$lang->project->accessDenied = "Your access to {$lang->executionCommon} is denied!";
|
||||
$lang->project->tips = 'Note';
|
||||
$lang->project->afterInfo = "{$lang->executionCommon} is created. Next you can ";
|
||||
$lang->project->setTeam = 'Set Team';
|
||||
$lang->project->linkStory = 'Link Story';
|
||||
$lang->project->createTask = 'Create Task';
|
||||
$lang->project->goback = "Go Back";
|
||||
$lang->project->noweekend = 'Exclude Weekend';
|
||||
$lang->project->withweekend = 'Include Weekend';
|
||||
$lang->project->interval = 'Intervals ';
|
||||
$lang->project->fixFirstWithLeft = 'Update hours left too';
|
||||
$lang->project->unfinishedProject = "This {$lang->executionCommon} has ";
|
||||
$lang->project->unfinishedTask = "[%s] unfinished tasks. ";
|
||||
$lang->project->unresolvedBug = "[%s] unresolved bugs. ";
|
||||
$lang->project->confirmDelete = "Do you want to delete the {$lang->executionCommon}[%s]?";
|
||||
$lang->project->confirmUnlinkMember = "Do you want to unlink this User from {$lang->executionCommon}?";
|
||||
$lang->project->confirmUnlinkStory = "Do you want to unlink this Story from {$lang->executionCommon}?";
|
||||
$lang->project->confirmUnlinkProjectStory = "Do you want to unlink this Story from the project?";
|
||||
$lang->project->notAllowedUnlinkStory = "This {$lang->SRCommon} is linked to the {$lang->executionCommon} of the project. Remove it from the {$lang->executionCommon}, then try again."
|
||||
$lang->project->errorNoLinkedProducts = "No {$lang->productCommon} is linked to {$lang->executionCommon}. You will be directed to {$lang->productCommon} page to link one.";
|
||||
$lang->project->errorSameProducts = "{$lang->executionCommon} cannot be linked to the same {$lang->productCommon} twice.";
|
||||
$lang->project->accessDenied = "Your access to {$lang->executionCommon} is denied!";
|
||||
$lang->project->tips = 'Note';
|
||||
$lang->project->afterInfo = "{$lang->executionCommon} is created. Next you can ";
|
||||
$lang->project->setTeam = 'Set Team';
|
||||
$lang->project->linkStory = 'Link Story';
|
||||
$lang->project->createTask = 'Create Task';
|
||||
$lang->project->goback = "Go Back";
|
||||
$lang->project->noweekend = 'Exclude Weekend';
|
||||
$lang->project->withweekend = 'Include Weekend';
|
||||
$lang->project->interval = 'Intervals ';
|
||||
$lang->project->fixFirstWithLeft = 'Update hours left too';
|
||||
$lang->project->unfinishedProject = "This {$lang->executionCommon} has ";
|
||||
$lang->project->unfinishedTask = "[%s] unfinished tasks. ";
|
||||
$lang->project->unresolvedBug = "[%s] unresolved bugs. ";
|
||||
|
||||
$lang->project->action = new stdclass();
|
||||
$lang->project->action->opened = '$date, created by <strong>$actor</strong> . $extra' . "\n";
|
||||
|
||||
+21
-19
@@ -270,25 +270,27 @@ $lang->project->linkPRJStoryTip = "(Link {$lang->SRCommon} comes from {$lang
|
||||
$lang->project->linkAllStoryTip = "({$lang->SRCommon} has never been linked under the project, and can be directly linked with {$lang->SRCommon} of the product linked with the sprint/stage)";
|
||||
|
||||
/* 交互提示。*/
|
||||
$lang->project->confirmDelete = "Voulez-vous réellement supprimer le {$lang->executionCommon}[%s] ?";
|
||||
$lang->project->confirmUnlinkMember = "Voulez-vous retirer cet utilisateur du {$lang->executionCommon} ?";
|
||||
$lang->project->confirmUnlinkStory = "Voulez-vous retirer cette Story du {$lang->executionCommon} ?";
|
||||
$lang->project->errorNoLinkedProducts = "Aucun {$lang->productCommon} n'est associé à ce {$lang->executionCommon}. Vous allez être redirigé vers la page {$lang->productCommon} pour en associer un.";
|
||||
$lang->project->errorSameProducts = "Ce {$lang->executionCommon} ne peut pas être associé deux fois au même {$lang->productCommon}. Imaginez un peu les résultats !";
|
||||
$lang->project->accessDenied = "Votre accès au {$lang->executionCommon} est refusé ! Désolé.";
|
||||
$lang->project->tips = 'Note';
|
||||
$lang->project->afterInfo = "Le {$lang->executionCommon} a été créé avec succès ! Ensuite vous pouvez ";
|
||||
$lang->project->setTeam = "Composer l'Equipe";
|
||||
$lang->project->linkStory = 'Associer Story';
|
||||
$lang->project->createTask = 'Créer des Tâches';
|
||||
$lang->project->goback = "Revenir en arrière";
|
||||
$lang->project->noweekend = 'Exclure les Weekends';
|
||||
$lang->project->withweekend = 'Inclure les Weekends';
|
||||
$lang->project->interval = 'Intervalles';
|
||||
$lang->project->fixFirstWithLeft = 'Mettre à jour les heures également';
|
||||
$lang->project->unfinishedProject = "This {$lang->executionCommon} has ";
|
||||
$lang->project->unfinishedTask = "[%s] unfinished tasks. ";
|
||||
$lang->project->unresolvedBug = "[%s] unresolved bugs. ";
|
||||
$lang->project->confirmDelete = "Voulez-vous réellement supprimer le {$lang->executionCommon}[%s] ?";
|
||||
$lang->project->confirmUnlinkMember = "Voulez-vous retirer cet utilisateur du {$lang->executionCommon} ?";
|
||||
$lang->project->confirmUnlinkStory = "Voulez-vous retirer cette Story du {$lang->executionCommon} ?";
|
||||
$lang->project->confirmUnlinkProjectStory = "Do you want to unlink this Story from the project?";
|
||||
$lang->project->notAllowedUnlinkStory = "This {$lang->SRCommon} is linked to the {$lang->executionCommon} of the project. Remove it from the {$lang->executionCommon}, then try again."
|
||||
$lang->project->errorNoLinkedProducts = "Aucun {$lang->productCommon} n'est associé à ce {$lang->executionCommon}. Vous allez être redirigé vers la page {$lang->productCommon} pour en associer un.";
|
||||
$lang->project->errorSameProducts = "Ce {$lang->executionCommon} ne peut pas être associé deux fois au même {$lang->productCommon}. Imaginez un peu les résultats !";
|
||||
$lang->project->accessDenied = "Votre accès au {$lang->executionCommon} est refusé ! Désolé.";
|
||||
$lang->project->tips = 'Note';
|
||||
$lang->project->afterInfo = "Le {$lang->executionCommon} a été créé avec succès ! Ensuite vous pouvez ";
|
||||
$lang->project->setTeam = "Composer l'Equipe";
|
||||
$lang->project->linkStory = 'Associer Story';
|
||||
$lang->project->createTask = 'Créer des Tâches';
|
||||
$lang->project->goback = "Revenir en arrière";
|
||||
$lang->project->noweekend = 'Exclure les Weekends';
|
||||
$lang->project->withweekend = 'Inclure les Weekends';
|
||||
$lang->project->interval = 'Intervalles';
|
||||
$lang->project->fixFirstWithLeft = 'Mettre à jour les heures également';
|
||||
$lang->project->unfinishedProject = "This {$lang->executionCommon} has ";
|
||||
$lang->project->unfinishedTask = "[%s] unfinished tasks. ";
|
||||
$lang->project->unresolvedBug = "[%s] unresolved bugs. ";
|
||||
|
||||
$lang->project->action = new stdclass();
|
||||
$lang->project->action->opened = '$date, créée par <strong>$actor</strong> .' . "\n";
|
||||
|
||||
+21
-19
@@ -270,25 +270,27 @@ $lang->project->linkPRJStoryTip = "(Link {$lang->SRCommon} comes from {$lang
|
||||
$lang->project->linkAllStoryTip = "({$lang->SRCommon} has never been linked under the project, and can be directly linked with {$lang->SRCommon} of the product linked with the sprint/stage)";
|
||||
|
||||
/* Interactive prompts. */
|
||||
$lang->project->confirmDelete = "Bạn có muốn xóa {$lang->executionCommon}[%s] này?";
|
||||
$lang->project->confirmUnlinkMember = "Bạn có muốn hủy liên kết người dùng này từ {$lang->executionCommon}?";
|
||||
$lang->project->confirmUnlinkStory = "Bạn có muốn hủy liên kết câu chuyện này từ {$lang->executionCommon}?";
|
||||
$lang->project->errorNoLinkedProducts = "Không có {$lang->productCommon} liên kết tới {$lang->executionCommon}. Bạn sẽ được chuyển tới trang {$lang->productCommon} để liên kết.";
|
||||
$lang->project->errorSameProducts = "{$lang->executionCommon} không thể liên kết tới {$lang->productCommon} giống nhau 2 lần.";
|
||||
$lang->project->accessDenied = "Truy cập của bạn tới {$lang->executionCommon} bị từ chối!";
|
||||
$lang->project->tips = 'Ghi chú';
|
||||
$lang->project->afterInfo = "{$lang->executionCommon} được tạo. Tiếp theo bạn có thể ";
|
||||
$lang->project->setTeam = 'Thiết lập đội nhóm';
|
||||
$lang->project->linkStory = 'Liên kết câu chuyện';
|
||||
$lang->project->createTask = 'Tạo nhiệm vụ';
|
||||
$lang->project->goback = "Trở lại";
|
||||
$lang->project->noweekend = 'Không gồm cuối tuần';
|
||||
$lang->project->withweekend = 'Bao gồm cuối tuần';
|
||||
$lang->project->interval = 'Intervals ';
|
||||
$lang->project->fixFirstWithLeft = 'Cập nhật cả giờ còn lại';
|
||||
$lang->project->unfinishedProject = "This {$lang->executionCommon} has ";
|
||||
$lang->project->unfinishedTask = "[%s] unfinished tasks. ";
|
||||
$lang->project->unresolvedBug = "[%s] unresolved bugs. ";
|
||||
$lang->project->confirmDelete = "Bạn có muốn xóa {$lang->executionCommon}[%s] này?";
|
||||
$lang->project->confirmUnlinkMember = "Bạn có muốn hủy liên kết người dùng này từ {$lang->executionCommon}?";
|
||||
$lang->project->confirmUnlinkStory = "Bạn có muốn hủy liên kết câu chuyện này từ {$lang->executionCommon}?";
|
||||
$lang->project->confirmUnlinkProjectStory = "Do you want to unlink this Story from the project?";
|
||||
$lang->project->notAllowedUnlinkStory = "This {$lang->SRCommon} is linked to the {$lang->executionCommon} of the project. Remove it from the {$lang->executionCommon}, then try again."
|
||||
$lang->project->errorNoLinkedProducts = "Không có {$lang->productCommon} liên kết tới {$lang->executionCommon}. Bạn sẽ được chuyển tới trang {$lang->productCommon} để liên kết.";
|
||||
$lang->project->errorSameProducts = "{$lang->executionCommon} không thể liên kết tới {$lang->productCommon} giống nhau 2 lần.";
|
||||
$lang->project->accessDenied = "Truy cập của bạn tới {$lang->executionCommon} bị từ chối!";
|
||||
$lang->project->tips = 'Ghi chú';
|
||||
$lang->project->afterInfo = "{$lang->executionCommon} được tạo. Tiếp theo bạn có thể ";
|
||||
$lang->project->setTeam = 'Thiết lập đội nhóm';
|
||||
$lang->project->linkStory = 'Liên kết câu chuyện';
|
||||
$lang->project->createTask = 'Tạo nhiệm vụ';
|
||||
$lang->project->goback = "Trở lại";
|
||||
$lang->project->noweekend = 'Không gồm cuối tuần';
|
||||
$lang->project->withweekend = 'Bao gồm cuối tuần';
|
||||
$lang->project->interval = 'Intervals ';
|
||||
$lang->project->fixFirstWithLeft = 'Cập nhật cả giờ còn lại';
|
||||
$lang->project->unfinishedProject = "This {$lang->executionCommon} has ";
|
||||
$lang->project->unfinishedTask = "[%s] unfinished tasks. ";
|
||||
$lang->project->unresolvedBug = "[%s] unresolved bugs. ";
|
||||
|
||||
$lang->project->action = new stdclass();
|
||||
$lang->project->action->opened = '$date, được tạo bởi <strong>$actor</strong> $extra.' . "\n";
|
||||
|
||||
@@ -270,25 +270,27 @@ $lang->project->linkPRJStoryTip = "(关联{$lang->SRCommon}来源于项目
|
||||
$lang->project->linkAllStoryTip = "(项目下还未关联{$lang->SRCommon},可直接关联该迭代/阶段/冲刺所关联产品的{$lang->SRCommon})";
|
||||
|
||||
/* 交互提示。*/
|
||||
$lang->project->confirmDelete = "您确定删除{$lang->executionCommon}[%s]吗?";
|
||||
$lang->project->confirmUnlinkMember = "您确定从该{$lang->executionCommon}中移除该用户吗?";
|
||||
$lang->project->confirmUnlinkStory = "您确定从该{$lang->executionCommon}中移除该{$lang->SRCommon}吗?";
|
||||
$lang->project->errorNoLinkedProducts = "该{$lang->executionCommon}没有关联的{$lang->productCommon},系统将转到{$lang->productCommon}关联页面";
|
||||
$lang->project->errorSameProducts = "{$lang->executionCommon}不能关联多个相同的{$lang->productCommon}。";
|
||||
$lang->project->accessDenied = "您无权访问该{$lang->executionCommon}!";
|
||||
$lang->project->tips = '提示';
|
||||
$lang->project->afterInfo = "{$lang->executionCommon}添加成功,您现在可以进行以下操作:";
|
||||
$lang->project->setTeam = '设置团队';
|
||||
$lang->project->linkStory = "关联{$lang->SRCommon}";
|
||||
$lang->project->createTask = '创建任务';
|
||||
$lang->project->goback = "返回任务列表";
|
||||
$lang->project->noweekend = '去除周末';
|
||||
$lang->project->withweekend = '显示周末';
|
||||
$lang->project->interval = '间隔';
|
||||
$lang->project->fixFirstWithLeft = '修改剩余工时';
|
||||
$lang->project->unfinishedProject = "该{$lang->executionCommon}下还有";
|
||||
$lang->project->unfinishedTask = "[%s]个未完成的任务,";
|
||||
$lang->project->unresolvedBug = "[%s]个未解决的bug,";
|
||||
$lang->project->confirmDelete = "您确定删除{$lang->executionCommon}[%s]吗?";
|
||||
$lang->project->confirmUnlinkMember = "您确定从该{$lang->executionCommon}中移除该用户吗?";
|
||||
$lang->project->confirmUnlinkStory = "您确定从该{$lang->executionCommon}中移除该{$lang->SRCommon}吗?";
|
||||
$lang->project->confirmUnlinkProjectStory = "您确定从该项目中移除该{$lang->SRCommon}吗?";
|
||||
$lang->project->notAllowedUnlinkStory = "该{$lang->SRCommon}已经与项目下{$lang->executionCommon}相关联,请从{$lang->executionCommon}中移除后再操作。";
|
||||
$lang->project->errorNoLinkedProducts = "该{$lang->executionCommon}没有关联的{$lang->productCommon},系统将转到{$lang->productCommon}关联页面";
|
||||
$lang->project->errorSameProducts = "{$lang->executionCommon}不能关联多个相同的{$lang->productCommon}。";
|
||||
$lang->project->accessDenied = "您无权访问该{$lang->executionCommon}!";
|
||||
$lang->project->tips = '提示';
|
||||
$lang->project->afterInfo = "{$lang->executionCommon}添加成功,您现在可以进行以下操作:";
|
||||
$lang->project->setTeam = '设置团队';
|
||||
$lang->project->linkStory = "关联{$lang->SRCommon}";
|
||||
$lang->project->createTask = '创建任务';
|
||||
$lang->project->goback = "返回任务列表";
|
||||
$lang->project->noweekend = '去除周末';
|
||||
$lang->project->withweekend = '显示周末';
|
||||
$lang->project->interval = '间隔';
|
||||
$lang->project->fixFirstWithLeft = '修改剩余工时';
|
||||
$lang->project->unfinishedProject = "该{$lang->executionCommon}下还有";
|
||||
$lang->project->unfinishedTask = "[%s]个未完成的任务,";
|
||||
$lang->project->unresolvedBug = "[%s]个未解决的bug,";
|
||||
|
||||
$lang->project->action = new stdclass();
|
||||
$lang->project->action->opened = '$date, 由 <strong>$actor</strong> 创建。$extra' . "\n";
|
||||
|
||||
@@ -264,25 +264,27 @@ $lang->project->noProject = "暫時沒有{$lang->executionCommon}。";
|
||||
$lang->project->noMembers = '暫時沒有團隊成員。';
|
||||
|
||||
/* 交互提示。*/
|
||||
$lang->project->confirmDelete = "您確定刪除{$lang->executionCommon}[%s]嗎?";
|
||||
$lang->project->confirmUnlinkMember = "您確定從該{$lang->executionCommon}中移除該用戶嗎?";
|
||||
$lang->project->confirmUnlinkStory = "您確定從該{$lang->executionCommon}中移除該{$lang->SRCommon}嗎?";
|
||||
$lang->project->errorNoLinkedProducts = "該{$lang->executionCommon}沒有關聯的{$lang->productCommon},系統將轉到{$lang->productCommon}關聯頁面";
|
||||
$lang->project->errorSameProducts = "{$lang->executionCommon}不能關聯多個相同的{$lang->productCommon}。";
|
||||
$lang->project->accessDenied = "您無權訪問該{$lang->executionCommon}!";
|
||||
$lang->project->tips = '提示';
|
||||
$lang->project->afterInfo = "{$lang->executionCommon}添加成功,您現在可以進行以下操作:";
|
||||
$lang->project->setTeam = '設置團隊';
|
||||
$lang->project->linkStory = "關聯{$lang->SRCommon}";
|
||||
$lang->project->createTask = '創建任務';
|
||||
$lang->project->goback = "返回任務列表";
|
||||
$lang->project->noweekend = '去除周末';
|
||||
$lang->project->withweekend = '顯示周末';
|
||||
$lang->project->interval = '間隔';
|
||||
$lang->project->fixFirstWithLeft = '修改剩餘工時';
|
||||
$lang->project->unfinishedProject = "該{$lang->executionCommon}下還有";
|
||||
$lang->project->unfinishedTask = "[%s]個未完成的任務,";
|
||||
$lang->project->unresolvedBug = "[%s]個未解決的bug,";
|
||||
$lang->project->confirmDelete = "您確定刪除{$lang->executionCommon}[%s]嗎?";
|
||||
$lang->project->confirmUnlinkMember = "您確定從該{$lang->executionCommon}中移除該用戶嗎?";
|
||||
$lang->project->confirmUnlinkStory = "您確定從該{$lang->executionCommon}中移除該{$lang->SRCommon}嗎?";
|
||||
$lang->project->confirmUnlinkProjectStory = "您確定從該項目中移除該{$lang->SRCommon}嗎?";
|
||||
$lang->project->notAllowedUnlinkStory = "該{$lang->SRCommon}已經與項目下{$lang->executionCommon}相關聯,請從{$lang->executionCommon}中移除後再操作。";
|
||||
$lang->project->errorNoLinkedProducts = "該{$lang->executionCommon}沒有關聯的{$lang->productCommon},系統將轉到{$lang->productCommon}關聯頁面";
|
||||
$lang->project->errorSameProducts = "{$lang->executionCommon}不能關聯多個相同的{$lang->productCommon}。";
|
||||
$lang->project->accessDenied = "您無權訪問該{$lang->executionCommon}!";
|
||||
$lang->project->tips = '提示';
|
||||
$lang->project->afterInfo = "{$lang->executionCommon}添加成功,您現在可以進行以下操作:";
|
||||
$lang->project->setTeam = '設置團隊';
|
||||
$lang->project->linkStory = "關聯{$lang->SRCommon}";
|
||||
$lang->project->createTask = '創建任務';
|
||||
$lang->project->goback = "返回任務列表";
|
||||
$lang->project->noweekend = '去除周末';
|
||||
$lang->project->withweekend = '顯示周末';
|
||||
$lang->project->interval = '間隔';
|
||||
$lang->project->fixFirstWithLeft = '修改剩餘工時';
|
||||
$lang->project->unfinishedProject = "該{$lang->executionCommon}下還有";
|
||||
$lang->project->unfinishedTask = "[%s]個未完成的任務,";
|
||||
$lang->project->unresolvedBug = "[%s]個未解決的bug,";
|
||||
|
||||
$lang->project->action = new stdclass();
|
||||
$lang->project->action->opened = '$date, 由 <strong>$actor</strong> 創建。$extra' . "\n";
|
||||
|
||||
@@ -2173,11 +2173,20 @@ class projectModel extends model
|
||||
*/
|
||||
public function unlinkStory($projectID, $storyID)
|
||||
{
|
||||
$project = $this->dao->findById($projectID)->from(TABLE_PROJECT)->fetch();
|
||||
if($project->type == 'project')
|
||||
{
|
||||
$executions = $this->dao->select('*')->from(TABLE_PROJECT)->where('parent')->eq($projectID)->fetchAll('id');
|
||||
$projectStoryList = $this->dao->select('story')->from(TABLE_PROJECTSTORY)->where('project')->eq($projectID)->fetchAll('story');
|
||||
$executionStoryList = $this->dao->select('story')->from(TABLE_PROJECTSTORY)->where('project')->in(array_keys($executions))->fetchAll('story');
|
||||
$storyIntersect = array_intersect(array_keys($projectStoryList), array_keys($executionStoryList));
|
||||
if(in_array($storyID, $storyIntersect)) die(js::alert($this->lang->project->notAllowedUnlinkStory));
|
||||
}
|
||||
$this->dao->delete()->from(TABLE_PROJECTSTORY)->where('project')->eq($projectID)->andWhere('story')->eq($storyID)->limit(1)->exec();
|
||||
|
||||
$order = 1;
|
||||
$storys = $this->dao->select('*')->from(TABLE_PROJECTSTORY)->where('project')->eq($projectID)->orderBy('order')->fetchAll();
|
||||
foreach($storys as $projectstory)
|
||||
$order = 1;
|
||||
$stories = $this->dao->select('*')->from(TABLE_PROJECTSTORY)->where('project')->eq($projectID)->orderBy('order')->fetchAll();
|
||||
foreach($stories as $projectstory)
|
||||
{
|
||||
if($projectstory->order != $order) $this->dao->update(TABLE_PROJECTSTORY)->set('`order`')->eq($order)->where('project')->eq($projectID)->andWhere('story')->eq($projectstory->story)->exec();
|
||||
$order++;
|
||||
|
||||
@@ -131,5 +131,19 @@ class projectStory extends control
|
||||
{
|
||||
echo $this->fetch('project', 'linkStory', "projectID=$projectID&browseType=$browseType¶m=$param&recTotal=$recTotal&recPerPage=$recPerPage&pageID=$pageID");
|
||||
}
|
||||
|
||||
/**
|
||||
* Unlink a story.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param int $storyID
|
||||
* @param string $confirm
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function unlinkStory($projectID, $storyID, $confirm = 'no')
|
||||
{
|
||||
echo $this->fetch('project', 'unlinkStory', "projectID=$projectID&storyID=$storyID&confirm=$confirm");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
<?php
|
||||
$lang->projectstory->common = 'Anforderungen an Projekte';
|
||||
$lang->projectstory->index = 'Fordern Sie Homepage';
|
||||
$lang->projectstory->story = $lang->generalSR;
|
||||
$lang->projectstory->track = 'Matrix der Verfolgung';
|
||||
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
|
||||
$lang->projectstory->common = 'Anforderungen an Projekte';
|
||||
$lang->projectstory->index = 'Fordern Sie Homepage';
|
||||
$lang->projectstory->story = $lang->generalSR;
|
||||
$lang->projectstory->track = 'Matrix der Verfolgung';
|
||||
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
|
||||
$lang->projectstory->unLinkStory = 'UnLinked' . $lang->SRCommon;
|
||||
|
||||
global $app;
|
||||
$app->loadLang('product');
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
<?php
|
||||
$lang->projectstory->common = 'Project Requirements';
|
||||
$lang->projectstory->index = 'Request Home';
|
||||
$lang->projectstory->story = $lang->generalSR;
|
||||
$lang->projectstory->track = 'Tracking Matrix';
|
||||
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
|
||||
$lang->projectstory->common = 'Project Requirements';
|
||||
$lang->projectstory->index = 'Request Home';
|
||||
$lang->projectstory->story = $lang->generalSR;
|
||||
$lang->projectstory->track = 'Tracking Matrix';
|
||||
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
|
||||
$lang->projectstory->unLinkStory = 'UnLinked' . $lang->SRCommon;
|
||||
|
||||
global $app;
|
||||
$app->loadLang('product');
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
<?php
|
||||
$lang->projectstory->common = 'Exigences du projet';
|
||||
$lang->projectstory->index = 'Exigences Accueil';
|
||||
$lang->projectstory->story = $lang->generalSR;
|
||||
$lang->projectstory->track = 'Matrice de suivi';
|
||||
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
|
||||
$lang->projectstory->common = 'Exigences du projet';
|
||||
$lang->projectstory->index = 'Exigences Accueil';
|
||||
$lang->projectstory->story = $lang->generalSR;
|
||||
$lang->projectstory->track = 'Matrice de suivi';
|
||||
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
|
||||
$lang->projectstory->unLinkStory = 'UnLinked' . $lang->SRCommon;
|
||||
|
||||
global $app;
|
||||
$app->loadLang('product');
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
<?php
|
||||
$lang->projectstory->common = 'Yêu cầu dự án';
|
||||
$lang->projectstory->index = 'Yêu cầu trang nhà';
|
||||
$lang->projectstory->story = $lang->generalSR;
|
||||
$lang->projectstory->track = 'Theo dõi ma trận';
|
||||
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
|
||||
$lang->projectstory->common = 'Yêu cầu dự án';
|
||||
$lang->projectstory->index = 'Yêu cầu trang nhà';
|
||||
$lang->projectstory->story = $lang->generalSR;
|
||||
$lang->projectstory->track = 'Theo dõi ma trận';
|
||||
$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
|
||||
$lang->projectstory->unLinkStory = 'UnLinked' . $lang->SRCommon;
|
||||
|
||||
global $app;
|
||||
$app->loadLang('product');
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
<?php
|
||||
$lang->projectstory->common = '项目需求';
|
||||
$lang->projectstory->index = '需求主页';
|
||||
$lang->projectstory->story = $lang->generalSR;
|
||||
$lang->projectstory->track = '跟踪矩阵';
|
||||
$lang->projectstory->linkStory = '关联' . $lang->SRCommon;
|
||||
$lang->projectstory->common = '项目需求';
|
||||
$lang->projectstory->index = '需求主页';
|
||||
$lang->projectstory->story = $lang->generalSR;
|
||||
$lang->projectstory->track = '跟踪矩阵';
|
||||
$lang->projectstory->linkStory = '关联' . $lang->SRCommon;
|
||||
$lang->projectstory->unLinkStory = '移除' . $lang->SRCommon;
|
||||
|
||||
global $app;
|
||||
$app->loadLang('product');
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
<?php
|
||||
$lang->projectstory->common = '項目需求';
|
||||
$lang->projectstory->index = '需求主頁';
|
||||
$lang->projectstory->story = $lang->generalSR;
|
||||
$lang->projectstory->track = '跟蹤矩陣';
|
||||
$lang->projectstory->linkStory = '關聯' . $lang->SRCommon;
|
||||
$lang->projectstory->common = '項目需求';
|
||||
$lang->projectstory->index = '需求主頁';
|
||||
$lang->projectstory->story = $lang->generalSR;
|
||||
$lang->projectstory->track = '跟蹤矩陣';
|
||||
$lang->projectstory->linkStory = '關聯' . $lang->SRCommon;
|
||||
$lang->projectstory->unLinkStory = '移除' . $lang->SRCommon;
|
||||
|
||||
global $app;
|
||||
$app->loadLang('product');
|
||||
|
||||
@@ -170,7 +170,7 @@ $config->story->datatable->fieldList['version']['fixed'] = 'no';
|
||||
$config->story->datatable->fieldList['version']['width'] = '60';
|
||||
$config->story->datatable->fieldList['version']['required'] = 'no';
|
||||
|
||||
global $lang;
|
||||
global $lang, $app;
|
||||
$config->story->datatable->fieldList['taskCount']['title'] = 'T';
|
||||
$config->story->datatable->fieldList['taskCount']['fixed'] = 'no';
|
||||
$config->story->datatable->fieldList['taskCount']['width'] = '30';
|
||||
@@ -194,5 +194,5 @@ $config->story->datatable->fieldList['caseCount']['name'] = $lang->story->ca
|
||||
|
||||
$config->story->datatable->fieldList['actions']['title'] = 'actions';
|
||||
$config->story->datatable->fieldList['actions']['fixed'] = 'right';
|
||||
$config->story->datatable->fieldList['actions']['width'] = '180';
|
||||
$config->story->datatable->fieldList['actions']['width'] = $app->rawModule == 'projectstory' ? '200' : '180';
|
||||
$config->story->datatable->fieldList['actions']['required'] = 'yes';
|
||||
|
||||
+11
-9
@@ -3266,16 +3266,17 @@ class storyModel extends model
|
||||
/* Check the product is closed. */
|
||||
$canBeChanged = common::canBeChanged('story', $story);
|
||||
|
||||
$canBatchEdit = common::hasPriv('story', 'batchEdit');
|
||||
$canBatchClose = common::hasPriv('story', 'batchClose');
|
||||
$canBatchReview = common::hasPriv('story', 'batchReview');
|
||||
$canBatchChangeStage = common::hasPriv('story', 'batchChangeStage');
|
||||
$canBatchChangeBranch = common::hasPriv('story', 'batchChangeBranch');
|
||||
$canBatchChangeModule = common::hasPriv('story', 'batchChangeModule');
|
||||
$canBatchChangePlan = common::hasPriv('story', 'batchChangePlan');
|
||||
$canBatchAssignTo = common::hasPriv('story', 'batchAssignTo');
|
||||
$canBatchEdit = common::hasPriv('story', 'batchEdit');
|
||||
$canBatchClose = common::hasPriv('story', 'batchClose');
|
||||
$canBatchReview = common::hasPriv('story', 'batchReview');
|
||||
$canBatchChangeStage = common::hasPriv('story', 'batchChangeStage');
|
||||
$canBatchChangeBranch = common::hasPriv('story', 'batchChangeBranch');
|
||||
$canBatchChangeModule = common::hasPriv('story', 'batchChangeModule');
|
||||
$canBatchChangePlan = common::hasPriv('story', 'batchChangePlan');
|
||||
$canBatchAssignTo = common::hasPriv('story', 'batchAssignTo');
|
||||
$canBatchUnlinkStory = common::hasPriv('projectstory', 'unlinkStory');
|
||||
|
||||
$canBatchAction = ($canBatchEdit or $canBatchClose or $canBatchReview or $canBatchChangeStage or $canBatchChangeBranch or $canBatchChangeModule or $canBatchChangePlan or $canBatchAssignTo);
|
||||
$canBatchAction = ($canBatchEdit or $canBatchClose or $canBatchReview or $canBatchChangeStage or $canBatchChangeBranch or $canBatchChangeModule or $canBatchChangePlan or $canBatchAssignTo or $canBatchUnlinkStory);
|
||||
|
||||
$canView = common::hasPriv('story', 'view');
|
||||
$storyLink = helper::createLink('story', 'view', "storyID=$story->id");
|
||||
@@ -3484,6 +3485,7 @@ class storyModel extends model
|
||||
common::printIcon('story', 'edit', $vars, $story, 'list');
|
||||
common::printIcon('story', 'createCase', "productID=$story->product&branch=$story->branch&module=0&from=¶m=0&$vars", $story, 'list', 'sitemap');
|
||||
common::printIcon('story', 'batchCreate', "productID=$story->product&branch=$story->branch&module=$story->module&storyID=$story->id", $story, 'list', 'treemap-alt', '', '', '', '', $this->lang->story->subdivide);
|
||||
if($this->app->rawModule == 'projectstory') common::printIcon('projectstory', 'unlinkStory', "projectID={$this->session->PRJ}&storyID=$story->id", '', 'list', 'unlink', 'hiddenwin');
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user