textAreas.on('keyup', function(e){
clearTimeout(debounce);
- //If no more changes within 2 seconds, look up the matching tool URL
+ // If no more changes within 2 seconds, look up the matching tool URL
debounce = setTimeout(function(){
updateToolMatches();
}, 2000);
var url = toolurl.get('value');
- //Hide the display if the url box is empty
+ // Hide the display if the url box is empty
if(!url){
automatchToolDisplay.setStyle('display', 'none');
} else {
var selectedToolType = parseInt(typeSelector.get('value'));
var selectedOption = typeSelector.one('option[value="' + selectedToolType + '"]');
- //A specific tool type is selected (not "auto")
- //We still need to check with the server to get privacy settings
+ // A specific tool type is selected (not "auto")
+ // We still need to check with the server to get privacy settings
if(selectedToolType > 0){
- //If the entered domain matches the domain of the tool configuration...
+ // If the entered domain matches the domain of the tool configuration...
var domainRegex = /(?:https?:\/\/)?(?:www\.)?([^\/]+)(?:\/|$)/i;
var match = domainRegex.exec(url);
if(match && match[1] && match[1].toLowerCase() === selectedOption.getAttribute('domain').toLowerCase()){
automatchToolDisplay.set('innerHTML', '<img style="vertical-align:text-bottom" src="' + self.settings.green_check_icon_url + '" />' + M.str.lti.using_tool_configuration + selectedOption.get('text'));
} else {
- //The entered URL does not match the domain of the tool configuration
+ // The entered URL does not match the domain of the tool configuration
automatchToolDisplay.set('innerHTML', '<img style="vertical-align:text-bottom" src="' + self.settings.warning_icon_url + '" />' + M.str.lti.domain_mismatch);
}
}
var key = Y.one('#id_resourcekey');
var secret = Y.one('#id_password');
- //Indicate the tool is manually configured
- //We still check the Launch URL with the server as course/site tools may override privacy settings
+ // Indicate the tool is manually configured
+ // We still check the Launch URL with the server as course/site tools may override privacy settings
if(key.get('value') !== '' && secret.get('value') !== ''){
automatchToolDisplay.set('innerHTML', '<img style="vertical-align:text-bottom" src="' + self.settings.green_check_icon_url + '" />' + M.str.lti.custom_config);
- }
-
+ }
+
var continuation = function(toolInfo){
self.updatePrivacySettings(toolInfo);
if(toolInfo.toolname){
automatchToolDisplay.set('innerHTML', '<img style="vertical-align:text-bottom" src="' + self.settings.green_check_icon_url + '" />' + M.str.lti.using_tool_configuration + toolInfo.toolname);
} else if(!selectedToolType) {
- //Inform them custom configuration is in use
+ // Inform them custom configuration is in use
if(key.get('value') === '' || secret.get('value') === ''){
automatchToolDisplay.set('innerHTML', '<img style="vertical-align:text-bottom" src="' + self.settings.warning_icon_url + '" />' + M.str.lti.tool_config_not_found);
}
}
};
- //Cache urls which have already been checked to increase performance
- //Don't use URL cache if tool type manually selected
+ // Cache urls which have already been checked to increase performance
+ // Don't use URL cache if tool type manually selected
if(selectedToolType && self.toolTypeCache[selectedToolType]){
return continuation(self.toolTypeCache[selectedToolType]);
} else if(self.urlCache[url] && !selectedToolType){
return continuation(self.urlCache[url]);
} else if(!selectedToolType && !url) {
- //No tool type or url set
+ // No tool type or url set
return continuation({});
} else {
self.findToolByUrl(url, selectedToolType, function(toolInfo){
if(toolInfo){
- //Cache the result based on whether the URL or tool type was used to look up the tool
+ // Cache the result based on whether the URL or tool type was used to look up the tool
if(!selectedToolType){
self.urlCache[url] = toolInfo;
} else {
self.toolTypeCache[selectedToolType] = toolInfo;
}
-
+
continuation(toolInfo);
}
});
acceptgrades: M.mod_lti.LTI_SETTING_DELEGATE
}
}
-
+
var setting, control;
-
- //Can't look these up by ID as they seem to get random IDs.
- //Setting an id manually from mod_form made them turn into text boxes.
+
+ // Can't look these up by ID as they seem to get random IDs.
+ // Setting an id manually from mod_form made them turn into text boxes.
var privacyControls = {
sendname: Y.one('input[name=instructorchoicesendname]'),
sendemailaddr: Y.one('input[name=instructorchoicesendemailaddr]'),
acceptgrades: Y.one('input[name=instructorchoiceacceptgrades]')
};
-
- //Store a copy of user entered privacy settings as we may overwrite them
+
+ // Store a copy of user entered privacy settings as we may overwrite them
if(!this.userPrivacySettings){
this.userPrivacySettings = {};
}
if(privacyControls.hasOwnProperty(setting)){
control = privacyControls[setting];
- //Only store the value if it hasn't been forced by the editor
+ // Only store the value if it hasn't been forced by the editor
if(!control.get('disabled')){
this.userPrivacySettings[setting] = control.get('checked');
}
}
}
-
- //Update UI based on course / site tool configuration
+
+ // Update UI based on course / site tool configuration
for(setting in privacyControls){
if(privacyControls.hasOwnProperty(setting)){
var settingValue = toolInfo[setting];
control = privacyControls[setting];
-
+
if(settingValue == M.mod_lti.LTI_SETTING_NEVER){
control.set('disabled', true);
control.set('checked', false);
control.set('title', M.str.lti.forced_help);
} else if(settingValue == M.mod_lti.LTI_SETTING_DELEGATE){
control.set('disabled', false);
-
- //Get the value out of the stored copy
- control.set('checked', this.userPrivacySettings[setting]);
+
+ // Get the value out of the stored copy
+ control.set('checked', this.userPrivacySettings[setting]);
control.set('title', '');
}
}
var typeSelector = Y.one('#id_typeid');
if(typeSelector.one('option[courseTool=1]')){
- //One ore more course tools exist
+ // One ore more course tools exist
var globalGroup = Y.Node.create('<optgroup />')
.set('id', 'global_tool_group')
var lti_edit_tool_type = Y.one('#lti_edit_tool_type');
var lti_delete_tool_type = Y.one('#lti_delete_tool_type');
- //Make the edit / delete icons look enabled / disabled.
- //Does not work in older browsers, but alerts will catch those cases.
+ // Make the edit / delete icons look enabled / disabled.
+ // Does not work in older browsers, but alerts will catch those cases.
if(this.getSelectedToolTypeOption().getAttribute('editable')){
lti_edit_tool_type.setStyle('opacity', '1');
lti_delete_tool_type.setStyle('opacity', '1');
typeSelector.append(option);
}
- //Adding the new tool may affect which tool gets matched automatically
+ // Adding the new tool may affect which tool gets matched automatically
this.clearToolCache();
this.updateAutomaticToolMatch(Y.one('#id_toolurl'));
this.updateAutomaticToolMatch(Y.one('#id_securetoolurl'));
option.set('text', toolType.name)
.set('domain', toolType.tooldomain);
- //Editing the tool may affect which tool gets matched automatically
+ // Editing the tool may affect which tool gets matched automatically
this.clearToolCache();
this.updateAutomaticToolMatch(Y.one('#id_toolurl'));
this.updateAutomaticToolMatch(Y.one('#id_securetoolurl'));
success: function(){
self.getSelectedToolTypeOption().remove();
- //Editing the tool may affect which tool gets matched automatically
+ // Editing the tool may affect which tool gets matched automatically
self.clearToolCache();
self.updateAutomaticToolMatch(Y.one('#id_toolurl'));
self.updateAutomaticToolMatch(Y.one('#id_securetoolurl'));
findToolByUrl: function(url, toolId, callback){
var self = this;
-
+
Y.io(self.settings.ajax_url, {
data: {action: 'find_tool_config',
course: self.settings.courseId,