Sindbad~EG File Manager

Current Path : /var/www/html/aprender.faexito.org/lib/amd/build/
Upload File :
Current File : /var/www/html/aprender.faexito.org/lib/amd/build/tag.min.js.map

{"version":3,"file":"tag.min.js","sources":["../src/tag.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 * AJAX helper for the tag management page.\n *\n * @module     core/tag\n * @copyright  2015 Marina Glancy\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n * @since      3.0\n */\n\nimport $ from 'jquery';\nimport {call as fetchMany} from 'core/ajax';\nimport * as Notification from 'core/notification';\nimport * as Templates from 'core/templates';\nimport {\n    get_string as getString,\n    get_strings as getStrings,\n} from 'core/str';\nimport * as ModalEvents from 'core/modal_events';\nimport Pending from 'core/pending';\nimport SaveCancelModal from 'core/modal_save_cancel';\nimport Config from 'core/config';\n\nconst getTagIndex = (tagindex) => fetchMany([{\n    methodname: 'core_tag_get_tagindex',\n    args: {tagindex}\n}])[0];\n\nconst getCheckedTags = (form) => form.querySelectorAll('input[data-togglegroup=\"tags-manage\"][data-toggle=\"slave\"]:checked');\n\nconst handleCombineRequest = async(tagManagementCombine) => {\n    const pendingPromise = new Pending('core/tag:tag-management-combine');\n    const form = tagManagementCombine.closest('form');\n    const checkedTags = getCheckedTags(form);\n\n    if (checkedTags.length <= 1) {\n        // We need at least 2 tags to combine them.\n        Notification.alert(\n            getString('combineselected', 'tag'),\n            getString('selectmultipletags', 'tag'),\n            getString('ok'),\n        );\n\n        return;\n    }\n\n    const tags = Array.from(checkedTags.values()).map((tag) => {\n        const namedElement = document.querySelector(`.inplaceeditable[data-itemtype=tagname][data-itemid=\"${tag.value}\"]`);\n        return {\n            id: tag.value,\n            name: namedElement.dataset.value,\n        };\n    });\n\n    const modal = await SaveCancelModal.create({\n        title: getString('combineselected', 'tag'),\n        buttons: {\n            save: getString('continue', 'core'),\n        },\n        body: Templates.render('core_tag/combine_tags', {tags}),\n        show: true,\n        removeOnClose: true,\n    });\n\n    // Handle save event.\n    modal.getRoot().on(ModalEvents.save, (e) => {\n        e.preventDefault();\n\n        // Append this temp element in the form in the tags list, not the form in the modal. Confusing, right?!?\n        const tempElement = document.createElement('input');\n        tempElement.hidden = true;\n        tempElement.name = tagManagementCombine.name;\n        form.append(tempElement);\n\n        // Get the selected tag from the modal.\n        var maintag = $('input[name=maintag]:checked', '#combinetags_form').val();\n        // Append this in the tags list form.\n        $(\"<input type='hidden'/>\").attr('name', 'maintag').attr('value', maintag).appendTo(form);\n        // Submit the tags list form.\n        form.submit();\n    });\n\n    await modal.getBodyPromise();\n    // Tick the first option.\n    const firstOption = document.querySelector('#combinetags_form input[type=radio]');\n    firstOption.focus();\n    firstOption.checked = true;\n\n    pendingPromise.resolve();\n\n    return;\n};\n\nconst addStandardTags = async() => {\n    var pendingPromise = new Pending('core/tag:addstandardtag');\n\n    const modal = await SaveCancelModal.create({\n        title: getString('addotags', 'tag'),\n        body: Templates.render('core_tag/add_tags', {\n            actionurl: window.location.href,\n            sesskey: M.cfg.sesskey,\n        }),\n        buttons: {\n            save: getString('continue', 'core'),\n        },\n        removeOnClose: true,\n        show: true,\n    });\n\n    // Handle save event.\n    modal.getRoot().on(ModalEvents.save, (e) => {\n        var tagsInput = $(e.currentTarget).find('#id_tagslist');\n        var name = tagsInput.val().trim();\n\n        // Set the text field's value to the trimmed value.\n        tagsInput.val(name);\n\n        // Add submit event listener to the form.\n        var tagsForm = $('#addtags_form');\n        tagsForm.on('submit', function(e) {\n            // Validate the form.\n            var form = $('#addtags_form');\n            if (form[0].checkValidity() === false) {\n                e.preventDefault();\n                e.stopPropagation();\n            }\n            form.addClass('was-validated');\n\n            // BS2 compatibility.\n            $('[data-region=\"tagslistinput\"]').addClass('error');\n            var errorMessage = $('#id_tagslist_error_message');\n            errorMessage.removeAttr('hidden');\n            errorMessage.addClass('help-block');\n        });\n\n        // Try to submit the form.\n        tagsForm.submit();\n\n        return false;\n    });\n\n    await modal.getBodyPromise();\n    pendingPromise.resolve();\n};\n\nconst deleteSelectedTags = async(form) => {\n    const checkedTags = getCheckedTags(form);\n    if (!checkedTags.length) {\n        return;\n    }\n\n    try {\n        await Notification.saveCancelPromise(\n            getString('delete'),\n            getString('confirmdeletetags', 'tag'),\n            getString('yes'),\n            getString('no'),\n        );\n\n        // Append this temp element in the form in the tags list, not the form in the modal. Confusing, right?!?\n        const tempElement = document.createElement('input');\n        tempElement.hidden = true;\n        tempElement.name = 'bulkdelete';\n        form.append(tempElement);\n        form.submit();\n    } catch {\n        return;\n    }\n};\n\nconst deleteSelectedTag = async(button) => {\n    try {\n        await Notification.saveCancelPromise(\n            getString('delete'),\n            getString('confirmdeletetag', 'tag'),\n            getString('yes'),\n            getString('no'),\n        );\n\n        window.location.href = button.href;\n    } catch {\n        return;\n    }\n};\n\nconst deleteSelectedCollection = async(button) => {\n    try {\n        await Notification.saveCancelPromise(\n            getString('delete'),\n            getString('suredeletecoll', 'tag', button.dataset.collname),\n            getString('yes'),\n            getString('no'),\n        );\n\n        const redirectTarget = new URL(button.dataset.url);\n        redirectTarget.searchParams.set('sesskey', Config.sesskey);\n        window.location.href = redirectTarget;\n    } catch {\n        return;\n    }\n};\n\nconst addTagCollection = async(link) => {\n    const pendingPromise = new Pending('core/tag:initManageCollectionsPage-addtagcoll');\n    const href = link.dataset.url;\n\n    const modal = await SaveCancelModal.create({\n        title: getString('addtagcoll', 'tag'),\n        buttons: {\n            save: getString('create', 'core'),\n        },\n        body: Templates.render('core_tag/add_tag_collection', {\n            actionurl: href,\n            sesskey: M.cfg.sesskey,\n        }),\n        removeOnClose: true,\n        show: true,\n    });\n\n    // Handle save event.\n    modal.getRoot().on(ModalEvents.save, (e) => {\n        const collectionInput = $(e.currentTarget).find('#addtagcoll_name');\n        const name = collectionInput.val().trim();\n        // Set the text field's value to the trimmed value.\n        collectionInput.val(name);\n\n        // Add submit event listener to the form.\n        const form = $('#addtagcoll_form');\n        form.on('submit', function(e) {\n            // Validate the form.\n            if (form[0].checkValidity() === false) {\n                e.preventDefault();\n                e.stopPropagation();\n            }\n            form.addClass('was-validated');\n\n            // BS2 compatibility.\n            $('[data-region=\"addtagcoll_nameinput\"]').addClass('error');\n            const errorMessage = $('#id_addtagcoll_name_error_message');\n            errorMessage.removeAttr('hidden');\n            errorMessage.addClass('help-block');\n        });\n\n        // Try to submit the form.\n        form.submit();\n\n        return false;\n    });\n\n    pendingPromise.resolve();\n};\n\n/**\n * Initialises tag index page.\n *\n * @method initTagindexPage\n */\nexport const initTagindexPage = async() => {\n    document.addEventListener('click', async(e) => {\n        const targetArea = e.target.closest('a[data-quickload=\"1\"]');\n        if (!targetArea) {\n            return;\n        }\n        const tagArea = targetArea.closest('.tagarea[data-ta]');\n        if (!tagArea) {\n            return;\n        }\n\n        e.preventDefault();\n        const pendingPromise = new Pending('core/tag:initTagindexPage');\n\n        const query = targetArea.search.replace(/^\\?/, '');\n        const params = Object.fromEntries((new URLSearchParams(query)).entries());\n\n        try {\n            const data = await getTagIndex(params);\n            const {html, js} = await Templates.renderForPromise('core_tag/index', data);\n            Templates.replaceNode(tagArea, html, js);\n        } catch (error) {\n            Notification.exception(error);\n        }\n        pendingPromise.resolve();\n    });\n};\n\n/**\n * Initialises tag management page.\n *\n * @method initManagePage\n */\nexport const initManagePage = () => {\n    // Set cell 'time modified' to 'now' when any of the element is updated in this row.\n    $('body').on('updated', '[data-inplaceeditable]', function(e) {\n        var pendingPromise = new Pending('core/tag:initManagePage');\n\n        getStrings([\n            {\n                key: 'selecttag',\n                component: 'core_tag',\n            },\n            {\n                key: 'now',\n                component: 'core',\n            },\n        ])\n        .then(function(result) {\n            $('label[for=\"tagselect' + e.ajaxreturn.itemid + '\"]').html(result[0]);\n            $(e.target).closest('tr').find('td.col-timemodified').html(result[1]);\n\n            return;\n        })\n        .always(pendingPromise.resolve)\n        .catch(Notification.exception);\n\n        if (e.ajaxreturn.itemtype === 'tagflag') {\n            var row = $(e.target).closest('tr');\n            if (e.ajaxreturn.value === '0') {\n                row.removeClass('table-warning');\n            } else {\n                row.addClass('table-warning');\n            }\n        }\n    });\n\n    // Confirmation for bulk tag combine button.\n    document.addEventListener('click', async(e) => {\n        const tagManagementCombine = e.target.closest('#tag-management-combine');\n        if (tagManagementCombine) {\n            e.preventDefault();\n            handleCombineRequest(tagManagementCombine);\n        }\n\n        if (e.target.closest('a[data-action=\"addstandardtag\"]')) {\n            e.preventDefault();\n            addStandardTags();\n        }\n\n        const bulkActionDeleteButton = e.target.closest('#tag-management-delete');\n        if (bulkActionDeleteButton) {\n            e.preventDefault();\n            deleteSelectedTags(bulkActionDeleteButton.closest('form'));\n        }\n\n        const rowDeleteButton = e.target.closest('.tagdelete');\n        if (rowDeleteButton) {\n            e.preventDefault();\n            deleteSelectedTag(rowDeleteButton);\n        }\n    });\n\n    // When user changes tag name to some name that already exists suggest to combine the tags.\n    $('body').on('updatefailed', '[data-inplaceeditable][data-itemtype=tagname]', async(e) => {\n        var exception = e.exception; // The exception object returned by the callback.\n        var newvalue = e.newvalue; // The value that user tried to udpated the element to.\n        var tagid = $(e.target).attr('data-itemid');\n        if (exception.errorcode !== 'namesalreadybeeingused') {\n            return;\n        }\n        e.preventDefault(); // This will prevent default error dialogue.\n\n        try {\n            await Notification.saveCancelPromise(\n                getString('confirm'),\n                getString('nameuseddocombine', 'tag'),\n                getString('yes'),\n                getString('cancel'),\n            );\n\n            // The Promise will resolve on 'Yes' button, and reject on 'Cancel' button.\n            const redirectTarget = new URL(window.location);\n            redirectTarget.searchParams.set('newname', newvalue);\n            redirectTarget.searchParams.set('tagid', tagid);\n            redirectTarget.searchParams.set('action', 'renamecombine');\n            redirectTarget.searchParams.set('sesskey', Config.sesskey);\n\n            window.location.href = redirectTarget;\n        } catch {\n            return;\n        }\n    });\n};\n\n/**\n * Initialises tag collection management page.\n *\n * @method initManageCollectionsPage\n */\nexport const initManageCollectionsPage = () => {\n    $('body').on('updated', '[data-inplaceeditable]', function(e) {\n        var pendingPromise = new Pending('core/tag:initManageCollectionsPage-updated');\n\n        var ajaxreturn = e.ajaxreturn,\n            areaid, collid, isenabled;\n        if (ajaxreturn.component === 'core_tag' && ajaxreturn.itemtype === 'tagareaenable') {\n            areaid = $(this).attr('data-itemid');\n            $(\".tag-collections-table ul[data-collectionid] li[data-areaid=\" + areaid + \"]\").hide();\n            isenabled = ajaxreturn.value;\n            if (isenabled === '1') {\n                $(this).closest('tr').removeClass('dimmed_text');\n                collid = $(this).closest('tr').find('[data-itemtype=\"tagareacollection\"]').attr(\"data-value\");\n                $(\".tag-collections-table ul[data-collectionid=\" + collid + \"] li[data-areaid=\" + areaid + \"]\").show();\n            } else {\n                $(this).closest('tr').addClass('dimmed_text');\n            }\n        }\n        if (ajaxreturn.component === 'core_tag' && ajaxreturn.itemtype === 'tagareacollection') {\n            areaid = $(this).attr('data-itemid');\n            $(\".tag-collections-table ul[data-collectionid] li[data-areaid=\" + areaid + \"]\").hide();\n            collid = $(this).attr('data-value');\n            isenabled = $(this).closest('tr').find('[data-itemtype=\"tagareaenable\"]').attr(\"data-value\");\n            if (isenabled === \"1\") {\n                $(\".tag-collections-table ul[data-collectionid=\" + collid + \"] li[data-areaid=\" + areaid + \"]\").show();\n            }\n        }\n\n        pendingPromise.resolve();\n    });\n\n    document.addEventListener('click', async(e) => {\n        const addTagCollectionNode = e.target.closest('.addtagcoll > a');\n        if (addTagCollectionNode) {\n            e.preventDefault();\n            addTagCollection(addTagCollectionNode);\n            return;\n        }\n\n        const deleteCollectionButton = e.target.closest('.tag-collections-table .action_delete');\n        if (deleteCollectionButton) {\n            e.preventDefault();\n            deleteSelectedCollection(deleteCollectionButton);\n        }\n    });\n};\n"],"names":["getCheckedTags","form","querySelectorAll","async","document","addEventListener","targetArea","e","target","closest","tagArea","preventDefault","pendingPromise","Pending","query","search","replace","params","Object","fromEntries","URLSearchParams","entries","data","tagindex","methodname","args","html","js","Templates","renderForPromise","replaceNode","error","Notification","exception","resolve","on","key","component","then","result","ajaxreturn","itemid","find","always","catch","itemtype","row","value","removeClass","addClass","tagManagementCombine","checkedTags","length","alert","tags","Array","from","values","map","tag","namedElement","querySelector","id","name","dataset","modal","SaveCancelModal","create","title","buttons","save","body","render","show","removeOnClose","getRoot","ModalEvents","tempElement","createElement","hidden","append","maintag","val","attr","appendTo","submit","getBodyPromise","firstOption","focus","checked","handleCombineRequest","actionurl","window","location","href","sesskey","M","cfg","tagsInput","currentTarget","trim","tagsForm","checkValidity","stopPropagation","errorMessage","removeAttr","addStandardTags","bulkActionDeleteButton","saveCancelPromise","deleteSelectedTags","rowDeleteButton","button","deleteSelectedTag","newvalue","tagid","errorcode","redirectTarget","URL","searchParams","set","Config","areaid","collid","this","hide","addTagCollectionNode","link","url","collectionInput","addTagCollection","deleteCollectionButton","collname","deleteSelectedCollection"],"mappings":"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"}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists