app/assets/javascripts/hooch.js in hooch-0.0.2 vs app/assets/javascripts/hooch.js in hooch-0.0.3

- old
+ new

@@ -1,5 +1,71 @@ +/* Simple JavaScript Inheritance + * By John Resig http://ejohn.org/ + * MIT Licensed. + */ +// Inspired by base2 and Prototype +(function(){ + var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/; + // The base Class implementation (does nothing) + this.Class = function(){}; + + // Create a new Class that inherits from this class + Class.extend = function(prop) { + var _super = this.prototype; + + // Instantiate a base class (but only create the instance, + // don't run the init constructor) + initializing = true; + var prototype = new this(); + initializing = false; + + // Copy the properties over onto the new prototype + for (var name in prop) { + // Check if we're overwriting an existing function + prototype[name] = typeof prop[name] == "function" && + typeof _super[name] == "function" && fnTest.test(prop[name]) ? + (function(name, fn){ + return function() { + var tmp = this._super; + + // Add a new ._super() method that is the same method + // but on the super-class + this._super = _super[name]; + + // The method only need to be bound temporarily, so we + // remove it when we're done executing + var ret = fn.apply(this, arguments); + this._super = tmp; + + return ret; + }; + })(name, prop[name]) : + prop[name]; + } + + // The dummy class constructor + function Class() { + // All construction is actually done in the init method + if ( !initializing && this.init ) + this.init.apply(this, arguments); + } + + // Populate our constructed prototype object + Class.prototype = prototype; + + // Enforce the constructor to be what we expect + Class.prototype.constructor = Class; + + // And make this class extendable + Class.extend = arguments.callee; + + return Class; + }; +})(); +/*End Simple Inheritance*/ + +/*Begin Hooch.js*/ var Toggler = Class.extend({ init: function(jq_obj){ this.jq_obj = jq_obj; this.label = jq_obj.data('toggler'); this.value = jq_obj.val(); @@ -415,18 +481,10 @@ var new_state = {} new_state[key] = value this.state = $.extend(true, this.state, new_state); } }) -var ReplaceDelete = DeleteLink.extend({ - ajaxSuccess: function(data,textStatus,jqXHR){ - this.target[this.insert_method](data); - }, - ajaxBefore: function(jqXHR){ - //noop - } -}) var GoProxy = Class.extend({ init: function($proxy){ this.first_submit = true; var go_proxy = this; go_proxy.$proxy = $proxy; @@ -605,36 +663,22 @@ } } }) }); $(document).ready(function(){ - $('[data-default_tab="true"]').tab('show'); $(document).on('change','[data-toggler]',function(){ new Toggler($(this)); }) $('[data-toggler]').each(function(){ new Toggler($(this)); }) - $('[data-zendesk_opener]').click(function(){ - $("#zenbox_tab").click(); - }) $('[data-disable_forms]').each(function(){ new DisableForms($(this)); }) $('[data-link]').each(function(){ new Link($(this)); }) // Initailizes auto complete for select inputs - $("[data-autocomplete='full_width']").chosen({ - width: "100%" - }); - $("[data-autocomplete]").chosen(); - - $('[data-redirect-path]:first').each(function(){ - var redirect_seconds = $(this).data('redirect-seconds') * 1000; - var redirect_path = $(this).data('redirect-path'); - setTimeout(function(){window.location = redirect_path},redirect_seconds); - }) $('input,select,textarea').filter(':visible:enabled:first').each(function(){ if(!$(this).data('date-picker')){ $(this).focus(); } });