Skip to content
Snippets Groups Projects
Commit 2154bea9 authored by srosse's avatar srosse
Browse files

OO-2683 : set tiny editor to dirty

parent 1c8f0dab
No related branches found
No related tags found
No related merge requests found
......@@ -14,7 +14,7 @@
author : 'frentix GmbH',
authorurl : 'http://www.frentix.com',
infourl : 'http://www.frentix.com',
version : '1.1.1'
version : '1.1.2'
};
},
......@@ -100,6 +100,7 @@
var ffxhrevent = ed.getParam("ffxhrevent");
o_ffXHREvent(ffxhrevent.formNam, ffxhrevent.dispIdField, ffxhrevent.dispId, ffxhrevent.eventIdField, 2, false, false, false,
'cmd', 'gapentry', 'responseIdentifier', responseIdentifier, 'newEntry', newEntry, 'selectedText', newSelectedText, 'gapType', gapType);
ed.setDirty(true);
}
function guid() {
......@@ -293,6 +294,7 @@
var responseIdentifier = jQuery(imgEl).attr('data-qti-response-identifier');
o_ffXHREvent(ffxhrevent.formNam, ffxhrevent.dispIdField, ffxhrevent.dispId, ffxhrevent.eventIdField, 2, false, false, false,
'cmd', 'gapentry', 'responseIdentifier', responseIdentifier);
ed.setDirty(true);
});
});
......
(function(){tinymce.create("org.olat.ims.qti21.ui.editor",{getInfo:function(){return{longname:"OpenOLATQTI",author:"frentix GmbH",authorurl:"http://www.frentix.com",infourl:"http://www.frentix.com",version:"1.1.1"}},createControl:function(b,a){return null},init:function(e,d){var c=e.$,s=e.selection;var t,q;var g;var k,l;function o(){if(t){return t}var u=o_getMainWin();if(u){t=jQuery(document).ooTranslator().getTranslator(u.o_info.locale,"org.olat.ims.qti21.ui.editor")}else{t={translate:function(v){return v}}}return t}function b(){if(q){return q}var u=o_getMainWin();if(u){q=jQuery(document).ooTranslator().getTranslator(u.o_info.locale,"org.olat.core")}else{q={translate:function(v){return v}}}return q}function i(u){h(u,"string")}function n(u){h(u,"float")}function h(x,A){var v=false;var y=null;var C;if(typeof k!="undefined"){C=jQuery(k).attr("data-qti-response-identifier")}else{var u=1;y=e.selection.getContent({format:"text"});tinymce.each(e.dom.select("img[data-qti]"),function(E){var D=jQuery(E).attr("data-qti-response-identifier");if(D.lastIndexOf("RESPONSE_",0)==0){var F=parseInt(D.substring(9,D.length));if(F>u){u=F}}});var C="RESPONSE_"+(u+1);var z=f(C,"textentryinteraction",A);var w=new tinymce.html.Serializer().serialize(z);e.insertContent(w);v=true}var B=e.getParam("ffxhrevent");o_ffXHREvent(B.formNam,B.dispIdField,B.dispId,B.eventIdField,2,false,false,false,"cmd","gapentry","responseIdentifier",C,"newEntry",v,"selectedText",y,"gapType",A)}function m(){function u(){return Math.floor((1+Math.random())*65536).toString(16).substring(1)}return u()+u()+u()+u()+u()+u()+u()}function a(y){var C;if(typeof l!="undefined"){C=jQuery(l).data("data-identifier")}else{var u=1;var v=e.selection.getContent({format:"text"});var B=false;if(v==null||v.length==0){v="text";B=true}var z="ht"+m();var A=r(z,v,false,"hottext");var w=new tinymce.html.Serializer().serialize(A);e.insertContent(w);if(B){var x=e.dom.select("span[data-qti-identifier="+z+"] span[contenteditable=true]");e.selection.select(x[0],true)}jQuery("span.hottext[data-qti-identifier='"+z+"'] input",e.getBody()).each(function(D,E){p(E)})}}function p(u){jQuery(u).click(function(){var v=e.getParam("ffxhrevent");var w=jQuery(u).parent("span.hottext").data("qti-identifier");o_ffXHRNFEvent(v.formNam,v.dispIdField,v.dispId,v.eventIdField,2,"cmd","hottext","identifier",w,"correct",u.checked);e.setDirty(true)})}e.addButton("olatqtifibtext",{title:o().translate("new.fib"),icon:"gaptext",stateSelector:["img[data-qti-gap-type=string]","span[data-qti-gap-type=string]"],onclick:i});e.addButton("olatqtifibnumerical",{title:o().translate("new.fib")+" Numerical",icon:"gapnumerical",stateSelector:["img[data-qti-gap-type=float]","span[data-qti-gap-type=float]"],onclick:n});e.addButton("olatqtihottext",{title:o().translate("new.hottext"),icon:"hottext",stateSelector:["span[data-qti=hottext]"],onclick:a});e.addButton("editgap",{title:"edit",icon:"edit",onclick:h});e.addMenuItem("olatqtifibtext",{text:o().translate("new.fib"),icon:"gapnumerical",stateSelector:["img[data-qti-gap-type=string]","span[data-qti-gap-type=string]"],onclick:n});e.addMenuItem("olatqtifibnumerical",{text:o().translate("new.fib.numerical")+" Numerical",icon:"gaptext",stateSelector:["img[data-qti-gap-type=float]","span[data-qti-gap-type=float]"],onclick:i});e.addMenuItem("olatqtihottext",{text:o().translate("new.hottext"),icon:"hottext",stateSelector:["span[data-qti=hottext]"],onclick:a});e.on("NodeChange",function(u){if(k&&k.id!=u.element.src){k=undefined}if(l&&l.id!=u.element.src){l=undefined}if(e.dom.is(u.element,"img[data-qti]")){k=u.element}else{if(jQuery(u.element).parent("span.hottext").size()>0){l=u.element}}});function f(w,v,u){var x=new tinymce.html.Node("img",1);x.attr({width:"32",height:"16",src:tinymce.Env.transparentSrc,"data-qti":v,"data-qti-response-identifier":w,"data-qti-gap-type":u,"data-mce-placeholder":"","data-mce-resize":"false","data-textentryinteraction":"empty","class":"mce-shim "+v});return x}function r(y,x,z,C){var B=new tinymce.html.Node("span",1);B.attr({"data-qti":C,"data-qti-identifier":y,"class":C,contenteditable:"false"});var w=e.getParam("readonly");var u=w=="1"?"false":"true";var D=new tinymce.html.Node("input",1);D.attr({contenteditable:u,name:"hottext",value:y,type:"checkbox"});if(z){D.attr({checked:"checked"})}if(u=="false"){D.attr({disabled:"disabled"})}B.append(D);var A=new tinymce.html.Node("span",1);A.attr({contenteditable:u});var v=new tinymce.html.Node("#text",3);v.raw=true;v.value=x;A.append(v);B.append(A);return B}function j(v){var u="";var x=new tinymce.dom.TreeWalker(v);var w;while((w=x.next())){if(w.type==3){if(u.length>0){u+=" "}u+=w.value}else{if(w.nodeType==3){if(u.length>0){u+=" "}u+=w.nodeValue}}}return u}e.on("init",function(){if(e.settings.content_css!==false){e.dom.loadCSS(d+"/css/content.css")}jQuery("img.textentryinteraction",e.getBody()).each(function(u,v){var w=v;jQuery(w).click(function(){var y=e.getParam("ffxhrevent");var x=jQuery(w).attr("data-qti-response-identifier");o_ffXHREvent(y.formNam,y.dispIdField,y.dispId,y.eventIdField,2,false,false,false,"cmd","gapentry","responseIdentifier",x)})});jQuery("span.hottext input",e.getBody()).each(function(u,v){p(v)})});e.on("preInit",function(){e.parser.addNodeFilter("textentryinteraction,hottext",function(u){var x=u.length,v,C,y;while(x--){v=u[x];if(v.name=="textentryinteraction"){var E=v.attr("responseidentifier");var D=v.attr("openolattype");if(typeof D==="undefined"){D="string"}var C=f(E,"textentryinteraction",D);v.replace(C)}else{if(v.name=="hottext"){var B=v.attr("identifier");var w=e.getParam("correctHottexts");var A=jQuery.inArray(B,w)>=0;var z=j(v);var C=r(B,z,A,"hottext","hottext");v.replace(C)}}}})});e.on("PreProcess",function(u){tinymce.each(e.dom.select("img[data-qti=textentryinteraction]"),function(w){var v=jQuery(w).attr("data-qti-response-identifier");var x=e.dom.create("textEntryInteraction",{responseIdentifier:v});e.dom.replace(x,w,false)});tinymce.each(e.dom.select("span[data-qti=hottext]"),function(w){var v=jQuery(w).data("qti-identifier");var x=e.dom.create("hottext",{identifier:v});var y=jQuery('span[contenteditable="true"]',w).html();x.textContent=y;e.dom.replace(x,w,false)})})}});tinymce.PluginManager.add("olatqti",org.olat.ims.qti21.ui.editor)})();
\ No newline at end of file
(function(){tinymce.create("org.olat.ims.qti21.ui.editor",{getInfo:function(){return{longname:"OpenOLATQTI",author:"frentix GmbH",authorurl:"http://www.frentix.com",infourl:"http://www.frentix.com",version:"1.1.2"}},createControl:function(b,a){return null},init:function(e,d){var c=e.$,s=e.selection;var t,q;var g;var k,l;function o(){if(t){return t}var u=o_getMainWin();if(u){t=jQuery(document).ooTranslator().getTranslator(u.o_info.locale,"org.olat.ims.qti21.ui.editor")}else{t={translate:function(v){return v}}}return t}function b(){if(q){return q}var u=o_getMainWin();if(u){q=jQuery(document).ooTranslator().getTranslator(u.o_info.locale,"org.olat.core")}else{q={translate:function(v){return v}}}return q}function i(u){h(u,"string")}function n(u){h(u,"float")}function h(x,A){var v=false;var y=null;var C;if(typeof k!="undefined"){C=jQuery(k).attr("data-qti-response-identifier")}else{var u=1;y=e.selection.getContent({format:"text"});tinymce.each(e.dom.select("img[data-qti]"),function(E){var D=jQuery(E).attr("data-qti-response-identifier");if(D.lastIndexOf("RESPONSE_",0)==0){var F=parseInt(D.substring(9,D.length));if(F>u){u=F}}});var C="RESPONSE_"+(u+1);var z=f(C,"textentryinteraction",A);var w=new tinymce.html.Serializer().serialize(z);e.insertContent(w);v=true}var B=e.getParam("ffxhrevent");o_ffXHREvent(B.formNam,B.dispIdField,B.dispId,B.eventIdField,2,false,false,false,"cmd","gapentry","responseIdentifier",C,"newEntry",v,"selectedText",y,"gapType",A);e.setDirty(true)}function m(){function u(){return Math.floor((1+Math.random())*65536).toString(16).substring(1)}return u()+u()+u()+u()+u()+u()+u()}function a(y){var C;if(typeof l!="undefined"){C=jQuery(l).data("data-identifier")}else{var u=1;var v=e.selection.getContent({format:"text"});var B=false;if(v==null||v.length==0){v="text";B=true}var z="ht"+m();var A=r(z,v,false,"hottext");var w=new tinymce.html.Serializer().serialize(A);e.insertContent(w);if(B){var x=e.dom.select("span[data-qti-identifier="+z+"] span[contenteditable=true]");e.selection.select(x[0],true)}jQuery("span.hottext[data-qti-identifier='"+z+"'] input",e.getBody()).each(function(D,E){p(E)})}}function p(u){jQuery(u).click(function(){var v=e.getParam("ffxhrevent");var w=jQuery(u).parent("span.hottext").data("qti-identifier");o_ffXHRNFEvent(v.formNam,v.dispIdField,v.dispId,v.eventIdField,2,"cmd","hottext","identifier",w,"correct",u.checked);e.setDirty(true)})}e.addButton("olatqtifibtext",{title:o().translate("new.fib"),icon:"gaptext",stateSelector:["img[data-qti-gap-type=string]","span[data-qti-gap-type=string]"],onclick:i});e.addButton("olatqtifibnumerical",{title:o().translate("new.fib")+" Numerical",icon:"gapnumerical",stateSelector:["img[data-qti-gap-type=float]","span[data-qti-gap-type=float]"],onclick:n});e.addButton("olatqtihottext",{title:o().translate("new.hottext"),icon:"hottext",stateSelector:["span[data-qti=hottext]"],onclick:a});e.addButton("editgap",{title:"edit",icon:"edit",onclick:h});e.addMenuItem("olatqtifibtext",{text:o().translate("new.fib"),icon:"gapnumerical",stateSelector:["img[data-qti-gap-type=string]","span[data-qti-gap-type=string]"],onclick:n});e.addMenuItem("olatqtifibnumerical",{text:o().translate("new.fib.numerical")+" Numerical",icon:"gaptext",stateSelector:["img[data-qti-gap-type=float]","span[data-qti-gap-type=float]"],onclick:i});e.addMenuItem("olatqtihottext",{text:o().translate("new.hottext"),icon:"hottext",stateSelector:["span[data-qti=hottext]"],onclick:a});e.on("NodeChange",function(u){if(k&&k.id!=u.element.src){k=undefined}if(l&&l.id!=u.element.src){l=undefined}if(e.dom.is(u.element,"img[data-qti]")){k=u.element}else{if(jQuery(u.element).parent("span.hottext").size()>0){l=u.element}}});function f(w,v,u){var x=new tinymce.html.Node("img",1);x.attr({width:"32",height:"16",src:tinymce.Env.transparentSrc,"data-qti":v,"data-qti-response-identifier":w,"data-qti-gap-type":u,"data-mce-placeholder":"","data-mce-resize":"false","data-textentryinteraction":"empty","class":"mce-shim "+v});return x}function r(y,x,z,C){var B=new tinymce.html.Node("span",1);B.attr({"data-qti":C,"data-qti-identifier":y,"class":C,contenteditable:"false"});var w=e.getParam("readonly");var u=w=="1"?"false":"true";var D=new tinymce.html.Node("input",1);D.attr({contenteditable:u,name:"hottext",value:y,type:"checkbox"});if(z){D.attr({checked:"checked"})}if(u=="false"){D.attr({disabled:"disabled"})}B.append(D);var A=new tinymce.html.Node("span",1);A.attr({contenteditable:u});var v=new tinymce.html.Node("#text",3);v.raw=true;v.value=x;A.append(v);B.append(A);return B}function j(v){var u="";var x=new tinymce.dom.TreeWalker(v);var w;while((w=x.next())){if(w.type==3){if(u.length>0){u+=" "}u+=w.value}else{if(w.nodeType==3){if(u.length>0){u+=" "}u+=w.nodeValue}}}return u}e.on("init",function(){if(e.settings.content_css!==false){e.dom.loadCSS(d+"/css/content.css")}jQuery("img.textentryinteraction",e.getBody()).each(function(u,v){var w=v;jQuery(w).click(function(){var y=e.getParam("ffxhrevent");var x=jQuery(w).attr("data-qti-response-identifier");o_ffXHREvent(y.formNam,y.dispIdField,y.dispId,y.eventIdField,2,false,false,false,"cmd","gapentry","responseIdentifier",x);e.setDirty(true)})});jQuery("span.hottext input",e.getBody()).each(function(u,v){p(v)})});e.on("preInit",function(){e.parser.addNodeFilter("textentryinteraction,hottext",function(u){var x=u.length,v,C,y;while(x--){v=u[x];if(v.name=="textentryinteraction"){var E=v.attr("responseidentifier");var D=v.attr("openolattype");if(typeof D==="undefined"){D="string"}var C=f(E,"textentryinteraction",D);v.replace(C)}else{if(v.name=="hottext"){var B=v.attr("identifier");var w=e.getParam("correctHottexts");var A=jQuery.inArray(B,w)>=0;var z=j(v);var C=r(B,z,A,"hottext","hottext");v.replace(C)}}}})});e.on("PreProcess",function(u){tinymce.each(e.dom.select("img[data-qti=textentryinteraction]"),function(w){var v=jQuery(w).attr("data-qti-response-identifier");var x=e.dom.create("textEntryInteraction",{responseIdentifier:v});e.dom.replace(x,w,false)});tinymce.each(e.dom.select("span[data-qti=hottext]"),function(w){var v=jQuery(w).data("qti-identifier");var x=e.dom.create("hottext",{identifier:v});var y=jQuery('span[contenteditable="true"]',w).html();x.textContent=y;e.dom.replace(x,w,false)})})}});tinymce.PluginManager.add("olatqti",org.olat.ims.qti21.ui.editor)})();
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment