Permalink
Browse files

MDL-42482 assignfeedback_editpdf - prevent blank comments from disapp…

…earing when the menu is opened
  • Loading branch information...
1 parent 114913e commit 6e67d80d50f017e70022e0393a2f3c2e8a655522 @davosmith davosmith committed Oct 22, 2013
View
2 .../build/moodle-assignfeedback_editpdf-editor/moodle-assignfeedback_editpdf-editor-debug.js
@@ -1926,6 +1926,8 @@ Y.extend(COMMENTMENU, M.assignfeedback_editpdf.dropdown, {
commentlinks.all('.quicklist_comment').remove(true),
comment = this.get('comment');
+ comment.deleteme = false; // Cancel the deleting of blank comments.
+
// Now build the list of quicklist comments.
Y.each(comment.editor.quicklist.comments, function(quickcomment) {
var listitem = Y.Node.create('<li class="quicklist_comment"></li>'),
View
8 ...ui/build/moodle-assignfeedback_editpdf-editor/moodle-assignfeedback_editpdf-editor-min.js
@@ -1,7 +1,7 @@
YUI.add("moodle-assignfeedback_editpdf-editor",function(e,t){var n=M.cfg.wwwroot+"/mod/assign/feedback/editpdf/ajax.php",r={DIALOGUE:"assignfeedback_editpdf_widget"},s={PREVIOUSBUTTON:"."+r.DIALOGUE+" .navigate-previous-button",NEXTBUTTON:"."+r.DIALOGUE+" .navigate-next-button",SEARCHCOMMENTSBUTTON:"."+r.DIALOGUE+" .searchcommentsbutton",SEARCHFILTER:".assignfeedback_editpdf_commentsearch input",SEARCHCOMMENTSLIST:".assignfeedback_editpdf_commentsearch ul",PAGESELECT:"."+r.DIALOGUE+" .navigate-page-select",LOADINGICON:"."+r.DIALOGUE+" .loading",DRAWINGREGION:"."+r.DIALOGUE+" .drawingregion",DRAWINGCANVAS:"."+r.DIALOGUE+" .drawingcanvas",SAVE:"."+r.DIALOGUE+" .savebutton",COMMENTCOLOURBUTTON:"."+r.DIALOGUE+" .commentcolourbutton",COMMENTMENU:" .commentdrawable a",ANNOTATIONCOLOURBUTTON:"."+r.DIALOGUE+" .annotationcolourbutton",DELETEANNOTATIONBUTTON:"."+r.DIALOGUE+" .deleteannotationbutton",UNSAVEDCHANGESDIV:".assignfeedback_editpdf_unsavedchanges",STAMPSBUTTON:"."+r.DIALOGUE+" .currentstampbutton",DIALOGUE:"."+r.DIALOGUE},o="rgba(200, 200, 255, 0.9)",u="rgba(200, 200, 255, 0.5)",a={white:"rgb(255,255,255)",yellow:"rgb(255,255,176)",red:"rgb(255,176,176)",green:"rgb(176,255,176)",blue:"rgb(208,208,255)",clear:"rgba(255,255,255, 0)"},f={white:"rgb(255,255,255)",yellow:"rgb(255,255,0)",red:"rgb(255,0,0)",green:"rgb(0,255,0)",blue:"rgb(0,0,255)",black:"rgb(0,0,0)"},l=300,c={comment:"."+r.DIALOGUE+" .commentbutton",pen:"."+r.DIALOGUE+" .penbutton",line:"."+r.DIALOGUE+" .linebutton",rectangle:"."+r.DIALOGUE+" .rectanglebutton",oval:"."+r.DIALOGUE+" .ovalbutton",stamp:"."+r.DIALOGUE+" .stampbutton",select:"."+r.DIALOGUE+" .selectbutton",highlight:"."+r.DIALOGUE+" .highlightbutton"},h=4;POINT=function(e,t){this.x=parseInt(e,10),this.y=parseInt(t,10),this.clip=function(e){return this.x<e.x&&(this.x=e.x),this.x>e.x+e.width&&(this.x=e.x+e.width),this.y<e.y&&(this.y=e.y),this.y>e.y+e.height&&(this.y=e.y+e.height),this}},M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.point=POINT,RECT=function(e,t,n,r){this.x=e,this.y=t,this.width=n,this.height=r,this.bound=function(e){var t=0,n=0,r=0,i=0,s=0,o;for(s=0;s<e.length;s++){o=e[s];if(o.x<t||s===0)t=o.x;if(o.x>n||s===0)n=o.x;if(o.y<r||s===0)r=o.y;if(o.y>i||s===0)i=o.y}return this.x=t,this.y=r,this.width=n-t,this.height=i-r,this}},M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.rect=RECT,EDIT=function(){this.start=!1,this.end=!1,this.starttime=0,this.annotationstart=!1,this.tool="comment",this.commentcolour="yellow",this.annotationcolour="red",this.stamp="",this.path=[]},M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.edit=EDIT,DRAWABLE=function(e){this.editor=e,this.shapes=[],this.nodes=[],this.erase=function(){if(this.shapes)while(this.shapes.length>0)this.editor.graphic.removeShape(this.shapes.pop());if(this.nodes)while(this.nodes.length>0)this.nodes.pop().remove()}},M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.drawable=DRAWABLE,ANNOTATION=function(e){ANNOTATION.superclass.constructor.apply(this,[e])},ANNOTATION.NAME="annotation",ANNOTATION.ATTRS={},e.extend(ANNOTATION,e.Base,{editor:null,gradeid:0,pageno:0,x:0,y:0,endx:0,endy:0,path:"",type:"rect",colour:"red",drawable:!1,initializer:function(e){this.editor=e.editor||null,this.gradeid=parseInt(e.gradeid,10)||0,this.pageno=parseInt(e.pageno,10)||0,this.x=parseInt(e.x,10)||0,this.y=parseInt(e.y,10)||0,this.endx=parseInt(e.endx,10)||0,this.endy=parseInt(e.endy,10)||0,this.path=e.path||"",this.type=e.type||"rect",this.colour=e.colour||"red",this.drawable=!1},clean:function(){return{gradeid:this.gradeid,x:parseInt(this.x,10),y:parseInt(this.y,10),endx:parseInt(this.endx,10),endy:parseInt(this.endy,10),type:this.type,path:this.path,pageno:this.pageno,colour:this.colour}},draw_highlight:function(){var t,n=e.one(s.DRAWINGREGION),r=e.one(s.DRAWINGCANVAS).getXY(),i;if(this.editor.currentannotation===this){t=new M.assignfeedback_editpdf.rect,t.bound([new M.assignfeedback_editpdf.point(this.x,this.y),new M.assignfeedback_editpdf.point(this.endx,this.endy)]),i=this.editor.graphic.addShape({type:e.Rect,width:t.width,height:t.height,stroke:{weight:h,color:o},fill:{color:u},x:t.x,y:t.y}),this.drawable.shapes.push(i);var a=e.Node.create('<img src="'+M.util.image_url("trash","assignfeedback_editpdf")+'"/>'),f=e.Node.create('<a href="#" role="button"></a>');a.setAttrs({alt:M.util.get_string("deleteannotation","assignfeedback_editpdf")}),a.setStyles({backgroundColor:"white"}),f.addClass("deleteannotationbutton"),f.append(a),n.append(f),f.setData("annotation",this),f.setStyle("zIndex","200"),f.on("click",this.remove,this),f.on("key",this.remove,"space,enter",this),f.setX(r[0]+t.x+t.width-18),f.setY(r[1]+t.y+6),this.drawable.nodes.push(f)}return this.drawable},draw:function(){return this.draw_highlight(),this.drawable},remove:function(e){var t;e.preventDefault(),t=this.editor.pages[this.editor.currentpage].annotations;for(i=0;i<t.length;i++)if(t[i]===this){t.splice(i,1),this.drawable&&this.drawable.erase(),this.editor.currentannotation=!1,this.editor.save_current_page();return}},move:function(t,n){var r=t-this.x,i=n-this.y,s,o,u,a,f;this.x+=r,this.y+=i,this.endx+=r,this.endy+=i,this.path&&(s=[],o=this.path.split(":"),e.each(o,function(e){u=e.split(","),a=parseInt(u[0],10),f=parseInt(u[1],10),s.push(a+r+","+(f+i))}),this.path=s.join(":")),this.drawable&&this.drawable.erase(),this.editor.drawables.push(this.draw())},draw_current_edit:function(e){var t=e&&!1;return t},init_from_edit:function(e){var t=new M.assignfeedback_editpdf.rect;t.bound([e.start,e.end]),this.gradeid=this.editor.get("gradeid"),this.pageno=this.editor.currentpage,this.x=t.x,this.y=t.y,this.endx=t.x+t.width,this.endy=t.y+t.height,this.colour=e.annotationcolour,this.path=""}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.annotation=ANNOTATION,ANNOTATIONLINE=function(e){ANNOTATIONLINE.superclass.constructor
.apply(this,[e])},ANNOTATIONLINE.NAME="annotationline",ANNOTATIONLINE.ATTRS={},e.extend(ANNOTATIONLINE,M.assignfeedback_editpdf.annotation,{draw:function(){var t,n;return t=new M.assignfeedback_editpdf.drawable(this.editor),n=this.editor.graphic.addShape({type:e.Path,fill:!1,stroke:{weight:h,color:f[this.colour]}}),n.moveTo(this.x,this.y),n.lineTo(this.endx,this.endy),n.end(),t.shapes.push(n),this.drawable=t,ANNOTATIONLINE.superclass.draw.apply(this)},draw_current_edit:function(t){var n=new M.assignfeedback_editpdf.drawable(this.editor),r;return r=this.editor.graphic.addShape({type:e.Path,fill:!1,stroke:{weight:h,color:f[t.annotationcolour]}}),r.moveTo(t.start.x,t.start.y),r.lineTo(t.end.x,t.end.y),r.end(),n.shapes.push(r),n},init_from_edit:function(e){this.gradeid=this.editor.get("gradeid"),this.pageno=this.editor.currentpage,this.x=e.start.x,this.y=e.start.y,this.endx=e.end.x,this.endy=e.end.y,this.colour=e.annotationcolour,this.path=""}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.annotationline=ANNOTATIONLINE,ANNOTATIONRECTANGLE=function(e){ANNOTATIONRECTANGLE.superclass.constructor.apply(this,[e])},ANNOTATIONRECTANGLE.NAME="annotationrectangle",ANNOTATIONRECTANGLE.ATTRS={},e.extend(ANNOTATIONRECTANGLE,M.assignfeedback_editpdf.annotation,{draw:function(){var t,n;return t=new M.assignfeedback_editpdf.drawable(this.editor),bounds=new M.assignfeedback_editpdf.rect,bounds.bound([new M.assignfeedback_editpdf.point(this.x,this.y),new M.assignfeedback_editpdf.point(this.endx,this.endy)]),n=this.editor.graphic.addShape({type:e.Rect,width:bounds.width,height:bounds.height,stroke:{weight:h,color:f[this.colour]},x:bounds.x,y:bounds.y}),t.shapes.push(n),this.drawable=t,ANNOTATIONRECTANGLE.superclass.draw.apply(this)},draw_current_edit:function(t){var n=new M.assignfeedback_editpdf.drawable(this.editor),r,i;return i=new M.assignfeedback_editpdf.rect,i.bound([new M.assignfeedback_editpdf.point(t.start.x,t.start.y),new M.assignfeedback_editpdf.point(t.end.x,t.end.y)]),r=this.editor.graphic.addShape({type:e.Rect,width:i.width,height:i.height,stroke:{weight:h,color:f[t.annotationcolour]},x:i.x,y:i.y}),n.shapes.push(r),n}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.annotationrectangle=ANNOTATIONRECTANGLE,ANNOTATIONOVAL=function(e){ANNOTATIONOVAL.superclass.constructor.apply(this,[e])},ANNOTATIONOVAL.NAME="annotationoval",ANNOTATIONOVAL.ATTRS={},e.extend(ANNOTATIONOVAL,M.assignfeedback_editpdf.annotation,{draw:function(){var t,n;return t=new M.assignfeedback_editpdf.drawable(this.editor),bounds=new M.assignfeedback_editpdf.rect,bounds.bound([new M.assignfeedback_editpdf.point(this.x,this.y),new M.assignfeedback_editpdf.point(this.endx,this.endy)]),n=this.editor.graphic.addShape({type:e.Ellipse,width:bounds.width,height:bounds.height,stroke:{weight:h,color:f[this.colour]},x:bounds.x,y:bounds.y}),t.shapes.push(n),this.drawable=t,ANNOTATIONOVAL.superclass.draw.apply(this)},draw_current_edit:function(t){var n=new M.assignfeedback_editpdf.drawable(this.editor),r,i;return i=new M.assignfeedback_editpdf.rect,i.bound([new M.assignfeedback_editpdf.point(t.start.x,t.start.y),new M.assignfeedback_editpdf.point(t.end.x,t.end.y)]),r=this.editor.graphic.addShape({type:e.Ellipse,width:i.width,height:i.height,stroke:{weight:h,color:f[t.annotationcolour]},x:i.x,y:i.y}),n.shapes.push(r),n}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.annotationoval=ANNOTATIONOVAL,ANNOTATIONPEN=function(e){ANNOTATIONPEN.superclass.constructor.apply(this,[e])},ANNOTATIONPEN.NAME="annotationpen",ANNOTATIONPEN.ATTRS={},e.extend(ANNOTATIONPEN,M.assignfeedback_editpdf.annotation,{draw:function(){var t,n,r,i,s;return t=new M.assignfeedback_editpdf.drawable(this.editor),n=this.editor.graphic.addShape({type:e.Path,fill:!1,stroke:{weight:h,color:f[this.colour]}}),r=!0,i=this.path.split(":"),e.each(i,function(e){s=e.split(","),r?(n.moveTo(s[0],s[1]),r=!1):n.lineTo(s[0],s[1])},this),n.end(),t.shapes.push(n),this.drawable=t,ANNOTATIONPEN.superclass.draw.apply(this)},draw_current_edit:function(t){var n=new M.assignfeedback_editpdf.drawable(this.editor),r,i;return r=this.editor.graphic.addShape({type:e.Path,fill:!1,stroke:{weight:h,color:f[t.annotationcolour]}}),i=!0,e.each(t.path,function(e){i?(r.moveTo(e.x,e.y),i=!1):r.lineTo(e.x,e.y)},this),r.end(),n.shapes.push(r),n},init_from_edit:function(e){var t=new M.assignfeedback_editpdf.rect,n=[],r=0;t.bound(e.path);for(r=0;r<e.path.length;r++)n.push(parseInt(e.path[r].x,10)+","+parseInt(e.path[r].y,10));this.gradeid=this.editor.get("gradeid"),this.pageno=this.editor.currentpage,this.x=t.x,this.y=t.y,this.endx=t.x+t.width,this.endy=t.y+t.height,this.colour=e.annotationcolour,this.path=n.join(":")}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.annotationpen=ANNOTATIONPEN,ANNOTATIONHIGHLIGHT=function(e){ANNOTATIONHIGHLIGHT.superclass.constructor.apply(this,[e])},ANNOTATIONHIGHLIGHT.NAME="annotationhighlight",ANNOTATIONHIGHLIGHT.ATTRS={},e.extend(ANNOTATIONHIGHLIGHT,M.assignfeedback_editpdf.annotation,{draw:function(){var t,n,r,i;return t=new M.assignfeedback_editpdf.drawable(this.editor),r=new M.assignfeedback_editpdf.rect,r.bound([new M.assignfeedback_editpdf.point(this.x,this.y),new M.assignfeedback_editpdf.point(this.endx,this.endy)]),i=f[this.colour],i=i.replace("rgb","rgba"),i=i.replace(")",",0.5)"),n=this.editor.graphic.addShape({type:e.Rect,width:r.width,height:r.height,stroke:!1,fill:{color:i},x:r.x,y:r.y}),t.shapes.push(n),this.drawable=t,ANNOTATIONHIGHLIGHT.superclass.draw.apply(this)},draw_current_edit:function(t){var n=new M.assignfeedback_editpdf.drawable(this.editor),r,i,s;return i=new M.assignfeedback_editpdf.rect,i.bound([new M.assignfeedback_editpdf.point(t.start.x,t.start.y),new M.assignfeedback_editpdf.point(t.end.x,t.end.y)]),s=f[t.annotationcolour],s=s.replace("rgb","rgba"),s=s.replace(")",",0.5)"),r=this.editor.graphic.addShape({type:e.Rect,width
:i.width,height:16,stroke:!1,fill:{color:s},x:i.x,y:t.start.y}),n.shapes.push(r),n},init_from_edit:function(e){var t=new M.assignfeedback_editpdf.rect;t.bound([e.start,e.end]),this.gradeid=this.editor.get("gradeid"),this.pageno=this.editor.currentpage,this.x=t.x,this.y=e.start.y,this.endx=t.x+t.width,this.endy=e.start.y+16,this.colour=e.annotationcolour,this.page=""}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.annotationhighlight=ANNOTATIONHIGHLIGHT,ANNOTATIONSTAMP=function(e){ANNOTATIONSTAMP.superclass.constructor.apply(this,[e])},ANNOTATIONSTAMP.NAME="annotationstamp",ANNOTATIONSTAMP.ATTRS={},e.extend(ANNOTATIONSTAMP,M.assignfeedback_editpdf.annotation,{draw:function(){var t=new M.assignfeedback_editpdf.drawable(this.editor),n=e.one(s.DRAWINGREGION),r,i;return i=this.editor.get_window_coordinates(new M.assignfeedback_editpdf.point(this.x,this.y)),r=e.Node.create("<div/>"),r.setStyles({display:"inline-block",backgroundImage:"url("+this.editor.get_stamp_image_url(this.path)+")",width:this.endx-this.x,height:this.endy-this.y,backgroundSize:"100% 100%",zIndex:50}),n.append(r),r.setX(i.x),r.setY(i.y),r.on("gesturemovestart",this.editor.edit_start,null,this.editor),r.on("gesturemove",this.editor.edit_move,null,this.editor),r.on("gesturemoveend",this.editor.edit_end,null,this.editor),t.nodes.push(r),this.drawable=t,ANNOTATIONSTAMP.superclass.draw.apply(this)},draw_current_edit:function(t){var n=new M.assignfeedback_editpdf.rect,r=new M.assignfeedback_editpdf.drawable(this.editor),i=e.one(s.DRAWINGREGION),o,u;return n.bound([t.start,t.end]),u=this.editor.get_window_coordinates(new M.assignfeedback_editpdf.point(n.x,n.y)),o=e.Node.create("<div/>"),o.setStyles({display:"inline-block",backgroundImage:"url("+this.editor.get_stamp_image_url(t.stamp)+")",width:n.width,height:n.height,backgroundSize:"100% 100%",zIndex:50}),i.append(o),o.setX(u.x),o.setY(u.y),r.nodes.push(o),r},init_from_edit:function(e){var t=new M.assignfeedback_editpdf.rect;t.bound([e.start,e.end]),t.width<40&&(t.width=40),t.height<40&&(t.height=40),this.gradeid=this.editor.get("gradeid"),this.pageno=this.editor.currentpage,this.x=t.x,this.y=t.y,this.endx=t.x+t.width,this.endy=t.y+t.height,this.colour=e.annotationcolour,this.path=e.stamp},move:function(e,t){var n=e-this.x,r=t-this.y;this.x+=n,this.y+=r,this.endx+=n,this.endy+=r,this.drawable&&this.drawable.erase(),this.editor.drawables.push(this.draw())}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.annotationstamp=ANNOTATIONSTAMP;var p="Dropdown menu",d;d=function(e){e.draggable=!1,e.centered=!1,e.width="auto",e.lightbox=!1,e.visible=!1,e.zIndex=100,e.footerContent="",d.superclass.constructor.apply(this,[e])},e.extend(d,M.core.dialogue,{initializer:function(t){var n,r,i,s;d.superclass.initializer.call(this,t),s=this.get("boundingBox"),s.addClass("assignfeedback_editpdf_dropdown"),n=this.get("buttonNode"),r=this.bodyNode,i=e.Node.create("<h3/>"),i.addClass("accesshide"),i.setHTML(this.get("headerText")),r.prepend(i),r.on("clickoutside",function(e){this.get("visible")&&e.target!==n&&e.target.ancestor()!==n&&(e.preventDefault(),this.hide())},this),n.on("click",function(e){e.preventDefault(),this.show()},this),n.on("key",this.show,"enter,space",this)},show:function(){var t=this.get("buttonNode");result=d.superclass.show.call(this),this.align(t,[e.WidgetPositionAlign.TL,e.WidgetPositionAlign.BL])}},{NAME:p,ATTRS:{headerText:{value:""},buttonNode:{value:null}}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.dropdown=d;var v="Colourpicker",m;m=function(e){m.superclass.constructor.apply(this,[e])},e.extend(m,M.assignfeedback_editpdf.dropdown,{initializer:function(t){var n=e.Node.create('<ul role="menu" class="assignfeedback_editpdf_menu"/>'),r;e.each(this.get("colours"),function(t,r){var i,s,o,u,a;o=M.util.get_string(r,"assignfeedback_editpdf"),a=this.get("iconprefix")+r,u=M.util.image_url(a,"assignfeedback_editpdf"),i=e.Node.create('<button><img alt="'+o+'" src="'+u+'"/></button>'),i.setAttribute("data-colour",r),i.setAttribute("data-rgb",t),i.setStyle("backgroundImage","none"),s=e.Node.create("<li/>"),s.append(i),n.append(s)},this),r=e.Node.create("<div/>"),n.delegate("click",this.callback_handler,"button",this),n.delegate("key",this.callback_handler,"down:13","button",this),this.set("headerText",M.util.get_string("colourpicker","assignfeedback_editpdf")),r.append(n),this.set("bodyContent",r),m.superclass.initializer.call(this,t)},callback_handler:function(t){t.preventDefault();var n=this.get("callback"),r=this.get("context"),i;this.hide(),i=e.bind(n,r,t),i()}},{NAME:v,ATTRS:{colours:{value:{}},callback:{value:null},context:{value:null},iconprefix:{value:"colour_"}}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.colourpicker=m;var g="Colourpicker",b;b=function(e){b.superclass.constructor.apply(this,[e])},e.extend(b,M.assignfeedback_editpdf.dropdown,{initializer:function(t){var n=e.Node.create('<ul role="menu" class="assignfeedback_editpdf_menu"/>');e.each(this.get("stamps"),function(t){var r,i,s;s=M.util.get_string("stamp","assignfeedback_editpdf"),r=e.Node.create('<button><img height="40" alt="'+s+'" src="'+t+'"/></button>'),r.setAttribute("data-stamp",t),r.setStyle("backgroundImage","none"),i=e.Node.create("<li/>"),i.append(r),n.append(i)},this),n.delegate("click",this.callback_handler,"button",this),n.delegate("key",this.callback_handler,"down:13","button",this),this.set("headerText",M.util.get_string("stamppicker","assignfeedback_editpdf")),this.set("bodyContent",n),b.superclass.initializer.call(this,t)},callback_handler:function(t){t.preventDefault();var n=this.get("callback"),r=this.get("context"),i;this.hide(),i=e.bind(n,r,t),i()}},{NAME:g,ATTRS:{stamps:{value:[]},callback:{value:null},context:{value:null}}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.stamppicker=b;var w="Commentmenu",E;E=function(e){E.superclass
-.constructor.apply(this,[e])},e.extend(E,M.assignfeedback_editpdf.dropdown,{initializer:function(t){var n,r,i,s;s=this.get("comment"),n=e.Node.create('<ul role="menu" class="assignfeedback_editpdf_menu"/>'),r=e.Node.create('<li><a tabindex="-1" href="#">'+M.util.get_string("addtoquicklist","assignfeedback_editpdf")+"</a></li>"),r.on("click",s.add_to_quicklist,s),r.on("key",s.add_to_quicklist,"enter,space",s),n.append(r),r=e.Node.create('<li><a tabindex="-1" href="#">'+M.util.get_string("deletecomment","assignfeedback_editpdf")+"</a></li>"),r.on("click",function(e){e.preventDefault(),this.menu.hide(),this.remove()},s),r.on("key",function(){s.menu.hide(),s.remove()},"enter,space",s),n.append(r),r=e.Node.create("<li><hr/></li>"),n.append(r),this.set("headerText",M.util.get_string("commentcontextmenu","assignfeedback_editpdf")),i=e.Node.create("<div/>"),i.append(n),this.set("bodyContent",i),E.superclass.initializer.call(this,t)},show:function(){var t=this.get("boundingBox").one("ul");t.all(".quicklist_comment").remove(!0),comment=this.get("comment"),e.each(comment.editor.quicklist.comments,function(n){var r=e.Node.create('<li class="quicklist_comment"></li>'),i=e.Node.create('<a href="#" tabindex="-1">'+n.rawtext+"</a>"),s=e.Node.create('<a href="#" tabindex="-1" class="delete_quicklist_comment"><img src="'+M.util.image_url("t/delete","core")+'" '+'alt="'+M.util.get_string("deletecomment","assignfeedback_editpdf")+'"/>'+"</a>");r.append(i),r.append(s),t.append(r),i.on("click",comment.set_from_quick_comment,comment,n),i.on("key",comment.set_from_quick_comment,"space,enter",comment,n),s.on("click",comment.remove_from_quicklist,comment,n),s.on("key",comment.remove_from_quicklist,"space,enter",comment,n)},this),E.superclass.show.call(this)}},{NAME:w,ATTRS:{comment:{value:null}}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.commentmenu=E;var S="commentsearch",T;T=function(e){e.draggable=!1,e.centered=!0,e.width="400px",e.lightbox=!0,e.visible=!1,e.headerContent=M.util.get_string("searchcomments","assignfeedback_editpdf"),e.zIndex=100,e.footerContent="",T.superclass.constructor.apply(this,[e])},e.extend(T,M.core.dialogue,{initializer:function(t){var n,r,i,s,o,u;u=this.get("boundingBox"),u.addClass("assignfeedback_editpdf_commentsearch"),n=this.get("editor"),r=e.Node.create("<div/>"),i=M.util.get_string("filter","assignfeedback_editpdf"),s=e.Node.create('<input type="text" size="20" placeholder="'+i+'"/>'),r.append(s),o=e.Node.create('<ul role="menu" class="assignfeedback_editpdf_menu"/>'),r.append(o),s.on("keyup",this.filter_search_comments,null,this),o.delegate("click",this.focus_on_comment,"a",this),o.delegate("key",this.focus_on_comment,"enter,space","a",this),this.set("bodyContent",r),T.superclass.initializer.call(this,t)},filter_search_comments:function(){var t,n,r;t=e.one(s.SEARCHFILTER),n=e.one(s.SEARCHCOMMENTSLIST),r=t.get("value"),n.all("li").each(function(e){e.get("text").indexOf(r)!==-1?e.show():e.hide()})},focus_on_comment:function(e){e.preventDefault();var t=e.target.ancestor("li"),n=t.getData("comment"),r=this.get("editor");this.hide(),n.pageno===r.currentpage?n.drawable.nodes[0].one("textarea").focus():(r.currentpage=n.pageno,r.change_page(),n.drawable.nodes[0].one("textarea").focus())},show:function(){var t=this.get("boundingBox").one("ul"),n=this.get("editor");t.all("li").remove(!0),e.each(n.pages,function(n){e.each(n.comments,function(n){var r=e.Node.create('<li><a href="#" tabindex="-1"><pre>'+n.rawtext+"</pre></a></li>");t.append(r),r.setData("comment",n)},this)},this),this.centerDialogue(),T.superclass.show.call(this)}},{NAME:S,ATTRS:{editor:{value:null}}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.commentsearch=T,COMMENT=function(t,n,r,i,o,u,f,l){this.editor=t,this.gradeid=n||0,this.x=parseInt(i,10)||0,this.y=parseInt(o,10)||0,this.width=parseInt(u,10)||0,this.rawtext=l||"",this.pageno=r||0,this.colour=f||"yellow",this.drawable=!1,this.deleteme=!1,this.menulink=null,this.menu=null,this.clean=function(){return{gradeid:this.gradeid,x:parseInt(this.x,10),y:parseInt(this.y,10),width:parseInt(this.width,10),rawtext:this.rawtext,pageno:this.currentpage,colour:this.colour}},this.draw=function(t){var n=new M.assignfeedback_editpdf.drawable(this.editor),r,i=e.one(s.DRAWINGREGION),o,u,f,l;return r=e.Node.create("<textarea/>"),o=e.Node.create('<div class="commentdrawable"/>'),u=e.Node.create('<a href="#"><img src="'+M.util.image_url("t/contextmenu","core")+'"/></a>'),this.menulink=u,o.append(r),this.editor.get("readonly")?r.setAttribute("readonly","readonly"):o.append(u),this.width<100&&(this.width=100),f=this.editor.get_window_coordinates(new M.assignfeedback_editpdf.point(this.x,this.y)),r.setStyles({width:this.width+"px",backgroundColor:a[this.colour]}),i.append(o),o.setX(f.x),o.setY(f.y),n.nodes.push(o),r.set("value",this.rawtext),l=r.get("scrollHeight"),r.setStyles({height:l+"px",overflow:"hidden"}),this.editor.get("readonly")||this.attach_events(r,u),t&&r.focus(),this.drawable=n,n},this.delete_comment_later=function(){this.deleteme&&this.remove()},this.attach_events=function(t,n){t.on("blur",function(){this.rawtext=t.get("value"),this.width=parseInt(t.getStyle("width"),10),this.rawtext.replace(/^\s+|\s+$/g,"")===""&&(this.deleteme=!0,e.later(400,this,this.delete_comment_later)),this.editor.save_current_page()},this),n.setData("comment",this),t.on("keyup",function(){var e=t.get("scrollHeight"),n=parseInt(t.getStyle("height"),10);e===n+8&&(e-=8),t.setStyle("height",e+"px")}),t.on("gesturemovestart",function(e){t.setData("dragging",!0),t.setData("offsetx",e.clientX-t.getX()),t.setData("offsety",e.clientY-t.getY())}),t.on("gesturemoveend",function(){t.setData("dragging",!1),this.editor.save_current_page()},null,this),t.on("gesturemove",function(e){var n=e.clientX-t.getData("offsetx"),r=e.clientY-t.getData("offsety"),i,s,o,u,a;i=parseInt(t.getStyle("width"),10),s=parseInt(t.getStyle("height"),10),o=this.editor.get_canvas_coordinates
-(new M.assignfeedback_editpdf.point(n,r)),a=this.editor.get_canvas_bounds(!0),a.x=0,a.y=0,a.width-=i+42,a.height-=s+8,o.clip(a),this.x=o.x,this.y=o.y,u=this.editor.get_window_coordinates(o),t.ancestor().setX(u.x),t.ancestor().setY(u.y)},null,this),this.menu=new M.assignfeedback_editpdf.commentmenu({buttonNode:this.menulink,comment:this})},this.remove=function(){var e=0,t;t=this.editor.pages[this.editor.currentpage].comments;for(e=0;e<t.length;e++)if(t[e]===this){t.splice(e,1),this.drawable.erase(),this.editor.save_current_page();return}},this.remove_from_quicklist=function(e,t){e.preventDefault(),this.menu.hide(),this.editor.quicklist.remove(t)},this.set_from_quick_comment=function(e,t){e.preventDefault(),this.menu.hide(),this.rawtext=t.rawtext,this.width=t.width,this.colour=t.colour,this.editor.save_current_page(),this.editor.redraw()},this.add_to_quicklist=function(e){e.preventDefault(),this.menu.hide(),this.editor.quicklist.add(this)},this.draw_current_edit=function(t){var n=new M.assignfeedback_editpdf.drawable(this.editor),r,i;return i=new M.assignfeedback_editpdf.rect,i.bound([t.start,t.end]),r=this.editor.graphic.addShape({type:e.Rect,width:i.width,height:i.height,fill:{color:a[t.commentcolour]},x:i.x,y:i.y}),n.shapes.push(r),n},this.init_from_edit=function(e){var t=new M.assignfeedback_editpdf.rect;t.bound([e.start,e.end]),t.width<100&&(t.width=100),this.gradeid=this.editor.get("gradeid"),this.pageno=this.editor.currentpage,this.x=t.x,this.y=t.y,this.width=t.width,this.colour=e.commentcolour,this.rawtext=""}},M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.comment=COMMENT,QUICKCOMMENT=function(e,t,n,r){this.rawtext=t||"",this.id=e||0,this.width=n||100,this.colour=r||"yellow"},M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.quickcomment=QUICKCOMMENT,QUICKCOMMENTLIST=function(t){this.editor=t,this.comments=[],this.add=function(t){var r=n,i;if(t.rawtext==="")return;i={method:"post",context:this,sync:!1,data:{sesskey:M.cfg.sesskey,action:"addtoquicklist",userid:this.editor.get("userid"),commenttext:t.rawtext,width:t.width,colour:t.colour,attemptnumber:this.editor.get("attemptnumber"),assignmentid:this.editor.get("assignmentid")},on:{success:function(t,n){var r,i;try{r=e.JSON.parse(n.responseText);if(r.error)return new M.core.ajaxException(r);i=new M.assignfeedback_editpdf.quickcomment(r.id,r.rawtext,r.width,r.colour),this.comments.push(i)}catch(s){return new M.core.exception(s)}},failure:function(e,t){return M.core.exception(t.responseText)}}},e.io(r,i)},this.remove=function(t){var r=n,i;if(!t)return;i={method:"post",context:this,sync:!1,data:{sesskey:M.cfg.sesskey,action:"removefromquicklist",userid:this.editor.get("userid"),commentid:t.id,attemptnumber:this.editor.get("attemptnumber"),assignmentid:this.editor.get("assignmentid")},on:{success:function(){var e;e=this.comments.indexOf(t),e>=0&&this.comments.splice(e,1)},failure:function(e,t){return M.core.exception(t.responseText)}}},e.io(r,i)},this.load=function(){var t=n,r;r={method:"get",context:this,sync:!1,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(t,n){var r;try{r=e.JSON.parse(n.responseText);if(r.error)return new M.core.ajaxException(r);e.each(r,function(e){var t=new M.assignfeedback_editpdf.quickcomment(e.id,e.rawtext,e.width,e.colour);this.comments.push(t)},this)}catch(i){return new M.core.exception(i)}},failure:function(e,t){return M.core.exception(t.responseText)}}},e.io(t,r)}},M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.quickcommentlist=QUICKCOMMENTLIST,EDITOR=function(){EDITOR.superclass.constructor.apply(this,arguments)},EDITOR.prototype={dialogue:null,pagecount:0,currentpage:0,pages:[],loadingicon:null,pageimage:null,graphic:null,currentedit:new M.assignfeedback_editpdf.edit,currentdrawable:!1,drawables:[],currentcomment:null,currentannotation:null,lastanntationtool:"pen",quicklist:null,searchcommentswindow:null,currentstamp:null,stamps:[],initializer:function(){var t;t=e.one("#"+this.get("linkid")),t&&(t.on("click",this.link_handler,this),t.on("key",this.link_handler,"down:13",this),this.currentedit.start=!1,this.currentedit.end=!1,this.quicklist=new M.assignfeedback_editpdf.quickcommentlist(this))},refresh_button_state:function(){var t,n,r;t=e.one(s.COMMENTCOLOURBUTTON),r=M.util.image_url("background_colour_"+this.currentedit.commentcolour,"assignfeedback_editpdf"),t.one("img").setAttribute("src",r),this.currentedit.commentcolour==="clear"?t.one("img").setStyle("borderStyle","dashed"):t.one("img").setStyle("borderStyle","solid"),t=e.one(s.ANNOTATIONCOLOURBUTTON),r=M.util.image_url("colour_"+this.currentedit.annotationcolour,"assignfeedback_editpdf"),t.one("img").setAttribute("src",r),n=e.one(c[this.currentedit.tool]),n.addClass("assignfeedback_editpdf_selectedbutton"),n.setAttribute("aria-pressed","true"),t=e.one(s.STAMPSBUTTON),t.one("img").setAttrs({src:this.get_stamp_image_url(this.currentedit.stamp),height:"16",width:"16"})},get_canvas_bounds:function(){var t=e.one(s.DRAWINGCANVAS),n=t.getXY(),r=n[0],i=n[1],o=parseInt(t.getStyle("width"),10),u=parseInt(t.getStyle("height"),10);return new M.assignfeedback_editpdf.rect(r,i,o,u)},get_canvas_coordinates:function(e){var t=this.get_canvas_bounds(),n=new M.assignfeedback_editpdf.point(e.x-t.x,e.y-t.y);return t.x=t.y=0,n.clip(t),n},get_window_coordinates:function(e){var t=this.get_canvas_bounds(),n=new M.assignfeedback_editpdf.point(e.x+t.x,e.y+t.y);return n},link_handler:function(t){var n;t.preventDefault(),this.dialogue?this.dialogue.show():(this.dialogue=new M.core.dialogue({headerContent:this.get("header"),bodyContent:this.get("body"),footerContent:this.get("footer"),width:"840px",visible:!0}),this.dialogue.centerDialogue(),this.dialogue.get("boundingBox").addClass(r.DIALOGUE),this.loadingicon=e.one(s.LOADINGICON),n=e.one
-(s.DRAWINGCANVAS),this.graphic=new e.Graphic({render:s.DRAWINGCANVAS}),this.get("readonly")||(n.on("gesturemovestart",this.edit_start,null,this),n.on("gesturemove",this.edit_move,null,this),n.on("gesturemoveend",this.edit_end,null,this),this.refresh_button_state())),this.load_all_pages()},load_all_pages:function(){var t=n,r;r={method:"get",context:this,sync:!1,data:{sesskey:M.cfg.sesskey,action:"loadallpages",userid:this.get("userid"),attemptnumber:this.get("attemptnumber"),assignmentid:this.get("assignmentid")},on:{success:function(e,t){this.all_pages_loaded(t.responseText)},failure:function(e,t){return M.core.exception(t.responseText)}}},e.io(t,r)},all_pages_loaded:function(t){var n,r,i,s,o;try{n=e.JSON.parse(t);if(n.error||!n.pagecount){this.dialogue.hide(),o=new M.core.alert({message:M.util.get_string("cannotopenpdf","assignfeedback_editpdf")}),o.show();return}}catch(u){this.dialogue.hide(),o=new M.core.alert({title:M.util.get_string("cannotopenpdf","assignfeedback_editpdf")}),o.show();return}this.pagecount=n.pagecount,this.pages=n.pages;for(r=0;r<this.pages.length;r++){for(i=0;i<this.pages[r].comments.length;i++)s=this.pages[r].comments[i],this.pages[r].comments[i]=new M.assignfeedback_editpdf.comment(this,s.gradeid,s.pageno,s.x,s.y,s.width,s.colour,s.rawtext);for(i=0;i<this.pages[r].annotations.length;i++)n=this.pages[r].annotations[i],this.pages[r].annotations[i]=this.create_annotation(n.type,n)}this.quicklist.load(),this.setup_navigation(),this.setup_toolbar(),this.change_page()},get_stamp_image_url:function(t){var n=this.get("stampfiles"),r="";return e.Array.each(n,function(e){e.indexOf(t)>0&&(r=e)},this),r},setup_toolbar:function(){var t,n,r,i,o,u,l,h;i=e.one(s.SEARCHCOMMENTSBUTTON),i.on("click",this.open_search_comments,this),i.on("key",this.open_search_comments,"down:13",this);if(this.get("readonly"))return;e.each(c,function(n,r){t=e.one(n),t.on("click",this.handle_tool_button,this,r),t.on("key",this.handle_tool_button,"down:13",this,r),t.setAttribute("aria-pressed","false")},this),n=e.one(s.COMMENTCOLOURBUTTON),l=new M.assignfeedback_editpdf.colourpicker({buttonNode:n,colours:a,iconprefix:"background_colour_",callback:function(e){var t=e.target.getAttribute("data-colour");t||(t=e.target.ancestor().getAttribute("data-colour")),this.currentedit.commentcolour=t,this.handle_tool_button(e,"comment")},context:this}),r=e.one(s.ANNOTATIONCOLOURBUTTON),l=new M.assignfeedback_editpdf.colourpicker({buttonNode:r,iconprefix:"colour_",colours:f,callback:function(e){var t=e.target.getAttribute("data-colour");t||(t=e.target.ancestor().getAttribute("data-colour")),this.currentedit.annotationcolour=t,this.lastannotationtool?this.handle_tool_button(e,this.lastannotationtool):this.handle_tool_button(e,"pen")},context:this}),u=this.get("stampfiles"),u.length<=0?(e.one(s.STAMPSBUTTON).hide(),e.one(c.stamp).hide()):(h=u[0].substr(u[0].lastIndexOf("/")+1),this.currentedit.stamp=h,o=e.one(s.STAMPSBUTTON),l=new M.assignfeedback_editpdf.stamppicker({buttonNode:o,stamps:u,callback:function(e){var t=e.target.getAttribute("data-stamp"),n;t||(t=e.target.ancestor().getAttribute("data-stamp")),n=t.substr(t.lastIndexOf("/")),this.currentedit.stamp=n,this.refresh_button_state()},context:this}),this.refresh_button_state())},handle_tool_button:function(t,n){var r;t.preventDefault(),r=e.one(c[this.currentedit.tool]),r.removeClass("assignfeedback_editpdf_selectedbutton"),r.setAttribute("aria-pressed","false"),this.currentedit.tool=n,n!=="comment"&&n!=="select"&&(this.lastannotationtool=n),this.refresh_button_state()},stringify_current_page:function(){var t=[],n=[],r,i=0;for(i=0;i<this.pages[this.currentpage].comments.length;i++)t[i]=this.pages[this.currentpage].comments[i].clean();for(i=0;i<this.pages[this.currentpage].annotations.length;i++)n[i]=this.pages[this.currentpage].annotations[i].clean();return r={comments:t,annotations:n},e.JSON.stringify(r)},get_current_drawable:function(){var e,t,n=!1;return!this.currentedit.start||!this.currentedit.end?!1:(this.currentedit.tool==="comment"?(e=new M.assignfeedback_editpdf.comment(this),n=e.draw_current_edit(this.currentedit)):(t=this.create_annotation(this.currentedit.tool,{}),t&&(n=t.draw_current_edit(this.currentedit))),n)},redraw_current_edit:function(){this.currentdrawable&&this.currentdrawable.erase(),this.currentdrawable=this.get_current_drawable()},edit_start:function(t){var n=e.one(s.DRAWINGCANVAS),r=n.getXY(),i=n.get("docScrollY"),o=n.get("docScrollX"),u={x:t.clientX-r[0]+o,y:t.clientY-r[1]+i},a=!1,f;if(t.button===3)return;if(this.currentedit.starttime)return;this.currentedit.starttime=(new Date).getTime(),this.currentedit.start=u,this.currentedit.end={x:u.x,y:u.y},this.currentedit.tool==="select"&&(x=this.currentedit.end.x,y=this.currentedit.end.y,annotations=this.pages[this.currentpage].annotations,e.each(annotations,function(e){(x-e.x)*(x-e.endx)<=0&&(y-e.y)*(y-e.endy)<=0&&(a=e)}),a&&(f=this.currentannotation,this.currentannotation=a,f&&f!==a&&f.drawable&&(f.drawable.erase(),this.drawables.push(f.draw())),this.currentannotation.drawable&&this.currentannotation.drawable.erase(),this.drawables.push(this.currentannotation.draw()))),this.currentannotation&&(this.currentedit.annotationstart={x:this.currentannotation.x,y:this.currentannotation.y})},edit_move:function(t){var n=this.get_canvas_bounds(),r=e.one(s.DRAWINGCANVAS),i=new M.assignfeedback_editpdf.point(t.clientX+r.get("docScrollX"),t.clientY+r.get("docScrollY")),o=this.get_canvas_coordinates(i);if(o.x<0||o.x>n.width||o.y<0||o.y>n.height)return;this.currentedit.tool==="pen"&&this.currentedit.path.push(o),this.currentedit.tool==="select"?this.currentannotation&&this.currentedit&&this.currentannotation.move(this.currentedit.annotationstart.x+o.x-this.currentedit.start.x,this.currentedit.annotationstart.y+o.y-this.currentedit.start.y):this.currentedit.start&&(this.currentedit.end=o,this.redraw_current_edit())},edit_end:function(){var e,t,n;e=(new Date).getTime()-this.currentedit.start;if(e<l||this.currentedit
-.start===!1)return;this.currentedit.tool==="comment"?(this.currentdrawable&&this.currentdrawable.erase(),this.currentdrawable=!1,t=new M.assignfeedback_editpdf.comment(this),t.init_from_edit(this.currentedit),this.pages[this.currentpage].comments.push(t),this.drawables.push(t.draw(!0))):(n=this.create_annotation(this.currentedit.tool,{}),n&&(this.currentdrawable&&this.currentdrawable.erase(),this.currentdrawable=!1,n.init_from_edit(this.currentedit),this.pages[this.currentpage].annotations.push(n),this.drawables.push(n.draw()))),this.save_current_page(),this.currentedit.starttime=0,this.currentedit.start=!1,this.currentedit.end=!1,this.currentedit.path=[]},create_annotation:function(e,t){return t.type=e,t.editor=this,e==="line"?new M.assignfeedback_editpdf.annotationline(t):e==="rectangle"?new M.assignfeedback_editpdf.annotationrectangle(t):e==="oval"?new M.assignfeedback_editpdf.annotationoval(t):e==="pen"?new M.assignfeedback_editpdf.annotationpen(t):e==="highlight"?new M.assignfeedback_editpdf.annotationhighlight(t):e==="stamp"?new M.assignfeedback_editpdf.annotationstamp(t):!1},save_current_page:function(){var t=n,r;r={method:"post",context:this,sync:!1,data:{sesskey:M.cfg.sesskey,action:"savepage",index:this.currentpage,userid:this.get("userid"),attemptnumber:this.get("attemptnumber"),assignmentid:this.get("assignmentid"),page:this.stringify_current_page()},on:{success:function(t,n){var r;try{r=e.JSON.parse(n.responseText);if(r.error)return new M.core.ajaxException(r);e.one(s.UNSAVEDCHANGESDIV).addClass("haschanges")}catch(i){return new M.core.exception(i)}},failure:function(e,t){return M.core.exception(t.responseText)}}},e.io(t,r)},open_search_comments:function(e){this.searchcommentswindow||(this.searchcommentswindow=new M.assignfeedback_editpdf.commentsearch({editor:this})),this.searchcommentswindow.show(),e.preventDefault()},redraw:function(){var e,t;t=this.pages[this.currentpage];while(this.drawables.length>0)this.drawables.pop().erase();for(e=0;e<t.annotations.length;e++)this.drawables.push(t.annotations[e].draw());for(e=0;e<t.comments.length;e++)this.drawables.push(t.comments[e].draw(!1))},change_page:function(){var t=e.one(s.DRAWINGCANVAS),n,r,i;r=e.one(s.PREVIOUSBUTTON),i=e.one(s.NEXTBUTTON),this.currentpage>0?r.removeAttribute("disabled"):r.setAttribute("disabled","true"),this.currentpage<this.pagecount-1?i.removeAttribute("disabled"):i.setAttribute("disabled","true"),n=this.pages[this.currentpage],this.loadingicon.hide(),t.setStyle("backgroundImage",'url("'+n.url+'")'),e.one(s.PAGESELECT).set("value",this.currentpage),this.redraw()},setup_navigation:function(){var t,n,r,i,o;t=e.one(s.PAGESELECT),options=t.all("option");if(options.size()<=1)for(n=0;n<this.pages.length;n++)r=e.Node.create("<option/>"),r.setAttribute("value",n),r.setHTML(M.util.get_string("pagenumber","assignfeedback_editpdf",n+1)),t.append(r);t.removeAttribute("disabled"),t.on("change",function(){this.currentpage=t.get("value"),this.change_page()},this),i=e.one(s.PREVIOUSBUTTON),o=e.one(s.NEXTBUTTON),i.on("click",this.previous_page,this),i.on("key",this.previous_page,"down:13",this),o.on("click",this.next_page,this),o.on("key",this.next_page,"down:13",this)},previous_page:function(e){e.preventDefault(),this.currentpage--,this.currentpage<0&&(this.currentpage=0),this.change_page()},next_page:function(e){e.preventDefault(),this.currentpage++,this.currentpage>=this.pages.length&&(this.currentpage=this.pages.length-1),this.change_page()}},e.extend(EDITOR,e.Base,EDITOR.prototype,{NAME:"moodle-assignfeedback_editpdf-editor",ATTRS:{userid:{validator:e.Lang.isInteger,value:0},assignmentid:{validator:e.Lang.isInteger,value:0},attemptnumber:{validator:e.Lang.isInteger,value:0},header:{validator:e.Lang.isString,value:""},body:{validator:e.Lang.isString,value:""},footer:{validator:e.Lang.isString,value:""},linkid:{validator:e.Lang.isString,value:""},deletelinkid:{validator:e.Lang.isString,value:""},readonly:{validator:e.Lang.isBoolean,value:!0},stampfiles:{validator:e.Lang.isArray,value:""}}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.editor=M.assignfeedback_editpdf.editor||{},M.assignfeedback_editpdf.editor.init=M.assignfeedback_editpdf.editor.init||function(e){return new EDITOR(e)}},"@VERSION@",{requires:["base","event","node","io","graphics","json","event-move","querystring-stringify-simple","moodle-core-notification-dialog","moodle-core-notification-exception","moodle-core-notification-ajaxexception"]});
+.constructor.apply(this,[e])},e.extend(E,M.assignfeedback_editpdf.dropdown,{initializer:function(t){var n,r,i,s;s=this.get("comment"),n=e.Node.create('<ul role="menu" class="assignfeedback_editpdf_menu"/>'),r=e.Node.create('<li><a tabindex="-1" href="#">'+M.util.get_string("addtoquicklist","assignfeedback_editpdf")+"</a></li>"),r.on("click",s.add_to_quicklist,s),r.on("key",s.add_to_quicklist,"enter,space",s),n.append(r),r=e.Node.create('<li><a tabindex="-1" href="#">'+M.util.get_string("deletecomment","assignfeedback_editpdf")+"</a></li>"),r.on("click",function(e){e.preventDefault(),this.menu.hide(),this.remove()},s),r.on("key",function(){s.menu.hide(),s.remove()},"enter,space",s),n.append(r),r=e.Node.create("<li><hr/></li>"),n.append(r),this.set("headerText",M.util.get_string("commentcontextmenu","assignfeedback_editpdf")),i=e.Node.create("<div/>"),i.append(n),this.set("bodyContent",i),E.superclass.initializer.call(this,t)},show:function(){var t=this.get("boundingBox").one("ul");t.all(".quicklist_comment").remove(!0),comment=this.get("comment"),comment.deleteme=!1,e.each(comment.editor.quicklist.comments,function(n){var r=e.Node.create('<li class="quicklist_comment"></li>'),i=e.Node.create('<a href="#" tabindex="-1">'+n.rawtext+"</a>"),s=e.Node.create('<a href="#" tabindex="-1" class="delete_quicklist_comment"><img src="'+M.util.image_url("t/delete","core")+'" '+'alt="'+M.util.get_string("deletecomment","assignfeedback_editpdf")+'"/>'+"</a>");r.append(i),r.append(s),t.append(r),i.on("click",comment.set_from_quick_comment,comment,n),i.on("key",comment.set_from_quick_comment,"space,enter",comment,n),s.on("click",comment.remove_from_quicklist,comment,n),s.on("key",comment.remove_from_quicklist,"space,enter",comment,n)},this),E.superclass.show.call(this)}},{NAME:w,ATTRS:{comment:{value:null}}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.commentmenu=E;var S="commentsearch",T;T=function(e){e.draggable=!1,e.centered=!0,e.width="400px",e.lightbox=!0,e.visible=!1,e.headerContent=M.util.get_string("searchcomments","assignfeedback_editpdf"),e.zIndex=100,e.footerContent="",T.superclass.constructor.apply(this,[e])},e.extend(T,M.core.dialogue,{initializer:function(t){var n,r,i,s,o,u;u=this.get("boundingBox"),u.addClass("assignfeedback_editpdf_commentsearch"),n=this.get("editor"),r=e.Node.create("<div/>"),i=M.util.get_string("filter","assignfeedback_editpdf"),s=e.Node.create('<input type="text" size="20" placeholder="'+i+'"/>'),r.append(s),o=e.Node.create('<ul role="menu" class="assignfeedback_editpdf_menu"/>'),r.append(o),s.on("keyup",this.filter_search_comments,null,this),o.delegate("click",this.focus_on_comment,"a",this),o.delegate("key",this.focus_on_comment,"enter,space","a",this),this.set("bodyContent",r),T.superclass.initializer.call(this,t)},filter_search_comments:function(){var t,n,r;t=e.one(s.SEARCHFILTER),n=e.one(s.SEARCHCOMMENTSLIST),r=t.get("value"),n.all("li").each(function(e){e.get("text").indexOf(r)!==-1?e.show():e.hide()})},focus_on_comment:function(e){e.preventDefault();var t=e.target.ancestor("li"),n=t.getData("comment"),r=this.get("editor");this.hide(),n.pageno===r.currentpage?n.drawable.nodes[0].one("textarea").focus():(r.currentpage=n.pageno,r.change_page(),n.drawable.nodes[0].one("textarea").focus())},show:function(){var t=this.get("boundingBox").one("ul"),n=this.get("editor");t.all("li").remove(!0),e.each(n.pages,function(n){e.each(n.comments,function(n){var r=e.Node.create('<li><a href="#" tabindex="-1"><pre>'+n.rawtext+"</pre></a></li>");t.append(r),r.setData("comment",n)},this)},this),this.centerDialogue(),T.superclass.show.call(this)}},{NAME:S,ATTRS:{editor:{value:null}}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.commentsearch=T,COMMENT=function(t,n,r,i,o,u,f,l){this.editor=t,this.gradeid=n||0,this.x=parseInt(i,10)||0,this.y=parseInt(o,10)||0,this.width=parseInt(u,10)||0,this.rawtext=l||"",this.pageno=r||0,this.colour=f||"yellow",this.drawable=!1,this.deleteme=!1,this.menulink=null,this.menu=null,this.clean=function(){return{gradeid:this.gradeid,x:parseInt(this.x,10),y:parseInt(this.y,10),width:parseInt(this.width,10),rawtext:this.rawtext,pageno:this.currentpage,colour:this.colour}},this.draw=function(t){var n=new M.assignfeedback_editpdf.drawable(this.editor),r,i=e.one(s.DRAWINGREGION),o,u,f,l;return r=e.Node.create("<textarea/>"),o=e.Node.create('<div class="commentdrawable"/>'),u=e.Node.create('<a href="#"><img src="'+M.util.image_url("t/contextmenu","core")+'"/></a>'),this.menulink=u,o.append(r),this.editor.get("readonly")?r.setAttribute("readonly","readonly"):o.append(u),this.width<100&&(this.width=100),f=this.editor.get_window_coordinates(new M.assignfeedback_editpdf.point(this.x,this.y)),r.setStyles({width:this.width+"px",backgroundColor:a[this.colour]}),i.append(o),o.setX(f.x),o.setY(f.y),n.nodes.push(o),r.set("value",this.rawtext),l=r.get("scrollHeight"),r.setStyles({height:l+"px",overflow:"hidden"}),this.editor.get("readonly")||this.attach_events(r,u),t&&r.focus(),this.drawable=n,n},this.delete_comment_later=function(){this.deleteme&&this.remove()},this.attach_events=function(t,n){t.on("blur",function(){this.rawtext=t.get("value"),this.width=parseInt(t.getStyle("width"),10),this.rawtext.replace(/^\s+|\s+$/g,"")===""&&(this.deleteme=!0,e.later(400,this,this.delete_comment_later)),this.editor.save_current_page()},this),n.setData("comment",this),t.on("keyup",function(){var e=t.get("scrollHeight"),n=parseInt(t.getStyle("height"),10);e===n+8&&(e-=8),t.setStyle("height",e+"px")}),t.on("gesturemovestart",function(e){t.setData("dragging",!0),t.setData("offsetx",e.clientX-t.getX()),t.setData("offsety",e.clientY-t.getY())}),t.on("gesturemoveend",function(){t.setData("dragging",!1),this.editor.save_current_page()},null,this),t.on("gesturemove",function(e){var n=e.clientX-t.getData("offsetx"),r=e.clientY-t.getData("offsety"),i,s,o,u,a;i=parseInt(t.getStyle("width"),10),s=parseInt(t.getStyle("height"),10)
+,o=this.editor.get_canvas_coordinates(new M.assignfeedback_editpdf.point(n,r)),a=this.editor.get_canvas_bounds(!0),a.x=0,a.y=0,a.width-=i+42,a.height-=s+8,o.clip(a),this.x=o.x,this.y=o.y,u=this.editor.get_window_coordinates(o),t.ancestor().setX(u.x),t.ancestor().setY(u.y)},null,this),this.menu=new M.assignfeedback_editpdf.commentmenu({buttonNode:this.menulink,comment:this})},this.remove=function(){var e=0,t;t=this.editor.pages[this.editor.currentpage].comments;for(e=0;e<t.length;e++)if(t[e]===this){t.splice(e,1),this.drawable.erase(),this.editor.save_current_page();return}},this.remove_from_quicklist=function(e,t){e.preventDefault(),this.menu.hide(),this.editor.quicklist.remove(t)},this.set_from_quick_comment=function(e,t){e.preventDefault(),this.menu.hide(),this.rawtext=t.rawtext,this.width=t.width,this.colour=t.colour,this.editor.save_current_page(),this.editor.redraw()},this.add_to_quicklist=function(e){e.preventDefault(),this.menu.hide(),this.editor.quicklist.add(this)},this.draw_current_edit=function(t){var n=new M.assignfeedback_editpdf.drawable(this.editor),r,i;return i=new M.assignfeedback_editpdf.rect,i.bound([t.start,t.end]),r=this.editor.graphic.addShape({type:e.Rect,width:i.width,height:i.height,fill:{color:a[t.commentcolour]},x:i.x,y:i.y}),n.shapes.push(r),n},this.init_from_edit=function(e){var t=new M.assignfeedback_editpdf.rect;t.bound([e.start,e.end]),t.width<100&&(t.width=100),this.gradeid=this.editor.get("gradeid"),this.pageno=this.editor.currentpage,this.x=t.x,this.y=t.y,this.width=t.width,this.colour=e.commentcolour,this.rawtext=""}},M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.comment=COMMENT,QUICKCOMMENT=function(e,t,n,r){this.rawtext=t||"",this.id=e||0,this.width=n||100,this.colour=r||"yellow"},M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.quickcomment=QUICKCOMMENT,QUICKCOMMENTLIST=function(t){this.editor=t,this.comments=[],this.add=function(t){var r=n,i;if(t.rawtext==="")return;i={method:"post",context:this,sync:!1,data:{sesskey:M.cfg.sesskey,action:"addtoquicklist",userid:this.editor.get("userid"),commenttext:t.rawtext,width:t.width,colour:t.colour,attemptnumber:this.editor.get("attemptnumber"),assignmentid:this.editor.get("assignmentid")},on:{success:function(t,n){var r,i;try{r=e.JSON.parse(n.responseText);if(r.error)return new M.core.ajaxException(r);i=new M.assignfeedback_editpdf.quickcomment(r.id,r.rawtext,r.width,r.colour),this.comments.push(i)}catch(s){return new M.core.exception(s)}},failure:function(e,t){return M.core.exception(t.responseText)}}},e.io(r,i)},this.remove=function(t){var r=n,i;if(!t)return;i={method:"post",context:this,sync:!1,data:{sesskey:M.cfg.sesskey,action:"removefromquicklist",userid:this.editor.get("userid"),commentid:t.id,attemptnumber:this.editor.get("attemptnumber"),assignmentid:this.editor.get("assignmentid")},on:{success:function(){var e;e=this.comments.indexOf(t),e>=0&&this.comments.splice(e,1)},failure:function(e,t){return M.core.exception(t.responseText)}}},e.io(r,i)},this.load=function(){var t=n,r;r={method:"get",context:this,sync:!1,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(t,n){var r;try{r=e.JSON.parse(n.responseText);if(r.error)return new M.core.ajaxException(r);e.each(r,function(e){var t=new M.assignfeedback_editpdf.quickcomment(e.id,e.rawtext,e.width,e.colour);this.comments.push(t)},this)}catch(i){return new M.core.exception(i)}},failure:function(e,t){return M.core.exception(t.responseText)}}},e.io(t,r)}},M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.quickcommentlist=QUICKCOMMENTLIST,EDITOR=function(){EDITOR.superclass.constructor.apply(this,arguments)},EDITOR.prototype={dialogue:null,pagecount:0,currentpage:0,pages:[],loadingicon:null,pageimage:null,graphic:null,currentedit:new M.assignfeedback_editpdf.edit,currentdrawable:!1,drawables:[],currentcomment:null,currentannotation:null,lastanntationtool:"pen",quicklist:null,searchcommentswindow:null,currentstamp:null,stamps:[],initializer:function(){var t;t=e.one("#"+this.get("linkid")),t&&(t.on("click",this.link_handler,this),t.on("key",this.link_handler,"down:13",this),this.currentedit.start=!1,this.currentedit.end=!1,this.quicklist=new M.assignfeedback_editpdf.quickcommentlist(this))},refresh_button_state:function(){var t,n,r;t=e.one(s.COMMENTCOLOURBUTTON),r=M.util.image_url("background_colour_"+this.currentedit.commentcolour,"assignfeedback_editpdf"),t.one("img").setAttribute("src",r),this.currentedit.commentcolour==="clear"?t.one("img").setStyle("borderStyle","dashed"):t.one("img").setStyle("borderStyle","solid"),t=e.one(s.ANNOTATIONCOLOURBUTTON),r=M.util.image_url("colour_"+this.currentedit.annotationcolour,"assignfeedback_editpdf"),t.one("img").setAttribute("src",r),n=e.one(c[this.currentedit.tool]),n.addClass("assignfeedback_editpdf_selectedbutton"),n.setAttribute("aria-pressed","true"),t=e.one(s.STAMPSBUTTON),t.one("img").setAttrs({src:this.get_stamp_image_url(this.currentedit.stamp),height:"16",width:"16"})},get_canvas_bounds:function(){var t=e.one(s.DRAWINGCANVAS),n=t.getXY(),r=n[0],i=n[1],o=parseInt(t.getStyle("width"),10),u=parseInt(t.getStyle("height"),10);return new M.assignfeedback_editpdf.rect(r,i,o,u)},get_canvas_coordinates:function(e){var t=this.get_canvas_bounds(),n=new M.assignfeedback_editpdf.point(e.x-t.x,e.y-t.y);return t.x=t.y=0,n.clip(t),n},get_window_coordinates:function(e){var t=this.get_canvas_bounds(),n=new M.assignfeedback_editpdf.point(e.x+t.x,e.y+t.y);return n},link_handler:function(t){var n;t.preventDefault(),this.dialogue?this.dialogue.show():(this.dialogue=new M.core.dialogue({headerContent:this.get("header"),bodyContent:this.get("body"),footerContent:this.get("footer"),width:"840px",visible:!0}),this.dialogue.centerDialogue(),this.dialogue.get("boundingBox").addClass(r.DIALOGUE),this.loadingicon=
+e.one(s.LOADINGICON),n=e.one(s.DRAWINGCANVAS),this.graphic=new e.Graphic({render:s.DRAWINGCANVAS}),this.get("readonly")||(n.on("gesturemovestart",this.edit_start,null,this),n.on("gesturemove",this.edit_move,null,this),n.on("gesturemoveend",this.edit_end,null,this),this.refresh_button_state())),this.load_all_pages()},load_all_pages:function(){var t=n,r;r={method:"get",context:this,sync:!1,data:{sesskey:M.cfg.sesskey,action:"loadallpages",userid:this.get("userid"),attemptnumber:this.get("attemptnumber"),assignmentid:this.get("assignmentid")},on:{success:function(e,t){this.all_pages_loaded(t.responseText)},failure:function(e,t){return M.core.exception(t.responseText)}}},e.io(t,r)},all_pages_loaded:function(t){var n,r,i,s,o;try{n=e.JSON.parse(t);if(n.error||!n.pagecount){this.dialogue.hide(),o=new M.core.alert({message:M.util.get_string("cannotopenpdf","assignfeedback_editpdf")}),o.show();return}}catch(u){this.dialogue.hide(),o=new M.core.alert({title:M.util.get_string("cannotopenpdf","assignfeedback_editpdf")}),o.show();return}this.pagecount=n.pagecount,this.pages=n.pages;for(r=0;r<this.pages.length;r++){for(i=0;i<this.pages[r].comments.length;i++)s=this.pages[r].comments[i],this.pages[r].comments[i]=new M.assignfeedback_editpdf.comment(this,s.gradeid,s.pageno,s.x,s.y,s.width,s.colour,s.rawtext);for(i=0;i<this.pages[r].annotations.length;i++)n=this.pages[r].annotations[i],this.pages[r].annotations[i]=this.create_annotation(n.type,n)}this.quicklist.load(),this.setup_navigation(),this.setup_toolbar(),this.change_page()},get_stamp_image_url:function(t){var n=this.get("stampfiles"),r="";return e.Array.each(n,function(e){e.indexOf(t)>0&&(r=e)},this),r},setup_toolbar:function(){var t,n,r,i,o,u,l,h;i=e.one(s.SEARCHCOMMENTSBUTTON),i.on("click",this.open_search_comments,this),i.on("key",this.open_search_comments,"down:13",this);if(this.get("readonly"))return;e.each(c,function(n,r){t=e.one(n),t.on("click",this.handle_tool_button,this,r),t.on("key",this.handle_tool_button,"down:13",this,r),t.setAttribute("aria-pressed","false")},this),n=e.one(s.COMMENTCOLOURBUTTON),l=new M.assignfeedback_editpdf.colourpicker({buttonNode:n,colours:a,iconprefix:"background_colour_",callback:function(e){var t=e.target.getAttribute("data-colour");t||(t=e.target.ancestor().getAttribute("data-colour")),this.currentedit.commentcolour=t,this.handle_tool_button(e,"comment")},context:this}),r=e.one(s.ANNOTATIONCOLOURBUTTON),l=new M.assignfeedback_editpdf.colourpicker({buttonNode:r,iconprefix:"colour_",colours:f,callback:function(e){var t=e.target.getAttribute("data-colour");t||(t=e.target.ancestor().getAttribute("data-colour")),this.currentedit.annotationcolour=t,this.lastannotationtool?this.handle_tool_button(e,this.lastannotationtool):this.handle_tool_button(e,"pen")},context:this}),u=this.get("stampfiles"),u.length<=0?(e.one(s.STAMPSBUTTON).hide(),e.one(c.stamp).hide()):(h=u[0].substr(u[0].lastIndexOf("/")+1),this.currentedit.stamp=h,o=e.one(s.STAMPSBUTTON),l=new M.assignfeedback_editpdf.stamppicker({buttonNode:o,stamps:u,callback:function(e){var t=e.target.getAttribute("data-stamp"),n;t||(t=e.target.ancestor().getAttribute("data-stamp")),n=t.substr(t.lastIndexOf("/")),this.currentedit.stamp=n,this.refresh_button_state()},context:this}),this.refresh_button_state())},handle_tool_button:function(t,n){var r;t.preventDefault(),r=e.one(c[this.currentedit.tool]),r.removeClass("assignfeedback_editpdf_selectedbutton"),r.setAttribute("aria-pressed","false"),this.currentedit.tool=n,n!=="comment"&&n!=="select"&&(this.lastannotationtool=n),this.refresh_button_state()},stringify_current_page:function(){var t=[],n=[],r,i=0;for(i=0;i<this.pages[this.currentpage].comments.length;i++)t[i]=this.pages[this.currentpage].comments[i].clean();for(i=0;i<this.pages[this.currentpage].annotations.length;i++)n[i]=this.pages[this.currentpage].annotations[i].clean();return r={comments:t,annotations:n},e.JSON.stringify(r)},get_current_drawable:function(){var e,t,n=!1;return!this.currentedit.start||!this.currentedit.end?!1:(this.currentedit.tool==="comment"?(e=new M.assignfeedback_editpdf.comment(this),n=e.draw_current_edit(this.currentedit)):(t=this.create_annotation(this.currentedit.tool,{}),t&&(n=t.draw_current_edit(this.currentedit))),n)},redraw_current_edit:function(){this.currentdrawable&&this.currentdrawable.erase(),this.currentdrawable=this.get_current_drawable()},edit_start:function(t){var n=e.one(s.DRAWINGCANVAS),r=n.getXY(),i=n.get("docScrollY"),o=n.get("docScrollX"),u={x:t.clientX-r[0]+o,y:t.clientY-r[1]+i},a=!1,f;if(t.button===3)return;if(this.currentedit.starttime)return;this.currentedit.starttime=(new Date).getTime(),this.currentedit.start=u,this.currentedit.end={x:u.x,y:u.y},this.currentedit.tool==="select"&&(x=this.currentedit.end.x,y=this.currentedit.end.y,annotations=this.pages[this.currentpage].annotations,e.each(annotations,function(e){(x-e.x)*(x-e.endx)<=0&&(y-e.y)*(y-e.endy)<=0&&(a=e)}),a&&(f=this.currentannotation,this.currentannotation=a,f&&f!==a&&f.drawable&&(f.drawable.erase(),this.drawables.push(f.draw())),this.currentannotation.drawable&&this.currentannotation.drawable.erase(),this.drawables.push(this.currentannotation.draw()))),this.currentannotation&&(this.currentedit.annotationstart={x:this.currentannotation.x,y:this.currentannotation.y})},edit_move:function(t){var n=this.get_canvas_bounds(),r=e.one(s.DRAWINGCANVAS),i=new M.assignfeedback_editpdf.point(t.clientX+r.get("docScrollX"),t.clientY+r.get("docScrollY")),o=this.get_canvas_coordinates(i);if(o.x<0||o.x>n.width||o.y<0||o.y>n.height)return;this.currentedit.tool==="pen"&&this.currentedit.path.push(o),this.currentedit.tool==="select"?this.currentannotation&&this.currentedit&&this.currentannotation.move(this.currentedit.annotationstart.x+o.x-this.currentedit.start.x,this.currentedit.annotationstart.y+o.y-this.currentedit.start.y):this.currentedit.start&&(this.currentedit.end=o,this.redraw_current_edit())},edit_end:function(){var e,t,n;e=(new Date).getTime()-this.currentedit.
+start;if(e<l||this.currentedit.start===!1)return;this.currentedit.tool==="comment"?(this.currentdrawable&&this.currentdrawable.erase(),this.currentdrawable=!1,t=new M.assignfeedback_editpdf.comment(this),t.init_from_edit(this.currentedit),this.pages[this.currentpage].comments.push(t),this.drawables.push(t.draw(!0))):(n=this.create_annotation(this.currentedit.tool,{}),n&&(this.currentdrawable&&this.currentdrawable.erase(),this.currentdrawable=!1,n.init_from_edit(this.currentedit),this.pages[this.currentpage].annotations.push(n),this.drawables.push(n.draw()))),this.save_current_page(),this.currentedit.starttime=0,this.currentedit.start=!1,this.currentedit.end=!1,this.currentedit.path=[]},create_annotation:function(e,t){return t.type=e,t.editor=this,e==="line"?new M.assignfeedback_editpdf.annotationline(t):e==="rectangle"?new M.assignfeedback_editpdf.annotationrectangle(t):e==="oval"?new M.assignfeedback_editpdf.annotationoval(t):e==="pen"?new M.assignfeedback_editpdf.annotationpen(t):e==="highlight"?new M.assignfeedback_editpdf.annotationhighlight(t):e==="stamp"?new M.assignfeedback_editpdf.annotationstamp(t):!1},save_current_page:function(){var t=n,r;r={method:"post",context:this,sync:!1,data:{sesskey:M.cfg.sesskey,action:"savepage",index:this.currentpage,userid:this.get("userid"),attemptnumber:this.get("attemptnumber"),assignmentid:this.get("assignmentid"),page:this.stringify_current_page()},on:{success:function(t,n){var r;try{r=e.JSON.parse(n.responseText);if(r.error)return new M.core.ajaxException(r);e.one(s.UNSAVEDCHANGESDIV).addClass("haschanges")}catch(i){return new M.core.exception(i)}},failure:function(e,t){return M.core.exception(t.responseText)}}},e.io(t,r)},open_search_comments:function(e){this.searchcommentswindow||(this.searchcommentswindow=new M.assignfeedback_editpdf.commentsearch({editor:this})),this.searchcommentswindow.show(),e.preventDefault()},redraw:function(){var e,t;t=this.pages[this.currentpage];while(this.drawables.length>0)this.drawables.pop().erase();for(e=0;e<t.annotations.length;e++)this.drawables.push(t.annotations[e].draw());for(e=0;e<t.comments.length;e++)this.drawables.push(t.comments[e].draw(!1))},change_page:function(){var t=e.one(s.DRAWINGCANVAS),n,r,i;r=e.one(s.PREVIOUSBUTTON),i=e.one(s.NEXTBUTTON),this.currentpage>0?r.removeAttribute("disabled"):r.setAttribute("disabled","true"),this.currentpage<this.pagecount-1?i.removeAttribute("disabled"):i.setAttribute("disabled","true"),n=this.pages[this.currentpage],this.loadingicon.hide(),t.setStyle("backgroundImage",'url("'+n.url+'")'),e.one(s.PAGESELECT).set("value",this.currentpage),this.redraw()},setup_navigation:function(){var t,n,r,i,o;t=e.one(s.PAGESELECT),options=t.all("option");if(options.size()<=1)for(n=0;n<this.pages.length;n++)r=e.Node.create("<option/>"),r.setAttribute("value",n),r.setHTML(M.util.get_string("pagenumber","assignfeedback_editpdf",n+1)),t.append(r);t.removeAttribute("disabled"),t.on("change",function(){this.currentpage=t.get("value"),this.change_page()},this),i=e.one(s.PREVIOUSBUTTON),o=e.one(s.NEXTBUTTON),i.on("click",this.previous_page,this),i.on("key",this.previous_page,"down:13",this),o.on("click",this.next_page,this),o.on("key",this.next_page,"down:13",this)},previous_page:function(e){e.preventDefault(),this.currentpage--,this.currentpage<0&&(this.currentpage=0),this.change_page()},next_page:function(e){e.preventDefault(),this.currentpage++,this.currentpage>=this.pages.length&&(this.currentpage=this.pages.length-1),this.change_page()}},e.extend(EDITOR,e.Base,EDITOR.prototype,{NAME:"moodle-assignfeedback_editpdf-editor",ATTRS:{userid:{validator:e.Lang.isInteger,value:0},assignmentid:{validator:e.Lang.isInteger,value:0},attemptnumber:{validator:e.Lang.isInteger,value:0},header:{validator:e.Lang.isString,value:""},body:{validator:e.Lang.isString,value:""},footer:{validator:e.Lang.isString,value:""},linkid:{validator:e.Lang.isString,value:""},deletelinkid:{validator:e.Lang.isString,value:""},readonly:{validator:e.Lang.isBoolean,value:!0},stampfiles:{validator:e.Lang.isArray,value:""}}}),M.assignfeedback_editpdf=M.assignfeedback_editpdf||{},M.assignfeedback_editpdf.editor=M.assignfeedback_editpdf.editor||{},M.assignfeedback_editpdf.editor.init=M.assignfeedback_editpdf.editor.init||function(e){return new EDITOR(e)}},"@VERSION@",{requires:["base","event","node","io","graphics","json","event-move","querystring-stringify-simple","moodle-core-notification-dialog","moodle-core-notification-exception","moodle-core-notification-ajaxexception"]});
View
2 ...df/yui/build/moodle-assignfeedback_editpdf-editor/moodle-assignfeedback_editpdf-editor.js
@@ -1926,6 +1926,8 @@ Y.extend(COMMENTMENU, M.assignfeedback_editpdf.dropdown, {
commentlinks.all('.quicklist_comment').remove(true),
comment = this.get('comment');
+ comment.deleteme = false; // Cancel the deleting of blank comments.
+
// Now build the list of quicklist comments.
Y.each(comment.editor.quicklist.comments, function(quickcomment) {
var listitem = Y.Node.create('<li class="quicklist_comment"></li>'),
View
2 mod/assign/feedback/editpdf/yui/src/editor/js/commentmenu.js
@@ -70,6 +70,8 @@ Y.extend(COMMENTMENU, M.assignfeedback_editpdf.dropdown, {
commentlinks.all('.quicklist_comment').remove(true),
comment = this.get('comment');
+ comment.deleteme = false; // Cancel the deleting of blank comments.
+
// Now build the list of quicklist comments.
Y.each(comment.editor.quicklist.comments, function(quickcomment) {
var listitem = Y.Node.create('<li class="quicklist_comment"></li>'),

0 comments on commit 6e67d80

Please sign in to comment.