app/assets/javascripts/semantic-ui/modal.js in semantic-ui-sass-0.14.0.0 vs app/assets/javascripts/semantic-ui/modal.js in semantic-ui-sass-0.15.1.0

- old
+ new

@@ -23,10 +23,16 @@ query = arguments[0], methodInvoked = (typeof query == 'string'), queryArguments = [].slice.call(arguments, 1), + requestAnimationFrame = window.requestAnimationFrame + || window.mozRequestAnimationFrame + || window.webkitRequestAnimationFrame + || window.msRequestAnimationFrame + || function(callback) { setTimeout(callback, 0); }, + returnedValue ; $allModules @@ -245,29 +251,31 @@ if( $otherModals.filter(':visible').size() > 0 && !settings.allowMultiple) { module.debug('Other modals visible, queueing show animation'); module.hideOthers(module.showModal); } else { + $.proxy(settings.onShow, element)(); if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { module.debug('Showing modal with css animations'); $module .transition(settings.transition + ' in', settings.duration, function() { + $.proxy(settings.onVisible, element)(); module.set.active(); callback(); }) ; } else { module.debug('Showing modal with javascript'); $module .fadeIn(settings.duration, settings.easing, function() { + $.proxy(settings.onVisible, element)(); module.set.active(); callback(); }) ; } - $.proxy(settings.onShow, element)(); } } else { module.debug('Modal is already visible'); } @@ -325,29 +333,31 @@ module.debug('Cannot hide modal it is not active'); return; } module.debug('Hiding modal'); module.remove.keyboardShortcuts(); + $.proxy(settings.onHide, element)(); if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { $module .transition(settings.transition + ' out', settings.duration, function() { + $.proxy(settings.onHidden, element)(); module.remove.active(); module.restore.focus(); callback(); }) ; } else { $module .fadeOut(settings.duration, settings.easing, function() { + $.proxy(settings.onHidden, element)(); module.remove.active(); module.restore.focus(); callback(); }) ; } - $.proxy(settings.onHide, element)(); }, hideAll: function(callback) { callback = $.isFunction(callback) ? callback @@ -704,9 +714,13 @@ padding : 30, onShow : function(){}, onHide : function(){}, + + onVisible : function(){}, + onHidden : function(){}, + onApprove : function(){ return true; }, onDeny : function(){ return true; }, selector : { close : '.close, .actions .button', \ No newline at end of file