Browse Source

Rewrote a ton of shit in a ton of modules.

pull/13/head
Jack Lukic 11 years ago
parent
commit
cfdd30a636
16 changed files with 722 additions and 544 deletions
  1. 82
      src/modules/accordion.js
  2. 9
      src/modules/behavior/api.js
  3. 49
      src/modules/behavior/form.js
  4. 276
      src/modules/behavior/state.js
  5. 38
      src/modules/chat.js
  6. 3
      src/modules/checkbox.js
  7. 38
      src/modules/dropdown.js
  8. 3
      src/modules/modal.js
  9. 28
      src/modules/nag.js
  10. 3
      src/modules/popup.js
  11. 40
      src/modules/search.js
  12. 218
      src/modules/shape.js
  13. 402
      src/modules/star.js
  14. 20
      src/modules/tab.js
  15. 17
      src/modules/transition.js
  16. 40
      src/modules/video.js

82
src/modules/accordion.js

@ -16,13 +16,18 @@ $.fn.accordion = function(parameters) {
? $.extend(true, {}, $.fn.accordion.settings, parameters)
: $.fn.accordion.settings,
eventNamespace = '.' + settings.namespace,
moduleNamespace = 'module-' + settings.namespace,
className = settings.className,
namespace = settings.namespace,
selector = settings.selector,
error = settings.errors,
eventNamespace = '.' + namespace,
moduleNamespace = 'module-' + namespace,
moduleSelector = $allModules.selector || '',
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
@ -31,18 +36,13 @@ $.fn.accordion = function(parameters) {
$allModules
.each(function() {
var
$module = $(this),
$title = $module.find(settings.selector.title),
$icon = $module.find(settings.selector.icon),
$content = $module.find(settings.selector.content),
element = this,
instance = $module.data(moduleNamespace),
className = settings.className,
namespace = settings.namespace,
$module = $(this),
$title = $module.find(selector.title),
$icon = $module.find(selector.icon),
$content = $module.find(selector.content),
errors = settings.errors,
element = this,
instance = $module.data(moduleNamespace),
module
;
@ -54,6 +54,10 @@ $.fn.accordion = function(parameters) {
$title
.on('click' + eventNamespace, module.event.click)
;
module.instantiate();
},
instantiate: function() {
$module
.data(moduleNamespace, module)
;
@ -68,35 +72,41 @@ $.fn.accordion = function(parameters) {
},
event: {
click: function() {
module.verbose('Title clicked', this);
var
$activeTitle = $(this),
activeIndex = $title.index($activeTitle),
contentIsOpen = $activeTitle.hasClass(className.active)
$activeTitle = $(this),
index = $title.index($activeTitle)
;
module.verbose('Accordion title clicked', $activeTitle);
if(contentIsOpen) {
if(settings.collapsible) {
module.close(activeIndex);
}
else {
module.debug('Cannot close accordion content collapsing is disabled');
}
}
else {
module.open(activeIndex);
}
module.toggle(index);
},
resetStyle: function() {
module.verbose('Resetting styles on element', this);
$(this)
.removeAttr('style')
.children()
.removeAttr('style')
;
}
},
toggle: function(index) {
module.debug('Toggling content content at index', index);
var
$activeTitle = $title.eq(index),
contentIsOpen = $activeTitle.hasClass(className.active)
;
if(contentIsOpen) {
if(settings.collapsible) {
module.close(index);
}
else {
module.debug('Cannot close accordion content collapsing is disabled');
}
}
else {
module.open(index);
}
},
open: function(index) {
@ -256,7 +266,8 @@ $.fn.accordion = function(parameters) {
title = settings.moduleName + ':',
totalTime = 0
;
time = false;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
@ -298,7 +309,7 @@ $.fn.accordion = function(parameters) {
found = instance[value];
return true;
}
module.error(errors.method);
module.error(error.method);
return false;
});
}
@ -322,6 +333,7 @@ $.fn.accordion = function(parameters) {
}
})
;
module.performance.display();
return (invokedResponse)
? invokedResponse
: this
@ -342,7 +354,7 @@ $.fn.accordion.settings = {
onClose : function(){},
onChange : function(){},
errors: {
error: {
method : 'The method you called is not defined'
},

9
src/modules/behavior/api.js

@ -61,8 +61,8 @@
element = this,
time = new Date().getTime(),
performance = [],
moduleSelector = $module.selector || '',
moduleNamespace = settings.namespace + '-module',
className = settings.className,
@ -456,7 +456,8 @@
title = settings.moduleName + ':',
totalTime = 0
;
time = false;
clearTimeout(module.performance.timer);
time = false;
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
@ -521,8 +522,8 @@
}
module.initialize();
}
return (invokedResponse !== undefined)
module.performance.display();
return (invokedResponse)
? invokedResponse
: this
;

49
src/modules/behavior/form.js

@ -18,12 +18,21 @@ $.fn.form = function(fields, parameters) {
settings = $.extend(true, {}, $.fn.form.settings, parameters),
validation = $.extend({}, $.fn.form.settings.defaults, fields),
namespace = settings.namespace,
metadata = settings.metadata,
selector = settings.selector,
className = settings.className,
error = settings.error,
eventNamespace = '.' + namespace,
moduleNamespace = 'module-' + namespace,
moduleSelector = $allModules.selector || '',
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
@ -33,24 +42,16 @@ $.fn.form = function(fields, parameters) {
.each(function() {
var
$module = $(this),
$field = $(this).find(settings.selector.field),
$group = $(this).find(settings.selector.group),
$message = $(this).find(settings.selector.message),
$prompt = $(this).find(settings.selector.prompt),
$submit = $(this).find(settings.selector.submit),
$field = $(this).find(selector.field),
$group = $(this).find(selector.group),
$message = $(this).find(selector.message),
$prompt = $(this).find(selector.prompt),
$submit = $(this).find(selector.submit),
formErrors = [],
element = this,
instance = $module.data('module-' + settings.namespace),
eventNamespace = '.' + settings.namespace,
moduleNamespace = 'module-' + settings.namespace,
namespace = settings.namespace,
metadata = settings.metadata,
className = settings.className,
error = settings.error,
instance = $module.data(moduleNamespace),
module
;
@ -93,7 +94,7 @@ $.fn.form = function(fields, parameters) {
refresh: function() {
module.verbose('Refreshing selector cache');
$field = $module.find(settings.selector.field);
$field = $module.find(selector.field);
},
submit: function() {
@ -120,7 +121,7 @@ $.fn.form = function(fields, parameters) {
.blur()
;
}
if( key == keyCode.enter && $field.is(settings.selector.input) ) {
if( key == keyCode.enter && $field.is(selector.input) ) {
module.debug('Enter key pressed, submitting form');
$submit
.addClass(className.down)
@ -204,7 +205,7 @@ $.fn.form = function(fields, parameters) {
var
$field = module.get.field(field.identifier),
$fieldGroup = $field.closest($group),
$prompt = $fieldGroup.find(settings.selector.prompt),
$prompt = $fieldGroup.find(selector.prompt),
promptExists = ($prompt.size() !== 0)
;
module.verbose('Adding inline validation prompt');
@ -242,7 +243,7 @@ $.fn.form = function(fields, parameters) {
var
$field = module.get.field(field.identifier),
$fieldGroup = $field.closest($group),
$prompt = $fieldGroup.find(settings.selector.prompt)
$prompt = $fieldGroup.find(selector.prompt)
;
$fieldGroup
.removeClass(className.error)
@ -421,7 +422,8 @@ $.fn.form = function(fields, parameters) {
title = settings.moduleName + ':',
totalTime = 0
;
time = false;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
@ -463,7 +465,7 @@ $.fn.form = function(fields, parameters) {
found = instance[value];
return true;
}
module.error(errors.method);
module.error(error.method);
return false;
});
}
@ -488,6 +490,7 @@ $.fn.form = function(fields, parameters) {
})
;
module.performance.display();
return (invokedResponse)
? invokedResponse
: this

276
src/modules/behavior/state.js

@ -2,7 +2,7 @@
Module
State
Change text based on state context
Hover/Pressed/Active/Inactive
Hover/down/Active/Inactive
Author: Jack Lukic
Last revision: May 2012
@ -52,16 +52,18 @@ $.fn.state = function(parameters) {
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
eventNamespace = '.' + settings.namespace,
moduleNamespace = settings.namespace + '-module',
// shortcuts
errors = settings.errors,
metadata = settings.metadata,
className = settings.className,
namespace = settings.namespace,
states = settings.states,
text = settings.text,
eventNamespace = '.' + namespace,
moduleNamespace = namespace + '-module',
invokedResponse
;
$allModules
@ -88,52 +90,51 @@ $.fn.state = function(parameters) {
if(settings.context && moduleSelector !== '') {
if( module.allows('hover') ) {
$(element, settings.context)
.on(moduleSelector, 'mouseenter' + eventNamespace, module.hover.enable)
.on(moduleSelector, 'mouseleave' + eventNamespace, module.hover.disable)
.on(moduleSelector, 'mouseenter' + eventNamespace, module.enable.hover)
.on(moduleSelector, 'mouseleave' + eventNamespace, module.disable.hover)
;
}
if( module.allows('pressed') ) {
if( module.allows('down') ) {
$(element, settings.context)
.on(moduleSelector, 'mousedown' + eventNamespace, module.pressed.enable)
.on(moduleSelector, 'mouseup' + eventNamespace, module.pressed.disable)
.on(moduleSelector, 'mousedown' + eventNamespace, module.enable.down)
.on(moduleSelector, 'mouseup' + eventNamespace, module.disable.down)
;
}
if( module.allows('focus') ) {
$(element, settings.context)
.on(moduleSelector, 'focus' + eventNamespace, module.focus.enable)
.on(moduleSelector, 'blur' + eventNamespace, module.focus.disable)
.on(moduleSelector, 'focus' + eventNamespace, module.enable.focus)
.on(moduleSelector, 'blur' + eventNamespace, module.disable.focus)
;
}
$(settings.context)
.on(moduleSelector, 'mouseenter' + eventNamespace, module.text.change)
.on(moduleSelector, 'mouseleave' + eventNamespace, module.text.reset)
.on(moduleSelector, 'click' + eventNamespace, module.toggle)
.on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)
.on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)
.on(moduleSelector, 'click' + eventNamespace, module.toggle.state)
;
}
else {
if( module.allows('hover') ) {
$module
.on('mouseenter' + eventNamespace, module.hover.enable)
.on('mouseleave' + eventNamespace, module.hover.disable)
.on('mouseenter' + eventNamespace, module.enable.hover)
.on('mouseleave' + eventNamespace, module.disable.hover)
;
}
if( module.allows('pressed') ) {
if( module.allows('down') ) {
$module
.on('mousedown' + eventNamespace, module.pressed.enable)
.on('mouseup' + eventNamespace, module.pressed.disable)
.on('mousedown' + eventNamespace, module.enable.down)
.on('mouseup' + eventNamespace, module.disable.down)
;
}
if( module.allows('focus') ) {
$module
.on('focus' + eventNamespace, module.focus.enable)
.on('blur' + eventNamespace, module.focus.disable)
.on('focus' + eventNamespace, module.enable.focus)
.on('blur' + eventNamespace, module.disable.focus)
;
}
$module
.on('mouseenter' + eventNamespace, module.text.change)
.on('mouseleave' + eventNamespace, module.text.reset)
.on('click' + eventNamespace, module.toggle)
.on('mouseenter' + eventNamespace, module.change.text)
.on('mouseleave' + eventNamespace, module.reset.text)
.on('click' + eventNamespace, module.toggle.state)
;
}
module.instantiate();
@ -220,71 +221,69 @@ $.fn.state = function(parameters) {
return states[state] || false;
},
enable: function(state) {
if(module.allows(state)) {
$module.addClass( className[state] );
}
},
disable: function(state) {
if(module.allows(state)) {
$module.removeClass( className[state] );
}
},
textFor: function(state) {
return text[state] || false;
},
focus : {
enable: function() {
enable: {
state: function(state) {
if(module.allows(state)) {
$module.addClass( className[state] );
}
},
// convenience
focus: function() {
$module.addClass(className.focus);
},
disable: function() {
$module.removeClass(className.focus);
}
hover: function() {
$module.addClass(className.hover);
},
down: function() {
$module.addClass(className.down);
},
},
hover : {
enable: function() {
$module.addClass(className.hover);
disable: {
state: function(state) {
if(module.allows(state)) {
$module.removeClass( className[state] );
}
},
// convenience
focus: function() {
$module.removeClass(className.focus);
},
disable: function() {
hover: function() {
$module.removeClass(className.hover);
}
},
down: function() {
$module.removeClass(className.down);
},
},
pressed : {
enable: function() {
$module
.addClass(className.pressed)
.one('mouseleave', module.pressed.disable)
toggle: {
state: function() {
var
apiRequest = $module.data(metadata.promise)
;
},
disable: function() {
$module.removeClass(className.pressed);
if( module.allows('active') && module.is.enabled() ) {
module.refresh();
if(apiRequest !== undefined) {
module.listenTo(apiRequest);
}
else {
module.change.state();
}
}
}
},
// determines method for state activation
toggle: function() {
var
apiRequest = $module.data(metadata.promise)
;
if( module.allows('active') && module.is.enabled() ) {
module.refresh();
if(apiRequest !== undefined) {
module.listenTo(apiRequest);
}
else {
module.change();
}
}
textFor: function(state) {
return text[state] || false;
},
listenTo: function(apiRequest) {
module.debug('API request detected, waiting for state signal', apiRequest);
if(apiRequest) {
if(text.loading) {
module.text.update(text.loading);
module.update.text(text.loading);
}
$.when(apiRequest)
.then(function() {
@ -298,7 +297,7 @@ $.fn.state = function(parameters) {
settings.activateTest = function(){ return false; };
settings.deactivateTest = function(){ return false; };
}
module.change();
module.change.state();
})
;
}
@ -310,19 +309,48 @@ $.fn.state = function(parameters) {
},
// checks whether active/inactive state can be given
change: function() {
module.debug('Determining state change direction');
// inactive to active change
if( module.is.inactive() ) {
module.activate();
}
else {
module.deactivate();
}
if(settings.sync) {
module.sync();
change: {
state: function() {
module.debug('Determining state change direction');
// inactive to active change
if( module.is.inactive() ) {
module.activate();
}
else {
module.deactivate();
}
if(settings.sync) {
module.sync();
}
$.proxy(settings.onChange, element)();
},
text: function() {
if( module.is.textEnabled() ) {
if( module.is.active() ) {
if(text.hover) {
module.verbose('Changing text to hover text', text.hover);
module.update.text(text.hover);
}
else if(text.disable) {
module.verbose('Changing text to disable text', text.disable);
module.update.text(text.disable);
}
}
else {
if(text.hover) {
module.verbose('Changing text to hover text', text.disable);
module.update.text(text.hover);
}
else if(text.enable){
module.verbose('Changing text to enable text', text.enable);
module.update.text(text.enable);
}
}
}
}
$.proxy(settings.onChange, element)();
},
activate: function() {
@ -331,7 +359,7 @@ $.fn.state = function(parameters) {
$module
.addClass(className.active)
;
module.text.update(text.active);
module.update.text(text.active);
}
$.proxy(settings.onActivate, element)();
},
@ -342,7 +370,7 @@ $.fn.state = function(parameters) {
$module
.removeClass(className.active)
;
module.text.update(text.inactive);
module.update.text(text.inactive);
}
$.proxy(settings.onDeactivate, element)();
},
@ -362,56 +390,33 @@ $.fn.state = function(parameters) {
}
},
text: {
// finds text node to update
get: function() {
get: {
text: function() {
return (settings.selector.text)
? $module.find(settings.selector.text).text()
: $module.html()
;
},
}
},
flash: function(text, duration) {
flash: {
text: function(text, duration) {
var
previousText = module.text.get()
previousText = module.get.text()
;
module.debug('Flashing text message', text, duration);
text = text || settings.text.flash;
duration = duration || settings.flashDuration;
module.text.update(text);
module.update.text(text);
setTimeout(function(){
module.text.update(previousText);
module.update.text(previousText);
}, duration);
},
change: function() {
if( module.is.textEnabled() ) {
if( module.is.active() ) {
if(text.hover) {
module.verbose('Changing text to hover text', text.hover);
module.text.update(text.hover);
}
else if(text.disable) {
module.verbose('Changing text to disable text', text.disable);
module.text.update(text.disable);
}
}
else {
if(text.hover) {
module.verbose('Changing text to hover text', text.disable);
module.text.update(text.hover);
}
else if(text.enable){
module.verbose('Changing text to enable text', text.enable);
module.text.update(text.enable);
}
}
}
},
}
},
reset: {
// on mouseout sets text to previous value
reset : function() {
text: function() {
var
activeText = text.active || $module.data(metadata.storedText),
inactiveText = text.inactive || $module.data(metadata.storedText)
@ -419,18 +424,20 @@ $.fn.state = function(parameters) {
if( module.is.textEnabled() ) {
if( module.is.active() && activeText) {
module.verbose('Resetting active text', activeText);
module.text.update(activeText);
module.update.text(activeText);
}
else if(inactiveText) {
module.verbose('Resetting inactive text', activeText);
module.text.update(inactiveText);
module.update.text(inactiveText);
}
}
},
}
},
update: function(text) {
update: {
text: function(text) {
var
currentText = module.text.get()
currentText = module.get.text()
;
if(text && text !== currentText) {
module.debug('Updating text', text);
@ -453,6 +460,7 @@ $.fn.state = function(parameters) {
}
}
},
setting: function(name, value) {
module.debug('Changing setting', name, value);
if(value !== undefined) {
@ -531,7 +539,8 @@ $.fn.state = function(parameters) {
title = settings.moduleName + ':',
totalTime = 0
;
time = false;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
@ -598,6 +607,7 @@ $.fn.state = function(parameters) {
})
;
module.performance.display();
return (invokedResponse)
? invokedResponse
: this
@ -662,7 +672,7 @@ $.fn.state.settings = {
className: {
focus : 'focus',
hover : 'hover',
pressed : 'down',
down : 'down',
active : 'active',
loading : 'loading'
},
@ -676,14 +686,14 @@ $.fn.state.settings = {
input: {
hover : true,
focus : true,
pressed : true,
down : true,
loading : false,
active : false
},
button: {
hover : true,
focus : false,
pressed : true,
down : true,
active : false,
loading : true
}
@ -692,7 +702,7 @@ $.fn.state.settings = {
states : {
hover : true,
focus : true,
pressed : true,
down : true,
loading : false,
active : false
},

38
src/modules/chat.js

@ -18,8 +18,10 @@
.each(function() {
var
$module = $(this),
$expandButton = $module.find(settings.selector.expandButton),
$userListButton = $module.find(settings.selector.userListButton),
$userList = $module.find(settings.selector.userList),
$room = $module.find(settings.selector.room),
$userCount = $module.find(settings.selector.userCount),
@ -37,6 +39,8 @@
html = '',
users = {},
channel,
loggedInUser,
message,
@ -50,7 +54,6 @@
module = {
channel: false,
width: {
log : $log.width(),
userList : $userList.outerWidth()
@ -75,33 +78,18 @@
pusher = new Pusher(key);
Pusher.channel_auth_endpoint = settings.endpoint.authentication;
module.channel = pusher.subscribe(channelName);
channel = pusher.subscribe(channelName);
module.channel.bind('pusher:subscription_succeeded', module.user.list.create);
module.channel.bind('pusher:subscription_error', module.error);
module.channel.bind('pusher:member_added', module.user.joined);
module.channel.bind('pusher:member_removed', module.user.left);
module.channel.bind('update_messages', module.message.receive);
channel.bind('pusher:subscription_succeeded', module.user.list.create);
channel.bind('pusher:subscription_error', module.error);
channel.bind('pusher:member_added', module.user.joined);
channel.bind('pusher:member_removed', module.user.left);
channel.bind('update_messages', module.message.receive);
$.each(settings.customEvents, function(label, value) {
module.channel.bind(label, value);
channel.bind(label, value);
});
// expandable with states
if( $.fn.hoverClass !== undefined && $.fn.downClass !== undefined ) {
$expandButton
.hoverClass()
.downClass()
;
$userListButton
.hoverClass()
.downClass()
;
$messageButton
.hoverClass()
.downClass()
;
}
// bind module events
$userListButton
.on('click.' + namespace, module.event.toggleUserList)
@ -153,7 +141,7 @@
if(settings.userCount) {
users = $module.data('users');
count = 0;
$.each(users, function(index) {
$.each(users, function() {
count++;
});
$userCount

3
src/modules/checkbox.js

@ -211,7 +211,8 @@ $.fn.checkbox = function(parameters) {
title = settings.moduleName + ':',
totalTime = 0
;
time = false;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});

38
src/modules/dropdown.js

@ -17,14 +17,21 @@ $.fn.dropdown = function(parameters) {
settings = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.dropdown.settings, parameters)
: $.fn.dropdown.settings,
eventNamespace = '.' + settings.namespace,
moduleNamespace = 'module-' + settings.namespace,
className = settings.className,
metadata = settings.metadata,
namespace = settings.namespace,
animation = settings.animation,
selector = settings.selector,
errors = settings.errors,
eventNamespace = '.' + namespace,
moduleNamespace = 'module-' + namespace,
moduleSelector = $allModules.selector || '',
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
@ -35,22 +42,15 @@ $.fn.dropdown = function(parameters) {
.each(function() {
var
$module = $(this),
$menu = $(this).find(settings.selector.menu),
$item = $(this).find(settings.selector.item),
$text = $(this).find(settings.selector.text),
$input = $(this).find(settings.selector.input),
$menu = $(this).find(selector.menu),
$item = $(this).find(selector.item),
$text = $(this).find(selector.text),
$input = $(this).find(selector.input),
isTouchDevice = ('ontouchstart' in document.documentElement),
element = this,
instance = $module.data(moduleNamespace),
className = settings.className,
metadata = settings.metadata,
namespace = settings.namespace,
animation = settings.animation,
errors = settings.errors,
module
;
@ -404,7 +404,7 @@ $.fn.dropdown = function(parameters) {
module.verbose('Finding other dropdowns to hide');
$allModules
.not($module)
.has(settings.selector.menu + ':visible')
.has(selector.menu + ':visible')
.dropdown('hide')
;
},
@ -495,7 +495,8 @@ $.fn.dropdown = function(parameters) {
title = settings.moduleName + ':',
totalTime = 0
;
time = false;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
@ -561,6 +562,7 @@ $.fn.dropdown = function(parameters) {
}
})
;
module.performance.display();
return (invokedResponse)
? invokedResponse
: this

3
src/modules/modal.js

@ -322,7 +322,8 @@
})
;
// chain or return queried method
return (invokedResponse !== undefined)
module.performance.display();
return (invokedResponse)
? invokedResponse
: this
;

28
src/modules/nag.js

@ -13,8 +13,13 @@ $.fn.nag = function(parameters) {
$allModules = $(this),
settings = $.extend(true, {}, $.fn.nag.settings, parameters),
eventNamespace = '.' + settings.namespace,
moduleNamespace = settings.namespace + '-module',
className = settings.className,
selector = settings.selector,
error = settings.errors,
namespace = settings.namespace,
eventNamespace = '.' + namespace,
moduleNamespace = namespace + '-module',
moduleSelector = $allModules.selector || '',
time = new Date().getTime(),
@ -30,16 +35,13 @@ $.fn.nag = function(parameters) {
var
$module = $(this),
$close = $module.find(settings.selector.close),
$close = $module.find(selector.close),
$context = $(settings.context),
element = this,
instance = $module.data(moduleNamespace),
className = settings.className,
errors = settings.errors,
moduleOffset,
moduleHeight,
@ -258,7 +260,7 @@ $.fn.nag = function(parameters) {
$.cookie(key, value);
}
else {
module.error(errors.noStorage);
module.error(error.noStorage);
}
},
get: function(key) {
@ -271,7 +273,7 @@ $.fn.nag = function(parameters) {
return $.cookie(key);
}
else {
module.error(errors.noStorage);
module.error(error.noStorage);
}
}
@ -370,7 +372,8 @@ $.fn.nag = function(parameters) {
title = settings.moduleName + ':',
totalTime = 0
;
time = false;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
@ -412,7 +415,7 @@ $.fn.nag = function(parameters) {
found = instance[value];
return true;
}
module.error(errors.method);
module.error(error.method);
return false;
});
}
@ -484,8 +487,9 @@ $.fn.nag.settings = {
// context for scroll event
context : window,
errors: {
noStorage : 'Neither $.cookie or store is defined. A storage solution is required for storing state'
error: {
noStorage : 'Neither $.cookie or store is defined. A storage solution is required for storing state',
method : 'The method you called is not defined.'
},
className : {

3
src/modules/popup.js

@ -545,7 +545,8 @@ $.fn.popup = function(parameters) {
title = settings.moduleName + ':',
totalTime = 0
;
time = false;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});

40
src/modules/search.js

@ -14,8 +14,14 @@ $.fn.search = function(source, parameters) {
$allModules = $(this),
settings = $.extend(true, {}, $.fn.search.settings, parameters),
eventNamespace = '.' + settings.namespace,
moduleNamespace = settings.namespace + '-module',
className = settings.className,
selector = settings.selector,
errors = settings.errors,
namespace = settings.namespace,
eventNamespace = '.' + namespace,
moduleNamespace = namespace + '-module',
moduleSelector = $allModules.selector || '',
time = new Date().getTime(),
@ -30,17 +36,15 @@ $.fn.search = function(source, parameters) {
.each(function() {
var
$module = $(this),
$prompt = $module.find(settings.selector.prompt),
$searchButton = $module.find(settings.selector.searchButton),
$results = $module.find(settings.selector.results),
$result = $module.find(settings.selector.result),
$category = $module.find(settings.selector.category),
$prompt = $module.find(selector.prompt),
$searchButton = $module.find(selector.searchButton),
$results = $module.find(selector.results),
$result = $module.find(selector.result),
$category = $module.find(selector.category),
element = this,
instance = $module.data(moduleNamespace),
className = settings.className,
errors = settings.errors,
module
;
module = {
@ -70,12 +74,13 @@ $.fn.search = function(source, parameters) {
.on('click' + eventNamespace, module.search.query)
;
$results
.on('click' + eventNamespace, settings.selector.result, module.results.select)
.on('click' + eventNamespace, selector.result, module.results.select)
;
module.instantiate();
},
instantiate: function() {
module.verbose('Storing instance of module', module);
instance = module;
$module
.data(moduleNamespace, module)
;
@ -104,8 +109,8 @@ $.fn.search = function(source, parameters) {
handleKeyboard: function(event) {
var
// force latest jq dom
$result = $module.find(settings.selector.result),
$category = $module.find(settings.selector.category),
$result = $module.find(selector.result),
$category = $module.find(selector.category),
keyCode = event.which,
keys = {
backspace : 8,
@ -121,6 +126,7 @@ $.fn.search = function(source, parameters) {
;
// search shortcuts
if(keyCode == keys.escape) {
module.verbose('Escape key pressed, blurring search field');
$prompt
.trigger('blur')
;
@ -128,6 +134,7 @@ $.fn.search = function(source, parameters) {
// result shortcuts
if($results.filter(':visible').size() > 0) {
if(keyCode == keys.enter) {
module.verbose('Enter key pressed, selecting active result');
if( $result.filter('.' + activeClass).exists() ) {
$.proxy(module.results.select, $result.filter('.' + activeClass) )();
event.preventDefault();
@ -135,6 +142,7 @@ $.fn.search = function(source, parameters) {
}
}
else if(keyCode == keys.upArrow) {
module.verbose('Up key pressed, changing active result');
newIndex = (currentIndex - 1 < 0)
? currentIndex
: currentIndex - 1
@ -152,6 +160,7 @@ $.fn.search = function(source, parameters) {
event.preventDefault();
}
else if(keyCode == keys.downArrow) {
module.verbose('Down key pressed, changing active result');
newIndex = (currentIndex + 1 >= resultSize)
? currentIndex
: currentIndex + 1
@ -172,6 +181,7 @@ $.fn.search = function(source, parameters) {
else {
// query shortcuts
if(keyCode == keys.enter) {
module.verbose('Enter key pressed, executing query');
module.search.query();
$searchButton
.addClass(className.down)
@ -470,7 +480,8 @@ $.fn.search = function(source, parameters) {
title = settings.moduleName + ':',
totalTime = 0
;
time = false;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
@ -537,6 +548,7 @@ $.fn.search = function(source, parameters) {
})
;
module.performance.display();
return (invokedResponse)
? invokedResponse
: this

218
src/modules/shape.js

@ -13,12 +13,18 @@ $.fn.shape = function(parameters) {
var
$allModules = $(this),
moduleSelector = $allModules.selector || '',
settings = $.extend(true, {}, $.fn.shape.settings, parameters),
// internal aliases
namespace = settings.namespace,
selector = settings.selector,
error = settings.error,
className = settings.className,
// define namespaces for modules
eventNamespace = '.' + settings.namespace,
moduleNamespace = 'module-' + settings.namespace,
moduleSelector = $allModules.selector || '',
eventNamespace = '.' + namespace,
moduleNamespace = 'module-' + namespace,
time = new Date().getTime(),
performance = [],
@ -34,8 +40,8 @@ $.fn.shape = function(parameters) {
var
// selector cache
$module = $(this),
$sides = $module.find(settings.selector.sides),
$side = $module.find(settings.selector.side),
$sides = $module.find(selector.sides),
$side = $module.find(selector.side),
// private variables
$activeSide,
@ -44,12 +50,6 @@ $.fn.shape = function(parameters) {
// standard module
element = this,
instance = $module.data(moduleNamespace),
// internal aliases
namespace = settings.namespace,
error = settings.error,
className = settings.className,
module
;
@ -58,6 +58,10 @@ $.fn.shape = function(parameters) {
initialize: function() {
module.verbose('Initializing module for', element);
module.set.defaultSide();
},
instantiate: function() {
module.verbose('Storing instance of module', module);
instance = module;
$module
.data(moduleNamespace, instance)
@ -75,8 +79,8 @@ $.fn.shape = function(parameters) {
refresh: function() {
module.verbose('Refreshing selector cache for', element);
$module = $(element);
$sides = $(this).find(settings.selector.shape);
$side = $(this).find(settings.selector.side);
$sides = $(this).find(selector.shape);
$side = $(this).find(selector.side);
},
repaint: function() {
@ -178,15 +182,85 @@ $.fn.shape = function(parameters) {
},
is: {
animating: function() {
return $module.hasClass(className.animating);
}
},
get: {
transform: {
up: function() {
var
translate = {
y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
z: -($activeSide.outerHeight() / 2)
}
;
return {
transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(-90deg)'
};
},
down: function() {
var
translate = {
y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
z: -($activeSide.outerHeight() / 2)
}
;
return {
transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(90deg)'
};
},
left: function() {
var
translate = {
x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
z : -($activeSide.outerWidth() / 2)
}
;
return {
transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(90deg)'
};
},
right: function() {
var
translate = {
x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
z : -($activeSide.outerWidth() / 2)
}
;
return {
transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(-90deg)'
};
},
over: function() {
var
translate = {
x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2)
}
;
return {
transform: 'translateX(' + translate.x + 'px) rotateY(180deg)'
};
},
back: function() {
var
translate = {
x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2)
}
;
return {
transform: 'translateX(' + translate.x + 'px) rotateY(-180deg)'
};
}
},
transitionEvent: function() {
var
element = document.createElement('element'),
@ -206,9 +280,9 @@ $.fn.shape = function(parameters) {
},
nextSide: function() {
return ( $activeSide.next(settings.selector.side).size() > 0 )
? $activeSide.next(settings.selector.side)
: $module.find(settings.selector.side).first()
return ( $activeSide.next(selector.side).size() > 0 )
? $activeSide.next(selector.side)
: $module.find(selector.side).first()
;
}
@ -218,9 +292,9 @@ $.fn.shape = function(parameters) {
defaultSide: function() {
$activeSide = $module.find('.' + settings.className.active);
$nextSide = ( $activeSide.next(settings.selector.side).size() > 0 )
? $activeSide.next(settings.selector.side)
: $module.find(settings.selector.side).first()
$nextSide = ( $activeSide.next(selector.side).size() > 0 )
? $activeSide.next(selector.side)
: $module.find(selector.side).first()
;
module.verbose('Active side set to', $activeSide);
module.verbose('Next side set to', $nextSide);
@ -269,10 +343,10 @@ $.fn.shape = function(parameters) {
module.debug('Flipping up', $nextSide);
if( !module.is.animating() ) {
module.stage.above();
module.animate( module.getTransform.up() );
module.animate( module.get.transform.up() );
}
else {
module.queue('flip.up');
module.queue('flip up');
}
},
@ -280,10 +354,10 @@ $.fn.shape = function(parameters) {
module.debug('Flipping down', $nextSide);
if( !module.is.animating() ) {
module.stage.below();
module.animate( module.getTransform.down() );
module.animate( module.get.transform.down() );
}
else {
module.queue('flip.down');
module.queue('flip down');
}
},
@ -291,10 +365,10 @@ $.fn.shape = function(parameters) {
module.debug('Flipping left', $nextSide);
if( !module.is.animating() ) {
module.stage.left();
module.animate(module.getTransform.left() );
module.animate(module.get.transform.left() );
}
else {
module.queue('flip.left');
module.queue('flip left');
}
},
@ -302,10 +376,10 @@ $.fn.shape = function(parameters) {
module.debug('Flipping right', $nextSide);
if( !module.is.animating() ) {
module.stage.right();
module.animate(module.getTransform.right() );
module.animate(module.get.transform.right() );
}
else {
module.queue('flip.right');
module.queue('flip right');
}
},
@ -313,10 +387,10 @@ $.fn.shape = function(parameters) {
module.debug('Flipping over', $nextSide);
if( !module.is.animating() ) {
module.stage.behind();
module.animate(module.getTransform.over() );
module.animate(module.get.transform.over() );
}
else {
module.queue('flip.over');
module.queue('flip over');
}
},
@ -324,89 +398,15 @@ $.fn.shape = function(parameters) {
module.debug('Flipping back', $nextSide);
if( !module.is.animating() ) {
module.stage.behind();
module.animate(module.getTransform.back() );
module.animate(module.get.transform.back() );
}
else {
module.queue('flip.back');
module.queue('flip back');
}
}
},
getTransform: {
up: function() {
var
translate = {
y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
z: -($activeSide.outerHeight() / 2)
}
;
return {
transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(-90deg)'
};
},
down: function() {
var
translate = {
y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
z: -($activeSide.outerHeight() / 2)
}
;
return {
transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(90deg)'
};
},
left: function() {
var
translate = {
x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
z : -($activeSide.outerWidth() / 2)
}
;
return {
transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(90deg)'
};
},
right: function() {
var
translate = {
x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
z : -($activeSide.outerWidth() / 2)
}
;
return {
transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(-90deg)'
};
},
over: function() {
var
translate = {
x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2)
}
;
return {
transform: 'translateX(' + translate.x + 'px) rotateY(180deg)'
};
},
back: function() {
var
translate = {
x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2)
}
;
return {
transform: 'translateX(' + translate.x + 'px) rotateY(-180deg)'
};
}
},
stage: {
above: function() {
@ -615,7 +615,8 @@ $.fn.shape = function(parameters) {
title = settings.moduleName + ':',
totalTime = 0
;
time = false;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
@ -683,6 +684,7 @@ $.fn.shape = function(parameters) {
}
})
;
module.performance.display();
return (invokedResponse)
? invokedResponse
: this

402
src/modules/star.js

@ -8,173 +8,299 @@
;(function ($, window, document, undefined) {
$.fn.starReview = function(parameters) {
var
settings = $.extend(true, {}, $.fn.starReview.settings, parameters),
// hoist arguments
moduleArguments = arguments || false
;
$(this)
.each(function() {
var
$module = $(this),
$star = $module.find(settings.selector.star),
className = settings.className,
namespace = settings.namespace,
instance = $module.data('module'),
module
;
module = {
$.fn.starReview = function(parameters) {
var
$allModules = $(this),
moduleSelector = $allModules.selector || '',
settings = $.extend(true, {}, $.fn.starReview.settings, parameters),
namespace = settings.namespace,
className = settings.className,
selector = settings.selector,
error = settings.error,
eventNamespace = '.' + namespace,
moduleNamespace = 'module-' + namespace,
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
invokedResponse
;
$allModules
.each(function() {
var
$module = $(this),
$star = $module.find(selector.star),
element = this,
instance = $module.data(moduleNamespace),
module
;
settings: settings,
module = {
initialize: function() {
if(settings.rateable) {
// expandable with states
if($.fn.state !== undefined) {
$module
.state()
;
$star
.state()
;
}
initialize: function() {
if(settings.rateable) {
// expandable with states
if($.fn.state !== undefined) {
$module
.state()
;
$star
.bind('mouseenter.' + namespace, module.event.mouseenter)
.bind('mouseleave.' + namespace, module.event.mouseleave)
.bind('click.' + namespace, module.event.click)
.state()
;
}
$module
.addClass(className.initialize)
.data('module', module)
$star
.bind('mouseenter' + eventNamespace, module.event.mouseenter)
.bind('mouseleave' + eventNamespace, module.event.mouseleave)
.bind('click' + eventNamespace, module.event.click)
;
},
}
$module
.addClass(className.initialize)
;
module.instantiate();
},
instantiate: function() {
$module
.data(moduleNamespace, module)
;
},
setRating: function(rating) {
var
$activeStar = $star.eq(rating - 1)
;
$module
.removeClass(className.hover)
;
$star
.removeClass(className.hover)
;
$activeStar
.nextAll()
.removeClass(className.active)
;
$activeStar
.addClass(className.active)
.prevAll()
.addClass(className.active)
;
$.proxy(settings.onRate, $module)();
},
setRating: function(rating) {
event: {
mouseenter: function() {
var
$activeStar = $star.eq(rating - 1)
;
$module
.removeClass(className.hover)
;
$star
.removeClass(className.hover)
$activeStar = $(this)
;
$activeStar
.nextAll()
.removeClass(className.active)
.removeClass(className.hover)
;
$module
.addClass(className.hover)
;
$activeStar
.addClass(className.active)
.addClass(className.hover)
.prevAll()
.addClass(className.active)
;
$.proxy(settings.onRate, $module)();
},
event: {
mouseenter: function() {
var
$activeStar = $(this)
;
$activeStar
.nextAll()
.removeClass(className.hover)
;
$module
.addClass(className.hover)
;
$activeStar
.addClass(className.hover)
.prevAll()
.addClass(className.hover)
;
},
mouseleave: function() {
$star
.removeClass(className.hover)
;
},
click: function() {
var
$activeStar = $(this)
;
module.setRating( $star.index($activeStar) + 1);
}
;
},
// handle error logging
error: function(errorMessage) {
console.warn(settings.moduleName + ': ' + errorMessage);
mouseleave: function() {
$star
.removeClass(className.hover)
;
},
// allows for dot notation method calls
invoke: function(methodName, context, methodArguments) {
click: function() {
var
$activeStar = $(this)
;
module.setRating( $star.index($activeStar) + 1);
}
},
setting: function(name, value) {
if(value !== undefined) {
if( $.isPlainObject(name) ) {
$.extend(true, settings, name);
}
else {
settings[name] = value;
}
}
else {
return settings[name];
}
},
internal: function(name, value) {
if(value !== undefined) {
if( $.isPlainObject(name) ) {
$.extend(true, module, name);
}
else {
module[name] = value;
}
}
else {
return module[name];
}
},
debug: function() {
if(settings.debug) {
if(settings.performance) {
module.performance.log(arguments);
}
else {
module.debug = Function.prototype.bind.call(console.info, console, settings.moduleName + ':');
}
}
},
verbose: function() {
if(settings.verbose && settings.debug) {
if(settings.performance) {
module.performance.log(arguments);
}
else {
module.verbose = Function.prototype.bind.call(console.info, console, settings.moduleName + ':');
}
}
},
error: function() {
module.error = Function.prototype.bind.call(console.error, console, settings.moduleName + ':');
},
performance: {
log: function(message) {
var
method
currentTime,
executionTime,
previousTime
;
methodArguments = methodArguments || Array.prototype.slice.call( arguments, 2 );
if(typeof methodName == 'string' && instance !== undefined) {
methodName = methodName.split('.');
$.each(methodName, function(index, name) {
if( $.isPlainObject( instance[name] ) ) {
instance = instance[name];
return true;
}
else if( $.isFunction( instance[name] ) ) {
method = instance[name];
return true;
}
module.error(settings.errors.method);
return false;
if(settings.performance) {
currentTime = new Date().getTime();
previousTime = time || currentTime;
executionTime = currentTime - previousTime;
time = currentTime;
performance.push({
'Element' : element,
'Name' : message[0],
'Arguments' : [].slice.call(message, 1) || '',
'Execution Time' : executionTime
});
}
return ( $.isFunction( method ) )
? method.apply(context, methodArguments)
: false
clearTimeout(module.performance.timer);
module.performance.timer = setTimeout(module.performance.display, 100);
},
display: function() {
var
title = settings.moduleName + ':',
totalTime = 0
;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
title += ' ' + totalTime + 'ms';
if(moduleSelector) {
title += ' \'' + moduleSelector + '\'';
}
if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
console.groupCollapsed(title);
if(console.table) {
console.table(performance);
}
else {
$.each(performance, function(index, data) {
console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
});
}
console.groupEnd();
}
performance = [];
}
};
if(instance !== undefined && moduleArguments) {
// simpler than invoke realizing to invoke itself (and losing scope due prototype.call()
if(moduleArguments[0] == 'invoke') {
moduleArguments = Array.prototype.slice.call( moduleArguments, 1 );
},
invoke: function(query, passedArguments, context) {
var
searchInstance = instance,
maxDepth,
found
;
passedArguments = passedArguments || queryArguments;
context = element || context;
if(typeof query == 'string' && searchInstance !== undefined) {
query = query.split(/[\. ]/);
maxDepth = query.length - 1;
$.each(query, function(depth, value) {
if( $.isPlainObject( searchInstance[value] ) && (depth != maxDepth) ) {
searchInstance = searchInstance[value];
return true;
}
else if( searchInstance[value] !== undefined ) {
found = searchInstance[value];
return true;
}
module.error(error.method);
return false;
});
}
return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
if ( $.isFunction( found ) ) {
return found.apply(context, passedArguments);
}
return found || false;
}
};
if(methodInvoked) {
if(instance === undefined) {
module.initialize();
}
invokedResponse = module.invoke(query);
}
else {
if(instance !== undefined) {
module.destroy();
}
// initializing
module.initialize();
})
;
}
})
;
module.performance.display();
return (invokedResponse)
? invokedResponse
: this
;
};
return this;
};
$.fn.starReview.settings = {
moduleName : 'Star',
namespace : 'star',
rateable : true,
onRate : function(){},
$.fn.starReview.settings = {
moduleName : 'Star',
namespace : 'star',
rateable : true,
onRate : function(){},
className : {
initialize : 'initialize',
loading : 'loading',
active : 'active',
hover : 'hover',
down : 'down'
},
error: {
method : 'The method you called is not defined'
},
className : {
initialize : 'initialize',
loading : 'loading',
active : 'active',
hover : 'hover',
down : 'down'
},
selector : {
star : 'i'
}
selector : {
star : 'i'
}
};
};
})( jQuery, window , document );

20
src/modules/tab.js

@ -15,6 +15,8 @@
$module = $(this),
$tabs = $(settings.context).find(settings.selector.tabs),
moduleSelector = $module.selector || '',
cache = {},
firstLoad = true,
@ -27,14 +29,13 @@
element = this,
time = new Date().getTime(),
performance = [],
moduleSelector = $module.selector || '',
eventNamespace = '.' + settings.namespace,
moduleNamespace = settings.namespace + '-module',
className = settings.className,
metadata = settings.metadata,
errors = settings.errors,
eventNamespace = '.' + settings.namespace,
moduleNamespace = settings.namespace + '-module',
instance = $module.data(moduleNamespace),
@ -80,6 +81,11 @@
.on('click' + eventNamespace, module.event.click)
;
}
module.instantiate();
},
instantiate: function () {
module.verbose('Storing instance of module', module);
$module
.data(moduleNamespace, module)
;
@ -495,7 +501,8 @@
title = settings.moduleName + ':',
totalTime = 0
;
time = false;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
@ -561,7 +568,8 @@
module.initialize();
}
return (invokedResponse !== undefined)
module.performance.display();
return (invokedResponse)
? invokedResponse
: this
;

17
src/modules/transition.js

@ -12,20 +12,24 @@
$.fn.transition = function(parameters) {
var
$allModules = $(this),
moduleSelector = $allModules.selector || '',
settings = $.extend(true, {}, $.fn.transition.settings, parameters),
// define namespaces for modules
eventNamespace = '.' + settings.namespace,
moduleNamespace = 'module-' + settings.namespace,
moduleSelector = $allModules.selector || '',
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
error = settings.error,
namespace = settings.namespace,
// define namespaces for modules
eventNamespace = '.' + namespace,
moduleNamespace = 'module-' + namespace,
invokedResponse
;
@ -236,7 +240,8 @@ $.fn.transition = function(parameters) {
title = settings.moduleName + ':',
totalTime = 0
;
time = false;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});

40
src/modules/video.js

@ -21,33 +21,33 @@ $.fn.video = function(parameters) {
: $.fn.video.settings,
moduleSelector = $allModules.selector || '',
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
selector = settings.selector,
className = settings.className,
error = settings.error,
metadata = settings.metadata,
namespace = settings.namespace,
eventNamespace = '.' + namespace,
moduleNamespace = namespace + '-module',
invokedResponse
;
$(this)
$allModules
.each(function() {
var
$module = $(this),
$placeholder = $module.find(settings.selector.placeholder),
$playButton = $module.find(settings.selector.playButton),
$embed = $module.find(settings.selector.embed),
eventNamespace = '.' + settings.namespace,
moduleNamespace = settings.namespace + '-module',
selector = settings.selector,
className = settings.className,
error = settings.error,
metadata = settings.metadata,
namespace = settings.namespace,
$module = $(this),
$placeholder = $module.find(selector.placeholder),
$playButton = $module.find(selector.playButton),
$embed = $module.find(selector.embed),
element = this,
instance = $module.data(moduleNamespace),
@ -68,6 +68,7 @@ $.fn.video = function(parameters) {
},
instantiate: function() {
module.verbose('Storing instance of module', module);
instance = module;
$module
.data(moduleNamespace, module)
@ -300,7 +301,8 @@ $.fn.video = function(parameters) {
title = settings.moduleName + ':',
totalTime = 0
;
time = false;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
@ -366,7 +368,7 @@ $.fn.video = function(parameters) {
}
})
;
module.performance.display();
return (invokedResponse)
? invokedResponse
: this

Loading…
Cancel
Save