{"version":3,"file":"common.min.js","sources":["https:\/\/www.nais.or.kr\/local\/tubeboard\/amd\/src\/common.js"],"sourcesContent":["\/\/ This file is part of Moodle - http:\/\/moodle.org\/\n\/\/\n\/\/ Moodle is free software: you can redistribute it and\/or modify\n\/\/ it under the terms of the GNU General Public License as published by\n\/\/ the Free Software Foundation, either version 3 of the License, or\n\/\/ (at your option) any later version.\n\/\/\n\/\/ Moodle is distributed in the hope that it will be useful,\n\/\/ but WITHOUT ANY WARRANTY; without even the implied warranty of\n\/\/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\/\/ GNU General Public License for more details.\n\/\/\n\/\/ You should have received a copy of the GNU General Public License\n\/\/ along with Moodle. If not, see .\n\n\/**\n *\n * @module local_tubeboard\/common\n * @class common\n * @copyright 2024 intube\n * @license http:\/\/www.gnu.org\/copyleft\/gpl.html GNU GPL v3 or later\n *\/\n\ndefine(['jquery',\n 'core\/ajax',\n 'core\/config',\n 'core\/notification',\n 'core\/str',\n 'core\/modal_factory',\n 'core\/modal_events',\n 'core\/templates'\n ],\n function($,\n Ajax,\n Config,\n Notification,\n Str,\n ModalFactory,\n ModalEvents,\n Templates) {\n\n var PERMISSION = {\n ALLOW: 1,\n DENY: 0,\n LOGIN_REQUIRED: -1,\n PASSWORD_REQUIRED: -2\n };\n\n var displayAlert = function(title, content, canceltext, action) {\n ModalFactory\n .create({\n removeOnClose: true,\n title: title,\n type: ModalFactory.types.ALERT,\n scrollable: false,\n body: content,\n templateContext: {\n classes: 'modal-dialog-centered alert-dialog',\n headerclasses: 'bg-white border-0',\n bodyclasses: 'py-0',\n footerclasses: 'justify-content-center border-0',\n canceltext: canceltext\n }\n })\n .then(function (modal) {\n if (typeof action === 'function') {\n modal.getRoot().on(ModalEvents.cancel, action.bind(modal));\n }\n modal.show();\n return modal;\n })\n .fail(Notification.exception);\n };\n\n var displayConfirm = function(title, content, savetext, canceltext, action) {\n ModalFactory\n .create({\n removeOnClose: true,\n title: title,\n type: ModalFactory.types.SAVE_CANCEL,\n scrollable: false,\n body: content,\n templateContext: {\n classes: 'modal-dialog-centered confirm-dialog',\n headerclasses: 'bg-white border-0',\n bodyclasses: 'py-0',\n footerclasses: 'justify-content-center border-0 confirm-footer',\n savetext: savetext,\n canceltext: canceltext\n }\n })\n .then(function (modal) {\n if (typeof action === 'function') {\n modal.getRoot().on(ModalEvents.save, action.bind(modal));\n }\n modal.show();\n return modal;\n })\n .fail(Notification.exception);\n };\n\n var checkPassword = function (type, id, password, permission) {\n var checked = false;\n\n Ajax.call([{\n methodname: 'local_tubeboard_check_password',\n args: {type: type, id: id, password: password, permission: permission},\n done: function(response) {\n if (response.success) {\n checked = response.permitted;\n }\n },\n fail: Notification.exception\n }], false);\n\n return checked;\n };\n\n var checkPermission = function (type, id, permission) {\n var checked = PERMISSION.DENY;\n\n Ajax.call([{\n methodname: 'local_tubeboard_check_permission',\n args: {type: type, id: id, permission: permission},\n done: function(response) {\n checked = response.permission;\n },\n fail: Notification.exception\n }], false);\n\n return checked;\n };\n\n var getUrlParam = function(url, name) {\n var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(url);\n\n if (results === null) {\n return null;\n }\n\n return decodeURI(results[1]) || null;\n };\n\n var requireLogin = function () {\n Str.get_strings([\n {key:'login'},\n {key:'permission:logginrequired', component: 'local_tubeboard'},\n {key:'login'},\n {key:'cancel'}\n ]).then(function (strings) {\n Templates.render('local_tubeboard\/dialog-confirm',\n {requirepassword: false, message: strings[1]})\n .then(function(body) {\n displayConfirm(strings[0], body, strings[2], strings[3],\n function () {\n document.location.href = Config.wwwroot + '\/login\/index.php';\n });\n });\n });\n };\n\n var requirePassword = function(title, type, id, permission, callback, callbackinvalid) {\n Str.get_strings([\n {key: 'enterpassword', component: 'local_tubeboard'},\n {key: 'enter', component: 'local_tubeboard'},\n {key: 'close', component: 'local_tubeboard'}\n ]).then(function (strings) {\n Templates.render('local_tubeboard\/dialog-confirm',\n {requirepassword: true, message: strings[0]})\n .then(function (body) {\n displayConfirm(title, body, strings[1], strings[2],\n function () {\n var password = $('.confirm-dialog input[name=\"password\"]').val();\n var permitted = checkPassword(type, id, password, permission);\n if (permitted) {\n if (typeof callback === 'function') {\n callback();\n }\n } else {\n Str.get_strings([\n {key: 'error:invalidpassword', component: 'local_tubeboard'},\n {key: 'ok'}\n ]).then(function (strings) {\n displayAlert(title, strings[0], strings[1], callbackinvalid);\n });\n }\n });\n });\n });\n };\n\n return \/** @alias module:local_tubeboard\/common *\/ {\n PERMISSION: PERMISSION,\n displayAlert: displayAlert,\n displayConfirm: displayConfirm,\n checkPassword: checkPassword,\n checkPermission: checkPermission,\n getUrlParam: getUrlParam,\n requireLogin: requireLogin,\n requirePassword: requirePassword\n };\n });"],"names":["define","$","Ajax","Config","Notification","Str","ModalFactory","ModalEvents","Templates","PERMISSION","ALLOW","DENY","LOGIN_REQUIRED","PASSWORD_REQUIRED","displayAlert","title","content","canceltext","action","create","removeOnClose","type","types","ALERT","scrollable","body","templateContext","classes","headerclasses","bodyclasses","footerclasses","then","modal","getRoot","on","cancel","bind","show","fail","exception","displayConfirm","savetext","SAVE_CANCEL","save","checkPassword","id","password","permission","checked","call","methodname","args","done","response","success","permitted","checkPermission","getUrlParam","url","name","results","RegExp","exec","decodeURI","requireLogin","get_strings","key","component","strings","render","requirepassword","message","document","location","href","wwwroot","requirePassword","callback","callbackinvalid","val"],"mappings":"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"}