MDL-28019 Added plugin tinymce_managefiles
[moodle.git] / lib / editor / tinymce / plugins / managefiles / module.js
1 M.tinymce_managefiles = M.tinymce_managefiles || {}
2 M.tinymce_managefiles.analysefiles = function(Y) {
3     var form = Y.one('#tinymce_managefiles_manageform'),
4         usedfiles, missingfiles = '', i;
5     if (!form || !window.parent || !window.parent.tinyMCE.activeEditor) {
6         return;
7     }
8     usedfiles = window.parent.tinyMCE.activeEditor.execCommand('mceManageFilesUsedFiles')
9     var delfilesfieldset = form.one('#deletefiles,#id_deletefiles')
10     for (i in usedfiles) {
11         if (!delfilesfieldset.one('.felement.fcheckbox input[name="deletefile[' + usedfiles[i] + ']"]')) {
12             missingfiles += '<li>' + usedfiles[i] + '</li>';
13         }
14     }
15     if (missingfiles !== '') {
16         form.addClass('hasmissingfiles')
17         form.one('.managefilesstatus').setContent(M.str.tinymce_managefiles.hasmissingfiles + ' <ul>' + missingfiles + '</ul>').addClass('error');
18     }
19     delfilesfieldset.all('.felement.fcheckbox').each(function(el) {
20         var chb = el.one('input[type=checkbox]'),
21             match = /^deletefile\[(.*)\]$/.exec(chb.get('name'));
22         if (match && usedfiles.indexOf(match[1]) === -1) {
23             el.addClass('isunused')
24             form.addClass('hasunusedfiles')
25         }
26     });
27     if (missingfiles === '' && !form.hasClass('hasunusedfiles')) {
28         form.one('.managefilesstatus').setContent(M.str.tinymce_managefiles.allfilesok);
29     }
30 }