moodle/mod/data/data.js
Adrian Greeve 173c6f2c8b MDL-7660 - mod_data: Changed the filepicker to filemanager for field elements.
This allows users to delete their files or pictures when editing their entries
which was previously unavailable.

Also the use of the filemanager allows for drag and drop to be active.
2013-01-04 12:17:47 +08:00

132 lines
4.3 KiB
JavaScript

/**
* Javascript to insert the field tags into the textarea.
* Used when editing a data template
*/
function insert_field_tags(selectlist) {
var value = selectlist.options[selectlist.selectedIndex].value;
var editorname = 'template';
if (typeof tinyMCE == 'undefined') {
var element = document.getElementsByName(editorname)[0];
// For inserting when in normal textareas
insertAtCursor(element, value);
} else {
tinyMCE.execInstanceCommand(editorname, 'mceInsertContent', false, value);
}
}
/**
* javascript for hiding/displaying advanced search form when viewing
*/
function showHideAdvSearch(checked) {
var divs = document.getElementsByTagName('div');
for(i=0;i<divs.length;i++) {
if(divs[i].id.match('data_adv_form')) {
if(checked) {
divs[i].style.display = 'inline';
}
else {
divs[i].style.display = 'none';
}
}
else if (divs[i].id.match('reg_search')) {
if (!checked) {
divs[i].style.display = 'inline';
}
else {
divs[i].style.display = 'none';
}
}
}
}
M.data_filepicker = {};
M.data_filepicker.callback = function(params) {
var html = '<a href="'+params['url']+'">'+params['file']+'</a>';
document.getElementById('file_info_'+params['client_id']).innerHTML = html;
};
/**
* Deprecated since 2.5, will be removed in 2.7.
* Please don't use this function.
* Use the filemanager instead. (/lib/form/filemanager.js)
* This fucntion is called for each file picker on page.
*/
M.data_filepicker.init = function(Y, options) {
if (M.cfg.developerdebug) {
Y.log("You are using a deprecated function call (M.data_filepicker). Please look at rewriting your call to use M.form_filemanager");
}
options.formcallback = M.data_filepicker.callback;
if (!M.core_filepicker.instances[options.client_id]) {
M.core_filepicker.init(Y, options);
}
Y.on('click', function(e, client_id) {
e.preventDefault();
M.core_filepicker.instances[client_id].show();
}, '#filepicker-button-'+options.client_id, null, options.client_id);
var item = document.getElementById('nonjs-filepicker-'+options.client_id);
if (item) {
item.parentNode.removeChild(item);
}
item = document.getElementById('filepicker-wrapper-'+options.client_id);
if (item) {
item.style.display = '';
}
};
M.data_urlpicker = {};
M.data_urlpicker.init = function(Y, options) {
options.formcallback = M.data_urlpicker.callback;
if (!M.core_filepicker.instances[options.client_id]) {
M.core_filepicker.init(Y, options);
}
Y.on('click', function(e, client_id) {
e.preventDefault();
M.core_filepicker.instances[client_id].show();
}, '#filepicker-button-'+options.client_id, null, options.client_id);
};
M.data_urlpicker.callback = function (params) {
document.getElementById('field_url_'+params.client_id).value = params.url;
};
M.data_imagepicker = {};
M.data_imagepicker.callback = function(params) {
var html = '<a href="'+params['url']+'"><img src="'+params['url']+'" /> '+params['file']+'</a>';
document.getElementById('file_info_'+params['client_id']).innerHTML = html;
};
/**
* Deprecated since 2.5, will be removed in 2.7.
* Please don't use this function.
* Use the filemanager instead. (/lib/form/filemanager.js)
* This fucntion is called for each file picker on page.
*/
M.data_imagepicker.init = function(Y, options) {
if (M.cfg.developerdebug) {
Y.log("You are using a deprecated function call (M.data_imagepicker). Please look at rewriting your call to use M.form_filemanager");
}
options.formcallback = M.data_imagepicker.callback;
if (!M.core_filepicker.instances[options.client_id]) {
M.core_filepicker.init(Y, options);
}
Y.on('click', function(e, client_id) {
e.preventDefault();
M.core_filepicker.instances[client_id].show();
}, '#filepicker-button-'+options.client_id, null, options.client_id);
var item = document.getElementById('nonjs-filepicker-'+options.client_id);
if (item) {
item.parentNode.removeChild(item);
}
item = document.getElementById('filepicker-wrapper-'+options.client_id);
if (item) {
item.style.display = '';
}
};