Bug 47: google doc list. The dynaforms can't be saved with the name of another existing dynaform

This commit is contained in:
Gustavo Adolfo Cruz Laura
2010-12-15 16:59:26 +00:00
parent 3770364b76
commit c2d2fa485f
4 changed files with 62 additions and 18 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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 );
}
}
}
}
}

View File

@@ -30,10 +30,17 @@
<JS type="javascript"><![CDATA[
function dynaformSaveas ( frm, bOpen ) {
function dynaformSaveas ( frm ) {
if(document.getElementById("form[DYN_TITLENEW]").value){
ajax_post( frm.action, frm, 'POST' );
currentPopupWindow.remove();
var nameDynaForm = document.getElementById("form[DYN_TITLENEW]").value;
var proUid = getField('PRO_UID').value;
reqName=ajax_function('dynaforms_Save','lookforNameDynaform','NAMEDYNAFORM='+encodeURIComponent(nameDynaForm)+'&proUid='+encodeURIComponent(proUid),'POST') ;
if(!reqName){
msgBox('@G::LoadTranslation(ID_EXIST_DYNAFORM)','alert');
}else {
ajax_post( frm.action, frm, 'POST' );
currentPopupWindow.remove();
}
}
else {
alert(G_STRINGS.ID_TITLE_EMPTY);