diff --git a/workflow/engine/classes/model/Dynaform.php b/workflow/engine/classes/model/Dynaform.php index 12f5859b5..06166a55a 100644 --- a/workflow/engine/classes/model/Dynaform.php +++ b/workflow/engine/classes/model/Dynaform.php @@ -464,6 +464,35 @@ class Dynaform extends BaseDynaform { $G_FORM->parseFile( $filename , SYS_LANG, true ); return $G_FORM->fields; - } + } + + function verifyExistingName($sName,$sProUid){ + $sNameDyanform=urldecode($sName); + $sProUid=urldecode($sProUid); + $oCriteria = new Criteria('workflow'); + $oCriteria->addSelectColumn ( DynaformPeer::DYN_UID ); + $oCriteria->add( DynaformPeer::PRO_UID, $sProUid ); + $oDataset = DynaformPeer::doSelectRS( $oCriteria ); + $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $flag=true; + while ($oDataset->next() && $flag) { + $aRow = $oDataset->getRow(); + $oCriteria1 = new Criteria('workflow'); + $oCriteria1->addSelectColumn('COUNT(*) AS DYNAFORMS'); + $oCriteria1->add(ContentPeer::CON_CATEGORY, 'DYN_TITLE'); + $oCriteria1->add(ContentPeer::CON_ID, $aRow['DYN_UID']); + $oCriteria1->add(ContentPeer::CON_VALUE, $sNameDyanform); + $oCriteria1->add(ContentPeer::CON_LANG, SYS_LANG); + $oDataset1 = ContentPeer::doSelectRS($oCriteria1); + $oDataset1->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $oDataset1->next(); + $aRow1 = $oDataset1->getRow(); + if($aRow1['DYNAFORMS']) { + $flag =false; + break; + } + } + return $flag; + } } // Dynaform diff --git a/workflow/engine/methods/dynaforms/dynaforms_Save.php b/workflow/engine/methods/dynaforms/dynaforms_Save.php index 1db947288..711f35e0b 100644 --- a/workflow/engine/methods/dynaforms/dynaforms_Save.php +++ b/workflow/engine/methods/dynaforms/dynaforms_Save.php @@ -30,6 +30,12 @@ if (($RBAC_Response=$RBAC->userCanAccess("PM_FACTORY"))!=1) return $RBAC_Respons $dynaform = new dynaform(); $oJSON = new Services_JSON(); + if(isset($_POST['function']) && $_POST['function']=='lookforNameDynaform'){ + $existsName = $dynaform->verifyExistingName($_POST['NAMEDYNAFORM'], $_POST['proUid']); + print $existsName; + die(); + } + if(isset($_POST['form'])) { $aData = $_POST['form']; //For old process map form diff --git a/workflow/engine/xmlform/dynaforms/dynaforms_Options.xml b/workflow/engine/xmlform/dynaforms/dynaforms_Options.xml index f5e102efc..21a4a8d32 100644 --- a/workflow/engine/xmlform/dynaforms/dynaforms_Options.xml +++ b/workflow/engine/xmlform/dynaforms/dynaforms_Options.xml @@ -75,26 +75,28 @@ } function dynaformSave ( form, bOpen ) { - var nameDynaForm = getField('DYN_TITLE').value; - var proUid = getField('PRO_UID').value; + var nameDynaForm = getField('DYN_TITLE').value; + var proUid = getField('PRO_UID').value; - if(nameDynaForm==''){ - alert(G_STRINGS.ID_REQUIRED_NAME_DYNAFORM);return false; - } + if(nameDynaForm==''){ + // G_STRINGS.ID_REQUIRED_NAME_DYNAFORM + msgBox('@G::LoadTranslation(ID_REQUIRED_NAME_DYNAFORM)','alert'); + return false; + } - reqName=ajax_function(form.action,'lookforNameDynaform','NAMEDYNAFORM='+encodeURIComponent(nameDynaForm)+'&proUid='+encodeURIComponent(proUid),'POST') ; - if(!reqName){ - alert(G_STRINGS.ID_EXIST_DYNAFORM);return false; - }else{ - if (!bOpen) { + reqName=ajax_function(form.action,'lookforNameDynaform','NAMEDYNAFORM='+encodeURIComponent(nameDynaForm)+'&proUid='+encodeURIComponent(proUid),'POST') ; + if(!reqName){ +// alert(G_STRINGS.ID_EXIST_DYNAFORM);return false; + msgBox('@G::LoadTranslation(ID_EXIST_DYNAFORM)','alert'); + }else{ + if (!bOpen) { ajax_post( form.action, form, 'POST' ); lastPopupWindow.remove(); @#PAGED_TABLE_ID.refresh(); - } - else { + } else { ajax_post( form.action, form, 'POST', openDynaform ); - } - } + } + } } diff --git a/workflow/engine/xmlform/dynaforms/dynaforms_Saveas.xml b/workflow/engine/xmlform/dynaforms/dynaforms_Saveas.xml index 51c08ae0e..32d03982d 100644 --- a/workflow/engine/xmlform/dynaforms/dynaforms_Saveas.xml +++ b/workflow/engine/xmlform/dynaforms/dynaforms_Saveas.xml @@ -30,10 +30,17 @@