From 18eab896bdd4a208c440a473f055689fe42dcbd1 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Wed, 27 Oct 2021 13:30:04 +0800 Subject: [PATCH] Change JS to please GHA --- amd/build/dialogue.min.js.map | 2 +- amd/build/rearrange-area.min.js.map | 2 +- amd/src/dialogue.js | 1 - amd/src/rearrange-area.js | 1 - 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/amd/build/dialogue.min.js.map b/amd/build/dialogue.min.js.map index c511427..8986766 100644 --- a/amd/build/dialogue.min.js.map +++ b/amd/build/dialogue.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/dialogue.js"],"names":["define","Y","dialogue","title","content","afterShow","afterHide","wide","yuiDialogue","parent","use","width","M","core","headerContent","bodyContent","draggable","visible","center","modal","after","e","newVal","soon","centerDialogue","show","prototype","close","hide","destroy","getContent","bodyNode","getDOMNode"],"mappings":"AAwBAA,OAAM,2BAAC,CAAC,UAAD,CAAD,CAAe,SAASC,CAAT,CAAY,CAW7B,GAAIC,CAAAA,CAAQ,CAAG,SAASC,CAAT,CAAgBC,CAAhB,CAAyBC,CAAzB,CAAoCC,CAApC,CAA+CC,CAA/C,CAAqD,CAChE,KAAKC,WAAL,CAAmB,IAAnB,CACA,GAAIC,CAAAA,CAAM,CAAG,IAAb,CAGA,GAAmB,WAAf,QAAOF,CAAAA,CAAX,CAAgC,CAC5BA,CAAI,GACP,CAEDN,CAAC,CAACS,GAAF,CAAM,0BAAN,CAAkC,QAAlC,CAA4C,UAAW,CACnD,GAAIC,CAAAA,CAAK,CAAG,OAAZ,CACA,GAAIJ,CAAJ,CAAU,CACNI,CAAK,CAAG,OACX,CAEDF,CAAM,CAACD,WAAP,CAAqB,GAAII,CAAAA,CAAC,CAACC,IAAF,CAAOX,QAAX,CAAoB,CACrCY,aAAa,CAAEX,CADsB,CAErCY,WAAW,CAAEX,CAFwB,CAGrCY,SAAS,GAH4B,CAIrCC,OAAO,GAJ8B,CAKrCC,MAAM,GAL+B,CAMrCC,KAAK,GANgC,CAOrCR,KAAK,CAAEA,CAP8B,CAApB,CAArB,CAUAF,CAAM,CAACD,WAAP,CAAmBY,KAAnB,CAAyB,eAAzB,CAA0C,SAASC,CAAT,CAAY,CAClD,GAAIA,CAAC,CAACC,MAAN,CAAc,CAGV,GAA0B,WAArB,QAAOjB,CAAAA,CAAZ,CAAwC,CACpCJ,CAAC,CAACsB,IAAF,CAAO,UAAW,CACdlB,CAAS,CAACI,CAAD,CAAT,CACAA,CAAM,CAACD,WAAP,CAAmBgB,cAAnB,EACH,CAHD,CAIH,CACJ,CATD,IASO,CACH,GAA0B,WAArB,QAAOlB,CAAAA,CAAZ,CAAwC,CACpCL,CAAC,CAACsB,IAAF,CAAO,UAAW,CACdjB,CAAS,CAACG,CAAD,CACZ,CAFD,CAGH,CACJ,CACJ,CAjBD,EAmBAA,CAAM,CAACD,WAAP,CAAmBiB,IAAnB,EACH,CApCD,CAqCH,CA9CD,CAmDAvB,CAAQ,CAACwB,SAAT,CAAmBC,KAAnB,CAA2B,UAAW,CAClC,KAAKnB,WAAL,CAAiBoB,IAAjB,GACA,KAAKpB,WAAL,CAAiBqB,OAAjB,EACH,CAHD,CAUA3B,CAAQ,CAACwB,SAAT,CAAmBI,UAAnB,CAAgC,UAAW,CACvC,MAAO,MAAKtB,WAAL,CAAiBuB,QAAjB,CAA0BC,UAA1B,EACV,CAFD,CAIA,MAAO9B,CAAAA,CACV,CA7EK,CAAN","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 * Wrapper for the YUI M.core.notification class. Allows us to\n * use the YUI version in AMD code until it is replaced.\n *\n * @module mod_customcert/dialogue\n * @package mod_customcert\n * @copyright 2016 Mark Nelson \n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['core/yui'], function(Y) {\n\n /**\n * Constructor\n *\n * @param {String} title Title for the window.\n * @param {String} content The content for the window.\n * @param {function} afterShow Callback executed after the window is opened.\n * @param {function} afterHide Callback executed after the window is closed.\n * @param {Boolean} wide Specify we want an extra wide dialogue (the size is standard, but wider than the default).\n */\n var dialogue = function(title, content, afterShow, afterHide, wide) {\n this.yuiDialogue = null;\n var parent = this;\n\n // Default for wide is false.\n if (typeof wide == 'undefined') {\n wide = false;\n }\n\n Y.use('moodle-core-notification', 'timers', function() {\n var width = '480px';\n if (wide) {\n width = '800px';\n }\n\n parent.yuiDialogue = new M.core.dialogue({\n headerContent: title,\n bodyContent: content,\n draggable: true,\n visible: false,\n center: true,\n modal: true,\n width: width\n });\n\n parent.yuiDialogue.after('visibleChange', function(e) {\n if (e.newVal) {\n // Delay the callback call to the next tick, otherwise it can happen that it is\n // executed before the dialogue constructor returns.\n if ((typeof afterShow !== 'undefined')) {\n Y.soon(function() {\n afterShow(parent);\n parent.yuiDialogue.centerDialogue();\n });\n }\n } else {\n if ((typeof afterHide !== 'undefined')) {\n Y.soon(function() {\n afterHide(parent);\n });\n }\n }\n });\n\n parent.yuiDialogue.show();\n });\n };\n\n /**\n * Close this window.\n */\n dialogue.prototype.close = function() {\n this.yuiDialogue.hide();\n this.yuiDialogue.destroy();\n };\n\n /**\n * Get content.\n *\n * @returns {HTMLElement}\n */\n dialogue.prototype.getContent = function() {\n return this.yuiDialogue.bodyNode.getDOMNode();\n };\n\n return dialogue;\n});\n"],"file":"dialogue.min.js"} \ No newline at end of file +{"version":3,"sources":["../src/dialogue.js"],"names":["define","Y","dialogue","title","content","afterShow","afterHide","wide","yuiDialogue","parent","use","width","M","core","headerContent","bodyContent","draggable","visible","center","modal","after","e","newVal","soon","centerDialogue","show","prototype","close","hide","destroy","getContent","bodyNode","getDOMNode"],"mappings":"AAuBAA,OAAM,2BAAC,CAAC,UAAD,CAAD,CAAe,SAASC,CAAT,CAAY,CAW7B,GAAIC,CAAAA,CAAQ,CAAG,SAASC,CAAT,CAAgBC,CAAhB,CAAyBC,CAAzB,CAAoCC,CAApC,CAA+CC,CAA/C,CAAqD,CAChE,KAAKC,WAAL,CAAmB,IAAnB,CACA,GAAIC,CAAAA,CAAM,CAAG,IAAb,CAGA,GAAmB,WAAf,QAAOF,CAAAA,CAAX,CAAgC,CAC5BA,CAAI,GACP,CAEDN,CAAC,CAACS,GAAF,CAAM,0BAAN,CAAkC,QAAlC,CAA4C,UAAW,CACnD,GAAIC,CAAAA,CAAK,CAAG,OAAZ,CACA,GAAIJ,CAAJ,CAAU,CACNI,CAAK,CAAG,OACX,CAEDF,CAAM,CAACD,WAAP,CAAqB,GAAII,CAAAA,CAAC,CAACC,IAAF,CAAOX,QAAX,CAAoB,CACrCY,aAAa,CAAEX,CADsB,CAErCY,WAAW,CAAEX,CAFwB,CAGrCY,SAAS,GAH4B,CAIrCC,OAAO,GAJ8B,CAKrCC,MAAM,GAL+B,CAMrCC,KAAK,GANgC,CAOrCR,KAAK,CAAEA,CAP8B,CAApB,CAArB,CAUAF,CAAM,CAACD,WAAP,CAAmBY,KAAnB,CAAyB,eAAzB,CAA0C,SAASC,CAAT,CAAY,CAClD,GAAIA,CAAC,CAACC,MAAN,CAAc,CAGV,GAA0B,WAArB,QAAOjB,CAAAA,CAAZ,CAAwC,CACpCJ,CAAC,CAACsB,IAAF,CAAO,UAAW,CACdlB,CAAS,CAACI,CAAD,CAAT,CACAA,CAAM,CAACD,WAAP,CAAmBgB,cAAnB,EACH,CAHD,CAIH,CACJ,CATD,IASO,CACH,GAA0B,WAArB,QAAOlB,CAAAA,CAAZ,CAAwC,CACpCL,CAAC,CAACsB,IAAF,CAAO,UAAW,CACdjB,CAAS,CAACG,CAAD,CACZ,CAFD,CAGH,CACJ,CACJ,CAjBD,EAmBAA,CAAM,CAACD,WAAP,CAAmBiB,IAAnB,EACH,CApCD,CAqCH,CA9CD,CAmDAvB,CAAQ,CAACwB,SAAT,CAAmBC,KAAnB,CAA2B,UAAW,CAClC,KAAKnB,WAAL,CAAiBoB,IAAjB,GACA,KAAKpB,WAAL,CAAiBqB,OAAjB,EACH,CAHD,CAUA3B,CAAQ,CAACwB,SAAT,CAAmBI,UAAnB,CAAgC,UAAW,CACvC,MAAO,MAAKtB,WAAL,CAAiBuB,QAAjB,CAA0BC,UAA1B,EACV,CAFD,CAIA,MAAO9B,CAAAA,CACV,CA7EK,CAAN","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 * Wrapper for the YUI M.core.notification class. Allows us to\n * use the YUI version in AMD code until it is replaced.\n *\n * @module mod_customcert/dialogue\n * @copyright 2016 Mark Nelson \n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['core/yui'], function(Y) {\n\n /**\n * Constructor\n *\n * @param {String} title Title for the window.\n * @param {String} content The content for the window.\n * @param {function} afterShow Callback executed after the window is opened.\n * @param {function} afterHide Callback executed after the window is closed.\n * @param {Boolean} wide Specify we want an extra wide dialogue (the size is standard, but wider than the default).\n */\n var dialogue = function(title, content, afterShow, afterHide, wide) {\n this.yuiDialogue = null;\n var parent = this;\n\n // Default for wide is false.\n if (typeof wide == 'undefined') {\n wide = false;\n }\n\n Y.use('moodle-core-notification', 'timers', function() {\n var width = '480px';\n if (wide) {\n width = '800px';\n }\n\n parent.yuiDialogue = new M.core.dialogue({\n headerContent: title,\n bodyContent: content,\n draggable: true,\n visible: false,\n center: true,\n modal: true,\n width: width\n });\n\n parent.yuiDialogue.after('visibleChange', function(e) {\n if (e.newVal) {\n // Delay the callback call to the next tick, otherwise it can happen that it is\n // executed before the dialogue constructor returns.\n if ((typeof afterShow !== 'undefined')) {\n Y.soon(function() {\n afterShow(parent);\n parent.yuiDialogue.centerDialogue();\n });\n }\n } else {\n if ((typeof afterHide !== 'undefined')) {\n Y.soon(function() {\n afterHide(parent);\n });\n }\n }\n });\n\n parent.yuiDialogue.show();\n });\n };\n\n /**\n * Close this window.\n */\n dialogue.prototype.close = function() {\n this.yuiDialogue.hide();\n this.yuiDialogue.destroy();\n };\n\n /**\n * Get content.\n *\n * @returns {HTMLElement}\n */\n dialogue.prototype.getContent = function() {\n return this.yuiDialogue.bodyNode.getDOMNode();\n };\n\n return dialogue;\n});\n"],"file":"dialogue.min.js"} \ No newline at end of file diff --git a/amd/build/rearrange-area.min.js.map b/amd/build/rearrange-area.min.js.map index 45761be..90a5924 100644 --- a/amd/build/rearrange-area.min.js.map +++ b/amd/build/rearrange-area.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/rearrange-area.js"],"names":["define","$","Y","fragment","Dialogue","notification","str","template","ajax","RearrangeArea","selector","_node","_setEvents","prototype","CUSTOMCERT_REF_POINT_TOPLEFT","CUSTOMCERT_REF_POINT_TOPCENTER","CUSTOMCERT_REF_POINT_TOPRIGHT","PIXELSINMM","on","_editElement","bind","event","elementid","currentTarget","id","substr","contextid","attr","loadFragment","done","html","js","get_string","title","use","_editElementDialogueConfig","fail","exception","popup","replaceNode","_setPositionInForm","body","getContent","e","M","core_formchangechecker","reset_form_dirty_state","_saveElement","then","_getElementHTML","elementNode","find","refpoint","parseInt","val","refpointClass","empty","append","removeClass","addClass","posx","posy","_setPosition","close","preventDefault","element","one","getX","getY","nodewidth","parseFloat","getComputedStyle","maxwidth","width","setX","setY","posxelement","posyelement","length","getData","Math","round","templateid","promises","call","methodname","args","inputs","serializeArray","values","init"],"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 .\n\n/**\n * AMD module used when rearranging a custom certificate.\n *\n * @module mod_customcert/rearrange-area\n * @package mod_customcert\n * @copyright 2016 Mark Nelson \n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['jquery', 'core/yui', 'core/fragment', 'mod_customcert/dialogue', 'core/notification',\n 'core/str', 'core/templates', 'core/ajax'],\n function($, Y, fragment, Dialogue, notification, str, template, ajax) {\n\n /**\n * RearrangeArea class.\n *\n * @param {String} selector The rearrange PDF selector\n */\n var RearrangeArea = function(selector) {\n this._node = $(selector);\n this._setEvents();\n };\n\n RearrangeArea.prototype.CUSTOMCERT_REF_POINT_TOPLEFT = 0;\n RearrangeArea.prototype.CUSTOMCERT_REF_POINT_TOPCENTER = 1;\n RearrangeArea.prototype.CUSTOMCERT_REF_POINT_TOPRIGHT = 2;\n RearrangeArea.prototype.PIXELSINMM = 3.779527559055;\n\n RearrangeArea.prototype._setEvents = function() {\n this._node.on('click', '.element', this._editElement.bind(this));\n };\n\n RearrangeArea.prototype._editElement = function(event) {\n var elementid = event.currentTarget.id.substr(8);\n var contextid = this._node.attr('data-contextid');\n var params = {\n 'elementid': elementid\n };\n\n fragment.loadFragment('mod_customcert', 'editelement', contextid, params).done(function(html, js) {\n str.get_string('editelement', 'mod_customcert').done(function(title) {\n Y.use('moodle-core-formchangechecker', function() {\n new Dialogue(\n title,\n '
',\n this._editElementDialogueConfig.bind(this, elementid, html, js),\n undefined,\n true\n );\n }.bind(this));\n }.bind(this));\n }.bind(this)).fail(notification.exception);\n };\n\n RearrangeArea.prototype._editElementDialogueConfig = function(elementid, html, js, popup) {\n // Place the content in the dialogue.\n template.replaceNode('#elementcontent', html, js);\n\n // We may have dragged the element changing it's position.\n // Ensure the form has the current up-to-date location.\n this._setPositionInForm(elementid);\n\n // Add events for when we save, close and cancel the page.\n var body = $(popup.getContent());\n body.on('click', '#id_submitbutton', function(e) {\n // Do not want to ask the user if they wish to stay on page after saving.\n M.core_formchangechecker.reset_form_dirty_state();\n // Save the data.\n this._saveElement(elementid).then(function() {\n // Update the DOM to reflect the adjusted value.\n this._getElementHTML(elementid).done(function(html) {\n var elementNode = this._node.find('#element-' + elementid);\n var refpoint = parseInt($('#id_refpoint').val());\n var refpointClass = '';\n if (refpoint == this.CUSTOMCERT_REF_POINT_TOPLEFT) {\n refpointClass = 'refpoint-left';\n } else if (refpoint == this.CUSTOMCERT_REF_POINT_TOPCENTER) {\n refpointClass = 'refpoint-center';\n } else if (refpoint == this.CUSTOMCERT_REF_POINT_TOPRIGHT) {\n refpointClass = 'refpoint-right';\n }\n elementNode.empty().append(html);\n // Update the ref point.\n elementNode.removeClass();\n elementNode.addClass('element ' + refpointClass);\n elementNode.attr('data-refpoint', refpoint);\n // Move the element.\n var posx = $('#editelementform #id_posx').val();\n var posy = $('#editelementform #id_posy').val();\n this._setPosition(elementid, refpoint, posx, posy);\n // All done.\n popup.close();\n }.bind(this));\n }.bind(this)).fail(notification.exception);\n e.preventDefault();\n }.bind(this));\n\n body.on('click', '#id_cancel', function(e) {\n popup.close();\n e.preventDefault();\n });\n };\n\n RearrangeArea.prototype._setPosition = function(elementid, refpoint, posx, posy) {\n var element = Y.one('#element-' + elementid);\n\n posx = Y.one('#pdf').getX() + posx * this.PIXELSINMM;\n posy = Y.one('#pdf').getY() + posy * this.PIXELSINMM;\n var nodewidth = parseFloat(element.getComputedStyle('width'));\n var maxwidth = element.width * this.PIXELSINMM;\n\n if (maxwidth && (nodewidth > maxwidth)) {\n nodewidth = maxwidth;\n }\n\n switch (refpoint) {\n case this.CUSTOMCERT_REF_POINT_TOPCENTER:\n posx -= nodewidth / 2;\n break;\n case this.CUSTOMCERT_REF_POINT_TOPRIGHT:\n posx = posx - nodewidth + 2;\n break;\n }\n\n element.setX(posx);\n element.setY(posy);\n };\n\n RearrangeArea.prototype._setPositionInForm = function(elementid) {\n var posxelement = $('#editelementform #id_posx');\n var posyelement = $('#editelementform #id_posy');\n\n if (posxelement.length && posyelement.length) {\n var element = Y.one('#element-' + elementid);\n var posx = element.getX() - Y.one('#pdf').getX();\n var posy = element.getY() - Y.one('#pdf').getY();\n var refpoint = parseInt(element.getData('refpoint'));\n var nodewidth = parseFloat(element.getComputedStyle('width'));\n\n switch (refpoint) {\n case this.CUSTOMCERT_REF_POINT_TOPCENTER:\n posx += nodewidth / 2;\n break;\n case this.CUSTOMCERT_REF_POINT_TOPRIGHT:\n posx += nodewidth;\n break;\n }\n\n posx = Math.round(parseFloat(posx / this.PIXELSINMM));\n posy = Math.round(parseFloat(posy / this.PIXELSINMM));\n\n posxelement.val(posx);\n posyelement.val(posy);\n }\n };\n\n RearrangeArea.prototype._getElementHTML = function(elementid) {\n // Get the variables we need.\n var templateid = this._node.attr('data-templateid');\n\n // Call the web service to get the updated element.\n var promises = ajax.call([{\n methodname: 'mod_customcert_get_element_html',\n args: {\n templateid: templateid,\n elementid: elementid\n }\n }]);\n\n // Return the promise.\n return promises[0];\n };\n\n RearrangeArea.prototype._saveElement = function(elementid) {\n // Get the variables we need.\n var templateid = this._node.attr('data-templateid');\n var inputs = $('#editelementform').serializeArray();\n\n // Call the web service to save the element.\n var promises = ajax.call([{\n methodname: 'mod_customcert_save_element',\n args: {\n templateid: templateid,\n elementid: elementid,\n values: inputs\n }\n }]);\n\n // Return the promise.\n return promises[0];\n };\n\n return {\n init: function(selector) {\n new RearrangeArea(selector);\n }\n };\n }\n );\n"],"file":"rearrange-area.min.js"} \ No newline at end of file +{"version":3,"sources":["../src/rearrange-area.js"],"names":["define","$","Y","fragment","Dialogue","notification","str","template","ajax","RearrangeArea","selector","_node","_setEvents","prototype","CUSTOMCERT_REF_POINT_TOPLEFT","CUSTOMCERT_REF_POINT_TOPCENTER","CUSTOMCERT_REF_POINT_TOPRIGHT","PIXELSINMM","on","_editElement","bind","event","elementid","currentTarget","id","substr","contextid","attr","loadFragment","done","html","js","get_string","title","use","_editElementDialogueConfig","fail","exception","popup","replaceNode","_setPositionInForm","body","getContent","e","M","core_formchangechecker","reset_form_dirty_state","_saveElement","then","_getElementHTML","elementNode","find","refpoint","parseInt","val","refpointClass","empty","append","removeClass","addClass","posx","posy","_setPosition","close","preventDefault","element","one","getX","getY","nodewidth","parseFloat","getComputedStyle","maxwidth","width","setX","setY","posxelement","posyelement","length","getData","Math","round","templateid","promises","call","methodname","args","inputs","serializeArray","values","init"],"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 .\n\n/**\n * AMD module used when rearranging a custom certificate.\n *\n * @module mod_customcert/rearrange-area\n * @copyright 2016 Mark Nelson \n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['jquery', 'core/yui', 'core/fragment', 'mod_customcert/dialogue', 'core/notification',\n 'core/str', 'core/templates', 'core/ajax'],\n function($, Y, fragment, Dialogue, notification, str, template, ajax) {\n\n /**\n * RearrangeArea class.\n *\n * @param {String} selector The rearrange PDF selector\n */\n var RearrangeArea = function(selector) {\n this._node = $(selector);\n this._setEvents();\n };\n\n RearrangeArea.prototype.CUSTOMCERT_REF_POINT_TOPLEFT = 0;\n RearrangeArea.prototype.CUSTOMCERT_REF_POINT_TOPCENTER = 1;\n RearrangeArea.prototype.CUSTOMCERT_REF_POINT_TOPRIGHT = 2;\n RearrangeArea.prototype.PIXELSINMM = 3.779527559055;\n\n RearrangeArea.prototype._setEvents = function() {\n this._node.on('click', '.element', this._editElement.bind(this));\n };\n\n RearrangeArea.prototype._editElement = function(event) {\n var elementid = event.currentTarget.id.substr(8);\n var contextid = this._node.attr('data-contextid');\n var params = {\n 'elementid': elementid\n };\n\n fragment.loadFragment('mod_customcert', 'editelement', contextid, params).done(function(html, js) {\n str.get_string('editelement', 'mod_customcert').done(function(title) {\n Y.use('moodle-core-formchangechecker', function() {\n new Dialogue(\n title,\n '
',\n this._editElementDialogueConfig.bind(this, elementid, html, js),\n undefined,\n true\n );\n }.bind(this));\n }.bind(this));\n }.bind(this)).fail(notification.exception);\n };\n\n RearrangeArea.prototype._editElementDialogueConfig = function(elementid, html, js, popup) {\n // Place the content in the dialogue.\n template.replaceNode('#elementcontent', html, js);\n\n // We may have dragged the element changing it's position.\n // Ensure the form has the current up-to-date location.\n this._setPositionInForm(elementid);\n\n // Add events for when we save, close and cancel the page.\n var body = $(popup.getContent());\n body.on('click', '#id_submitbutton', function(e) {\n // Do not want to ask the user if they wish to stay on page after saving.\n M.core_formchangechecker.reset_form_dirty_state();\n // Save the data.\n this._saveElement(elementid).then(function() {\n // Update the DOM to reflect the adjusted value.\n this._getElementHTML(elementid).done(function(html) {\n var elementNode = this._node.find('#element-' + elementid);\n var refpoint = parseInt($('#id_refpoint').val());\n var refpointClass = '';\n if (refpoint == this.CUSTOMCERT_REF_POINT_TOPLEFT) {\n refpointClass = 'refpoint-left';\n } else if (refpoint == this.CUSTOMCERT_REF_POINT_TOPCENTER) {\n refpointClass = 'refpoint-center';\n } else if (refpoint == this.CUSTOMCERT_REF_POINT_TOPRIGHT) {\n refpointClass = 'refpoint-right';\n }\n elementNode.empty().append(html);\n // Update the ref point.\n elementNode.removeClass();\n elementNode.addClass('element ' + refpointClass);\n elementNode.attr('data-refpoint', refpoint);\n // Move the element.\n var posx = $('#editelementform #id_posx').val();\n var posy = $('#editelementform #id_posy').val();\n this._setPosition(elementid, refpoint, posx, posy);\n // All done.\n popup.close();\n }.bind(this));\n }.bind(this)).fail(notification.exception);\n e.preventDefault();\n }.bind(this));\n\n body.on('click', '#id_cancel', function(e) {\n popup.close();\n e.preventDefault();\n });\n };\n\n RearrangeArea.prototype._setPosition = function(elementid, refpoint, posx, posy) {\n var element = Y.one('#element-' + elementid);\n\n posx = Y.one('#pdf').getX() + posx * this.PIXELSINMM;\n posy = Y.one('#pdf').getY() + posy * this.PIXELSINMM;\n var nodewidth = parseFloat(element.getComputedStyle('width'));\n var maxwidth = element.width * this.PIXELSINMM;\n\n if (maxwidth && (nodewidth > maxwidth)) {\n nodewidth = maxwidth;\n }\n\n switch (refpoint) {\n case this.CUSTOMCERT_REF_POINT_TOPCENTER:\n posx -= nodewidth / 2;\n break;\n case this.CUSTOMCERT_REF_POINT_TOPRIGHT:\n posx = posx - nodewidth + 2;\n break;\n }\n\n element.setX(posx);\n element.setY(posy);\n };\n\n RearrangeArea.prototype._setPositionInForm = function(elementid) {\n var posxelement = $('#editelementform #id_posx');\n var posyelement = $('#editelementform #id_posy');\n\n if (posxelement.length && posyelement.length) {\n var element = Y.one('#element-' + elementid);\n var posx = element.getX() - Y.one('#pdf').getX();\n var posy = element.getY() - Y.one('#pdf').getY();\n var refpoint = parseInt(element.getData('refpoint'));\n var nodewidth = parseFloat(element.getComputedStyle('width'));\n\n switch (refpoint) {\n case this.CUSTOMCERT_REF_POINT_TOPCENTER:\n posx += nodewidth / 2;\n break;\n case this.CUSTOMCERT_REF_POINT_TOPRIGHT:\n posx += nodewidth;\n break;\n }\n\n posx = Math.round(parseFloat(posx / this.PIXELSINMM));\n posy = Math.round(parseFloat(posy / this.PIXELSINMM));\n\n posxelement.val(posx);\n posyelement.val(posy);\n }\n };\n\n RearrangeArea.prototype._getElementHTML = function(elementid) {\n // Get the variables we need.\n var templateid = this._node.attr('data-templateid');\n\n // Call the web service to get the updated element.\n var promises = ajax.call([{\n methodname: 'mod_customcert_get_element_html',\n args: {\n templateid: templateid,\n elementid: elementid\n }\n }]);\n\n // Return the promise.\n return promises[0];\n };\n\n RearrangeArea.prototype._saveElement = function(elementid) {\n // Get the variables we need.\n var templateid = this._node.attr('data-templateid');\n var inputs = $('#editelementform').serializeArray();\n\n // Call the web service to save the element.\n var promises = ajax.call([{\n methodname: 'mod_customcert_save_element',\n args: {\n templateid: templateid,\n elementid: elementid,\n values: inputs\n }\n }]);\n\n // Return the promise.\n return promises[0];\n };\n\n return {\n init: function(selector) {\n new RearrangeArea(selector);\n }\n };\n }\n );\n"],"file":"rearrange-area.min.js"} \ No newline at end of file diff --git a/amd/src/dialogue.js b/amd/src/dialogue.js index d27a064..6bb9347 100644 --- a/amd/src/dialogue.js +++ b/amd/src/dialogue.js @@ -18,7 +18,6 @@ * use the YUI version in AMD code until it is replaced. * * @module mod_customcert/dialogue - * @package mod_customcert * @copyright 2016 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ diff --git a/amd/src/rearrange-area.js b/amd/src/rearrange-area.js index ea79051..1099d25 100644 --- a/amd/src/rearrange-area.js +++ b/amd/src/rearrange-area.js @@ -17,7 +17,6 @@ * AMD module used when rearranging a custom certificate. * * @module mod_customcert/rearrange-area - * @package mod_customcert * @copyright 2016 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */