From 0059ad489144726500dbbb85d04b029b9513bdf5 Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Wed, 15 Oct 2014 15:19:05 -0400 Subject: [PATCH 1/2] BUG 554 "Se puede crear dashboards con el..." SOLVED - Se puede crear dashboards con el mismo nombre - Problema resuelto, se valida un dashlet cuando se crea con el mismo nombre, si el nombre existe se mostrara un mensaje de advertencia y si no existe se creara. --- workflow/engine/controllers/dashboard.php | 35 +++++++++-- .../dashboard/dashletInstanceForm.js | 62 ++++++++++++------- 2 files changed, 69 insertions(+), 28 deletions(-) diff --git a/workflow/engine/controllers/dashboard.php b/workflow/engine/controllers/dashboard.php index 776c881e3..21c1c8b0b 100644 --- a/workflow/engine/controllers/dashboard.php +++ b/workflow/engine/controllers/dashboard.php @@ -154,7 +154,7 @@ class Dashboard extends Controller } public function renderDashletInstance ($data) - { + { try { if (! isset( $data->DAS_INS_UID )) { $data->DAS_INS_UID = ''; @@ -211,7 +211,7 @@ class Dashboard extends Controller } public function getDashletsInstances ($data) - { + { $this->setResponseType( 'json' ); $result = new stdclass(); $result->status = 'OK'; @@ -241,7 +241,7 @@ class Dashboard extends Controller } $dashlets = $this->getDashlets(); $this->setJSVar( 'storeDasUID', $dashlets ); - + if ($data->DAS_INS_UID != '') { $this->pmDashlet->setup( $data->DAS_INS_UID ); $this->setJSVar( 'dashletInstance', $this->pmDashlet->getDashletInstance() ); @@ -446,12 +446,12 @@ class Dashboard extends Controller while ($row = $dataset->getRow()) { if (strstr($row['DAS_TITLE'], '*')) { $row['DAS_TITLE'] = str_replace('*', '', $row['DAS_TITLE']); - $row['DAS_TITLE'] = G::LoadTranslationPlugin('advancedDashboards', $row['DAS_TITLE']); + $row['DAS_TITLE'] = G::LoadTranslationPlugin('advancedDashboards', $row['DAS_TITLE']); } if ($this->pmDashlet->verifyPluginDashlet($row['DAS_CLASS'])) { $dashlets[] = array ($row['DAS_UID'],$row['DAS_TITLE']); - + } $dataset->next(); } @@ -462,5 +462,30 @@ class Dashboard extends Controller return $dashlets; } + public function verifyTitleDashlet ($data) + { + $this->setResponseType("json"); + + $response->message = "OK"; + $criteria = new Criteria("workflow"); + + $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES); + $rsCriteria = DashletInstancePeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); + + while ($rsCriteria->next()) { + $row = $rsCriteria->getRow(); + $arrayField = unserialize($row["DAS_INS_ADDITIONAL_PROPERTIES"]); + + if (isset($arrayField["DAS_INS_TITLE"]) && $arrayField["DAS_INS_TITLE"] != "") { + if ($data->DAS_INS_TITLE == $arrayField["DAS_INS_TITLE"]) { + $response->message = "ERROR"; + } + } + } + + return $response; + } + // Functions for the dasboards administration module - End } diff --git a/workflow/engine/templates/dashboard/dashletInstanceForm.js b/workflow/engine/templates/dashboard/dashletInstanceForm.js index 923bdb63c..90085ac6c 100644 --- a/workflow/engine/templates/dashboard/dashletInstanceForm.js +++ b/workflow/engine/templates/dashboard/dashletInstanceForm.js @@ -209,29 +209,45 @@ Ext.onReady(function() { text: _('ID_SAVE'), handler: function () { if (dashletInstanceFrm.getForm().isValid()) { - var myMask = new Ext.LoadMask(Ext.getBody(), {msg: _('ID_SAVING_LABEL') + '.' + _('ID_PLEASE_WAIT') }); - myMask.show(); - Ext.Ajax.request({ - url: 'saveDashletInstance', - method: 'POST', - params: dashletInstanceFrm.getForm().getFieldValues(), - success: function (result, request) { - myMask.hide(); - var dataResponse = Ext.util.JSON.decode(result.responseText) - switch (dataResponse.status) { - case 'OK': - window.location.href = 'dashletsList'; - break; - default: - Ext.MessageBox.alert( _('ID_ALERT'), _('ID_FAILED_DASHBOARD INSTANCE') ); - break; - } - }, - failure: function (result, request) { - myMask.hide(); - Ext.MessageBox.alert( _('ID_ALERT'), _('ID_AJAX_COMMUNICATION_FAILED') ); - } - }); + Ext.Ajax.request({ + url: "verifyTitleDashlet", + method: "POST", + params: dashletInstanceFrm.getForm().getFieldValues(), + success: function (response, opts) { + var dataResponse = Ext.util.JSON.decode(response.responseText); + + if (dataResponse.message == "OK") { + var myMask = new Ext.LoadMask(Ext.getBody(), {msg: _('ID_SAVING_LABEL') + '.' + _('ID_PLEASE_WAIT') }); + myMask.show(); + Ext.Ajax.request({ + url: 'saveDashletInstance', + method: 'POST', + params: dashletInstanceFrm.getForm().getFieldValues(), + success: function (result, request) { + myMask.hide(); + var dataResponse = Ext.util.JSON.decode(result.responseText); + switch (dataResponse.status) { + case 'OK': + window.location.href = 'dashletsList'; + break; + default: + Ext.MessageBox.alert( _('ID_ALERT'), _('ID_FAILED_DASHBOARD INSTANCE') ); + break; + } + }, + failure: function (result, request) { + myMask.hide(); + Ext.MessageBox.alert( _('ID_ALERT'), _('ID_AJAX_COMMUNICATION_FAILED') ); + } + }); + } else { + Ext.MessageBox.alert(_("ID_ERROR"), _("ID_NAME_EXISTS")); + } + }, + failure: function (response, opts) { + // + } + }); } else { Ext.MessageBox.alert(_('ID_INVALID_DATA'), _('ID_CHECK_FIELDS_MARK_RED')); From 8dbbb2731736c046af547495fbc0aa4ffd448617 Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Wed, 15 Oct 2014 17:36:13 -0400 Subject: [PATCH 2/2] BUG 554 "Se puede crear dashboards con el..." SOLVED --- workflow/engine/controllers/dashboard.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workflow/engine/controllers/dashboard.php b/workflow/engine/controllers/dashboard.php index 21c1c8b0b..778328865 100644 --- a/workflow/engine/controllers/dashboard.php +++ b/workflow/engine/controllers/dashboard.php @@ -465,7 +465,8 @@ class Dashboard extends Controller public function verifyTitleDashlet ($data) { $this->setResponseType("json"); - + + $response = new stdclass(); $response->message = "OK"; $criteria = new Criteria("workflow");