diff --git a/workflow/engine/methods/groups/groups_Ajax.php b/workflow/engine/methods/groups/groups_Ajax.php index 233e56619..aa2d04f96 100644 --- a/workflow/engine/methods/groups/groups_Ajax.php +++ b/workflow/engine/methods/groups/groups_Ajax.php @@ -178,7 +178,7 @@ switch ($_POST['action']) { $criteria = new Criteria( 'workflow' ); $criteria->add(ObjectPermissionPeer::USR_UID, $_POST['GRP_UID']); ObjectPermissionPeer::doDelete( $criteria ); - + //Delete supervisors assignments require_once 'classes/model/ProcessUser.php'; $criteria = new Criteria( 'workflow' ); @@ -342,5 +342,24 @@ switch ($_POST['action']) { $c->saveConfig( 'groupList', 'pageSize', '', $_SESSION['USER_LOGGED'] ); echo '{success: true}'; break; -} + case "verifyIfAssigned": + $groupUid = $_POST["groupUid"]; + $message = "OK"; + $criteria = new Criteria("workflow"); + $criteria->addSelectColumn(TaskUserPeer::TAS_UID); + $criteria->add(TaskUserPeer::USR_UID, $groupUid, Criteria::EQUAL); + $criteria->add(TaskUserPeer::TU_RELATION, "2", Criteria::EQUAL); + + $rsCriteria = TaskUserPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); + + if($rsCriteria->next() != 0) { + $message = "ERROR"; + } + + $response = array(); + $response["result"] = $message; + echo G::json_encode($response); + break; +} \ No newline at end of file diff --git a/workflow/engine/templates/groups/groupsList.js b/workflow/engine/templates/groups/groupsList.js index b9d0e1908..0ce028370 100755 --- a/workflow/engine/templates/groups/groupsList.js +++ b/workflow/engine/templates/groups/groupsList.js @@ -494,31 +494,54 @@ SaveEditGroup = function(){ }; //Delete Button Action -DeleteButtonAction = function(){ - Ext.Msg.confirm(_('ID_CONFIRM'), _('ID_MSG_CONFIRM_DELETE_GROUP'), - function(btn, text){ - if (btn=="yes"){ - rowSelected = infoGrid.getSelectionModel().getSelected(); - viewport.getEl().mask(_('ID_PROCESSING')); - Ext.Ajax.request({ - url: 'groups_Ajax', - params: {action: 'deleteGroup', GRP_UID: rowSelected.data.GRP_UID}, - success: function(r,o){ - viewport.getEl().unmask(); - DoSearch(); - editButton.disable(); //Disable Edit Button - deleteButton.disable(); //Disable Delete Button - membersButton.disable(); //Disable Members Button - PMExt.notify(_('ID_GROUPS'), _('ID_GROUPS_SUCCESS_DELETE')); - }, - failure: function(){ - viewport.getEl().unmask(); - } - }); +DeleteButtonAction = function() { + Ext.Msg.confirm(_('ID_CONFIRM'), _('ID_MSG_CONFIRM_DELETE_GROUP'), + function (btn, text) { + if (btn == "yes") { + rowSelected = infoGrid.getSelectionModel().getSelected(); - } - } - ); + Ext.Ajax.request({ + url: "groups_Ajax", + method: "POST", + params: { + action: "verifyIfAssigned", + groupUid: rowSelected.data.GRP_UID + }, + + success: function (response, opts) { + var dataRespuesta = Ext.util.JSON.decode(response.responseText); + if (dataRespuesta.result == "OK") { + viewport.getEl().mask(_("ID_PROCESSING")); + Ext.Ajax.request({ + url: "groups_Ajax", + params: { + action: "deleteGroup", + GRP_UID: rowSelected.data.GRP_UID + }, + + success: function(r,o) { + viewport.getEl().unmask(); + DoSearch(); + editButton.disable(); //Disable Edit Button + deleteButton.disable(); //Disable Delete Button + membersButton.disable(); //Disable Members Button + PMExt.notify(_('ID_GROUPS'), _('ID_GROUPS_SUCCESS_DELETE')); + }, + failure: function() { + viewport.getEl().unmask(); + } + }); + } else { + Ext.MessageBox.alert(_("ID_ERROR"), _("ID_GROUP_CANNOT_DELETE_WHILE_ASSIGNED_TO_TASK")); + } + }, + failure: function (response, opts){ + // + } + }); + } + } + ); }; //Render Status