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