Brion VIBBER has submitted this change and it was merged.

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


Make 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(-)

Approvals:
  Brion VIBBER: Verified; Looks good to me, approved



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: merged
Gerrit-Change-Id: I8a6595594909e58af2e6f2df831ca5c3ac8aaefd
Gerrit-PatchSet: 2
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Yuvipanda <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>

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

Reply via email to