Merged in darojas/processmaker/PM1030 (pull request #1259)

PM-1030 "2 dynaforms with same name" SOLVED
This commit is contained in:
Julio Cesar Laura Avendaño
2014-12-10 15:00:42 -04:00
4 changed files with 45 additions and 4 deletions

View File

@@ -517,13 +517,14 @@ class Dynaform extends BaseDynaform
return $G_FORM->fields;
}
public function verifyExistingName ($sName, $sProUid)
public function verifyExistingName ($sName, $sProUid, $sDynUid)
{
$sNameDyanform = urldecode( $sName );
$sProUid = urldecode( $sProUid );
$oCriteria = new Criteria( 'workflow' );
$oCriteria->addSelectColumn( DynaformPeer::DYN_UID );
$oCriteria->add( DynaformPeer::PRO_UID, $sProUid );
$oCriteria->add( DynaformPeer::DYN_UID, $sDynUid );
$oDataset = DynaformPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$flag = true;
@@ -532,14 +533,16 @@ class Dynaform extends BaseDynaform
$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_ID, $sDynUid, Criteria::NOT_EQUAL);
$oCriteria1->add( ContentPeer::CON_VALUE, $sNameDyanform );
$oCriteria1->add( ContentPeer::CON_LANG, SYS_LANG );
$oCriteria1->add( DynaformPeer::PRO_UID, $sProUid);
$oCriteria1->addJoin( ContentPeer::CON_ID, DynaformPeer::DYN_UID, Criteria::INNER_JOIN );
$oDataset1 = ContentPeer::doSelectRS( $oCriteria1 );
$oDataset1->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oDataset1->next();
$aRow1 = $oDataset1->getRow();
if ($aRow1['DYNAFORMS']) {
if ($aRow1['DYNAFORMS'] == 1) {
$flag = false;
break;
}

View File

@@ -856,6 +856,13 @@ var dynaformEditor={
/*getField("ENABLETEMPLATE","dynaforms_Properties").checked=(prop.ENABLETEMPLATE=="1");*/
getField("MODE","dynaforms_Properties").value=prop.MODE;
},
refreshPropertiesDynTitle:function()
{
var form=this.views["properties"].getElementsByTagName("form")[0];
var prop=this.ajax.get_properties(this.A,this.dynUid);
getField("A","dynaforms_Properties").value=prop.A;
getField("DYN_TITLE","dynaforms_Properties").value=prop.DYN_TITLE;
},
// Internal functions
runScripts:function(scripts)
{

View File

@@ -26,6 +26,11 @@
*
* @author David Callizaya <davidsantos@colosa.com>
*/
if (isset($_POST['dynaformName'])) {
$dynaForm = new Dynaform();
$res = $dynaForm->verifyExistingName($_POST['dynaformName'], $_POST['proUid'], $_POST['dynaformUid']);
print ($res) ? 1 : 0;
}
global $_DBArray;
if (! isset( $_DBArray )) {
$_DBArray = array ();

View File

@@ -73,8 +73,34 @@
</PME_PROP_REVERT>
<sdfsdf type="javascript">
<![CDATA[
leimnud.event.add(getField('DYN_TITLE'), 'blur', function()
{
var isTrue;
oRPC = new leimnud.module.rpc.xmlhttp({
url : "../dynaforms/dynaforms_Ajax",
method: 'POST',
async : true,
args : 'dynaformName=' + getField('DYN_TITLE').value + '&dynaformUid=' + getField('DYN_UID').value + '&proUid=' + getField('PRO_UID').value
});
oRPC.callback = function(oRPC) {
var response = oRPC.xmlhttp.responseText;
response = parseInt(response);
var nDynaform = new input(getField('DYN_TITLE'));
if (response){
nDynaform.passed();
} else {
nDynaform.failed();
nDynaform.focus();
msgBox("@G::LoadTranslation(ID_EXIST_DYNAFORM)", "alert");
dynaformEditor.refreshPropertiesDynTitle();
}
}.extend(this);
isTrue = oRPC.make();
return isTrue;
});
// added by gustavo cruz gustavo-at-colosa.com
// function getElementsByClassNameCrossBrowser
// CrossBrowser implemetation of the getElementsByClassName firefox function