From b9d3d10bca5aed2e0e4c39c192f8cc3e8bb3e614 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Thu, 6 Jun 2013 16:54:12 -0700 Subject: [PATCH] Integrating TinyMce with the Media Library --HG-- branch : 1.x extra : rebase_source : 64b75e44522bc583bfb521c8cf9850fa5d596068 --- .../Controllers/AdminController.cs | 13 +++ .../Orchard.MediaLibrary/Placement.info | 10 ++ .../Views/Admin/Index.cshtml | 2 +- .../Views/Media.Raw.cshtml | 1 + .../TinyMce/Scripts/orchard-tinymce.js | 5 +- .../plugins/imageeditor/editor_plugin.js | 2 - .../plugins/imageeditor/editor_plugin_src.js | 107 ------------------ .../imageeditor/editor_plugin_src.min.js | 2 - .../imageeditor/editor_plugin_src.min.js.map | 8 -- .../plugins/imageeditor/img/picture_edit.png | Bin 646 -> 0 bytes .../plugins/medialibrary/editor_plugin.js | 2 + .../plugins/medialibrary/editor_plugin_src.js | 102 +++++++++++++++++ .../plugins/medialibrary/img/picture_add.png | Bin 0 -> 750 bytes .../Modules/TinyMce/TinyMce.csproj | 14 +-- 14 files changed, 135 insertions(+), 133 deletions(-) create mode 100644 src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Media.Raw.cshtml delete mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/editor_plugin.js delete mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/editor_plugin_src.js delete mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/editor_plugin_src.min.js delete mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/editor_plugin_src.min.js.map delete mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/img/picture_edit.png create mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/medialibrary/editor_plugin.js create mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/medialibrary/editor_plugin_src.js create mode 100644 src/Orchard.Web/Modules/TinyMce/Scripts/plugins/medialibrary/img/picture_add.png diff --git a/src/Orchard.Web/Modules/Orchard.ImageEditor/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.ImageEditor/Controllers/AdminController.cs index d20c05c3c..38d66ad5f 100644 --- a/src/Orchard.Web/Modules/Orchard.ImageEditor/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.ImageEditor/Controllers/AdminController.cs @@ -40,6 +40,19 @@ namespace Orchard.ImageEditor.Controllers { return new ShapeResult(this, shape); } + [Themed(false)] + public ActionResult Touch(string src) { + var localPath = _storageProvider.GetLocalPath(src); + + if (_storageProvider.GetFile(localPath) == null) { + return HttpNotFound(); + } + + var media = Services.ContentManager.Query().Where(x => x.Resource == src).Slice(0, 1).FirstOrDefault(); + + return Json(media != null); + } + [Themed(false)] public ActionResult Edit(string src) { var localPath = _storageProvider.GetLocalPath(src); diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Placement.info b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Placement.info index 876687095..6184c750f 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Placement.info +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Placement.info @@ -1,6 +1,16 @@  + + + + + .button-cancel").on('click', function() { if (parent.$.colorbox) { - parent.$.colorbox.selectedData = []; + parent.$.colorbox.selectedData = null; parent.$.colorbox.close(); }; }); diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Media.Raw.cshtml b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Media.Raw.cshtml new file mode 100644 index 000000000..cda3bc9ba --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/Media.Raw.cshtml @@ -0,0 +1 @@ +@Display(Model.Content) diff --git a/src/Orchard.Web/Modules/TinyMce/Scripts/orchard-tinymce.js b/src/Orchard.Web/Modules/TinyMce/Scripts/orchard-tinymce.js index fcdd9f9e5..6249666de 100644 --- a/src/Orchard.Web/Modules/TinyMce/Scripts/orchard-tinymce.js +++ b/src/Orchard.Web/Modules/TinyMce/Scripts/orchard-tinymce.js @@ -1,11 +1,12 @@ tinyMCE.init({ theme: "advanced", + schema: "html5", mode: "specific_textareas", editor_selector: "tinymce", - plugins: "fullscreen,autoresize,searchreplace,mediapicker,inlinepopups,imageeditor", + plugins: "fullscreen,autoresize,searchreplace,mediapicker,inlinepopups,medialibrary", theme_advanced_toolbar_location: "top", theme_advanced_toolbar_align: "left", - theme_advanced_buttons1: "search,replace,|,cut,copy,paste,|,undo,redo,|,mediapicker,imageeditor,|,link,unlink,charmap,emoticon,codeblock,|,bold,italic,|,numlist,bullist,formatselect,|,code,fullscreen,", + theme_advanced_buttons1: "search,replace,|,cut,copy,paste,|,undo,redo,|,mediapicker,medialibrary,|,link,unlink,charmap,emoticon,codeblock,|,bold,italic,|,numlist,bullist,formatselect,|,code,fullscreen,", theme_advanced_buttons2: "", theme_advanced_buttons3: "", convert_urls: false, diff --git a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/editor_plugin.js b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/editor_plugin.js deleted file mode 100644 index b411ae21e..000000000 --- a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/editor_plugin.js +++ /dev/null @@ -1,2 +0,0 @@ -(function () { tinymce.create("tinymce.plugins.Orchard.ImageEditor", { init: function (n, t) { console.log("init: function (ed, url) {"), n.addCommand("mceImageEditor", function () { var f, t, i, r, u, e, o; (console.log("ed.addCommand('mceImageEditor'"), n.focus(), t = n.selection.getContent(), t && (t = t.replace(/\ with , so we can easily use jquery to get the 'src' without it - // being resolved by the browser (e.g. prevent '/foo.png' becoming 'http://localhost:12345/orchardlocal/foo.png'). - content = content.replace(/\'); - } - }); - } - } - }); - - // Register media button - ed.addButton('imageeditor', { - title: 'Edit Image', //ed.getParam("mediapicker_title"), - cmd: 'mceImageEditor', - image: url + '/img/picture_edit.png' - }); - - // disable button if an image is not selected - ed.onNodeChange.add(function (ed2, cm, node) { - cm.setDisabled('imageeditor', !(node.tagName == 'IMG')); - }); - }, - - /** - * Creates control instances based in the incomming name. This method is normally not - * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons - * but you sometimes need to create more complex controls like listboxes, split buttons etc then this - * method can be used to create those. - * - * @param {String} n Name of the control to create. - * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control. - * @return {tinymce.ui.Control} New control instance or null if no control was created. - */ - createControl: function (n, cm) { - return null; - }, - - /** - * Returns information about the plugin as a name/value array. - * The current keys are longname, author, authorurl, infourl and version. - * - * @return {Object} Name/value array containing information about the plugin. - */ - getInfo: function () { - return { - longname: 'Orchard Image Editor Plugin', - author: 'The Orchard Team', - authorurl: 'http://orchardproject.net', - infourl: 'http://orchardproject.net', - version: '1.1' - }; - } - }); - - // Register plugin - tinymce.PluginManager.add('imageeditor', tinymce.plugins.Orchard.ImageEditor); -})(); \ No newline at end of file diff --git a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/editor_plugin_src.min.js b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/editor_plugin_src.min.js deleted file mode 100644 index ecde51a85..000000000 --- a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/editor_plugin_src.min.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(){tinymce.create("tinymce.plugins.Orchard.ImageEditor",{init:function(n,t){console.log("init: function (ed, url) {"),n.addCommand("mceImageEditor",function(){var i,t,r,u,f;if(console.log("ed.addCommand('mceImageEditor'"),n.focus(),t=n.selection.getContent(),t&&(t=t.replace(/\')}})}}),n.addButton("imageeditor",{title:"Edit Image",cmd:"mceImageEditor",image:t+"/img/picture_edit.png"}),n.onNodeChange.add(function(n,t,i){t.setDisabled("imageeditor",!(i.tagName=="IMG"))})},createControl:function(){return null},getInfo:function(){return{longname:"Orchard Image Editor Plugin",author:"The Orchard Team",authorurl:"http://orchardproject.net",infourl:"http://orchardproject.net",version:"1.1"}}}),tinymce.PluginManager.add("imageeditor",tinymce.plugins.Orchard.ImageEditor)})(); -//@ sourceMappingURL=editor_plugin_src.min.js.map \ No newline at end of file diff --git a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/editor_plugin_src.min.js.map b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/editor_plugin_src.min.js.map deleted file mode 100644 index 048fc0b97..000000000 --- a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/editor_plugin_src.min.js.map +++ /dev/null @@ -1,8 +0,0 @@ -{ -"version":3, -"file":"editor_plugin_src.min.js", -"lineCount":1, -"mappings":"CAAC,QAAS,CAAA,CAAG,CAMTA,OAAOC,OAAO,CAAC,qCAAqC,CAAE,CASlD,IAAI,CAAEC,QAAS,CAACC,CAAE,CAAEC,CAAL,CAAU,CACrBC,OAAOC,IAAI,CAAC,4BAAD,CAA8B,CAEzCH,CAAEI,WAAW,CAAC,gBAAgB,CAAE,QAAS,CAAA,CAAG,CAIxC,IAAIC,EACAC,EAKIC,EAMIC,EAEAP,CAb2B,CACvC,GALAC,OAAOC,IAAI,CAAC,gCAAD,CAAkC,CAC7CH,CAAES,MAAM,CAAA,CAAE,CAGNH,CAAQ,CAAEN,CAAEU,UAAUC,WAAW,CAAA,C,CACjCL,C,GAGAA,CAAQ,CAAEA,CAAOM,QAAQ,CAAC,SAAS,CAAE,UAAZ,CAAuB,CAC5CL,CAAS,CAAEM,CAAC,CAACP,CAAD,CAASQ,OAAO,CAAC,SAAD,C,CAC5BP,CAAQQ,SAAS,CAMjB,GALAV,CAAU,CAAE,CACR,GAAG,CAAEE,CAAQS,KAAK,CAAC,KAAD,CADV,CAEX,CAEGR,CAAW,CAAES,QAAQC,KAAKC,YAAY,CAAA,CAAEC,QAAQ,CAAC,SAAD,C,CAChDZ,CAAW,GAAI,GAAI,MAAM,CACzBP,CAAI,CAAEgB,QAAQC,KAAKG,OAAO,CAAC,CAAC,CAAEb,CAAJ,CAC1B,CAAE,sCAAuC,CAAEc,kBAAkB,CAACjB,CAASkB,IAAIC,MAAM,CAAC,GAAD,CAAM,CAAA,CAAA,CAA1B,C,CAEjEX,CAACY,SAAS,CAAC,CACP,IAAI,CAAExB,CAAG,CACT,MAAM,CAAE,CAAA,CAAI,CACZ,UAAU,CAAE,CAAA,CAAI,CAChB,KAAK,CAAE,MAAM,CACb,MAAM,CAAE,MAAM,CACd,MAAM,CAAEyB,QAAS,CAAA,CAAG,CAEhBb,CAAC,CAAC,YAAD,CAAcc,IAAI,CAAC,UAAU,CAAE,QAAb,CAAsB,CACzCd,CAAC,CAAC,YAAD,CAAce,OAAO,CAAA,CAHN,CAInB,CACD,QAAQ,CAAEC,QAAS,CAAA,CAAG,CAClBhB,CAAC,CAAC,YAAD,CAAcc,IAAI,CAAC,UAAU,CAAE,EAAb,CAAgB,CAEnCG,OAAOC,YAAY,CAAC,mBAAmB,CAAE,CAAA,CAAtB,CAA6B,YAAa,CAAE1B,CAASkB,IAAK,CAAE,QAAS,CAAES,IAAIC,OAAO,CAAA,CAAG,CAAE,KAAvF,CAHD,CAXf,CAAD,CAVO,CAXe,CAA/B,CAwCX,CAGFjC,CAAEkC,UAAU,CAAC,aAAa,CAAE,CACxB,KAAK,CAAE,YAAY,CACnB,GAAG,CAAE,gBAAgB,CACrB,KAAK,CAAEjC,CAAI,CAAE,uBAHW,CAAhB,CAIV,CAGFD,CAAEmC,aAAaC,IAAI,CAAC,QAAS,CAACC,CAAG,CAAEC,CAAE,CAAEC,CAAV,CAAgB,CACzCD,CAAEE,YAAY,CAAC,aAAa,CAAE,CAAC,CAACD,CAAIE,QAAS,EAAG,KAAjB,CAAjB,CAD2B,CAA1B,CArDE,CAwDxB,CAYD,aAAa,CAAEC,QAAS,CAAA,CAAQ,CAC5B,OAAO,IADqB,CAE/B,CAQD,OAAO,CAAEC,QAAS,CAAA,CAAG,CACjB,MAAO,CACH,QAAQ,CAAE,6BAA6B,CACvC,MAAM,CAAE,kBAAkB,CAC1B,SAAS,CAAE,2BAA2B,CACtC,OAAO,CAAE,2BAA2B,CACpC,OAAO,CAAE,KALN,CADU,CAvF6B,CAAxC,CAgGZ,CAGF9C,OAAO+C,cAAcR,IAAI,CAAC,aAAa,CAAEvC,OAAOgD,QAAQC,QAAQC,YAAvC,CAzGhB,EA0GX,CAAA,CAAE", -"sources":["editor_plugin_src.js"], -"names":["tinymce","create","init","ed","url","console","log","addCommand","editImage","content","firstImg","adminIndex","focus","selection","getContent","replace","$","filter","length","attr","location","href","toLowerCase","indexOf","substr","encodeURIComponent","src","split","colorbox","onLoad","css","remove","onClosed","tinyMCE","execCommand","Math","random","addButton","onNodeChange","add","ed2","cm","node","setDisabled","tagName","createControl","getInfo","PluginManager","plugins","Orchard","ImageEditor"] -} diff --git a/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/img/picture_edit.png b/src/Orchard.Web/Modules/TinyMce/Scripts/plugins/imageeditor/img/picture_edit.png deleted file mode 100644 index 7775ded9022d50ba295676cdfe03a93e64ce82ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmV;10(t$3P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf5dZ)S5dnW>Uy%R+02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0005?Nkltl4;+j~ z;*}T=!vG$@n5l`wXpD;zCW2$JGaU>pC=6zu3xy11gw4gIOhU~ZB->ntKuFMwQS`tN z0&@J>|AQ>sQb%zdzS;UbeLi{mY~=u)XoiE8WH?w!hJ%$nHS*Da@x zjP4r=XWWHG5lGnP);4zc_K$3Hdmlfyc0g#MQ3TQ?-8>NeitcC@t~aj{NQnq(F34FY z`c(lpUifg={~q`KD-10Q(qkNgd?d!O@lSRPrLN=of)#^{HV8@=Y(t}HlUDIP_uCve z{Pr6Vk#&)E!KILGSjs)tifGVEAjTj&DIF4w~6ID;kWA~e15& zMW7f; z-M0(Rb{)F2|M1OSM=!76c4f|%D^pLNn6v6)%Zf`S%Pur6JTrO0+1iDBU(7s{Hh=f? z87H%*pGcm)Wd-Z!G>h=WHZ(ewLe#pi7A?=&;TbAFc*-+86 z?0D^>n-#0(H?B^sUY%XL=xEja>s71#%I97yo_n}tnOEk#Sy?leW=&hXzRf;;mP5+q ziCNRUbEkyIPwHv!c8r_Qnbzmu&>S|a+O(`GE}_dKyk9rCMa>QWe}Xi&D$;i?WLqoP$l+HeFr-RCm(T#W6%;YI4E?-h`y*4_X-c z(pD%~+w=2$;4E-pwX85HJ)5esG_+=q&Ci6UIX1J@jDkLSbye+q*TmtNYMiMWnk(BY zpx&aee$&=9tNK<>O_b<39Ez>4mdQo&kQ2+FB+ihb}Tj zUO0T%`qHs$_6iynHhqF>8ag^US_}1(o+#<12pnz_U}?-KEX=EIcG;jHZLiOAq`R=V zxZ9a!W~8Npg5&)ew - - - - editor_plugin_src.js - - + + + @@ -180,11 +177,6 @@ - - - editor_plugin_src.js - - 10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)