Proyectos de Subversion Moodle

Rev

Autoría | Ultima modificación | Ver Log |

{"version":3,"file":"managedocsactions.min.js","sources":["../src/managedocsactions.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 * Adds support for confirmation via JS modal for some management actions at the Manage policies page.\n *\n * @module      tool_policy/managedocsactions\n * @copyright   2018 David Mudrák <david@moodle.com>\n * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine([\n    'jquery',\n    'core/log',\n    'core/config',\n    'core/str',\n    'core/modal_save_cancel',\n    'core/modal_events'\n], function($, Log, Config, Str, ModalSaveCancel, ModalEvents) {\n\n    \"use strict\";\n\n    /**\n     * List of action selectors.\n     *\n     * @property {string} LINKS - Selector for all action links\n     * @property {string} MAKE_CURRENT\n     */\n    var ACTION = {\n        LINKS: '[data-action]',\n        MAKE_CURRENT: '[data-action=\"makecurrent\"]',\n        INACTIVATE: '[data-action=\"inactivate\"]',\n        DELETE: '[data-action=\"delete\"]'\n    };\n\n    /**\n     * @constructor\n     * @param {Element} base - Management area wrapping element\n     */\n    function ManageDocsActions(base) {\n        this.base = base;\n\n        this.initEvents();\n    }\n\n    /**\n     * Register event listeners.\n     */\n    ManageDocsActions.prototype.initEvents = function() {\n        var self = this;\n\n        self.base.on('click', ACTION.LINKS, function(e) {\n            e.stopPropagation();\n\n            var link = $(e.currentTarget);\n            var promise;\n            var strings;\n\n            if (link.is(ACTION.MAKE_CURRENT)) {\n                promise = Str.get_strings([\n                    {key: 'activating', component: 'tool_policy'},\n                    {key: 'activateconfirm', component: 'tool_policy', param: {\n                        name: link.closest('[data-policy-name]').attr('data-policy-name'),\n                        revision: link.closest('[data-policy-revision]').attr('data-policy-revision')\n                    }},\n                    {key: 'activateconfirmyes', component: 'tool_policy'}\n                ]);\n\n            } else if (link.is(ACTION.INACTIVATE)) {\n                promise = Str.get_strings([\n                    {key: 'inactivating', component: 'tool_policy'},\n                    {key: 'inactivatingconfirm', component: 'tool_policy', param: {\n                        name: link.closest('[data-policy-name]').attr('data-policy-name'),\n                        revision: link.closest('[data-policy-revision]').attr('data-policy-revision')\n                    }},\n                    {key: 'inactivatingconfirmyes', component: 'tool_policy'}\n                ]);\n\n            } else if (link.is(ACTION.DELETE)) {\n                promise = Str.get_strings([\n                    {key: 'deleting', component: 'tool_policy'},\n                    {key: 'deleteconfirm', component: 'tool_policy', param: {\n                        name: link.closest('[data-policy-name]').attr('data-policy-name'),\n                        revision: link.closest('[data-policy-revision]').attr('data-policy-revision')\n                    }},\n                    {key: 'delete', component: 'core'}\n                ]);\n\n            } else {\n                Log.error('unknown action type detected', 'tool_policy/managedocsactions');\n                return;\n            }\n\n            e.preventDefault();\n\n            promise.then(function(strs) {\n                strings = strs;\n                return ModalSaveCancel.create({\n                    title: strings[0],\n                    body: strings[1],\n                });\n\n            }).then(function(modal) {\n                modal.setSaveButtonText(strings[2]);\n                modal.getRoot().on(ModalEvents.save, function() {\n                    window.location.href = link.attr('href') + '&sesskey=' + Config.sesskey + '&confirm=1';\n                });\n\n                modal.getRoot().on(ModalEvents.hidden, function() {\n                    modal.destroy();\n                });\n\n                modal.show();\n                return true;\n\n            }).catch(function(e) {\n                Log.error(e);\n                return false;\n            });\n        });\n    };\n\n    return {\n        /**\n         * Factory method returning instance of the ManageDocsActions\n         *\n         * @param {String} baseid - ID of the management area wrapping element\n         * @return {ManageDocsActions}\n         */\n        init: function(baseid) {\n            var base = $(document.getElementById(baseid));\n\n            if (base.length) {\n                return new ManageDocsActions(base);\n\n            } else {\n                throw new Error(\"managedocsactions: Invalid base element identifier\");\n            }\n        }\n    };\n});\n"],"names":["define","$","Log","Config","Str","ModalSaveCancel","ModalEvents","ACTION","ManageDocsActions","base","initEvents","prototype","this","on","e","stopPropagation","promise","strings","link","currentTarget","is","get_strings","key","component","param","name","closest","attr","revision","error","preventDefault","then","strs","create","title","body","modal","setSaveButtonText","getRoot","save","window","location","href","sesskey","hidden","destroy","show","catch","init","baseid","document","getElementById","length","Error"],"mappings":";;;;;;;AAsBAA,uCAAO,CACH,SACA,WACA,cACA,WACA,yBACA,sBACD,SAASC,EAAGC,IAAKC,OAAQC,IAAKC,gBAAiBC,iBAU1CC,aACO,gBADPA,oBAEc,8BAFdA,kBAGY,6BAHZA,cAIQ,kCAOHC,kBAAkBC,WAClBA,KAAOA,UAEPC,oBAMTF,kBAAkBG,UAAUD,WAAa,WAC1BE,KAENH,KAAKI,GAAG,QAASN,cAAc,SAASO,GACzCA,EAAEC,sBAGEC,QACAC,QAFAC,KAAOjB,EAAEa,EAAEK,kBAIXD,KAAKE,GAAGb,qBACRS,QAAUZ,IAAIiB,YAAY,CACtB,CAACC,IAAK,aAAcC,UAAW,eAC/B,CAACD,IAAK,kBAAmBC,UAAW,cAAeC,MAAO,CACtDC,KAAMP,KAAKQ,QAAQ,sBAAsBC,KAAK,oBAC9CC,SAAUV,KAAKQ,QAAQ,0BAA0BC,KAAK,0BAE1D,CAACL,IAAK,qBAAsBC,UAAW,sBAGxC,GAAIL,KAAKE,GAAGb,mBACfS,QAAUZ,IAAIiB,YAAY,CACtB,CAACC,IAAK,eAAgBC,UAAW,eACjC,CAACD,IAAK,sBAAuBC,UAAW,cAAeC,MAAO,CAC1DC,KAAMP,KAAKQ,QAAQ,sBAAsBC,KAAK,oBAC9CC,SAAUV,KAAKQ,QAAQ,0BAA0BC,KAAK,0BAE1D,CAACL,IAAK,yBAA0BC,UAAW,qBAG5C,CAAA,IAAIL,KAAKE,GAAGb,2BAWfL,IAAI2B,MAAM,+BAAgC,iCAV1Cb,QAAUZ,IAAIiB,YAAY,CACtB,CAACC,IAAK,WAAYC,UAAW,eAC7B,CAACD,IAAK,gBAAiBC,UAAW,cAAeC,MAAO,CACpDC,KAAMP,KAAKQ,QAAQ,sBAAsBC,KAAK,oBAC9CC,SAAUV,KAAKQ,QAAQ,0BAA0BC,KAAK,0BAE1D,CAACL,IAAK,SAAUC,UAAW,UAQnCT,EAAEgB,iBAEFd,QAAQe,MAAK,SAASC,aAClBf,QAAUe,KACH3B,gBAAgB4B,OAAO,CAC1BC,MAAOjB,QAAQ,GACfkB,KAAMlB,QAAQ,QAGnBc,MAAK,SAASK,cACbA,MAAMC,kBAAkBpB,QAAQ,IAChCmB,MAAME,UAAUzB,GAAGP,YAAYiC,MAAM,WACjCC,OAAOC,SAASC,KAAOxB,KAAKS,KAAK,QAAU,YAAcxB,OAAOwC,QAAU,gBAG9EP,MAAME,UAAUzB,GAAGP,YAAYsC,QAAQ,WACnCR,MAAMS,aAGVT,MAAMU,QACC,KAERC,OAAM,SAASjC,UACdZ,IAAI2B,MAAMf,IACH,SAKZ,CAOHkC,KAAM,SAASC,YACPxC,KAAOR,EAAEiD,SAASC,eAAeF,YAEjCxC,KAAK2C,cACE,IAAI5C,kBAAkBC,YAGvB,IAAI4C,MAAM"}