From 85c6c67e582231bb1837689460dedcf27d5064ca Mon Sep 17 00:00:00 2001 From: Adrien Cadet Date: Sat, 8 Feb 2014 16:14:01 +0100 Subject: [PATCH] Updated croque trigger --- coffee/system/CroqueTrigger.coffee | 38 ++++++++++++------------------ js/system/CroqueTrigger.js | 2 +- 2 files changed, 16 insertions(+), 24 deletions(-) diff --git a/coffee/system/CroqueTrigger.coffee b/coffee/system/CroqueTrigger.coffee index be9f75b..02d349e 100644 --- a/coffee/system/CroqueTrigger.coffee +++ b/coffee/system/CroqueTrigger.coffee @@ -32,7 +32,19 @@ miam( Log.w 'An error has occured when trying fixing triggers' ExceptionHandler.handle error return null - + + @bindTriggers: (events) -> + for e in events + $('*[data-on' + Utils.capitalize(e)).each (index, element) => + method = CroqueTrigger.getMethod e, element + if not method? then return + + $(element).on e.toLowerCase(), (event) => + try + eval 'window.Croque.getMainClass().' + method + '(element, event)' + catch error + Log.w 'An error has occurend when trying applying method' + ExceptionHandler.handle error ### # Sets mouse listeners @@ -50,17 +62,7 @@ miam( 'mouseDown' ] - for e in events - $('*[data-on' + Utils.capitalize(e)).each (index, element) => - method = CroqueTrigger.getMethod e, element - if not method? then return - - $(element).on e.toLowerCase(), () => - try - eval 'window.Croque.getMainClass().' + method + '(element)' - catch error - Log.w 'An error has occurend when trying applying method' - ExceptionHandler.handle error + CroqueTrigger.bindTriggers events ### @@ -73,17 +75,7 @@ miam( 'keyUp' ] - for e in events - $('*[data-on' + Utils.capitalize(e)).each (index, element) => - method = CroqueTrigger.getMethod e, element - if not method? then return - - $(element).on e.toLowerCase(), (event) => - try - eval 'window.Croque.getMainClass().' + method + '(element, event)' - catch error - Log.w 'An error has occurend when trying applying method' - ExceptionHandler.handle error + CroqueTrigger.bindTriggers events ### # Sets touch listeners diff --git a/js/system/CroqueTrigger.js b/js/system/CroqueTrigger.js index af7b1dd..49b2e86 100644 --- a/js/system/CroqueTrigger.js +++ b/js/system/CroqueTrigger.js @@ -1 +1 @@ -var _this=this;miam("system/CroqueTrigger",["system/Utils","system/ExceptionHandler"],function(){var CroqueTrigger;return CroqueTrigger=function(){function CroqueTrigger(){}return CroqueTrigger.getMethod=function(e,r){var t,n;if(e.length<2)throw new Error("Specified event is not supported");e=Utils.capitalize(e);try{return n=$(r).attr("data-on"+e)}catch(o){t=o,Log.w("An error has occured when trying fixing triggers"),ExceptionHandler.handle(t)}return null},CroqueTrigger.setMouseEvents=function(){var e,events,_i,_len,_results,_this=this;for(events=["click","dbClick","mouseEnter","mouseLeave","mouseMove","mouseOut","mouseOver","mouseUp","mouseDown"],_results=[],_i=0,_len=events.length;_len>_i;_i++)e=events[_i],_results.push($("*[data-on"+Utils.capitalize(e)).each(function(index,element){var method;return method=CroqueTrigger.getMethod(e,element),null!=method?$(element).on(e.toLowerCase(),function(){var error;try{return eval("window.Croque.getMainClass()."+method+"(element)")}catch(_error){return error=_error,Log.w("An error has occurend when trying applying method"),ExceptionHandler.handle(error)}}):void 0}));return _results},CroqueTrigger.setKeyboardEvents=function(){var e,events,_i,_len,_results,_this=this;for(events=["keyPress","keyDown","keyUp"],_results=[],_i=0,_len=events.length;_len>_i;_i++)e=events[_i],_results.push($("*[data-on"+Utils.capitalize(e)).each(function(index,element){var method;return method=CroqueTrigger.getMethod(e,element),null!=method?$(element).on(e.toLowerCase(),function(event){var error;try{return eval("window.Croque.getMainClass()."+method+"(element, event)")}catch(_error){return error=_error,Log.w("An error has occurend when trying applying method"),ExceptionHandler.handle(error)}}):void 0}));return _results},CroqueTrigger.setTouchEvents=function(){var e,events,f,quoJS,_i,_len,_results,_this=this;for(events=["singleTap","doubleTap","hold","swipeUp","swipeDown","swipeLeft","swipeRight"],quoJS=!1,f=function(e,element){var method;return method=CroqueTrigger.getMethod(e,element),null!=method?$$(element).on(e,function(){var error;try{return eval("window.Croque.getMainClass()."+method+"(element)")}catch(_error){return error=_error,Log.w("An error has occurend when trying applying method"),ExceptionHandler.handle(error)}}):void 0},_results=[],_i=0,_len=events.length;_len>_i;_i++)e=events[_i],_results.push($("*[data-on"+Utils.capitalize(e)).each(function(r,t){var n;return n=e,quoJS?f(n,t):require(["quoJS"],function(){return quoJS=!0,f(n,t)})}));return _results},CroqueTrigger.run=function(){return CroqueTrigger.setMouseEvents(),CroqueTrigger.setKeyboardEvents(),CroqueTrigger.setTouchEvents()},CroqueTrigger}()}); \ No newline at end of file +var _this=this;miam("system/CroqueTrigger",["system/Utils","system/ExceptionHandler"],function(){var CroqueTrigger;return CroqueTrigger=function(){function CroqueTrigger(){}return CroqueTrigger.getMethod=function(e,r){var t,n;if(e.length<2)throw new Error("Specified event is not supported");e=Utils.capitalize(e);try{return n=$(r).attr("data-on"+e)}catch(o){t=o,Log.w("An error has occured when trying fixing triggers"),ExceptionHandler.handle(t)}return null},CroqueTrigger.bindTriggers=function(events){var e,_i,_len,_results,_this=this;for(_results=[],_i=0,_len=events.length;_len>_i;_i++)e=events[_i],_results.push($("*[data-on"+Utils.capitalize(e)).each(function(index,element){var method;return method=CroqueTrigger.getMethod(e,element),null!=method?$(element).on(e.toLowerCase(),function(event){var error;try{return eval("window.Croque.getMainClass()."+method+"(element, event)")}catch(_error){return error=_error,Log.w("An error has occurend when trying applying method"),ExceptionHandler.handle(error)}}):void 0}));return _results},CroqueTrigger.setMouseEvents=function(){var e;return e=["click","dbClick","mouseEnter","mouseLeave","mouseMove","mouseOut","mouseOver","mouseUp","mouseDown"],CroqueTrigger.bindTriggers(e)},CroqueTrigger.setKeyboardEvents=function(){var e;return e=["keyPress","keyDown","keyUp"],CroqueTrigger.bindTriggers(e)},CroqueTrigger.setTouchEvents=function(){var e,events,f,quoJS,_i,_len,_results,_this=this;for(events=["singleTap","doubleTap","hold","swipeUp","swipeDown","swipeLeft","swipeRight"],quoJS=!1,f=function(e,element){var method;return method=CroqueTrigger.getMethod(e,element),null!=method?$$(element).on(e,function(){var error;try{return eval("window.Croque.getMainClass()."+method+"(element)")}catch(_error){return error=_error,Log.w("An error has occurend when trying applying method"),ExceptionHandler.handle(error)}}):void 0},_results=[],_i=0,_len=events.length;_len>_i;_i++)e=events[_i],_results.push($("*[data-on"+Utils.capitalize(e)).each(function(r,t){var n;return n=e,quoJS?f(n,t):require(["quoJS"],function(){return quoJS=!0,f(n,t)})}));return _results},CroqueTrigger.run=function(){return CroqueTrigger.setMouseEvents(),CroqueTrigger.setKeyboardEvents(),CroqueTrigger.setTouchEvents()},CroqueTrigger}()}); \ No newline at end of file