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 = new Criteria( 'workflow' );
|
||||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID );
|
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID );
|
||||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES );
|
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES );
|
||||||
|
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_STATUS );
|
||||||
$criteria->addSelectColumn( DashletPeer::DAS_CLASS );
|
$criteria->addSelectColumn( DashletPeer::DAS_CLASS );
|
||||||
$criteria->addSelectColumn( DashletPeer::DAS_TITLE );
|
$criteria->addSelectColumn( DashletPeer::DAS_TITLE );
|
||||||
|
$criteria->addSelectColumn( DashletPeer::DAS_STATUS );
|
||||||
$criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN );
|
$criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN );
|
||||||
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE, 'EVERYBODY' );
|
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE, 'EVERYBODY' );
|
||||||
$dataset = DashletInstancePeer::doSelectRS( $criteria );
|
$dataset = DashletInstancePeer::doSelectRS( $criteria );
|
||||||
@@ -236,8 +238,10 @@ class PMDashlet extends DashletInstance implements DashletInterface
|
|||||||
$criteria = new Criteria( 'workflow' );
|
$criteria = new Criteria( 'workflow' );
|
||||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID );
|
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID );
|
||||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES );
|
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES );
|
||||||
|
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_STATUS );
|
||||||
$criteria->addSelectColumn( DashletPeer::DAS_CLASS );
|
$criteria->addSelectColumn( DashletPeer::DAS_CLASS );
|
||||||
$criteria->addSelectColumn( DashletPeer::DAS_TITLE );
|
$criteria->addSelectColumn( DashletPeer::DAS_TITLE );
|
||||||
|
$criteria->addSelectColumn( DashletPeer::DAS_STATUS );
|
||||||
$criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN );
|
$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_TYPE, 'USER' );
|
||||||
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $userUid );
|
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $userUid );
|
||||||
@@ -265,8 +269,10 @@ class PMDashlet extends DashletInstance implements DashletInterface
|
|||||||
$criteria = new Criteria( 'workflow' );
|
$criteria = new Criteria( 'workflow' );
|
||||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID );
|
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID );
|
||||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES );
|
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES );
|
||||||
|
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_STATUS );
|
||||||
$criteria->addSelectColumn( DashletPeer::DAS_CLASS );
|
$criteria->addSelectColumn( DashletPeer::DAS_CLASS );
|
||||||
$criteria->addSelectColumn( DashletPeer::DAS_TITLE );
|
$criteria->addSelectColumn( DashletPeer::DAS_TITLE );
|
||||||
|
$criteria->addSelectColumn( DashletPeer::DAS_STATUS );
|
||||||
$criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN );
|
$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_TYPE, 'DEPARTMENT' );
|
||||||
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $depUid );
|
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $depUid );
|
||||||
@@ -296,8 +302,10 @@ class PMDashlet extends DashletInstance implements DashletInterface
|
|||||||
$criteria = new Criteria( 'workflow' );
|
$criteria = new Criteria( 'workflow' );
|
||||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID );
|
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID );
|
||||||
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES );
|
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES );
|
||||||
|
$criteria->addSelectColumn( DashletInstancePeer::DAS_INS_STATUS );
|
||||||
$criteria->addSelectColumn( DashletPeer::DAS_CLASS );
|
$criteria->addSelectColumn( DashletPeer::DAS_CLASS );
|
||||||
$criteria->addSelectColumn( DashletPeer::DAS_TITLE );
|
$criteria->addSelectColumn( DashletPeer::DAS_TITLE );
|
||||||
|
$criteria->addSelectColumn( DashletPeer::DAS_STATUS );
|
||||||
$criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN );
|
$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_TYPE, 'GROUP' );
|
||||||
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $grpUid );
|
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $grpUid );
|
||||||
|
|||||||
@@ -176,7 +176,16 @@ class Dashboard extends Controller
|
|||||||
if (! isset( $_SESSION['USER_LOGGED'] )) {
|
if (! isset( $_SESSION['USER_LOGGED'] )) {
|
||||||
throw new Exception( G::LoadTranslation('ID_SESSION_EXPIRED') );
|
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) {
|
} catch (Exception $error) {
|
||||||
throw $error;
|
throw $error;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ var smodel;
|
|||||||
var newButton;
|
var newButton;
|
||||||
var editButton;
|
var editButton;
|
||||||
var deleteButton;
|
var deleteButton;
|
||||||
|
var statusButton;
|
||||||
//var searchButton;
|
//var searchButton;
|
||||||
//var searchText;
|
//var searchText;
|
||||||
//var clearTextButton;
|
//var clearTextButton;
|
||||||
@@ -74,6 +75,13 @@ Ext.onReady(function(){
|
|||||||
disabled: true
|
disabled: true
|
||||||
});
|
});
|
||||||
|
|
||||||
|
statusButton = new Ext.Action({
|
||||||
|
text: _('ID_STATUS'),
|
||||||
|
iconCls: 'silk-add',
|
||||||
|
handler: statusDashletInstance,
|
||||||
|
disabled: true
|
||||||
|
});
|
||||||
|
|
||||||
/*searchButton = new Ext.Action({
|
/*searchButton = new Ext.Action({
|
||||||
text: _('ID_SEARCH'),
|
text: _('ID_SEARCH'),
|
||||||
handler: doSearch
|
handler: doSearch
|
||||||
@@ -105,10 +113,10 @@ Ext.onReady(function(){
|
|||||||
});*/
|
});*/
|
||||||
|
|
||||||
contextMenu = new Ext.menu.Menu({
|
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({
|
smodel = new Ext.grid.RowSelectionModel({
|
||||||
singleSelect: true,
|
singleSelect: true,
|
||||||
@@ -116,6 +124,7 @@ Ext.onReady(function(){
|
|||||||
rowselect: function(sm, index, record){
|
rowselect: function(sm, index, record){
|
||||||
editButton.enable();
|
editButton.enable();
|
||||||
deleteButton.enable();
|
deleteButton.enable();
|
||||||
|
statusButton.enable();
|
||||||
if (typeof(_rowselect) !== 'undefined') {
|
if (typeof(_rowselect) !== 'undefined') {
|
||||||
if (Ext.isArray(_rowselect)) {
|
if (Ext.isArray(_rowselect)) {
|
||||||
for (var i = 0; i < _rowselect.length; i++) {
|
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){
|
rowdeselect: function(sm, index, record){
|
||||||
editButton.disable();
|
editButton.disable();
|
||||||
deleteButton.disable();
|
deleteButton.disable();
|
||||||
|
statusButton.disable();
|
||||||
if (typeof(_rowdeselect) !== 'undefined') {
|
if (typeof(_rowdeselect) !== 'undefined') {
|
||||||
if (Ext.isArray(_rowdeselect)) {
|
if (Ext.isArray(_rowdeselect)) {
|
||||||
for (var i = 0; i < _rowdeselect.length; i++) {
|
for (var i = 0; i < _rowdeselect.length; i++) {
|
||||||
@@ -352,6 +371,7 @@ deleteDashletInstance = function(){
|
|||||||
//doSearch();
|
//doSearch();
|
||||||
editButton.disable();
|
editButton.disable();
|
||||||
deleteButton.disable();
|
deleteButton.disable();
|
||||||
|
statusButton.disable();
|
||||||
infoGrid.store.load();
|
infoGrid.store.load();
|
||||||
},
|
},
|
||||||
failure: function(r, o){
|
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