[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/blocks/navigation/amd/src/ -> nav_loader.js (source)

   1  // This file is part of Moodle - http://moodle.org/
   2  //
   3  // Moodle is free software: you can redistribute it and/or modify
   4  // it under the terms of the GNU General Public License as published by
   5  // the Free Software Foundation, either version 3 of the License, or
   6  // (at your option) any later version.
   7  //
   8  // Moodle is distributed in the hope that it will be useful,
   9  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  10  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11  // GNU General Public License for more details.
  12  //
  13  // You should have received a copy of the GNU General Public License
  14  // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
  15  
  16  /**
  17   * Load the nav tree items via ajax and render the response.
  18   *
  19   * @module     block_navigation/nav_loader
  20   * @package    core
  21   * @copyright  2015 John Okely <john@moodle.com>
  22   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  23   */
  24  define(['jquery', 'core/ajax', 'core/config', 'block_navigation/ajax_response_renderer'],
  25      function($, ajax, config, renderer) {
  26          var URL = config.wwwroot + '/lib/ajax/getnavbranch.php';
  27  
  28          /**
  29           * Get the block instance id.
  30           *
  31           * @function getBlockInstanceId
  32           * @param {Element} element
  33           * @returns {String} the instance id
  34           */
  35          function getBlockInstanceId(element) {
  36              return element.closest('[data-block]').attr('data-instanceid');
  37          }
  38  
  39      return {
  40          load: function(element) {
  41              element = $(element);
  42              var promise = $.Deferred();
  43              var data = {
  44                  elementid: element.attr('data-node-id'),
  45                  id: element.attr('data-node-key'),
  46                  type: element.attr('data-node-type'),
  47                  sesskey: config.sesskey,
  48                  instance: getBlockInstanceId(element)
  49              };
  50              var settings = {
  51                  type: 'POST',
  52                  dataType: 'json',
  53                  data: data
  54              };
  55  
  56              $.ajax(URL, settings).done(function(nodes) {
  57                  renderer.render(element, nodes);
  58                  promise.resolve();
  59              });
  60  
  61              return promise;
  62          }
  63      };
  64  });


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1