Sitic has uploaded a new change for review.
https://gerrit.wikimedia.org/r/231789
Change subject: Add support for seperated watchlists
......................................................................
Add support for seperated watchlists
Change-Id: Ie304ae098488c00a8fe924f6b30f254983d1a1c5
---
M frontend/src/app/filters.js
M frontend/src/app/main/main.controller.js
M frontend/src/app/main/main.html
M frontend/src/app/services.js
M frontend/src/components/notifications/notifications.html
M frontend/src/components/settings/settings.html
A frontend/src/components/watchlist/seperated.html
R frontend/src/components/watchlist/unified.html
M frontend/src/i18n/en.json
M frontend/src/i18n/qqq.json
10 files changed, 79 insertions(+), 11 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch
refs/changes/89/231789/1
diff --git a/frontend/src/app/filters.js b/frontend/src/app/filters.js
index 48a9021..7500018 100644
--- a/frontend/src/app/filters.js
+++ b/frontend/src/app/filters.js
@@ -4,7 +4,7 @@
.filter('urlEncode', urlEncodeFilter)
.filter('list', listFilter)
.filter('watchlist', watchlistFilter)
- .filter('projects', projectsFilter)
+ .filter('projectList', projectsFilter)
;
/**
@@ -99,7 +99,13 @@
}
function projectsFilter () {
- return function (items, projects) {
- return items.filter(projectsFilterFunc, projects)
+ return function (items, config) {
+ console.log(config);
+ console.log(items);
+ return items.filter(projectListFilterFunc, config)
};
}
+
+function projectListFilterFunc (items) {
+ return (this.projectsSelected.indexOf(items) > -1);
+}
diff --git a/frontend/src/app/main/main.controller.js
b/frontend/src/app/main/main.controller.js
index 373ac21..ac0db54 100644
--- a/frontend/src/app/main/main.controller.js
+++ b/frontend/src/app/main/main.controller.js
@@ -1,7 +1,8 @@
'use strict';
angular.module('crosswatch')
- .controller('MainCtrl', function (textDirection) {
+ .controller('MainCtrl', function (textDirection, dataService) {
var vm = this;
vm.textDirection = textDirection;
+ vm.config = dataService.config;
});
diff --git a/frontend/src/app/main/main.html b/frontend/src/app/main/main.html
index 01e1c92..94af788 100644
--- a/frontend/src/app/main/main.html
+++ b/frontend/src/app/main/main.html
@@ -3,7 +3,8 @@
<div layout="column" flex class="md-padding" role="main">
<div ng-include="'components/settings/settings.html'"></div>
<div ng-include="'components/notifications/notifications.html'"></div>
- <div ng-include="'components/watchlist/watchlist.html'"></div>
+ <div ng-if="ctrl.config.unified"
ng-include="'components/watchlist/unified.html'"></div>
+ <div ng-if="!ctrl.config.unified"
ng-include="'components/watchlist/seperated.html'"></div>
</div>
<ng-include src="'components/footer/footer.html'"></ng-include>
diff --git a/frontend/src/app/services.js b/frontend/src/app/services.js
index 1859ce2..0a9d5fa 100644
--- a/frontend/src/app/services.js
+++ b/frontend/src/app/services.js
@@ -44,6 +44,11 @@
*/
vm.watchlist.active = [];
/**
+ * Watchlist sorted as array per project
+ */
+ vm.watchlist.perProject = {};
+ vm.watchlist.projects = [];
+ /**
* loading spinner
*/
vm.watchlist.loading = true;
@@ -106,7 +111,12 @@
/**
* Automatically show diff, if edit is unreviewed and user has review right
*/
- flaggedrevsDiff: true
+ flaggedrevsDiff: true,
+ /**
+ * true: show unified wikis diff
+ * false: show seperated wikis diff
+ */
+ unified: true
};
// Get config from localstorage or create from defaultconfig
if (localStorageService.get('config') !== null) {
@@ -176,6 +186,13 @@
for (var i=0; i < entries.length; i++) {
vm.watchlist.dict[entries[i].id] = entries[i];
}
+
+ if (!Array.isArray(vm.watchlist.perProject[project])) {
+ vm.watchlist.perProject[project] = entries;
+ vm.watchlist.projects.push(project);
+ } else {
+ Array.prototype.push.apply(vm.watchlist.perProject[project], entries);
+ }
};
/**
diff --git a/frontend/src/components/notifications/notifications.html
b/frontend/src/components/notifications/notifications.html
index 9153d1f..4409e9d 100644
--- a/frontend/src/components/notifications/notifications.html
+++ b/frontend/src/components/notifications/notifications.html
@@ -1,6 +1,6 @@
-<div ng-controller="NotificationsCtrl as ctrl" layout="row"
layout-align="center center" class="md-padding">
- <md-whiteframe class="md-whiteframe-z5" ng-class="(ctrl.config.oneline) ?
'whitebox-oneline' : 'whitebox'"
- ng-if="ctrl.notifications.length">
+<div ng-controller="NotificationsCtrl as ctrl" layout="row"
layout-align="center center" class="md-padding"
+ ng-if="ctrl.notifications.length">
+ <md-whiteframe class="md-whiteframe-z5" ng-class="(ctrl.config.oneline) ?
'whitebox-oneline' : 'whitebox'">
<md-toolbar class='md-small-tall'>
<div class="md-toolbar-tools">
<h1>
diff --git a/frontend/src/components/settings/settings.html
b/frontend/src/components/settings/settings.html
index 2f4f1b2..8e15e7e 100644
--- a/frontend/src/components/settings/settings.html
+++ b/frontend/src/components/settings/settings.html
@@ -54,6 +54,10 @@
<p translate="ONELINE"></p>
<md-checkbox ng-model="ctrl.config.oneline"
ng-change="ctrl.saveConfig()"></md-checkbox>
</md-list-item>
+ <md-list-item>
+ <p translate="UNIFIED"></p>
+ <md-checkbox ng-model="ctrl.config.unified"></md-checkbox>
+ </md-list-item>
</div>
</md-list>
</div>
diff --git a/frontend/src/components/watchlist/seperated.html
b/frontend/src/components/watchlist/seperated.html
new file mode 100644
index 0000000..6f288aa
--- /dev/null
+++ b/frontend/src/components/watchlist/seperated.html
@@ -0,0 +1,37 @@
+<div ng-controller="WatchlistCtrl as ctrl" class="md-padding">
+ <div layout="row" layout-align="center center" class="md-padding"
ng-if="ctrl.watchlist.loading">
+ <md-whiteframe class="md-whiteframe-z5 whitebox">
+ <md-toolbar class='md-small-tall'>
+ <div class="md-toolbar-tools">
+ <h1>
+ {{'WATCHLIST' | translate}}
+ </h1>
+ </div>
+ </md-toolbar>
+ <md-list>
+ <md-list-item layout="row" layout-align="center center">
+ <md-progress-circular md-mode="indeterminate"></md-progress-circular>
+ </md-list-item>
+ </md-list>
+ </md-whiteframe>
+ </div>
+ <div ng-repeat="project in ctrl.watchlist.projects |
projectList:ctrl.config" layout="row" layout-align="center center"
class="md-padding">
+ <md-whiteframe class="md-whiteframe-z5" ng-class="(ctrl.config.oneline) ?
'whitebox-oneline' : 'whitebox'">
+ <md-toolbar class='md-small-tall'>
+ <div class="md-toolbar-tools">
+ <h1>
+ {{project}}
+ </h1>
+ </div>
+ </md-toolbar>
+ <md-list class="watchlist-container">
+ <md-list-item layout="row" class="watchlist"
+ ng-class="[{'watchlist-list-item-oneline':
ctrl.config.oneline}, ctrl.config.projectColors[event.project]]"
+ ng-repeat="event in ctrl.watchlist.perProject[project] |
watchlist:ctrl.config track by event.id">
+ <watchlist-entry ng-click="ctrl.clicked(event)"
md-ink-ripple></watchlist-entry>
+ <md-divider></md-divider>
+ </md-list-item>
+ </md-list>
+ </md-whiteframe>
+ </div>
+</div>
diff --git a/frontend/src/components/watchlist/watchlist.html
b/frontend/src/components/watchlist/unified.html
similarity index 100%
rename from frontend/src/components/watchlist/watchlist.html
rename to frontend/src/components/watchlist/unified.html
diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json
index 8ffad14..644c19b 100644
--- a/frontend/src/i18n/en.json
+++ b/frontend/src/i18n/en.json
@@ -92,5 +92,6 @@
"FLAGGEDREVS_OPTION": "Show diff for pending changes needing review",
"FLAGGEDREVS_TOOLTIP": "Show diff for unreviewed changes, if you have the
review permission for a wiki which uses the FlaggedRevs extension.",
"SHOW_DIFF": "show diff",
- "COLLAPSE": "collapse"
+ "COLLAPSE": "collapse",
+ "UNIFIED": "Show unified watchlist for all wikis"
}
diff --git a/frontend/src/i18n/qqq.json b/frontend/src/i18n/qqq.json
index a60c829..5b7f632 100644
--- a/frontend/src/i18n/qqq.json
+++ b/frontend/src/i18n/qqq.json
@@ -60,5 +60,6 @@
"FLAGGEDREVS_OPTION": "Checkbox to enable the option, pending changes are
edits needing review (for
[[:mw:Help:Extension:FlaggedRevs|Extension:FlaggedRevs]])",
"FLAGGEDREVS_TOOLTIP": "Tooltip for \"FLAGGEDREVS_OPTION\"",
"SHOW_DIFF": "Tooltip for button to show diff preview",
- "COLLAPSE": "Tooltip for button to collapse the expanded view"
+ "COLLAPSE": "Tooltip for button to collapse the expanded view",
+ "UNIFIED": "Checkbox to switch between a unified watchlist for all watchlist
and seperated watchlists"
}
--
To view, visit https://gerrit.wikimedia.org/r/231789
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie304ae098488c00a8fe924f6b30f254983d1a1c5
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits