Proyectos de Subversion Moodle

Rev

Autoría | Ultima modificación | Ver Log |

YUI.add("moodle-course-dragdrop",function(g,e){var o,t,l=".actions",s="activity",r="content",p="course-content",u="editing_move",a="iconsmall",d="jumpmenu",i="left",f="movedown",m="moveup",_="page-content",h="right",n="section",v="section-handle",b="summary",c="sectiondraggable";M.course=M.course||{},g.extend(o=function(){o.superclass.constructor.apply(this,arguments)},M.core.dragdrop,{sectionlistselector:null,initializer:function(){if(this.groups=[c],this.samenodeclass=M.course.format.get_sectionwrapperclass(),this.parentnodeclass=M.course.format.get_containerclass(),this.detectkeyboarddirection=!0,g.Node.one("."+d))return!1;var e;this.sectionlistselector=M.course.format.get_section_wrapper(g),this.sectionlistselector&&(this.sectionlistselector="."+p+" "+this.sectionlistselector,this.setup_for_section(this.sectionlistselector),(e=new g.DD.Delegate({container:"."+p,nodes:"."+c,target:!0,handles:["."+i],dragConfig:{groups:this.groups}})).dd.plug(g.Plugin.DDProxy,{moveOnEnd:!1}),e.dd.plug(g.Plugin.DDConstrained,{constrain:"#"+_,stickY:!0}),e.dd.plug(g.Plugin.DDWinScroll))},setup_for_section:function(e){g.Node.all(e).each(function(e){var o,t,s,r=g.Moodle.core_course.util.section.getId(e);0<r&&(o=e.one("."+h+" a."+f),t=e.one("."+h+" a."+m),r=M.util.get_string("movesection","moodle",r),s=e.one("."+i),(o||t)&&s&&(s.setStyle("cursor","move"),s.appendChild(this.get_drag_handle(r,v,"icon",!0)),t&&(t.previous("br")?t.previous("br").remove():t.next("br")&&t.next("br").remove(),(t.ancestor(".section_action_menu")&&"li"==t.ancestor().get("nodeName").toLowerCase()?t.ancestor():t).remove()),o&&(o.previous("br")?o.previous("br").remove():o.next("br")&&o.next("br").remove(),r=o.ancestor().get("nodeName").toLowerCase(),(o.ancestor(".section_action_menu")&&"li"==r?o.ancestor():o).remove()),e.addClass(c)))},this)},drag_start:function(e){var o,t,e=e.target,s=e.get("node"),e=e.get("dragNode");s!==e&&((o=g.Node.create("<"+M.course.format.get_containernode()+"></"+M.course.format.get_containernode()+">")).addClass(M.course.format.get_containerclass()),(t=g.Node.create("<"+M.course.format.get_sectionwrappernode()+"></"+M.course.format.get_sectionwrappernode()+">")).addClass(M.course.format.get_sectionwrapperclass()),t.setStyle("margin",0),t.setContent(s.get("innerHTML")),o.appendChild(t),e.setContent(o),e.addClass(p))},drag_dropmiss:function(e){this.drop_hit(e)},get_section_index:function(e){var o="."+p+" "+M.course.format.get_section_selector(g),o=g.all(o);return o.indexOf(e)-o.indexOf(g.one("#section-0"))},drop_hit:function(n){var c,a,e,i,o,t=n.drag,l=t.get("node"),s=g.Moodle.core_course.util.section.getId(l),d=s,r=this.get_section_index(l),u=r;if(s!==r){for(o in u<d&&(d=r,u=s),t.get("dragNode").removeClass(p),c=g.Node.all(this.sectionlistselector),a=M.util.add_lightbox(g,l),e={},i=this.get("config").pageparams)i.hasOwnProperty(o)&&(e[o]=i[o]);e.sesskey=M.cfg.sesskey,e.courseId=this.get("courseid"),e["class"]="section",e.field="move",e.id=s,e.value=r,t=M.cfg.wwwroot+this.get("ajaxurl"),g.io(t,{method:"POST",data:e,on:{start:function(){a.show()},success:function(e,o){var t,s,r,i;try{(t=g.JSON.parse(o.responseText)).error&&new M.core.ajaxException(t),M.course.format.process_sections(g,c,t,d,u)}catch(n){}r=!1;do{for(r=!1,s=d;s<=u;s++)g.Moodle.core_course.util.section.getId(c.item(s-1))>g.Moodle.core_course.util.section.getId(c.item(s))&&(i=c.item(s-1).get("id"),c.item(s-1).set("id",c.item(s).get("id")),c.item(s).set("id",i),M.course.format.swap_sections(g,s-1,s),r=!0),c.item(s).setAttribute("data-sectionid",g.Moodle.core_course.util.section.getId(c.item(s)))}while(u-=1,r);window.setTimeout(function(){a.hide()},250),M.course.coursebase.invoke_function("updateMovedSectionState")},failure:function(e,o){this.ajax_failure(o),a.hide()}},context:this})}}},{NAME:"course-dragdrop-section",ATTRS:{courseid:{value:null},ajaxurl:{value:0},config:{value:0}}}),M.course=M.course||{},M.course.init_section_dragdrop=function(e){new o(e)},g.extend(t=function(){t.superclass.constructor.apply(this,arguments)},M.core.dragdrop,{initializer:function(){var e;this.groups=["resource"],this.samenodeclass=s,this.parentnodeclass=n,this.samenodelabel={identifier:"afterresource",component:"moodle"},this.parentnodelabel={identifier:"totopofsection",component:"moodle"},(e=M.course.format.get_section_selector(g))&&(e="."+p+" "+e,this.setup_for_section(e),e=e.slice(p.length+2)+" li."+s,(e=new g.DD.Delegate({container:"."+p,nodes:e,target:!0,handles:["."+u],dragConfig:{groups:this.groups}})).dd.plug(g.Plugin.DDProxy,{moveOnEnd:!1,cloneNode:!0}),e.dd.plug(g.Plugin.DDConstrained,{constrain:"#"+_}),e.dd.plug(g.Plugin.DDWinScroll),M.course.coursebase.register_module(this),M.course.dragres=this)},setup_for_section:function(e){g.Node.all(e).each(function(e){var o=e.one("."+r+" ul."+n);o||((o=g.Node.create("<ul></ul>")).addClass(n),e.one("."+r+" div."+b).insert(o,"after")),o.setAttribute("data-draggroups",this.groups.join(" ")),new g.DD.Drop({node:o,groups:this.groups,padding:"20 0 20 0"}),this.setup_for_resource("#"+e.get("id")+" li."+s)},this)},setup_for_resource:function(e){g.Node.all(e).each(function(e){var o=e.getData("draggroups");o||(e.setAttribute("data-draggroups",this.groups.join(" ")),new g.DD.Drop({node:e,groups:this.groups,padding:"20 0 20 0"})),(o=e.one("a."+u))&&(e=o.getData("sectionreturn"),o.replace(this.get_drag_handle(M.util.get_string("movecoursemodule","moodle"),u,a,!0).setAttribute("data-sectionreturn",e)))},this)},drag_start:function(e){e=e.target;e.get("dragNode")!==e.get("node")&&(e.get("dragNode").setContent(e.get("node").get("innerHTML")),e.get("dragNode").all("img.iconsmall").setStyle("vertical-align","baseline"))},drag_dropmiss:function(e){this.drop_hit(e)},drop_hit:function(e){var o,t,s,r=e.drag,i=r.get("node"),e=e.drop.get("node"),n=i.one(l),c=M.util.add_spinner(g,n),a={},d=this.get("config").pageparams;for(o in d)a[o]=d[o];t=Number(g.Moodle.core_course.util.cm.getId(i)),s=null,a.sesskey=M.cfg.sesskey,a.courseId=this.get(
"courseid"),a["class"]="resource",a.field="move",a.id=t,a.sectionId=g.Moodle.core_course.util.section.getId(e.ancestor(M.course.format.get_section_wrapper(g),!0)),i.next()&&(s=Number(g.Moodle.core_course.util.cm.getId(i.next())),a.beforeId=s),n=M.cfg.wwwroot+this.get("ajaxurl"),g.io(n,{method:"POST",data:a,on:{start:function(){this.lock_drag_handle(r,u),c.show()},success:function(e,o){var o=g.JSON.parse(o.responseText);M.course.coursebase.invoke_function("updateMovedCmState",{cmid:t,beforeid:s,visible:o.visible}),o={element:i,visible:o.visible},M.course.coursebase.invoke_function("set_visibility_resource_ui",o),this.unlock_drag_handle(r,u),window.setTimeout(function(){c.hide()},250)},failure:function(e,o){this.ajax_failure(o),this.unlock_drag_handle(r,v),c.hide()}},context:this})}},{NAME:"course-dragdrop-resource",ATTRS:{courseid:{value:null},ajaxurl:{value:0},config:{value:0}}}),M.course=M.course||{},M.course.init_resource_dragdrop=function(e){new t(e)}},"@VERSION@",{requires:["base","node","io","dom","dd","dd-scroll","moodle-core-dragdrop","moodle-core-notification","moodle-course-coursebase","moodle-course-util"]});