BUG-14034 Status in Dashboards -NEW FEATURE
In ADMIN > Settings > Dashboard now is available the button Status, this button let Activate or Deactivate the Dashlet, showing the changed status in the Status Field in the grid. When a dashlet is Inactive this dashlet is not showed in the DASHBOARDS tab. A validation was added to only let the current user see the active dashlets assigned to himself.
This commit is contained in:
@@ -210,8 +210,10 @@ class PMDashlet extends DashletInstance implements DashletInterface
|
||||
$criteria = new Criteria( 'workflow' );
|
||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID );
|
||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES );
|
||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_STATUS );
|
||||
$criteria->addSelectColumn( DashletPeer::DAS_CLASS );
|
||||
$criteria->addSelectColumn( DashletPeer::DAS_TITLE );
|
||||
$criteria->addSelectColumn( DashletPeer::DAS_STATUS );
|
||||
$criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN );
|
||||
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE, 'EVERYBODY' );
|
||||
$dataset = DashletInstancePeer::doSelectRS( $criteria );
|
||||
@@ -236,8 +238,10 @@ class PMDashlet extends DashletInstance implements DashletInterface
|
||||
$criteria = new Criteria( 'workflow' );
|
||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID );
|
||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES );
|
||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_STATUS );
|
||||
$criteria->addSelectColumn( DashletPeer::DAS_CLASS );
|
||||
$criteria->addSelectColumn( DashletPeer::DAS_TITLE );
|
||||
$criteria->addSelectColumn( DashletPeer::DAS_STATUS );
|
||||
$criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN );
|
||||
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE, 'USER' );
|
||||
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $userUid );
|
||||
@@ -265,8 +269,10 @@ class PMDashlet extends DashletInstance implements DashletInterface
|
||||
$criteria = new Criteria( 'workflow' );
|
||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID );
|
||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES );
|
||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_STATUS );
|
||||
$criteria->addSelectColumn( DashletPeer::DAS_CLASS );
|
||||
$criteria->addSelectColumn( DashletPeer::DAS_TITLE );
|
||||
$criteria->addSelectColumn( DashletPeer::DAS_STATUS );
|
||||
$criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN );
|
||||
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE, 'DEPARTMENT' );
|
||||
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $depUid );
|
||||
@@ -296,8 +302,10 @@ class PMDashlet extends DashletInstance implements DashletInterface
|
||||
$criteria = new Criteria( 'workflow' );
|
||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID );
|
||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES );
|
||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_STATUS );
|
||||
$criteria->addSelectColumn( DashletPeer::DAS_CLASS );
|
||||
$criteria->addSelectColumn( DashletPeer::DAS_TITLE );
|
||||
$criteria->addSelectColumn( DashletPeer::DAS_STATUS );
|
||||
$criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN );
|
||||
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE, 'GROUP' );
|
||||
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $grpUid );
|
||||
|
||||
@@ -176,7 +176,16 @@ class Dashboard extends Controller
|
||||
if (! isset( $_SESSION['USER_LOGGED'] )) {
|
||||
throw new Exception( G::LoadTranslation('ID_SESSION_EXPIRED') );
|
||||
}
|
||||
return $this->pmDashlet->getDashletsInstancesForUser( $_SESSION['USER_LOGGED'] );
|
||||
$dash= $this->pmDashlet->getDashletsInstancesForUser( $_SESSION['USER_LOGGED']);
|
||||
$dashStatusActive = "";
|
||||
$j=0;
|
||||
foreach ($dash as $dashStatus) {
|
||||
if ($dashStatus['DAS_INS_STATUS'] != 0){
|
||||
$dashStatusActive[$j] = $dashStatus;
|
||||
$j++;
|
||||
}
|
||||
}
|
||||
return $dashStatusActive;
|
||||
} catch (Exception $error) {
|
||||
throw $error;
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ var smodel;
|
||||
var newButton;
|
||||
var editButton;
|
||||
var deleteButton;
|
||||
var statusButton;
|
||||
//var searchButton;
|
||||
//var searchText;
|
||||
//var clearTextButton;
|
||||
@@ -74,6 +75,13 @@ Ext.onReady(function(){
|
||||
disabled: true
|
||||
});
|
||||
|
||||
statusButton = new Ext.Action({
|
||||
text: _('ID_STATUS'),
|
||||
iconCls: 'silk-add',
|
||||
handler: statusDashletInstance,
|
||||
disabled: true
|
||||
});
|
||||
|
||||
/*searchButton = new Ext.Action({
|
||||
text: _('ID_SEARCH'),
|
||||
handler: doSearch
|
||||
@@ -105,10 +113,10 @@ Ext.onReady(function(){
|
||||
});*/
|
||||
|
||||
contextMenu = new Ext.menu.Menu({
|
||||
items: [editButton, deleteButton]
|
||||
items: [editButton, deleteButton, statusButton]
|
||||
});
|
||||
|
||||
actionButtons = [newButton, '-', editButton, deleteButton/*, {xtype: 'tbfill'}, searchText, clearTextButton, searchButton*/];
|
||||
actionButtons = [newButton, '-', editButton, deleteButton, statusButton/*, {xtype: 'tbfill'}, searchText, clearTextButton, searchButton*/];
|
||||
|
||||
smodel = new Ext.grid.RowSelectionModel({
|
||||
singleSelect: true,
|
||||
@@ -116,6 +124,7 @@ Ext.onReady(function(){
|
||||
rowselect: function(sm, index, record){
|
||||
editButton.enable();
|
||||
deleteButton.enable();
|
||||
statusButton.enable();
|
||||
if (typeof(_rowselect) !== 'undefined') {
|
||||
if (Ext.isArray(_rowselect)) {
|
||||
for (var i = 0; i < _rowselect.length; i++) {
|
||||
@@ -125,10 +134,20 @@ Ext.onReady(function(){
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( record.data.DAS_INS_STATUS_LABEL == 'Active' ){
|
||||
statusButton.setIconClass('icon-activate');
|
||||
statusButton.setText( _('ID_DEACTIVATE') );
|
||||
} else {
|
||||
statusButton.setIconClass('icon-deactivate');
|
||||
statusButton.setText( _('ID_ACTIVATE') );
|
||||
}
|
||||
|
||||
},
|
||||
rowdeselect: function(sm, index, record){
|
||||
editButton.disable();
|
||||
deleteButton.disable();
|
||||
statusButton.disable();
|
||||
if (typeof(_rowdeselect) !== 'undefined') {
|
||||
if (Ext.isArray(_rowdeselect)) {
|
||||
for (var i = 0; i < _rowdeselect.length; i++) {
|
||||
@@ -352,6 +371,7 @@ deleteDashletInstance = function(){
|
||||
//doSearch();
|
||||
editButton.disable();
|
||||
deleteButton.disable();
|
||||
statusButton.disable();
|
||||
infoGrid.store.load();
|
||||
},
|
||||
failure: function(r, o){
|
||||
@@ -362,3 +382,54 @@ deleteDashletInstance = function(){
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
//Status Dashlet Instance Action
|
||||
statusDashletInstance = function(){
|
||||
var rows = infoGrid.getSelectionModel().getSelections();
|
||||
if( rows.length > 0 ) {
|
||||
for(i=0; i<rows.length; i++) {
|
||||
var status;
|
||||
if(rows[i].data.DAS_INS_STATUS_LABEL == "Active"){
|
||||
status = 0;
|
||||
} else {
|
||||
status = 1;
|
||||
}
|
||||
|
||||
var data = {
|
||||
DAS_INS_UID: rows[i].data.DAS_INS_UID,
|
||||
DAS_INS_TITLE: rows[i].data.DAS_INS_TITLE,
|
||||
DAS_UID: rows[i].data.DAS_INS_UID,
|
||||
DAS_INS_STATUS: status,
|
||||
DAS_STATUS: status
|
||||
};
|
||||
|
||||
Ext.Ajax.request({
|
||||
url: 'saveDashletInstance',
|
||||
method: 'POST',
|
||||
params: data,
|
||||
success: function (result, request) {
|
||||
editButton.disable();
|
||||
deleteButton.disable();
|
||||
statusButton.disable();
|
||||
|
||||
statusButton.setIconClass('silk-add');
|
||||
statusButton.setText( _('ID_STATUS') );
|
||||
infoGrid.store.load();
|
||||
},
|
||||
failure: function (result, request) {
|
||||
Ext.MessageBox.alert( _('ID_ALERT'), _('ID_AJAX_COMMUNICATION_FAILED') );
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
Ext.Msg.show({
|
||||
title:'',
|
||||
msg: _('ID_NO_SELECTION_WARNING'),
|
||||
buttons: Ext.Msg.INFO,
|
||||
fn: function(){},
|
||||
animEl: 'elId',
|
||||
icon: Ext.MessageBox.INFO,
|
||||
buttons: Ext.MessageBox.OK
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user