diff --git a/src/Umbraco.Tests/CodeFirst/Attributes/RichtextAttribute.cs b/src/Umbraco.Tests/CodeFirst/Attributes/RichtextAttribute.cs index 2656c9f983..3a0ae01640 100644 --- a/src/Umbraco.Tests/CodeFirst/Attributes/RichtextAttribute.cs +++ b/src/Umbraco.Tests/CodeFirst/Attributes/RichtextAttribute.cs @@ -1,5 +1,5 @@ using System; -using umbraco.editorControls.tinyMCE3; +using Umbraco.Web.PropertyEditors; namespace Umbraco.Tests.CodeFirst.Attributes { @@ -7,7 +7,7 @@ namespace Umbraco.Tests.CodeFirst.Attributes public class RichtextAttribute : PropertyTypeAttribute { public RichtextAttribute() - : base(typeof(tinyMCE3dataType)) + : base(typeof(RichTextPropertyEditor)) { } } diff --git a/src/Umbraco.Tests/CodeFirst/TestModels/ModelWithNewDataType.cs b/src/Umbraco.Tests/CodeFirst/TestModels/ModelWithNewDataType.cs index cea693cd47..55f48da2e9 100644 --- a/src/Umbraco.Tests/CodeFirst/TestModels/ModelWithNewDataType.cs +++ b/src/Umbraco.Tests/CodeFirst/TestModels/ModelWithNewDataType.cs @@ -1,15 +1,14 @@ using Umbraco.Tests.CodeFirst.Attributes; -using umbraco.editorControls.textfield; -using umbraco.editorControls.tinyMCE3; +using Umbraco.Web.PropertyEditors; namespace Umbraco.Tests.CodeFirst.TestModels { public class ModelWithNewDataType : ContentTypeBase { - [PropertyType(typeof(TextFieldDataType), PropertyGroup = "Content")] + [PropertyType(typeof(TextboxPropertyEditor), PropertyGroup = "Content")] public string Title { get; set; } - [PropertyType(typeof(tinyMCE3dataType), PropertyGroup = "Content")] + [PropertyType(typeof(RichTextPropertyEditor), PropertyGroup = "Content")] public string BodyContent { get; set; } } } \ No newline at end of file diff --git a/src/Umbraco.Tests/Models/MediaXmlTest.cs b/src/Umbraco.Tests/Models/MediaXmlTest.cs index cc82f7ce88..4d25081992 100644 --- a/src/Umbraco.Tests/Models/MediaXmlTest.cs +++ b/src/Umbraco.Tests/Models/MediaXmlTest.cs @@ -2,13 +2,10 @@ using System.Xml.Linq; using NUnit.Framework; using Umbraco.Core; -using Umbraco.Core.ObjectResolution; using Umbraco.Core.Models; using Umbraco.Core.Strings; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; -using umbraco.editorControls.tinyMCE3; -using umbraco.interfaces; namespace Umbraco.Tests.Models { diff --git a/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs index 86c26fd0e5..0689cb729c 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs @@ -8,14 +8,11 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Caching; -using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; -using umbraco.editorControls.tinyMCE3; -using umbraco.interfaces; using Umbraco.Core.Persistence.DatabaseModelDefinitions; namespace Umbraco.Tests.Persistence.Repositories diff --git a/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs index b76bdd37bc..d99cd5b682 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs @@ -2,7 +2,6 @@ using System.Linq; using System.Xml.Linq; using NUnit.Framework; -using Umbraco.Core; using Umbraco.Core.Models; using Umbraco.Core.Models.EntityBase; using Umbraco.Core.Models.Rdbms; @@ -10,12 +9,9 @@ using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Caching; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; -using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; -using umbraco.editorControls.tinyMCE3; -using umbraco.interfaces; using Umbraco.Core.Persistence.DatabaseModelDefinitions; namespace Umbraco.Tests.Persistence.Repositories diff --git a/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs index 3b6edea115..18dd4e0686 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/RelationRepositoryTest.cs @@ -11,8 +11,6 @@ using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; -using umbraco.editorControls.tinyMCE3; -using umbraco.interfaces; namespace Umbraco.Tests.Persistence.Repositories { diff --git a/src/Umbraco.Tests/Publishing/PublishingStrategyTests.cs b/src/Umbraco.Tests/Publishing/PublishingStrategyTests.cs index a2ebdf450d..20d9c22db8 100644 --- a/src/Umbraco.Tests/Publishing/PublishingStrategyTests.cs +++ b/src/Umbraco.Tests/Publishing/PublishingStrategyTests.cs @@ -1,19 +1,11 @@ -using System; -using System.Collections.Generic; -using System.IO; +using System.Collections.Generic; using NUnit.Framework; using Umbraco.Core; -using Umbraco.Core.Configuration; using Umbraco.Core.Events; -using Umbraco.Core.IO; using Umbraco.Core.Models; -using Umbraco.Core.ObjectResolution; -using Umbraco.Core.Persistence; using Umbraco.Core.Publishing; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; -using umbraco.editorControls.tinyMCE3; -using umbraco.interfaces; using System.Linq; namespace Umbraco.Tests.Publishing diff --git a/src/Umbraco.Tests/Services/ThreadSafetyServiceTest.cs b/src/Umbraco.Tests/Services/ThreadSafetyServiceTest.cs index 6a5930723b..793a03e1df 100644 --- a/src/Umbraco.Tests/Services/ThreadSafetyServiceTest.cs +++ b/src/Umbraco.Tests/Services/ThreadSafetyServiceTest.cs @@ -6,7 +6,6 @@ using System.Linq; using System.Threading; using NUnit.Framework; using Umbraco.Core; -using Umbraco.Core.Cache; using Umbraco.Core.Models; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.UnitOfWork; @@ -14,8 +13,6 @@ using Umbraco.Core.Publishing; using Umbraco.Core.Services; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; -using umbraco.editorControls.tinyMCE3; -using umbraco.interfaces; namespace Umbraco.Tests.Services { diff --git a/src/Umbraco.Web/BaseRest/RestExtensionMethodInfo.cs b/src/Umbraco.Web/BaseRest/RestExtensionMethodInfo.cs index 2ee974a0fe..5ddf6762ea 100644 --- a/src/Umbraco.Web/BaseRest/RestExtensionMethodInfo.cs +++ b/src/Umbraco.Web/BaseRest/RestExtensionMethodInfo.cs @@ -28,18 +28,7 @@ namespace Umbraco.Web.BaseRest : s.ToLower().Split(Split, StringSplitOptions.RemoveEmptyEntries); } - static string GetAttribute(XmlNode node, string name) - { - if (node == null) - throw new ArgumentNullException("node"); - var attributes = node.Attributes; - if (attributes == null) - throw new ArgumentException(@"Node has no Attributes collection.", "node"); - var attribute = attributes[name]; - return attribute == null ? null : attribute.Value; - } - - #endregion + #endregion private RestExtensionMethodInfo() { diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index 171b4eb6e4..157b25075e 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -922,9 +922,6 @@ ASPXCodeBehind - - ASPXCodeBehind - ASPXCodeBehind diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/publish.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/publish.aspx.cs deleted file mode 100644 index 255c61cbe8..0000000000 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/publish.aspx.cs +++ /dev/null @@ -1,240 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.Generic; -using System.Web.UI; -using System.Web.UI.WebControls; -using Umbraco.Core.Logging; -using umbraco.cms.businesslogic.web; -using umbraco.BusinessLogic; -using Umbraco.Core.Logging; -using umbraco.BasePages; - -namespace umbraco.dialogs -{ - /// - /// Summary description for publish. - /// - [Obsolete("This is no longer used whatsoever and will be removed from the codebase")] - public partial class publish : UmbracoEnsuredPage - { - protected Literal total; - - private int _nodeId; - private int _nodesPublished = 0; - private readonly List _documents = new List(); - public static string pageName = ""; - - public publish() - { - CurrentApp = DefaultApps.content.ToString(); - } - - protected void Page_Load(object sender, EventArgs e) - { - _nodeId = int.Parse(helper.Request("id")); - var d = new cms.businesslogic.web.Document(_nodeId); - pageName = d.Text; - - if (d.Level > 1 && d.PathPublished == false) - { - TheForm.Visible = false; - theEnd.Visible = true; - feedbackMsg.type = uicontrols.Feedback.feedbacktype.notice; - feedbackMsg.Text = ui.Text("publish", "contentPublishedFailedByParent", d.Text, getUser()) + "

" + ui.Text("closeThisWindow") + ""; - - return; - } - - // add control prefix to variable for support with masterpages - var prefix = PublishUnpublishedItems.ClientID.Replace(PublishUnpublishedItems.ID, ""); - masterPagePrefix.Text = prefix; - - // by default we only count the published ones - var totalNodesToPublish = cms.businesslogic.web.Document.CountSubs(_nodeId, true); - try - { - Application.Lock(); - // We add both all nodes and only published nodes to the application variables so we can ajax query depending on checkboxes - Application["publishTotalAll" + _nodeId.ToString()] = cms.businesslogic.CMSNode.CountSubs(_nodeId).ToString(); - Application["publishTotal" + _nodeId.ToString()] = totalNodesToPublish.ToString(); - Application["publishDone" + _nodeId.ToString()] = "0"; - } - finally - { - Application.UnLock(); - } - total.Text = totalNodesToPublish.ToString(); - - // Put user code to initialize the page here - if (!IsPostBack) - { - // Add caption to checkbox - PublishAll.Text = ui.Text("publish", "publishAll", d.Text, getUser()); - ok.Text = ui.Text("content", "publish", getUser()); - ok.Attributes.Add("style", "width: 60px"); - ok.Attributes.Add("onClick", "startPublication();"); - - // Add checkbox event, so the publish unpublished childs gets enabled - PublishUnpublishedItems.LabelAttributes.Add("disabled", "true"); - PublishUnpublishedItems.LabelAttributes.Add("id", "publishUnpublishedItemsLabel"); - PublishUnpublishedItems.InputAttributes.Add("disabled", "true"); - PublishAll.InputAttributes.Add("onclick", "togglePublishingModes(this)"); - } - else - { - - if (PublishAll.Checked) - { - _nodesPublished = 0; - - DoPublishSubs(d); - - Application.Lock(); - Application["publishTotal" + _nodeId.ToString()] = 0; - Application.UnLock(); - - feedbackMsg.type = uicontrols.Feedback.feedbacktype.success; - - feedbackMsg.Text = ui.Text("publish", "nodePublishAll", d.Text, getUser()) + "

" + ui.Text("closeThisWindow") + ""; - - ClientTools.ReloadActionNode(true, true); - - Application.Lock(); - - Application["publishTotal" + _nodeId.ToString()] = null; - Application["publishDone" + _nodeId.ToString()] = null; - Application.UnLock(); - } - else - { - if (d.PublishWithResult(getUser())) - { - feedbackMsg.type = uicontrols.Feedback.feedbacktype.success; - feedbackMsg.Text = ui.Text("publish", "nodePublish", d.Text, getUser()) + "

" + ui.Text("closeThisWindow") + ""; - } - else { - feedbackMsg.type = uicontrols.Feedback.feedbacktype.notice; - feedbackMsg.Text = ui.Text("publish", "contentPublishedFailedByEvent", d.Text, getUser()) + "

" + ui.Text("closeThisWindow") + ""; - } - ClientTools.ReloadActionNode(true, false); - } - - TheForm.Visible = false; - theEnd.Visible = true; - } - } - - private void DoPublishSubs(cms.businesslogic.web.Document d) - { - if (d.Published || PublishUnpublishedItems.Checked) - { - if (d.PublishWithResult(UmbracoUser)) - { - - - _nodesPublished++; - Application.Lock(); - Application["publishDone" + _nodeId.ToString()] = _nodesPublished.ToString(); - Application.UnLock(); - foreach (var dc in d.Children) - { - DoPublishSubs(dc); - } - } - else - { - LogHelper.Warn("Publishing failed due to event cancelling the publishing for document " + d.Id); - } - } - } - - protected override void OnPreRender(EventArgs e) - { - base.OnPreRender(e); - - ScriptManager.GetCurrent(Page).Services.Add(new ServiceReference("../webservices/publication.asmx")); - ScriptManager.GetCurrent(Page).Services.Add(new ServiceReference("../webservices/legacyAjaxCalls.asmx")); - } - - ///

- /// masterPagePrefix control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Literal masterPagePrefix; - - /// - /// JsInclude1 control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::ClientDependency.Core.Controls.JsInclude JsInclude1; - - /// - /// TheForm control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Panel TheForm; - - /// - /// PublishAll control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.CheckBox PublishAll; - - /// - /// PublishUnpublishedItems control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.CheckBox PublishUnpublishedItems; - - /// - /// ok control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Button ok; - - /// - /// ProgBar1 control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::umbraco.uicontrols.ProgressBar ProgBar1; - - /// - /// theEnd control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Panel theEnd; - - /// - /// feedbackMsg control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::umbraco.uicontrols.Feedback feedbackMsg; - } -} diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/nodeFactory/Node.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/nodeFactory/Node.cs index 104c30f827..8ec10f2c2c 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/nodeFactory/Node.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/nodeFactory/Node.cs @@ -1,5 +1,4 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; @@ -24,9 +23,7 @@ namespace umbraco.NodeFactory [XmlType(Namespace = "http://umbraco.org/webservices/")] public class Node : INode { - private Hashtable _aliasToNames = new Hashtable(); - - private bool _initialized = false; + private bool _initialized = false; private Nodes _children = new Nodes(); private Node _parent = null; private int _id; diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/settings/stylesheet/property/EditStyleSheetProperty.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/settings/stylesheet/property/EditStyleSheetProperty.aspx.cs index 9e9e4b7802..5edefcc594 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/settings/stylesheet/property/EditStyleSheetProperty.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/settings/stylesheet/property/EditStyleSheetProperty.aspx.cs @@ -25,7 +25,6 @@ namespace umbraco.cms.presentation.settings.stylesheet } private businesslogic.web.StylesheetProperty _stylesheetproperty; - private DropDownList _ddl = new DropDownList(); protected void Page_Load(object sender, EventArgs e) { diff --git a/src/umbraco.controls/TabPage.cs b/src/umbraco.controls/TabPage.cs index aae552de98..8f065116a0 100644 --- a/src/umbraco.controls/TabPage.cs +++ b/src/umbraco.controls/TabPage.cs @@ -16,7 +16,6 @@ namespace umbraco.uicontrols { // Ensure that a TabPage cannot be instatiated outside // this assembly -> New instances of a tabpage can only be retrieved through the tabview private bool _hasMenu = true; - private readonly ScrollingMenu _menu = new ScrollingMenu(); protected LiteralControl ErrorHeaderControl = new LiteralControl(); private LiteralControl _closeButtonControl = new LiteralControl(); private readonly ValidationSummary _vs = new ValidationSummary(); diff --git a/src/umbraco.editorControls/tinyMCE3/TinyMCE.cs b/src/umbraco.editorControls/tinyMCE3/TinyMCE.cs deleted file mode 100644 index f6ec580a3d..0000000000 --- a/src/umbraco.editorControls/tinyMCE3/TinyMCE.cs +++ /dev/null @@ -1,623 +0,0 @@ -using System; -using System.Collections; -using System.Text.RegularExpressions; -using System.Web; -using System.Web.UI; -using Umbraco.Core.Configuration; -using Umbraco.Core.Logging; -using umbraco.BasePages; -using umbraco.BusinessLogic; -using umbraco.cms.businesslogic.web; -using umbraco.editorControls.tinymce; -using umbraco.editorControls.tinyMCE3.webcontrol; -using umbraco.editorControls.wysiwyg; -using umbraco.interfaces; -using Umbraco.Core.IO; -using umbraco.presentation; -using umbraco.uicontrols; - -namespace umbraco.editorControls.tinyMCE3 -{ - [Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")] - public class TinyMCE : TinyMCEWebControl, IDataEditor, IMenuElement - { - private readonly string _activateButtons = ""; - private readonly string _advancedUsers = ""; - private readonly SortedList _buttons = new SortedList(); - private readonly IData _data; - private readonly string _disableButtons = "help,visualaid,"; - private readonly string _editorButtons = ""; - private readonly bool _enableContextMenu; - private readonly bool _fullWidth; - private readonly int _height; - private readonly SortedList _mceButtons = new SortedList(); - private readonly ArrayList _menuIcons = new ArrayList(); - private readonly bool _showLabel; - private readonly ArrayList _stylesheets = new ArrayList(); - private readonly int _width; - - private readonly int m_maxImageWidth = 500; - private bool _isInitialized; - private string _plugins = ""; - - public TinyMCE(IData Data, string Configuration) - { - _data = Data; - try - { - string[] configSettings = Configuration.Split("|".ToCharArray()); - - if (configSettings.Length > 0) - { - _editorButtons = configSettings[0]; - - if (configSettings.Length > 1) - if (configSettings[1] == "1") - _enableContextMenu = true; - - if (configSettings.Length > 2) - _advancedUsers = configSettings[2]; - - if (configSettings.Length > 3) - { - if (configSettings[3] == "1") - _fullWidth = true; - else if (configSettings[4].Split(',').Length > 1) - { - _width = int.Parse(configSettings[4].Split(',')[0]); - _height = int.Parse(configSettings[4].Split(',')[1]); - } - } - - // default width/height - if (_width < 1) - _width = 500; - if (_height < 1) - _height = 400; - - // add stylesheets - if (configSettings.Length > 4) - { - foreach (string s in configSettings[5].Split(",".ToCharArray())) - _stylesheets.Add(s); - } - - if (configSettings.Length > 6 && configSettings[6] != "") - _showLabel = bool.Parse(configSettings[6]); - - if (configSettings.Length > 7 && configSettings[7] != "") - m_maxImageWidth = int.Parse(configSettings[7]); - - // sizing - if (!_fullWidth) - { - config.Add("width", _width.ToString()); - config.Add("height", _height.ToString()); - } - - if (_enableContextMenu) - _plugins += ",contextmenu"; - - - // If the editor is used in umbraco, use umbraco's own toolbar - bool onFront = false; - if (GlobalSettings.RequestIsInUmbracoApplication(HttpContext.Current)) - { - config.Add("theme_umbraco_toolbar_location", "external"); - config.Add("skin", "umbraco"); - config.Add("inlinepopups_skin ", "umbraco"); - } - else - { - onFront = true; - config.Add("theme_umbraco_toolbar_location", "top"); - } - - // load plugins - IDictionaryEnumerator pluginEnum = tinyMCEConfiguration.Plugins.GetEnumerator(); - while (pluginEnum.MoveNext()) - { - var plugin = (tinyMCEPlugin)pluginEnum.Value; - if (plugin.UseOnFrontend || (!onFront && !plugin.UseOnFrontend)) - _plugins += "," + plugin.Name; - } - - // add the umbraco overrides to the end - // NB: It is !!REALLY IMPORTANT!! that these plugins are added at the end - // as they make runtime modifications to default plugins, so require - // those plugins to be loaded first. - _plugins += ",umbracopaste,umbracolink,umbracocontextmenu"; - - if (_plugins.StartsWith(",")) - _plugins = _plugins.Substring(1, _plugins.Length - 1); - if (_plugins.EndsWith(",")) - _plugins = _plugins.Substring(0, _plugins.Length - 1); - - config.Add("plugins", _plugins); - - // Check advanced settings - if (UmbracoEnsuredPage.CurrentUser != null && ("," + _advancedUsers + ",").IndexOf("," + UmbracoEnsuredPage.CurrentUser.UserType.Id + ",") > - -1) - config.Add("umbraco_advancedMode", "true"); - else - config.Add("umbraco_advancedMode", "false"); - - // Check maximum image width - config.Add("umbraco_maximumDefaultImageWidth", m_maxImageWidth.ToString()); - - // Styles - string cssFiles = String.Empty; - string styles = string.Empty; - foreach (string styleSheetId in _stylesheets) - { - if (styleSheetId.Trim() != "") - try - { - var s = StyleSheet.GetStyleSheet(int.Parse(styleSheetId), false, false); - - if (s.nodeObjectType == StyleSheet.ModuleObjectType) - { - cssFiles += IOHelper.ResolveUrl(SystemDirectories.Css + "/" + s.Text + ".css"); - - foreach (StylesheetProperty p in s.Properties) - { - if (styles != string.Empty) - { - styles += ";"; - } - if (p.Alias.StartsWith(".")) - styles += p.Text + "=" + p.Alias; - else - styles += p.Text + "=" + p.Alias; - } - - cssFiles += ","; - } - } - catch (Exception ee) - { - LogHelper.Error("Error adding stylesheet to tinymce Id:" + styleSheetId, ee); - } - } - // remove any ending comma (,) - if (!string.IsNullOrEmpty(cssFiles)) - { - cssFiles = cssFiles.TrimEnd(','); - } - - // language - string userLang = (UmbracoEnsuredPage.CurrentUser != null) ? - (User.GetCurrent().Language.Contains("-") ? - User.GetCurrent().Language.Substring(0, User.GetCurrent().Language.IndexOf("-")) : User.GetCurrent().Language) - : "en"; - config.Add("language", userLang); - - config.Add("content_css", cssFiles); - config.Add("theme_umbraco_styles", styles); - - // Add buttons - IDictionaryEnumerator ide = tinyMCEConfiguration.Commands.GetEnumerator(); - while (ide.MoveNext()) - { - var cmd = (tinyMCECommand)ide.Value; - if (_editorButtons.IndexOf("," + cmd.Alias + ",") > -1) - _activateButtons += cmd.Alias + ","; - else - _disableButtons += cmd.Alias + ","; - } - - if (_activateButtons.Length > 0) - _activateButtons = _activateButtons.Substring(0, _activateButtons.Length - 1); - if (_disableButtons.Length > 0) - _disableButtons = _disableButtons.Substring(0, _disableButtons.Length - 1); - - // Add buttons - initButtons(); - _activateButtons = ""; - - int separatorPriority = 0; - ide = _mceButtons.GetEnumerator(); - while (ide.MoveNext()) - { - string mceCommand = ide.Value.ToString(); - var curPriority = (int)ide.Key; - - // Check priority - if (separatorPriority > 0 && - Math.Floor(decimal.Parse(curPriority.ToString()) / 10) > - Math.Floor(decimal.Parse(separatorPriority.ToString()) / 10)) - _activateButtons += "separator,"; - - _activateButtons += mceCommand + ","; - - separatorPriority = curPriority; - } - - - config.Add("theme_umbraco_buttons1", _activateButtons); - config.Add("theme_umbraco_buttons2", ""); - config.Add("theme_umbraco_buttons3", ""); - config.Add("theme_umbraco_toolbar_align", "left"); - config.Add("theme_umbraco_disable", _disableButtons); - - config.Add("theme_umbraco_path ", "true"); - config.Add("extended_valid_elements", "div[*]"); - config.Add("document_base_url", "/"); - config.Add("relative_urls", "false"); - config.Add("remove_script_host", "true"); - config.Add("event_elements", "div"); - config.Add("paste_auto_cleanup_on_paste", "true"); - - config.Add("valid_elements", - tinyMCEConfiguration.ValidElements.Substring(1, - tinyMCEConfiguration.ValidElements.Length - - 2)); - config.Add("invalid_elements", tinyMCEConfiguration.InvalidElements); - - // custom commands - if (tinyMCEConfiguration.ConfigOptions.Count > 0) - { - ide = tinyMCEConfiguration.ConfigOptions.GetEnumerator(); - while (ide.MoveNext()) - { - config.Add(ide.Key.ToString(), ide.Value.ToString()); - } - } - - //if (HttpContext.Current.Request.Path.IndexOf(Umbraco.Core.IO.SystemDirectories.Umbraco) > -1) - // config.Add("language", User.GetUser(BasePage.GetUserId(BasePage.umbracoUserContextID)).Language); - //else - // config.Add("language", System.Threading.Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName); - - if (_fullWidth) - { - config.Add("auto_resize", "true"); - base.Columns = 30; - base.Rows = 30; - } - else - { - base.Columns = 0; - base.Rows = 0; - } - EnableViewState = false; - } - } - catch (Exception ex) - { - throw new ArgumentException("Incorrect TinyMCE configuration.", "Configuration", ex); - } - } - - #region TreatAsRichTextEditor - - public virtual bool TreatAsRichTextEditor - { - get { return false; } - } - - #endregion - - #region ShowLabel - - public virtual bool ShowLabel - { - get { return _showLabel; } - } - - #endregion - - #region Editor - - public Control Editor - { - get { return this; } - } - - #endregion - - #region Save() - - public virtual void Save() - { - string parsedString = base.Text.Trim(); - string parsedStringForTinyMce = parsedString; - if (parsedString != string.Empty) - { - parsedString = replaceMacroTags(parsedString).Trim(); - - // tidy html - refactored, see #30534 - if (UmbracoConfig.For.UmbracoSettings().Content.TidyEditorContent) - { - // always wrap in a
- using

was a bad idea - parsedString = "

" + parsedString + "
"; - - string tidyTxt = library.Tidy(parsedString, false); - if (tidyTxt != "[error]") - { - parsedString = tidyTxt; - - // remove pesky \r\n, and other empty chars - parsedString = parsedString.Trim(new char[] { '\r', '\n', '\t', ' ' }); - - // compensate for breaking macro tags by tidy (?) - parsedString = parsedString.Replace("/?>", "/>"); - - // remove the wrapping
- safer to check that it is still here - if (parsedString.StartsWith("
") && parsedString.EndsWith("
")) - parsedString = parsedString.Substring("
".Length, parsedString.Length - "
".Length); - } - } - - // rescue umbraco tags - parsedString = parsedString.Replace("|||?", "").Replace("|*|", "\""); - - // fix images - parsedString = tinyMCEImageHelper.cleanImages(parsedString); - - // parse current domain and instances of slash before anchor (to fix anchor bug) - // NH 31-08-2007 - if (HttpContext.Current.Request.ServerVariables != null) - { - parsedString = parsedString.Replace(helper.GetBaseUrl(HttpContext.Current) + "/#", "#"); - parsedString = parsedString.Replace(helper.GetBaseUrl(HttpContext.Current), ""); - } - // if a paragraph is empty, remove it - if (parsedString.ToLower() == "

") - parsedString = ""; - - // save string after all parsing is done, but before CDATA replacement - to put back into TinyMCE - parsedStringForTinyMce = parsedString; - - //Allow CDATA nested into RTE without exceptions - // GE 2012-01-18 - parsedString = parsedString.Replace("").Replace("]]>", ""); - } - - _data.Value = parsedString; - - // update internal webcontrol value with parsed result - base.Text = parsedStringForTinyMce; - } - - #endregion - - public virtual string Plugins - { - get { return _plugins; } - set { _plugins = value; } - } - - public object[] MenuIcons - { - get - { - initButtons(); - - var tempIcons = new object[_menuIcons.Count]; - for (int i = 0; i < _menuIcons.Count; i++) - tempIcons[i] = _menuIcons[i]; - return tempIcons; - } - } - - - #region IMenuElement Members - - public string ElementName - { - get { return "div"; } - } - - public string ElementIdPreFix - { - get { return "umbTinymceMenu"; } - } - - public string ElementClass - { - get { return "tinymceMenuBar"; } - } - - public int ExtraMenuWidth - { - get - { - initButtons(); - return _buttons.Count * 40 + 300; - } - } - - #endregion - - protected override void OnLoad(EventArgs e) - { - try - { - // add current page info - base.NodeId = ((cms.businesslogic.datatype.DefaultData)_data).NodeId; - if (NodeId != 0) - { - base.VersionId = ((cms.businesslogic.datatype.DefaultData)_data).Version; - config.Add("theme_umbraco_pageId", base.NodeId.ToString()); - config.Add("theme_umbraco_versionId", base.VersionId.ToString()); - - // we'll need to make an extra check for the liveediting as that value is set after the constructor have initialized - config.Add("umbraco_toolbar_id", - ElementIdPreFix + - ((cms.businesslogic.datatype.DefaultData)_data).PropertyId); - } - else - { - // this is for use when tinymce is used for non default Umbraco pages - config.Add("umbraco_toolbar_id", - ElementIdPreFix + "_" + this.ClientID); - } - } - catch - { - // Empty catch as this is caused by the document doesn't exists yet, - // like when using this on an autoform, partly replaced by the if/else check on nodeId above though - } - base.OnLoad(e); - } - - protected override void OnInit(EventArgs e) - { - base.OnInit(e); - //Allow CDATA nested into RTE without exceptions - // GE 2012-01-18 - if (_data != null && _data.Value != null) - base.Text = _data.Value.ToString().Replace("", "", "]]>"); - } - - private string replaceMacroTags(string text) - { - while (findStartTag(text) > -1) - { - string result = text.Substring(findStartTag(text), findEndTag(text) - findStartTag(text)); - text = text.Replace(result, generateMacroTag(result)); - } - return text; - } - - private string generateMacroTag(string macroContent) - { - string macroAttr = macroContent.Substring(5, macroContent.IndexOf(">") - 5); - string macroTag = "|||?UMBRACO_MACRO "; - Hashtable attributes = ReturnAttributes(macroAttr); - IDictionaryEnumerator ide = attributes.GetEnumerator(); - while (ide.MoveNext()) - { - if (ide.Key.ToString().IndexOf("umb_") != -1) - { - // Hack to compensate for Firefox adding all attributes as lowercase - string orgKey = ide.Key.ToString(); - if (orgKey == "umb_macroalias") - orgKey = "umb_macroAlias"; - - macroTag += orgKey.Substring(4, orgKey.Length - 4) + "=|*|" + - ide.Value.ToString().Replace("\\r\\n", Environment.NewLine) + "|*| "; - } - } - macroTag += "/|||"; - - return macroTag; - } - - [Obsolete("Has been superceded by Umbraco.Core.XmlHelper.GetAttributesFromElement")] - public static Hashtable ReturnAttributes(String tag) - { - var h = new Hashtable(); - foreach (var i in Umbraco.Core.XmlHelper.GetAttributesFromElement(tag)) - { - h.Add(i.Key, i.Value); - } - return h; - } - - private int findStartTag(string text) - { - string temp = ""; - text = text.ToLower(); - if (text.IndexOf("ismacro=\"true\"") > -1) - { - temp = text.Substring(0, text.IndexOf("ismacro=\"true\"")); - return temp.LastIndexOf("<"); - } - return -1; - } - - private int findEndTag(string text) - { - string find = ""; - - int endMacroIndex = text.ToLower().IndexOf(find); - string tempText = text.ToLower().Substring(endMacroIndex + find.Length, - text.Length - endMacroIndex - find.Length); - int finalEndPos = 0; - while (tempText.Length > 5) - if (tempText.Substring(finalEndPos, 6) == "
") - break; - else - finalEndPos++; - - return endMacroIndex + find.Length + finalEndPos + 6; - } - - private void initButtons() - { - if (!_isInitialized) - { - _isInitialized = true; - - // Add icons for the editor control: - // Html - // Preview - // Style picker, showstyles - // Bold, italic, Text Gen - // Align: left, center, right - // Lists: Bullet, Ordered, indent, undo indent - // Link, Anchor - // Insert: Image, macro, table, formular - - foreach (string button in _activateButtons.Split(',')) - { - if (button.Trim() != "") - { - try - { - var cmd = (tinyMCECommand)tinyMCEConfiguration.Commands[button]; - - string appendValue = ""; - if (cmd.Value != "") - appendValue = ", '" + cmd.Value + "'"; - _mceButtons.Add(cmd.Priority, cmd.Command); - _buttons.Add(cmd.Priority, - new editorButton(cmd.Alias, ui.Text("buttons", cmd.Alias), cmd.Icon, - "tinyMCE.execInstanceCommand('" + ClientID + "', '" + - cmd.Command + "', " + cmd.UserInterface + appendValue + ")")); - } - catch (Exception ee) - { - LogHelper.Error(string.Format("TinyMCE: Error initializing button '{0}'", button), ee); - } - } - } - - // add save icon - int separatorPriority = 0; - IDictionaryEnumerator ide = _buttons.GetEnumerator(); - while (ide.MoveNext()) - { - object buttonObj = ide.Value; - var curPriority = (int)ide.Key; - - // Check priority - if (separatorPriority > 0 && - Math.Floor(decimal.Parse(curPriority.ToString()) / 10) > - Math.Floor(decimal.Parse(separatorPriority.ToString()) / 10)) - _menuIcons.Add("|"); - - try - { - var e = (editorButton)buttonObj; - - MenuIconI menuItem = new MenuIconClass(); - - menuItem.OnClickCommand = e.onClickCommand; - menuItem.ImageURL = e.imageUrl; - menuItem.AltText = e.alttag; - menuItem.ID = e.id; - _menuIcons.Add(menuItem); - } - catch - { - } - - separatorPriority = curPriority; - } - } - } - } -} \ No newline at end of file diff --git a/src/umbraco.editorControls/tinyMCE3/tinymce3dataType.cs b/src/umbraco.editorControls/tinyMCE3/tinymce3dataType.cs deleted file mode 100644 index dfc2f54d61..0000000000 --- a/src/umbraco.editorControls/tinyMCE3/tinymce3dataType.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Umbraco.Core; - -namespace umbraco.editorControls.tinyMCE3 -{ - [Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")] - public class tinyMCE3dataType : umbraco.cms.businesslogic.datatype.BaseDataType, umbraco.interfaces.IDataType - { - private umbraco.interfaces.IDataEditor _Editor; - private umbraco.interfaces.IData _baseData; - private umbraco.interfaces.IDataPrevalue _prevalueeditor; - - public override umbraco.interfaces.IDataEditor DataEditor - { - get - { - if (_Editor == null) - _Editor = new TinyMCE(Data, ((umbraco.editorControls.tinymce.tinyMCEPreValueConfigurator)PrevalueEditor).Configuration); - return _Editor; - } - } - - public override umbraco.interfaces.IData Data - { - get - { - if (_baseData == null) - _baseData = new cms.businesslogic.datatype.DefaultData(this); - return _baseData; - } - } - public override Guid Id - { - get { return new Guid(Constants.PropertyEditors.TinyMCEv3); } - } - - public override string DataTypeName - { - get { return "TinyMCE v3 wysiwyg"; } - } - - public override umbraco.interfaces.IDataPrevalue PrevalueEditor - { - get - { - if (_prevalueeditor == null) - _prevalueeditor = new tinymce.tinyMCEPreValueConfigurator(this); - return _prevalueeditor; - } - } - } -} diff --git a/src/umbraco.editorControls/tinyMCE3/webcontrol/TinyMCEWebControl.cs b/src/umbraco.editorControls/tinyMCE3/webcontrol/TinyMCEWebControl.cs deleted file mode 100644 index 313e2326ed..0000000000 --- a/src/umbraco.editorControls/tinyMCE3/webcontrol/TinyMCEWebControl.cs +++ /dev/null @@ -1,397 +0,0 @@ -using System; -using System.Linq; -using System.Text; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Collections; -using System.Collections.Specialized; -using System.Text.RegularExpressions; -using Umbraco.Core; -using Umbraco.Core.IO; -using Umbraco.Core.Logging; -using Umbraco.Core.Models; -using ClientDependency.Core.Controls; -using ClientDependency.Core; -using File = System.IO.File; - -namespace umbraco.editorControls.tinyMCE3.webcontrol -{ - [Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")] - public class TinyMCEWebControl : TextBox - { - internal readonly MediaFileSystem _fs; - - public NameValueCollection config = new NameValueCollection(); - private string temp; - - private int _nodeId = 0; - private Guid _versionId; - - public int NodeId - { - set { _nodeId = value; } - get { return _nodeId; } - } - - public Guid VersionId - { - set { _versionId = value; } - get { return _versionId; } - } - - public string InstallPath - { - get - { - if (installPath == null) - installPath = this.config["InstallPath"]; - - return installPath; - } - set { installPath = value; } - } - - #region private - private static readonly object TextChangedEvent = new object(); - private int rows = 10; - private int cols = 70; - private bool gzipEnabled, merged; - private string installPath, mode; - private System.Text.StringBuilder m_scriptInitBlock = new StringBuilder(); - #endregion - - public TinyMCEWebControl() - : base() - { - _fs = FileSystemProviderManager.Current.GetFileSystemProvider(); - - base.TextMode = TextBoxMode.MultiLine; - base.Attributes.Add("style", "visibility: hidden"); - config.Add("mode", "exact"); - config.Add("theme", "umbraco"); - config.Add("umbraco_path", global::Umbraco.Core.IO.IOHelper.ResolveUrl(global::Umbraco.Core.IO.SystemDirectories.Umbraco)); - CssClass = "tinymceContainer"; - plugin.ConfigSection configSection = (plugin.ConfigSection)System.Web.HttpContext.Current.GetSection("TinyMCE"); - - if (configSection != null) - { - this.installPath = configSection.InstallPath; - this.mode = configSection.Mode; - this.gzipEnabled = configSection.GzipEnabled; - - // Copy items into local config collection - foreach (string key in configSection.GlobalSettings.Keys) - this.config[key] = configSection.GlobalSettings[key]; - } - else - { - configSection = new plugin.ConfigSection(); - configSection.GzipExpiresOffset = TimeSpan.FromDays(10).Ticks; - this.gzipEnabled = false; - this.InstallPath = umbraco.editorControls.tinymce.tinyMCEConfiguration.JavascriptPath; - - } - - } - - protected override void OnPreRender(EventArgs e) - { - base.OnPreRender(e); - // update macro's and images in text - if (_nodeId != 0) - { - base.Text = ParseMacrosToHtml(FormatMedia(base.Text)); - } - - } - - protected override void Render(HtmlTextWriter writer) - { - base.Render(writer); - // add a marker to tell Live Editing when a tinyMCE control is on the page - writer.Write(""); - } - - protected override void OnLoad(EventArgs args) - { - this.config["elements"] = this.ClientID; - - - bool first = true; - - //TinyMCE uses it's own compressor so leave it up to ScriptManager to render - ScriptManager.RegisterClientScriptInclude(this, this.GetType(), _versionId.ToString(), this.ScriptURI); - - // Write script tag start - m_scriptInitBlock.Append(HtmlTextWriter.TagLeftChar.ToString()); - m_scriptInitBlock.Append("script"); - m_scriptInitBlock.Append(" type=\"text/javascript\""); - m_scriptInitBlock.Append(HtmlTextWriter.TagRightChar.ToString()); - m_scriptInitBlock.Append("\n"); - - m_scriptInitBlock.Append("tinyMCE.init({\n"); - - // Write options - foreach (string key in this.config.Keys) - { - //TODO: This is a hack to test if we can prevent tinymce from automatically download languages - string val = this.config[key]; - - if (!first) - m_scriptInitBlock.Append(",\n"); - else - first = false; - - // Is boolean state or string - if (val == "true" || val == "false") - m_scriptInitBlock.Append(key + ":" + this.config[key]); - else - m_scriptInitBlock.Append(key + ":'" + this.config[key] + "'"); - } - - m_scriptInitBlock.Append("\n});\n"); - - - // Write script tag end - m_scriptInitBlock.Append(HtmlTextWriter.EndTagLeftChars); - m_scriptInitBlock.Append("script"); - m_scriptInitBlock.Append(HtmlTextWriter.TagRightChar.ToString()); - - - } - - - string ScriptURI - { - get - { - string suffix = "", outURI; - - if (this.InstallPath == null) - throw new Exception("Required installPath setting is missing, add it to your web.config. You can also add it directly to your tinymce:TextArea element using InstallPath but the web.config method is recommended since it allows you to switch over to gzip compression."); - - if (this.mode != null) - suffix = "_" + this.mode; - - outURI = this.InstallPath + "/tiny_mce_src" + suffix + ".js"; - if (!File.Exists(global::Umbraco.Core.IO.IOHelper.MapPath(outURI))) - throw new Exception("Could not locate TinyMCE by URI:" + outURI + ", Physical path:" + global::Umbraco.Core.IO.IOHelper.MapPath(outURI) + ". Make sure that you configured the installPath to a valid location in your web.config. This path should be an relative or site absolute URI to where TinyMCE is located."); - - // Collect themes, languages and plugins and build gzip URI - // TODO: Make sure gzip is re-enabled - this.gzipEnabled = true; - if (this.gzipEnabled) - { - ArrayList themes = new ArrayList(), plugins = new ArrayList(), languages = new ArrayList(); - - // Add themes - if (config["theme"] == null) - config["theme"] = "simple"; - - foreach (string theme in config["theme"].Split(',')) - { - string themeVal = theme.Trim(); - - if (themes.IndexOf(themeVal) == -1) - themes.Add(themeVal); - } - - // Add plugins - if (config["plugins"] != null) - { - foreach (string plugin in config["plugins"].Split(',')) - { - string pluginVal = plugin.Trim(); - - if (plugins.IndexOf(pluginVal) == -1) - plugins.Add(pluginVal); - } - } - - // Add language - if (config["language"] == null) - config["language"] = "en"; - - if (languages.IndexOf(config["language"]) == -1) - languages.Add(config["language"]); - - // NH: No clue why these extra dashes are added, but the affect other parts of the implementation - // Skip loading of themes and plugins - // area.config["theme"] = "-" + area.config["theme"]; - - // if (area.config["plugins"] != null) - // area.config["plugins"] = "-" + String.Join(",-", area.config["plugins"].Split(',')); - - // Build output URI - // NH: Use versionId for randomize to ensure we don't download a new tinymce on every single call - outURI = umbraco.editorControls.tinymce.tinyMCEConfiguration.PluginPath + "/tinymce3tinymceCompress.aspx?rnd=" + this._versionId.ToString() + "&module=gzipmodule"; - - if (themes.Count > 0) - outURI += "&themes=" + String.Join(",", ((string[])themes.ToArray(typeof(string)))); - - if (plugins.Count > 0) - outURI += "&plugins=" + String.Join(",", ((string[])plugins.ToArray(typeof(string)))); - - if (languages.Count > 0) - outURI += "&languages=" + String.Join(",", ((string[])languages.ToArray(typeof(string)))); - } - - return outURI; - } - } - - - private string FormatMedia(string html) - { - // root media url - var rootMediaUrl = _fs.GetUrl(""); - - // Find all media images - var pattern = string.Format("]*src=\"(?{0}[^\"]*)\" [^>]*>", rootMediaUrl); - - var tags = Regex.Matches(html, pattern, RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace); - - foreach (Match tag in tags) - { - if (tag.Groups.Count <= 0) - continue; - - // Replace /> to ensure we're in old-school html mode - var tempTag = "", " >"), - "(?\\S*)=\"(?[^\"]*)\"|(?\\S*)=(?[^\"|\\s]*)\\s", - RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace); - - //GE: Add ContainsKey check and expand the ifs for readability - foreach (Match attributeSet in m) - { - if (attributeSet.Groups["attributeName"].Value.ToLower() != "src" && ht.ContainsKey(attributeSet.Groups["attributeName"].Value) == false) - { - ht.Add(attributeSet.Groups["attributeName"].Value, attributeSet.Groups["attributeValue"].Value); - } - } - - // build the element - // Build image tag - var ide = ht.GetEnumerator(); - while (ide.MoveNext()) - tempTag += string.Format(" {0}=\"{1}\"", ide.Key, ide.Value); - - orgSrc = IOHelper.ResolveUrl(orgSrc.Replace("%20", " ")); - - var mediaService = ApplicationContext.Current.Services.MediaService; - var imageMedia = mediaService.GetMediaByPath(orgSrc); - - if (imageMedia == null) - { - tempTag = string.Format("{0} src=\"{1}\" />", tempTag, IOHelper.ResolveUrl(orgSrc)); - } - else - { - // We're doing .Any checks here instead of FirstOrDefault because the default value of Properties - // is not null but default(KeyedCollection). This is a bit easier to read. - // To clarify: imageMedia.Properties.FirstOrDefault(x => x.Alias == "umbracoWidth") == null; will NOT work. - - var widthValue = string.Empty; - if (imageMedia.Properties.Any(x => x.Alias == "umbracoWidth")) - widthValue = imageMedia.Properties.First(x => x.Alias == "umbracoWidth").Value.ToString(); - - var heightValue = string.Empty; - if (imageMedia.Properties.Any(x => x.Alias == "umbracoHeight")) - heightValue = imageMedia.Properties.First(x => x.Alias == "umbracoHeight").Value.ToString(); - - // Format the tag - if (imageMedia.Properties.Any(x => x.Alias == "umbracoFile")) - { - var umbracoFileProperty = imageMedia.Properties.First(x => x.Alias == "umbracoFile"); - tempTag = string.Format("{0} rel=\"{1},{2}\" src=\"{3}\" />", tempTag, widthValue, heightValue, umbracoFileProperty.Value); - } - } - - html = html.Replace(tag.Value, tempTag); - } - - return html; - } - - private string ParseMacrosToHtml(string input) - { - int nodeId = _nodeId; - Guid versionId = _versionId; - string content = input; - - - string pattern = @"(<\?UMBRACO_MACRO\W*[^>]*/>)"; - MatchCollection tags = - Regex.Matches(content, pattern, RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace); - - // Page for macro rendering - // page p = new page(nodeId, versionId); - - - System.Web.HttpContext.Current.Items["macrosAdded"] = 0; - System.Web.HttpContext.Current.Items["pageID"] = nodeId.ToString(); - - foreach (Match tag in tags) - { - try - { - // Create div - Hashtable attributes = helper.ReturnAttributes(tag.Groups[1].Value); - string div = macro.RenderMacroStartTag(attributes, nodeId, versionId); //.Replace(""", "&quot;"); - - // Insert macro contents here... - macro m; - if (helper.FindAttribute(attributes, "macroID") != "") - m = macro.GetMacro(int.Parse(helper.FindAttribute(attributes, "macroID"))); - else - { - // legacy: Check if the macroAlias is typed in lowercasing - string macroAlias = helper.FindAttribute(attributes, "macroAlias"); - if (macroAlias == "") - { - macroAlias = helper.FindAttribute(attributes, "macroalias"); - attributes.Remove("macroalias"); - attributes.Add("macroAlias", macroAlias); - } - - if (macroAlias != "") - m = macro.GetMacro(macroAlias); - else - throw new ArgumentException("umbraco is unable to identify the macro. No id or macroalias was provided for the macro in the macro tag.", tag.Groups[1].Value); - } - - if (helper.FindAttribute(attributes, "macroAlias") == "") - attributes.Add("macroAlias", m.Alias); - - - try - { - div += macro.MacroContentByHttp(nodeId, versionId, attributes); - } - catch - { - div += "No macro content available for WYSIWYG editing"; - } - - - div += macro.RenderMacroEndTag(); - content = content.Replace(tag.Groups[1].Value, div); - } - catch (Exception ee) - { - LogHelper.Error("Macro Parsing Error", ee); - string div = "

umbraco was unable to parse a macro tag, which means that parts of this content might be corrupt.

Best solution is to rollback to a previous version by right clicking the node in the tree and then try to insert the macro again.

Please report this to your system administrator as well - this error has been logged.

"; - content = content.Replace(tag.Groups[1].Value, div); - } - - } - return content; - } - } -} diff --git a/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/ConfigSection.cs b/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/ConfigSection.cs deleted file mode 100644 index 7f5ef2421f..0000000000 --- a/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/ConfigSection.cs +++ /dev/null @@ -1,97 +0,0 @@ -/* - * $Id: ConfigSection.cs 439 2007-11-26 13:26:10Z spocke $ - * - * @author Moxiecode - * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved. - */ - -using System; -using System.Collections.Specialized; - -namespace umbraco.editorControls.tinyMCE3.webcontrol.plugin -{ - /// - /// Description of ConfigSection. - /// - [Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")] - public class ConfigSection - { - #region private - private NameValueCollection globalSettings; - private bool gzipEnabled, gzipDiskCache, gzipNoCompression; - private string installPath, mode, gzipCachePath; - private long gzipExpiresOffset; - #endregion - - /// - /// - /// - public ConfigSection() { - this.globalSettings = new NameValueCollection(); - } - - /// - /// - /// - public string InstallPath { - get { return installPath; } - set { installPath = value; } - } - - /// - /// - /// - public string Mode { - get { return mode; } - set { mode = value; } - } - - /// - /// - /// - public NameValueCollection GlobalSettings { - get { return globalSettings; } - set { globalSettings = value; } - } - - /// - /// - /// - public bool GzipEnabled { - get { return gzipEnabled; } - set { gzipEnabled = value; } - } - - /// - /// - /// - public long GzipExpiresOffset { - get { return gzipExpiresOffset; } - set { gzipExpiresOffset = value; } - } - - /// - /// - /// - public bool GzipDiskCache { - get { return gzipDiskCache; } - set { gzipDiskCache = value; } - } - - /// - /// - /// - public string GzipCachePath { - get { return gzipCachePath; } - set { gzipCachePath = value; } - } - - /// - /// - /// - public bool GzipNoCompression { - get { return gzipNoCompression; } - set { gzipNoCompression = value; } - } - } -} diff --git a/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/GzipCompressor.cs b/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/GzipCompressor.cs deleted file mode 100644 index cbd2fc24d8..0000000000 --- a/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/GzipCompressor.cs +++ /dev/null @@ -1,266 +0,0 @@ -/* - * $Id: GzipCompressor.cs 439 2007-11-26 13:26:10Z spocke $ - * - * @author Moxiecode - * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved. - */ - -using System; -using System.Web; -using System.Collections; -using System.IO; -using System.IO.Compression; -using System.Security.Cryptography; -using System.Text; - -namespace umbraco.editorControls.tinyMCE3.webcontrol.plugin -{ - /// - /// Description of GzipCompressor. - /// - [Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")] - public class GzipCompressor - { - #region private - private bool diskCache, noCompression; - private string cachePath; - private ArrayList items; - #endregion - - /// - /// - /// - public GzipCompressor() { - this.items = new ArrayList(); - } - - /// - /// - /// - public bool NoCompression { - get { return noCompression; } - set { noCompression = value; } - } - - /// - /// - /// - public bool DiskCache { - get { return diskCache; } - set { diskCache = value; } - } - - /// - /// - /// - public string CachePath { - get { return cachePath; } - set { cachePath = value; } - } - - /// - /// - /// - /// - public void AddFile(string path) { - //System.Web.HttpContext.Current.Response.Write(path + "\n"); - if (File.Exists(path)) - this.items.Add(new CompressItem(CompressItemType.File, path)); - else - throw new Exception("File could not be found \"" + path + "\", unable to add it for Gzip compression."); - } - - /// - /// - /// - /// - public void AddData(string data) { - this.items.Add(new CompressItem(CompressItemType.Chunk, data)); - } - - /// - /// - /// - /// - public void Compress(Stream to_stream) { - GZipStream gzipStream = null; - string key = ""; - byte[] bytes; - - // Build cache key - foreach (CompressItem item in this.items) { - if (item.Type == CompressItemType.File) - key += item.Data; - } - - key = MD5(key); - if (this.NoCompression) { - this.SendPlainText(key, to_stream); - return; - } - - // Check for cached file on disk, stream that one if it was found - if (this.DiskCache && File.Exists(Path.Combine(this.CachePath, key + ".gz"))) { - this.StreamFromTo(File.OpenRead(Path.Combine(this.CachePath, key + ".gz")), to_stream, 4096, CloseMode.InStream); - return; - } - - try { - // Build new gzipped stream - if (this.DiskCache) { - gzipStream = new GZipStream(File.OpenWrite(Path.Combine(this.CachePath, key + ".gz")), CompressionMode.Compress); - - // Compress all files into memory - foreach (CompressItem item in this.items) { - // Add file - if (item.Type == CompressItemType.File) - StreamFromTo(File.OpenRead(item.Data), gzipStream, 4096, CloseMode.InStream); - - // Add chunk - if (item.Type == CompressItemType.Chunk) { - bytes = Encoding.ASCII.GetBytes(item.Data.ToCharArray()); - gzipStream.Write(bytes, 0, bytes.Length); - } - } - - // Close gzip stream - gzipStream.Close(); - gzipStream = null; - - // Send cached file to user - this.StreamFromTo(File.OpenRead(Path.Combine(this.CachePath, key + ".gz")), to_stream, 4096, CloseMode.InStream); - } else { - gzipStream = new GZipStream(to_stream, CompressionMode.Compress); - - // Compress all files into output stream - foreach (CompressItem item in this.items) { - // Add file - if (item.Type == CompressItemType.File) - StreamFromTo(File.OpenRead(item.Data), gzipStream, 4096, CloseMode.InStream); - - // Add chunk - if (item.Type == CompressItemType.Chunk) { - bytes = Encoding.ASCII.GetBytes(item.Data.ToCharArray()); - gzipStream.Write(bytes, 0, bytes.Length); - } - } - } - } finally { - if (gzipStream != null) - gzipStream.Close(); - } - } - - #region private - - private void SendPlainText(string key, Stream to_stream) { - Stream fileStream = null; - byte[] bytes; - - // Check for cached file on disk, stream that one if it was found - if (this.DiskCache && File.Exists(Path.Combine(this.CachePath, key + ".js"))) { - this.StreamFromTo(File.OpenRead(Path.Combine(this.CachePath, key + ".js")), to_stream, 4096, CloseMode.InStream); - return; - } - - // Build new plain text stream - if (this.DiskCache) { - try { - fileStream = File.OpenWrite(Path.Combine(this.CachePath, key + ".js")); - - // Compress all files into memory - foreach (CompressItem item in this.items) { - // Add file - if (item.Type == CompressItemType.File) - StreamFromTo(File.OpenRead(item.Data), fileStream, 4096, CloseMode.InStream); - - // Add chunk - if (item.Type == CompressItemType.Chunk) { - bytes = Encoding.ASCII.GetBytes(item.Data.ToCharArray()); - fileStream.Write(bytes, 0, bytes.Length); - } - } - - // Close file stream - fileStream.Close(); - fileStream = null; - } finally { - // Close file stream - if (fileStream != null) - fileStream.Close(); - } - - // Send cached file to user - this.StreamFromTo(File.OpenRead(Path.Combine(this.CachePath, key + ".js")), to_stream, 4096, CloseMode.InStream); - } else { - // Concat all files into output stream - foreach (CompressItem item in this.items) { - // Add file - if (item.Type == CompressItemType.File) - StreamFromTo(File.OpenRead(item.Data), to_stream, 4096, CloseMode.InStream); - - // Add chunk - if (item.Type == CompressItemType.Chunk) { - bytes = Encoding.ASCII.GetBytes(item.Data.ToCharArray()); - to_stream.Write(bytes, 0, bytes.Length); - } - } - } - } - - private void StreamFromTo(Stream in_stream, Stream out_stream, int buff_size, CloseMode mode) { - byte[] buff = new byte[buff_size]; - int len; - - try { - while ((len = in_stream.Read(buff, 0, buff_size)) > 0) { - out_stream.Write(buff, 0, len); - out_stream.Flush(); - } - } finally { - if (in_stream != null && (mode == CloseMode.Both || mode == CloseMode.InStream)) - in_stream.Close(); - - if (out_stream != null && (mode == CloseMode.Both || mode == CloseMode.OutStream)) - out_stream.Close(); - } - } - - private string MD5(string str) { - MD5 md5 = new MD5CryptoServiceProvider(); - byte[] result = md5.ComputeHash(Encoding.ASCII.GetBytes(str)); - str = BitConverter.ToString(result); - - return str.Replace("-", ""); - } - - #endregion - } - - enum CloseMode { - None, InStream, OutStream, Both - } - - enum CompressItemType { - File, Chunk - } - - class CompressItem { - private string data; - private CompressItemType type; - - public CompressItem(CompressItemType type, string data) { - this.type = type; - this.data = data; - } - - public string Data { - get { return data; } - set { data = value; } - } - - public CompressItemType Type { - get { return type; } - } - } -} diff --git a/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/GzipModule.cs b/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/GzipModule.cs deleted file mode 100644 index 0224ae4d05..0000000000 --- a/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/GzipModule.cs +++ /dev/null @@ -1,123 +0,0 @@ -/* - * $Id: GzipModule.cs 439 2007-11-26 13:26:10Z spocke $ - * - * @author Moxiecode - * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved. - */ - -using System; -using System.Web; -using System.Text.RegularExpressions; -using System.IO; -using Umbraco.Core.IO; - -namespace umbraco.editorControls.tinyMCE3.webcontrol.plugin -{ - /// - /// Description of HttpHandler. - /// - [Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")] - public class GzipModule : IModule - { - /// - /// Request context. - public void ProcessRequest(HttpContext context) - { - HttpRequest request = context.Request; - HttpResponse response = context.Response; - HttpServerUtility server = context.Server; - GzipCompressor gzipCompressor = new GzipCompressor(); - ConfigSection configSection = (ConfigSection)System.Web.HttpContext.Current.GetSection("TinyMCE"); - string suffix = "", enc; - string[] languages = request.QueryString["languages"].Split(','); - bool supportsGzip; - - // Set response headers - response.ContentType = "text/javascript"; - response.Charset = "UTF-8"; - response.Buffer = false; - - // UMBRACO: Populate the configsection if it's empty - if (configSection == null) - { - configSection = new ConfigSection(); - configSection.GzipEnabled = true; - configSection.InstallPath = umbraco.editorControls.tinymce.tinyMCEConfiguration.JavascriptPath; - configSection.GzipExpiresOffset = TimeSpan.FromDays(10).Ticks; - } - - // Setup cache - response.Cache.SetExpires(DateTime.Now.AddTicks(configSection.GzipExpiresOffset)); - response.Cache.SetCacheability(HttpCacheability.Public); - response.Cache.SetValidUntilExpires(false); - - // Check if it supports gzip - enc = Regex.Replace("" + request.Headers["Accept-Encoding"], @"\s+", "").ToLower(); - supportsGzip = enc.IndexOf("gzip") != -1 || request.Headers["---------------"] != null; - enc = enc.IndexOf("x-gzip") != -1 ? "x-gzip" : "gzip"; - - // Handle mode/suffix - if (configSection.Mode != null) - suffix = "_" + configSection.Mode; - - gzipCompressor.AddData("var tinyMCEPreInit = {base : '" + configSection.InstallPath + "', suffix : '" + suffix + "'};"); - - // Add core - gzipCompressor.AddFile(IOHelper.MapPath(configSection.InstallPath + "/tiny_mce" + suffix + ".js")); - - // Add core languages - foreach (string lang in languages) - gzipCompressor.AddFile(IOHelper.MapPath(configSection.InstallPath + "/langs/" + lang + ".js")); - - // Add themes - if (request.QueryString["themes"] != null) - { - foreach (string theme in request.QueryString["themes"].Split(',')) - { - gzipCompressor.AddFile(IOHelper.MapPath(configSection.InstallPath + "/themes/" + theme + "/editor_template" + suffix + ".js")); - - // Add theme languages - foreach (string lang in languages) - { - string path = IOHelper.MapPath(configSection.InstallPath + "/themes/" + theme + "/langs/" + lang + ".js"); - - if (File.Exists(path)) - gzipCompressor.AddFile(path); - } - - gzipCompressor.AddData("tinymce.ThemeManager.urls['" + theme + "'] = tinymce.baseURL+'/themes/" + theme + "';"); - } - } - - // Add plugins - if (request.QueryString["plugins"] != null) - { - foreach (string plugin in request.QueryString["plugins"].Split(',')) - { - gzipCompressor.AddFile(IOHelper.MapPath(configSection.InstallPath + "/plugins/" + plugin + "/editor_plugin" + suffix + ".js")); - - // Add plugin languages - foreach (string lang in languages) - { - string path = IOHelper.MapPath(configSection.InstallPath + "/plugins/" + plugin + "/langs/" + lang + ".js"); - - if (File.Exists(path)) - gzipCompressor.AddFile(path); - } - - gzipCompressor.AddData("tinymce.ThemeManager.urls['" + plugin + "'] = tinymce.baseURL+'/plugins/" + plugin + "';"); - } - } - - // Output compressed file - gzipCompressor.NoCompression = !supportsGzip || configSection.GzipNoCompression; - if (!gzipCompressor.NoCompression) - response.AppendHeader("Content-Encoding", enc); - - gzipCompressor.DiskCache = configSection.GzipDiskCache; - gzipCompressor.CachePath = configSection.GzipCachePath; - - gzipCompressor.Compress(response.OutputStream); - } - } -} diff --git a/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/IModule.cs b/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/IModule.cs deleted file mode 100644 index 5e880a9bce..0000000000 --- a/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/IModule.cs +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Created by SharpDevelop. - * User: spocke - * Date: 2007-11-22 - * Time: 14:32 - * - * To change this template use Tools | Options | Coding | Edit Standard Headers. - */ - -using System; -using System.Web; - -namespace umbraco.editorControls.tinyMCE3.webcontrol.plugin { - /// - /// Description of IAction. - /// - [Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")] - public interface IModule - { - /// - /// - /// - /// - void ProcessRequest(HttpContext context); - } -} diff --git a/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/JSON.cs b/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/JSON.cs deleted file mode 100644 index 03a677dbba..0000000000 --- a/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/JSON.cs +++ /dev/null @@ -1,354 +0,0 @@ -/* - * $Id: JSON.cs 439 2007-11-26 13:26:10Z spocke $ - * - * Copyright © 2007, Moxiecode Systems AB, All rights reserved. - */ - -using System; -using System.IO; -using System.Collections; -using System.Collections.Specialized; - -namespace umbraco.editorControls.tinyMCE3.webcontrol.plugin -{ - /// - /// Description of JSON. - /// - [Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")] - public class JSON - { - /// - /// - /// - public static void SerializeRPC(string id, object error, object obj, Stream stream) { - JSONWriter writer = new JSONWriter(new StreamWriter(stream)); - - // Start JSON output - writer.WriteStartObject(); - writer.WritePropertyName("result"); - WriteValue(writer, obj); - - // Write id - writer.WritePropertyName("id"); - writer.WriteValue(id); - - // Write error - writer.WritePropertyName("error"); - writer.WriteValue(null); - - // Close - writer.WriteEndObject(); - writer.Close(); - } - - /// - /// - /// - /// - /// - public static void WriteObject(TextWriter writer, object obj) { - WriteValue(new JSONWriter(writer), obj); - writer.Flush(); - } - - private static void WriteValue(JSONWriter writer, object obj) { - if (obj == null) - writer.WriteNull(); - - if (obj is System.String) - writer.WriteValue((string) obj); - - if (obj is System.Boolean) - writer.WriteValue((bool) obj); - - if (obj is System.Double) - writer.WriteValue(Convert.ToDouble(obj)); - - if (obj is System.Int32) - writer.WriteValue(Convert.ToInt32(obj)); - - if (obj is System.Int64) - writer.WriteValue(Convert.ToInt64(obj)); - - if (obj is ArrayList) { - writer.WriteStartArray(); - - foreach (object val in ((ArrayList) obj)) - WriteValue(writer, val); - - writer.WriteEndArray(); - } - - if (obj is string[]) { - writer.WriteStartArray(); - - foreach (string val in ((string[]) obj)) - WriteValue(writer, val); - - writer.WriteEndArray(); - } - - if (obj is NameValueCollection) { - writer.WriteStartObject(); - - string[] keys = GetReversedKeys(obj); - foreach (string key in keys) { - writer.WritePropertyName(key); - WriteValue(writer, ((NameValueCollection) obj)[key]); - } - - writer.WriteEndObject(); - } - - if (obj is Hashtable) { - writer.WriteStartObject(); - - string[] keys = GetReversedKeys(obj); - foreach (string key in keys) { - writer.WritePropertyName((string) key); - WriteValue(writer, ((Hashtable) obj)[key]); - } - - writer.WriteEndObject(); - } - } - - private static string[] GetReversedKeys(object obj) { - ICollection keyCollection; - string[] keys; - int count; - - if (obj is Hashtable) - keyCollection = ((Hashtable) obj).Keys; - else - keyCollection = ((NameValueCollection) obj).AllKeys; - - count = keyCollection.Count; - keys = new string[count]; - - foreach (string key in keyCollection) - keys[--count] = key; - - Array.Sort(keys); - - return keys; - } - - /// - /// - /// - /// - /// - public static object ParseJSON(TextReader reader) { - return ReadValue(new JSONReader(reader)); - } - - /// - /// - /// - /// - /// - public static JSONRpcCall ParseRPC(TextReader reader) { - JSONRpcCall call = new JSONRpcCall(); - object obj = ParseJSON(reader); - Hashtable jsonRpc = (Hashtable) obj; - - call.Method = (string) jsonRpc["method"]; - call.Id = (string) jsonRpc["id"]; - call.Args = (ArrayList) jsonRpc["params"]; - - return call; - } - - #region private methods - -/* private static void Debug(string str) { - System.Web.HttpContext.Current.Trace.Write(str); - }*/ - - private static object ReadValue(JSONReader reader) { - Stack parents = new Stack(); - object cur = null; - string key = null; - object obj; - - while (reader.Read()) { - //Debug(reader.ToString()); - - switch (reader.TokenType) { - case JSONToken.Boolean: - case JSONToken.Integer: - case JSONToken.String: - case JSONToken.Float: - case JSONToken.Null: - if (cur is Hashtable) { - //Debug(key + "=" + reader.ToString()); - ((Hashtable) cur)[key] = reader.Value; - } else if (cur is ArrayList) - ((ArrayList) cur).Add(reader.Value); - else - return reader.Value; - - break; - - case JSONToken.PropertyName: - key = (string) reader.Value; - break; - - case JSONToken.StartArray: - case JSONToken.StartObject: - if (reader.TokenType == JSONToken.StartObject) - obj = new Hashtable(); - else - obj = new ArrayList(); - - if (cur is Hashtable) { - //Debug(key + "=" + reader.ToString()); - ((Hashtable) cur)[key] = obj; - } else if (cur is ArrayList) - ((ArrayList) cur).Add(obj); - - parents.Push(cur); - cur = obj; - - break; - - case JSONToken.EndArray: - case JSONToken.EndObject: - obj = parents.Pop(); - - if (obj != null) - cur = obj; - - break; - } - } - - return cur; - } - - private static object ReadValue2(JSONReader jsonReader) { - jsonReader.Read(); - - switch (jsonReader.TokenType) { - case JSONToken.Boolean: - return (bool) jsonReader.Value; - - case JSONToken.Integer: - return Convert.ToInt32(jsonReader.Value); - - case JSONToken.String: - return (string) jsonReader.Value; - - case JSONToken.Float: - return (double) jsonReader.Value; - - case JSONToken.Null: - return null; - - case JSONToken.StartObject: - Hashtable hash = new Hashtable(); - - while (jsonReader.TokenType != JSONToken.EndObject) { - if (jsonReader.TokenType == JSONToken.PropertyName) - hash[jsonReader.Value] = ReadValue(jsonReader); - else - jsonReader.Read(); - } - - return hash; - - case JSONToken.StartArray: - ArrayList list = new ArrayList(); - - while (jsonReader.TokenType != JSONToken.EndArray) { - if (jsonReader.TokenType == JSONToken.EndArray && jsonReader.Value == null) - break; - - list.Add(ReadValue(jsonReader)); - } - - return list; - } - - return null; - } - - private static bool FindNext(JSONReader reader, JSONToken token) { - if (reader.TokenType == token) - return true; - - while (reader.Read() && reader.TokenType != JSONToken.EndObject && reader.TokenType != JSONToken.EndArray) { - if (reader.TokenType == token) - return true; - } - - return false; - } - - private static bool FindNextValue(JSONReader reader) { - switch (reader.TokenType) { - case JSONToken.Boolean: - case JSONToken.Float: - case JSONToken.Integer: - case JSONToken.Null: - case JSONToken.String: - return true; - } - - while (reader.Read() && reader.TokenType != JSONToken.EndObject) { - switch (reader.TokenType) { - case JSONToken.Boolean: - case JSONToken.Float: - case JSONToken.Integer: - case JSONToken.Null: - case JSONToken.String: - return true; - } - } - - return false; - } - - #endregion - } - - /// - /// - /// - public class JSONRpcCall { - private string id, method; - private ArrayList args; - - /// - /// - /// - public JSONRpcCall() { - this.args = new ArrayList(); - } - - /// - /// - /// - public string Method { - get { return method; } - set { method = value; } - } - - /// - /// - /// - public string Id { - get { return id; } - set { id = value; } - } - - /// - /// - /// - public ArrayList Args { - get { return args; } - set { args = value; } - } - } -} diff --git a/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/JSONReader.cs b/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/JSONReader.cs deleted file mode 100644 index 24b19f2309..0000000000 --- a/src/umbraco.editorControls/tinyMCE3/webcontrol/plugin/JSONReader.cs +++ /dev/null @@ -1,391 +0,0 @@ -/* - * $Id: JSONReader.cs 439 2007-11-26 13:26:10Z spocke $ - * - * Copyright © 2007, Moxiecode Systems AB, All rights reserved. - */ - -using System; -using System.IO; -using System.Text; -using System.Collections; - -namespace umbraco.editorControls.tinyMCE3.webcontrol.plugin -{ - /// - /// - /// - [Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")] - public enum JSONToken - { - /// - Boolean, - - /// - Integer, - - /// - String, - - /// - Null, - - /// - Float, - - /// - StartArray, - - /// - EndArray, - - /// - PropertyName, - - /// - StartObject, - - /// - EndObject - } - - /// - /// Description of JSONReader. - /// - [Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")] - public class JSONReader - { - private TextReader reader; - private JSONToken token; - private object val; - private JSONLocation location; - private Stack lastLocations; - private bool needProp; - - /// - /// - /// - /// - public JSONReader(TextReader reader) { - this.reader = reader; - this.val = null; - this.token = JSONToken.Null; - this.location = JSONLocation.Normal; - this.lastLocations = new Stack(); - this.needProp = false; - } - - /// - /// - /// - public JSONLocation Location { - get { return location; } - } - - /// - /// - /// - public JSONToken TokenType { - get { - return this.token; - } - } - - /// - /// - /// - public object Value { - get { - return this.val; - } - } - - /// - /// - /// - /// - public bool Read() { - int chr = this.reader.Read(); - - if (chr != -1) { - switch ((char) chr) { - case '[': - this.lastLocations.Push(this.location); - this.location = JSONLocation.InArray; - this.token = JSONToken.StartArray; - this.val = null; - this.ReadAway(); - return true; - - case ']': - this.location = (JSONLocation) this.lastLocations.Pop(); - this.token = JSONToken.EndArray; - this.val = null; - this.ReadAway(); - - if (this.location == JSONLocation.InObject) - this.needProp = true; - - return true; - - case '{': - this.lastLocations.Push(this.location); - this.location = JSONLocation.InObject; - this.needProp = true; - this.token = JSONToken.StartObject; - this.val = null; - this.ReadAway(); - return true; - - case '}': - this.location = (JSONLocation) this.lastLocations.Pop(); - this.token = JSONToken.EndObject; - this.val = null; - this.ReadAway(); - - if (this.location == JSONLocation.InObject) - this.needProp = true; - - return true; - - // String - case '"': - case '\'': - return this.ReadString((char) chr); - - // Null - case 'n': - return this.ReadNull(); - - // Bool - case 't': - case 'f': - return this.ReadBool((char) chr); - - default: - // Is number - if (Char.IsNumber((char) chr) || (char) chr == '-' || (char) chr == '.') - return this.ReadNumber((char) chr); - - return true; - } - } - - return false; - } - - /// - /// - /// - /// - public override string ToString() { - switch (this.token) { - case JSONToken.Boolean: - return "[Boolean] = " + ((bool) this.Value ? "true" : "false"); - - case JSONToken.EndArray: - return "[EndArray]"; - - case JSONToken.EndObject: - return "[EndObject]"; - - case JSONToken.Float: - return "[Float] = " + Convert.ToDouble(this.Value); - - case JSONToken.Integer: - return "[Integer] = " + ((int) this.Value); - - case JSONToken.Null: - return "[Null]"; - - case JSONToken.StartArray: - return "[StartArray]"; - - case JSONToken.StartObject: - return "[StartObject]"; - - case JSONToken.String: - return "[String]" + (string) this.Value; - - case JSONToken.PropertyName: - return "[PropertyName]" + (string) this.Value; - } - - return base.ToString(); - } - - #region private methods - - private bool ReadString(char quote) { - StringBuilder buff = new StringBuilder(); - this.token = JSONToken.String; - bool endString = false; - int chr; - - while ((chr = this.reader.Peek()) != -1) { - switch (chr) { - case '\\': - // Read away slash - chr = this.reader.Read(); - - // Read escape code - chr = this.reader.Read(); - switch (chr) { - case 't': - buff.Append('\t'); - break; - - case 'b': - buff.Append('\b'); - break; - - case 'f': - buff.Append('\f'); - break; - - case 'r': - buff.Append('\r'); - break; - - case 'n': - buff.Append('\n'); - break; - - case 'u': - buff.Append((char) Convert.ToInt32(ReadLen(4), 16)); - break; - - default: - buff.Append((char) chr); - break; - } - - break; - - case '\'': - case '"': - if (chr == quote) - endString = true; - - chr = this.reader.Read(); - if (chr != -1 && chr != quote) - buff.Append((char) chr); - - break; - - default: - buff.Append((char) this.reader.Read()); - break; - } - - // String terminated - if (endString) - break; - } - - this.ReadAway(); - - this.val = buff.ToString(); - - // Needed a property - if (this.needProp) { - this.token = JSONToken.PropertyName; - this.needProp = false; - return true; - } - - if (this.location == JSONLocation.InObject && !this.needProp) - this.needProp = true; - - return true; - } - - private bool ReadNull() { - this.token = JSONToken.Null; - this.val = null; - - this.ReadAway(3); // ull - this.ReadAway(); - - if (this.location == JSONLocation.InObject && !this.needProp) - this.needProp = true; - - return true; - } - - private bool ReadNumber(char start) { - StringBuilder buff = new StringBuilder(); - int chr; - bool isFloat = false; - - this.token = JSONToken.Integer; - buff.Append(start); - - while ((chr = this.reader.Peek()) != -1) { - if (Char.IsNumber((char) chr) || (char) chr == '-' || (char) chr == '.') { - if (((char) chr) == '.') - isFloat = true; - - buff.Append((char) this.reader.Read()); - } else - break; - } - - this.ReadAway(); - - if (isFloat) { - this.token = JSONToken.Float; - this.val = Convert.ToDouble(buff.ToString().Replace('.', ',')); - } else - this.val = Convert.ToInt32(buff.ToString()); - - if (this.location == JSONLocation.InObject && !this.needProp) - this.needProp = true; - - return true; - } - - private bool ReadBool(char chr) { - this.token = JSONToken.Boolean; - this.val = chr == 't'; - - if (chr == 't') - this.ReadAway(3); // rue - else - this.ReadAway(4); // alse - - this.ReadAway(); - - if (this.location == JSONLocation.InObject && !this.needProp) - this.needProp = true; - - return true; - } - - private void ReadAway() { - int chr; - - while ((chr = this.reader.Peek()) != -1) { - if (chr != ':' && chr != ',' && !Char.IsWhiteSpace((char) chr)) - break; - - this.reader.Read(); - } - } - - private string ReadLen(int num) { - StringBuilder buff = new StringBuilder(); - int chr; - - for (int i=0; i - /// - /// - [Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")] - public enum JSONLocation - { - /// - InArray, - - /// - InObject, - - /// - Normal - } - - /// - /// Description of JSONWriter. - /// - [Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")] - public class JSONWriter - { - private TextWriter writer; - private JSONLocation location; - private Stack lastLocations; - private int index, lastIndex; - private bool isProp = false; - - /// - /// - /// - /// - public JSONWriter(TextWriter writer) { - this.writer = writer; - this.location = JSONLocation.Normal; - this.lastLocations = new Stack(); - this.index = 0; - this.lastIndex = 0; - } - - /// - /// - /// - public void WriteStartObject() { - this.WriteDelim(); - this.writer.Write('{'); - this.lastLocations.Push(this.location); - this.lastIndex = this.index; - this.location = JSONLocation.InObject; - this.index = 0; - } - - /// - /// - /// - public void WriteEndObject() { - this.writer.Write('}'); - this.location = (JSONLocation) lastLocations.Pop(); - this.index = this.lastIndex; - } - - /// - /// - /// - public void WriteStartArray() { - this.WriteDelim(); - this.writer.Write('['); - this.lastLocations.Push(this.location); - this.lastIndex = this.index; - this.location = JSONLocation.InArray; - this.index = 0; - } - - /// - /// - /// - public void WriteEndArray() { - this.writer.Write(']'); - this.location = (JSONLocation) lastLocations.Pop(); - this.index = this.lastIndex; - } - - /// - /// - /// - /// - public void WritePropertyName(string name) { - this.WriteDelim(); - this.isProp = true; - this.WriteObject(EncodeString(name)); - this.writer.Write(':'); - } - - /// - /// - /// - /// - /// - public void WriteProperty(string name, object obj) { - this.WritePropertyName(name); - this.WriteObject(obj); - } - - /// - /// - /// - /// - public void WriteValue(object obj) { - this.WriteDelim(); - this.WriteObject(obj); - } - - /// - /// - /// - public void WriteNull() { - this.WriteDelim(); - this.writer.Write("null"); - } - - /// - /// - /// - public void Close() { - this.writer.Close(); - } - - #region private methods - - private void WriteObject(object obj) { - if (obj == null) { - this.writer.Write("null"); - return; - } - - if (obj is bool) { - this.writer.Write(((bool) obj) == true ? "true" : "false"); - return; - } - - if (obj is int) { - this.writer.Write(((int) obj)); - return; - } - - if (obj is long) { - this.writer.Write(((long) obj)); - return; - } - - if (obj is float || obj is double) { - string str = Convert.ToString(obj); - this.writer.Write(str.Replace(',', '.')); - return; - } - - if (obj is string) { - this.writer.Write('"'); - this.writer.Write(EncodeString((string) obj)); - this.writer.Write('"'); - return; - } - } - - private void WriteDelim() { - if (this.index > 0 && !this.isProp) - this.writer.Write(','); - - this.isProp = false; - this.index++; - } - - /// - /// - /// - /// - /// - public static string EncodeString(string str) { - if (str == null) - return null; - - StringBuilder strBuilder = new StringBuilder(str.Length); - char[] chars = str.ToCharArray(); - - for (int i=0; i 128 || Char.IsControl(chars[i])) { - strBuilder.Append("\\u"); - strBuilder.Append(((int) chars[i]).ToString("X4")); - continue; - } - - switch (chars[i]) { - case '\'': - strBuilder.Append("\\\'"); - break; - - case '\"': - strBuilder.Append("\\\""); - break; - - case '\\': - strBuilder.Append("\\\\"); - break; - - default: - strBuilder.Append(chars[i]); - break; - } - } - - return strBuilder.ToString(); - } - - #endregion - } -} diff --git a/src/umbraco.editorControls/tinymce/tinyMCEConfiguration.cs b/src/umbraco.editorControls/tinymce/tinyMCEConfiguration.cs deleted file mode 100644 index 1ce5c724c6..0000000000 --- a/src/umbraco.editorControls/tinymce/tinyMCEConfiguration.cs +++ /dev/null @@ -1,291 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Collections; -using System.Xml; -using Umbraco.Core.IO; - -namespace umbraco.editorControls.tinymce -{ - [Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")] - public class tinyMCEConfiguration - { - private static bool _init = false; - - private static Hashtable _commands = new Hashtable(StringComparer.InvariantCultureIgnoreCase); - - private static string _validElements; - - private static Hashtable _configOptions = new Hashtable(StringComparer.InvariantCultureIgnoreCase); - - public static Hashtable ConfigOptions - { - get - { - if (!_init) - init(); - return _configOptions; - } - set - { - _configOptions = value; - } - } - - public static string ValidElements - { - get - { - if (!_init) - init(); - return _validElements; - } - set { _validElements = value; } - } - - public static string PluginPath = IOHelper.ResolveUrl( SystemDirectories.Umbraco ) + "/plugins/tinymce3"; - public static string JavascriptPath = IOHelper.ResolveUrl( SystemDirectories.UmbracoClient ) + "/tinymce3"; - - private static string _invalidElements; - - public static string InvalidElements - { - get - { - if (!_init) - init(); - return _invalidElements; - } - set { _invalidElements = value; } - } - - private static Hashtable _plugins = new Hashtable(StringComparer.InvariantCultureIgnoreCase); - - public static Hashtable Plugins - { - get - { - if (!_init) - init(); - return _plugins; - } - set { _plugins = value; } - } - - - - public static Hashtable Commands - { - get - { - if (!_init) - init(); - return _commands; - } - } - - public static SortedList SortedCommands - { - get - { - if (!_init) - init(); - - SortedList sc = new SortedList(); - IDictionaryEnumerator ide = _commands.GetEnumerator(); - while (ide.MoveNext()) - sc.Add(((tinyMCECommand)ide.Value).Priority, (tinyMCECommand)ide.Value); - return sc; - } - } - - private static void init() - { - // Load config - XmlDocument xd = new XmlDocument(); - xd.Load(IOHelper.MapPath( SystemFiles.TinyMceConfig )); - - foreach (XmlNode n in xd.DocumentElement.SelectNodes("//command")) - { - if (!_commands.ContainsKey(n.SelectSingleNode("./umbracoAlias").FirstChild.Value)) - { - bool isStyle = false; - if (n.Attributes.GetNamedItem("isStyle") != null) - isStyle = bool.Parse(n.Attributes.GetNamedItem("isStyle").Value); - - _commands.Add( - n.SelectSingleNode("./umbracoAlias").FirstChild.Value.ToLower(), - new tinyMCECommand( - isStyle, - n.SelectSingleNode("./icon").FirstChild.Value, - n.SelectSingleNode("./tinyMceCommand").FirstChild.Value, - n.SelectSingleNode("./umbracoAlias").FirstChild.Value.ToLower(), - n.SelectSingleNode("./tinyMceCommand").Attributes.GetNamedItem("userInterface").Value, - n.SelectSingleNode("./tinyMceCommand").Attributes.GetNamedItem("frontendCommand").Value, - n.SelectSingleNode("./tinyMceCommand").Attributes.GetNamedItem("value").Value, - int.Parse(n.SelectSingleNode("./priority").FirstChild.Value) - )); - } - } - - foreach (XmlNode n in xd.DocumentElement.SelectNodes("//plugin")) - { - if (!_plugins.ContainsKey(n.FirstChild.Value)) - { - bool useOnFrontend = false; - if (n.Attributes.GetNamedItem("loadOnFrontend") != null) - useOnFrontend = bool.Parse(n.Attributes.GetNamedItem("loadOnFrontend").Value); - - _plugins.Add( - n.FirstChild.Value.ToLower(), - new tinyMCEPlugin( - n.FirstChild.Value, - useOnFrontend)); - } - } - - foreach (XmlNode n in xd.DocumentElement.SelectNodes("//config")) - { - if (!_configOptions.ContainsKey(n.Attributes["key"].FirstChild.Value)) - { - var value = ""; - if (n.FirstChild != null) - value = n.FirstChild.Value; - - _configOptions.Add( - n.Attributes["key"].FirstChild.Value.ToLower(), - value); - } - } - - if (xd.DocumentElement.SelectSingleNode("./invalidElements") != null) - _invalidElements = xd.DocumentElement.SelectSingleNode("./invalidElements").FirstChild.Value; - if (xd.DocumentElement.SelectSingleNode("./validElements") != null) - { - string _val = xd.DocumentElement.SelectSingleNode("./validElements").FirstChild.Value.Replace("\r", ""); - foreach (string s in _val.Split("\n".ToCharArray())) - _validElements += "'" + s + "' + \n"; - _validElements = _validElements.Substring(0, _validElements.Length - 4); - - } - - _init = true; - } - } - - public class tinyMCEPlugin - { - public tinyMCEPlugin(string Name, bool UseOnFrontEnd) - { - _name = Name; - _useOnFrontend = UseOnFrontEnd; - } - - private string _name; - - public string Name - { - get { return _name; } - set { _name = value; } - } - - - private bool _useOnFrontend; - - public bool UseOnFrontend - { - get { return _useOnFrontend; } - set { _useOnFrontend = value; } - } - - } - - public class tinyMCECommand - { - - public tinyMCECommand(bool isStylePicker, string Icon, string Command, string Alias, string UserInterface, string FrontEndCommand, string Value, int Priority) - { - _isStylePicker = isStylePicker; - _icon = Icon; - _command = Command; - _alias = Alias; - _userInterface = UserInterface; - _frontEndCommand = FrontEndCommand; - _value = Value; - _priority = Priority; - } - - private bool _isStylePicker; - - public bool IsStylePicker - { - get { return _isStylePicker; } - set { _isStylePicker = value; } - } - - - private string _icon; - - public string Icon - { - get { return IOHelper.ResolveUrl( SystemDirectories.Umbraco ) + "/" + _icon; } - set { _icon = value; } - } - - private string _command; - - public string Command - { - get { return _command; } - set { _command = value; } - } - - private string _alias; - - public string Alias - { - get { return _alias; } - set { _alias = value; } - } - - private string _userInterface; - - public string UserInterface - { - get { return _userInterface; } - set { _userInterface = value; } - } - - private string _frontEndCommand; - - public string FrontEndCommand - { - get { return _frontEndCommand; } - set { _frontEndCommand = value; } - } - - private string _value; - - public string Value - { - get { return _value; } - set { _value = value; } - } - - private int _priority; - - public int Priority - { - get { return _priority; } - set { _priority = value; } - } - - - - - - - - - } -} diff --git a/src/umbraco.editorControls/tinymce/tinyMCEImageHelper.cs b/src/umbraco.editorControls/tinymce/tinyMCEImageHelper.cs deleted file mode 100644 index d524e97820..0000000000 --- a/src/umbraco.editorControls/tinymce/tinyMCEImageHelper.cs +++ /dev/null @@ -1,161 +0,0 @@ -using System; -using System.Collections; -using System.Linq; -using System.Text.RegularExpressions; -using System.Web; -using Umbraco.Core.Configuration; -using Umbraco.Core.IO; -using Umbraco.Core.Logging; -using umbraco.cms.businesslogic.Files; - -namespace umbraco.editorControls.tinymce -{ - [Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")] - internal class tinyMCEImageHelper - { - public static string cleanImages(string html) - { - var allowedAttributes = UmbracoConfig.For.UmbracoSettings().Content.ImageTagAllowedAttributes.Select(x => x.ToLower()).ToList(); - - //Always add src as it's essential to output any image at all - if (allowedAttributes.Contains("src") == false) - allowedAttributes.Add("src"); - - const string pattern = @"]*>"; - var tags = Regex.Matches(html + " ", pattern, RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace); - foreach (Match tag in tags) - { - if (tag.Value.ToLower().IndexOf("umbraco_macro", StringComparison.Ordinal) == -1) - { - var cleanTag = "", " >"), "(?\\S*?)=\"(?[^\"]*)\"|(?\\S*?)=(?[^\"|\\s]*)\\s", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace); - foreach (Match attributeSet in matches) - { - ht.Add(attributeSet.Groups["attributeName"].Value.ToLower(), - attributeSet.Groups["attributeValue"].Value); - } - - // If rel attribute exists and if it's different from current sizing we should resize the image! - if (helper.FindAttribute(ht, "rel") != "") - { - // if size has changed resize image serverside - var newDims = helper.FindAttribute(ht, "rel").Split(",".ToCharArray()); - if (newDims.Length > 0 && (newDims[0] != helper.FindAttribute(ht, "width") || newDims[1] != helper.FindAttribute(ht, "height"))) - { - try - { - int newWidth; - int newHeight; - string newSrc; - - cleanTag += DoResize(ht, out newWidth, out newHeight, out newSrc); - - ht["src"] = newSrc; - } - catch (Exception err) - { - cleanTag += " src=\"" + helper.FindAttribute(ht, "src") + "\""; - if (helper.FindAttribute(ht, "width") != "") - { - cleanTag += " width=\"" + helper.FindAttribute(ht, "width") + "\""; - cleanTag += " height=\"" + helper.FindAttribute(ht, "height") + "\""; - } - LogHelper.Error("Error resizing image in editor", err); - } - } - else - { - if (helper.FindAttribute(ht, "width") != "") - { - cleanTag += " width=\"" + helper.FindAttribute(ht, "width") + "\""; - cleanTag += " height=\"" + helper.FindAttribute(ht, "height") + "\""; - } - - } - } - else - { - if (helper.FindAttribute(ht, "width") != "") - { - cleanTag += " width=\"" + helper.FindAttribute(ht, "width") + "\""; - cleanTag += " height=\"" + helper.FindAttribute(ht, "height") + "\""; - } - } - - // Build image tag - foreach (var attr in allowedAttributes) - { - if (helper.FindAttribute(ht, attr) != "") - { - var attrValue = helper.FindAttribute(ht, attr); - cleanTag += " " + attr + "=\"" + attrValue + "\""; - } - } - - if (bool.Parse(GlobalSettings.EditXhtmlMode)) - cleanTag += "/"; - - cleanTag += ">"; - html = html.Replace(tag.Value, cleanTag); - } - } - - return html; - } - - private static string DoResize(IDictionary attributes, out int finalWidth, out int finalHeight, out string newSrc) - { - var fs = FileSystemProviderManager.Current.GetFileSystemProvider(); - var orgSrc = HttpContext.Current.Server.HtmlDecode(helper.FindAttribute(attributes, "src").Replace("%20", " ")); - var orgDim = helper.FindAttribute(attributes, "rel").Split(",".ToCharArray()); - var orgWidth = float.Parse(orgDim[0]); - var orgHeight = float.Parse(orgDim[1]); - var newWidth = int.Parse(helper.FindAttribute(attributes, "width")); - var newHeight = int.Parse(helper.FindAttribute(attributes, "height")); - - newSrc = ""; - - if (orgHeight > 0 && orgWidth > 0 && orgSrc != "") - { - // Check dimensions - if (Math.Abs(orgWidth / newWidth) > Math.Abs(orgHeight / newHeight)) - { - newHeight = (int)Math.Round(newWidth * (orgHeight / orgWidth)); - } - else - { - newWidth = (int)Math.Round(newHeight * (orgWidth / orgHeight)); - } - - var orgPath = fs.GetRelativePath(orgSrc); - if (fs.FileExists(orgPath)) - { - var uf = new UmbracoFile(orgPath); - - try - { - newSrc = uf.Resize(newWidth, newHeight); - } - catch (Exception ex) - { - LogHelper.Error(string.Format("The file {0} could not be resized, reverting the image src attribute to the original source: {1}", orgPath, orgSrc), ex); - newSrc = orgSrc; - } - } - else - { - LogHelper.Warn(string.Format("The file {0} does not exist, reverting the image src attribute to the original source: {1}", orgPath, orgSrc)); - newSrc = orgSrc; - } - } - - finalWidth = newWidth; - finalHeight = newHeight; - - return " width=\"" + newWidth + "\" height=\"" + newHeight + "\""; - } - } -} \ No newline at end of file diff --git a/src/umbraco.editorControls/tinymce/tinyMCEPreValueConfigurator.cs b/src/umbraco.editorControls/tinymce/tinyMCEPreValueConfigurator.cs deleted file mode 100644 index 533a961416..0000000000 --- a/src/umbraco.editorControls/tinymce/tinyMCEPreValueConfigurator.cs +++ /dev/null @@ -1,328 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Collections; -using System.Web.UI; -using System.Web.UI.WebControls; - -using umbraco.BusinessLogic; -using umbraco.DataLayer; - -namespace umbraco.editorControls.tinymce -{ - [Obsolete("IDataType and all other references to the legacy property editors are no longer used this will be removed from the codebase in future versions")] - public class tinyMCEPreValueConfigurator : System.Web.UI.WebControls.PlaceHolder, interfaces.IDataPrevalue - { - // UI controls - private CheckBoxList _editorButtons; - private CheckBox _enableRightClick; - private DropDownList _dropdownlist; - private CheckBoxList _advancedUsersList; - private CheckBoxList _stylesheetList; - private TextBox _width = new TextBox(); - private TextBox _height = new TextBox(); - private TextBox _maxImageWidth = new TextBox(); - private CheckBox _fullWidth = new CheckBox(); - private CheckBox _showLabel = new CheckBox(); - private RegularExpressionValidator _widthValidator = new RegularExpressionValidator(); - private RegularExpressionValidator _heightValidator = new RegularExpressionValidator(); - private RegularExpressionValidator _maxImageWidthValidator = new RegularExpressionValidator(); - - // referenced datatype - private cms.businesslogic.datatype.BaseDataType _datatype; - private string _selectedButtons = ""; - private string _advancedUsers = ""; - private string _stylesheets = ""; - - public static ISqlHelper SqlHelper - { - get { return Application.SqlHelper; } - } - - public tinyMCEPreValueConfigurator(cms.businesslogic.datatype.BaseDataType DataType) - { - // state it knows its datatypedefinitionid - _datatype = DataType; - setupChildControls(); - } - - private void setupChildControls() - { - _dropdownlist = new DropDownList(); - _dropdownlist.ID = "dbtype"; - _dropdownlist.Items.Add(DBTypes.Date.ToString()); - _dropdownlist.Items.Add(DBTypes.Integer.ToString()); - _dropdownlist.Items.Add(DBTypes.Ntext.ToString()); - _dropdownlist.Items.Add(DBTypes.Nvarchar.ToString()); - - _editorButtons = new CheckBoxList(); - _editorButtons.ID = "editorButtons"; - _editorButtons.RepeatColumns = 4; - _editorButtons.CellPadding = 3; - - _enableRightClick = new CheckBox(); - _enableRightClick.ID = "enableRightClick"; - - _advancedUsersList = new CheckBoxList(); - _advancedUsersList.ID = "advancedUsersList"; - - _stylesheetList = new CheckBoxList(); - _stylesheetList.ID = "stylesheetList"; - - _showLabel = new CheckBox(); - _showLabel.ID = "showLabel"; - - _maxImageWidth = new TextBox(); - _maxImageWidth.ID = "maxImageWidth"; - - // put the childcontrols in context - ensuring that - // the viewstate is persisted etc. - Controls.Add(_dropdownlist); - Controls.Add(_enableRightClick); - Controls.Add(_editorButtons); - Controls.Add(_advancedUsersList); - Controls.Add(_stylesheetList); - Controls.Add(_width); - Controls.Add(_widthValidator); - Controls.Add(_height); - Controls.Add(_heightValidator); - Controls.Add(_showLabel); - Controls.Add(_maxImageWidth); - Controls.Add(_maxImageWidthValidator); - // Controls.Add(_fullWidth); - - } - - protected override void OnLoad(EventArgs e) - { - base.OnLoad (e); - // add ids to controls - _width.ID = "width"; - _height.ID = "height"; - - - // initialize validators - _widthValidator.ValidationExpression = "0*[1-9][0-9]*"; - _widthValidator.ErrorMessage = ui.Text("errorHandling", "errorIntegerWithoutTab", ui.Text("width"), new BasePages.BasePage().getUser()); - _widthValidator.Display = ValidatorDisplay.Dynamic; - _widthValidator.ControlToValidate = _width.ID; - _heightValidator.ValidationExpression = "0*[1-9][0-9]*"; - _heightValidator.ErrorMessage = ui.Text("errorHandling", "errorIntegerWithoutTab", ui.Text("height"), new BasePages.BasePage().getUser()); - _heightValidator.ControlToValidate = _height.ID; - _heightValidator.Display = ValidatorDisplay.Dynamic; - _maxImageWidthValidator.ValidationExpression = "0*[1-9][0-9]*"; - _maxImageWidthValidator.ErrorMessage = ui.Text("errorHandling", "errorIntegerWithoutTab","'" + ui.Text("rteMaximumDefaultImgSize") + "'", new BasePages.BasePage().getUser()); - _maxImageWidthValidator.ControlToValidate = _maxImageWidth.ID; - _maxImageWidthValidator.Display = ValidatorDisplay.Dynamic; - - if (!Page.IsPostBack) - { - if (Configuration != null) - { - string[] config = Configuration.Split("|".ToCharArray()); - if (config.Length > 0) - { - _selectedButtons = config[0]; - - if (config.Length > 1) - if (config[1] == "1") - _enableRightClick.Checked = true; - - if (config.Length > 2) - _advancedUsers = config[2]; - - if (config.Length > 4 && config[4].Split(',').Length > 1) - { -// if (config[3] == "1") -// _fullWidth.Checked = true; -// else -// { - _width.Text = config[4].Split(',')[0]; - _height.Text = config[4].Split(',')[1]; -// } - } - - // if width and height are empty or lower than 0 then set default sizes: - int tempWidth, tempHeight; - int.TryParse(_width.Text, out tempWidth); - int.TryParse(_height.Text, out tempHeight); - if (_width.Text.Trim() == "" || tempWidth < 1) - _width.Text = "500"; - if (_height.Text.Trim() == "" || tempHeight < 1) - _height.Text = "400"; - - if (config.Length > 5) - _stylesheets = config[5]; - if (config.Length > 6 && config[6] != "") - _showLabel.Checked = bool.Parse(config[6]); - - if (config.Length > 7 && config[7] != "") - _maxImageWidth.Text = config[7]; - else - _maxImageWidth.Text = "500"; - } - - // add editor buttons - IDictionaryEnumerator ide = tinyMCEConfiguration.SortedCommands.GetEnumerator(); - while (ide.MoveNext()) - { - tinyMCECommand cmd = (tinyMCECommand) ide.Value; - ListItem li = - new ListItem( - string.Format("\"{1}\" ", cmd.Icon, - cmd.Alias), cmd.Alias); - if (_selectedButtons.IndexOf(cmd.Alias) > -1) - li.Selected = true; - - _editorButtons.Items.Add(li); - } - - // add users - foreach (BusinessLogic.UserType ut in BusinessLogic.UserType.getAll) - { - ListItem li = new ListItem(ut.Name, ut.Id.ToString()); - if (("," + _advancedUsers + ",").IndexOf("," + ut.Id.ToString() + ",") > -1) - li.Selected = true; - - _advancedUsersList.Items.Add(li); - } - - // add stylesheets - foreach (cms.businesslogic.web.StyleSheet st in cms.businesslogic.web.StyleSheet.GetAll()) - { - ListItem li = new ListItem(st.Text, st.Id.ToString()); - if (("," + _stylesheets + ",").IndexOf("," + st.Id.ToString() + ",") > -1) - li.Selected = true; - - _stylesheetList.Items.Add(li); - } - } - - // Mark the current db type - _dropdownlist.SelectedValue = _datatype.DBType.ToString(); - - } - } - - public Control Editor - { - get - { - return this; - } - } - - public virtual void Save() - { - _datatype.DBType = (cms.businesslogic.datatype.DBTypes)Enum.Parse(typeof(cms.businesslogic.datatype.DBTypes), _dropdownlist.SelectedValue, true); - - // Generate data-string - string data = ","; - - foreach (ListItem li in _editorButtons.Items) - if (li.Selected) - data += li.Value + ","; - - data += "|"; - - if (_enableRightClick.Checked) - data += "1"; - else - data += "0"; - - data += "|"; - - foreach (ListItem li in _advancedUsersList.Items) - if (li.Selected) - data += li.Value + ","; - - data += "|"; - - - data += "0|"; - /* - if (_fullWidth.Checked) - data += "1|"; - else - data += "0|"; - */ - - data += _width.Text + "," + _height.Text + "|"; - - foreach (ListItem li in _stylesheetList.Items) - if (li.Selected) - data += li.Value + ","; - data += "|"; - data += _showLabel.Checked.ToString() + "|"; - data += _maxImageWidth.Text + "|"; - - - // If the add new prevalue textbox is filled out - add the value to the collection. - IParameter[] SqlParams = new IParameter[] { - SqlHelper.CreateParameter("@value",data), - SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)}; - SqlHelper.ExecuteNonQuery("delete from cmsDataTypePreValues where datatypenodeid = @dtdefid",SqlParams); - // we need to populate the parameters again due to an issue with SQL CE - SqlParams = new IParameter[] { - SqlHelper.CreateParameter("@value",data), - SqlHelper.CreateParameter("@dtdefid",_datatype.DataTypeDefinitionId)}; - SqlHelper.ExecuteNonQuery("insert into cmsDataTypePreValues (datatypenodeid,[value],sortorder,alias) values (@dtdefid,@value,0,'')",SqlParams); - } - - protected override void Render(HtmlTextWriter writer) - { - writer.WriteLine(""); - writer.WriteLine(""); - writer.Write(""); - writer.Write(""); - writer.Write(""); - writer.Write(""); - writer.Write(""); - writer.Write(""); - writer.Write(""); - writer.Write("
" + ui.Text("editdatatype", "dataBaseDatatype") + ":"); - _dropdownlist.RenderControl(writer); - writer.Write("
" + ui.Text("editdatatype", "rteButtons") + ":"); - _editorButtons.RenderControl(writer); - writer.Write("
" + ui.Text("editdatatype", "rteRelatedStylesheets") + ":"); - _stylesheetList.RenderControl(writer); - writer.Write("
" + ui.Text("editdatatype", "rteEnableContextMenu") + ":"); - _enableRightClick.RenderControl(writer); - writer.Write("
" + ui.Text("editdatatype", "rteEnableAdvancedSettings") + ":"); - _advancedUsersList.RenderControl(writer); - writer.Write("
"); - //"Size:Maximum width and height: "); - // _fullWidth.RenderControl(writer); - - writer.Write(ui.Text("editdatatype", "rteWidthAndHeight") + ":"); - _width.RenderControl(writer); - _widthValidator.RenderControl(writer); - writer.Write(" x "); - _height.RenderControl(writer); - _heightValidator.RenderControl(writer); - writer.Write("
"); - writer.Write(ui.Text("editdatatype", "rteMaximumDefaultImgSize") + ":"); - _maxImageWidth.RenderControl(writer); - _maxImageWidthValidator.RenderControl(writer); - writer.Write("
" + ui.Text("editdatatype", "rteShowLabel") + ":"); - _showLabel.RenderControl(writer); - writer.Write("
"); - } - - public string Configuration - { - get - { - try - { - return SqlHelper.ExecuteScalar("select value from cmsDataTypePreValues where datatypenodeid = @datatypenodeid", SqlHelper.CreateParameter("@datatypenodeid", _datatype.DataTypeDefinitionId)); - } - catch - { - return ""; - } - } - } - - } -} diff --git a/src/umbraco.editorControls/umbraco.editorControls.csproj b/src/umbraco.editorControls/umbraco.editorControls.csproj index 723ad1fc66..62ee324b2b 100644 --- a/src/umbraco.editorControls/umbraco.editorControls.csproj +++ b/src/umbraco.editorControls/umbraco.editorControls.csproj @@ -1,4 +1,4 @@ - + Local @@ -383,22 +383,9 @@ Code - - - - - - - - - - - - -