102
102
* is available (or to explain why it is not available)
104
104
add_status_div: function() {
105
var coursecontents = document.getElementById(this.pagecontentid);
106
coursecontents = Y.one('#' + this.pagecontentid),
108
handlefile = (this.handlers.filehandlers.length > 0),
106
115
if (!coursecontents) {
110
var div = document.createElement('div');
111
div.id = 'dndupload-status';
112
div.style.opacity = 0.0;
113
coursecontents.insertBefore(div, coursecontents.firstChild);
119
div = Y.Node.create('<div id="dndupload-status"></div>').setStyle('opacity', '0.0');
120
coursecontents.insert(div, 0);
117
var handlefile = (this.handlers.filehandlers.length > 0);
118
var handletext = false;
119
var handlelink = false;
121
for (i=0; i<this.handlers.types.length; i++) {
122
for (i = 0; i < this.handlers.types.length; i++) {
122
123
switch (this.handlers.types[i].identifier) {
132
133
$msgident = 'dndworking';
142
143
div.setContent(M.util.get_string($msgident, 'moodle'));
145
styletop = div.getStyle('top') || '0px';
146
styletopunit = styletop.replace(/^\d+/, '');
147
styletop = parseInt(styletop.replace(/\D*$/, ''), 10);
144
149
var fadeanim = new Y.Anim({
145
150
node: '#dndupload-status',
153
top: (styletop - 30).toString() + styletopunit
158
top: styletop.toString() + styletopunit
227
232
types_includes: function(e, type) {
229
234
var types = e._event.dataTransfer.types;
235
type = type.toLowerCase();
230
236
for (i=0; i<types.length; i++) {
231
if (types[i] == type) {
237
if (!types.hasOwnProperty(i)) {
240
if (types[i].toLowerCase() === type) {
736
745
var result = JSON.parse(xhr.responseText);
738
747
if (result.error == 0) {
739
// All OK - update the dummy element
740
if (result.content) {
742
resel.indentdiv.innerHTML = '<div class="activityinstance" ></div>' + result.content + result.commands;
745
resel.icon.src = result.icon;
746
resel.a.href = result.link;
747
resel.namespan.innerHTML = result.name;
749
if (!parseInt(result.visible, 10)) {
750
resel.a.className = 'dimmed';
753
if (result.groupingname) {
754
resel.groupingspan.innerHTML = '(' + result.groupingname + ')';
756
resel.div.removeChild(resel.groupingspan);
759
resel.div.removeChild(resel.progressouter);
760
resel.indentdiv.innerHTML += result.commands;
761
if (result.onclick) {
762
resel.a.onclick = result.onclick;
764
if (self.Y.UA.gecko > 0) {
765
// Fix a Firefox bug which makes sites with a '~' in their wwwroot
766
// log the user out when clicking on the link (before refreshing the page).
767
resel.div.innerHTML = unescape(resel.div.innerHTML);
748
// All OK - replace the dummy element.
749
resel.li.outerHTML = result.fullcontent;
750
if (self.Y.UA.gecko > 0) {
751
// Fix a Firefox bug which makes sites with a '~' in their wwwroot
752
// log the user out when clicking on the link (before refreshing the page).
753
resel.li.outerHTML = unescape(resel.li.outerHTML);
770
resel.li.id = result.elementid;
771
755
self.add_editing(result.elementid);
773
757
// Error - remove the dummy element
986
970
var result = JSON.parse(xhr.responseText);
988
972
if (result.error == 0) {
989
// All OK - update the dummy element
990
if (result.content) {
992
resel.indentdiv.innerHTML = '<div class="activityinstance" ></div>' + result.content + result.commands;
995
resel.icon.src = result.icon;
996
resel.a.href = result.link;
997
resel.namespan.innerHTML = result.name;
999
if (!parseInt(result.visible, 10)) {
1000
resel.a.className = 'dimmed';
1003
if (result.groupingname) {
1004
resel.groupingspan.innerHTML = '(' + result.groupingname + ')';
1006
resel.div.removeChild(resel.groupingspan);
1009
resel.div.removeChild(resel.progressouter);
1010
resel.div.innerHTML += result.commands;
1011
if (result.onclick) {
1012
resel.a.onclick = result.onclick;
1014
if (self.Y.UA.gecko > 0) {
1015
// Fix a Firefox bug which makes sites with a '~' in their wwwroot
1016
// log the user out when clicking on the link (before refreshing the page).
1017
resel.div.innerHTML = unescape(resel.div.innerHTML);
973
// All OK - replace the dummy element.
974
resel.li.outerHTML = result.fullcontent;
975
if (self.Y.UA.gecko > 0) {
976
// Fix a Firefox bug which makes sites with a '~' in their wwwroot
977
// log the user out when clicking on the link (before refreshing the page).
978
resel.li.outerHTML = unescape(resel.li.outerHTML);
1020
resel.li.id = result.elementid;
1021
self.add_editing(result.elementid, sectionnumber);
980
self.add_editing(result.elementid);
1023
982
// Error - remove the dummy element
1024
983
resel.parent.removeChild(resel.li);
1053
1012
* @param sectionnumber the number of the selected course section
1055
1014
add_editing: function(elementid) {
1015
var node = Y.one('#' + elementid);
1056
1016
YUI().use('moodle-course-coursebase', function(Y) {
1057
M.course.coursebase.invoke_function('setup_for_resource', '#' + elementid);
1017
Y.log("Invoking setup_for_resource", 'debug', 'coursedndupload');
1018
M.course.coursebase.invoke_function('setup_for_resource', node);
1020
if (M.core.actionmenu && M.core.actionmenu.newDOMNode) {
1021
M.core.actionmenu.newDOMNode(node);