MDL-68796 core_contentbank: Store view preferences
[moodle.git] / contentbank / amd / build / actions.min.js.map
1 {"version":3,"sources":["../src/actions.js"],"names":["define","$","Ajax","Notification","Str","Templates","Url","ModalFactory","ModalEvents","ACTIONS","DELETE_CONTENT","RENAME_CONTENT","Actions","registerEvents","prototype","click","e","preventDefault","contentname","data","contentid","contextid","deleteButtonText","get_strings","key","component","param","name","then","langStrings","modalTitle","modalContent","create","title","body","type","types","SAVE_CANCEL","large","done","modal","setSaveButtonText","getRoot","on","save","deleteContent","hidden","destroy","show","catch","exception","saveButtonText","render","newname","val","renameContent","requestType","call","methodname","args","contentids","result","get_string","message","params","statusmsg","errormsg","window","location","href","relativeUrl","fail","id","addNotification","fetchNotifications"],"mappings":"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","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 * Module to manage content bank actions, such as delete or rename.\n *\n * @module     core_contentbank/actions\n * @package    core_contentbank\n * @copyright  2020 Sara Arjona <sara@moodle.com>\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine([\n    'jquery',\n    'core/ajax',\n    'core/notification',\n    'core/str',\n    'core/templates',\n    'core/url',\n    'core/modal_factory',\n    'core/modal_events'],\nfunction($, Ajax, Notification, Str, Templates, Url, ModalFactory, ModalEvents) {\n\n    /**\n     * List of action selectors.\n     *\n     * @type {{DELETE_CONTENT: string}}\n     */\n    var ACTIONS = {\n        DELETE_CONTENT: '[data-action=\"deletecontent\"]',\n        RENAME_CONTENT: '[data-action=\"renamecontent\"]',\n    };\n\n    /**\n     * Actions class.\n     */\n    var Actions = function() {\n        this.registerEvents();\n    };\n\n    /**\n     * Register event listeners.\n     */\n    Actions.prototype.registerEvents = function() {\n        $(ACTIONS.DELETE_CONTENT).click(function(e) {\n            e.preventDefault();\n\n            var contentname = $(this).data('contentname');\n            var contentid = $(this).data('contentid');\n            var contextid = $(this).data('contextid');\n\n            var strings = [\n                {\n                    key: 'deletecontent',\n                    component: 'core_contentbank'\n                },\n                {\n                    key: 'deletecontentconfirm',\n                    component: 'core_contentbank',\n                    param: {\n                        name: contentname,\n                    }\n                },\n                {\n                    key: 'delete',\n                    component: 'core'\n                },\n            ];\n\n            var deleteButtonText = '';\n            Str.get_strings(strings).then(function(langStrings) {\n                var modalTitle = langStrings[0];\n                var modalContent = langStrings[1];\n                deleteButtonText = langStrings[2];\n\n                return ModalFactory.create({\n                    title: modalTitle,\n                    body: modalContent,\n                    type: ModalFactory.types.SAVE_CANCEL,\n                    large: true\n                });\n            }).done(function(modal) {\n                modal.setSaveButtonText(deleteButtonText);\n                modal.getRoot().on(ModalEvents.save, function() {\n                    // The action is now confirmed, sending an action for it.\n                    return deleteContent(contentid, contextid);\n                });\n\n                // Handle hidden event.\n                modal.getRoot().on(ModalEvents.hidden, function() {\n                    // Destroy when hidden.\n                    modal.destroy();\n                });\n\n                // Show the modal.\n                modal.show();\n\n                return;\n            }).catch(Notification.exception);\n        });\n\n        $(ACTIONS.RENAME_CONTENT).click(function(e) {\n            e.preventDefault();\n\n            var contentname = $(this).data('contentname');\n            var contentid = $(this).data('contentid');\n\n            var strings = [\n                {\n                    key: 'renamecontent',\n                    component: 'core_contentbank'\n                },\n                {\n                    key: 'rename',\n                    component: 'core_contentbank'\n                },\n            ];\n\n            var saveButtonText = '';\n            Str.get_strings(strings).then(function(langStrings) {\n                var modalTitle = langStrings[0];\n                saveButtonText = langStrings[1];\n\n                return ModalFactory.create({\n                    title: modalTitle,\n                    body: Templates.render('core_contentbank/renamecontent', {'contentid': contentid, 'name': contentname}),\n                    type: ModalFactory.types.SAVE_CANCEL\n                });\n            }).then(function(modal) {\n                modal.setSaveButtonText(saveButtonText);\n                modal.getRoot().on(ModalEvents.save, function() {\n                    // The action is now confirmed, sending an action for it.\n                    var newname = $(\"#newname\").val();\n                    return renameContent(contentid, newname);\n                });\n\n                // Handle hidden event.\n                modal.getRoot().on(ModalEvents.hidden, function() {\n                    // Destroy when hidden.\n                    modal.destroy();\n                });\n\n                // Show the modal.\n                modal.show();\n\n                return;\n            }).catch(Notification.exception);\n        });\n    };\n\n    /**\n     * Delete content from the content bank.\n     *\n     * @param {int} contentid The content to delete.\n     * @param {int} contextid The contextid where the content belongs.\n     */\n    function deleteContent(contentid, contextid) {\n        var request = {\n            methodname: 'core_contentbank_delete_content',\n            args: {\n                contentids: {contentid}\n            }\n        };\n\n        var requestType = 'success';\n        Ajax.call([request])[0].then(function(data) {\n            if (data.result) {\n                return Str.get_string('contentdeleted', 'core_contentbank');\n            }\n            requestType = 'error';\n            return Str.get_string('contentnotdeleted', 'core_contentbank');\n\n        }).done(function(message) {\n            var params = {\n                contextid: contextid\n            };\n            if (requestType == 'success') {\n                params.statusmsg = message;\n            } else {\n                params.errormsg = message;\n            }\n            // Redirect to the main content bank page and display the message as a notification.\n            window.location.href = Url.relativeUrl('contentbank/index.php', params, false);\n        }).fail(Notification.exception);\n    }\n\n    /**\n     * Rename content in the content bank.\n     *\n     * @param {int} contentid The content to rename.\n     * @param {string} name The new name for the content.\n     */\n    function renameContent(contentid, name) {\n        var request = {\n            methodname: 'core_contentbank_rename_content',\n            args: {\n                contentid: contentid,\n                name: name\n            }\n        };\n        var requestType = 'success';\n        Ajax.call([request])[0].then(function(data) {\n            if (data) {\n                return Str.get_string('contentrenamed', 'core_contentbank');\n            }\n            requestType = 'error';\n            return Str.get_string('contentnotrenamed', 'core_contentbank');\n\n        }).then(function(message) {\n            var params = null;\n            if (requestType == 'success') {\n                params = {\n                    id: contentid,\n                    statusmsg: message\n                };\n                // Redirect to the content view page and display the message as a notification.\n                window.location.href = Url.relativeUrl('contentbank/view.php', params, false);\n            } else {\n                // Fetch error notifications.\n                Notification.addNotification({\n                    message: message,\n                    type: 'error'\n                });\n                Notification.fetchNotifications();\n            }\n            return;\n        }).catch(Notification.exception);\n    }\n\n    return /** @alias module:core_contentbank/actions */ {\n        // Public variables and functions.\n\n        /**\n         * Initialise the contentbank actions.\n         *\n         * @method init\n         * @return {Actions}\n         */\n        'init': function() {\n            return new Actions();\n        }\n    };\n});\n"],"file":"actions.min.js"}