Merged in luisfernandosl/processmaker/BUG-554 (pull request #939)

BUG 554 "Se puede crear dashboards con el..." SOLVED
This commit is contained in:
Julio Cesar Laura Avendaño
2014-10-16 09:06:01 -04:00
2 changed files with 70 additions and 28 deletions

View File

@@ -154,7 +154,7 @@ class Dashboard extends Controller
} }
public function renderDashletInstance ($data) public function renderDashletInstance ($data)
{ {
try { try {
if (! isset( $data->DAS_INS_UID )) { if (! isset( $data->DAS_INS_UID )) {
$data->DAS_INS_UID = ''; $data->DAS_INS_UID = '';
@@ -211,7 +211,7 @@ class Dashboard extends Controller
} }
public function getDashletsInstances ($data) public function getDashletsInstances ($data)
{ {
$this->setResponseType( 'json' ); $this->setResponseType( 'json' );
$result = new stdclass(); $result = new stdclass();
$result->status = 'OK'; $result->status = 'OK';
@@ -241,7 +241,7 @@ class Dashboard extends Controller
} }
$dashlets = $this->getDashlets(); $dashlets = $this->getDashlets();
$this->setJSVar( 'storeDasUID', $dashlets ); $this->setJSVar( 'storeDasUID', $dashlets );
if ($data->DAS_INS_UID != '') { if ($data->DAS_INS_UID != '') {
$this->pmDashlet->setup( $data->DAS_INS_UID ); $this->pmDashlet->setup( $data->DAS_INS_UID );
$this->setJSVar( 'dashletInstance', $this->pmDashlet->getDashletInstance() ); $this->setJSVar( 'dashletInstance', $this->pmDashlet->getDashletInstance() );
@@ -446,12 +446,12 @@ class Dashboard extends Controller
while ($row = $dataset->getRow()) { while ($row = $dataset->getRow()) {
if (strstr($row['DAS_TITLE'], '*')) { if (strstr($row['DAS_TITLE'], '*')) {
$row['DAS_TITLE'] = str_replace('*', '', $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'])) { if ($this->pmDashlet->verifyPluginDashlet($row['DAS_CLASS'])) {
$dashlets[] = array ($row['DAS_UID'],$row['DAS_TITLE']); $dashlets[] = array ($row['DAS_UID'],$row['DAS_TITLE']);
} }
$dataset->next(); $dataset->next();
} }
@@ -462,5 +462,31 @@ class Dashboard extends Controller
return $dashlets; return $dashlets;
} }
public function verifyTitleDashlet ($data)
{
$this->setResponseType("json");
$response = new stdclass();
$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 // Functions for the dasboards administration module - End
} }

View File

@@ -209,29 +209,45 @@ Ext.onReady(function() {
text: _('ID_SAVE'), text: _('ID_SAVE'),
handler: function () { handler: function () {
if (dashletInstanceFrm.getForm().isValid()) { if (dashletInstanceFrm.getForm().isValid()) {
var myMask = new Ext.LoadMask(Ext.getBody(), {msg: _('ID_SAVING_LABEL') + '.' + _('ID_PLEASE_WAIT') }); Ext.Ajax.request({
myMask.show(); url: "verifyTitleDashlet",
Ext.Ajax.request({ method: "POST",
url: 'saveDashletInstance', params: dashletInstanceFrm.getForm().getFieldValues(),
method: 'POST', success: function (response, opts) {
params: dashletInstanceFrm.getForm().getFieldValues(), var dataResponse = Ext.util.JSON.decode(response.responseText);
success: function (result, request) {
myMask.hide(); if (dataResponse.message == "OK") {
var dataResponse = Ext.util.JSON.decode(result.responseText) var myMask = new Ext.LoadMask(Ext.getBody(), {msg: _('ID_SAVING_LABEL') + '.' + _('ID_PLEASE_WAIT') });
switch (dataResponse.status) { myMask.show();
case 'OK': Ext.Ajax.request({
window.location.href = 'dashletsList'; url: 'saveDashletInstance',
break; method: 'POST',
default: params: dashletInstanceFrm.getForm().getFieldValues(),
Ext.MessageBox.alert( _('ID_ALERT'), _('ID_FAILED_DASHBOARD INSTANCE') ); success: function (result, request) {
break; myMask.hide();
} var dataResponse = Ext.util.JSON.decode(result.responseText);
}, switch (dataResponse.status) {
failure: function (result, request) { case 'OK':
myMask.hide(); window.location.href = 'dashletsList';
Ext.MessageBox.alert( _('ID_ALERT'), _('ID_AJAX_COMMUNICATION_FAILED') ); 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 { else {
Ext.MessageBox.alert(_('ID_INVALID_DATA'), _('ID_CHECK_FIELDS_MARK_RED')); Ext.MessageBox.alert(_('ID_INVALID_DATA'), _('ID_CHECK_FIELDS_MARK_RED'));