diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Task.php b/workflow/engine/src/ProcessMaker/BusinessModel/Task.php index 5fd7a266f..6f4560130 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Task.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Task.php @@ -1710,6 +1710,10 @@ class Task 'TU_TYPE' => $iType, 'TU_RELATION' => 2)); } + + $task = new \Task(); + + $result = $task->update(array("TAS_UID" => $sTaskUID, "TAS_TYPE" => "ADHOC")); } } catch ( \Exception $e ) { throw $e; @@ -1746,6 +1750,14 @@ class Task $oTaskUser = \TaskUserPeer::retrieveByPK($sTaskUID, $sAssigneeUID, $iType, $iRelation); if (! is_null( $oTaskUser )) { \TaskUserPeer::doDelete($oCriteria); + + $arrayTaskAdhocAssignees = $this->getTaskAdhocAssignees($sProcessUID, $sTaskUID, "", null, null, ""); + + if (empty($arrayTaskAdhocAssignees)) { + $task = new \Task(); + + $result = $task->update(array("TAS_UID" => $sTaskUID, "TAS_TYPE" => "NORMAL")); + } } else { throw new \Exception(\G::LoadTranslation("ID_ROW_DOES_NOT_EXIST")); } diff --git a/workflow/engine/templates/cases/open.js b/workflow/engine/templates/cases/open.js index 19d56414b..0364c2734 100755 --- a/workflow/engine/templates/cases/open.js +++ b/workflow/engine/templates/cases/open.js @@ -1601,6 +1601,20 @@ Ext.onReady(function(){ ] }); + var smodel = new Ext.grid.RowSelectionModel({ + singleSelect: true, + listeners: { + rowselect: function (sm) + { + Ext.getCmp("btnAssignAdHocUser").setDisabled(false); + }, + rowdeselect: function (sm) + { + Ext.getCmp("btnAssignAdHocUser").setDisabled(true); + } + } + }); + pbark = new Ext.PagingToolbar({ pageSize: 8, store: store, @@ -1627,13 +1641,17 @@ Ext.onReady(function(){ viewConfig: { forceFit:true }, - cm: cmk, store: store, + colModel: cmk, + selModel: smodel, tbar:[ { + id: "btnAssignAdHocUser", + text:_('ID_ASSIGN'), iconCls: 'silk-add', icon: '/images/cases-selfservice.png', + disabled: true, handler: assignAdHocUser } ], @@ -1656,32 +1674,44 @@ Ext.onReady(function(){ function assignAdHocUser() { - rowSelected = adHocUserGrid.getSelectionModel().getSelected(); - PMExt.confirm(_('ID_CONFIRM'), _('ID_CONFIRM_ADHOCUSER_CASE'), function(){ - var loadMask = new Ext.LoadMask(document.body, {msg:_('ID_ASSIGNMENT_CASE')}); - loadMask.show(); - Ext.Ajax.request({ - url : '../adhocUserProxy/reassignCase' , - method: 'POST', - params : {USR_UID: rowSelected.data.USR_UID, THETYPE: 'ADHOC'}, - success: function ( result, request ) { - loadMask.hide(); - var data = Ext.util.JSON.decode(result.responseText); - if( data.success ) { - CloseWindow(); - location.href = 'casesListExtJs'; - } - else { - PMExt.error(_('ID_ERROR'), data.msg); - } - }, - failure: function ( result, request) { - Ext.MessageBox.alert(_('ID_FAILED'), result.responseText); - } - }); - }); - } + var rowSelected = adHocUserGrid.getSelectionModel().getSelected(); + + if (typeof(rowSelected) != "undefined") { + PMExt.confirm( + _("ID_CONFIRM"), + _("ID_CONFIRM_ADHOCUSER_CASE"), + function () + { + var loadMask = new Ext.LoadMask(document.body, {msg: _("ID_ASSIGNMENT_CASE")}); + + loadMask.show(); + + Ext.Ajax.request({ + url: "../adhocUserProxy/reassignCase", + method: "POST", + params: {USR_UID: rowSelected.data.USR_UID, THETYPE: "ADHOC"}, + success: function (result, request) + { + loadMask.hide(); + var data = Ext.util.JSON.decode(result.responseText); + + if (data.success) { + CloseWindow(); + location.href = "casesListExtJs"; + } else { + PMExt.error(_("ID_ERROR"), data.msg); + } + }, + failure: function (result, request) + { + Ext.MessageBox.alert(_("ID_FAILED"), result.responseText); + } + }); + } + ); + } } +} CloseWindow = function(){ Ext.getCmp('w').hide(); @@ -1702,3 +1732,4 @@ Ext.onReady(function(){ node.select(); } +