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

Reply via email to