Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var Modal = {}
- Modal.visible = m.prop(false);
- Modal.mode = 0;
- Modal.content = m('div');
- Modal.close = function () {
- Modal.content = null;
- Modal.visible(false)
- m.redraw()
- }
- Modal.setContent = function (options) {
- return function () {
- Modal.content = options.content;
- Modal.visible(true);
- Modal.mode++;
- }
- }
- Modal.controller = function () {
- var ctrl = this;
- ctrl.controller = Modal.visible() ? Modal.content.controller() : '';
- }
- Modal.view = function (ctrl) {
- var content = Modal.visible() ?
- m('div', [m('.m-modal-overlay'), m(".m-modal", {
- config: Modal.config()
- }, [
- m('.m-modal-dialog', [
- m('.m-modal-header', [
- m('h5', ctrl.controller.title)
- ]),
- m(".m-modal-inner", [
- Modal.content.view ?
- Modal.content.view(ctrl.controller) : m('')
- ]),
- m('.m-modal-footer', [
- m('.m-modal-buttons', [
- m("button.mdl-button.mdl-js-button", {
- config: upgrade,
- type: 'button',
- onclick: Modal.close,
- }, "Cancel"),
- ctrl.controller.action ?
- m("button.mdl-button.mdl-js-button.mdl-button--raised.mdl-button--colored.mdl-js-ripple-effect", {
- config: upgrade,
- type: 'button',
- onclick: ctrl.controller.action
- }, ctrl.controller.actionText) : '',
- ])
- ]),
- ])
- ])]): m('')
- return content;
- }
- Modal.config = function () {
- return function (element, isInitialized, context) {
- if (!isInitialized) {
- var handleKey = function (e) {
- if (e.keyCode == 27) {
- Modal.content = null;
- Modal.visible(false)
- m.redraw()
- }
- }
- document.body.addEventListener("keyup", handleKey)
- context.onunload = function () {
- document.body.removeEventListener("keyup", handleKey)
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement