2011-02-01 09:57:29 +08:00
|
|
|
/**
|
|
|
|
* Copyright (C) 2011 Instructure, Inc.
|
|
|
|
*
|
|
|
|
* This file is part of Canvas.
|
|
|
|
*
|
|
|
|
* Canvas is free software: you can redistribute it and/or modify it under
|
|
|
|
* the terms of the GNU Affero General Public License as published by the Free
|
|
|
|
* Software Foundation, version 3 of the License.
|
|
|
|
*
|
|
|
|
* Canvas 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 Affero General Public License for more
|
|
|
|
* details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
2011-11-11 00:31:45 +08:00
|
|
|
|
2012-03-06 01:37:09 +08:00
|
|
|
define([
|
2011-11-11 00:31:45 +08:00
|
|
|
'i18n!prerequisites_lookup',
|
|
|
|
'jquery',
|
|
|
|
'str/htmlEscape',
|
|
|
|
'context_modules',
|
|
|
|
'jquery.ajaxJSON',
|
|
|
|
'jquery.instructure_misc_helpers'
|
|
|
|
], function(I18n, $, htmlEscape) {
|
|
|
|
|
|
|
|
$(document).ready(function() {
|
|
|
|
var $link = $("#module_prerequisites_lookup_link");
|
|
|
|
var url = $link.attr('href');
|
|
|
|
$.ajaxJSON(url, 'GET', {}, function(data) {
|
|
|
|
if(data.locked === false) {
|
|
|
|
window.reload();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
var $ul = $("<ul/>");
|
|
|
|
$ul.attr('id', 'module_prerequisites_list');
|
|
|
|
for(var idx in data.modules) {
|
|
|
|
var module = data.modules[idx];
|
|
|
|
var $li = $("<li/>");
|
|
|
|
$li.addClass('module');
|
|
|
|
$li.click(function() {
|
|
|
|
$(this).find("ul").toggle();
|
|
|
|
});
|
|
|
|
$li.toggleClass('locked', !!module.locked);
|
|
|
|
var $h3 = $("<h3/>");
|
|
|
|
$h3.text(module.name);
|
|
|
|
$li.append($h3);
|
|
|
|
if(module.prerequisites && module.prerequisites.length > 0) {
|
|
|
|
var $pres = $("<ul/>");
|
|
|
|
for(var jdx in module.prerequisites) {
|
|
|
|
var pre = module.prerequisites[jdx];
|
|
|
|
var $pre = $("<li/>");
|
|
|
|
$pre.addClass('requirement');
|
|
|
|
$pre.toggleClass('locked_requirement', !pre.available);
|
|
|
|
var $a = $("<a/>");
|
|
|
|
$a.attr('href', pre.url);
|
|
|
|
$a.text(pre.title);
|
|
|
|
$pre.append($a);
|
|
|
|
var desc = pre.requirement_description;
|
|
|
|
if(desc) {
|
|
|
|
var $div = $("<div/>");
|
|
|
|
$div.addClass('description');
|
|
|
|
$div.text(desc);
|
|
|
|
$pre.append($div);
|
|
|
|
}
|
|
|
|
$pres.append($pre);
|
2011-02-01 09:57:29 +08:00
|
|
|
}
|
2011-11-11 00:31:45 +08:00
|
|
|
$li.append($pres);
|
2011-02-01 09:57:29 +08:00
|
|
|
}
|
2011-11-11 00:31:45 +08:00
|
|
|
$ul.append($li);
|
2011-02-01 09:57:29 +08:00
|
|
|
}
|
2011-11-11 00:31:45 +08:00
|
|
|
$link.after($ul);
|
|
|
|
var header = I18n.t("headers.completion_prerequisites", "Completion Prerequisites");
|
|
|
|
var sentence = I18n.beforeLabel("requirements_must_be_completed", "The following requirements need to be completed before this page will be unlocked");
|
|
|
|
$link.after("<br/><h3 style='margin-top: 15px;'>" + htmlEscape(header) + "</h3>" + htmlEscape(sentence));
|
|
|
|
$link.prev("a").hide();
|
|
|
|
}, function(data) {});
|
|
|
|
});
|
|
|
|
|
2011-06-28 23:53:57 +08:00
|
|
|
});
|