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)
{
{
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,31 @@ class Dashboard extends Controller
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
}

View File

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