Yuvipanda has uploaded a new change for review.

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

Change subject: Make linkactions into its own module
......................................................................

Make linkactions into its own module

Makes reuse easierMake linkactions into its own module

Makes reuse easierMake linkactions into its own module

Makes reuse easierMake linkactions into its own module

Makes reuse easierMake linkactions into its own module

Makes reuse easierMake linkactions into its own module

Makes reuse easierMake linkactions into its own module

Makes reuse easierMake linkactions into its own module

Makes reuse easier

Change-Id: I8a6595594909e58af2e6f2df831ca5c3ac8aaefd
---
M wikipedia/assets/bundle.js
M www/Gruntfile.js
A www/js/actions.js
A www/js/editaction.js
D www/js/linkactions.js
5 files changed, 102 insertions(+), 47 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/61/110961/1

diff --git a/wikipedia/assets/bundle.js b/wikipedia/assets/bundle.js
index f893cc3..e826853 100644
--- a/wikipedia/assets/bundle.js
+++ b/wikipedia/assets/bundle.js
@@ -1,4 +1,37 @@
 (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof 
require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw 
new Error("Cannot find module '"+o+"'")}var 
f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return 
s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof 
require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return 
s})({1:[function(require,module,exports){
+var bridge = require('./bridge');
+
+function ActionsHandler() {
+}
+
+var actionHandlers = {};
+
+ActionsHandler.prototype.register = function( action, fun ) {
+    if ( action in actionHandlers ) {
+        actionHandlers[action].push( fun );
+    } else {
+        actionHandlers[action] = [ fun ];
+    }
+};
+
+document.onclick = function() {
+    if ( event.target.tagName === "A" ) {
+        if ( event.target.hasAttribute( "data-action" ) ) {
+            var action = event.target.getAttribute( "data-action" );
+            var handlers = actionHandlers[ action ];
+            for ( var i = 0; i < handlers.length; i++ ) {
+                handlers[i]( event.target, event );
+            }
+        } else {
+            bridge.sendMessage( 'linkClicked', { href: 
event.target.getAttribute( "href" ) });
+            event.preventDefault();
+        }
+    }
+};
+
+module.exports = new ActionsHandler();
+
+},{"./bridge":2}],2:[function(require,module,exports){
 function Bridge() {
 }
 
@@ -36,28 +69,16 @@
 window.onload = function() {
     module.exports.sendMessage( "DOMLoaded", {} );
 };
-},{}],2:[function(require,module,exports){
+},{}],3:[function(require,module,exports){
+var actions = require('./actions');
 var bridge = require('./bridge');
 
-var actionHandlers = {
-    "edit_section": function( el, event ) {
-        bridge.sendMessage( 'editSectionClicked', { sectionID: 
el.getAttribute( 'data-id' ) } );
-        event.preventDefault();
-    }
-};
+actions.register( "edit_section", function( el, event ) {
+    bridge.sendMessage( 'editSectionClicked', { sectionID: el.getAttribute( 
'data-id' ) } );
+    event.preventDefault();
+} );
 
-document.onclick = function() {
-    if ( event.target.tagName === "A" ) {
-        if ( event.target.hasAttribute( "data-action" ) ) {
-            var action = event.target.getAttribute( "data-action" );
-            actionHandlers[ action ]( event.target, event );
-        } else {
-            bridge.sendMessage( 'linkClicked', { href: 
event.target.getAttribute( "href" ) });
-            event.preventDefault();
-        }
-    }
-};
-},{"./bridge":1}],3:[function(require,module,exports){
+},{"./actions":1,"./bridge":2}],4:[function(require,module,exports){
 var bridge = require("./bridge");
 bridge.registerListener( "displayAttribution", function( payload ) {
     var lastUpdatedA = document.getElementById( "lastupdated" );
@@ -75,7 +96,7 @@
     }
     bridge.sendMessage( "imagesListResponse", { "images": imageURLs });
 } );
-},{"./bridge":1}],4:[function(require,module,exports){
+},{"./bridge":2}],5:[function(require,module,exports){
 var bridge = require("./bridge");
 var transformer = require("./transformer");
 
@@ -143,7 +164,7 @@
     window.scrollTo(0, scrollY);
 });
 
-},{"./bridge":1,"./transformer":5}],5:[function(require,module,exports){
+},{"./bridge":2,"./transformer":6}],6:[function(require,module,exports){
 function Transformer() {
 }
 
@@ -167,7 +188,7 @@
 
 module.exports = new Transformer();
 
-},{}],6:[function(require,module,exports){
+},{}],7:[function(require,module,exports){
 var bridge = require("./bridge");
 var transformer = require("./transformer");
 
@@ -205,4 +226,4 @@
     return content;
 } );
 
-},{"./bridge":1,"./transformer":5}]},{},[3,5,6,1,2,4])
\ No newline at end of file
+},{"./bridge":2,"./transformer":6}]},{},[4,6,7,2,1,3,5])
\ No newline at end of file
diff --git a/www/Gruntfile.js b/www/Gruntfile.js
index 1f5e148..01e162e 100644
--- a/www/Gruntfile.js
+++ b/www/Gruntfile.js
@@ -4,7 +4,8 @@
         "js/tranformer.js",
         "js/transforms.js",
         "js/bridge.js",
-        "js/linkactions.js",
+        "js/actions.js",
+        "js/editaction.js",
         "js/sections.js",
         "tests/*.js"
     ];
@@ -20,9 +21,24 @@
         browserify: {
             dist: {
                 files: {
-                    "bundle.js": [ "js/main.js", "js/transformer.js", 
"js/transforms.js", "js/bridge.js", "js/linkactions.js", "js/sections.js"],
-                    "bundle-test.js": [ "js/main.js", "js/bridge.js", 
"tests/*.js" ],
-                    "abusefilter.js": [ "js/bridge.js", "js/abusefilter.js" ]
+                    "bundle.js": [
+                        "js/main.js",
+                        "js/transformer.js",
+                        "js/transforms.js",
+                        "js/bridge.js",
+                        "js/actions.js",
+                        "js/editaction.js",
+                        "js/sections.js"
+                    ],
+                    "bundle-test.js": [
+                        "js/main.js",
+                        "js/bridge.js",
+                        "tests/*.js"
+                    ],
+                    "abusefilter.js": [
+                        "js/bridge.js",
+                        "js/abusefilter.js"
+                    ]
                 }
             }
         },
diff --git a/www/js/actions.js b/www/js/actions.js
new file mode 100644
index 0000000..f255072
--- /dev/null
+++ b/www/js/actions.js
@@ -0,0 +1,31 @@
+var bridge = require('./bridge');
+
+function ActionsHandler() {
+}
+
+var actionHandlers = {};
+
+ActionsHandler.prototype.register = function( action, fun ) {
+    if ( action in actionHandlers ) {
+        actionHandlers[action].push( fun );
+    } else {
+        actionHandlers[action] = [ fun ];
+    }
+};
+
+document.onclick = function() {
+    if ( event.target.tagName === "A" ) {
+        if ( event.target.hasAttribute( "data-action" ) ) {
+            var action = event.target.getAttribute( "data-action" );
+            var handlers = actionHandlers[ action ];
+            for ( var i = 0; i < handlers.length; i++ ) {
+                handlers[i]( event.target, event );
+            }
+        } else {
+            bridge.sendMessage( 'linkClicked', { href: 
event.target.getAttribute( "href" ) });
+            event.preventDefault();
+        }
+    }
+};
+
+module.exports = new ActionsHandler();
diff --git a/www/js/editaction.js b/www/js/editaction.js
new file mode 100644
index 0000000..f9dfc50
--- /dev/null
+++ b/www/js/editaction.js
@@ -0,0 +1,7 @@
+var actions = require('./actions');
+var bridge = require('./bridge');
+
+actions.register( "edit_section", function( el, event ) {
+    bridge.sendMessage( 'editSectionClicked', { sectionID: el.getAttribute( 
'data-id' ) } );
+    event.preventDefault();
+} );
diff --git a/www/js/linkactions.js b/www/js/linkactions.js
deleted file mode 100644
index 73feb09..0000000
--- a/www/js/linkactions.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var bridge = require('./bridge');
-
-var actionHandlers = {
-    "edit_section": function( el, event ) {
-        bridge.sendMessage( 'editSectionClicked', { sectionID: 
el.getAttribute( 'data-id' ) } );
-        event.preventDefault();
-    }
-};
-
-document.onclick = function() {
-    if ( event.target.tagName === "A" ) {
-        if ( event.target.hasAttribute( "data-action" ) ) {
-            var action = event.target.getAttribute( "data-action" );
-            actionHandlers[ action ]( event.target, event );
-        } else {
-            bridge.sendMessage( 'linkClicked', { href: 
event.target.getAttribute( "href" ) });
-            event.preventDefault();
-        }
-    }
-};
\ No newline at end of file

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8a6595594909e58af2e6f2df831ca5c3ac8aaefd
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Yuvipanda <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to