From 3433381f5a54129ff7649d95643f498d1f104698 Mon Sep 17 00:00:00 2001 From: jlukic Date: Mon, 15 Dec 2014 18:51:38 -0500 Subject: [PATCH] Adds missing error message for unknown method call (behavior) --- src/definitions/behaviors/api.js | 1 + src/definitions/behaviors/visibility.js | 53 +++++++++++++++++-------- src/definitions/modules/accordion.js | 3 +- src/definitions/modules/checkbox.js | 3 +- src/definitions/modules/dimmer.js | 1 + src/definitions/modules/transition.js | 1 + src/definitions/modules/video.js | 1 + 7 files changed, 44 insertions(+), 19 deletions(-) diff --git a/src/definitions/behaviors/api.js b/src/definitions/behaviors/api.js index 5ccc7043b..360000db5 100644 --- a/src/definitions/behaviors/api.js +++ b/src/definitions/behaviors/api.js @@ -801,6 +801,7 @@ $.api.settings = { exitConditions : 'API Request Aborted. Exit conditions met', JSONParse : 'JSON could not be parsed during error handling', legacyParameters : 'You are using legacy API success callback names', + method : 'The method you called is not defined', missingAction : 'API action used but no url was defined', missingSerialize : 'Required dependency jquery-serialize-object missing, using basic serialize', missingURL : 'No URL specified for api event', diff --git a/src/definitions/behaviors/visibility.js b/src/definitions/behaviors/visibility.js index 548b98707..eed5a3efe 100644 --- a/src/definitions/behaviors/visibility.js +++ b/src/definitions/behaviors/visibility.js @@ -62,17 +62,18 @@ $.fn.visibility = function(parameters) { module.setup.cache(); module.save.position(); - module.bindEvents(); - module.instantiate(); - if(settings.type == 'image') { - module.setup.image(); - } - if(settings.type == 'fixed') { - module.setup.fixed(); + if( module.should.trackChanges() ) { + module.bindEvents(); + if(settings.type == 'image') { + module.setup.image(); + } + if(settings.type == 'fixed') { + module.setup.fixed(); + } } - - requestAnimationFrame(module.checkVisibility); + module.checkVisibility(); + module.instantiate(); }, instantiate: function() { @@ -144,6 +145,19 @@ $.fn.visibility = function(parameters) { } }, + should: { + + trackChanges: function() { + if(methodInvoked && queryArguments.length > 0) { + module.debug('One time query, no need to bind events'); + return false; + } + module.debug('Query is attaching callbacks, watching for changes with scroll'); + return true; + } + + }, + setup: { cache: function() { module.cache = { @@ -208,7 +222,7 @@ $.fn.visibility = function(parameters) { .attr('src', src) ; if(offScreen) { - module.verbose('Image outside browser, avoiding animation') + module.verbose('Image outside browser, no show animation'); $module.show(); } else { @@ -240,10 +254,7 @@ $.fn.visibility = function(parameters) { checkVisibility: function() { module.verbose('Checking visibility of element', module.cache.element); - module.save.scroll(); - module.save.direction(); - module.save.screenCalculations(); - module.save.elementCalculations(); + module.save.calculations(); // percentage module.passed(); @@ -368,7 +379,7 @@ $.fn.visibility = function(parameters) { module.remove.occurred(callbackName); } if(newCallback === undefined) { - return calculations.onTopPassed; + return calculations.topPassed; } }, @@ -543,6 +554,13 @@ $.fn.visibility = function(parameters) { }, save: { + calculations: function() { + module.verbose('Saving all calculations necessary to determine positioning'); + module.save.scroll(); + module.save.direction(); + module.save.screenCalculations(); + module.save.elementCalculations(); + }, occurred: function(callback) { if(callback) { if(module.cache.occurred[callback] === undefined || (module.cache.occurred[callback] !== true)) { @@ -846,6 +864,7 @@ $.fn.visibility = function(parameters) { return false; } else { + module.error(error.method, query); return false; } }); @@ -914,7 +933,7 @@ $.fn.visibility.settings = { // special visibility type (image, fixed) type : false, - // image only settings + // image only animation settings transition : false, duration : 500, @@ -943,7 +962,7 @@ $.fn.visibility.settings = { onScroll : function(){}, error : { - method : 'The method you called is not defined.' + method : 'The method you called is not defined.' } }; diff --git a/src/definitions/modules/accordion.js b/src/definitions/modules/accordion.js index 9d4203ae8..4c36d5834 100644 --- a/src/definitions/modules/accordion.js +++ b/src/definitions/modules/accordion.js @@ -414,6 +414,7 @@ $.fn.accordion = function(parameters) { return false; } else { + module.error(error.method, query); return false; } }); @@ -477,7 +478,7 @@ $.fn.accordion.settings = { onChange : function(){}, error: { - method : 'The method you called is not defined' + method : 'The method you called is not defined' }, className : { diff --git a/src/definitions/modules/checkbox.js b/src/definitions/modules/checkbox.js index e1dcfc3b2..baed45275 100644 --- a/src/definitions/modules/checkbox.js +++ b/src/definitions/modules/checkbox.js @@ -421,6 +421,7 @@ $.fn.checkbox = function(parameters) { return false; } else { + module.error(error.method, query); return false; } }); @@ -492,7 +493,7 @@ $.fn.checkbox.settings = { }, error : { - method : 'The method you called is not defined.' + method : 'The method you called is not defined' }, selector : { diff --git a/src/definitions/modules/dimmer.js b/src/definitions/modules/dimmer.js index 10dee76a7..42d11313a 100644 --- a/src/definitions/modules/dimmer.js +++ b/src/definitions/modules/dimmer.js @@ -523,6 +523,7 @@ $.fn.dimmer = function(parameters) { return false; } else { + module.error(error.method, query); return false; } }); diff --git a/src/definitions/modules/transition.js b/src/definitions/modules/transition.js index 1baf95323..0f6cbc6ed 100644 --- a/src/definitions/modules/transition.js +++ b/src/definitions/modules/transition.js @@ -817,6 +817,7 @@ $.fn.transition = function() { return false; } else { + module.error(error.method, query); return false; } }); diff --git a/src/definitions/modules/video.js b/src/definitions/modules/video.js index 3b669a196..d4b62b150 100644 --- a/src/definitions/modules/video.js +++ b/src/definitions/modules/video.js @@ -416,6 +416,7 @@ $.fn.video = function(parameters) { return false; } else { + module.error(error.method, query); return false; } });