| 1 | efrain | 1 | var COMMENTMENUNAME = "Commentmenu",
 | 
        
           |  |  | 2 |     COMMENTMENU;
 | 
        
           |  |  | 3 |   | 
        
           |  |  | 4 | /**
 | 
        
           |  |  | 5 |  * Provides an in browser PDF editor.
 | 
        
           |  |  | 6 |  *
 | 
        
           |  |  | 7 |  * @module moodle-assignfeedback_editpdf-editor
 | 
        
           |  |  | 8 |  */
 | 
        
           |  |  | 9 |   | 
        
           |  |  | 10 | /**
 | 
        
           |  |  | 11 |  * COMMENTMENU
 | 
        
           |  |  | 12 |  * This is a drop down list of comment context functions.
 | 
        
           |  |  | 13 |  *
 | 
        
           |  |  | 14 |  * @namespace M.assignfeedback_editpdf
 | 
        
           |  |  | 15 |  * @class commentmenu
 | 
        
           |  |  | 16 |  * @constructor
 | 
        
           |  |  | 17 |  * @extends M.assignfeedback_editpdf.dropdown
 | 
        
           |  |  | 18 |  */
 | 
        
           |  |  | 19 | COMMENTMENU = function(config) {
 | 
        
           |  |  | 20 |     COMMENTMENU.superclass.constructor.apply(this, [config]);
 | 
        
           |  |  | 21 | };
 | 
        
           |  |  | 22 |   | 
        
           |  |  | 23 | Y.extend(COMMENTMENU, M.assignfeedback_editpdf.dropdown, {
 | 
        
           |  |  | 24 |   | 
        
           |  |  | 25 |     /**
 | 
        
           |  |  | 26 |      * Initialise the menu.
 | 
        
           |  |  | 27 |      *
 | 
        
           |  |  | 28 |      * @method initializer
 | 
        
           |  |  | 29 |      * @return void
 | 
        
           |  |  | 30 |      */
 | 
        
           |  |  | 31 |     initializer: function(config) {
 | 
        
           |  |  | 32 |         var commentlinks,
 | 
        
           |  |  | 33 |             link,
 | 
        
           |  |  | 34 |             body,
 | 
        
           |  |  | 35 |             comment;
 | 
        
           |  |  | 36 |   | 
        
           |  |  | 37 |         comment = this.get('comment');
 | 
        
           |  |  | 38 |         // Build the list of menu items.
 | 
        
           |  |  | 39 |         commentlinks = Y.Node.create('<ul role="menu" class="assignfeedback_editpdf_menu"/>');
 | 
        
           |  |  | 40 |   | 
        
           |  |  | 41 |         link = Y.Node.create('<li><a tabindex="-1" href="#">' +
 | 
        
           |  |  | 42 |                M.util.get_string('addtoquicklist', 'assignfeedback_editpdf') +
 | 
        
           |  |  | 43 |                '</a></li>');
 | 
        
           |  |  | 44 |         link.on('click', comment.add_to_quicklist, comment);
 | 
        
           |  |  | 45 |         link.on('key', comment.add_to_quicklist, 'enter,space', comment);
 | 
        
           |  |  | 46 |   | 
        
           |  |  | 47 |         commentlinks.append(link);
 | 
        
           |  |  | 48 |   | 
        
           |  |  | 49 |         link = Y.Node.create('<li><a tabindex="-1" href="#">' +
 | 
        
           |  |  | 50 |                M.util.get_string('deletecomment', 'assignfeedback_editpdf') +
 | 
        
           |  |  | 51 |                '</a></li>');
 | 
        
           |  |  | 52 |         link.on('click', function(e) {
 | 
        
           |  |  | 53 |             e.preventDefault();
 | 
        
           |  |  | 54 |             this.menu.hide();
 | 
        
           |  |  | 55 |             this.remove();
 | 
        
           |  |  | 56 |         }, comment);
 | 
        
           |  |  | 57 |   | 
        
           |  |  | 58 |         link.on('key', function() {
 | 
        
           |  |  | 59 |             comment.menu.hide();
 | 
        
           |  |  | 60 |             comment.remove();
 | 
        
           |  |  | 61 |         }, 'enter,space', comment);
 | 
        
           |  |  | 62 |   | 
        
           |  |  | 63 |         commentlinks.append(link);
 | 
        
           |  |  | 64 |   | 
        
           |  |  | 65 |         link = Y.Node.create('<li><hr/></li>');
 | 
        
           |  |  | 66 |         commentlinks.append(link);
 | 
        
           |  |  | 67 |   | 
        
           |  |  | 68 |         // Set the accessible header text.
 | 
        
           |  |  | 69 |         this.set('headerText', M.util.get_string('commentcontextmenu', 'assignfeedback_editpdf'));
 | 
        
           |  |  | 70 |   | 
        
           |  |  | 71 |         body = Y.Node.create('<div/>');
 | 
        
           |  |  | 72 |   | 
        
           |  |  | 73 |         // Set the body content.
 | 
        
           |  |  | 74 |         body.append(commentlinks);
 | 
        
           |  |  | 75 |         this.set('bodyContent', body);
 | 
        
           |  |  | 76 |   | 
        
           |  |  | 77 |         COMMENTMENU.superclass.initializer.call(this, config);
 | 
        
           |  |  | 78 |     },
 | 
        
           |  |  | 79 |   | 
        
           |  |  | 80 |     /**
 | 
        
           |  |  | 81 |      * Show the menu.
 | 
        
           |  |  | 82 |      *
 | 
        
           |  |  | 83 |      * @method show
 | 
        
           |  |  | 84 |      * @return void
 | 
        
           |  |  | 85 |      */
 | 
        
           |  |  | 86 |     show: function() {
 | 
        
           |  |  | 87 |         var commentlinks = this.get('boundingBox').one('ul');
 | 
        
           |  |  | 88 |             commentlinks.all('.quicklist_comment').remove(true);
 | 
        
           |  |  | 89 |         var comment = this.get('comment');
 | 
        
           |  |  | 90 |   | 
        
           |  |  | 91 |         comment.deleteme = false; // Cancel the deleting of blank comments.
 | 
        
           |  |  | 92 |   | 
        
           |  |  | 93 |         // Now build the list of quicklist comments.
 | 
        
           |  |  | 94 |         Y.each(comment.editor.quicklist.comments, function(quickcomment) {
 | 
        
           |  |  | 95 |             var listitem = Y.Node.create('<li class="quicklist_comment"></li>'),
 | 
        
           |  |  | 96 |                 linkitem = Y.Node.create('<a href="#" tabindex="-1">' + quickcomment.rawtext + '</a>'),
 | 
        
           |  |  | 97 |                 deletelinkitem = Y.Node.create('<a href="#" tabindex="-1" class="delete_quicklist_comment">' +
 | 
        
           | 1441 | ariadna | 98 |                                                '<img class="icon" src="' + M.util.image_url('t/delete', 'core') + '" ' +
 | 
        
           | 1 | efrain | 99 |                                                'alt="' + M.util.get_string('deletecomment', 'assignfeedback_editpdf') + '"/>' +
 | 
        
           |  |  | 100 |                                                '</a>');
 | 
        
           |  |  | 101 |             linkitem.setAttribute('title', quickcomment.rawtext);
 | 
        
           |  |  | 102 |             listitem.append(linkitem);
 | 
        
           |  |  | 103 |             listitem.append(deletelinkitem);
 | 
        
           |  |  | 104 |   | 
        
           |  |  | 105 |             commentlinks.append(listitem);
 | 
        
           |  |  | 106 |   | 
        
           |  |  | 107 |             listitem.on('click', comment.set_from_quick_comment, comment, quickcomment);
 | 
        
           |  |  | 108 |             listitem.on('key', comment.set_from_quick_comment, 'space,enter', comment, quickcomment);
 | 
        
           |  |  | 109 |   | 
        
           |  |  | 110 |             deletelinkitem.on('click', comment.remove_from_quicklist, comment, quickcomment);
 | 
        
           |  |  | 111 |             deletelinkitem.on('key', comment.remove_from_quicklist, 'space,enter', comment, quickcomment);
 | 
        
           |  |  | 112 |         }, this);
 | 
        
           |  |  | 113 |   | 
        
           |  |  | 114 |         COMMENTMENU.superclass.show.call(this);
 | 
        
           |  |  | 115 |     }
 | 
        
           |  |  | 116 | }, {
 | 
        
           |  |  | 117 |     NAME: COMMENTMENUNAME,
 | 
        
           |  |  | 118 |     ATTRS: {
 | 
        
           |  |  | 119 |         /**
 | 
        
           |  |  | 120 |          * The comment this menu is attached to.
 | 
        
           |  |  | 121 |          *
 | 
        
           |  |  | 122 |          * @attribute comment
 | 
        
           |  |  | 123 |          * @type M.assignfeedback_editpdf.comment
 | 
        
           |  |  | 124 |          * @default null
 | 
        
           |  |  | 125 |          */
 | 
        
           |  |  | 126 |         comment: {
 | 
        
           |  |  | 127 |             value: null
 | 
        
           |  |  | 128 |         }
 | 
        
           |  |  | 129 |   | 
        
           |  |  | 130 |     }
 | 
        
           |  |  | 131 | });
 | 
        
           |  |  | 132 |   | 
        
           |  |  | 133 | M.assignfeedback_editpdf = M.assignfeedback_editpdf || {};
 | 
        
           |  |  | 134 | M.assignfeedback_editpdf.commentmenu = COMMENTMENU;
 |