From 3aa82aeeac6f1bff34762bb88df536855b2c37a6 Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Tue, 3 Dec 2013 10:23:19 -0400 Subject: [PATCH 1/2] BUG 13536 "Save as option inside a Dyanform is..." SOLVED - Save as option inside a Dyanform is not working - Problema: Al utilizar el Editor de Dynaform la opcion "Save as" que permite crear copias de un dynaform, dentro del mismo editor se visualiza en el Dropdown donde se lista los dynaforms existentes. Cuando se utiliza esta opcion "Save as" al crear la copia este no aparecia en el Dropdown. Solucion: Al crear la copia de un dynaform se utiliza AJAX que permite la reconstruccion del Dropdown en donde se muestra todo los dynaforms existentes mas la nueva copia que se crea. var result = ajax_post( frm.action, frm, "POST", function (responseText) { ... for (var i = 0; i <= dataResponse.length - 1; i++) { ... } } ); --- .../methods/dynaforms/dynaforms_Save_as.php | 16 +++++++++ .../xmlform/dynaforms/dynaforms_Saveas.xml | 36 +++++++++++++++---- 2 files changed, 45 insertions(+), 7 deletions(-) diff --git a/workflow/engine/methods/dynaforms/dynaforms_Save_as.php b/workflow/engine/methods/dynaforms/dynaforms_Save_as.php index 9ae3ed9e4..50954023e 100755 --- a/workflow/engine/methods/dynaforms/dynaforms_Save_as.php +++ b/workflow/engine/methods/dynaforms/dynaforms_Save_as.php @@ -96,6 +96,22 @@ try { fclose( $templateHd1 ); } + $criteria = processMap::getDynaformsCriteria($PRO_UID); + //FROM + //WHERE + //QUERY + $rsCriteria = DynaformPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); + + $arrayData = array(); + + while ($rsCriteria->next()) { + $row = $rsCriteria->getRow(); + + $arrayData[] = array("value" => $row["DYN_UID"], "text" => htmlentities($row["DYN_TITLE"], ENT_QUOTES, "utf-8")); + } + + echo G::json_encode(array("data" => $arrayData, "length" => count($arrayData))); } catch (Exception $e) { return (array) $e; } diff --git a/workflow/engine/xmlform/dynaforms/dynaforms_Saveas.xml b/workflow/engine/xmlform/dynaforms/dynaforms_Saveas.xml index 32d03982d..9cc7c5bc0 100755 --- a/workflow/engine/xmlform/dynaforms/dynaforms_Saveas.xml +++ b/workflow/engine/xmlform/dynaforms/dynaforms_Saveas.xml @@ -37,16 +37,38 @@ function dynaformSaveas ( frm ) { 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 { + var result = ajax_post( + frm.action, + frm, + "POST", + function (responseText) + { + var dataResponse = eval("(" + responseText + ")"); //json + var elementSelected = document.getElementById("_dynaformsList_").value; + document.getElementById("_dynaformsList_").length = 0; + + for (var i = 0; i <= dataResponse.length - 1; i++) { + var value = dataResponse.data[i].value; + var text = dataResponse.data[i].text; + + if (value == elementSelected) { + document.getElementById("_dynaformsList_").options[i] = new Option(text, value, "", "selected"); + } else { + document.getElementById("_dynaformsList_").options[i] = new Option(text, value); + } + } + } + ); + + currentPopupWindow.remove(); } - } - else { + } else { alert(G_STRINGS.ID_TITLE_EMPTY); return; } - } +} + getField('DYN_TITLE').form.onsubmit = function() {return false;}; function cancel(){ @@ -55,4 +77,4 @@ function cancel(){ ]]> - \ No newline at end of file + \ No newline at end of file From 4945abc9f1fda823bea446e38706cbbae2ab028d Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Tue, 3 Dec 2013 11:47:05 -0400 Subject: [PATCH 2/2] BUG 13536 "Save as option inside a Dyanform is..." SOLVED - Save as option inside a Dyanform is not working - Problema: Al utilizar el Editor de Dynaform la opcion "Save as" que permite crear copias de un dynaform, dentro del mismo editor se visualiza en el Dropdown donde se lista los dynaforms existentes. Cuando se utiliza esta opcion "Save as" al crear la copia este no aparecia en el Dropdown. Solucion: Al crear la copia de un dynaform se utiliza AJAX que permite la reconstruccion del Dropdown en donde se muestra todo los dynaforms existentes mas la nueva copia que se crea. var result = ajax_post( frm.action, frm, "POST", function (responseText) { ... for (var i = 0; i <= dataResponse.length - 1; i++) { ... } } ); --- workflow/engine/xmlform/dynaforms/dynaforms_Saveas.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/xmlform/dynaforms/dynaforms_Saveas.xml b/workflow/engine/xmlform/dynaforms/dynaforms_Saveas.xml index 9cc7c5bc0..7665f9eb6 100755 --- a/workflow/engine/xmlform/dynaforms/dynaforms_Saveas.xml +++ b/workflow/engine/xmlform/dynaforms/dynaforms_Saveas.xml @@ -44,7 +44,7 @@ function dynaformSaveas ( frm ) { "POST", function (responseText) { - var dataResponse = eval("(" + responseText + ")"); //json + var dataResponse = responseText.parseJSON(); //json var elementSelected = document.getElementById("_dynaformsList_").value; document.getElementById("_dynaformsList_").length = 0;