diff --git a/src/Umbraco.Web.UI/umbraco/developer/Macros/editMacro.aspx b/src/Umbraco.Web.UI/umbraco/developer/Macros/editMacro.aspx
index 20bbb8fe36..7018375a65 100644
--- a/src/Umbraco.Web.UI/umbraco/developer/Macros/editMacro.aspx
+++ b/src/Umbraco.Web.UI/umbraco/developer/Macros/editMacro.aspx
@@ -223,9 +223,28 @@
-
+
+
+
diff --git a/src/Umbraco.Web.UI/umbraco/plugins/uGoLive/Dashboard.ascx b/src/Umbraco.Web.UI/umbraco/plugins/uGoLive/Dashboard.ascx
index d70e8c59c4..94b056f296 100644
--- a/src/Umbraco.Web.UI/umbraco/plugins/uGoLive/Dashboard.ascx
+++ b/src/Umbraco.Web.UI/umbraco/plugins/uGoLive/Dashboard.ascx
@@ -6,6 +6,7 @@
+
\ No newline at end of file
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/controls/GenericProperties/GenericProperty.ascx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/controls/GenericProperties/GenericProperty.ascx.cs
index 4106275165..e4dc39b3a2 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/controls/GenericProperties/GenericProperty.ascx.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/controls/GenericProperties/GenericProperty.ascx.cs
@@ -130,7 +130,7 @@ namespace umbraco.controls.GenericProperties
tbValidation.Text = "";
tbDescription.Text = "";
ddlTab.SelectedIndex = 0;
- ddlTypes.SelectedIndex = 0;
+ SetDefaultDocumentTypeProperty();
checkMandatory.Checked = false;
}
@@ -195,13 +195,24 @@ namespace umbraco.controls.GenericProperties
if (_dataTypeDefinitions != null)
{
ddlTypes.Items.Clear();
+ var itemSelected = false;
foreach(cms.businesslogic.datatype.DataTypeDefinition dt in _dataTypeDefinitions)
{
- ListItem li = new ListItem(dt.Text, dt.Id.ToString());
- if (_pt != null && _pt.DataTypeDefinition.Id == dt.Id)
- li.Selected = true;
+ var li = new ListItem(dt.Text, dt.Id.ToString());
+ if ((_pt != null && _pt.DataTypeDefinition.Id == dt.Id))
+ {
+ li.Selected = true;
+ itemSelected = true;
+ }
+
ddlTypes.Items.Add(li);
}
+
+ // If item not selected from previous edit or load, set to default according to settings
+ if (!itemSelected)
+ {
+ SetDefaultDocumentTypeProperty();
+ }
}
// tabs
@@ -234,6 +245,20 @@ namespace umbraco.controls.GenericProperties
tbDescription.Text = _pt.GetRawDescription();
}
+ private void SetDefaultDocumentTypeProperty()
+ {
+ var itemToSelect = ddlTypes.Items.Cast
().FirstOrDefault(item => item.Text.ToLowerInvariant() == UmbracoSettings.DefaultDocumentTypeProperty.ToLowerInvariant());
+
+ if (itemToSelect != null)
+ {
+ itemToSelect.Selected = true;
+ }
+ else
+ {
+ ddlTypes.SelectedIndex = -1;
+ }
+ }
+
protected void defaultDeleteHandler(object sender, System.EventArgs e)
{
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/controls/Images/ImageViewer.ascx b/src/Umbraco.Web/umbraco.presentation/umbraco/controls/Images/ImageViewer.ascx
deleted file mode 100644
index 0ceb3cd09a..0000000000
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/controls/Images/ImageViewer.ascx
+++ /dev/null
@@ -1,48 +0,0 @@
-<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ImageViewer.ascx.cs" Inherits="umbraco.controls.Images.ImageViewer" %>
-<%@ Register TagPrefix="umb" Namespace="ClientDependency.Core.Controls" Assembly="ClientDependency.Core" %>
-
-
-
-
-
-
-
-
-
-
-
-
-
- ');">
-
-
-
-
-
- <%--Register the javascript callback method if any.--%>
-
-
-
-<%--Ensure that the client API is registered for the image.--%>
-
-
-
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/controls/Images/ImageViewer.ascx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/controls/Images/ImageViewer.ascx.cs
index 115175d9c3..eaf2eb5b82 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/controls/Images/ImageViewer.ascx.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/controls/Images/ImageViewer.ascx.cs
@@ -1,22 +1,19 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
+using Umbraco.Core.IO;
using umbraco.cms.businesslogic.media;
-using umbraco.cms.businesslogic;
using Umbraco.Core;
namespace umbraco.controls.Images
{
- public partial class ImageViewer : System.Web.UI.UserControl
+ public partial class ImageViewer : UserControl
{
public ImageViewer()
{
MediaItemPath = "#";
- MediaItemThumbnailPath = umbraco.IO.IOHelper.ResolveUrl(umbraco.IO.SystemDirectories.Umbraco) + "/images/blank.png";
+ MediaItemThumbnailPath = IOHelper.ResolveUrl(SystemDirectories.Umbraco) + "/images/blank.png";
AltText = "No Image";
ImageFound = false;
ViewerStyle = Style.Basic;
@@ -54,9 +51,9 @@ namespace umbraco.controls.Images
protected bool ImageFound { get; private set; }
- private int m_FileWidth = 0;
- private int m_FileHeight = 0;
- private bool m_IsBound = false;
+ private int m_FileWidth;
+ private int m_FileHeight;
+ private bool m_IsBound;
///
/// automatically bind if it's not explicitly called.
@@ -65,7 +62,11 @@ namespace umbraco.controls.Images
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
- if (!m_IsBound)
+
+ View view = FindControl(ViewerStyle.ToString()) as View;
+ MultiView.SetActiveView(view);
+
+ if (m_IsBound == false)
{
DataBind();
}
@@ -95,7 +96,7 @@ namespace umbraco.controls.Images
}
MediaItemPath = pFile.Value != null && !string.IsNullOrEmpty(pFile.Value.ToString())
- ? umbraco.IO.IOHelper.ResolveUrl(pFile.Value.ToString())
+ ? IOHelper.ResolveUrl(pFile.Value.ToString())
: "#";
AltText = MediaItemPath != "#" ? m.Text : ui.GetText("no") + " " + ui.GetText("media");
@@ -117,6 +118,55 @@ namespace umbraco.controls.Images
{
ImageFound = false;
}
- }
- }
+ }
+
+ #region Controls
+
+ ///
+ /// JsInclude1 control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::ClientDependency.Core.Controls.JsInclude JsInclude1;
+
+ ///
+ /// MultiView control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.MultiView MultiView;
+
+ ///
+ /// Basic control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.View Basic;
+
+ ///
+ /// ImageLink control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.View ImageLink;
+
+ ///
+ /// ThumbnailPreview control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.View ThumbnailPreview;
+
+ #endregion
+ }
}
\ No newline at end of file
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/controls/Images/ImageViewer.ascx.designer.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/controls/Images/ImageViewer.ascx.designer.cs
deleted file mode 100644
index c5e0edd1b1..0000000000
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/controls/Images/ImageViewer.ascx.designer.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version:2.0.50727.4927
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-namespace umbraco.controls.Images {
-
-
- public partial class ImageViewer {
-
- ///
- /// JsInclude1 control.
- ///
- ///
- /// Auto-generated field.
- /// To modify move field declaration from designer file to code-behind file.
- ///
- protected global::ClientDependency.Core.Controls.JsInclude JsInclude1;
- }
-}
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/create.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/create.aspx.cs
index 3bfc65d285..c8ec4a581d 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/create.aspx.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/create.aspx.cs
@@ -1,21 +1,11 @@
using System;
-using System.Collections;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Web;
-using System.Web.SessionState;
-using System.Web.UI;
using System.Web.UI.WebControls;
-using System.Web.UI.HtmlControls;
-using System.Xml.XPath;
using System.Xml;
using Umbraco.Core.IO;
namespace umbraco.cms.presentation
{
-
public class Create : BasePages.UmbracoEnsuredPage
{
[Obsolete("This property is no longer used")]
@@ -44,18 +34,17 @@ namespace umbraco.cms.presentation
{
throw new ArgumentException("The create dialog for \"" + nodeType + "\" does not match anything defined in the \"" + SystemFiles.CreateUiXml + "\". This could mean an incorrectly installed package or a corrupt UI file");
}
- //title.Text = ui.Text("create") + " " + ui.Text(def.SelectSingleNode("./header").FirstChild.Value.ToLower(), base.getUser());
+
try
{
- //headerTitle.Text = title.Text;
- UI.Controls.Add(LoadControl(SystemDirectories.Umbraco + def.SelectSingleNode("./usercontrol").FirstChild.Value));
+ var virtualPath = SystemDirectories.Umbraco + def.SelectSingleNode("./usercontrol").FirstChild.Value;
+ var mainControl = LoadControl(virtualPath);
+ UI.Controls.Add(mainControl);
}
catch (Exception ex)
{
throw new ArgumentException("ERROR CREATING CONTROL FOR NODETYPE: " + nodeType, ex);
}
}
-
-
}
}
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/sort.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/sort.aspx.cs
index f6b257ad90..2b104404b4 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/sort.aspx.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/sort.aspx.cs
@@ -83,14 +83,16 @@ namespace umbraco.cms.presentation
}
}
- // "hack for stylesheet"
- // TODO: I can't see where this is being used at all..?
+ // hack for stylesheet, used to sort stylesheet properties
if (app == Constants.Applications.Settings)
{
icon = "../images/umbraco/settingCss.gif";
var ss = new StyleSheet(parentId);
foreach (var child in ss.Properties)
- _nodes.Add(CreateNode(child.Id, child.sortOrder, child.Text, child.CreateDateTime, icon));
+ {
+ var node = new CMSNode(child.Id);
+ _nodes.Add(CreateNode(child.Id, node.sortOrder, child.Text, child.CreateDateTime, icon));
+ }
}
bindNodesToList(string.Empty);
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
index 68412ec702..cf54379d96 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
@@ -1,5 +1,6 @@
using System;
using System.Web.UI;
+using System.Web.UI.Design.WebControls;
using System.Web.UI.WebControls;
using Umbraco.Core.IO;
using umbraco.cms.businesslogic.member;
@@ -142,10 +143,16 @@ namespace umbraco.cms.presentation.members
void MemberEmailExistCheck_ServerValidate(object source, ServerValidateEventArgs args)
{
- var oldEmail = MemberEmail.Text.ToLower();
- var newEmail = _document.Email.ToLower();
+ var oldEmail = _document.Email.ToLower();
+ var newEmail = MemberEmail.Text.ToLower();
+
var requireUniqueEmail = Membership.Providers[Member.UmbracoMemberProviderName].RequiresUniqueEmail;
- var howManyMembersWithEmail = Member.GetMembersFromEmail(newEmail).Length;
+
+ var howManyMembersWithEmail = 0;
+ var membersWithEmail = Member.GetMembersFromEmail(newEmail);
+ if (membersWithEmail != null)
+ howManyMembersWithEmail = membersWithEmail.Length;
+
if (((oldEmail == newEmail && howManyMembersWithEmail > 1) ||
(oldEmail != newEmail && howManyMembersWithEmail > 0))
&& requireUniqueEmail)
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMemberGroup.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMemberGroup.aspx.cs
index 26d5b2682a..8ed1b24570 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMemberGroup.aspx.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMemberGroup.aspx.cs
@@ -33,6 +33,10 @@ namespace umbraco.presentation.members
protected void Page_Load(object sender, System.EventArgs e)
{
_memberGroupId = !String.IsNullOrEmpty(memberGroupName.Value) ? memberGroupName.Value : Request.QueryString["id"];
+
+ // Restore any escaped apostrophe for name look up
+ _memberGroupId = _memberGroupId.Replace("\\'", "'");
+
if (!IsPostBack)
{
ClientTools
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/members/MemberSearch.ascx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/members/MemberSearch.ascx.cs
index 46c9ff7f70..c165310b3c 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/members/MemberSearch.ascx.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/members/MemberSearch.ascx.cs
@@ -1,16 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Web;
using System.Web.UI;
-using System.Web.UI.WebControls;
using Examine.LuceneEngine.SearchCriteria;
+using Examine.SearchCriteria;
using umbraco.cms.businesslogic.member;
using System.Web.Security;
namespace umbraco.presentation.umbraco.members
{
- public partial class MemberSearch : System.Web.UI.UserControl
+ public partial class MemberSearch : UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
@@ -19,46 +18,30 @@ namespace umbraco.presentation.umbraco.members
ButtonSearch.Text = ui.Text("search");
}
- protected void ButtonSearch_Click(object sender, System.EventArgs e)
+ protected void ButtonSearch_Click(object sender, EventArgs e)
{
resultsPane.Visible = true;
- if (!Member.InUmbracoMemberMode())
+ if (Member.InUmbracoMemberMode())
{
-
- IEnumerable results;
- if (searchQuery.Text.Contains("@"))
- {
- results = from MembershipUser x in Membership.FindUsersByEmail(searchQuery.Text)
- select new MemberSearchResult() { Id = x.UserName, Email = x.Email, LoginName = x.UserName, Name = x.UserName };
- }
- else
- {
- results = from MembershipUser x in Membership.FindUsersByName(searchQuery.Text + "%")
- select new MemberSearchResult() { Id = x.UserName, Email = x.Email, LoginName = x.UserName, Name = x.UserName };
- }
-
- rp_members.DataSource = results;
- rp_members.DataBind();
- }
- else
- {
-
- string query = searchQuery.Text.ToLower();
+ var query = searchQuery.Text.ToLower();
var internalSearcher = UmbracoContext.Current.InternalMemberSearchProvider;
- IEnumerable results;
- if (!String.IsNullOrEmpty(query))
+ if (String.IsNullOrEmpty(query) == false)
{
- var criteria = internalSearcher.CreateSearchCriteria("member", Examine.SearchCriteria.BooleanOperation.And);
- var operation = criteria.Field("__nodeName", query.MultipleCharacterWildcard());
- results = internalSearcher.Search(operation.Compile()).Select(x => new MemberSearchResult()
- {
- Id = x["id"],
- Name = x["nodeName"],
- Email = x["email"],
- LoginName = x["loginName"]
- });
+ var criteria = internalSearcher.CreateSearchCriteria("member", BooleanOperation.Or);
+ var fields = new[] {"id", "__nodeName", "email"};
+ var term = new[] {query.ToLower().Escape()};
+ var operation = criteria.GroupedOr(fields, term).Compile();
+
+ var results = internalSearcher.Search(operation)
+ .Select(x => new MemberSearchResult
+ {
+ Id = x["id"],
+ Name = x["nodeName"],
+ Email = x["email"],
+ LoginName = x["loginName"]
+ });
rp_members.DataSource = results;
rp_members.DataBind();
}
@@ -67,7 +50,39 @@ namespace umbraco.presentation.umbraco.members
resultsPane.Visible = false;
}
}
+ else
+ {
+ IEnumerable results;
+ if (searchQuery.Text.Contains("@"))
+ {
+ results = from MembershipUser x in Membership.FindUsersByEmail(searchQuery.Text)
+ select
+ new MemberSearchResult()
+ {
+ Id = x.UserName,
+ Email = x.Email,
+ LoginName = x.UserName,
+ Name = x.UserName
+ };
+ }
+ else
+ {
+ results = from MembershipUser x in Membership.FindUsersByName(searchQuery.Text + "%")
+ select
+ new MemberSearchResult()
+ {
+ Id = x.UserName,
+ Email = x.Email,
+ LoginName = x.UserName,
+ Name = x.UserName
+ };
+ }
+
+ rp_members.DataSource = results;
+ rp_members.DataBind();
+ }
}
+
public class MemberSearchResult
{
public string Id { get; set; }
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/nodeFactory/Property.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/nodeFactory/Property.cs
index caee1f6689..a7654c132e 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/nodeFactory/Property.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/nodeFactory/Property.cs
@@ -22,7 +22,7 @@ namespace umbraco.NodeFactory
private string _parsedValue;
public string Value
{
- get { return _parsedValue ?? (_parsedValue = TemplateUtilities.ResolveUrlsFromTextString(_value)); }
+ get { return _parsedValue ?? (_parsedValue = TemplateUtilities.ParseInternalLinks(TemplateUtilities.ResolveUrlsFromTextString(_value))); }
}
public Guid Version
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/templateControls/Item.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/templateControls/Item.cs
index a8be0b3a50..5d9e608fa8 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/templateControls/Item.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/templateControls/Item.cs
@@ -6,6 +6,7 @@ using System.Security.Permissions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
+using Umbraco.Core.Models;
using umbraco.BusinessLogic.Actions;
using umbraco.presentation.LiveEditing.Modules.ItemEditing;
@@ -19,6 +20,7 @@ namespace umbraco.presentation.templateControls
[Designer("umbraco.presentation.templateControls.ItemDesigner, umbraco")]
public class Item : CompositeControl
{
+
#region Private Fields
/// The item's unique ID on the page.
@@ -26,6 +28,12 @@ namespace umbraco.presentation.templateControls
public AttributeCollectionAdapter LegacyAttributes;
#endregion
+ ///
+ /// Used by the UmbracoHelper to assign an IPublishedContent to the Item which allows us to pass this in
+ /// to the 'item' ctor so that it renders with the new API instead of the old one.
+ ///
+ internal IPublishedContent ContentItem { get; private set; }
+
#region Public Control Properties
///
@@ -191,6 +199,16 @@ namespace umbraco.presentation.templateControls
: LiveEditingItemRenderer.Instance;
}
+ ///
+ /// Internal ctor used to assign an IPublishedContent object.
+ ///
+ ///
+ internal Item(IPublishedContent contentItem)
+ :this()
+ {
+ ContentItem = contentItem;
+ }
+
#endregion
#region Overriden Control Methods
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/templateControls/ItemRenderer.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/templateControls/ItemRenderer.cs
index 37f6d4ad2f..6fc4e32ea5 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/templateControls/ItemRenderer.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/templateControls/ItemRenderer.cs
@@ -110,13 +110,15 @@ namespace umbraco.presentation.templateControls
if (cache == null) throw new InvalidOperationException("Unsupported IPublishedContentCache, only the Xml one is supported.");
var xml = cache.GetXml(Umbraco.Web.UmbracoContext.Current, Umbraco.Web.UmbracoContext.Current.InPreviewMode);
var itemPage = new page(xml.GetElementById(tempNodeId.ToString()));
- tempElementContent = new item(itemPage.Elements, item.LegacyAttributes).FieldContent;
+ tempElementContent =
+ new item(item.ContentItem, itemPage.Elements, item.LegacyAttributes).FieldContent;
}
}
else
{
// gets the field content from the current page (via the PageElements collection)
- tempElementContent = new item(item.PageElements, item.LegacyAttributes).FieldContent;
+ tempElementContent =
+ new item(item.ContentItem, item.PageElements, item.LegacyAttributes).FieldContent;
}
return tempElementContent;
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/legacyAjaxCalls.asmx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/legacyAjaxCalls.asmx.cs
index 6acd95c536..9510676701 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/legacyAjaxCalls.asmx.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/legacyAjaxCalls.asmx.cs
@@ -65,12 +65,12 @@ namespace umbraco.presentation.webservices
//check which parameters to pass depending on the types passed in
int intNodeId;
- // Fix for #26965 - numeric member login gets parsed as nodeId
- if (int.TryParse(nodeId, out intNodeId) && nodeType != "member")
+ if (nodeType == "memberGroup")
+ {
+ presentation.create.dialogHandler_temp.Delete(nodeType, 0, alias);
+ }
+ else if (int.TryParse(nodeId, out intNodeID) && nodeType != "member") // Fix for #26965 - numeric member login gets parsed as nodeId
{
- LegacyDialogHandler.Delete(
- new HttpContextWrapper(HttpContext.Current),
- UmbracoUser,
nodeType, intNodeId, alias);
}
else
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/nodeSorter.asmx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/nodeSorter.asmx.cs
index 348f07529e..a5b2102640 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/nodeSorter.asmx.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/nodeSorter.asmx.cs
@@ -92,6 +92,9 @@ namespace umbraco.presentation.webservices
if (isMedia)
SortMedia(ids);
+
+ if (isContent == false && isMedia == false)
+ SortStylesheetProperties(ids);
}
private void SortMedia(string[] ids)
@@ -116,6 +119,22 @@ namespace umbraco.presentation.webservices
}
}
+ private void SortStylesheetProperties(string[] ids)
+ {
+ try
+ {
+ for (var i = 0; i < ids.Length; i++)
+ {
+ var id = int.Parse(ids[i]);
+ new cms.businesslogic.CMSNode(id).sortOrder = i;
+ }
+ }
+ catch (Exception ex)
+ {
+ LogHelper.Error("Could not update stylesheet property sort order", ex);
+ }
+ }
+
private void SortContent(string[] ids, int parentId)
{
var contentService = base.ApplicationContext.Services.ContentService;
diff --git a/src/umbraco.businesslogic/UmbracoSettings.cs b/src/umbraco.businesslogic/UmbracoSettings.cs
index 1b82199d38..647ce1dd0a 100644
--- a/src/umbraco.businesslogic/UmbracoSettings.cs
+++ b/src/umbraco.businesslogic/UmbracoSettings.cs
@@ -581,6 +581,16 @@ namespace umbraco
get { return Umbraco.Core.Configuration.UmbracoSettings.IconPickerBehaviour; }
}
+ ///
+ /// Gets the default document type property used when adding new properties through the back-office
+ ///
+ /// Configured text for the default document type property
+ /// If undefined, 'Textstring' is the default
+ public static string DefaultDocumentTypeProperty
+ {
+ get { return Umbraco.Core.Configuration.UmbracoSettings.DefaultDocumentTypeProperty; }
+ }
+
///
/// Configuration regarding webservices
///
diff --git a/src/umbraco.cms/businesslogic/Files/UmbracoFile.cs b/src/umbraco.cms/businesslogic/Files/UmbracoFile.cs
index 475446921a..a37adad5b7 100644
--- a/src/umbraco.cms/businesslogic/Files/UmbracoFile.cs
+++ b/src/umbraco.cms/businesslogic/Files/UmbracoFile.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
@@ -8,18 +7,11 @@ using System.Linq;
using System.Web;
using Umbraco.Core;
using Umbraco.Core.IO;
-using Encoder = System.Text.Encoder;
namespace umbraco.cms.businesslogic.Files
{
public class UmbracoFile : IFile
{
- private readonly string _path;
- private string _fileName;
- private string _extension;
- private string _url;
- private long _length;
-
private readonly MediaFileSystem _fs;
#region Constructors
@@ -33,11 +25,11 @@ namespace umbraco.cms.businesslogic.Files
{
_fs = FileSystemProviderManager.Current.GetFileSystemProvider();
- _path = path;
+ Path = path;
Initialize();
}
-
+
#endregion
#region Static Methods
@@ -84,26 +76,19 @@ namespace umbraco.cms.businesslogic.Files
private void Initialize()
{
- _fileName = _fs.GetFileName(_path);
- _length = _fs.GetSize(_path);
- _extension = _fs.GetExtension(_path) != null
- ? _fs.GetExtension(_path).Substring(1).ToLowerInvariant()
+ Filename = _fs.GetFileName(Path);
+ Length = _fs.GetSize(Path);
+ Extension = _fs.GetExtension(Path) != null
+ ? _fs.GetExtension(Path).Substring(1).ToLowerInvariant()
: "";
- _url = _fs.GetUrl(_path);
+ Url = _fs.GetUrl(Path);
}
#region IFile Members
- public string Filename
- {
- get { return _fileName; }
- }
+ public string Filename { get; private set; }
- public string Extension
- {
-
- get { return _extension; }
- }
+ public string Extension { get; private set; }
[Obsolete("LocalName is obsolete, please use Url instead", false)]
public string LocalName
@@ -111,43 +96,30 @@ namespace umbraco.cms.businesslogic.Files
get { return Url; }
}
- public string Path
- {
- get { return _path; }
- }
+ public string Path { get; private set; }
- public string Url
- {
- get { return _url; }
- }
+ public string Url { get; private set; }
- public long Length
- {
- get { return _length; }
- }
+ public long Length { get; private set; }
public bool SupportsResizing
{
get
{
- if (("," + UmbracoSettings.ImageFileTypes + ",").Contains(string.Format(",{0},", _extension)))
- {
- return true;
- }
- return false;
+ return ("," + UmbracoSettings.ImageFileTypes + ",").Contains(string.Format(",{0},", Extension));
}
}
public string GetFriendlyName()
{
- return _fileName.SplitPascalCasing().ToFirstUpperInvariant();
+ return Filename.SplitPascalCasing().ToFirstUpperInvariant();
}
public System.Tuple GetDimensions()
{
- throwNotAnImageException();
+ EnsureFileSupportsResizing();
- var fs = _fs.OpenFile(_path);
+ var fs = _fs.OpenFile(Path);
var image = Image.FromStream(fs);
var fileWidth = image.Width;
var fileHeight = image.Height;
@@ -159,16 +131,16 @@ namespace umbraco.cms.businesslogic.Files
public string Resize(int width, int height)
{
- throwNotAnImageException();
+ EnsureFileSupportsResizing();
- var fileNameThumb = DoResize(width, height, 0, String.Empty);
+ var fileNameThumb = DoResize(width, height, 0, string.Empty);
return _fs.GetUrl(fileNameThumb);
}
public string Resize(int maxWidthHeight, string fileNameAddition)
{
- throwNotAnImageException();
+ EnsureFileSupportsResizing();
var fileNameThumb = DoResize(GetDimensions().Item1, GetDimensions().Item2, maxWidthHeight, fileNameAddition);
@@ -177,53 +149,44 @@ namespace umbraco.cms.businesslogic.Files
private string DoResize(int width, int height, int maxWidthHeight, string fileNameAddition)
{
- var fs = _fs.OpenFile(_path);
- var image = Image.FromStream(fs);
- fs.Close();
+ using (var fs = _fs.OpenFile(Path))
+ {
+ using (var image = Image.FromStream(fs))
+ {
+ var fileNameThumb = string.IsNullOrWhiteSpace(fileNameAddition)
+ ? string.Format("{0}_UMBRACOSYSTHUMBNAIL.jpg", Path.Substring(0, Path.LastIndexOf(".", StringComparison.Ordinal)))
+ : string.Format("{0}_{1}.jpg", Path.Substring(0, Path.LastIndexOf(".", StringComparison.Ordinal)), fileNameAddition);
- string fileNameThumb = String.IsNullOrEmpty(fileNameAddition) ?
- string.Format("{0}_UMBRACOSYSTHUMBNAIL.jpg", _path.Substring(0, _path.LastIndexOf("."))) :
- string.Format("{0}_{1}.jpg", _path.Substring(0, _path.LastIndexOf(".")), fileNameAddition);
-
- fileNameThumb = generateThumbnail(
- image,
- maxWidthHeight,
- width,
- height,
- _path,
- _extension,
- fileNameThumb,
- maxWidthHeight == 0
- ).FileName;
-
- image.Dispose();
-
- return fileNameThumb;
+ var thumbnail = GenerateThumbnail(image, maxWidthHeight, width, height, fileNameThumb, maxWidthHeight == 0);
+
+ return thumbnail.FileName;
+ }
+ }
}
#endregion
- private void throwNotAnImageException()
+ private void EnsureFileSupportsResizing()
{
- if (!SupportsResizing)
- throw new NotAnImageException(string.Format("The file {0} is not an image, so can't get dimensions", _fileName));
+ if (SupportsResizing == false)
+ throw new NotAnImageException(string.Format("The file {0} is not an image, so can't get dimensions", Filename));
}
-
- private ResizedImage generateThumbnail(System.Drawing.Image image, int maxWidthHeight, int fileWidth, int fileHeight, string fullFilePath, string ext, string thumbnailFileName, bool useFixedDimensions)
+ private ResizedImage GenerateThumbnail(Image image, int maxWidthHeight, int fileWidth, int fileHeight, string thumbnailFileName, bool useFixedDimensions)
{
// Generate thumbnail
float f = 1;
- if (!useFixedDimensions)
+ if (useFixedDimensions == false)
{
var fx = (float)image.Size.Width / (float)maxWidthHeight;
var fy = (float)image.Size.Height / (float)maxWidthHeight;
// must fit in thumbnail size
- f = Math.Max(fx, fy); //if (f < 1) f = 1;
+ f = Math.Max(fx, fy);
}
- var widthTh = (int)Math.Round((float)fileWidth / f); int heightTh = (int)Math.Round((float)fileHeight / f);
+ var widthTh = (int)Math.Round((float)fileWidth / f);
+ var heightTh = (int)Math.Round((float)fileHeight / f);
// fixes for empty width or height
if (widthTh == 0)
@@ -232,55 +195,50 @@ namespace umbraco.cms.businesslogic.Files
heightTh = 1;
// Create new image with best quality settings
- var bp = new Bitmap(widthTh, heightTh);
- var g = Graphics.FromImage(bp);
- g.SmoothingMode = SmoothingMode.HighQuality;
- g.InterpolationMode = InterpolationMode.HighQualityBicubic;
- g.PixelOffsetMode = PixelOffsetMode.HighQuality;
- g.CompositingQuality = CompositingQuality.HighQuality;
+ using (var bp = new Bitmap(widthTh, heightTh))
+ {
+ using (var g = Graphics.FromImage(bp))
+ {
+ g.SmoothingMode = SmoothingMode.HighQuality;
+ g.InterpolationMode = InterpolationMode.HighQualityBicubic;
+ g.PixelOffsetMode = PixelOffsetMode.HighQuality;
+ g.CompositingQuality = CompositingQuality.HighQuality;
- // Copy the old image to the new and resized
- var rect = new Rectangle(0, 0, widthTh, heightTh);
- g.DrawImage(image, rect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
+ // Copy the old image to the new and resized
+ var rect = new Rectangle(0, 0, widthTh, heightTh);
+ g.DrawImage(image, rect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
- // Copy metadata
- var imageEncoders = ImageCodecInfo.GetImageEncoders();
- ImageCodecInfo codec = null;
- if (Extension.ToLower() == "png" || Extension.ToLower() == "gif")
- codec = imageEncoders.Single(t => t.MimeType.Equals("image/png"));
- else
- codec = imageEncoders.Single(t => t.MimeType.Equals("image/jpeg"));
+ // Copy metadata
+ var imageEncoders = ImageCodecInfo.GetImageEncoders();
+ var codec = Extension.ToLower() == "png" || Extension.ToLower() == "gif"
+ ? imageEncoders.Single(t => t.MimeType.Equals("image/png"))
+ : imageEncoders.Single(t => t.MimeType.Equals("image/jpeg"));
- // Set compresion ratio to 90%
- var ep = new EncoderParameters();
- ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 90L);
+ // Set compresion ratio to 90%
+ var ep = new EncoderParameters();
+ ep.Param[0] = new EncoderParameter(Encoder.Quality, 90L);
- // Save the new image using the dimensions of the image
- string newFileName = thumbnailFileName.Replace("UMBRACOSYSTHUMBNAIL",
- string.Format("{0}x{1}", widthTh, heightTh));
- var ms = new MemoryStream();
- bp.Save(ms, codec, ep);
- ms.Seek(0, 0);
+ // Save the new image using the dimensions of the image
+ var newFileName = thumbnailFileName.Replace("UMBRACOSYSTHUMBNAIL", string.Format("{0}x{1}", widthTh, heightTh));
+ using (var ms = new MemoryStream())
+ {
+ bp.Save(ms, codec, ep);
+ ms.Seek(0, 0);
- _fs.AddFile(newFileName, ms);
-
- ms.Close();
- bp.Dispose();
- g.Dispose();
-
- return new ResizedImage(widthTh, heightTh, newFileName);
+ _fs.AddFile(newFileName, ms);
+ }
+ return new ResizedImage(widthTh, heightTh, newFileName);
+ }
+ }
}
-
-
}
internal class ResizedImage
{
public ResizedImage()
{
-
}
public ResizedImage(int width, int height, string fileName)
diff --git a/src/umbraco.cms/businesslogic/member/Member.cs b/src/umbraco.cms/businesslogic/member/Member.cs
index dd78840be4..947330b292 100644
--- a/src/umbraco.cms/businesslogic/member/Member.cs
+++ b/src/umbraco.cms/businesslogic/member/Member.cs
@@ -551,14 +551,19 @@ namespace umbraco.cms.businesslogic.member
SqlHelper.CreateParameter("@id", Id));
}
- return m_Email.ToLower();
+ return string.IsNullOrWhiteSpace(m_Email) ? m_Email : m_Email.ToLower();
}
set
{
var oldEmail = Email;
- var newEmail = value.ToLower();
+ var newEmail = string.IsNullOrWhiteSpace(value) ? value : value.ToLower();
var requireUniqueEmail = Membership.Providers[UmbracoMemberProviderName].RequiresUniqueEmail;
- var howManyMembersWithEmail = Member.GetMembersFromEmail(newEmail).Length;
+
+ var howManyMembersWithEmail = 0;
+ var membersWithEmail = GetMembersFromEmail(newEmail);
+ if (membersWithEmail != null)
+ howManyMembersWithEmail = membersWithEmail.Length;
+
if (((oldEmail == newEmail && howManyMembersWithEmail > 1) ||
(oldEmail != newEmail && howManyMembersWithEmail > 0))
&& requireUniqueEmail)
diff --git a/src/umbraco.cms/businesslogic/member/MemberGroup.cs b/src/umbraco.cms/businesslogic/member/MemberGroup.cs
index ee115558fe..93494bbfb7 100644
--- a/src/umbraco.cms/businesslogic/member/MemberGroup.cs
+++ b/src/umbraco.cms/businesslogic/member/MemberGroup.cs
@@ -157,16 +157,16 @@ namespace umbraco.cms.businesslogic.member
///
/// Get a membergroup by it's name
///
- /// Name of the membergroup
+ /// Name of the membergroup
/// If a MemberGroup with the given name exists, it will return this, else: null
- public static MemberGroup GetByName(string Name)
+ public static MemberGroup GetByName(string name)
{
try
{
return
new MemberGroup(SqlHelper.ExecuteScalar(
"select id from umbracoNode where Text = @text and nodeObjectType = @objectType",
- SqlHelper.CreateParameter("@text", Name),
+ SqlHelper.CreateParameter("@text", name),
SqlHelper.CreateParameter("@objectType", _objectType)));
}
catch
diff --git a/src/umbraco.cms/businesslogic/template/Template.cs b/src/umbraco.cms/businesslogic/template/Template.cs
index 26e4ffdddd..7f58d40953 100644
--- a/src/umbraco.cms/businesslogic/template/Template.cs
+++ b/src/umbraco.cms/businesslogic/template/Template.cs
@@ -428,10 +428,10 @@ namespace umbraco.cms.businesslogic.template
switch (DetermineRenderingEngine(t, design))
{
case RenderingEngine.Mvc:
- ViewHelper.CreateViewFile(t, true);
+ ViewHelper.CreateViewFile(t);
break;
case RenderingEngine.WebForms:
- MasterPageHelper.CreateMasterPage(t, true);
+ MasterPageHelper.CreateMasterPage(t);
break;
}
diff --git a/src/umbraco.cms/businesslogic/web/Access.cs b/src/umbraco.cms/businesslogic/web/Access.cs
index 39a43ad6b7..64d43c8756 100644
--- a/src/umbraco.cms/businesslogic/web/Access.cs
+++ b/src/umbraco.cms/businesslogic/web/Access.cs
@@ -201,6 +201,7 @@ namespace umbraco.cms.businesslogic.web
bool hasChange = false;
if (oldRolename != newRolename)
{
+ oldRolename = oldRolename.Replace("'", "'");
foreach (XmlNode x in AccessXml.SelectNodes("//group [@id = '" + oldRolename + "']"))
{
x.Attributes["id"].Value = newRolename;
diff --git a/src/umbraco.cms/packages.config b/src/umbraco.cms/packages.config
index 3a63559557..fb0f66ebab 100644
--- a/src/umbraco.cms/packages.config
+++ b/src/umbraco.cms/packages.config
@@ -1,6 +1,6 @@
-
+
diff --git a/src/umbraco.cms/umbraco.cms.csproj b/src/umbraco.cms/umbraco.cms.csproj
index 3e2e8da4c2..4c0fc0d343 100644
--- a/src/umbraco.cms/umbraco.cms.csproj
+++ b/src/umbraco.cms/umbraco.cms.csproj
@@ -106,9 +106,9 @@
false
-
+
False
- ..\packages\ClientDependency.1.7.0.3\lib\ClientDependency.Core.dll
+ ..\packages\ClientDependency.1.7.0.4\lib\ClientDependency.Core.dll
False
diff --git a/src/umbraco.controls/packages.config b/src/umbraco.controls/packages.config
index d30bbbe9c0..a432c3897a 100644
--- a/src/umbraco.controls/packages.config
+++ b/src/umbraco.controls/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/src/umbraco.controls/umbraco.controls.csproj b/src/umbraco.controls/umbraco.controls.csproj
index 520d173367..3b28d5a59a 100644
--- a/src/umbraco.controls/umbraco.controls.csproj
+++ b/src/umbraco.controls/umbraco.controls.csproj
@@ -68,9 +68,9 @@
false
-
+
False
- ..\packages\ClientDependency.1.7.0.3\lib\ClientDependency.Core.dll
+ ..\packages\ClientDependency.1.7.0.4\lib\ClientDependency.Core.dll
diff --git a/src/umbraco.editorControls/DefaultDataKeyValue.cs b/src/umbraco.editorControls/DefaultDataKeyValue.cs
index a08c51d7d5..26a32ffb18 100644
--- a/src/umbraco.editorControls/DefaultDataKeyValue.cs
+++ b/src/umbraco.editorControls/DefaultDataKeyValue.cs
@@ -1,4 +1,5 @@
using System;
+using Umbraco.Core.Logging;
using umbraco.DataLayer;
namespace umbraco.editorControls
@@ -19,25 +20,28 @@ namespace umbraco.editorControls
public override System.Xml.XmlNode ToXMl(System.Xml.XmlDocument d)
{
// Get the value from
- string v = "";
+ var v = "";
try
{
- // Don't query if there's nothing to query for..
- if (string.IsNullOrWhiteSpace(Value.ToString()) == false)
- {
- IRecordsReader dr = SqlHelper.ExecuteReader("Select [value] from cmsDataTypeprevalues where id in (" + SqlHelper.EscapeString(Value.ToString()) + ")");
+ // Don't query if there's nothing to query for..
+ if (string.IsNullOrWhiteSpace(Value.ToString()) == false)
+ {
+ var dr = SqlHelper.ExecuteReader("Select [value] from cmsDataTypeprevalues where id in (" + SqlHelper.EscapeString(Value.ToString()) + ")");
- while (dr.Read())
- {
- if (v.Length == 0)
- v += dr.GetString("value");
- else
- v += "," + dr.GetString("value");
- }
- dr.Close();
- }
- }
- catch {}
+ while (dr.Read())
+ {
+ if (v.Length == 0)
+ v += dr.GetString("value");
+ else
+ v += "," + dr.GetString("value");
+ }
+ dr.Close();
+ }
+ }
+ catch (Exception ex)
+ {
+ LogHelper.Error("An exception occurred converting the property data to XML", ex);
+ }
return d.CreateCDataSection(v);
}
}
diff --git a/src/umbraco.editorControls/MultiNodeTreePicker/MNTP_DataEditor.cs b/src/umbraco.editorControls/MultiNodeTreePicker/MNTP_DataEditor.cs
index 72d36c8fa2..b002218bd8 100644
--- a/src/umbraco.editorControls/MultiNodeTreePicker/MNTP_DataEditor.cs
+++ b/src/umbraco.editorControls/MultiNodeTreePicker/MNTP_DataEditor.cs
@@ -9,10 +9,10 @@ using System.Web.UI.WebControls;
using System.Xml.Linq;
using ClientDependency.Core;
using Umbraco.Core;
+using Umbraco.Core.IO;
using umbraco.cms.presentation.Trees;
using umbraco.controls.Images;
using umbraco.controls.Tree;
-using umbraco.IO;
[assembly: WebResource("umbraco.editorControls.MultiNodeTreePicker.MultiNodePickerStyles.css", "text/css")]
[assembly: WebResource("umbraco.editorControls.MultiNodeTreePicker.MultiNodePickerScripts.js", "application/x-javascript")]
@@ -25,6 +25,7 @@ namespace umbraco.editorControls.MultiNodeTreePicker
[ClientDependency(ClientDependencyType.Javascript, "ui/jqueryui.js", "UmbracoClient")]
[ClientDependency(ClientDependencyType.Javascript, "ui/jquery.tooltip.min.js", "UmbracoClient")]
[ClientDependency(ClientDependencyType.Javascript, "controls/Images/ImageViewer.js", "UmbracoRoot")]
+ [ValidationProperty("Value")]
public class MNTP_DataEditor : Control, INamingContainer
{
#region Static Constructor
@@ -93,9 +94,15 @@ namespace umbraco.editorControls.MultiNodeTreePicker
ControlHeight = 200;
}
+ ///
+ /// This is used for validation purposes only, see the [ValidationProperty("Value")] attribute above.
+ ///
+ public string Value
+ {
+ get { return string.Join(",", SelectedIds); }
+ }
-
- #region Protected members
+ #region Protected members
///
///
@@ -374,9 +381,7 @@ namespace umbraco.editorControls.MultiNodeTreePicker
this.Controls.Add(PickedValue);
this.Controls.Add(RightColumn);
}
-
-
-
+
///
/// Ensure the repeater is data bound
///
diff --git a/src/umbraco.editorControls/mediapicker/mediaChooser.cs b/src/umbraco.editorControls/mediapicker/mediaChooser.cs
index 85a2ae4dba..e523298120 100644
--- a/src/umbraco.editorControls/mediapicker/mediaChooser.cs
+++ b/src/umbraco.editorControls/mediapicker/mediaChooser.cs
@@ -1,20 +1,13 @@
using System;
using System.Web.UI;
-
+using Umbraco.Core.IO;
using umbraco.cms.presentation.Trees;
-using ClientDependency.Core;
-using umbraco.presentation;
-using ClientDependency.Core.Controls;
using umbraco.interfaces;
-using umbraco.IO;
-using umbraco.BasePages;
using umbraco.controls.Images;
-using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
-using System.Resources;
using umbraco.editorControls.mediapicker;
-using umbraco.uicontrols.TreePicker;
using umbraco.cms.businesslogic;
+
namespace umbraco.editorControls
{
///
@@ -23,8 +16,8 @@ namespace umbraco.editorControls
[ValidationProperty("Value")]
public class mediaChooser : BaseTreePickerEditor
{
- bool _showpreview;
- bool _showadvanced;
+ readonly bool _showpreview;
+ readonly bool _showadvanced;
protected ImageViewer ImgViewer;
protected HtmlGenericControl PreviewContainer;
@@ -51,7 +44,7 @@ namespace umbraco.editorControls
{
get
{
- return _showadvanced ? umbraco.IO.IOHelper.ResolveUrl(umbraco.IO.SystemDirectories.Umbraco) + "/dialogs/mediaPicker.aspx" : TreeService.GetPickerUrl(Umbraco.Core.Constants.Applications.Media, "media");
+ return _showadvanced ? IOHelper.ResolveUrl(SystemDirectories.Umbraco) + "/dialogs/mediaPicker.aspx" : TreeService.GetPickerUrl(Umbraco.Core.Constants.Applications.Media, "media");
}
}
@@ -87,7 +80,7 @@ namespace umbraco.editorControls
TreePickerUrl,
ModalWidth.ToString(),
ModalHeight.ToString(),
- umbraco.IO.IOHelper.ResolveUrl(umbraco.IO.SystemDirectories.Umbraco).TrimEnd('/')
+ IOHelper.ResolveUrl(SystemDirectories.Umbraco).TrimEnd('/')
});
}
}
@@ -119,14 +112,14 @@ namespace umbraco.editorControls
//create the preview wrapper
PreviewContainer = new HtmlGenericControl("div");
PreviewContainer.ID = "preview";
- this.Controls.Add(PreviewContainer);
+ Controls.Add(PreviewContainer);
- ImgViewer = (ImageViewer)Page.LoadControl(umbraco.IO.IOHelper.ResolveUrl(umbraco.IO.SystemDirectories.Umbraco) + "/controls/Images/ImageViewer.ascx");
+ ImgViewer = (ImageViewer)Page.LoadControl(IOHelper.ResolveUrl(SystemDirectories.Umbraco) + "/controls/Images/ImageViewer.ascx");
ImgViewer.ID = "ImgViewer";
- ImgViewer.ViewerStyle = ImageViewer.Style.ImageLink;
+ ImgViewer.ViewerStyle = ImageViewer.Style.ImageLink;
PreviewContainer.Style.Add(HtmlTextWriterStyle.MarginTop, "5px");
- PreviewContainer.Controls.Add(ImgViewer);
+ PreviewContainer.Controls.Add(ImgViewer);
}
}
@@ -159,23 +152,6 @@ namespace umbraco.editorControls
ImgViewer.MediaId = int.Parse(ItemIdValue.Value);
}
}
-
- //if (ScriptManager.GetCurrent(Page).IsInAsyncPostBack)
- //{
- // //renders the media picker JS class
- // ScriptManager.RegisterStartupScript(this, this.GetType(), "MediaChooser", MediaChooserScripts.MediaPicker, true);
- // ScriptManager.RegisterStartupScript(this, this.GetType(), this.ClientID + "MediaPicker", strScript, true);
-
- //}
- //else
- //{
- // //renders the media picker JS class
- // Page.ClientScript.RegisterClientScriptBlock(typeof(mediaChooser), "MediaChooser", MediaChooserScripts.MediaPicker, true);
- // Page.ClientScript.RegisterStartupScript(this.GetType(), this.ClientID + "MediaPicker", strScript, true);
-
- //}
-
}
-
}
}
diff --git a/src/umbraco.editorControls/packages.config b/src/umbraco.editorControls/packages.config
index d30bbbe9c0..a432c3897a 100644
--- a/src/umbraco.editorControls/packages.config
+++ b/src/umbraco.editorControls/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/src/umbraco.editorControls/tinymce/tinyMCEImageHelper.cs b/src/umbraco.editorControls/tinymce/tinyMCEImageHelper.cs
index ac8bb63ee3..0bb52b4dd4 100644
--- a/src/umbraco.editorControls/tinymce/tinyMCEImageHelper.cs
+++ b/src/umbraco.editorControls/tinymce/tinyMCEImageHelper.cs
@@ -5,9 +5,7 @@ using System.Text.RegularExpressions;
using System.Web;
using Umbraco.Core.IO;
using Umbraco.Core.Logging;
-using umbraco.BusinessLogic;
using umbraco.cms.businesslogic.Files;
-using umbraco.IO;
namespace umbraco.editorControls.tinymce
{
@@ -31,7 +29,7 @@ namespace umbraco.editorControls.tinymce
// gather all attributes
// TODO: This should be replaced with a general helper method - but for now we'll wanna leave umbraco.dll alone for this patch
var ht = new Hashtable();
- var matches = Regex.Matches(tag.Value.Replace(">", " >"), "(?\\S*)=\"(?[^\"]*)\"|(?\\S*)=(?[^\"|\\s]*)\\s", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
+ var matches = Regex.Matches(tag.Value.Replace(">", " >"), "(?\\S*?)=\"(?[^\"]*)\"|(?\\S*?)=(?[^\"|\\s]*)\\s", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
foreach (Match attributeSet in matches)
{
ht.Add(attributeSet.Groups["attributeName"].Value.ToLower(),
@@ -134,7 +132,21 @@ namespace umbraco.editorControls.tinymce
if (fs.FileExists(orgPath))
{
var uf = new UmbracoFile(orgPath);
- newSrc = uf.Resize(newWidth, newHeight);
+
+ 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;
}
}
diff --git a/src/umbraco.editorControls/umbraco.editorControls.csproj b/src/umbraco.editorControls/umbraco.editorControls.csproj
index c702e92e6a..8bb21115ee 100644
--- a/src/umbraco.editorControls/umbraco.editorControls.csproj
+++ b/src/umbraco.editorControls/umbraco.editorControls.csproj
@@ -114,9 +114,9 @@
{651E1350-91B6-44B7-BD60-7207006D7003}
Umbraco.Web
-
+
False
- ..\packages\ClientDependency.1.7.0.3\lib\ClientDependency.Core.dll
+ ..\packages\ClientDependency.1.7.0.4\lib\ClientDependency.Core.dll
System
diff --git a/src/umbraco.macroRenderings/packages.config b/src/umbraco.macroRenderings/packages.config
index c840bab970..38a750a6ff 100644
--- a/src/umbraco.macroRenderings/packages.config
+++ b/src/umbraco.macroRenderings/packages.config
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/src/umbraco.macroRenderings/umbraco.macroRenderings.csproj b/src/umbraco.macroRenderings/umbraco.macroRenderings.csproj
index 7bb292dffd..8a261b77a7 100644
--- a/src/umbraco.macroRenderings/umbraco.macroRenderings.csproj
+++ b/src/umbraco.macroRenderings/umbraco.macroRenderings.csproj
@@ -106,9 +106,9 @@
false
-
+
False
- ..\packages\ClientDependency.1.7.0.3\lib\ClientDependency.Core.dll
+ ..\packages\ClientDependency.1.7.0.4\lib\ClientDependency.Core.dll
False