Advertisement
Guest User

Untitled

a guest
Feb 10th, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. var Modal = {}
  2. Modal.visible = m.prop(false);
  3. Modal.mode = 0;
  4. Modal.content = m('div');
  5. Modal.close = function () {
  6. Modal.content = null;
  7. Modal.visible(false)
  8. m.redraw()
  9. }
  10.  
  11. Modal.setContent = function (options) {
  12. return function () {
  13. Modal.content = options.content;
  14. Modal.visible(true);
  15. Modal.mode++;
  16. }
  17.  
  18. }
  19.  
  20. Modal.controller = function () {
  21. var ctrl = this;
  22. ctrl.controller = Modal.visible() ? Modal.content.controller() : '';
  23. }
  24.  
  25. Modal.view = function (ctrl) {
  26. var content = Modal.visible() ?
  27. m('div', [m('.m-modal-overlay'), m(".m-modal", {
  28. config: Modal.config()
  29. }, [
  30. m('.m-modal-dialog', [
  31. m('.m-modal-header', [
  32. m('h5', ctrl.controller.title)
  33. ]),
  34. m(".m-modal-inner", [
  35. Modal.content.view ?
  36. Modal.content.view(ctrl.controller) : m('')
  37. ]),
  38. m('.m-modal-footer', [
  39. m('.m-modal-buttons', [
  40. m("button.mdl-button.mdl-js-button", {
  41. config: upgrade,
  42. type: 'button',
  43. onclick: Modal.close,
  44. }, "Cancel"),
  45.  
  46. ctrl.controller.action ?
  47. m("button.mdl-button.mdl-js-button.mdl-button--raised.mdl-button--colored.mdl-js-ripple-effect", {
  48. config: upgrade,
  49. type: 'button',
  50. onclick: ctrl.controller.action
  51. }, ctrl.controller.actionText) : '',
  52. ])
  53. ]),
  54. ])
  55. ])]): m('')
  56.  
  57. return content;
  58. }
  59.  
  60.  
  61.  
  62. Modal.config = function () {
  63. return function (element, isInitialized, context) {
  64. if (!isInitialized) {
  65. var handleKey = function (e) {
  66. if (e.keyCode == 27) {
  67. Modal.content = null;
  68. Modal.visible(false)
  69. m.redraw()
  70. }
  71. }
  72.  
  73. document.body.addEventListener("keyup", handleKey)
  74.  
  75. context.onunload = function () {
  76. document.body.removeEventListener("keyup", handleKey)
  77. }
  78. }
  79. }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement