%PDF- %PDF-
Direktori : /home/vacivi36/ava/admin/tool/dataprivacy/amd/src/ |
Current File : /home/vacivi36/ava/admin/tool/dataprivacy/amd/src/effective_retention_period.js |
// This file is part of Moodle - http://moodle.org/ // // Moodle is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** * Module to update the displayed retention period. * * @module tool_dataprivacy/effective_retention_period * @copyright 2018 David Monllao * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ define(['jquery'], function($) { var SELECTORS = { PURPOSE_SELECT: '#id_purposeid', RETENTION_FIELD: '#fitem_id_retention_current [data-fieldtype=static]', }; /** * Constructor for the retention period display. * * @param {Array} purposeRetentionPeriods Associative array of purposeids with effective retention period at this context */ var EffectiveRetentionPeriod = function(purposeRetentionPeriods) { this.purposeRetentionPeriods = purposeRetentionPeriods; this.registerEventListeners(); }; /** * Removes the current 'change' listeners. * * Useful when a new form is loaded. */ var removeListeners = function() { $(SELECTORS.PURPOSE_SELECT).off('change'); }; /** * @var {Array} purposeRetentionPeriods * @private */ EffectiveRetentionPeriod.prototype.purposeRetentionPeriods = []; /** * Add purpose change listeners. * * @method registerEventListeners */ EffectiveRetentionPeriod.prototype.registerEventListeners = function() { $(SELECTORS.PURPOSE_SELECT).on('change', function(ev) { var selected = $(ev.currentTarget).val(); var selectedPurpose = this.purposeRetentionPeriods[selected]; $(SELECTORS.RETENTION_FIELD).text(selectedPurpose); }.bind(this)); }; return /** @alias module:tool_dataprivacy/effective_retention_period */ { init: function(purposeRetentionPeriods) { // Remove previously attached listeners. removeListeners(); return new EffectiveRetentionPeriod(purposeRetentionPeriods); } }; } );