dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #21669
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 10320: (PT) User access for favorites.
Merge authors:
Jan Henrik Øverland (janhenrik-overland)
------------------------------------------------------------
revno: 10320 [merge]
committer: Jan Henrik Overland <janhenrik.overland@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2013-03-19 17:38:18 +0100
message:
(PT) User access for favorites.
modified:
dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/scripts/app.js
dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/scripts/core.js
dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/styles/style.css
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/scripts/app.js'
--- dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/scripts/app.js 2013-03-19 14:08:10 +0000
+++ dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/scripts/app.js 2013-03-19 16:36:51 +0000
@@ -378,7 +378,7 @@
});
store.tables = Ext.create('Ext.data.Store', {
- fields: ['id', 'name', 'lastUpdated'],
+ fields: ['id', 'name', 'lastUpdated', 'access'],
proxy: {
type: 'ajax',
reader: {
@@ -1374,16 +1374,16 @@
width: windowCmpWidth - 88,
renderer: function(value, metaData, record) {
var fn = function() {
- var el = Ext.get(record.data.id);
- if (el) {
- el = el.parent('td');
- el.addClsOnOver('link');
- el.pt = pt;
- el.favoriteId = record.data.id;
- el.hideWindow = function() {
+ var element = Ext.get(record.data.id);
+
+ if (element) {
+ element = element.parent('td');
+ element.addClsOnOver('link');
+ element.load = function() {
favoriteWindow.hide();
+ pt.util.pivot.loadTable(record.data.id);
};
- el.dom.setAttribute('onclick', 'Ext.get(this).hideWindow(); Ext.get(this).pt.util.pivot.loadTable(Ext.get(this).favoriteId);');
+ element.dom.setAttribute('onclick', 'Ext.get(this).load();');
}
};
@@ -1400,16 +1400,13 @@
{
iconCls: 'pt-grid-row-icon-edit',
getClass: function(value, metaData, record) {
- if (pt.init.user.isAdmin) {
- return 'tooltip-favorite-edit';
- }
+ return 'tooltip-favorite-edit' + (!record.data.access.update ? ' disabled' : '');
},
handler: function(grid, rowIndex, colIndex, col, event) {
- var record = this.up('grid').store.getAt(rowIndex),
- id = record.data.id;
+ var record = this.up('grid').store.getAt(rowIndex);
- if (pt.init.user.isAdmin) {
- nameWindow = new NameWindow(id);
+ if (record.data.access.update) {
+ nameWindow = new NameWindow(record.data.id);
nameWindow.show();
}
}
@@ -1417,99 +1414,92 @@
{
iconCls: 'pt-grid-row-icon-overwrite',
getClass: function(value, metaData, record) {
- if (pt.init.user.isAdmin) {
- return 'tooltip-favorite-overwrite';
- }
+ return 'tooltip-favorite-overwrite' + (!record.data.access.update ? ' disabled' : '');
},
handler: function(grid, rowIndex, colIndex, col, event) {
var record = this.up('grid').store.getAt(rowIndex),
- id = record.data.id,
- name = record.data.name,
- message = 'Overwrite favorite?\n\n' + name,
+ message,
+ favorite;
+
+ if (record.data.access.update) {
+ message = 'Overwrite favorite?\n\n' + record.data.name;
favorite = getBody();
- if (favorite) {
- favorite.name = name;
+ if (favorite) {
+ favorite.name = record.data.name;
+
+ if (confirm(message)) {
+ Ext.Ajax.request({
+ url: pt.baseUrl + '/api/reportTables/' + record.data.id,
+ method: 'PUT',
+ headers: {'Content-Type': 'application/json'},
+ params: Ext.encode(favorite),
+ success: function() {
+ pt.favorite = favorite;
+
+ //pt.viewport.interpretationButton.enable();
+
+ pt.store.tables.loadStore();
+ }
+ });
+ }
+ }
+ else {
+ alert('Please create a table first'); //i18n
+ }
+ }
+ }
+ },
+ {
+ iconCls: 'pt-grid-row-icon-sharing',
+ getClass: function(value, metaData, record) {
+ return 'tooltip-favorite-sharing' + (!record.data.access.update ? ' disabled' : '');
+ },
+ handler: function(grid, rowIndex) {
+ var record = this.up('grid').store.getAt(rowIndex);
+
+ if (record.data.access.update) {
+ Ext.Ajax.request({
+ url: pt.baseUrl + '/api/sharing?type=reportTable&id=' + record.data.id,
+ method: 'GET',
+ failure: function(r) {
+ pt.viewport.mask.hide();
+ alert(r.responseText);
+ },
+ success: function(r) {
+ var sharing = Ext.decode(r.responseText),
+ window = PT.app.SharingWindow(sharing);
+ window.show();
+ }
+ });
+ }
+ }
+ },
+ {
+ iconCls: 'pt-grid-row-icon-delete',
+ getClass: function(value, metaData, record) {
+ return 'tooltip-favorite-delete' + (!record.data.access['delete'] ? ' disabled' : '');
+ },
+ handler: function(grid, rowIndex, colIndex, col, event) {
+ var record = this.up('grid').store.getAt(rowIndex),
+ message;
+
+ if (record.data.access['delete']) {
+ message = 'Delete favorite?\n\n' + record.data.name;
if (confirm(message)) {
Ext.Ajax.request({
- url: pt.baseUrl + '/api/reportTables/' + id,
- method: 'PUT',
- headers: {'Content-Type': 'application/json'},
- params: Ext.encode(favorite),
+ url: pt.baseUrl + '/api/reportTables/' + record.data.id,
+ method: 'DELETE',
success: function() {
- pt.favorite = favorite;
-
- //pt.viewport.interpretationButton.enable();
-
pt.store.tables.loadStore();
}
});
}
}
- else {
- alert('Please create a table first'); //i18n
- }
- }
- },
- {
- iconCls: 'pt-grid-row-icon-sharing',
- getClass: function() {
- return 'tooltip-favorite-sharing';
- },
- handler: function(grid, rowIndex) {
- var record = this.up('grid').store.getAt(rowIndex),
- id = record.data.id,
- window;
-
- Ext.Ajax.request({
- url: pt.baseUrl + '/api/sharing?type=reportTable&id=' + id,
- method: 'GET',
- failure: function(r) {
- pt.viewport.mask.hide();
- alert(r.responseText);
- },
- success: function(r) {
- var sharing = Ext.decode(r.responseText);
- window = PT.app.SharingWindow(sharing);
- window.show();
- }
- });
- }
- },
- {
- iconCls: 'pt-grid-row-icon-delete',
- getClass: function(value, metaData, record) {
- var system = !record.data.user,
- isAdmin = pt.init.user.isAdmin;
-
- if (isAdmin || (!isAdmin && !system)) {
- return 'tooltip-favorite-delete';
- }
- },
- handler: function(grid, rowIndex, colIndex, col, event) {
- var record = this.up('grid').store.getAt(rowIndex),
- id = record.data.id,
- name = record.data.name,
- message = 'Delete favorite?\n\n' + name;
-
- if (confirm(message)) {
- Ext.Ajax.request({
- url: pt.baseUrl + '/api/reportTables/' + id,
- method: 'DELETE',
- success: function() {
- pt.store.tables.loadStore();
- }
- });
- }
- }
- }
- ],
- renderer: function(value, metaData, record) {
- if (!pt.init.user.isAdmin && !record.data.user) {
- metaData.tdCls = 'pt-grid-row-icon-disabled';
- }
- }
+ }
+ }
+ ]
},
{
sortable: false,
=== modified file 'dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/scripts/core.js'
--- dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/scripts/core.js 2013-03-19 12:51:01 +0000
+++ dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/scripts/core.js 2013-03-19 16:36:51 +0000
@@ -730,63 +730,25 @@
};
extendResponse = function(response, xLayout) {
- var headers = response.headers,
- metaData = response.metaData,
- rows = response.rows;
-
response.nameHeaderMap = {};
response.idValueMap = {};
var extendHeaders = function() {
- // Extend headers: index, items (ordered), size
- for (var i = 0, header, settingsItems, responseItems, orderedResponseItems; i < headers.length; i++) {
- header = headers[i];
- settingsItems = xLayout.nameItemsMap[header.name],
- responseItems = [];
- orderedResponseItems = [];
-
- // index
+ // Extend headers: index, items, size
+ for (var i = 0, header; i < response.headers.length; i++) {
+ header = response.headers[i];
header.index = i;
if (header.meta) {
-
- // items
- for (var j = 0; j < rows.length; j++) {
- responseItems.push(rows[j][header.index]);
- }
-
- responseItems = Ext.Array.unique(responseItems);
-
- if (settingsItems.length) {
- for (var j = 0, item; j < settingsItems.length; j++) {
- item = settingsItems[j];
-
- if (header.name === dimConf.period.dimensionName && pt.conf.period.relativePeriods[item]) {
- orderedResponseItems = responseItems;
- orderedResponseItems.sort();
- }
- else {
- if (Ext.Array.contains(responseItems, item)) {
- orderedResponseItems.push(item);
- }
- }
- }
- }
- else {
- orderedResponseItems = responseItems.sort();
- }
-
- header.items = orderedResponseItems;
-
- // size
+ header.items = header.name === pt.conf.finals.dimension.period.dimensionName ? [].concat(response.periods) : xLayout.nameItemsMap[header.name];
header.size = header.items.length;
}
}
// nameHeaderMap (headerName: header)
- for (var i = 0, header; i < headers.length; i++) {
- header = headers[i];
+ for (var i = 0, header; i < response.headers.length; i++) {
+ header = response.headers[i];
response.nameHeaderMap[header.name] = header;
}
@@ -803,8 +765,8 @@
}
// idValueMap
- for (var i = 0, row, id; i < rows.length; i++) {
- row = rows[i];
+ for (var i = 0, row, id; i < response.rows.length; i++) {
+ row = response.rows[i];
id = '';
for (var j = 0; j < idIndexOrder.length; j++) {
=== modified file 'dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/styles/style.css'
--- dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/styles/style.css 2013-03-18 18:32:28 +0000
+++ dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/styles/style.css 2013-03-19 16:36:51 +0000
@@ -96,14 +96,24 @@
border-left: 2px solid white;
}
+ /* Scrollbar */
.x-scroller-vertical {
border: 0 none;
}
- /* Disable class invisible */
+ /* Disabled icons */
+.disabled {
+ opacity: 0.4;
+ cursor: default !important;
+}
+
+/*
.pt-invisible .x-form-item-body {
display: none;
}
+*/
+
+
/* Collapse splitter column */
.x-splitter {
@@ -130,6 +140,10 @@
display: none;
}
+.opacity-50 {
+ opacity: 0.5;
+}
+
/*----------------------------------------------------------------------------
* Pivot
*--------------------------------------------------------------------------*/
@@ -599,15 +613,7 @@
background: url('../images/grid-delete_16.png') no-repeat;
margin-left: 4px;
}
-.pt-grid-row-icon-disabled img.pt-grid-row-icon-edit,
-.pt-grid-row-icon-disabled img.pt-grid-row-icon-overwrite,
-.pt-grid-row-icon-disabled img.pt-grid-row-icon-delete {
- opacity: 0;
- filter:Alpha(opacity=0);
-}
-.pt-grid-row-icon-disabled * {
- cursor: default !important;
-}
+
.pt-grid-row-icon-disabled img.pt-grid-row-icon-sharing,
.pt-grid-row-icon-disabled img.pt-grid-row-icon-dashboard {
cursor: pointer !important;