Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
{"version":3,"file":"course_tools_list.min.js","sources":["../src/course_tools_list.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 <http://www.gnu.org/licenses/>.\n\n/**\n * Course LTI External tools list management.\n *\n * @module      mod_lti/course_tools_list\n * @copyright   2023 Jake Dallimore <jrhdallimore@gmail.com>\n * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\n\"use strict\";\n\nimport Notification from 'core/notification';\nimport Pending from 'core/pending';\nimport Ajax from 'core/ajax';\nimport {add as addToast} from 'core/toast';\nimport {getString, getStrings} from 'core/str';\nimport {refreshTableContent} from 'core_table/dynamic';\nimport * as Selectors from 'core_table/local/dynamic/selectors';\nimport {toggleShowInActivityChooser} from \"./repository\";\n\n/**\n * Initialise module.\n */\nexport const init = () => {\n    document.addEventListener('click', event => {\n\n        const courseToolDelete = event.target.closest('[data-action=\"course-tool-delete\"]');\n        if (courseToolDelete) {\n            event.preventDefault();\n\n            // A different message is used in the modal if the tool has usages within the course.\n            const usage = courseToolDelete.dataset.courseToolUsage;\n            const deleteBodyStringId = usage > 0 ? 'deletecoursetoolwithusageconfirm' : 'deletecoursetoolconfirm';\n            const requiredStrings = [\n                {key: 'deletecoursetool', component: 'mod_lti', param: courseToolDelete.dataset.courseToolName},\n                {key: deleteBodyStringId, component: 'mod_lti', param: courseToolDelete.dataset.courseToolName},\n                {key: 'delete', component: 'core', param: courseToolDelete.dataset.courseToolName},\n                {key: 'coursetooldeleted', component: 'mod_lti', param: courseToolDelete.dataset.courseToolName}\n            ];\n            // Use triggerElement to return focus to the action menu toggle.\n            const triggerElement = courseToolDelete.closest('.dropdown').querySelector('.dropdown-toggle');\n\n            getStrings(requiredStrings).then(([modalTitle, modalBody, deleteLabel]) => {\n                return Notification.deleteCancelPromise(\n                    modalTitle,\n                    modalBody,\n                    deleteLabel,\n                    {triggerElement});\n            }).then(() => {\n                const pendingPromise = new Pending('mod_lti/course_tools:delete');\n\n                const request = {\n                    methodname: 'mod_lti_delete_course_tool_type',\n                    args: {tooltypeid: courseToolDelete.dataset.courseToolId}\n                };\n                return Ajax.call([request])[0]\n                    .then(addToast(getString('coursetooldeleted', 'mod_lti', courseToolDelete.dataset.courseToolName)))\n                    .then(() => {\n                        const tableRoot = triggerElement.closest(Selectors.main.region);\n                        return refreshTableContent(tableRoot);\n                    })\n                    .then(pendingPromise.resolve)\n                    .catch(Notification.exception);\n            }).catch(() => {\n                return;\n            });\n        }\n\n        const courseShowInActivityChooser = event.target.closest('[data-action=\"showinactivitychooser-toggle\"]');\n        if (courseShowInActivityChooser) {\n            const showInActivityChooserStateToggle = courseShowInActivityChooser.dataset.state === \"0\" ? 1 : 0;\n            return toggleShowInActivityChooser(\n                courseShowInActivityChooser.dataset.id,\n                courseShowInActivityChooser.dataset.courseid,\n                showInActivityChooserStateToggle,\n            );\n        }\n    });\n};\n"],"names":["document","addEventListener","event","courseToolDelete","target","closest","preventDefault","deleteBodyStringId","dataset","courseToolUsage","requiredStrings","key","component","param","courseToolName","triggerElement","querySelector","then","_ref","modalTitle","modalBody","deleteLabel","Notification","deleteCancelPromise","pendingPromise","Pending","request","methodname","args","tooltypeid","courseToolId","Ajax","call","tableRoot","Selectors","main","region","resolve","catch","exception","courseShowInActivityChooser","showInActivityChooserStateToggle","state","id","courseid"],"mappings":"+/CAqCoB,KAChBA,SAASC,iBAAiB,SAASC,cAEzBC,iBAAmBD,MAAME,OAAOC,QAAQ,yCAC1CF,iBAAkB,CAClBD,MAAMI,uBAIAC,mBADQJ,iBAAiBK,QAAQC,gBACJ,EAAI,mCAAqC,0BACtEC,gBAAkB,CACpB,CAACC,IAAK,mBAAoBC,UAAW,UAAWC,MAAOV,iBAAiBK,QAAQM,gBAChF,CAACH,IAAKJ,mBAAoBK,UAAW,UAAWC,MAAOV,iBAAiBK,QAAQM,gBAChF,CAACH,IAAK,SAAUC,UAAW,OAAQC,MAAOV,iBAAiBK,QAAQM,gBACnE,CAACH,IAAK,oBAAqBC,UAAW,UAAWC,MAAOV,iBAAiBK,QAAQM,iBAG/EC,eAAiBZ,iBAAiBE,QAAQ,aAAaW,cAAc,wCAEhEN,iBAAiBO,MAAKC,WAAEC,WAAYC,UAAWC,yBAC/CC,sBAAaC,oBAChBJ,WACAC,UACAC,YACA,CAACN,eAAAA,oBACNE,MAAK,WACEO,eAAiB,IAAIC,iBAAQ,+BAE7BC,QAAU,CACZC,WAAY,kCACZC,KAAM,CAACC,WAAY1B,iBAAiBK,QAAQsB,sBAEzCC,cAAKC,KAAK,CAACN,UAAU,GACvBT,MAAK,eAAS,kBAAU,oBAAqB,UAAWd,iBAAiBK,QAAQM,kBACjFG,MAAK,WACIgB,UAAYlB,eAAeV,QAAQ6B,UAAUC,KAAKC,eACjD,gCAAoBH,cAE9BhB,KAAKO,eAAea,SACpBC,MAAMhB,sBAAaiB,cACzBD,OAAM,eAKPE,4BAA8BtC,MAAME,OAAOC,QAAQ,mDACrDmC,4BAA6B,OACvBC,iCAAiF,MAA9CD,4BAA4BhC,QAAQkC,MAAgB,EAAI,SAC1F,2CACHF,4BAA4BhC,QAAQmC,GACpCH,4BAA4BhC,QAAQoC,SACpCH"}