BUG 8775 Add validation to prevent deletion of tasks... SOLVED
- Problem, a task is deleted if you have or not cases - Added validation, that prevents a task is deleted if you have cases
This commit is contained in:
@@ -1511,22 +1511,48 @@ var processmap=function(){
|
||||
},args:index})},
|
||||
{image:"/images/delete.png",text:G_STRINGS.ID_PROCESSMAP_DELETE_TASK,launch:this.parent.closure({instance:this,method:function(index){
|
||||
var data = this.data.db.task[index];
|
||||
new this.parent.module.app.confirm().make({
|
||||
label:G_STRINGS.ID_PROCESSMAP_CONFIRM_DELETE_TASK+" "+ data.label,
|
||||
action:function()
|
||||
{
|
||||
data.object.drag.flush();
|
||||
this.dropables.derivation.unregister(data.object.dropIndex);
|
||||
this.data.render.deleteDerivation(data.uid,true);
|
||||
this.parent.dom.remove(data.object.elements);
|
||||
var r = new leimnud.module.rpc.xmlhttp({
|
||||
url:this.options.dataServer,
|
||||
args:"action=deleteTask&data="+{pro_uid:this.options.uid,tas_uid:data.uid}.toJSONString()
|
||||
});
|
||||
r.make();
|
||||
}.extend(this)
|
||||
|
||||
var r = new leimnud.module.rpc.xmlhttp({
|
||||
url: this.options.dataServer,
|
||||
args: "action=taskCases&data=" + {
|
||||
task_uid: data.uid
|
||||
}.toJSONString()
|
||||
});
|
||||
r.callback = function (rpc) {
|
||||
var rs = rpc.xmlhttp.responseText.parseJSON();
|
||||
var casesNumRec = rs.casesNumRec;
|
||||
|
||||
if (casesNumRec == 0) {
|
||||
new this.parent.module.app.confirm().make({
|
||||
label: G_STRINGS.ID_PROCESSMAP_CONFIRM_DELETE_TASK + " " + data.label,
|
||||
action: function () {
|
||||
data.object.drag.flush();
|
||||
this.dropables.derivation.unregister(data.object.dropIndex);
|
||||
this.data.render.deleteDerivation(data.uid, true);
|
||||
this.parent.dom.remove(data.object.elements);
|
||||
var r2 = new leimnud.module.rpc.xmlhttp({
|
||||
url: this.options.dataServer,
|
||||
args: "action=deleteTask&data=" + {
|
||||
pro_uid: this.options.uid,
|
||||
tas_uid: data.uid
|
||||
}.toJSONString()
|
||||
});
|
||||
r2.make();
|
||||
}.extend(this)
|
||||
});
|
||||
}
|
||||
else {
|
||||
var msg = _("ID_TASK_CANT_DELETE");
|
||||
msg = msg.replace("{0}", data.label);
|
||||
msg = msg.replace("{1}", casesNumRec);
|
||||
|
||||
new this.parent.module.app.info().make({label: msg});
|
||||
}
|
||||
}.extend(this);
|
||||
r.make();
|
||||
|
||||
return;
|
||||
|
||||
if(confirm(G_STRINGS.ID_PROCESSMAP_CONFIRM_DELETE_TASK+" "+ data.label))
|
||||
{
|
||||
data.object.drag.flush();
|
||||
|
||||
@@ -501,6 +501,40 @@ try {
|
||||
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'processes/processes_FileEditCreateEmpty', '');
|
||||
G::RenderPage('publish', 'raw');
|
||||
break;
|
||||
|
||||
case "taskCases":
|
||||
require_once ("classes/model/Application.php");
|
||||
require_once ("classes/model/AppDelegation.php");
|
||||
require_once ("classes/model/AppDelay.php");
|
||||
|
||||
$criteria = new Criteria("workflow");
|
||||
$criteria->addSelectColumn("COUNT(DISTINCT APPLICATION.APP_UID)");
|
||||
|
||||
$criteria->addJoin(ApplicationPeer::APP_UID, AppDelegationPeer::APP_UID, Criteria::LEFT_JOIN);
|
||||
$criteria->addJoin(ApplicationPeer::APP_UID, AppDelayPeer::APP_UID, Criteria::LEFT_JOIN);
|
||||
|
||||
$criteria->add(AppDelegationPeer::TAS_UID, $oData->task_uid);
|
||||
|
||||
$criteria->add(
|
||||
$criteria->getNewCriterion(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL)->addOr(
|
||||
$criteria->getNewCriterion(AppDelayPeer::APP_DELAY_UID, null, Criteria::ISNOTNULL)->addAnd(
|
||||
$criteria->getNewCriterion(AppDelayPeer::APP_TYPE, array("REASSIGN", "ADHOC", "CANCEL"), Criteria::NOT_IN))->addAnd(
|
||||
$criteria->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, null, Criteria::ISNULL)->addOr(
|
||||
$criteria->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, 0))
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$rs = ApplicationPeer::doSelectRS($criteria);
|
||||
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
|
||||
$response->casesNumRec = intval($row[0]);
|
||||
|
||||
$json = new Services_JSON();
|
||||
$sOutput = $json->encode($response);
|
||||
break;
|
||||
}
|
||||
if( isset($sOutput) )
|
||||
die($sOutput);
|
||||
|
||||
Reference in New Issue
Block a user