community-app/app/scripts/directives/OverlayDirective.js

44 lines
1.4 KiB
JavaScript
Raw Normal View History

2013-07-16 09:39:53 +00:00
(function(module) {
mifosX.directives = _.extend(module, {
overlayDirective: function() {
return function(scope, element, attrs) {
var options = scope.$eval(attrs.mfOverlayOptions) || {};
var eventsMap = scope.$eval(attrs.mfOverlay);
var target = attrs.mfOverlayTarget;
2013-07-16 09:39:53 +00:00
$.blockUI.defaults.css = {};
var settings = {
message: $(element),
overlayCSS: { opacity: (options.opacity || '0.5') },
fadeIn: options.fadeIn || 100,
fadeOut: options.fadeOut || 200
2013-07-16 09:39:53 +00:00
};
var actionsMap = (function() {
var selector = target ? $(target) : $;
var showFn = target ? 'block' : 'blockUI';
var hideFn = target ? 'unblock' : 'unblockUI';
return {
show: function() {
selector[showFn](settings);
},
hide: function() {
selector[hideFn]();
}
};
}());
2013-07-16 09:39:53 +00:00
_.each(_.keys(eventsMap), function(actionName) {
var events = eventsMap[actionName].split(',');
_.each(events, function(eventName) {
scope.$on(eventName, actionsMap[actionName]);
});
});
};
}
});
}(mifosX.directives || {}));
mifosX.ng.application.directive("mfOverlay", [mifosX.directives.overlayDirective]).run(function($log) {
$log.info("overlayDirective initialized");
});