assets/javascripts/semantic_ui/definitions/modules/rating.js in less-rails-semantic_ui-2.1.8.2 vs assets/javascripts/semantic_ui/definitions/modules/rating.js in less-rails-semantic_ui-2.2.1.0

- old
+ new

@@ -1,20 +1,26 @@ /*! * # Semantic UI - Rating * http://github.com/semantic-org/semantic-ui/ * * - * Copyright 2015 Contributors * Released under the MIT license * http://opensource.org/licenses/MIT * */ ;(function ($, window, document, undefined) { "use strict"; +window = (typeof window != 'undefined' && window.Math == Math) + ? window + : (typeof self != 'undefined' && self.Math == Math) + ? self + : Function('return this')() +; + $.fn.rating = function(parameters) { var $allModules = $(this), moduleSelector = $allModules.selector || '', @@ -46,10 +52,11 @@ instance = $(this).data(moduleNamespace), $module = $(this), $icon = $module.find(selector.icon), + initialLoad, module ; module = { @@ -64,11 +71,13 @@ module.enable(); } else { module.disable(); } + module.set.initialLoad(); module.set.rating( module.get.initialRating() ); + module.remove.initialLoad(); module.instantiate(); }, instantiate: function() { module.verbose('Instantiating module', settings); @@ -168,10 +177,13 @@ events: function() { module.verbose('Removing events'); $module .off(eventNamespace) ; + }, + initialLoad: function() { + initialLoad = false; } }, enable: function() { module.debug('Setting rating to interactive mode'); @@ -187,10 +199,16 @@ $module .addClass(className.disabled) ; }, + is: { + initialLoad: function() { + return initialLoad; + } + }, + get: { initialRating: function() { if($module.data(metadata.rating) !== undefined) { $module.removeData(metadata.rating); return $module.data(metadata.rating); @@ -230,25 +248,35 @@ ; if(rating > 0) { module.verbose('Setting current rating to', rating); $activeIcon .prevAll() - .andSelf() + .addBack() .addClass(className.active) ; } - settings.onRate.call(element, rating); + if(!module.is.initialLoad()) { + settings.onRate.call(element, rating); + } + }, + initialLoad: function() { + initialLoad = true; } }, setting: function(name, value) { module.debug('Changing setting', name, value); if( $.isPlainObject(name) ) { $.extend(true, settings, name); } else if(value !== undefined) { - settings[name] = value; + if($.isPlainObject(settings[name])) { + $.extend(true, settings[name], value); + } + else { + settings[name] = value; + } } else { return settings[name]; } }, @@ -262,34 +290,36 @@ else { return module[name]; } }, debug: function() { - if(settings.debug) { + if(!settings.silent && settings.debug) { if(settings.performance) { module.performance.log(arguments); } else { module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); module.debug.apply(console, arguments); } } }, verbose: function() { - if(settings.verbose && settings.debug) { + if(!settings.silent && settings.verbose && settings.debug) { if(settings.performance) { module.performance.log(arguments); } else { module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); module.verbose.apply(console, arguments); } } }, error: function() { - module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); - module.error.apply(console, arguments); + if(!settings.silent) { + module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); + module.error.apply(console, arguments); + } }, performance: { log: function(message) { var currentTime, @@ -421,17 +451,20 @@ $.fn.rating.settings = { name : 'Rating', namespace : 'rating', + slent : false, debug : false, verbose : false, performance : true, initialRating : 0, interactive : true, maxRating : 4, clearable : 'auto', + + fireOnInit : false, onRate : function(rating){}, error : { method : 'The method you called is not defined',