diff --git a/module/product/control.php b/module/product/control.php index 51809e5ffa..5c37ab4d87 100644 --- a/module/product/control.php +++ b/module/product/control.php @@ -356,16 +356,38 @@ class product extends control $product = $this->product->getById($productID); /* Get the projects linked with this product. */ - $projects = array(); + $notRemoveProduct = array(); + $linkStoriesProjects = array(); + $canChangePGM = true; + $singleLinkProjects = array(); + $multipleLinkProjects = array(); + + $notRemoveProduct = $this->dao->select('*')->from(TABLE_PROJECTSTORY)->where('product')->eq($productID)->fetchPairs('project', 'product'); + if(!empty($notRemoveProduct)) $canChangePGM = false; + $projectPairs = $this->product->getProjectPairsByProduct($productID); + if(!empty($projectPairs)) { foreach($projectPairs as $projectID => $projectName) { - $projects[$projectID] = new stdClass(); - $projects[$projectID]->id = $projectID; - $projects[$projectID]->name = $projectName; - $projects[$projectID]->product = $this->dao->select('product')->from(TABLE_PROJECTPRODUCT)->where('project')->eq($projectID)->fetchPairs(); + if($canChangePGM) + { + $products = $this->dao->select('product')->from(TABLE_PROJECTPRODUCT)->where('project')->eq($projectID)->fetchPairs(); + if(count($products) == 1) + { + $singleLinkProjects[$projectID] = $projectName; + } + + if(count($products) > 1) + { + $multipleLinkProjects[$projectID] = $projectName; + } + } + else + { + if(isset($notRemoveProduct[$projectID])) $linkStoriesProjects[$projectID] = $projectName; + } } } @@ -374,9 +396,9 @@ class product extends control $changes = $this->product->update($productID); /* Change the projects set of the program. */ - if(($_POST['program'] != $product->program) and $projects) + if(($_POST['program'] != $product->program) and $singleLinkProjects or $multipleLinkProjects) { - $this->product->updateProjects($projects, $_POST['program'], $_POST['confirmChange']); + $this->product->updateProjects($productID, $singleLinkProjects, $multipleLinkProjects); } if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError())); @@ -432,18 +454,21 @@ class product extends control $this->view->position[] = html::a($this->createLink($this->moduleName, 'browse'), $product->name); $this->view->position[] = $this->lang->product->edit; - $this->view->product = $product; - $this->view->groups = $this->loadModel('group')->getPairs(); - $this->view->program = $this->loadModel('program')->getParentPairs(); - $this->view->poUsers = $poUsers; - $this->view->poUsers = $poUsers; - $this->view->qdUsers = $qdUsers; - $this->view->rdUsers = $rdUsers; - $this->view->users = $this->user->getPairs('nodeleted|noclosed'); - $this->view->programs = array('') + $this->loadModel('program')->getTopPGMPairs(); - $this->view->projects = $projects; - $this->view->lines = array('') + $this->loadModel('tree')->getLinePairs(); - $this->view->URSRPairs = $this->loadModel('custom')->getURSRPairs(); + $this->view->product = $product; + $this->view->groups = $this->loadModel('group')->getPairs(); + $this->view->program = $this->loadModel('program')->getParentPairs(); + $this->view->poUsers = $poUsers; + $this->view->poUsers = $poUsers; + $this->view->qdUsers = $qdUsers; + $this->view->rdUsers = $rdUsers; + $this->view->users = $this->user->getPairs('nodeleted|noclosed'); + $this->view->programs = array('') + $this->loadModel('program')->getTopPGMPairs(); + $this->view->lines = array('') + $this->loadModel('tree')->getLinePairs(); + $this->view->URSRPairs = $this->loadModel('custom')->getURSRPairs(); + $this->view->canChangePGM = $canChangePGM; + $this->view->linkStoriesProjects = $linkStoriesProjects; + $this->view->singleLinkProjects = $singleLinkProjects; + $this->view->multipleLinkProjects = $multipleLinkProjects; unset($this->lang->product->typeList['']); $this->display(); diff --git a/module/product/js/edit.js b/module/product/js/edit.js index 3ab6c61bea..93d9adcd40 100644 --- a/module/product/js/edit.js +++ b/module/product/js/edit.js @@ -3,35 +3,26 @@ $(function() $('#program').change(function() { var programID = $(this).val(); - if(programID != oldProgramID && projects) + if(programID != oldProgramID && (!canChangePGM || singleLinkProjects.length !== 0 || multipleLinkProjects.length !== 0)) { - var singleLinkProjects = ''; - var multipleLinkProjects = ''; - for(var i in projects) + $('#changeProgram').modal({show: true}); + if(!canChangePGM) { - var project = projects[i]; - - if(Object.getOwnPropertyNames(project.product).length == 1) - { - singleLinkProjects += '【' + project.name + '】'; - } - else - { - multipleLinkProjects += '【' + project.name + '】'; - } - } - - PGMChangeTip = PGMChangeTip.replace("%s", singleLinkProjects); - confirmChangePGM = confirmChangePGM.replace("%s", multipleLinkProjects); - if(singleLinkProjects) alert(PGMChangeTip); - if(multipleLinkProjects && confirm(confirmChangePGM)) - { - $('#confirmChange').val('yes'); - } - else - { - $('#confirmChange').val('no'); + $('#program').val(oldProgramID); + $('#program').trigger("chosen:updated"); } } }) }); + +function setChangeProjects() +{ + var projects = ','; + $("input[name^='projects']:checked").each(function() + { + projects += $(this).val() + ','; + $('#changeProjects').val(projects); + }); + + $('#changeProgram').modal('hide'); +} diff --git a/module/product/lang/de.php b/module/product/lang/de.php index d210696633..d19496ae49 100644 --- a/module/product/lang/de.php +++ b/module/product/lang/de.php @@ -9,28 +9,29 @@ * @version $Id: en.php 5091 2013-07-10 06:06:46Z chencongzhi520@gmail.com $ * @link http://www.zentao.net */ -$lang->product->common = $lang->productCommon; -$lang->product->index = $lang->productCommon . 'Home'; -$lang->product->browse = 'Story Liste'; -$lang->product->dynamic = 'Verlauf'; -$lang->product->view = 'Übersicht'; -$lang->product->edit = "{$lang->productCommon} bearbeiten"; -$lang->product->batchEdit = 'Mehrere bearbeiten'; -$lang->product->create = "Erstelle {$lang->productCommon}"; -$lang->product->delete = "Lösche {$lang->productCommon}"; -$lang->product->deleted = 'Gelöscht'; -$lang->product->close = 'Schließen'; -$lang->product->closeAction = "Close {$lang->productCommon}"; -$lang->product->select = "Auswahl {$lang->productCommon}"; -$lang->product->mine = 'Meine Zuständigkeiten:'; -$lang->product->other = 'Andere:'; -$lang->product->closed = 'Geschlossen'; -$lang->product->updateOrder = 'Ranking'; -$lang->product->orderAction = "Rank {$lang->productCommon}"; -$lang->product->all = "Alle {$lang->productCommon}"; -$lang->product->export = 'Exportiere Daten'; -$lang->product->exportAction = "Export {$lang->productCommon}"; -$lang->product->dashboard = 'Dashboard'; +$lang->product->common = $lang->productCommon; +$lang->product->index = $lang->productCommon . 'Home'; +$lang->product->browse = 'Story Liste'; +$lang->product->dynamic = 'Verlauf'; +$lang->product->view = 'Übersicht'; +$lang->product->edit = "{$lang->productCommon} bearbeiten"; +$lang->product->batchEdit = 'Mehrere bearbeiten'; +$lang->product->create = "Erstelle {$lang->productCommon}"; +$lang->product->delete = "Lösche {$lang->productCommon}"; +$lang->product->deleted = 'Gelöscht'; +$lang->product->close = 'Schließen'; +$lang->product->closeAction = "Close {$lang->productCommon}"; +$lang->product->select = "Auswahl {$lang->productCommon}"; +$lang->product->mine = 'Meine Zuständigkeiten:'; +$lang->product->other = 'Andere:'; +$lang->product->closed = 'Geschlossen'; +$lang->product->updateOrder = 'Ranking'; +$lang->product->orderAction = "Rank {$lang->productCommon}"; +$lang->product->all = "Alle {$lang->productCommon}"; +$lang->product->export = 'Exportiere Daten'; +$lang->product->exportAction = "Export {$lang->productCommon}"; +$lang->product->dashboard = 'Dashboard'; +$lang->product->changeProgram = "{$lang->productCommon} confirmation of the scope of influence of adjustment of the program set"; $lang->product->basicInfo = 'Basis Info'; $lang->product->otherInfo = 'Andere Info'; @@ -67,6 +68,7 @@ $lang->product->confirmDelete = " Möchten Sie {$lang->productCommon} lösche $lang->product->errorNoProduct = "Kein {$lang->productCommon} erstellt!"; $lang->product->accessDenied = "Sie haben keinen Zugriff auf {$lang->productCommon}."; $lang->product->PGMChangeTip = "The projects linked with this {$lang->productCommon}: %s will be transferred to the modified program set together."; +$lang->product->notChangePGMTip = "The {$lang->SRCommon} of {$lang->productCommon} has been linked to the following projects, please cancel the link before proceeding"; $lang->product->confirmChangePGM = "The projects linked with this {$lang->productCommon}: %s is also linked with other products, whether to transfer projects to the modified program set."; $lang->product->id = 'ID'; diff --git a/module/product/lang/en.php b/module/product/lang/en.php index 6917b60b48..1ec4f292c0 100644 --- a/module/product/lang/en.php +++ b/module/product/lang/en.php @@ -9,28 +9,29 @@ * @version $Id: en.php 5091 2013-07-10 06:06:46Z chencongzhi520@gmail.com $ * @link http://www.zentao.net */ -$lang->product->common = $lang->productCommon; -$lang->product->index = $lang->productCommon . ' Home'; -$lang->product->browse = 'Story List'; -$lang->product->dynamic = 'Dynamics'; -$lang->product->view = "{$lang->productCommon} Detail"; -$lang->product->edit = "Edit {$lang->productCommon}"; -$lang->product->batchEdit = 'Batch Edit'; -$lang->product->create = "Create {$lang->productCommon}"; -$lang->product->delete = "Delete {$lang->productCommon}"; -$lang->product->deleted = 'Deleted'; -$lang->product->close = "Close"; -$lang->product->closeAction = "Close {$lang->productCommon}"; -$lang->product->select = "Select {$lang->productCommon}"; -$lang->product->mine = 'Mine:'; -$lang->product->other = 'Others:'; -$lang->product->closed = 'Closed'; -$lang->product->updateOrder = 'Order'; -$lang->product->orderAction = "Rank {$lang->productCommon}"; -$lang->product->all = "All {$lang->productCommon}s"; -$lang->product->export = 'Export'; -$lang->product->exportAction = "Export {$lang->productCommon}"; -$lang->product->dashboard = "Dashboard"; +$lang->product->common = $lang->productCommon; +$lang->product->index = $lang->productCommon . ' Home'; +$lang->product->browse = 'Story List'; +$lang->product->dynamic = 'Dynamics'; +$lang->product->view = "{$lang->productCommon} Detail"; +$lang->product->edit = "Edit {$lang->productCommon}"; +$lang->product->batchEdit = 'Batch Edit'; +$lang->product->create = "Create {$lang->productCommon}"; +$lang->product->delete = "Delete {$lang->productCommon}"; +$lang->product->deleted = 'Deleted'; +$lang->product->close = "Close"; +$lang->product->closeAction = "Close {$lang->productCommon}"; +$lang->product->select = "Select {$lang->productCommon}"; +$lang->product->mine = 'Mine:'; +$lang->product->other = 'Others:'; +$lang->product->closed = 'Closed'; +$lang->product->updateOrder = 'Order'; +$lang->product->orderAction = "Rank {$lang->productCommon}"; +$lang->product->all = "All {$lang->productCommon}s"; +$lang->product->export = 'Export'; +$lang->product->exportAction = "Export {$lang->productCommon}"; +$lang->product->dashboard = "Dashboard"; +$lang->product->changeProgram = "{$lang->productCommon} confirmation of the scope of influence of adjustment of the program set"; $lang->product->basicInfo = 'Basic Info'; $lang->product->otherInfo = 'Other Info'; @@ -67,6 +68,7 @@ $lang->product->confirmDelete = " Do you want to delete the {$lang->productCo $lang->product->errorNoProduct = "No {$lang->productCommon} is created yet!"; $lang->product->accessDenied = "You have no access to the {$lang->productCommon}."; $lang->product->PGMChangeTip = "The projects linked with this {$lang->productCommon}: %s will be transferred to the modified program set together."; +$lang->product->notChangePGMTip = "The {$lang->SRCommon} of {$lang->productCommon} has been linked to the following projects, please cancel the link before proceeding"; $lang->product->confirmChangePGM = "The projects linked with this {$lang->productCommon}: %s is also linked with other products, whether to transfer projects to the modified program set."; $lang->product->id = 'ID'; diff --git a/module/product/lang/fr.php b/module/product/lang/fr.php index c09539d804..c7d9a93898 100644 --- a/module/product/lang/fr.php +++ b/module/product/lang/fr.php @@ -9,28 +9,29 @@ * @version $Id: en.php 5091 2013-07-10 06:06:46Z chencongzhi520@gmail.com $ * @link https://www.zentao.pm */ -$lang->product->common = $lang->productCommon; -$lang->product->index = 'Accueil ' . $lang->productCommon; -$lang->product->browse = 'Liste Stories'; -$lang->product->dynamic = 'Historique'; -$lang->product->view = "{$lang->productCommon} Détail"; -$lang->product->edit = "Editer {$lang->productCommon}"; -$lang->product->batchEdit = 'Editer par Lot'; -$lang->product->create = "Créer {$lang->productCommon}"; -$lang->product->delete = "Supprimer {$lang->productCommon}"; -$lang->product->deleted = 'Supprimé'; -$lang->product->close = "Fermer"; -$lang->product->closeAction = "Fermer {$lang->productCommon}"; -$lang->product->select = "Choisir {$lang->productCommon}"; -$lang->product->mine = 'Les miens:'; -$lang->product->other = 'Autres:'; -$lang->product->closed = 'Fermés'; -$lang->product->updateOrder = 'Ordre'; -$lang->product->orderAction = "Rang {$lang->productCommon}"; -$lang->product->all = "Tous les {$lang->productCommon}s"; -$lang->product->export = 'Export'; -$lang->product->exportAction = "Export {$lang->productCommon}"; -$lang->product->dashboard = "Dashboard"; +$lang->product->common = $lang->productCommon; +$lang->product->index = 'Accueil ' . $lang->productCommon; +$lang->product->browse = 'Liste Stories'; +$lang->product->dynamic = 'Historique'; +$lang->product->view = "{$lang->productCommon} Détail"; +$lang->product->edit = "Editer {$lang->productCommon}"; +$lang->product->batchEdit = 'Editer par Lot'; +$lang->product->create = "Créer {$lang->productCommon}"; +$lang->product->delete = "Supprimer {$lang->productCommon}"; +$lang->product->deleted = 'Supprimé'; +$lang->product->close = "Fermer"; +$lang->product->closeAction = "Fermer {$lang->productCommon}"; +$lang->product->select = "Choisir {$lang->productCommon}"; +$lang->product->mine = 'Les miens:'; +$lang->product->other = 'Autres:'; +$lang->product->closed = 'Fermés'; +$lang->product->updateOrder = 'Ordre'; +$lang->product->orderAction = "Rang {$lang->productCommon}"; +$lang->product->all = "Tous les {$lang->productCommon}s"; +$lang->product->export = 'Export'; +$lang->product->exportAction = "Export {$lang->productCommon}"; +$lang->product->dashboard = "Dashboard"; +$lang->product->changeProgram = "{$lang->productCommon} confirmation of the scope of influence of adjustment of the program set"; $lang->product->basicInfo = 'Infos de Base'; $lang->product->otherInfo = 'Autres Infos'; @@ -67,6 +68,7 @@ $lang->product->confirmDelete = "Voulez-vous vraiment supprimer le {$lang->pr $lang->product->errorNoProduct = "Aucun {$lang->productCommon} n'est créé pour l'instant !"; $lang->product->accessDenied = "Vous n'avez pas accès au {$lang->productCommon}."; $lang->product->PGMChangeTip = "The projects linked with this {$lang->productCommon}: %s will be transferred to the modified program set together."; +$lang->product->notChangePGMTip = "The {$lang->SRCommon} of {$lang->productCommon} has been linked to the following projects, please cancel the link before proceeding"; $lang->product->confirmChangePGM = "The projects linked with this {$lang->productCommon}: %s is also linked with other products, whether to transfer projects to the modified program set."; $lang->product->id = 'ID'; diff --git a/module/product/lang/vi.php b/module/product/lang/vi.php index 06ee047efc..784ca0e8ba 100644 --- a/module/product/lang/vi.php +++ b/module/product/lang/vi.php @@ -9,28 +9,29 @@ * @version $Id: vi.php 5091 2013-07-10 06:06:46Z quocnho@gmail.com $ * @link http://www.zentao.net */ -$lang->product->common = $lang->productCommon; -$lang->product->index = 'Trang '.$lang->productCommon; -$lang->product->browse = 'Danh sách câu chuyện'; -$lang->product->dynamic = 'Lịch sử'; -$lang->product->view = "Chi tiết {$lang->productCommon}"; -$lang->product->edit = "Sửa {$lang->productCommon}"; -$lang->product->batchEdit = 'Sửa hàng loạt'; -$lang->product->create = "Tạo {$lang->productCommon}"; -$lang->product->delete = "Xóa {$lang->productCommon}"; -$lang->product->deleted = 'Đã xóa'; -$lang->product->close = "Đóng"; -$lang->product->closeAction = "Đóng {$lang->productCommon}"; -$lang->product->select = "Chọn {$lang->productCommon}"; -$lang->product->mine = 'Của bạn:'; -$lang->product->other = 'Khác:'; -$lang->product->closed = 'Đã đóng'; -$lang->product->updateOrder = 'Sắp xếp'; -$lang->product->orderAction = "Đánh giá {$lang->productCommon}"; -$lang->product->all = "Tất cả {$lang->productCommon}"; -$lang->product->export = 'Xuất'; -$lang->product->exportAction = "Xuất {$lang->productCommon}"; -$lang->product->dashboard = "Dashboard"; +$lang->product->common = $lang->productCommon; +$lang->product->index = 'Trang '.$lang->productCommon; +$lang->product->browse = 'Danh sách câu chuyện'; +$lang->product->dynamic = 'Lịch sử'; +$lang->product->view = "Chi tiết {$lang->productCommon}"; +$lang->product->edit = "Sửa {$lang->productCommon}"; +$lang->product->batchEdit = 'Sửa hàng loạt'; +$lang->product->create = "Tạo {$lang->productCommon}"; +$lang->product->delete = "Xóa {$lang->productCommon}"; +$lang->product->deleted = 'Đã xóa'; +$lang->product->close = "Đóng"; +$lang->product->closeAction = "Đóng {$lang->productCommon}"; +$lang->product->select = "Chọn {$lang->productCommon}"; +$lang->product->mine = 'Của bạn:'; +$lang->product->other = 'Khác:'; +$lang->product->closed = 'Đã đóng'; +$lang->product->updateOrder = 'Sắp xếp'; +$lang->product->orderAction = "Đánh giá {$lang->productCommon}"; +$lang->product->all = "Tất cả {$lang->productCommon}"; +$lang->product->export = 'Xuất'; +$lang->product->exportAction = "Xuất {$lang->productCommon}"; +$lang->product->dashboard = "Dashboard"; +$lang->product->changeProgram = "{$lang->productCommon} confirmation of the scope of influence of adjustment of the program set"; $lang->product->basicInfo = 'Thông tin cơ bản'; $lang->product->otherInfo = 'Thông tin khác'; @@ -67,6 +68,7 @@ $lang->product->confirmDelete = " Bạn có muốn xóa {$lang->productCommon $lang->product->errorNoProduct = "Không có {$lang->productCommon} được tạo!"; $lang->product->accessDenied = "Bạn không có quyền truy cập tới {$lang->productCommon} này."; $lang->product->PGMChangeTip = "The projects linked with this {$lang->productCommon}: %s will be transferred to the modified program set together."; +$lang->product->notChangePGMTip = "The {$lang->SRCommon} of {$lang->productCommon} has been linked to the following projects, please cancel the link before proceeding"; $lang->product->confirmChangePGM = "The projects linked with this {$lang->productCommon}: %s is also linked with other products, whether to transfer projects to the modified program set."; $lang->product->id = 'ID'; diff --git a/module/product/lang/zh-cn.php b/module/product/lang/zh-cn.php index 9f0da4e7d8..ad527c44fa 100644 --- a/module/product/lang/zh-cn.php +++ b/module/product/lang/zh-cn.php @@ -9,28 +9,29 @@ * @version $Id: zh-cn.php 5091 2013-07-10 06:06:46Z chencongzhi520@gmail.com $ * @link http://www.zentao.net */ -$lang->product->common = $lang->productCommon . '视图'; -$lang->product->index = $lang->productCommon . '主页'; -$lang->product->browse = "{$lang->SRCommon}列表"; -$lang->product->dynamic = '产品动态'; -$lang->product->view = "{$lang->productCommon}概况"; -$lang->product->edit = "编辑{$lang->productCommon}"; -$lang->product->batchEdit = '批量编辑'; -$lang->product->create = "添加{$lang->productCommon}"; -$lang->product->delete = "删除{$lang->productCommon}"; -$lang->product->deleted = '已删除'; -$lang->product->close = '关闭'; -$lang->product->closeAction = "关闭{$lang->productCommon}"; -$lang->product->select = "请选择{$lang->productCommon}"; -$lang->product->mine = '我负责:'; -$lang->product->other = '其他:'; -$lang->product->closed = '已关闭'; -$lang->product->updateOrder = '排序'; -$lang->product->orderAction = "{$lang->productCommon}排序"; -$lang->product->all = "所有{$lang->productCommon}"; -$lang->product->export = '导出数据'; -$lang->product->exportAction = "导出{$lang->productCommon}"; -$lang->product->dashboard = "{$lang->productCommon}仪表盘"; +$lang->product->common = $lang->productCommon . '视图'; +$lang->product->index = $lang->productCommon . '主页'; +$lang->product->browse = "{$lang->SRCommon}列表"; +$lang->product->dynamic = '产品动态'; +$lang->product->view = "{$lang->productCommon}概况"; +$lang->product->edit = "编辑{$lang->productCommon}"; +$lang->product->batchEdit = '批量编辑'; +$lang->product->create = "添加{$lang->productCommon}"; +$lang->product->delete = "删除{$lang->productCommon}"; +$lang->product->deleted = '已删除'; +$lang->product->close = '关闭'; +$lang->product->closeAction = "关闭{$lang->productCommon}"; +$lang->product->select = "请选择{$lang->productCommon}"; +$lang->product->mine = '我负责:'; +$lang->product->other = '其他:'; +$lang->product->closed = '已关闭'; +$lang->product->updateOrder = '排序'; +$lang->product->orderAction = "{$lang->productCommon}排序"; +$lang->product->all = "所有{$lang->productCommon}"; +$lang->product->export = '导出数据'; +$lang->product->exportAction = "导出{$lang->productCommon}"; +$lang->product->dashboard = "{$lang->productCommon}仪表盘"; +$lang->product->changeProgram = "{$lang->productCommon}调整所属项目集影响范围确认"; $lang->product->basicInfo = '基本信息'; $lang->product->otherInfo = '其他信息'; @@ -66,8 +67,9 @@ $lang->product->assignToNullBugsTitle = '未指派Bug'; $lang->product->confirmDelete = " 您确定删除该{$lang->productCommon}吗?"; $lang->product->errorNoProduct = "还没有创建{$lang->productCommon}!"; $lang->product->accessDenied = "您无权访问该{$lang->productCommon}"; -$lang->product->PGMChangeTip = "该{$lang->productCommon}关联的项目:%s将一同转移到修改后的项目集下。"; -$lang->product->confirmChangePGM = "该{$lang->productCommon}关联的项目:%s还关联了其他产品,是否将项目一同转移到修改后的项目集下。"; +$lang->product->PGMChangeTip = "如下项目只关联了该{$lang->productCommon}, 将直接转移至新项目集下。"; +$lang->product->notChangePGMTip = "该{$lang->productCommon}的{$lang->SRCommon}已经关联到如下项目,请取消关联后再操作"; +$lang->product->confirmChangePGM = "如下项目既关联了该{$lang->productCommon}又关联了其他{$lang->productCommon},请确认是否继续关联该{$lang->productCommon},勾选后将取消与其他{$lang->productCommon}的关联关系,同时转移至新项目集下。"; $lang->product->id = '编号'; $lang->product->program = "所属项目集"; diff --git a/module/product/model.php b/module/product/model.php index 95c06ce9df..181529d58b 100644 --- a/module/product/model.php +++ b/module/product/model.php @@ -545,7 +545,7 @@ class productModel extends model ->setIF($this->post->acl == 'open', 'whitelist', '') ->join('whitelist', ',') ->stripTags($this->config->product->editor->edit['id'], $this->config->allowedTags) - ->remove('uid,confirmChange') + ->remove('uid,changeProjects') ->get(); $product = $this->loadModel('file')->processImgURL($product, $this->config->product->editor->edit['id'], $this->post->uid); @@ -1510,22 +1510,47 @@ class productModel extends model /** * Change the projects set of the program. * - * @param object $projects - * @param int $programID - * @param string $confirm + * @param int $productID + * @param array $singleLinkProjects + * @param array $multipleLinkProjects * @access public * @return void */ - public function updateProjects($projects, $programID, $confirmChange = 'no') + public function updateProjects($productID, $singleLinkProjects = array(), $multipleLinkProjects = array()) { - foreach($projects as $project) + $programID = $_POST['program']; + foreach($singleLinkProjects as $id => $project) { - if((count($project->product) == 1) or $confirmChange == 'yes') + if($project) { $this->dao->update(TABLE_PROJECT) ->set('parent')->eq($programID) - ->set('path')->eq(',' . $programID . ',' . $project->id . ',') - ->where('id')->eq($project->id) + ->set('path')->eq(',' . $programID . ',' . $id . ',') + ->where('id')->eq($id) + ->exec(); + } + } + + foreach($multipleLinkProjects as $id => $project) + { + if(strpos($_POST['changeProjects'], ',' . $id . ',') !== false) + { + $this->dao->delete()->from(TABLE_PROJECTPRODUCT) + ->where('project')->eq($id) + ->andWhere('product')->ne($productID) + ->exec(); + + $this->dao->update(TABLE_PROJECT) + ->set('parent')->eq($programID) + ->set('path')->eq(',' . $programID . ',' . $id . ',') + ->where('id')->eq($id) + ->exec(); + } + else + { + $this->dao->delete()->from(TABLE_PROJECTPRODUCT) + ->where('project')->eq($id) + ->andWhere('product')->eq($productID) ->exec(); } } diff --git a/module/product/view/edit.html.php b/module/product/view/edit.html.php index 4da0b1fdbd..90f582057f 100644 --- a/module/product/view/edit.html.php +++ b/module/product/view/edit.html.php @@ -13,10 +13,13 @@ - program);?> -product->PGMChangeTip);?> -product->confirmChangePGM);?> + + + +