AutorÃa | Ultima modificación | Ver Log |
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Provides an in browser PDF editor.
*
* @module moodle-assignfeedback_editpdf-editor
*/
/**
* Class representing a users list of quick comments.
*
* @namespace M.assignfeedback_editpdf
* @class quickcommentlist
*/
var QUICKCOMMENTLIST = function(editor) {
/**
* Reference to M.assignfeedback_editpdf.editor.
* @property editor
* @type M.assignfeedback_editpdf.editor
* @public
*/
this.editor = editor;
/**
* Array of Comments
* @property shapes
* @type M.assignfeedback_editpdf.quickcomment[]
* @public
*/
this.comments = [];
/**
* Add a comment to the users quicklist.
*
* @protected
* @method add
*/
this.add = function(comment) {
var ajaxurl = AJAXBASE,
config;
// Do not save empty comments.
if (comment.rawtext === '') {
return;
}
config = {
method: 'post',
context: this,
sync: false,
data: {
'sesskey': M.cfg.sesskey,
'action': 'addtoquicklist',
'userid': this.editor.get('userid'),
'commenttext': comment.rawtext,
'width': comment.width,
'colour': comment.colour,
'attemptnumber': this.editor.get('attemptnumber'),
'assignmentid': this.editor.get('assignmentid')
},
on: {
success: function(tid, response) {
var jsondata, quickcomment;
try {
jsondata = Y.JSON.parse(response.responseText);
if (jsondata.error) {
return new M.core.ajaxException(jsondata);
} else {
quickcomment = new M.assignfeedback_editpdf.quickcomment(jsondata.id,
jsondata.rawtext,
jsondata.width,
jsondata.colour);
this.comments.push(quickcomment);
this.comments.sort(function(a, b) {
return a.rawtext.localeCompare(b.rawtext);
});
}
} catch (e) {
return new M.core.exception(e);
}
},
failure: function(tid, response) {
return M.core.exception(response.responseText);
}
}
};
Y.io(ajaxurl, config);
};
/**
* Remove a comment from the users quicklist.
*
* @public
* @method remove
*/
this.remove = function(comment) {
var ajaxurl = AJAXBASE,
config;
// Should not happen.
if (!comment) {
return;
}
config = {
method: 'post',
context: this,
sync: false,
data: {
'sesskey': M.cfg.sesskey,
'action': 'removefromquicklist',
'userid': this.editor.get('userid'),
'commentid': comment.id,
'attemptnumber': this.editor.get('attemptnumber'),
'assignmentid': this.editor.get('assignmentid')
},
on: {
success: function() {
var i;
// Find and remove the comment from the quicklist.
i = this.comments.indexOf(comment);
if (i >= 0) {
this.comments.splice(i, 1);
}
},
failure: function(tid, response) {
return M.core.exception(response.responseText);
}
}
};
Y.io(ajaxurl, config);
};
/**
* Load the users quick comments list.
*
* @protected
* @method load_quicklist
*/
this.load = function() {
var ajaxurl = AJAXBASE,
config;
config = {
method: 'get',
context: this,
sync: false,
data: {
'sesskey': M.cfg.sesskey,
'action': 'loadquicklist',
'userid': this.editor.get('userid'),
'attemptnumber': this.editor.get('attemptnumber'),
'assignmentid': this.editor.get('assignmentid')
},
on: {
success: function(tid, response) {
var jsondata;
try {
jsondata = Y.JSON.parse(response.responseText);
if (jsondata.error) {
return new M.core.ajaxException(jsondata);
} else {
Y.each(jsondata, function(comment) {
var quickcomment = new M.assignfeedback_editpdf.quickcomment(comment.id,
comment.rawtext,
comment.width,
comment.colour);
this.comments.push(quickcomment);
}, this);
this.comments.sort(function(a, b) {
return a.rawtext.localeCompare(b.rawtext);
});
}
} catch (e) {
return new M.core.exception(e);
}
},
failure: function(tid, response) {
return M.core.exception(response.responseText);
}
}
};
Y.io(ajaxurl, config);
};
};
M.assignfeedback_editpdf = M.assignfeedback_editpdf || {};
M.assignfeedback_editpdf.quickcommentlist = QUICKCOMMENTLIST;