From a1ee3525147aa10e500cabc58a3c4348ab89c561 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Fri, 31 May 2013 05:46:10 -0200 Subject: [PATCH 01/15] Additional fix for U4-335 Image cropper out of memory --- .../imagecropper/ImageManipulation.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/umbraco.editorControls/imagecropper/ImageManipulation.cs b/src/umbraco.editorControls/imagecropper/ImageManipulation.cs index e9d67645b8..9835f7b2cb 100644 --- a/src/umbraco.editorControls/imagecropper/ImageManipulation.cs +++ b/src/umbraco.editorControls/imagecropper/ImageManipulation.cs @@ -74,15 +74,19 @@ namespace umbraco.editorControls.imagecropper private static Image CropImage(Image img, Rectangle cropArea) { - var bmpImage = new Bitmap(img); - if (cropArea.Right > img.Width) cropArea.Width -= (cropArea.Right - img.Width); if (cropArea.Bottom > img.Height) cropArea.Height -= (cropArea.Bottom - img.Height); - var bmpCrop = bmpImage.Clone(cropArea, bmpImage.PixelFormat); + var bmpCrop = new Bitmap(cropArea.Width, cropArea.Height); + + using (var graphics = Graphics.FromImage(bmpCrop)) + { + graphics.DrawImage(img, new Rectangle(0, 0, bmpCrop.Width, bmpCrop.Height), cropArea, GraphicsUnit.Pixel); + } + return bmpCrop; } From b4b0a37c2ceb383c3f5555e653047e76f56c46d7 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Fri, 31 May 2013 09:13:25 -0200 Subject: [PATCH 02/15] Fixes U4-2302 Breaking change in 6.1? Macro parameter "contentPicker" no longer passes an id, but a node --- src/Umbraco.Web/umbraco.presentation/macro.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web/umbraco.presentation/macro.cs b/src/Umbraco.Web/umbraco.presentation/macro.cs index 10fa66fd65..0aa0fbfc66 100644 --- a/src/Umbraco.Web/umbraco.presentation/macro.cs +++ b/src/Umbraco.Web/umbraco.presentation/macro.cs @@ -1230,8 +1230,12 @@ namespace umbraco { } break; - case "contentPicker": - var currentNode = macroXml.ImportNode(umbracoXml.GetElementById(contentId), true); + case "contentCurrent": + var importNode = macroPropertyValue == string.Empty + ? umbracoXml.GetElementById(contentId) + : umbracoXml.GetElementById(macroPropertyValue); + + var currentNode = macroXml.ImportNode(importNode, true); // remove all sub content nodes foreach (XmlNode n in currentNode.SelectNodes("node|*[@isDoc]")) From cc7f41d9ee038c462a962a5465da7ddaf93fbb99 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Fri, 31 May 2013 09:15:10 -0200 Subject: [PATCH 03/15] U4-2295 Templates tree doesn't refresh and Master template stays at "None" --- src/Umbraco.Web.UI/umbraco/settings/editTemplate.aspx | 1 + src/Umbraco.Web.UI/umbraco_client/Editors/EditTemplate.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI/umbraco/settings/editTemplate.aspx b/src/Umbraco.Web.UI/umbraco/settings/editTemplate.aspx index 5669c799e4..1308d96298 100644 --- a/src/Umbraco.Web.UI/umbraco/settings/editTemplate.aspx +++ b/src/Umbraco.Web.UI/umbraco/settings/editTemplate.aspx @@ -24,6 +24,7 @@ useMasterPages: <%=umbraco.UmbracoSettings.UseAspNetMasterPages.ToString().ToLower()%>, templateId: <%= Request.QueryString["templateID"] %>, masterTemplateId: jQuery('#<%= MasterTemplate.ClientID %>').val(), + masterPageDropDown: $("#<%= MasterTemplate.ClientID %>"), treeSyncPath: '<%=TemplateTreeSyncPath%>', text: { templateErrorHeader: "<%= umbraco.ui.Text("speechBubbles", "templateErrorHeader") %>", diff --git a/src/Umbraco.Web.UI/umbraco_client/Editors/EditTemplate.js b/src/Umbraco.Web.UI/umbraco_client/Editors/EditTemplate.js index d67cd2aae5..c3d142e314 100644 --- a/src/Umbraco.Web.UI/umbraco_client/Editors/EditTemplate.js +++ b/src/Umbraco.Web.UI/umbraco_client/Editors/EditTemplate.js @@ -102,7 +102,7 @@ var self = this; umbraco.presentation.webservices.codeEditorSave.SaveTemplate( - templateName, templateAlias, codeVal, self._opts.templateId, self._opts.masterTemplateId, + templateName, templateAlias, codeVal, self._opts.templateId, this._opts.masterPageDropDown.val(), function(t) { self.submitSucces(t); }, function(t) { self.submitFailure(t); }); From 9bd255d9a59a05f8ca40209567561dce8770a3ed Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Fri, 31 May 2013 11:35:21 -0200 Subject: [PATCH 04/15] Include ExamineManagementIco.png in project so it's included in the build --- src/Umbraco.Web.UI/Umbraco.Web.UI.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj index b343c6d1b9..50c3a376e3 100644 --- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj +++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj @@ -837,6 +837,7 @@ + From 5c0c33a46be59bcb50ba0248356dda62aaa522f6 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Fri, 31 May 2013 12:14:03 -0200 Subject: [PATCH 05/15] Fixes U4-2304 Typo bug in umbraco.cms.businesslogic.packager --- src/umbraco.cms/businesslogic/Packager/Installer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/umbraco.cms/businesslogic/Packager/Installer.cs b/src/umbraco.cms/businesslogic/Packager/Installer.cs index c890dbe6d7..b981823267 100644 --- a/src/umbraco.cms/businesslogic/Packager/Installer.cs +++ b/src/umbraco.cms/businesslogic/Packager/Installer.cs @@ -815,7 +815,7 @@ namespace umbraco.cms.businesslogic.packager _license = _packageConfig.DocumentElement.SelectSingleNode("/umbPackage/info/package/license").FirstChild.Value; _licenseUrl = _packageConfig.DocumentElement.SelectSingleNode("/umbPackage/info/package/license").Attributes.GetNamedItem("url").Value; _reqMajor = int.Parse(_packageConfig.DocumentElement.SelectSingleNode("/umbPackage/info/package/requirements/major").FirstChild.Value); - _reqMinor = int.Parse(_packageConfig.DocumentElement.SelectSingleNode("/umbPackage/info/package/requirements/major").FirstChild.Value); + _reqMinor = int.Parse(_packageConfig.DocumentElement.SelectSingleNode("/umbPackage/info/package/requirements/minor").FirstChild.Value); _reqPatch = int.Parse(_packageConfig.DocumentElement.SelectSingleNode("/umbPackage/info/package/requirements/patch").FirstChild.Value); _authorName = _packageConfig.DocumentElement.SelectSingleNode("/umbPackage/info/author/name").FirstChild.Value; _authorUrl = _packageConfig.DocumentElement.SelectSingleNode("/umbPackage/info/author/website").FirstChild.Value; From 159d605434257e1c9d3eee4de98fae6d986ffd75 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Fri, 31 May 2013 13:59:35 -0200 Subject: [PATCH 06/15] U4-2262 Release 6.1.0 Build 2 (Beta) has Razor Errors on scripting files --- .../cshtml/ListChildPagesWithDoctype.cshtml | 8 +++++++- .../ListDescendantsFromCurrentPage.cshtml | 18 +++++++----------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/Umbraco.Web.UI/umbraco/scripting/templates/cshtml/ListChildPagesWithDoctype.cshtml b/src/Umbraco.Web.UI/umbraco/scripting/templates/cshtml/ListChildPagesWithDoctype.cshtml index 9569ef7a7e..7bf279768b 100644 --- a/src/Umbraco.Web.UI/umbraco/scripting/templates/cshtml/ListChildPagesWithDoctype.cshtml +++ b/src/Umbraco.Web.UI/umbraco/scripting/templates/cshtml/ListChildPagesWithDoctype.cshtml @@ -10,9 +10,15 @@ @{ @*Build a query and return the visible items *@ - var selection= Model.Textpages.Where(query).Where("Visible"); + var selection= Model.Textpages.Where("Visible"); + + @* + Example of more querying, if you have a true/false property with the alias of shouldBeFeatured: + var selection= Model.Textpages.Where("shouldBeFeatured == true").Where("Visible"); + *@ } + @*Determine if there are any nodes in the selection, then render list *@ @if(selection.Any()){ diff --git a/src/Umbraco.Web.UI/umbraco/scripting/templates/cshtml/ListDescendantsFromCurrentPage.cshtml b/src/Umbraco.Web.UI/umbraco/scripting/templates/cshtml/ListDescendantsFromCurrentPage.cshtml index 32b106757b..7d287523ac 100644 --- a/src/Umbraco.Web.UI/umbraco/scripting/templates/cshtml/ListDescendantsFromCurrentPage.cshtml +++ b/src/Umbraco.Web.UI/umbraco/scripting/templates/cshtml/ListDescendantsFromCurrentPage.cshtml @@ -1,25 +1,21 @@ -@inherits PartialViewMacroPage -@using Umbraco.Cms.Web -@using Umbraco.Cms.Web.Macros -@using Umbraco.Framework - +@inherits umbraco.MacroEngines.DynamicNodeContext @* Ensure that the Current Page has children, where the property umbracoNaviHide is not True *@ -@if (CurrentPage.Children.Where("umbracoNaviHide != @0", "True").Any()) +@if (Model.Children.Where("Visible").Any()) { @* Get the first page in the children, where the property umbracoNaviHide is not True *@ - var naviLevel = CurrentPage.Children.Where("umbracoNaviHide != @0", "True").First().Level; + var naviLevel = Model.Children.Where("Visible").First().Level; @* Add in level for a CSS hook *@
    @* For each child page under the root node, where the property umbracoNaviHide is not True *@ - @foreach (var childPage in CurrentPage.Children.Where("umbracoNaviHide != @0", "True")) + @foreach (var childPage in Model.Children.Where("Visible")) {
  • @childPage.Name @* if the current page has any children, where the property umbracoNaviHide is not True *@ - @if (childPage.Children.Where("umbracoNaviHide != @0", "True").Any()) + @if (childPage.Children.Where("Visible").Any()) { @* Call our helper to display the children *@ @childPages(childPage.Children) @@ -40,13 +36,13 @@ @* Add in level for a CSS hook *@
      - @foreach (var page in pages.Where("umbracoNaviHide != @0", "True")) + @foreach (var page in pages.Where("Visible")) {
    • @page.Name @* if the current page has any children, where the property umbracoNaviHide is not True *@ - @if (page.Children.Where("umbracoNaviHide != @0", "True").Any()) + @if (page.Children.Where("Visible").Any()) { @* Call our helper to display the children *@ @childPages(page.Children) From 242443d8611664ee390b898389cc09b8f6636f9b Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Sat, 1 Jun 2013 20:40:51 -0200 Subject: [PATCH 07/15] Fixes the EntityRepository for Content and Media, so trees load correctly. Fixes U4-2306 Fixes loading of MNTP. FolderBrowser is now able to show multiple images on a single media item. FolderBrowser only shows images and not containers. --- src/Umbraco.Core/Models/UmbracoEntity.cs | 24 ++-- .../Factories/UmbracoEntityFactory.cs | 16 ++- .../Repositories/EntityRepository.cs | 135 ++++++++++++++---- .../Services/EntityServiceTests.cs | 7 +- .../WebServices/FolderBrowserService.cs | 37 ++--- .../umbraco/Trees/BaseContentTree.cs | 11 +- .../umbraco/Trees/BaseMediaTree.cs | 27 +++- .../umbraco/Trees/ContentRecycleBin.cs | 27 ++-- .../umbraco/Trees/loadContent.cs | 8 ++ .../FilteredContentTree.cs | 8 ++ 10 files changed, 216 insertions(+), 84 deletions(-) diff --git a/src/Umbraco.Core/Models/UmbracoEntity.cs b/src/Umbraco.Core/Models/UmbracoEntity.cs index 5b0696bec1..451c0fe9c1 100644 --- a/src/Umbraco.Core/Models/UmbracoEntity.cs +++ b/src/Umbraco.Core/Models/UmbracoEntity.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Reflection; using Umbraco.Core.Models.EntityBase; @@ -21,7 +22,6 @@ namespace Umbraco.Core.Models private bool _isDraft; private bool _hasPendingChanges; private string _contentTypeAlias; - private string _umbracoFile; private Guid _nodeObjectTypeId; private static readonly PropertyInfo CreatorIdSelector = ExpressionHelper.GetPropertyInfo(x => x.CreatorId); @@ -38,7 +38,6 @@ namespace Umbraco.Core.Models private static readonly PropertyInfo ContentTypeAliasSelector = ExpressionHelper.GetPropertyInfo(x => x.ContentTypeAlias); private static readonly PropertyInfo ContentTypeIconSelector = ExpressionHelper.GetPropertyInfo(x => x.ContentTypeIcon); private static readonly PropertyInfo ContentTypeThumbnailSelector = ExpressionHelper.GetPropertyInfo(x => x.ContentTypeThumbnail); - private static readonly PropertyInfo UmbracoFileSelector = ExpressionHelper.GetPropertyInfo(x => x.UmbracoFile); private static readonly PropertyInfo NodeObjectTypeIdSelector = ExpressionHelper.GetPropertyInfo(x => x.NodeObjectTypeId); private string _contentTypeIcon; private string _contentTypeThumbnail; @@ -234,19 +233,6 @@ namespace Umbraco.Core.Models } } - public string UmbracoFile - { - get { return _umbracoFile; } - set - { - SetPropertyValueAndDetectChanges(o => - { - _umbracoFile = value; - return _umbracoFile; - }, _umbracoFile, UmbracoFileSelector); - } - } - public Guid NodeObjectTypeId { get { return _nodeObjectTypeId; } @@ -259,5 +245,13 @@ namespace Umbraco.Core.Models }, _nodeObjectTypeId, NodeObjectTypeIdSelector); } } + + public IList UmbracoProperties { get; set; } + + internal class UmbracoProperty + { + public Guid DataTypeControlId { get; set; } + public string Value { get; set; } + } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Persistence/Factories/UmbracoEntityFactory.cs b/src/Umbraco.Core/Persistence/Factories/UmbracoEntityFactory.cs index 28c21d5ec9..d7b8247364 100644 --- a/src/Umbraco.Core/Persistence/Factories/UmbracoEntityFactory.cs +++ b/src/Umbraco.Core/Persistence/Factories/UmbracoEntityFactory.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Globalization; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories; @@ -25,13 +26,26 @@ namespace Umbraco.Core.Persistence.Factories ContentTypeAlias = dto.Alias ?? string.Empty, ContentTypeIcon = dto.Icon ?? string.Empty, ContentTypeThumbnail = dto.Thumbnail ?? string.Empty, - UmbracoFile = dto.UmbracoFile ?? string.Empty + UmbracoProperties = new List() }; entity.IsPublished = dto.PublishedVersion != default(Guid) || (dto.NewestVersion != default(Guid) && dto.PublishedVersion == dto.NewestVersion); entity.IsDraft = dto.NewestVersion != default(Guid) && (dto.PublishedVersion == default(Guid) || dto.PublishedVersion != dto.NewestVersion); entity.HasPendingChanges = (dto.PublishedVersion != default(Guid) && dto.NewestVersion != default(Guid)) && dto.PublishedVersion != dto.NewestVersion; + if (dto.UmbracoPropertyDtos != null) + { + foreach (var propertyDto in dto.UmbracoPropertyDtos) + { + entity.UmbracoProperties.Add(new UmbracoEntity.UmbracoProperty + { + DataTypeControlId = + propertyDto.DataTypeControlId, + Value = propertyDto.UmbracoFile + }); + } + } + return entity; } diff --git a/src/Umbraco.Core/Persistence/Repositories/EntityRepository.cs b/src/Umbraco.Core/Persistence/Repositories/EntityRepository.cs index 7dc4286a44..a73c7c943a 100644 --- a/src/Umbraco.Core/Persistence/Repositories/EntityRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/EntityRepository.cs @@ -45,7 +45,7 @@ namespace Umbraco.Core.Persistence.Repositories public virtual IUmbracoEntity Get(int id) { - var sql = GetBaseWhere(GetBase, false, id); + var sql = GetBaseWhere(GetBase, false, false, id); var nodeDto = _work.Database.FirstOrDefault(sql); if (nodeDto == null) return null; @@ -58,8 +58,9 @@ namespace Umbraco.Core.Persistence.Repositories public virtual IUmbracoEntity Get(int id, Guid objectTypeId) { - bool isContentOrMedia = objectTypeId == new Guid(Constants.ObjectTypes.Document) || objectTypeId == new Guid(Constants.ObjectTypes.Media); - var sql = GetBaseWhere(GetBase, isContentOrMedia, objectTypeId, id).Append(GetGroupBy(isContentOrMedia)); + bool isContent = objectTypeId == new Guid(Constants.ObjectTypes.Document); + bool isMedia = objectTypeId == new Guid(Constants.ObjectTypes.Media); + var sql = GetBaseWhere(GetBase, isContent, isMedia, objectTypeId, id).Append(GetGroupBy(isContent, isMedia)); var nodeDto = _work.Database.FirstOrDefault(sql); if (nodeDto == null) return null; @@ -81,10 +82,13 @@ namespace Umbraco.Core.Persistence.Repositories } else { - bool isContentOrMedia = objectTypeId == new Guid(Constants.ObjectTypes.Document) || objectTypeId == new Guid(Constants.ObjectTypes.Media); - var sql = GetBaseWhere(GetBase, isContentOrMedia, objectTypeId).Append(GetGroupBy(isContentOrMedia)); - var dtos = _work.Database.Fetch(sql); - + bool isContent = objectTypeId == new Guid(Constants.ObjectTypes.Document); + bool isMedia = objectTypeId == new Guid(Constants.ObjectTypes.Media); + var sql = GetBaseWhere(GetBase, isContent, isMedia, objectTypeId).Append(GetGroupBy(isContent, isMedia)); + var dtos = isMedia + ? _work.Database.Fetch( + new UmbracoEntityRelator().Map, sql) + : _work.Database.Fetch(sql); var factory = new UmbracoEntityFactory(); foreach (var dto in dtos) @@ -97,9 +101,9 @@ namespace Umbraco.Core.Persistence.Repositories public virtual IEnumerable GetByQuery(IQuery query) { - var sqlClause = GetBase(false); + var sqlClause = GetBase(false, false); var translator = new SqlTranslator(sqlClause, query); - var sql = translator.Translate().Append(GetGroupBy(false)); + var sql = translator.Translate().Append(GetGroupBy(false, false)); var dtos = _work.Database.Fetch(sql); @@ -111,12 +115,16 @@ namespace Umbraco.Core.Persistence.Repositories public virtual IEnumerable GetByQuery(IQuery query, Guid objectTypeId) { - bool isContentOrMedia = objectTypeId == new Guid(Constants.ObjectTypes.Document) || objectTypeId == new Guid(Constants.ObjectTypes.Media); - var sqlClause = GetBaseWhere(GetBase, isContentOrMedia, objectTypeId); + bool isContent = objectTypeId == new Guid(Constants.ObjectTypes.Document); + bool isMedia = objectTypeId == new Guid(Constants.ObjectTypes.Media); + var sqlClause = GetBaseWhere(GetBase, isContent, isMedia, objectTypeId); var translator = new SqlTranslator(sqlClause, query); - var sql = translator.Translate().Append(GetGroupBy(isContentOrMedia)); + var sql = translator.Translate().Append(GetGroupBy(isContent, isMedia)); - var dtos = _work.Database.Fetch(sql); + var dtos = isMedia + ? _work.Database.Fetch( + new UmbracoEntityRelator().Map, sql) + : _work.Database.Fetch(sql); var factory = new UmbracoEntityFactory(); var list = dtos.Select(factory.BuildEntity).Cast().ToList(); @@ -128,7 +136,7 @@ namespace Umbraco.Core.Persistence.Repositories #region Sql Statements - protected virtual Sql GetBase(bool isContentOrMedia) + protected virtual Sql GetBase(bool isContent, bool isMedia) { var columns = new List { @@ -146,14 +154,19 @@ namespace Umbraco.Core.Persistence.Repositories "COUNT(parent.parentID) as children" }; - if (isContentOrMedia) + if (isContent || isMedia) { columns.Add("published.versionId as publishedVerison"); columns.Add("latest.versionId as newestVersion"); columns.Add("contenttype.alias"); columns.Add("contenttype.icon"); columns.Add("contenttype.thumbnail"); + } + + if (isMedia) + { columns.Add("property.dataNvarchar as umbracoFile"); + columns.Add("property.controlId"); } var sql = new Sql() @@ -162,7 +175,7 @@ namespace Umbraco.Core.Persistence.Repositories .LeftJoin("umbracoNode parent").On("parent.parentID = umbracoNode.id"); - if (isContentOrMedia) + if (isContent || isMedia) { sql.InnerJoin("cmsContent content").On("content.nodeId = umbracoNode.id") .LeftJoin("cmsContentType contenttype").On("contenttype.nodeId = content.contentType") @@ -171,40 +184,51 @@ namespace Umbraco.Core.Persistence.Repositories .On("umbracoNode.id = published.nodeId") .LeftJoin( "(SELECT nodeId, versionId FROM cmsDocument WHERE newest = 1 GROUP BY nodeId, versionId) as latest") - .On("umbracoNode.id = latest.nodeId") - .LeftJoin( - "(SELECT contentNodeId, dataNvarchar FROM cmsPropertyData INNER JOIN cmsPropertyType ON cmsPropertyType.id = cmsPropertyData.propertytypeid"+ - " INNER JOIN cmsDataType ON cmsPropertyType.dataTypeId = cmsDataType.nodeId WHERE cmsDataType.controlId = '"+ Constants.PropertyEditors.UploadField +"') as property") + .On("umbracoNode.id = latest.nodeId"); + } + + /*if (isContent) + { + sql.LeftJoin( + "(SELECT contentNodeId, versionId, dataNvarchar, controlId FROM cmsPropertyData INNER JOIN cmsPropertyType ON cmsPropertyType.id = cmsPropertyData.propertytypeid" + + " INNER JOIN cmsDataType ON cmsPropertyType.dataTypeId = cmsDataType.nodeId) as property") + .On("umbracoNode.id = property.contentNodeId AND latest.versionId = property.versionId"); + }*/ + if (isMedia) + { + sql.LeftJoin( + "(SELECT contentNodeId, versionId, dataNvarchar, controlId FROM cmsPropertyData INNER JOIN cmsPropertyType ON cmsPropertyType.id = cmsPropertyData.propertytypeid" + + " INNER JOIN cmsDataType ON cmsPropertyType.dataTypeId = cmsDataType.nodeId) as property") .On("umbracoNode.id = property.contentNodeId"); } return sql; } - protected virtual Sql GetBaseWhere(Func baseQuery, bool isContentOrMedia, Guid id) + protected virtual Sql GetBaseWhere(Func baseQuery, bool isContent, bool isMedia, Guid id) { - var sql = baseQuery(isContentOrMedia) + var sql = baseQuery(isContent, isMedia) .Where("umbracoNode.nodeObjectType = @NodeObjectType", new { NodeObjectType = id }); return sql; } - protected virtual Sql GetBaseWhere(Func baseQuery, bool isContentOrMedia, int id) + protected virtual Sql GetBaseWhere(Func baseQuery, bool isContent, bool isMedia, int id) { - var sql = baseQuery(isContentOrMedia) + var sql = baseQuery(isContent, isMedia) .Where("umbracoNode.id = @Id", new { Id = id }) - .Append(GetGroupBy(isContentOrMedia)); + .Append(GetGroupBy(isContent, isMedia)); return sql; } - protected virtual Sql GetBaseWhere(Func baseQuery, bool isContentOrMedia, Guid objectId, int id) + protected virtual Sql GetBaseWhere(Func baseQuery, bool isContent, bool isMedia, Guid objectId, int id) { - var sql = baseQuery(isContentOrMedia) + var sql = baseQuery(isContent, isMedia) .Where("umbracoNode.id = @Id AND umbracoNode.nodeObjectType = @NodeObjectType", new {Id = id, NodeObjectType = objectId}); return sql; } - protected virtual Sql GetGroupBy(bool isContentOrMedia) + protected virtual Sql GetGroupBy(bool isContent, bool isMedia) { var columns = new List { @@ -221,14 +245,19 @@ namespace Umbraco.Core.Persistence.Repositories "umbracoNode.createDate" }; - if (isContentOrMedia) + if (isContent || isMedia) { columns.Add("published.versionId"); columns.Add("latest.versionId"); columns.Add("contenttype.alias"); columns.Add("contenttype.icon"); columns.Add("contenttype.thumbnail"); + } + + if (isMedia) + { columns.Add("property.dataNvarchar"); + columns.Add("property.controlId"); } var sql = new Sql() @@ -274,9 +303,57 @@ namespace Umbraco.Core.Persistence.Repositories [Column("thumbnail")] public string Thumbnail { get; set; } + [ResultColumn] + public List UmbracoPropertyDtos { get; set; } + } + + [ExplicitColumns] + internal class UmbracoPropertyDto + { + [Column("controlId")] + public Guid DataTypeControlId { get; set; } + [Column("umbracoFile")] public string UmbracoFile { get; set; } } + + internal class UmbracoEntityRelator + { + internal UmbracoEntityDto Current; + + internal UmbracoEntityDto Map(UmbracoEntityDto a, UmbracoPropertyDto p) + { + // Terminating call. Since we can return null from this function + // we need to be ready for PetaPoco to callback later with null + // parameters + if (a == null) + return Current; + + // Is this the same UmbracoEntityDto as the current one we're processing + if (Current != null && Current.UniqueId == a.UniqueId) + { + // Yes, just add this UmbracoPropertyDto to the current UmbracoEntityDto's collection + Current.UmbracoPropertyDtos.Add(p); + + // Return null to indicate we're not done with this UmbracoEntityDto yet + return null; + } + + // This is a different UmbracoEntityDto to the current one, or this is the + // first time through and we don't have a Tab yet + + // Save the current UmbracoEntityDto + var prev = Current; + + // Setup the new current UmbracoEntityDto + Current = a; + Current.UmbracoPropertyDtos = new List(); + Current.UmbracoPropertyDtos.Add(p); + + // Return the now populated previous UmbracoEntityDto (or null if first time through) + return prev; + } + } #endregion } } \ No newline at end of file diff --git a/src/Umbraco.Tests/Services/EntityServiceTests.cs b/src/Umbraco.Tests/Services/EntityServiceTests.cs index dce19cb80a..427aa1a6c4 100644 --- a/src/Umbraco.Tests/Services/EntityServiceTests.cs +++ b/src/Umbraco.Tests/Services/EntityServiceTests.cs @@ -128,7 +128,12 @@ namespace Umbraco.Tests.Services Assert.That(entities.Any(), Is.True); Assert.That(entities.Count(), Is.EqualTo(3)); - Assert.That(entities.Any(x => ((UmbracoEntity)x).UmbracoFile != string.Empty), Is.True); + //Assert.That(entities.Any(x => ((UmbracoEntity)x).UmbracoFile != string.Empty), Is.True); + Assert.That( + entities.Any( + x => + ((UmbracoEntity) x).UmbracoProperties.Any( + y => y.DataTypeControlId == new Guid(Constants.PropertyEditors.UploadField))), Is.True); } public override void CreateTestData() diff --git a/src/Umbraco.Web/WebServices/FolderBrowserService.cs b/src/Umbraco.Web/WebServices/FolderBrowserService.cs index 4ff68b944b..fc63d11602 100644 --- a/src/Umbraco.Web/WebServices/FolderBrowserService.cs +++ b/src/Umbraco.Web/WebServices/FolderBrowserService.cs @@ -29,25 +29,30 @@ namespace Umbraco.Web.WebServices var service = ApplicationContext.Current.Services.EntityService; var entities = service.GetChildren(parentId, UmbracoObjectTypes.Media); - //TODO: Only fetch files, not containers foreach (UmbracoEntity entity in entities) { - var thumbUrl = ThumbnailProvidersResolver.Current.GetThumbnailUrl(entity.UmbracoFile); - var item = new - { - Id = entity.Id, - Path = entity.Path, - Name = entity.Name, - Tags = string.Join(",", Tag.GetTags(entity.Id).Select(x => x.TagCaption)), - MediaTypeAlias = entity.ContentTypeAlias, - EditUrl = string.Format("editMedia.aspx?id={0}", entity.Id), - FileUrl = entity.UmbracoFile, - ThumbnailUrl = string.IsNullOrEmpty(thumbUrl) - ? IOHelper.ResolveUrl(string.Format("{0}/images/thumbnails/{1}", SystemDirectories.Umbraco, entity.ContentTypeThumbnail)) - : thumbUrl - }; + var properties = entity.UmbracoProperties.Where(x => x.DataTypeControlId == new Guid(Constants.PropertyEditors.UploadField)).ToList(); + if(properties.Any() == false) continue; - data.Add(item); + foreach (var property in properties) + { + var thumbUrl = ThumbnailProvidersResolver.Current.GetThumbnailUrl(property.Value); + var item = new + { + Id = entity.Id, + Path = entity.Path, + Name = entity.Name, + Tags = string.Join(",", Tag.GetTags(entity.Id).Select(x => x.TagCaption)), + MediaTypeAlias = entity.ContentTypeAlias, + EditUrl = string.Format("editMedia.aspx?id={0}", entity.Id), + FileUrl = property.Value, + ThumbnailUrl = string.IsNullOrEmpty(thumbUrl) + ? IOHelper.ResolveUrl(string.Format("{0}/images/thumbnails/{1}", SystemDirectories.Umbraco, entity.ContentTypeThumbnail)) + : thumbUrl + }; + + data.Add(item); + } } return new JavaScriptSerializer().Serialize(data); diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseContentTree.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseContentTree.cs index fe91131981..39eb33e31f 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseContentTree.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseContentTree.cs @@ -25,6 +25,15 @@ namespace umbraco.cms.presentation.Trees private User _user; + /// + /// Determines whether the (legacy) Document object passed to the OnRenderNode-method + /// should be initialized with a full set of properties. + /// By default the Document will be initialized, so setting the boolean to True will + /// ensure that the Document object is loaded with a minimum set of properties to + /// improve performance. + /// + protected virtual bool LoadMinimalDocument { get; set; } + /// /// Returns the current User. This ensures that we don't instantiate a new User object /// each time. @@ -108,7 +117,7 @@ function openContent(id) { { XmlTreeNode node = CreateNode(e, allowedUserOptions); - OnRenderNode(ref node, new Document(entity)); + OnRenderNode(ref node, new Document(entity, LoadMinimalDocument)); OnBeforeNodeRender(ref Tree, ref node, EventArgs.Empty); if (node != null) diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseMediaTree.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseMediaTree.cs index 680fe1019b..7f9e57adec 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseMediaTree.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseMediaTree.cs @@ -91,9 +91,10 @@ function openMedia(id) { xNode.Menu = this.ShowContextMenu ? new List(new IAction[] { ActionRefresh.Instance }) : null; if (this.DialogMode == TreeDialogModes.fulllink) { - if (string.IsNullOrEmpty(entity.UmbracoFile) == false) + string nodeLink = GetLinkValue(entity); + if (string.IsNullOrEmpty(nodeLink) == false) { - xNode.Action = "javascript:openMedia('" + entity.UmbracoFile + "');"; + xNode.Action = "javascript:openMedia('" + nodeLink + "');"; } else { @@ -143,7 +144,7 @@ function openMedia(id) { foreach (Property p in props) { Guid currId = p.PropertyType.DataTypeDefinition.DataType.Id; - if (LinkableMediaDataTypes.Contains(currId) && !String.IsNullOrEmpty(p.Value.ToString())) + if (LinkableMediaDataTypes.Contains(currId) && string.IsNullOrEmpty(p.Value.ToString()) == false) { return p.Value.ToString(); } @@ -151,6 +152,26 @@ function openMedia(id) { return ""; } + /// + /// NOTE: New implementation of the legacy GetLinkValue. This is however a bit quirky as a media item can have multiple "Linkable DataTypes". + /// Returns the value for a link in WYSIWYG mode, by default only media items that have a + /// DataTypeUploadField are linkable, however, a custom tree can be created which overrides + /// this method, or another GUID for a custom data type can be added to the LinkableMediaDataTypes + /// list on application startup. + /// + /// + /// + internal virtual string GetLinkValue(UmbracoEntity entity) + { + foreach (var property in entity.UmbracoProperties) + { + if (LinkableMediaDataTypes.Contains(property.DataTypeControlId) && + string.IsNullOrEmpty(property.Value) == false) + return property.Value; + } + return ""; + } + /// /// By default, any media type that is to be "linkable" in the WYSIWYG editor must contain /// a DataTypeUploadField data type which will ouput the value for the link, however, if diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/ContentRecycleBin.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/ContentRecycleBin.cs index daec22bb7b..aff51792be 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/ContentRecycleBin.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/ContentRecycleBin.cs @@ -1,26 +1,9 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Data; -using System.IO; +using System.Collections.Generic; using System.Text; -using System.Web; -using System.Xml; -using System.Configuration; -using umbraco.BasePages; -using umbraco.BusinessLogic; using umbraco.businesslogic; using umbraco.cms.businesslogic; -using umbraco.cms.businesslogic.cache; -using umbraco.cms.businesslogic.contentitem; -using umbraco.cms.businesslogic.datatype; -using umbraco.cms.businesslogic.language; -using umbraco.cms.businesslogic.media; -using umbraco.cms.businesslogic.member; -using umbraco.cms.businesslogic.property; using umbraco.cms.businesslogic.web; using umbraco.interfaces; -using umbraco.DataLayer; using umbraco.BusinessLogic.Actions; using Umbraco.Core; @@ -36,6 +19,14 @@ namespace umbraco.cms.presentation.Trees public ContentRecycleBin(string application) : base(application) { } + protected override bool LoadMinimalDocument + { + get + { + return true; + } + } + protected override void CreateRootNodeActions(ref List actions) { actions.Clear(); diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadContent.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadContent.cs index 753eea361e..abd79a204a 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadContent.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadContent.cs @@ -54,6 +54,14 @@ namespace umbraco } } + protected override bool LoadMinimalDocument + { + get + { + return true; + } + } + /// /// Creates the root node context menu for the content tree. /// Depending on the current User's permissions, this menu will change. diff --git a/src/umbraco.editorControls/MultiNodeTreePicker/FilteredContentTree.cs b/src/umbraco.editorControls/MultiNodeTreePicker/FilteredContentTree.cs index 4ac1a37147..664282ec89 100644 --- a/src/umbraco.editorControls/MultiNodeTreePicker/FilteredContentTree.cs +++ b/src/umbraco.editorControls/MultiNodeTreePicker/FilteredContentTree.cs @@ -36,6 +36,14 @@ namespace umbraco.editorControls.MultiNodeTreePicker /// private int? m_DeterminedStartNodeId = null; + protected override bool LoadMinimalDocument + { + get + { + return false; + } + } + /// /// Returns the Document object of the starting node for the current User. This ensures /// that the Document object is only instantiated once. From 79e024246846ec4f691d208d02a6ffdf0e3e39cf Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Sun, 2 Jun 2013 05:03:51 -0200 Subject: [PATCH 08/15] Show containers in folderbrowser again --- .../WebServices/FolderBrowserService.cs | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/Umbraco.Web/WebServices/FolderBrowserService.cs b/src/Umbraco.Web/WebServices/FolderBrowserService.cs index fc63d11602..22d51c33cd 100644 --- a/src/Umbraco.Web/WebServices/FolderBrowserService.cs +++ b/src/Umbraco.Web/WebServices/FolderBrowserService.cs @@ -31,28 +31,28 @@ namespace Umbraco.Web.WebServices var entities = service.GetChildren(parentId, UmbracoObjectTypes.Media); foreach (UmbracoEntity entity in entities) { - var properties = entity.UmbracoProperties.Where(x => x.DataTypeControlId == new Guid(Constants.PropertyEditors.UploadField)).ToList(); - if(properties.Any() == false) continue; + var uploadFieldProperty = entity.UmbracoProperties.FirstOrDefault(x => x.DataTypeControlId == new Guid(Constants.PropertyEditors.UploadField)); - foreach (var property in properties) + var thumbnailUrl = uploadFieldProperty == null ? "" : ThumbnailProvidersResolver.Current.GetThumbnailUrl(uploadFieldProperty.Value); + + var item = new { - var thumbUrl = ThumbnailProvidersResolver.Current.GetThumbnailUrl(property.Value); - var item = new - { - Id = entity.Id, - Path = entity.Path, - Name = entity.Name, - Tags = string.Join(",", Tag.GetTags(entity.Id).Select(x => x.TagCaption)), - MediaTypeAlias = entity.ContentTypeAlias, - EditUrl = string.Format("editMedia.aspx?id={0}", entity.Id), - FileUrl = property.Value, - ThumbnailUrl = string.IsNullOrEmpty(thumbUrl) - ? IOHelper.ResolveUrl(string.Format("{0}/images/thumbnails/{1}", SystemDirectories.Umbraco, entity.ContentTypeThumbnail)) - : thumbUrl - }; + Id = entity.Id, + Path = entity.Path, + Name = entity.Name, + Tags = string.Join(",", Tag.GetTags(entity.Id).Select(x => x.TagCaption)), + MediaTypeAlias = entity.ContentTypeAlias, + EditUrl = string.Format("editMedia.aspx?id={0}", entity.Id), + FileUrl = uploadFieldProperty == null + ? "" + : uploadFieldProperty.Value, + ThumbnailUrl = string.IsNullOrEmpty(thumbnailUrl) + ? IOHelper.ResolveUrl(string.Format("{0}/images/thumbnails/{1}", SystemDirectories.Umbraco, entity.ContentTypeThumbnail)) + : thumbnailUrl + }; + + data.Add(item); - data.Add(item); - } } return new JavaScriptSerializer().Serialize(data); From 2a2e867784658b5e29e9b15e037185f3ec819590 Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Sun, 2 Jun 2013 11:30:27 -0200 Subject: [PATCH 09/15] Fxies U4-2257 --- src/Umbraco.Core/Models/ContentExtensions.cs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Core/Models/ContentExtensions.cs b/src/Umbraco.Core/Models/ContentExtensions.cs index 8de3d532a7..15e8d5b99b 100644 --- a/src/Umbraco.Core/Models/ContentExtensions.cs +++ b/src/Umbraco.Core/Models/ContentExtensions.cs @@ -517,10 +517,7 @@ namespace Umbraco.Core.Models x.Add(new XAttribute("writerName", content.GetWriterProfile().Name)); x.Add(new XAttribute("writerID", content.WriterId)); x.Add(new XAttribute("template", content.Template == null ? "0" : content.Template.Id.ToString())); - if (UmbracoSettings.UseLegacyXmlSchema) - { - x.Add(new XAttribute("nodeTypeAlias", content.ContentType.Alias)); - } + x.Add(new XAttribute("nodeTypeAlias", content.ContentType.Alias)); return x; } @@ -541,10 +538,7 @@ namespace Umbraco.Core.Models x.Add(new XAttribute("writerID", media.CreatorId)); x.Add(new XAttribute("version", media.Version)); x.Add(new XAttribute("template", 0)); - if (UmbracoSettings.UseLegacyXmlSchema) - { - x.Add(new XAttribute("nodeTypeAlias", media.ContentType.Alias)); - } + x.Add(new XAttribute("nodeTypeAlias", media.ContentType.Alias)); return x; } From 0b1f72f139072048e8b060eb6ecbee0e3736c2a2 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Mon, 3 Jun 2013 06:15:31 -0200 Subject: [PATCH 10/15] Added tag release-6.1.1 for changeset 7271ae03cb53 --- .hgtags | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.hgtags b/.hgtags index e4055e51fc..5f9469eec6 100644 --- a/.hgtags +++ b/.hgtags @@ -34,4 +34,5 @@ aed55cba29009ad3db48880a7cfb66407ce9805f release-6.0.3 0dee9964687ea51ea797984cf7cce3655d6a6558 release-6.0.4 7670bb47a671a9ecc15118589d8048907ea76241 release-6.1.0-beta2 953c466faf8fcfd6e85e06ccd04c2346bbdb88a8 release-6.0.6 -8309c3bd6db5885c9ef37e71db0672b8947fcb59 release-6.1.0 \ No newline at end of file +8309c3bd6db5885c9ef37e71db0672b8947fcb59 release-6.1.0 +7271ae03cb53f44d3fac909e6b254036f7f1ebc9 release-6.1.1 From 9739b3e2ef980f9965f8b0ed2c357da1fa713879 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Mon, 3 Jun 2013 06:15:57 -0200 Subject: [PATCH 11/15] Closing branch 6.1.1 From 5c6514929e899a1cca5b2905c67027e7377ca1b8 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Mon, 3 Jun 2013 06:16:19 -0200 Subject: [PATCH 12/15] Opening branch 6.1.2 From dc2554c6d02d173b0bf80c19baf6e6266f7e8e16 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Mon, 3 Jun 2013 15:08:56 -0200 Subject: [PATCH 13/15] Fixes U4-2254 [Object object] error when selecting media link for content. --- .../umbraco.presentation/umbraco/Trees/BaseMediaTree.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseMediaTree.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseMediaTree.cs index b9d51f90c0..f78d1b150d 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseMediaTree.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseMediaTree.cs @@ -89,7 +89,8 @@ function openMedia(id) { { if (dd.ContentType.Alias.ToLower() == "folder") { - xNode.Action = "javascript:jQuery('.umbTree #" + dd.Id.ToString() + "').click();"; + //#U4-2254 - Inspiration to use void from here: http://stackoverflow.com/questions/4924383/jquery-object-object-error + xNode.Action = "javascript:void jQuery('.umbTree #" + dd.Id.ToString() + "').click();"; } else { From 6b1dd0731078aa0ae6712c10dd6e94e92909d3f4 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Mon, 3 Jun 2013 15:11:23 -0200 Subject: [PATCH 14/15] Fixes U4-2254 [Object object] error when selecting media link for content. --- .../umbraco.presentation/umbraco/Trees/BaseMediaTree.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseMediaTree.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseMediaTree.cs index 7f9e57adec..f4e4684c72 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseMediaTree.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/BaseMediaTree.cs @@ -100,7 +100,8 @@ function openMedia(id) { { if (string.Equals(entity.ContentTypeAlias, Constants.Conventions.MediaTypes.Folder, StringComparison.OrdinalIgnoreCase)) { - xNode.Action = "javascript:jQuery('.umbTree #" + entity.Id.ToString(CultureInfo.InvariantCulture) + "').click();"; + //#U4-2254 - Inspiration to use void from here: http://stackoverflow.com/questions/4924383/jquery-object-object-error + xNode.Action = "javascript:void jQuery('.umbTree #" + entity.Id.ToString(CultureInfo.InvariantCulture) + "').click();"; } else { From 932115585e8f579bcf2b2a0061a5f878ba9bf627 Mon Sep 17 00:00:00 2001 From: Shannon Deminick Date: Mon, 3 Jun 2013 13:35:41 -1000 Subject: [PATCH 15/15] Fixes: #U4-2315 - CDF grouping issue, updated to new version --- src/Umbraco.Web.UI/Umbraco.Web.UI.csproj | 4 ++-- src/Umbraco.Web.UI/packages.config | 2 +- src/Umbraco.Web/Umbraco.Web.csproj | 4 ++-- src/Umbraco.Web/packages.config | 2 +- src/umbraco.cms/packages.config | 2 +- src/umbraco.cms/umbraco.cms.csproj | 4 ++-- src/umbraco.controls/packages.config | 2 +- src/umbraco.controls/umbraco.controls.csproj | 4 ++-- src/umbraco.editorControls/packages.config | 2 +- src/umbraco.editorControls/umbraco.editorControls.csproj | 4 ++-- src/umbraco.macroRenderings/packages.config | 2 +- src/umbraco.macroRenderings/umbraco.macroRenderings.csproj | 4 ++-- 12 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj index 50c3a376e3..3e3540af1f 100644 --- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj +++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj @@ -100,9 +100,9 @@ {07fbc26b-2927-4a22-8d96-d644c667fecc} UmbracoExamine - + False - ..\packages\ClientDependency.1.7.0.1\lib\ClientDependency.Core.dll + ..\packages\ClientDependency.1.7.0.2\lib\ClientDependency.Core.dll False diff --git a/src/Umbraco.Web.UI/packages.config b/src/Umbraco.Web.UI/packages.config index ae380843b5..d1ed9ea678 100644 --- a/src/Umbraco.Web.UI/packages.config +++ b/src/Umbraco.Web.UI/packages.config @@ -1,6 +1,6 @@  - + diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index 32782b59f9..65f8c14d23 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -93,9 +93,9 @@ {07fbc26b-2927-4a22-8d96-d644c667fecc} UmbracoExamine - + False - ..\packages\ClientDependency.1.7.0.1\lib\ClientDependency.Core.dll + ..\packages\ClientDependency.1.7.0.2\lib\ClientDependency.Core.dll False diff --git a/src/Umbraco.Web/packages.config b/src/Umbraco.Web/packages.config index b08cde1612..d370ef28d5 100644 --- a/src/Umbraco.Web/packages.config +++ b/src/Umbraco.Web/packages.config @@ -1,6 +1,6 @@  - + diff --git a/src/umbraco.cms/packages.config b/src/umbraco.cms/packages.config index 72b6577114..06959d20f2 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 63b5f75996..bd584b2d9b 100644 --- a/src/umbraco.cms/umbraco.cms.csproj +++ b/src/umbraco.cms/umbraco.cms.csproj @@ -104,9 +104,9 @@ AllRules.ruleset - + False - ..\packages\ClientDependency.1.7.0.1\lib\ClientDependency.Core.dll + ..\packages\ClientDependency.1.7.0.2\lib\ClientDependency.Core.dll False diff --git a/src/umbraco.controls/packages.config b/src/umbraco.controls/packages.config index 715831b86d..babc1d8a83 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 9b81009daf..6ab376e99b 100644 --- a/src/umbraco.controls/umbraco.controls.csproj +++ b/src/umbraco.controls/umbraco.controls.csproj @@ -66,9 +66,9 @@ AllRules.ruleset - + False - ..\packages\ClientDependency.1.7.0.1\lib\ClientDependency.Core.dll + ..\packages\ClientDependency.1.7.0.2\lib\ClientDependency.Core.dll diff --git a/src/umbraco.editorControls/packages.config b/src/umbraco.editorControls/packages.config index 715831b86d..babc1d8a83 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/umbraco.editorControls.csproj b/src/umbraco.editorControls/umbraco.editorControls.csproj index a75fc90d2b..729e160c02 100644 --- a/src/umbraco.editorControls/umbraco.editorControls.csproj +++ b/src/umbraco.editorControls/umbraco.editorControls.csproj @@ -112,9 +112,9 @@ {651E1350-91B6-44B7-BD60-7207006D7003} Umbraco.Web - + False - ..\packages\ClientDependency.1.7.0.1\lib\ClientDependency.Core.dll + ..\packages\ClientDependency.1.7.0.2\lib\ClientDependency.Core.dll System diff --git a/src/umbraco.macroRenderings/packages.config b/src/umbraco.macroRenderings/packages.config index fe7d4272da..2a8355e1b9 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 79399192ba..83985d444f 100644 --- a/src/umbraco.macroRenderings/umbraco.macroRenderings.csproj +++ b/src/umbraco.macroRenderings/umbraco.macroRenderings.csproj @@ -104,9 +104,9 @@ AllRules.ruleset - + False - ..\packages\ClientDependency.1.7.0.1\lib\ClientDependency.Core.dll + ..\packages\ClientDependency.1.7.0.2\lib\ClientDependency.Core.dll False