diff --git a/.gitignore b/.gitignore index 2070cc2..e47512d 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,3 @@ artifacts/ src/packages/*/** build/_nuget/ build/_umbraco/ -assets/ \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4720c98..3fd342e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,7 +16,7 @@ The issue tracker is the preferred channel for [bug reports](#bugs), requests](#pull-requests), but please respect the following restrictions: * Please **do not** use the issue tracker for personal support requests (use - [Our Umbraco](https://our.umbraco.org/projects/backoffice-extensions/nested-content/nested-content-feedback) or Twitter). + [Our Umbraco](https://our.umbraco.org/projects/backoffice-extensions/stacked-content/stacked-content-feedback) or Twitter). * Please **do not** derail or troll issues. Keep the discussion on topic and respect the opinions of others. diff --git a/README.md b/README.md index 6c0de13..89ec189 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ We also have a [MyGet package repository](https://www.myget.org/gallery/umbraco- #### Manual build -If you prefer, you can compile Stacked Content yourself, you'll need: +If you prefer, you can compile Stacked Content yourself, you'll need: * Visual Studio 2015 (or above) @@ -44,7 +44,9 @@ To clone it locally click the "Clone in Windows" button above or run the followi ## Known Issues -* _[TBC]_ +Please be aware that not all property-editors will work within Stacked Content. The following Umbraco core property-editors are known to have compatibility issues: + +* Upload --- diff --git a/appveyor.yml b/appveyor.yml index 23d8ae2..5c7592f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,7 +1,7 @@ -os: Visual Studio 2015 +image: Visual Studio 2017 # version format -version: 1.0.4.{build} +version: 1.1.0.{build} # UMBRACO_PACKAGE_PRERELEASE_SUFFIX if a rtm release build this should be blank, otherwise if empty will default to alpha # example UMBRACO_PACKAGE_PRERELEASE_SUFFIX=beta @@ -15,7 +15,7 @@ before_build: - nuget restore src build_script: -- build-appveyor.cmd + - build-appveyor.cmd artifacts: - path: artifacts\*.nupkg @@ -24,8 +24,8 @@ artifacts: deploy: # MyGet Deployment for builds & releases - provider: NuGet - server: https://www.myget.org/F/umbraco-packages/ - symbol_server: https://nuget.symbolsource.org/MyGet/umbraco-packages + server: https://www.myget.org/F/umbraco-packages/api/v2/package + symbol_server: https://www.myget.org/F/umbraco-packages/symbols/api/v2/package api_key: secure: 36/Ax5O+e6wENlhoTwgvoEBZV3FG4XjF429SNTej2qsGTAL+cdfA1kT/tm1St8vx artifact: /.*\.nupkg/ @@ -47,7 +47,7 @@ deploy: - provider: NuGet server: api_key: - secure: eSLiOXbGVrxSG+X7PV6qTTUZ5VzS9EFj5+EufaWPfd+QXkF6gc8rZ4mGoHIVp/fL + secure: 0+oAleUTnr9UuJrhLW5rphRR+QGz00XX1Ui3k5kwyr2kUdEamiQ3F+gW0q8MJbDT artifact: /.*\.nupkg/ on: branch: master diff --git a/build-appveyor.cmd b/build-appveyor.cmd index 0910b1b..c5aad51 100644 --- a/build-appveyor.cmd +++ b/build-appveyor.cmd @@ -4,4 +4,5 @@ ECHO APPVEYOR_BUILD_NUMBER : %APPVEYOR_BUILD_NUMBER% ECHO APPVEYOR_BUILD_VERSION : %APPVEYOR_BUILD_VERSION% CALL build\tools\NuGet\NuGet.exe restore src\Our.Umbraco.StackedContent.sln -CALL "%programfiles(x86)%\MSBuild\14.0\Bin\amd64\MsBuild.exe" build\package.proj \ No newline at end of file +CALL "%programfiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\amd64\MsBuild.exe" build\package.proj +REM CALL "%programfiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\amd64\MsBuild.exe" build\package.proj \ No newline at end of file diff --git a/build/package.nuspec b/build/package.nuspec index 7a45177..f2ff258 100644 --- a/build/package.nuspec +++ b/build/package.nuspec @@ -16,7 +16,7 @@ - + diff --git a/docs/img/screenshots/stacked-content-datatype-prevalues.png b/docs/img/screenshots/stacked-content-datatype-prevalues.png new file mode 100644 index 0000000..f00fef2 Binary files /dev/null and b/docs/img/screenshots/stacked-content-datatype-prevalues.png differ diff --git a/docs/img/screenshots/stacked-content-property-editor-1.png b/docs/img/screenshots/stacked-content-property-editor-1.png new file mode 100644 index 0000000..86c5eaf Binary files /dev/null and b/docs/img/screenshots/stacked-content-property-editor-1.png differ diff --git a/docs/img/screenshots/stacked-content-property-editor-2.png b/docs/img/screenshots/stacked-content-property-editor-2.png new file mode 100644 index 0000000..7e3c9b3 Binary files /dev/null and b/docs/img/screenshots/stacked-content-property-editor-2.png differ diff --git a/docs/img/screenshots/stacked-content-property-editor-3.png b/docs/img/screenshots/stacked-content-property-editor-3.png new file mode 100644 index 0000000..26b20ff Binary files /dev/null and b/docs/img/screenshots/stacked-content-property-editor-3.png differ diff --git a/docs/img/screenshots/stacked-content-property-editor-4.png b/docs/img/screenshots/stacked-content-property-editor-4.png new file mode 100644 index 0000000..1d297e4 Binary files /dev/null and b/docs/img/screenshots/stacked-content-property-editor-4.png differ diff --git a/src/Our.Umbraco.StackedContent.sln b/src/Our.Umbraco.StackedContent.sln index c326289..dd0d978 100644 --- a/src/Our.Umbraco.StackedContent.sln +++ b/src/Our.Umbraco.StackedContent.sln @@ -1,26 +1,26 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio 15 +VisualStudioVersion = 15.0.27004.2008 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Our.Umbraco.StackedContent", "Our.Umbraco.StackedContent\Our.Umbraco.StackedContent.csproj", "{E0F6B57D-F549-4EF0-B5A7-5C1A9B49FD80}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{52A49C4D-441F-4D54-A23F-444AF47DB250}" ProjectSection(SolutionItems) = preProject - ..\..\umbraco-stacked-content\CONTRIBUTING.md = ..\..\umbraco-stacked-content\CONTRIBUTING.md - ..\..\umbraco-stacked-content\LICENSE.md = ..\..\umbraco-stacked-content\LICENSE.md - ..\..\umbraco-stacked-content\README.md = ..\..\umbraco-stacked-content\README.md + ..\CONTRIBUTING.md = ..\CONTRIBUTING.md + ..\LICENSE.md = ..\LICENSE.md + ..\README.md = ..\README.md EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{95F00400-1FCA-4D98-9643-ACBC2203C1D0}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build Scripts", "Build Scripts", "{95F00400-1FCA-4D98-9643-ACBC2203C1D0}" ProjectSection(SolutionItems) = preProject - ..\..\umbraco-stacked-content\appveyor.yml = ..\..\umbraco-stacked-content\appveyor.yml - ..\..\umbraco-stacked-content\build-appveyor.cmd = ..\..\umbraco-stacked-content\build-appveyor.cmd - ..\..\umbraco-stacked-content\build.cmd = ..\..\umbraco-stacked-content\build.cmd - ..\..\umbraco-stacked-content\build\install.ps1 = ..\..\umbraco-stacked-content\build\install.ps1 - ..\..\umbraco-stacked-content\build\package.nuspec = ..\..\umbraco-stacked-content\build\package.nuspec - ..\..\umbraco-stacked-content\build\package.proj = ..\..\umbraco-stacked-content\build\package.proj - ..\..\umbraco-stacked-content\build\package.xml = ..\..\umbraco-stacked-content\build\package.xml + ..\appveyor.yml = ..\appveyor.yml + ..\build-appveyor.cmd = ..\build-appveyor.cmd + ..\build.cmd = ..\build.cmd + ..\build\install.ps1 = ..\build\install.ps1 + ..\build\package.nuspec = ..\build\package.nuspec + ..\build\package.proj = ..\build\package.proj + ..\build\package.xml = ..\build\package.xml EndProjectSection EndProject Global diff --git a/src/Our.Umbraco.StackedContent/Converters/StackedContentValueConverter.cs b/src/Our.Umbraco.StackedContent/Converters/StackedContentValueConverter.cs index c116f63..005221a 100644 --- a/src/Our.Umbraco.StackedContent/Converters/StackedContentValueConverter.cs +++ b/src/Our.Umbraco.StackedContent/Converters/StackedContentValueConverter.cs @@ -22,18 +22,22 @@ public override bool IsConverter(PublishedPropertyType propertyType) public override object ConvertDataToSource(PublishedPropertyType propertyType, object source, bool preview) { + if (source == null) + return null; + + var str = source.ToString(); + if (string.IsNullOrWhiteSpace(str)) + return null; + try { - if (source != null && !source.ToString().IsNullOrWhiteSpace()) - { - var rawValue = JsonConvert.DeserializeObject(source.ToString()); + var rawValue = JsonConvert.DeserializeObject(str); - return ConvertInnerContentDataToSource(rawValue, null, 1, preview); - } + return ConvertInnerContentDataToSource(rawValue, null, 1, preview); } - catch (Exception e) + catch (Exception ex) { - LogHelper.Error("Error converting value", e); + LogHelper.Error("Error converting value", ex); } return null; diff --git a/src/Our.Umbraco.StackedContent/Our.Umbraco.StackedContent.csproj b/src/Our.Umbraco.StackedContent/Our.Umbraco.StackedContent.csproj index 9d214d2..cea1583 100644 --- a/src/Our.Umbraco.StackedContent/Our.Umbraco.StackedContent.csproj +++ b/src/Our.Umbraco.StackedContent/Our.Umbraco.StackedContent.csproj @@ -146,9 +146,8 @@ ..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll False - - ..\packages\Our.Umbraco.InnerContent.Core.1.0.3\lib\net45\Our.Umbraco.InnerContent.dll - False + + ..\packages\Our.Umbraco.InnerContent.Core.1.1.0\lib\net45\Our.Umbraco.InnerContent.dll ..\packages\Owin.1.0\lib\net40\Owin.dll @@ -279,11 +278,11 @@ - IF %25ComputerName%25 == MBP13-PC-BC ( + IF %25ComputerName%25 == DESKTOP-ESFKU58 ( IF NOT "$(SolutionDir)" == "*Undefined*" ( - xcopy /s /y "$(TargetPath)" "C:\Users\Matt\Work\Sandbox\Umbraco\UmbracoCms.7.5.2\bin\" - xcopy /s /y "$(TargetDir)$(ProjectName).pdb" "C:\Users\Matt\Work\Sandbox\Umbraco\UmbracoCms.7.5.2\bin\" - xcopy /s /y "$(ProjectDir)Web\UI\*.*" "C:\Users\Matt\Work\Sandbox\Umbraco\UmbracoCms.7.5.2\" + xcopy /s /y "$(TargetPath)" "C:\Users\Matt\Storage\Sandbox\Umbraco\UmbracoCms.7.7.6\bin\" + xcopy /s /y "$(TargetDir)$(ProjectName).pdb" "C:\Users\Matt\Storage\Sandbox\Umbraco\UmbracoCms.7.7.6\bin\" + xcopy /s /y "$(ProjectDir)Web\UI\*.*" "C:\Users\Matt\Storage\Sandbox\Umbraco\UmbracoCms.7.7.6\" ) ) diff --git a/src/Our.Umbraco.StackedContent/PropertyEditors/StackedContentPropertyEditor.cs b/src/Our.Umbraco.StackedContent/PropertyEditors/StackedContentPropertyEditor.cs index b636b27..e3e8684 100644 --- a/src/Our.Umbraco.StackedContent/PropertyEditors/StackedContentPropertyEditor.cs +++ b/src/Our.Umbraco.StackedContent/PropertyEditors/StackedContentPropertyEditor.cs @@ -1,49 +1,32 @@ -using System.Collections.Generic; +using Umbraco.Core.PropertyEditors; using Our.Umbraco.InnerContent.PropertyEditors; -using Umbraco.Core.PropertyEditors; namespace Our.Umbraco.StackedContent.PropertyEditors { [PropertyEditor(PropertyEditorAlias, "Stacked Content", "/App_Plugins/StackedContent/views/stackedcontent.html", Group = "rich content", Icon = "icon-umb-contour", ValueType = "JSON")] - public class StackedContentPropertyEditor : PropertyEditor + public class StackedContentPropertyEditor : SimpleInnerContentPropertyEditor { public const string PropertyEditorAlias = "Our.Umbraco.StackedContent"; - private IDictionary _defaultPreValues; - public override IDictionary DefaultPreValues - { - get { return _defaultPreValues; } - set { _defaultPreValues = value; } - } - public StackedContentPropertyEditor() + : base() { - // Setup default values - _defaultPreValues = new Dictionary - { - {"contentTypes", ""}, - {"maxItems", 0}, - {"singleItemMode", "0"}, - {"disablePreview", "0"} - }; + DefaultPreValues.Add("maxItems", 0); + DefaultPreValues.Add("singleItemMode", "0"); + DefaultPreValues.Add("disablePreview", "0"); } - #region Pre Value Editor - protected override PreValueEditor CreatePreValueEditor() { - return new StackPreValueEditor(); + return new StackedContentPreValueEditor(); } - internal class StackPreValueEditor : PreValueEditor + internal class StackedContentPreValueEditor : SimpleInnerContentPreValueEditor { - [PreValueField("contentTypes", "Doc Types", "~/App_Plugins/InnerContent/views/innercontent.doctypepicker.html", Description = "Select the doc types to use as the data blueprint.")] - public string[] ContentTypes { get; set; } - [PreValueField("maxItems", "Max Items", "number", Description = "Set the maximum number of items allowed in this stack.")] public string MaxItems { get; set; } - [PreValueField("singleItemMode", "Single Item Mode", "boolean", Description = "Set whether to work in single item mode (only the first defined Doc Type will be used).")] + [PreValueField("singleItemMode", "Single Item Mode", "boolean", Description = "Set whether to work in single item mode (only the first defined Content Type will be used).")] public string SingleItemMode { get; set; } [PreValueField("hideLabel", "Hide Label", "boolean", Description = "Set whether to hide the editor label and have the list take up the full width of the editor window.")] @@ -52,16 +35,5 @@ internal class StackPreValueEditor : PreValueEditor [PreValueField("disablePreview", "Disable Preview", "boolean", Description = "Set whether to disable the preview of the items in the stack.")] public string DisablePreview { get; set; } } - - #endregion - - #region Value Editor - - protected override PropertyValueEditor CreateValueEditor() - { - return new SimpleInnerContentPropertyValueEditor(base.CreateValueEditor()); - } - - #endregion } } \ No newline at end of file diff --git a/src/Our.Umbraco.StackedContent/Web/Controllers/StackedContentApiController.cs b/src/Our.Umbraco.StackedContent/Web/Controllers/StackedContentApiController.cs index 957f3cc..6f941a9 100644 --- a/src/Our.Umbraco.StackedContent/Web/Controllers/StackedContentApiController.cs +++ b/src/Our.Umbraco.StackedContent/Web/Controllers/StackedContentApiController.cs @@ -35,7 +35,7 @@ public HttpResponseMessage GetPreviewMarkup([FromBody] JObject item, int parentI // Return response var response = new HttpResponseMessage { - Content = new StringContent(markup ?? "") + Content = new StringContent(markup ?? string.Empty) }; response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html"); diff --git a/src/Our.Umbraco.StackedContent/Web/Helpers/ViewHelper.cs b/src/Our.Umbraco.StackedContent/Web/Helpers/ViewHelper.cs index 97188e6..cbf8869 100644 --- a/src/Our.Umbraco.StackedContent/Web/Helpers/ViewHelper.cs +++ b/src/Our.Umbraco.StackedContent/Web/Helpers/ViewHelper.cs @@ -11,29 +11,31 @@ class DummyController : Controller { } public static string RenderPartial(string partialName, object model, string[] viewLocations) { - var sw = new StringWriter(); - var httpContext = new HttpContextWrapper(HttpContext.Current); + using (var sw = new StringWriter()) + { + var httpContext = new HttpContextWrapper(HttpContext.Current); - var routeData = new RouteData(); - routeData.Values.Add("controller", "DummyController"); + var routeData = new RouteData(); + routeData.Values.Add("controller", "DummyController"); - var controllerContext = new ControllerContext(new RequestContext(httpContext, routeData), new DummyController()); + var controllerContext = new ControllerContext(new RequestContext(httpContext, routeData), new DummyController()); - var viewEngine = new RazorViewEngine - { - PartialViewLocationFormats = viewLocations - }; + var viewEngine = new RazorViewEngine + { + PartialViewLocationFormats = viewLocations + }; - var viewResult = viewEngine.FindPartialView(controllerContext, partialName, false); - if (viewResult.View == null) - { - //TODO: Log lack of view? - return null; - } + var viewResult = viewEngine.FindPartialView(controllerContext, partialName, false); + if (viewResult.View == null) + { + // TODO: Log lack of view? + return null; + } - viewResult.View.Render(new ViewContext(controllerContext, viewResult.View, new ViewDataDictionary { Model = model }, new TempDataDictionary(), sw), sw); + viewResult.View.Render(new ViewContext(controllerContext, viewResult.View, new ViewDataDictionary { Model = model }, new TempDataDictionary(), sw), sw); - return sw.ToString(); + return sw.ToString(); + } } } } \ No newline at end of file diff --git a/src/Our.Umbraco.StackedContent/Web/UI/App_Plugins/StackedContent/css/stackedcontent.css b/src/Our.Umbraco.StackedContent/Web/UI/App_Plugins/StackedContent/css/stackedcontent.css index 8e156fa..2501b9b 100644 --- a/src/Our.Umbraco.StackedContent/Web/UI/App_Plugins/StackedContent/css/stackedcontent.css +++ b/src/Our.Umbraco.StackedContent/Web/UI/App_Plugins/StackedContent/css/stackedcontent.css @@ -75,19 +75,19 @@ } .stacked-content .placeholder:hover { - border-color: #2e8aea; + border-color: #00aea2; background-color: #fff; } .stacked-content .placeholder:hover * { - color: #2e8aea; + color: #00aea2; } .stack__buttons { position: absolute; right: -12px; top: 10px; - background-color: #2e8aea; + background-color: #625a74; color: white; opacity: 0; transition: opacity .25s ease-in-out; @@ -96,18 +96,21 @@ -webkit-box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.25); -moz-box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.25); box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.25); + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; } .stack__buttons:after { position: absolute; bottom: -12px; - right: 0; + right: 1px; content: ""; width: 0; height: 0; border-style: solid; - border-width: 12px 12px 0 0; - border-color: #1960ab transparent transparent transparent; + border-width: 12px 11px 0 0; + border-color: #2e2246 transparent transparent transparent; } .stack__buttons .umb_confirm-action__overlay { @@ -119,7 +122,7 @@ .stack__buttons .umb_confirm-action__overlay-action { margin: 0 !important; - background-color: #2e8aea; + background-color: #625a74; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; @@ -143,7 +146,7 @@ .stack__add-button, .stack__buttons .umb_confirm-action__overlay-action { display: inline-block; - background-color: #2e8aea; + background-color: #625a74; color: white !important; font-size: 20px; text-decoration: none !important; @@ -152,8 +155,12 @@ line-height: 30px; text-align: center; cursor: pointer; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; } + .stack__button:hover, .stack__add-button:hover, .stack__buttons .umb_confirm-action__overlay-action.-cancel:hover, @@ -164,16 +171,23 @@ .stack__buttons .umb_confirm-action__overlay-action.-confirm:hover { background-color: #2ecc71; + -webkit-border-top-right-radius: 0; + -moz-border-top-right-radius: 0; + border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 0; + -moz-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; } .stack__buttons .umb_confirm-action__overlay-action.-cancel:hover { background-color: #e74c3c; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; } .stack__add-button { - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; + background-color: #00aea2; z-index: 20; } @@ -221,7 +235,7 @@ top: 5px; height: 2px !important; visibility: visible !important; - background-color: #2e8aea; + background-color: #00aea2; } .stack__sortable-helper { @@ -237,7 +251,7 @@ height: 40px; line-height: 40px; text-align: center; - background-color: #2e8aea; + background-color: #00aea2; color: white; margin: 0 0 0 -20px; -webkit-border-radius: 2px; diff --git a/src/Our.Umbraco.StackedContent/Web/UI/App_Plugins/StackedContent/js/stackedcontent.controllers.js b/src/Our.Umbraco.StackedContent/Web/UI/App_Plugins/StackedContent/js/stackedcontent.controllers.js index 5e1d0cb..141d678 100644 --- a/src/Our.Umbraco.StackedContent/Web/UI/App_Plugins/StackedContent/js/stackedcontent.controllers.js +++ b/src/Our.Umbraco.StackedContent/Web/UI/App_Plugins/StackedContent/js/stackedcontent.controllers.js @@ -108,14 +108,14 @@ $scope.inited = true; // Sync icons incase it's changes on the doctype - var aliases = _.uniq($scope.model.value.map(function (itm) { - return itm.icContentTypeAlias; + var guids = _.uniq($scope.model.value.map(function (itm) { + return itm.icContentTypeGuid; })); - innerContentService.getContentTypeIcons(aliases).then(function (data) { + innerContentService.getContentTypeIconsByGuid(guids).then(function (data) { _.each($scope.model.value, function (itm) { - if (data.hasOwnProperty(itm.icContentTypeAlias)) { - itm.icon = data[itm.icContentTypeAlias]; + if (data.hasOwnProperty(itm.icContentTypeGuid)) { + itm.icon = data[itm.icContentTypeGuid]; } }); diff --git a/src/Our.Umbraco.StackedContent/Web/UI/App_Plugins/StackedContent/package.manifest b/src/Our.Umbraco.StackedContent/Web/UI/App_Plugins/StackedContent/package.manifest index 76a6aba..68c919f 100644 --- a/src/Our.Umbraco.StackedContent/Web/UI/App_Plugins/StackedContent/package.manifest +++ b/src/Our.Umbraco.StackedContent/Web/UI/App_Plugins/StackedContent/package.manifest @@ -1,7 +1,7 @@ { "javascript" : [ - '~/App_Plugins/StackedContent/js/stackedcontent.resources.js', - '~/App_Plugins/StackedContent/js/stackedcontent.controllers.js' + "~/App_Plugins/StackedContent/js/stackedcontent.resources.js", + "~/App_Plugins/StackedContent/js/stackedcontent.controllers.js" ], "css" : [ "~/App_Plugins/StackedContent/css/stackedcontent.css" diff --git a/src/Our.Umbraco.StackedContent/packages.config b/src/Our.Umbraco.StackedContent/packages.config index a840fe4..9f76af9 100644 --- a/src/Our.Umbraco.StackedContent/packages.config +++ b/src/Our.Umbraco.StackedContent/packages.config @@ -27,7 +27,7 @@ - +