17368: Multiple tinymce editors on a page broken in some browsers.

Problem was due to multiple init calls. We now no longer need any dynamic content in the init script, allowing this script to become a library and only included once.
Also made the tinymce init selection more specific to tinymce in case any other modules use the 'html' class at the same time as this.

--HG--
branch : 1.x
This commit is contained in:
Dave Reed
2011-03-28 16:26:39 -07:00
parent 71631d3ef5
commit f333723f8a
5 changed files with 26 additions and 26 deletions

View File

@@ -3,7 +3,9 @@ using Orchard.UI.Resources;
namespace TinyMce {
public class ResourceManifest : IResourceManifestProvider {
public void BuildManifests(ResourceManifestBuilder builder) {
builder.Add().DefineScript("TinyMce").SetUrl("tiny_mce.js", "tiny_mce_src.js");
var manifest = builder.Add();
manifest.DefineScript("TinyMce").SetUrl("tiny_mce.js", "tiny_mce_src.js");
manifest.DefineScript("OrchardTinyMce").SetUrl("orchard-tinymce.js").SetDependencies("TinyMce");
}
}
}

View File

@@ -0,0 +1,13 @@
tinyMCE.init({
theme: "advanced",
mode: "specific_textareas",
editor_selector: "tinymce",
plugins: "fullscreen,autoresize,searchreplace,mediapicker",
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
theme_advanced_buttons1: "search,replace,|,cut,copy,paste,|,undo,redo,|,mediapicker,|,link,unlink,charmap,emoticon,codeblock,|,bold,italic,|,numlist,bullist,formatselect,|,code,fullscreen",
theme_advanced_buttons2: "",
theme_advanced_buttons3: "",
convert_urls: false,
valid_elements: "*[*]"
});

View File

@@ -39,7 +39,7 @@
}
jQuery("#" + ed.id).trigger("orchard-admin-pickimage-open", {
img: editImage,
uploadMediaPath: ed.getParam("mediapicker_uploadpath"),
uploadMediaPath: jQuery("#" + ed.id).data("mediapicker-uploadpath"), //ed.getParam("mediapicker_uploadpath"),
callback: function (data) {
ed.focus();
ed.selection.setContent(data.img.html);
@@ -49,7 +49,7 @@
// Register media button
ed.addButton('mediapicker', {
title: ed.getParam("mediapicker_title"),
title: jQuery("#" + ed.id).data("mediapicker-title"), //ed.getParam("mediapicker_title"),
cmd: 'mceMediaPicker',
image: url + '/img/picture_add.png'
});

View File

@@ -50,6 +50,7 @@
<Content Include="Module.txt" />
<Content Include="Scripts\langs\en.js" />
<Content Include="Scripts\license.txt" />
<Content Include="Scripts\orchard-tinymce.js" />
<Content Include="Scripts\plugins\autoresize\editor_plugin.js" />
<Content Include="Scripts\plugins\autoresize\editor_plugin_src.js" />
<Content Include="Scripts\plugins\fullscreen\editor_plugin.js" />

View File

@@ -1,25 +1,9 @@
@{
Script.Require("TinyMce");
Script.Require("OrchardTinyMce");
}
@using(Script.Foot()) {
<script type="text/javascript">
//<![CDATA[
tinyMCE.init({
theme: "advanced",
mode: "specific_textareas",
editor_selector: "html",
plugins: "fullscreen,autoresize,searchreplace,mediapicker",
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
theme_advanced_buttons1: "search,replace,|,cut,copy,paste,|,undo,redo,|,mediapicker,|,link,unlink,charmap,emoticon,codeblock,|,bold,italic,|,numlist,bullist,formatselect,|,code,fullscreen",
theme_advanced_buttons2: "",
theme_advanced_buttons3: "",
convert_urls: false,
mediapicker_uploadpath: "@Model.AddMediaPath",
mediapicker_title: "@T("Insert/Update Media")",
valid_elements: "*[*]"
});
//]]>
</script>
}
@Html.TextArea("Text", (string)Model.Text, 25, 80, new { @class = "html" })
@Html.TextArea("Text", (string)Model.Text, 25, 80,
new Dictionary<string,object> {
{"class", "html tinymce"},
{"data-mediapicker-uploadpath",Model.AddMediaPath},
{"data-mediapicker-title",T("Insert/Update Media")}
})