[MediaWiki-commits] [Gerrit] Fix notifications - change (labs...crosswatch)

2015-09-02 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix notifications
..


Fix notifications

Change-Id: I3cbe2466cb249257a58a04dc80101d13e51f607a
---
M frontend/src/components/notifications/notifications.html
1 file changed, 29 insertions(+), 28 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/components/notifications/notifications.html 
b/frontend/src/components/notifications/notifications.html
index 4409e9d..43f596e 100644
--- a/frontend/src/components/notifications/notifications.html
+++ b/frontend/src/components/notifications/notifications.html
@@ -1,34 +1,35 @@
-
-  
-
-  
-
-  
-
-
-
-
-  
-
-
-  
-
-  
-
+
+  
+
+  
+
+  
+
+  
+  
+  
+  
+
+  
+  
+
+  
+
+  
 
   {{::event.projectlangname}}
   
 
-  
-
-
-
-  
-
-  
+
+  
+  
+  
+
+  
+
+  
 

-- 
To view, visit https://gerrit.wikimedia.org/r/235449
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I3cbe2466cb249257a58a04dc80101d13e51f607a
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic 
Gerrit-Reviewer: Sitic 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix notifications - change (labs...crosswatch)

2015-09-02 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/235449

Change subject: Fix notifications
..

Fix notifications

Change-Id: I3cbe2466cb249257a58a04dc80101d13e51f607a
---
M frontend/src/components/notifications/notifications.html
1 file changed, 29 insertions(+), 28 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/49/235449/1

diff --git a/frontend/src/components/notifications/notifications.html 
b/frontend/src/components/notifications/notifications.html
index 4409e9d..43f596e 100644
--- a/frontend/src/components/notifications/notifications.html
+++ b/frontend/src/components/notifications/notifications.html
@@ -1,34 +1,35 @@
-
-  
-
-  
-
-  
-
-
-
-
-  
-
-
-  
-
-  
-
+
+  
+
+  
+
+  
+
+  
+  
+  
+  
+
+  
+  
+
+  
+
+  
 
   {{::event.projectlangname}}
   
 
-  
-
-
-
-  
-
-  
+
+  
+  
+  
+
+  
+
+  
 

-- 
To view, visit https://gerrit.wikimedia.org/r/235449
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3cbe2466cb249257a58a04dc80101d13e51f607a
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Don't throw exception when failure is expected - change (labs...crosswatch)

2015-08-21 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Don't throw exception when failure is expected
..


Don't throw exception when failure is expected

Applying watchlist filter on undefined variable happens if the
wiki has no watchlist entries, don't throw an exception.

Change-Id: I1b9ea891a5e36cccd45e03dbb7cb6a451e08eaaa
---
M frontend/src/app/filters.js
1 file changed, 3 insertions(+), 0 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/app/filters.js b/frontend/src/app/filters.js
index 8f3376f..57ff8a5 100644
--- a/frontend/src/app/filters.js
+++ b/frontend/src/app/filters.js
@@ -37,6 +37,9 @@
  */
 function watchlistFilter () {
   return function (items, config) {
+if (typeof items === 'undefined') {
+  return false;
+}
 return items.filter(filter, config);
   };
 

-- 
To view, visit https://gerrit.wikimedia.org/r/232936
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I1b9ea891a5e36cccd45e03dbb7cb6a451e08eaaa
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Don't throw exception when failure is expected - change (labs...crosswatch)

2015-08-21 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/232936

Change subject: Don't throw exception when failure is expected
..

Don't throw exception when failure is expected

Applying watchlist filter on undefined variable happens if the
wiki has no watchlist entries, don't throw an exception.

Change-Id: I1b9ea891a5e36cccd45e03dbb7cb6a451e08eaaa
---
M frontend/src/app/filters.js
1 file changed, 3 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/36/232936/1

diff --git a/frontend/src/app/filters.js b/frontend/src/app/filters.js
index 8f3376f..57ff8a5 100644
--- a/frontend/src/app/filters.js
+++ b/frontend/src/app/filters.js
@@ -37,6 +37,9 @@
  */
 function watchlistFilter () {
   return function (items, config) {
+if (typeof items === 'undefined') {
+  return false;
+}
 return items.filter(filter, config);
   };
 

-- 
To view, visit https://gerrit.wikimedia.org/r/232936
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1b9ea891a5e36cccd45e03dbb7cb6a451e08eaaa
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix padding for the subdivided watchlists - change (labs...crosswatch)

2015-08-21 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix padding for the subdivided watchlists
..


Fix padding for the subdivided watchlists

Change-Id: I7faa1c81dae6e2c42fea502da6164bca754c0a4c
---
M frontend/src/components/watchlist/seperated.html
1 file changed, 1 insertion(+), 1 deletion(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/components/watchlist/seperated.html 
b/frontend/src/components/watchlist/seperated.html
index b3f0b7e..1aa9933 100644
--- a/frontend/src/components/watchlist/seperated.html
+++ b/frontend/src/components/watchlist/seperated.html
@@ -1,6 +1,6 @@
 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-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

-- 
To view, visit https://gerrit.wikimedia.org/r/232937
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I7faa1c81dae6e2c42fea502da6164bca754c0a4c
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix padding for the subdivided watchlists - change (labs...crosswatch)

2015-08-21 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/232937

Change subject: Fix padding for the subdivided watchlists
..

Fix padding for the subdivided watchlists

Change-Id: I7faa1c81dae6e2c42fea502da6164bca754c0a4c
---
M frontend/src/components/watchlist/seperated.html
1 file changed, 1 insertion(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/37/232937/1

diff --git a/frontend/src/components/watchlist/seperated.html 
b/frontend/src/components/watchlist/seperated.html
index b3f0b7e..1aa9933 100644
--- a/frontend/src/components/watchlist/seperated.html
+++ b/frontend/src/components/watchlist/seperated.html
@@ -1,6 +1,6 @@
 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-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

-- 
To view, visit https://gerrit.wikimedia.org/r/232937
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7faa1c81dae6e2c42fea502da6164bca754c0a4c
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix expand button size for traditional layout - change (labs...crosswatch)

2015-08-20 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix expand button size for traditional layout
..


Fix expand button size for traditional layout

Change-Id: I01adc2e417ba69bbd83d5bc3277a34f3a35d4547
---
M frontend/src/app/index.css
M frontend/src/components/watchlist/seperated.html
M frontend/src/components/watchlist/unified.html
3 files changed, 13 insertions(+), 6 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 91f706b..0541ba6 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -149,14 +149,14 @@
   border-top: 0;
 }
 
-.watchlist-list-item-oneline {
-  min-height: 32px;
-}
-
 watchlist-entry {
   overflow: hidden;
   width: 100%;
   margin: 6px 0;
+}
+
+.whitebox-oneline md-list-item {
+  min-height: 32px;
 }
 
 md-list-item.watchlist:first-child watchlist-entry {
@@ -194,11 +194,18 @@
   width: 25px;
   margin-right: 0;
 }
+
 watchlist-entry .md-button.md-icon-button.expandbutton {
   height: unset;
   line-height: normal;
 }
 
+.whitebox-oneline watchlist-entry .md-button.md-icon-button.expandbutton {
+  height: 19px;
+  min-height: unset;
+  margin-top: -3px;
+}
+
 watchlist-entry .ores {
   margin-right: 18px;
 }
diff --git a/frontend/src/components/watchlist/seperated.html 
b/frontend/src/components/watchlist/seperated.html
index e06a340..b3f0b7e 100644
--- a/frontend/src/components/watchlist/seperated.html
+++ b/frontend/src/components/watchlist/seperated.html
@@ -27,7 +27,7 @@
   /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-class=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
diff --git a/frontend/src/components/watchlist/unified.html 
b/frontend/src/components/watchlist/unified.html
index 23dad7c..46bc08f 100644
--- a/frontend/src/components/watchlist/unified.html
+++ b/frontend/src/components/watchlist/unified.html
@@ -25,7 +25,7 @@
 md-list class=watchlist-container 
infinite-scroll=ctrl.moreWatchlistEntries() 
infinite-scroll-immediate-check=false
  infinite-scroll-distance=1
   md-list-item layout=row class=watchlist
-ng-class=[{'watchlist-list-item-oneline': 
ctrl.config.oneline}, ctrl.config.projectColors[event.project]]
+ng-class=ctrl.config.projectColors[event.project]
 ng-repeat=event in ctrl.watchlist.active track by 
event.id
 watchlist-entry ng-click=ctrl.clicked(event) 
md-ink-ripple/watchlist-entry
 md-divider/md-divider

-- 
To view, visit https://gerrit.wikimedia.org/r/232720
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I01adc2e417ba69bbd83d5bc3277a34f3a35d4547
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix expand button size for traditional layout - change (labs...crosswatch)

2015-08-20 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/232720

Change subject: Fix expand button size for traditional layout
..

Fix expand button size for traditional layout

Change-Id: I01adc2e417ba69bbd83d5bc3277a34f3a35d4547
---
M frontend/src/app/index.css
M frontend/src/components/watchlist/seperated.html
M frontend/src/components/watchlist/unified.html
3 files changed, 13 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/20/232720/1

diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 91f706b..0541ba6 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -149,14 +149,14 @@
   border-top: 0;
 }
 
-.watchlist-list-item-oneline {
-  min-height: 32px;
-}
-
 watchlist-entry {
   overflow: hidden;
   width: 100%;
   margin: 6px 0;
+}
+
+.whitebox-oneline md-list-item {
+  min-height: 32px;
 }
 
 md-list-item.watchlist:first-child watchlist-entry {
@@ -194,11 +194,18 @@
   width: 25px;
   margin-right: 0;
 }
+
 watchlist-entry .md-button.md-icon-button.expandbutton {
   height: unset;
   line-height: normal;
 }
 
+.whitebox-oneline watchlist-entry .md-button.md-icon-button.expandbutton {
+  height: 19px;
+  min-height: unset;
+  margin-top: -3px;
+}
+
 watchlist-entry .ores {
   margin-right: 18px;
 }
diff --git a/frontend/src/components/watchlist/seperated.html 
b/frontend/src/components/watchlist/seperated.html
index e06a340..b3f0b7e 100644
--- a/frontend/src/components/watchlist/seperated.html
+++ b/frontend/src/components/watchlist/seperated.html
@@ -27,7 +27,7 @@
   /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-class=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
diff --git a/frontend/src/components/watchlist/unified.html 
b/frontend/src/components/watchlist/unified.html
index 23dad7c..46bc08f 100644
--- a/frontend/src/components/watchlist/unified.html
+++ b/frontend/src/components/watchlist/unified.html
@@ -25,7 +25,7 @@
 md-list class=watchlist-container 
infinite-scroll=ctrl.moreWatchlistEntries() 
infinite-scroll-immediate-check=false
  infinite-scroll-distance=1
   md-list-item layout=row class=watchlist
-ng-class=[{'watchlist-list-item-oneline': 
ctrl.config.oneline}, ctrl.config.projectColors[event.project]]
+ng-class=ctrl.config.projectColors[event.project]
 ng-repeat=event in ctrl.watchlist.active track by 
event.id
 watchlist-entry ng-click=ctrl.clicked(event) 
md-ink-ripple/watchlist-entry
 md-divider/md-divider

-- 
To view, visit https://gerrit.wikimedia.org/r/232720
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I01adc2e417ba69bbd83d5bc3277a34f3a35d4547
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add support for subdivided watchlists - change (labs...crosswatch)

2015-08-19 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Add support for subdivided watchlists
..


Add support for subdivided watchlists

Bug: T109188
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/de.json
M frontend/src/i18n/en.json
M frontend/src/i18n/qqq.json
11 files changed, 89 insertions(+), 18 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/app/filters.js b/frontend/src/app/filters.js
index 48a9021..8f3376f 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,11 @@
 }
 
 function projectsFilter () {
-  return function (items, projects) {
-return items.filter(projectsFilterFunc, projects)
+  return function (items, config) {
+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..7565173 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.subdivided 
ng-include='components/watchlist/unified.html'/div
+div ng-if=ctrl.config.subdivided 
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..3156bda 100644
--- a/frontend/src/app/services.js
+++ b/frontend/src/app/services.js
@@ -44,6 +44,10 @@
*/
   vm.watchlist.active = [];
   /**
+   * Watchlist sorted as array per project
+   */
+  vm.watchlist.perProject = {};
+  /**
* loading spinner
*/
   vm.watchlist.loading = true;
@@ -106,7 +110,12 @@
 /**
  * Automatically show diff, if edit is unreviewed and user has review right
  */
-flaggedrevsDiff: true
+flaggedrevsDiff: true,
+/**
+ * true: show subdivided wikis watchlist
+ * false: show unified wikis watchlist
+ */
+subdivided: false
   };
   // Get config from localstorage or create from defaultconfig
   if (localStorageService.get('config') !== null) {
@@ -176,6 +185,12 @@
 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;
+} else {
+  Array.prototype.push.apply(vm.watchlist.perProject[project], entries);
+}
   };
 
   /**
@@ -215,10 +230,11 @@
   vm.resetWatchlist = function () {
 vm.watchlist.original = [];
 vm.watchlist.filtered = [];
-vm.watchlist.dict = [];
+vm.watchlist.dict = {};
 vm.watchlist.active.length = 0; /* preserve pointer, slow due to GC */
 vm.notifications.length = 0;
 vm.watchlist.loading = true;
+vm.watchlist.perProject = {};
 vm.queryWatchlist();
 vm.saveConfig();
   };
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 

[MediaWiki-commits] [Gerrit] Add support for seperated watchlists - change (labs...crosswatch)

2015-08-15 Thread Sitic (Code Review)
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 

[MediaWiki-commits] [Gerrit] Add Extension:PageTriage logevents support - change (labs...crosswatch)

2015-08-10 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/230532

Change subject: Add Extension:PageTriage logevents support
..

Add Extension:PageTriage logevents support

Bug: T108547
Change-Id: I6b75325497995f6da2d3b8dc533ec9c577353645
---
M frontend/src/components/watchlist/logevent.directive.html
M frontend/src/i18n/en.json
M frontend/src/i18n/qqq.json
3 files changed, 20 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/32/230532/1

diff --git a/frontend/src/components/watchlist/logevent.directive.html 
b/frontend/src/components/watchlist/logevent.directive.html
index 5e4a762..2afea8f 100644
--- a/frontend/src/components/watchlist/logevent.directive.html
+++ b/frontend/src/components/watchlist/logevent.directive.html
@@ -72,6 +72,18 @@
 span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
   /span
 /span
+span ng-switch-when=pagetriage-curation
+  span ng-switch=::event.logaction
+span ng-switch-when=reviewed translate=LOGEVENT_PAGETRIAGE_REVIEWED 
translate-values=event translate-interpolation=custom 
translate-compile/span
+span ng-switch-when=unreviewed 
translate=LOGEVENT_PAGETRIAGE_UNREVIEWED translate-values=event 
translate-interpolation=custom translate-compile/span
+span ng-switch-when=tag translate=LOGEVENT_PAGETRIAGE_UNREVIEWED 
translate-values=event translate-interpolation=custom 
translate-compile/span
+span ng-switch-when=delete translate=LOGEVENT_PAGETRIAGE_DELETE 
translate-values=event translate-interpolation=custom 
translate-compile/span
+span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
+  /span
+/span
+span ng-switch-when=pagetriage-deletion
+span translate=LOGEVENT_PAGETRIAGE_DELETE translate-values=event 
translate-interpolation=custom translate-compile/span
+/span
 span ng-switch-defaultcode{{event}}/code/span !-- debug fallback --
 /span
 span ng-if=::event.parsedcomment 
class=comment(comment/comment)/span
diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json
index a2e9537..8ffad14 100644
--- a/frontend/src/i18n/en.json
+++ b/frontend/src/i18n/en.json
@@ -50,6 +50,10 @@
   LOGEVENT_TRANSLATION_MARK: user marked page for translation,
   LOGEVENT_TRANSLATION_ASSOCIATE: user added translatable page page to 
aggregate group {{aggregategroup}},
   LOGEVENT_TRANSLATION_DISSOCIATE: user removed translatable page page 
from aggregate group {{aggregategroup}},
+  LOGEVENT_PAGETRIAGE_REVIEWED: user marked page as reviewed,
+  LOGEVENT_PAGETRIAGE_UNREVIEWED: user marked page as unreviewed,
+  LOGEVENT_PAGETRIAGE_TAG: user tagged page with tags {{tags|list}},
+  LOGEVENT_PAGETRIAGE_DELETE: user marked page for deletion with tags 
{{tags|list}},
   OAUTH_FAILURE_TITLE: OAuth authentication failure,
   OAUTH_FAILURE_CONTENT: Authentication failed, you might have revoked the 
authorization for this application. Please logout and sign in again. Error 
information: {{error}},
   CLOSE: Close,
diff --git a/frontend/src/i18n/qqq.json b/frontend/src/i18n/qqq.json
index 987f2aa..a60c829 100644
--- a/frontend/src/i18n/qqq.json
+++ b/frontend/src/i18n/qqq.json
@@ -18,6 +18,10 @@
   ANON_EDITS: Checkbox to filter out anonymous user edits,
   USER_EDITS: Checkbox to filter out registered user edits,
   FLAGS: Option to show flags instead of language names (e.g. UK flag for 
english, flag of Germany for german, …),
+  LOGEVENT_PAGETRIAGE_REVIEWED: From Extension:PageTriage, log action when 
someone marks a page as reviewed, {{LogEntry}}.,
+  LOGEVENT_PAGETRIAGE_UNREVIEWED: From Extension:PageTriage, log action 
when someone marks a page as unreviewed,
+  LOGEVENT_PAGETRIAGE_TAG: From Extension:PageTriage, log action when 
someone tags a page with maintenance tags. {{Logentry}},
+  LOGEVENT_PAGETRIAGE_DELETE: From Extension:PageTriage, log action when 
some marks a page for deletion, {{LogEntry}},
   OAUTH_FAILURE_TITLE: Title for error message,
   OAUTH_FAILURE_CONTENT: Error message that MediaWiki login failed,
   CLOSE: Close dialog button,

-- 
To view, visit https://gerrit.wikimedia.org/r/230532
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6b75325497995f6da2d3b8dc533ec9c577353645
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add Extension:PageTriage logevents support - change (labs...crosswatch)

2015-08-10 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Add Extension:PageTriage logevents support
..


Add Extension:PageTriage logevents support

Bug: T108547
Change-Id: I6b75325497995f6da2d3b8dc533ec9c577353645
---
M frontend/src/components/watchlist/logevent.directive.html
M frontend/src/i18n/en.json
M frontend/src/i18n/qqq.json
3 files changed, 20 insertions(+), 0 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/components/watchlist/logevent.directive.html 
b/frontend/src/components/watchlist/logevent.directive.html
index 5e4a762..2afea8f 100644
--- a/frontend/src/components/watchlist/logevent.directive.html
+++ b/frontend/src/components/watchlist/logevent.directive.html
@@ -72,6 +72,18 @@
 span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
   /span
 /span
+span ng-switch-when=pagetriage-curation
+  span ng-switch=::event.logaction
+span ng-switch-when=reviewed translate=LOGEVENT_PAGETRIAGE_REVIEWED 
translate-values=event translate-interpolation=custom 
translate-compile/span
+span ng-switch-when=unreviewed 
translate=LOGEVENT_PAGETRIAGE_UNREVIEWED translate-values=event 
translate-interpolation=custom translate-compile/span
+span ng-switch-when=tag translate=LOGEVENT_PAGETRIAGE_UNREVIEWED 
translate-values=event translate-interpolation=custom 
translate-compile/span
+span ng-switch-when=delete translate=LOGEVENT_PAGETRIAGE_DELETE 
translate-values=event translate-interpolation=custom 
translate-compile/span
+span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
+  /span
+/span
+span ng-switch-when=pagetriage-deletion
+span translate=LOGEVENT_PAGETRIAGE_DELETE translate-values=event 
translate-interpolation=custom translate-compile/span
+/span
 span ng-switch-defaultcode{{event}}/code/span !-- debug fallback --
 /span
 span ng-if=::event.parsedcomment 
class=comment(comment/comment)/span
diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json
index a2e9537..8ffad14 100644
--- a/frontend/src/i18n/en.json
+++ b/frontend/src/i18n/en.json
@@ -50,6 +50,10 @@
   LOGEVENT_TRANSLATION_MARK: user marked page for translation,
   LOGEVENT_TRANSLATION_ASSOCIATE: user added translatable page page to 
aggregate group {{aggregategroup}},
   LOGEVENT_TRANSLATION_DISSOCIATE: user removed translatable page page 
from aggregate group {{aggregategroup}},
+  LOGEVENT_PAGETRIAGE_REVIEWED: user marked page as reviewed,
+  LOGEVENT_PAGETRIAGE_UNREVIEWED: user marked page as unreviewed,
+  LOGEVENT_PAGETRIAGE_TAG: user tagged page with tags {{tags|list}},
+  LOGEVENT_PAGETRIAGE_DELETE: user marked page for deletion with tags 
{{tags|list}},
   OAUTH_FAILURE_TITLE: OAuth authentication failure,
   OAUTH_FAILURE_CONTENT: Authentication failed, you might have revoked the 
authorization for this application. Please logout and sign in again. Error 
information: {{error}},
   CLOSE: Close,
diff --git a/frontend/src/i18n/qqq.json b/frontend/src/i18n/qqq.json
index 987f2aa..a60c829 100644
--- a/frontend/src/i18n/qqq.json
+++ b/frontend/src/i18n/qqq.json
@@ -18,6 +18,10 @@
   ANON_EDITS: Checkbox to filter out anonymous user edits,
   USER_EDITS: Checkbox to filter out registered user edits,
   FLAGS: Option to show flags instead of language names (e.g. UK flag for 
english, flag of Germany for german, …),
+  LOGEVENT_PAGETRIAGE_REVIEWED: From Extension:PageTriage, log action when 
someone marks a page as reviewed, {{LogEntry}}.,
+  LOGEVENT_PAGETRIAGE_UNREVIEWED: From Extension:PageTriage, log action 
when someone marks a page as unreviewed,
+  LOGEVENT_PAGETRIAGE_TAG: From Extension:PageTriage, log action when 
someone tags a page with maintenance tags. {{Logentry}},
+  LOGEVENT_PAGETRIAGE_DELETE: From Extension:PageTriage, log action when 
some marks a page for deletion, {{LogEntry}},
   OAUTH_FAILURE_TITLE: Title for error message,
   OAUTH_FAILURE_CONTENT: Error message that MediaWiki login failed,
   CLOSE: Close dialog button,

-- 
To view, visit https://gerrit.wikimedia.org/r/230532
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I6b75325497995f6da2d3b8dc533ec9c577353645
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add crosswatch project - change (translatewiki)

2015-08-06 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/229960

Change subject: Add crosswatch project
..

Add crosswatch project

Bug: T108247
Change-Id: I38e1e13fa2f562fea9547bff04abdcbcacbd3659
---
M REPOCONF
M TranslateSettings.php
M bin/repocommit
M bin/repocreate
M bin/repoexport
A groups/crosswatch/Checker.php
A groups/crosswatch/Suggester.php
A groups/crosswatch/crosswatch.yaml
8 files changed, 73 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/translatewiki 
refs/changes/60/229960/1

diff --git a/REPOCONF b/REPOCONF
index 3fa5185..2e4a53c 100644
--- a/REPOCONF
+++ b/REPOCONF
@@ -8,6 +8,7 @@
 
 REPO_BLOCKLY=git://github.com/google/blockly.git
 REPO_BLOCKLYGAMES=git://github.com/google/blockly-games.git
+REPO_CROSSWATCH=https://gerrit.wikimedia.org/r/labs/tools/crosswatch
 REPO_ENTRYSCAPE=https://bitbucket.org/metasolutions/entryscape.git
 REPO_EOL=git://github.com/EOL/eol.git
 REPO_ETHERPADLITE=git://github.com/ether/etherpad-lite.git
diff --git a/TranslateSettings.php b/TranslateSettings.php
index 0027f16..edfb6ae 100644
--- a/TranslateSettings.php
+++ b/TranslateSettings.php
@@ -335,3 +335,6 @@
 $wgCapitalLinkOverrides[NS_ENTRYSCAPE] = false;
 $wgCapitalLinkOverrides[NS_ENTRYSCAPE_TALK] = false;
 $wgTranslateGroupFiles[] = $GROUPS/EntryScape/EntryScape.yaml;
+
+wfAddNamespace( 1266, 'crosswatch' );
+$wgTranslateGroupFiles[] = $GROUPS/crosswatch/crosswatch.yaml;
diff --git a/bin/repocommit b/bin/repocommit
index bb19c71..7d98bb1 100755
--- a/bin/repocommit
+++ b/bin/repocommit
@@ -79,6 +79,7 @@
 
 # TODO: Move to separate file?
 GERRITPROJECTS=\
+crosswatch \
 pywikibot \
 wikimania \
 wikipedia-android \
diff --git a/bin/repocreate b/bin/repocreate
index 6c9f700..a264617 100755
--- a/bin/repocreate
+++ b/bin/repocreate
@@ -32,6 +32,11 @@
checkVar 'REPO_BLOCKLYGAMES'
git clone $REPO_BLOCKLYGAMES blockly-games
 
+elif [ $PROJECT = crosswatch ]
+then
+   checkVar 'REPO_CROSSWATCH'
+   $CLUPDATE_GERRIT $REPO_CROSSWATCH $DIR/$PROJECT
+
 elif [ $PROJECT = eol ]
 then
checkVar 'REPO_EOL'
diff --git a/bin/repoexport b/bin/repoexport
index 26cbec1..a29a74a 100755
--- a/bin/repoexport
+++ b/bin/repoexport
@@ -24,6 +24,11 @@
 then
php $EXPORTER --target . --group=out-blockly* --lang='*' --skip en 
$THRESHOLD
 
+
+elif [ $PROJECT = crosswatch ]
+then
+   php $EXPORTER --target . --group=out-crosswatch --lang='*' --skip en 
$THRESHOLD
+
 elif [ $PROJECT = entryscape ]
 then
php $EXPORTER --target . --group=entryscape-* --lang='*' --skip en 
$THRESHOLD
diff --git a/groups/crosswatch/Checker.php b/groups/crosswatch/Checker.php
new file mode 100644
index 000..1d46204
--- /dev/null
+++ b/groups/crosswatch/Checker.php
@@ -0,0 +1,19 @@
+?php
+/**
+ * Message checks for crosswatch
+ *
+ * @ingroup MessageCheckers
+ */
+class CrosswatchMessageChecker extends MessageChecker {
+   /**
+* Checks for missing and unknown variables in translations.
+* Variable sytax examples: user, user name={{title}}, {{number}} 
or {{flags|list}}
+*
+* @param $messages \array Iterable list of TMessage objects.
+* @param $code \string Language code of the translations.
+* @param $warnings \array Array where warnings are appended to.
+*/
+   protected function CrosswatchVariablesCheck( $messages, $code, 
$warnings ) {
+   return parent::parameterCheck( $messages, $code, $warnings, 
'/[a-zA-Z\=\{\}\s_\|]{2,}|{{[a-zA-Z_\|]+}}/');
+   }
+}
diff --git a/groups/crosswatch/Suggester.php b/groups/crosswatch/Suggester.php
new file mode 100644
index 000..e6cf2bc
--- /dev/null
+++ b/groups/crosswatch/Suggester.php
@@ -0,0 +1,16 @@
+?php
+/**
+ * Insertables for crosswatch
+ */
+class CrosswatchInsertablesSuggester {
+   public function getInsertables( $text ) {
+   $matches = array();
+   // user name={{title}}, user, /a, {{number}}
+   preg_match_all( '/\/?[a-zA-Z\=\{\}\s_\|]+|{{[a-zA-Z_\|]+}}/', 
$text, $matches, PREG_SET_ORDER );
+   $insertables = array_map( function( $match ) {
+   return new Insertable( $match[0], $match[0] );
+   }, $matches );
+
+   return $insertables;
+   }
+}
diff --git a/groups/crosswatch/crosswatch.yaml 
b/groups/crosswatch/crosswatch.yaml
new file mode 100644
index 000..bd2ee1b
--- /dev/null
+++ b/groups/crosswatch/crosswatch.yaml
@@ -0,0 +1,23 @@
+---
+BASIC:
+  id: out-crosswatch
+  label: crosswatch
+  description: {{Special:MyLanguage/Translations:Group 
descriptions/Crosswatch/en}}
+  namespace: NS_CROSSWATCH
+  class: FileBasedMessageGroup
+
+FILES:
+  class: JsonFFS
+  sourcePattern: %GROUPROOT%/crosswatch/frontend/src/i18n/%CODE%.json
+
+CHECKER:
+  class: CrosswatchMessageChecker
+  checks:
+- CrosswatchVariablesCheck
+
+INSERTABLES:
+  class: 

[MediaWiki-commits] [Gerrit] Set red as theme accent color - change (labs...crosswatch)

2015-08-05 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/229406

Change subject: Set red as theme accent color
..

Set red as theme accent color

People are complaining about the default pink color.

Change-Id: I77892de27d0f545b439fb4e4cfeaede35806ec8c
---
M frontend/src/app/index.js
1 file changed, 7 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/06/229406/1

diff --git a/frontend/src/app/index.js b/frontend/src/app/index.js
index ef185a8..f712b5d 100644
--- a/frontend/src/app/index.js
+++ b/frontend/src/app/index.js
@@ -15,6 +15,7 @@
   .config(routeConfig)
   .config(locationConfig)
   .config(storageConfig)
+  .config(themeConfig)
   .factory('socket', socketFactory)
   .directive('stopEvent', stopEventDirective)
 ;
@@ -48,6 +49,12 @@
 .setStorageCookie(30, '/crosswatch/');
 }
 
+function themeConfig ($mdThemingProvider) {
+  $mdThemingProvider.theme('default')
+.primaryPalette('indigo')
+.accentPalette('red');
+}
+
 function socketFactory (socketFactory, $browser, $location) {
   var baseHref = $browser.baseHref();
   var sockjsUrl = baseHref + 'sockjs';

-- 
To view, visit https://gerrit.wikimedia.org/r/229406
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I77892de27d0f545b439fb4e4cfeaede35806ec8c
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Set fontsize to 13px, fix minor bugs - change (labs...crosswatch)

2015-08-05 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/229408

Change subject: Set fontsize to 13px, fix minor bugs
..

Set fontsize to 13px, fix minor bugs

Sets fontsize to 13px, font was too large sometimes in Firefox.
Fixes padding issues which come with that.

Also don't show connectionerror, if not logged in.

Change-Id: I7043e61b2546d8c134948af3aa6f6ab591979911
---
M frontend/gulp/server.js
M frontend/src/app/index.css
M frontend/src/app/runBlock.js
M frontend/src/components/settings/settings.controller.js
M frontend/src/i18n/de.json
M frontend/src/i18n/en.json
6 files changed, 21 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/08/229408/1

diff --git a/frontend/gulp/server.js b/frontend/gulp/server.js
index 531abc8..251dcf8 100644
--- a/frontend/gulp/server.js
+++ b/frontend/gulp/server.js
@@ -27,6 +27,11 @@
   middleware: middleware,
   routes: routes
 },
+ghostMode: {
+  clicks: false,
+  forms: false,
+  scroll: false
+},
 browser: browser
   });
 }
diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 25ced70..91f706b 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -1,12 +1,10 @@
 html {
-  font-size: 62.5%;
-  line-height: 1.4;
+  font-size: 13px;
 }
 
 body {
   background-color: #edecec;
-  font-family: 'Roboto', sans-serif;
-  font-size: 1.4rem;
+  font-family: 'Lato', sans-serif;
 }
 
 div[role=main] {
@@ -94,7 +92,7 @@
 a {
   color: #0645ad;
   text-decoration: none;
-  font-weight: 400;
+  font-weight: normal;
   border-bottom: none;
   -webkit-transition: border-bottom 0.25s;
   -moz-transition: border-bottom 0.25s;
@@ -158,12 +156,12 @@
 watchlist-entry {
   overflow: hidden;
   width: 100%;
-  margin: 4px 0;
+  margin: 6px 0;
 }
 
 md-list-item.watchlist:first-child watchlist-entry {
-  margin-top: 6px;
-  margin-bottom: 4px;
+  margin-top: 8px;
+  margin-bottom: 6px;
 }
 
 watchlist-entry a,
diff --git a/frontend/src/app/runBlock.js b/frontend/src/app/runBlock.js
index 287e064..07127af 100644
--- a/frontend/src/app/runBlock.js
+++ b/frontend/src/app/runBlock.js
@@ -36,8 +36,10 @@
*/
   socket.setHandler('open', function () {
 $log.info('sockjs connected');
-dataService.queryWatchlist();
-$timeout(errorHandler, 15000); // show error if no response after 15 secs
+if (authService.isLoggedIn()) {
+  dataService.queryWatchlist();
+  $timeout(errorHandler, 15000); // show error if no response after 15 secs
+}
   });
 
   /**
diff --git a/frontend/src/components/settings/settings.controller.js 
b/frontend/src/components/settings/settings.controller.js
index 093ca96..c2e0a5e 100644
--- a/frontend/src/components/settings/settings.controller.js
+++ b/frontend/src/components/settings/settings.controller.js
@@ -11,11 +11,11 @@
 
 vm.namespacesList = [];
 vm.periodList = [];
-debounce(updatePeriodList, 50)();
-debounce(updateNamespaceList, 50)();
+debounce(updatePeriodList, 150)();
+debounce(updateNamespaceList, 150)();
 $rootScope.$on('$translateChangeSuccess', function () {
-  debounce(updatePeriodList, 50)();
-  debounce(updateNamespaceList, 50)();
+  debounce(updatePeriodList, 20)();
+  debounce(updateNamespaceList, 20)();
 });
 
 function updatePeriodList () {
diff --git a/frontend/src/i18n/de.json b/frontend/src/i18n/de.json
index cf6cffb..0534c7b 100644
--- a/frontend/src/i18n/de.json
+++ b/frontend/src/i18n/de.json
@@ -6,7 +6,7 @@
   REPORT_BUGS: Bugs Melden,
   SIGN_IN: Anmelden,
   SIGN_OUT: Abmelden,
-  DESCRIPTION: Eine erweiterte Beobachtungsliste für Wikimedia Projekte.,
+  DESCRIPTION: Eine cross-wiki Beobachtungsliste für Wikimedia Projekte.,
   SIGN_IN_BUTTON: Mit OAuth anmelden,
   MINOREDIT_FLAG: K,
   BOTEDIT_FLAG: B,
diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json
index 7f8c878..a2e9537 100644
--- a/frontend/src/i18n/en.json
+++ b/frontend/src/i18n/en.json
@@ -6,7 +6,7 @@
   REPORT_BUGS: Report Bugs,
   SIGN_IN: Sign in,
   SIGN_OUT: Logout,
-  DESCRIPTION: An enhanced watchlist for Wikimedia projects.,
+  DESCRIPTION: A cross-wiki watchlist for Wikimedia projects.,
   SIGN_IN_BUTTON: Sign in with OAuth,
   MINOREDIT_FLAG: m,
   BOTEDIT_FLAG: b,

-- 
To view, visit https://gerrit.wikimedia.org/r/229408
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7043e61b2546d8c134948af3aa6f6ab591979911
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add expand/collapse button for diff preview - change (labs...crosswatch)

2015-08-05 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/229407

Change subject: Add expand/collapse button for diff preview
..

Add expand/collapse button for diff preview

Adds button to expand the view and show a diff, does the same thing
as clicking on a edit/log event.

Adds button to collapse the expanded view.

Bug: T107735
Change-Id: Ic6c88b445439f7023e5552f8fc7ede5940fcdaf0
---
M frontend/src/app/index.css
M frontend/src/components/watchlist/entry.directive.html
M frontend/src/i18n/en.json
M frontend/src/i18n/qqq.json
4 files changed, 47 insertions(+), 35 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/07/229407/1

diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 94396ce..25ced70 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -192,15 +192,13 @@
   outline:none;
 }
 
-watchlist-entry .md-button.md-icon-button {
-  margin: 0 6px;
-  /* height: 48px; */
-  min-width: 0;
-  /* line-height: 48px; */
-  padding-left: 0;
-  padding-right: 0;
-  width: 48px;
-  border-radius: 50%;
+watchlist-entry .md-button.md-icon-button.rightbutton {
+  width: 25px;
+  margin-right: 0;
+}
+watchlist-entry .md-button.md-icon-button.expandbutton {
+  height: unset;
+  line-height: normal;
 }
 
 watchlist-entry .ores {
diff --git a/frontend/src/components/watchlist/entry.directive.html 
b/frontend/src/components/watchlist/entry.directive.html
index 283537a..b724075 100644
--- a/frontend/src/components/watchlist/entry.directive.html
+++ b/frontend/src/components/watchlist/entry.directive.html
@@ -38,36 +38,46 @@
   watchlist-logevent ng-if=::event.type === 'log'/watchlist-logevent
 /div
   /div
-  div layout=column layout-align=start end ng-if=event.showDiff  
event.type === 'edit'
+  div layout=column layout-align=start end
 div stop-event layout=row layout-align=end start
-  md-button class=md-icon-button title={{'EDIT' | translate}}
- 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=edit target=_blank
-md-icon md-font-library=material-iconsedit/md-icon
-  /md-button
-  md-button class=md-icon-button title={{'UNDO' | translate}}
- 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=editundoafter={{::event.old_revid}}undo={{::event.revid}} 
target=_blank
-md-icon md-font-library=material-iconsundo/md-icon
-  /md-button
-  md-button class=md-icon-button title={{'WATCHLIST_REMOVE' | 
translate}}
- ng-hide=event.isUnwatched ng-click=ctrl.watchPage(event, 
true)
-md-icon md-font-library=material-iconsstar/md-icon
-  /md-button
-  md-button class=md-icon-button  title={{'WATCHLIST_ADD' | 
translate}}
- ng-show=event.isUnwatched ng-click=ctrl.watchPage(event, 
false)
-md-icon md-font-library=material-iconsstar_border/md-icon
-  /md-button
-  md-button ng-if=event.stableRevid class=md-raised md-accent
- 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}oldid={{::event.stableRevid}}diff=cur target=_blank
-{{'PENDING_EDITS' | translate}}
+  div stop-event layout=row layout-align=end start 
ng-if=event.showDiff  event.type === 'edit'
+md-button class=md-icon-button title={{'EDIT' | translate}}
+   
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=edit target=_blank
+  md-icon md-font-library=material-iconsedit/md-icon
+/md-button
+md-button class=md-icon-button title={{'UNDO' | translate}}
+   
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=editundoafter={{::event.old_revid}}undo={{::event.revid}} 
target=_blank
+  md-icon md-font-library=material-iconsundo/md-icon
+/md-button
+md-button class=md-icon-button title={{'WATCHLIST_REMOVE' | 
translate}}
+   ng-hide=event.isUnwatched ng-click=ctrl.watchPage(event, 
true)
+  md-icon md-font-library=material-iconsstar/md-icon
+/md-button
+md-button class=md-icon-button  title={{'WATCHLIST_ADD' | 
translate}}
+   ng-show=event.isUnwatched ng-click=ctrl.watchPage(event, 
false)
+  md-icon md-font-library=material-iconsstar_border/md-icon
+/md-button
+md-button ng-if=event.stableRevid class=md-raised md-accent 
target=_blank
+   
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}oldid={{::event.stableRevid}}diff=cur
+   translate=PENDING_EDITS
+/md-button
+md-button class=md-icon-button rightbutton
+   ng-click=ctrl.clicked(event) title={{'COLLAPSE' | 
translate}}
+  md-icon 

[MediaWiki-commits] [Gerrit] Fix de translations - change (labs...crosswatch)

2015-08-05 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix de translations
..


Fix de translations

Change-Id: I1af3af77da5a2d8870989818e78d511d5c6b25c8
---
M frontend/src/i18n/de.json
1 file changed, 2 insertions(+), 2 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/i18n/de.json b/frontend/src/i18n/de.json
index b152201..cf6cffb 100644
--- a/frontend/src/i18n/de.json
+++ b/frontend/src/i18n/de.json
@@ -19,8 +19,8 @@
   SHOW_LAST_DAYS: Zeige letzte {{number}} Tage,
   MINOR_EDITS: Kleine Änderungen,
   BOT_EDITS: Bots,
-  ANON_EDITS: Unangemeldeten Benutzer,
-  USER_EDITS: Registrierte Benutzern,
+  ANON_EDITS: Unangemeldete Benutzer,
+  USER_EDITS: Registrierte Benutzer,
   FLAGS: Zeige Flaggen anstelle des Names der Sprache,
   WATCHLIST: Beobachtungsliste,
   SEARCH_WATCHLIST: Beobachtungsliste durchsuchen,

-- 
To view, visit https://gerrit.wikimedia.org/r/229296
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I1af3af77da5a2d8870989818e78d511d5c6b25c8
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Siebrand siebr...@kitano.nl
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Log and ignore partial ORES errors - change (labs...crosswatch)

2015-08-05 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Log and ignore partial ORES errors
..


Log and ignore partial ORES errors

I'm seeing a lot of intermittent ORES error (see one below) for
a part of the requested revids, works fine when doing the same
request again.
I'm also seeing 400 or 502 responses, which seem to be more
persisting.

Logging it for now and don't cause the whole task to fail.

{
  674043459: {
error: {
  message: Failed to process revision.metadata: 
RevisionDocumentNotFound,
  type: class 'revscoring.dependencies.errors.DependencyError'
}
  }
}

Change-Id: I570bd225c52f1c3581f32ab0dd4f3784cf7dea6c
---
M backend/celery/tasks.py
1 file changed, 6 insertions(+), 2 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index 52722db..2cf81c6 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -131,7 +131,7 @@
 'wllimit': 500,
 'wlend': mw.timestamp(daysdelta=-days),
 'wlprop': ids|flags|title|parsedcomment|userid|user|timestamp| +
-sizes|notificationtimestamp|loginfo
+  sizes|notificationtimestamp|loginfo
 }
 
 if allrev:
@@ -193,7 +193,7 @@
 'notalertunreadfirst': ,
 'notmessagecontinue': ,
 'notlimit': 15
-}
+}
 response = mw.query(params)
 
 result = response['query']['notifications']['list']
@@ -308,6 +308,10 @@
 
 response = mw.ores_scores(wiki['dbname'], edits.keys())
 for revid, value in response.items():
+if 'error' in value:
+logger.warning('ORES error {} for revid {}, response: {}'.format(
+value['error']['message'], revid, value))
+continue
 if value['probability']['true'] = 0.8:
 revid = int(revid)
 probablity = {:.0%}.format(value['probability']['true'])

-- 
To view, visit https://gerrit.wikimedia.org/r/229295
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I570bd225c52f1c3581f32ab0dd4f3784cf7dea6c
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add ability to blacklist wikis - change (labs...crosswatch)

2015-08-05 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Add ability to blacklist wikis
..


Add ability to blacklist wikis

For now only loginwiki, which throws errors.

Change-Id: I4662a9c33eaac043b5e69322fb38820d209d5114
---
M backend/celery/api.py
1 file changed, 14 insertions(+), 11 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/celery/api.py b/backend/celery/api.py
index f56227b..6d65fe4 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -182,6 +182,7 @@
 params = {'action': sitematrix}
 data = self.query(params)
 
+blacklist_wikis = ['loginwiki']
 flaggedrevs_wikis = self._flaggedrevs_wikis()
 
 wikis = {}
@@ -191,19 +192,17 @@
 
 if 'code' in val:
 for site in val['site']:
-wiki = self._create_wiki(site, val['code'], val['name'])
-if site['dbname'] in flaggedrevs_wikis:
-wiki['flaggedrevs'] = True
-wikis[site['dbname']] = wiki
+wikis[site['dbname']] = self._create_wiki(
+site, val['code'], val['name'],
+flaggedrevs_wikis, blacklist_wikis)
 else:
 for site in val:
-wiki = self._create_wiki(site, '', '')
-if site['dbname'] in flaggedrevs_wikis:
-wiki['flaggedrevs'] = True
-wikis[site['dbname']] = wiki
+wikis[site['dbname']] = self._create_wiki(
+site, '', '', flaggedrevs_wikis, blacklist_wikis)
 return wikis
 
-def _create_wiki(self, site, langcode, langname):
+def _create_wiki(self, site, langcode, langname, flaggedrevs_wikis,
+ blacklist_wikis):
 wiki = {
 'lang': langcode,
 'langname': langname,
@@ -214,9 +213,13 @@
 if wiki['group'] == 'wiki':
 wiki['group'] = 'wikipedia'
 
-inactive_wikis = ['closed', 'private', 'fishbowl']
-if any([key in site for key in inactive_wikis]):
+inactive_codes = ['closed', 'private', 'fishbowl']
+if any([key in site for key in inactive_codes]):
 wiki['closed'] = True
+if site['dbname'] in blacklist_wikis:
+wiki['closed'] = True
+if site['dbname'] in flaggedrevs_wikis:
+wiki['flaggedrevs'] = True
 return wiki
 
 def _flaggedrevs_wikis(self):

-- 
To view, visit https://gerrit.wikimedia.org/r/229297
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I4662a9c33eaac043b5e69322fb38820d209d5114
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Set red as theme accent color - change (labs...crosswatch)

2015-08-05 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Set red as theme accent color
..


Set red as theme accent color

People are complaining about the default pink color.

Change-Id: I77892de27d0f545b439fb4e4cfeaede35806ec8c
---
M frontend/src/app/index.js
1 file changed, 7 insertions(+), 0 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/app/index.js b/frontend/src/app/index.js
index ef185a8..f712b5d 100644
--- a/frontend/src/app/index.js
+++ b/frontend/src/app/index.js
@@ -15,6 +15,7 @@
   .config(routeConfig)
   .config(locationConfig)
   .config(storageConfig)
+  .config(themeConfig)
   .factory('socket', socketFactory)
   .directive('stopEvent', stopEventDirective)
 ;
@@ -48,6 +49,12 @@
 .setStorageCookie(30, '/crosswatch/');
 }
 
+function themeConfig ($mdThemingProvider) {
+  $mdThemingProvider.theme('default')
+.primaryPalette('indigo')
+.accentPalette('red');
+}
+
 function socketFactory (socketFactory, $browser, $location) {
   var baseHref = $browser.baseHref();
   var sockjsUrl = baseHref + 'sockjs';

-- 
To view, visit https://gerrit.wikimedia.org/r/229406
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I77892de27d0f545b439fb4e4cfeaede35806ec8c
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix edge case bug in flaggedrevs task - change (labs...crosswatch)

2015-08-05 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix edge case bug in flaggedrevs task
..


Fix edge case bug in flaggedrevs task

Sometimes, we don't get a dict back, but a list if the result is
empty (e.g. only log events).

Change-Id: I3b64972247bcac4fba00a08352d710739f66a9ca
---
M backend/celery/tasks.py
1 file changed, 2 insertions(+), 0 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index 2cf81c6..841a83d 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -364,6 +364,8 @@
 
 unstable = {}
 for response in mw.query_gen(params):
+if not isinstance(response['pages'], dict):
+continue
 for pageid, item in response['pages'].items():
 flagged = item.get('flagged', {})
 if 'pending_since' in flagged:

-- 
To view, visit https://gerrit.wikimedia.org/r/229298
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I3b64972247bcac4fba00a08352d710739f66a9ca
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add expand/collapse button for diff preview - change (labs...crosswatch)

2015-08-05 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Add expand/collapse button for diff preview
..


Add expand/collapse button for diff preview

Adds button to expand the view and show a diff, does the same thing
as clicking on a edit/log event.

Adds button to collapse the expanded view.

Bug: T107735
Change-Id: Ic6c88b445439f7023e5552f8fc7ede5940fcdaf0
---
M frontend/src/app/index.css
M frontend/src/components/watchlist/entry.directive.html
M frontend/src/i18n/en.json
M frontend/src/i18n/qqq.json
4 files changed, 47 insertions(+), 35 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 94396ce..25ced70 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -192,15 +192,13 @@
   outline:none;
 }
 
-watchlist-entry .md-button.md-icon-button {
-  margin: 0 6px;
-  /* height: 48px; */
-  min-width: 0;
-  /* line-height: 48px; */
-  padding-left: 0;
-  padding-right: 0;
-  width: 48px;
-  border-radius: 50%;
+watchlist-entry .md-button.md-icon-button.rightbutton {
+  width: 25px;
+  margin-right: 0;
+}
+watchlist-entry .md-button.md-icon-button.expandbutton {
+  height: unset;
+  line-height: normal;
 }
 
 watchlist-entry .ores {
diff --git a/frontend/src/components/watchlist/entry.directive.html 
b/frontend/src/components/watchlist/entry.directive.html
index 283537a..b724075 100644
--- a/frontend/src/components/watchlist/entry.directive.html
+++ b/frontend/src/components/watchlist/entry.directive.html
@@ -38,36 +38,46 @@
   watchlist-logevent ng-if=::event.type === 'log'/watchlist-logevent
 /div
   /div
-  div layout=column layout-align=start end ng-if=event.showDiff  
event.type === 'edit'
+  div layout=column layout-align=start end
 div stop-event layout=row layout-align=end start
-  md-button class=md-icon-button title={{'EDIT' | translate}}
- 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=edit target=_blank
-md-icon md-font-library=material-iconsedit/md-icon
-  /md-button
-  md-button class=md-icon-button title={{'UNDO' | translate}}
- 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=editundoafter={{::event.old_revid}}undo={{::event.revid}} 
target=_blank
-md-icon md-font-library=material-iconsundo/md-icon
-  /md-button
-  md-button class=md-icon-button title={{'WATCHLIST_REMOVE' | 
translate}}
- ng-hide=event.isUnwatched ng-click=ctrl.watchPage(event, 
true)
-md-icon md-font-library=material-iconsstar/md-icon
-  /md-button
-  md-button class=md-icon-button  title={{'WATCHLIST_ADD' | 
translate}}
- ng-show=event.isUnwatched ng-click=ctrl.watchPage(event, 
false)
-md-icon md-font-library=material-iconsstar_border/md-icon
-  /md-button
-  md-button ng-if=event.stableRevid class=md-raised md-accent
- 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}oldid={{::event.stableRevid}}diff=cur target=_blank
-{{'PENDING_EDITS' | translate}}
+  div stop-event layout=row layout-align=end start 
ng-if=event.showDiff  event.type === 'edit'
+md-button class=md-icon-button title={{'EDIT' | translate}}
+   
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=edit target=_blank
+  md-icon md-font-library=material-iconsedit/md-icon
+/md-button
+md-button class=md-icon-button title={{'UNDO' | translate}}
+   
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=editundoafter={{::event.old_revid}}undo={{::event.revid}} 
target=_blank
+  md-icon md-font-library=material-iconsundo/md-icon
+/md-button
+md-button class=md-icon-button title={{'WATCHLIST_REMOVE' | 
translate}}
+   ng-hide=event.isUnwatched ng-click=ctrl.watchPage(event, 
true)
+  md-icon md-font-library=material-iconsstar/md-icon
+/md-button
+md-button class=md-icon-button  title={{'WATCHLIST_ADD' | 
translate}}
+   ng-show=event.isUnwatched ng-click=ctrl.watchPage(event, 
false)
+  md-icon md-font-library=material-iconsstar_border/md-icon
+/md-button
+md-button ng-if=event.stableRevid class=md-raised md-accent 
target=_blank
+   
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}oldid={{::event.stableRevid}}diff=cur
+   translate=PENDING_EDITS
+/md-button
+md-button class=md-icon-button rightbutton
+   ng-click=ctrl.clicked(event) title={{'COLLAPSE' | 
translate}}
+  md-icon md-font-library=material-iconsexpand_less/md-icon
+/md-button
+  /div
+  md-button 

[MediaWiki-commits] [Gerrit] Set fontsize to 13px, fix minor bugs - change (labs...crosswatch)

2015-08-05 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Set fontsize to 13px, fix minor bugs
..


Set fontsize to 13px, fix minor bugs

Sets fontsize to 13px, font was too large sometimes in Firefox.
Fixes padding issues which come with that.

Also don't show connectionerror, if not logged in.

Change-Id: I7043e61b2546d8c134948af3aa6f6ab591979911
---
M frontend/gulp/server.js
M frontend/src/app/index.css
M frontend/src/app/runBlock.js
M frontend/src/components/settings/settings.controller.js
M frontend/src/i18n/de.json
M frontend/src/i18n/en.json
6 files changed, 21 insertions(+), 16 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/gulp/server.js b/frontend/gulp/server.js
index 531abc8..251dcf8 100644
--- a/frontend/gulp/server.js
+++ b/frontend/gulp/server.js
@@ -27,6 +27,11 @@
   middleware: middleware,
   routes: routes
 },
+ghostMode: {
+  clicks: false,
+  forms: false,
+  scroll: false
+},
 browser: browser
   });
 }
diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 25ced70..91f706b 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -1,12 +1,10 @@
 html {
-  font-size: 62.5%;
-  line-height: 1.4;
+  font-size: 13px;
 }
 
 body {
   background-color: #edecec;
-  font-family: 'Roboto', sans-serif;
-  font-size: 1.4rem;
+  font-family: 'Lato', sans-serif;
 }
 
 div[role=main] {
@@ -94,7 +92,7 @@
 a {
   color: #0645ad;
   text-decoration: none;
-  font-weight: 400;
+  font-weight: normal;
   border-bottom: none;
   -webkit-transition: border-bottom 0.25s;
   -moz-transition: border-bottom 0.25s;
@@ -158,12 +156,12 @@
 watchlist-entry {
   overflow: hidden;
   width: 100%;
-  margin: 4px 0;
+  margin: 6px 0;
 }
 
 md-list-item.watchlist:first-child watchlist-entry {
-  margin-top: 6px;
-  margin-bottom: 4px;
+  margin-top: 8px;
+  margin-bottom: 6px;
 }
 
 watchlist-entry a,
diff --git a/frontend/src/app/runBlock.js b/frontend/src/app/runBlock.js
index 287e064..07127af 100644
--- a/frontend/src/app/runBlock.js
+++ b/frontend/src/app/runBlock.js
@@ -36,8 +36,10 @@
*/
   socket.setHandler('open', function () {
 $log.info('sockjs connected');
-dataService.queryWatchlist();
-$timeout(errorHandler, 15000); // show error if no response after 15 secs
+if (authService.isLoggedIn()) {
+  dataService.queryWatchlist();
+  $timeout(errorHandler, 15000); // show error if no response after 15 secs
+}
   });
 
   /**
diff --git a/frontend/src/components/settings/settings.controller.js 
b/frontend/src/components/settings/settings.controller.js
index 093ca96..c2e0a5e 100644
--- a/frontend/src/components/settings/settings.controller.js
+++ b/frontend/src/components/settings/settings.controller.js
@@ -11,11 +11,11 @@
 
 vm.namespacesList = [];
 vm.periodList = [];
-debounce(updatePeriodList, 50)();
-debounce(updateNamespaceList, 50)();
+debounce(updatePeriodList, 150)();
+debounce(updateNamespaceList, 150)();
 $rootScope.$on('$translateChangeSuccess', function () {
-  debounce(updatePeriodList, 50)();
-  debounce(updateNamespaceList, 50)();
+  debounce(updatePeriodList, 20)();
+  debounce(updateNamespaceList, 20)();
 });
 
 function updatePeriodList () {
diff --git a/frontend/src/i18n/de.json b/frontend/src/i18n/de.json
index cf6cffb..0534c7b 100644
--- a/frontend/src/i18n/de.json
+++ b/frontend/src/i18n/de.json
@@ -6,7 +6,7 @@
   REPORT_BUGS: Bugs Melden,
   SIGN_IN: Anmelden,
   SIGN_OUT: Abmelden,
-  DESCRIPTION: Eine erweiterte Beobachtungsliste für Wikimedia Projekte.,
+  DESCRIPTION: Eine cross-wiki Beobachtungsliste für Wikimedia Projekte.,
   SIGN_IN_BUTTON: Mit OAuth anmelden,
   MINOREDIT_FLAG: K,
   BOTEDIT_FLAG: B,
diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json
index 7f8c878..a2e9537 100644
--- a/frontend/src/i18n/en.json
+++ b/frontend/src/i18n/en.json
@@ -6,7 +6,7 @@
   REPORT_BUGS: Report Bugs,
   SIGN_IN: Sign in,
   SIGN_OUT: Logout,
-  DESCRIPTION: An enhanced watchlist for Wikimedia projects.,
+  DESCRIPTION: A cross-wiki watchlist for Wikimedia projects.,
   SIGN_IN_BUTTON: Sign in with OAuth,
   MINOREDIT_FLAG: m,
   BOTEDIT_FLAG: b,

-- 
To view, visit https://gerrit.wikimedia.org/r/229408
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I7043e61b2546d8c134948af3aa6f6ab591979911
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Siebrand siebr...@kitano.nl
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Set uselang in MW API for diffs and notifcations - change (labs...crosswatch)

2015-08-05 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/229627

Change subject: Set uselang in MW API for diffs and notifcations
..

Set uselang in MW API for diffs and notifcations

Sets uselang MW API paramter for notification and diffs so that
the language is the same as in crosswatch.

Change-Id: I9196d59867e4c685c149f721ee836ab03bfb2c61
---
M backend/celery/api.py
M backend/celery/tasks.py
M frontend/src/app/services.js
3 files changed, 16 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/27/229627/1

diff --git a/backend/celery/api.py b/backend/celery/api.py
index 6d65fe4..54a13c4 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -151,7 +151,7 @@
 response = self.query(params)
 return response['query']['users'][0]['rights']
 
-def diff(self, pageid, old_revid, new_revid):
+def diff(self, pageid, old_revid, new_revid, uselang=):
 params = {
 'action': query,
 'prop': revisions,
@@ -159,6 +159,7 @@
 'rvendid': old_revid,
 'rvdiffto': new_revid,
 'pageids': pageid,
+'uselang': uselang,
 'formatversion': 2
 }
 
diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index 841a83d..5e2688b 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -176,7 +176,7 @@
 
 
 @app.task
-def notificationgetter(**kwargs):
+def notificationgetter(uselang=, **kwargs):
 Get the echo notifications for a wiki
 wiki = kwargs['wiki']
 access_token = kwargs['access_token']
@@ -192,7 +192,8 @@
 'notformat': html,
 'notalertunreadfirst': ,
 'notmessagecontinue': ,
-'notlimit': 15
+'notlimit': 15,
+'uselang': uselang
 }
 response = mw.query(params)
 
@@ -243,7 +244,7 @@
 
 
 @app.task
-def get_diff(access_token=None, redis_channel=None, **kwargs):
+def get_diff(access_token=None, redis_channel=None, uselang=, **kwargs):
 Get a diff for a wiki page
 projecturl = kwargs['projecturl']
 pageid = kwargs['pageid']
@@ -255,7 +256,7 @@
access_token=access_token,
redis_channel=redis_channel)
 
-diff = mw.diff(pageid, old_revid, revid)
+diff = mw.diff(pageid, old_revid, revid, uselang=uselang)
 mw.publish({
 'msgtype': 'response',
 'request_id': request_id,
@@ -319,7 +320,7 @@
 
 
 @app.task
-def _ores_diff(edit, probablity, **kwargs):
+def _ores_diff(edit, probablity, uselang=, **kwargs):
 wiki = kwargs['wiki']
 access_token = kwargs['access_token']
 redis_channel = kwargs['redis_channel']
@@ -331,7 +332,7 @@
 if mw.was_reverted(edit):
 return
 
-diff = mw.diff(edit['pageid'], edit['old_revid'], edit['revid'])
+diff = mw.diff(edit['pageid'], edit['old_revid'], edit['revid'], uselang)
 mw.publish({
 'msgtype': ores_scores,
 'id': edit['id'],
@@ -341,7 +342,7 @@
 
 
 @app.task
-def flagged_revs(watchlist_params, items, **kwargs):
+def flagged_revs(watchlist_params, items, uselang=, **kwargs):
 wiki = kwargs['wiki']
 access_token = kwargs['access_token']
 redis_channel = kwargs['redis_channel']
@@ -377,7 +378,8 @@
 for item in items:
 if item['type'] == 'edit' and pageid == item['pageid'] and \
 stable_revid  item['revid']:
-diff = mw.diff(pageid, item['old_revid'], item['revid'])
+diff = mw.diff(pageid, item['old_revid'], item['revid'],
+   uselang=uselang)
 mw.publish({
 'msgtype': flaggedrevs,
 'id': item['id'],
diff --git a/frontend/src/app/services.js b/frontend/src/app/services.js
index 9ea7c70..1859ce2 100644
--- a/frontend/src/app/services.js
+++ b/frontend/src/app/services.js
@@ -27,7 +27,7 @@
   };
 }
 
-function dataService (socket, authService, localStorageService, $log, $filter, 
debounce, $q) {
+function dataService (socket, authService, localStorageService, $log, $filter, 
debounce, $q, $translate) {
   var vm = this;
 
   vm.watchlist = {};
@@ -262,7 +262,8 @@
 access_token: authService.tokens(),
 watchlistperiod: vm.config.watchlistperiod,
 allrev: !vm.config.lastrevonly,
-projects: vm.config.projectsList
+projects: vm.config.projectsList,
+uselang: $translate.use() || 
   };
   try {
 socket.send(angular.toJson(watchlistQuery));
@@ -292,6 +293,7 @@
   vm.query = function (params) {
 params.request_id = vm.getRequestId();
 params.access_token = authService.tokens();
+params.uselang = $translate.use() || ;
 
 var deferred = $q.defer();
 callbacks[params.request_id] = deferred;

-- 
To view, visit https://gerrit.wikimedia.org/r/229627
To unsubscribe, visit 

[MediaWiki-commits] [Gerrit] Set uselang in MW API for diffs and notifications - change (labs...crosswatch)

2015-08-05 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Set uselang in MW API for diffs and notifications
..


Set uselang in MW API for diffs and notifications

Sets uselang MW API paramter for notification and diffs so that
the language in the returned HTML is the same as in crosswatch.

Change-Id: I9196d59867e4c685c149f721ee836ab03bfb2c61
---
M backend/celery/api.py
M backend/celery/tasks.py
M frontend/src/app/services.js
3 files changed, 16 insertions(+), 11 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/celery/api.py b/backend/celery/api.py
index 6d65fe4..54a13c4 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -151,7 +151,7 @@
 response = self.query(params)
 return response['query']['users'][0]['rights']
 
-def diff(self, pageid, old_revid, new_revid):
+def diff(self, pageid, old_revid, new_revid, uselang=):
 params = {
 'action': query,
 'prop': revisions,
@@ -159,6 +159,7 @@
 'rvendid': old_revid,
 'rvdiffto': new_revid,
 'pageids': pageid,
+'uselang': uselang,
 'formatversion': 2
 }
 
diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index 841a83d..5e2688b 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -176,7 +176,7 @@
 
 
 @app.task
-def notificationgetter(**kwargs):
+def notificationgetter(uselang=, **kwargs):
 Get the echo notifications for a wiki
 wiki = kwargs['wiki']
 access_token = kwargs['access_token']
@@ -192,7 +192,8 @@
 'notformat': html,
 'notalertunreadfirst': ,
 'notmessagecontinue': ,
-'notlimit': 15
+'notlimit': 15,
+'uselang': uselang
 }
 response = mw.query(params)
 
@@ -243,7 +244,7 @@
 
 
 @app.task
-def get_diff(access_token=None, redis_channel=None, **kwargs):
+def get_diff(access_token=None, redis_channel=None, uselang=, **kwargs):
 Get a diff for a wiki page
 projecturl = kwargs['projecturl']
 pageid = kwargs['pageid']
@@ -255,7 +256,7 @@
access_token=access_token,
redis_channel=redis_channel)
 
-diff = mw.diff(pageid, old_revid, revid)
+diff = mw.diff(pageid, old_revid, revid, uselang=uselang)
 mw.publish({
 'msgtype': 'response',
 'request_id': request_id,
@@ -319,7 +320,7 @@
 
 
 @app.task
-def _ores_diff(edit, probablity, **kwargs):
+def _ores_diff(edit, probablity, uselang=, **kwargs):
 wiki = kwargs['wiki']
 access_token = kwargs['access_token']
 redis_channel = kwargs['redis_channel']
@@ -331,7 +332,7 @@
 if mw.was_reverted(edit):
 return
 
-diff = mw.diff(edit['pageid'], edit['old_revid'], edit['revid'])
+diff = mw.diff(edit['pageid'], edit['old_revid'], edit['revid'], uselang)
 mw.publish({
 'msgtype': ores_scores,
 'id': edit['id'],
@@ -341,7 +342,7 @@
 
 
 @app.task
-def flagged_revs(watchlist_params, items, **kwargs):
+def flagged_revs(watchlist_params, items, uselang=, **kwargs):
 wiki = kwargs['wiki']
 access_token = kwargs['access_token']
 redis_channel = kwargs['redis_channel']
@@ -377,7 +378,8 @@
 for item in items:
 if item['type'] == 'edit' and pageid == item['pageid'] and \
 stable_revid  item['revid']:
-diff = mw.diff(pageid, item['old_revid'], item['revid'])
+diff = mw.diff(pageid, item['old_revid'], item['revid'],
+   uselang=uselang)
 mw.publish({
 'msgtype': flaggedrevs,
 'id': item['id'],
diff --git a/frontend/src/app/services.js b/frontend/src/app/services.js
index 9ea7c70..1859ce2 100644
--- a/frontend/src/app/services.js
+++ b/frontend/src/app/services.js
@@ -27,7 +27,7 @@
   };
 }
 
-function dataService (socket, authService, localStorageService, $log, $filter, 
debounce, $q) {
+function dataService (socket, authService, localStorageService, $log, $filter, 
debounce, $q, $translate) {
   var vm = this;
 
   vm.watchlist = {};
@@ -262,7 +262,8 @@
 access_token: authService.tokens(),
 watchlistperiod: vm.config.watchlistperiod,
 allrev: !vm.config.lastrevonly,
-projects: vm.config.projectsList
+projects: vm.config.projectsList,
+uselang: $translate.use() || 
   };
   try {
 socket.send(angular.toJson(watchlistQuery));
@@ -292,6 +293,7 @@
   vm.query = function (params) {
 params.request_id = vm.getRequestId();
 params.access_token = authService.tokens();
+params.uselang = $translate.use() || ;
 
 var deferred = $q.defer();
 callbacks[params.request_id] = deferred;

-- 
To view, visit https://gerrit.wikimedia.org/r/229627
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings


[MediaWiki-commits] [Gerrit] Add ability to blacklist wikis - change (labs...crosswatch)

2015-08-04 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/229297

Change subject: Add ability to blacklist wikis
..

Add ability to blacklist wikis

For now only loginwiki, which throws errors.

Change-Id: I4662a9c33eaac043b5e69322fb38820d209d5114
---
M backend/celery/api.py
1 file changed, 14 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/97/229297/1

diff --git a/backend/celery/api.py b/backend/celery/api.py
index f56227b..6d65fe4 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -182,6 +182,7 @@
 params = {'action': sitematrix}
 data = self.query(params)
 
+blacklist_wikis = ['loginwiki']
 flaggedrevs_wikis = self._flaggedrevs_wikis()
 
 wikis = {}
@@ -191,19 +192,17 @@
 
 if 'code' in val:
 for site in val['site']:
-wiki = self._create_wiki(site, val['code'], val['name'])
-if site['dbname'] in flaggedrevs_wikis:
-wiki['flaggedrevs'] = True
-wikis[site['dbname']] = wiki
+wikis[site['dbname']] = self._create_wiki(
+site, val['code'], val['name'],
+flaggedrevs_wikis, blacklist_wikis)
 else:
 for site in val:
-wiki = self._create_wiki(site, '', '')
-if site['dbname'] in flaggedrevs_wikis:
-wiki['flaggedrevs'] = True
-wikis[site['dbname']] = wiki
+wikis[site['dbname']] = self._create_wiki(
+site, '', '', flaggedrevs_wikis, blacklist_wikis)
 return wikis
 
-def _create_wiki(self, site, langcode, langname):
+def _create_wiki(self, site, langcode, langname, flaggedrevs_wikis,
+ blacklist_wikis):
 wiki = {
 'lang': langcode,
 'langname': langname,
@@ -214,9 +213,13 @@
 if wiki['group'] == 'wiki':
 wiki['group'] = 'wikipedia'
 
-inactive_wikis = ['closed', 'private', 'fishbowl']
-if any([key in site for key in inactive_wikis]):
+inactive_codes = ['closed', 'private', 'fishbowl']
+if any([key in site for key in inactive_codes]):
 wiki['closed'] = True
+if site['dbname'] in blacklist_wikis:
+wiki['closed'] = True
+if site['dbname'] in flaggedrevs_wikis:
+wiki['flaggedrevs'] = True
 return wiki
 
 def _flaggedrevs_wikis(self):

-- 
To view, visit https://gerrit.wikimedia.org/r/229297
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4662a9c33eaac043b5e69322fb38820d209d5114
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix de translations - change (labs...crosswatch)

2015-08-04 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/229296

Change subject: Fix de translations
..

Fix de translations

Change-Id: I1af3af77da5a2d8870989818e78d511d5c6b25c8
---
M frontend/src/i18n/de.json
1 file changed, 2 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/96/229296/1

diff --git a/frontend/src/i18n/de.json b/frontend/src/i18n/de.json
index b152201..cf6cffb 100644
--- a/frontend/src/i18n/de.json
+++ b/frontend/src/i18n/de.json
@@ -19,8 +19,8 @@
   SHOW_LAST_DAYS: Zeige letzte {{number}} Tage,
   MINOR_EDITS: Kleine Änderungen,
   BOT_EDITS: Bots,
-  ANON_EDITS: Unangemeldeten Benutzer,
-  USER_EDITS: Registrierte Benutzern,
+  ANON_EDITS: Unangemeldete Benutzer,
+  USER_EDITS: Registrierte Benutzer,
   FLAGS: Zeige Flaggen anstelle des Names der Sprache,
   WATCHLIST: Beobachtungsliste,
   SEARCH_WATCHLIST: Beobachtungsliste durchsuchen,

-- 
To view, visit https://gerrit.wikimedia.org/r/229296
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1af3af77da5a2d8870989818e78d511d5c6b25c8
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix edge case bug in flaggedrevs task - change (labs...crosswatch)

2015-08-04 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/229298

Change subject: Fix edge case bug in flaggedrevs task
..

Fix edge case bug in flaggedrevs task

Sometimes, we don't get a dict back, but a list if the result is
empty (e.g. only log events).

Change-Id: I3b64972247bcac4fba00a08352d710739f66a9ca
---
M backend/celery/tasks.py
1 file changed, 2 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/98/229298/1

diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index 2cf81c6..841a83d 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -364,6 +364,8 @@
 
 unstable = {}
 for response in mw.query_gen(params):
+if not isinstance(response['pages'], dict):
+continue
 for pageid, item in response['pages'].items():
 flagged = item.get('flagged', {})
 if 'pending_since' in flagged:

-- 
To view, visit https://gerrit.wikimedia.org/r/229298
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3b64972247bcac4fba00a08352d710739f66a9ca
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Log and ignore partial ORES errors - change (labs...crosswatch)

2015-08-04 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/229295

Change subject: Log and ignore partial ORES errors
..

Log and ignore partial ORES errors

I'm seeing a lot of intermittent ORES error (see one below) for
a part of the requested revids, works fine when doing the same
request again.
I'm also seeing 400 or 502 responses, which seem to be more
persisting.

Logging it for now and don't cause the whole task to fail.

{
  674043459: {
error: {
  message: Failed to process revision.metadata: 
RevisionDocumentNotFound,
  type: class 'revscoring.dependencies.errors.DependencyError'
}
  }
}

Change-Id: I570bd225c52f1c3581f32ab0dd4f3784cf7dea6c
---
M backend/celery/tasks.py
1 file changed, 6 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/95/229295/1

diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index 52722db..2cf81c6 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -131,7 +131,7 @@
 'wllimit': 500,
 'wlend': mw.timestamp(daysdelta=-days),
 'wlprop': ids|flags|title|parsedcomment|userid|user|timestamp| +
-sizes|notificationtimestamp|loginfo
+  sizes|notificationtimestamp|loginfo
 }
 
 if allrev:
@@ -193,7 +193,7 @@
 'notalertunreadfirst': ,
 'notmessagecontinue': ,
 'notlimit': 15
-}
+}
 response = mw.query(params)
 
 result = response['query']['notifications']['list']
@@ -308,6 +308,10 @@
 
 response = mw.ores_scores(wiki['dbname'], edits.keys())
 for revid, value in response.items():
+if 'error' in value:
+logger.warning('ORES error {} for revid {}, response: {}'.format(
+value['error']['message'], revid, value))
+continue
 if value['probability']['true'] = 0.8:
 revid = int(revid)
 probablity = {:.0%}.format(value['probability']['true'])

-- 
To view, visit https://gerrit.wikimedia.org/r/229295
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I570bd225c52f1c3581f32ab0dd4f3784cf7dea6c
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix link to user page and contribs - change (labs...crosswatch)

2015-08-02 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix link to user page and contribs
..


Fix link to user page and contribs

Bug: T107681
Change-Id: I59d749afe282c7b06a0f9a5a391a72a8bd29fb19
---
M frontend/src/components/watchlist/user.directive.js
1 file changed, 3 insertions(+), 0 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/components/watchlist/user.directive.js 
b/frontend/src/components/watchlist/user.directive.js
index dd29a8e..235e0d9 100644
--- a/frontend/src/components/watchlist/user.directive.js
+++ b/frontend/src/components/watchlist/user.directive.js
@@ -20,5 +20,8 @@
 } else {
   scope.user = scope.event.user;
 }
+
+var split = scope.user.split(':');
+scope.user = split[split.length - 1]
   }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/228664
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I59d749afe282c7b06a0f9a5a391a72a8bd29fb19
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Log more ORES error information - change (labs...crosswatch)

2015-08-02 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/228663

Change subject: Log more ORES error information
..

Log more ORES error information

I've seen some 400 BAD REQUEST errors, but I haven't been able to
reproduce them. Adding better logging for now.

Change-Id: I02e0c22c68e8d96ba471bdb7b33a9143887bf48a
---
M backend/celery/api.py
1 file changed, 4 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/63/228663/1

diff --git a/backend/celery/api.py b/backend/celery/api.py
index 6466f2d..b1b9770 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -262,7 +262,10 @@
 params = {'revids': revids}
 
 response = requests.get(url, params=params, headers=self.headers)
-response.raise_for_status()
+
+if response.status_code != requests.codes.ok:
+Exception('ORES error code {} for {} with params {}'.format(
+response.status_code, dbname, str(params)), response.text)
 
 return response.json()
 

-- 
To view, visit https://gerrit.wikimedia.org/r/228663
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I02e0c22c68e8d96ba471bdb7b33a9143887bf48a
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix link to user page and contribs - change (labs...crosswatch)

2015-08-02 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/228664

Change subject: Fix link to user page and contribs
..

Fix link to user page and contribs

Bug: T107681
Change-Id: I59d749afe282c7b06a0f9a5a391a72a8bd29fb19
---
M frontend/src/components/watchlist/user.directive.js
1 file changed, 3 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/64/228664/1

diff --git a/frontend/src/components/watchlist/user.directive.js 
b/frontend/src/components/watchlist/user.directive.js
index dd29a8e..235e0d9 100644
--- a/frontend/src/components/watchlist/user.directive.js
+++ b/frontend/src/components/watchlist/user.directive.js
@@ -20,5 +20,8 @@
 } else {
   scope.user = scope.event.user;
 }
+
+var split = scope.user.split(':');
+scope.user = split[split.length - 1]
   }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/228664
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I59d749afe282c7b06a0f9a5a391a72a8bd29fb19
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Log more ORES error information - change (labs...crosswatch)

2015-08-02 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Log more ORES error information
..


Log more ORES error information

I've seen some 400 BAD REQUEST errors, but I haven't been able to
reproduce them. Adding better logging for now.

Change-Id: I02e0c22c68e8d96ba471bdb7b33a9143887bf48a
---
M backend/celery/api.py
1 file changed, 4 insertions(+), 1 deletion(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/celery/api.py b/backend/celery/api.py
index 6466f2d..b1b9770 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -262,7 +262,10 @@
 params = {'revids': revids}
 
 response = requests.get(url, params=params, headers=self.headers)
-response.raise_for_status()
+
+if response.status_code != requests.codes.ok:
+Exception('ORES error code {} for {} with params {}'.format(
+response.status_code, dbname, str(params)), response.text)
 
 return response.json()
 

-- 
To view, visit https://gerrit.wikimedia.org/r/228663
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I02e0c22c68e8d96ba471bdb7b33a9143887bf48a
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix ORES error handling - change (labs...crosswatch)

2015-08-02 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix ORES error handling
..


Fix ORES error handling

Fixes 6e49b9c

Change-Id: Ie182895d4c8b4c4441d4b766a2eba95ff8b5bbfe
---
M backend/celery/api.py
1 file changed, 1 insertion(+), 1 deletion(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/celery/api.py b/backend/celery/api.py
index b1b9770..f56227b 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -264,7 +264,7 @@
 response = requests.get(url, params=params, headers=self.headers)
 
 if response.status_code != requests.codes.ok:
-Exception('ORES error code {} for {} with params {}'.format(
+raise Exception('ORES error code {} for {} with params {}'.format(
 response.status_code, dbname, str(params)), response.text)
 
 return response.json()

-- 
To view, visit https://gerrit.wikimedia.org/r/228665
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie182895d4c8b4c4441d4b766a2eba95ff8b5bbfe
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix ORES error handling - change (labs...crosswatch)

2015-08-02 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/228665

Change subject: Fix ORES error handling
..

Fix ORES error handling

Fixes 6e49b9c

Change-Id: Ie182895d4c8b4c4441d4b766a2eba95ff8b5bbfe
---
M backend/celery/api.py
1 file changed, 1 insertion(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/65/228665/1

diff --git a/backend/celery/api.py b/backend/celery/api.py
index b1b9770..f56227b 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -264,7 +264,7 @@
 response = requests.get(url, params=params, headers=self.headers)
 
 if response.status_code != requests.codes.ok:
-Exception('ORES error code {} for {} with params {}'.format(
+raise Exception('ORES error code {} for {} with params {}'.format(
 response.status_code, dbname, str(params)), response.text)
 
 return response.json()

-- 
To view, visit https://gerrit.wikimedia.org/r/228665
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie182895d4c8b4c4441d4b766a2eba95ff8b5bbfe
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix watchlist padding - change (labs...crosswatch)

2015-08-01 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix watchlist padding
..


Fix watchlist padding

Change-Id: I4e9179c447a3484add7eaae03d7ac0696d8b3e6b
---
M frontend/src/app/index.css
1 file changed, 6 insertions(+), 8 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index bbc9afd..94396ce 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -145,14 +145,6 @@
   padding-left: 12px;
 }
 
-md-list-item.watchlist:first-child {
-  padding-top: 8px;
-}
-
-md-list-item.watchlist:last-child {
-  padding-bottom: 8px;
-}
-
 .watchlist:last-child md-divider,
 .notifications:last-child md-divider
 {
@@ -166,6 +158,12 @@
 watchlist-entry {
   overflow: hidden;
   width: 100%;
+  margin: 4px 0;
+}
+
+md-list-item.watchlist:first-child watchlist-entry {
+  margin-top: 6px;
+  margin-bottom: 4px;
 }
 
 watchlist-entry a,

-- 
To view, visit https://gerrit.wikimedia.org/r/228567
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I4e9179c447a3484add7eaae03d7ac0696d8b3e6b
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add more de transations - change (labs...crosswatch)

2015-08-01 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Add more de transations
..


Add more de transations

Change-Id: Ib68afeefd85002caad35c1eb0713dce505677b1f
---
M frontend/src/i18n/de.json
1 file changed, 39 insertions(+), 1 deletion(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/i18n/de.json b/frontend/src/i18n/de.json
index ed70f8d..b152201 100644
--- a/frontend/src/i18n/de.json
+++ b/frontend/src/i18n/de.json
@@ -11,9 +11,19 @@
   MINOREDIT_FLAG: K,
   BOTEDIT_FLAG: B,
   NEWPAGE_FLAG: N,
+  PREFERENCES: Einstellungen,
+  FILTER: Filter,
+  WIKIS: Wikis,
   LASTREVONLY: Zeige nur die letzte Änderung pro Seite,
   SHOW_LAST_HOURS: Zeige letzte {{number}} Stunden,
   SHOW_LAST_DAYS: Zeige letzte {{number}} Tage,
+  MINOR_EDITS: Kleine Änderungen,
+  BOT_EDITS: Bots,
+  ANON_EDITS: Unangemeldeten Benutzer,
+  USER_EDITS: Registrierte Benutzern,
+  FLAGS: Zeige Flaggen anstelle des Names der Sprache,
+  WATCHLIST: Beobachtungsliste,
+  SEARCH_WATCHLIST: Beobachtungsliste durchsuchen,
   LOGEVENT_DELETE_DELETE: user löschte Seite page,
   LOGEVENT_DELETE_REVISION: user änderte die Sichtbarkeit von Versionen 
der Seite page,
   LOGEVENT_DELETE_RESTORE: user stellte Seite page wieder her,
@@ -36,5 +46,33 @@
   LOGEVENT_NEWUSERS_CREATE: Benutzerkonto user name={{title}} wurde 
erstellt,
   LOGEVENT_NEWUSERS_CREATE2: Benutzerkonto user name={{title}} wurde von 
user erstellt,
   LOGEVENT_NEWUSERS_BYEMAIL: Benutzerkonto user name={{title}} wurde von 
user erstellt und das Passwort wurde per E-Mail zugesandt,
-  LOGEVENT_RENAMEUSER: user hat user name={{olduser}} (mit {{edits}} 
Bearbeitungen) nach user name={{newuser}} umbennant
+  LOGEVENT_RENAMEUSER: user hat user name={{olduser}} (mit {{edits}} 
Bearbeitungen) nach user name={{newuser}} umbennant,
+  NAMESPACES: Namesräume,
+  NS_0:  Artikel,
+  NS_1:  Diskussion,
+  NS_2:  Benutzer,
+  NS_3:  Benutzer Diskussion,
+  NS_4:  Portal,
+  NS_5:  Portal Diskussion,
+  NS_6:  Datei,
+  NS_7:  Datei Diskussion,
+  NS_10: Vorlage,
+  NS_11: Vorlage Diskussion,
+  NS_12: Hilfe,
+  NS_13: Hilfe Diskussion,
+  NS_OTHER: andere Namesräume,
+  HISTORY: Versionen,
+  CONTRIBS: Beiträge,
+  ONELINE: Traditionelles Beobachtungslisten Layout,
+  NOTIFICATIONS: Benachrichtigungen,
+  MARKALLREAD: alle als gelesen markieren,
+  STYLE: Stil,
+  HIDEOWNEDITS: Eigene Bearbeitungen in der Beobachtungsliste ausblenden,
+  EDIT: Diese Seite ein einem neuen Tab bearbeiten,
+  UNDO: Diese Änderung rückgängig machen, öffnet Vorschau in einem neuen 
Tab,
+  WATCHLIST_REMOVE: Diese Seite von der Beobachtungsliste entfernen,
+  WATCHLIST_ADD: Diese Seite zu meiner Beobachtungsliste hinzufügen,
+  ORES_OPTION: Zeige Versionsänderungen für ORES vorhergesagten Reverts,
+  PENDING_EDITS: sichten,
+  FLAGGEDREVS_OPTION: Zeige Versionsänderungen für ungesichtete 
Bearbeitungen
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/228568
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib68afeefd85002caad35c1eb0713dce505677b1f
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix watchlist padding - change (labs...crosswatch)

2015-08-01 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/228567

Change subject: Fix watchlist padding
..

Fix watchlist padding

Change-Id: I4e9179c447a3484add7eaae03d7ac0696d8b3e6b
---
M frontend/src/app/index.css
1 file changed, 6 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/67/228567/1

diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index bbc9afd..94396ce 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -145,14 +145,6 @@
   padding-left: 12px;
 }
 
-md-list-item.watchlist:first-child {
-  padding-top: 8px;
-}
-
-md-list-item.watchlist:last-child {
-  padding-bottom: 8px;
-}
-
 .watchlist:last-child md-divider,
 .notifications:last-child md-divider
 {
@@ -166,6 +158,12 @@
 watchlist-entry {
   overflow: hidden;
   width: 100%;
+  margin: 4px 0;
+}
+
+md-list-item.watchlist:first-child watchlist-entry {
+  margin-top: 6px;
+  margin-bottom: 4px;
 }
 
 watchlist-entry a,

-- 
To view, visit https://gerrit.wikimedia.org/r/228567
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4e9179c447a3484add7eaae03d7ac0696d8b3e6b
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix translation of select lists - change (labs...crosswatch)

2015-08-01 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/228569

Change subject: Fix translation of select lists
..

Fix translation of select lists

Didn't properly translate in some cases due to that angular-translate
localstorage bug.

Change-Id: I2b0211239b9007d45bc8e972ab87b0a071c66654
---
M frontend/src/components/settings/settings.controller.js
1 file changed, 10 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/69/228569/1

diff --git a/frontend/src/components/settings/settings.controller.js 
b/frontend/src/components/settings/settings.controller.js
index 0cdf402..093ca96 100644
--- a/frontend/src/components/settings/settings.controller.js
+++ b/frontend/src/components/settings/settings.controller.js
@@ -1,7 +1,7 @@
 'use strict';
 
 angular.module('crosswatch')
-  .controller('SettingsCtrl', function ($translate, $log, dataService, 
$rootScope) {
+  .controller('SettingsCtrl', function ($translate, $log, dataService, 
$rootScope, debounce) {
 var vm = this;
 vm.config = dataService.config;
 vm.saveConfig = function () {
@@ -9,18 +9,20 @@
   dataService.filterWatchlist();
 };
 
-updatePeriodList();
-updateNamespaceList();
+vm.namespacesList = [];
+vm.periodList = [];
+debounce(updatePeriodList, 50)();
+debounce(updateNamespaceList, 50)();
 $rootScope.$on('$translateChangeSuccess', function () {
-  updatePeriodList();
-  updateNamespaceList();
+  debounce(updatePeriodList, 50)();
+  debounce(updateNamespaceList, 50)();
 });
 
 function updatePeriodList () {
   var hours = [0.5, 1, 1.5];
   var days = [2, 3, 7, 14, 21, 30];
 
-  vm.periodList = [];
+  vm.periodList.length = 0;
   var addItem = function (value) {
 return function (label) {
   vm.periodList.push({value: value, label: label})
@@ -41,11 +43,11 @@
 translateStrings.push(NS_ + list[i]);
   }
   $translate(translateStrings).then(function (translations) {
-vm.namespacesList = [];
+vm.namespacesList.length = 0;
 for (var i=0; ilist.length; i++) {
   vm.namespacesList.push({value: list[i], label: 
translations[translateStrings[i]]});
 }
-  })
+  });
 }
 
 vm.resetWatchlist = function () {

-- 
To view, visit https://gerrit.wikimedia.org/r/228569
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2b0211239b9007d45bc8e972ab87b0a071c66654
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix translation of select lists - change (labs...crosswatch)

2015-08-01 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix translation of select lists
..


Fix translation of select lists

Didn't properly translate in some cases due to that angular-translate
localstorage bug.

Change-Id: I2b0211239b9007d45bc8e972ab87b0a071c66654
---
M frontend/src/components/settings/settings.controller.js
1 file changed, 10 insertions(+), 8 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/components/settings/settings.controller.js 
b/frontend/src/components/settings/settings.controller.js
index 0cdf402..093ca96 100644
--- a/frontend/src/components/settings/settings.controller.js
+++ b/frontend/src/components/settings/settings.controller.js
@@ -1,7 +1,7 @@
 'use strict';
 
 angular.module('crosswatch')
-  .controller('SettingsCtrl', function ($translate, $log, dataService, 
$rootScope) {
+  .controller('SettingsCtrl', function ($translate, $log, dataService, 
$rootScope, debounce) {
 var vm = this;
 vm.config = dataService.config;
 vm.saveConfig = function () {
@@ -9,18 +9,20 @@
   dataService.filterWatchlist();
 };
 
-updatePeriodList();
-updateNamespaceList();
+vm.namespacesList = [];
+vm.periodList = [];
+debounce(updatePeriodList, 50)();
+debounce(updateNamespaceList, 50)();
 $rootScope.$on('$translateChangeSuccess', function () {
-  updatePeriodList();
-  updateNamespaceList();
+  debounce(updatePeriodList, 50)();
+  debounce(updateNamespaceList, 50)();
 });
 
 function updatePeriodList () {
   var hours = [0.5, 1, 1.5];
   var days = [2, 3, 7, 14, 21, 30];
 
-  vm.periodList = [];
+  vm.periodList.length = 0;
   var addItem = function (value) {
 return function (label) {
   vm.periodList.push({value: value, label: label})
@@ -41,11 +43,11 @@
 translateStrings.push(NS_ + list[i]);
   }
   $translate(translateStrings).then(function (translations) {
-vm.namespacesList = [];
+vm.namespacesList.length = 0;
 for (var i=0; ilist.length; i++) {
   vm.namespacesList.push({value: list[i], label: 
translations[translateStrings[i]]});
 }
-  })
+  });
 }
 
 vm.resetWatchlist = function () {

-- 
To view, visit https://gerrit.wikimedia.org/r/228569
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I2b0211239b9007d45bc8e972ab87b0a071c66654
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add translation file versioning - change (labs...crosswatch)

2015-08-01 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Add translation file versioning
..


Add translation file versioning

Tornado sometimes doesn't properly notice in some cases when a
translation file changed, adds a gulp task to rename to something
unique when the content changes so that it can be cached
indefinitely.

Change-Id: Idb0755ce974a23067aa5cb8ff73a3403578e122a
---
M frontend/gulp/build.js
M frontend/package.json
M frontend/src/app/translationProvider.js
3 files changed, 29 insertions(+), 3 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/gulp/build.js b/frontend/gulp/build.js
index c09312a..49bba0b 100644
--- a/frontend/gulp/build.js
+++ b/frontend/gulp/build.js
@@ -4,6 +4,7 @@
 var jsonAngularTranslate = require('./translate');
 
 var paths = gulp.paths;
+var i18nHash;
 
 var $ = require('gulp-load-plugins')({
   pattern: ['gulp-*', 'main-bower-files', 'uglify-save-license', 'del']
@@ -16,8 +17,23 @@
 .pipe($.size());
 });
 
-gulp.task('i18n', function () {
+gulp.task('i18n-hash', function () {
   return gulp.src('src/i18n/*.json')
+.pipe($.concat('i18n'))
+.pipe($.rev())
+.pipe($.util.buffer(function(err, files) {
+  i18nHash = '-' + files[0].revHash;
+}));
+});
+
+gulp.task('i18n', ['i18n-hash'], function () {
+  if(typeof i18nHash === 'undefined') {
+throw 'i18nHash is undefined';
+  }
+  return gulp.src('src/i18n/*.json')
+.pipe($.rename(function (path) {
+  path.basename += i18nHash;
+}))
 .pipe($.jsonlint())
 .pipe($.jsonlint.reporter())
 .pipe(gulp.dest(paths.dist + '/i18n'))
@@ -48,7 +64,11 @@
 .pipe(gulp.dest(paths.tmp + '/partials/'));
 });
 
-gulp.task('html', ['inject', 'partials'], function () {
+gulp.task('html', ['inject', 'partials', 'i18n-hash'], function () {
+  if(typeof i18nHash === 'undefined') {
+throw 'i18nHash is undefined';
+  }
+
   var partialsInjectFile = gulp.src(paths.tmp + 
'/partials/templateCacheHtml.js', { read: false });
   var partialsInjectOptions = {
 starttag: '!-- inject:partials --',
@@ -58,6 +78,7 @@
 
   var htmlFilter = $.filter('*.html');
   var jsFilter = $.filter('**/*.js');
+  var appFilter = $.filter('**/app-*.js');
   var cssFilter = $.filter('**/*.css');
   var assets;
 
@@ -65,6 +86,9 @@
 .pipe($.inject(partialsInjectFile, partialsInjectOptions))
 .pipe(assets = $.useref.assets())
 .pipe($.rev())
+.pipe(appFilter)
+.pipe($.replace('/* gulp:replace */ ; /* gulp:replace */', '' + 
i18nHash + ';'))
+.pipe(appFilter.restore())
 .pipe(jsFilter)
 .pipe($.ngAnnotate())
 .pipe($.uglify({preserveComments: $.uglifySaveLicense}))
diff --git a/frontend/package.json b/frontend/package.json
index e61d206..790d2f7 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -19,6 +19,7 @@
 gulp-concat: ^2.6.0,
 gulp-consolidate: ~0.1.2,
 gulp-csso: ~0.2.9,
+gulp-debug: ^2.0.1,
 gulp-filter: ~1.0.2,
 gulp-flatten: ~0.0.4,
 gulp-inject: ~1.0.2,
diff --git a/frontend/src/app/translationProvider.js 
b/frontend/src/app/translationProvider.js
index d3cd7a4..7221fc6 100644
--- a/frontend/src/app/translationProvider.js
+++ b/frontend/src/app/translationProvider.js
@@ -15,13 +15,14 @@
   }
 }
 
+var suffix = /* gulp:replace */ ; /* gulp:replace */
 $translateProvider
   .useSanitizeValueStrategy('sanitizeParameters')
   .useStorage('translateStorage')
   .addInterpolation('customInterpolation')
   .useStaticFilesLoader({
 prefix: 'i18n/',
-suffix: '.json'
+suffix: suffix + '.json'
   })
   .registerAvailableLanguageKeys(availableLangs, mappings)
   .determinePreferredLanguage()

-- 
To view, visit https://gerrit.wikimedia.org/r/228570
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Idb0755ce974a23067aa5cb8ff73a3403578e122a
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add translation file versioning - change (labs...crosswatch)

2015-08-01 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/228570

Change subject: Add translation file versioning
..

Add translation file versioning

Tornado sometimes doesn't properly notice in some cases when a
translation file changed, adds a gulp task to rename to something
unique when the content changes so that it can be cached
indefinitely.

Change-Id: Idb0755ce974a23067aa5cb8ff73a3403578e122a
---
M frontend/gulp/build.js
M frontend/package.json
M frontend/src/app/translationProvider.js
3 files changed, 29 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/70/228570/1

diff --git a/frontend/gulp/build.js b/frontend/gulp/build.js
index c09312a..49bba0b 100644
--- a/frontend/gulp/build.js
+++ b/frontend/gulp/build.js
@@ -4,6 +4,7 @@
 var jsonAngularTranslate = require('./translate');
 
 var paths = gulp.paths;
+var i18nHash;
 
 var $ = require('gulp-load-plugins')({
   pattern: ['gulp-*', 'main-bower-files', 'uglify-save-license', 'del']
@@ -16,8 +17,23 @@
 .pipe($.size());
 });
 
-gulp.task('i18n', function () {
+gulp.task('i18n-hash', function () {
   return gulp.src('src/i18n/*.json')
+.pipe($.concat('i18n'))
+.pipe($.rev())
+.pipe($.util.buffer(function(err, files) {
+  i18nHash = '-' + files[0].revHash;
+}));
+});
+
+gulp.task('i18n', ['i18n-hash'], function () {
+  if(typeof i18nHash === 'undefined') {
+throw 'i18nHash is undefined';
+  }
+  return gulp.src('src/i18n/*.json')
+.pipe($.rename(function (path) {
+  path.basename += i18nHash;
+}))
 .pipe($.jsonlint())
 .pipe($.jsonlint.reporter())
 .pipe(gulp.dest(paths.dist + '/i18n'))
@@ -48,7 +64,11 @@
 .pipe(gulp.dest(paths.tmp + '/partials/'));
 });
 
-gulp.task('html', ['inject', 'partials'], function () {
+gulp.task('html', ['inject', 'partials', 'i18n-hash'], function () {
+  if(typeof i18nHash === 'undefined') {
+throw 'i18nHash is undefined';
+  }
+
   var partialsInjectFile = gulp.src(paths.tmp + 
'/partials/templateCacheHtml.js', { read: false });
   var partialsInjectOptions = {
 starttag: '!-- inject:partials --',
@@ -58,6 +78,7 @@
 
   var htmlFilter = $.filter('*.html');
   var jsFilter = $.filter('**/*.js');
+  var appFilter = $.filter('**/app-*.js');
   var cssFilter = $.filter('**/*.css');
   var assets;
 
@@ -65,6 +86,9 @@
 .pipe($.inject(partialsInjectFile, partialsInjectOptions))
 .pipe(assets = $.useref.assets())
 .pipe($.rev())
+.pipe(appFilter)
+.pipe($.replace('/* gulp:replace */ ; /* gulp:replace */', '' + 
i18nHash + ';'))
+.pipe(appFilter.restore())
 .pipe(jsFilter)
 .pipe($.ngAnnotate())
 .pipe($.uglify({preserveComments: $.uglifySaveLicense}))
diff --git a/frontend/package.json b/frontend/package.json
index e61d206..790d2f7 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -19,6 +19,7 @@
 gulp-concat: ^2.6.0,
 gulp-consolidate: ~0.1.2,
 gulp-csso: ~0.2.9,
+gulp-debug: ^2.0.1,
 gulp-filter: ~1.0.2,
 gulp-flatten: ~0.0.4,
 gulp-inject: ~1.0.2,
diff --git a/frontend/src/app/translationProvider.js 
b/frontend/src/app/translationProvider.js
index d3cd7a4..7221fc6 100644
--- a/frontend/src/app/translationProvider.js
+++ b/frontend/src/app/translationProvider.js
@@ -15,13 +15,14 @@
   }
 }
 
+var suffix = /* gulp:replace */ ; /* gulp:replace */
 $translateProvider
   .useSanitizeValueStrategy('sanitizeParameters')
   .useStorage('translateStorage')
   .addInterpolation('customInterpolation')
   .useStaticFilesLoader({
 prefix: 'i18n/',
-suffix: '.json'
+suffix: suffix + '.json'
   })
   .registerAvailableLanguageKeys(availableLangs, mappings)
   .determinePreferredLanguage()

-- 
To view, visit https://gerrit.wikimedia.org/r/228570
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Idb0755ce974a23067aa5cb8ff73a3403578e122a
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add more de transations - change (labs...crosswatch)

2015-08-01 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/228568

Change subject: Add more de transations
..

Add more de transations

Change-Id: Ib68afeefd85002caad35c1eb0713dce505677b1f
---
M frontend/src/i18n/de.json
1 file changed, 39 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/68/228568/1

diff --git a/frontend/src/i18n/de.json b/frontend/src/i18n/de.json
index ed70f8d..b152201 100644
--- a/frontend/src/i18n/de.json
+++ b/frontend/src/i18n/de.json
@@ -11,9 +11,19 @@
   MINOREDIT_FLAG: K,
   BOTEDIT_FLAG: B,
   NEWPAGE_FLAG: N,
+  PREFERENCES: Einstellungen,
+  FILTER: Filter,
+  WIKIS: Wikis,
   LASTREVONLY: Zeige nur die letzte Änderung pro Seite,
   SHOW_LAST_HOURS: Zeige letzte {{number}} Stunden,
   SHOW_LAST_DAYS: Zeige letzte {{number}} Tage,
+  MINOR_EDITS: Kleine Änderungen,
+  BOT_EDITS: Bots,
+  ANON_EDITS: Unangemeldeten Benutzer,
+  USER_EDITS: Registrierte Benutzern,
+  FLAGS: Zeige Flaggen anstelle des Names der Sprache,
+  WATCHLIST: Beobachtungsliste,
+  SEARCH_WATCHLIST: Beobachtungsliste durchsuchen,
   LOGEVENT_DELETE_DELETE: user löschte Seite page,
   LOGEVENT_DELETE_REVISION: user änderte die Sichtbarkeit von Versionen 
der Seite page,
   LOGEVENT_DELETE_RESTORE: user stellte Seite page wieder her,
@@ -36,5 +46,33 @@
   LOGEVENT_NEWUSERS_CREATE: Benutzerkonto user name={{title}} wurde 
erstellt,
   LOGEVENT_NEWUSERS_CREATE2: Benutzerkonto user name={{title}} wurde von 
user erstellt,
   LOGEVENT_NEWUSERS_BYEMAIL: Benutzerkonto user name={{title}} wurde von 
user erstellt und das Passwort wurde per E-Mail zugesandt,
-  LOGEVENT_RENAMEUSER: user hat user name={{olduser}} (mit {{edits}} 
Bearbeitungen) nach user name={{newuser}} umbennant
+  LOGEVENT_RENAMEUSER: user hat user name={{olduser}} (mit {{edits}} 
Bearbeitungen) nach user name={{newuser}} umbennant,
+  NAMESPACES: Namesräume,
+  NS_0:  Artikel,
+  NS_1:  Diskussion,
+  NS_2:  Benutzer,
+  NS_3:  Benutzer Diskussion,
+  NS_4:  Portal,
+  NS_5:  Portal Diskussion,
+  NS_6:  Datei,
+  NS_7:  Datei Diskussion,
+  NS_10: Vorlage,
+  NS_11: Vorlage Diskussion,
+  NS_12: Hilfe,
+  NS_13: Hilfe Diskussion,
+  NS_OTHER: andere Namesräume,
+  HISTORY: Versionen,
+  CONTRIBS: Beiträge,
+  ONELINE: Traditionelles Beobachtungslisten Layout,
+  NOTIFICATIONS: Benachrichtigungen,
+  MARKALLREAD: alle als gelesen markieren,
+  STYLE: Stil,
+  HIDEOWNEDITS: Eigene Bearbeitungen in der Beobachtungsliste ausblenden,
+  EDIT: Diese Seite ein einem neuen Tab bearbeiten,
+  UNDO: Diese Änderung rückgängig machen, öffnet Vorschau in einem neuen 
Tab,
+  WATCHLIST_REMOVE: Diese Seite von der Beobachtungsliste entfernen,
+  WATCHLIST_ADD: Diese Seite zu meiner Beobachtungsliste hinzufügen,
+  ORES_OPTION: Zeige Versionsänderungen für ORES vorhergesagten Reverts,
+  PENDING_EDITS: sichten,
+  FLAGGEDREVS_OPTION: Zeige Versionsänderungen für ungesichtete 
Bearbeitungen
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/228568
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib68afeefd85002caad35c1eb0713dce505677b1f
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Don't text-transform uppercase navbar buttons - change (labs...crosswatch)

2015-07-31 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/228286

Change subject: Don't text-transform uppercase navbar buttons
..

Don't text-transform uppercase navbar buttons

Change-Id: Ib499e8d23e7ea4fa6809df9b09c846ad2d0911b8
---
M frontend/src/app/index.css
M frontend/src/components/navbar/navbar.html
2 files changed, 11 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/86/228286/1

diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 102a6ee..bbc9afd 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -119,6 +119,10 @@
   color:#777
 }
 
+.nouppercase {
+  text-transform: none;
+}
+
 .whitebox {
   background-color: white;
   width: 100%;
diff --git a/frontend/src/components/navbar/navbar.html 
b/frontend/src/components/navbar/navbar.html
index 52eeeae..e632977 100644
--- a/frontend/src/components/navbar/navbar.html
+++ b/frontend/src/components/navbar/navbar.html
@@ -4,19 +4,19 @@
  ng-change=ctrl.changeLanguage(ctrl.selectedLang)
 md-option ng-repeat=lang in ctrl.langs 
value={{lang.key}}{{lang.language}}/md-option
   /md-select
-  md-button href=https://meta.wikimedia.org/wiki/Crosswatch; target=_blank 
class=md-flat
-{{'DOCUMENTATION' | translate}}
-  /md-button
-  md-button href=https://meta.wikimedia.org/wiki/Talk:Crosswatch; 
target=_blank class=md-flat
+  md-button href=https://meta.wikimedia.org/wiki/Talk:Crosswatch; 
target=_blank class=md-flat nouppercase
 {{'TALK' | translate}}
   /md-button
-  md-button href=https://phabricator.wikimedia.org/project/view/1224/; 
target=_blank class=md-flat
+  md-button href=https://meta.wikimedia.org/wiki/Crosswatch; target=_blank 
class=md-flat nouppercase
+{{'DOCUMENTATION' | translate}}
+  /md-button
+  md-button href=https://phabricator.wikimedia.org/project/view/1224/; 
target=_blank class=md-flat nouppercase
 {{'REPORT_BUGS' | translate}}
   /md-button
-  md-button href=login target=_self class=md-flat 
ng-hide=ctrl.loggedin
+  md-button href=login target=_self class=md-flat nouppercase 
ng-hide=ctrl.loggedin
 {{'SIGN_IN' | translate}}
   /md-button
-  md-button href=logout target=_self class=md-flat 
ng-show=ctrl.loggedin
+  md-button href=logout target=_self class=md-flat nouppercase 
ng-show=ctrl.loggedin
 {{'SIGN_OUT' | translate}}
   /md-button
 /md-toolbar

-- 
To view, visit https://gerrit.wikimedia.org/r/228286
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib499e8d23e7ea4fa6809df9b09c846ad2d0911b8
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix connectionerror handler - change (labs...crosswatch)

2015-07-31 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/228287

Change subject: Fix connectionerror handler
..

Fix connectionerror handler

Change-Id: Ib810d83a96a0414012f606b3143efe27260e4910
---
M frontend/src/app/runBlock.js
1 file changed, 1 insertion(+), 9 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/87/228287/1

diff --git a/frontend/src/app/runBlock.js b/frontend/src/app/runBlock.js
index 3edfb6a..287e064 100644
--- a/frontend/src/app/runBlock.js
+++ b/frontend/src/app/runBlock.js
@@ -32,20 +32,12 @@
   amMoment.changeLocale(lang);
 
   /**
-   * Query watchlist on login.
-   * Not part of authService to prevent circular dependency.
-   */
-  $rootScope.$on('login', function () {
-dataService.queryWatchlist();
-$timeout(errorHandler, 1); // show error if no response after 10 secs
-  });
-
-  /**
* If logged in before sockjs connected, query watchlist again.
*/
   socket.setHandler('open', function () {
 $log.info('sockjs connected');
 dataService.queryWatchlist();
+$timeout(errorHandler, 15000); // show error if no response after 15 secs
   });
 
   /**

-- 
To view, visit https://gerrit.wikimedia.org/r/228287
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib810d83a96a0414012f606b3143efe27260e4910
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Don't text-transform uppercase navbar buttons - change (labs...crosswatch)

2015-07-31 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Don't text-transform uppercase navbar buttons
..


Don't text-transform uppercase navbar buttons

Change-Id: Ib499e8d23e7ea4fa6809df9b09c846ad2d0911b8
---
M frontend/src/app/index.css
M frontend/src/components/navbar/navbar.html
2 files changed, 11 insertions(+), 7 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 102a6ee..bbc9afd 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -119,6 +119,10 @@
   color:#777
 }
 
+.nouppercase {
+  text-transform: none;
+}
+
 .whitebox {
   background-color: white;
   width: 100%;
diff --git a/frontend/src/components/navbar/navbar.html 
b/frontend/src/components/navbar/navbar.html
index 52eeeae..e632977 100644
--- a/frontend/src/components/navbar/navbar.html
+++ b/frontend/src/components/navbar/navbar.html
@@ -4,19 +4,19 @@
  ng-change=ctrl.changeLanguage(ctrl.selectedLang)
 md-option ng-repeat=lang in ctrl.langs 
value={{lang.key}}{{lang.language}}/md-option
   /md-select
-  md-button href=https://meta.wikimedia.org/wiki/Crosswatch; target=_blank 
class=md-flat
-{{'DOCUMENTATION' | translate}}
-  /md-button
-  md-button href=https://meta.wikimedia.org/wiki/Talk:Crosswatch; 
target=_blank class=md-flat
+  md-button href=https://meta.wikimedia.org/wiki/Talk:Crosswatch; 
target=_blank class=md-flat nouppercase
 {{'TALK' | translate}}
   /md-button
-  md-button href=https://phabricator.wikimedia.org/project/view/1224/; 
target=_blank class=md-flat
+  md-button href=https://meta.wikimedia.org/wiki/Crosswatch; target=_blank 
class=md-flat nouppercase
+{{'DOCUMENTATION' | translate}}
+  /md-button
+  md-button href=https://phabricator.wikimedia.org/project/view/1224/; 
target=_blank class=md-flat nouppercase
 {{'REPORT_BUGS' | translate}}
   /md-button
-  md-button href=login target=_self class=md-flat 
ng-hide=ctrl.loggedin
+  md-button href=login target=_self class=md-flat nouppercase 
ng-hide=ctrl.loggedin
 {{'SIGN_IN' | translate}}
   /md-button
-  md-button href=logout target=_self class=md-flat 
ng-show=ctrl.loggedin
+  md-button href=logout target=_self class=md-flat nouppercase 
ng-show=ctrl.loggedin
 {{'SIGN_OUT' | translate}}
   /md-button
 /md-toolbar

-- 
To view, visit https://gerrit.wikimedia.org/r/228286
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib499e8d23e7ea4fa6809df9b09c846ad2d0911b8
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix connectionerror handler - change (labs...crosswatch)

2015-07-31 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix connectionerror handler
..


Fix connectionerror handler

Change-Id: Ib810d83a96a0414012f606b3143efe27260e4910
---
M frontend/src/app/runBlock.js
1 file changed, 1 insertion(+), 9 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/app/runBlock.js b/frontend/src/app/runBlock.js
index 3edfb6a..287e064 100644
--- a/frontend/src/app/runBlock.js
+++ b/frontend/src/app/runBlock.js
@@ -32,20 +32,12 @@
   amMoment.changeLocale(lang);
 
   /**
-   * Query watchlist on login.
-   * Not part of authService to prevent circular dependency.
-   */
-  $rootScope.$on('login', function () {
-dataService.queryWatchlist();
-$timeout(errorHandler, 1); // show error if no response after 10 secs
-  });
-
-  /**
* If logged in before sockjs connected, query watchlist again.
*/
   socket.setHandler('open', function () {
 $log.info('sockjs connected');
 dataService.queryWatchlist();
+$timeout(errorHandler, 15000); // show error if no response after 15 secs
   });
 
   /**

-- 
To view, visit https://gerrit.wikimedia.org/r/228287
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib810d83a96a0414012f606b3143efe27260e4910
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add FlaggedRevs support - change (labs...crosswatch)

2015-07-31 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Add FlaggedRevs support
..


Add FlaggedRevs support

Checks if a page needs review for wikis which have FlaggedRevs.
If so and the user has review right the diff and link to review
the changes is shown. Adds option to not automatically show diff
for unreviewed edits.

Bug: T101456
Change-Id: Ic373e0666267e2a1bf953b7bdf4b9a63621a8c7a
---
M backend/celery/api.py
M backend/celery/tasks.py
M frontend/src/app/runBlock.js
M frontend/src/app/services.js
M frontend/src/components/settings/settings.html
M frontend/src/components/watchlist/entry.directive.html
M frontend/src/i18n/en.json
M frontend/src/i18n/qqq.json
8 files changed, 126 insertions(+), 13 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/celery/api.py b/backend/celery/api.py
index d738c1b..6466f2d 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -4,6 +4,7 @@
 from __future__ import absolute_import
 from __future__ import unicode_literals
 
+from collections import namedtuple
 import requests
 from requests_oauthlib import OAuth1
 from redis import StrictRedis
@@ -83,7 +84,9 @@
 def query(self, params):
 params['format'] = json
 response = requests.get(self.api_url, params=params, auth=self.auth,
-headers=self.headers).json()
+headers=self.headers)
+response.raise_for_status()
+response = response.json()
 
 self._handle_response(response)
 return response
@@ -121,14 +124,32 @@
 token = r['query']['tokens'][type + 'token']
 return token
 
-def username(self):
+def user_info(self):
 params = {
 'action': query,
 'meta': userinfo,
+'uiprop': rights
 }
 response = self.query(params)
-username = response['query']['userinfo']['name']
-return username
+response = response['query']['userinfo']
+User = namedtuple('user', ['name', 'rights'])
+user = User(response['name'], response['rights'])
+return user
+
+def user_rights(self, username):
+
+User rights for a given username
+:param username:
+:return: list of rights
+
+params = {
+'action': query,
+'list': users,
+'usprop': rights,
+'ususers': username
+}
+response = self.query(params)
+return response['query']['users'][0]['rights']
 
 def diff(self, pageid, old_revid, new_revid):
 params = {
@@ -161,6 +182,8 @@
 params = {'action': sitematrix}
 data = self.query(params)
 
+flaggedrevs_wikis = self._flaggedrevs_wikis()
+
 wikis = {}
 for key, val in data['sitematrix'].items():
 if key == 'count':
@@ -169,10 +192,14 @@
 if 'code' in val:
 for site in val['site']:
 wiki = self._create_wiki(site, val['code'], val['name'])
+if site['dbname'] in flaggedrevs_wikis:
+wiki['flaggedrevs'] = True
 wikis[site['dbname']] = wiki
 else:
 for site in val:
 wiki = self._create_wiki(site, '', '')
+if site['dbname'] in flaggedrevs_wikis:
+wiki['flaggedrevs'] = True
 wikis[site['dbname']] = wiki
 return wikis
 
@@ -192,6 +219,13 @@
 wiki['closed'] = True
 return wiki
 
+def _flaggedrevs_wikis(self):
+url = https://noc.wikimedia.org/conf/flaggedrevs.dblist;
+response = requests.get(url, headers=self.headers)
+response.raise_for_status()
+
+return response.text.splitlines()
+
 def ores_context_exists(self, dbname, model='reverted', cached=True):
 Checks if ORES context for a wiki exists
 key = config.redis_prefix + 'ores' + model
diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index 489b3fd..52722db 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -27,6 +27,7 @@
 mw = MediaWiki(redis_channel=redis_channel)
 mw.publish({'msgtype': canary})
 
+
 @app.task
 def initial_task(**kwargs):
 
@@ -38,13 +39,13 @@
 redis_channel = kwargs.get('redis_channel', None)
 
 mw = MediaWiki(access_token=access_token, redis_channel=redis_channel)
-username = mw.username()
+username = mw.user_info().name
 wikis = mw.wikis()
 
 # Use cache of known projects to bypass sometimes blocking mysql check
 for project in preload_projects:
 wiki = wikis[project]
-watchlistgetter.delay(wiki=wiki, **kwargs)
+watchlistgetter.delay(wiki=wiki, username=username, **kwargs)
 notificationgetter.delay(wiki=wiki, **kwargs)
 
 db = 

[MediaWiki-commits] [Gerrit] Add FlaggedRevs support - change (labs...crosswatch)

2015-07-31 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/228212

Change subject: Add FlaggedRevs support
..

Add FlaggedRevs support

Checks if a page needs review for wikis which have FlaggedRevs.
If so and the user has review right the diff and link to review
the changes is shown. Adds option to not automatically show diff
for unreviewed edits.

Bug: T101456
Change-Id: Ic373e0666267e2a1bf953b7bdf4b9a63621a8c7a
---
M backend/celery/api.py
M backend/celery/tasks.py
M frontend/src/app/runBlock.js
M frontend/src/app/services.js
M frontend/src/components/settings/settings.html
M frontend/src/components/watchlist/entry.directive.html
M frontend/src/i18n/en.json
M frontend/src/i18n/qqq.json
8 files changed, 124 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/12/228212/1

diff --git a/backend/celery/api.py b/backend/celery/api.py
index d738c1b..6466f2d 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -4,6 +4,7 @@
 from __future__ import absolute_import
 from __future__ import unicode_literals
 
+from collections import namedtuple
 import requests
 from requests_oauthlib import OAuth1
 from redis import StrictRedis
@@ -83,7 +84,9 @@
 def query(self, params):
 params['format'] = json
 response = requests.get(self.api_url, params=params, auth=self.auth,
-headers=self.headers).json()
+headers=self.headers)
+response.raise_for_status()
+response = response.json()
 
 self._handle_response(response)
 return response
@@ -121,14 +124,32 @@
 token = r['query']['tokens'][type + 'token']
 return token
 
-def username(self):
+def user_info(self):
 params = {
 'action': query,
 'meta': userinfo,
+'uiprop': rights
 }
 response = self.query(params)
-username = response['query']['userinfo']['name']
-return username
+response = response['query']['userinfo']
+User = namedtuple('user', ['name', 'rights'])
+user = User(response['name'], response['rights'])
+return user
+
+def user_rights(self, username):
+
+User rights for a given username
+:param username:
+:return: list of rights
+
+params = {
+'action': query,
+'list': users,
+'usprop': rights,
+'ususers': username
+}
+response = self.query(params)
+return response['query']['users'][0]['rights']
 
 def diff(self, pageid, old_revid, new_revid):
 params = {
@@ -161,6 +182,8 @@
 params = {'action': sitematrix}
 data = self.query(params)
 
+flaggedrevs_wikis = self._flaggedrevs_wikis()
+
 wikis = {}
 for key, val in data['sitematrix'].items():
 if key == 'count':
@@ -169,10 +192,14 @@
 if 'code' in val:
 for site in val['site']:
 wiki = self._create_wiki(site, val['code'], val['name'])
+if site['dbname'] in flaggedrevs_wikis:
+wiki['flaggedrevs'] = True
 wikis[site['dbname']] = wiki
 else:
 for site in val:
 wiki = self._create_wiki(site, '', '')
+if site['dbname'] in flaggedrevs_wikis:
+wiki['flaggedrevs'] = True
 wikis[site['dbname']] = wiki
 return wikis
 
@@ -192,6 +219,13 @@
 wiki['closed'] = True
 return wiki
 
+def _flaggedrevs_wikis(self):
+url = https://noc.wikimedia.org/conf/flaggedrevs.dblist;
+response = requests.get(url, headers=self.headers)
+response.raise_for_status()
+
+return response.text.splitlines()
+
 def ores_context_exists(self, dbname, model='reverted', cached=True):
 Checks if ORES context for a wiki exists
 key = config.redis_prefix + 'ores' + model
diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index 489b3fd..52722db 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -27,6 +27,7 @@
 mw = MediaWiki(redis_channel=redis_channel)
 mw.publish({'msgtype': canary})
 
+
 @app.task
 def initial_task(**kwargs):
 
@@ -38,13 +39,13 @@
 redis_channel = kwargs.get('redis_channel', None)
 
 mw = MediaWiki(access_token=access_token, redis_channel=redis_channel)
-username = mw.username()
+username = mw.user_info().name
 wikis = mw.wikis()
 
 # Use cache of known projects to bypass sometimes blocking mysql check
 for project in preload_projects:
 wiki = wikis[project]
-watchlistgetter.delay(wiki=wiki, **kwargs)
+watchlistgetter.delay(wiki=wiki, username=username, **kwargs)
  

[MediaWiki-commits] [Gerrit] Fix logevents for pagetranslation - change (labs...crosswatch)

2015-07-28 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix logevents for pagetranslation
..


Fix logevents for pagetranslation

Add i18n logevent strings for pagetranslation, fix error handling
when logtype/logaction not recognized.

Change-Id: Iddfe60d9e4c0c22869653613d0e11e4d4a902a9d
---
M frontend/src/components/watchlist/logevent.directive.html
M frontend/src/i18n/en.json
2 files changed, 20 insertions(+), 8 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/components/watchlist/logevent.directive.html 
b/frontend/src/components/watchlist/logevent.directive.html
index 415c966..5e4a762 100644
--- a/frontend/src/components/watchlist/logevent.directive.html
+++ b/frontend/src/components/watchlist/logevent.directive.html
@@ -4,7 +4,7 @@
 span ng-switch-when=delete translate=LOGEVENT_DELETE_DELETE 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=restore translate=LOGEVENT_DELETE_RESTORE 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=revision translate=LOGEVENT_DELETE_REVISION 
translate-values=event translate-interpolation=custom 
translate-compile/span
-span ng-switch-default{{event}}/span !-- debug fallback --
+span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
   /span
 /span
 span ng-switch-when=protect
@@ -13,7 +13,7 @@
 span ng-switch-when=move_prot translate=LOGEVENT_PROTECT_MOVE 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=protect translate=LOGEVENT_PROTECT_PROTECT 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=unprotect translate=LOGEVENT_PROTECT_UNPROTECT 
translate-values=event translate-interpolation=custom 
translate-compile/span
-span ng-switch-default{{event}}/span !-- debug fallback --
+span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
   /span
 /span
 span ng-switch-when=move
@@ -24,15 +24,15 @@
 span ng-switch-when=block translate=LOGEVENT_BLOCK_BLOCK 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=reblock translate=LOGEVENT_BLOCK_REBLOCK 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=unblock translate=LOGEVENT_BLOCK_UNBLOCK 
translate-values=event translate-interpolation=custom 
translate-compile/span
-span ng-switch-default{{event}}/span !-- debug fallback --
+span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
   /span
 /span
 span ng-switch-when=rights
   span ng-switch=::event.logaction
 span ng-switch-when=autopromote translate=LOGEVENT_RIGHTS_AUTOPROMOTE 
translate-values=event translate-interpolation=custom 
translate-compile/span
-span ng-switch-when=erevoke{{::event}} !-- TODO, seems to be unused 
by WMF --/span
+span ng-switch-when=erevokecode{{event}}/code !-- TODO, seems to 
be unused by WMF --/span
 span ng-switch-when=rights translate=LOGEVENT_RIGHTS_RIGHTS 
translate-values=event translate-interpolation=custom 
translate-compile/span
-span ng-switch-default{{event}}/span !-- debug fallback --
+span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
   /span
 /span
 span ng-switch-when=upload
@@ -40,14 +40,14 @@
 span ng-switch-when=overwrite translate=LOGEVENT_UPLOAD_OVERWRITE 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=revert translate=LOGEVENT_UPLOAD_REVERT 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=upload translate=LOGEVENT_UPLOAD_UPLOAD 
translate-values=event translate-interpolation=custom 
translate-compile/span
-span ng-switch-default{{event}}/span !-- debug fallback --
+span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
   /span
 /span
 span ng-switch-when=import
   span ng-switch=::event.logaction
 span ng-switch-when=interwiki translate=LOGEVENT_IMPORT_INTERWIKI 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=upload translate=LOGEVENT_IMPORT_UPLOAD 
translate-values=event translate-interpolation=custom 
translate-compile/span
-span ng-switch-default{{event}}/span !-- debug fallback --
+span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
   /span
 /span
 span ng-switch-when=merge
@@ -58,11 +58,20 @@
 span ng-switch-when=create translate=LOGEVENT_NEWUSERS_CREATE 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=create2 translate=LOGEVENT_NEWUSERS_CREATE2 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=byemail 

[MediaWiki-commits] [Gerrit] Add ORES support - change (labs...crosswatch)

2015-07-28 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Add ORES support
..


Add ORES support

Automatically show diff, if ORES predicts that the edit will be
reverted and the edit was not already reverted.
Adds option to turn ORES off.

Bug: T106727
Change-Id: I346655e8b696529ce771bfac57e51a67507a7b47
---
M backend/celery/api.py
M backend/celery/tasks.py
M frontend/src/app/index.css
M frontend/src/app/runBlock.js
M frontend/src/app/services.js
M frontend/src/components/settings/settings.html
M frontend/src/components/watchlist/entry.directive.html
M frontend/src/i18n/en.json
M frontend/src/i18n/qqq.json
M setup.py
10 files changed, 177 insertions(+), 31 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/celery/api.py b/backend/celery/api.py
index 7a4870f..d738c1b 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -10,6 +10,9 @@
 import json
 from datetime import datetime, timedelta
 
+from mw.api import Session as RevertsSession
+from mw.lib.reverts import api as reverts
+
 from .. import config
 from . import logger
 
@@ -19,10 +22,10 @@
  access_token=None, redis_channel=None):
 self.api_url = host + path
 
-user_agent = crosswatch (https://tools.wmflabs.org/crosswatch;; +\
+self.user_agent = crosswatch (https://tools.wmflabs.org/crosswatch;; 
+\
 crosswa...@tools.wmflabs.org) python-requests/ +\
 requests.__version__
-self.headers = {'User-Agent': user_agent}
+self.headers = {'User-Agent': self.user_agent}
 
 if access_token:
 # Construct an auth object with the consumer and access tokens
@@ -41,6 +44,7 @@
 db=config.redis_db,
 decode_responses=True
 )
+self.ores_url = 'http://ores.wmflabs.org/scores'
 
 def publish(self, message):
 if not self.redis_channel:
@@ -187,3 +191,51 @@
 if any([key in site for key in inactive_wikis]):
 wiki['closed'] = True
 return wiki
+
+def ores_context_exists(self, dbname, model='reverted', cached=True):
+Checks if ORES context for a wiki exists
+key = config.redis_prefix + 'ores' + model
+if not self.redis.exists(key) or not cached:
+self._ores_contexts(model)
+return self.redis.sismember(key, dbname)
+
+def _ores_contexts(self, model):
+Fill cache
+pipe = self.redis.pipeline()
+key = config.redis_prefix + 'ores' + model
+pipe.delete(key)
+
+contexts = requests.get(self.ores_url, headers=self.headers)
+contexts.raise_for_status()
+contexts = contexts.json()['contexts']
+
+for context in contexts:
+models = requests.get('{}/{}/'.format(self.ores_url, context),
+  headers=self.headers)
+models.raise_for_status()
+models = models.json()['models']
+
+if model in models:
+pipe.sadd(key, context)
+pipe.expire(key, 172800)  # 2 days exp.
+pipe.execute()
+
+def ores_scores(self, dbname, revids, model='reverted'):
+Get ORES scores for revision ids
+url = '{}/{}/{}/'.format(self.ores_url, dbname, model)
+
+revids = '|'.join([str(id) for id in revids])
+params = {'revids': revids}
+
+response = requests.get(url, params=params, headers=self.headers)
+response.raise_for_status()
+
+return response.json()
+
+def was_reverted(self, revision):
+
+Checks if a revision was reverted
+:param revision: a revision dict containing ‘revid’ and ‘pageid’
+
+session = RevertsSession(self.api_url, user_agent=self.user_agent)
+return reverts.check_rev(session, revision)
\ No newline at end of file
diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index 5c2ab90..489b3fd 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -116,10 +116,10 @@
 redis_channel = kwargs['redis_channel']
 watchlistperiod = kwargs.get('watchlistperiod', False)
 allrev = kwargs.get('allrev', False)
-
-mw = MediaWiki(host=wiki['url'], access_token=access_token, 
+
+mw = MediaWiki(host=wiki['url'], access_token=access_token,
redis_channel=redis_channel)
-
+
 if watchlistperiod:
 days = float(watchlistperiod)
 else:
@@ -163,8 +163,12 @@
 'msgtype': 'watchlist',
 'entires': items
 }
-if items:
-mw.publish(message)
+if not items:
+return
+mw.publish(message)
+
+if mw.ores_context_exists(wiki['dbname']):
+ores.delay(items, **kwargs)
 
 
 @app.task
@@ -173,8 +177,8 @@
 wiki = kwargs['wiki']
 access_token = kwargs['access_token']
 redis_channel = kwargs['redis_channel']
-
-

[MediaWiki-commits] [Gerrit] Fix logevents for pagetranslation - change (labs...crosswatch)

2015-07-28 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/227600

Change subject: Fix logevents for pagetranslation
..

Fix logevents for pagetranslation

Add i18n logevent strings for pagetranslation, fix error handling
when logtype/logaction not recognized.

Change-Id: Iddfe60d9e4c0c22869653613d0e11e4d4a902a9d
---
M frontend/src/components/watchlist/logevent.directive.html
M frontend/src/i18n/en.json
2 files changed, 20 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/00/227600/1

diff --git a/frontend/src/components/watchlist/logevent.directive.html 
b/frontend/src/components/watchlist/logevent.directive.html
index 415c966..5e4a762 100644
--- a/frontend/src/components/watchlist/logevent.directive.html
+++ b/frontend/src/components/watchlist/logevent.directive.html
@@ -4,7 +4,7 @@
 span ng-switch-when=delete translate=LOGEVENT_DELETE_DELETE 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=restore translate=LOGEVENT_DELETE_RESTORE 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=revision translate=LOGEVENT_DELETE_REVISION 
translate-values=event translate-interpolation=custom 
translate-compile/span
-span ng-switch-default{{event}}/span !-- debug fallback --
+span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
   /span
 /span
 span ng-switch-when=protect
@@ -13,7 +13,7 @@
 span ng-switch-when=move_prot translate=LOGEVENT_PROTECT_MOVE 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=protect translate=LOGEVENT_PROTECT_PROTECT 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=unprotect translate=LOGEVENT_PROTECT_UNPROTECT 
translate-values=event translate-interpolation=custom 
translate-compile/span
-span ng-switch-default{{event}}/span !-- debug fallback --
+span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
   /span
 /span
 span ng-switch-when=move
@@ -24,15 +24,15 @@
 span ng-switch-when=block translate=LOGEVENT_BLOCK_BLOCK 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=reblock translate=LOGEVENT_BLOCK_REBLOCK 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=unblock translate=LOGEVENT_BLOCK_UNBLOCK 
translate-values=event translate-interpolation=custom 
translate-compile/span
-span ng-switch-default{{event}}/span !-- debug fallback --
+span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
   /span
 /span
 span ng-switch-when=rights
   span ng-switch=::event.logaction
 span ng-switch-when=autopromote translate=LOGEVENT_RIGHTS_AUTOPROMOTE 
translate-values=event translate-interpolation=custom 
translate-compile/span
-span ng-switch-when=erevoke{{::event}} !-- TODO, seems to be unused 
by WMF --/span
+span ng-switch-when=erevokecode{{event}}/code !-- TODO, seems to 
be unused by WMF --/span
 span ng-switch-when=rights translate=LOGEVENT_RIGHTS_RIGHTS 
translate-values=event translate-interpolation=custom 
translate-compile/span
-span ng-switch-default{{event}}/span !-- debug fallback --
+span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
   /span
 /span
 span ng-switch-when=upload
@@ -40,14 +40,14 @@
 span ng-switch-when=overwrite translate=LOGEVENT_UPLOAD_OVERWRITE 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=revert translate=LOGEVENT_UPLOAD_REVERT 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=upload translate=LOGEVENT_UPLOAD_UPLOAD 
translate-values=event translate-interpolation=custom 
translate-compile/span
-span ng-switch-default{{event}}/span !-- debug fallback --
+span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
   /span
 /span
 span ng-switch-when=import
   span ng-switch=::event.logaction
 span ng-switch-when=interwiki translate=LOGEVENT_IMPORT_INTERWIKI 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=upload translate=LOGEVENT_IMPORT_UPLOAD 
translate-values=event translate-interpolation=custom 
translate-compile/span
-span ng-switch-default{{event}}/span !-- debug fallback --
+span ng-switch-defaultcode{{event}}/code/span !-- debug fallback 
--
   /span
 /span
 span ng-switch-when=merge
@@ -58,11 +58,20 @@
 span ng-switch-when=create translate=LOGEVENT_NEWUSERS_CREATE 
translate-values=event translate-interpolation=custom 
translate-compile/span
 span ng-switch-when=create2 translate=LOGEVENT_NEWUSERS_CREATE2 
translate-values=event translate-interpolation=custom 

[MediaWiki-commits] [Gerrit] Switch to python 3 - change (labs...crosswatch)

2015-07-26 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/227164

Change subject: Switch to python 3
..

Switch to python 3

\o/ gevent added python 3 support two weeks ago.

The switch is needed for mediawiki-utilities to check if a
revision was reverted.

Change-Id: I1c49eb7b3c68be860cf6a4a0ee3713a3f244bae2
---
M backend/celery/api.py
M backend/celery/tasks.py
M backend/server/__init__.py
M backend/server/flask_mwoauth/__init__.py
M scripts/celery.grid.sh
M setup.py
6 files changed, 40 insertions(+), 47 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/64/227164/1

diff --git a/backend/celery/api.py b/backend/celery/api.py
index fb6146d..7a4870f 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -38,7 +38,8 @@
 self.redis = StrictRedis(
 host=config.redis_server,
 port=config.redis_port,
-db=config.redis_db
+db=config.redis_db,
+decode_responses=True
 )
 
 def publish(self, message):
diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index 6afd300..5c2ab90 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -4,6 +4,7 @@
 # Copyright (C) 2015 Jan Lebert
 from __future__ import absolute_import
 from __future__ import unicode_literals
+from builtins import range
 
 from uuid import uuid4
 from contextlib import closing
@@ -16,7 +17,7 @@
 
 def chunks(l, n):
 Yield successive n-sized chunks from l.
-for i in xrange(0, len(l), n):
+for i in range(0, len(l), n):
 yield l[i:i+n]
 
 
@@ -49,7 +50,8 @@
 db = MySQLdb.connect(
 host='centralauth.labsdb',
 user=config.sql_user,
-passwd=config.sql_passwd
+passwd=config.sql_passwd,
+charset='utf8'
 )
 
 projects = []
@@ -57,7 +59,7 @@
 cur.execute(SELECT lu_wiki FROM centralauth_p.localuser WHERE 
lu_name=%s;, [username])  # NOQA
 result = cur.fetchall()
 for row in result:
-project = row[0]
+project = row[0].decode(utf-8)
 try:
 wiki = wikis[project]
 if 'closed' not in wiki and project not in preload_projects:
@@ -84,7 +86,8 @@
 db = MySQLdb.connect(
 host='s4.labsdb',
 user=config.sql_user,
-passwd=config.sql_passwd
+passwd=config.sql_passwd,
+charset='utf8'
 )
 with closing(db.cursor()) as cur:
 for wiki in project_chunk:
@@ -221,7 +224,7 @@
 mw = MediaWiki(access_token=access_token, redis_channel=redis_channel)
 wikis = mw.wikis()
 
-for project, notifications in notifications.iteritems():
+for project, notifications in notifications.items():
 projecturl = wikis[project]['url']
 mw = MediaWiki(host=projecturl, access_token=access_token,
redis_channel=redis_channel)
diff --git a/backend/server/__init__.py b/backend/server/__init__.py
index 185ecd2..7264fe6 100644
--- a/backend/server/__init__.py
+++ b/backend/server/__init__.py
@@ -69,7 +69,7 @@
 
 
 def run(port):
-logging.basicConfig(level=logging.DEBUG,
+logging.basicConfig(level=logging.INFO,
 format='%(asctime)s %(name)-12s %(levelname)-8s' +
' %(message)s',
 datefmt='%m-%d %H:%M')
diff --git a/backend/server/flask_mwoauth/__init__.py 
b/backend/server/flask_mwoauth/__init__.py
index a05e110..b9ae9d8 100644
--- a/backend/server/flask_mwoauth/__init__.py
+++ b/backend/server/flask_mwoauth/__init__.py
@@ -8,31 +8,13 @@
 # Licensed under the MIT License // http://opensource.org/licenses/MIT
 #
 
-__version__ = '0.1.35'
-
-import urllib
+from future.moves.urllib.parse import urlencode
 from flask import request, session, Blueprint, make_response, redirect, 
render_template
-from flask_oauth import OAuth, OAuthRemoteApp, OAuthException, parse_response
+from flask_oauthlib.client import OAuth, OAuthException
 import json
 
-
-class MWOAuthRemoteApp(OAuthRemoteApp):
-def handle_oauth1_response(self):
-Handles an oauth1 authorization response.  The return value of
-this method is forwarded as first argument to the handling view
-function.
-
-client = self.make_client()
-resp, content = client.request('%soauth_verifier=%s' % (
-self.expand_url(self.access_token_url),
-request.args['oauth_verifier'],
-), self.access_token_method)
-print resp, content
-data = parse_response(resp, content)
-if not self.status_okay(resp):
-raise OAuthException('Invalid response from ' + self.name,
- type='invalid_response', data=data)
-return data
+import logging
+log = logging.getLogger('test')
 
 
 class MWOAuth(object):
@@ -50,18 +32,22 @@
 self.toolname = 

[MediaWiki-commits] [Gerrit] Add ORES support - change (labs...crosswatch)

2015-07-26 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/227163

Change subject: Add ORES support
..

Add ORES support

Automatically show diff, if ORES predicts that the edit will be
reverted. Adds option to turn it off.

Bug: T106727
Change-Id: I346655e8b696529ce771bfac57e51a67507a7b47
---
M backend/celery/api.py
M backend/celery/tasks.py
M frontend/src/app/index.css
M frontend/src/app/runBlock.js
M frontend/src/app/services.js
M frontend/src/components/settings/settings.html
M frontend/src/components/watchlist/entry.directive.html
M frontend/src/i18n/en.json
M frontend/src/i18n/qqq.json
9 files changed, 147 insertions(+), 27 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/63/227163/1

diff --git a/backend/celery/api.py b/backend/celery/api.py
index fb6146d..d16b3d2 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -40,6 +40,7 @@
 port=config.redis_port,
 db=config.redis_db
 )
+self.ores_url = 'http://ores.wmflabs.org/scores'
 
 def publish(self, message):
 if not self.redis_channel:
@@ -186,3 +187,46 @@
 if any([key in site for key in inactive_wikis]):
 wiki['closed'] = True
 return wiki
+
+def ores_context_exists(self, dbname, model='reverted', cached=True):
+Checks if ORES context for a wiki exists
+key = config.redis_prefix + 'ores' + model
+if not self.redis.exists(key) or not cached:
+self._ores_contexts(model)
+return self.redis.sismember(key, dbname)
+
+def _ores_contexts(self, model):
+Fill cache
+pipe = self.redis.pipeline()
+key = config.redis_prefix + 'ores' + model
+pipe.delete(key)
+
+contexts = requests.get(self.ores_url, headers=self.headers)
+contexts.raise_for_status()
+contexts = contexts.json()['contexts']
+
+for context in contexts:
+models = requests.get('{}/{}/'.format(self.ores_url, context),
+  headers=self.headers)
+models.raise_for_status()
+models = models.json()['models']
+
+if model in models:
+pipe.sadd(key, context)
+pipe.expire(key, 172800)  # 2 days exp.
+pipe.execute()
+
+def ores_scores(self, dbname, revids, model='reverted'):
+Get ORES scores for revision ids
+url = '{}/{}/{}/'.format(self.ores_url, dbname, model)
+
+revids = '|'.join([str(id) for id in revids])
+params = {'revids': revids}
+
+response = requests.get(url, params=params, headers=self.headers)
+response.raise_for_status()
+logger.info('ores req completed in {} seconds for {} revids.'.format(
+response.elapsed.total_seconds(), len(revids)
+))
+
+return response.json()
diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index 6afd300..634befb 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -113,10 +113,10 @@
 redis_channel = kwargs['redis_channel']
 watchlistperiod = kwargs.get('watchlistperiod', False)
 allrev = kwargs.get('allrev', False)
-
-mw = MediaWiki(host=wiki['url'], access_token=access_token, 
+
+mw = MediaWiki(host=wiki['url'], access_token=access_token,
redis_channel=redis_channel)
-
+
 if watchlistperiod:
 days = float(watchlistperiod)
 else:
@@ -160,8 +160,12 @@
 'msgtype': 'watchlist',
 'entires': items
 }
-if items:
-mw.publish(message)
+if not items:
+return
+mw.publish(message)
+
+if mw.ores_context_exists(wiki['dbname']):
+ores.delay(items, **kwargs)
 
 
 @app.task
@@ -170,8 +174,8 @@
 wiki = kwargs['wiki']
 access_token = kwargs['access_token']
 redis_channel = kwargs['redis_channel']
-
-mw = MediaWiki(host=wiki['url'], access_token=access_token, 
+
+mw = MediaWiki(host=wiki['url'], access_token=access_token,
redis_channel=redis_channel)
 
 params = {
@@ -277,5 +281,39 @@
 'data': not watchted
 })
 
+
+@app.task
+def ores(items, **kwargs):
+wiki = kwargs['wiki']
+access_token = kwargs['access_token']
+redis_channel = kwargs['redis_channel']
+
+mw = MediaWiki(host=wiki['url'],
+   access_token=access_token,
+   redis_channel=redis_channel)
+
+edits = {}
+for item in items:
+if item['type'] == 'edit':
+edits[item['revid']] = item
+if not edits:
+return
+
+response = mw.ores_scores(wiki['dbname'], edits.keys())
+for revid, value in response.items():
+if value['probability']['true'] = 0.8:
+revid = int(revid)
+probablity = {:.0%}.format(value['probability']['true'])
+
+ 

[MediaWiki-commits] [Gerrit] Add buttons to edit, revert or unwatch page - change (labs...crosswatch)

2015-07-23 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Add buttons to edit, revert or unwatch page
..


Add buttons to edit, revert or unwatch page

* Adds icons with links to edit or revert an edit (opens new tab to MediaWiki)
* Added icon to remove page from watchlist/app page to watchlist
* Refactored functions to have a generic websocket query function
* Set a cookie for consumer version, logout if not up to date

Bug: T104572
Change-Id: I94c381d10edef057d5526ddca199ca561a10962b
---
M backend/celery/tasks.py
M backend/server/__init__.py
M backend/server/flask_mwoauth/__init__.py
M backend/server/oauth_handler.py
M frontend/src/app/index.css
M frontend/src/app/runBlock.js
M frontend/src/app/services.js
M frontend/src/components/navbar/navbar.controller.js
M frontend/src/components/watchlist/entry.directive.html
M frontend/src/components/watchlist/watchlist.controller.js
M frontend/src/i18n/en.json
M frontend/src/i18n/qqq.json
12 files changed, 167 insertions(+), 83 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index 3cfde96..6afd300 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -246,11 +246,36 @@
 
 diff = mw.diff(pageid, old_revid, revid)
 mw.publish({
-'msgtype': 'diff_response',
+'msgtype': 'response',
 'request_id': request_id,
-'diff': diff
+'data': diff
 })
 
 
+@app.task
+def watch(**kwargs):
+access_token = kwargs['access_token']
+redis_channel = kwargs['redis_channel']
+request_id = kwargs['request_id']
+projecturl = kwargs['projecturl']
+title = kwargs['title']
+watchted = kwargs['status']
+
+mw = MediaWiki(host=projecturl,
+   access_token=access_token,
+   redis_channel=redis_channel)
+
+params = {'action': watch}
+payload = {'titles': title}
+if watchted:
+payload['unwatch'] = 
+mw.post(params, payload, token_type='watch')
+
+mw.publish({
+'msgtype': 'response',
+'request_id': request_id,
+'data': not watchted
+})
+
 if __name__ == '__main__':
 app.start()
diff --git a/backend/server/__init__.py b/backend/server/__init__.py
index dfe9245..185ecd2 100644
--- a/backend/server/__init__.py
+++ b/backend/server/__init__.py
@@ -56,6 +56,8 @@
  kwargs=data, expires=60)
 elif data['action'] == 'diff':
 celery_app.send_task('backend.celery.tasks.get_diff', kwargs=data)
+elif data['action'] == 'watch':
+celery_app.send_task('backend.celery.tasks.watch', kwargs=data)
 else:
 logging.error('Unrecognized action for message: ' + str(data))
 
diff --git a/backend/server/flask_mwoauth/__init__.py 
b/backend/server/flask_mwoauth/__init__.py
index d89b170..a05e110 100644
--- a/backend/server/flask_mwoauth/__init__.py
+++ b/backend/server/flask_mwoauth/__init__.py
@@ -10,7 +10,6 @@
 
 __version__ = '0.1.35'
 
-import sys
 import urllib
 from flask import request, session, Blueprint, make_response, redirect, 
render_template
 from flask_oauth import OAuth, OAuthRemoteApp, OAuthException, parse_response
@@ -36,18 +35,20 @@
 return data
 
 
-class MWOAuth(object):  # http://stackoverflow.com/a/26691512
+class MWOAuth(object):
 def __init__(self,
  base_url='https://www.mediawiki.org/w',
  clean_url='https://www.mediawiki.org/wiki',
  consumer_key=None,
  consumer_secret=None,
- toolname='mytool'):
+ toolname='crosswatch',
+ consumer_version=1.0):
 if not consumer_key or not consumer_secret:
 raise Exception('MWOAuthBlueprintFactory needs consumer key and\
 secret')
 self.base_url = base_url
 self.toolname = toolname
+self.consumer_version = consumer_version
 
 self.oauth = OAuth()
 self.mwoauth = MWOAuthRemoteApp(self.oauth, 'mw.org',
@@ -103,6 +104,9 @@
 resp.set_cookie(self.toolname + '.user', username,
 max_age=30*24*60*60,
 path='/' + self.toolname + '/')
+resp.set_cookie(self.toolname + '.version', consumer_version,
+max_age=30*24*60*60,
+path='/' + self.toolname + '/')
 session.clear()
 
 return resp
@@ -115,6 +119,8 @@
 path='/' + self.toolname + '/', expires=0)
 resp.set_cookie(self.toolname + '.user', '',
 path='/' + self.toolname + '/', expires=0)
+resp.set_cookie(self.toolname + '.version', '',
+path='/' + self.toolname + '/', expires=0)
 session.clear()
 
   

[MediaWiki-commits] [Gerrit] Add buttons to edit, revert or unwatch page - change (labs...crosswatch)

2015-07-23 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/226589

Change subject: Add buttons to edit, revert or unwatch page
..

Add buttons to edit, revert or unwatch page

* Adds icons with links to edit or revert an edit (opens new tab to MediaWiki)
* Added icon to remove page from watchlist/app page to watchlist
* Refactored functions to have a generic websocket query function
* Set a cookie for consumer version, logout if not up to date

Bug: T104572
Change-Id: I94c381d10edef057d5526ddca199ca561a10962b
---
M backend/celery/tasks.py
M backend/server/__init__.py
M backend/server/flask_mwoauth/__init__.py
M backend/server/oauth_handler.py
M frontend/src/app/index.css
M frontend/src/app/runBlock.js
M frontend/src/app/services.js
M frontend/src/components/navbar/navbar.controller.js
M frontend/src/components/watchlist/entry.directive.html
M frontend/src/components/watchlist/watchlist.controller.js
M frontend/src/i18n/en.json
M frontend/src/i18n/qqq.json
12 files changed, 167 insertions(+), 83 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/89/226589/1

diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index 3cfde96..6afd300 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -246,11 +246,36 @@
 
 diff = mw.diff(pageid, old_revid, revid)
 mw.publish({
-'msgtype': 'diff_response',
+'msgtype': 'response',
 'request_id': request_id,
-'diff': diff
+'data': diff
 })
 
 
+@app.task
+def watch(**kwargs):
+access_token = kwargs['access_token']
+redis_channel = kwargs['redis_channel']
+request_id = kwargs['request_id']
+projecturl = kwargs['projecturl']
+title = kwargs['title']
+watchted = kwargs['status']
+
+mw = MediaWiki(host=projecturl,
+   access_token=access_token,
+   redis_channel=redis_channel)
+
+params = {'action': watch}
+payload = {'titles': title}
+if watchted:
+payload['unwatch'] = 
+mw.post(params, payload, token_type='watch')
+
+mw.publish({
+'msgtype': 'response',
+'request_id': request_id,
+'data': not watchted
+})
+
 if __name__ == '__main__':
 app.start()
diff --git a/backend/server/__init__.py b/backend/server/__init__.py
index dfe9245..185ecd2 100644
--- a/backend/server/__init__.py
+++ b/backend/server/__init__.py
@@ -56,6 +56,8 @@
  kwargs=data, expires=60)
 elif data['action'] == 'diff':
 celery_app.send_task('backend.celery.tasks.get_diff', kwargs=data)
+elif data['action'] == 'watch':
+celery_app.send_task('backend.celery.tasks.watch', kwargs=data)
 else:
 logging.error('Unrecognized action for message: ' + str(data))
 
diff --git a/backend/server/flask_mwoauth/__init__.py 
b/backend/server/flask_mwoauth/__init__.py
index d89b170..a05e110 100644
--- a/backend/server/flask_mwoauth/__init__.py
+++ b/backend/server/flask_mwoauth/__init__.py
@@ -10,7 +10,6 @@
 
 __version__ = '0.1.35'
 
-import sys
 import urllib
 from flask import request, session, Blueprint, make_response, redirect, 
render_template
 from flask_oauth import OAuth, OAuthRemoteApp, OAuthException, parse_response
@@ -36,18 +35,20 @@
 return data
 
 
-class MWOAuth(object):  # http://stackoverflow.com/a/26691512
+class MWOAuth(object):
 def __init__(self,
  base_url='https://www.mediawiki.org/w',
  clean_url='https://www.mediawiki.org/wiki',
  consumer_key=None,
  consumer_secret=None,
- toolname='mytool'):
+ toolname='crosswatch',
+ consumer_version=1.0):
 if not consumer_key or not consumer_secret:
 raise Exception('MWOAuthBlueprintFactory needs consumer key and\
 secret')
 self.base_url = base_url
 self.toolname = toolname
+self.consumer_version = consumer_version
 
 self.oauth = OAuth()
 self.mwoauth = MWOAuthRemoteApp(self.oauth, 'mw.org',
@@ -103,6 +104,9 @@
 resp.set_cookie(self.toolname + '.user', username,
 max_age=30*24*60*60,
 path='/' + self.toolname + '/')
+resp.set_cookie(self.toolname + '.version', consumer_version,
+max_age=30*24*60*60,
+path='/' + self.toolname + '/')
 session.clear()
 
 return resp
@@ -115,6 +119,8 @@
 path='/' + self.toolname + '/', expires=0)
 resp.set_cookie(self.toolname + '.user', '',
 path='/' + self.toolname + '/', expires=0)
+resp.set_cookie(self.toolname + '.version', '',
+path='/' + 

[MediaWiki-commits] [Gerrit] Fix i18n message interpolation for a tags - change (labs...crosswatch)

2015-07-22 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/226309

Change subject: Fix i18n message interpolation for a tags
..

Fix i18n message interpolation for a tags

Don't interpolate a tags in i18n strings

Change-Id: I68b125474386eb7c662dc332d31f5277c8c6dea3
---
M frontend/src/app/translationProvider.js
1 file changed, 5 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/09/226309/1

diff --git a/frontend/src/app/translationProvider.js 
b/frontend/src/app/translationProvider.js
index 7f951c9..d3cd7a4 100644
--- a/frontend/src/app/translationProvider.js
+++ b/frontend/src/app/translationProvider.js
@@ -47,8 +47,11 @@
   };
 
   $translateInterpolator.interpolate = function (string, interpolationParams) {
-// user foo user title={{bar|baz}} - user/user foo user 
title=\{{bar|baz}}\/user
-string = string.replace(/(([a-z\-]*)\s?[^]*?)/g, 
$1/$2).replace(/({{[\w|]+}})/g, \$1\);
+/**
+ * Closes html tags in translation strings (but not for a tags) and adds 
quotation marks.
+ * For example: user foo user title={{bar|baz}} - user/user 
foo user title=\{{bar|baz}}\/user
+ */
+string = string.replace(/(([a-z\-]{2,})\s?[^]*?)/g, 
$1/$2).replace(/({{[\w|]+}})/g, \$1\);
 interpolationParams = interpolationParams || {};
 interpolationParams = $translateSanitization.sanitize(interpolationParams, 
'params');
 

-- 
To view, visit https://gerrit.wikimedia.org/r/226309
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I68b125474386eb7c662dc332d31f5277c8c6dea3
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix i18n message interpolation for a tags - change (labs...crosswatch)

2015-07-22 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix i18n message interpolation for a tags
..


Fix i18n message interpolation for a tags

Don't interpolate a tags in i18n strings

Change-Id: I68b125474386eb7c662dc332d31f5277c8c6dea3
---
M frontend/src/app/translationProvider.js
1 file changed, 5 insertions(+), 2 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/app/translationProvider.js 
b/frontend/src/app/translationProvider.js
index 7f951c9..d3cd7a4 100644
--- a/frontend/src/app/translationProvider.js
+++ b/frontend/src/app/translationProvider.js
@@ -47,8 +47,11 @@
   };
 
   $translateInterpolator.interpolate = function (string, interpolationParams) {
-// user foo user title={{bar|baz}} - user/user foo user 
title=\{{bar|baz}}\/user
-string = string.replace(/(([a-z\-]*)\s?[^]*?)/g, 
$1/$2).replace(/({{[\w|]+}})/g, \$1\);
+/**
+ * Closes html tags in translation strings (but not for a tags) and adds 
quotation marks.
+ * For example: user foo user title={{bar|baz}} - user/user 
foo user title=\{{bar|baz}}\/user
+ */
+string = string.replace(/(([a-z\-]{2,})\s?[^]*?)/g, 
$1/$2).replace(/({{[\w|]+}})/g, \$1\);
 interpolationParams = interpolationParams || {};
 interpolationParams = $translateSanitization.sanitize(interpolationParams, 
'params');
 

-- 
To view, visit https://gerrit.wikimedia.org/r/226309
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I68b125474386eb7c662dc332d31f5277c8c6dea3
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Only use one redis channel per client - change (labs...crosswatch)

2015-07-21 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Only use one redis channel per client
..


Only use one redis channel per client

Change-Id: Ib5a69ab6a74e809ecf00bd475e04ae3a57c45552
---
M backend/server/__init__.py
1 file changed, 6 insertions(+), 15 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/server/__init__.py b/backend/server/__init__.py
index 363fe9f..dfe9245 100644
--- a/backend/server/__init__.py
+++ b/backend/server/__init__.py
@@ -39,34 +39,25 @@
 
 class SockConnection(SockJSConnection):
 def on_open(self, info):
-self.channels = []
+self.channel = str(uuid4())
+subscriber.subscribe(self.channel, self)
 
 def on_close(self):
-for channel in self.channels:
-subscriber.unsubscribe(channel, self)
+subscriber.unsubscribe(self.channel, self)
 
 def on_message(self, message):
 data = json.loads(message)
+data['redis_channel'] = self.channel
 if data['action'] == 'watchlist':
-redis_channel = str(uuid4())
-self.channels.append(redis_channel)
-
-logging.info('New redis channel ' + redis_channel)
-subscriber.subscribe(redis_channel, self)
-
-data['redis_channel'] = redis_channel
 celery_app.send_task('backend.celery.tasks.initial_task',
  kwargs=data, expires=60)
 elif data['action'] == 'notifications_mark_read':
 
celery_app.send_task('backend.celery.tasks.notifications_mark_read',
  kwargs=data, expires=60)
 elif data['action'] == 'diff':
-redis_channel = str(uuid4())
-self.channels.append(redis_channel)
-subscriber.subscribe(redis_channel, self)
-
-data['redis_channel'] = redis_channel
 celery_app.send_task('backend.celery.tasks.get_diff', kwargs=data)
+else:
+logging.error('Unrecognized action for message: ' + str(data))
 
 
 class NoChacheStaticFileHandler(StaticFileHandler):

-- 
To view, visit https://gerrit.wikimedia.org/r/226082
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib5a69ab6a74e809ecf00bd475e04ae3a57c45552
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Cleanup backend code - change (labs...crosswatch)

2015-07-21 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/226076

Change subject: Cleanup backend code
..

Cleanup backend code

Uses kwargs properly and adds unicode_literals.
Should probably have been done some time ago, doing it now because I'm going to 
add more celery tasks.

Change-Id: If5a940325c4f2ea866e67407276da68b56e3950a
---
M backend/__main__.py
M backend/celery/__init__.py
M backend/celery/api.py
M backend/celery/tasks.py
M backend/config.py.sample
M backend/server/__init__.py
6 files changed, 100 insertions(+), 88 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/76/226076/1

diff --git a/backend/__main__.py b/backend/__main__.py
index f55506b..61699b2 100644
--- a/backend/__main__.py
+++ b/backend/__main__.py
@@ -1,8 +1,10 @@
 # -*- coding: utf-8 -*-
 # ISC License
 # Copyright (C) 2015 Jan Lebert
-from __future__ import print_function
 from __future__ import absolute_import
+from __future__ import unicode_literals
+from __future__ import print_function
+
 import sys
 
 from .server import run
diff --git a/backend/celery/__init__.py b/backend/celery/__init__.py
index 23768d3..8935427 100644
--- a/backend/celery/__init__.py
+++ b/backend/celery/__init__.py
@@ -2,6 +2,8 @@
 # ISC License
 # Copyright (C) 2015 Jan Lebert
 from __future__ import absolute_import
+from __future__ import unicode_literals
+
 from celery import Celery
 from celery.utils.log import get_task_logger
 from kombu import Exchange, Queue
diff --git a/backend/celery/api.py b/backend/celery/api.py
index feb5134..fb6146d 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -2,6 +2,8 @@
 # ISC License
 # Copyright (C) 2015 Jan Lebert
 from __future__ import absolute_import
+from __future__ import unicode_literals
+
 import requests
 from requests_oauthlib import OAuth1
 from redis import StrictRedis
@@ -60,7 +62,7 @@
 logger.error(response['error'])
 
 if self.redis_channel:
-if response['error']['code'] == 
u'mwoauth-invalid-authorization':
+if response['error']['code'] == 
'mwoauth-invalid-authorization':
 self.publish({'msgtype': 'loginerror',
   'errorinfo': response['error']['info']})
 else:
diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index a8bd338..37f9f82 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -3,6 +3,7 @@
 # ISC License
 # Copyright (C) 2015 Jan Lebert
 from __future__ import absolute_import
+from __future__ import unicode_literals
 
 from uuid import uuid4
 from contextlib import closing
@@ -14,40 +15,36 @@
 
 
 def chunks(l, n):
-
-Yield successive n-sized chunks from l.
-
-
+Yield successive n-sized chunks from l.
 for i in xrange(0, len(l), n):
 yield l[i:i+n]
 
 
 @app.task
-def canary(obj):
-
-A canary in a coal mine
-
-mw = MediaWiki(redis_channel=obj['redis_channel'])
+def canary(redis_channel=None, **kwargs):
+A canary in a coal mine
+mw = MediaWiki(redis_channel=redis_channel)
 mw.publish({'msgtype': canary})
 
 @app.task
-def initial_task(obj):
+def initial_task(**kwargs):
 
 Task called on login, start the chain to load the
 watchlist, notifications etc.
-:param obj: dict with redis channel and oauth keys
-
 
-mw = MediaWiki(access_token=obj['access_token'])
+access_token = kwargs['access_token']
+preload_projects = kwargs.get('projects', [])
+redis_channel = kwargs.get('redis_channel', None)
+
+mw = MediaWiki(access_token=access_token, redis_channel=redis_channel)
 username = mw.username()
 wikis = mw.wikis()
 
 # Use cache of known projects to bypass sometimes blocking mysql check
-preload_projects = obj.pop('projects', [])
 for project in preload_projects:
-obj['wiki'] = wikis[project]
-watchlistgetter.delay(obj)
-notificationgetter.delay(obj)
+wiki = wikis[project]
+watchlistgetter.delay(wiki=wiki, **kwargs)
+notificationgetter.delay(wiki=wiki, **kwargs)
 
 db = MySQLdb.connect(
 host='centralauth.labsdb',
@@ -70,21 +67,19 @@
 db.close()
 
 for chunk in chunks(projects, 50):
-check_editcount.delay(obj, chunk, username)
+check_editcount.delay(chunk, username, **kwargs)
 
 # Send back canary reply to show that the server is working
-canary(obj)
+canary(redis_channel=redis_channel)
 
 
 @app.task
-def check_editcount(obj, project_chunk, username):
+def check_editcount(project_chunk, username, **kwargs):
 
 Starts the watchlist- and notificationgetter if the
 user has made more than one edit to a project
-:param obj: The dict from tornado
 :param project_chunk: list of projets
-:param username:
-
+:param username: username
 
 db = MySQLdb.connect(
  

[MediaWiki-commits] [Gerrit] Cleanup backend code - change (labs...crosswatch)

2015-07-21 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Cleanup backend code
..


Cleanup backend code

Uses kwargs properly and adds unicode_literals.
Should probably have been done some time ago, doing it now because I'm going to 
add more celery tasks.

Change-Id: If5a940325c4f2ea866e67407276da68b56e3950a
---
M backend/__main__.py
M backend/celery/__init__.py
M backend/celery/api.py
M backend/celery/tasks.py
M backend/config.py.sample
M backend/server/__init__.py
6 files changed, 100 insertions(+), 88 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/__main__.py b/backend/__main__.py
index f55506b..61699b2 100644
--- a/backend/__main__.py
+++ b/backend/__main__.py
@@ -1,8 +1,10 @@
 # -*- coding: utf-8 -*-
 # ISC License
 # Copyright (C) 2015 Jan Lebert
-from __future__ import print_function
 from __future__ import absolute_import
+from __future__ import unicode_literals
+from __future__ import print_function
+
 import sys
 
 from .server import run
diff --git a/backend/celery/__init__.py b/backend/celery/__init__.py
index 23768d3..8935427 100644
--- a/backend/celery/__init__.py
+++ b/backend/celery/__init__.py
@@ -2,6 +2,8 @@
 # ISC License
 # Copyright (C) 2015 Jan Lebert
 from __future__ import absolute_import
+from __future__ import unicode_literals
+
 from celery import Celery
 from celery.utils.log import get_task_logger
 from kombu import Exchange, Queue
diff --git a/backend/celery/api.py b/backend/celery/api.py
index feb5134..fb6146d 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -2,6 +2,8 @@
 # ISC License
 # Copyright (C) 2015 Jan Lebert
 from __future__ import absolute_import
+from __future__ import unicode_literals
+
 import requests
 from requests_oauthlib import OAuth1
 from redis import StrictRedis
@@ -60,7 +62,7 @@
 logger.error(response['error'])
 
 if self.redis_channel:
-if response['error']['code'] == 
u'mwoauth-invalid-authorization':
+if response['error']['code'] == 
'mwoauth-invalid-authorization':
 self.publish({'msgtype': 'loginerror',
   'errorinfo': response['error']['info']})
 else:
diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index a8bd338..3cfde96 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -3,6 +3,7 @@
 # ISC License
 # Copyright (C) 2015 Jan Lebert
 from __future__ import absolute_import
+from __future__ import unicode_literals
 
 from uuid import uuid4
 from contextlib import closing
@@ -14,40 +15,36 @@
 
 
 def chunks(l, n):
-
-Yield successive n-sized chunks from l.
-
-
+Yield successive n-sized chunks from l.
 for i in xrange(0, len(l), n):
 yield l[i:i+n]
 
 
 @app.task
-def canary(obj):
-
-A canary in a coal mine
-
-mw = MediaWiki(redis_channel=obj['redis_channel'])
+def canary(redis_channel=None, **kwargs):
+A canary in a coal mine
+mw = MediaWiki(redis_channel=redis_channel)
 mw.publish({'msgtype': canary})
 
 @app.task
-def initial_task(obj):
+def initial_task(**kwargs):
 
 Task called on login, start the chain to load the
 watchlist, notifications etc.
-:param obj: dict with redis channel and oauth keys
-
 
-mw = MediaWiki(access_token=obj['access_token'])
+access_token = kwargs['access_token']
+preload_projects = kwargs.get('projects', [])
+redis_channel = kwargs.get('redis_channel', None)
+
+mw = MediaWiki(access_token=access_token, redis_channel=redis_channel)
 username = mw.username()
 wikis = mw.wikis()
 
 # Use cache of known projects to bypass sometimes blocking mysql check
-preload_projects = obj.pop('projects', [])
 for project in preload_projects:
-obj['wiki'] = wikis[project]
-watchlistgetter.delay(obj)
-notificationgetter.delay(obj)
+wiki = wikis[project]
+watchlistgetter.delay(wiki=wiki, **kwargs)
+notificationgetter.delay(wiki=wiki, **kwargs)
 
 db = MySQLdb.connect(
 host='centralauth.labsdb',
@@ -70,21 +67,19 @@
 db.close()
 
 for chunk in chunks(projects, 50):
-check_editcount.delay(obj, chunk, username)
+check_editcount.delay(chunk, username, **kwargs)
 
 # Send back canary reply to show that the server is working
-canary(obj)
+canary(redis_channel=redis_channel)
 
 
 @app.task
-def check_editcount(obj, project_chunk, username):
+def check_editcount(project_chunk, username, **kwargs):
 
 Starts the watchlist- and notificationgetter if the
 user has made more than one edit to a project
-:param obj: The dict from tornado
 :param project_chunk: list of projets
-:param username:
-
+:param username: username
 
 db = MySQLdb.connect(
 host='s4.labsdb',
@@ -98,30 +93,32 @@
 result = 

[MediaWiki-commits] [Gerrit] Only use one redis channel per client - change (labs...crosswatch)

2015-07-21 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/226082

Change subject: Only use one redis channel per client
..

Only use one redis channel per client

Change-Id: Ib5a69ab6a74e809ecf00bd475e04ae3a57c45552
---
M backend/server/__init__.py
1 file changed, 6 insertions(+), 15 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/82/226082/1

diff --git a/backend/server/__init__.py b/backend/server/__init__.py
index 363fe9f..dfe9245 100644
--- a/backend/server/__init__.py
+++ b/backend/server/__init__.py
@@ -39,34 +39,25 @@
 
 class SockConnection(SockJSConnection):
 def on_open(self, info):
-self.channels = []
+self.channel = str(uuid4())
+subscriber.subscribe(self.channel, self)
 
 def on_close(self):
-for channel in self.channels:
-subscriber.unsubscribe(channel, self)
+subscriber.unsubscribe(self.channel, self)
 
 def on_message(self, message):
 data = json.loads(message)
+data['redis_channel'] = self.channel
 if data['action'] == 'watchlist':
-redis_channel = str(uuid4())
-self.channels.append(redis_channel)
-
-logging.info('New redis channel ' + redis_channel)
-subscriber.subscribe(redis_channel, self)
-
-data['redis_channel'] = redis_channel
 celery_app.send_task('backend.celery.tasks.initial_task',
  kwargs=data, expires=60)
 elif data['action'] == 'notifications_mark_read':
 
celery_app.send_task('backend.celery.tasks.notifications_mark_read',
  kwargs=data, expires=60)
 elif data['action'] == 'diff':
-redis_channel = str(uuid4())
-self.channels.append(redis_channel)
-subscriber.subscribe(redis_channel, self)
-
-data['redis_channel'] = redis_channel
 celery_app.send_task('backend.celery.tasks.get_diff', kwargs=data)
+else:
+logging.error('Unrecognized action for message: ' + str(data))
 
 
 class NoChacheStaticFileHandler(StaticFileHandler):

-- 
To view, visit https://gerrit.wikimedia.org/r/226082
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib5a69ab6a74e809ecf00bd475e04ae3a57c45552
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Cleanup code - change (labs...crosswatch)

2015-07-19 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/225675

Change subject: Cleanup code
..

Cleanup code

Minor changes, renames some functions and moves code around.

Change-Id: I9b3ad2da890c23ed784664c84a7be7e30da881f6
---
M backend/celery/api.py
M backend/celery/tasks.py
M frontend/src/components/watchlist/edit_oneline.directive.html
M frontend/src/components/watchlist/edit_twolines.directive.html
M frontend/src/components/watchlist/entry.directive.html
M frontend/src/components/watchlist/page.directive.js
M frontend/src/components/watchlist/user.directive.js
M frontend/src/components/watchlist/watchlist.controller.js
M frontend/src/components/watchlist/watchlist.html
M scripts/restart_celery.sh
10 files changed, 44 insertions(+), 36 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/75/225675/1

diff --git a/backend/celery/api.py b/backend/celery/api.py
index 16c7617..feb5134 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -16,7 +16,6 @@
 def __init__(self, host=https://en.wikipedia.org;, path=/w/api.php,
  access_token=None, redis_channel=None):
 self.api_url = host + path
-self.wikis = {}
 
 user_agent = crosswatch (https://tools.wmflabs.org/crosswatch;; +\
 crosswa...@tools.wmflabs.org) python-requests/ +\
@@ -56,7 +55,7 @@
 time = now + delta
 return time.strftime(%Y%m%d%H%M%S)
 
-def handle_response(self, response):
+def _handle_response(self, response):
 if 'error' in response:
 logger.error(response['error'])
 
@@ -79,7 +78,7 @@
 response = requests.get(self.api_url, params=params, auth=self.auth,
 headers=self.headers).json()
 
-self.handle_response(response)
+self._handle_response(response)
 return response
 
 def query_gen(self, params):
@@ -105,7 +104,7 @@
 response = requests.post(self.api_url, params=params, data=payload,
  auth=self.auth, headers=self.headers)
 
-self.handle_response(json.loads(response.text))
+self._handle_response(json.loads(response.text))
 
 def get_token(self, type='csrf'):
 params = {'action': query,
@@ -115,7 +114,7 @@
 token = r['query']['tokens'][type + 'token']
 return token
 
-def get_username(self):
+def username(self):
 params = {
 'action': query,
 'meta': userinfo,
@@ -124,7 +123,22 @@
 username = response['query']['userinfo']['name']
 return username
 
-def get_wikis(self, use_cache=True):
+def diff(self, pageid, old_revid, new_revid):
+params = {
+'action': query,
+'prop': revisions,
+'rvstartid': old_revid,
+'rvendid': old_revid,
+'rvdiffto': new_revid,
+'pageids': pageid,
+'formatversion': 2
+}
+
+response = self.query(params)
+diff = response['query']['pages'][0]['revisions'][0]['diff']['body']
+return diff
+
+def wikis(self, use_cache=True):
 key = config.redis_prefix + 'cached_wikis'
 wikis = self.redis.get(key)
 if use_cache and wikis:
@@ -132,29 +146,32 @@
 else:
 # Cache miss, do api request and fill cache
 wikis = self._get_wikis()
-self.redis.setex(key, 86400, json.dumps(wikis))  # 1 day exp.
+self.redis.setex(key, 172800, json.dumps(wikis))  # 2 days exp.
 
 return wikis
 
 def _get_wikis(self):
 params = {'action': sitematrix}
 data = self.query(params)
+
+wikis = {}
 for key, val in data['sitematrix'].items():
 if key == 'count':
 continue
 
 if 'code' in val:
 for site in val['site']:
-self._parse_sitematrix(site, val['code'], val['name'])
+wiki = self._create_wiki(site, val['code'], val['name'])
+wikis[site['dbname']] = wiki
 else:
 for site in val:
-self._parse_sitematrix(site, '', '')
+wiki = self._create_wiki(site, '', '')
+wikis[site['dbname']] = wiki
+return wikis
 
-return self.wikis
-
-def _parse_sitematrix(self, site, lang, langname):
+def _create_wiki(self, site, langcode, langname):
 wiki = {
-'lang': lang,
+'lang': langcode,
 'langname': langname,
 'url': site['url'].replace(http://;, https://;),
 'dbname': site['dbname'],
@@ -166,5 +183,4 @@
 inactive_wikis = ['closed', 'private', 'fishbowl']
 if any([key in site for key in inactive_wikis]):
 wiki['closed'] = True
-
-

[MediaWiki-commits] [Gerrit] Cleanup code - change (labs...crosswatch)

2015-07-19 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Cleanup code
..


Cleanup code

Minor changes, renames some functions and moves code around.

Change-Id: I9b3ad2da890c23ed784664c84a7be7e30da881f6
---
M backend/celery/api.py
M backend/celery/tasks.py
M frontend/src/components/watchlist/edit_oneline.directive.html
M frontend/src/components/watchlist/edit_twolines.directive.html
M frontend/src/components/watchlist/entry.directive.html
M frontend/src/components/watchlist/page.directive.js
M frontend/src/components/watchlist/user.directive.js
M frontend/src/components/watchlist/watchlist.controller.js
M frontend/src/components/watchlist/watchlist.html
M scripts/restart_celery.sh
10 files changed, 44 insertions(+), 36 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/celery/api.py b/backend/celery/api.py
index 16c7617..feb5134 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -16,7 +16,6 @@
 def __init__(self, host=https://en.wikipedia.org;, path=/w/api.php,
  access_token=None, redis_channel=None):
 self.api_url = host + path
-self.wikis = {}
 
 user_agent = crosswatch (https://tools.wmflabs.org/crosswatch;; +\
 crosswa...@tools.wmflabs.org) python-requests/ +\
@@ -56,7 +55,7 @@
 time = now + delta
 return time.strftime(%Y%m%d%H%M%S)
 
-def handle_response(self, response):
+def _handle_response(self, response):
 if 'error' in response:
 logger.error(response['error'])
 
@@ -79,7 +78,7 @@
 response = requests.get(self.api_url, params=params, auth=self.auth,
 headers=self.headers).json()
 
-self.handle_response(response)
+self._handle_response(response)
 return response
 
 def query_gen(self, params):
@@ -105,7 +104,7 @@
 response = requests.post(self.api_url, params=params, data=payload,
  auth=self.auth, headers=self.headers)
 
-self.handle_response(json.loads(response.text))
+self._handle_response(json.loads(response.text))
 
 def get_token(self, type='csrf'):
 params = {'action': query,
@@ -115,7 +114,7 @@
 token = r['query']['tokens'][type + 'token']
 return token
 
-def get_username(self):
+def username(self):
 params = {
 'action': query,
 'meta': userinfo,
@@ -124,7 +123,22 @@
 username = response['query']['userinfo']['name']
 return username
 
-def get_wikis(self, use_cache=True):
+def diff(self, pageid, old_revid, new_revid):
+params = {
+'action': query,
+'prop': revisions,
+'rvstartid': old_revid,
+'rvendid': old_revid,
+'rvdiffto': new_revid,
+'pageids': pageid,
+'formatversion': 2
+}
+
+response = self.query(params)
+diff = response['query']['pages'][0]['revisions'][0]['diff']['body']
+return diff
+
+def wikis(self, use_cache=True):
 key = config.redis_prefix + 'cached_wikis'
 wikis = self.redis.get(key)
 if use_cache and wikis:
@@ -132,29 +146,32 @@
 else:
 # Cache miss, do api request and fill cache
 wikis = self._get_wikis()
-self.redis.setex(key, 86400, json.dumps(wikis))  # 1 day exp.
+self.redis.setex(key, 172800, json.dumps(wikis))  # 2 days exp.
 
 return wikis
 
 def _get_wikis(self):
 params = {'action': sitematrix}
 data = self.query(params)
+
+wikis = {}
 for key, val in data['sitematrix'].items():
 if key == 'count':
 continue
 
 if 'code' in val:
 for site in val['site']:
-self._parse_sitematrix(site, val['code'], val['name'])
+wiki = self._create_wiki(site, val['code'], val['name'])
+wikis[site['dbname']] = wiki
 else:
 for site in val:
-self._parse_sitematrix(site, '', '')
+wiki = self._create_wiki(site, '', '')
+wikis[site['dbname']] = wiki
+return wikis
 
-return self.wikis
-
-def _parse_sitematrix(self, site, lang, langname):
+def _create_wiki(self, site, langcode, langname):
 wiki = {
-'lang': lang,
+'lang': langcode,
 'langname': langname,
 'url': site['url'].replace(http://;, https://;),
 'dbname': site['dbname'],
@@ -166,5 +183,4 @@
 inactive_wikis = ['closed', 'private', 'fishbowl']
 if any([key in site for key in inactive_wikis]):
 wiki['closed'] = True
-
-self.wikis[site['dbname']] = wiki
+return wiki
diff --git a/backend/celery/tasks.py 

[MediaWiki-commits] [Gerrit] Show error messages one after another - change (labs...crosswatch)

2015-07-19 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Show error messages one after another
..


Show error messages one after another

Bugfix, only show one error message at a time, wait until the user
has clicked on close.

Change-Id: I44639e4a1d84111e42cd58302662e1c5126576b3
---
M frontend/src/app/runBlock.js
1 file changed, 26 insertions(+), 22 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/app/runBlock.js b/frontend/src/app/runBlock.js
index 4c50a9b..39dfe37 100644
--- a/frontend/src/app/runBlock.js
+++ b/frontend/src/app/runBlock.js
@@ -63,36 +63,23 @@
   dataService.diffResponseHandler(data)
 } else if (data.msgtype === 'loginerror') {
   $log.error('login failed with: ' + data.errorinfo);
-
   $translate(['OAUTH_FAILURE_TITLE', 'OAUTH_FAILURE_CONTENT', 'CLOSE'], 
{error: data.errorinfo})
 .then(function (translations) {
-  var alert = $mdDialog.alert({
+  registerAlert({
 title: translations['OAUTH_FAILURE_TITLE'],
 content: translations['OAUTH_FAILURE_CONTENT'],
 ok: translations['CLOSE']
-  });
-
-  $mdDialog
-  .show( alert )
-  .finally(function() {
-alert = undefined;
   });
 });
 } else if (data.msgtype === 'apierror') {
   $log.error('API error: ' + data.errorinfo);
   $translate(['SERVER_ERROR_TITLE', 'API_ERROR_CONTENT', 'CLOSE'], 
{errorcode: data.errorcode, errorinfo: data.errorinfo})
 .then(function (translations) {
-  var alert = $mdDialog.alert({
+  registerAlert({
 title: translations['SERVER_ERROR_TITLE'],
 content: translations['API_ERROR_CONTENT'],
 ok: translations['CLOSE']
   });
-
-  $mdDialog
-.show(alert)
-.finally(function () {
-  alert = undefined;
-});
 });
 } else {
   $log.error(Unhandled message: %o, data);
@@ -110,18 +97,35 @@
 if (connectionError) {
   $log.warn('No websocket message after 20 seconds.');
   $translate(['SERVER_ERROR_TITLE', 'SERVER_ERROR_CONTENT', 
'CLOSE']).then(function (translations) {
-var alert = $mdDialog.alert({
+registerAlert({
   title: translations['SERVER_ERROR_TITLE'],
   content: translations['SERVER_ERROR_CONTENT'],
   ok: translations['CLOSE']
 });
-
-$mdDialog
-  .show(alert)
-  .finally(function () {
-alert = undefined;
-  });
   });
 }
   }
+
+  var currentAlert = false;
+  var alerts = [];
+  /**
+   * Register an $mdDialog alert and schedules it to be shown
+   * @param arg paramter for $mdDialog.alert()
+   */
+  function registerAlert (arg) {
+var alert = $mdDialog.alert(arg);
+alerts.push(alert);
+showAlert();
+  }
+  function showAlert () {
+if (!currentAlert  alerts.length) {
+  currentAlert = alerts.shift();
+  $mdDialog
+.show(currentAlert)
+.finally(function () {
+  currentAlert = false;
+  showAlert();
+});
+}
+  }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/225714
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I44639e4a1d84111e42cd58302662e1c5126576b3
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix confusing error message - change (labs...crosswatch)

2015-07-19 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix confusing error message
..


Fix confusing error message

Add a canary task to indicate that the server is working.

Change-Id: I960304d1b74490034ee9f25ab899cb5a5a8da032
---
M backend/celery/tasks.py
M frontend/src/app/runBlock.js
M frontend/src/i18n/en.json
M frontend/src/i18n/qqq.json
4 files changed, 21 insertions(+), 4 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index 196dad5..a8bd338 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -23,6 +23,14 @@
 
 
 @app.task
+def canary(obj):
+
+A canary in a coal mine
+
+mw = MediaWiki(redis_channel=obj['redis_channel'])
+mw.publish({'msgtype': canary})
+
+@app.task
 def initial_task(obj):
 
 Task called on login, start the chain to load the
@@ -64,6 +72,9 @@
 for chunk in chunks(projects, 50):
 check_editcount.delay(obj, chunk, username)
 
+# Send back canary reply to show that the server is working
+canary(obj)
+
 
 @app.task
 def check_editcount(obj, project_chunk, username):
diff --git a/frontend/src/app/runBlock.js b/frontend/src/app/runBlock.js
index 39dfe37..8539bf7 100644
--- a/frontend/src/app/runBlock.js
+++ b/frontend/src/app/runBlock.js
@@ -37,7 +37,7 @@
*/
   $rootScope.$on('login', function () {
 dataService.queryWatchlist();
-$timeout(errorHandler, 2); // show error if no watchlist after 20 secs
+$timeout(errorHandler, 1); // show error if no response after 10 secs
   });
 
   /**
@@ -61,6 +61,12 @@
   dataService.addNotificationEntries(data)
 } else if (data.msgtype === 'diff_response') {
   dataService.diffResponseHandler(data)
+} else if (data.msgtype === 'canary') {
+  connectionError = false;
+  // disable loading spinner after 20 sec (no watchlist entries for the 
time period)
+  $timeout(function () {
+dataService.watchlist.loading = false;
+  }, 2)
 } else if (data.msgtype === 'loginerror') {
   $log.error('login failed with: ' + data.errorinfo);
   $translate(['OAUTH_FAILURE_TITLE', 'OAUTH_FAILURE_CONTENT', 'CLOSE'], 
{error: data.errorinfo})
diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json
index a69150c..6262027 100644
--- a/frontend/src/i18n/en.json
+++ b/frontend/src/i18n/en.json
@@ -51,7 +51,7 @@
   OAUTH_FAILURE_CONTENT: Authentication failed, you might have revoked the 
authorization for this application. Please logout and sign in again. Error 
information: {{error}},
   CLOSE: Close,
   SERVER_ERROR_TITLE: Server failure,
-  SERVER_ERROR_CONTENT: No watchlist could be retrieved. Either you have no 
watchlist events for the selected time period or this is an internal server 
error.,
+  SERVER_ERROR_CONTENT: No watchlist could be retrieved. This is an 
internal server error, please open a bug report if the problem persists.,
   API_ERROR_CONTENT: An API request failed with error code {{errorcode}} 
and error information: {{errorinfo}},
   NAMESPACES: Namespaces,
   NS_0:  Article,
diff --git a/frontend/src/i18n/qqq.json b/frontend/src/i18n/qqq.json
index 455f6c2..2513d7f 100644
--- a/frontend/src/i18n/qqq.json
+++ b/frontend/src/i18n/qqq.json
@@ -22,8 +22,8 @@
   OAUTH_FAILURE_CONTENT: Error message that MediaWiki login failed,
   CLOSE: Close dialog button,
   SERVER_ERROR_TITLE: Title for error message,
-  SERVER_ERROR_CONTENT: Error message shown indicating that the server 
didn't send any data,
-  API_ERROR_CONTENT: Error message to show in case of an MediaWiki API 
error,
+  SERVER_ERROR_CONTENT: Error message shown indicating that the server 
didn't respond.,
+  API_ERROR_CONTENT: Error message shown in case of an MediaWiki API 
error.,
   NAMESPACES: MediaWiki Namespaces,
   NS_0:  MediaWiki namespace name for default namespace,
   NS_1:  MediaWiki namespace name,

-- 
To view, visit https://gerrit.wikimedia.org/r/225738
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I960304d1b74490034ee9f25ab899cb5a5a8da032
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Show error messages one after another - change (labs...crosswatch)

2015-07-19 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/225714

Change subject: Show error messages one after another
..

Show error messages one after another

Bugfix, only show one error message at a time, wait until the user
has clicked on close.

Change-Id: I44639e4a1d84111e42cd58302662e1c5126576b3
---
M frontend/src/app/runBlock.js
1 file changed, 26 insertions(+), 22 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/14/225714/1

diff --git a/frontend/src/app/runBlock.js b/frontend/src/app/runBlock.js
index 4c50a9b..39dfe37 100644
--- a/frontend/src/app/runBlock.js
+++ b/frontend/src/app/runBlock.js
@@ -63,36 +63,23 @@
   dataService.diffResponseHandler(data)
 } else if (data.msgtype === 'loginerror') {
   $log.error('login failed with: ' + data.errorinfo);
-
   $translate(['OAUTH_FAILURE_TITLE', 'OAUTH_FAILURE_CONTENT', 'CLOSE'], 
{error: data.errorinfo})
 .then(function (translations) {
-  var alert = $mdDialog.alert({
+  registerAlert({
 title: translations['OAUTH_FAILURE_TITLE'],
 content: translations['OAUTH_FAILURE_CONTENT'],
 ok: translations['CLOSE']
-  });
-
-  $mdDialog
-  .show( alert )
-  .finally(function() {
-alert = undefined;
   });
 });
 } else if (data.msgtype === 'apierror') {
   $log.error('API error: ' + data.errorinfo);
   $translate(['SERVER_ERROR_TITLE', 'API_ERROR_CONTENT', 'CLOSE'], 
{errorcode: data.errorcode, errorinfo: data.errorinfo})
 .then(function (translations) {
-  var alert = $mdDialog.alert({
+  registerAlert({
 title: translations['SERVER_ERROR_TITLE'],
 content: translations['API_ERROR_CONTENT'],
 ok: translations['CLOSE']
   });
-
-  $mdDialog
-.show(alert)
-.finally(function () {
-  alert = undefined;
-});
 });
 } else {
   $log.error(Unhandled message: %o, data);
@@ -110,18 +97,35 @@
 if (connectionError) {
   $log.warn('No websocket message after 20 seconds.');
   $translate(['SERVER_ERROR_TITLE', 'SERVER_ERROR_CONTENT', 
'CLOSE']).then(function (translations) {
-var alert = $mdDialog.alert({
+registerAlert({
   title: translations['SERVER_ERROR_TITLE'],
   content: translations['SERVER_ERROR_CONTENT'],
   ok: translations['CLOSE']
 });
-
-$mdDialog
-  .show(alert)
-  .finally(function () {
-alert = undefined;
-  });
   });
 }
   }
+
+  var currentAlert = false;
+  var alerts = [];
+  /**
+   * Register an $mdDialog alert and schedules it to be shown
+   * @param arg paramter for $mdDialog.alert()
+   */
+  function registerAlert (arg) {
+var alert = $mdDialog.alert(arg);
+alerts.push(alert);
+showAlert();
+  }
+  function showAlert () {
+if (!currentAlert  alerts.length) {
+  currentAlert = alerts.shift();
+  $mdDialog
+.show(currentAlert)
+.finally(function () {
+  currentAlert = false;
+  showAlert();
+});
+}
+  }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/225714
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I44639e4a1d84111e42cd58302662e1c5126576b3
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix confusing error message - change (labs...crosswatch)

2015-07-19 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/225738

Change subject: Fix confusing error message
..

Fix confusing error message

Add a canary task to indicate that the server is working.

Change-Id: I960304d1b74490034ee9f25ab899cb5a5a8da032
---
M backend/celery/tasks.py
M frontend/src/app/runBlock.js
M frontend/src/i18n/en.json
M frontend/src/i18n/qqq.json
4 files changed, 21 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/38/225738/1

diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index 196dad5..a8bd338 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -23,6 +23,14 @@
 
 
 @app.task
+def canary(obj):
+
+A canary in a coal mine
+
+mw = MediaWiki(redis_channel=obj['redis_channel'])
+mw.publish({'msgtype': canary})
+
+@app.task
 def initial_task(obj):
 
 Task called on login, start the chain to load the
@@ -64,6 +72,9 @@
 for chunk in chunks(projects, 50):
 check_editcount.delay(obj, chunk, username)
 
+# Send back canary reply to show that the server is working
+canary(obj)
+
 
 @app.task
 def check_editcount(obj, project_chunk, username):
diff --git a/frontend/src/app/runBlock.js b/frontend/src/app/runBlock.js
index 39dfe37..8539bf7 100644
--- a/frontend/src/app/runBlock.js
+++ b/frontend/src/app/runBlock.js
@@ -37,7 +37,7 @@
*/
   $rootScope.$on('login', function () {
 dataService.queryWatchlist();
-$timeout(errorHandler, 2); // show error if no watchlist after 20 secs
+$timeout(errorHandler, 1); // show error if no response after 10 secs
   });
 
   /**
@@ -61,6 +61,12 @@
   dataService.addNotificationEntries(data)
 } else if (data.msgtype === 'diff_response') {
   dataService.diffResponseHandler(data)
+} else if (data.msgtype === 'canary') {
+  connectionError = false;
+  // disable loading spinner after 20 sec (no watchlist entries for the 
time period)
+  $timeout(function () {
+dataService.watchlist.loading = false;
+  }, 2)
 } else if (data.msgtype === 'loginerror') {
   $log.error('login failed with: ' + data.errorinfo);
   $translate(['OAUTH_FAILURE_TITLE', 'OAUTH_FAILURE_CONTENT', 'CLOSE'], 
{error: data.errorinfo})
diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json
index a69150c..6262027 100644
--- a/frontend/src/i18n/en.json
+++ b/frontend/src/i18n/en.json
@@ -51,7 +51,7 @@
   OAUTH_FAILURE_CONTENT: Authentication failed, you might have revoked the 
authorization for this application. Please logout and sign in again. Error 
information: {{error}},
   CLOSE: Close,
   SERVER_ERROR_TITLE: Server failure,
-  SERVER_ERROR_CONTENT: No watchlist could be retrieved. Either you have no 
watchlist events for the selected time period or this is an internal server 
error.,
+  SERVER_ERROR_CONTENT: No watchlist could be retrieved. This is an 
internal server error, please open a bug report if the problem persists.,
   API_ERROR_CONTENT: An API request failed with error code {{errorcode}} 
and error information: {{errorinfo}},
   NAMESPACES: Namespaces,
   NS_0:  Article,
diff --git a/frontend/src/i18n/qqq.json b/frontend/src/i18n/qqq.json
index 455f6c2..2513d7f 100644
--- a/frontend/src/i18n/qqq.json
+++ b/frontend/src/i18n/qqq.json
@@ -22,8 +22,8 @@
   OAUTH_FAILURE_CONTENT: Error message that MediaWiki login failed,
   CLOSE: Close dialog button,
   SERVER_ERROR_TITLE: Title for error message,
-  SERVER_ERROR_CONTENT: Error message shown indicating that the server 
didn't send any data,
-  API_ERROR_CONTENT: Error message to show in case of an MediaWiki API 
error,
+  SERVER_ERROR_CONTENT: Error message shown indicating that the server 
didn't respond.,
+  API_ERROR_CONTENT: Error message shown in case of an MediaWiki API 
error.,
   NAMESPACES: MediaWiki Namespaces,
   NS_0:  MediaWiki namespace name for default namespace,
   NS_1:  MediaWiki namespace name,

-- 
To view, visit https://gerrit.wikimedia.org/r/225738
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I960304d1b74490034ee9f25ab899cb5a5a8da032
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Serve material-design-icons from cdnjs - change (labs...crosswatch)

2015-07-18 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Serve material-design-icons from cdnjs
..


Serve material-design-icons from cdnjs

Bug: T105980

Change-Id: Ie7768b827314dcc46013b88bdf86cea3924ec473
---
M README.md
M frontend/bower.json
M frontend/src/app/index.css
3 files changed, 6 insertions(+), 6 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/README.md b/README.md
index 456f67d..ea5ad0e 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@
 sudo npm install -g gulp bower
 cd frontend
 npm install
-bower install
+bower install --production
 ```
 
 While developing use `gulp serve` to preview changes and `gulp build` to
diff --git a/frontend/bower.json b/frontend/bower.json
index 65f8510..4db058a 100644
--- a/frontend/bower.json
+++ b/frontend/bower.json
@@ -15,10 +15,10 @@
 angular-local-storage: 0.2.x,
 angular-motion: ~0.4.2,
 angular-material: ~0.10.0,
-material-design-icons: ~2.0.0,
 ngInfiniteScroll: ~1.2.1
   },
   devDependencies: {
+material-design-icons: ~2.0.0,
 angular-mocks: ~1.4.0
   },
   resolutions: {
diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index a7538bd..c9bbbf5 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -268,12 +268,12 @@
   font-family: 'Material Icons';
   font-style: normal;
   font-weight: 400;
-  src: url(//tools.wmflabs.org/crosswatch/fonts/MaterialIcons-Regular.eot); /* 
For IE6-8 */
+  src: 
url(//tools-static.wmflabs.org/cdnjs/ajax/libs/material-design-icons/2.0.0/iconfont/MaterialIcons-Regular.eot);
 /* For IE6-8 */
   src: local('Material Icons'),
   local('MaterialIcons-Regular'),
-  url(//tools.wmflabs.org/crosswatch/fonts/MaterialIcons-Regular.woff2) 
format('woff2'),
-  url(//tools.wmflabs.org/crosswatch/fonts/MaterialIcons-Regular.woff) 
format('woff'),
-  url(//tools.wmflabs.org/crosswatch/fonts/MaterialIcons-Regular.ttf) 
format('truetype');
+  
url(//tools-static.wmflabs.org/cdnjs/ajax/libs/material-design-icons/2.0.0/iconfont/MaterialIcons-Regular.woff2)
 format('woff2'),
+  
url(//tools-static.wmflabs.org/cdnjs/ajax/libs/material-design-icons/2.0.0/iconfont/MaterialIcons-Regular.woff)
 format('woff'),
+  
url(//tools-static.wmflabs.org/cdnjs/ajax/libs/material-design-icons/2.0.0/iconfont/MaterialIcons-Regular.ttf)
 format('truetype');
 }
 
 .material-icons {

-- 
To view, visit https://gerrit.wikimedia.org/r/225551
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie7768b827314dcc46013b88bdf86cea3924ec473
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Serve material-design-icons from cdnjs - change (labs...crosswatch)

2015-07-18 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/225551

Change subject: Serve material-design-icons from cdnjs
..

Serve material-design-icons from cdnjs

Bug: T105980

Change-Id: Ie7768b827314dcc46013b88bdf86cea3924ec473
---
M README.md
M frontend/bower.json
M frontend/src/app/index.css
3 files changed, 6 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/51/225551/1

diff --git a/README.md b/README.md
index 456f67d..ea5ad0e 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@
 sudo npm install -g gulp bower
 cd frontend
 npm install
-bower install
+bower install --production
 ```
 
 While developing use `gulp serve` to preview changes and `gulp build` to
diff --git a/frontend/bower.json b/frontend/bower.json
index 65f8510..4db058a 100644
--- a/frontend/bower.json
+++ b/frontend/bower.json
@@ -15,10 +15,10 @@
 angular-local-storage: 0.2.x,
 angular-motion: ~0.4.2,
 angular-material: ~0.10.0,
-material-design-icons: ~2.0.0,
 ngInfiniteScroll: ~1.2.1
   },
   devDependencies: {
+material-design-icons: ~2.0.0,
 angular-mocks: ~1.4.0
   },
   resolutions: {
diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index a7538bd..c9bbbf5 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -268,12 +268,12 @@
   font-family: 'Material Icons';
   font-style: normal;
   font-weight: 400;
-  src: url(//tools.wmflabs.org/crosswatch/fonts/MaterialIcons-Regular.eot); /* 
For IE6-8 */
+  src: 
url(//tools-static.wmflabs.org/cdnjs/ajax/libs/material-design-icons/2.0.0/iconfont/MaterialIcons-Regular.eot);
 /* For IE6-8 */
   src: local('Material Icons'),
   local('MaterialIcons-Regular'),
-  url(//tools.wmflabs.org/crosswatch/fonts/MaterialIcons-Regular.woff2) 
format('woff2'),
-  url(//tools.wmflabs.org/crosswatch/fonts/MaterialIcons-Regular.woff) 
format('woff'),
-  url(//tools.wmflabs.org/crosswatch/fonts/MaterialIcons-Regular.ttf) 
format('truetype');
+  
url(//tools-static.wmflabs.org/cdnjs/ajax/libs/material-design-icons/2.0.0/iconfont/MaterialIcons-Regular.woff2)
 format('woff2'),
+  
url(//tools-static.wmflabs.org/cdnjs/ajax/libs/material-design-icons/2.0.0/iconfont/MaterialIcons-Regular.woff)
 format('woff'),
+  
url(//tools-static.wmflabs.org/cdnjs/ajax/libs/material-design-icons/2.0.0/iconfont/MaterialIcons-Regular.ttf)
 format('truetype');
 }
 
 .material-icons {

-- 
To view, visit https://gerrit.wikimedia.org/r/225551
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie7768b827314dcc46013b88bdf86cea3924ec473
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Improve translation setup, add qqq.json, rtl support - change (labs...crosswatch)

2015-07-17 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Improve translation setup, add qqq.json, rtl support
..


Improve translation setup, add qqq.json, rtl support

* added qqq.json message documentation
* fixed message interpolation
* added gulp task to autogenerate list of available translations
* added support for rtl languages

Bug: T101438
Change-Id: I80928d9041df67a450b103e5905cf313fd47b351
---
M frontend/gulp/build.js
A frontend/gulp/translate.js
M frontend/gulpfile.js
M frontend/package.json
M frontend/src/app/main/main.controller.js
M frontend/src/app/main/main.html
A frontend/src/app/translateAutogenerated.js
M frontend/src/app/translationProvider.js
M frontend/src/components/navbar/navbar.controller.js
M frontend/src/components/watchlist/edit_twolines.directive.html
M frontend/src/components/watchlist/logevent.directive.html
M frontend/src/components/watchlist/user.directive.js
R frontend/src/i18n/de.json
R frontend/src/i18n/en.json
R frontend/src/i18n/pt.json
A frontend/src/i18n/qqq.json
16 files changed, 220 insertions(+), 63 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/gulp/build.js b/frontend/gulp/build.js
index 3013bbe..c09312a 100644
--- a/frontend/gulp/build.js
+++ b/frontend/gulp/build.js
@@ -1,6 +1,7 @@
 'use strict';
 
 var gulp = require('gulp');
+var jsonAngularTranslate = require('./translate');
 
 var paths = gulp.paths;
 
@@ -23,6 +24,14 @@
 .pipe($.size());
 });
 
+gulp.task('i18n-autogenerate', function() {
+  return gulp.src('src/i18n/*.json')
+.pipe(jsonAngularTranslate(translateAutogenerated.js, {
+  module: gulp.toolname
+}))
+.pipe(gulp.dest('src/app'))
+});
+
 gulp.task('partials', function () {
   return gulp.src([
 paths.src + '/{app,components}/**/*.html',
diff --git a/frontend/gulp/translate.js b/frontend/gulp/translate.js
new file mode 100644
index 000..a508096
--- /dev/null
+++ b/frontend/gulp/translate.js
@@ -0,0 +1,71 @@
+/**
+ * Inspired by gulp-angular-translate by RobbinHabermehl
+ * License: MIT
+ * */
+
+var concat = require('gulp-concat');
+var es = require('event-stream');
+var gutil = require('gulp-util');
+
+function cacheTranslations(options) {
+  return es.map(function(file, callback) {
+var template = '{key: %= langcode %, language: %= langname %, 
dir: %= direction %},';
+var json = JSON.parse(file.contents.toString());
+var langname = json[META_LANGUAGE];
+
+var direction = ltr;
+if (META_DIRECTION in json) {
+  direction = json[META_DIRECTION];
+}
+var langcode = 
file.path.split('/').pop().match(/^([a-z]+[_|-]?(?:[A-Z]+)?)\.json$/i).pop();
+
+file.contents = new Buffer(gutil.template(template, {
+  langname: langname,
+  file: file,
+  langcode: langcode,
+  direction: direction
+}));
+
+if (langcode === qqq) {
+  callback();
+} else {
+  callback(null, file);
+}
+  });
+}
+
+function wrapTranslations(options) {
+  var template =
+'\'use strict\';\n' +
+'/** This file was autogenerated by gulp task i18n-autogenerate **/\n' +
+'angular\n' +
+'  .module(\'%= module %\')\n' +
+'  .constant(\'translationList\', [\n' +
+'%= contents %\n' +
+'  ]\n' +
+');';
+  return es.map(function(file, callback) {
+file.contents = new Buffer(gutil.template(template, {
+  contents: file.contents,
+  file: file,
+  module: options.module || 'translate'
+}));
+callback(null, file);
+  });
+}
+
+function crosswatchTranslate(filename, options) {
+  if (typeof filename === 'string') {
+options = options || {};
+  } else {
+options = filename || {};
+filename = options.filename || 'translations.js';
+  }
+  return es.pipeline(
+cacheTranslations(options),
+concat(filename),
+wrapTranslations(options)
+  );
+}
+
+module.exports = crosswatchTranslate;
diff --git a/frontend/gulpfile.js b/frontend/gulpfile.js
index 809f475..6149538 100644
--- a/frontend/gulpfile.js
+++ b/frontend/gulpfile.js
@@ -2,7 +2,7 @@
 
 var gulp = require('gulp');
 
-gulp.toolname = 'crosswatch'
+gulp.toolname = 'crosswatch';
 
 gulp.paths = {
   src: 'src',
diff --git a/frontend/package.json b/frontend/package.json
index c901473..e61d206 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -8,40 +8,43 @@
 gulp-jsonlint: ^1.0.2
   },
   devDependencies: {
-gulp: ~3.8.10,
-gulp-autoprefixer: ~2.0.0,
-gulp-angular-templatecache: ~1.4.2,
+browser-sync: ~1.7.1,
+chalk: ~0.5.1,
 del: ~0.1.3,
+event-stream: ^3.3.1,
+gulp: ~3.8.10,
+gulp-angular-filesort: ~1.0.4,
+gulp-angular-templatecache: ~1.4.2,
+gulp-autoprefixer: ~2.0.0,
+gulp-concat: ^2.6.0,
 gulp-consolidate: ~0.1.2,
 gulp-csso: ~0.2.9,
 gulp-filter: ~1.0.2,
 gulp-flatten: ~0.0.4,
+gulp-inject: ~1.0.2,
 gulp-jshint: ~1.9.0,
+gulp-karma: ~0.0.4,
  

[MediaWiki-commits] [Gerrit] Improve translation setup - change (labs...crosswatch)

2015-07-16 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/225282

Change subject: Improve translation setup
..

Improve translation setup

* added qqq.json message documentation
* fixed message interpolation
* added gulp task to autogenerate list of available translations

Bug: T101438
Change-Id: I80928d9041df67a450b103e5905cf313fd47b351
---
M frontend/gulp/build.js
A frontend/gulp/translate.js
M frontend/gulpfile.js
M frontend/package.json
A frontend/src/app/translateAutogenerated.js
M frontend/src/app/translationProvider.js
R frontend/src/i18n/de.json
R frontend/src/i18n/en.json
R frontend/src/i18n/pt.json
A frontend/src/i18n/qqq.json
10 files changed, 173 insertions(+), 46 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/82/225282/1

diff --git a/frontend/gulp/build.js b/frontend/gulp/build.js
index 3013bbe..c09312a 100644
--- a/frontend/gulp/build.js
+++ b/frontend/gulp/build.js
@@ -1,6 +1,7 @@
 'use strict';
 
 var gulp = require('gulp');
+var jsonAngularTranslate = require('./translate');
 
 var paths = gulp.paths;
 
@@ -23,6 +24,14 @@
 .pipe($.size());
 });
 
+gulp.task('i18n-autogenerate', function() {
+  return gulp.src('src/i18n/*.json')
+.pipe(jsonAngularTranslate(translateAutogenerated.js, {
+  module: gulp.toolname
+}))
+.pipe(gulp.dest('src/app'))
+});
+
 gulp.task('partials', function () {
   return gulp.src([
 paths.src + '/{app,components}/**/*.html',
diff --git a/frontend/gulp/translate.js b/frontend/gulp/translate.js
new file mode 100644
index 000..af92656
--- /dev/null
+++ b/frontend/gulp/translate.js
@@ -0,0 +1,64 @@
+/**
+ * Inspired by gulp-angular-translate by RobbinHabermehl
+ * License: MIT
+ * */
+
+var concat = require('gulp-concat');
+var es = require('event-stream');
+var gutil = require('gulp-util');
+
+function cacheTranslations(options) {
+  return es.map(function(file, callback) {
+var template = '{key: %= langcode %, language: %= langname 
%},';
+var langname = JSON.parse(file.contents.toString())[META_LANGUAGE];
+var langcode = 
file.path.split('/').pop().match(/^([a-z]+[_|-]?(?:[A-Z]+)?)\.json$/i).pop();
+
+file.contents = new Buffer(gutil.template(template, {
+  langname: langname,
+  file: file,
+  langcode: langcode
+}));
+
+if (langcode === qqq) {
+  callback();
+} else {
+  callback(null, file);
+}
+  });
+}
+
+function wrapTranslations(options) {
+  var template =
+'\'use strict\';\n' +
+'/** This file is autogenerated by gulp task i18n-autogenerate, do not 
change by hand **/\n' +
+'angular\n' +
+'  .module(\'%= module %\')\n' +
+'  .constant(\'translationList\', [\n' +
+'%= contents %\n' +
+'  ]\n' +
+');';
+  return es.map(function(file, callback) {
+file.contents = new Buffer(gutil.template(template, {
+  contents: file.contents,
+  file: file,
+  module: options.module || 'translate'
+}));
+callback(null, file);
+  });
+}
+
+function crosswatchTranslate(filename, options) {
+  if (typeof filename === 'string') {
+options = options || {};
+  } else {
+options = filename || {};
+filename = options.filename || 'translations.js';
+  }
+  return es.pipeline(
+cacheTranslations(options),
+concat(filename),
+wrapTranslations(options)
+  );
+}
+
+module.exports = crosswatchTranslate;
diff --git a/frontend/gulpfile.js b/frontend/gulpfile.js
index 809f475..6149538 100644
--- a/frontend/gulpfile.js
+++ b/frontend/gulpfile.js
@@ -2,7 +2,7 @@
 
 var gulp = require('gulp');
 
-gulp.toolname = 'crosswatch'
+gulp.toolname = 'crosswatch';
 
 gulp.paths = {
   src: 'src',
diff --git a/frontend/package.json b/frontend/package.json
index c901473..e61d206 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -8,40 +8,43 @@
 gulp-jsonlint: ^1.0.2
   },
   devDependencies: {
-gulp: ~3.8.10,
-gulp-autoprefixer: ~2.0.0,
-gulp-angular-templatecache: ~1.4.2,
+browser-sync: ~1.7.1,
+chalk: ~0.5.1,
 del: ~0.1.3,
+event-stream: ^3.3.1,
+gulp: ~3.8.10,
+gulp-angular-filesort: ~1.0.4,
+gulp-angular-templatecache: ~1.4.2,
+gulp-autoprefixer: ~2.0.0,
+gulp-concat: ^2.6.0,
 gulp-consolidate: ~0.1.2,
 gulp-csso: ~0.2.9,
 gulp-filter: ~1.0.2,
 gulp-flatten: ~0.0.4,
+gulp-inject: ~1.0.2,
 gulp-jshint: ~1.9.0,
+gulp-karma: ~0.0.4,
 gulp-load-plugins: ~0.7.1,
+gulp-minify-html: ~0.1.7,
+gulp-ng-annotate: ~0.3.6,
+gulp-protractor: ~0.0.11,
+gulp-rename: ~1.2.0,
+gulp-replace: ~0.5.0,
+gulp-rev: ~2.0.1,
+gulp-rev-replace: ~0.3.1,
 gulp-size: ~1.1.0,
 gulp-uglify: ~1.0.1,
 gulp-useref: ~1.0.2,
-gulp-ng-annotate: ~0.3.6,
-gulp-replace: ~0.5.0,
-gulp-rename: ~1.2.0,
-gulp-rev: ~2.0.1,
-gulp-rev-replace: ~0.3.1,
-gulp-minify-html: ~0.1.7,
-

[MediaWiki-commits] [Gerrit] Forward API errors to client, fix error handling - change (labs...crosswatch)

2015-07-16 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Forward API errors to client, fix error handling
..


Forward API errors to client, fix error handling

Show error message if error in MW API response, cleanup error
handling code.

Bug: T106057
Change-Id: I404475b19b9478b4f563453fd944d48785375150
---
M backend/celery/api.py
M frontend/src/app/runBlock.js
M frontend/src/i18n/locale-en.json
3 files changed, 50 insertions(+), 38 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/celery/api.py b/backend/celery/api.py
index 866ccc7..16c7617 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -56,14 +56,21 @@
 time = now + delta
 return time.strftime(%Y%m%d%H%M%S)
 
-@staticmethod
-def handle_response(response):
+def handle_response(self, response):
 if 'error' in response:
 logger.error(response['error'])
-if response['error']['code'] == mwoauth-invalid-authorization:
-raise Exception(OAuth authentication failed)
 
-raise Exception(str(response['error']))
+if self.redis_channel:
+if response['error']['code'] == 
u'mwoauth-invalid-authorization':
+self.publish({'msgtype': 'loginerror',
+  'errorinfo': response['error']['info']})
+else:
+self.publish({'msgtype': 'apierror',
+  'errorcode': response['error']['code'],
+  'errorinfo': response['error']['info']})
+
+raise Exception(response['error']['code'], str(response))
+
 if 'warnings' in response:
 logger.warn(API-request warning:  + str(response['warnings']))
 
@@ -76,20 +83,13 @@
 return response
 
 def query_gen(self, params):
-params['format'] = json
 params['action'] = query
 last_continue = {'continue': }
 while True:
 p = params.copy()
 p.update(last_continue)
-response = requests.get(self.api_url, params=p, auth=self.auth,
-headers=self.headers).json()
+response = self.query(p)
 
-if 'error' in response:
-raise Exception(str(response['error']))
-if 'warnings' in response:
-warning = response['warnings']['query']['*']
-logger.warn(API-request warning:  + warning)
 if 'query' in response:
 yield response['query']
 if 'continue' not in response:
@@ -116,19 +116,13 @@
 return token
 
 def get_username(self):
-try:
-params = {
-'action': query,
-'meta': userinfo,
-}
-response = self.query(params)
-username = response['query']['userinfo']['name']
-return username
-except KeyError as e:
-if response['error']['code'] == mwoauth-invalid-authorization:
-logger.error('mwoauth-invalid-authorization')
-raise Exception(OAuth authentication failed)
-raise e
+params = {
+'action': query,
+'meta': userinfo,
+}
+response = self.query(params)
+username = response['query']['userinfo']['name']
+return username
 
 def get_wikis(self, use_cache=True):
 key = config.redis_prefix + 'cached_wikis'
diff --git a/frontend/src/app/runBlock.js b/frontend/src/app/runBlock.js
index 144abb7..4c50a9b 100644
--- a/frontend/src/app/runBlock.js
+++ b/frontend/src/app/runBlock.js
@@ -62,21 +62,38 @@
 } else if (data.msgtype === 'diff_response') {
   dataService.diffResponseHandler(data)
 } else if (data.msgtype === 'loginerror') {
-  $log.error('login failed!');
+  $log.error('login failed with: ' + data.errorinfo);
 
-  $translate(['OAUTH_FAILURE_TITLE', 'OAUTH_FAILURE_CONTENT', 
'CLOSE']).then(function (translations) {
-var alert = $mdDialog.alert({
-  title: translations['OAUTH_FAILURE_TITLE'],
-  content: translations['OAUTH_FAILURE_CONTENT'],
-  ok: translations['CLOSE']
-});
+  $translate(['OAUTH_FAILURE_TITLE', 'OAUTH_FAILURE_CONTENT', 'CLOSE'], 
{error: data.errorinfo})
+.then(function (translations) {
+  var alert = $mdDialog.alert({
+title: translations['OAUTH_FAILURE_TITLE'],
+content: translations['OAUTH_FAILURE_CONTENT'],
+ok: translations['CLOSE']
+  });
 
-$mdDialog
+  $mdDialog
   .show( alert )
   .finally(function() {
 alert = undefined;
   });
-  });
+});
+} else if (data.msgtype === 'apierror') {
+  $log.error('API error: ' + data.errorinfo);
+  

[MediaWiki-commits] [Gerrit] Forward API errors to client, fix error handling - change (labs...crosswatch)

2015-07-16 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/225258

Change subject: Forward API errors to client, fix error handling
..

Forward API errors to client, fix error handling

Show error message if error in MW API response, cleanup error
handling code.

Bug: T106057
Change-Id: I404475b19b9478b4f563453fd944d48785375150
---
M backend/celery/api.py
M frontend/src/app/runBlock.js
M frontend/src/i18n/locale-en.json
3 files changed, 50 insertions(+), 38 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/58/225258/1

diff --git a/backend/celery/api.py b/backend/celery/api.py
index 866ccc7..16c7617 100644
--- a/backend/celery/api.py
+++ b/backend/celery/api.py
@@ -56,14 +56,21 @@
 time = now + delta
 return time.strftime(%Y%m%d%H%M%S)
 
-@staticmethod
-def handle_response(response):
+def handle_response(self, response):
 if 'error' in response:
 logger.error(response['error'])
-if response['error']['code'] == mwoauth-invalid-authorization:
-raise Exception(OAuth authentication failed)
 
-raise Exception(str(response['error']))
+if self.redis_channel:
+if response['error']['code'] == 
u'mwoauth-invalid-authorization':
+self.publish({'msgtype': 'loginerror',
+  'errorinfo': response['error']['info']})
+else:
+self.publish({'msgtype': 'apierror',
+  'errorcode': response['error']['code'],
+  'errorinfo': response['error']['info']})
+
+raise Exception(response['error']['code'], str(response))
+
 if 'warnings' in response:
 logger.warn(API-request warning:  + str(response['warnings']))
 
@@ -76,20 +83,13 @@
 return response
 
 def query_gen(self, params):
-params['format'] = json
 params['action'] = query
 last_continue = {'continue': }
 while True:
 p = params.copy()
 p.update(last_continue)
-response = requests.get(self.api_url, params=p, auth=self.auth,
-headers=self.headers).json()
+response = self.query(p)
 
-if 'error' in response:
-raise Exception(str(response['error']))
-if 'warnings' in response:
-warning = response['warnings']['query']['*']
-logger.warn(API-request warning:  + warning)
 if 'query' in response:
 yield response['query']
 if 'continue' not in response:
@@ -116,19 +116,13 @@
 return token
 
 def get_username(self):
-try:
-params = {
-'action': query,
-'meta': userinfo,
-}
-response = self.query(params)
-username = response['query']['userinfo']['name']
-return username
-except KeyError as e:
-if response['error']['code'] == mwoauth-invalid-authorization:
-logger.error('mwoauth-invalid-authorization')
-raise Exception(OAuth authentication failed)
-raise e
+params = {
+'action': query,
+'meta': userinfo,
+}
+response = self.query(params)
+username = response['query']['userinfo']['name']
+return username
 
 def get_wikis(self, use_cache=True):
 key = config.redis_prefix + 'cached_wikis'
diff --git a/frontend/src/app/runBlock.js b/frontend/src/app/runBlock.js
index 144abb7..4c50a9b 100644
--- a/frontend/src/app/runBlock.js
+++ b/frontend/src/app/runBlock.js
@@ -62,21 +62,38 @@
 } else if (data.msgtype === 'diff_response') {
   dataService.diffResponseHandler(data)
 } else if (data.msgtype === 'loginerror') {
-  $log.error('login failed!');
+  $log.error('login failed with: ' + data.errorinfo);
 
-  $translate(['OAUTH_FAILURE_TITLE', 'OAUTH_FAILURE_CONTENT', 
'CLOSE']).then(function (translations) {
-var alert = $mdDialog.alert({
-  title: translations['OAUTH_FAILURE_TITLE'],
-  content: translations['OAUTH_FAILURE_CONTENT'],
-  ok: translations['CLOSE']
-});
+  $translate(['OAUTH_FAILURE_TITLE', 'OAUTH_FAILURE_CONTENT', 'CLOSE'], 
{error: data.errorinfo})
+.then(function (translations) {
+  var alert = $mdDialog.alert({
+title: translations['OAUTH_FAILURE_TITLE'],
+content: translations['OAUTH_FAILURE_CONTENT'],
+ok: translations['CLOSE']
+  });
 
-$mdDialog
+  $mdDialog
   .show( alert )
   .finally(function() {
 alert = undefined;
   });
-  });
+});
+} else if (data.msgtype === 'apierror') {

[MediaWiki-commits] [Gerrit] Reduce font size to 1.4rem, improved traditional watchlist l... - change (labs...crosswatch)

2015-07-15 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Reduce font size to 1.4rem, improved traditional watchlist 
layout
..


Reduce font size to 1.4rem, improved traditional watchlist layout

* Reduced fontsize from 1.6rem to 1.4rem, 13px seems too small
* Increased container width to 1400px for traditional watchlist layout
* Added the option for traditional watchlist layout to default filter tab
* Added missing spaces

Bug: T104606
Change-Id: I56ce26b7c5dd9768f8c70cb14acd65791e5a0b50
---
M frontend/src/app/index.css
M frontend/src/components/notifications/notifications.html
M frontend/src/components/settings/settings.html
M frontend/src/components/watchlist/edit_twolines.directive.html
M frontend/src/components/watchlist/page.directive.js
M frontend/src/components/watchlist/user.directive.js
M frontend/src/components/watchlist/watchlist.html
M frontend/src/i18n/locale-en.json
8 files changed, 22 insertions(+), 8 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 1c9dbcd..a7538bd 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -6,7 +6,7 @@
 body {
   background-color: #edecec;
   font-family: 'Roboto', sans-serif;
-  font-size: 1.6rem;
+  font-size: 1.4rem;
 }
 
 div[role=main] {
@@ -125,6 +125,12 @@
   max-width: 1200px;
 }
 
+.whitebox-oneline {
+  background-color: white;
+  width: 100%;
+  max-width: 1400px;
+}
+
 .watchlist-container {
   padding: 0;
 }
diff --git a/frontend/src/components/notifications/notifications.html 
b/frontend/src/components/notifications/notifications.html
index c750d74..2046882 100644
--- a/frontend/src/components/notifications/notifications.html
+++ b/frontend/src/components/notifications/notifications.html
@@ -1,5 +1,6 @@
 div ng-controller=NotificationsCtrl as ctrl layout=row 
layout-align=center center class=md-padding
-  md-whiteframe class=md-whiteframe-z5 whitebox 
ng-if=ctrl.notifications.length
+  md-whiteframe class=md-whiteframe-z5 ng-class=(ctrl.config.oneline) ? 
'whitebox-oneline' : 'whitebox'
+ ng-if=ctrl.notifications.length
 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 c40abcd..d06f254 100644
--- a/frontend/src/components/settings/settings.html
+++ b/frontend/src/components/settings/settings.html
@@ -1,5 +1,6 @@
 div ng-controller=SettingsCtrl as ctrl layout=row layout-align=center 
start
-  md-whitefram class=md-whiteframe-z5 whitebox id=settings
+  md-whitefram class=md-whiteframe-z5 ng-class=(ctrl.config.oneline) ? 
'whitebox-oneline' : 'whitebox'
+id=settings
 md-tabs md-dynamic-height md-border-bottom
   md-tab label={{'FILTER' | translate}}
 div layout=row
@@ -46,6 +47,11 @@
   /md-list-item
 /md-list
   /md-item
+  md-subheader class=md-no-sticky{{'STYLE' | 
translate}}/md-subheader
+  md-list-item
+p translate=ONELINE/p
+md-checkbox ng-model=ctrl.config.oneline 
ng-change=ctrl.saveConfig()/md-checkbox
+  /md-list-item
 /div
   /md-list
 /div
diff --git a/frontend/src/components/watchlist/edit_twolines.directive.html 
b/frontend/src/components/watchlist/edit_twolines.directive.html
index ecae039..4266f0b 100644
--- a/frontend/src/components/watchlist/edit_twolines.directive.html
+++ b/frontend/src/components/watchlist/edit_twolines.directive.html
@@ -5,7 +5,7 @@
ng-class=::event.titlestyle  target=_blank{{::event.title}}/a
 span ng-if=event.clicked
   (a stop-event 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=history target=_blank translate=HISTORY/a)
-/span
+/span#32;
 span dir=ltr ng-class=::event.bytestyle({{::event.bytes}})/span
 div
   user/user
diff --git a/frontend/src/components/watchlist/page.directive.js 
b/frontend/src/components/watchlist/page.directive.js
index c5abfc3..eb3cc37 100644
--- a/frontend/src/components/watchlist/page.directive.js
+++ b/frontend/src/components/watchlist/page.directive.js
@@ -9,7 +9,7 @@
 template: 'a stop-event href={{::event.projecturl}}/wiki/{{::title | 
urlEncode}}  target=_blank{{::title}}/a ' +
 'span ng-if=event.clicked' +
 '(a stop-event href={{::event.projecturl}}/w/index.php?title={{::title | 
urlEncode}}action=history target=_blank translate=HISTORY/a)' +
-'/span',
+'/span#32;',
 restrict: 'E'
   };
   return directive;
diff --git a/frontend/src/components/watchlist/user.directive.js 
b/frontend/src/components/watchlist/user.directive.js
index c246eb2..4791753 100644
--- a/frontend/src/components/watchlist/user.directive.js
+++ b/frontend/src/components/watchlist/user.directive.js
@@ -9,7 +9,7 

[MediaWiki-commits] [Gerrit] Reduce font size to 1.4rem, improved traditional watchlist l... - change (labs...crosswatch)

2015-07-15 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/224776

Change subject: Reduce font size to 1.4rem, improved traditional watchlist 
layout
..

Reduce font size to 1.4rem, improved traditional watchlist layout

* Reduced fontsize from 1.6rem to 1.4rem, 13px seems too small
* Increased container width to 1400px for traditional watchlist layout
* Added the option for traditional watchlist layout to default filter tab
* Added missing spaces

Bug: T104606
Change-Id: I56ce26b7c5dd9768f8c70cb14acd65791e5a0b50
---
M frontend/src/app/index.css
M frontend/src/components/notifications/notifications.html
M frontend/src/components/settings/settings.html
M frontend/src/components/watchlist/edit_twolines.directive.html
M frontend/src/components/watchlist/page.directive.js
M frontend/src/components/watchlist/user.directive.js
M frontend/src/components/watchlist/watchlist.html
M frontend/src/i18n/locale-en.json
8 files changed, 22 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/76/224776/1

diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 1c9dbcd..a7538bd 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -6,7 +6,7 @@
 body {
   background-color: #edecec;
   font-family: 'Roboto', sans-serif;
-  font-size: 1.6rem;
+  font-size: 1.4rem;
 }
 
 div[role=main] {
@@ -125,6 +125,12 @@
   max-width: 1200px;
 }
 
+.whitebox-oneline {
+  background-color: white;
+  width: 100%;
+  max-width: 1400px;
+}
+
 .watchlist-container {
   padding: 0;
 }
diff --git a/frontend/src/components/notifications/notifications.html 
b/frontend/src/components/notifications/notifications.html
index c750d74..2046882 100644
--- a/frontend/src/components/notifications/notifications.html
+++ b/frontend/src/components/notifications/notifications.html
@@ -1,5 +1,6 @@
 div ng-controller=NotificationsCtrl as ctrl layout=row 
layout-align=center center class=md-padding
-  md-whiteframe class=md-whiteframe-z5 whitebox 
ng-if=ctrl.notifications.length
+  md-whiteframe class=md-whiteframe-z5 ng-class=(ctrl.config.oneline) ? 
'whitebox-oneline' : 'whitebox'
+ ng-if=ctrl.notifications.length
 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 c40abcd..d06f254 100644
--- a/frontend/src/components/settings/settings.html
+++ b/frontend/src/components/settings/settings.html
@@ -1,5 +1,6 @@
 div ng-controller=SettingsCtrl as ctrl layout=row layout-align=center 
start
-  md-whitefram class=md-whiteframe-z5 whitebox id=settings
+  md-whitefram class=md-whiteframe-z5 ng-class=(ctrl.config.oneline) ? 
'whitebox-oneline' : 'whitebox'
+id=settings
 md-tabs md-dynamic-height md-border-bottom
   md-tab label={{'FILTER' | translate}}
 div layout=row
@@ -46,6 +47,11 @@
   /md-list-item
 /md-list
   /md-item
+  md-subheader class=md-no-sticky{{'STYLE' | 
translate}}/md-subheader
+  md-list-item
+p translate=ONELINE/p
+md-checkbox ng-model=ctrl.config.oneline 
ng-change=ctrl.saveConfig()/md-checkbox
+  /md-list-item
 /div
   /md-list
 /div
diff --git a/frontend/src/components/watchlist/edit_twolines.directive.html 
b/frontend/src/components/watchlist/edit_twolines.directive.html
index ecae039..4266f0b 100644
--- a/frontend/src/components/watchlist/edit_twolines.directive.html
+++ b/frontend/src/components/watchlist/edit_twolines.directive.html
@@ -5,7 +5,7 @@
ng-class=::event.titlestyle  target=_blank{{::event.title}}/a
 span ng-if=event.clicked
   (a stop-event 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=history target=_blank translate=HISTORY/a)
-/span
+/span#32;
 span dir=ltr ng-class=::event.bytestyle({{::event.bytes}})/span
 div
   user/user
diff --git a/frontend/src/components/watchlist/page.directive.js 
b/frontend/src/components/watchlist/page.directive.js
index c5abfc3..eb3cc37 100644
--- a/frontend/src/components/watchlist/page.directive.js
+++ b/frontend/src/components/watchlist/page.directive.js
@@ -9,7 +9,7 @@
 template: 'a stop-event href={{::event.projecturl}}/wiki/{{::title | 
urlEncode}}  target=_blank{{::title}}/a ' +
 'span ng-if=event.clicked' +
 '(a stop-event href={{::event.projecturl}}/w/index.php?title={{::title | 
urlEncode}}action=history target=_blank translate=HISTORY/a)' +
-'/span',
+'/span#32;',
 restrict: 'E'
   };
   return directive;
diff --git a/frontend/src/components/watchlist/user.directive.js 
b/frontend/src/components/watchlist/user.directive.js
index c246eb2..4791753 100644
--- a/frontend/src/components/watchlist/user.directive.js
+++ 

[MediaWiki-commits] [Gerrit] Add option to hide own edits - change (labs...crosswatch)

2015-07-15 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/224980

Change subject: Add option to hide own edits
..

Add option to hide own edits

Also cleaned up dead code.

Bug: T105937
Change-Id: I4e3a3e70937426f53ef8648c042afdd675e1f837
---
M frontend/src/app/filters.js
M frontend/src/app/runBlock.js
M frontend/src/app/services.js
M frontend/src/components/settings/settings.html
M frontend/src/i18n/locale-en.json
5 files changed, 32 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/80/224980/1

diff --git a/frontend/src/app/filters.js b/frontend/src/app/filters.js
index 83a8dc6..48a9021 100644
--- a/frontend/src/app/filters.js
+++ b/frontend/src/app/filters.js
@@ -5,7 +5,6 @@
   .filter('list', listFilter)
   .filter('watchlist', watchlistFilter)
   .filter('projects', projectsFilter)
-  .filter('editflags', editflagsFilter)
 ;
 
 /**
@@ -51,6 +50,10 @@
 if (bool) {
   bool = namespaceFilterFunc(item, this.namespacesSelected, 
this.namespacesList)
 }
+
+if (bool  this.hideOwnEdits) {
+  bool = usernameFilterFunc(item, this.username)
+}
 return bool;
   }
 }
@@ -88,14 +91,15 @@
   return false;
 }
 
+/**
+ * Filter out own edits
+ */
+function usernameFilterFunc (item, username) {
+  return item.user !== username;
+}
+
 function projectsFilter () {
   return function (items, projects) {
 return items.filter(projectsFilterFunc, projects)
-  };
-}
-
-function editflagsFilter () {
-  return function (items, flags) {
-return items.filter(editsflagsFilterFunc, flags)
   };
 }
diff --git a/frontend/src/app/runBlock.js b/frontend/src/app/runBlock.js
index 835a949..144abb7 100644
--- a/frontend/src/app/runBlock.js
+++ b/frontend/src/app/runBlock.js
@@ -15,6 +15,7 @@
   $location.path('/welcome');
 }
 else {
+  dataService.config.username = authService.user();
   $location.path('/');
 }
   });
diff --git a/frontend/src/app/services.js b/frontend/src/app/services.js
index 08e94b7..0c59295 100644
--- a/frontend/src/app/services.js
+++ b/frontend/src/app/services.js
@@ -68,6 +68,9 @@
  * Timeperiod for which the watchlist is retrieved in days
  */
 watchlistperiod: 1.5,
+/**
+ * Show flags instead of language names
+ */
 flagsenable: false,
 /**
  * Options to show minor, bot, anon and registered user edits
@@ -84,8 +87,17 @@
 /**
  * List of namespaces shown in options list
  */
-namespacesList: [0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 
13, OTHER]
+namespacesList: [0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 
13, OTHER],
+/**
+ * Username
+ */
+username: ,
+/**
+ * Filter out own edits
+ */
+hideOwnEdits: false
   };
+  // Get config from localstorage or create from defaultconfig
   if (localStorageService.get('config') !== null) {
 vm.config = localStorageService.get('config');
 vm.config.__proto__ = vm.defaultconfig;
@@ -182,6 +194,7 @@
 vm.watchlist.original = [];
 vm.watchlist.filtered = [];
 vm.watchlist.active.length = 0; /* preserve pointer, slow due to GC */
+vm.notifications.length = 0;
 vm.queryWatchlist();
 vm.saveConfig();
   };
diff --git a/frontend/src/components/settings/settings.html 
b/frontend/src/components/settings/settings.html
index d06f254..4666f66 100644
--- a/frontend/src/components/settings/settings.html
+++ b/frontend/src/components/settings/settings.html
@@ -71,6 +71,10 @@
 md-checkbox ng-model=ctrl.config.lastrevonly 
ng-change=ctrl.resetWatchlist()/md-checkbox
   /md-list-item
   md-list-item
+p translate=HIDEOWNEDITS/p
+md-checkbox ng-model=ctrl.config.hideOwnEdits 
ng-change=ctrl.saveConfig()/md-checkbox
+  /md-list-item
+  md-list-item
 p translate=ONELINE/p
 md-checkbox ng-model=ctrl.config.oneline 
ng-change=ctrl.saveConfig()/md-checkbox
   /md-list-item
diff --git a/frontend/src/i18n/locale-en.json b/frontend/src/i18n/locale-en.json
index 1130148..2362c25 100644
--- a/frontend/src/i18n/locale-en.json
+++ b/frontend/src/i18n/locale-en.json
@@ -69,5 +69,6 @@
   ONELINE: Traditional watchlist layout,
   NOTIFICATIONS: Notifications,
   MARKALLREAD: mark all as read,
-  STYLE: Style
+  STYLE: Style,
+  HIDEOWNEDITS: Hide my edits from the watchlist
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/224980
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4e3a3e70937426f53ef8648c042afdd675e1f837
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org

[MediaWiki-commits] [Gerrit] Add missing aria labels - change (labs...crosswatch)

2015-07-15 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/224981

Change subject: Add missing aria labels
..

Add missing aria labels

Change-Id: I33617277d5d0e4908d6bb97ec0e26a9db45577a6
---
M frontend/src/components/notifications/notifications.html
M frontend/src/components/settings/settings.html
2 files changed, 4 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/81/224981/1

diff --git a/frontend/src/components/notifications/notifications.html 
b/frontend/src/components/notifications/notifications.html
index 2046882..9153d1f 100644
--- a/frontend/src/components/notifications/notifications.html
+++ b/frontend/src/components/notifications/notifications.html
@@ -7,7 +7,7 @@
   span translate=NOTIFICATIONS/span
 /h1
 div flex/div
-md-button class=md-raised md-accent translate=MARKALLREAD
+md-button class=md-raised md-accent aria-label=mark all 
notifications as read translate=MARKALLREAD
ng-click=read = !read; ctrl.markNotificationsRead() 
ng-disabled=read
 /md-button
   /div
diff --git a/frontend/src/components/settings/settings.html 
b/frontend/src/components/settings/settings.html
index 4666f66..4f76cd6 100644
--- a/frontend/src/components/settings/settings.html
+++ b/frontend/src/components/settings/settings.html
@@ -9,13 +9,15 @@
   md-subheader class=md-no-sticky{{'WIKIS' | 
translate}}/md-subheader
   md-item
 md-select ng-model=ctrl.config.projectsSelected 
multiple=true placeholder=Loading …
+   aria-label=List of selected wikis
ng-change=ctrl.saveConfig()
   md-option ng-repeat=item in ctrl.config.projectsList 
value={{item}}{{item}}/md-option
 /md-select
   /md-item
   md-subheader class=md-no-sticky{{'NAMESPACES' | 
translate}}/md-subheader
   md-item
-md-select ng-model=ctrl.config.namespacesSelected 
multiple=true ng-change=ctrl.saveConfig()
+md-select ng-model=ctrl.config.namespacesSelected 
multiple=true ng-change=ctrl.saveConfig()
+   aria-label=List of selected namespaces
   md-option ng-repeat=item in ctrl.namespacesList 
value={{item.value}}{{item.label}}/md-option
 /md-select
   /md-item

-- 
To view, visit https://gerrit.wikimedia.org/r/224981
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I33617277d5d0e4908d6bb97ec0e26a9db45577a6
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add missing aria labels - change (labs...crosswatch)

2015-07-15 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Add missing aria labels
..


Add missing aria labels

Change-Id: I33617277d5d0e4908d6bb97ec0e26a9db45577a6
---
M frontend/src/components/notifications/notifications.html
M frontend/src/components/settings/settings.html
2 files changed, 4 insertions(+), 2 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/components/notifications/notifications.html 
b/frontend/src/components/notifications/notifications.html
index 2046882..9153d1f 100644
--- a/frontend/src/components/notifications/notifications.html
+++ b/frontend/src/components/notifications/notifications.html
@@ -7,7 +7,7 @@
   span translate=NOTIFICATIONS/span
 /h1
 div flex/div
-md-button class=md-raised md-accent translate=MARKALLREAD
+md-button class=md-raised md-accent aria-label=mark all 
notifications as read translate=MARKALLREAD
ng-click=read = !read; ctrl.markNotificationsRead() 
ng-disabled=read
 /md-button
   /div
diff --git a/frontend/src/components/settings/settings.html 
b/frontend/src/components/settings/settings.html
index 4666f66..4f76cd6 100644
--- a/frontend/src/components/settings/settings.html
+++ b/frontend/src/components/settings/settings.html
@@ -9,13 +9,15 @@
   md-subheader class=md-no-sticky{{'WIKIS' | 
translate}}/md-subheader
   md-item
 md-select ng-model=ctrl.config.projectsSelected 
multiple=true placeholder=Loading …
+   aria-label=List of selected wikis
ng-change=ctrl.saveConfig()
   md-option ng-repeat=item in ctrl.config.projectsList 
value={{item}}{{item}}/md-option
 /md-select
   /md-item
   md-subheader class=md-no-sticky{{'NAMESPACES' | 
translate}}/md-subheader
   md-item
-md-select ng-model=ctrl.config.namespacesSelected 
multiple=true ng-change=ctrl.saveConfig()
+md-select ng-model=ctrl.config.namespacesSelected 
multiple=true ng-change=ctrl.saveConfig()
+   aria-label=List of selected namespaces
   md-option ng-repeat=item in ctrl.namespacesList 
value={{item.value}}{{item.label}}/md-option
 /md-select
   /md-item

-- 
To view, visit https://gerrit.wikimedia.org/r/224981
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I33617277d5d0e4908d6bb97ec0e26a9db45577a6
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add option to hide own edits - change (labs...crosswatch)

2015-07-15 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Add option to hide own edits
..


Add option to hide own edits

Also cleaned up dead code.

Bug: T105937
Change-Id: I4e3a3e70937426f53ef8648c042afdd675e1f837
---
M frontend/src/app/filters.js
M frontend/src/app/runBlock.js
M frontend/src/app/services.js
M frontend/src/components/settings/settings.html
M frontend/src/i18n/locale-en.json
5 files changed, 32 insertions(+), 9 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/app/filters.js b/frontend/src/app/filters.js
index 83a8dc6..48a9021 100644
--- a/frontend/src/app/filters.js
+++ b/frontend/src/app/filters.js
@@ -5,7 +5,6 @@
   .filter('list', listFilter)
   .filter('watchlist', watchlistFilter)
   .filter('projects', projectsFilter)
-  .filter('editflags', editflagsFilter)
 ;
 
 /**
@@ -51,6 +50,10 @@
 if (bool) {
   bool = namespaceFilterFunc(item, this.namespacesSelected, 
this.namespacesList)
 }
+
+if (bool  this.hideOwnEdits) {
+  bool = usernameFilterFunc(item, this.username)
+}
 return bool;
   }
 }
@@ -88,14 +91,15 @@
   return false;
 }
 
+/**
+ * Filter out own edits
+ */
+function usernameFilterFunc (item, username) {
+  return item.user !== username;
+}
+
 function projectsFilter () {
   return function (items, projects) {
 return items.filter(projectsFilterFunc, projects)
-  };
-}
-
-function editflagsFilter () {
-  return function (items, flags) {
-return items.filter(editsflagsFilterFunc, flags)
   };
 }
diff --git a/frontend/src/app/runBlock.js b/frontend/src/app/runBlock.js
index 835a949..144abb7 100644
--- a/frontend/src/app/runBlock.js
+++ b/frontend/src/app/runBlock.js
@@ -15,6 +15,7 @@
   $location.path('/welcome');
 }
 else {
+  dataService.config.username = authService.user();
   $location.path('/');
 }
   });
diff --git a/frontend/src/app/services.js b/frontend/src/app/services.js
index 08e94b7..0c59295 100644
--- a/frontend/src/app/services.js
+++ b/frontend/src/app/services.js
@@ -68,6 +68,9 @@
  * Timeperiod for which the watchlist is retrieved in days
  */
 watchlistperiod: 1.5,
+/**
+ * Show flags instead of language names
+ */
 flagsenable: false,
 /**
  * Options to show minor, bot, anon and registered user edits
@@ -84,8 +87,17 @@
 /**
  * List of namespaces shown in options list
  */
-namespacesList: [0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 
13, OTHER]
+namespacesList: [0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 
13, OTHER],
+/**
+ * Username
+ */
+username: ,
+/**
+ * Filter out own edits
+ */
+hideOwnEdits: false
   };
+  // Get config from localstorage or create from defaultconfig
   if (localStorageService.get('config') !== null) {
 vm.config = localStorageService.get('config');
 vm.config.__proto__ = vm.defaultconfig;
@@ -182,6 +194,7 @@
 vm.watchlist.original = [];
 vm.watchlist.filtered = [];
 vm.watchlist.active.length = 0; /* preserve pointer, slow due to GC */
+vm.notifications.length = 0;
 vm.queryWatchlist();
 vm.saveConfig();
   };
diff --git a/frontend/src/components/settings/settings.html 
b/frontend/src/components/settings/settings.html
index d06f254..4666f66 100644
--- a/frontend/src/components/settings/settings.html
+++ b/frontend/src/components/settings/settings.html
@@ -71,6 +71,10 @@
 md-checkbox ng-model=ctrl.config.lastrevonly 
ng-change=ctrl.resetWatchlist()/md-checkbox
   /md-list-item
   md-list-item
+p translate=HIDEOWNEDITS/p
+md-checkbox ng-model=ctrl.config.hideOwnEdits 
ng-change=ctrl.saveConfig()/md-checkbox
+  /md-list-item
+  md-list-item
 p translate=ONELINE/p
 md-checkbox ng-model=ctrl.config.oneline 
ng-change=ctrl.saveConfig()/md-checkbox
   /md-list-item
diff --git a/frontend/src/i18n/locale-en.json b/frontend/src/i18n/locale-en.json
index 1130148..2362c25 100644
--- a/frontend/src/i18n/locale-en.json
+++ b/frontend/src/i18n/locale-en.json
@@ -69,5 +69,6 @@
   ONELINE: Traditional watchlist layout,
   NOTIFICATIONS: Notifications,
   MARKALLREAD: mark all as read,
-  STYLE: Style
+  STYLE: Style,
+  HIDEOWNEDITS: Hide my edits from the watchlist
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/224980
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I4e3a3e70937426f53ef8648c042afdd675e1f837
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Siebrand siebr...@kitano.nl
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org

[MediaWiki-commits] [Gerrit] Stop click propagation for links in comments - change (labs...crosswatch)

2015-07-14 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Stop click propagation for links in comments
..


Stop click propagation for links in comments

Change-Id: Id8a11b8abaa5fc43d3a17c6f0eadd26eb0acf1c8
---
M backend/celery/tasks.py
A frontend/src/components/watchlist/comment.directive.js
M frontend/src/components/watchlist/edit_oneline.directive.html
M frontend/src/components/watchlist/edit_twolines.directive.html
M frontend/src/components/watchlist/logevent.directive.html
5 files changed, 23 insertions(+), 4 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index fe4df54..c9e91c2 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -95,7 +95,7 @@
 
 
 def fix_urls(html, url):
-a = u'a stop-event target=_blank href=' + url + u'/'
+a = u'a target=_blank href=' + url + u'/'
 html = html.replace(u'a href=/', a)
 return html
 
diff --git a/frontend/src/components/watchlist/comment.directive.js 
b/frontend/src/components/watchlist/comment.directive.js
new file mode 100644
index 000..d2f6446
--- /dev/null
+++ b/frontend/src/components/watchlist/comment.directive.js
@@ -0,0 +1,19 @@
+angular
+  .module('crosswatch')
+  .directive('comment', comment);
+
+function comment ($sanitize) {
+  var directive = {
+link: link,
+restrict: 'E'
+  };
+  return directive;
+
+  function link (scope, element, attrs) {
+var html = scope.event.parsedcomment;
+element.html($sanitize(html));
+element.find('a').bind('click', function (e) {
+  e.stopPropagation();
+});
+  }
+}
diff --git a/frontend/src/components/watchlist/edit_oneline.directive.html 
b/frontend/src/components/watchlist/edit_oneline.directive.html
index a051f6c..b1419b7 100644
--- a/frontend/src/components/watchlist/edit_oneline.directive.html
+++ b/frontend/src/components/watchlist/edit_oneline.directive.html
@@ -12,5 +12,5 @@
 span class=mw-changeslist-separator. ./span
 span
   user/user
-  span ng-if=::event.parsedcomment class=comment(span 
ng-bind-html=::event.parsedcomment/span)/span
+  span ng-if=::event.parsedcomment 
class=comment(comment/comment)/span
 /span
diff --git a/frontend/src/components/watchlist/edit_twolines.directive.html 
b/frontend/src/components/watchlist/edit_twolines.directive.html
index 4413525..ecae039 100644
--- a/frontend/src/components/watchlist/edit_twolines.directive.html
+++ b/frontend/src/components/watchlist/edit_twolines.directive.html
@@ -9,5 +9,5 @@
 span dir=ltr ng-class=::event.bytestyle({{::event.bytes}})/span
 div
   user/user
-  span ng-if=::event.parsedcomment class=comment(span 
ng-bind-html=::event.parsedcomment/span)/span
+  span ng-if=::event.parsedcomment 
class=comment(comment/comment)/span
 /div
diff --git a/frontend/src/components/watchlist/logevent.directive.html 
b/frontend/src/components/watchlist/logevent.directive.html
index 8bdfdb2..47dc994 100644
--- a/frontend/src/components/watchlist/logevent.directive.html
+++ b/frontend/src/components/watchlist/logevent.directive.html
@@ -65,4 +65,4 @@
   span translate=LOGEVENT_RENAMEUSER translate-values=event 
translate-interpolation=custom translate-compile/span
 /span
 /span
-span ng-if=::event.parsedcomment class=comment(span 
ng-bind-html=::event.parsedcomment/span)/span
+span ng-if=::event.parsedcomment 
class=comment(comment/comment)/span

-- 
To view, visit https://gerrit.wikimedia.org/r/224605
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Id8a11b8abaa5fc43d3a17c6f0eadd26eb0acf1c8
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Stop click propagation for links in comments - change (labs...crosswatch)

2015-07-14 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/224605

Change subject: Stop click propagation for links in comments
..

Stop click propagation for links in comments

Change-Id: Id8a11b8abaa5fc43d3a17c6f0eadd26eb0acf1c8
---
M backend/celery/tasks.py
A frontend/src/components/watchlist/comment.directive.js
M frontend/src/components/watchlist/edit_oneline.directive.html
M frontend/src/components/watchlist/edit_twolines.directive.html
M frontend/src/components/watchlist/logevent.directive.html
5 files changed, 23 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/05/224605/1

diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index fe4df54..c9e91c2 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -95,7 +95,7 @@
 
 
 def fix_urls(html, url):
-a = u'a stop-event target=_blank href=' + url + u'/'
+a = u'a target=_blank href=' + url + u'/'
 html = html.replace(u'a href=/', a)
 return html
 
diff --git a/frontend/src/components/watchlist/comment.directive.js 
b/frontend/src/components/watchlist/comment.directive.js
new file mode 100644
index 000..d2f6446
--- /dev/null
+++ b/frontend/src/components/watchlist/comment.directive.js
@@ -0,0 +1,19 @@
+angular
+  .module('crosswatch')
+  .directive('comment', comment);
+
+function comment ($sanitize) {
+  var directive = {
+link: link,
+restrict: 'E'
+  };
+  return directive;
+
+  function link (scope, element, attrs) {
+var html = scope.event.parsedcomment;
+element.html($sanitize(html));
+element.find('a').bind('click', function (e) {
+  e.stopPropagation();
+});
+  }
+}
diff --git a/frontend/src/components/watchlist/edit_oneline.directive.html 
b/frontend/src/components/watchlist/edit_oneline.directive.html
index a051f6c..b1419b7 100644
--- a/frontend/src/components/watchlist/edit_oneline.directive.html
+++ b/frontend/src/components/watchlist/edit_oneline.directive.html
@@ -12,5 +12,5 @@
 span class=mw-changeslist-separator. ./span
 span
   user/user
-  span ng-if=::event.parsedcomment class=comment(span 
ng-bind-html=::event.parsedcomment/span)/span
+  span ng-if=::event.parsedcomment 
class=comment(comment/comment)/span
 /span
diff --git a/frontend/src/components/watchlist/edit_twolines.directive.html 
b/frontend/src/components/watchlist/edit_twolines.directive.html
index 4413525..ecae039 100644
--- a/frontend/src/components/watchlist/edit_twolines.directive.html
+++ b/frontend/src/components/watchlist/edit_twolines.directive.html
@@ -9,5 +9,5 @@
 span dir=ltr ng-class=::event.bytestyle({{::event.bytes}})/span
 div
   user/user
-  span ng-if=::event.parsedcomment class=comment(span 
ng-bind-html=::event.parsedcomment/span)/span
+  span ng-if=::event.parsedcomment 
class=comment(comment/comment)/span
 /div
diff --git a/frontend/src/components/watchlist/logevent.directive.html 
b/frontend/src/components/watchlist/logevent.directive.html
index 8bdfdb2..47dc994 100644
--- a/frontend/src/components/watchlist/logevent.directive.html
+++ b/frontend/src/components/watchlist/logevent.directive.html
@@ -65,4 +65,4 @@
   span translate=LOGEVENT_RENAMEUSER translate-values=event 
translate-interpolation=custom translate-compile/span
 /span
 /span
-span ng-if=::event.parsedcomment class=comment(span 
ng-bind-html=::event.parsedcomment/span)/span
+span ng-if=::event.parsedcomment 
class=comment(comment/comment)/span

-- 
To view, visit https://gerrit.wikimedia.org/r/224605
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id8a11b8abaa5fc43d3a17c6f0eadd26eb0acf1c8
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add coloring to differentiate projects - change (labs...crosswatch)

2015-07-12 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/224375

Change subject: Add coloring to differentiate projects
..

Add coloring to differentiate projects

Shows a 4px wide color border for each watchlist event to
differentiate projects.

Change-Id: Ibd7c228f6c412c16f39e73e4f5a4307f944ac38c
---
M frontend/src/app/index.css
M frontend/src/app/services.js
M frontend/src/components/watchlist/watchlist.controller.js
M frontend/src/components/watchlist/watchlist.html
4 files changed, 102 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/75/224375/1

diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 868a0b4..1c9dbcd 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -125,6 +125,30 @@
   max-width: 1200px;
 }
 
+.watchlist-container {
+  padding: 0;
+}
+
+md-list-item.watchlist {
+  border-left-width: 4px;
+  border-left-style: solid;
+  padding-left: 12px;
+}
+
+md-list-item.watchlist:first-child {
+  padding-top: 8px;
+}
+
+md-list-item.watchlist:last-child {
+  padding-bottom: 8px;
+}
+
+.watchlist:last-child md-divider,
+.notifications:last-child md-divider
+{
+  border-top: 0;
+}
+
 .watchlist-list-item-oneline {
   min-height: 32px;
 }
@@ -160,12 +184,6 @@
   outline:none;
 }
 
-.watchlist:last-child md-divider,
-.notifications:last-child md-divider
-{
-  border-top: 0;
-}
-
 span.comment{
   font-style: italic;
   unicode-bidi: embed;
@@ -183,6 +201,62 @@
   font-weight: bold;
 }
 
+.project-color-white {
+  border-left-color: white;
+}
+
+.project-color-pink {
+  border-left-color: #F06292;
+}
+
+.project-color-purple {
+  border-left-color: #CE93D8;
+}
+
+.project-color-deep-purple {
+  border-left-color: #9575CD;
+}
+
+.project-color-blue {
+  border-left-color: #64B5F6;
+}
+
+.project-color-cyan {
+  border-left-color: #4DD0E1;
+}
+
+.project-color-teal {
+  border-left-color: #4DB6AC;
+}
+
+.project-color-green {
+  border-left-color: #81C784;
+}
+
+.project-color-lime {
+  border-left-color: #DCE775;
+}
+
+.project-color-yellow {
+  border-left-color: #FFF176;
+}
+
+.project-color-amber {
+  border-left-color: #FFD54F;
+}
+
+.project-color-orange {
+  border-left-color: #FFB74D;
+}
+
+.project-color-brown {
+  border-left-color: #A1887F;
+}
+
+.project-color-blue-grey {
+  border-left-color: #90A4AE;
+}
+
 /** material design icons **/
 @font-face {
   font-family: 'Material Icons';
diff --git a/frontend/src/app/services.js b/frontend/src/app/services.js
index f08e222..08e94b7 100644
--- a/frontend/src/app/services.js
+++ b/frontend/src/app/services.js
@@ -105,6 +105,14 @@
* List of selected namespaces
*/
   vm.config.namespacesSelected = vm.config.namespacesSelected || 
vm.defaultconfig.namespacesList;
+  /**
+   * Associative array from project to border color
+   */
+  vm.config.projectColors = vm.config.projectColors || {};
+
+
+  var colors = ['pink', 'deep-purple', 'blue', 'cyan', 'green', 'lime', 
'orange', 'brown', 'blue-grey'];
+  var colorsIndex = 0;
 
   /**
* Process an array of new watchlist entries.
@@ -123,6 +131,16 @@
   vm.saveConfig();
 }
 
+if (!vm.config.projectColors.hasOwnProperty(project)) {
+  vm.config.projectColors[project] = 'project-color-' + 
colors[colorsIndex];
+
+  colorsIndex += 1;
+  if (colorsIndex = colors.length) {
+colorsIndex = 0;
+  }
+  vm.saveConfig();
+}
+
 vm.filterWatchlistDebounced();
   };
 
diff --git a/frontend/src/components/watchlist/watchlist.controller.js 
b/frontend/src/components/watchlist/watchlist.controller.js
index 990d430..81c79c3 100644
--- a/frontend/src/components/watchlist/watchlist.controller.js
+++ b/frontend/src/components/watchlist/watchlist.controller.js
@@ -19,5 +19,5 @@
   event.diff = diff;
 })
   }
-}
+};
   });
diff --git a/frontend/src/components/watchlist/watchlist.html 
b/frontend/src/components/watchlist/watchlist.html
index 3b683a0..decaceb 100644
--- a/frontend/src/components/watchlist/watchlist.html
+++ b/frontend/src/components/watchlist/watchlist.html
@@ -22,10 +22,10 @@
 md-progress-circular md-mode=indeterminate/md-progress-circular
   /md-list-item
 /md-list
-md-list infinite-scroll=ctrl.moreWatchlistEntries() 
infinite-scroll-immediate-check=false
+md-list class=watchlist-container 
infinite-scroll=ctrl.moreWatchlistEntries() 
infinite-scroll-immediate-check=false
  infinite-scroll-distance=1
-  md-list-item layout=row id=watchlist class=watchlist
-ng-class=(ctrl.config.oneline) ? 
'watchlist-list-item-oneline' : ''
+  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.active track by 

[MediaWiki-commits] [Gerrit] Add coloring to differentiate projects - change (labs...crosswatch)

2015-07-12 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Add coloring to differentiate projects
..


Add coloring to differentiate projects

Shows a 4px wide color border for each watchlist event to
differentiate projects.

Change-Id: Ibd7c228f6c412c16f39e73e4f5a4307f944ac38c
---
M frontend/src/app/index.css
M frontend/src/app/services.js
M frontend/src/components/watchlist/watchlist.controller.js
M frontend/src/components/watchlist/watchlist.html
4 files changed, 102 insertions(+), 10 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 868a0b4..1c9dbcd 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -125,6 +125,30 @@
   max-width: 1200px;
 }
 
+.watchlist-container {
+  padding: 0;
+}
+
+md-list-item.watchlist {
+  border-left-width: 4px;
+  border-left-style: solid;
+  padding-left: 12px;
+}
+
+md-list-item.watchlist:first-child {
+  padding-top: 8px;
+}
+
+md-list-item.watchlist:last-child {
+  padding-bottom: 8px;
+}
+
+.watchlist:last-child md-divider,
+.notifications:last-child md-divider
+{
+  border-top: 0;
+}
+
 .watchlist-list-item-oneline {
   min-height: 32px;
 }
@@ -160,12 +184,6 @@
   outline:none;
 }
 
-.watchlist:last-child md-divider,
-.notifications:last-child md-divider
-{
-  border-top: 0;
-}
-
 span.comment{
   font-style: italic;
   unicode-bidi: embed;
@@ -183,6 +201,62 @@
   font-weight: bold;
 }
 
+.project-color-white {
+  border-left-color: white;
+}
+
+.project-color-pink {
+  border-left-color: #F06292;
+}
+
+.project-color-purple {
+  border-left-color: #CE93D8;
+}
+
+.project-color-deep-purple {
+  border-left-color: #9575CD;
+}
+
+.project-color-blue {
+  border-left-color: #64B5F6;
+}
+
+.project-color-cyan {
+  border-left-color: #4DD0E1;
+}
+
+.project-color-teal {
+  border-left-color: #4DB6AC;
+}
+
+.project-color-green {
+  border-left-color: #81C784;
+}
+
+.project-color-lime {
+  border-left-color: #DCE775;
+}
+
+.project-color-yellow {
+  border-left-color: #FFF176;
+}
+
+.project-color-amber {
+  border-left-color: #FFD54F;
+}
+
+.project-color-orange {
+  border-left-color: #FFB74D;
+}
+
+.project-color-brown {
+  border-left-color: #A1887F;
+}
+
+.project-color-blue-grey {
+  border-left-color: #90A4AE;
+}
+
 /** material design icons **/
 @font-face {
   font-family: 'Material Icons';
diff --git a/frontend/src/app/services.js b/frontend/src/app/services.js
index f08e222..08e94b7 100644
--- a/frontend/src/app/services.js
+++ b/frontend/src/app/services.js
@@ -105,6 +105,14 @@
* List of selected namespaces
*/
   vm.config.namespacesSelected = vm.config.namespacesSelected || 
vm.defaultconfig.namespacesList;
+  /**
+   * Associative array from project to border color
+   */
+  vm.config.projectColors = vm.config.projectColors || {};
+
+
+  var colors = ['pink', 'deep-purple', 'blue', 'cyan', 'green', 'lime', 
'orange', 'brown', 'blue-grey'];
+  var colorsIndex = 0;
 
   /**
* Process an array of new watchlist entries.
@@ -123,6 +131,16 @@
   vm.saveConfig();
 }
 
+if (!vm.config.projectColors.hasOwnProperty(project)) {
+  vm.config.projectColors[project] = 'project-color-' + 
colors[colorsIndex];
+
+  colorsIndex += 1;
+  if (colorsIndex = colors.length) {
+colorsIndex = 0;
+  }
+  vm.saveConfig();
+}
+
 vm.filterWatchlistDebounced();
   };
 
diff --git a/frontend/src/components/watchlist/watchlist.controller.js 
b/frontend/src/components/watchlist/watchlist.controller.js
index 990d430..81c79c3 100644
--- a/frontend/src/components/watchlist/watchlist.controller.js
+++ b/frontend/src/components/watchlist/watchlist.controller.js
@@ -19,5 +19,5 @@
   event.diff = diff;
 })
   }
-}
+};
   });
diff --git a/frontend/src/components/watchlist/watchlist.html 
b/frontend/src/components/watchlist/watchlist.html
index 3b683a0..decaceb 100644
--- a/frontend/src/components/watchlist/watchlist.html
+++ b/frontend/src/components/watchlist/watchlist.html
@@ -22,10 +22,10 @@
 md-progress-circular md-mode=indeterminate/md-progress-circular
   /md-list-item
 /md-list
-md-list infinite-scroll=ctrl.moreWatchlistEntries() 
infinite-scroll-immediate-check=false
+md-list class=watchlist-container 
infinite-scroll=ctrl.moreWatchlistEntries() 
infinite-scroll-immediate-check=false
  infinite-scroll-distance=1
-  md-list-item layout=row id=watchlist class=watchlist
-ng-class=(ctrl.config.oneline) ? 
'watchlist-list-item-oneline' : ''
+  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.active track by 
event.id
 watchlist-entry ng-click=event.clicked = 

[MediaWiki-commits] [Gerrit] Fix bug for logevents with spaces in title - change (labs...crosswatch)

2015-07-11 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/224233

Change subject: Fix bug for logevents with spaces in title
..

Fix bug for logevents with spaces in title

Fixes i18n strings to use quotation marks when passing variables to
directives. Also fixes scope isolation for page directive.

Change-Id: I90e7e7b5a809b1b0fa05fd5c21fdee0b94a93db1
---
M frontend/src/components/watchlist/page.directive.js
M frontend/src/i18n/locale-en.json
2 files changed, 16 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/33/224233/1

diff --git a/frontend/src/components/watchlist/page.directive.js 
b/frontend/src/components/watchlist/page.directive.js
index a3e79ac..c5abfc3 100644
--- a/frontend/src/components/watchlist/page.directive.js
+++ b/frontend/src/components/watchlist/page.directive.js
@@ -6,9 +6,9 @@
   var directive = {
 link: link,
 scope: true,
-template: 'a stop-event href={{::event.projecturl}}/wiki/{{::event.title 
| urlEncode}}  target=_blank{{::event.title}}/a ' +
+template: 'a stop-event href={{::event.projecturl}}/wiki/{{::title | 
urlEncode}}  target=_blank{{::title}}/a ' +
 'span ng-if=event.clicked' +
-'(a stop-event 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=history target=_blank translate=HISTORY/a)' +
+'(a stop-event href={{::event.projecturl}}/w/index.php?title={{::title | 
urlEncode}}action=history target=_blank translate=HISTORY/a)' +
 '/span',
 restrict: 'E'
   };
@@ -16,7 +16,9 @@
 
   function link(scope, element, attrs) {
 if (typeof attrs.title !== 'undefined') {
-  scope.event.title = attrs.title;
+  scope.title = attrs.title;
+} else {
+  scope.title = scope.event.title;
 }
   }
 }
diff --git a/frontend/src/i18n/locale-en.json b/frontend/src/i18n/locale-en.json
index 6b6b241..4c5f66f 100644
--- a/frontend/src/i18n/locale-en.json
+++ b/frontend/src/i18n/locale-en.json
@@ -28,23 +28,23 @@
   LOGEVENT_PROTECT_PROTECT: user protected page page with parameters 
{{protection_level}},
   LOGEVENT_PROTECT_MODIFY: user modified protection on page page with 
parameters {{protection_level}},
   LOGEVENT_PROTECT_UNPROTECT: user unprotected page page,
-  LOGEVENT_PROTECT_MOVE: user moved protection settings from page to 
page title={{target_title}},
-  LOGEVENT_MOVE: user moved page page to page title={{target_title}},
-  LOGEVENT_BLOCK_BLOCK: user blocked user name={{title}} with an expiry 
time of {{duration}} with parameters {{flags|list}},
-  LOGEVENT_BLOCK_REBLOCK: user changed block settings for user 
name={{title}} with an expiry time of {{duration}} with parameters 
{{flags|list}},
-  LOGEVENT_BLOCK_UNBLOCK: user unblocked user name={{title}},
+  LOGEVENT_PROTECT_MOVE: user moved protection settings from page to 
page title=\{{target_title}}\,
+  LOGEVENT_MOVE: user moved page page to page 
title=\{{target_title}}\,
+  LOGEVENT_BLOCK_BLOCK: user blocked user name=\{{title}}\ with an 
expiry time of {{duration}} with parameters {{flags|list}},
+  LOGEVENT_BLOCK_REBLOCK: user changed block settings for user 
name=\{{title}}\ with an expiry time of {{duration}} with parameters 
{{flags|list}},
+  LOGEVENT_BLOCK_UNBLOCK: user unblocked user name=\{{title}}\,
   LOGEVENT_RIGHTS_AUTOPROMOTE: user was automatically promoted from 
{{oldgroups|list}} to {{newgroups|list}},
-  LOGEVENT_RIGHTS_RIGHTS: user changed group membership for user 
name={{title}} from {{oldgroups|list}} to {{newgroups|list}},
+  LOGEVENT_RIGHTS_RIGHTS: user changed group membership for user 
name=\{{title}}\ from {{oldgroups|list}} to {{newgroups|list}},
   LOGEVENT_UPLOAD_OVERWRITE: user uploaded a new version of page,
   LOGEVENT_UPLOAD_REVERT: user uploaded page,
   LOGEVENT_UPLOAD_UPLOAD: user uploaded page,
   LOGEVENT_IMPORT_INTERWIKI: user imported page from another wiki,
   LOGEVENT_IMPORT_UPLOAD: user imported page by file upload,
-  LOGEVENT_MERGE: user merged page into page title={{dest_title}} 
(revisions up to {{mergepoint|amCalendar}}),
-  LOGEVENT_NEWUSERS_CREATE: User account user name={{title}} was created,
-  LOGEVENT_NEWUSERS_CREATE2: User account user name={{title}} was created 
by user,
-  LOGEVENT_NEWUSERS_BYEMAIL: User account user name={{title}} was created 
by user and password was sent by email,
-  LOGEVENT_RENAMEUSER: user renamed user user name={{olduser}} 
({{edits}} edits) to user name={{newuser}},
+  LOGEVENT_MERGE: user merged page into page title=\{{dest_title}}\ 
(revisions up to {{mergepoint|amCalendar}}),
+  LOGEVENT_NEWUSERS_CREATE: User account user name=\{{title}}\ was 
created,
+  LOGEVENT_NEWUSERS_CREATE2: User account user name=\{{title}}\ was 
created by user,
+  LOGEVENT_NEWUSERS_BYEMAIL: User account user name=\{{title}}\ was 
created by user and password was sent by email,
+  LOGEVENT_RENAMEUSER: user renamed user user 

[MediaWiki-commits] [Gerrit] Fix bug for logevents with spaces in title - change (labs...crosswatch)

2015-07-11 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix bug for logevents with spaces in title
..


Fix bug for logevents with spaces in title

Fixes i18n strings to use quotation marks when passing variables to
directives. Also fixes scope isolation for page directive.

Change-Id: I90e7e7b5a809b1b0fa05fd5c21fdee0b94a93db1
---
M frontend/src/components/watchlist/page.directive.js
M frontend/src/i18n/locale-en.json
2 files changed, 16 insertions(+), 14 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/components/watchlist/page.directive.js 
b/frontend/src/components/watchlist/page.directive.js
index a3e79ac..c5abfc3 100644
--- a/frontend/src/components/watchlist/page.directive.js
+++ b/frontend/src/components/watchlist/page.directive.js
@@ -6,9 +6,9 @@
   var directive = {
 link: link,
 scope: true,
-template: 'a stop-event href={{::event.projecturl}}/wiki/{{::event.title 
| urlEncode}}  target=_blank{{::event.title}}/a ' +
+template: 'a stop-event href={{::event.projecturl}}/wiki/{{::title | 
urlEncode}}  target=_blank{{::title}}/a ' +
 'span ng-if=event.clicked' +
-'(a stop-event 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=history target=_blank translate=HISTORY/a)' +
+'(a stop-event href={{::event.projecturl}}/w/index.php?title={{::title | 
urlEncode}}action=history target=_blank translate=HISTORY/a)' +
 '/span',
 restrict: 'E'
   };
@@ -16,7 +16,9 @@
 
   function link(scope, element, attrs) {
 if (typeof attrs.title !== 'undefined') {
-  scope.event.title = attrs.title;
+  scope.title = attrs.title;
+} else {
+  scope.title = scope.event.title;
 }
   }
 }
diff --git a/frontend/src/i18n/locale-en.json b/frontend/src/i18n/locale-en.json
index 6b6b241..4c5f66f 100644
--- a/frontend/src/i18n/locale-en.json
+++ b/frontend/src/i18n/locale-en.json
@@ -28,23 +28,23 @@
   LOGEVENT_PROTECT_PROTECT: user protected page page with parameters 
{{protection_level}},
   LOGEVENT_PROTECT_MODIFY: user modified protection on page page with 
parameters {{protection_level}},
   LOGEVENT_PROTECT_UNPROTECT: user unprotected page page,
-  LOGEVENT_PROTECT_MOVE: user moved protection settings from page to 
page title={{target_title}},
-  LOGEVENT_MOVE: user moved page page to page title={{target_title}},
-  LOGEVENT_BLOCK_BLOCK: user blocked user name={{title}} with an expiry 
time of {{duration}} with parameters {{flags|list}},
-  LOGEVENT_BLOCK_REBLOCK: user changed block settings for user 
name={{title}} with an expiry time of {{duration}} with parameters 
{{flags|list}},
-  LOGEVENT_BLOCK_UNBLOCK: user unblocked user name={{title}},
+  LOGEVENT_PROTECT_MOVE: user moved protection settings from page to 
page title=\{{target_title}}\,
+  LOGEVENT_MOVE: user moved page page to page 
title=\{{target_title}}\,
+  LOGEVENT_BLOCK_BLOCK: user blocked user name=\{{title}}\ with an 
expiry time of {{duration}} with parameters {{flags|list}},
+  LOGEVENT_BLOCK_REBLOCK: user changed block settings for user 
name=\{{title}}\ with an expiry time of {{duration}} with parameters 
{{flags|list}},
+  LOGEVENT_BLOCK_UNBLOCK: user unblocked user name=\{{title}}\,
   LOGEVENT_RIGHTS_AUTOPROMOTE: user was automatically promoted from 
{{oldgroups|list}} to {{newgroups|list}},
-  LOGEVENT_RIGHTS_RIGHTS: user changed group membership for user 
name={{title}} from {{oldgroups|list}} to {{newgroups|list}},
+  LOGEVENT_RIGHTS_RIGHTS: user changed group membership for user 
name=\{{title}}\ from {{oldgroups|list}} to {{newgroups|list}},
   LOGEVENT_UPLOAD_OVERWRITE: user uploaded a new version of page,
   LOGEVENT_UPLOAD_REVERT: user uploaded page,
   LOGEVENT_UPLOAD_UPLOAD: user uploaded page,
   LOGEVENT_IMPORT_INTERWIKI: user imported page from another wiki,
   LOGEVENT_IMPORT_UPLOAD: user imported page by file upload,
-  LOGEVENT_MERGE: user merged page into page title={{dest_title}} 
(revisions up to {{mergepoint|amCalendar}}),
-  LOGEVENT_NEWUSERS_CREATE: User account user name={{title}} was created,
-  LOGEVENT_NEWUSERS_CREATE2: User account user name={{title}} was created 
by user,
-  LOGEVENT_NEWUSERS_BYEMAIL: User account user name={{title}} was created 
by user and password was sent by email,
-  LOGEVENT_RENAMEUSER: user renamed user user name={{olduser}} 
({{edits}} edits) to user name={{newuser}},
+  LOGEVENT_MERGE: user merged page into page title=\{{dest_title}}\ 
(revisions up to {{mergepoint|amCalendar}}),
+  LOGEVENT_NEWUSERS_CREATE: User account user name=\{{title}}\ was 
created,
+  LOGEVENT_NEWUSERS_CREATE2: User account user name=\{{title}}\ was 
created by user,
+  LOGEVENT_NEWUSERS_BYEMAIL: User account user name=\{{title}}\ was 
created by user and password was sent by email,
+  LOGEVENT_RENAMEUSER: user renamed user user name=\{{olduser}}\ 
({{edits}} edits) to user name=\{{newuser}}\,
   

[MediaWiki-commits] [Gerrit] Stop click event propagation for a href - change (labs...crosswatch)

2015-07-10 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Stop click event propagation for a href
..


Stop click event propagation for a href

Change-Id: I119bcf84e4ad1ef4e7ea6e50db78d506c7dc957b
---
M backend/celery/tasks.py
M frontend/src/components/watchlist/edit_oneline.directive.html
M frontend/src/components/watchlist/edit_twolines.directive.html
M frontend/src/components/watchlist/entry.directive.html
M frontend/src/components/watchlist/page.directive.js
M frontend/src/components/watchlist/user.directive.js
6 files changed, 7 insertions(+), 7 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index c9e91c2..fe4df54 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -95,7 +95,7 @@
 
 
 def fix_urls(html, url):
-a = u'a target=_blank href=' + url + u'/'
+a = u'a stop-event target=_blank href=' + url + u'/'
 html = html.replace(u'a href=/', a)
 return html
 
diff --git a/frontend/src/components/watchlist/edit_oneline.directive.html 
b/frontend/src/components/watchlist/edit_oneline.directive.html
index 91a9b97..a051f6c 100644
--- a/frontend/src/components/watchlist/edit_oneline.directive.html
+++ b/frontend/src/components/watchlist/edit_oneline.directive.html
@@ -1,7 +1,7 @@
 span class=newpage ng-if=::event.new translate=NEWPAGE_FLAG/span
 span class=minoredit ng-if=::event.minor 
 translate=MINOREDIT_FLAG/span
 span class=botedit ng-if=::event.bot translate=BOTEDIT_FLAG/span
-a dir=ltr 
href={{::event.projecturl}}/w/index.php?oldid={{::event.old_revid}}diff={{::event.revid}}
+a stop-event dir=ltr 
href={{::event.projecturl}}/w/index.php?oldid={{::event.old_revid}}diff={{::event.revid}}
ng-class=::event.titlestyle  target=_blank{{::event.title}}/a
 span ng-if=event.clicked
   (a stop-event 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=history target=_blank translate=HISTORY/a)
diff --git a/frontend/src/components/watchlist/edit_twolines.directive.html 
b/frontend/src/components/watchlist/edit_twolines.directive.html
index 50910bb..4413525 100644
--- a/frontend/src/components/watchlist/edit_twolines.directive.html
+++ b/frontend/src/components/watchlist/edit_twolines.directive.html
@@ -1,7 +1,7 @@
 span class=newpage ng-if=::event.new translate=NEWPAGE_FLAG/span
 span class=minoredit ng-if=::event.minor 
 translate=MINOREDIT_FLAG/span
 span class=botedit ng-if=::event.bot translate=BOTEDIT_FLAG/span
-a 
href={{::event.projecturl}}/w/index.php?oldid={{::event.old_revid}}diff={{::event.revid}}
+a stop-event 
href={{::event.projecturl}}/w/index.php?oldid={{::event.old_revid}}diff={{::event.revid}}
ng-class=::event.titlestyle  target=_blank{{::event.title}}/a
 span ng-if=event.clicked
   (a stop-event 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=history target=_blank translate=HISTORY/a)
diff --git a/frontend/src/components/watchlist/entry.directive.html 
b/frontend/src/components/watchlist/entry.directive.html
index c31c419..9adbcbb 100644
--- a/frontend/src/components/watchlist/entry.directive.html
+++ b/frontend/src/components/watchlist/entry.directive.html
@@ -1,6 +1,6 @@
 div ng-if=ctrl.config.oneline layout=row
   div class=left
-a href={{::event.projecturl}}/wiki/Special:Watchlist class=project
+a stop-event href={{::event.projecturl}}/wiki/Special:Watchlist 
class=project
title={{::event.project}} target=_blank
   img height=16px ng-src={{::ctrl.icons[event.projectgroup]}} 
alt={{::event.projectgroup}}
   span ng-if=::event.projectlang
@@ -22,7 +22,7 @@
 div ng-if=!ctrl.config.oneline layout=row
   div class=left
 div am-time-ago=event.timestamp/div
-a href={{::event.projecturl}}/wiki/Special:Watchlist class=project
+a stop-event href={{::event.projecturl}}/wiki/Special:Watchlist 
class=project
title={{::event.project}} target=_blank
   img height=16px ng-src={{::ctrl.icons[event.projectgroup]}} 
alt={{::event.projectgroup}}
   span ng-if=::event.projectlang
diff --git a/frontend/src/components/watchlist/page.directive.js 
b/frontend/src/components/watchlist/page.directive.js
index f7b42f8..a3e79ac 100644
--- a/frontend/src/components/watchlist/page.directive.js
+++ b/frontend/src/components/watchlist/page.directive.js
@@ -6,7 +6,7 @@
   var directive = {
 link: link,
 scope: true,
-template: 'a href={{::event.projecturl}}/wiki/{{::event.title | 
urlEncode}}  target=_blank{{::event.title}}/a ' +
+template: 'a stop-event href={{::event.projecturl}}/wiki/{{::event.title 
| urlEncode}}  target=_blank{{::event.title}}/a ' +
 'span ng-if=event.clicked' +
 '(a stop-event 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=history target=_blank translate=HISTORY/a)' +
 '/span',
diff --git 

[MediaWiki-commits] [Gerrit] Add checkboxes to multiple select lists - change (labs...crosswatch)

2015-07-10 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Add checkboxes to multiple select lists
..


Add checkboxes to multiple select lists

Bug: T100157
Change-Id: I246a560fcba2002071b4b3b422e1845cb11fc011
---
M frontend/src/app/index.css
1 file changed, 42 insertions(+), 0 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 586a456..868a0b4 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -49,6 +49,48 @@
   border-left-color: rgba(0, 0, 0, 0.12);
 }
 
+/** Add checkbox to multiple select, adapted from 
https://github.com/angular/material/issues/3244 **/
+md-select-menu[multiple] md-option {
+  padding-right: 48px;
+}
+
+md-select-menu[multiple] md-option:before {
+  transition: 240ms;
+  position: absolute;
+  top: 13px;
+  right: 16px;
+  width: 16px;
+  height: 16px;
+  border: 2px solid;
+  border-radius: 2px;
+  content: ' ';
+  border-color: rgba(0, 0, 0, 0.54);
+  z-index: 1;
+}
+
+md-select-menu[multiple] md-option[selected]:before {
+  background-color: rgb(63,81,181);
+  border-color: rgb(63,81,181);
+}
+
+md-select-menu[multiple] md-option[selected]:after {
+  -webkit-transform: rotate(45deg);
+  transform: rotate(45deg);
+  position: absolute;
+  top: 15px;
+  right: 23px;
+  display: table;
+  width: 4px;
+  height: 12px;
+  border: 2px solid;
+  border-top: 0;
+  border-left: 0;
+  content: ' ';
+  z-index: 2;
+  border-color: rgb(238,238,238);
+}
+
+/** Links **/
 a {
   color: #0645ad;
   text-decoration: none;

-- 
To view, visit https://gerrit.wikimedia.org/r/224207
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I246a560fcba2002071b4b3b422e1845cb11fc011
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Add checkboxes to multiple select lists - change (labs...crosswatch)

2015-07-10 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/224207

Change subject: Add checkboxes to multiple select lists
..

Add checkboxes to multiple select lists

Bug: T100157
Change-Id: I246a560fcba2002071b4b3b422e1845cb11fc011
---
M frontend/src/app/index.css
1 file changed, 42 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/07/224207/1

diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 586a456..868a0b4 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -49,6 +49,48 @@
   border-left-color: rgba(0, 0, 0, 0.12);
 }
 
+/** Add checkbox to multiple select, adapted from 
https://github.com/angular/material/issues/3244 **/
+md-select-menu[multiple] md-option {
+  padding-right: 48px;
+}
+
+md-select-menu[multiple] md-option:before {
+  transition: 240ms;
+  position: absolute;
+  top: 13px;
+  right: 16px;
+  width: 16px;
+  height: 16px;
+  border: 2px solid;
+  border-radius: 2px;
+  content: ' ';
+  border-color: rgba(0, 0, 0, 0.54);
+  z-index: 1;
+}
+
+md-select-menu[multiple] md-option[selected]:before {
+  background-color: rgb(63,81,181);
+  border-color: rgb(63,81,181);
+}
+
+md-select-menu[multiple] md-option[selected]:after {
+  -webkit-transform: rotate(45deg);
+  transform: rotate(45deg);
+  position: absolute;
+  top: 15px;
+  right: 23px;
+  display: table;
+  width: 4px;
+  height: 12px;
+  border: 2px solid;
+  border-top: 0;
+  border-left: 0;
+  content: ' ';
+  z-index: 2;
+  border-color: rgb(238,238,238);
+}
+
+/** Links **/
 a {
   color: #0645ad;
   text-decoration: none;

-- 
To view, visit https://gerrit.wikimedia.org/r/224207
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I246a560fcba2002071b4b3b422e1845cb11fc011
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Stop click event propagation for a href - change (labs...crosswatch)

2015-07-10 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/224209

Change subject: Stop click event propagation for a href
..

Stop click event propagation for a href

Change-Id: I119bcf84e4ad1ef4e7ea6e50db78d506c7dc957b
---
M backend/celery/tasks.py
M frontend/src/components/watchlist/edit_oneline.directive.html
M frontend/src/components/watchlist/edit_twolines.directive.html
M frontend/src/components/watchlist/entry.directive.html
M frontend/src/components/watchlist/page.directive.js
M frontend/src/components/watchlist/user.directive.js
6 files changed, 7 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/09/224209/1

diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index c9e91c2..fe4df54 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -95,7 +95,7 @@
 
 
 def fix_urls(html, url):
-a = u'a target=_blank href=' + url + u'/'
+a = u'a stop-event target=_blank href=' + url + u'/'
 html = html.replace(u'a href=/', a)
 return html
 
diff --git a/frontend/src/components/watchlist/edit_oneline.directive.html 
b/frontend/src/components/watchlist/edit_oneline.directive.html
index 91a9b97..a051f6c 100644
--- a/frontend/src/components/watchlist/edit_oneline.directive.html
+++ b/frontend/src/components/watchlist/edit_oneline.directive.html
@@ -1,7 +1,7 @@
 span class=newpage ng-if=::event.new translate=NEWPAGE_FLAG/span
 span class=minoredit ng-if=::event.minor 
 translate=MINOREDIT_FLAG/span
 span class=botedit ng-if=::event.bot translate=BOTEDIT_FLAG/span
-a dir=ltr 
href={{::event.projecturl}}/w/index.php?oldid={{::event.old_revid}}diff={{::event.revid}}
+a stop-event dir=ltr 
href={{::event.projecturl}}/w/index.php?oldid={{::event.old_revid}}diff={{::event.revid}}
ng-class=::event.titlestyle  target=_blank{{::event.title}}/a
 span ng-if=event.clicked
   (a stop-event 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=history target=_blank translate=HISTORY/a)
diff --git a/frontend/src/components/watchlist/edit_twolines.directive.html 
b/frontend/src/components/watchlist/edit_twolines.directive.html
index 50910bb..4413525 100644
--- a/frontend/src/components/watchlist/edit_twolines.directive.html
+++ b/frontend/src/components/watchlist/edit_twolines.directive.html
@@ -1,7 +1,7 @@
 span class=newpage ng-if=::event.new translate=NEWPAGE_FLAG/span
 span class=minoredit ng-if=::event.minor 
 translate=MINOREDIT_FLAG/span
 span class=botedit ng-if=::event.bot translate=BOTEDIT_FLAG/span
-a 
href={{::event.projecturl}}/w/index.php?oldid={{::event.old_revid}}diff={{::event.revid}}
+a stop-event 
href={{::event.projecturl}}/w/index.php?oldid={{::event.old_revid}}diff={{::event.revid}}
ng-class=::event.titlestyle  target=_blank{{::event.title}}/a
 span ng-if=event.clicked
   (a stop-event 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=history target=_blank translate=HISTORY/a)
diff --git a/frontend/src/components/watchlist/entry.directive.html 
b/frontend/src/components/watchlist/entry.directive.html
index c31c419..9adbcbb 100644
--- a/frontend/src/components/watchlist/entry.directive.html
+++ b/frontend/src/components/watchlist/entry.directive.html
@@ -1,6 +1,6 @@
 div ng-if=ctrl.config.oneline layout=row
   div class=left
-a href={{::event.projecturl}}/wiki/Special:Watchlist class=project
+a stop-event href={{::event.projecturl}}/wiki/Special:Watchlist 
class=project
title={{::event.project}} target=_blank
   img height=16px ng-src={{::ctrl.icons[event.projectgroup]}} 
alt={{::event.projectgroup}}
   span ng-if=::event.projectlang
@@ -22,7 +22,7 @@
 div ng-if=!ctrl.config.oneline layout=row
   div class=left
 div am-time-ago=event.timestamp/div
-a href={{::event.projecturl}}/wiki/Special:Watchlist class=project
+a stop-event href={{::event.projecturl}}/wiki/Special:Watchlist 
class=project
title={{::event.project}} target=_blank
   img height=16px ng-src={{::ctrl.icons[event.projectgroup]}} 
alt={{::event.projectgroup}}
   span ng-if=::event.projectlang
diff --git a/frontend/src/components/watchlist/page.directive.js 
b/frontend/src/components/watchlist/page.directive.js
index f7b42f8..a3e79ac 100644
--- a/frontend/src/components/watchlist/page.directive.js
+++ b/frontend/src/components/watchlist/page.directive.js
@@ -6,7 +6,7 @@
   var directive = {
 link: link,
 scope: true,
-template: 'a href={{::event.projecturl}}/wiki/{{::event.title | 
urlEncode}}  target=_blank{{::event.title}}/a ' +
+template: 'a stop-event href={{::event.projecturl}}/wiki/{{::event.title 
| urlEncode}}  target=_blank{{::event.title}}/a ' +
 'span ng-if=event.clicked' +
 '(a stop-event 
href={{::event.projecturl}}/w/index.php?title={{::event.title | 
urlEncode}}action=history target=_blank 

[MediaWiki-commits] [Gerrit] Show a edit diff when the user requests it - change (labs...crosswatch)

2015-07-09 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/223798

Change subject: Show a edit diff when the user requests it
..

Show a edit diff when the user requests it

Show a diff for a watchlist edit event when clicking on it.

Bug: T103679
Change-Id: I8a25627b68813b3f0d3e77c53f066dc21ce2b9f6
---
M backend/celery/tasks.py
M backend/server/__init__.py
M frontend/src/app/index.css
M frontend/src/app/runBlock.js
M frontend/src/app/services.js
M frontend/src/components/watchlist/entry.directive.html
M frontend/src/components/watchlist/watchlist.controller.js
M frontend/src/components/watchlist/watchlist.html
8 files changed, 199 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/98/223798/1

diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index c49e1d2..c9e91c2 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -219,5 +219,32 @@
 mw.post(params, payload)
 
 
+@app.task
+def get_diff(obj):
+
+Get a diff for a wiki page
+
+mw = MediaWiki(host=obj['projecturl'],
+   access_token=obj['access_token'],
+   redis_channel=obj['redis_channel'])
+params = {
+'action': query,
+'prop': revisions,
+'rvstartid': obj['old_revid'],
+'rvendid': obj['old_revid'],
+'rvdiffto': obj['revid'],
+'pageids': obj['pageid'],
+'formatversion': 2
+}
+response = mw.query(params)
+diff = response['query']['pages'][0]['revisions'][0]['diff']['body']
+
+mw.publish({
+'msgtype': 'diff_response',
+'request_id': obj['request_id'],
+'diff': diff
+})
+
+
 if __name__ == '__main__':
 app.start()
diff --git a/backend/server/__init__.py b/backend/server/__init__.py
index 29979d9..f4c1f0d 100644
--- a/backend/server/__init__.py
+++ b/backend/server/__init__.py
@@ -59,6 +59,13 @@
 elif data[u'action'] == u'notifications_mark_read':
 
celery_app.send_task('backend.celery.tasks.notifications_mark_read',
  (data, ), expires=60)
+elif data[u'action'] == u'diff':
+redis_channel = str(uuid4())
+self.channels.append(redis_channel)
+subscriber.subscribe(redis_channel, self)
+
+data['redis_channel'] = redis_channel
+celery_app.send_task('backend.celery.tasks.get_diff', (data, ))
 
 
 class NoChacheStaticFileHandler(StaticFileHandler):
diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 3ec86fa..7d7131a 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -207,6 +207,101 @@
   overflow: hidden;
 }
 
+/*!
+ * Diff rendering
+ */
+table.diff {
+  border: none;
+  border-spacing: 4px;
+  margin: 0;
+  width: 100%;
+  /* Ensure that colums are of equal width */
+  table-layout: fixed;
+}
+
+table.diff td {
+  padding: 0.33em 0.5em;
+}
+
+table.diff td.diff-marker {
+  /* Compensate padding for increased font-size */
+  padding: 0.25em;
+}
+
+table.diff col.diff-marker {
+  width: 2%;
+}
+
+table.diff col.diff-content {
+  width: 48%;
+}
+
+table.diff td div {
+  /* Force-wrap very long lines such as URLs or page-widening char strings */
+  word-wrap: break-word;
+}
+
+td.diff-otitle,
+td.diff-ntitle {
+  text-align: center;
+}
+
+td.diff-lineno {
+  font-weight: bold;
+}
+
+td.diff-marker {
+  text-align: right;
+  font-weight: bold;
+  font-size: 1.25em;
+  line-height: 1.2;
+}
+
+td.diff-addedline,
+td.diff-deletedline,
+td.diff-context {
+  font-size: 88%;
+  line-height: 1.6;
+  vertical-align: top;
+  white-space: -moz-pre-wrap;
+  white-space: pre-wrap;
+  border-style: solid;
+  border-width: 1px 1px 1px 4px;
+  border-radius: 0.33em;
+}
+
+td.diff-addedline {
+  border-color: #a3d3ff;
+}
+
+td.diff-deletedline {
+  border-color: #ffe49c;
+}
+
+td.diff-context {
+  background: #f9f9f9;
+  border-color: #e6e6e6;
+  color: #33;
+}
+
+.diffchange {
+  font-weight: bold;
+  text-decoration: none;
+}
+
+td.diff-addedline .diffchange,
+td.diff-deletedline .diffchange {
+  border-radius: 0.33em;
+  padding: 0.25em 0;
+}
+
+td.diff-addedline .diffchange {
+  background: #d8ecff;
+}
+
+td.diff-deletedline .diffchange {
+  background: #feeec8;
+}
 
 /** material design icons **/
 @font-face {
diff --git a/frontend/src/app/runBlock.js b/frontend/src/app/runBlock.js
index f52f1de..835a949 100644
--- a/frontend/src/app/runBlock.js
+++ b/frontend/src/app/runBlock.js
@@ -58,6 +58,8 @@
   dataService.addWatchlistEntries(data.entires);
 } else if (data.msgtype === 'notification') {
   dataService.addNotificationEntries(data)
+} else if (data.msgtype === 'diff_response') {
+  dataService.diffResponseHandler(data)
 } else if (data.msgtype === 'loginerror') {
   $log.error('login failed!');
 
@@ -75,7 +77,7 @@
   });
   

[MediaWiki-commits] [Gerrit] Show a edit diff when the user requests it - change (labs...crosswatch)

2015-07-09 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Show a edit diff when the user requests it
..


Show a edit diff when the user requests it

Show a diff for a watchlist edit event when clicking on it.

Bug: T103679
Change-Id: I8a25627b68813b3f0d3e77c53f066dc21ce2b9f6
---
M backend/celery/tasks.py
M backend/server/__init__.py
M frontend/src/app/index.css
M frontend/src/app/runBlock.js
M frontend/src/app/services.js
M frontend/src/components/watchlist/entry.directive.html
M frontend/src/components/watchlist/watchlist.controller.js
M frontend/src/components/watchlist/watchlist.html
8 files changed, 199 insertions(+), 3 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/backend/celery/tasks.py b/backend/celery/tasks.py
index c49e1d2..c9e91c2 100644
--- a/backend/celery/tasks.py
+++ b/backend/celery/tasks.py
@@ -219,5 +219,32 @@
 mw.post(params, payload)
 
 
+@app.task
+def get_diff(obj):
+
+Get a diff for a wiki page
+
+mw = MediaWiki(host=obj['projecturl'],
+   access_token=obj['access_token'],
+   redis_channel=obj['redis_channel'])
+params = {
+'action': query,
+'prop': revisions,
+'rvstartid': obj['old_revid'],
+'rvendid': obj['old_revid'],
+'rvdiffto': obj['revid'],
+'pageids': obj['pageid'],
+'formatversion': 2
+}
+response = mw.query(params)
+diff = response['query']['pages'][0]['revisions'][0]['diff']['body']
+
+mw.publish({
+'msgtype': 'diff_response',
+'request_id': obj['request_id'],
+'diff': diff
+})
+
+
 if __name__ == '__main__':
 app.start()
diff --git a/backend/server/__init__.py b/backend/server/__init__.py
index 29979d9..f4c1f0d 100644
--- a/backend/server/__init__.py
+++ b/backend/server/__init__.py
@@ -59,6 +59,13 @@
 elif data[u'action'] == u'notifications_mark_read':
 
celery_app.send_task('backend.celery.tasks.notifications_mark_read',
  (data, ), expires=60)
+elif data[u'action'] == u'diff':
+redis_channel = str(uuid4())
+self.channels.append(redis_channel)
+subscriber.subscribe(redis_channel, self)
+
+data['redis_channel'] = redis_channel
+celery_app.send_task('backend.celery.tasks.get_diff', (data, ))
 
 
 class NoChacheStaticFileHandler(StaticFileHandler):
diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 3ec86fa..7d7131a 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -207,6 +207,101 @@
   overflow: hidden;
 }
 
+/*!
+ * Diff rendering
+ */
+table.diff {
+  border: none;
+  border-spacing: 4px;
+  margin: 0;
+  width: 100%;
+  /* Ensure that colums are of equal width */
+  table-layout: fixed;
+}
+
+table.diff td {
+  padding: 0.33em 0.5em;
+}
+
+table.diff td.diff-marker {
+  /* Compensate padding for increased font-size */
+  padding: 0.25em;
+}
+
+table.diff col.diff-marker {
+  width: 2%;
+}
+
+table.diff col.diff-content {
+  width: 48%;
+}
+
+table.diff td div {
+  /* Force-wrap very long lines such as URLs or page-widening char strings */
+  word-wrap: break-word;
+}
+
+td.diff-otitle,
+td.diff-ntitle {
+  text-align: center;
+}
+
+td.diff-lineno {
+  font-weight: bold;
+}
+
+td.diff-marker {
+  text-align: right;
+  font-weight: bold;
+  font-size: 1.25em;
+  line-height: 1.2;
+}
+
+td.diff-addedline,
+td.diff-deletedline,
+td.diff-context {
+  font-size: 88%;
+  line-height: 1.6;
+  vertical-align: top;
+  white-space: -moz-pre-wrap;
+  white-space: pre-wrap;
+  border-style: solid;
+  border-width: 1px 1px 1px 4px;
+  border-radius: 0.33em;
+}
+
+td.diff-addedline {
+  border-color: #a3d3ff;
+}
+
+td.diff-deletedline {
+  border-color: #ffe49c;
+}
+
+td.diff-context {
+  background: #f9f9f9;
+  border-color: #e6e6e6;
+  color: #33;
+}
+
+.diffchange {
+  font-weight: bold;
+  text-decoration: none;
+}
+
+td.diff-addedline .diffchange,
+td.diff-deletedline .diffchange {
+  border-radius: 0.33em;
+  padding: 0.25em 0;
+}
+
+td.diff-addedline .diffchange {
+  background: #d8ecff;
+}
+
+td.diff-deletedline .diffchange {
+  background: #feeec8;
+}
 
 /** material design icons **/
 @font-face {
diff --git a/frontend/src/app/runBlock.js b/frontend/src/app/runBlock.js
index f52f1de..835a949 100644
--- a/frontend/src/app/runBlock.js
+++ b/frontend/src/app/runBlock.js
@@ -58,6 +58,8 @@
   dataService.addWatchlistEntries(data.entires);
 } else if (data.msgtype === 'notification') {
   dataService.addNotificationEntries(data)
+} else if (data.msgtype === 'diff_response') {
+  dataService.diffResponseHandler(data)
 } else if (data.msgtype === 'loginerror') {
   $log.error('login failed!');
 
@@ -75,7 +77,7 @@
   });
   });
 } else {
-  $log.error(data);
+  

[MediaWiki-commits] [Gerrit] Cleanup css files - change (labs...crosswatch)

2015-07-09 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Cleanup css files
..


Cleanup css files

Change-Id: I93ad4d9a6d5adb12ec71554701a429692e297fab
---
A frontend/src/app/browserfixes.css
M frontend/src/app/index.css
A frontend/src/app/mediawiki.css
3 files changed, 176 insertions(+), 186 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/app/browserfixes.css 
b/frontend/src/app/browserfixes.css
new file mode 100644
index 000..0ee5f87
--- /dev/null
+++ b/frontend/src/app/browserfixes.css
@@ -0,0 +1,37 @@
+/*** Browser fixes ***/
+::-webkit-input-placeholder { /* WebKit browsers */
+  color:rgba(255,255,255,0.87);
+}
+::-moz-placeholder { /* Mozilla Firefox 19+ */
+  color:rgba(255,255,255,0.87);
+  opacity:  1;
+}
+:-ms-input-placeholder { /* Internet Explorer 10+ */
+  color:rgba(255,255,255,0.87);
+}
+
+/*** IE fixes  ***/
+.browsehappy {
+  margin: 0.2em 0;
+  background: #ccc;
+  color: #000;
+  padding: 0.2em 0;
+}
+
+a img{
+  border: 0;
+}
+
+/* https://github.com/angular/material/issues/2213 */
+@media screen and (min-width:0\0) {
+  md-select .md-select-icon {
+float: right;
+  }
+}
+
+/* https://github.com/angular/material/issues/2769 */
+_:-ms-fullscreen, :root /* IE11+ */ md-select-label :first-child{
+  flex-basis: auto;
+  max-width: 100%;
+  overflow: hidden;
+}
diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 7d7131a..586a456 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -37,26 +37,10 @@
   min-width:100%;
 }
 
-/* https://github.com/angular/material/issues/3283 should be fixed in material 
0.11.0 */
-.md-scroll-mask {
-  z-index: 0 !important;
-}
-
 md-input-container.md-default-theme .md-input {
   color: rgba(255,255,255,0.87);
   border-color: rgba(255,255,255,0.87);
   margin-top: 24px;
-}
-/*** Browser fixes ***/
-::-webkit-input-placeholder { /* WebKit browsers */
-  color:rgba(255,255,255,0.87);
-}
-::-moz-placeholder { /* Mozilla Firefox 19+ */
-  color:rgba(255,255,255,0.87);
-  opacity:  1;
-}
-:-ms-input-placeholder { /* Internet Explorer 10+ */
-  color:rgba(255,255,255,0.87);
 }
 
 md-divider[role=vertical] {
@@ -65,14 +49,7 @@
   border-left-color: rgba(0, 0, 0, 0.12);
 }
 
-/* Should be fixed in ngMaterial 0.10
-md-select.md-default-theme:not([disabled]):focus .md-select-label {
-  color: white;
-}
-*/
-
 a {
-  /*color: #106CC8;*/
   color: #0645ad;
   text-decoration: none;
   font-weight: 400;
@@ -84,7 +61,6 @@
   transition: border-bottom 0.25s;
 }
 a:hover, a:focus {
-  /*border-bottom: 1px solid #4054B2;*/
   border-bottom: 1px solid #0645ad;
 }
 a.md-button {
@@ -165,144 +141,6 @@
   font-weight: bold;
 }
 
-
-/** Styles imported from MediaWiki CSS **/
-.mw-title
-{
-  font-weight: bold;
-}
-
-.mw-echo-notification{
-  list-style: none none;
-}
-.mw-echo-notifications{
-  margin:0;
-  padding:0;
-  list-style: none none;
-  overflow:auto;
-  background-color: rgb(238, 238,238);
-}
-.mw-echo-notification-wrapper {
-  display: block;
-  background-color: rgb(241, 241, 241);
-  border-bottom: 1px solid rgb(221, 221, 221);
-  padding: 15px 40px 10px 10px;
-  white-space: normal;
-  font-size: 13px;
-  line-height: 16px;
-  color: inherit;
-  text-decoration: inherit;
-}
-.mw-echo-icon {
-  width: 30px;
-  height: 30px;
-  float: left;
-  margin-right: 10px;
-  margin-left: 10px;
-}
-.mw-echo-content {
-  font-size: 13px;
-  font-weight:normal;
-  line-height: 16px;
-  overflow: hidden;
-}
-
-/*!
- * Diff rendering
- */
-table.diff {
-  border: none;
-  border-spacing: 4px;
-  margin: 0;
-  width: 100%;
-  /* Ensure that colums are of equal width */
-  table-layout: fixed;
-}
-
-table.diff td {
-  padding: 0.33em 0.5em;
-}
-
-table.diff td.diff-marker {
-  /* Compensate padding for increased font-size */
-  padding: 0.25em;
-}
-
-table.diff col.diff-marker {
-  width: 2%;
-}
-
-table.diff col.diff-content {
-  width: 48%;
-}
-
-table.diff td div {
-  /* Force-wrap very long lines such as URLs or page-widening char strings */
-  word-wrap: break-word;
-}
-
-td.diff-otitle,
-td.diff-ntitle {
-  text-align: center;
-}
-
-td.diff-lineno {
-  font-weight: bold;
-}
-
-td.diff-marker {
-  text-align: right;
-  font-weight: bold;
-  font-size: 1.25em;
-  line-height: 1.2;
-}
-
-td.diff-addedline,
-td.diff-deletedline,
-td.diff-context {
-  font-size: 88%;
-  line-height: 1.6;
-  vertical-align: top;
-  white-space: -moz-pre-wrap;
-  white-space: pre-wrap;
-  border-style: solid;
-  border-width: 1px 1px 1px 4px;
-  border-radius: 0.33em;
-}
-
-td.diff-addedline {
-  border-color: #a3d3ff;
-}
-
-td.diff-deletedline {
-  border-color: #ffe49c;
-}
-
-td.diff-context {
-  background: #f9f9f9;
-  border-color: #e6e6e6;
-  color: #33;
-}
-
-.diffchange {
-  font-weight: bold;
-  text-decoration: none;
-}
-
-td.diff-addedline .diffchange,
-td.diff-deletedline 

[MediaWiki-commits] [Gerrit] Cleanup css files - change (labs...crosswatch)

2015-07-09 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/223811

Change subject: Cleanup css files
..

Cleanup css files

Change-Id: I93ad4d9a6d5adb12ec71554701a429692e297fab
---
A frontend/src/app/browserfixes.css
M frontend/src/app/index.css
A frontend/src/app/mediawiki.css
3 files changed, 176 insertions(+), 186 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/11/223811/1

diff --git a/frontend/src/app/browserfixes.css 
b/frontend/src/app/browserfixes.css
new file mode 100644
index 000..0ee5f87
--- /dev/null
+++ b/frontend/src/app/browserfixes.css
@@ -0,0 +1,37 @@
+/*** Browser fixes ***/
+::-webkit-input-placeholder { /* WebKit browsers */
+  color:rgba(255,255,255,0.87);
+}
+::-moz-placeholder { /* Mozilla Firefox 19+ */
+  color:rgba(255,255,255,0.87);
+  opacity:  1;
+}
+:-ms-input-placeholder { /* Internet Explorer 10+ */
+  color:rgba(255,255,255,0.87);
+}
+
+/*** IE fixes  ***/
+.browsehappy {
+  margin: 0.2em 0;
+  background: #ccc;
+  color: #000;
+  padding: 0.2em 0;
+}
+
+a img{
+  border: 0;
+}
+
+/* https://github.com/angular/material/issues/2213 */
+@media screen and (min-width:0\0) {
+  md-select .md-select-icon {
+float: right;
+  }
+}
+
+/* https://github.com/angular/material/issues/2769 */
+_:-ms-fullscreen, :root /* IE11+ */ md-select-label :first-child{
+  flex-basis: auto;
+  max-width: 100%;
+  overflow: hidden;
+}
diff --git a/frontend/src/app/index.css b/frontend/src/app/index.css
index 7d7131a..586a456 100644
--- a/frontend/src/app/index.css
+++ b/frontend/src/app/index.css
@@ -37,26 +37,10 @@
   min-width:100%;
 }
 
-/* https://github.com/angular/material/issues/3283 should be fixed in material 
0.11.0 */
-.md-scroll-mask {
-  z-index: 0 !important;
-}
-
 md-input-container.md-default-theme .md-input {
   color: rgba(255,255,255,0.87);
   border-color: rgba(255,255,255,0.87);
   margin-top: 24px;
-}
-/*** Browser fixes ***/
-::-webkit-input-placeholder { /* WebKit browsers */
-  color:rgba(255,255,255,0.87);
-}
-::-moz-placeholder { /* Mozilla Firefox 19+ */
-  color:rgba(255,255,255,0.87);
-  opacity:  1;
-}
-:-ms-input-placeholder { /* Internet Explorer 10+ */
-  color:rgba(255,255,255,0.87);
 }
 
 md-divider[role=vertical] {
@@ -65,14 +49,7 @@
   border-left-color: rgba(0, 0, 0, 0.12);
 }
 
-/* Should be fixed in ngMaterial 0.10
-md-select.md-default-theme:not([disabled]):focus .md-select-label {
-  color: white;
-}
-*/
-
 a {
-  /*color: #106CC8;*/
   color: #0645ad;
   text-decoration: none;
   font-weight: 400;
@@ -84,7 +61,6 @@
   transition: border-bottom 0.25s;
 }
 a:hover, a:focus {
-  /*border-bottom: 1px solid #4054B2;*/
   border-bottom: 1px solid #0645ad;
 }
 a.md-button {
@@ -165,144 +141,6 @@
   font-weight: bold;
 }
 
-
-/** Styles imported from MediaWiki CSS **/
-.mw-title
-{
-  font-weight: bold;
-}
-
-.mw-echo-notification{
-  list-style: none none;
-}
-.mw-echo-notifications{
-  margin:0;
-  padding:0;
-  list-style: none none;
-  overflow:auto;
-  background-color: rgb(238, 238,238);
-}
-.mw-echo-notification-wrapper {
-  display: block;
-  background-color: rgb(241, 241, 241);
-  border-bottom: 1px solid rgb(221, 221, 221);
-  padding: 15px 40px 10px 10px;
-  white-space: normal;
-  font-size: 13px;
-  line-height: 16px;
-  color: inherit;
-  text-decoration: inherit;
-}
-.mw-echo-icon {
-  width: 30px;
-  height: 30px;
-  float: left;
-  margin-right: 10px;
-  margin-left: 10px;
-}
-.mw-echo-content {
-  font-size: 13px;
-  font-weight:normal;
-  line-height: 16px;
-  overflow: hidden;
-}
-
-/*!
- * Diff rendering
- */
-table.diff {
-  border: none;
-  border-spacing: 4px;
-  margin: 0;
-  width: 100%;
-  /* Ensure that colums are of equal width */
-  table-layout: fixed;
-}
-
-table.diff td {
-  padding: 0.33em 0.5em;
-}
-
-table.diff td.diff-marker {
-  /* Compensate padding for increased font-size */
-  padding: 0.25em;
-}
-
-table.diff col.diff-marker {
-  width: 2%;
-}
-
-table.diff col.diff-content {
-  width: 48%;
-}
-
-table.diff td div {
-  /* Force-wrap very long lines such as URLs or page-widening char strings */
-  word-wrap: break-word;
-}
-
-td.diff-otitle,
-td.diff-ntitle {
-  text-align: center;
-}
-
-td.diff-lineno {
-  font-weight: bold;
-}
-
-td.diff-marker {
-  text-align: right;
-  font-weight: bold;
-  font-size: 1.25em;
-  line-height: 1.2;
-}
-
-td.diff-addedline,
-td.diff-deletedline,
-td.diff-context {
-  font-size: 88%;
-  line-height: 1.6;
-  vertical-align: top;
-  white-space: -moz-pre-wrap;
-  white-space: pre-wrap;
-  border-style: solid;
-  border-width: 1px 1px 1px 4px;
-  border-radius: 0.33em;
-}
-
-td.diff-addedline {
-  border-color: #a3d3ff;
-}
-
-td.diff-deletedline {
-  border-color: #ffe49c;
-}
-
-td.diff-context {
-  background: #f9f9f9;
-  border-color: #e6e6e6;
-  color: #33;
-}
-
-.diffchange {
-  font-weight: bold;
-  text-decoration: 

[MediaWiki-commits] [Gerrit] Fix logevent isolate scope - change (labs...crosswatch)

2015-07-07 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/223350

Change subject: Fix logevent isolate scope
..

Fix logevent isolate scope

Scope for logevents was not properly isolated, causing it to
overwrite the parent scope.

Change-Id: I1d1f797edc4b26636339b84504c7206cf028d036
---
M frontend/src/components/watchlist/logevent.directive.js
M frontend/src/components/watchlist/user.directive.js
2 files changed, 5 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/50/223350/1

diff --git a/frontend/src/components/watchlist/logevent.directive.js 
b/frontend/src/components/watchlist/logevent.directive.js
index 1154cf0..a9fc168 100644
--- a/frontend/src/components/watchlist/logevent.directive.js
+++ b/frontend/src/components/watchlist/logevent.directive.js
@@ -5,7 +5,6 @@
 function watchlistLogevent() {
   var directive = {
 link: link,
-scope: true,
 templateUrl: 'components/watchlist/logevent.directive.html',
 restrict: 'E'
   };
diff --git a/frontend/src/components/watchlist/user.directive.js 
b/frontend/src/components/watchlist/user.directive.js
index c5220f8..8390640 100644
--- a/frontend/src/components/watchlist/user.directive.js
+++ b/frontend/src/components/watchlist/user.directive.js
@@ -6,9 +6,9 @@
   var directive = {
 link: link,
 scope: true,
-template: 'a href={{::event.projecturl}}/wiki/User:{{::event.user | 
urlEncode}} target=_blank{{::event.user}}/a ' +
+template: 'a href={{::event.projecturl}}/wiki/User:{{::user | 
urlEncode}} target=_blank{{::user}}/a ' +
 'span ng-if=event.clicked' +
-'(a stop-event 
href={{::event.projecturl}}/wiki/Special:Contributions/{{::event.user | 
urlEncode}} target=_blank translate=CONTRIBS/a)' +
+'(a stop-event 
href={{::event.projecturl}}/wiki/Special:Contributions/{{::user | urlEncode}} 
target=_blank translate=CONTRIBS/a)' +
 '/span',
 restrict: 'E'
   };
@@ -16,9 +16,9 @@
 
   function link(scope, element, attrs) {
 if (typeof attrs.name !== 'undefined') {
-  scope.event.user = attrs.name;
+  scope.user = attrs.name;
+} else {
+  scope.user = scope.event.user;
 }
-
-scope.event.user = scope.event.user.replace(User:, );
   }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/223350
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1d1f797edc4b26636339b84504c7206cf028d036
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix logevent isolate scope - change (labs...crosswatch)

2015-07-07 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix logevent isolate scope
..


Fix logevent isolate scope

Scope for logevents was not properly isolated, causing it to
overwrite the parent scope.

Change-Id: I1d1f797edc4b26636339b84504c7206cf028d036
---
M frontend/src/components/watchlist/logevent.directive.js
M frontend/src/components/watchlist/user.directive.js
2 files changed, 5 insertions(+), 6 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/components/watchlist/logevent.directive.js 
b/frontend/src/components/watchlist/logevent.directive.js
index 1154cf0..a9fc168 100644
--- a/frontend/src/components/watchlist/logevent.directive.js
+++ b/frontend/src/components/watchlist/logevent.directive.js
@@ -5,7 +5,6 @@
 function watchlistLogevent() {
   var directive = {
 link: link,
-scope: true,
 templateUrl: 'components/watchlist/logevent.directive.html',
 restrict: 'E'
   };
diff --git a/frontend/src/components/watchlist/user.directive.js 
b/frontend/src/components/watchlist/user.directive.js
index c5220f8..8390640 100644
--- a/frontend/src/components/watchlist/user.directive.js
+++ b/frontend/src/components/watchlist/user.directive.js
@@ -6,9 +6,9 @@
   var directive = {
 link: link,
 scope: true,
-template: 'a href={{::event.projecturl}}/wiki/User:{{::event.user | 
urlEncode}} target=_blank{{::event.user}}/a ' +
+template: 'a href={{::event.projecturl}}/wiki/User:{{::user | 
urlEncode}} target=_blank{{::user}}/a ' +
 'span ng-if=event.clicked' +
-'(a stop-event 
href={{::event.projecturl}}/wiki/Special:Contributions/{{::event.user | 
urlEncode}} target=_blank translate=CONTRIBS/a)' +
+'(a stop-event 
href={{::event.projecturl}}/wiki/Special:Contributions/{{::user | urlEncode}} 
target=_blank translate=CONTRIBS/a)' +
 '/span',
 restrict: 'E'
   };
@@ -16,9 +16,9 @@
 
   function link(scope, element, attrs) {
 if (typeof attrs.name !== 'undefined') {
-  scope.event.user = attrs.name;
+  scope.user = attrs.name;
+} else {
+  scope.user = scope.event.user;
 }
-
-scope.event.user = scope.event.user.replace(User:, );
   }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/223350
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I1d1f797edc4b26636339b84504c7206cf028d036
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix pt translation - change (labs...crosswatch)

2015-07-03 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Fix pt translation
..


Fix pt translation

By request from he7d3r.

Change-Id: If0c4e1580568b4f32cc4926ef36305b4249387e6
---
M frontend/src/i18n/locale-pt.json
1 file changed, 1 insertion(+), 1 deletion(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/frontend/src/i18n/locale-pt.json b/frontend/src/i18n/locale-pt.json
index 18f8afc..fd10e12 100644
--- a/frontend/src/i18n/locale-pt.json
+++ b/frontend/src/i18n/locale-pt.json
@@ -5,7 +5,7 @@
   SIGN_IN: Entrar,
   SIGN_OUT: Sair,
   DESCRIPTION: Uma lista de páginas vigiadas aprimorada para os projetos 
Wikimedia.,
-  SIGN_IN_BUTTON: Enrar com OAuth,
+  SIGN_IN_BUTTON: Entrar com OAuth,
   MINOREDIT_FLAG: m,
   BOTEDIT_FLAG: b,
   NEWPAGE_FLAG: N

-- 
To view, visit https://gerrit.wikimedia.org/r/222621
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: If0c4e1580568b4f32cc4926ef36305b4249387e6
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Fix pt translation - change (labs...crosswatch)

2015-07-03 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/222621

Change subject: Fix pt translation
..

Fix pt translation

By request from he7d3r.

Change-Id: If0c4e1580568b4f32cc4926ef36305b4249387e6
---
M frontend/src/i18n/locale-pt.json
1 file changed, 1 insertion(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/21/222621/1

diff --git a/frontend/src/i18n/locale-pt.json b/frontend/src/i18n/locale-pt.json
index 18f8afc..fd10e12 100644
--- a/frontend/src/i18n/locale-pt.json
+++ b/frontend/src/i18n/locale-pt.json
@@ -5,7 +5,7 @@
   SIGN_IN: Entrar,
   SIGN_OUT: Sair,
   DESCRIPTION: Uma lista de páginas vigiadas aprimorada para os projetos 
Wikimedia.,
-  SIGN_IN_BUTTON: Enrar com OAuth,
+  SIGN_IN_BUTTON: Entrar com OAuth,
   MINOREDIT_FLAG: m,
   BOTEDIT_FLAG: b,
   NEWPAGE_FLAG: N

-- 
To view, visit https://gerrit.wikimedia.org/r/222621
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If0c4e1580568b4f32cc4926ef36305b4249387e6
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Use webservice-new insead of portgrabber - change (labs...crosswatch)

2015-07-02 Thread Sitic (Code Review)
Sitic has submitted this change and it was merged.

Change subject: Use webservice-new insead of portgrabber
..


Use webservice-new insead of portgrabber

What could possibly go wrong?

Change-Id: I7ca6c6bf5606ce43b5c674538d0f3c819a16d5d1
---
D scripts/_sge_webserver.sh
M scripts/restart_webserver.sh
M scripts/start_webserver.sh
D scripts/stop_webserver.sh
R scripts/webserver.sh
5 files changed, 2 insertions(+), 15 deletions(-)

Approvals:
  Sitic: Verified; Looks good to me, approved



diff --git a/scripts/_sge_webserver.sh b/scripts/_sge_webserver.sh
deleted file mode 100755
index 411df8d..000
--- a/scripts/_sge_webserver.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-cd `dirname $0`
-exec portgrabber crosswatch ./_sge_webserver_internal.sh
diff --git a/scripts/restart_webserver.sh b/scripts/restart_webserver.sh
index ef5abe6..02bb0cc 100755
--- a/scripts/restart_webserver.sh
+++ b/scripts/restart_webserver.sh
@@ -1,7 +1,2 @@
 #!/bin/bash
-cd `dirname $0`
-./stop_webserver.sh
-while [ $(qstat -q webgrid-generic | wc -l) -ge 3 ]; do
-sleep 1
-done
-./start_webserver.sh
+webservice-new restart
diff --git a/scripts/start_webserver.sh b/scripts/start_webserver.sh
index a045a1a..28a3e5d 100755
--- a/scripts/start_webserver.sh
+++ b/scripts/start_webserver.sh
@@ -1,4 +1,3 @@
 #!/bin/bash
 cd `dirname $0`
-echo starting webserver
-jstart -N tornado-crosswatch -once -q webgrid-generic -l release=trusty -mem 
3G ./_sge_webserver.sh
+webservice-new generic start $PWD/webserver.sh
diff --git a/scripts/stop_webserver.sh b/scripts/stop_webserver.sh
deleted file mode 100755
index fa634d7..000
--- a/scripts/stop_webserver.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-echo stopping webserver
-qstat -q webgrid-generic | awk '{ if ($1~/[0-9]+/) cmd=qdel  $1; 
system(cmd); close(cmd)}'
diff --git a/scripts/_sge_webserver_internal.sh b/scripts/webserver.sh
similarity index 87%
rename from scripts/_sge_webserver_internal.sh
rename to scripts/webserver.sh
index 0d22884..cca236b 100755
--- a/scripts/_sge_webserver_internal.sh
+++ b/scripts/webserver.sh
@@ -2,5 +2,4 @@
 source $HOME/.virtualenvs/backend/bin/activate
 cd `dirname $0`
 cd ..
-export PORT=$1
 python -m backend $PORT

-- 
To view, visit https://gerrit.wikimedia.org/r/222510
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I7ca6c6bf5606ce43b5c674538d0f3c819a16d5d1
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de
Gerrit-Reviewer: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Use webservice-new insead of portgrabber - change (labs...crosswatch)

2015-07-02 Thread Sitic (Code Review)
Sitic has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/222510

Change subject: Use webservice-new insead of portgrabber
..

Use webservice-new insead of portgrabber

What could possibly go wrong?

Change-Id: I7ca6c6bf5606ce43b5c674538d0f3c819a16d5d1
---
D scripts/_sge_webserver.sh
M scripts/restart_webserver.sh
M scripts/start_webserver.sh
D scripts/stop_webserver.sh
R scripts/webserver.sh
5 files changed, 2 insertions(+), 15 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/tools/crosswatch 
refs/changes/10/222510/1

diff --git a/scripts/_sge_webserver.sh b/scripts/_sge_webserver.sh
deleted file mode 100755
index 411df8d..000
--- a/scripts/_sge_webserver.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-cd `dirname $0`
-exec portgrabber crosswatch ./_sge_webserver_internal.sh
diff --git a/scripts/restart_webserver.sh b/scripts/restart_webserver.sh
index ef5abe6..02bb0cc 100755
--- a/scripts/restart_webserver.sh
+++ b/scripts/restart_webserver.sh
@@ -1,7 +1,2 @@
 #!/bin/bash
-cd `dirname $0`
-./stop_webserver.sh
-while [ $(qstat -q webgrid-generic | wc -l) -ge 3 ]; do
-sleep 1
-done
-./start_webserver.sh
+webservice-new restart
diff --git a/scripts/start_webserver.sh b/scripts/start_webserver.sh
index a045a1a..28a3e5d 100755
--- a/scripts/start_webserver.sh
+++ b/scripts/start_webserver.sh
@@ -1,4 +1,3 @@
 #!/bin/bash
 cd `dirname $0`
-echo starting webserver
-jstart -N tornado-crosswatch -once -q webgrid-generic -l release=trusty -mem 
3G ./_sge_webserver.sh
+webservice-new generic start $PWD/webserver.sh
diff --git a/scripts/stop_webserver.sh b/scripts/stop_webserver.sh
deleted file mode 100755
index fa634d7..000
--- a/scripts/stop_webserver.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-echo stopping webserver
-qstat -q webgrid-generic | awk '{ if ($1~/[0-9]+/) cmd=qdel  $1; 
system(cmd); close(cmd)}'
diff --git a/scripts/_sge_webserver_internal.sh b/scripts/webserver.sh
similarity index 87%
rename from scripts/_sge_webserver_internal.sh
rename to scripts/webserver.sh
index 0d22884..cca236b 100755
--- a/scripts/_sge_webserver_internal.sh
+++ b/scripts/webserver.sh
@@ -2,5 +2,4 @@
 source $HOME/.virtualenvs/backend/bin/activate
 cd `dirname $0`
 cd ..
-export PORT=$1
 python -m backend $PORT

-- 
To view, visit https://gerrit.wikimedia.org/r/222510
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7ca6c6bf5606ce43b5c674538d0f3c819a16d5d1
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/crosswatch
Gerrit-Branch: master
Gerrit-Owner: Sitic jan.leb...@online.de

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


  1   2   >