← Back to team overview

dhis2-devs team mailing list archive

[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;