Your IP : 192.168.165.1


Current Path : C:/xampp/htdocs/moodle/admin/tool/lp/amd/build/
Upload File :
Current File : C:/xampp/htdocs/moodle/admin/tool/lp/amd/build/scaleconfig.min.js.map

{"version":3,"sources":["../src/scaleconfig.js"],"names":["define","$","notification","templates","ajax","Dialogue","ModScaleValues","ScaleConfig","selectSelector","inputSelector","triggerSelector","originalscaleid","val","on","scaleChangeHandler","bind","change","click","showConfig","prototype","scalevalues","scaleid","popup","self","scalename","find","text","getScaleValues","done","context","scales","render","html","initScaleConfig","fail","exception","retrieveOriginalScaleConfig","jsonstring","scaleconfiguration","parseJSON","scaledetail","shift","body","getContent","currentconfig","forEach","value","scaledefault","id","attr","proficient","setScaleConfig","close","data","is","push","datastring","JSON","stringify","get_values","then","values","e","target","prop","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 <http://www.gnu.org/licenses/>.\n\n/**\n * Handle opening a dialogue to configure scale data.\n *\n * @module     tool_lp/scaleconfig\n * @package    tool_lp\n * @copyright  2015 Adrian Greeve <adrian@moodle.com>\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['jquery', 'core/notification', 'core/templates', 'core/ajax', 'tool_lp/dialogue', 'tool_lp/scalevalues'],\n    function($, notification, templates, ajax, Dialogue, ModScaleValues) {\n\n    /**\n     * Scale config object.\n     * @param {String} selectSelector The select box selector.\n     * @param {String} inputSelector The hidden input field selector.\n     * @param {String} triggerSelector The trigger selector.\n     */\n    var ScaleConfig = function(selectSelector, inputSelector, triggerSelector) {\n        this.selectSelector = selectSelector;\n        this.inputSelector = inputSelector;\n        this.triggerSelector = triggerSelector;\n\n        // Get the current scale ID.\n        this.originalscaleid = $(selectSelector).val();\n        $(selectSelector).on('change', this.scaleChangeHandler.bind(this)).change();\n        $(triggerSelector).click(this.showConfig.bind(this));\n    };\n\n    /** @var {String} The select box selector. */\n    ScaleConfig.prototype.selectSelector = null;\n    /** @var {String} The hidden field selector. */\n    ScaleConfig.prototype.inputSelector = null;\n    /** @var {String} The trigger selector. */\n    ScaleConfig.prototype.triggerSelector = null;\n    /** @var {Array} scalevalues ID and name of the scales. */\n    ScaleConfig.prototype.scalevalues = null;\n    /** @var {Number) originalscaleid Original scale ID when the page loads. */\n    ScaleConfig.prototype.originalscaleid = 0;\n    /** @var {Number} scaleid Current scale ID. */\n    ScaleConfig.prototype.scaleid = 0;\n    /** @var {Dialogue} Reference to the popup. */\n    ScaleConfig.prototype.popup = null;\n\n    /**\n     * Displays the scale configuration dialogue.\n     *\n     * @method showConfig\n     */\n    ScaleConfig.prototype.showConfig = function() {\n        var self = this;\n\n        this.scaleid = $(this.selectSelector).val();\n        if (this.scaleid <= 0) {\n            // This should not happen.\n            return;\n        }\n\n        var scalename = $(this.selectSelector).find(\"option:selected\").text();\n        this.getScaleValues(this.scaleid).done(function() {\n\n            var context = {\n                scalename: scalename,\n                scales: self.scalevalues\n            };\n\n            // Dish up the form.\n            templates.render('tool_lp/scale_configuration_page', context)\n                .done(function(html) {\n                    new Dialogue(\n                        scalename,\n                        html,\n                        self.initScaleConfig.bind(self)\n                    );\n                }).fail(notification.exception);\n        }).fail(notification.exception);\n    };\n\n    /**\n     * Gets the original scale configuration if it was set.\n     *\n     * @method retrieveOriginalScaleConfig\n     * @return {Object|String} scale configuration or empty string.\n     */\n    ScaleConfig.prototype.retrieveOriginalScaleConfig = function() {\n        var jsonstring = $(this.inputSelector).val();\n        if (jsonstring !== '') {\n            var scaleconfiguration = $.parseJSON(jsonstring);\n            // The first object should contain the scale ID for the configuration.\n            var scaledetail = scaleconfiguration.shift();\n            // Check that this scale id matches the one from the page before returning the configuration.\n            if (scaledetail.scaleid === this.originalscaleid) {\n                return scaleconfiguration;\n            }\n        }\n        return '';\n    };\n\n    /**\n     * Initialises the scale configuration dialogue.\n     *\n     * @method initScaleConfig\n     * @param {Dialogue} popup Dialogue object to initialise.\n     */\n    ScaleConfig.prototype.initScaleConfig = function(popup) {\n        this.popup = popup;\n        var body = $(popup.getContent());\n        if (this.originalscaleid === this.scaleid) {\n            // Set up the popup to show the current configuration.\n            var currentconfig = this.retrieveOriginalScaleConfig();\n            // Set up the form only if there is configuration settings to set.\n            if (currentconfig !== '') {\n                currentconfig.forEach(function(value) {\n                    if (value.scaledefault === 1) {\n                        body.find('[data-field=\"tool_lp_scale_default_' + value.id + '\"]').attr('checked', true);\n                    }\n                    if (value.proficient === 1) {\n                        body.find('[data-field=\"tool_lp_scale_proficient_' + value.id + '\"]').attr('checked', true);\n                    }\n                });\n            }\n        }\n        body.on('click', '[data-action=\"close\"]', function() {\n            this.setScaleConfig();\n            popup.close();\n        }.bind(this));\n        body.on('click', '[data-action=\"cancel\"]', function() {\n            popup.close();\n        });\n    };\n\n    /**\n     * Set the scale configuration back into a JSON string in the hidden element.\n     *\n     * @method setScaleConfig\n     */\n    ScaleConfig.prototype.setScaleConfig = function() {\n        var body = $(this.popup.getContent());\n        // Get the data.\n        var data = [{scaleid: this.scaleid}];\n        this.scalevalues.forEach(function(value) {\n            var scaledefault = 0;\n            var proficient = 0;\n            if (body.find('[data-field=\"tool_lp_scale_default_' + value.id + '\"]').is(':checked')) {\n                scaledefault = 1;\n            }\n            if (body.find('[data-field=\"tool_lp_scale_proficient_' + value.id + '\"]').is(':checked')) {\n                proficient = 1;\n            }\n\n            if (!scaledefault && !proficient) {\n                return;\n            }\n\n            data.push({\n                id: value.id,\n                scaledefault: scaledefault,\n                proficient: proficient\n            });\n         });\n        var datastring = JSON.stringify(data);\n        // Send to the hidden field on the form.\n        $(this.inputSelector).val(datastring);\n        // Once the configuration has been saved then the original scale ID is set to the current scale ID.\n        this.originalscaleid = this.scaleid;\n    };\n\n    /**\n     * Get the scale values for the selected scale.\n     *\n     * @method getScaleValues\n     * @param {Number} scaleid The scale ID of the selected scale.\n     * @return {Promise} A deffered object with the scale values.\n     */\n    ScaleConfig.prototype.getScaleValues = function(scaleid) {\n        return ModScaleValues.get_values(scaleid).then(function(values) {\n            this.scalevalues = values;\n            return values;\n        }.bind(this));\n    };\n\n    /**\n     * Triggered when a scale is selected.\n     *\n     * @name   scaleChangeHandler\n     * @param  {Event} e\n     * @function\n     */\n    ScaleConfig.prototype.scaleChangeHandler = function(e) {\n        if ($(e.target).val() <= 0) {\n            $(this.triggerSelector).prop('disabled', true);\n        } else {\n            $(this.triggerSelector).prop('disabled', false);\n        }\n\n    };\n\n    return {\n\n        /**\n         * Main initialisation.\n         *\n         * @param {String} selectSelector The select box selector.\n         * @param {String} inputSelector The hidden input field selector.\n         * @param {String} triggerSelector The trigger selector.\n         * @return {ScaleConfig} A new instance of ScaleConfig.\n         * @method init\n         */\n        init: function(selectSelector, inputSelector, triggerSelector) {\n            return new ScaleConfig(selectSelector, inputSelector, triggerSelector);\n        }\n    };\n});\n"],"file":"scaleconfig.min.js"}