Compare commits

...

1929 Commits

Author SHA1 Message Date
Mads Rasmussen 1dacbbdbf6 added dots to website/language selector 2016-03-16 11:09:06 +01:00
Mads Rasmussen f0b374c30b filter out selected item 2016-03-16 10:43:09 +01:00
Mads Rasmussen ec5feee1f3 WIP prototyping website/language selector 2016-03-16 09:26:34 +01:00
Simon Busborg 1d1d99ddad added variationsHelper service and toggler for content 2016-03-15 14:47:03 +01:00
Claus c306f94a6a Merge pull request #1154 from pynej/fix-stylesheet-tree-sync
Fix for issue causing the entire stylesheets tree to reload when …
2016-03-15 12:46:59 +01:00
Claus 11b2ec89fd Merge pull request #1167 from umbraco/temp-U4-8154
U4-8154 - bugfix Sql query expressions parsing
2016-03-15 12:36:52 +01:00
Claus 89596f00f1 Merge pull request #1151 from arknu/icon-transparency
Fix transparency for image icons in the tray
2016-03-15 09:54:36 +01:00
Claus 4fa6e70e72 Merge pull request #1140 from jamescoxhead/U4-7746
U4-7746 - use flat icon in partial views tree
2016-03-15 09:22:18 +01:00
Warren Buckley a5a0a84d46 Merge pull request #1163 from umbraco/temp-U4-7767
U4-7767 List View Filter needs debounce - many requests to handler me…
2016-03-14 16:12:19 +00:00
Warren Buckley 839431e6fa Merge pull request #1170 from umbraco/temp-U4-8157
U4-8157 Right-click on root node returns console error when it doesn'…
2016-03-14 14:28:39 +00:00
Stephan 5369a6fc56 Upgrade ModelsBuilder to 3.0.1 2016-03-14 13:37:49 +01:00
Claus 8a078e258f U4-8157 Right-click on root node returns console error when it doesn't has any actions
Ensured we don't use throw to stop the program flow if no menuUrl is defined on the node. It is a likely scenario that some root node don't have right click actions so its better to handle this.
2016-03-14 12:15:15 +01:00
Sebastiaan Janssen fb42574c34 Revert "U4-5334 Richtext editor inserts extra p - tags to html output" - apparently it does just as much harm as it does good
This reverts commit 9ad3b6a337.
2016-03-12 21:02:05 +01:00
Sebastiaan Janssen 9ad3b6a337 U4-5334 Richtext editor inserts extra p - tags to html output
#U4-5334 Fixed
2016-03-12 12:58:53 +01:00
Stephan 65b16fbfe5 U4-8154 - bugfix Sql query expressions parsing 2016-03-11 14:18:08 +01:00
Stephan 6ad2853bce Merge pull request #1165 from umbraco/temp-U4-7949
U4-7949 The task runner has completed YSOD when using the Umbraco Pac…
2016-03-10 18:29:08 +01:00
Sebastiaan Janssen b2407eab98 Merge pull request #1107 from bjarnef/dev-v7-tinymce-font-icons
Change icons for richtext editor config
2016-03-10 17:47:46 +01:00
Shannon 778c7a836b Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-03-10 15:52:43 +01:00
Shannon 11f9cdead0 U4-6366 Issue assigning member roles on MemberService.Saved event 2016-03-10 15:52:34 +01:00
Sebastiaan Janssen a1076d5443 Merge pull request #1160 from umbraco/temp-U4-6438
U4-6438 - fix dynamic extension methods when type loading goes bad
2016-03-10 15:49:15 +01:00
Shannon 4a11bf68f3 U4-7949 The task runner has completed YSOD when using the Umbraco Package installer 2016-03-10 15:23:52 +01:00
Sebastiaan Janssen fa64e73a43 Merge pull request #1164 from umbraco/temp-U4-5797
U4-5797 - fix PublishedContentType cache refresh for compositions
2016-03-10 14:04:46 +01:00
Stephan adf3e2dfe0 U4-5797 - fix PublishedContentType cache refresh for compositions 2016-03-10 13:59:50 +01:00
Shannon c4c86cf5ce U4-7767 List View Filter needs debounce - many requests to handler method 2016-03-10 13:02:20 +01:00
Sebastiaan Janssen 479aba8e1d Fixes unit test.. in the correct branch this time 2016-03-10 11:47:51 +01:00
Shannon 0c474e2aba U4-7670 True/false fields on Macro Picker don't save their setting nor read existing setting. - another null check required. 2016-03-10 10:06:20 +01:00
Shannon Deminick 4f5b34cdfe Merge pull request #1162 from pynej/codemirror-js-error
Fix for missing doc.setLine() function breaking code mirror editor.
2016-03-10 09:58:16 +01:00
Warren Buckley 0cb7f220ea Merge pull request #1149 from umbraco/temp-U4-4700
U4-4700 List View Doesn't Respect User Permissions
2016-03-10 08:52:38 +00:00
Jeremy Pyne 0995b2cb5a Fix for missing doc.setLine() function breaking code mirror editor. 2016-03-09 14:55:15 -05:00
Stephan 1b37475144 U4-6438 - fix dynamic extension methods when type loading goes bad 2016-03-09 15:55:41 +01:00
Shannon be0bacd895 Ensures all angular views are cache busted so browser cache is not an issue after upgrading. 2016-03-08 17:23:54 +01:00
Shannon a2564bd0c3 ensures that requests are only made for ids that haven't already been queried. 2016-03-08 16:18:33 +01:00
Shannon 402a5c9d56 fixes bool check 2016-03-08 15:57:59 +01:00
Shannon 2a2f22c7d9 fixes js null issue with boolean.controller 2016-03-08 15:53:45 +01:00
Shannon 372a768dca U4-4700 List view doesn't respect user permissions - makes the buttons show/hide based on the selected items instead of the current item. 2016-03-08 15:53:22 +01:00
Sebastiaan Janssen f6e48243a6 U4-8088 NuGet upgrade of UmbracoCms pacakage doesn't add ModelsBuilder keys to web.config 2016-03-08 13:39:35 +01:00
Warren Buckley 94ea677ec0 Merge pull request #1146 from umbraco/temp-U4-7641
U4-7641 - enable content type copy
2016-03-08 09:38:16 +00:00
Sebastiaan Janssen 55e7159f7d Forgot to remove them from the nuspec files 2016-03-08 10:35:57 +01:00
Sebastiaan Janssen 390a94e323 U4-8054 Issue with NuGet Uninstall.ps1 (running on updates)
#U4-8054 Fixed
2016-03-08 10:34:19 +01:00
Shannon Deminick 19fb920aa1 Merge pull request #1150 from umbraco/temp-U4-7823
U4-7823 - stop flooding the log with errors getting media 0
2016-03-07 17:58:49 +01:00
Shannon Deminick f35e1604ca Merge pull request #1141 from umbraco/temp-U4-8030
U4-8030 - Fix RenderModelBinder issue with surface
2016-03-07 17:53:31 +01:00
Shannon b9765c3bec fixes RenderModelBinder to use base implementation,adds unit tests 2016-03-07 17:52:28 +01:00
Shannon d5a57c505c adds RenderModelBinderTests 2016-03-07 16:53:57 +01:00
Shannon 5f365241a8 updates RenderModelBinder to simply check for IPublishedContent or IRenderModel 2016-03-07 16:29:40 +01:00
Shannon 9c121f0044 Fixes RenderModelBinder to inherit from DefaultModelBinder and use the default logic if the model in the route values is not IRenderModel 2016-03-07 16:26:30 +01:00
Shannon f13bc07ddc Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-03-07 15:13:41 +01:00
Shannon a707d23692 Allows for specifying explicit product names by overriding the property in MigrationStartupHander 2016-03-07 15:13:31 +01:00
Simon Busborg 0929b7d42c Fixes U4-8113 Styling for property labels affect package meta data labels 2016-03-07 14:55:18 +01:00
Simon Busborg 35a9272b68 Fixes U4-8036 Umbraco.MultiNodeTreePicker checkbox doesn't appear after selecting something from list view 2016-03-07 14:45:30 +01:00
Shannon Deminick 112453a032 Merge pull request #1144 from umbraco/temp-U4-8077
U4-8077 - ensure product name in migration event handlers
2016-03-07 14:09:29 +01:00
Simon Busborg bba7367ba6 Fixes U4-8058 Labels are changed to block-level elements 2016-03-07 12:12:35 +01:00
Jeremy Pyne 83e679ba5e Fix for issue causing the entire stylesheets tree to reload when selecting a item. 2016-03-02 16:00:33 -05:00
Sebastiaan Janssen 05c35b22bd Merge pull request #1148 from umbraco/temp-U4-7040
U4-7040 - Fix bug with permissions cache refresh
2016-03-02 15:03:47 +01:00
Asbjørn Riis-Knudsen 4d950fb4d4 Fix transparency for image icons in the tray 2016-02-28 17:40:58 +01:00
Stephan 0d191fb8bd U4-7823 - stop flooding the log with errors getting media 0 2016-02-26 11:35:24 +01:00
Mads Rasmussen f6318fb6f3 Merge pull request #1147 from lars-erik/fix-u4-8082-nested-forms-and-submit-bug
Fixes: U4-8082 New overlays post forms in IE / Edge
2016-02-26 10:08:51 +01:00
Warren Buckley c7a3efadb1 Remove debug JSON in the view 2016-02-25 21:09:12 +00:00
Warren Buckley 956425dfbf Now updated so the create button hides if we do not have the Create permission 'C' 2016-02-25 21:06:25 +00:00
Warren Buckley c616354522 After reading src code for contentEditorHelper.configureContentEditorButtons it makes the same assumption that if the publish action 'U' is present then the user can also unpublish aka 'Z' 2016-02-25 20:49:56 +00:00
Stephan 17b29357d4 U4-7040 - Fix bug with permissions cache refresh 2016-02-25 17:43:38 +01:00
Stephan 36246b96d4 Fix bug with permissions cache refresh 2016-02-25 17:39:34 +01:00
Stephan 7d8791ec86 Fix ActionButtonsResolver (need review) 2016-02-25 17:05:44 +01:00
Stephan f349a9ae3e U4-7641 - bugfix 2016-02-25 16:26:20 +01:00
Warren Buckley 2719e2c231 WIP - ListView that grabs the current nodes permission from the editorState & use a neater object to return to the view rather than the lovely Magic String CHARs. Need help understanding that I don't get all the permissions to be expected 2016-02-25 15:19:42 +00:00
Lars-Erik Aabech 57a766098d Removed nested form and changed buttons to type="button" + action instead of ng-submit on form. 2016-02-25 16:04:37 +01:00
Stephan dafde545b0 U4-7641 - bugfix + implement for media types 2016-02-25 16:02:04 +01:00
Stephan 610538261e U4-7641 - enable content type copy 2016-02-25 15:26:03 +01:00
Simon Busborg f78cb8a970 Merge pull request #1119 from jchurchley/dev-v7
Fixes U4-7963 Listview columns not evenly spaced in Chrome
2016-02-25 14:52:17 +01:00
Sebastiaan Janssen def276de01 Merge pull request #1143 from umbraco/temp-U4-8027
U4-8027 - fix ApplicationContext request cache (was null cache)
2016-02-25 10:46:31 +01:00
Stephan 293b170a56 U4-8027 - fix ApplicationContext request cache (was null cache) 2016-02-24 14:16:48 +01:00
Stephan 9f7b82e20f U4-8077 - ensure product name in migration event handlers 2016-02-24 13:59:15 +01:00
Warren Buckley 6ba4efc416 Merge pull request #1142 from umbraco/temp-U4-7570
Temp u4 7570
2016-02-24 11:12:59 +00:00
Simon Busborg 981fb39af6 Fixed crop slider 2016-02-24 09:14:13 +01:00
Sebastiaan Janssen c64f6f894e U4-8024 Unable to use MvcBuildViews since 7.4.0 upgrade because 'umbraco.cms.presentation.create.controls.content' has been removed
Removes files for which the codebehind no longer exists
2016-02-23 17:23:55 +01:00
Simon Busborg 3e73c2da43 Fixed width of cropper 2016-02-23 16:31:10 +01:00
Mads Rasmussen 26a8d23039 Fixes: U4-8063 Content type editor: Keyboard shortcut overview should close on escape 2016-02-23 15:09:27 +01:00
Mads Rasmussen 2632ef740c Fixes: U4-7570 Hide image, focal point and remove link until image has loaded 2016-02-23 13:55:05 +01:00
Sebastiaan Janssen f024dba864 Merge pull request #1139 from umbraco/temp-U4-8017
U4-8017 - fix issues with MySql InitColumnTypeMap
2016-02-22 19:05:41 +01:00
Stephan 9758851a4b Fix SqlCeSyntaxProviderTests 2016-02-22 18:55:49 +01:00
Stephan 04b3532e9d U4-8030 - Fix RenderModelBinder issue with surface 2016-02-22 18:38:06 +01:00
Sebastiaan Janssen 38e56f0fea Might make the build server happy? 2016-02-22 17:57:44 +01:00
Sebastiaan Janssen 462baf91e4 Merge pull request #1137 from umbraco/temp-U4-7914
U4-7914 - add PublishedContentRequest.Preparing event
2016-02-22 17:45:50 +01:00
James Coxhead 01bcd3b623 Changed partial views icon to icon-article 2016-02-22 16:15:31 +00:00
James Coxhead 64fd95bd22 Updated tree icons for partial views and partial view macros 2016-02-22 16:13:25 +00:00
Stephan f1366c7d29 U4-8017 - fix issues with MySql InitColumnTypeMap 2016-02-19 13:33:11 +01:00
Warren Buckley baaa9340e4 Merge pull request #1131 from umbraco/temp-U4-7918
Fixes U4-7918 Make icon picker for document type and list views consistent
2016-02-19 12:03:27 +00:00
Mads Rasmussen 183a5b5c43 U4-7472: fix macro parameter column width 2016-02-19 09:52:29 +01:00
Mads Rasmussen 1a0c095f40 Merge pull request #932 from engern/MacroParamSortOrder
Fixes U4-7472 - Should be possible to sort macro parameters
2016-02-19 09:27:27 +01:00
Stephan ffada74aa4 Improve RenderModelBinder error msg when same type, different assemblies 2016-02-18 16:04:45 +01:00
Mads Rasmussen f2fc70f731 Merge pull request #982 from abryukhov/patch-4
U4-7616 - Nodes sort dialog - additional date formats
2016-02-18 14:19:06 +01:00
Simon Busborg 866b0113e7 Fixes grunt break 2016-02-18 12:43:09 +01:00
Simon Busborg 06c49daca7 Merge branch 'dev-v7-login-retina-umbraco-logo' of git://github.com/bjarnef/Umbraco-CMS into bjarnef-dev-v7-login-retina-umbraco-logo
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/less/pages/login.less
2016-02-18 12:42:17 +01:00
Stephan 9293008b94 U4-7914 - add PublishedContentRequest.Preparing event 2016-02-18 11:36:48 +01:00
Mads Rasmussen dbb9386d22 Fixes: U4-7660 [7.4 Fix] Added a default value to the Umbaco.TrueFalse datatype. Thanks Jeremy Pyne 2016-02-18 11:20:04 +01:00
Mads Rasmussen 51ed441b85 Merge branch 'u4-5123' of https://github.com/AndyButland/Umbraco-CMS into AndyButland-u4-5123
# Conflicts:
#	src/Umbraco.Web/PropertyEditors/ListViewPropertyEditor.cs
2016-02-18 10:00:22 +01:00
Simon Busborg f566fec665 Merge branch 'Acentrage-U4-6700' into dev-v7 2016-02-17 15:26:51 +01:00
Mads Rasmussen 9d92781a97 Merge pull request #949 from kgiszewski/dev-v7
Fix u4-7534
2016-02-17 15:04:14 +01:00
Simon Busborg 123bfe5afe Fixed merge conflict 2016-02-17 14:31:30 +01:00
Shannon Deminick 3383d2a2ac Merge pull request #1135 from umbraco/temp-U4-7601
U4-7601 - filter published content by composition
2016-02-17 13:31:07 +01:00
Sebastiaan Janssen d9f38a20af Merge remote-tracking branch 'origin/7.3.8' into dev-v7 2016-02-17 13:28:52 +01:00
Sebastiaan Janssen a91669abc0 Fixes unit tests 2016-02-17 13:28:11 +01:00
Stephan cc6dfd0c55 U4-7601 - refactor PR, case insensitive 2016-02-17 12:55:40 +01:00
Stephan d4802fcef6 Merge branch 'feature/is-composed-of' of https://github.com/AndyButland/Umbraco-CMS into temp-U4-7601 2016-02-17 12:44:18 +01:00
Sebastiaan Janssen 35c3208b77 Fixes merge error 2016-02-17 12:30:42 +01:00
Shannon 3b9db8a92f tries fixing test for appveyor 2016-02-17 12:25:40 +01:00
Sebastiaan Janssen 7debe17c58 Merge remote-tracking branch 'origin/7.3.8' into dev-v7
Conflicts:
	src/Umbraco.Web.UI/packages.config
2016-02-17 11:56:24 +01:00
Sebastiaan Janssen 1bfc1229bd Merge pull request #1134 from umbraco/temp-738-U4-7996
Upgrade SQL CE to hopefully fix SQL CE data loss bug
2016-02-17 11:54:25 +01:00
Shannon f941456af6 fixes namespace 2016-02-17 11:48:32 +01:00
Shannon 828e88e6f2 Merge remote-tracking branch 'origin/7.3.8' into dev-v7
Conflicts:
	src/Umbraco.Tests/Web/Mvc/UmbracoViewPageTests.cs
	src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs
2016-02-17 11:46:33 +01:00
Sebastiaan Janssen 3d6fd2d785 Updates to SQL CE 4.0.0.1 2016-02-17 11:44:33 +01:00
Shannon e56881abc6 adds unit tests for new ext methods 2016-02-17 11:21:15 +01:00
Shannon d32991c30a re-organizing some namespaces for tests 2016-02-17 10:59:48 +01:00
Shannon 8758f9649b checks for null before assigning culture 2016-02-17 10:57:20 +01:00
Sebastiaan Janssen 07902e840f Merge pull request #1133 from rodyvansambeek/patch-2
Changed allow upload whitelist to disallow extensions
2016-02-17 10:53:05 +01:00
rodyvansambeek e807ee7d64 Changed allow upload whitelist to disallow extensions
It is not possible to upload files in 7.4.0 with an extension different then the imageTypes in the Umbraco.Sys.ServerVariables.umbracoSettings.imageFileTypes, in the single upload this was changed after beta 7.4.0-beta1 to Umbraco.Sys.ServerVariables.umbracoSettings.disallowedUploadFiles. However the change was not added to the drag-drop-uploader. This fixes that.
2016-02-17 10:30:57 +01:00
Shannon 6f0f1ab2c3 fixes wrong constant used 2016-02-17 10:22:37 +01:00
Shannon cd28240172 Moves strings to constants, adds ControllerContextExtensions to get the UmbracoContext from the hierarchy of ControllerContext's, changes RenderModelBinder to use this method to get the UmbracoContext, changes UmbracoViewPageOfTModel to use this method to get the UmbracoContext, adds RouteDataExtensions to get the UmbracoContext from routedata, adds extension methods on the HttpContext to get the UmbracoContext from it.
Conflicts:
	src/Umbraco.Web/Mvc/RenderModelBinder.cs
2016-02-17 10:22:22 +01:00
Sebastiaan Janssen 85ca85fd42 Merge pull request #1129 from umbraco/temp-U4-7577
U4-7577 Remove dependency on UmbracoContext in CreateServiceContext /…
2016-02-16 17:32:38 +01:00
Sebastiaan Janssen 4a10178697 Merge pull request #1123 from umbraco/temp-U4-8000
U4-8000 NullReferenceException in RenderModelBinder when performing an async controller action
2016-02-16 17:28:49 +01:00
Shannon ccba7f14a0 tries fixing test for appveyor 2016-02-16 16:26:21 +01:00
Sebastiaan Janssen b797e0d0c5 Merge pull request #1127 from umbraco/temp-U4-7953
U4-7953 Creating Templates via new DocType have camelCased aliases, b…
2016-02-16 15:39:35 +01:00
Sebastiaan Janssen 8220b033f3 Merge pull request #1125 from umbraco/temp-U4-7954
U4-7954 Error upgrading database to 7.4.0 - [ FK_cmsPropertyTypeGroup…
2016-02-16 15:20:53 +01:00
Shannon 6fffc8b45e U4-7577 Remove dependency on UmbracoContext in CreateServiceContext / RequestLifespanMessagesFactory 2016-02-16 15:07:42 +01:00
Shannon b550b3dde3 Merge remote-tracking branch 'origin/7.3.8' into dev-v7 2016-02-16 14:52:14 +01:00
Shannon 7002291c41 adds tests for ShouldAuthenticateRequest for app configurations 2016-02-16 14:51:15 +01:00
Shannon 51bbf7ceb5 U4-7494 Installation Fails for 7.3.3 - Intermittent - Value cannot be null. Parameter name: sqlSyntax 2016-02-16 14:22:59 +01:00
Shannon 93d9f09fcc U4-7953 Creating Templates via new DocType have camelCased aliases, but from the Template section have PascalCase aliases 2016-02-16 14:20:29 +01:00
Sebastiaan Janssen 42a68cb770 U4-7494 Installation Fails for 7.3.3 - Intermittent - Value cannot be null. Parameter name: sqlSyntax 2016-02-16 14:00:28 +01:00
Shannon 1c2dec00fc bumps version 2016-02-16 13:32:03 +01:00
Shannon fcea4c7fdd Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-02-16 13:30:21 +01:00
Shannon b6ef4bf6b5 Merge branch '7.3.8' into dev-v7
Conflicts:
	build/UmbracoVersion.txt
	src/SolutionInfo.cs
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
2016-02-16 13:29:59 +01:00
Shannon 82297a6ff1 U4-7929 Label datatype strips leading zeros 2016-02-16 13:23:37 +01:00
Warren Buckley 3bf79f0a23 Merge pull request #1102 from umbraco/temp-U4-7837
Fixes: U4-7837 Changing document type should refresh the current node
2016-02-16 12:22:56 +00:00
Shannon 3f5aa3aa2b U4-7954 Error upgrading database to 7.4.0 - [ FK_cmsPropertyTypeGroup_cmsPropertyTypeGroup_id ] doesn't exist 2016-02-16 12:17:21 +01:00
Shannon cc5ac1a84c bumps version 2016-02-16 11:57:10 +01:00
Shannon 6373add383 U4-7922 Preview is not working 2016-02-16 11:53:54 +01:00
Shannon 180099b718 U4-7890 XSLT Macro's not working - "Cannot use this obsoleted overload when the current provider" 2016-02-16 11:52:16 +01:00
Shannon 65f15125e1 U4-7939 - fix routes cache 2016-02-16 11:48:09 +01:00
Shannon f026201c68 fixes wrong constant used 2016-02-16 11:35:38 +01:00
Shannon 640b2c0ee0 Moves strings to constants, adds ControllerContextExtensions to get the UmbracoContext from the hierarchy of ControllerContext's, changes RenderModelBinder to use this method to get the UmbracoContext, changes UmbracoViewPageOfTModel to use this method to get the UmbracoContext, adds RouteDataExtensions to get the UmbracoContext from routedata, adds extension methods on the HttpContext to get the UmbracoContext from it. 2016-02-16 11:17:47 +01:00
Shannon Deminick bef7ad1196 Merge pull request #1120 from lars-erik/fix-silly-long-grid-translation
Grid translations
2016-02-16 10:12:02 +01:00
Shannon Deminick 33c6c8b473 Merge pull request #1121 from umbraco/temp-U4-7950
Fixes another reported bug for U4-7950
2016-02-16 10:05:09 +01:00
Sebastiaan Janssen 0a26e482aa Fixes another reported bug for U4-7950 2016-02-16 09:01:28 +01:00
Lars-Erik Aabech d0de54e2d3 Grid translations:
Fixed a silly long translation of "Add content".
Added missing keys.
Fixed a few spelling mistakes.
2016-02-16 08:50:07 +01:00
Stephan cbdabaa3b1 Merge pull request #1118 from umbraco/temp-U4-7950
Use CultureInfo.CurrentCulture if UmbracoContext.PublishedContentRequ…
2016-02-15 15:21:00 +01:00
John Churchley 65c97040b3 Fix Chrome issue listview columns not evenly spaced
http://issues.umbraco.org/issue/U4-7963#
2016-02-15 12:17:13 +00:00
Simon Busborg a33d7da211 Fixes: U4-7945 Grid's Reorder bar covers content
http://issues.umbraco.org/issue/U4-7945
2016-02-15 12:55:44 +01:00
Sebastiaan Janssen f31b6d9c2c Use CultureInfo.CurrentCulture if UmbracoContext.PublishedContentRequest is not available 2016-02-15 08:27:07 +01:00
Sebastiaan Janssen 367c945b42 Merge pull request #1117 from s-moon/patch-1
Minor text changes.
2016-02-14 11:08:19 +01:00
Stephen Moon b962fcdbc3 Minor text changes. 2016-02-13 21:31:13 +00:00
Simon Busborg 0f8a13d60a 7 in a row instead of 8, bumped font-size on icons to 30 2016-02-12 10:17:42 +01:00
Simon Busborg 5c1502c806 Removes umb-control-group when no icons displayed 2016-02-12 10:13:30 +01:00
Simon Busborg 3cdebf4427 Fixes U4-7918 Make icon picker for document type and list views consistent 2016-02-12 09:38:37 +01:00
Shannon e4e7c18460 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-02-11 18:07:42 +01:00
Shannon 5f246c533c Fixes issue when there are zero instructions in the db table and we've never synced before, in this case it will always cold boot because it will never saved the last synced, in this scenario also the indexes will not build because we've cleared the collection before they can run. 2016-02-11 18:07:31 +01:00
Sebastiaan Janssen 5323543ec0 Merge pull request #1115 from abryukhov/patch-3
Update UI language ru.xml
2016-02-11 17:36:28 +01:00
Shannon d44542694b Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-02-11 17:31:49 +01:00
Shannon 016a14e5c7 Fixes the image cropper where if you don't have any crops, save an image to a content item, then when you go create a new crop in the data type it wouldn't show up on the front-end or in the back office. 2016-02-11 17:31:37 +01:00
Alexander Bryukhov 52f4dfec80 Update UI language ru.xml
According new keys added to the 7.4.0 nightly build 164 (models builder keys)
2016-02-11 22:29:33 +06:00
Sebastiaan Janssen 4f6e023d77 Make sure that everybody working on the source actually gets these assembly references in web.config 2016-02-11 17:11:02 +01:00
Shannon 5e46750cc4 nuspec and version 2016-02-11 16:34:15 +01:00
Shannon d028b133f5 nuspec updated with MB 2016-02-11 16:27:58 +01:00
Shannon ca6821104b updated to MB 3.0.0 final 2016-02-11 16:26:21 +01:00
Shannon 1ea8c8280c Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-02-11 15:54:10 +01:00
Shannon 17ff952b52 Fixes the URL creating for media in the back office to use an IMedia instead of published media (since it's not published yet at the time) 2016-02-11 15:54:00 +01:00
Sebastiaan Janssen b4f64975a2 Merge pull request #1113 from umbraco/temp-U4-7936
U4-7936 Clicking the Recycle Bin shows "Session expired" login screen
2016-02-11 15:48:24 +01:00
Sebastiaan Janssen 1d8a5cf795 Merge pull request #1114 from umbraco/temp-u4-7729
U4-7729 7.4.0-Beta Cannot drag and Drop PDF on Media Section
2016-02-11 15:34:41 +01:00
Shannon dccee93700 fixes up some null checks and fixes up some string null checks - casting XElement to (string) explicitly avoids null reference exceptions when the XElement isn't actually present. 2016-02-11 15:11:11 +01:00
Per Ploug efeafb4471 U4-7729 7.4.0-Beta Cannot drag and Drop PDF on Media Section 2016-02-11 14:42:47 +01:00
Shannon Deminick 496efde5b3 Merge pull request #1093 from jonrandahl/patch-1
Update PackagingService.cs
2016-02-11 14:18:23 +01:00
Shannon Deminick 2b56854652 Merge pull request #1112 from umbraco/temp-U4-7939
U4-7939 - fix routes cache
2016-02-11 14:15:13 +01:00
Shannon 04e1d8c2bd U4-7936 Clicking the Recycle Bin shows "Session expired" login screen 2016-02-11 14:04:14 +01:00
Simon Busborg c7a7dd6ed5 Fixed disabled buttons 2016-02-11 13:12:13 +01:00
Sebastiaan Janssen 1eedbba97a Merge pull request #920 from darrenferguson/dev-v7
change the text "Reload nodes" to just "Reload" my editors don't know…
2016-02-11 12:04:45 +01:00
Stephan d6b46e7e78 U4-7939 - fix routes cache 2016-02-11 11:53:03 +01:00
Shannon 1b03a8f06c Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-02-11 11:51:11 +01:00
Shannon 726bef1edf adds notes 2016-02-11 11:50:59 +01:00
Sebastiaan Janssen 33aa04bb2f Updates ImageProcessor.Web 2016-02-11 10:35:52 +01:00
Rune Hem Strand a79333080a Merge pull request #1111 from umbraco/U4-7933
Fixes issue U4-7933
2016-02-11 09:49:09 +01:00
Sebastiaan Janssen d1f513df69 Updates ImageProcessor 2016-02-10 17:09:40 +01:00
Shannon 54ddbc264d Fixes U4-7906 2016-02-10 16:39:05 +01:00
Shannon 89f6089f8e U4-7873 - fix GetCulture issue with languages 2016-02-10 16:22:06 +01:00
Shannon Deminick cf0b72fd77 Merge pull request #1026 from christofur/U4-7763
U4-7763 Fix - added mock and references required for 'dev' Grunt task
2016-02-10 15:54:59 +01:00
Niels Hartvig 2c32530701 Too fast, removed the extra amp 2016-02-10 15:47:52 +01:00
Niels Hartvig d6d945a96e Adds animationprocessmode=false to avoid issues with anim gifs 2016-02-10 15:46:18 +01:00
Shannon Deminick 4b6aee7fd9 Merge pull request #1109 from abryukhov/patch-3
Update UI language ru.xml
2016-02-10 15:44:42 +01:00
Niels Hartvig 8bbeeb2eaf Fixes issue 7933 2016-02-10 15:38:49 +01:00
Shannon Deminick 5648617809 Merge pull request #1098 from umbraco/temp-U4-7891
U4-7891 Image Cropper needs a property value converter to return a strongly typed model, json or a string when requested.
2016-02-10 15:32:55 +01:00
Shannon 0a33b37f2d Fixes issue with U4-7695 and not merging crop values with pre-values properly 2016-02-10 15:31:04 +01:00
Sebastiaan Janssen 157bf0d1eb Include modelsbuilder App_Plugins files in csproj so that the build actually includes them 2016-02-10 14:57:41 +01:00
Shannon 2721c5cb12 adds dynamic caseinsensitive support for the image cropper model 2016-02-10 14:54:00 +01:00
Shannon fd984bd613 Ensures media.Url works properly 2016-02-10 14:53:58 +01:00
Shannon fe0ed2ceea Adds some notes and ensures that the ImageCropperValueConverter shadows the correct one. 2016-02-10 14:53:57 +01:00
Shannon 0829bae5b2 Fixes TextStringValueConverter to include the text box and multi-textbox (since it's like that in the Core one that this overrides), adds new converter for Image cropper including ToString converter & custom type converter to convert from the strongly typed object to JObject, adds test to support this, adds equatable methods for the strongly typed model so it can be easily compared. Ensures that the webboot manager does not include the core value converter for image cropper. 2016-02-10 14:53:56 +01:00
Stephan c3c1567c2e Merge pull request #1100 from umbraco/temp-U4-7881
U4-7881 - fix errors with compositions
2016-02-10 14:53:45 +01:00
Shannon 4a8b59bdfa putting back in ContentTypeId on PropertyTypeDisplay, turns out this IS used when we remove a composition, we need to know which properties are related to which type. have also fixed another potential bug regarding compositions + generic properties, before we were not setting the ContentTypeId correct for a composition property type on the generic properties tab. 2016-02-10 14:34:33 +01:00
Shannon af543c56ec moves model to correct namespace 2016-02-10 13:31:36 +01:00
Claus 4113def0b6 Fixes: U4-7881 version 7.4 beta - cannot add composition doctype to a doctype that has already been saved 2016-02-10 13:08:36 +01:00
Shannon Deminick c346e62176 Merge pull request #1108 from umbraco/temp-U4-7799
Fixes: U4-7799 ModelsBuilder button in Content Type Editor should sav…
2016-02-10 13:05:38 +01:00
Sebastiaan Janssen 94fdbb1983 U4-7669 Update Newtonsoft.Json dependency to v8.0.1 from v6.0.5 2016-02-10 13:04:50 +01:00
Shannon f32e688c1a Fixes the MB re-generate button - this will only be shown when the models are out of date. 2016-02-10 13:04:04 +01:00
Mads Rasmussen 0303196f42 show Ulog error message when models builder fails 2016-02-10 11:47:01 +01:00
Mads Rasmussen c8faf17017 Fixes: U4-7799 ModelsBuilder button in Content Type Editor should save the current content type 2016-02-10 11:47:00 +01:00
Sebastiaan Janssen b2cba310b9 U4-7720 Media grid doesn't display preview for animated gif
In preparation of an updated ImageProcessor build, everything that displays animated gifs in the backoffice can run into this issue, so we show the first frame only everywhere (better than just a broken image)
2016-02-10 11:39:00 +01:00
Sebastiaan Janssen 95522afda8 Merge pull request #1110 from umbraco/temp-U4-7925
U4-7925 Add dependency injection to Umbraco.Web.Trees.TreeController*
2016-02-10 10:57:15 +01:00
Shannon 1b84e33392 reinstall the RC2 version 2016-02-10 10:43:41 +01:00
Shannon 065ed5ed78 updates nuspec 2016-02-10 10:28:57 +01:00
Shannon 9e931b84db U4-7925 Add dependency injection to Umbraco.Web.Trees.TreeController* 2016-02-10 10:26:09 +01:00
Shannon be449a96f7 updates to MB rc2 2016-02-10 10:26:08 +01:00
Alexander Bryukhov a22bfb927a Update UI language ru.xml
According new keys added to the 7.4.0 nightly build 162
2016-02-09 22:18:11 +06:00
Sebastiaan Janssen 5b92b30f64 Don't include the uninstall file in nuspec, it's missing so the package won't build 2016-02-09 17:16:04 +01:00
Sebastiaan Janssen 5e8200ecb2 U4-7909 7.4-rc1 is missing references because it's using portable class libraries now
#U4-7909 Fixed
2016-02-09 17:10:43 +01:00
Sebastiaan Janssen 9b5ea3da21 Can't have an uninstall as it runs during Update-Package, removing configuration settings like umbracoConfigurationStatus triggering the fresh install screen all user settings are also reverted :/ 2016-02-09 17:10:14 +01:00
Sebastiaan Janssen d495b96434 U4-7924 NuGet web.config transform changes targetFramework 2016-02-09 16:29:20 +01:00
Sebastiaan Janssen 79edf81434 Just whitespace, formatting document 2016-02-09 16:00:02 +01:00
Sebastiaan Janssen b3620f1ca4 U4-7924 NuGet web.config transform removes <codedom>
#U4-7924 Fixed
2016-02-09 15:39:48 +01:00
Stephan b6a9734755 Fix ModelsBuilder integration 2016-02-09 11:46:26 +01:00
Shannon c4cedaddd2 Merge remote-tracking branch 'origin/master-v7' into dev-v7 2016-02-09 11:00:57 +01:00
Shannon b5a2b3dbbd U4-7922 Preview is not working 2016-02-09 10:56:15 +01:00
Mads Rasmussen dc4266852f Fixes: U4-7915 7.4 RC1: Cannot change grid background 2016-02-09 09:57:41 +01:00
Simon Busborg 881e8daafd Merge pull request #1104 from abryukhov/patch-3
Update UI language ru.xml
2016-02-08 18:51:20 +01:00
bjarnef 5176b68935 Merge remote-tracking branch 'refs/remotes/umbraco/dev-v7' into dev-v7-tinymce-font-icons 2016-02-08 15:07:36 +01:00
bjarnef 0bfc5f1272 Change icons in tinymce config 2016-02-08 15:07:16 +01:00
Claus 54c1d25296 Fixes: U4-6407 Change Document Type feature on a node doesn't support compositions 2016-02-08 14:39:16 +01:00
Mads Rasmussen 624d3a9b82 fixes: U4-7905 val-highlight directive not highlighting error fields (red border) in 7.4.0 2016-02-08 13:35:59 +01:00
Mads Rasmussen d46d23b372 Fixes: U4-7732 Grid changes do not trigger Unsaved Changes notification 2016-02-08 12:07:45 +01:00
Mads Rasmussen aeba68782c fixes: U4-7903 Using shortcut for "add property" removes "add property"-field for other tabs in document type editor && U4-7904 Add property using shortcut - submit button text is missing 2016-02-08 10:54:58 +01:00
Mads Rasmussen ac60c63104 Fixes: U4-7900 The new content type editor: If you hit save while it generates an alias, the alias will be generatingAlias 2016-02-08 10:20:09 +01:00
Claus 6e0e48b6e4 Merge pull request #1103 from arknu/U4-7819
U4-7819: Use correct messages when saving Media and Member types
2016-02-08 09:24:42 +01:00
Alexander Bryukhov 0ea15ae22e Update UI language ru.xml
According new / changed keys of 7.4 nightly build 161
2016-02-07 11:37:06 +06:00
Asbjørn Riis-Knudsen 54548ffc68 U4-7819: Use correct messages when saving Media and Member types 2016-02-06 17:34:36 +01:00
bjarnef 39c18d4201 Merge branch 'dev-v7' of https://github.com/bjarnef/Umbraco-CMS into dev-v7 2016-02-05 15:54:48 +01:00
Claus fdc50f0635 Merge pull request #1101 from KevinJump/dev-v7-GetContent/MediaContainer-Fix
Fix GetContentTypeContainer and GetMediaTypeContainer
2016-02-05 15:15:56 +01:00
bjarnef 66ea8ae604 Merge remote-tracking branch 'refs/remotes/umbraco/dev-v7' into dev-v7 2016-02-05 14:55:53 +01:00
Claus 44f2a9e96f Fixes: U4-7837 Changing document type should refresh the current node 2016-02-05 14:37:01 +01:00
Kevin Jump 11743ea322 Fix GetContentTypeContainer and GetMediaTypeContainer to use correct guid
updated to use DocumentTypeContainerGuid,  MediaTypeContainerGuid
contstants in calls.
2016-02-05 13:20:10 +00:00
Simon Busborg 4d74ec7785 Makes editor types tabs accessible. 2016-02-05 11:49:41 +01:00
Sebastiaan Janssen aa704a2065 Umbraco.ModelsBuilder.AspNet.dll is no longer needed 2016-02-05 11:28:12 +01:00
Mads Rasmussen 08844ea098 close user dialog when clicking on edit, history links and logout 2016-02-05 11:08:34 +01:00
Claus 3449b1efd3 Toggle password fields after successfully changing the password. 2016-02-05 10:43:37 +01:00
Claus 00d012162f Added a bunch of missing translations in user overlay. 2016-02-05 10:38:15 +01:00
Shannon 966be0f342 updates nuspec 2016-02-04 20:28:05 +01:00
Shannon 0347a93dcf Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-02-04 20:23:20 +01:00
Shannon 25482f53ef updates to MB RC1 2016-02-04 20:23:11 +01:00
Sebastiaan Janssen 7e762d9114 Apparently we ship this in the zip version 2016-02-04 20:21:32 +01:00
Mads Rasmussen 82699a8ac9 Fixes: U4-7898 Validation for locked alias still not working 2016-02-04 20:08:19 +01:00
Shannon 0ea68f4f42 added logic for media and member type angular callbacks that existed for content types - assuming this is important and should be there for all content types. Added alias information to validation message returned from server. 2016-02-04 19:40:29 +01:00
Shannon 2cd4e9aa99 makes media types the same as the other content types 2016-02-04 19:26:16 +01:00
Shannon 8e3454d24f Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-02-04 19:17:00 +01:00
Shannon e352c65420 fixes server side validation issue for content types 2016-02-04 19:16:45 +01:00
Sebastiaan Janssen 04a12567bc Merge pull request #1090 from umbraco/temp-U4-3447
U4-3447 Nuget package does not install correctly with "Web Site" projects
2016-02-04 19:12:45 +01:00
Sebastiaan Janssen 16caeb96bd Another build warning that can be removed 2016-02-04 18:36:26 +01:00
Sebastiaan Janssen fbd5bdbd1d Surely nobody on their dev machines has the "trust" node in their web.configs any more, no more need to transform that one (gave warning during build.bat) 2016-02-04 18:35:16 +01:00
Sebastiaan Janssen e3983bb427 Depend on latest modelsbuilder 2016-02-04 18:32:21 +01:00
Sebastiaan Janssen c4389a3820 Fixes dashboard transform, works now 2016-02-04 18:32:20 +01:00
Sebastiaan Janssen 1f8274e807 These deletes still need to be there because some of these files don't get overwritten automatically for .. I don't know what reason really. 2016-02-04 18:32:20 +01:00
Shannon 9978b0d8ea Merge branch 'dev-v7' into temp-U4-3447 2016-02-04 18:30:58 +01:00
Shannon 0d9fef5457 changes to use StripWhitespace to fix tests 2016-02-04 18:09:17 +01:00
Shannon Deminick 7449e3bf1d Merge pull request #1096 from umbraco/temp-U4-7895
U4-7895 - routing fails when path contains dots
2016-02-04 17:44:39 +01:00
Shannon Deminick e6550b543d Merge pull request #1099 from robertjf/dev-v7
U4-7897 Minor update to MembershipProviderBase.DecryptPassword() to remove code smell
2016-02-04 17:38:59 +01:00
Shannon Deminick 1552a08b46 Merge pull request #1097 from umbraco/temp-U4-7887
U4-7887 - default to database connection timeout
2016-02-04 17:30:02 +01:00
Robert Foster c9d2d574f8 brought PasswordFormat switch in DecryptPassword in line with other useages. 2016-02-05 03:29:33 +11:00
Sebastiaan Janssen 4807bc4f2f Shoot, can't remove that one, else it'll also remove the "Welcome" section 2016-02-04 17:20:30 +01:00
Sebastiaan Janssen 87a2589853 Update old reference of System.Web.Mvc 2016-02-04 17:19:07 +01:00
Sebastiaan Janssen 6f400df775 The "Change password" dashboard will throw js errors if it's still there (the matching js files are not there any more) 2016-02-04 17:18:34 +01:00
Sebastiaan Janssen 68eaca6f66 Still shouldn't forget to build if you're using a web app (no need for website projects though) 2016-02-04 16:43:50 +01:00
Sebastiaan Janssen 166429cf68 Fixes the "No license field." error, see:
https://github.com/npm/npm/issues/4473#issuecomment-103453246
2016-02-04 16:10:35 +01:00
Mads Rasmussen 48adc259d9 fix content type editor property preview background in firefox 2016-02-04 15:19:20 +01:00
Stephan 42c23dadc9 U4-7887 - default to database connection timeout 2016-02-04 14:51:19 +01:00
Stephan fb9471359c U4-7895 - routing fails when path contains dots 2016-02-04 13:03:53 +01:00
Mads Rasmussen 4e0b018a8b Merge branch 'AndyButland-u4-7840' into dev-v7 2016-02-04 11:46:15 +01:00
Mads Rasmussen f94b5cc462 small fixes to U4-7840 2016-02-04 11:45:31 +01:00
Mads Rasmussen fee98f8144 Merge branch 'u4-7840' of https://github.com/AndyButland/Umbraco-CMS into AndyButland-u4-7840 2016-02-04 11:20:30 +01:00
Shannon Deminick aa31e293ec Merge pull request #1086 from umbraco/temp-U4-7598
U4-7598 - fix migrations during 4.7 to 7.4 upgrade
2016-02-04 11:10:45 +01:00
Shannon f8045840ee Merge remote-tracking branch 'origin/master-v7' into dev-v7 2016-02-04 11:04:05 +01:00
Shannon e2985d74e5 U4-7890 XSLT Macro's not working - "Cannot use this obsoleted overload when the current provider" 2016-02-04 11:01:54 +01:00
Mads Rasmussen 7d15b26a8f Fixes: U4-7818 Moved Document Type Reverts to Prior Location on Save 2016-02-04 10:41:06 +01:00
Rune Strand a77ebb1160 Add max resolution for the Image editor in Grid Layouts to avoid performance hit when using high res images. 2016-02-04 10:25:01 +01:00
Claus 6a1e54b221 Fixes: U4-7691 - refactor 2016-02-03 15:39:18 +01:00
Shannon Deminick 864ca4e40e Merge pull request #1094 from umbraco/temp-U4-7691
Fixes: U4-7691 7.4 beta - Document composition is not working with me…
2016-02-03 15:26:43 +01:00
Claus 24d42e6bd1 Fixes: U4-7691 7.4 beta - Document composition is not working with media types
Media type compositions weren't getting added since it only looked up through the content type service.
2016-02-03 15:02:44 +01:00
bjarnef 6fc794ca2e Merge branch 'dev-v7' of https://github.com/bjarnef/Umbraco-CMS into dev-v7 2016-02-03 14:42:14 +01:00
Jon R. Humphrey 8b4d34a1e8 Update PackagingService.cs
I've made the changes to the code after running into the "sequence contains no matching element" error in my Starter Kit package install. We knew that there were no calls to .First()., .Last(), or .Single() in our code based on search results and checking for this call, however we were able to deduce that the issue was that we were including a new ImageCropper DataType without values based on Jeavon's [example:] [https://umbraco.com/follow-us/blog-archive/2014/5/30/developing-a-website-with-responsive-images-using-the-umbraco-v714-image-cropper/]

I know it's a simple fix but if it helps anyone else not run into the same thing then that's perfect!

Thank you for all your hard work on Umbraco, maybe someday I can do more!
2016-02-03 13:21:36 +00:00
Shannon 65c3f8c513 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-02-03 14:16:38 +01:00
Shannon 1d326a76a3 fixes tab replace 2016-02-03 14:16:24 +01:00
Mads Rasmussen 625f976f14 Merge pull request #1088 from bjarnef/dev-v7-U4-6121
U4-6121 - Sorting in Related Links was not working correctly
2016-02-03 14:01:31 +01:00
Shannon 67c3ea7c00 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-02-03 13:44:03 +01:00
Shannon 797eb34f36 Fixes merge issues and tests 2016-02-03 13:43:51 +01:00
Mads Rasmussen 5f2150ddf7 remove word-break from meta because it hides property alias 2016-02-03 13:28:23 +01:00
Claus c4981b50e5 Merge pull request #1092 from umbraco/temp-U4-7744
Fixes: U4-7744 Better validation message when Reordering tabs
2016-02-03 13:21:47 +01:00
Simon Busborg 00a7c97c5e Fixed background and word-break in member type builder 2016-02-03 13:13:56 +01:00
Simon Busborg eb7fa9528a Merge pull request #1081 from umbraco/temp-U4-7675
Fixes: U4-7675 Changing doc type icon doesn't set dirty property for form
2016-02-03 12:55:12 +01:00
Claus 27d2b631a9 Merge pull request #1080 from umbraco/temp-U4-7871
Fixes: U4-7871 Media picker - add functionality to go to media item w…
2016-02-03 12:51:08 +01:00
Claus bf1086ca39 Merge pull request #1089 from umbraco/temp-U4-7884
Fixes: U4-7884 Prevent new content type editor form from saving when hitting enter from inputs
2016-02-03 12:44:55 +01:00
Shannon e423864781 Merge remote-tracking branch 'origin/master-v7' into dev-v7
Conflicts:
	build/UmbracoVersion.txt
	src/SolutionInfo.cs
	src/Umbraco.Core/Cache/FullDataSetRepositoryCachePolicy.cs
	src/Umbraco.Core/Cache/FullDataSetRepositoryCachePolicyFactory.cs
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
	src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/DomainRepository.cs
	src/Umbraco.Core/Persistence/Repositories/LanguageRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/PublicAccessRepository.cs
	src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Tests/Cache/FullDataSetCachePolicyTests.cs
	src/Umbraco.Web.UI.Client/src/common/directives/components/grid/grid.rte.directive.js
	src/Umbraco.Web.UI.Client/src/less/hacks.less
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web/WebBootManager.cs
2016-02-03 12:30:11 +01:00
Shannon aed4649ff5 changes version to RC1 2016-02-03 12:16:07 +01:00
Shannon Deminick 36119848e7 Merge pull request #1085 from umbraco/temp-U4-7861
U4-7861 - fix moving a content type
2016-02-03 12:13:31 +01:00
Shannon Deminick 8080746004 Merge pull request #1091 from umbraco/temp-U4-7885
U4-7885 - fix YSOD when saving a member type
2016-02-03 11:59:24 +01:00
Mads Rasmussen edaa335b18 Fixes: U4-7744 Better validation message when Reordering tabs 2016-02-03 11:55:19 +01:00
Simon Busborg ae9fba87b5 Removed white background from member types builder 2016-02-03 11:46:33 +01:00
Claus 076efad616 Merge pull request #1084 from umbraco/temp-U4-7713
U4-7713 - fix CountPublished
2016-02-03 11:45:15 +01:00
Stephan df3aaf43d3 U4-7885 - fix YSOD when saving a member type 2016-02-03 11:33:34 +01:00
Shannon Deminick 75fe61f134 Removes TEMP removal
This can cause issues if the site is running
2016-02-03 11:30:06 +01:00
Shannon 5d5c6ed33a fixes ysod with media types and member types 2016-02-03 11:21:01 +01:00
Shannon d01bd5bd40 adjust install/uninstall 2016-02-03 11:07:20 +01:00
Shannon 03f88b3866 fixes uninstall 2016-02-03 11:05:27 +01:00
Shannon 78c2708116 U4-3447 Nuget package does not install correctly with "Web Site" projects 2016-02-03 10:39:53 +01:00
Mads Rasmussen e22c6d9c04 fix member types html indention 2016-02-03 10:16:39 +01:00
Shannon 08e9579481 U4-7863 Remove Nuget requirement: Microsoft.Net.Http - this is not used, nor is it required (it also installs a bunch of other packages we don't need) 2016-02-03 10:14:53 +01:00
Mads Rasmussen 61ba602b4b prevent enter submit in member types 2016-02-03 10:05:01 +01:00
Mads Rasmussen bd393dffd4 fix media types html indention 2016-02-03 09:59:08 +01:00
Mads Rasmussen 573890b7ce prevent enter submit in media types 2016-02-03 09:56:14 +01:00
Mads Rasmussen 7d4fbe4267 fix document type html indention 2016-02-03 09:50:59 +01:00
Mads Rasmussen cb978e2fee prevent enter submit in document type editor 2016-02-03 09:44:10 +01:00
bjarnef 4e75575b40 Sorting was not working correctly 2016-02-03 03:38:53 +01:00
bjarnef d7174146e3 Merge remote-tracking branch 'refs/remotes/umbraco/dev-v7' into dev-v7 2016-02-03 03:04:48 +01:00
Stephan 325f92f6ca U4-7598 - fix migrations during 4.7 to 7.4 upgrade 2016-02-02 18:53:08 +01:00
Shannon 856c345905 Merge branch '7.3.7' of https://github.com/umbraco/Umbraco-CMS into 7.3.7 2016-02-02 18:01:56 +01:00
Shannon b2cd5dfb85 adds null check to session id - might not exist in old cookies 2016-02-02 18:01:36 +01:00
Sebastiaan Janssen 462f7a59b5 Merge pull request #1078 from dawoe/U4-7872
Use product name in migration runner instead of Umbraco productname
2016-02-02 17:06:56 +01:00
Shannon 22689d24ec changes port 2016-02-02 17:05:21 +01:00
Shannon Deminick ee303957b8 Merge pull request #1078 from dawoe/U4-7872
Use product name in migration runner instead of Umbraco productname
2016-02-02 17:04:45 +01:00
Shannon 4055afdf05 Merge branch '7.3.7' of https://github.com/umbraco/Umbraco-CMS into 7.3.7 2016-02-02 16:52:08 +01:00
Shannon a1c70a219a ensures correct sort order for content type queries + test 2016-02-02 16:51:57 +01:00
Stephan 3f23b06e24 U4-7861 - fix moving a content type 2016-02-02 16:40:01 +01:00
Sebastiaan Janssen 3151515855 U4-7072 Grid TinyMce with style_formats throws "Cannot assign to read only property 'name' 2016-02-02 16:09:02 +01:00
Shannon 25df9da715 bumps Version 2016-02-02 16:00:28 +01:00
Shannon 9c2f438476 fixes tests 2016-02-02 15:43:44 +01:00
Simon Busborg a763602aeb Fixes: U4-7072 Grid TinyMce with style_formats throws "Cannot assign to read only property 'name' 2016-02-02 15:38:12 +01:00
Shannon 0de3be42cf U4-7869 Examine & SQL Azure - Timeouts - ensure the other reader is executed with retry. 2016-02-02 15:33:22 +01:00
Shannon 1545e0eed7 Merge branch '7.3.7' of https://github.com/umbraco/Umbraco-CMS into 7.3.7 2016-02-02 15:14:56 +01:00
Shannon 42a7ed6877 U4-7821 KeepUserLoggedIn with a long umbracoTimeOutInMinutes has logout issues 2016-02-02 15:14:47 +01:00
Sebastiaan Janssen 98b8aedc4d U4-7849 Unclear error message when applying public access 2016-02-02 15:13:57 +01:00
Simon Busborg 4812f1d603 Fixes: U4-7725 Backend / Full witdth image / Settings / Set a background image - Is out of focus. 2016-02-02 15:11:50 +01:00
Rune Strand 137de20cef Remove gradient from btnDanger 2016-02-02 14:30:57 +01:00
Rune Hem Strand 8ce8199820 Merge pull request #1072 from umbraco/temp-U4-7851
fixes U4-7851 Grid layout RTE formats not being applied.
2016-02-02 14:14:10 +01:00
Simon Busborg bb52467f90 Fixes: U4-7703 TinyMCE - can't add additional css via custom config (v7.3.4)
http://issues.umbraco.org/issue/U4-7703
2016-02-02 14:08:12 +01:00
Stephan 8791f7ee97 U4-7713 - fix CountPublished 2016-02-02 13:52:55 +01:00
Rune Strand e9af8bfee1 click in grid RTE format dropdown no longer looses focus from the editor 2016-02-02 13:37:52 +01:00
Shannon c7a2b54d1c Merge branch '7.3.7' of https://github.com/umbraco/Umbraco-CMS into 7.3.7 2016-02-02 12:13:03 +01:00
Shannon 6583ff4439 U4-7821 KeepUserLoggedIn with a long umbracoTimeOutInMinutes has logout issues 2016-02-02 12:12:51 +01:00
Sebastiaan Janssen 7b08b3e936 Merged branch 7.3.7 into 7.3.7 2016-02-02 11:55:40 +01:00
Sebastiaan Janssen bd2fc71dc5 U4-7276 When creating folders in the "Partials" view folder a YSOD appears (Umbraco 7.3 and 7.4) 2016-02-02 11:55:24 +01:00
Mads Rasmussen 4360d49531 fix file indention 2016-02-02 11:42:36 +01:00
Mads Rasmussen ae26a19d4a Fixes: U4-7675 Changing doc type icon doesn't set dirty property for form 2016-02-02 11:41:52 +01:00
Shannon 0af97f63e2 U4-7857 Flexible Load Balancing does not sync with the correct timeout threshold 2016-02-02 11:11:47 +01:00
Rune Strand da732359af Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-02-02 10:18:36 +01:00
Rune Strand c659e1ff8f Adds button states for hover, focus and active 2016-02-02 10:15:57 +01:00
Simon Busborg fd92884ce5 Merge pull request #1075 from webprofijt/U4-7687
Fixes: U4-7687 Create dialog briefly shows 'no allowed document types…
2016-02-02 08:54:50 +01:00
Shannon 1db635f24c Updates DeepCloneableList to support behaviors, for the FullDataSetCachePolicy we only want to clone when writing to cache, not when reading, the cloning will then be done on individual items after filtering by the FullDataSetRepositoryCachePolicy 2016-02-02 01:32:36 +01:00
Shannon 6e27b3d6d4 Fixes up the FullDataSetRepositoryCachePolicy to handle individual items, updates and removes correctly, splits up it's logic so it's not overriding the DefaultRepositoryCachePolicy since that is just different. Adds tests. 2016-02-02 00:47:18 +01:00
Shannon 1dea0edcf1 re-includes the static cache for published property types, this cache is much more than a simple cache of content type infos, it is also the cache for associated converters which is required for all front-end rendering. Fixes the issue of not setting the xpath cache level corectly. 2016-02-01 22:50:38 +01:00
Shannon 1abab41955 Fixes perf issue with DeepCloneHelper - so we cache the actual property types instead of re-reflecting each time 2016-02-01 21:45:34 +01:00
Mads Rasmussen b22ae28acc Fixes: U4-7871 Media picker - add functionality to go to media item when an image has been picked 2016-02-01 18:24:30 +01:00
Claus 2718d895fa Merge pull request #1079 from umbraco/temp-U4-7832
Fixes: U4-7832 double data bindings
2016-02-01 15:31:53 +01:00
Mads Rasmussen f4e6913e6e Fixes: U4-7832 double data bindings 2016-02-01 15:14:38 +01:00
Dave Woestenborghs 647fbea066 Use product name in migration runner instead of Umbraco productname
Fixes http://issues.umbraco.org/issue/U4-7872
2016-02-01 11:48:32 +01:00
Sebastiaan Janssen b69bd8617f Merged branch dev-v7 into dev-v7 2016-02-01 09:28:31 +01:00
Sebastiaan Janssen 924d2a0d88 U4-7669 Update Newtonsoft.Json dependency to v8.0.1 from v6.0.5
#U4-7669 Fixed
2016-02-01 09:28:20 +01:00
Claus 17fdc7d246 Merge pull request #1077 from abryukhov/patch-3
Update UI language ru.xml
2016-01-31 12:26:12 +01:00
Alexander Bryukhov 10fc60def3 Update UI language ru.xml
Based on keys added in 7.4 nightly build 155
2016-01-31 12:05:07 +06:00
AndyButland 1362df8e64 Provided means of setting which bulk actions are allowed on list views; only enable selection of multiple items in list view if at least one bulk action is available 2016-01-30 20:48:21 +01:00
Arnoud de Vries b6962296c3 Fixes: U4-7687 Create dialog briefly shows 'no allowed document types' text 2016-01-30 15:51:17 +01:00
Shannon cf022ca6a4 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-01-28 19:35:20 +01:00
Shannon e2bf27e53f U4-7857 Flexible Load Balancing does not sync with the correct timeout threshold 2016-01-28 19:35:11 +01:00
Shannon d1be38be64 reverts profiler changes, we'll inlcude in 7.4 2016-01-28 18:37:56 +01:00
Shannon 8916c68a0c reverts profiler changes, we'll inlcude in 7.4 2016-01-28 18:35:29 +01:00
Shannon 6faa7e2fc9 dont' have RebuildOnAppStart set for dev purposes! 2016-01-28 18:31:47 +01:00
Claus db6f492aac Merge pull request #1056 from umbraco/temp-U4-7695
U4-7695 Media items are not updated when a new crop is added to Image…
2016-01-28 18:30:37 +01:00
Shannon a6093f41bd Fixes installer login for user and adds notes 2016-01-28 18:02:22 +01:00
Simon Busborg a1dcd2739b Merge branch 'abryukhov-patch-5' into dev-v7 2016-01-28 15:32:35 +01:00
Simon Busborg ef4bb3e341 Merge branch 'patch-5' of git://github.com/abryukhov/Umbraco-CMS into abryukhov-patch-5
# Conflicts:
#	src/Umbraco.Web.UI/umbraco/config/lang/ru.xml
2016-01-28 15:29:56 +01:00
Shannon Deminick 8c90e2fd58 Merge pull request #1066 from umbraco/temp-U4-7847
Fixes: U4-7847 Do not allow folders to be created underneath content types (or data types)
2016-01-28 15:22:03 +01:00
Shannon a1156472fb Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-01-28 15:16:37 +01:00
Shannon d526ff43f2 Merge branch 'temp-RepoCachePerf' into dev-v7 2016-01-28 15:16:02 +01:00
Simon Busborg dc6c15e150 Merge pull request #1058 from greystate/fix-querybuilder-button
U4-7842 Query Builder "Sort by" direction button changes case when clicked
2016-01-28 15:16:01 +01:00
Claus 0bc6b600a5 Merge pull request #1073 from umbraco/temp-U4-7806
Fixes: U4-7806 Possible to interactive with property editor "preview"…
2016-01-28 15:10:54 +01:00
Simon Busborg fb4cf18873 Merge pull request #1053 from abryukhov/patch-7
Latest update UI language ru.xml
2016-01-28 15:03:59 +01:00
Simon Busborg edd47814ee Merge pull request #1042 from abryukhov/patch-6
Update UI language ru.xml
2016-01-28 15:02:14 +01:00
Stephan 107e66e4da Merge pull request #1071 from umbraco/temp-U4-7682
U4-7682 Add option to DatabaseServerMessengerOptions to force a Cold …
2016-01-28 14:33:02 +01:00
Simon Busborg ec0a9493e2 removed whitespace issue 2016-01-28 14:25:40 +01:00
Mads Rasmussen 549a8380c3 Fixes: U4-7806 Possible to interactive with property editor "preview" in document type editor 2016-01-28 14:23:53 +01:00
Simon Busborg e0ba030b1f fixes U4-7851 Grid layout RTE formats not being applied. 2016-01-28 14:19:46 +01:00
Shannon 256849f8a6 adds nicer profiling during startup for app event handlers. 2016-01-28 14:19:38 +01:00
Stephan c9c451be65 U4-7682 Minor review adjustments 2016-01-28 14:19:32 +01:00
Shannon 1fcea083e7 Ensures no profiling occurs when not in debug mode 2016-01-28 14:10:13 +01:00
Shannon 85d6ee5713 Merge branch '7.3.6' of https://github.com/umbraco/Umbraco-CMS into 7.3.6 2016-01-28 13:50:55 +01:00
Shannon ec81583741 Fixes case sensitive matching on alias in TemplateRepository 2016-01-28 13:50:45 +01:00
Sebastiaan Janssen 332da9bf2d Merge pull request #1070 from umbraco/temp-RepoCachePerf736
Temp repo cache perf736
2016-01-28 12:15:24 +01:00
Shannon a0036d925e U4-7682 Add option to DatabaseServerMessengerOptions to force a Cold Boot if there are too many instructions 2016-01-28 12:14:30 +01:00
Shannon 81a99d6f7d adds null check and ensures that SetInternalRedirectPublishedContent cannot be called with a null result 2016-01-28 10:19:51 +01:00
Shannon e912238574 Saw there was another place with the incorrect case for the column name AllowedId 2016-01-28 09:32:01 +01:00
Shannon Deminick 2d17603703 Merge pull request #1068 from glennweb/dev-v7
Incorrect case for column AllowedId in select query.
2016-01-28 09:30:37 +01:00
glennweb 5d3e580cda Saw there was another place with the incorrect case for the column name AllowedId 2016-01-28 15:12:14 +10:00
glennweb 93aadc196f Fixed incorrect case property in select statement causing case sensitive database's to throw error.
https://our.umbraco.org/forum/core/general/49619-Went-wrong-in-a-moment-Invalid-column-name
2016-01-28 15:07:18 +10:00
Shannon 9a830e5de6 fixes tests 2016-01-27 19:44:36 +01:00
Shannon 5f43b360ec Merge remote-tracking branch 'origin/dev-v7' into temp-RepoCachePerf 2016-01-27 19:44:04 +01:00
Shannon 7d9ba0e36e manually backports changes from 7.4 fixes 2016-01-27 19:42:06 +01:00
Shannon 6c5e09fd84 Ensures that the main content type repositories are returning the correct result from their GetAll methods. Fixes the FullDataSetRepositoryCachePolicy to ensure that any request with Ids actually returns the result of GetAll and then filters to ensure caching is correct. 2016-01-27 19:26:08 +01:00
Shannon 5d96534678 fixes tests 2016-01-27 19:20:24 +01:00
bjarnef 5a2ebec473 Merge remote-tracking branch 'refs/remotes/umbraco/dev-v7' into dev-v7 2016-01-27 18:55:38 +01:00
Shannon 0cefdcbc20 Fixes ContentTypeBaseRepository - there were several hack in place to query by GUID but this is totally irrelavent because we are caching them all so the result should be from the GetAll(), so this removes all of those hacks which greatly simplifies things. This fixes the MapContentTypes and MapMediaTypes methods - before this was looking up a collection and then recursing back to Get(int) (but we already have all of the data we need), then it was storing a lot of arrays in memory to build up an Entity when it's much faster to just iterate forward only and build up the entity. This saves 5 SQL calls on startup. 2016-01-27 18:55:10 +01:00
Shannon 02b74a5059 Fixes FullDataSetRepositoryCachePolicy so that whenever Ids are requested, it retrieves all of the items and then post filters - ensuring there's no additional trips to the database. Fixes MemberTypeRepository so that calls to PerformGet(int) are wrapping the GetAll() call. 2016-01-27 18:51:37 +01:00
Sebastiaan Janssen 2913a0f624 With only LineFeeds then...? 2016-01-27 17:15:30 +01:00
Sebastiaan Janssen 1c58360891 Another attempt at fixing unit tests 2016-01-27 15:47:37 +01:00
Shannon 49fc068b38 Merge remote-tracking branch 'origin/7.3.6' into dev-v7
Conflicts:
	build/UmbracoVersion.txt
	src/SolutionInfo.cs
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
	src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IMediaTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web/UmbracoContext.cs
2016-01-27 15:42:06 +01:00
Mads Rasmussen b671595608 fix tab indention 2016-01-27 15:34:15 +01:00
Mads Rasmussen 4bc51feccd fix semicolons 2016-01-27 15:31:29 +01:00
Sebastiaan Janssen 1d5696a08b Merged branch dev-v7 into dev-v7 2016-01-27 15:30:54 +01:00
Sebastiaan Janssen bd2b6e0f93 Should hopefully fix unit tests 2016-01-27 15:30:34 +01:00
Mads Rasmussen 98c65ff8f4 U4-7847 Do not allow folders to be created underneath content types (or data types) 2016-01-27 15:29:53 +01:00
Shannon 3addffbd34 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-01-27 15:23:10 +01:00
Shannon dbb7e3825d Fixes events for containers 2016-01-27 15:22:58 +01:00
Claus 1d1dd87d44 Merge pull request #1059 from umbraco/temp-U4-7832-U4-7772
Fixes: U4-7772 Cursor jumps when editing alias in new ContentType edi…
2016-01-27 15:12:23 +01:00
Simon Busborg 592ccd29e3 Merge pull request #1065 from umbraco/temp-U4-7846
Fixes: U4-7846 Media grid missing min-height on item + make media item sizes as attr so they can be set outside the directive
2016-01-27 15:01:24 +01:00
Shannon 0ea9ce1363 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-01-27 14:31:12 +01:00
Shannon cc4c7b0d88 Adds events for creating/deleting containers 2016-01-27 14:30:57 +01:00
Claus 800df325a9 Merge pull request #1063 from umbraco/temp-U4-2670
U4-2670 Add event to modify the model before being sent to render
2016-01-27 14:30:40 +01:00
Mads Rasmussen 1c04aa377c fix tab indention 2016-01-27 14:21:27 +01:00
Simon Busborg 1f1aeaf446 Merge pull request #1064 from umbraco/temp-U4-7845
Fixes: U4-7845 Show drop zone in media section + fix recycle bin for …
2016-01-27 14:19:22 +01:00
Mads Rasmussen 38e9193573 Fixes: U4-7846 Media grid missing min-height on item + make media item sizes as attr so they can be set outside the directive 2016-01-27 14:18:53 +01:00
Shannon Deminick 409d6dd71c Merge pull request #1062 from umbraco/temp-U4-7844
U4-7844 - Add support for models in controllers
2016-01-27 13:54:45 +01:00
Mads Rasmussen 9c5d5f4318 Fixes: U4-7845 Show drop zone in media section + fix recycle bin for content section + localise texts 2016-01-27 13:25:54 +01:00
Shannon e8dfa056b0 U4-2670 Add event to modify the model before being sent to render 2016-01-27 13:20:13 +01:00
Stephan 81754b37a4 Add support for models in controllers 2016-01-27 12:05:22 +01:00
bjarnef 02e5056987 Change value of vertical-align property. 2016-01-27 09:36:25 +01:00
Claus c33b488006 Ensuring we only do the base SetupNode stuff if its actually a media type and not a folder requested. 2016-01-27 09:27:56 +01:00
Mads Rasmussen 43e49b75de Add extra div to media grid to fix firefox issue in chrome 2016-01-27 09:21:58 +01:00
Simon Busborg e050090f0f Merge pull request #1061 from bjarnef/dev-v7-tinymce-config-indent
Indent of toolbar options in TinyMCE config
2016-01-27 09:15:34 +01:00
bjarnef 5e88fbfad0 Indent of toolbar options in TinyMCE config 2016-01-26 23:52:16 +01:00
Mads Rasmussen c9f71ce067 Fixes: U4-7772 Cursor jumps when editing alias in new ContentType editor + U4-7832 Editing property alias chomps 1st character 2016-01-26 21:07:15 +01:00
Chriztian Steinmeier 21190bc0c6 Change the initial wording of the sort-direction button
Keep it lowercased as that's what it actually toggles between when
clicked
2016-01-26 19:36:12 +01:00
Sebastiaan Janssen 2f8c43c689 Merge pull request #1057 from umbraco/temp-U4-7836
U4-7836 YSOD when upgrading Umbraco with error during AddUserDataClaims
2016-01-26 19:25:04 +01:00
Shannon 7a25cb52b2 updates the repository cache policies so that we aren't keeping everything in cache unnecessarily 2016-01-26 19:13:42 +01:00
Shannon 19bc97a7fd Removes the static (hack) cache for content types for creating published content 2016-01-26 18:56:29 +01:00
bjarnef df958223b0 Merge remote-tracking branch 'refs/remotes/umbraco/dev-v7' into dev-v7 2016-01-26 18:17:00 +01:00
Shannon 72900ef3b3 U4-7813 Enable MiniProfiler to profiler during startup
Conflicts:
	src/Umbraco.Core/Umbraco.Core.csproj
2016-01-26 17:56:25 +01:00
Shannon 74ddd09c5d U4-7836 YSOD when upgrading Umbraco with error during AddUserDataClaims - this also ensures that no empty/null sections can be added to the user object since this is where the original exception was coming from. 2016-01-26 17:05:46 +01:00
Mads Rasmussen fd58c3b3c6 Fixes: U4-7815 List view - bug when custom list view has been created. 2016-01-26 16:09:48 +01:00
Sebastiaan Janssen e461cb92da U4-7787 Shorthand use of ?altTemplate= doesn't work
#U4-7787 Fixed
2016-01-26 16:07:44 +01:00
Shannon ba2fd96e88 U4-7695 Media items are not updated when a new crop is added to Image Cropper 2016-01-26 15:54:17 +01:00
Shannon 7cdaacf149 adds assert 2016-01-26 14:26:16 +01:00
Shannon 7cfdc81555 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-01-26 14:24:18 +01:00
Shannon aeb6babad0 fixes template unit tests 2016-01-26 14:24:07 +01:00
Simon Busborg 24f38e0c0e Fixed illustration width in safari 2016-01-26 14:18:07 +01:00
Simon Busborg 8cb9d6858e U4-7722 Show checkmark when hover image in media grid 2016-01-26 14:18:06 +01:00
Claus 17629ea1b5 Merge pull request #1055 from umbraco/temp-U4-7698
Ensures that all property data is deleted for a doc type when it is b…
2016-01-26 14:13:46 +01:00
Shannon 779e7d7667 fixes ContentTypeRepositoryTest 2016-01-26 13:46:55 +01:00
Shannon 7117c6f085 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-01-26 13:44:05 +01:00
Shannon ba9ebd394b fixes MediaTypeRepositoryTest's 2016-01-26 13:43:56 +01:00
Simon Busborg 3ed340bde1 Fixes weird skew in media grid 2016-01-26 13:29:39 +01:00
Shannon 7d616cf937 Ensures that all property data is deleted for a doc type when it is being deleted, updates the ChangeDocType to not use the legacy EnsuredPage, updates the non-legacy EnsuredPage.ClientTools to support the legacy logic. 2016-01-26 12:13:53 +01:00
Mads Rasmussen fa1c227136 U4-7724 Click on remove file(s) link, on an item in the media section, doesn't set dirty for form 2016-01-26 12:01:04 +01:00
bjarnef 738f24d6c9 Hide search input behind split slider
Ensure search input is covered by the split slider, when it is dragged
all the way to the left similar to how tree nodes is covered.
2016-01-26 11:38:04 +01:00
Shannon c33ad3eed7 U4-7825 Remove Microsoft.AspNet.WebHelpers and Microsoft.AspNet.WebPages.Data dependencies from nuget 2016-01-26 11:31:35 +01:00
Shannon Deminick 3e5050ee9a Merge pull request #1054 from umbraco/temp-U4-7701
Fixes: U4-7701 Unable to Delete Member in Member Section
2016-01-26 11:26:33 +01:00
Shannon Deminick 7dce1ee39a Merge pull request #1052 from umbraco/temp-U4-7642
U4-7642 - bugfix aggressive refactoring
2016-01-26 11:11:33 +01:00
Mads Rasmussen f30c05b37f add/remove semicolons 2016-01-26 10:47:36 +01:00
Mads Rasmussen 7fce8583c8 Fixes: U4-7701 Unable to Delete Member in Member Section 2016-01-26 10:34:31 +01:00
Alexander Bryukhov 3a17dd06d8 Latest update UI language ru.xml
Only two new keys in the "sort" section translated. For full merged ru.xml file merge there are two more PRs (#1042 & #983)
2016-01-26 12:44:39 +06:00
Stephan 9d10362e7a U4-7642 - bugfix aggressive refactoring 2016-01-25 18:17:48 +01:00
Shannon 3712a80031 fixes composition check in change doc type 2016-01-25 16:43:20 +01:00
Shannon Deminick 930bada737 Merge pull request #1043 from umbraco/temp-U4-7716
U4-7716 Content type editor - YSOD when adding a property with the sa…
2016-01-25 16:08:07 +01:00
Shannon 95eb5f88f3 fixes merge issues 2016-01-25 16:07:57 +01:00
Shannon 56f0d67639 Merge branch 'dev-v7' into temp-U4-7716
Conflicts:
	src/Umbraco.Web/Editors/ContentTypeControllerBase.cs
2016-01-25 15:54:50 +01:00
bjarnef 0be5c31d4a Adjust styling for sort table + localize 2016-01-25 15:31:07 +01:00
Simon Busborg ca03967662 U4-7644 Misleading description of choosing package file
has to have correction
2016-01-25 15:24:11 +01:00
Simon Busborg 91413c2a89 U4-7644 Misleading description of choosing package file
I'm not a multi language talent, so I've taken the liberty only to correct the danish and english version. since `.umb`doesn't exists anymore, I've deleted that extension from the sentence.
2016-01-25 15:18:26 +01:00
Claus bd109d3700 Merge branch 'bjarnef-dev-v7-resizable-handle-border' into dev-v7 2016-01-25 15:10:29 +01:00
bjarnef d9de5e5f29 Remove top and bottom border for resizable handle 2016-01-25 15:09:50 +01:00
Claus 63635ec9fb Merge branch 'cyfer13-dev-v7' into dev-v7
Edited: No need to convert to string before passing on the value.
2016-01-25 14:11:00 +01:00
Claus d32380294a Merge branch 'dev-v7' of https://github.com/cyfer13/Umbraco-CMS into cyfer13-dev-v7 2016-01-25 13:53:01 +01:00
Shannon 8ea6f1168e Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-01-25 12:26:53 +01:00
Shannon 7595da7645 adds a null check 2016-01-25 12:26:11 +01:00
Mads Rasmussen f33af2930e Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-01-25 12:18:29 +01:00
Mads Rasmussen 08cfececd9 Fixes: U4-7824 Remove media section dropzone and folders in recycle bin 2016-01-25 12:17:26 +01:00
Shannon 1aab6c217f Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-01-25 12:11:10 +01:00
Shannon 396194ae01 bumps MB nuget version 2016-01-25 12:10:40 +01:00
Mads Rasmussen baea34b6a4 Merge pull request #1051 from umbraco/temp-U4-7820
Fixes: U4-7820 List view card layout can not go to item
2016-01-25 11:32:27 +01:00
Shannon Deminick 742ee57835 Merge pull request #1049 from umbraco/temp-U4-7700
Fixes: U4-7700 7.4 beta Backoffice Routing problem for Custom Sections or Installed Packages with a custom section
2016-01-25 11:19:46 +01:00
Shannon 2e4941053c more null checks 2016-01-25 11:19:18 +01:00
Shannon 1118d95773 added a null check 2016-01-25 11:14:06 +01:00
Mads Rasmussen e91b53e66d back ported: https://github.com/Umbraco/Umbraco-CMS/commit/2d0f198f58071f5113d5c3437f10f2b85220c348 2016-01-25 11:09:20 +01:00
Mads Rasmussen f981fe60ff Fixes: U4-7820 List view card layout can not go to item 2016-01-25 10:30:13 +01:00
bjarnef 1217d9f0b3 Merge remote-tracking branch 'refs/remotes/umbraco/dev-v7' into dev-v7 2016-01-24 23:25:29 +01:00
Claus bbb187f2c8 Merge pull request #1044 from umbraco/temp-U4-7783
U4-7783 Member can edit / show on profile don't exist any more in 7.4.0
2016-01-24 22:19:01 +01:00
Claus 10617d1bd5 Agree, these should not be needed - removing. 2016-01-24 22:18:18 +01:00
Claus 7ac1c8ab6f forgot a few console.log's. 2016-01-24 15:43:43 +01:00
Claus 4372c9df40 remove refs. 2016-01-24 15:40:23 +01:00
Claus c4e8e20f02 Reverted to only update exactly what is needed for this to work.
Switched away from ugly xpath - using linq.
2016-01-24 15:36:29 +01:00
Chad Rosenthal 09d038fcde U4-4652 - added decimal/double to contentbase 2016-01-23 21:32:08 -07:00
Shannon b5e8cb29dd ensure appctx and security isn't nulled on disposal (it's an application singleton it doesn't need to be nulled), creates new CreateContext method for creating standalone UmbracoContext instances. 2016-01-23 12:38:08 +01:00
Shannon 20dc4f5bc4 fixes merge issue/build 2016-01-23 12:27:40 +01:00
bjarnef 1301897f39 Merge remote-tracking branch 'refs/remotes/umbraco/dev-v7' into dev-v7 2016-01-22 22:02:51 +01:00
Shannon 2c399860ca Fixes DisposableTimer so that the profiled step is disposed - and thus tracked/timed properly! 2016-01-22 17:27:46 +01:00
Shannon c7185dcef0 Fixes DisposableTimer so that the profiled step is disposed - and thus tracked/timed properly! 2016-01-22 17:27:27 +01:00
Shannon 5ab61e7638 U4-7816 The IsolatedCache instance in the RepositoryFactory differs from the ApplicationContext singleton instance 2016-01-22 17:09:44 +01:00
Shannon 4dc4c36581 U4-7811 Content type repositories should use FullDataSetRepositoryCachePolicyFactory for performance
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
	src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IMediaTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs
2016-01-22 17:08:21 +01:00
Shannon fe774f557c Fixes ms value: U4-7810 DatabaseServerRegistrar should not execute as soon as a request is made, this slows down app start 2016-01-22 17:06:14 +01:00
Shannon 3ecb9d0f86 U4-7807 Domain, language, public access cache (GetAll) caches not working when there are no items 2016-01-22 17:05:27 +01:00
Shannon f78a425985 U4-7816 The IsolatedCache instance in the RepositoryFactory differs from the ApplicationContext singleton instance 2016-01-22 16:37:47 +01:00
Claus 291d92bfc9 Fixes: U4-7700 7.4 beta Backoffice Routing problem for Custom Sections or Installed Packages with a custom section
Reverting the lowercasing happening in the angular routing and navigation.
Ensuring tree section registrations are updated instead of added in trees.config. The lowercasing was introduced to compensate for this.
2016-01-22 13:38:43 +01:00
Shannon ffce67e4fd nuget update 2016-01-22 13:34:16 +01:00
Shannon 4f85985a09 updates mb nuget 2016-01-22 12:45:57 +01:00
Shannon Deminick 5efbec1a2e Merge pull request #1046 from umbraco/temp-U4-7739
U4-7739 - added more options to ViewHelper.GetDefaultFileContent
2016-01-22 12:38:03 +01:00
Shannon 4bb6b2e230 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-01-22 12:26:04 +01:00
Shannon c365b1569b updates to latest myget MB package 2016-01-22 12:25:39 +01:00
Mads Rasmussen b38edd1921 Merge pull request #1040 from umbraco/temp-U4-7707
U4-7707 Can't unassign assigned composition from content type until i…
2016-01-22 12:13:04 +01:00
Shannon dfa45e70f4 Fixes ms value: U4-7810 DatabaseServerRegistrar should not execute as soon as a request is made, this slows down app start 2016-01-22 12:11:32 +01:00
Shannon 1f29d85f83 U4-7813 Enable MiniProfiler to profiler during startup 2016-01-22 11:46:10 +01:00
Stephan 2a6b559b6e U4-7739 - added more options to ViewHelper.GetDefaultFileContent 2016-01-22 10:41:54 +01:00
bjarnef 6d34fe416d Merge remote-tracking branch 'refs/remotes/umbraco/dev-v7' into dev-v7 2016-01-21 20:38:52 +01:00
Shannon c7805f0af1 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2016-01-21 19:33:55 +01:00
Shannon 07d50464cc U4-7811 Content type repositories should use FullDataSetRepositoryCachePolicyFactory for performance 2016-01-21 19:33:47 +01:00
Mads Rasmussen 8373955bf0 Auto focus folder name when creating folders in document types 2016-01-21 19:11:43 +01:00
Mads Rasmussen ca5f317a90 Fixes: U4-7797 Remove context-menu divider when there only is one action 2016-01-21 19:10:29 +01:00
Shannon d86db6b2cd U4-7810 DatabaseServerRegistrar should not execute as soon as a request is made, this slows down app start 2016-01-21 18:36:04 +01:00
bjarnef a884ece8b1 Merge remote-tracking branch 'refs/remotes/umbraco/dev-v7' into dev-v7 2016-01-21 18:15:50 +01:00
Shannon b15f0a9c54 U4-7807 Domain, language, public access cache (GetAll) caches not working when there are no items 2016-01-21 17:46:47 +01:00
Shannon 48667bb50a fixes more mapping, adds more tests. 2016-01-21 16:25:19 +01:00
Shannon ad5043295f cleans up more mappings, adds unit tests 2016-01-21 15:59:58 +01:00
Shannon 0c0518ff7b ensures that abstract models have a DataContract 2016-01-21 15:06:57 +01:00
Shannon 52b1a09de0 abstracts out the DocumentType, MemberType and MediaType editor models, since some contain different props than each other and now member properties contain different properties than each other. So we have a lot of generic insanity going on... it works though. 2016-01-21 15:01:55 +01:00
Sebastiaan Janssen e456761bb9 Merge pull request #1039 from ig-ealbert/japanesev7-2
Added translations and removed unused entries
2016-01-21 13:06:46 +01:00
Mads Rasmussen be1b770df8 Fixes: U4-7665 When adding tab without save and remove it again "Add another tab" should be shown again 2016-01-21 12:00:29 +01:00
Shannon a8e43a3908 U4-7716 Content type editor - YSOD when adding a property with the same alias as it's parent 2016-01-21 11:39:46 +01:00
Alexander Bryukhov 47ea3828a1 Update UI language ru.xml
According the latest keyas added/updated in 7.4 beta2
2016-01-21 13:36:37 +06:00
Mads Rasmussen 504235d6db add memberCanEdit and showOnMemberProfile to property settings overlay in member types 2016-01-20 21:30:12 +01:00
bjarnef 0ffcc9b889 Merge remote-tracking branch 'refs/remotes/umbraco/dev-v7' into dev-v7 2016-01-20 19:21:58 +01:00
Shannon 177e61834c U4-7707 Can't unassign assigned composition from content type until it has been saved 2016-01-20 18:52:05 +01:00
Shannon 2d0f198f58 U4-7546 Cannot delete document type - fanoe starter kit Text Page 2016-01-20 18:26:30 +01:00
Shannon 6ad568c81a changes config template with new MB config option 2016-01-20 18:18:33 +01:00
ig-ealbert 25dd891938 Added translations and removed unused entries 2016-01-20 12:10:02 -05:00
Shannon Deminick 2ef673bc84 Merge pull request #1038 from umbraco/temp-U4-7768
U4-7768 - Fixes validation issue with new CTs and invalid server side…
2016-01-20 18:08:58 +01:00
Shannon adc3c1e927 updates to latest MB 2016-01-20 18:08:34 +01:00
Shannon e2eaf7d58e Updates how the editor validators work 2016-01-20 17:42:09 +01:00
Shannon 38a6f8c4a9 creates new EditorValidationResolver for external validators to work (internal for now), bumps version 2016-01-20 16:57:31 +01:00
Shannon 8fc44699bc U4-7768 - Fixes validation issue with new CTs and invalid server side validation, adds validation check for all ct aliases across all types 2016-01-20 16:07:47 +01:00
Sebastiaan Janssen 277b67ac84 Merge pull request #1029 from umbraco/temp-U4-7557
U4-7557 Support folders for import/export, packaging
2016-01-20 15:45:21 +01:00
Shannon fda3111e43 fixes nuget dll ref 2016-01-20 15:24:57 +01:00
Shannon 5c2bd5748d Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7
Conflicts:
	build/NuSpecs/UmbracoCms.Core.nuspec
2016-01-20 15:02:12 +01:00
Sebastiaan Janssen 348bee885e Finish last bit for U4-7683 2016-01-20 15:01:25 +01:00
Shannon dd5523de42 updates package dependency for MB 2016-01-20 14:55:56 +01:00
Shannon 4bb9dfb4c9 Ensure that the raw ct alias is passed in with additionaldata 2016-01-20 14:47:32 +01:00
Sebastiaan Janssen 5440353fb3 Merge pull request #1031 from umbraco/temp-U4-7683
Fixes: U4-7683 Search on Property Editors/Data Types in new Content Type Editor should display two results - resuse / available
2016-01-20 14:37:15 +01:00
Sebastiaan Janssen 9f365727e0 Bumps version 2016-01-20 14:10:31 +01:00
Sebastiaan Janssen df3e96e86a Merge remote-tracking branch 'origin/7.3.6' into dev-v7
# Conflicts:
#	build/NuSpecs/UmbracoCms.Core.nuspec
2016-01-20 14:09:40 +01:00
Sebastiaan Janssen 74d73cfe94 U4-7796 Get UrlRewritingNet from the official NuGet location
#U4-7796 Fixed
2016-01-20 13:57:35 +01:00
Shannon 1fd76731cd fixes merge issue, updates MB 2016-01-20 13:54:16 +01:00
Shannon 4e1e240f54 Merge remote-tracking branch 'origin/dev-v7' into temp-U4-7747
Conflicts:
	src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.controller.js
2016-01-20 13:38:17 +01:00
Shannon 85207b3d5c removes MB dependencies from Umbraco.Web proj, we don't want circular references and this is not required since MB can take care of injecting the server vars. 2016-01-20 13:37:47 +01:00
Shannon 8b80a22018 Merge branch 'temp-U4-7748' into temp-U4-7747 2016-01-20 13:32:40 +01:00
Shannon 9c58e82169 publicized required method for externally setting template markup, removes logic from core for this 2016-01-20 12:47:09 +01:00
Shannon 42fbcb6f41 Bumps version so that the MB core can reference updated code 2016-01-20 11:45:33 +01:00
Shannon 2571e5c683 Moves MB nuget reference to UmbracoCms nuget package - otherwise we have a circular nuget reference! 2016-01-20 11:40:53 +01:00
Mads Rasmussen c16aa5bbf0 Fixes: U4-7745 7.4 Property Editor & Keyboard Shortcuts 2016-01-20 11:35:46 +01:00
Sebastiaan Janssen dad0cf20eb Merge pull request #1035 from ig-ealbert/japanesev7
Added translations for v7 only entries
2016-01-20 11:23:01 +01:00
Shannon fe563b0828 adds AdditionalData to the event args so we can use that to check for specific keys/values when consuming events and maintain compatibility. 2016-01-20 11:19:04 +01:00
Sebastiaan Janssen 9e8821594a Merge remote-tracking branch 'origin/7.3.6' into dev-v7 2016-01-20 10:55:24 +01:00
Sebastiaan Janssen 7fb9d430a9 changes default upload limit to 50 mb 2016-01-20 10:54:43 +01:00
Shannon 76dd7f8909 changes default upload limit to 50 mb 2016-01-20 10:48:10 +01:00
Sebastiaan Janssen 7cd8ba13c0 U4-7781 Setting a user's start node causes YSOD
#U4-7781 Fixed
2016-01-20 10:45:40 +01:00
Shannon 9a0e85af10 Creates new CreateTemplateForContentType for use with the content type editor, I need to somehow add some additional information to the event raised there so that we can listen to that event in MB in order to create the default template markup. 2016-01-19 21:38:11 +01:00
bjarnef ee3131b63d Merge remote-tracking branch 'refs/remotes/umbraco/dev-v7' into dev-v7 2016-01-19 21:03:42 +01:00
ig-ealbert 00aed2b33d Added translations for v7 only entries 2016-01-19 14:58:48 -05:00
bjarnef 4fd7182388 Merge remote-tracking branch 'refs/remotes/umbraco/dev-v7' into dev-v7 2016-01-19 20:56:36 +01:00
Shannon 173f3cb32a ensures the default language has the correct build models translation 2016-01-19 19:58:48 +01:00
Shannon d0df31be8b Ensures the build models buttons work and are enabled for content types, media types and member types 2016-01-19 19:57:38 +01:00
Shannon e857b0a5f4 Updates the strange TypeFinder GetTypeByName method to use BuildManager by default. 2016-01-19 15:58:38 +01:00
Simon Busborg e5f5e16f9a Added ng-cloak to fix flickeren in http://issues.umbraco.org/issue/U4-7762
Fixes flickering in U4-7762 Move document or media briefly show error- and success placeholders + odd position of checkmark at root level
2016-01-19 15:17:39 +01:00
Simon Busborg e51ef64b66 Fixes: U4-7770 List view icon on content node not displayed properly 2016-01-19 14:54:37 +01:00
Simon Busborg 76ff12f681 Fixes: U4-7762 Move document or media briefly show error- and success placeholders + odd position of checkmark at root level 2016-01-19 14:54:37 +01:00
Shannon 068a08cfcd Merge remote-tracking branch 'origin/dev-v7' into temp-U4-7748 2016-01-19 14:48:36 +01:00
Shannon Deminick 329636abab Merge pull request #1032 from umbraco/temp-U4-7775
Fixes: U4-7775 Ctrl + S doesn't work in new document type editor
2016-01-19 14:47:11 +01:00
Shannon caef155805 U4-7748 Models Builder - needs to be in control of the models-out-of-date status 2016-01-19 14:46:19 +01:00
Mads Rasmussen ff876266cf Fixes: U4-7775 Ctrl + S doesn't work in new document type editor 2016-01-19 13:50:50 +01:00
Stephan 9f360c2b9b Fix test broken by PR #1027 2016-01-19 12:52:43 +01:00
Sebastiaan Janssen 0621019918 Adds .models extension for the zip release 2016-01-19 12:31:22 +01:00
Mads Rasmussen 28aa928655 add loader to overlay 2016-01-19 12:29:14 +01:00
Simon Busborg cff6a74f16 Merge pull request #1030 from umbraco/temp-U4-7524
Fixes: U4-7524 Markdown editor - doesn't save content changes after using buttons.
2016-01-19 12:21:13 +01:00
Simon Busborg 853bd3947b Merge branch 'markdowneditor-fix' of git://github.com/pynej/Umbraco-CMS into pynej-markdowneditor-fix
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/markdowneditor/markdowneditor.controller.js
2016-01-19 12:18:24 +01:00
Mads Rasmussen 9ea492f5b7 Fix tab indent 2016-01-19 11:51:49 +01:00
Mads Rasmussen 05044dc871 Fixes: U4-7683 Search on Property Editors/Data Types in new Content Type Editor should display two results - resuse / available 2016-01-19 11:49:52 +01:00
Shannon Deminick 19fae702a9 Merge pull request #1027 from umbraco/temp-u4-7754
U4-7754 - fix UmbracoViewPage with models
2016-01-19 11:18:51 +01:00
Sebastiaan Janssen 994ded8518 Merge remote-tracking branch 'origin/7.3.6' into dev-v7
# Conflicts:
#	build/NuSpecs/UmbracoCms.Core.nuspec
#	src/Umbraco.Web.UI/packages.config
2016-01-19 11:10:18 +01:00
Sebastiaan Janssen 1888888650 Update ImageProcessor, this time also in the nuspec file 2016-01-19 11:07:17 +01:00
Shannon db26eac99b Merge remote-tracking branch 'origin/dev-v7' into temp-U4-7557 2016-01-19 11:00:00 +01:00
Stephan a1b98b6e31 U4-7754 - fix UmbracoViewPage with models 2016-01-18 17:35:26 +01:00
Chris Perks 698617dc60 Added mock for externalLoginInfo, and dependency references required to run 'dev' Grunt task 2016-01-18 14:41:35 +00:00
Simon Busborg a6b7e26606 Fixes U4-7761 Typo on Allowed Templates label 2016-01-18 12:58:34 +01:00
Mads Rasmussen 2074df58fb Fixes: U4-7765 disable folder select + only allow images in grid image picker 2016-01-18 12:02:41 +01:00
Mads Rasmussen e6ab111f4d Fixes: U4-7676 Don't show "Reorder" link in initial row-view for grid 2016-01-18 11:29:23 +01:00
Simon Busborg c9936da37f Fixes U4-7759 Imagepicker setting in Grid broken in 7.4-beta2 2016-01-18 10:10:03 +01:00
Shannon 2aa5dfb3ec Merge branch '7.4.0' of https://github.com/umbraco/Umbraco-CMS into 7.4.0 2016-01-15 18:02:39 +01:00
Shannon 283b893128 hack until we fix template generation for when MB is disabled 2016-01-15 18:02:31 +01:00
Sebastiaan Janssen 1345c48e73 Require very latest version of ModelsBuilder 2016-01-15 17:38:31 +01:00
Shannon 2bc0f0c6b4 Merge branch 'dev-7.4.0-ModelsBuilder' of https://github.com/umbraco/Umbraco-CMS into dev-7.4.0-ModelsBuilder 2016-01-15 17:06:56 +01:00
Shannon 97d64f4f3d adds latest MB version 2016-01-15 17:06:22 +01:00
Sebastiaan Janssen dc17a20bb8 Adds required namespace + a fake class to make sure the namespace exists 2016-01-15 17:05:09 +01:00
Shannon c39b8f6eb5 Merge branch 'dev-7.4.0-ModelsBuilder' of https://github.com/umbraco/Umbraco-CMS into dev-7.4.0-ModelsBuilder 2016-01-15 16:56:49 +01:00
Shannon b776a32a64 fixes the models builder API controller URL 2016-01-15 16:54:38 +01:00
Sebastiaan Janssen c752c9e2bf Merge branch '7.4.0' into dev-7.4.0-ModelsBuilder 2016-01-15 16:24:30 +01:00
Sebastiaan Janssen d1cdff6349 Reference to System.Runtime is required
Release with a reference to ModelsBuilder
2016-01-15 16:24:14 +01:00
Sebastiaan Janssen 32ca5de20c Reference to System.Runtime is required 2016-01-15 16:23:37 +01:00
Sebastiaan Janssen 742e0d69fa Removes duplicate requestFiltering node in web.Template.config 2016-01-15 15:56:26 +01:00
Sebastiaan Janssen 9b28fd0e27 Merge branch '7.4.0' into dev-7.4.0-ModelsBuilder 2016-01-15 15:34:11 +01:00
Sebastiaan Janssen b36a73eecc Merge remote-tracking branch 'origin/dev-v7' into 7.4.0 2016-01-15 15:33:55 +01:00
Sebastiaan Janssen df266a202a Fix build and dependencies 2016-01-15 15:31:16 +01:00
Sebastiaan Janssen 49bafe51b7 Merge branch '7.4.0' into dev-7.4.0-ModelsBuilder 2016-01-15 15:24:39 +01:00
Sebastiaan Janssen 4a2b7447a9 Merge branch '7.4.0' of https://github.com/umbraco/Umbraco-CMS into 7.4.0 2016-01-15 13:48:14 +01:00
Sebastiaan Janssen f7676062ea Bumps version 2016-01-15 13:47:18 +01:00
Stephan 244d09068a Merge branch 'dev-7.4.0-ModelsBuilder' of https://github.com/umbraco/Umbraco-CMS into dev-7.4.0-ModelsBuilder 2016-01-15 13:11:53 +01:00
Stephan 99cf7a096c Import missing ModelsBuilder files 2016-01-15 13:11:34 +01:00
Shannon cee20e968f fixes csproj, should no longer reference Zbu DLL 2016-01-15 13:04:18 +01:00
Stephan fb1a72600e Upgrade to Umbraco.ModelsBuilder 2.2.0-beta002 2016-01-15 12:37:15 +01:00
Shannon Deminick efdeb757f6 Merge pull request #1023 from umbraco/temp-U4-7212
U4-7212 All new text for content type editor needs to be localized.
2016-01-15 12:05:38 +01:00
Shannon 4a30398499 fixes capitalisation 2016-01-15 12:04:29 +01:00
Shannon 2a905afe08 fixes translation files, removes duplicate and updates en_us 2016-01-15 12:03:03 +01:00
Shannon b79c7407e6 Removes unecessary promise wrapping for localizing, fixes localization service so that it's not double requesting and fixes how it deals with promise returns. 2016-01-15 11:49:29 +01:00
Shannon 8399906c9a Merge branch '7.4.0' into temp-U4-7212 2016-01-15 11:17:28 +01:00
Shannon 4ce4bd25c4 Fixes package installer and export - doesn't import any folders for child doc types, doesn't export folders for child doc types, ensures that parent doc types are added as compositions (this was never working) and changed the list<string> to hashset<string> so it's always unique. 2016-01-15 11:07:21 +01:00
Claus 72eaec0ff8 Merge remote-tracking branch 'origin/dev-v7' into 7.4.0
Conflicts:
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/config.controller.js
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.controller.js
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.html

Merged branch over and ignored changes since they are not compatible with the new grid and they have been implemented correctly in the 7.4.0 branch.
2016-01-15 10:34:20 +01:00
Mads Rasmussen 9e75a1821d Merge pull request #1024 from umbraco/temp-U4-6297
Fixes: U4-6297 Add Settings to Grid Controls
2016-01-15 10:22:49 +01:00
Mads Rasmussen 08e4f42974 do not show settings icon if there are no settings 2016-01-15 10:21:32 +01:00
Sebastiaan Janssen 0fbc0d5431 U4-7715 Update Gallery snippet for ImageCropper instead of the upload in 7.4.0
#U4-7715 Fixed
2016-01-15 10:19:35 +01:00
Claus 54e3f0f9ec Fixes: U4-6297 Add Settings to Grid Controls
Added settings to grid controls in v.7.4.
2016-01-15 10:04:49 +01:00
Shannon a468cb78c5 Merge remote-tracking branch 'origin/dev-v7' into 7.4.0 2016-01-14 19:56:43 +01:00
Shannon ce3028446b Moves all serialization logic, including the part for folders into the EntityXmlSerializer where it needs to be, updates the data type repo to ensure paths are udpated correctly when moving, removes folder logic from other packaging logic, it's purely the responsibility of the serializer. adds new methods to content type and data type services to return an entities total folder collection. 2016-01-14 19:33:53 +01:00
Shannon 73f1458190 Fixes the Move content type command to ensure that all paths are updated correctly. 2016-01-14 18:25:14 +01:00
Shannon 684788cb62 Merge remote-tracking branch 'origin/dev-v7' into temp-U4-7557 2016-01-14 18:12:09 +01:00
Shannon da9a2c59fc Merge remote-tracking branch 'origin/dev-v7' into 7.4.0 2016-01-14 17:40:36 +01:00
Claus 163f39b8be Merge remote-tracking branch 'origin/dev-v7' into 7.4.0
Conflicts:
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.html
2016-01-14 15:53:20 +01:00
Stephan 46f3d0c647 Merge branch '7.4.0' into dev-7.4.0-ModelsBuilder 2016-01-14 15:51:53 +01:00
Per Ploug cc8bb4c031 Fixes issue with Insert RenderSection
Reported by doug for training build
2016-01-14 15:37:24 +01:00
Mads Rasmussen b4bc0ca156 Fixes: RTE media picker 2016-01-14 14:07:46 +01:00
Simon Busborg 977369fb2d Danish translation for grid templates 2016-01-14 11:44:32 +01:00
Simon Busborg ed8847821d Added localizationService to user.controller 2016-01-14 11:44:32 +01:00
Simon Busborg bf3f482fe8 Danish translations 2016-01-14 11:44:32 +01:00
Mads Rasmussen 1489070afd start on danish translation 2016-01-14 11:44:31 +01:00
Mads Rasmussen 487d2c6ea1 localize property settings overlay 2016-01-14 11:44:31 +01:00
Mads Rasmussen c66a6bb06f localize list view checkbox text 2016-01-14 11:44:31 +01:00
Mads Rasmussen 4bb4ce0ef4 localize header 2016-01-14 11:44:31 +01:00
Mads Rasmussen b67b7c91a5 localize no compositions 2016-01-14 11:44:31 +01:00
Mads Rasmussen a7627e3482 fix save list view button 2016-01-14 11:44:31 +01:00
Mads Rasmussen 2e6621f31b fix key for umbChildSelector directive 2016-01-14 11:44:31 +01:00
Mads Rasmussen 8a07f47077 add localizationService as dependency on ysod overlay 2016-01-14 11:44:31 +01:00
Simon Busborg 5cefd9ad20 localize property validation 2016-01-14 11:44:31 +01:00
Simon Busborg 96db5a5be3 translation file for drop zone directive 2016-01-14 11:44:30 +01:00
Simon Busborg cdcadab68b localize overlay titles 2016-01-14 11:44:30 +01:00
Simon Busborg 67112b640c localized component views 2016-01-14 11:44:30 +01:00
Simon Busborg c9ad7659a8 localize components views 2016-01-14 11:44:30 +01:00
Simon Busborg cc1764dc88 Added localization for controllers (member, media and document types) 2016-01-14 11:44:30 +01:00
Simon Busborg 3888853a40 Added localization to controllers 2016-01-14 11:44:30 +01:00
Simon Busborg 397a9bffb2 localized documentypes, memberstypes and mediatypes, only controllers missing 2016-01-14 11:44:30 +01:00
Simon Busborg 5965552494 localized documenttypes 2016-01-14 11:44:30 +01:00
Simon Busborg f504a98bcd localized placeholders 2016-01-14 11:44:29 +01:00
Simon Busborg e47d72a51f Added localize to dialogs 2016-01-14 11:44:29 +01:00
Mads Rasmussen e334f669b8 localize member types create 2016-01-14 11:44:29 +01:00
Mads Rasmussen 679d9c1e0a translate media types create 2016-01-14 11:44:29 +01:00
Mads Rasmussen a3d9cbb5fd translate document type editor create dialog 2016-01-14 11:44:29 +01:00
Mads Rasmussen 30c928a734 fix localize bug with reorder and compositions button in content type editor 2016-01-14 11:44:29 +01:00
Mads Rasmussen 9a5f8c2899 start localizing content type editor 2016-01-14 11:44:29 +01:00
Shannon 6ae1806615 Merge branch '7.4.0' into dev-7.4.0-ModelsBuilder 2016-01-14 11:40:06 +01:00
Shannon 632cdac90b adds translations for content type editor to en_us 2016-01-14 11:36:12 +01:00
Shannon Deminick 4068c527bc Merge pull request #1019 from umbraco/temp-U4-7560
Fixes: U4-7560 Default member properties should not be editable
2016-01-14 11:29:56 +01:00
Shannon 58df51cbea fixes pascal case? 2016-01-14 10:52:33 +01:00
Shannon c2c350a517 Merge branch '7.4.0' into dev-7.4.0-ModelsBuilder
Conflicts:
	src/Umbraco.Web.UI/web.Template.config
	src/Umbraco.Web/Editors/ContentTypeControllerBase.cs
2016-01-14 10:37:14 +01:00
Mads Rasmussen b116a96058 Fixes: U4-7581 Why so curvy? 2016-01-14 09:52:55 +01:00
Claus b9cafa2016 Merge remote-tracking branch 'origin/dev-v7' into 7.4.0 2016-01-14 09:41:14 +01:00
Claus 1a8ae67dd1 Merge remote-tracking branch 'origin/dev-v7' into 7.4.0
Conflicts:
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/mediapicker/mediapicker.controller.js
2016-01-14 09:04:42 +01:00
Mads Rasmussen 88f63c7890 only set pointer events to none on search icon, so you can click back in content picker 2016-01-13 21:37:35 +01:00
Shannon Deminick 791c45e085 Merge pull request #1017 from umbraco/temp-deploy-29
deploy-29 - Sanitize UniqueId
2016-01-13 19:22:27 +01:00
Shannon afe2aeda1b Merge branch '7.4.0' into temp-deploy-29 2016-01-13 19:11:20 +01:00
Claus b9e7990b7c Fixes: U4-7560 Default member properties should not be editable
Added locked property to content type properties by alias.
Ensured built in member properties are locked in the editor.
Content type editor changes for supporting locked properties.
2016-01-13 18:43:06 +01:00
Shannon 8b2606f681 Merge remote-tracking branch 'origin/dev-v7' into 7.4.0
Conflicts:
	src/Umbraco.Web.UI/web.Template.config
2016-01-13 17:31:35 +01:00
Shannon dfa687e695 Merge remote-tracking branch 'origin/dev-v7' into 7.4.0
Conflicts:
	src/Umbraco.Web.UI/web.Template.config
2016-01-13 17:18:30 +01:00
Shannon Deminick b026245b3f Merge pull request #1007 from umbraco/temp-U4-7634
Temp u4 7634
2016-01-13 17:11:59 +01:00
Shannon 20f2773f38 removes the config option registered in the file 2016-01-13 17:09:55 +01:00
Shannon 88b8cfb2bd streamlines how the disabled check boxes work - will perform better too - fixes re-allowing the checkbox on refilter for ancestors. 2016-01-13 16:59:14 +01:00
Shannon 54669ee2bc Ensures you cannot move a child doc type, changes the result of GetAvailableCompositions to be a model instead of a tuple, the result also includes the current ancestor list which we can use to disable items in the list, makes these models/methods internal since they'll most likely be changing, 2016-01-13 16:25:35 +01:00
Shannon 6d5435c2e8 Merge branch '7.4.0' into temp-U4-7634 2016-01-13 14:49:37 +01:00
Shannon 1f245ec553 fixes alias validation when saving an existing contenttype 2016-01-13 14:48:19 +01:00
Shannon 17902712ac fixes merge/build 2016-01-13 14:44:17 +01:00
Per Ploug f4fc47c9cc Strongly Typed models: Always use DoctypeAlias in PascalCase 2016-01-13 14:43:06 +01:00
Per Ploug 7386afcce6 Doctype alias validation always fails
As it only checks if there is a doctype with the same alias, but does
not test if this doctype is the same as the one currently being saved.
2016-01-13 14:39:00 +01:00
Per Ploug 3698ad6164 Revert "Doctype validation on alias fails"
This reverts commit 3eab76494e.
2016-01-13 14:29:04 +01:00
Per Ploug 3eab76494e Doctype validation on alias fails
As it tests if there is a type with alias, but doesnt check if its
itself, validation will never pass after initial save.
2016-01-13 14:28:44 +01:00
Shannon 9dc57b0e37 Merge branch '7.4.0' into temp-U4-7634
Conflicts:
	src/Umbraco.Core/Services/ContentTypeServiceExtensions.cs
	src/Umbraco.Web.UI.Client/src/common/directives/components/umbgroupsbuilder.directive.js
	src/Umbraco.Web.UI.Client/src/views/common/overlays/contenttypeeditor/compositions/compositions.html
	src/Umbraco.Web/Editors/ContentTypeControllerBase.cs
2016-01-13 14:08:19 +01:00
Stephan 02e94f9243 deploy-29 - Sanitize UniqueId 2016-01-13 12:32:30 +01:00
Per Ploug 849d7c45e0 Fix merge conflicts 2016-01-13 12:18:14 +01:00
Shannon 94a1f7e078 Merge remote-tracking branch 'origin/dev-v7' into 7.4.0
Conflicts:
	src/Umbraco.Core/Persistence/Factories/PropertyGroupFactory.cs
2016-01-13 12:11:27 +01:00
Per Ploug cec1f6dae3 Merge remote-tracking branch 'refs/remotes/origin/7.4.0' into dev-7.4.0-ModelsBuilder
# Conflicts:
#	src/Umbraco.Web.UI/packages.config
#	src/Umbraco.Web/Editors/ContentTypeController.cs
2016-01-13 12:10:08 +01:00
Claus 79c05a129d Merge pull request #1009 from umbraco/temp-U4-7588
U4-7588 Conflicting compositions should not be allowed
2016-01-13 11:58:38 +01:00
Per Ploug 22c9f393a0 Update ModelsBuilder nuget reference 2016-01-13 11:45:40 +01:00
Shannon 3131096ffb Ensures that itself is never returned in the list, not even disabled (since you can never select yourself), ensures that any comp already selected is enabled for selection in the UI. 2016-01-13 11:33:46 +01:00
Mads Rasmussen 6d47d76199 Merge pull request #1012 from umbraco/temp-U4-7696-U4-7371
U4-7371 New Content type editor - Better validation when trying to create a new document/media/member type with the same name as an existing one
2016-01-13 10:58:39 +01:00
Shannon 2cc0df3a3c Merge branch '7.4.0' of https://github.com/umbraco/Umbraco-CMS into 7.4.0 2016-01-13 10:25:17 +01:00
Shannon 81ba2b8981 adds packaging test 2016-01-13 10:25:07 +01:00
Mads Rasmussen 03751edf40 Merge pull request #1016 from umbraco/temp-U4-7630
Fixes: U4-7630 Cannot save a document type when it has a date picker …
2016-01-13 10:23:31 +01:00
Mads Rasmussen f5f3126e44 move form outside directive to only disable validation in content type editor 2016-01-13 10:22:57 +01:00
Claus 646ab931b0 Clicking an image in the media picker opened by RTE, should select the image instead of showing details. 2016-01-12 21:58:37 +01:00
Claus 7fd3d58def Fixes: U4-7630 Cannot save a document type when it has a date picker required property with the new property type editor in 7.4
Directive for disabling validation on forms.
Passing on required validation from settings to textarea and textbox.
Wrapping property editor preview in disabled validation form.
2016-01-12 21:40:09 +01:00
Sebastiaan Janssen 6a6939d8c8 Merge pull request #1013 from umbraco/temp-U4-7578-2
Fixes: U4-7578 Can't pick folders in any media picker in 7.4 beta
2016-01-12 17:45:03 +01:00
Shannon Deminick 244eb08545 Merge pull request #1010 from umbraco/temp-U4-7557
U4-7557 Support folders for import/export, packaging
2016-01-12 16:17:14 +01:00
Mads Rasmussen aa7bf0a12e Fix folder selection in media library 2016-01-12 15:49:59 +01:00
Shannon 85178bbad8 Changes GetAvailableCompositeContentTypes to return a list of composite candidates and then whether they are actually allowed or not based on the filters. Updates the controllers response to be a list of which content types are allowed or not, updates the view accordingly, changes when the filtering happens so that it happens after the content type has been updated with new properties. 2016-01-12 15:44:37 +01:00
Shannon 06b7305d5b removes erroneous null check 2016-01-12 14:39:20 +01:00
Mads Rasmussen 6af28abcab media picker (selected items) add a but more contrast to folders, use flex box 2016-01-12 14:34:28 +01:00
Shannon f0b0cd1641 adds success checking to the CreateContentTypeContainer results, adds overload instead of optional parameter (breaking change), changes GetContainer(string folderName, int level) to return IEnumerable and changed name to GetContainers - since there could be multiple results for the same container name at a given level. 2016-01-12 14:32:45 +01:00
Sebastiaan Janssen 0686d0736a Merge branch '7.4.0' of https://github.com/umbraco/Umbraco-CMS into 7.4.0 2016-01-12 14:27:33 +01:00
Sebastiaan Janssen 43c174368a Merge remote-tracking branch 'origin/dev-v7' into 7.4.0
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/fileupload/fileupload.controller.js
2016-01-12 14:27:22 +01:00
Mads Rasmussen c295e53920 fix media grid in template editor - macro picker 2016-01-12 14:21:12 +01:00
Shannon Deminick 83d06bdbcf Merge pull request #994 from umbraco/temp-U4-7612
U4-7612 Properties Pane is empty when trying to add a new Property to…
2016-01-12 13:52:07 +01:00
Shannon 67994c630f fixes null checking and ensures that the current property type aliases are passed up when first launching the compositions dialog. 2016-01-12 13:46:18 +01:00
Shannon ee8405ccd0 fixes rebase/merge 2016-01-12 13:32:04 +01:00
Shannon 7389d343e4 adds more unit tests 2016-01-12 13:32:03 +01:00
Shannon f7b34c76f9 got the filtering all working - this ensures that no CTs are selectable if any current property type exists in one of them in the list and re-filters on each CT selection in the list to ensure no illegal comps can be created. 2016-01-12 13:32:02 +01:00
Shannon 32377b29b8 Have content type filtering working on the compositions list so a dev is not allowed to create an illegal composition - next we need to pass in the already existing property types to further ensure an illegal composition cannot be created. 2016-01-12 13:30:49 +01:00
Shannon Deminick a6df74e299 Merge pull request #1008 from umbraco/temp-U4-7639
Temp u4 7639
2016-01-12 13:25:51 +01:00
Shannon 74d8068de1 Ensures that 2 way binding occurs with the input field so that the outer generate alias updates the inner value and vice versa 2016-01-12 13:21:10 +01:00
Claus bbd6908af3 Ensuring you can create new document types in root.
Parsing result of webservice call as integer.
Ensuring the correct error messages are shown.
2016-01-12 13:06:33 +01:00
Shannon c819dabfc0 U4-7371 New Content type editor - Better validation when trying to create a new document/media/member type with the same name as an existing one & U4-7696 New content type editor - server side validation fails when creating new document type 2016-01-12 12:21:08 +01:00
Sebastiaan Janssen 2a3619e219 Fix merge problem that broke the build 2016-01-12 12:06:15 +01:00
Sebastiaan Janssen fc848e05ee Merge branch '7.4.0' of https://github.com/umbraco/Umbraco-CMS into 7.4.0 2016-01-12 11:39:33 +01:00
Sebastiaan Janssen 5a62713de4 Merge remote-tracking branch 'origin/dev-v7' into 7.4.0
# Conflicts:
#	src/Umbraco.Core/Umbraco.Core.csproj
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/integer/integer.html
2016-01-12 11:39:10 +01:00
Mads Rasmussen 61f6ee4436 fix tooltip so it does not get cut off by tree 2016-01-12 11:38:07 +01:00
Mads Rasmussen 87aeaa8afc set lower image max height and width + fix calculation, make use of values in html. 2016-01-12 11:35:36 +01:00
Mads Rasmussen 1bf470c0aa Merge pull request #1011 from umbraco/temp-U4-7578-3
Fixes: U4-7578 disable folder selection in rte and markdown editor
2016-01-12 10:52:11 +01:00
Claus c6a7678ae8 Fixes: U4-7578 Can't pick folders in any media picker in 7.4 beta
Dialog option for disabling folder select on media pickers.
Added the option to Markdown and RTE.
2016-01-12 10:36:21 +01:00
Claus b1f12ec864 Merge branch 'temp-U4-7578' into 7.4.0
Conflicts:
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts/grid/grid.html
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts/grid/grid.listviewlayout.controller.js
2016-01-12 10:01:03 +01:00
Sebastiaan Janssen 79f0e2563c Allows for creation of packages with folder structures for doctypes and datatypes and exporting document types with folder structures
Fixes installing packages while maintaining the exported folder structure
2016-01-11 22:01:05 +01:00
Shannon Deminick 759c925fa0 Merge pull request #1006 from umbraco/temp-U4-7694
Fixes: U4-7694 Make media folders work as list view and media items - click folder to select and click folder name to open
2016-01-11 18:34:00 +01:00
Sebastiaan Janssen c783900097 Support folders for package installs (for document types and data types) and imports for document types 2016-01-11 17:52:29 +01:00
Shannon e17c900beb fixes merge/rebase with latest other pr merge 2016-01-11 17:21:59 +01:00
Shannon b89d17914d fixes usage of model.contentType.availableCompositeContentTypes to use the availableCompositeContentTypes directly attached to the model. removes the FirstContentType property and adds simple content type service methods to count the doc type number, moves the request to get availableCompositeContentTypes to the dialog (where it's needed and so it's lazy) 2016-01-11 17:17:26 +01:00
Claus 6f6c2a3d90 changing bindings to be compatible with other PR. 2016-01-11 17:16:19 +01:00
Mads Rasmussen ce382c42c4 Fixes: U4-7639 show another message when first document type 2016-01-11 17:16:18 +01:00
Claus e016622fe3 Fixes: U4-7639 Misleading message on creating first document type and click on "compositions"
Added in FirstContentType property on object returned from GetEmpty to indicate whether this is the first content type being created or not (different error messages in backoffice).
2016-01-11 17:16:17 +01:00
Shannon Deminick 043fb99020 Merge pull request #996 from umbraco/temp-U4-7593
fixes: U4-7593 Removing a composite from an existing doctype - Need b…
2016-01-11 17:15:17 +01:00
Stephan b259b14629 TEMP add ModelsBuilder file to Core (will need to revert and use NuGet package) 2016-01-11 15:18:18 +01:00
Claus a09d576300 clean using. 2016-01-11 14:13:25 +01:00
Claus d06003b241 Removing unnecessary settings check. 2016-01-11 14:12:55 +01:00
Claus cb05f3fe03 Reverted changes no longer needed after work on inherited/nested doctypes.
Changed default to allow inherited doctypes.
2016-01-11 14:04:03 +01:00
Claus ffa7a1457a Merge branch '7.4.0' into temp-U4-7634
Conflicts:
	src/Umbraco.Web/Editors/ContentTypeControllerBase.cs
2016-01-11 13:46:20 +01:00
Mads Rasmussen 05c8e10ef8 set disabled state on compositions in overlay + a little bit of restyling 2016-01-11 12:07:39 +01:00
Claus f62920dc47 Removed adding compositions from parents as this breaks core functionality.
Ignoring property in mappings where it isnt needed.
Updating the LockedCompositionsResolver to get parent and use path instead of trying to use path which can be null on GetEmpty.
2016-01-11 12:07:38 +01:00
Claus 3676de0fe8 Reverting code to add additional meta data on compositions.
Added locked compositions to content type object.
Changed UI to use the lockedCompositeContentTypes instead.
2016-01-11 12:07:36 +01:00
Claus 4db1599bcb Null checks for when using folders.
Updated tree menu items.
2016-01-11 12:07:35 +01:00
Claus a7212f6b60 Changing config setting to the default.
Referencing wrong config element.
2016-01-11 12:07:34 +01:00
Claus 6650a72c79 Pass along parentId when getting available compositions since we need it to get available compositions when creating the empty scaffolding.
Include ancestors in the list of compositions.
Mark ancestors as disabled/locked.
2016-01-11 12:07:33 +01:00
Claus 08c4dede08 Output disabled class in backoffice. 2016-01-11 12:07:32 +01:00
Claus 0d37357376 Mark compositions coming from parents with metadata.
Ensure metadata is not ignored.
2016-01-11 12:07:31 +01:00
Claus 7a1f4b6b4b include parents as compositions. 2016-01-11 12:06:39 +01:00
Claus 5360bcff52 context menu for creating child doctype. 2016-01-11 12:06:37 +01:00
Claus e509099cdb Setting for enabling inherited documenttypes. 2016-01-11 12:06:35 +01:00
Claus 81395169ba line endings 2016-01-11 12:02:33 +01:00
Mads Rasmussen cd4db879b7 better function names 2016-01-11 11:21:35 +01:00
Mads Rasmussen fdc654058c Fixes: U4-7694 Make media folders work as list view and media items - click folder to select and click folder name to open 2016-01-11 11:12:53 +01:00
Simon Busborg 323257a0bf Merge pull request #1005 from umbraco/temp-U4-7568
Fixes: U4-7568 Only set focus on header name input when creating new node
2016-01-11 09:10:05 +01:00
Mads Rasmussen f9fa81bf13 only focus editor name when empty - new nodes 2016-01-10 19:23:22 +01:00
Mads Rasmussen e20a152e4f Fix bug where editor name was not always focused 2016-01-10 19:22:44 +01:00
Mads Rasmussen 16e79c98a6 Merge pull request #1003 from umbraco/temp-U4-7638
Fixes: U4-7638 Make larger area of tree node clickable
2016-01-10 13:21:44 +01:00
Mads Rasmussen bf06e1e1e8 Fixes: U4-7674 Fixed header for doc type "Compositions" and "Reorder" links 2016-01-09 22:00:19 +01:00
Mads Rasmussen 7d49c49bab Fixes: U4-7651 Hide button spinner, when validation errors occur for datatype 2016-01-09 20:53:56 +01:00
Mads Rasmussen d4a1eea8e5 Fixes: U4-7575 Deselecting items in the MNTP are not deselected 2016-01-09 20:49:54 +01:00
Simon Busborg a6cf13d835 Positioned loader under tree-item 2016-01-08 13:10:04 +01:00
Shannon 273d2e2a2b Merge branch 'temp-U4-7635' into 7.4.0 2016-01-08 12:29:35 +01:00
Shannon 4cb523fb66 Added tests for ContentTypeServiceExtensions 2016-01-08 12:29:11 +01:00
Simon Busborg e731831658 Fixes: U4-7638 Make larger area of tree node clickable 2016-01-08 11:41:17 +01:00
Mads Rasmussen d1059c9dbe Merge pull request #986 from umbraco/temp-U4-7619
U4-7619
2016-01-08 11:34:33 +01:00
Mads Rasmussen 14db03e718 set min size on media, set background pattern on media to make cleaner grid, streamline media library and media picker select functionality with list view. 2016-01-08 10:12:02 +01:00
Mads Rasmussen 5dbda59f9d Merge pull request #1001 from umbraco/temp-U4-7564
Fixes: U4-7564 "Save and publish" button menu skewed [7.4.0-beta]
2016-01-07 21:35:02 +01:00
Mads Rasmussen e64f0fc5c5 Fixes: U4-7654 Recycle bin now display a input instead of a readonly heading 2016-01-07 21:10:04 +01:00
Shannon 02b6f94a1b moves the current logic into a re-usable ext method 2016-01-07 19:46:22 +01:00
Simon Busborg 896eda1022 Fixes firefox bug where it ignores inline elements width 2016-01-07 12:58:28 +01:00
Simon Busborg 4139972f72 Fixes: U4-7564 "Save and publish" button menu skewed [7.4.0-beta]
So I tested it on a Surface and got the same result as you. We get this "bug" because of how bootstrap handles dropdowns on mobile/tablets. Bootstrap detect Suface as a tablet, and therefor pushed an element to the DOM called `dropdown-backdrop`. Disabling this will fix the "bug". But we need to be aware of this taken from http://getbootstrap.com/javascript/

>''"On mobile devices, opening a dropdown adds a `.dropdown-backdrop` as a tap area for closing dropdown menus when tapping outside the menu, a requirement for proper iOS support. This means that switching from an open dropdown menu to a different dropdown menu requires an extra tap on mobile."''

Since it's a very old Bootstrap we're using I took the liberty to just add `.btn-group .dropdown-backdrop` `display: none` so that the element wouldn't appear in the DOM anymore.
2016-01-07 11:20:13 +01:00
Mads Rasmussen 2f6cfaf99c prevent save when an overlay is open 2016-01-07 09:49:13 +01:00
Mads Rasmussen 2a0287f5ad Fixes: U4-7653 List view - input types 2016-01-06 19:29:30 +01:00
Mads Rasmussen 7cb4a47f3e Fixes: U4-7653 List view - can't remove custom layouts 2016-01-06 19:00:23 +01:00
Sebastiaan Janssen 20720cdb28 Merge branch 'dev-v7' into 7.4.0 2016-01-06 15:59:51 +01:00
Sebastiaan Janssen 37baeec8a9 Merge branch 'dev-v7' into 7.4.0
# Conflicts:
#	src/Umbraco.Core/Services/PackagingService.cs
2016-01-06 15:23:47 +01:00
Mads Rasmussen 7b33f85a5d fixes: U4-7593 Removing a composite from an existing doctype - Need better UI/error reporting (your data goes with it!) 2016-01-06 15:15:50 +01:00
Sebastiaan Janssen aa6897bfa7 Merge branch 'dev-v7' into 7.4.0
# Conflicts:
#	src/Umbraco.Core/Services/PackagingService.cs
2016-01-06 15:00:44 +01:00
Sebastiaan Janssen f1414ae000 Merge pull request #995 from umbraco/temp-U4-7553
Fixes: U4-7553 Importing Document Type doesn't respect property sort order
2016-01-06 14:50:21 +01:00
Claus 378479b4c1 Fixes: U4-7553 Importing Document Type doesn't respect property sort order
Handling sortOrder property in both import/export.
2016-01-06 14:48:37 +01:00
Sebastiaan Janssen 649679cb30 U4-7612 Properties Pane is empty when trying to add a new Property to a new or existing Document Type 2016-01-06 14:24:53 +01:00
Sebastiaan Janssen 701dea5de7 Merge pull request #969 from umbraco/temp-U4-7591
U4-7591 File cleanup for old editor 'tasks' and 'create' dialogs
2016-01-06 13:43:14 +01:00
Shannon 5767cea8f2 fixes build/merge 2016-01-06 12:58:05 +01:00
Shannon 4e3cf6c608 Merge remote-tracking branch 'origin/dev-v7' into 7.4.0
Conflicts:
	src/Umbraco.Core/ObjectExtensions.cs
	src/Umbraco.Tests/PropertyEditors/PropertyEditorValueEditorTests.cs
	src/Umbraco.Web/Editors/ContentTypeController.cs
	src/Umbraco.Web/Models/Mapping/TabsAndPropertiesResolver.cs
2016-01-06 12:54:19 +01:00
Shannon Deminick 3cec0c3b43 Merge pull request #993 from umbraco/temp-U4-7655
Fixes: U4-7655 PropertyValueEditor tests failing
2016-01-06 12:26:38 +01:00
Claus b1b7598e3c code cleanup. 2016-01-06 12:17:30 +01:00
Claus b4ca4917cc Updating Double and Single conversion (where NormalizeNumberDecimalSeparator is also used) to include CurrentUICulture. 2016-01-06 12:12:29 +01:00
Shannon 4838bf62f7 Merge remote-tracking branch 'origin/dev-v7' into 7.4.0 2016-01-06 12:01:12 +01:00
Claus b5fb82e934 Fixes: U4-7655 PropertyValueEditor tests failing
Passing in CurrentUICulture to TryParse method, since it is also used for the normalization part.
NumberStyles.Number is the default parameter used by the other TryParse overload so should be good to use here too.
2016-01-06 12:01:01 +01:00
Shannon a2b0f6f7f9 removes erroneous reverse call 2016-01-06 11:59:09 +01:00
Shannon Deminick c6481f853c Merge pull request #991 from umbraco/temp-U4-7556
Temp u4 7556
2016-01-06 11:40:28 +01:00
Shannon dca6f2b42a fixes build 2016-01-06 10:47:58 +01:00
Shannon b0060a9592 Merge remote-tracking branch 'origin/dev-v7' into 7.4.0
Conflicts:
	build/InstallGit.cmd
	build/UmbracoVersion.txt
	src/SolutionInfo.cs
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/Umbraco/config/lang/nb.xml
	src/Umbraco.Web/Editors/DataTypeValidateAttribute.cs
	src/Umbraco.Web/Security/Identity/UmbracoBackOfficeCookieAuthOptions.cs
	src/Umbraco.Web/WebServices/SaveFileController.cs
2016-01-06 10:46:38 +01:00
Claus f1cc32771e Using constants instead of -1. 2016-01-06 10:31:21 +01:00
Claus bfa9c80ed6 Added null checks for elements on import. 2016-01-06 10:27:39 +01:00
Claus 2dcb9c93f7 Dropped these null checks to avoid serializing invalid objects. 2016-01-06 10:26:09 +01:00
Claus e49033a602 Added import document type option to context menu on root node. 2016-01-06 09:44:12 +01:00
Claus e489cffa3d Removed unused namespaces and cleanup. 2016-01-06 09:26:58 +01:00
Claus 83963003f9 Ensures XML serializer doesn't fail when trying to serialize null properties.
Some properties can now be nulls instead of string.Empty when using the new content type editor.
2016-01-06 09:25:15 +01:00
Claus 2bdea2ef30 Fixes: U4-7556 Export/import document types isn't available in 7.4
Added in export to context menu on document types using the legacy dialog.
2016-01-06 09:23:55 +01:00
Simon Busborg ac653e7f6d Fixes: U4-7636 Change re-use back to Reuse 2016-01-05 15:35:42 +01:00
Simon Busborg 2dc2199390 Added bold font in search fields to support new font heirachy 2016-01-05 15:29:15 +01:00
Claus bfc7cbccc1 Merge pull request #988 from umbraco/temp-U4-7584
Fixes: U4-7584 can't preview any content due to external google font
2016-01-05 13:08:37 +01:00
Simon Busborg 44014fea70 Fixes: U4-7584 can't preview any content due to external google font 2016-01-05 11:49:30 +01:00
Mads Rasmussen cd66bbfb0f Fixes: U4-7629 Help-dialog doesn't open, when user-dialog is open 2016-01-05 11:46:02 +01:00
Claus 69233fbead Merge pull request #987 from umbraco/temp-U4-7590
Fixes: U4-7590 List view layout cookie: Change to use local storage a…
2016-01-05 09:43:54 +01:00
Simon Busborg 5f4309d2ca Fixes: U4-7590 List view layout cookie: Change to use local storage and clean up entry if its back to default layout. 2016-01-05 09:23:27 +01:00
Claus 3a4f0f4c11 Fixes: U4-7624 Datepicker Sql server error
Since we are not saving the formatted value, don't try parsing the date with formatting config.
Added in explicit parsing format compatible with the one used when saving the value, just to ensure parsing is done the same way.
2016-01-04 11:56:59 +01:00
Simon Busborg deb1f2f343 Fixes: U4-7337 Change Wording in Doctype Editor 2016-01-04 11:18:34 +01:00
Simon Busborg 460f0e7528 Fixes: U4-7607 Listview jump a few pixels down, when selecting items 2016-01-04 10:20:18 +01:00
Simon Busborg dd72f2fe3a Fixes: U4-7625 Rounded corners for datepicker dialog 2016-01-04 10:11:04 +01:00
Simon Busborg d78428213e Fixed: U4-7626 Ensure consistency in context menu items 2016-01-04 10:04:37 +01:00
Simon Busborg 101c5e63a9 Fixes: U4-7606 Set focus on input when clicking search icon 2016-01-04 10:00:16 +01:00
Rune Hem Strand 12e98fb54e Fixes U4-7619
Allows for correct aspect ratio when resizing a crop
2015-12-30 14:16:00 +01:00
Per Ploug 88f6722b9d ContentType EditController typo 2015-12-30 10:40:48 +01:00
Per Ploug 6245c0408b Default settings for models builder
Livemodels enabled, dlls models disabled, views/web.config includes the
models namespace
2015-12-30 09:57:13 +01:00
Per Ploug 6763e93af3 Cleanup of default template code
Moves it to the ViewHelper instead of inside of contenttypecontroller
2015-12-30 09:56:09 +01:00
Shannon 074dfc7e29 Adds Models Builder to nuspec, fixes build error 2015-12-29 12:29:36 +01:00
Shannon 1040700bfd Merge branch '7.4.0' into dev-7.4.0-ModelsBuilder
Conflicts:
	src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.controller.js
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web/Editors/ContentTypeController.cs
2015-12-29 11:26:15 +01:00
Alexander Bryukhov 6a1b8f00eb Correcing one key translation 2015-12-28 23:47:28 +06:00
Alexander Bryukhov 4574e4291b Missed keys 2015-12-28 23:45:15 +06:00
Alexander Bryukhov aae15bf0b4 ru.xml - UI lang file
Added / updated keys for 7.4
2015-12-28 23:40:15 +06:00
Alexander Bryukhov ae85b7bf2b Nodes sort dialog - adding date formats
Adding dates processing for 'dd.MM.yyyy' formats
2015-12-28 23:00:08 +06:00
Shannon 66ae47443a Merge branch 'temp-U4-7569' into 7.4.0 2015-12-28 10:37:32 +01:00
Shannon Deminick 198033ff22 Merge pull request #974 from umbraco/temp-U4-7569
Temp u4 7569
2015-12-28 10:36:18 +01:00
Shannon c6dbb0f7fa reverts member tree order 2015-12-28 10:35:54 +01:00
Shannon 5eff065835 Merge remote-tracking branch 'origin/dev-v7' into 7.4.0 2015-12-28 10:19:24 +01:00
Mads Rasmussen c11b09d2d6 Merge pull request #975 from umbraco/temp-U4-7573
Fix for http://issues.umbraco.org/issue/U4-7573
2015-12-23 11:11:10 +01:00
Mads Rasmussen c7e9e99373 Merge pull request #978 from umbraco/temp-U4-6854
Fix for http://issues.umbraco.org/issue/U4-6854
2015-12-23 09:53:53 +01:00
Mads Rasmussen 292887d9eb Merge pull request #967 from umbraco/temp-U4-7571
Fix for http://issues.umbraco.org/issue/U4-7571
2015-12-23 09:35:29 +01:00
Simon Busborg 7a112c43d8 Fix for http://issues.umbraco.org/issue/U4-6854
Grid editor - insert control: Make blue area clickable
2015-12-22 20:05:29 +01:00
Jeremy Pyne 9dbdae3b90 Added Markdown package and code to MarkdownEditorValueConverter to automatically convert the markdown text to Html when rendered in the front end. 2015-12-22 11:49:13 -05:00
Jeremy Pyne 9649e6d9bf Add code to manually update the model. 2015-12-22 11:17:53 -05:00
Jeremy Pyne 0d7363af23 Fix for MarkdownEditor no seeing changes from button clicks. 2015-12-22 10:47:04 -05:00
Shannon c470df783c U4-7591 File cleanup for old editor 'tasks' and 'create' dialogs 2015-12-22 16:27:50 +01:00
AndyButland b52c480da3 Added IPublishedContent extension method for filtering nodes based on composition alias
Created unit test for IsComposedOf
2015-12-22 16:27:12 +01:00
Simon Busborg 552cbada88 Fix for http://issues.umbraco.org/issue/U4-7573 2015-12-22 15:07:57 +01:00
Shannon Deminick 7883a3720b Merge pull request #964 from umbraco/temp-U4-6890
U4-6890 New content type editor: Missing sorting of properties from s…
2015-12-22 15:04:47 +01:00
Mads Rasmussen bb5812ba54 remove front-end sorting of properties in content types 2015-12-22 14:46:57 +01:00
Simon Busborg a0c552d289 Moved media "remove file" and "Choose file" on one line. UI Sugar 2015-12-22 14:26:52 +01:00
Mads Rasmussen 8eb3122409 remove fadeOut class from load indicator directive to make in animate more than once 2015-12-22 14:08:31 +01:00
Mads Rasmussen 89e2bb1d0a Fixes: U4-7569 Listview should not loose focus after filtering and U4-7582 When searching in media with no results, show a no results message + make empty state directive 2015-12-22 14:07:12 +01:00
Shannon Deminick 41879e28ef Merge pull request #971 from umbraco/temp-U4-7567
Fix for http://issues.umbraco.org/issue/U4-7567
2015-12-22 11:26:05 +01:00
Simon Busborg 2bf83c2cce Added proper hierachy to intro screen 2015-12-22 10:46:21 +01:00
Simon Busborg 42db79bdf6 Added .btn-link -underline for dashboard links, removed global link styling from umb-dashboard-control
Added .btn-link -underline to dashboards
2015-12-22 10:39:49 +01:00
Shannon Deminick bb44a7833f Merge pull request #970 from umbraco/temp-U4-7566
Fix for http://issues.umbraco.org/issue/U4-7566
2015-12-22 10:12:01 +01:00
Simon Busborg e77e0c6704 added posibility to use border radius variables 2015-12-21 15:52:13 +01:00
Simon Busborg f5fc4eacd4 Fix for http://issues.umbraco.org/issue/U4-7566# 2015-12-21 15:33:20 +01:00
Simon Busborg 0ba9054412 Removed border-radius 2015-12-21 15:25:22 +01:00
Simon Busborg 9bbaf4a20e Removed rounded corners on elements 2015-12-21 15:21:11 +01:00
Shannon f3f70a3243 U4-7591 File cleanup for old editor 'tasks' and 'create' dialogs 2015-12-21 15:19:15 +01:00
Mads Rasmussen 6a9f6bc91b make it possible to select folders in media picker, fix issue with deselecting image in some cases + a bit code clean up. 2015-12-21 14:48:46 +01:00
Simon Busborg 8e3b6ffd59 added blue hover state 2015-12-21 12:38:22 +01:00
Simon Busborg 4a660433de Removed hover state 2015-12-21 12:37:21 +01:00
Simon Busborg 3a640c7a78 Added hover state 2015-12-21 12:32:15 +01:00
Simon Busborg 632bccb9dd Added new mediapicker ui for consistency through the backoffice, removing text-decoration problem 2015-12-21 12:22:14 +01:00
Shannon b13b4953c3 U4-6890 New content type editor: Missing sorting of properties from server 2015-12-21 10:37:54 +01:00
Simon Busborg 8008a3b7c5 Fix for http://issues.umbraco.org/issue/U4-7574 2015-12-18 11:22:40 +01:00
Simon Busborg da02b1330c Fix for http://issues.umbraco.org/issue/U4-7572 2015-12-18 10:33:22 +01:00
Sebastiaan Janssen cdce2a1180 Bump version 2015-12-17 14:27:37 +01:00
Mads Rasmussen 8830faedfd remove gradient from orange buttons 2015-12-17 14:19:34 +01:00
Mads Rasmussen 087ad2e1fa grid: remove the + from add content button 2015-12-17 14:01:33 +01:00
Mads Rasmussen 549881bfb7 Merge pull request #961 from umbraco/temp-U4-7551
U4-7551 New Content type editor dialog to select an editor for a prop…
2015-12-17 13:18:39 +01:00
Mads Rasmussen afd5b2e8d3 fix missing eventService injection 2015-12-17 12:38:31 +01:00
Mads Rasmussen c7ac6e5e70 Loading grouped datatypes when reusing in content type editor. Create new data type from available editor, get data type from reuse. 2015-12-17 12:32:18 +01:00
Shannon 4bd1cb0a3c Merge branch '7.4.0' of https://github.com/umbraco/Umbraco-CMS into 7.4.0 2015-12-17 11:33:18 +01:00
Shannon 887bbdc3b0 dont' set applicationcontext to null on dispose for request based lifespan instances since applicationcontext is a singleton lifespan. 2015-12-17 11:32:50 +01:00
Mads Rasmussen 6d30c89757 fix merge conflict 2015-12-17 11:20:40 +01:00
Shannon 62db58110a re-reverts GetGroupedPropertyEditors and adds GetGroupedDataTypes 2015-12-17 11:13:49 +01:00
Claus 1655749c5d Merge branch 'temp-U4-7549' into 7.4.0
Conflicts:
	src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.controller.js
2015-12-17 10:41:44 +01:00
Shannon c18ed7fa36 reverts the GetGroupedPropertyEditors method to return the data type definition for a property editor if it has no pre-values and is defined as a data type 2015-12-17 10:35:44 +01:00
Stephan 0df4949b82 Merge pull request #960 from umbraco/temp-deploy-31
deploy-31 Implement DB changes for Umbraco Deploy
2015-12-17 10:28:11 +01:00
Mads Rasmussen 87109b0747 rename umb-list-view directive to umb-list-view-settings. Because the other was just confusing 2015-12-17 10:17:34 +01:00
Simon Busborg d89defe23b Added correct cursors to elements that can be moved in the grid 2015-12-17 09:03:48 +01:00
Mads Rasmussen e16a1a2459 content type editor: switch settings and remove buttons to follow same convention as grid + fix small html bug. 2015-12-16 20:04:23 +01:00
Mads Rasmussen 48c963985a Hide editor sub headers in content type property preview. This will prevent it from scrolling down on long content types (and look weird) 2015-12-16 20:01:29 +01:00
Mads Rasmussen 57d78aac70 remove before stop event in grid sorting. The code doesn't work and it makes an js error in Edge which makes sorting fail. 2015-12-16 19:58:17 +01:00
Mads Rasmussen 5ec5afd16f Fixes: U4-7554 Compositions are not loaded in media types + move icon converter for composition to prevent js error 2015-12-16 19:51:25 +01:00
Shannon 9bff31c24a adds table create tests 2015-12-16 17:33:45 +01:00
Shannon e61db40907 Changes to use a composite key for UmbracoDeployDependency 2015-12-16 17:31:38 +01:00
Shannon fcbac0138a U4-7549 For new installs make the Image use the image cropper instead of upload
Also fixes issue with media type editor which was a bug resulting fromn(U4-6837)
2015-12-16 17:23:50 +01:00
Sebastiaan Janssen a0ac0b55d0 Update trees transform with new aliases and sorting, also re-ordered member tree to have member types first, think that was the intention 2015-12-16 17:02:10 +01:00
Shannon 07533e0145 U4-7551 New Content type editor dialog to select an editor for a property type needs the "Default" and "Reuse" tab functionality changed
Removes unused/non-required methods from data type controller/service.
2015-12-16 16:51:12 +01:00
Shannon Deminick 9cc57479da Merge pull request #957 from umbraco/temp-U4-7186
Fixes: U4-7186 Go through the remaining dialogs and check for consistency
2015-12-16 16:35:02 +01:00
Shannon 790727e952 Fixes reference to new data type tree alias "dataTypes" (breaking because of U4-7150) 2015-12-16 16:19:16 +01:00
Shannon 121d8c0279 Fixes reference to new member type tree alias "memberTypes" (breaking because of U4-7150) 2015-12-16 16:18:11 +01:00
Shannon 37a8cf7069 Removes unecessary items in the UI.xml file 2015-12-16 16:16:34 +01:00
Shannon a2e64b3485 Fixes reference to new document type tree alias "documentTypes" (breaking because of U4-7150) 2015-12-16 16:16:21 +01:00
Shannon ea86c8bcff Fixes reference to new member group tree alias "memberGroups" (breaking because of U4-7150) 2015-12-16 16:07:56 +01:00
Shannon 8260c12d64 deploy-31 Implement DB changes for Umbraco Deploy 2015-12-16 14:07:09 +01:00
Claus 2729069b00 Merge pull request #959 from umbraco/temp-U4-7477
U4-7477 xss char stripping on data type names is being too agressive
2015-12-16 14:01:12 +01:00
Claus 20c48a2daf Merge pull request #956 from umbraco/temp-U4-7538
U4-7538 GetRemainingTimeoutSeconds is double setting the cookie in 7.4
2015-12-16 13:42:54 +01:00
Sebastiaan Janssen 38e0a6e1bf Merge branch '7.4.0' of https://github.com/umbraco/Umbraco-CMS into 7.4.0 2015-12-16 13:00:34 +01:00
Sebastiaan Janssen 7e5ffdf0ca Update in case people have 64bit git installed 2015-12-16 13:00:28 +01:00
Sebastiaan Janssen 96b33cb071 Merge branch 'temp-U4-7365' into 7.4.0 2015-12-16 12:59:55 +01:00
Shannon bdc7837f63 U4-7477 xss char stripping on data type names is being too agressive 2015-12-16 12:58:23 +01:00
Claus 7cf1491661 Merge branch 'temp-U4-6837' into 7.4.0
Conflicts:
	src/Umbraco.Web.UI/umbraco/controls/ContentTypeControlNew.ascx.cs
2015-12-16 12:32:16 +01:00
Shannon aa91b5c68d Merge remote-tracking branch 'origin/dev-v7' into 7.4.0 2015-12-16 11:06:37 +01:00
Sebastiaan Janssen c3f309c146 Merge branch '7.4.0' into temp-U4-7365 2015-12-16 10:25:19 +01:00
Sebastiaan Janssen f00d89616a Merge branch 'temp-U4-7448' into 7.4.0 2015-12-15 17:17:54 +01:00
Shannon 3f796791cc uses the main property value instead of the param 2015-12-15 17:17:11 +01:00
Sebastiaan Janssen 5b825bdeae Merge branch '7.4.0' into temp-U4-7448
Conflicts:
	src/Umbraco.Web.UI/umbraco/config/lang/no.xml
2015-12-15 17:16:15 +01:00
Sebastiaan Janssen d87dd67c08 Merge branch '7.4.0' of https://github.com/umbraco/Umbraco-CMS into 7.4.0 2015-12-15 17:12:59 +01:00
Sebastiaan Janssen 581027172f Merge branch 'temp-7134' into 7.4.0 2015-12-15 17:12:24 +01:00
Shannon b74cab6f0b U4-7538 GetRemainingTimeoutSeconds is double setting the cookie in 7.4 2015-12-15 16:56:31 +01:00
Sebastiaan Janssen f2e37abb22 Merge branch '7.4.0' into temp-7134 2015-12-15 16:47:54 +01:00
Sebastiaan Janssen 46e7112abd Merge pull request #955 from umbraco/temp-U4-7537
U4-7537 File cleanup for old content type editor
2015-12-15 16:08:11 +01:00
Sebastiaan Janssen cdeb82e7cc Merge branch '7.4.0' of https://github.com/umbraco/Umbraco-CMS into 7.4.0 2015-12-15 15:42:50 +01:00
Sebastiaan Janssen d123967b14 Merge branch 'dev-v7' into 7.4.0
Conflicts:
	src/Umbraco.Web.UI/umbraco/config/lang/no.xml
2015-12-15 15:31:47 +01:00
Mads Rasmussen 5d4f4376dd make overlay component of rich text editor link picker in property editor and grid editor 2015-12-15 15:26:07 +01:00
Mads Rasmussen 80675eee75 use new overlay component in tree picker prevalue editor 2015-12-15 15:26:07 +01:00
Mads Rasmussen 7d31bc9d35 make it easier to use itempicker and iconpicker - use submit method to submit instead of custom method - add overlay option to hide submit button. Clean up code by removing close method. 2015-12-15 15:26:07 +01:00
Mads Rasmussen a08566c04c fix media, macro and embed overlays in rte in grid 2015-12-15 15:18:33 +01:00
Mads Rasmussen fe7f73ff57 setup global ysod overlay + change error model 2015-12-15 15:18:33 +01:00
Simon Busborg 41b5ab697f Correct indention for umb-overlay 2015-12-15 15:18:33 +01:00
Simon Busborg b464637f98 Removed hardcoded text for testing 2015-12-15 15:18:33 +01:00
Simon Busborg e027689171 Added new styling standard for dialog title 2015-12-15 15:18:32 +01:00
Rune Strand fc0fe61c2f Add ysodOverlay to listview and localized dialog buttons 2015-12-15 15:18:32 +01:00
Mads Rasmussen 78e1356c03 update rich text editor to use new macro picker overlay 2015-12-15 15:18:32 +01:00
Mads Rasmussen 4dd8ab227b update grid macro picker to use new overlay component 2015-12-15 15:18:32 +01:00
Mads Rasmussen 227c6d8cb1 copy insert macro dialog to new macro picker overlay + update macro container property editor 2015-12-15 15:18:32 +01:00
Mads Rasmussen 9eefe17331 make global class for empty state texts - use in compositions dialog + list view 2015-12-15 15:18:31 +01:00
Mads Rasmussen 874da20288 user new media picker overlay component in grid image picker config 2015-12-15 15:18:31 +01:00
Mads Rasmussen a9411aa246 change grid items settings dialog to new overlay component 2015-12-15 15:18:31 +01:00
Shannon 727fd3aa17 U4-7537 File cleanup for old content type editor 2015-12-15 15:12:22 +01:00
Mads Rasmussen cfbfa2f5c9 umb-overlay: block styling of form elements 2015-12-15 15:06:45 +01:00
Mads Rasmussen e163fefd7d use new media picker component in grid media picker 2015-12-15 15:06:45 +01:00
Mads Rasmussen dc59b5b674 rename "rteembed" to "embed", save data to other property, add changes to tinymce + use new overlay component in grid embed 2015-12-15 15:06:45 +01:00
Mads Rasmussen 778522cad7 add copy of user dialog and help dialog for new overlay component 2015-12-15 15:06:45 +01:00
Mads Rasmussen ea3942f151 umb-overlay: add support for left side positioned dialogs 2015-12-15 15:06:45 +01:00
Mads Rasmussen 7ed9e9e665 decrease umb-overlay subtitle font size a bit 2015-12-15 15:06:45 +01:00
Mads Rasmussen 2302bb5438 umb-overlay: remove close from header + add support for a subtitle 2015-12-15 15:06:45 +01:00
Mads Rasmussen 74636c7d5a Fixes: U4-7490 Update umb-photo-folder to use umb-media-grid in the media picker + hide drop zone if there are images in a folder and add upload button from old media picker 2015-12-15 15:06:44 +01:00
Mads Rasmussen fba740141a copy rte embed to new overlay component 2015-12-15 15:06:44 +01:00
Mads Rasmussen 0b1854e73e switch markdown editor media picker dialog with overlay component 2015-12-15 15:06:44 +01:00
Mads Rasmussen e54a478458 Switch rich text editor media picker dialog with new overlay component 2015-12-15 15:06:44 +01:00
Mads Rasmussen 9a8273b784 Fixes: U4-7541 umbAutoResize does not work in Microsoft Edge 2015-12-15 14:51:51 +01:00
Shannon 3fa0f89dd1 U4-7134 New content type editor requires CRUD access to data types 2015-12-15 14:42:48 +01:00
Mads Rasmussen 191f82aaaa Fixes: U4-7448 Grid - Sorting view 2015-12-15 14:34:13 +01:00
Sebastiaan Janssen c813eccb45 Merge branch 'dev-v7' into 7.4.0 2015-12-15 13:53:50 +01:00
Claus f1fcb2adec Fixes: U4-7365 Content list view sorting alias is “sort” and media list view sorting alias is “sortOrder”. This gives an ysod when changing sorting in media list views.
Changed the default list view for media to be created with the correct alias in the database.
Added migration for existing databases to be updated.
2015-12-15 13:43:52 +01:00
Shannon 050109edd7 U4-6837 New content type editor: availableCompositeContentTypes could be moved to service.
Allows for assigning compositions to doc types that are being created.
Removes unused getAssignedListViewDataType from contentTypeResource.
Removes unused getPropertyTypeScaffold from memberTypeResource.
Removes unused performContainerDelete from memberTypeResource - since member types don't support folders.
Ensures correct security for the ContentTypeController.GetAllPropertyTypeAliases and ContentTypeController.GetAvailableCompositeContentTypes.
Removes unused ContentTypeControllerBase.GetAssignedListViewDataType, this is no longer used because the list view is configured using the DataTypeController.
2015-12-15 12:25:42 +01:00
Sebastiaan Janssen 198ba0db83 Merge branch 'dev-v7' into 7.4.0 2015-12-15 11:25:09 +01:00
Sebastiaan Janssen 6ce4354ef3 Merge branch 'dev-v7' into 7.4.0 2015-12-15 11:14:15 +01:00
Shannon Deminick 8ce8455773 Merge pull request #950 from umbraco/temp-U4-7373
Fixes U4-7373 Error notifications shown are hidden underneath the dialogs
2015-12-15 10:53:55 +01:00
Shannon 26b70a4a4e Merge remote-tracking branch 'origin/dev-v7' into 7.4.0
Conflicts:
	build/UmbracoVersion.txt
	src/SolutionInfo.cs
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/umbraco/config/lang/de.xml
2015-12-15 10:40:52 +01:00
Simon Busborg 31147fa8d1 missing comma 2015-12-15 10:26:22 +01:00
Simon Busborg d75f8bf1bd added wrapper to directive 2015-12-15 10:24:38 +01:00
Simon Busborg ecb6c8e52c Fix for U4-7373 Error notifications shown are hidden underneath the dialogs
http://issues.umbraco.org/issue/U4-7373
2015-12-15 10:08:19 +01:00
kgiszewski dada91f006 Fix u4-7534 2015-12-14 13:35:46 -05:00
Claus 3cdd650b66 Merge pull request #940 from umbraco/temp-U4-7445
Temp u4 7445
2015-12-14 11:31:02 +01:00
Simon Busborg 8bd3b25a66 Fix for: http://issues.umbraco.org/issue/U4-7518
New list view (umb-table) misses published/unpublished state
2015-12-11 14:26:17 +01:00
Rune Strand 10b828379b Element hinzufügen! 2015-12-09 09:31:38 +01:00
Rune Strand 7431ed4db1 Better wording 2015-12-08 13:42:05 +01:00
Rune Strand cb07ec3157 Add dialog localization and new keys to all lang 2015-12-07 18:07:08 +01:00
Sebastiaan Janssen 7a4b7c25dd Can't use higher versions of angular-dynamic-locale
See: https://github.com/lgalfaso/angular-dynamic-locale/issues/82
2015-12-07 13:00:57 +01:00
Sebastiaan Janssen a162974bf9 Merge remote-tracking branch 'refs/remotes/origin/dev-v7' into 7.4.0 2015-12-07 11:51:34 +01:00
Sebastiaan Janssen ff61112c18 Updates installer background 2015-12-07 10:32:24 +01:00
Sebastiaan Janssen a427ca6d4e Merge remote-tracking branch 'refs/remotes/origin/dev-v7' into 7.4.0 2015-12-07 10:26:26 +01:00
Rune Hem Strand 93f199b5e3 Add localization to Grid (en) 2015-12-04 13:23:24 +01:00
Sebastiaan Janssen 453efc02a5 Removes old obsoleted ping.aspx 2015-12-04 11:10:12 +01:00
Mads Rasmussen 58a68bba97 Fixes: U4-7387 bug preventing drag and drop upload in media library card layout 2015-12-03 13:24:09 +01:00
Stephan 22eea2b7db Fix tests 2015-12-03 12:56:59 +01:00
Sebastiaan Janssen fe88e4df5f Merge branch 'temp-U4-6659' into 7.4.0 2015-12-03 12:18:58 +01:00
Sebastiaan Janssen 34156ae7bb Merge branch '7.4.0' into temp-U4-6659 2015-12-03 12:18:46 +01:00
Sebastiaan Janssen f2d5cff66a Merge branch 'konami-easteregg' into 7.4.0 2015-12-03 12:15:43 +01:00
Sebastiaan Janssen 0fc41d0552 Merge branch '7.4.0' into konami-easteregg 2015-12-03 12:15:23 +01:00
Sebastiaan Janssen b09aaee52d Merge branch '7.4.0' of https://github.com/umbraco/Umbraco-CMS into 7.4.0 2015-12-03 11:49:23 +01:00
Mads Rasmussen 62e4bebab6 Fixes: U4-4051 Bug when querying for root node with the remembered node id 2015-12-03 11:45:59 +01:00
Sebastiaan Janssen 36ef7a6505 Merge branch 'temp-U4-7366' into 7.4.0 2015-12-03 10:43:56 +01:00
Sebastiaan Janssen e293051498 Merge branch '7.4.0' into temp-U4-7366 2015-12-03 10:43:10 +01:00
Sebastiaan Janssen 34a95353c2 Merge branch '7.4.0' of https://github.com/umbraco/Umbraco-CMS into 7.4.0 2015-12-03 10:31:37 +01:00
Mads Rasmussen dbc519a9cf Fixes: U4-7478 Set cookie to remember last chosen list view layout 2015-12-03 10:14:51 +01:00
Mads Rasmussen 6729f39b4e Fixes: U4-7474 rename member tree path + set header name not to be locked 2015-12-03 09:44:52 +01:00
Sebastiaan Janssen a3dd51ba98 Remove dead code 2015-12-03 09:44:29 +01:00
Sebastiaan Janssen 109aff737b Fixes spelling error 2015-12-03 09:43:50 +01:00
Sebastiaan Janssen cd369bf078 Move some repeated GUIDs to a constants class 2015-12-03 09:43:33 +01:00
Sebastiaan Janssen c7aa3d63fb Merge branch 'temp-U4-7372' into 7.4.0
Conflicts:
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixZeroOne/UpdatePropertyTypesAndGroups.cs
2015-12-03 09:22:19 +01:00
Rune Strand a6b1239138 Merge branch 'temp-U4-7366' of https://github.com/umbraco/Umbraco-CMS into temp-U4-7366 2015-12-02 21:24:23 +01:00
Rune Strand e4365af312 Fixes full width drop overlays 2015-12-02 21:24:08 +01:00
Mads Rasmussen ab884b00bf make entire cell placeholder clickable 2015-12-02 21:21:54 +01:00
Rune Strand 41bf7fc53d Add drop overlay for empty cells 2015-12-02 17:23:59 +01:00
Rune Strand 914343e00c Add check if drop area is actually a valid cell 2015-12-02 15:43:47 +01:00
Rune Strand b5d12aca5e Sort into empty cells 2015-12-02 15:19:09 +01:00
Sebastiaan Janssen d863ff364e U4-7321 Update Doc type edit link on content item for 7.4 since it will be different
#U4-7321 Fixed
2015-12-02 14:41:37 +01:00
Mads Rasmussen b3988e81f5 Merge pull request #930 from umbraco/temp-U4-6924
Fixes: U4-6924 Ensure drag/drop media uploads show notifications - since the way this works has been overhauled in 7.4
2015-12-02 13:46:08 +01:00
Sebastiaan Janssen 4d4a7b5078 U4-7343 Change the order of trees under Settings: Make "Document Type" the first item in the settings section
#U4-7343 Fixed
2015-12-02 13:33:40 +01:00
Mads Rasmussen 160fc5effd Merge pull request #929 from umbraco/temp-U4-7387
Fixes: U4-7387 It's not possible to select folders in listview in media section
2015-12-02 13:29:46 +01:00
Claus e4a0dc5d55 Fixed indentation. 2015-12-02 09:52:35 +01:00
Mads Rasmussen e242474496 fix media picker merge mistake 2015-12-01 19:40:05 +01:00
Rune Strand 879ea73195 Updates jQuery UI to vLatest #woohoo 2015-12-01 15:51:15 +01:00
Sebastiaan Janssen e1c1a99131 Fix merge mistake 2015-12-01 15:21:52 +01:00
Sebastiaan Janssen 9949e2676d Merge branch 'dev-v7' into 7.4.0
Conflicts:
	build/UmbracoVersion.txt
	src/SolutionInfo.cs
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Web.UI.Client/bower.json
	src/Umbraco.Web.UI.Client/src/less/main.less
	src/Umbraco.Web.UI.Client/src/views/common/dialogs/mediapicker.html
	src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.html
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/config/Dashboard.Release.config
	src/Umbraco.Web/Umbraco.Web.csproj
2015-12-01 15:16:57 +01:00
Mads Rasmussen 4a60acb8f3 Drag and drop: show message when control is not allowed in cell 2015-12-01 14:54:20 +01:00
Mads Rasmussen fe9954b674 Fixes: U4-7447 Grid - Touch support 2015-12-01 11:23:10 +01:00
Mads Rasmussen bf037b3dd7 Fixes: U4-7440 Grid - Controls overlay is cut of by the tree 2015-11-30 19:34:23 +01:00
Mads Rasmussen 09f0f951a1 Fixes: U4-7444 Grid - Place Richtext editor toolbar in control (static positioning) + remove sticky when scrolling 2015-11-30 11:30:31 +01:00
Mads Rasmussen c9141d8815 set control title bar animation to linear 2015-11-30 09:42:14 +01:00
Mads Rasmussen 4673832f12 minimize number of function calls when checking for item config and item active children 2015-11-30 09:35:21 +01:00
engern 348694d9d4 Use same color as the rest 2015-11-29 12:22:22 +01:00
engern 855e3b3dcc Add the possibility to sort the macro parameters 2015-11-29 12:06:19 +01:00
engern 5a8ea4aa41 Merge branch 'dev-v7' of https://github.com/engern/Umbraco-CMS into dev-v7 2015-11-29 09:38:36 +01:00
engern 4bd465f666 Merge remote-tracking branch 'refs/remotes/umbraco/dev-v7' into dev-v7 2015-11-29 09:38:20 +01:00
Tommy Enger ad591c07cf Merge pull request #1 from umbraco/dev-v7
Update from original
2015-11-29 09:37:54 +01:00
Mads Rasmussen 894a5cc758 add options to hide filter in item picker overlay + hide filter in control picker in grid 2015-11-27 10:18:02 +01:00
Shannon 3ebdfcc238 fixes upgrade script 2015-11-26 17:14:56 +01:00
Stephan 6f8243265b Fix persistence layer issues with unique identifiers 2015-11-26 13:24:40 +01:00
Mads Rasmussen f2f9283a25 Merge branch 'temp-U4-7366' of https://github.com/umbraco/Umbraco-CMS into temp-U4-7366 2015-11-26 09:45:45 +01:00
Simon Busborg 347d5070a2 added hover state to -placeholder in neutral state 2015-11-26 09:44:43 +01:00
Mads Rasmussen 07cb0408dd clean up scope watchers 2015-11-26 09:39:52 +01:00
Simon Busborg 27dbc1eefb Added more visible border to placeholder when row has active-child 2015-11-26 09:18:41 +01:00
Rune Strand 5d3f3fca79 Merge branch 'temp-U4-7366' of https://github.com/umbraco/Umbraco-CMS into temp-U4-7366 2015-11-25 23:07:50 +01:00
Rune Strand b0b8eb857c Updates U4-7438 Grid - Sorting of controls/editors
Drag n drop between cells
2015-11-25 23:07:19 +01:00
Mads Rasmussen 7057c325cb fix performance issue with outside click event - only bind click when element is active 2015-11-25 22:25:41 +01:00
Rune Strand 3a5d7f0442 Fixes U4-7438 Grid - Sorting of controls/editors 2015-11-25 21:15:09 +01:00
Mads Rasmussen 8bfb77d3fe add client side validation for max file size in list view grid-layout, list view list-layout and media picker 2015-11-25 19:18:14 +01:00
Mads Rasmussen 89fd42be25 add server error to html 2015-11-25 19:16:14 +01:00
Simon Busborg dbbccb4e40 Ensure drag/drop media uploads show notifications - since the way this works has been overhauled in 7.4
Awaits `maxFileSize` variable from U4-7394 ( http://issues.umbraco.org/issue/U4-7394 )
2015-11-25 15:46:34 +01:00
Simon Busborg 66ee3503a5 UI love to the different states of the grid – much polish, such click, wow colors 2015-11-25 15:09:02 +01:00
Mads Rasmussen 9a8501c90c Fixes: U4-7387 It's not possible to select folders in listview in media section 2015-11-25 13:51:57 +01:00
Claus ea12a883f3 Merge pull request #925 from umbraco/temp-U4-7394
Fixes: U4-7394 Missing maxFilseSize variable from web.config in the b…
2015-11-25 09:43:55 +01:00
Simon Busborg 9b1983a239 Added labels to show when styles/config are added to rows/cells 2015-11-25 09:27:11 +01:00
Mads Rasmussen 5797c65a1d Fixes: U4-7446 Grid - Confirm dialog on delete row/cell 2015-11-25 09:24:19 +01:00
Mads Rasmussen 776a9bc8e2 Fixes: U4-7442 Grid - Hide Layout picker when only one layout is configured 2015-11-24 14:03:53 +01:00
Mads Rasmussen c81b034568 Fixes: U4-7441 Grid - Hide row picker when Grid has content (show + icon) 2015-11-23 19:57:15 +01:00
Simon Busborg 692e09871a Comments, TODOs, and general cleanup in umb-grid 2015-11-23 16:46:59 +01:00
Shannon bb3a9c0e2e Fixes: U4-7394 Missing maxFilseSize variable from web.config in the backoffice 2015-11-23 15:19:13 +01:00
Simon Busborg e15b11389a Merge branch '7.4.0' into temp-U4-7366 2015-11-23 15:08:01 +01:00
Mads Rasmussen 522d9d148f Fixes: U4-7449 Cannot create datatype in new content type editor 2015-11-23 15:03:26 +01:00
Simon Busborg 36361bf9e8 Changed dropzone UI, to display link. Pulled SVG source from file into image file. 2015-11-23 14:13:12 +01:00
Claus f09e3c206c Fixed formatting... 2015-11-23 13:45:17 +01:00
Claus 2415403149 Fixes: U4-7392 It's not possible to upload folders in the media root 2015-11-23 13:43:31 +01:00
Rune Strand e4660115cd Dirty hack for Frankfurt 2015-11-23 13:05:41 +01:00
Darren Ferguson 1cd00cb6f6 change the text "Reload nodes" to just "Reload" my editors don't know what a node is! 2015-11-20 18:11:13 +00:00
Stephan 0f0b612de3 Refactor EntityContainer with (sort-of) proper repository 2015-11-20 18:37:00 +01:00
Stephan 3fe235fa35 Sanitize content types .ContentTypeComposition and .PropertyTypes 2015-11-20 18:36:55 +01:00
Stephan ee72621042 Fix development server port 2015-11-20 18:36:54 +01:00
Stephan 67c7ed1810 Fix propertyGroup.ParentId migration 2015-11-20 18:36:53 +01:00
Mads Rasmussen 4adc645580 Merge branch '7.4.0' into temp-U4-7366 2015-11-19 22:19:52 +01:00
Rune Strand 664f80364b Add content visible when sorting
Add cell sorting
2015-11-19 21:54:59 +01:00
Shannon 2ba7cdc789 Fixes: U4-6659 Examine: Specific doctype not being indexed 2015-11-19 19:06:31 +01:00
Sebastiaan Janssen 16f1fa1678 Merge branch 'dev-v7' into 7.4.0 2015-11-19 14:44:54 +01:00
bjarnef cd3aaa47ca Add retina version of Umbraco logo in login screen 2015-11-19 00:25:05 +01:00
Sebastiaan Janssen d0865017d1 Merge branch 'dev-v7' into 7.4.0 2015-11-18 19:42:13 +01:00
Mads Rasmussen 813171e6ae remove styles which overwrite lists styles in control overlay 2015-11-18 14:16:33 +01:00
Rune Strand 8d88394cf7 Move sortable init to row title 2015-11-18 13:37:29 +01:00
Rune Strand 46951cb79f Merge branch 'temp-U4-7366' of https://github.com/umbraco/Umbraco-CMS into temp-U4-7366 2015-11-18 12:14:09 +01:00
Rune Strand eff0ef027a Add cloned content when sorting 2015-11-18 12:13:51 +01:00
Mads Rasmussen 2922bf5ac8 Merge branch 'temp-U4-7366' of https://github.com/umbraco/Umbraco-CMS into temp-U4-7366 2015-11-18 12:01:58 +01:00
Mads Rasmussen 6f15b9fb1e deselect everything when clicking outside a row 2015-11-18 12:01:24 +01:00
Mads Rasmussen 72311a7808 set blue background on active rows 2015-11-18 12:01:00 +01:00
Rune Strand 6fa94b4f5d More sortable styling 2015-11-18 09:33:34 +01:00
Rune Strand 15426193a2 Merge branch 2015-11-18 09:24:58 +01:00
Sebastiaan Janssen 214e4beb2f Merge branch 'dev-v7' into 7.4.0 2015-11-17 18:51:29 +01:00
Stephan 4c8da5cd48 Fix test due to various changes 2015-11-17 16:55:15 +01:00
Stephan eb5589e064 Remove PropertyGroup.ParentId, sanitize Property groups/types 2015-11-17 16:55:14 +01:00
Stephan aaffa01f36 Implement PropertyGroup.Key (with migration)
Conflicts:
	src/Umbraco.Core/Umbraco.Core.csproj
2015-11-17 16:55:13 +01:00
Stephan acd64cc776 Replacing ContentTypeBase PropertyGroups/Types entirely should dirty the ppty 2015-11-17 16:55:12 +01:00
Stephan c7474487c9 Prepare EntityContainer for UniqueID 2015-11-17 16:55:11 +01:00
Stephan 467f001944 Cleanup migrations 2015-11-17 16:55:10 +01:00
Stephan 12a38ff7b9 Implement GUID constants 2015-11-17 16:55:09 +01:00
Stephan d20028036e Fix new ContentType editor rebindCallback 2015-11-17 16:55:08 +01:00
Shannon 5c1a10e1f9 re-fixes the jquery bower build 2015-11-17 14:36:05 +01:00
Sebastiaan Janssen da479430d4 Merge branch 'dev-v7' into 7.4.0 2015-11-17 13:49:21 +01:00
Sebastiaan Janssen 05c592860d Merge remote-tracking branch 'origin/dev-v7' into 7.4.0
Conflicts:
	build/UmbracoVersion.txt
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/mediapicker/mediapicker.controller.js
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
2015-11-17 13:43:19 +01:00
Stephan 6506c1109f Implement ContentTypeBase.MovePropertyType support for null group 2015-11-17 12:02:36 +01:00
Stephan bca74790ca Implement IFileService.GetTemplate(Guid) 2015-11-17 12:02:35 +01:00
Claus 3d95b4d73a Updated unit test after adding in TaskTypeMapper.
cherrypicked from dev-v7.
2015-11-17 11:51:03 +01:00
Shannon Deminick 60c2040cba Merge pull request #890 from umbraco/temp-U4-7286
Fixes: U4-7286 Upgrade script to normalize all GUIDs for content types + update Courier to support it
2015-11-17 11:48:19 +01:00
Mads Rasmussen 4594b952b4 add control overlay to select control before editing 2015-11-17 11:41:17 +01:00
Claus e442911d0f Merge pull request #892 from umbraco/temp-U4-7342
Temp u4 7342
2015-11-17 10:09:33 +01:00
Mads Rasmussen 609a475c67 remove margin bottom on tiny mce in grid.rte directive 2015-11-16 21:20:29 +01:00
Mads Rasmussen ec3ef2c018 add cursor pointer to title, remove a bit bottom space, animate icons 2015-11-16 21:13:53 +01:00
Mads Rasmussen 23f8952605 insert cell tools 2015-11-16 20:58:47 +01:00
Mads Rasmussen 6f893ae69b only render elements in control bar when control is active to prevent click when collapsed 2015-11-16 20:18:39 +01:00
Mads Rasmussen 2b4f0ebf64 always add controls to the bottom of the array 2015-11-16 19:38:00 +01:00
Mads Rasmussen 4bc5bb9c64 style control bars + add outside click to deselect controls and cells 2015-11-16 10:57:06 +01:00
AndyButland a05cc03254 Allows position of the list view child items tab to be positioned within the tab list 2015-11-15 21:18:21 +01:00
Stephan 92e4a14b7e Merge temp-U4-6911 into 7.4.0 2015-11-13 15:06:28 +01:00
Stephan 9654a0aa3a Enable moving system datatypes (but not deleting) in tree 2015-11-13 15:04:14 +01:00
Stephan 8653da010e Remove warning on container delete, cannot delete a non-empty container 2015-11-13 15:03:57 +01:00
Mads Rasmussen b6b3dee8ed fix up media, macro and embed editor placeholders 2015-11-13 13:52:32 +01:00
Rune Strand 6d5d160b6f Merge branch 'temp-U4-7366' of https://github.com/umbraco/Umbraco-CMS into temp-U4-7366 2015-11-13 13:10:34 +01:00
Rune Strand afd4b19259 Initial sortable styling 2015-11-13 13:10:23 +01:00
Stephan b59ea231c5 Merge 7.4.0 into temp-U4-6911 2015-11-13 12:53:34 +01:00
Mads Rasmussen 51e6072013 set active state on rows, cells and editors 2015-11-13 12:48:35 +01:00
Mads Rasmussen d00569325a Merge branch 'dev-v7' into 7.4.0
Conflicts:
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Web.UI.Client/src/common/directives/components/forms/focuswhen.directive.js
	src/Umbraco.Web.UI.Client/src/common/directives/util.directive.js
	src/Umbraco.Web.UI.Client/src/less/application/grid.less
	src/Umbraco.Web.UI.Client/src/less/main.less
	src/Umbraco.Web.UI.Client/src/views/common/dialogs/mediapicker.controller.js
	src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.controller.js
	src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html
	src/Umbraco.Web.UI.Client/src/views/dashboard/ChangePassword.html
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.html
2015-11-13 11:29:47 +01:00
Shannon bf40fc25e6 Fixes csproj and fixes migration script to use Sql object and ensures that it normalizes GUIDs across ALL content types 2015-11-13 11:17:14 +01:00
Shannon 50e2bd5d7e Gets data type folders working, this includes updating the data type repo + unit test, the move dialog/views, the data type tree to just show folders. 2015-11-12 19:01:42 +01:00
Shannon 5209a54f2a Added Move methods for both content types and media types ... these move methods are done as part of the UOW commit/transaction process, something that should be done with the Move/Copy operations of the content/media services. I added unit tests for the move operations for both content, media and data types. Events are all in places for content type and media type moves (something which Courier will need to use). Updated the trees/menu items to support moving which includes rendering the tree with only folders, updated the move dialog views to work. 2015-11-12 19:01:41 +01:00
Shannon 98be8dfe3e adds unit tests for content, media and data type repositories for creating and deleting containers (NOTE: There are other failing tests that are not part of this branch that need to be fixed in the 7.4 branch) 2015-11-12 19:01:41 +01:00
Shannon d379b98c57 Gets data type folders working/creating, data types being able to be created in folders, tree syncing with data type paths, fixes up some localization stuff and fixes up some issues with media type folders with parent ids 2015-11-12 18:59:43 +01:00
Shannon 42a0697d60 Nearly got data type folders creating 2015-11-12 18:59:42 +01:00
Shannon 4f07033d58 Gets creating/deleting media type folders working. 2015-11-12 18:59:41 +01:00
Shannon b4755fc5c4 Gets more doc type folders working, can create and delete, now to get doc types to be moved. 2015-11-12 18:59:40 +01:00
Shannon f54cde050a WIP - updated repositories to better support creating/deleting entity containers in a transaction, this is done by a child repository and a new EntityContainer type. Updated the controller to use this logic. 2015-11-12 18:59:39 +01:00
Shannon 4ce0e6bac3 Starts fixing up the doc type folders stuff, fixes permissions settings on the trees, adds error messaging for duplicating folders, removes the click handler for folder nodes 2015-11-12 18:59:38 +01:00
Stephan ef94441d3b Fix ContentTypeServiceTests, due to changes in service/repository 2015-11-12 16:25:50 +01:00
Stephan c27849a405 Fix ContentTypeRepositoryTest failing mapping tests 2015-11-12 15:33:55 +01:00
Stephan af0451f8be Fix DataTypeDefinitionRepositoryTest, broken since the repo was changed 2015-11-12 15:33:05 +01:00
Stephan 098d2815e3 Fix ContentRepositoryTest.Can_Perform_Add_With_Default_Template 2015-11-12 15:32:58 +01:00
Stephan 6fd185df2d Replace evil magic number with constant 2015-11-12 15:32:53 +01:00
Stephan 901d55b472 Fix more tests, now that folder browser is gone 2015-11-12 15:32:43 +01:00
Stephan eee1e9385f Fix DataTypeDefinitionRepositoryTest, now that folder browser is gone 2015-11-12 15:32:35 +01:00
Stephan 3272cd5c4d Fix PropertyValueEditor.ConvertDbToEditor for decimals, use invariant culture 2015-11-12 15:31:18 +01:00
Stephan 1d5602a22c Fix PluginManagerTests, post-6c5e35e 2015-11-12 15:31:09 +01:00
Rune Strand e63c7120b7 Add row title bar styling 2015-11-12 15:17:10 +01:00
Rune Strand 07b53c461c Merge branch 'temp-U4-7366' of https://github.com/umbraco/Umbraco-CMS into temp-U4-7366 2015-11-12 13:49:44 +01:00
Rune Strand 8dd2076d09 Hide help text when adding row 2015-11-12 13:49:24 +01:00
Mads Rasmussen 4f4d577a48 make it possible to add multiple editors to a cell 2015-11-12 13:38:34 +01:00
Mads Rasmussen ac2cf769d5 refactor cells so cells with and without editors are separate divs 2015-11-12 13:26:04 +01:00
Mads Rasmussen 2edfb5b0b2 set row configs to show on init 2015-11-12 12:00:08 +01:00
Rune Strand f72f8a6540 Merge branch 'temp-U4-7366' of https://github.com/umbraco/Umbraco-CMS into temp-U4-7366 2015-11-12 11:50:42 +01:00
Rune Strand 2c7f9d8cda Update placement and styling of preview help text 2015-11-12 11:48:59 +01:00
Mads Rasmussen e77e58d54d change add editor overlay to use new item picker overlay 2015-11-12 11:45:48 +01:00
Mads Rasmussen 3ee3c3b46c aaand the controller changes 2015-11-12 09:55:45 +01:00
Mads Rasmussen a4bf118f6d fix cell padding, add rows 2015-11-12 09:53:21 +01:00
Mads Rasmussen 3f3cc507a8 set up basic styling for cell previews + hover state + fix overflow on cells 2015-11-11 19:34:29 +01:00
Mads Rasmussen 3ec2ad551c one small step for man....... 2015-11-11 15:57:34 +01:00
Simon Busborg c26057c925 Fixed link hover state 2015-11-11 13:34:42 +01:00
Simon Busborg 62711406ab Added umb-dashboard-control back to dashboard, removed underlines via less 2015-11-11 13:11:41 +01:00
Simon Busborg cd2e810299 Removed "message" on no times in media section 2015-11-11 11:42:02 +01:00
Simon Busborg 55cac7990e Added dropzone upload to listview in media section 2015-11-11 11:42:02 +01:00
Simon Busborg 25db6ed430 More efficient empty state 2015-11-11 11:42:02 +01:00
Simon Busborg d68a9fae5d UI Polish
New: UI Polish
Edit: Changed 'Cancel' to 'Clear selection'
Fix: Changed from table to flexbox
2015-11-11 11:42:02 +01:00
Simon Busborg 64117239ae Correction to table class 2015-11-11 11:42:01 +01:00
Simon Busborg 608aa269f9 Add umb-table directive, restyling, use directive in listview 2015-11-11 11:42:01 +01:00
Claus 16da9f99d7 Fixes: U4-7286 Upgrade script to normalize all GUIDs for content types + update Courier to support it
Migration for ensuring content type guids are consistent on upgrade to v. 7.4.
2015-11-10 13:38:37 +01:00
Claus 505de31fa1 Fixes: U4-7370 Upgrading from 7.3.1 to 7.4 fails
Added migration for 7.3.2, ensuring the identity on the table is correct. It failed due to rows initially being inserted with identity disabled and therefore the seed of the table was zero even when the table had data.
2015-11-10 13:38:36 +01:00
Claus 35778bc08a Fixes: U4-7286 Upgrade script to normalize all GUIDs for content types + update Courier to support it
Migration for ensuring content type guids are consistent on upgrade to v. 7.4.
2015-11-10 13:37:45 +01:00
Claus 49560d8f2e Fixes: U4-7370 Upgrading from 7.3.1 to 7.4 fails
Added migration for 7.3.2, ensuring the identity on the table is correct. It failed due to rows initially being inserted with identity disabled and therefore the seed of the table was zero even when the table had data.
2015-11-10 12:10:36 +01:00
Shannon a351f6cfc8 Fixes up the error handling with move/copy dialogs. 2015-11-09 17:58:43 +01:00
Shannon 85e5c0c219 fixes jquery reference issue (again) 2015-11-09 17:10:33 +01:00
Shannon 7eb922a550 fixes build (merge issue) 2015-11-09 12:37:29 +01:00
Shannon a0761b92b8 Merge remote-tracking branch 'origin/dev-v7' into 7.4.0
Conflicts:
	build/RevertToCleanInstall.bat
	build/RevertToEmptyInstall.bat
	src/Umbraco.Web.UI.Client/src/canvasdesigner.loader.js
	src/Umbraco.Web.UI.Client/src/common/directives/components/application/umbavatar.directive.js
	src/Umbraco.Web.UI.Client/src/common/directives/components/property/umbproperty.directive.js
	src/Umbraco.Web.UI.Client/src/less/pages/login.less
	src/Umbraco.Web.UI.Client/src/views/components/application/umb-avatar.html
	src/Umbraco.Web.UI.Client/src/views/components/property/umb-property.html
2015-11-09 12:33:53 +01:00
Shannon Deminick 974c7cb48c Merge pull request #882 from umbraco/temp-U4-7351
Temp u4 7351
2015-11-09 03:28:41 -08:00
Claus Jensen 33d7292cb1 Merge pull request #843 from umbraco/temp-U4-7224
Temp u4 7224 - clean up content type editor validation styling
2015-11-06 12:58:57 +01:00
Mads Rasmussen 06a1899edf clear alias when name is empty 2015-11-06 11:49:01 +01:00
Claus Jensen 16126c2b4e Merge pull request #881 from umbraco/temp-U4-7281
show warning when editing data type in content type editor
2015-11-06 10:30:08 +01:00
Mads Rasmussen 3dbd738639 set new bottom height to make room for cancel button 2015-11-05 10:52:22 +01:00
Mads Rasmussen a34431493e remove watchers on available and selected models from umbChildSelector directive to prevent digest loop going crazy 2015-11-05 10:37:23 +01:00
Mads Rasmussen 6e1dc87996 wait for content before loading sub views 2015-11-05 10:32:12 +01:00
Mads Rasmussen 2f16aa25c3 Fixes: U4-7347 Document type editor template name and alias get set to null 2015-11-03 19:49:00 +01:00
Mads Rasmussen 127afbfbf1 show warning when editing data type 2015-11-03 10:48:56 +01:00
Mads Rasmussen b632beb067 set title attr on alias input 2015-11-03 10:13:02 +01:00
Sebastiaan Janssen 6f6b7d5772 This namespace doesn't exist 2015-11-03 10:00:11 +01:00
Niels Hartvig 110d54c4b8 Adds Konami feature on login screen 2015-11-02 14:53:32 +01:00
Mads Rasmussen 58f21fb028 make sub view icon red if it has validation errors 2015-10-28 10:44:34 +01:00
Mads Rasmussen ac0d47122c fix validation styling a bit 2015-10-28 10:44:34 +01:00
Mads Rasmussen 56e6eee852 fix issue with focus on locked field not being focused after child element has been added 2015-10-28 10:44:34 +01:00
Mads Rasmussen c3441d54bf fix locked field alignment 2015-10-28 10:44:34 +01:00
Shannon 6269e7b3f2 Merge remote-tracking branch 'origin/dev-v7-contenttypeeditor' into 7.4.0 2015-10-27 11:41:45 +01:00
Shannon Deminick 283de5a7d6 Merge pull request #831 from umbraco/temp-U4-7178-media-library
Temp u4 7178 media library
2015-10-27 11:41:10 +01:00
Shannon 8f7add203e Merge remote-tracking branch 'origin/dev-v7-contenttypeeditor' into 7.4.0
Conflicts:
	src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.controller.js
2015-10-27 10:29:11 +01:00
Mads Rasmussen 3033b0a705 Fixes: U4-7303 Shift + select to select a range of items 2015-10-27 08:53:53 +01:00
Per Ploug 7be070c17b Merge remote-tracking branch 'refs/remotes/origin/7.4.0' into dev-7.4.0-ModelsBuilder 2015-10-25 20:15:12 +01:00
Per Ploug c2b4633506 poc of templates with models 2015-10-24 22:10:17 +02:00
Mads Rasmussen 6faf4c4dbf Merge pull request #814 from umbraco/dev-v7-contenttypeeditor-validation
U4-7119 New Content Type editor requires server side validation wired up
2015-10-23 09:34:29 +02:00
Per Ploug 2c0d79d786 Ensuring the doctype UI changes are pushed, git seems unsure... 2015-10-23 08:29:26 +02:00
Mads Rasmussen 8d81d9922c fix js errors when unsubscribing events 2015-10-22 20:27:29 +02:00
Mads Rasmussen 4007ece6b4 Add copy bulk action to content + redo move dialog 2015-10-22 19:52:56 +02:00
Per Ploug dd05fe7466 merge 2015-10-22 18:07:17 +02:00
Per Ploug b4286cffbe Fixes up folderbrowser inheritance 2015-10-22 18:05:42 +02:00
Shannon e2251ec41a Merge remote-tracking branch 'origin/dev-v7' into 7.4.0 2015-10-22 17:54:09 +02:00
Shannon Deminick 427ea3d87b Merge pull request #832 from umbraco/temp-U4-7223
Fixes: U4-7223 GetCropUrl outputs html entities in url when used in css
2015-10-22 17:51:46 +02:00
Shannon 602915a311 makes FolderBrowserPropertyEditor have the grid as the primary layout for the list view. 2015-10-22 17:47:22 +02:00
Per Ploug 7463836ed2 merge 2015-10-22 17:45:46 +02:00
Shannon f66c07ec81 updates base data creation to not install the folder browser and instead to use the default media list view for the media folder property. Updates the FolderBrowserPropertyEditor to use the default list view property editor with no pre-values. 2015-10-22 17:34:01 +02:00
Per Ploug 49991ca84a Merge branch 'temp-U4-7178-media-library' of https://github.com/umbraco/Umbraco-CMS into temp-U4-7178-media-library 2015-10-22 17:29:55 +02:00
Shannon 9ed44a6314 fixes DataTypeController to only exclude System List views 2015-10-22 15:43:10 +02:00
Shannon fd26f98356 fixes template mapping issue when saving content types 2015-10-22 15:10:44 +02:00
Mads Rasmussen 9372b1df47 fix placeholder width on input auto resize in firefox 2015-10-22 14:02:18 +02:00
Claus 0cf44c1bd0 Fixes: U4-7223 GetCropUrl outputs html entities in url when used in css
Adding in HtmlHelper extensions for GetCropUrl.
2015-10-22 13:42:38 +02:00
Mads Rasmussen 83d16c3986 remove z-index on list view settings to allow overlays inside 2015-10-22 12:48:19 +02:00
Mads Rasmussen a6cb2a38ac remove margin 2015-10-22 12:47:19 +02:00
Shannon 41c5f6a8bf Merge remote-tracking branch 'origin/dev-v7' into 7.4.0
Conflicts:
	src/Umbraco.Web.UI.Client/src/views/content/content.copy.controller.js
2015-10-22 12:12:03 +02:00
Mads Rasmussen cf09603c08 check for array in media grid 2015-10-22 11:52:29 +02:00
Mads Rasmussen 4975ab870b remove sortable in content grid until we find a solution for saving 2015-10-22 11:47:35 +02:00
Mads Rasmussen 2eb36710e2 remove sortable from media grid until we find a way to save sort order 2015-10-22 11:28:08 +02:00
Mads Rasmussen bf7e49f774 remove console log 2015-10-22 11:23:53 +02:00
Mads Rasmussen cbaccafbc3 remove old pagination markup 2015-10-22 11:23:05 +02:00
Mads Rasmussen cf13d89086 add directive for list view layouts so we do not get values from parent scope 2015-10-22 11:21:53 +02:00
Shannon Deminick 5f45f715a1 Merge pull request #829 from umbraco/temp-u4-6927
Adds browser refresh to uninstall
2015-10-22 11:14:32 +02:00
Shannon 842980a7df fixes issue with empty tree alias being passed in when attempting to sync tree 2015-10-22 11:14:06 +02:00
Mads Rasmussen 9449a778e9 move list view pagination to directive 2015-10-22 09:42:00 +02:00
Mads Rasmussen 153e2ecfae use "item" instead of "document" to cover both content, media and folder. 2015-10-21 19:47:39 +02:00
Mads Rasmussen 5aa844393f add selected folders and items to an selection array. Move list layout logic to list layout controller. 2015-10-21 19:44:35 +02:00
Shannon 042e6e1c52 fixes breaking change with renaming tree aliases. 2015-10-21 18:48:23 +02:00
Shannon 98fadf82a1 Merge remote-tracking branch 'origin/dev-v7' into 7.4.0 2015-10-21 18:44:07 +02:00
Shannon Deminick 4881b4cd7d Merge pull request #827 from umbraco/temp-U4-6962
Fixes: U4-6962 Public access in multiple levels is broken in 7.3
2015-10-21 18:38:21 +02:00
Shannon 73fb761c4d Fixes issue with umb-editor-sub-views so that each view is actually rendered out and not replaced otherwise when you switch sections all of the wired up validation gets removed. This will also enable us to highlight the menu header when validation errors exist on that section. We also now show a single validation error message even when there is client side validation errors. 2015-10-21 17:52:58 +02:00
Per Ploug a7aa13fcb6 Adds browser refresh to uninstall
- InstalledPackage triggers a clientside refresh to installer.aspx - as
the installedpackage.aspx cannot be used for the last step since the
package is now gone
- installer.aspx displays the final uninstall message after browser
refreshing
- uses same clientside redirect as installs
2015-10-21 14:34:19 +02:00
Per Ploug c8f1340868 Rolls back update to jquery from 2.1.4 to 2.0.3 2015-10-21 14:22:44 +02:00
Per Ploug 08a46d62ed Merge branch 'temp-U4-7178-media-library' of https://github.com/umbraco/Umbraco-CMS into temp-U4-7178-media-library 2015-10-21 12:57:54 +02:00
Per Ploug 3996170151 Makes the folderbrowser proxy the media listview
This handles upgrades which already use the folderbrowser to
automatically switch to the media listview
2015-10-21 12:57:35 +02:00
Per Ploug 9f090801fc Obsoletes the Folderbrowser and changes install to use List-view 2015-10-21 12:52:10 +02:00
Mads Rasmussen b4ab7ff963 fix breadcrumbs in media section 2015-10-21 12:33:31 +02:00
Per Ploug 1b55f04129 small docs comment fix 2015-10-21 11:52:51 +02:00
Per Ploug b3dcfd8d6f Removes listview dependency on routeParams 2015-10-21 11:52:35 +02:00
Per Ploug 0320485229 Adds the media listview to media dashboard 2015-10-21 11:52:15 +02:00
Per Ploug 735494ecd6 Small fix in the datatype docs comments 2015-10-21 11:51:57 +02:00
Claus f48166e6ed Fixes: U4-6962 Public access in multiple levels is broken in 7.3
Ensured the backoffice UI will look at protection for the specific node only (no inheritance) when specifying public access.
Added non-recursive method to Access class.
Fixed bug causing the tree (child nodes) not to update correctly after changing public access on nodes.
2015-10-21 11:29:05 +02:00
Per Ploug 94366d1aa2 Merge branch 'temp-U4-7178-media-library' of https://github.com/umbraco/Umbraco-CMS into temp-U4-7178-media-library 2015-10-21 10:02:32 +02:00
Per Ploug 46f75a93bb updates to latest jquery 2015-10-21 09:58:07 +02:00
Per Ploug 19759000f4 Media and content move return wrong error format
Changing both move methods to return the same error signature as
publish/delete/etc
2015-10-21 09:57:57 +02:00
Per Ploug 0454c54d1c Fixed: Given -1 MediaService returns all descendant media
It returned the entire media tree given the ID -1, changing this so it
returns children below root instead
2015-10-21 09:49:45 +02:00
Mads Rasmussen 026150c5b6 decrease size on items in content grid 2015-10-20 19:22:42 +02:00
Mads Rasmussen 2d332355aa move layout config to options model 2015-10-20 19:18:35 +02:00
Mads Rasmussen 96194d45af Add no item text to list view content grid 2015-10-20 19:16:59 +02:00
Mads Rasmussen a3374fd08a add client side drag and drop to list view content grid 2015-10-20 19:15:33 +02:00
Shannon 65b080b03f fixes ysod with validation errors on doc type editor. 2015-10-20 15:37:11 +02:00
Shannon a67feb7881 cherry picks media type child listing 2015-10-20 14:57:28 +02:00
Per Ploug 2a74785755 Adds ModelsBuilder Nuget 2015-10-20 14:17:45 +02:00
Mads Rasmussen 20d676e667 Added move functionality to bulk actions - something is wrong in error handling 2015-10-20 13:33:45 +02:00
Per Ploug d04b7ae9c7 Revert "doctype editcontroller for modelsbuilder"
This reverts commit 8cf27c810d.
2015-10-20 10:44:44 +02:00
Mads Rasmussen 759d8fad5f center content grid 2015-10-20 10:07:55 +02:00
Mads Rasmussen 49349c719c add content grid/card directive + add it to grid list view layout 2015-10-19 18:58:18 +02:00
Mads Rasmussen 3e3ba0ebb7 Merge branch 'dev-v7' into temp-U4-7178-media-library
Conflicts:
	build/UmbracoVersion.txt
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
2015-10-19 16:59:10 +02:00
Shannon d5bcfce4db Merge remote-tracking branch 'origin/dev-v7-contenttypeeditor' into 7.4.0 2015-10-19 16:35:46 +02:00
Shannon Deminick a368b6188b Merge pull request #821 from umbraco/temp-U4-7175
Fixed: U4-7175 Discard changes overlay sometimes breaks the url
2015-10-19 16:34:44 +02:00
Per Ploug 8cf27c810d doctype editcontroller for modelsbuilder 2015-10-19 15:56:49 +02:00
Per Ploug 51c9d64dad Merge branch 'temp-U4-7178-media-library' of https://github.com/umbraco/Umbraco-CMS into temp-U4-7178-media-library 2015-10-19 15:22:38 +02:00
Per Ploug 55b98cc446 Fixed: U4-7271 Folder does not list allowed media types 2015-10-19 15:22:21 +02:00
Mads Rasmussen 75970e9a83 only get sub folders in media section 2015-10-19 14:48:12 +02:00
Mads Rasmussen 386e8e70a0 media grid: set select and click callbacks instead of having logic in directive 2015-10-19 09:18:16 +02:00
Mads Rasmussen a6f4ccdc66 set max width on items in media grid 2015-10-19 09:15:37 +02:00
Per Ploug 13ae946f30 Fixed: U4-7264 Support for folder upload
Fixed issues noted in review
2015-10-19 08:58:52 +02:00
Per Ploug c455c1f930 Fixed: U4-7175 Discard changes overlay sometimes breaks the url 2015-10-19 08:44:21 +02:00
Mads Rasmussen a651b78c1d add bulk actions to editor sub header 2015-10-16 20:07:46 +02:00
Mads Rasmussen e3af2c3bae make it possible to disable umb-button 2015-10-16 20:05:01 +02:00
Mads Rasmussen 34813b9da5 fix sticky bar styles and set z-index lower 2015-10-16 18:21:50 +02:00
Mads Rasmussen a2e8f27c68 remove folder logic from media grid 2015-10-16 17:21:08 +02:00
Mads Rasmussen 7e58b28f2b media library - get and show child folders 2015-10-16 17:17:01 +02:00
Mads Rasmussen a0383aa78f add directive to list folders in a flexbox grid 2015-10-16 17:13:10 +02:00
Mads Rasmussen 0b7f6b3239 add support for icon on link style buttons 2015-10-16 17:10:21 +02:00
Mads Rasmussen 620d5f0ba4 Merge branch 'temp-U4-7178-media-library' of https://github.com/umbraco/Umbraco-CMS into temp-U4-7178-media-library 2015-10-16 17:08:26 +02:00
Per Ploug 44226a22e9 Removes legacy files 2015-10-16 15:16:43 +02:00
Per Ploug 9955084cd6 Ensures routing only loads from all-lower case templates 2015-10-16 15:16:41 +02:00
Per Ploug 92aee24f0c Moves cache refreshing into a submodule
So it doesnt conflict with templateCache (also an issue with ng-tables)
2015-10-16 15:16:41 +02:00
Per Ploug d8fc73d36b Grunt and npm file for experiment view cache 2015-10-16 15:16:40 +02:00
Per Ploug Krogslund d1a7a94cd4 Adjust directive filenames to all lowercase. 2015-10-16 15:13:48 +02:00
Per Ploug Krogslund 1a9bac67a1 hex background moved forms directives 2015-10-16 15:13:47 +02:00
Per Ploug Krogslund 285b072f17 navresize moved to app directives 2015-10-16 15:13:47 +02:00
Per Ploug Krogslund b6e879cb5c ump-confirm moved to components/ 2015-10-16 15:13:46 +02:00
Per Ploug Krogslund b13b329f90 Panel, panel and control group moved to components 2015-10-16 15:13:46 +02:00
Per Ploug Krogslund 3c4b398ebd Tab views path typo 2015-10-16 15:13:45 +02:00
Per Ploug Krogslund 881713c360 All app specific directives in /components/applications
All directives used for the main application grid, such as section
navigation, avatar etc in one place
2015-10-16 15:13:44 +02:00
Per Ploug Krogslund 045bc91bbc umb-property.html Moved to components/editor/
Duplicate files, removing this one.
2015-10-16 15:13:44 +02:00
Per Ploug Krogslund eda337d955 ump-editor.html replaced by umb-property-editor
Still backwards compatible, but more obvious name
2015-10-16 15:13:43 +02:00
Per Ploug Krogslund 443c31dc4a Moves grid.rte directive to components/grid 2015-10-16 15:13:42 +02:00
Per Ploug Krogslund 99c084186b Directive cleanup
Moves all form elements related directives to components/forms
Moves tree directives to components/tree
Moves image+cropper directives to components/imaging
Moves validation directives to components/validation
Moves all obsolete directives and their views to _obsolete (still
works)
2015-10-16 15:13:42 +02:00
Per Ploug Krogslund daf5b2f68b Imaging directives moved into components 2015-10-16 15:13:40 +02:00
Per Ploug Krogslund 12ed9193a0 Remove never used umb-field directive 2015-10-16 15:13:40 +02:00
Per Ploug Krogslund b2afbc24d9 Remove umb-blur in favour of on-blur directive
Was only used in content-type editor work sofar
2015-10-16 15:13:39 +02:00
Per Ploug Krogslund 185e567ef4 Consistant tab directive paths 2015-10-16 15:13:38 +02:00
Per Ploug b6bbb8e79d Related to: U4-7264 Support for folder upload
Enable a larger file max size for upload as 4mb is quickly very
limiting.
2015-10-16 12:58:08 +02:00
Per Ploug f7c2f779c2 Fixed: U4-7264 Support for folder upload
part of the media library polish, when a folder is dragged to the view,
it will check if folders exist, and create if needed, this makes it
easier to replicate a folder structure when uploading.
2015-10-16 12:48:34 +02:00
Per Ploug 53fdc801f3 Return basic entity instead of display entity 2015-10-16 11:32:13 +02:00
Mads Rasmussen d10752bbf9 move sub header up to header to save space 2015-10-16 09:42:40 +02:00
Mads Rasmussen fbbaa15429 editor sub header: less top and bottom padding + better bar top position for better transition to fixed position 2015-10-15 21:14:13 +02:00
Shannon cc55af07f1 Merge remote-tracking branch 'origin/dev-v7' into 7.4.0
Conflicts:
	build/UmbracoVersion.txt
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
2015-10-15 17:16:48 +02:00
Shannon 7268c6786d manual merge back in the temporary DeleteContainerById method 2015-10-15 15:42:46 +02:00
Shannon 8205048e4d Merge remote-tracking branch 'origin/dev-v7-contenttypeeditor' into dev-v7-contenttypeeditor-validation
Conflicts:
	src/Umbraco.Web.UI.Client/src/common/resources/membertype.resource.js
	src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.controller.js
	src/Umbraco.Web/Editors/ContentTypeController.cs
2015-10-15 15:32:48 +02:00
Shannon e1629932dc Wires up the correct saving logic + validation for the member type editor, moves the GetSafeAlias method to the EntityController 2015-10-15 15:29:14 +02:00
Shannon 33c206d820 Wires up the correct saving logic for media types + validation, refactors the logic so it can be reused everywhere. 2015-10-15 14:48:50 +02:00
Mads Rasmussen 1e81a6d638 Merge branch 'temp-U4-7178-media-library' of https://github.com/umbraco/Umbraco-CMS into temp-U4-7178-media-library 2015-10-15 14:34:20 +02:00
Mads Rasmussen efb96b25fc Add tooltip directive, use tooltip to show media item details, styles changes to media items to fit in info icon 2015-10-15 14:33:36 +02:00
Per Ploug f5fa860b5c Get Media folders from node 2015-10-15 14:08:29 +02:00
Per Ploug 755853cc50 Sets up trees, menus and dialogs for content type moving
The actual service apis for moving is not implemented yet, but this is
the scaffold for using it.
2015-10-15 13:14:13 +02:00
Per Ploug 4d5ba9304f Adds modelbuilder ui intergration
As we load the doctype editor, we detect if the install has the models
builder dlls, if not found / error, we should the normal save button,
otherwise you get a button + generate models option.
web.configs + translated prepared as well, but nothing is active untill
the zbu dlls are dropped in bin
2015-10-15 13:14:06 +02:00
Per Ploug 205a6c2b4a Added folder delete to membertype delete dialog
Still needs serverside support
2015-10-15 13:13:56 +02:00
Per Ploug 03b1285e87 Missing controller file for mediatype delete dialog 2015-10-15 13:13:48 +02:00
Per Ploug 735831bd98 Added client-side parts to folder deletion for media types 2015-10-15 13:13:38 +02:00
Per Ploug aedd7d3268 Update copy on delete dialogs for folders / non-folders 2015-10-15 13:13:27 +02:00
Per Ploug 1ff1f54769 Update member services to include delete method 2015-10-15 13:13:20 +02:00
Mads Rasmussen 74bf23140b add no-margin-bottom modifier to form styling 2015-10-14 19:52:51 +02:00
Mads Rasmussen d78f426e94 add styling to sortable placeholder 2015-10-14 19:51:29 +02:00
Mads Rasmussen 6586f08a2f Add editor sub header to list view 2015-10-14 19:40:34 +02:00
Mads Rasmussen 550cff0fcb bind sortable logic to html 2015-10-14 19:39:04 +02:00
Mads Rasmussen 31e84ae9ae remove unused attr on umb-editor-sub-header directive 2015-10-14 19:31:08 +02:00
Shannon 815d34f8a6 exposes api on valFormManager which can be used instead of subscribing to events, changes valTab to use this api instead of events, ensures locked field has a ng-form wrapper so the validation messages are displayed. 2015-10-14 17:51:00 +02:00
Shannon 85e46cbbe5 Fixes: U4-7251 When changing a data type name to be the same as another we suffix the duplication with a number - this needs to be reflected in the UI 2015-10-14 16:54:58 +02:00
Shannon Deminick edfe91a8b2 Merge pull request #808 from umbraco/temp-U4-7241
Fixed: U4-7241 - Add more contrast to icons in umb-card-grid
2015-10-14 16:23:01 +02:00
Shannon Deminick 1e8f5ed29b Merge pull request #809 from umbraco/temp-U4-7242
Fixed: U4-7242 - call function on view model and not scope + clear item details on search
2015-10-14 16:21:55 +02:00
Shannon Deminick 6fdea4217a Merge pull request #807 from umbraco/temp-U4-7240
Fixed: U4-7240 Change add property color to blue
2015-10-14 16:14:15 +02:00
Mads Rasmussen 5f25844921 add client side sorting to media grid 2015-10-14 15:55:49 +02:00
Mads Rasmussen f9a236f639 add directives to add sub headers to editors, make left and right content in sub headers and make sub sections 2015-10-14 15:32:54 +02:00
Mads Rasmussen 071eb4bc23 add directive to make sticky bars 2015-10-14 15:28:48 +02:00
Claus 5af5599371 Ensuring the RevertToCleanInstall and RevertToEmptyInstall scripts only deletes view files. 2015-10-14 14:56:03 +02:00
Claus 3ea7107198 Adding back these for iPhone/Android touch friendly keyboards.
https://github.com/umbraco/Umbraco-CMS/pull/800#issuecomment-147405345
2015-10-14 14:17:52 +02:00
Shannon c0bd5f4d14 Merge remote-tracking branch 'origin/dev-v7-contenttypeeditor' into dev-v7-contenttypeeditor-validation 2015-10-14 12:54:10 +02:00
Shannon Deminick 03a79aa2f3 Merge pull request #812 from umbraco/temp-U4-7174
Fixes: U4-7174 - Move folder to bottom of list, make doc w and w/out …
2015-10-14 12:52:59 +02:00
Shannon 21a748af29 Merge remote-tracking branch 'origin/dev-v7-contenttypeeditor' into dev-v7-contenttypeeditor-validation
Conflicts:
	src/Umbraco.Web.UI.Client/src/common/directives/validation/valregex.directive.js
	src/Umbraco.Web.UI.Client/src/less/forms.less
2015-10-14 12:13:51 +02:00
Shannon Deminick cd0b81e1b2 Merge pull request #811 from umbraco/temp-U4-4652
Temp u4 4652
2015-10-14 12:09:52 +02:00
Shannon 327a00aaf4 Fixes issue with migrations running with a Decimal column:
The logic would produce incorrect syntax.
Fixed the default string column for sql server, made them all consistent.
Moved ctor logic for shared sql syntax providers to the base class.
Created formatted Decimal column definitions so that a custom precision/scale works.
Set the migration to use the default precision/scale values.
Removes the pattern validators because they don't do anything... due to the fix-number directive which has it's own issues but we won't solve those now.
2015-10-14 12:07:50 +02:00
Mads Rasmussen b9470c1bc1 Fixes: U4-7174 - Move folder to bottom of list, make doc w and w/out texts easier to differentiate + auto focus doc type with template 2015-10-14 10:01:53 +02:00
Claus d92af31b0a Fixes: U4-7246 Integer datatype PropertyEditor is missing ValueType definition 2015-10-14 09:59:13 +02:00
AndyButland 7efa0bed46 Added pattern to integer and decimal property editor views to support numeric keyboards on mobile 2015-10-14 09:59:12 +02:00
AndyButland 09ec87c1c7 Added unit tests for decimal conversion in property editor value editors 2015-10-14 09:59:11 +02:00
AndyButland b48b18ec8a Added migration for 7.4.0 for additional column required for decimal property editor 2015-10-14 09:59:10 +02:00
AndyButland dda247fea5 Implemented decimal property editor 2015-10-14 09:59:09 +02:00
Claus 30d8e53541 Merge remote-tracking branch 'origin/dev-v7' into dev-v7-contenttypeeditor 2015-10-14 09:58:43 +02:00
Shannon 222d126508 adds a ctor to the BackOfficeUserManager to allow better inheritance so that all settings are initialized by default. 2015-10-13 17:43:40 +02:00
Mads Rasmussen 83deecc6d6 Fixed: U4-7242 - call function on view model and not scope + clear item details on search 2015-10-13 12:06:28 +02:00
Claus Jensen 5ddf544812 Merge pull request #806 from umbraco/temp-U4-7172
Fixed: U4-7172 When a locked field is unlock, focus and select value
2015-10-13 11:41:03 +02:00
Mads Rasmussen 0f5d04b2ed Fixed: U4-7241 - Add more contrast to icons in umb-card-grid 2015-10-13 11:10:13 +02:00
Mads Rasmussen 839526414f Fixed: U4-7240 Change add property color to blue 2015-10-13 10:45:44 +02:00
Mads Rasmussen 5709a41ee0 Fixed: U4-7172 When a locked field is unlock, focus and select value 2015-10-13 09:56:04 +02:00
Mads Rasmussen 9297b27536 fix paths on document types and member types views 2015-10-13 09:15:39 +02:00
Shannon 2922e962e0 Gets validation working with composition alias conflicts 2015-10-09 19:03:11 +02:00
Shannon 6017e9ddf9 Gets group and property level validation wired up to the fields, ensures things like duplicate field warnings are created with the correct indexed field names. Fixes a few old directives to correctly watch for attribute interpolation changes which is need for some of this validation to work since it's dynamically populating the field names. 2015-10-09 17:28:22 +02:00
Mads Rasmussen e4a8804058 U4-7181: Add uploader to media list view 2015-10-09 14:43:54 +02:00
Mads Rasmussen 84e15249c7 U4-7182: clear folders and media items before pushing new data + add watcher for updated data. 2015-10-09 14:40:19 +02:00
Mads Rasmussen fe5c5991d9 list view - clearfix header 2015-10-09 13:36:17 +02:00
Per Ploug 9d220b40af Fixed: U4-7207 Cant save partial view more then once 2015-10-09 11:09:27 +02:00
Per Ploug dee16b3b70 Fixed: U4-7176 Content copy should relate to original by default 2015-10-09 10:41:03 +02:00
Per Ploug fc06bbf116 Rolls back a grunt file path issue 2015-10-09 08:56:11 +02:00
Per Ploug 67bdcfedf1 Membertype view path incorrect 2015-10-09 08:53:37 +02:00
Per Ploug 9e94f326aa Removes static text from doctype delete 2015-10-09 08:48:21 +02:00
Per Ploug ffc52d0105 Fixes U4-7177 Tree dialogs disappear after opening 2015-10-09 08:47:14 +02:00
Mads Rasmussen a199525d0f U4-7182: add flex box version of media image grid to list view 2015-10-08 21:36:08 +02:00
Mads Rasmussen 3405a97ed4 U4-7215 Shared pagination for all layouts 2015-10-08 21:26:34 +02:00
Shannon c477f7a840 Gets more validation bits wired up. Server side validation is now working which is based on val-server-field since we can use this natively with the asp.net ModelState result instead of the val-server which is actually to be used with PropertyType (Property Editors). Next up is validation for the different tabs of the editor. 2015-10-08 17:13:38 +02:00
Mads Rasmussen 246244a774 U4-7205: set aliases to camelCase 2015-10-07 19:34:17 +02:00
Mads Rasmussen 8ae40751a9 U4-7204 The grid: The insert control overlay do not close on mouse out 2015-10-07 19:17:26 +02:00
Shannon 97c352030a Gets a little more validation working and creating using the new Save models 2015-10-07 17:16:42 +02:00
Mads Rasmussen 99a9af833e U4-7179: add layout selector to list view 2015-10-07 14:31:48 +02:00
Mads Rasmussen 86d05ccf95 add layouts prevalue editor to list view 2015-10-06 21:03:00 +02:00
Shannon 33906c7730 Merge remote-tracking branch 'origin/dev-v7-contenttypeeditor' into dev-v7-contenttypeeditor-validation
Conflicts:
	src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.controller.js
2015-10-06 17:21:49 +02:00
Shannon 1b21e04dc2 WIP for model mappers to new content editor save model, udpates to js to use that 2015-10-06 17:19:08 +02:00
Mads Rasmussen df76554aaf U4-5523: move change password to it's own part of user fly out to minimize visual clutter, use new 7.4 buttons + remove functionality from dashboard files. 2015-09-30 12:16:30 +02:00
Mads Rasmussen c604f3591f Merge branch 'arknu-changepassword-fix' into dev-v7-contenttypeeditor 2015-09-30 11:29:52 +02:00
Mads Rasmussen 9d1d53524a Merge branch 'changepassword-fix' of https://github.com/arknu/Umbraco-CMS into arknu-changepassword-fix 2015-09-30 11:28:52 +02:00
Mads Rasmussen 39d9e98f6a use new overlay directive in related links property editor 2015-09-29 11:39:22 +02:00
Mads Rasmussen b29dcd10d4 added contentpicker and memberpicker overlays 2015-09-29 11:37:44 +02:00
Mads Rasmussen c4aa523564 U4-7138 Need to review hard coded view paths, section and tree names 2015-09-29 11:36:23 +02:00
Mads Rasmussen 289ef0489d Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-09-29 11:14:21 +02:00
Per Ploug ebbde5f64b Rolling back members tree alias to "tree" due to UI issues 2015-09-29 11:05:38 +02:00
Mads Rasmussen 2f19103358 rename document types controller to match tree 2015-09-29 09:04:30 +02:00
Mads Rasmussen 1e3d918a74 rename media types controller to match tree 2015-09-29 09:03:35 +02:00
Mads Rasmussen aa610d5af9 rename member types controller to match tree 2015-09-29 09:01:59 +02:00
Mads Rasmussen 4fe946ac4a fix bug in multi node picker - use tree picker instead of content picker 2015-09-28 20:32:08 +02:00
Mads Rasmussen 52866dd8c8 rename member types folder to match tree 2015-09-28 20:14:32 +02:00
Mads Rasmussen f7b4b906cc rename members folder to match tree 2015-09-28 20:05:53 +02:00
Mads Rasmussen 6f5fef6d2c rename media types folder to match tree 2015-09-28 19:45:48 +02:00
Mads Rasmussen 3d61344033 rename document types folder to match tree 2015-09-28 19:33:24 +02:00
Mads Rasmussen 121c2f838c rename data type folder and update data type tree 2015-09-28 16:53:23 +02:00
Mads Rasmussen 57b987b655 property settings overlay: bump up size on editor settings icon 2015-09-28 15:39:52 +02:00
Mads Rasmussen 891b04a3a8 bump up icon size on action toolbar 2015-09-28 15:34:41 +02:00
Mads Rasmussen 12e3783364 content type editor: bump up property actions icon size 2015-09-28 15:27:56 +02:00
Mads Rasmussen 5abcd01ffb check for propertyForm to prevent js error in content type editor 2015-09-28 15:23:22 +02:00
Mads Rasmussen ac42f1c1d8 U4-6924 add accepted files to media picker and folder browser 2015-09-28 13:46:24 +02:00
Mads Rasmussen e1f3e82fbf U4-6924 Updated ng-file-upload bower dependency to latest version, added support for accepted file types and max file size in directive. Get file types from config. Still missing max file size. 2015-09-28 11:55:12 +02:00
Per Ploug b10afa9c0f Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-09-28 09:31:01 +02:00
Per Ploug 6c5e35ec2c Fixed: U4-7150 Inconsistent tree aliases
Changes all translation files and tree classes to have consistent
naming, updates trees.config to these new alias's
2015-09-28 08:54:00 +02:00
Per Ploug e4e3c46d15 Remove the culture from tree header localization 2015-09-25 16:29:41 +02:00
Shannon 7610b6f592 Merge branch 'dev-v7-contenttypeeditor' into dev-v7-contenttypeeditor-validation 2015-09-25 14:27:10 +02:00
Shannon aeb317f06f Merge remote-tracking branch 'origin/dev-v7' into dev-v7-contenttypeeditor 2015-09-25 14:26:51 +02:00
Shannon 97c0192475 adds no-margin class modifier for control-group, adjust minor styles to the previous fields i updated and add required to the group name with control-group so it shows validation errors 2015-09-25 14:26:10 +02:00
Shannon b27200ec36 streamlines some validation styling: no more focuses border highlighting since that doesn't work consistently with all fields, ensures that the new fields have a border but it's set to transparent since we want to show a border for validation, removes the zero padding from new fields since when a validation border is added it doesn't look good and now padding is just using the base consistent padding for fields. Moves the valrequirecomponent.directive to the validation folder. 2015-09-25 14:06:07 +02:00
Shannon f41f565eb8 Fixes: U4-7136 Client side validation no longer works for header text 2015-09-24 16:17:14 +02:00
Shannon 5fff1e4ac5 Fixes umb-editor-header to toggle visibility of certain fields based on boolean toggles since we cannot rely on model values being undefined when there are validators present because validators change the model value to undefined. 2015-09-24 15:53:24 +02:00
Per Ploug 8d57e0cd1d Less hacky way to lookup current user culture 2015-09-24 15:52:44 +02:00
Per Ploug c13ae20885 U4-4761: adds overload to treeattribute 2015-09-24 15:49:17 +02:00
Per Ploug 8a3deb5270 Minor css tweak to tabview control 2015-09-24 15:30:28 +02:00
Per Ploug 6dc4e2d2ae U4-4761 Member translation
Makes all trees translateable, does not break the current titles set on
atttributes, but for trees that does not have a title set, the tree wil
try to look up a treeheader.
2015-09-24 15:30:08 +02:00
Per Ploug 60041a2893 U4-7058 New content type editor: saving new data types
Removes toggle from repository
2015-09-24 13:12:44 +02:00
Shannon 1410a2d482 Merge remote-tracking branch 'origin/dev-v7-contenttypeeditor' into dev-v7-contenttypeeditor-validation 2015-09-24 12:14:14 +02:00
Shannon 94bc440437 adds note 2015-09-24 12:14:08 +02:00
Per Ploug 9f9946eb1f Default contenttype icons 2015-09-23 21:01:32 +02:00
Per Ploug 1d23d2b7c6 Fixed: New document types fails to save 2015-09-23 20:40:03 +02:00
Per Ploug 3b21936898 Ensure unique data type names 2015-09-23 16:17:44 +02:00
Shannon a7a262de8b Ensures validation messages are shown for the alias and that the aliases is validated with regex too 2015-09-23 16:04:23 +02:00
Shannon 6180784646 Fixes client side validation on editorsettings 2015-09-23 15:44:38 +02:00
Shannon 79eb8176ac bumps version and website port 2015-09-23 14:21:14 +02:00
Shannon ff9027c07d Merge branch 'dev-v7' into dev-v7-contenttypeeditor 2015-09-23 14:03:15 +02:00
Mads Rasmussen d80d42a7c6 Fixed: U4-4051 Remember latest folder in media picker 2015-09-23 13:51:18 +02:00
Mads Rasmussen 1d3b18b964 auto focus mandatory checkbox when editor picker overlay closes 2015-09-22 20:47:29 +02:00
Mads Rasmussen 781c3007e6 auto focus add property when dialog closes 2015-09-22 20:45:03 +02:00
Mads Rasmussen a095301dd1 rename icon picker controller 2015-09-22 16:13:02 +02:00
Mads Rasmussen 3a068b1f62 rename property settings controller 2015-09-22 16:12:15 +02:00
Mads Rasmussen b34d911088 rename editor picker controller 2015-09-22 16:11:41 +02:00
Mads Rasmussen 4a56d0a903 move editor settings to overlay folder + rename 2015-09-22 15:56:32 +02:00
Mads Rasmussen db464e9c2b move editor picker overlay to overlays + rename 2015-09-22 15:38:45 +02:00
Mads Rasmussen 60745d1b81 move property settings overlay to overlay folder + rename 2015-09-22 14:54:37 +02:00
Mads Rasmussen 5bfc4e1e8e move compositions overlay to overlay folder 2015-09-22 14:45:53 +02:00
Mads Rasmussen bcdcf441e1 Umb groups builder - move logic to overlays and open sub overlays from overlays 2015-09-22 14:39:19 +02:00
Mads Rasmussen c94ae3b9bd Grid edit config - use new overlay directive 2015-09-21 15:59:42 +02:00
Mads Rasmussen bd3b76250f property settings textareas - submit on enter 2015-09-21 15:57:41 +02:00
Mads Rasmussen 9f47c6cd95 Overlay: allow adding spaces in textareas + submitting on enter 2015-09-21 15:56:47 +02:00
Mads Rasmussen a82c25c967 Grid row delete - use new overlay directive 2015-09-21 14:29:08 +02:00
Mads Rasmussen 7d9aa29bcd ensure dialogs doesnt have side-by-side labels 2015-09-21 14:26:35 +02:00
Mads Rasmussen 173f3762ac Grid row config - use new overlay directive 2015-09-21 12:31:32 +02:00
Mads Rasmussen 1ab724531d Grid layout config - use to new overlay directive 2015-09-21 10:54:31 +02:00
Mads Rasmussen 96b2e9a832 open preValue media picker in new overlay 2015-09-21 08:58:31 +02:00
Mads Rasmussen 80ce7bd1fb Open preValue treePicker in new overlay directive 2015-09-21 08:57:24 +02:00
Mads Rasmussen 49ea0053b7 Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-09-20 15:49:14 +02:00
Mads Rasmussen d260c660b5 clean up unused attributes 2015-09-20 15:38:49 +02:00
Mads Rasmussen f220da9423 copy treePicker, memberPicker and contentPicker dialogs to new overlay directive 2015-09-18 14:26:54 +02:00
Mads Rasmussen c15bd3ea31 add support for ng-show on overlay directive 2015-09-18 13:59:49 +02:00
Stephan c3076d6b8d Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-09-18 13:43:16 +02:00
Stephan ae7a9a2fed Merge remote-tracking branch 'origin/dev-v7' into dev-v7-contenttypeeditor 2015-09-18 13:41:54 +02:00
Per Ploug Krogslund d9d2403d99 csproj file 2015-09-17 14:08:56 +02:00
Per Ploug Krogslund 10d8fdba75 Updates template tree controller for angular view 2015-09-17 14:08:56 +02:00
Mads Rasmussen 6a2b0a9e14 Copy media picker to new overlay directive 2015-09-17 09:57:01 +02:00
Mads Rasmussen 557b8675b1 textbox property editor: remove inline validation and only rely on server validation. The inline validation prevented the content type editor to save 2015-09-17 09:38:19 +02:00
Mads Rasmussen 74dc7bd3e9 fix overlay transclude 2015-09-17 09:36:37 +02:00
Mads Rasmussen aa2e5489f5 overlay content container - set overflow-x to hidden 2015-09-17 09:34:13 +02:00
Mads Rasmussen e896268309 add timeout to wait for html element when using it with ng-show/ng-if 2015-09-17 09:32:18 +02:00
Stephan 9c9ba477aa Merge dev-v7 into dev-v7-contenttypeeditor
Conflicts:
	src/Umbraco.Core/Constants-ObjectTypes.cs
	src/Umbraco.Web.UI.Client/gruntFile.js
	src/Umbraco.Web.UI.Client/src/loader.dev.js
	src/Umbraco.Web.UI.Client/src/views/content/recyclebin.html
	src/Umbraco.Web.UI.Client/src/views/datatype/edit.html
	src/Umbraco.Web.UI.Client/src/views/media/recyclebin.html
	src/Umbraco.Web/Umbraco.Web.csproj
2015-09-16 13:25:32 +02:00
Mads Rasmussen 801892400d move icon picker overlay to overlay folder. Set up default overlay for icon picker 2015-09-15 15:28:10 +02:00
Mads Rasmussen 23578b8550 move item picker to new overlay folder. Set default overlay for an itemPicker. 2015-09-15 15:18:40 +02:00
Mads Rasmussen 20f36357c3 overlay: click button or link if focused instead of submitting form 2015-09-15 14:57:25 +02:00
Mads Rasmussen 0b6b10c81e add enter submit to overlay 2015-09-15 14:45:57 +02:00
Mads Rasmussen 8ac435f6ee Make new overlay version of memberGroupPicker + use in memberGroupPicker property editor. Add support for "standard" overlays in overlay directive 2015-09-15 14:31:14 +02:00
Mads Rasmussen 8710c0e1ca umb-group-builder: Change text on button when reordering tabs and properties 2015-09-15 09:52:00 +02:00
Mads Rasmussen 2fb229bfb7 updates to overlay: add service to manage number of open overlays, add backdrop for overlay + better support for center overlay 2015-09-15 09:50:07 +02:00
Mads Rasmussen e5781c5e76 Notifications: move notifications directive to new component folder, move styles to new less file, move html element to support resizable pane 2015-09-15 09:39:57 +02:00
Mads Rasmussen 1b45286d52 add tabindex="-1" to header navigation 2015-09-11 19:02:30 +02:00
Per Ploug 81f206090d Default listview name on mediatypes 2015-09-11 10:42:48 +02:00
Mads Rasmussen 646f54ff4e change property settings name to textarea + add auto resize 2015-09-11 09:42:01 +02:00
Mads Rasmussen b69e75ee7b umb-auto-resize: remove unnecessary bindings and updates 2015-09-11 09:19:58 +02:00
Mads Rasmussen e5bbfc6c6a set word wrap on alias 2015-09-10 21:03:04 +02:00
Mads Rasmussen 3ad44ae8f8 remove white space between properties 2015-09-10 21:01:36 +02:00
Mads Rasmussen 25e7a243fb make property hover border dashed 2015-09-10 20:41:08 +02:00
Mads Rasmussen f2719692e5 remove fade on active to prevent UI "jumping" 2015-09-10 20:39:26 +02:00
Mads Rasmussen 255cbdbef2 Member: change button to umb-button 2015-09-09 10:07:39 +02:00
Mads Rasmussen 4ee97edf27 Content: change buttons to umb-button and umb-button-group 2015-09-09 10:05:38 +02:00
Mads Rasmussen 0a6398ec60 Data type: change button to umb-button 2015-09-09 10:03:54 +02:00
Mads Rasmussen f2b3ae01a9 Document type: change button to umb-button 2015-09-09 09:58:15 +02:00
Mads Rasmussen dfa5b3344c Media: change button to umb-button 2015-09-09 09:57:19 +02:00
Mads Rasmussen 348263bc72 Media type: change button to umb-button 2015-09-09 09:53:19 +02:00
Mads Rasmussen ce5af1077f Member type: change button to umb-button 2015-09-09 09:42:42 +02:00
Mads Rasmussen f5d0b6756e update umb-button-group directive to work as button group in content section 2015-09-09 09:41:10 +02:00
Mads Rasmussen 84256d67d9 check for key combo 2015-09-09 09:39:15 +02:00
Mads Rasmussen 6b895f5449 add directive for umb-buttons 2015-09-09 09:37:50 +02:00
Mads Rasmussen 3d990228e0 property settings dialog: match validation pattern with dropdown when editing 2015-09-08 09:31:32 +02:00
Mads Rasmussen 0b71136a1e umb-locked-field: lock field on blur 2015-09-08 09:29:05 +02:00
Mads Rasmussen 51a4b24200 add drop shadow to confirm delete 2015-09-08 09:21:45 +02:00
Mads Rasmussen e8c7918afa Property settings dialog: clear validation pattern when nothing is selected 2015-09-03 14:08:29 +02:00
Mads Rasmussen 8825ea9300 Umb confirm delete: move on-outside-click directive to inner div to remove click events when confirm dialog is not open. 2015-09-03 13:32:21 +02:00
Mads Rasmussen 358bb048ea Keyboard shortcuts overview - remove stroke and padding to center align 2015-09-03 13:27:37 +02:00
Mads Rasmussen 3f6a581857 Tags: length check to prevent .js error in content type editor 2015-09-03 12:34:40 +02:00
Mads Rasmussen 1d7dca3d9d file-uploader: add undefined check to prevent .js error in content type editor 2015-09-03 12:30:04 +02:00
Mads Rasmussen a324d99e50 fix up animations on tabs and properties to prevent "element jumping" 2015-09-03 12:26:45 +02:00
Mads Rasmussen 3f97896eac add fade animation to views 2015-09-03 12:19:04 +02:00
Mads Rasmussen 077badd8d7 add load indicators to the rest of the sections 2015-09-03 12:18:17 +02:00
Mads Rasmussen 0701869769 umb-auto-reisze: ie doesn't support scrollWidth in inputs, so set a fallback for IE inputs so they work with auto resize + some refactoring 2015-09-03 11:56:14 +02:00
Mads Rasmussen 36569578a0 Add new editor to media recycle bin 2015-09-01 16:22:52 +02:00
Mads Rasmussen 35eafbd26c add new editor to edit data type 2015-09-01 16:21:36 +02:00
Mads Rasmussen 0ed6b0bdd3 add new editor to content recycle bin 2015-09-01 16:20:43 +02:00
Mads Rasmussen 65623ea5d0 add new editor to dashboards 2015-09-01 16:20:04 +02:00
Mads Rasmussen 7102cdd78c header: use top position when there is no icon 2015-09-01 16:16:28 +02:00
Mads Rasmussen f4d13ea73c just a little nudge to align 2015-09-01 16:15:25 +02:00
Mads Rasmussen 8c8f10ea20 set up new editor on member section - edit 2015-09-01 14:10:45 +02:00
Mads Rasmussen b932270854 move new editor to member section - list 2015-09-01 13:50:02 +02:00
Mads Rasmussen 7ed6eb35f9 move new editor to media section edit 2015-09-01 13:43:26 +02:00
Mads Rasmussen 9f5d5af713 move logic from umb-options-menu to umb-editor-menu 2015-09-01 13:36:43 +02:00
Mads Rasmussen 0ed0ca05d5 change content section to use new editor 2015-09-01 13:34:53 +02:00
Mads Rasmussen 08839f5694 use footer left/right side directives on document type + remove unused classes 2015-09-01 13:30:50 +02:00
Mads Rasmussen 8dff529fea align search and avatar with top of header name field 2015-09-01 13:26:33 +02:00
Mads Rasmussen 343c6fce98 add footer left and right directives to member type 2015-09-01 10:43:19 +02:00
Mads Rasmussen f576e8ce43 add footer left and right directives to media type 2015-09-01 10:41:54 +02:00
Mads Rasmussen 002536b1dc Rename class because it already exists 2015-09-01 10:38:48 +02:00
Mads Rasmussen 604814840e remove unused actions from header 2015-09-01 10:29:44 +02:00
Mads Rasmussen 72b3a430e3 Add possibility to lock header name 2015-09-01 10:28:37 +02:00
Mads Rasmussen b5484a2071 Allow setting tab directive as view. Do not add stroke + extra padding 2015-09-01 10:26:10 +02:00
Mads Rasmussen 76e95968e7 add extra padding to editor footer sides to align with content 2015-09-01 10:23:23 +02:00
Mads Rasmussen 4889b7d930 center align search form 2015-09-01 10:22:40 +02:00
Mads Rasmussen 74780bf4f5 center align avatar 2015-09-01 10:22:08 +02:00
Mads Rasmussen f9577cbe2a add directives to left and right side content in editor footer 2015-09-01 10:21:00 +02:00
Mads Rasmussen 9f7c577192 add directive for breadcrumbs 2015-09-01 10:18:23 +02:00
Mads Rasmussen 44f5eb46c9 add width indent to overlays + keep all overlays open in groups builder 2015-08-28 13:21:32 +02:00
Mads Rasmussen 8237282a6d add loader to icon picker 2015-08-28 13:15:28 +02:00
Mads Rasmussen 17830bce38 add loader to member type 2015-08-28 13:14:11 +02:00
Mads Rasmussen b38d7340f4 add loader to media type 2015-08-28 13:13:18 +02:00
Mads Rasmussen f042db66f4 add loader to document type 2015-08-28 13:12:37 +02:00
Mads Rasmussen 6f51660406 add new loader directive 2015-08-28 13:09:35 +02:00
Mads Rasmussen 58c0127b6e refactor umb editor toolbar directive to follow angular style guide 2015-08-28 13:05:01 +02:00
Mads Rasmussen 8219429cc1 refactor umb editor view directive to follow angular style guide 2015-08-28 13:04:18 +02:00
Mads Rasmussen 4cce3c6f1b refactor umb editor sub views directive to follow angular style guide 2015-08-28 13:02:53 +02:00
Mads Rasmussen ef0478359a refactor umb editor header directive to follow angular style guide 2015-08-28 13:01:31 +02:00
Mads Rasmussen 3e4c5114a8 refactor umb editor navigation directive to follow angular style guide 2015-08-28 13:00:29 +02:00
Mads Rasmussen 906524529d refactor umb editor menu directive to follow angular style guide 2015-08-28 12:59:55 +02:00
Mads Rasmussen 9ad8883712 refactor umb editor footer directive to follow angular style guide 2015-08-28 12:58:50 +02:00
Mads Rasmussen 97f7b52881 delete unused editor actions directive 2015-08-28 12:57:37 +02:00
Mads Rasmussen 1b7f204bb3 refactor umb editor container directive to follow angular style guide 2015-08-28 12:57:00 +02:00
Mads Rasmussen 3b2b004e59 refactor umbbuttongroup directive to follow angular style guide 2015-08-28 12:56:03 +02:00
Mads Rasmussen 51a4b53af2 inject formHelper to directive to fix js error after refactor 2015-08-28 12:46:36 +02:00
Mads Rasmussen 36fe9978aa delete unused sub views directive 2015-08-27 15:23:53 +02:00
Mads Rasmussen 713d33a6c5 refactor overlay directive to follow angular style guide 2015-08-27 15:02:13 +02:00
Mads Rasmussen 77247d09bc fix js error in umbblockedfield 2015-08-27 14:57:42 +02:00
Mads Rasmussen 7ab11966b1 fix js error in umbblockedfield 2015-08-27 14:42:46 +02:00
Mads Rasmussen e330c63034 header: add wrapper to limit input width. Rename some styles 2015-08-27 14:25:01 +02:00
Mads Rasmussen 42ae182c2b refactor umblockedfield directive to follow angular style guide 2015-08-27 13:27:06 +02:00
Mads Rasmussen 69c479c576 Rename directive function 2015-08-27 12:30:10 +02:00
Mads Rasmussen 87236cbfbd Rename directive function 2015-08-27 12:28:40 +02:00
Mads Rasmussen c74f67606d fix tab indent 2015-08-27 12:23:56 +02:00
Mads Rasmussen 9104b99b30 Refactor property controller to follow angular style guide 2015-08-27 11:50:05 +02:00
Mads Rasmussen 2fc6ab611a add IIFE to property settings dialog controller 2015-08-27 11:23:02 +02:00
Mads Rasmussen ee1055339c refactor property settings dialog to use controller as syntax 2015-08-27 11:12:12 +02:00
Mads Rasmussen 0bedc11b36 clean white space in property settings dialog 2015-08-27 10:42:30 +02:00
Mads Rasmussen 6e5dda5d4f delete unused data type controller + clean white space 2015-08-27 10:41:35 +02:00
Mads Rasmussen 220acc6200 delete unused composition controller + clean white space 2015-08-27 10:40:05 +02:00
Mads Rasmussen 13dc10057f Fixes: U4-6979 Property type picker icons does not align 2015-08-27 10:11:10 +02:00
Mads Rasmussen aa3089ef5f add content type scope value to list view directive - is used to set the right list view name 2015-08-27 10:00:53 +02:00
Mads Rasmussen d1e399e4ed add content type scope value to group builder - is used to getting the right content type when using composition 2015-08-27 09:56:50 +02:00
Mads Rasmussen a7133ca41e load in media type controller for permissions view 2015-08-26 14:17:06 +02:00
Mads Rasmussen dfde340a26 load in media type view for media types - not document type views 2015-08-26 14:16:13 +02:00
Mads Rasmussen 3c817ca3e3 add getAll method to media type resources 2015-08-26 14:15:11 +02:00
Per Ploug 23a5ac439b Removes the old type trees and sets the right order on the new 2015-08-26 12:18:42 +02:00
Per Ploug 94b09a4568 Fixes issues with the merged contenttype mapper
Mediatype, membertype and contenttype all use the same core mapper, with
small variations between each type - it is however important in what
order the mappers are added.
2015-08-26 12:07:43 +02:00
Mads Rasmussen ca88d9cbc2 Property settings: When selecting custom validation pattern - focus on input 2015-08-25 12:58:26 +02:00
Mads Rasmussen 8579cdcf45 umb-locked-field: make lock + color darker when field is unlocked 2015-08-25 12:57:16 +02:00
Mads Rasmussen fea038ccd4 property settings: property validation null check + remove textarea when no validation type is chosen. 2015-08-25 10:56:05 +02:00
Mads Rasmussen 0ea15d630c umb-locked-field: auto focus field when unlocked 2015-08-25 10:54:03 +02:00
Mads Rasmussen 126c6f8be6 always focus name in data type settings dialog 2015-08-25 10:23:01 +02:00
Mads Rasmussen 7524abc68e always focus header name field 2015-08-25 10:19:59 +02:00
Mads Rasmussen b3653e840f Switch back to ng-if on elements in header, and accept $parent, to prevent unwanted watchers to make sure focus directive works as it should. This should be possible to change from angular v 1.3. 2015-08-25 10:15:38 +02:00
Mads Rasmussen d1964cee45 always focus name field on property settings dialog 2015-08-25 10:11:01 +02:00
Mads Rasmussen b6e87ae0d7 umb-auto-focus: add attribute to allow focus on filled inputs 2015-08-25 10:09:52 +02:00
Mads Rasmussen 374c718d49 Validation pattern match - check for empty and undefined 2015-08-24 15:58:04 +02:00
Mads Rasmussen ce22988850 start to move content type editor to media types 2015-08-24 15:32:03 +02:00
Mads Rasmussen 9748153570 Remove unused style 2015-08-24 14:47:05 +02:00
Mads Rasmussen 8945cd28ea fix safari margin issue on icon 2015-08-24 14:19:35 +02:00
Mads Rasmussen f93fc55506 fix visual bug in safari where alias text is invisible 2015-08-24 13:37:19 +02:00
Mads Rasmussen 518bdd3da3 remove unused animations 2015-08-24 13:34:37 +02:00
Mads Rasmussen 3eed1d6df8 add postcss autoprefixer to watch task 2015-08-24 13:29:07 +02:00
Mads Rasmussen c0b06a4cec Added grunt-postcss to auto-prefix the css files + minify all css files. 2015-08-24 12:22:51 +02:00
Mads Rasmussen 8d70265f02 Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-08-20 09:22:13 +02:00
Per Ploug Krogslund 77a8d2e99b Method rename 2015-08-19 22:45:39 +02:00
Per Ploug Krogslund f2b78e7bfa csproj file update 2015-08-19 22:38:15 +02:00
Per Ploug Krogslund 0f4596c897 Cleanup the mappers and the display classes 2015-08-19 22:38:08 +02:00
Per Ploug Krogslund a7065d083e ContentType + MediaType trees 2015-08-19 22:37:41 +02:00
Mads Rasmussen f176a8f52d Remove navigation item outline on click in some browsers 2015-08-19 16:08:55 +02:00
Mads Rasmussen 80b52614fe clean up groups-builder directive 2015-08-19 16:08:14 +02:00
Mads Rasmussen e8c3c0b1ed change to eventbind array when unbinding 2015-08-19 16:07:45 +02:00
Mads Rasmussen 782dd6aad7 Add detail overlay to editor picker. This way users can see the full title of editors and the picker is ready to have descriptions of each editor. 2015-08-19 13:49:12 +02:00
Mads Rasmussen 72c3dd4ef9 Add description area for help texts and descriptions in the overlay 2015-08-19 13:29:03 +02:00
Mads Rasmussen 45432431c9 Hide header navigation if there is only 1 item 2015-08-19 13:26:06 +02:00
Mads Rasmussen 73db2a2727 more simple names for toggling compositions and sorting on groups-builder directive 2015-08-19 13:23:41 +02:00
Per Ploug Krogslund 5778a45c95 default content type icon 2015-08-18 22:31:54 +02:00
Per Ploug Krogslund f4e1349a00 Filter out list views from the property type list 2015-08-18 22:31:54 +02:00
Mads Rasmussen af82ac0c47 update member types editor 2015-08-18 15:21:52 +02:00
Mads Rasmussen 6b52edaf36 Validate form before submit - still need to show messages 2015-08-18 15:19:18 +02:00
Mads Rasmussen fd1ccdea65 delete unnecessary list view controller 2015-08-18 15:11:04 +02:00
Mads Rasmussen b0dbc05e2e delete unnecessary design controller 2015-08-18 15:10:30 +02:00
Mads Rasmussen 16b3a5ffd7 We need to use ng-if on alias and accept $parent in model. As far as I can read from Angular 1.3 ng-if will not make isolated scope, and we can remove $parent. 2015-08-18 12:22:52 +02:00
Mads Rasmussen 5213f9bfba Only change back to init state if editor is empty. Label wasn't the best solution because it is possible to change from outside the dialog 2015-08-18 12:05:30 +02:00
Mads Rasmussen a6a65746a1 use ng-show instead of ng-if. ng-if breaks val-form-manager 2015-08-18 12:03:32 +02:00
Mads Rasmussen 6f99d32085 Do not check for undefined on alias 2015-08-18 12:01:27 +02:00
Mads Rasmussen 1d97292bef Remove hard coded icon- class prefix to allow usage of any icon 2015-08-18 10:08:47 +02:00
Mads Rasmussen a09effd9e3 Remove hard coded icon- class prefix to allow usage of any icon 2015-08-18 09:28:09 +02:00
Mads Rasmussen bf347c927e Custom list view name based on alias instead of name - still need to fix server 2015-08-17 20:19:04 +02:00
Mads Rasmussen e89d053914 unbind list view watcher 2015-08-17 20:15:51 +02:00
Mads Rasmussen 22632e5230 Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-08-14 11:30:40 +02:00
Mads Rasmussen d61ab5ff1a Reorder flow when adding a property to a group so you enter settings after choosing one + rearrange editor picker dialog with tabs. 2015-08-14 11:22:01 +02:00
Mads Rasmussen 4fa08f28f9 add extra class to old header tabs to compensate for new styles 2015-08-14 10:35:27 +02:00
Mads Rasmussen 1891bea3e5 Add support for tabs to umb-editor-header 2015-08-14 10:34:15 +02:00
Mads Rasmussen ea766af41f Make directive for tabs 2015-08-14 10:31:53 +02:00
Shannon 930b61a7ff Merge branch 'dev-v7' into dev-v7-contenttypeeditor
Conflicts:
	src/Umbraco.Web.UI.Client/src/less/belle.less
2015-08-13 11:09:04 +02:00
Per Ploug Krogslund e1fd1ab5e5 include property type editor 2015-08-11 13:22:33 +02:00
Per Ploug Krogslund 0c125736a1 client side change for getting grouped editors 2015-08-11 11:52:30 +02:00
Per Ploug Krogslund fc565fbae2 Simplified the merging of property editors VS types 2015-08-11 11:52:30 +02:00
Per Ploug Krogslund 1ff7b34b86 revalue flag on basic datatype 2015-08-11 11:52:29 +02:00
Mads Rasmussen d7f9cb0278 show content type, when data is ready. 2015-08-11 11:04:41 +02:00
Mads Rasmussen 69a9461c3e Clean up header + used directives - remove $parent, set more focus on name field, place alias inside name field to show relation. 2015-08-11 11:03:55 +02:00
Mads Rasmussen ce127ad215 Remove unnecessary headline in data type settings dialog 2015-08-11 11:01:07 +02:00
Mads Rasmussen c32165a838 remove validation from locked field directive - need to place it somewhere else 2015-08-11 10:57:53 +02:00
Mads Rasmussen a9b7d43502 Umb auto resize: Only resize length of text inputs and height of textareas. Set inputs with no data the width of the placeholder. 2015-08-11 10:53:17 +02:00
Mads Rasmussen 91b405795e Add more descriptive labels to grid selector 2015-08-11 10:52:08 +02:00
Mads Rasmussen 8f248479d3 Only allow adding new tabs when there are properties in the previous 2015-08-11 10:50:30 +02:00
Mads Rasmussen 597687c2ae show text when reordering with no tabs added 2015-08-11 10:46:35 +02:00
Mads Rasmussen 69ddf5f1ba Close confirm delete on out side click 2015-08-11 10:43:55 +02:00
Asbjørn Riis-Knudsen 0aacf6f8f4 Fix styling issues from merging 2015-08-09 22:37:36 +02:00
arknu 6de9989285 delete Change password tab from Dashboard.config 2015-08-09 21:53:34 +02:00
arknu ac4b151f11 styling fixes for user flyout password form 2015-08-09 21:52:56 +02:00
arknu 88b1d11575 initial move of change password feature to user flyout, still needs styling 2015-08-09 21:49:53 +02:00
arknu d64040f503 U4-5523: Move Change password to user flyout 2015-08-09 21:47:27 +02:00
Shannon 9313b8b74a Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-08-05 17:27:53 +02:00
Shannon 925757afc5 Merge branch 'dev-v7' into dev-v7-contenttypeeditor 2015-08-05 17:27:40 +02:00
Mads Rasmussen 71b3982ad8 Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-08-05 15:58:45 +02:00
Mads Rasmussen 68955b04c8 Preselet matching validation type in property settings 2015-08-05 15:56:58 +02:00
Mads Rasmussen 1b4b9469f3 rename save to overwrite because it confused testers that it did not create a new data type 2015-08-05 15:50:27 +02:00
Mads Rasmussen 62403313f4 clean up add init property so it only happens from function 2015-08-05 15:49:16 +02:00
Shannon 270491a04d reverts media controller ... now need to figure out where to put showing notifications on drag/drop file uploads. 2015-08-05 13:45:20 +02:00
Shannon 2f1877c2cd Merge branch 'dev-v7' into dev-v7-contenttypeeditor 2015-08-05 13:39:30 +02:00
Mads Rasmussen 0f37809e17 allow more than 1 digit in property number validation 2015-08-05 12:54:02 +02:00
Mads Rasmussen e269331724 fix model binding to use label instead of name 2015-08-05 10:36:59 +02:00
Mads Rasmussen 675d583f27 remove unused templates dialog. It uses generic itemPicker dialog instead 2015-08-05 10:29:15 +02:00
Mads Rasmussen 04767bff7b remove unused content types dialog. It uses generic itemPicker dialog instead 2015-08-05 10:28:02 +02:00
Mads Rasmussen a4e0d2c60c Move update tabs sort order logic to it's own function 2015-08-05 10:21:35 +02:00
Mads Rasmussen 5712fbfead Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-08-04 18:40:29 +02:00
Shannon 85534bc3ce Merge branch 'dev-v7' into dev-v7-contenttypeeditor
Conflicts:
	src/Umbraco.Web.UI.Client/bower.json
	src/Umbraco.Web.UI.Client/gruntFile.js
	src/Umbraco.Web.UI.Client/src/common/directives/editors/umbAutoResize.directive.js
	src/Umbraco.Web.UI.Client/src/common/directives/imaging/umbimagefolder.directive.js
	src/Umbraco.Web.UI.Client/src/common/directives/util/delayedMouseLeave.directive.js
	src/Umbraco.Web.UI.Client/src/less/application/grid.less
	src/Umbraco.Web.UI.Client/src/views/common/dialogs/mediapicker.controller.js
	src/Umbraco.Web/Umbraco.Web.csproj
2015-08-04 17:10:58 +02:00
Mads Rasmussen 571dc3dc6c strict filtering on alias's for templates 2015-08-04 12:46:44 +02:00
Mads Rasmussen aef11f22a5 Template section. Move watch logic from controller to directive. Setup logic for doc types with and without template 2015-08-04 12:45:06 +02:00
Mads Rasmussen 022de26729 Add create doc type with and without template to create dialog 2015-08-04 11:50:37 +02:00
Mads Rasmussen c1db51c62e child selector directive - unbind watchers on destroy 2015-08-03 10:08:21 +02:00
Mads Rasmussen 8e78e91543 Validate alias + editor in property settings dialog. Move locked field styles to it's own file. 2015-08-03 10:07:23 +02:00
Mads Rasmussen cd7597b586 Moved group builder dialogs from 1 model into their own models to be able to revert changes. Apply dialog changes on submit, revert on cancel. Refactored js based on on this change. Do not close dialogs underneath when clicking on stacked dialogs. 2015-07-31 09:35:26 +02:00
Mads Rasmussen ae18962363 Add submit button to composition dialog 2015-07-30 11:29:39 +02:00
Mads Rasmussen 297893fb39 place form inside overlay div 2015-07-30 10:49:57 +02:00
Mads Rasmussen 564a979bdd WIP: add validation to overlay, validate property name. 2015-07-30 09:58:50 +02:00
Mads Rasmussen 3afbddbd42 Add placeholder texts to alias's. Only generate alias's on the server to remove mismatches. 2015-07-30 09:55:51 +02:00
Mads Rasmussen 134b8bc3f7 Fixed U4-6876: Added sort order to properties 2015-07-30 09:48:59 +02:00
Mads Rasmussen ee95009358 Fixed: U4-6876 add sort order to tabs 2015-07-28 20:22:49 +02:00
Mads Rasmussen 475ba85bf8 Hot key directive: if shortcut is enter - do not click if a button or links has focus, but click focused element instead 2015-07-28 19:53:17 +02:00
Mads Rasmussen e42c2cdf7f change overlay submit keyboard shortcut to enter 2015-07-28 19:51:45 +02:00
Mads Rasmussen 18fb600931 add esc as keyboard shortcut for closing keyboard shortcut overlay 2015-07-27 13:23:51 +02:00
Mads Rasmussen 33b20e95d3 Change multinode tree picker remove icon to link - to prevent overlay from closing when clicking 2015-07-27 10:31:27 +02:00
Mads Rasmussen 0f41749733 Change image cropper remove icon to link - to prevent overlay from closing when clicking 2015-07-27 09:52:28 +02:00
Mads Rasmussen 3c96875f5a Change media picker remove icon to link - to prevent new overlay from closing when clicking 2015-07-27 09:43:24 +02:00
Mads Rasmussen 05ba88020f add parent node to available if list is empty 2015-07-16 15:58:27 +02:00
Mads Rasmussen c03d369f7d roll back to ng-if on name in header for now, the auto-focus directive does not work with ng-show. 2015-07-16 15:57:55 +02:00
Mads Rasmussen b2bb416c53 make data type name and view into links 2015-07-16 12:45:28 +02:00
Mads Rasmussen da8bfac1ea add auto focus to icon picker filter 2015-07-16 12:27:49 +02:00
Mads Rasmussen c2574d7bfe Restyling of composition checkbox list, added composition descriptions. 2015-07-16 12:24:21 +02:00
Mads Rasmussen 6a569ab0dc change ng-if to ng-show in header to prevent isolated scopes. 2015-07-16 12:14:16 +02:00
Per Ploug Krogslund 495493f2c5 Updates existing property types in mapper correctly 2015-07-16 11:12:40 +02:00
Per Ploug Krogslund 1f0e96160b Enable a contenttype to be allowed under itself 2015-07-16 10:51:25 +02:00
Mads Rasmussen 01a571371c Add dashed border when content type name is missing + fixed input height. 2015-07-15 19:11:51 +02:00
Mads Rasmussen 538155b6a1 show child node and template shortcut in overview 2015-07-15 15:45:59 +02:00
Mads Rasmussen 09de56664a add keyboard shortcut to umb grid selector directive 2015-07-15 15:44:10 +02:00
Mads Rasmussen c88da53a09 add keyboard shortcut to child selector directive 2015-07-15 15:42:53 +02:00
Mads Rasmussen 800d1abda0 overlay directive: if position is set to target but the mouse x and y is undefined use position center instead (used when a keyboard shortcut triggers the overlay) 2015-07-15 15:41:43 +02:00
Mads Rasmussen 03e10e1882 fix header position on center overlays 2015-07-15 15:29:15 +02:00
Mads Rasmussen 067e4a468c add keyboard shortcut overview to sections 2015-07-15 13:27:28 +02:00
Mads Rasmussen 9742ee74bf Add possibility to add key range in shortcut overview directive 2015-07-15 13:25:59 +02:00
Mads Rasmussen d4b13419c1 change dialog submit keyboard shortcut to alt+shift+s to fix problem with hitting enter on focused elements. 2015-07-15 12:37:25 +02:00
Mads Rasmussen de79be6ec1 make tab and property placeholders in to links to make them better "tabable". 2015-07-15 12:36:09 +02:00
Mads Rasmussen 7fa23140f1 Editor navigation: make buttons into links and add numbers as hotkeys 2015-07-15 12:27:33 +02:00
Mads Rasmussen c3a30cccfb hot key directive: fix issue when setting numbers as hotkeys + if a hotkey only consist of one key, disable keyboard shortcut in input's. 2015-07-15 12:25:02 +02:00
Mads Rasmussen d7aed9069d fix issue when removing multiple tabs from a composition 2015-07-15 10:46:56 +02:00
Mads Rasmussen 5ed9d4766f fix min height on tabs when sorting and adding new tabs 2015-07-14 11:52:31 +02:00
Mads Rasmussen 2655a26e9b Add keyboard shortcut for allow as root 2015-07-14 11:02:56 +02:00
Mads Rasmussen 56d1a09e8f Fix issues with child nodes: convert from array of primitives to array of objects and back again. Sync name and icon when changing on content type. 2015-07-14 10:53:12 +02:00
Mads Rasmussen bb1f9c0a42 Fixed: U4-6829 Client side set flag inherited = false when adding a property to a tab. 2015-07-14 10:25:19 +02:00
Mads Rasmussen c23afee261 Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-07-13 19:38:30 +02:00
Mads Rasmussen 71c14b6944 Added shortcut to add editor 2015-07-13 16:13:30 +02:00
Mads Rasmussen 263fd4b162 Added shortcut to edit data type 2015-07-13 16:12:22 +02:00
Mads Rasmussen fa5ebd13de added shortcut to toggle list view 2015-07-13 16:11:21 +02:00
Mads Rasmussen 95bbcc35a4 added shortcut to add property 2015-07-13 16:10:38 +02:00
Mads Rasmussen a9cb694c2d added shortcut to add tab 2015-07-13 16:10:08 +02:00
Mads Rasmussen fc8751f897 WIP: added directive to show a keyboard shortcuts overview 2015-07-13 16:06:51 +02:00
Mads Rasmussen 7d85074387 accept hotkey on div elements 2015-07-13 15:57:45 +02:00
Shannon 4c1a65283a Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor
Conflicts:
	src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs
2015-07-13 15:42:25 +02:00
Shannon ff71d5b88f Fixes issue with custom property editors/data types when no group is assigned - was getting null ref exceptions. 2015-07-13 15:40:57 +02:00
Shannon 8521dfb0d7 Fixes issue that you could not remove a property group, fixes issue that the inherited flag during mapping wasn't set on a standalone parent property group, updated/created tests to support. 2015-07-13 15:29:00 +02:00
Mads Rasmussen 111be2dd8d add filter to item picker overlay 2015-07-13 14:55:20 +02:00
Mads Rasmussen 5c538426e5 clean up hotkey directive keyboardService on $destroy 2015-07-13 14:50:26 +02:00
Shannon bfe4f79b7c Fixes security on member, content and media type controllers 2015-07-13 14:21:33 +02:00
Shannon 913505c547 Fixes a backoffice IsAuthenticated check to ensure it's the correct identity type 2015-07-13 14:21:13 +02:00
Shannon 1e8bee9826 Fixes mapping tests, simplifies property group mappings, adds another test to test composition mappings. 2015-07-13 13:42:40 +02:00
Shannon ae32f49243 Updates permissions on DataTypeController 2015-07-13 13:41:34 +02:00
Shannon bb8864f51b ensures that when setting the PropertyType's property on a PropertyGroup that the PropertyGroupId is set 2015-07-13 13:41:15 +02:00
Per Ploug Krogslund 446d158ff7 Fixes issues related to default templates
Ensures default template is created on new, properly updates Ids on
allowed templates and makes default template correct
2015-07-13 12:11:28 +02:00
Shannon 2e088fa036 Merge branch 'dev-v7' into dev-v7-contenttypeeditor
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
	src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs
	src/Umbraco.Web/Umbraco.Web.csproj
2015-07-13 09:49:34 +02:00
Mads Rasmussen 6b18e19ea3 Template section: only add name watcher on new types 2015-07-10 12:28:35 +02:00
Mads Rasmussen 993a517ec5 umb button group: added hot key to submit 2015-07-10 12:15:25 +02:00
Mads Rasmussen 1d0f24fb2d Umb-overlay: add hotkeys to submit and close overlay 2015-07-10 12:12:32 +02:00
Mads Rasmussen 70e5731ee4 Edit data type: when data type name is changed - switch the default save button to save as new 2015-07-10 11:59:53 +02:00
Mads Rasmussen 09941be089 umb button group: set default button based on property value to make it easier to switch default button from outside the directive. 2015-07-10 11:57:11 +02:00
Mads Rasmussen 4ae0dbbdbf comment out user configured and custom property editors in editor picker 2015-07-10 10:00:24 +02:00
Mads Rasmussen 2eea8da101 insert template placeholder as default template on new content types 2015-07-10 09:42:18 +02:00
Per Ploug Krogslund 1ea7d062f2 Property types can now delete properly on changed types 2015-07-07 21:13:35 +02:00
Per Ploug Krogslund 446b434408 passes the scope correctly to the resetform
+ fixes a couple of eslint issues
+ adds notification
2015-07-07 21:13:12 +02:00
Per Ploug Krogslund fc1c3697d5 Adds delete method to delete dialog 2015-07-07 21:12:26 +02:00
Per Ploug Krogslund 89088b1e92 Changes safeAlias response to object 2015-07-07 21:12:12 +02:00
Mads Rasmussen 9e875e404c set header name and alias to $parent to bind to scope. Set auto focus on name 2015-07-07 19:39:44 +02:00
Per Ploug Krogslund 798cbb8190 Create a defaultTemplate if it doesn't exist 2015-07-07 18:53:58 +02:00
Mads Rasmussen 05a411d54a add "fake" template as default for new content types 2015-07-07 14:24:30 +02:00
Mads Rasmussen 8e8c66fcfa fix issue with enabling list view on new content types 2015-07-07 12:42:14 +02:00
Per Ploug Krogslund 76d9efb398 Default listview and custom listview lookup 2015-07-07 11:29:53 +02:00
Mads Rasmussen 15dcf43dd3 remove hyphens in list view directive name 2015-07-07 10:05:33 +02:00
Mads Rasmussen 2846c0c6b1 add confirm delete directive + add it to removing properties and tabs 2015-07-07 09:46:26 +02:00
Mads Rasmussen f7eaec3696 add composition groups to the top of the content type array 2015-07-06 21:40:00 +02:00
Per Ploug Krogslund 583c18bdd3 Merges in parent ct names on each tab 2015-07-06 15:19:20 +02:00
Per Ploug Krogslund 0bf86e8286 Adds list view name for the content type 2015-07-06 15:19:20 +02:00
Mads Rasmussen 2cdf2c91de Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-07-06 14:21:33 +02:00
Per Ploug Krogslund 955f1eacf8 Changes the order of inherited properties on tabs 2015-07-06 14:15:23 +02:00
Mads Rasmussen 19585b21fa prevent closing new dialog when you click on the old dialog 2015-07-06 13:50:06 +02:00
Mads Rasmussen 4eb22b65c7 add auto focus to editor picker filter 2015-07-06 11:08:02 +02:00
Mads Rasmussen 13b7ca968a fix issue with generating alias on a new content type 2015-07-06 09:26:46 +02:00
Mads Rasmussen e4fab5b6cc make add editor link blue 2015-07-06 09:23:03 +02:00
Mads Rasmussen 1bbbce469c lighten up property text placeholders 2015-07-06 09:22:37 +02:00
Mads Rasmussen a97e826efa set placeholder for icon - if none is chosen. Remove header elements if they are undefined 2015-07-03 10:06:44 +02:00
Mads Rasmussen 4924da9232 overwrite data type will update all other data types with the same id 2015-07-02 10:42:40 +02:00
Mads Rasmussen 76b3ab1276 Make directive for list view + use directive in content type editor 2015-07-02 09:45:39 +02:00
Mads Rasmussen 6a780df09a When selecting property editors with no data type - create new data type. 2015-07-01 15:05:16 +02:00
Mads Rasmussen 939be565f0 data type picker - filter out user configured data types from system data types 2015-06-30 15:22:10 +02:00
Mads Rasmussen c3d5d84c12 set default cursor on inherited preview hover 2015-06-30 15:21:06 +02:00
Mads Rasmussen 281e14a946 load in data type details for each merged composition property 2015-06-30 15:19:38 +02:00
Mads Rasmussen 936278fecb remove double watcher on property in umb-group-builder 2015-06-30 14:17:35 +02:00
Mads Rasmussen 282e2fb786 Generate alias: wait for alias from input before activating 2015-06-30 14:16:41 +02:00
Mads Rasmussen a43ba3eed2 Add fade in animation to overlay 2015-06-30 12:17:27 +02:00
Mads Rasmussen 5001e28750 Permissions section: Check for legacy icons on allowed child nodes 2015-06-30 11:34:10 +02:00
Mads Rasmussen face274b93 Property picker overlay: remove filtered out sections 2015-06-30 10:25:06 +02:00
Mads Rasmussen 582df08032 use umb-card-grid class in item picker overlay 2015-06-30 10:24:08 +02:00
Mads Rasmussen 4ec2baf532 Generate alias directive: call service to get safe alias. 2015-06-29 19:51:40 +02:00
Mads Rasmussen de559d951c Move content type editor design section to directive. Clean up HTML and CSS. 2015-06-29 19:49:24 +02:00
Per Ploug fee58358fb Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-06-26 13:21:16 +02:00
Per Ploug e736835469 Adds GetSafeAlias to contentTypeResource 2015-06-26 13:21:08 +02:00
Mads Rasmussen 7131a002df move the child node selector into a directive, move styles. use BEM methodology for stylesheet 2015-06-25 22:22:46 +02:00
Mads Rasmussen b66528f14e Move template picker into generic directive 2015-06-25 21:19:22 +02:00
Mads Rasmussen cb2ad05d3d Merge branch 'ct-local' into dev-v7-contenttypeeditor 2015-06-25 21:10:04 +02:00
Shannon 035318753b Merge remote-tracking branch 'origin/dev-v7' into dev-v7-contenttypeeditor
Conflicts:
	src/Umbraco.Web/Umbraco.Web.csproj
2015-06-25 17:35:58 +02:00
Per Ploug 888ba8f285 Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-06-25 11:49:08 +02:00
Per Ploug fc323ae89d Include EsLint in grunt
ESlint is not turned on by default - as it gives us 500ish errors as of
the current state of the codebase, also, we should start linting
controllers (why arent we?)

EsLint contains angular best practices rules and will help us get V8
ready for Angular2 and to follow best practices, untill everything
passes we can turn it on and off during clean-up time
2015-06-25 11:49:00 +02:00
Per Ploug 3565d1e26b Manifest parser tests updated to include icon and group 2015-06-25 11:43:51 +02:00
Shannon 693b87a527 Fixes upgrade issue 2015-06-25 11:15:04 +02:00
Mads Rasmussen c50195843c fix disabling sortable issue when tab/property is inherited after controller as update 2015-06-25 11:10:44 +02:00
Mads Rasmussen 07225f0e43 umb-locked-field lock icon align top 2015-06-25 11:08:30 +02:00
Mads Rasmussen fbfa0b597b fix problem with overlapping fields in editor header 2015-06-25 11:07:07 +02:00
Mads Rasmussen 01bf84664a compress property preview fields 2015-06-25 11:04:45 +02:00
Shannon 3c04f43abc Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-06-25 10:23:33 +02:00
Shannon da7b0e34d2 fixes test 2015-06-25 10:22:34 +02:00
Shannon fc7932c2bf Merge remote-tracking branch 'origin/dev-v7' into dev-v7-contenttypeeditor
Conflicts:
	src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs
	src/Umbraco.Web.UI.Client/bower.json
	src/Umbraco.Web.UI.Client/gruntFile.js
	src/Umbraco.Web.UI.Client/src/less/property-editors.less
2015-06-25 10:16:35 +02:00
Per Ploug f8beb5ec3f Use IEnumerable instaed of List for fetching datatypes 2015-06-25 10:09:55 +02:00
Per Ploug 9c8489c4c5 Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-06-24 21:43:22 +02:00
Per Ploug 8679c26f3d Added icons and groups on all core editors 2015-06-24 21:43:14 +02:00
Shannon 6a7c4e9dc1 Merge remote-tracking branch 'origin/dev-v7' into dev-v7-contenttypeeditor 2015-06-24 15:20:32 +02:00
Per Ploug 4b72fc3642 Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-06-24 12:54:16 +02:00
Per Ploug 5e81aed928 Adds icon and group to property editor classes 2015-06-24 12:54:06 +02:00
Per Ploug 15c1477907 Moves localization directive into seperate folder 2015-06-24 12:53:10 +02:00
Per Ploug 933f97fef7 Umb-editor and Umb-Property-Editor into 1 file
only done to keep backwards compat and avoid dublicate code.
2015-06-24 12:52:27 +02:00
Per Ploug c9008c9946 Renames ContentType Create function as it broke another create dialog 2015-06-24 12:51:24 +02:00
Per Ploug e254e241b5 Fixes missing progress bars and large file error 2015-06-24 12:50:36 +02:00
Per Ploug 945858bbbc Cleanup unused directives
Removes the old upload directives and unused buttongroup directive
2015-06-24 12:50:02 +02:00
Shannon 8f4da31f0b removes old grunt-bower task. 2015-06-24 11:34:50 +02:00
Shannon d7fc15dd67 Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-06-24 11:15:46 +02:00
Shannon fde162b086 Fixes up bower installer, no longer using grunt-bower-task since it is old and doesn't support the copying that we need, updates to latest bower dependency 2015-06-24 11:15:04 +02:00
Mads Rasmussen 73e54ea402 test out controller as syntax for sub views controllers + fix problems with the sub views directive caused by this approach 2015-06-24 11:00:00 +02:00
Per Ploug 34893d5f53 Delete dublicate event file 2015-06-24 10:22:22 +02:00
Per Ploug 6d6bcff233 Moves on-delayed-mouseleave to events directives
Keep all these utillity events in one file
2015-06-24 10:22:10 +02:00
Shannon c64bd5f65a Merge remote-tracking branch 'origin/dev-v7-contenttypeeditor' into dev-v7-contenttypeeditor
Conflicts:
	src/Umbraco.Web.UI.Client/bower.json
2015-06-24 09:52:46 +02:00
Shannon 32e0cbc886 updates bower/grunt file for new ng file upload 2015-06-24 09:51:36 +02:00
Per Ploug 1e5b8eb0fc Removes unused bower dependencies from bower.json 2015-06-23 22:59:17 +02:00
Per Ploug dada265736 Adds jquery event unbinding
Updates the dom event binding to use the newer on/off instead of
bind/unbind.
Adds off() to all dom event directives triggered by scope.on($destroy).
2015-06-23 22:58:47 +02:00
Shannon aad82360ad Merge branch 'dev-v7' into dev-v7-contenttypeeditor
Conflicts:
	src/Umbraco.Web.UI.Client/bower.json
	src/Umbraco.Web.UI.Client/src/app.dev.js
	src/Umbraco.Web.UI.Client/src/less/application/grid.less
	src/Umbraco.Web.UI.Client/src/less/panel.less
	src/Umbraco.Web.UI.Client/src/loader.js
	src/Umbraco.Web/Umbraco.Web.csproj
2015-06-23 18:27:18 +02:00
Per Ploug a53166828a Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-06-23 14:08:15 +02:00
Per Ploug 3212bfa4b6 New upload field + dependencies 2015-06-23 14:08:02 +02:00
Mads Rasmussen da18a89540 move design view logic from edit.controller to design.controller 2015-06-23 13:58:43 +02:00
Mads Rasmussen 7b547a3ad1 create service for data type helper function. call createPreValueProps from helper service 2015-06-23 11:39:54 +02:00
Mads Rasmussen 759599b426 call addInitTab from new service 2015-06-23 11:18:02 +02:00
Mads Rasmussen f4aff7752c move content type logic from controller to new service 2015-06-23 11:13:20 +02:00
Per Ploug 10a5fd91c7 Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-06-23 09:57:27 +02:00
Per Ploug 2e2f8723a0 Set collections on property groups 2015-06-23 09:56:59 +02:00
Per Ploug efd231f6a9 Core Constants Icons class 2015-06-23 09:56:19 +02:00
Mads Rasmussen ea9604c260 sorting: disable properties/tabs when inherited. Remove sorting animation. 2015-06-23 09:25:29 +02:00
Mads Rasmussen a1498b6242 use compareArray filter to filter out data types from property editors 2015-06-22 15:04:19 +02:00
Mads Rasmussen 2067d65704 use compareArray filter to compare selected templates with available templates. Clean up controller 2015-06-22 15:03:02 +02:00
Mads Rasmussen fbc2a6fb4b use compareArray filter to compare selected nodes with available nodes. Clean up controller 2015-06-22 15:01:52 +02:00
Mads Rasmussen 4e2143264c created a custom filter to compare two arrays and remove duplicates based on a compare property 2015-06-22 14:59:25 +02:00
Mads Rasmussen ad52ae0ddb change margins on lock icon 2015-06-22 09:29:26 +02:00
Mads Rasmussen 4d1954cc84 use alias directive in header and property settings dialog 2015-06-22 09:28:50 +02:00
Mads Rasmussen 4aa572629f create directive for generating aliases - still needs server side validation 2015-06-22 09:27:42 +02:00
Mads Rasmussen 5e3d32c88b umb blocked field directive - allow changing lock from outside the directive 2015-06-22 09:17:08 +02:00
Mads Rasmussen 54f6084189 fix issues with split and merge composite content types 2015-06-22 09:13:47 +02:00
Mads Rasmussen f1a2883cd6 forgot rename of remove tab function 2015-06-22 09:12:23 +02:00
Mads Rasmussen 53dfc93c65 allow deletion of empty tabs 2015-06-19 11:33:23 +02:00
Mads Rasmussen 197e5b066a disable edit property settings from property is inherited 2015-06-19 10:47:25 +02:00
Mads Rasmussen 20e852ae31 add basic remove tab functionality 2015-06-19 10:32:54 +02:00
Mads Rasmussen fcbb4e819e Revert "Move property classes to be able to remove margin-bottom from last property in list. Set margin-bottom on last property to 0."
This reverts commit d982ca111d.
2015-06-19 09:10:05 +02:00
Mads Rasmussen d982ca111d Move property classes to be able to remove margin-bottom from last property in list. Set margin-bottom on last property to 0. 2015-06-18 15:09:32 +02:00
Mads Rasmussen 223cd16206 align tab and property sorting handle in sorting mode 2015-06-18 14:50:21 +02:00
Mads Rasmussen c44d0a5ec0 fix bug where it was possible to sort tabs outside sorting mode 2015-06-18 14:41:59 +02:00
madsrasmussen 2cc90fe140 Merge pull request #720 from ordepdev/U4-6725
U4-6725
2015-06-18 13:59:29 +02:00
Mads Rasmussen 5013842189 change design section icon 2015-06-18 13:00:47 +02:00
Mads Rasmussen a4dde5f6db convert legacy icons in permissions section 2015-06-18 12:53:26 +02:00
Mads Rasmussen 318f9ff8d5 move merge and split composite content types into it's own functions. fix bug where split and merge get swapped 2015-06-18 11:14:38 +02:00
Mads Rasmussen fc91189fa2 change templates icon to use icon from model. Change icon on template section to use same icon. 2015-06-18 10:40:58 +02:00
Mads Rasmussen ab1a5eabc1 Remove icon placeholder in header and make a more smooth transition 2015-06-18 10:23:30 +02:00
Mads Rasmussen 8c58aac3ea convert legacy icons 2015-06-18 10:21:32 +02:00
Pedro Tavares f7a01676ab set tab-title-input default width to 0px 2015-06-18 02:20:35 +01:00
Per Ploug d5cfefca39 Adds getAllPropertyEditors to datatype resource 2015-06-17 22:20:41 +02:00
Mads Rasmussen 1ce37dfd9e clean up overlay.less remove unsed style + element in html, fix issue with custom width on centered dialog 2015-06-17 15:55:20 +02:00
Mads Rasmussen 61b9dd6ba9 move action buttons in dialog to the right side 2015-06-17 14:39:20 +02:00
Mads Rasmussen d0af50edb2 less margin-right on property meta in preview 2015-06-17 14:00:29 +02:00
Mads Rasmussen 330b7802cf property dialog use umb-auto-resize directive on text areas + styling 2015-06-17 13:55:59 +02:00
Mads Rasmussen ec6022b05b add auto resize to property preview description + remove resize style 2015-06-17 12:27:25 +02:00
Mads Rasmussen 5fc2299508 Enable/disable list views, create custom list views, remove custom list views. Edit list view data types. 2015-06-17 10:44:40 +02:00
Mads Rasmussen 71afa29570 squeeze properties a bit more 2015-06-16 15:27:27 +02:00
Mads Rasmussen 5a96964549 property preview - change alias input to text 2015-06-16 15:14:28 +02:00
Mads Rasmussen 7358918ae6 remove unused overlay 2015-06-16 15:06:22 +02:00
Mads Rasmussen 643f499bdc fix property preview alignment 2015-06-16 15:05:43 +02:00
Mads Rasmussen f5b4bd4274 only set tab-title min size if tab-title is empty 2015-06-16 14:19:45 +02:00
Mads Rasmussen 28ae5a6ac4 set new min height on tab to reflect property placeholder height 2015-06-16 14:11:22 +02:00
Mads Rasmussen d02327813a Set placeholder on tab name 2015-06-16 14:05:25 +02:00
Mads Rasmussen 4a6bf3f777 change label on validation field in property settings dialog 2015-06-16 14:01:24 +02:00
Mads Rasmussen be501c7ead icon picker - show chosen color in header 2015-06-16 13:58:10 +02:00
Mads Rasmussen e8b5ae2ac6 make property placeholder smaller 2015-06-16 13:39:07 +02:00
Per Ploug 05d554d8a6 Fixes doctype icon map 2015-06-16 13:30:28 +02:00
Per Ploug b05fc5f0f0 Service for creating custom list view - given a type alias 2015-06-16 11:52:09 +02:00
Per Ploug aed6819b6c Adds GetCustomListView and GetByName to datatype service 2015-06-16 11:35:24 +02:00
Mads Rasmussen 554dff5235 Added filtering to property editor picker 2015-06-16 09:15:20 +02:00
Mads Rasmussen a5ca52d3c4 Property editor picker - order by name 2015-06-16 09:05:24 +02:00
Mads Rasmussen a3a1b1afc9 fix button hover issue in overlay grid 2015-06-15 12:03:22 +02:00
Mads Rasmussen dcb31e527c make choose template link blue 2015-06-15 11:30:02 +02:00
Mads Rasmussen be35aa0eef Choose default template as first template, show message when all templates are chosen, allow removal of default template if all other templates has been removed. 2015-06-15 11:29:30 +02:00
Mads Rasmussen 2c9343afcb Add list view labels mock 2015-06-09 11:16:49 +02:00
Mads Rasmussen f37fb1078f add filter to icon picker 2015-06-08 22:46:22 +02:00
Mads Rasmussen 42c2c23437 remove json debug in html + small indent clean up 2015-06-08 22:34:42 +02:00
Mads Rasmussen 74eb5f628c get data type details for each property on init 2015-06-08 22:26:41 +02:00
Mads Rasmussen 51a5dbb72a Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-06-08 19:38:43 +02:00
Mads Rasmussen 12702a12b4 Add validation to property 2015-06-08 19:37:15 +02:00
Shannon f167f84c7f doc type folders are a thing 2015-06-08 19:02:35 +02:00
Shannon 089909c036 Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-06-08 18:22:52 +02:00
Shannon 4e4382ff90 folders are more or less working. 2015-06-08 18:22:43 +02:00
Per Ploug 6e23e3eeeb change default ct icon 2015-06-08 18:18:05 +02:00
Per Ploug 77a571efb3 update ui to latest 2015-06-08 18:17:36 +02:00
Per Ploug 120b7bae17 clean up membertype groups and props 2015-06-08 18:17:26 +02:00
Per Ploug e8abe4af2d map generic properties the right way 2015-06-08 18:17:10 +02:00
Per Ploug ddfd2fece4 Map member types 2015-06-08 18:16:52 +02:00
Per Ploug 8ec652c557 ignore system properties 2015-06-08 18:16:41 +02:00
Shannon f36574fef3 Merge branch '7.3.0' into dev-v7-contenttypeeditor
Conflicts:
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Tests/Umbraco.Tests.csproj
	src/Umbraco.Web.UI.Client/src/canvasdesigner.loader.js
	src/Umbraco.Web.UI.Client/src/less/pages/login.less
2015-06-08 18:03:39 +02:00
Shannon 76ffbab26f Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor
Conflicts:
	src/Umbraco.Web.UI/config/trees.config
2015-06-08 18:00:29 +02:00
Shannon 97c6067b70 Gets initial doc type folders working 2015-06-08 17:59:56 +02:00
Per Ploug 7b06c37f44 merge 2015-06-08 16:49:34 +02:00
Per Ploug 13fd548c17 Adds umb-locked-field directive 2015-06-08 16:06:10 +02:00
Mads Rasmussen 6ff82475e4 set min-width on name field when name is empty 2015-06-08 15:00:56 +02:00
Per Ploug e82e608701 removed lorem ipsum 2015-06-08 14:39:40 +02:00
Per Ploug 416fe02608 Property editor dialog cleaned up 2015-06-08 14:39:37 +02:00
Mads Rasmussen 174f5c2043 load templates in templates section 2015-06-08 14:37:08 +02:00
Mads Rasmussen 109c0408cf Increase resize directive delay time 2015-06-08 14:29:21 +02:00
Per Ploug c4abe6c771 Enables available templates
fixes the last mapping issues
2015-06-08 14:03:48 +02:00
Per Ploug 84a1230759 Changes GetScaffold to GetEmpty 2015-06-08 14:03:47 +02:00
Mads Rasmussen 93b0991dc4 Add prototype for template section 2015-06-08 14:01:37 +02:00
Shannon 08762e5a00 Fixes getScaffold issue, starts adding Create dialog for doc types 2015-06-08 13:10:52 +02:00
Mads Rasmussen bbb4a25070 Basic implementation of icon picker. Still needs support for images 2015-06-08 11:16:49 +02:00
Shannon 8ec397e4ae Updates mappings to ensure the underlying logic in the ContentType classes is used when using AddPropertyGroup and AddPropertyType 2015-06-06 11:32:21 +02:00
Shannon c7510ab50e fixes prop group/prop type mapping for when there is a new property group with new property types assigned 2015-06-06 10:58:25 +02:00
Per Ploug 34060ceed6 Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-06-06 08:40:11 +02:00
Mads Rasmussen 61519f1762 Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-06-05 22:38:56 +02:00
Mads Rasmussen 0f70d1a69f Temp removal of 1 sec timeout to prevent bug where overlay does not open 2015-06-05 22:38:20 +02:00
Mads Rasmussen 50f3a4bd61 Change from select element to target overlay 2015-06-05 22:34:11 +02:00
Mads Rasmussen 203deb55e5 Extend overlay directive with "target"-version 2015-06-05 22:29:14 +02:00
Shannon 2654657701 fixes up some more mappings, now the persistence tests are working 2015-06-05 16:37:39 +02:00
Shannon f2f29eaa8e Fixes up some more mappings, adds another test to simulate persisting an updated type from the display model - which isn't working so need to fix more. 2015-06-05 16:13:13 +02:00
Per Ploug cf3dfe4992 merge 2015-06-05 12:20:45 +02:00
Per Ploug 87b9758337 Change propertyresolver to use IContentTypeComposition 2015-06-05 12:16:41 +02:00
Per Ploug 3cf9ceb2a6 Remove membertype from content type mapper 2015-06-05 12:16:08 +02:00
Per Ploug 1eb98a7478 Change GetScaffold to GetEmpty 2015-06-05 12:15:43 +02:00
Per Ploug 55daa2ee45 WIP membertype editor 2015-06-05 12:15:20 +02:00
Shannon e580bfef97 moves mapping for allowed content types to be inline, no need for after map for that 2015-06-05 12:13:40 +02:00
Shannon c9cb7034f8 fixes mappings with change to allowed content types with enumerable int's. Fixes up a mapping to not do ToArray() and consuming more memory than required 2015-06-05 12:09:20 +02:00
Shannon d797677879 Merge remote-tracking branch 'origin/dev-v7-contenttypeeditor' into dev-v7-contenttypeeditor
Conflicts:
	src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs
2015-06-05 12:00:07 +02:00
Shannon a483ec306c fixed up more mappings and tests 2015-06-05 11:59:45 +02:00
Mads Rasmussen 867d955d01 Optimize directive to not use ng-repeat 2015-06-04 22:55:03 +02:00
Mads Rasmussen 309afc9e2d Remove margin top on tabs 2015-06-04 21:30:22 +02:00
Mads Rasmussen 1d3238d9d8 use new umb-editor-navigation + umb-editor-sub-views directives + styling of header 2015-06-04 21:28:50 +02:00
Mads Rasmussen 3dbd7fafd4 Added directives to split navigation and sub views so it is possible to add navigation to editor header. 2015-06-04 21:24:13 +02:00
Shannon 087c07bcbd started updating the content type mapping. 2015-06-04 16:52:22 +02:00
Per Ploug ac16f9498e Changes allowed content types to list<int> 2015-06-04 10:59:26 +02:00
Mads Rasmussen 2fe00d6455 content type permissions sub view 2015-06-03 21:30:45 +02:00
Mads Rasmussen 4d2ef9c07d Add no-indent variations of checkboxes and radios 2015-06-03 21:26:47 +02:00
Mads Rasmussen 66cd5d0b66 Add list wrapper class 2015-06-03 18:50:47 +02:00
Mads Rasmussen 37d88ed224 Bring back the bold tab strokes to make more contrast + remove inherited property border 2015-06-03 18:48:55 +02:00
Mads Rasmussen cc226cf9ac Add margin in top of tabs list to compensate for position absolute tab titles 2015-06-03 18:47:41 +02:00
Mads Rasmussen 51dea2d5fc Remove padding from canvas on big screens 2015-06-03 18:46:26 +02:00
Mads Rasmussen d6281f3e2b Add more margin to the bottom of sub views nav 2015-06-03 18:45:39 +02:00
Per Ploug c2c93a1a5b removes unneeded tolists 2015-06-03 15:09:19 +02:00
Per Ploug d62ae17f05 Content type get all method 2015-06-03 14:56:32 +02:00
Per Ploug 882f866a5f Removes singleton reference 2015-06-02 22:03:30 +02:00
Mads Rasmussen 8cdb34adb6 umb-sub-views directive: select tools form the first view on init 2015-06-02 15:29:40 +02:00
Mads Rasmussen 5178525802 Use umb-sub-views directive to load in views in the content type editor 2015-06-02 15:14:56 +02:00
Mads Rasmussen f5f4eef7a9 load in umb-sub-views less file 2015-06-02 15:02:55 +02:00
Mads Rasmussen fe28bcafca Added custom directive to add sub views to a page 2015-06-02 15:00:37 +02:00
Per Ploug bd1de4559d Adjusting the content type display model 2015-06-02 11:57:43 +02:00
Mads Rasmussen bb5a89956c Remove border in sorting mode 2015-06-01 19:18:41 +02:00
Mads Rasmussen eca0f91794 Better styling of inherited property label 2015-06-01 15:52:20 +02:00
Mads Rasmussen ac42eebe60 remove unused function 2015-06-01 14:41:45 +02:00
Mads Rasmussen a8c00ed2d3 set borders to 1px, remove shadow + move inherited tab text 2015-06-01 14:40:54 +02:00
Mads Rasmussen 058085d9d0 move dialog outside form 2015-06-01 13:26:14 +02:00
Mads Rasmussen f0f5ab9304 Add button group to edit data type dialog with the possibility to save and save as new 2015-06-01 13:24:13 +02:00
Mads Rasmussen 53ef8ce7f4 Added directive to add bootstrap button groups 2015-06-01 13:17:41 +02:00
Mads Rasmussen 5586e07329 Show dataTypeName instead of preview when an editor is loaded 2015-05-29 13:59:11 +02:00
Mads Rasmussen 6773057b11 fix actions button position 2015-05-29 12:42:34 +02:00
Mads Rasmussen e2417f92f5 Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-05-29 12:40:28 +02:00
Mads Rasmussen b622184c87 WIP header 2015-05-29 12:40:04 +02:00
Per Ploug 350161bfee Actions button 2015-05-29 12:11:29 +02:00
Mads Rasmussen acdc81a384 Do not add contentType to available content type model 2015-05-29 11:55:37 +02:00
Per Ploug 89ca027835 Delete dialog POC and label change 2015-05-29 11:46:47 +02:00
Mads Rasmussen 19cc7effe7 add Checklist-model to composition dialog - change from composite id to alias 2015-05-29 11:36:16 +02:00
Per Ploug 1a04f5f071 Mapping of composite alias 2015-05-29 11:18:22 +02:00
Per Ploug f65bff185d WIP On mapping 2015-05-29 09:21:38 +02:00
Per Ploug f0343788b7 Tree actions for CT 2015-05-29 09:21:37 +02:00
Per Ploug 271bc6ba4c Adds scaffolding to the CT service 2015-05-29 09:21:34 +02:00
Per Ploug e4eb6363ea Wires up the save button 2015-05-29 09:21:28 +02:00
Per Ploug fcf6d70803 Minor ui changes 2015-05-29 09:21:21 +02:00
Mads Rasmussen 96d0c01217 Change add property flow + better styling of property settings dialog 2015-05-28 16:34:37 +02:00
Per Ploug 4424f0a37b Correct mapping of composte type ids 2015-05-28 14:01:18 +02:00
Per Ploug f96e13902c Sets correct property inherite stattus 2015-05-28 12:59:04 +02:00
Mads Rasmussen 80096c941b rename properties to match model 2015-05-28 12:25:06 +02:00
Per Ploug 936e31c5df Adds content type names composite Ui
for UI read-only
2015-05-28 10:59:35 +02:00
Mads Rasmussen 5c27a925f2 Remove padding from tabs + make init property background color white 2015-05-28 09:49:28 +02:00
Mads Rasmussen cfe1beec8b Merge branch 'dev-v7-contenttypeeditor' of https://github.com/umbraco/Umbraco-CMS into dev-v7-contenttypeeditor 2015-05-27 16:34:23 +02:00
Mads Rasmussen 6221dd206c Change flow when adding properties/data types 2015-05-27 16:33:02 +02:00
Per Ploug b545b76248 Merge tabs based on names 2015-05-27 15:48:40 +02:00
Per Ploug 7a53af95e4 Fixes CT mapping
Should now have the correct properties on each tab according to
inheritance, also includes a content type ID on each tab
2015-05-26 16:43:03 +02:00
Mads Rasmussen 3d0ccc9405 Merge tabs when they have the same name 2015-05-26 13:48:26 +02:00
Shannon Deminick 1a65b85816 fixing naming conventions 2015-05-26 09:36:00 +10:00
Shannon Deminick 3c659cfc7c fixing naming conventions 2015-05-26 09:35:32 +10:00
Shannon Deminick 967654e2bd fixing naming conventions 2015-05-26 09:34:25 +10:00
Shannon Deminick ebaced7ac5 fixing naming conventions 2015-05-26 09:33:46 +10:00
Shannon Deminick 9306e1db64 fixing naming conventions 2015-05-26 09:32:18 +10:00
Shannon Deminick 5075d3446f fixing naming conventions 2015-05-26 09:31:45 +10:00
Per Ploug 963a951242 Added current composite types to model 2015-05-22 12:00:18 +02:00
Mads Rasmussen 098270100c Started on compositions + restyled some elements 2015-05-21 21:35:57 +02:00
Per Ploug 0f01925c4a Fixed less file casing and paths 2015-05-21 07:50:02 +02:00
Per Ploug 1bfe7840a9 Added composite types to the ct mapper 2015-05-20 20:56:51 +02:00
Mads Rasmussen 58c93c899a Added sorting functionality 2015-05-20 14:58:17 +02:00
Mads Rasmussen 6e4f6a7bae Html and styles for toolbar 2015-05-20 10:23:37 +02:00
Mads Rasmussen 2b2ed00298 New tab and placeholder styling 2015-05-20 09:31:40 +02:00
Mads Rasmussen f7e079f0d8 get configured data types, custom editors and systems data types in dialog. Make it possible to select one. 2015-05-19 13:47:48 +02:00
Mads Rasmussen 57127460f9 Added getAllUsersConfigured and getAllUserPropertyEditors as resource 2015-05-19 13:46:38 +02:00
Mads Rasmussen f1dfa28228 Add the last changes from the old branche 2015-05-19 12:31:59 +02:00
Per Ploug b43f0a0986 Fixed up a couple of mapping errors 2015-05-19 11:57:49 +02:00
Shannon b9120698ba Adds more mapping logic for content type mappers, creates unit tests for them, adds some missing required properties that will be needed for editing, adds lots of notes. 2015-05-19 11:17:23 +10:00
Shannon 71c24b7bf3 reverts proj change 2015-05-19 09:01:54 +10:00
Per Ploug 6c218c3ab5 datatype controller methods for ct editor 2015-05-18 20:08:00 +02:00
Per Ploug 0e6b663eed Models for content type display 2015-05-18 20:07:20 +02:00
Per Ploug 65f2b43185 Latest files from mads 2015-05-14 07:39:18 +02:00
Per Ploug ef069e0aa1 Content Type Editor work merged in 2015-05-13 17:12:28 +02:00
Per Ploug ded1ac41e3 Change of web.mvc version hintpath 2015-05-13 16:51:00 +02:00
1084 changed files with 44269 additions and 16441 deletions
+5 -5
View File
@@ -15,11 +15,11 @@ If you're interested in making changes to Belle make sure to read the [Belle Rea
**More than 177,000 sites trust Umbraco**
For the first time on the Microsoft platform a free user and developer friendly CMS that makes it quick and easy to create websites - or a breeze to build complex web applications. Umbraco has award-winning integration capabilities and supports ASP.NET MVC or Web Forms, including User and Custom Controls, out of the box. It's a developers dream and your users will love it too.
For the first time on the Microsoft platform, there is a free user and developer friendly CMS that makes it quick and easy to create websites - or a breeze to build complex web applications. Umbraco has award-winning integration capabilities and supports ASP.NET MVC or Web Forms, including User and Custom Controls, out of the box. It's a developer's dream and your users will love it too.
Used by more than 177,000 active websites including [http://daviscup.com](http://daviscup.com), [http://heinz.com](http://heinz.com), [http://peugeot.com](http://peugeot.com), [http://www.hersheys.com/](http://www.hersheys.com/) and **The Official ASP.NET and IIS.NET website from Microsoft** ([http://asp.net](http://asp.net) / [http://iis.net](http://iis.net)) you can be sure that the technology is proven, stable and scales.
Used by more than 177,000 active websites including [http://daviscup.com](http://daviscup.com), [http://heinz.com](http://heinz.com), [http://peugeot.com](http://peugeot.com), [http://www.hersheys.com/](http://www.hersheys.com/) and **The Official ASP.NET and IIS.NET website from Microsoft** ([http://asp.net](http://asp.net) / [http://iis.net](http://iis.net)), you can be sure that the technology is proven, stable and scales.
To view more examples please visit [http://umbraco.com/why-umbraco/#caseStudies](http://umbraco.com/why-umbraco/#caseStudies)
To view more examples, please visit [http://umbraco.com/why-umbraco/#caseStudies](http://umbraco.com/why-umbraco/#caseStudies)
## Downloading ##
@@ -35,6 +35,6 @@ If you want to contribute back to Umbraco you should check out our [guide to con
## Found a bug? ##
Another way you can contribute to Umbraco is by providing issue reports, for information on how to submit an issue report refer to our [online guide for reporting issues](http://our.umbraco.org/contribute/report-an-issue-or-request-a-feature).
Another way you can contribute to Umbraco is by providing issue reports. For information on how to submit an issue report refer to our [online guide for reporting issues](http://our.umbraco.org/contribute/report-an-issue-or-request-a-feature).
To view existing issues please visit [http://issues.umbraco.org](http://issues.umbraco.org)
To view existing issues, please visit [http://issues.umbraco.org](http://issues.umbraco.org).
-8
View File
@@ -21,14 +21,6 @@ ECHO Building Umbraco %version%
ReplaceIISExpressPortNumber.exe ..\src\Umbraco.Web.UI\Umbraco.Web.UI.csproj %release%
ECHO Installing the Microsoft.Bcl.Build package before anything else, otherwise you'd have to run build.cmd twice
SET nuGetFolder=%CD%\..\src\packages\
..\src\.nuget\NuGet.exe sources Remove -Name MyGetUmbracoCore >NUL
..\src\.nuget\NuGet.exe sources Add -Name MyGetUmbracoCore -Source https://www.myget.org/F/umbracocore/api/v2/ >NUL
..\src\.nuget\NuGet.exe install ..\src\Umbraco.Web.UI\packages.config -OutputDirectory %nuGetFolder% -Verbosity quiet
..\src\.nuget\NuGet.exe install ..\src\umbraco.businesslogic\packages.config -OutputDirectory %nuGetFolder% -Verbosity quiet
..\src\.nuget\NuGet.exe install ..\src\Umbraco.Core\packages.config -OutputDirectory %nuGetFolder% -Verbosity quiet
ECHO Removing the belle build folder and bower_components folder to make sure everything is clean as a whistle
RD ..\src\Umbraco.Web.UI.Client\build /Q /S
RD ..\src\Umbraco.Web.UI.Client\bower_components /Q /S
+2 -2
View File
@@ -175,8 +175,8 @@
<!-- Copy SQL CE -->
<ItemGroup>
<SQLCE4Files
Include="..\src\packages\SqlServerCE.4.0.0.0\**\*.*"
Exclude="..\src\packages\SqlServerCE.4.0.0.0\lib\**\*;..\src\packages\SqlServerCE.4.0.0.0\**\*.nu*"
Include="..\src\packages\SqlServerCE.4.0.0.1\**\*.*"
Exclude="..\src\packages\SqlServerCE.4.0.0.1\lib\**\*;..\src\packages\SqlServerCE.4.0.0.1\**\*.nu*"
/>
</ItemGroup>
+21 -23
View File
@@ -17,11 +17,10 @@
<dependencies>
<dependency id="Microsoft.AspNet.Mvc" version="[5.2.3,6.0.0)" />
<dependency id="Microsoft.AspNet.WebApi" version="[5.2.3,6.0.0)" />
<dependency id="Microsoft.Net.Http" version="[2.2.29, 3.0.0)" />
<dependency id="Microsoft.AspNet.Identity.Owin" version="[2.2.1, 3.0.0)" />
<dependency id="Microsoft.Owin.Security.Cookies" version="[3.0.1, 4.0.0)" />
<dependency id="Microsoft.Owin.Security.OAuth" version="[3.0.1, 4.0.0)" />
<dependency id="Microsoft.Owin.Host.SystemWeb" version="[3.0.1, 4.0.0)" />
<dependency id="Microsoft.Owin.Host.SystemWeb" version="[3.0.1, 4.0.0)" />
<dependency id="MiniProfiler" version="[2.1.0, 3.0.0)" />
<dependency id="HtmlAgilityPack" version="[1.4.9, 2.0.0)" />
<dependency id="Lucene.Net" version="[2.9.4.1, 3.0.0.0)" />
@@ -31,13 +30,13 @@
<dependency id="ClientDependency" version="[1.8.4, 2.0.0)" />
<dependency id="ClientDependency-Mvc5" version="[1.8.0, 2.0.0)" />
<dependency id="AutoMapper" version="[3.0.0, 3.1.0)" />
<dependency id="Newtonsoft.Json" version="[6.0.8, 7.0.0)" />
<dependency id="Newtonsoft.Json" version="[6.0.8, 9.0.0)" />
<dependency id="Examine" version="[0.1.68, 1.0.0)" />
<dependency id="ImageProcessor" version="[2.3.0, 3.0.0)" />
<dependency id="ImageProcessor.Web" version="[4.4.0, 5.0.0)" />
<dependency id="ImageProcessor" version="[2.3.3, 3.0.0)" />
<dependency id="ImageProcessor.Web" version="[4.5.3, 5.0.0)" />
<dependency id="semver" version="[1.1.2, 2.0.0)" />
<dependency id="Microsoft.AspNet.WebHelpers" version="[3.2.3, 4.0.0)" />
<dependency id="Microsoft.AspNet.WebPages.Data" version="[3.2.3, 4.0.0)" />
<dependency id="UrlRewritingNet" version="[2.0.7, 3.0.0)" />
<dependency id="Markdown" version="[1.14.4, 2.0.0)" />
</dependencies>
</metadata>
<files>
@@ -72,35 +71,34 @@
<file src="..\_BuildOutput\WebApp\bin\Umbraco.Web.UI.xml" target="lib\Umbraco.Web.UI.xml" />
<file src="..\_BuildOutput\WebApp\bin\UmbracoExamine.dll" target="lib\UmbracoExamine.dll" />
<file src="..\_BuildOutput\WebApp\bin\UmbracoExamine.xml" target="lib\UmbracoExamine.xml" />
<file src="..\_BuildOutput\WebApp\bin\UrlRewritingNet.UrlRewriter.dll" target="lib\UrlRewritingNet.UrlRewriter.dll" />
<file src="tools\install.core.ps1" target="tools\install.ps1" />
<!-- Added to be able to produce a symbols package -->
<file src="..\_BuildOutput\bin\SQLCE4Umbraco.pdb" target="lib" />
<!-- Added to be able to produce a symbols package -->
<file src="..\_BuildOutput\bin\SQLCE4Umbraco.pdb" target="lib" />
<file src="..\..\src\SQLCE4Umbraco\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\SQLCE4Umbraco" />
<file src="..\_BuildOutput\bin\businesslogic.pdb" target="lib" />
<file src="..\_BuildOutput\bin\businesslogic.pdb" target="lib" />
<file src="..\..\src\umbraco.businesslogic\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.businesslogic" />
<file src="..\_BuildOutput\bin\cms.pdb" target="lib" />
<file src="..\_BuildOutput\bin\cms.pdb" target="lib" />
<file src="..\..\src\umbraco.cms\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.cms" />
<file src="..\_BuildOutput\bin\controls.pdb" target="lib" />
<file src="..\_BuildOutput\bin\controls.pdb" target="lib" />
<file src="..\..\src\umbraco.controls\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.controls" />
<file src="..\_BuildOutput\bin\interfaces.pdb" target="lib" />
<file src="..\_BuildOutput\bin\interfaces.pdb" target="lib" />
<file src="..\..\src\umbraco.interfaces\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.interfaces" />
<file src="..\_BuildOutput\bin\Umbraco.Core.pdb" target="lib" />
<file src="..\_BuildOutput\bin\Umbraco.Core.pdb" target="lib" />
<file src="..\..\src\Umbraco.Core\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Core" />
<file src="..\_BuildOutput\bin\umbraco.DataLayer.pdb" target="lib" />
<file src="..\_BuildOutput\bin\umbraco.DataLayer.pdb" target="lib" />
<file src="..\..\src\umbraco.datalayer\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.datalayer" />
<file src="..\_BuildOutput\bin\umbraco.editorControls.pdb" target="lib" />
<file src="..\_BuildOutput\bin\umbraco.editorControls.pdb" target="lib" />
<file src="..\..\src\umbraco.editorControls\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.editorControls" />
<file src="..\_BuildOutput\bin\umbraco.MacroEngines.pdb" target="lib" />
<file src="..\_BuildOutput\bin\umbraco.MacroEngines.pdb" target="lib" />
<file src="..\..\src\umbraco.MacroEngines\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.MacroEngines" />
<file src="..\_BuildOutput\bin\umbraco.providers.pdb" target="lib" />
<file src="..\_BuildOutput\bin\umbraco.providers.pdb" target="lib" />
<file src="..\..\src\umbraco.providers\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.providers" />
<file src="..\_BuildOutput\bin\umbraco.pdb" target="lib" />
<file src="..\_BuildOutput\bin\umbraco.pdb" target="lib" />
<file src="..\..\src\Umbraco.Web\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Web" />
<file src="..\_BuildOutput\bin\Umbraco.Web.UI.pdb" target="lib" />
<file src="..\_BuildOutput\bin\Umbraco.Web.UI.pdb" target="lib" />
<file src="..\..\src\Umbraco.Web.UI\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Web.UI" />
<file src="..\_BuildOutput\bin\UmbracoExamine.pdb" target="lib" />
<file src="..\..\src\UmbracoExamine\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\UmbracoExamine" />
<file src="..\_BuildOutput\bin\UmbracoExamine.pdb" target="lib" />
<file src="..\..\src\UmbracoExamine\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\UmbracoExamine" />
</files>
</package>
+2 -1
View File
@@ -16,7 +16,8 @@
<tags>umbraco</tags>
<dependencies>
<dependency id="UmbracoCms.Core" version="[$version$]" />
<dependency id="Newtonsoft.Json" version="[6.0.5, 7.0.0)" />
<dependency id="Newtonsoft.Json" version="[6.0.8, 9.0.0)" />
<dependency id="Umbraco.ModelsBuilder" version="[3.0.0, 4.0.0)" />
</dependencies>
</metadata>
<files>
@@ -77,4 +77,8 @@
<section alias="uGoLiveDashboardSection" xdt:Locator="Match(alias)" xdt:Transform="Remove" />
<section alias="ExamineManagement" xdt:Locator="Match(alias)" xdt:Transform="Remove" />
<section alias="StartupDashboardSection">
<tab caption="Change Password" xdt:Locator="Match(caption)" xdt:Transform="Remove" />
</section>
</dashBoard>
+1
View File
@@ -10,6 +10,7 @@
Don't forget to build!
When upgrading your website using NuGet you should answer "No" to the questions to overwrite the Web.config
file (and config files in the config folder).
+1
View File
@@ -10,6 +10,7 @@
Don't forget to build!
We've done our best to transform your configuration files but in case something is not quite right: remember we
backed up your files in App_Data\NuGetBackup so you can find the original files before they were transformed.
@@ -17,6 +17,11 @@
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
xdt:Locator="Match(factoryType)"
xdt:Transform="SetAttributes(factoryType)" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="Umbraco.Web.PublishedContentModels" xdt:Transform="InsertIfMissing" />
</namespaces>
</pages>
</system.web.webPages.razor>
<system.web>
+185 -27
View File
@@ -7,8 +7,8 @@
<section name="ExamineLuceneIndexSets" type="Examine.LuceneEngine.Config.IndexSets, Examine" requirePermission="false" xdt:Locator="Match(name)" xdt:Transform="SetAttributes(type,requirePermission)" />
<sectionGroup name="applicationSettings" xdt:Locator="Match(name)">
<section name="umbraco.presentation.Properties.Settings" xdt:Locator="Match(name)" xdt:Transform="Remove" />
</sectionGroup>
<section name="umbraco.presentation.Properties.Settings" xdt:Locator="Match(name)" xdt:Transform="Remove" />
</sectionGroup>
<sectionGroup name="system.web.webPages.razor" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<sectionGroup name="umbracoConfiguration" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing">
<section name="settings" type="Umbraco.Core.Configuration.UmbracoSettings.UmbracoSettingsSection, Umbraco.Core" requirePermission="false" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />
@@ -21,8 +21,10 @@
<appSettings xdt:Transform="InsertIfMissing" />
<appSettings>
<add key="owin:appStartup" value="UmbracoDefaultOwinStartup" xdt:Locator="Match(key)" xdt:Transform="InsertIfMissing" />
<add key="Umbraco.ModelsBuilder.Enable" value="false" xdt:Locator="Match(key)" xdt:Transform="InsertIfMissing" />
<add key="Umbraco.ModelsBuilder.ModelsMode" value="Nothing" xdt:Locator="Match(key)" xdt:Transform="InsertIfMissing" />
</appSettings>
<umbracoConfiguration xdt:Transform="InsertIfMissing">
<settings configSource="config\umbracoSettings.config" xdt:Locator="Match(configSource)" xdt:Transform="InsertIfMissing" />
<BaseRestExtensions configSource="config\BaseRestExtensions.config" xdt:Locator="Match(configSource)" xdt:Transform="InsertIfMissing" />
@@ -37,7 +39,7 @@
<DbProviderFactories xdt:Transform="InsertIfMissing">
<remove invariant="System.Data.SqlServerCe.4.0" xdt:Locator="Match(invariant)" xdt:Transform="InsertIfMissing" />
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe" xdt:Locator="Match(invariant)" xdt:Transform="SetAttributes(invariant,description,type)" />
<remove invariant="MySql.Data.MySqlClient" xdt:Locator="Match(invariant)" xdt:Transform="InsertIfMissing" />
<remove invariant="MySql.Data.MySqlClient" xdt:Locator="Match(invariant)" xdt:Transform="InsertIfMissing" />
<add invariant="MySql.Data.MySqlClient" xdt:Locator="Match(invariant)" xdt:Transform="Remove" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" xdt:Locator="Match(invariant)" xdt:Transform="InsertIfMissing" />
<add invariant="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" xdt:Locator="Match(invariant)" xdt:Transform="SetAttributes(type)" />
@@ -48,13 +50,15 @@
<system.web xdt:Transform="InsertIfMissing" />
<system.web>
<siteMap xdt:Transform="Remove" />
<siteMap xdt:Transform="InsertIfMissing">
<siteMap xdt:Transform="InsertIfMissing">
<providers xdt:Transform="InsertIfMissing">
<remove name="MySqlSiteMapProvider" xdt:Transform="InsertIfMissing" />
</providers>
</siteMap>
</siteMap>
<httpRuntime xdt:Transform="InsertIfMissing" />
<httpRuntime targetFramework="4.5" maxRequestLength="1048576" fcnMode="Single" xdt:Transform="SetAttributes(targetFramework,fcnMode,maxRequestLength)" />
<httpRuntime maxRequestLength="51200" fcnMode="Single" xdt:Transform="SetAttributes(fcnMode,maxRequestLength)" />
<httpRuntime targetFramework="4.5" xdt:Locator="Condition(count(@targetFramework) != 1)" xdt:Transform="SetAttributes(targetFramework)" />
<membership defaultProvider="DefaultMembershipProvider" xdt:Locator="Match(defaultProvider)" xdt:Transform="Remove" />
<roleManager defaultProvider="DefaultRoleProvider" xdt:Locator="Match(defaultProvider)" xdt:Transform="Remove"/>
<profile defaultProvider="DefaultProfileProvider" xdt:Locator="Match(defaultProvider)" xdt:Transform="Remove"/>>
@@ -63,9 +67,9 @@
<compilation>
<assemblies xdt:Transform="InsertIfMissing" />
<assemblies>
<add assembly="System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)"
xdt:Transform="InsertIfMissing" />
<add assembly="System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
@@ -77,6 +81,56 @@
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<add assembly="System.Collections, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Collections.Concurrent, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.ComponentModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.ComponentModel.Annotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.ComponentModel.EventBasedAsync, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Diagnostics.Contracts, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Diagnostics.Debug, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Diagnostics.Tools, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Diagnostics.Tracing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Dynamic.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Globalization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.IO, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Linq.Expressions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Linq.Parallel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Linq.Queryable, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Net.NetworkInformation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Net.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Net.Requests, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.ObjectModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Reflection, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Reflection.Emit, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Reflection.Emit.ILGeneration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Reflection.Emit.Lightweight, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Reflection.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Reflection.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Resources.ResourceManager, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Runtime.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Runtime.InteropServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Runtime.InteropServices.WindowsRuntime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Runtime.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Runtime.Serialization.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Runtime.Serialization.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Runtime.Serialization.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Security.Principal, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.ServiceModel.Duplex, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.ServiceModel.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.ServiceModel.NetTcp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.ServiceModel.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.ServiceModel.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Text.Encoding, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Text.Encoding.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Text.RegularExpressions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Threading, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Threading.Tasks, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Threading.Tasks.Parallel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Xml.ReaderWriter, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Xml.XDocument, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
<add assembly="System.Xml.XmlSerializer, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" xdt:Locator="Match(assembly)" xdt:Transform="InsertIfMissing" />
</assemblies>
</compilation>
@@ -84,10 +138,114 @@
<assemblies>
<remove assembly="System.Web.Http" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Net.Http" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Runtime" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Collections" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Collections.Concurrent" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.ComponentModel" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.ComponentModel.Annotations" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.ComponentModel.EventBasedAsync" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Diagnostics.Contracts" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Diagnostics.Debug" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Diagnostics.Tools" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Diagnostics.Tracing" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Dynamic.Runtime" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Globalization" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.IO" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Linq" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Linq.Expressions" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Linq.Parallel" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Linq.Queryable" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Net.NetworkInformation" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Net.Primitives" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Net.Requests" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.ObjectModel" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Reflection" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Reflection.Emit" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Reflection.Emit.ILGeneration" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Reflection.Emit.Lightweight" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Reflection.Extensions" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Reflection.Primitives" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Resources.ResourceManager" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Runtime" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Runtime.Extensions" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Runtime.InteropServices" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Runtime.InteropServices.WindowsRuntime" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Runtime.Numerics" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Runtime.Serialization.Json" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Runtime.Serialization.Primitives" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Runtime.Serialization.Xml" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Security.Principal" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.ServiceModel.Duplex" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.ServiceModel.Http" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.ServiceModel.NetTcp" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.ServiceModel.Primitives" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.ServiceModel.Security" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Text.Encoding" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Text.Encoding.Extensions" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Text.RegularExpressions" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Threading" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Threading.Tasks" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Threading.Tasks.Parallel" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Xml.ReaderWriter" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Xml.XDocument" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<remove assembly="System.Xml.XmlSerializer" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
</assemblies>
</compilation>
<compilation>
<assemblies>
<remove assembly="System.Web.Http" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Net.Http" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Runtime" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Collections" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Collections.Concurrent" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.ComponentModel" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.ComponentModel.Annotations" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.ComponentModel.EventBasedAsync" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Diagnostics.Contracts" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Diagnostics.Debug" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Diagnostics.Tools" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Diagnostics.Tracing" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Dynamic.Runtime" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Globalization" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.IO" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Linq" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Linq.Expressions" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Linq.Parallel" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Linq.Queryable" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Net.NetworkInformation" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Net.Primitives" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Net.Requests" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.ObjectModel" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Reflection" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Reflection.Emit" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Reflection.Emit.ILGeneration" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Reflection.Emit.Lightweight" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Reflection.Extensions" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Reflection.Primitives" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Resources.ResourceManager" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Runtime" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Runtime.Extensions" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Runtime.InteropServices" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Runtime.InteropServices.WindowsRuntime" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Runtime.Numerics" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Runtime.Serialization.Json" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Runtime.Serialization.Primitives" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Runtime.Serialization.Xml" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Security.Principal" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.ServiceModel.Duplex" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.ServiceModel.Http" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.ServiceModel.NetTcp" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.ServiceModel.Primitives" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.ServiceModel.Security" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Text.Encoding" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Text.Encoding.Extensions" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Text.RegularExpressions" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Threading" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Threading.Tasks" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Threading.Tasks.Parallel" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Xml.ReaderWriter" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Xml.XDocument" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
<remove assembly="System.Xml.XmlSerializer" xdt:Locator="Match(assembly)" xdt:Transform="InsertBefore(/configuration/system.web/compilation/assemblies/add)" />
</assemblies>
</compilation>
@@ -122,6 +280,8 @@
<add name="umbracoRequestModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<add name="viewstateMoverModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<add name="umbracoBaseRequestModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<!-- Note, we're removing the one that starts with a space here, don't correct it -->
<!-- This to fix a quirk we for a lot of releases where we added it with the space by default -->
<add name=" UmbracoModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<add name="UmbracoModule" type="Umbraco.Web.UmbracoModule,umbraco" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />
</modules>
@@ -143,19 +303,17 @@
<security xdt:Transform="InsertIfMissing">
<requestFiltering xdt:Transform="InsertIfMissing">
<requestLimits maxAllowedContentLength="1073741824" xdt:Transform="InsertIfMissing" />
<requestLimits maxAllowedContentLength="52428800" xdt:Transform="InsertIfMissing" />
</requestFiltering>
</security>
</system.webServer>
<system.codedom xdt:Transform="Remove" />
</system.webServer>
<runtime xdt:Transform="InsertIfMissing" />
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" xdt:Transform="InsertIfMissing" />
</runtime>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='HtmlAgilityPack')" xdt:Transform="Remove" />
@@ -168,7 +326,7 @@
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='Microsoft.Owin.Security.OAuth')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='Microsoft.Owin.Security')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='Microsoft.Owin.Security.Cookies')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Net.Http.Formatting')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Net.Http.Formatting')" xdt:Transform="Remove" />
</assemblyBinding>
</runtime>
@@ -177,7 +335,7 @@
<dependentAssembly>
<assemblyIdentity name="HtmlAgilityPack" publicKeyToken="bd319b19eaf3b43a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.4.9.0" newVersion="1.4.9.0" />
</dependentAssembly>
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>
@@ -188,12 +346,12 @@
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
@@ -205,16 +363,16 @@
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
@@ -222,19 +380,19 @@
</runtime>
<system.web.webPages.razor xdt:Transform="Remove" />
<location path="umbraco" xdt:Locator="Match(path)" xdt:Transform="InsertIfMissing" />
<location path="umbraco" xdt:Locator="Match(path)">
<system.webServer xdt:Transform="InsertIfMissing">
<urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false" xdt:Transform="SetAttributes(doStaticCompression,doDynamicCompression,dynamicCompressionBeforeCache)" />
<urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false" xdt:Transform="SetAttributes(doStaticCompression,doDynamicCompression,dynamicCompressionBeforeCache)" />
</system.webServer>
</location>
<location path="App_Plugins" xdt:Locator="Match(path)" xdt:Transform="InsertIfMissing" />
<location path="App_Plugins" xdt:Locator="Match(path)">
<system.webServer xdt:Transform="InsertIfMissing">
<urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false" xdt:Transform="SetAttributes(doStaticCompression,doDynamicCompression,dynamicCompressionBeforeCache)" />
<urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false" xdt:Transform="SetAttributes(doStaticCompression,doDynamicCompression,dynamicCompressionBeforeCache)" />
</system.webServer>
</location>
</configuration>
+28 -10
View File
@@ -1,18 +1,30 @@
param($rootPath, $toolsPath, $package, $project)
param($installPath, $toolsPath, $package, $project)
Write-Host "installPath:" "${installPath}"
Write-Host "toolsPath:" "${toolsPath}"
Write-Host " "
if ($project) {
$dateTime = Get-Date -Format yyyyMMdd-HHmmss
$backupPath = Join-Path (Split-Path $project.FullName -Parent) "\App_Data\NuGetBackup\$dateTime"
# Create paths and list them
$projectPath = (Get-Item $project.Properties.Item("FullPath").Value).FullName
Write-Host "projectPath:" "${projectPath}"
$backupPath = Join-Path $projectPath "App_Data\NuGetBackup\$dateTime"
Write-Host "backupPath:" "${backupPath}"
$copyLogsPath = Join-Path $backupPath "CopyLogs"
$projectDestinationPath = Split-Path $project.FullName -Parent
Write-Host "copyLogsPath:" "${copyLogsPath}"
$umbracoBinFolder = Join-Path $projectPath "bin"
Write-Host "umbracoBinFolder:" "${umbracoBinFolder}"
# Create backup folder and logs folder if it doesn't exist yet
New-Item -ItemType Directory -Force -Path $backupPath
New-Item -ItemType Directory -Force -Path $copyLogsPath
# After backing up, remove all umbraco dlls from bin folder in case dll files are included in the VS project
# See: http://issues.umbraco.org/issue/U4-4930
$umbracoBinFolder = Join-Path $projectDestinationPath "bin"
if(Test-Path $umbracoBinFolder) {
$umbracoBinBackupPath = Join-Path $backupPath "bin"
@@ -20,7 +32,7 @@ if ($project) {
robocopy $umbracoBinFolder $umbracoBinBackupPath /e /LOG:$copyLogsPath\UmbracoBinBackup.log
# Delete files Umbraco brings in
# Delete files Umbraco ships with
if(Test-Path $umbracoBinFolder\businesslogic.dll) { Remove-Item $umbracoBinFolder\businesslogic.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\cms.dll) { Remove-Item $umbracoBinFolder\cms.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\controls.dll) { Remove-Item $umbracoBinFolder\controls.dll -Force -Confirm:$false }
@@ -36,16 +48,18 @@ if ($project) {
if(Test-Path $umbracoBinFolder\umbraco.DataLayer.dll) { Remove-Item $umbracoBinFolder\umbraco.DataLayer.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\umbraco.editorControls.dll) { Remove-Item $umbracoBinFolder\umbraco.editorControls.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\umbraco.MacroEngines.dll) { Remove-Item $umbracoBinFolder\umbraco.MacroEngines.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Umbraco.ModelsBuilder.dll) { Remove-Item $umbracoBinFolder\Umbraco.ModelsBuilder.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Umbraco.ModelsBuilder.AspNet.dll) { Remove-Item $umbracoBinFolder\Umbraco.ModelsBuilder.AspNet.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\umbraco.providers.dll) { Remove-Item $umbracoBinFolder\umbraco.providers.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Umbraco.Web.UI.dll) { Remove-Item $umbracoBinFolder\Umbraco.Web.UI.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\UmbracoExamine.dll) { Remove-Item $umbracoBinFolder\UmbracoExamine.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\UrlRewritingNet.UrlRewriter.dll) { Remove-Item $umbracoBinFolder\UrlRewritingNet.UrlRewriter.dll -Force -Confirm:$false }
# Delete files Umbraco depends upon
$amd64Folder = Join-Path $projectDestinationPath "bin\amd64"
$amd64Folder = Join-Path $umbracoBinFolder "amd64"
if(Test-Path $amd64Folder) { Remove-Item $amd64Folder -Force -Recurse -Confirm:$false }
$x86Folder = Join-Path $projectDestinationPath "bin\x86"
if(Test-Path $x86Folder) { Remove-Item $x86Folder -Force -Recurse -Confirm:$false }
$x86Folder = Join-Path $umbracoBinFolder "x86"
if(Test-Path $x86Folder) { Remove-Item $x86Folder -Force -Recurse -Confirm:$false }
if(Test-Path $umbracoBinFolder\AutoMapper.dll) { Remove-Item $umbracoBinFolder\AutoMapper.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\AutoMapper.Net4.dll) { Remove-Item $umbracoBinFolder\AutoMapper.Net4.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\ClientDependency.Core.dll) { Remove-Item $umbracoBinFolder\ClientDependency.Core.dll -Force -Confirm:$false }
@@ -59,6 +73,8 @@ if ($project) {
if(Test-Path $umbracoBinFolder\Lucene.Net.dll) { Remove-Item $umbracoBinFolder\Lucene.Net.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Microsoft.AspNet.Identity.Core.dll) { Remove-Item $umbracoBinFolder\Microsoft.AspNet.Identity.Core.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Microsoft.AspNet.Identity.Owin.dll) { Remove-Item $umbracoBinFolder\Microsoft.AspNet.Identity.Owin.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Microsoft.CodeAnalysis.CSharp.dll) { Remove-Item $umbracoBinFolder\Microsoft.CodeAnalysis.CSharp.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Microsoft.CodeAnalysis.dll) { Remove-Item $umbracoBinFolder\Microsoft.CodeAnalysis.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Microsoft.Owin.dll) { Remove-Item $umbracoBinFolder\Microsoft.Owin.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Microsoft.Owin.Host.SystemWeb.dll) { Remove-Item $umbracoBinFolder\Microsoft.Owin.Host.SystemWeb.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Microsoft.Owin.Security.dll) { Remove-Item $umbracoBinFolder\Microsoft.Owin.Security.dll -Force -Confirm:$false }
@@ -72,6 +88,8 @@ if ($project) {
if(Test-Path $umbracoBinFolder\Newtonsoft.Json.dll) { Remove-Item $umbracoBinFolder\Newtonsoft.Json.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Owin.dll) { Remove-Item $umbracoBinFolder\Owin.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Semver.dll) { Remove-Item $umbracoBinFolder\Semver.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\System.Collections.Immutable.dll) { Remove-Item $umbracoBinFolder\System.Collections.Immutable.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\System.Reflection.Metadata.dll) { Remove-Item $umbracoBinFolder\System.Reflection.Metadata.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\System.Net.Http.Extensions.dll) { Remove-Item $umbracoBinFolder\System.Net.Http.Extensions.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\System.Net.Http.Formatting.dll) { Remove-Item $umbracoBinFolder\System.Net.Http.Formatting.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\System.Net.Http.Primitives.dll) { Remove-Item $umbracoBinFolder\System.Net.Http.Primitives.dll -Force -Confirm:$false }
@@ -82,6 +100,6 @@ if ($project) {
if(Test-Path $umbracoBinFolder\System.Web.Razor.dll) { Remove-Item $umbracoBinFolder\System.Web.Razor.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\System.Web.WebPages.dll) { Remove-Item $umbracoBinFolder\System.Web.WebPages.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\System.Web.WebPages.Deployment.dll) { Remove-Item $umbracoBinFolder\System.Web.WebPages.Deployment.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\System.Web.WebPages.Razor.dll) { Remove-Item $umbracoBinFolder\System.Web.WebPages.Razor.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\System.Web.WebPages.Razor.dll) { Remove-Item $umbracoBinFolder\System.Web.WebPages.Razor.dll -Force -Confirm:$false }
}
}
+35 -31
View File
@@ -1,21 +1,33 @@
param($rootPath, $toolsPath, $package, $project)
param($installPath, $toolsPath, $package, $project)
Write-Host "installPath:" "${installPath}"
Write-Host "toolsPath:" "${toolsPath}"
Write-Host " "
if ($project) {
$dateTime = Get-Date -Format yyyyMMdd-HHmmss
$backupPath = Join-Path (Split-Path $project.FullName -Parent) "\App_Data\NuGetBackup\$dateTime"
# Create paths and list them
$projectPath = (Get-Item $project.Properties.Item("FullPath").Value).FullName
Write-Host "projectPath:" "${projectPath}"
$backupPath = Join-Path $projectPath "App_Data\NuGetBackup\$dateTime"
Write-Host "backupPath:" "${backupPath}"
$copyLogsPath = Join-Path $backupPath "CopyLogs"
$projectDestinationPath = Split-Path $project.FullName -Parent
Write-Host "copyLogsPath:" "${copyLogsPath}"
$webConfigSource = Join-Path $projectPath "Web.config"
Write-Host "webConfigSource:" "${webConfigSource}"
$configFolder = Join-Path $projectPath "Config"
Write-Host "configFolder:" "${configFolder}"
# Create backup folder and logs folder if it doesn't exist yet
New-Item -ItemType Directory -Force -Path $backupPath
New-Item -ItemType Directory -Force -Path $copyLogsPath
# Create a backup of original web.config
$webConfigSource = Join-Path $projectDestinationPath "Web.config"
Copy-Item $webConfigSource $backupPath -Force
# Backup config files folder
$configFolder = Join-Path $projectDestinationPath "Config"
# Backup config files folder
if(Test-Path $configFolder) {
$umbracoBackupPath = Join-Path $backupPath "Config"
New-Item -ItemType Directory -Force -Path $umbracoBackupPath
@@ -24,32 +36,24 @@ if ($project) {
}
# Copy umbraco and umbraco_files from package to project folder
# This is only done when these folders already exist because we
# only want to do this for upgrades
$umbracoFolder = Join-Path $projectDestinationPath "Umbraco"
if(Test-Path $umbracoFolder) {
$umbracoFolderSource = Join-Path $rootPath "UmbracoFiles\Umbraco"
$umbracoBackupPath = Join-Path $backupPath "Umbraco"
New-Item -ItemType Directory -Force -Path $umbracoBackupPath
robocopy $umbracoFolder $umbracoBackupPath /e /LOG:$copyLogsPath\UmbracoBackup.log
robocopy $umbracoFolderSource $umbracoFolder /is /it /e /xf UI.xml /LOG:$copyLogsPath\UmbracoCopy.log
}
$umbracoFolder = Join-Path $projectPath "Umbraco"
New-Item -ItemType Directory -Force -Path $umbracoFolder
$umbracoFolderSource = Join-Path $installPath "UmbracoFiles\Umbraco"
$umbracoBackupPath = Join-Path $backupPath "Umbraco"
New-Item -ItemType Directory -Force -Path $umbracoBackupPath
robocopy $umbracoFolder $umbracoBackupPath /e /LOG:$copyLogsPath\UmbracoBackup.log
robocopy $umbracoFolderSource $umbracoFolder /is /it /e /xf UI.xml /LOG:$copyLogsPath\UmbracoCopy.log
$umbracoClientFolder = Join-Path $projectDestinationPath "Umbraco_Client"
if(Test-Path $umbracoClientFolder) {
$umbracoClientFolderSource = Join-Path $rootPath "UmbracoFiles\Umbraco_Client"
$umbracoClientBackupPath = Join-Path $backupPath "Umbraco_Client"
New-Item -ItemType Directory -Force -Path $umbracoClientBackupPath
robocopy $umbracoClientFolder $umbracoClientBackupPath /e /LOG:$copyLogsPath\UmbracoClientBackup.log
robocopy $umbracoClientFolderSource $umbracoClientFolder /is /it /e /LOG:$copyLogsPath\UmbracoClientCopy.log
}
$umbracoClientFolder = Join-Path $projectPath "Umbraco_Client"
New-Item -ItemType Directory -Force -Path $umbracoClientFolder
$umbracoClientFolderSource = Join-Path $installPath "UmbracoFiles\Umbraco_Client"
$umbracoClientBackupPath = Join-Path $backupPath "Umbraco_Client"
New-Item -ItemType Directory -Force -Path $umbracoClientBackupPath
robocopy $umbracoClientFolder $umbracoClientBackupPath /e /LOG:$copyLogsPath\UmbracoClientBackup.log
robocopy $umbracoClientFolderSource $umbracoClientFolder /is /it /e /LOG:$copyLogsPath\UmbracoClientCopy.log
$copyWebconfig = $true
$destinationWebConfig = Join-Path $projectDestinationPath "Web.config"
$destinationWebConfig = Join-Path $projectPath "Web.config"
if(Test-Path $destinationWebConfig)
{
@@ -71,11 +75,11 @@ if ($project) {
if($copyWebconfig -eq $true)
{
$packageWebConfigSource = Join-Path $rootPath "UmbracoFiles\Web.config"
$packageWebConfigSource = Join-Path $installPath "UmbracoFiles\Web.config"
Copy-Item $packageWebConfigSource $destinationWebConfig -Force
}
$installFolder = Join-Path $projectDestinationPath "Install"
$installFolder = Join-Path $projectPath "Install"
if(Test-Path $installFolder) {
Remove-Item $installFolder -Force -Recurse -Confirm:$false
}
+124 -33
View File
@@ -1,36 +1,127 @@
<?xml version="1.0"?>
<trees xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<add initialize="true" sortOrder="0" alias="content" application="content" title="Content" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.ContentTreeController, umbraco" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add alias="content" xdt:Locator="Match(alias)" xdt:Transform="RemoveAttributes(silent)" />
<add initialize="false" sortOrder="0" alias="contentRecycleBin" application="content" title="Recycle Bin" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.cms.presentation.Trees.ContentRecycleBin, umbraco" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add initialize="true" sortOrder="0" alias="media" application="media" title="Media" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.MediaTreeController, umbraco" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add initialize="false" sortOrder="0" alias="mediaRecycleBin" application="media" title="Recycle Bin" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.cms.presentation.Trees.MediaRecycleBin, umbraco" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="settings" alias="stylesheets" title="Stylesheets" type="umbraco.loadStylesheets, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="0" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="settings" alias="stylesheetProperty" title="Stylesheet Property" type="umbraco.loadStylesheetProperty, umbraco" iconClosed="" iconOpen="" initialize="false" sortOrder="0" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="settings" alias="templates" title="Templates" type="Umbraco.Web.Trees.TemplatesTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder-open" sortOrder="1" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="settings" alias="partialViews" title="Partial Views" silent="false" initialize="true" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.PartialViewsTree, umbraco" sortOrder="2" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="settings" alias="scripts" title="Scripts" type="umbraco.loadScripts, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="3" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="settings" alias="dictionary" title="Dictionary" type="umbraco.loadDictionary, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add alias="dictionary" xdt:Locator="Match(alias)" xdt:Transform="RemoveAttributes(action)" />
<add application="settings" alias="languages" title="Languages" type="Umbraco.Web.Trees.LanguageTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder-open" sortOrder="5" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="settings" alias="mediaTypes" title="Media Types" type="umbraco.loadMediaTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="6" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="settings" alias="nodeTypes" title="Document Types" type="umbraco.loadNodeTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="7" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add initialize="true" sortOrder="0" alias="datatype" application="developer" title="Data Types" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.DataTypeTreeController, umbraco" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="developer" alias="macros" title="Macros" type="umbraco.loadMacros, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="developer" alias="packager" title="Packages" type="umbraco.loadPackager, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="3" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="developer" alias="packagerPackages" title="Packager Packages" type="umbraco.loadPackages, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" initialize="false" sortOrder="3" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="developer" alias="relationTypes" title="Relation Types" type="umbraco.loadRelationTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="developer" alias="xslt" title="XSLT Files" type="umbraco.loadXslt, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="5" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="developer" alias="partialViewMacros" type="Umbraco.Web.Trees.PartialViewMacrosTree, umbraco" silent="false" initialize="true" sortOrder="6" title="Partial View Macro Files" iconClosed="icon-folder" iconOpen="icon-folder" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="users" alias="users" title="Users" type="umbraco.loadUsers, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="0" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="users" alias="userTypes" title="User Types" type="umbraco.cms.presentation.Trees.UserTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="1" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="users" alias="userPermissions" title="User Permissions" type="umbraco.cms.presentation.Trees.UserPermissions, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add initialize="true" sortOrder="0" alias="member" application="member" title="Members" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.MemberTreeController, umbraco" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="member" alias="memberGroup" title="Member Groups" type="umbraco.loadMemberGroups, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="1" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add application="member" alias="memberType" title="Member Types" type="umbraco.loadMemberTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add silent="false" initialize="true" sortOrder="1" alias="openTasks" application="translation" title="Tasks assigned to you" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.loadOpenTasks, umbraco" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add alias="openTasks" xdt:Locator="Match(alias)" xdt:Transform="RemoveAttributes(action)" />
<add silent="false" initialize="true" sortOrder="2" alias="yourTasks" application="translation" title="Tasks created by you" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.loadYourTasks, umbraco" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes()" />
<add alias="yourTasks" xdt:Locator="Match(alias)" xdt:Transform="RemoveAttributes(action)" />
<add application="developer" alias="python" xdt:Locator="Match(alias)" xdt:Transform="Remove" />
<!--Content-->
<add alias="content" application="content"
xdt:Locator="Match(application,alias)"
xdt:Transform="RemoveAttributes(silent)" />
<add initialize="false" sortOrder="0" alias="contentRecycleBin" application="content" title="Recycle Bin" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.cms.presentation.Trees.ContentRecycleBin, umbraco"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add initialize="true" sortOrder="0" alias="content" application="content" title="Content" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.ContentTreeController, umbraco"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<!--Media-->
<add initialize="true" sortOrder="0" alias="media" application="media" title="Media" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.MediaTreeController, umbraco"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add initialize="false" sortOrder="0" alias="mediaRecycleBin" application="media" title="Recycle Bin" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.cms.presentation.Trees.MediaRecycleBin, umbraco"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<!--Settings-->
<add application="settings" alias="nodeTypes"
xdt:Locator="Match(application,alias)"
xdt:Transform="Remove" />
<add initialize="true" sortOrder="0" alias="documentTypes" application="settings" title="Document Types" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.ContentTypeTreeController, umbraco"
xdt:Locator="Match(application,alias)"
xdt:Transform="InsertIfMissing" />
<add application="settings" alias="stylesheets" title="Stylesheets" type="umbraco.loadStylesheets, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="3"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="settings" alias="stylesheetProperty" title="Stylesheet Property" type="umbraco.loadStylesheetProperty, umbraco" iconClosed="" iconOpen="" initialize="false" sortOrder="0"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="settings" alias="templates" title="Templates" type="Umbraco.Web.Trees.TemplatesTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder-open" sortOrder="1"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="settings" alias="partialViews" title="Partial Views" silent="false" initialize="true" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.PartialViewsTree, umbraco" sortOrder="2"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="settings" alias="scripts" title="Scripts" type="umbraco.loadScripts, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="settings" alias="dictionary" title="Dictionary" type="umbraco.loadDictionary, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="6"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add alias="dictionary" application="settings"
xdt:Locator="Match(application,alias)"
xdt:Transform="RemoveAttributes(action)" />
<add application="settings" alias="languages" title="Languages" type="Umbraco.Web.Trees.LanguageTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder-open" sortOrder="5"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="settings" initialize="true" alias="mediaTypes" title="Media Types" type="Umbraco.Web.Trees.MediaTypeTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder-open" sortOrder="7"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<!--Developer-->
<add alias="datatype" application="developer"
xdt:Locator="Match(application,alias)"
xdt:Transform="Remove" />
<add initialize="true" sortOrder="0" alias="datatypes" application="developer" title="Data Types" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.DataTypeTreeController, umbraco"
xdt:Locator="Match(application,alias)"
xdt:Transform="InsertIfMissing" />
<add application="developer" alias="macros" title="Macros" type="umbraco.loadMacros, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="developer" alias="packager" title="Packages" type="umbraco.loadPackager, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="3"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="developer" alias="packagerPackages" title="Packager Packages" type="umbraco.loadPackages, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" initialize="false" sortOrder="3"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="developer" alias="relationTypes" title="Relation Types" type="umbraco.loadRelationTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="developer" alias="xslt" title="XSLT Files" type="umbraco.loadXslt, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="5"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="developer" alias="partialViewMacros" type="Umbraco.Web.Trees.PartialViewMacrosTree, umbraco" silent="false" initialize="true" sortOrder="6" title="Partial View Macro Files" iconClosed="icon-folder" iconOpen="icon-folder"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="developer" alias="python"
xdt:Locator="Match(application,alias)"
xdt:Transform="Remove" />
<!--Users-->
<add application="users" alias="users" title="Users" type="umbraco.loadUsers, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="0"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="users" alias="userTypes" title="User Types" type="umbraco.cms.presentation.Trees.UserTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="1"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="users" alias="userPermissions" title="User Permissions" type="umbraco.cms.presentation.Trees.UserPermissions, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<!--Members-->
<add initialize="true" sortOrder="0" alias="member" application="member" title="Members" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.MemberTreeController, umbraco"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="member" alias="memberGroup"
xdt:Locator="Match(application,alias)"
xdt:Transform="Remove" />
<add application="member" sortOrder="2" alias="memberGroups" title="Member Groups" type="umbraco.loadMemberGroups, umbraco" iconClosed="icon-folder" iconOpen="icon-folder"
xdt:Locator="Match(application,alias)"
xdt:Transform="InsertIfMissing" />
<add application="member" alias="memberType"
xdt:Locator="Match(application,alias)"
xdt:Transform="Remove" />
<add application="member" sortOrder="1" alias="memberTypes" initialize="true" title="Member Types" type="Umbraco.Web.Trees.MemberTypeTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder-open"
xdt:Locator="Match(application,alias)"
xdt:Transform="InsertIfMissing" />
<!--Translation-->
<add silent="false" initialize="true" sortOrder="1" alias="openTasks" application="translation" title="Tasks assigned to you" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.loadOpenTasks, umbraco"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add alias="openTasks" application="translation"
xdt:Locator="Match(application,alias)"
xdt:Transform="RemoveAttributes(action)" />
<add silent="false" initialize="true" sortOrder="2" alias="yourTasks" application="translation" title="Tasks created by you" iconClosed="icon-folder" iconOpen="icon-folder" type="umbraco.loadYourTasks, umbraco"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add alias="yourTasks" application="translation"
xdt:Locator="Match(application,alias)"
xdt:Transform="RemoveAttributes(action)" />
</trees>
+1 -1
View File
@@ -1,2 +1,2 @@
# Usage: on line 2 put the release version, on line 3 put the version comment (example: beta)
7.3.5
7.4.1
+6 -6
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="umbracocore" value="http://www.myget.org/f/umbracocore/" />
</packageSources>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="umbracocore" value="http://www.myget.org/f/umbracocore/" />
</packageSources>
</configuration>
+8 -6
View File
@@ -47,13 +47,15 @@
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\packages\SqlServerCE.4.0.0.0\lib\System.Data.SqlServerCe.dll</HintPath>
<Reference Include="System.Data.SqlServerCe, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
<HintPath>..\packages\SqlServerCE.4.0.0.1\lib\System.Data.SqlServerCe.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
<Private>False</Private>
</Reference>
<Reference Include="System.Data.SqlServerCe.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\packages\SqlServerCE.4.0.0.0\lib\System.Data.SqlServerCe.Entity.dll</HintPath>
<Reference Include="System.Data.SqlServerCe.Entity, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
<HintPath>..\packages\SqlServerCE.4.0.0.1\lib\System.Data.SqlServerCe.Entity.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
<Private>False</Private>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
+1 -1
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="SqlServerCE" version="4.0.0.0" targetFramework="net40" />
<package id="SqlServerCE" version="4.0.0.1" targetFramework="net45" />
</packages>
+2 -2
View File
@@ -11,5 +11,5 @@ using System.Resources;
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("7.3.5")]
[assembly: AssemblyInformationalVersion("7.3.5")]
[assembly: AssemblyFileVersion("7.4.1")]
[assembly: AssemblyInformationalVersion("7.4.1")]
@@ -7,14 +7,22 @@ using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Cache
{
/// <summary>
/// Interface describing this cache provider as a wrapper for another
/// </summary>
internal interface IRuntimeCacheProviderWrapper
{
IRuntimeCacheProvider InnerProvider { get; }
}
/// <summary>
/// A wrapper for any IRuntimeCacheProvider that ensures that all inserts and returns
/// are a deep cloned copy of the item when the item is IDeepCloneable and that tracks changes are
/// reset if the object is TracksChangesEntityBase
/// </summary>
internal class DeepCloneRuntimeCacheProvider : IRuntimeCacheProvider
internal class DeepCloneRuntimeCacheProvider : IRuntimeCacheProvider, IRuntimeCacheProviderWrapper
{
internal IRuntimeCacheProvider InnerProvider { get; private set; }
public IRuntimeCacheProvider InnerProvider { get; private set; }
public DeepCloneRuntimeCacheProvider(IRuntimeCacheProvider innerProvider)
{
@@ -11,35 +11,35 @@ namespace Umbraco.Core.Cache
/// </summary>
/// <typeparam name="TEntity"></typeparam>
/// <typeparam name="TId"></typeparam>
internal class DefaultRepositoryCachePolicy<TEntity, TId> : DisposableObject, IRepositoryCachePolicy<TEntity, TId>
/// <remarks>
/// This cache policy uses sliding expiration and caches instances for 5 minutes. However if allow zero count is true, then we use the
/// default policy with no expiry.
/// </remarks>
internal class DefaultRepositoryCachePolicy<TEntity, TId> : RepositoryCachePolicyBase<TEntity, TId>
where TEntity : class, IAggregateRoot
{
private readonly RepositoryCachePolicyOptions _options;
protected IRuntimeCacheProvider Cache { get; private set; }
private Action _action;
public DefaultRepositoryCachePolicy(IRuntimeCacheProvider cache, RepositoryCachePolicyOptions options)
{
if (cache == null) throw new ArgumentNullException("cache");
: base(cache)
{
if (options == null) throw new ArgumentNullException("options");
_options = options;
Cache = cache;
_options = options;
}
public string GetCacheIdKey(object id)
protected string GetCacheIdKey(object id)
{
if (id == null) throw new ArgumentNullException("id");
return string.Format("{0}{1}", GetCacheTypeKey(), id);
}
public string GetCacheTypeKey()
protected string GetCacheTypeKey()
{
return string.Format("uRepo_{0}_", typeof(TEntity).Name);
}
public void CreateOrUpdate(TEntity entity, Action<TEntity> persistMethod)
public override void CreateOrUpdate(TEntity entity, Action<TEntity> persistMethod)
{
if (entity == null) throw new ArgumentNullException("entity");
if (persistMethod == null) throw new ArgumentNullException("persistMethod");
@@ -54,7 +54,9 @@ namespace Umbraco.Core.Cache
//just to be safe, we cannot cache an item without an identity
if (entity.HasIdentity)
{
Cache.InsertCacheItem(GetCacheIdKey(entity.Id), () => entity);
Cache.InsertCacheItem(GetCacheIdKey(entity.Id), () => entity,
timeout: TimeSpan.FromMinutes(5),
isSliding: true);
}
//If there's a GetAllCacheAllowZeroCount cache, ensure it is cleared
@@ -79,24 +81,29 @@ namespace Umbraco.Core.Cache
}
}
public void Remove(TEntity entity, Action<TEntity> persistMethod)
public override void Remove(TEntity entity, Action<TEntity> persistMethod)
{
if (entity == null) throw new ArgumentNullException("entity");
if (persistMethod == null) throw new ArgumentNullException("persistMethod");
persistMethod(entity);
//set the disposal action
var cacheKey = GetCacheIdKey(entity.Id);
SetCacheAction(() =>
try
{
Cache.ClearCacheItem(cacheKey);
//If there's a GetAllCacheAllowZeroCount cache, ensure it is cleared
Cache.ClearCacheItem(GetCacheTypeKey());
});
persistMethod(entity);
}
finally
{
//set the disposal action
var cacheKey = GetCacheIdKey(entity.Id);
SetCacheAction(() =>
{
Cache.ClearCacheItem(cacheKey);
//If there's a GetAllCacheAllowZeroCount cache, ensure it is cleared
Cache.ClearCacheItem(GetCacheTypeKey());
});
}
}
public TEntity Get(TId id, Func<TId, TEntity> getFromRepo)
public override TEntity Get(TId id, Func<TId, TEntity> getFromRepo)
{
if (getFromRepo == null) throw new ArgumentNullException("getFromRepo");
@@ -113,13 +120,13 @@ namespace Umbraco.Core.Cache
return entity;
}
public TEntity Get(TId id)
public override TEntity Get(TId id)
{
var cacheKey = GetCacheIdKey(id);
return Cache.GetCacheItem<TEntity>(cacheKey);
}
public bool Exists(TId id, Func<TId, bool> getFromRepo)
public override bool Exists(TId id, Func<TId, bool> getFromRepo)
{
if (getFromRepo == null) throw new ArgumentNullException("getFromRepo");
@@ -128,7 +135,7 @@ namespace Umbraco.Core.Cache
return fromCache != null || getFromRepo(id);
}
public virtual TEntity[] GetAll(TId[] ids, Func<TId[], IEnumerable<TEntity>> getFromRepo)
public override TEntity[] GetAll(TId[] ids, Func<TId[], IEnumerable<TEntity>> getFromRepo)
{
if (getFromRepo == null) throw new ArgumentNullException("getFromRepo");
@@ -158,8 +165,7 @@ namespace Umbraco.Core.Cache
else if (_options.GetAllCacheAllowZeroCount)
{
//if the repository allows caching a zero count, then check the zero count cache
var zeroCount = Cache.GetCacheItem<TEntity[]>(GetCacheTypeKey());
if (zeroCount != null && zeroCount.Any() == false)
if (HasZeroCountCache())
{
//there is a zero count cache so return an empty list
return new TEntity[] {};
@@ -179,28 +185,27 @@ namespace Umbraco.Core.Cache
return entityCollection;
}
/// <summary>
/// Looks up the zero count cache, must return null if it doesn't exist
/// </summary>
/// <returns></returns>
protected bool HasZeroCountCache()
{
var zeroCount = Cache.GetCacheItem<TEntity[]>(GetCacheTypeKey());
return (zeroCount != null && zeroCount.Any() == false);
}
/// <summary>
/// Performs the lookup for all entities of this type from the cache
/// </summary>
/// <returns></returns>
protected virtual TEntity[] GetAllFromCache()
protected TEntity[] GetAllFromCache()
{
var allEntities = Cache.GetCacheItemsByKeySearch<TEntity>(GetCacheTypeKey())
.WhereNotNull()
.ToArray();
return allEntities.Any() ? allEntities : new TEntity[] {};
}
/// <summary>
/// The disposal performs the caching
/// </summary>
protected override void DisposeResources()
{
if (_action != null)
{
_action();
}
}
}
/// <summary>
/// Sets the action to execute on disposal for a single entity
@@ -216,7 +221,9 @@ namespace Umbraco.Core.Cache
//just to be safe, we cannot cache an item without an identity
if (entity.HasIdentity)
{
Cache.InsertCacheItem(cacheKey, () => entity);
Cache.InsertCacheItem(cacheKey, () => entity,
timeout: TimeSpan.FromMinutes(5),
isSliding: true);
}
});
}
@@ -235,6 +242,7 @@ namespace Umbraco.Core.Cache
{
//there was nothing returned but we want to cache a zero count result so add an TEntity[] to the cache
// to signify that there is a zero count cache
//NOTE: Don't set expiry/sliding for a zero count
Cache.InsertCacheItem(GetCacheTypeKey(), () => new TEntity[] {});
}
else
@@ -247,20 +255,14 @@ namespace Umbraco.Core.Cache
//just to be safe, we cannot cache an item without an identity
if (localCopy.HasIdentity)
{
Cache.InsertCacheItem(GetCacheIdKey(entity.Id), () => localCopy);
Cache.InsertCacheItem(GetCacheIdKey(entity.Id), () => localCopy,
timeout: TimeSpan.FromMinutes(5),
isSliding: true);
}
}
}
});
}
/// <summary>
/// Sets the action to execute on disposal
/// </summary>
/// <param name="action"></param>
protected void SetCacheAction(Action action)
{
_action = action;
}
}
}
@@ -1,3 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Umbraco.Core.Collections;
using Umbraco.Core.Models.EntityBase;
@@ -9,11 +11,157 @@ namespace Umbraco.Core.Cache
/// </summary>
/// <typeparam name="TEntity"></typeparam>
/// <typeparam name="TId"></typeparam>
internal class FullDataSetRepositoryCachePolicy<TEntity, TId> : DefaultRepositoryCachePolicy<TEntity, TId>
internal class FullDataSetRepositoryCachePolicy<TEntity, TId> : RepositoryCachePolicyBase<TEntity, TId>
where TEntity : class, IAggregateRoot
{
public FullDataSetRepositoryCachePolicy(IRuntimeCacheProvider cache) : base(cache, new RepositoryCachePolicyOptions())
private readonly Func<TEntity, TId> _getEntityId;
private readonly Func<IEnumerable<TEntity>> _getAllFromRepo;
private readonly bool _expires;
public FullDataSetRepositoryCachePolicy(IRuntimeCacheProvider cache, Func<TEntity, TId> getEntityId, Func<IEnumerable<TEntity>> getAllFromRepo, bool expires)
: base(cache)
{
_getEntityId = getEntityId;
_getAllFromRepo = getAllFromRepo;
_expires = expires;
}
private bool? _hasZeroCountCache;
protected string GetCacheTypeKey()
{
return string.Format("uRepo_{0}_", typeof(TEntity).Name);
}
public override void CreateOrUpdate(TEntity entity, Action<TEntity> persistMethod)
{
if (entity == null) throw new ArgumentNullException("entity");
if (persistMethod == null) throw new ArgumentNullException("persistMethod");
try
{
persistMethod(entity);
//set the disposal action
SetCacheAction(() =>
{
//Clear all
Cache.ClearCacheItem(GetCacheTypeKey());
});
}
catch
{
//set the disposal action
SetCacheAction(() =>
{
//Clear all
Cache.ClearCacheItem(GetCacheTypeKey());
});
throw;
}
}
public override void Remove(TEntity entity, Action<TEntity> persistMethod)
{
if (entity == null) throw new ArgumentNullException("entity");
if (persistMethod == null) throw new ArgumentNullException("persistMethod");
try
{
persistMethod(entity);
}
finally
{
//set the disposal action
SetCacheAction(() =>
{
//Clear all
Cache.ClearCacheItem(GetCacheTypeKey());
});
}
}
public override TEntity Get(TId id, Func<TId, TEntity> getFromRepo)
{
//Force get all with cache
var found = GetAll(new TId[] { }, ids => _getAllFromRepo().WhereNotNull());
//we don't have anything in cache (this should never happen), just return from the repo
if (found == null) return getFromRepo(id);
var entity = found.FirstOrDefault(x => _getEntityId(x).Equals(id));
if (entity == null) return null;
//We must ensure to deep clone each one out manually since the deep clone list only clones one way
return (TEntity)entity.DeepClone();
}
public override TEntity Get(TId id)
{
//Force get all with cache
var found = GetAll(new TId[] { }, ids => _getAllFromRepo().WhereNotNull());
//we don't have anything in cache (this should never happen), just return null
if (found == null) return null;
var entity = found.FirstOrDefault(x => _getEntityId(x).Equals(id));
if (entity == null) return null;
//We must ensure to deep clone each one out manually since the deep clone list only clones one way
return (TEntity)entity.DeepClone();
}
public override bool Exists(TId id, Func<TId, bool> getFromRepo)
{
//Force get all with cache
var found = GetAll(new TId[] { }, ids => _getAllFromRepo().WhereNotNull());
//we don't have anything in cache (this should never happen), just return from the repo
return found == null
? getFromRepo(id)
: found.Any(x => _getEntityId(x).Equals(id));
}
public override TEntity[] GetAll(TId[] ids, Func<TId[], IEnumerable<TEntity>> getFromRepo)
{
//process getting all including setting the cache callback
var result = PerformGetAll(getFromRepo);
//now that the base result has been calculated, they will all be cached.
// Now we can just filter by ids if they have been supplied
return (ids.Any()
? result.Where(x => ids.Contains(_getEntityId(x))).ToArray()
: result)
//We must ensure to deep clone each one out manually since the deep clone list only clones one way
.Select(x => (TEntity)x.DeepClone())
.ToArray();
}
private TEntity[] PerformGetAll(Func<TId[], IEnumerable<TEntity>> getFromRepo)
{
var allEntities = GetAllFromCache();
if (allEntities.Any())
{
return allEntities;
}
//check the zero count cache
if (HasZeroCountCache())
{
//there is a zero count cache so return an empty list
return new TEntity[] { };
}
//we need to do the lookup from the repo
var entityCollection = getFromRepo(new TId[] { })
//ensure we don't include any null refs in the returned collection!
.WhereNotNull()
.ToArray();
//set the disposal action
SetCacheAction(entityCollection);
return entityCollection;
}
/// <summary>
@@ -21,37 +169,61 @@ namespace Umbraco.Core.Cache
/// </summary>
/// <param name="cacheKey"></param>
/// <param name="entity"></param>
protected override void SetCacheAction(string cacheKey, TEntity entity)
protected void SetCacheAction(string cacheKey, TEntity entity)
{
//do nothing
//No-op
}
/// <summary>
/// Sets the action to execute on disposal for an entity collection
/// </summary>
/// <param name="ids"></param>
/// <param name="entityCollection"></param>
protected override void SetCacheAction(TId[] ids, TEntity[] entityCollection)
protected void SetCacheAction(TEntity[] entityCollection)
{
//for this type of caching policy, we don't want to cache any GetAll request containing specific Ids
if (ids.Any()) return;
//set the disposal action
SetCacheAction(() =>
{
//We want to cache the result as a single collection
Cache.InsertCacheItem(GetCacheTypeKey(), () => new DeepCloneableList<TEntity>(entityCollection));
if (_expires)
{
Cache.InsertCacheItem(GetCacheTypeKey(), () => new DeepCloneableList<TEntity>(entityCollection),
timeout: TimeSpan.FromMinutes(5),
isSliding: true);
}
else
{
Cache.InsertCacheItem(GetCacheTypeKey(), () => new DeepCloneableList<TEntity>(entityCollection));
}
});
}
/// <summary>
/// Looks up the zero count cache, must return null if it doesn't exist
/// </summary>
/// <returns></returns>
protected bool HasZeroCountCache()
{
if (_hasZeroCountCache.HasValue)
return _hasZeroCountCache.Value;
_hasZeroCountCache = Cache.GetCacheItem<DeepCloneableList<TEntity>>(GetCacheTypeKey()) != null;
return _hasZeroCountCache.Value;
}
/// <summary>
/// This policy will cache the full data set as a single collection
/// </summary>
/// <returns></returns>
protected override TEntity[] GetAllFromCache()
protected TEntity[] GetAllFromCache()
{
var found = Cache.GetCacheItem<DeepCloneableList<TEntity>>(GetCacheTypeKey());
//This method will get called before checking for zero count cache, so we'll just set the flag here
_hasZeroCountCache = found != null;
return found == null ? new TEntity[] { } : found.WhereNotNull().ToArray();
}
}
}
@@ -1,3 +1,5 @@
using System;
using System.Collections.Generic;
using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Cache
@@ -11,15 +13,21 @@ namespace Umbraco.Core.Cache
where TEntity : class, IAggregateRoot
{
private readonly IRuntimeCacheProvider _runtimeCache;
public FullDataSetRepositoryCachePolicyFactory(IRuntimeCacheProvider runtimeCache)
private readonly Func<TEntity, TId> _getEntityId;
private readonly Func<IEnumerable<TEntity>> _getAllFromRepo;
private readonly bool _expires;
public FullDataSetRepositoryCachePolicyFactory(IRuntimeCacheProvider runtimeCache, Func<TEntity, TId> getEntityId, Func<IEnumerable<TEntity>> getAllFromRepo, bool expires)
{
_runtimeCache = runtimeCache;
_getEntityId = getEntityId;
_getAllFromRepo = getAllFromRepo;
_expires = expires;
}
public virtual IRepositoryCachePolicy<TEntity, TId> CreatePolicy()
{
return new FullDataSetRepositoryCachePolicy<TEntity, TId>(_runtimeCache);
return new FullDataSetRepositoryCachePolicy<TEntity, TId>(_runtimeCache, _getEntityId, _getAllFromRepo, _expires);
}
}
}
@@ -10,9 +10,7 @@ namespace Umbraco.Core.Cache
TEntity Get(TId id, Func<TId, TEntity> getFromRepo);
TEntity Get(TId id);
bool Exists(TId id, Func<TId, bool> getFromRepo);
string GetCacheIdKey(object id);
string GetCacheTypeKey();
void CreateOrUpdate(TEntity entity, Action<TEntity> persistMethod);
void Remove(TEntity entity, Action<TEntity> persistMethod);
TEntity[] GetAll(TId[] ids, Func<TId[], IEnumerable<TEntity>> getFromRepo);
@@ -12,7 +12,7 @@ namespace Umbraco.Core.Cache
/// </remarks>
public class IsolatedRuntimeCache
{
private readonly Func<Type, IRuntimeCacheProvider> _cacheFactory;
internal Func<Type, IRuntimeCacheProvider> CacheFactory { get; set; }
/// <summary>
/// Constructor that allows specifying a factory for the type of runtime isolated cache to create
@@ -20,7 +20,7 @@ namespace Umbraco.Core.Cache
/// <param name="cacheFactory"></param>
public IsolatedRuntimeCache(Func<Type, IRuntimeCacheProvider> cacheFactory)
{
_cacheFactory = cacheFactory;
CacheFactory = cacheFactory;
}
private readonly ConcurrentDictionary<Type, IRuntimeCacheProvider> _isolatedCache = new ConcurrentDictionary<Type, IRuntimeCacheProvider>();
@@ -32,7 +32,7 @@ namespace Umbraco.Core.Cache
/// <returns></returns>
public IRuntimeCacheProvider GetOrCreateCache<T>()
{
return _isolatedCache.GetOrAdd(typeof(T), type => _cacheFactory(type));
return _isolatedCache.GetOrAdd(typeof(T), type => CacheFactory(type));
}
/// <summary>
@@ -41,7 +41,7 @@ namespace Umbraco.Core.Cache
/// <returns></returns>
public IRuntimeCacheProvider GetOrCreateCache(Type type)
{
return _isolatedCache.GetOrAdd(type, t => _cacheFactory(t));
return _isolatedCache.GetOrAdd(type, t => CacheFactory(t));
}
/// <summary>
@@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Cache
{
internal abstract class RepositoryCachePolicyBase<TEntity, TId> : DisposableObject, IRepositoryCachePolicy<TEntity, TId>
where TEntity : class, IAggregateRoot
{
private Action _action;
protected RepositoryCachePolicyBase(IRuntimeCacheProvider cache)
{
if (cache == null) throw new ArgumentNullException("cache");
Cache = cache;
}
protected IRuntimeCacheProvider Cache { get; private set; }
/// <summary>
/// The disposal performs the caching
/// </summary>
protected override void DisposeResources()
{
if (_action != null)
{
_action();
}
}
/// <summary>
/// Sets the action to execute on disposal
/// </summary>
/// <param name="action"></param>
protected void SetCacheAction(Action action)
{
_action = action;
}
public abstract TEntity Get(TId id, Func<TId, TEntity> getFromRepo);
public abstract TEntity Get(TId id);
public abstract bool Exists(TId id, Func<TId, bool> getFromRepo);
public abstract void CreateOrUpdate(TEntity entity, Action<TEntity> persistMethod);
public abstract void Remove(TEntity entity, Action<TEntity> persistMethod);
public abstract TEntity[] GetAll(TId[] ids, Func<TId[], IEnumerable<TEntity>> getFromRepo);
}
}
@@ -18,7 +18,7 @@ namespace Umbraco.Core.Cache
protected override void SetCacheAction(TId[] ids, TEntity[] entityCollection)
{
//do nothing
//no-op
}
}
}
+44 -46
View File
@@ -18,12 +18,8 @@ namespace Umbraco.Core
/// </summary>
public class CacheHelper
{
private readonly IsolatedRuntimeCache _isolatedCacheManager;
private readonly ICacheProvider _requestCache;
private static readonly ICacheProvider NullRequestCache = new NullCacheProvider();
private readonly ICacheProvider _staticCache;
private static readonly ICacheProvider NullStaticCache = new NullCacheProvider();
private readonly IRuntimeCacheProvider _runtimeCache;
private static readonly IRuntimeCacheProvider NullRuntimeCache = new NullCacheProvider();
/// <summary>
@@ -90,45 +86,33 @@ namespace Umbraco.Core
if (staticCacheProvider == null) throw new ArgumentNullException("staticCacheProvider");
if (requestCacheProvider == null) throw new ArgumentNullException("requestCacheProvider");
if (isolatedCacheManager == null) throw new ArgumentNullException("isolatedCacheManager");
_runtimeCache = httpCacheProvider;
_staticCache = staticCacheProvider;
_requestCache = requestCacheProvider;
_isolatedCacheManager = isolatedCacheManager;
RuntimeCache = httpCacheProvider;
StaticCache = staticCacheProvider;
RequestCache = requestCacheProvider;
IsolatedRuntimeCache = isolatedCacheManager;
}
/// <summary>
/// Returns the current Request cache
/// </summary>
public ICacheProvider RequestCache
{
get { return _requestCache; }
}
public ICacheProvider RequestCache { get; internal set; }
/// <summary>
/// Returns the current Runtime cache
/// </summary>
public ICacheProvider StaticCache
{
get { return _staticCache; }
}
public ICacheProvider StaticCache { get; internal set; }
/// <summary>
/// Returns the current Runtime cache
/// </summary>
public IRuntimeCacheProvider RuntimeCache
{
get { return _runtimeCache; }
}
public IRuntimeCacheProvider RuntimeCache { get; internal set; }
/// <summary>
/// Returns the current Isolated Runtime cache manager
/// </summary>
public IsolatedRuntimeCache IsolatedRuntimeCache
{
get { return _isolatedCacheManager; }
}
#region Legacy Runtime/Http Cache accessors
public IsolatedRuntimeCache IsolatedRuntimeCache { get; internal set; }
#region Legacy Runtime/Http Cache accessors
/// <summary>
/// Clears the item in umbraco's runtime cache
@@ -137,8 +121,8 @@ namespace Umbraco.Core
[EditorBrowsable(EditorBrowsableState.Never)]
public void ClearAllCache()
{
_runtimeCache.ClearAllCache();
_isolatedCacheManager.ClearAllCaches();
RuntimeCache.ClearAllCache();
IsolatedRuntimeCache.ClearAllCaches();
}
/// <summary>
@@ -149,7 +133,7 @@ namespace Umbraco.Core
[EditorBrowsable(EditorBrowsableState.Never)]
public void ClearCacheItem(string key)
{
_runtimeCache.ClearCacheItem(key);
RuntimeCache.ClearCacheItem(key);
}
@@ -161,7 +145,7 @@ namespace Umbraco.Core
[Obsolete("Do not use this method, access the runtime cache from the RuntimeCache property")]
public void ClearCacheObjectTypes(string typeName)
{
_runtimeCache.ClearCacheObjectTypes(typeName);
RuntimeCache.ClearCacheObjectTypes(typeName);
}
/// <summary>
@@ -171,7 +155,7 @@ namespace Umbraco.Core
[EditorBrowsable(EditorBrowsableState.Never)]
public void ClearCacheObjectTypes<T>()
{
_runtimeCache.ClearCacheObjectTypes<T>();
RuntimeCache.ClearCacheObjectTypes<T>();
}
/// <summary>
@@ -182,7 +166,7 @@ namespace Umbraco.Core
[EditorBrowsable(EditorBrowsableState.Never)]
public void ClearCacheByKeySearch(string keyStartsWith)
{
_runtimeCache.ClearCacheByKeySearch(keyStartsWith);
RuntimeCache.ClearCacheByKeySearch(keyStartsWith);
}
/// <summary>
@@ -193,14 +177,14 @@ namespace Umbraco.Core
[EditorBrowsable(EditorBrowsableState.Never)]
public void ClearCacheByKeyExpression(string regexString)
{
_runtimeCache.ClearCacheByKeyExpression(regexString);
RuntimeCache.ClearCacheByKeyExpression(regexString);
}
[Obsolete("Do not use this method, access the runtime cache from the RuntimeCache property")]
[EditorBrowsable(EditorBrowsableState.Never)]
public IEnumerable<T> GetCacheItemsByKeySearch<T>(string keyStartsWith)
{
return _runtimeCache.GetCacheItemsByKeySearch<T>(keyStartsWith);
return RuntimeCache.GetCacheItemsByKeySearch<T>(keyStartsWith);
}
/// <summary>
@@ -213,7 +197,7 @@ namespace Umbraco.Core
[EditorBrowsable(EditorBrowsableState.Never)]
public TT GetCacheItem<TT>(string cacheKey)
{
return _runtimeCache.GetCacheItem<TT>(cacheKey);
return RuntimeCache.GetCacheItem<TT>(cacheKey);
}
/// <summary>
@@ -227,7 +211,7 @@ namespace Umbraco.Core
[EditorBrowsable(EditorBrowsableState.Never)]
public TT GetCacheItem<TT>(string cacheKey, Func<TT> getCacheItem)
{
return _runtimeCache.GetCacheItem<TT>(cacheKey, getCacheItem);
return RuntimeCache.GetCacheItem<TT>(cacheKey, getCacheItem);
}
@@ -244,7 +228,7 @@ namespace Umbraco.Core
public TT GetCacheItem<TT>(string cacheKey,
TimeSpan timeout, Func<TT> getCacheItem)
{
return _runtimeCache.GetCacheItem<TT>(cacheKey, getCacheItem, timeout);
return RuntimeCache.GetCacheItem<TT>(cacheKey, getCacheItem, timeout);
}
@@ -263,7 +247,7 @@ namespace Umbraco.Core
CacheItemRemovedCallback refreshAction, TimeSpan timeout,
Func<TT> getCacheItem)
{
return _runtimeCache.GetCacheItem<TT>(cacheKey, getCacheItem, timeout, removedCallback: refreshAction);
return RuntimeCache.GetCacheItem<TT>(cacheKey, getCacheItem, timeout, removedCallback: refreshAction);
}
@@ -283,7 +267,7 @@ namespace Umbraco.Core
CacheItemPriority priority, CacheItemRemovedCallback refreshAction, TimeSpan timeout,
Func<TT> getCacheItem)
{
return _runtimeCache.GetCacheItem<TT>(cacheKey, getCacheItem, timeout, false, priority, refreshAction);
return RuntimeCache.GetCacheItem<TT>(cacheKey, getCacheItem, timeout, false, priority, refreshAction);
}
@@ -306,7 +290,7 @@ namespace Umbraco.Core
TimeSpan timeout,
Func<TT> getCacheItem)
{
var cache = _runtimeCache as HttpRuntimeCacheProvider;
var cache = GetHttpRuntimeCacheProvider(RuntimeCache);
if (cache != null)
{
var result = cache.GetCacheItem(cacheKey, () => getCacheItem(), timeout, false, priority, refreshAction, cacheDependency);
@@ -330,7 +314,7 @@ namespace Umbraco.Core
CacheDependency cacheDependency,
Func<TT> getCacheItem)
{
var cache = _runtimeCache as HttpRuntimeCacheProvider;
var cache = GetHttpRuntimeCacheProvider(RuntimeCache);
if (cache != null)
{
var result = cache.GetCacheItem(cacheKey, () => getCacheItem(), null, false, priority, null, cacheDependency);
@@ -352,7 +336,7 @@ namespace Umbraco.Core
CacheItemPriority priority,
Func<T> getCacheItem)
{
_runtimeCache.InsertCacheItem<T>(cacheKey, getCacheItem, priority: priority);
RuntimeCache.InsertCacheItem<T>(cacheKey, getCacheItem, priority: priority);
}
@@ -371,7 +355,7 @@ namespace Umbraco.Core
TimeSpan timeout,
Func<T> getCacheItem)
{
_runtimeCache.InsertCacheItem<T>(cacheKey, getCacheItem, timeout, priority: priority);
RuntimeCache.InsertCacheItem<T>(cacheKey, getCacheItem, timeout, priority: priority);
}
/// <summary>
@@ -390,7 +374,7 @@ namespace Umbraco.Core
TimeSpan timeout,
Func<T> getCacheItem)
{
var cache = _runtimeCache as HttpRuntimeCacheProvider;
var cache = GetHttpRuntimeCacheProvider(RuntimeCache);
if (cache != null)
{
cache.InsertCacheItem(cacheKey, () => getCacheItem(), timeout, false, priority, null, cacheDependency);
@@ -416,7 +400,7 @@ namespace Umbraco.Core
TimeSpan? timeout,
Func<T> getCacheItem)
{
var cache = _runtimeCache as HttpRuntimeCacheProvider;
var cache = GetHttpRuntimeCacheProvider(RuntimeCache);
if (cache != null)
{
cache.InsertCacheItem(cacheKey, () => getCacheItem(), timeout, false, priority, refreshAction, cacheDependency);
@@ -425,6 +409,20 @@ namespace Umbraco.Core
}
#endregion
}
private HttpRuntimeCacheProvider GetHttpRuntimeCacheProvider(IRuntimeCacheProvider runtimeCache)
{
HttpRuntimeCacheProvider cache;
var wrapper = RuntimeCache as IRuntimeCacheProviderWrapper;
if (wrapper != null)
{
cache = wrapper.InnerProvider as HttpRuntimeCacheProvider;
}
else
{
cache = RuntimeCache as HttpRuntimeCacheProvider;
}
return cache;
}
}
}
@@ -14,18 +14,24 @@ namespace Umbraco.Core.Collections
/// <typeparam name="T"></typeparam>
internal class DeepCloneableList<T> : List<T>, IDeepCloneable, IRememberBeingDirty
{
/// <summary>
/// Initializes a new instance of the <see cref="T:System.Collections.Generic.List`1"/> class that is empty and has the default initial capacity.
/// </summary>
public DeepCloneableList()
private readonly ListCloneBehavior _listCloneBehavior;
public DeepCloneableList(ListCloneBehavior listCloneBehavior)
{
_listCloneBehavior = listCloneBehavior;
}
public DeepCloneableList(IEnumerable<T> collection, ListCloneBehavior listCloneBehavior) : base(collection)
{
_listCloneBehavior = listCloneBehavior;
}
/// <summary>
/// Initializes a new instance of the <see cref="T:System.Collections.Generic.List`1"/> class that contains elements copied from the specified collection and has sufficient capacity to accommodate the number of elements copied.
/// Default behavior is CloneOnce
/// </summary>
/// <param name="collection">The collection whose elements are copied to the new list.</param><exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is null.</exception>
public DeepCloneableList(IEnumerable<T> collection) : base(collection)
/// <param name="collection"></param>
public DeepCloneableList(IEnumerable<T> collection)
: this(collection, ListCloneBehavior.CloneOnce)
{
}
@@ -35,20 +41,47 @@ namespace Umbraco.Core.Collections
/// <returns></returns>
public object DeepClone()
{
var newList = new DeepCloneableList<T>();
foreach (var item in this)
switch (_listCloneBehavior)
{
var dc = item as IDeepCloneable;
if (dc != null)
{
newList.Add((T) dc.DeepClone());
}
else
{
newList.Add(item);
}
case ListCloneBehavior.CloneOnce:
//we are cloning once, so create a new list in none mode
// and deep clone all items into it
var newList = new DeepCloneableList<T>(ListCloneBehavior.None);
foreach (var item in this)
{
var dc = item as IDeepCloneable;
if (dc != null)
{
newList.Add((T)dc.DeepClone());
}
else
{
newList.Add(item);
}
}
return newList;
case ListCloneBehavior.None:
//we are in none mode, so just return a new list with the same items
return new DeepCloneableList<T>(this, ListCloneBehavior.None);
case ListCloneBehavior.Always:
//always clone to new list
var newList2 = new DeepCloneableList<T>(ListCloneBehavior.Always);
foreach (var item in this)
{
var dc = item as IDeepCloneable;
if (dc != null)
{
newList2.Add((T)dc.DeepClone());
}
else
{
newList2.Add(item);
}
}
return newList2;
default:
throw new ArgumentOutOfRangeException();
}
return newList;
}
public bool IsDirty()
@@ -0,0 +1,20 @@
namespace Umbraco.Core.Collections
{
internal enum ListCloneBehavior
{
/// <summary>
/// When set, DeepClone will clone the items one time and the result list behavior will be None
/// </summary>
CloneOnce,
/// <summary>
/// When set, DeepClone will not clone any items
/// </summary>
None,
/// <summary>
/// When set, DeepClone will always clone all items
/// </summary>
Always
}
}
@@ -280,6 +280,18 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
}
}
[ConfigurationProperty("EnableInheritedDocumentTypes")]
internal InnerTextConfigurationElement<bool> EnableInheritedDocumentTypes
{
get
{
return new OptionalInnerTextConfigurationElement<bool>(
(InnerTextConfigurationElement<bool>) this["EnableInheritedDocumentTypes"],
//set the default
true);
}
}
string IContentSection.NotificationEmailAddress
{
get { return Notifications.NotificationEmailAddress; }
@@ -414,5 +426,10 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
{
get { return DefaultDocumentTypeProperty; }
}
bool IContentSection.EnableInheritedDocumentTypes
{
get { return EnableInheritedDocumentTypes; }
}
}
}
@@ -59,5 +59,7 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
bool GlobalPreviewStorageEnabled { get; }
string DefaultDocumentTypeProperty { get; }
bool EnableInheritedDocumentTypes { get; }
}
}
@@ -6,7 +6,7 @@ namespace Umbraco.Core.Configuration
{
public class UmbracoVersion
{
private static readonly Version Version = new Version("7.3.5");
private static readonly Version Version = new Version("7.4.1");
/// <summary>
/// Gets the current version of Umbraco.
+18 -2
View File
@@ -59,7 +59,7 @@
public const string Content = "content";
/// <summary>
/// alias for the media tree.
/// alias for the member tree.
/// </summary>
public const string Members = "member";
@@ -71,7 +71,7 @@
/// <summary>
/// alias for the datatype tree.
/// </summary>
public const string DataTypes = "datatype";
public const string DataTypes = "dataTypes";
/// <summary>
/// alias for the dictionary tree.
@@ -80,6 +80,22 @@
public const string Stylesheets = "stylesheets";
/// <summary>
/// alias for the document type tree.
/// </summary>
public const string DocumentTypes = "documentTypes";
/// <summary>
/// alias for the media type tree.
/// </summary>
public const string MediaTypes = "mediaTypes";
/// <summary>
/// alias for the member type tree.
/// </summary>
public const string MemberTypes = "memberTypes";
/// <summary>
/// alias for the template tree.
/// </summary>
+53
View File
@@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Umbraco.Core
{
public static partial class Constants
{
public static class Icons
{
/// <summary>
/// System contenttype icon
/// </summary>
public const string ContentType = "icon-arrangement";
/// <summary>
/// System datatype icon
/// </summary>
public const string DataType = "icon-autofill";
/// <summary>
/// System property editor icon
/// </summary>
public const string PropertyEditor = "icon-autofill";
/// <summary>
/// System macro icon
/// </summary>
public const string Macro = "icon-settings-alt";
/// <summary>
/// System member icon
/// </summary>
public const string Member = "icon-user";
/// <summary>
/// System member icon
/// </summary>
public const string MemberType = "icon-users";
/// <summary>
/// System member icon
/// </summary>
public const string Template = "icon-layout";
}
}
}
+52
View File
@@ -9,6 +9,36 @@ namespace Umbraco.Core
/// </summary>
public static class ObjectTypes
{
/// <summary>
/// Guid for a data type container
/// </summary>
public const string DataTypeContainer = "521231E3-8B37-469C-9F9D-51AFC91FEB7B";
/// <summary>
/// Guid for a data type container
/// </summary>
public static readonly Guid DataTypeContainerGuid = new Guid(DataTypeContainer);
/// <summary>
/// Guid for a doc type container
/// </summary>
public const string DocumentTypeContainer = "2F7A2769-6B0B-4468-90DD-AF42D64F7F16";
/// <summary>
/// Guid for a doc type container
/// </summary>
public static readonly Guid DocumentTypeContainerGuid = new Guid(DocumentTypeContainer);
/// <summary>
/// Guid for a doc type container
/// </summary>
public const string MediaTypeContainer = "42AEF799-B288-4744-9B10-BE144B73CDC4";
/// <summary>
/// Guid for a doc type container
/// </summary>
public static readonly Guid MediaTypeContainerGuid = new Guid(MediaTypeContainer);
/// <summary>
/// Guid for a Content Item object.
/// </summary>
@@ -29,6 +59,11 @@ namespace Umbraco.Core
/// </summary>
public const string DataType = "30A2A501-1978-4DDB-A57B-F7EFED43BA3C";
/// <summary>
/// Guid for a DataType object.
/// </summary>
public static readonly Guid DataTypeGuid = new Guid(DataType);
/// <summary>
/// Guid for a Document object.
/// </summary>
@@ -39,6 +74,11 @@ namespace Umbraco.Core
/// </summary>
public const string DocumentType = "A2CB7800-F571-4787-9638-BC48539A0EFB";
/// <summary>
/// Guid for a Document Type object.
/// </summary>
public static readonly Guid DocumentTypeGuid = new Guid(DocumentType);
/// <summary>
/// Guid for a Media object.
/// </summary>
@@ -54,6 +94,11 @@ namespace Umbraco.Core
/// </summary>
public const string MediaType = "4EA4382B-2F5A-4C2B-9587-AE9B3CF3602E";
/// <summary>
/// Guid for a Media Type object.
/// </summary>
public static readonly Guid MediaTypeGuid = new Guid(MediaType);
/// <summary>
/// Guid for a Member object.
/// </summary>
@@ -69,6 +114,11 @@ namespace Umbraco.Core
/// </summary>
public const string MemberType = "9B5416FB-E72F-45A9-A07B-5A9A2709CE43";
/// <summary>
/// Guid for a Member Type object.
/// </summary>
public static readonly Guid MemberTypeGuid = new Guid(MemberType);
/// <summary>
/// Guid for a Stylesheet object.
/// </summary>
@@ -92,6 +142,8 @@ namespace Umbraco.Core
/// Guid for a Lock object.
/// </summary>
public const string LockObject = "87A9F1FF-B1E4-4A25-BABB-465A4A47EC41";
}
}
}
@@ -158,6 +158,11 @@ namespace Umbraco.Core
/// </summary>
public const string IntegerAlias = "Umbraco.Integer";
/// <summary>
/// Alias for the Decimal datatype.
/// </summary>
public const string DecimalAlias = "Umbraco.Decimal";
/// <summary>
/// Alias for the listview datatype.
/// </summary>
@@ -0,0 +1,31 @@
namespace Umbraco.Core
{
public static partial class Constants
{
/// <summary>
/// Defines the identifiers for property-type groups conventions that are used within the Umbraco core.
/// </summary>
public static class PropertyTypeGroups
{
/// <summary>
/// Guid for a Image PropertyTypeGroup object.
/// </summary>
public const string Image = "79ED4D07-254A-42CF-8FA9-EBE1C116A596";
/// <summary>
/// Guid for a File PropertyTypeGroup object.
/// </summary>
public const string File = "50899F9C-023A-4466-B623-ABA9049885FE";
/// <summary>
/// Guid for a Image PropertyTypeGroup object.
/// </summary>
public const string Contents = "79995FA2-63EE-453C-A29B-2E66F324CDBE";
/// <summary>
/// Guid for a Image PropertyTypeGroup object.
/// </summary>
public const string Membership = "0756729D-D665-46E3-B84A-37ACEAA614F8";
}
}
}
+6
View File
@@ -10,6 +10,12 @@ namespace Umbraco.Core
/// </summary>
public static class Web
{
public const string UmbracoContextDataToken = "umbraco-context";
public const string UmbracoDataToken = "umbraco";
public const string PublishedDocumentRequestDataToken = "umbraco-doc-request";
public const string CustomRouteDataToken = "umbraco-custom-route";
public const string UmbracoRouteDefinitionDataToken = "umbraco-route-def";
/// <summary>
/// The preview cookie name
/// </summary>
+13 -3
View File
@@ -136,7 +136,10 @@ namespace Umbraco.Core
{
try
{
x.OnApplicationInitialized(UmbracoApplication, ApplicationContext);
using (ProfilingLogger.DebugDuration<CoreBootManager>(string.Format("Executing {0} in ApplicationInitialized", x.GetType())))
{
x.OnApplicationInitialized(UmbracoApplication, ApplicationContext);
}
}
catch (Exception ex)
{
@@ -299,7 +302,10 @@ namespace Umbraco.Core
{
try
{
x.OnApplicationStarting(UmbracoApplication, ApplicationContext);
using (ProfilingLogger.DebugDuration<CoreBootManager>(string.Format("Executing {0} in ApplicationStarting", x.GetType())))
{
x.OnApplicationStarting(UmbracoApplication, ApplicationContext);
}
}
catch (Exception ex)
{
@@ -350,7 +356,10 @@ namespace Umbraco.Core
{
try
{
x.OnApplicationStarted(UmbracoApplication, ApplicationContext);
using (ProfilingLogger.DebugDuration<CoreBootManager>(string.Format("Executing {0} in ApplicationStarted", x.GetType())))
{
x.OnApplicationStarted(UmbracoApplication, ApplicationContext);
}
}
catch (Exception ex)
{
@@ -437,6 +446,7 @@ namespace Umbraco.Core
new Lazy<Type>(() => typeof (DelimitedManifestValueValidator)),
new Lazy<Type>(() => typeof (EmailValidator)),
new Lazy<Type>(() => typeof (IntegerValidator)),
new Lazy<Type>(() => typeof (DecimalValidator)),
});
//by default we'll use the db server registrar unless the developer has the legacy
+44 -21
View File
@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Web;
@@ -12,6 +13,12 @@ namespace Umbraco.Core
/// </summary>
public class DisposableTimer : DisposableObject
{
private readonly ILogger _logger;
private readonly LogType? _logType;
private readonly IProfiler _profiler;
private readonly Type _loggerType;
private readonly string _endMessage;
private readonly IDisposable _profilerStep;
private readonly Stopwatch _stopwatch = Stopwatch.StartNew();
private readonly Action<long> _callback;
@@ -25,25 +32,12 @@ namespace Umbraco.Core
if (logger == null) throw new ArgumentNullException("logger");
if (loggerType == null) throw new ArgumentNullException("loggerType");
_callback = x =>
{
if (profiler != null)
{
profiler.DisposeIfDisposable();
}
switch (logType)
{
case LogType.Debug:
logger.Debug(loggerType, () => endMessage + " (took " + x + "ms)");
break;
case LogType.Info:
logger.Info(loggerType, () => endMessage + " (took " + x + "ms)");
break;
default:
throw new ArgumentOutOfRangeException("logType");
}
};
_logger = logger;
_logType = logType;
_profiler = profiler;
_loggerType = loggerType;
_endMessage = endMessage;
switch (logType)
{
case LogType.Debug:
@@ -58,7 +52,7 @@ namespace Umbraco.Core
if (profiler != null)
{
profiler.Step(loggerType, startMessage);
_profilerStep = profiler.Step(loggerType, startMessage);
}
}
@@ -223,7 +217,36 @@ namespace Umbraco.Core
/// </summary>
protected override void DisposeResources()
{
_callback.Invoke(Stopwatch.ElapsedMilliseconds);
if (_profiler != null)
{
_profiler.DisposeIfDisposable();
}
if (_profilerStep != null)
{
_profilerStep.Dispose();
}
if (_logType.HasValue && _endMessage.IsNullOrWhiteSpace() == false && _loggerType != null && _logger != null)
{
switch (_logType)
{
case LogType.Debug:
_logger.Debug(_loggerType, () => _endMessage + " (took " + Stopwatch.ElapsedMilliseconds + "ms)");
break;
case LogType.Info:
_logger.Info(_loggerType, () => _endMessage + " (took " + Stopwatch.ElapsedMilliseconds + "ms)");
break;
default:
throw new ArgumentOutOfRangeException("logType");
}
}
if (_callback != null)
{
_callback.Invoke(Stopwatch.ElapsedMilliseconds);
}
}
}
@@ -0,0 +1,93 @@
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
using System.Reflection;
namespace Umbraco.Core.Dynamics
{
/// <summary>
/// This will check enable dynamic access to properties and methods in a case insensitive manner
/// </summary>
/// <typeparam name="T"></typeparam>
/// <remarks>
/// This works by using reflection on the type - the reflection lookup is lazy so it will not execute unless a dynamic method needs to be accessed
/// </remarks>
public abstract class CaseInsensitiveDynamicObject<T> : DynamicObject
where T: class
{
/// <summary>
/// Used for dynamic access for case insensitive property access
/// </summary>`
private static readonly Lazy<IDictionary<string, Func<T, object>>> CaseInsensitivePropertyAccess = new Lazy<IDictionary<string, Func<T, object>>>(() =>
{
var props = typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public)
.DistinctBy(x => x.Name);
return props.Select(propInfo =>
{
var name = propInfo.Name.ToLowerInvariant();
Func<T, object> getVal = propInfo.GetValue;
return new KeyValuePair<string, Func<T, object>>(name, getVal);
}).ToDictionary(x => x.Key, x => x.Value);
});
/// <summary>
/// Used for dynamic access for case insensitive property access
/// </summary>
private static readonly Lazy<IDictionary<string, Tuple<ParameterInfo[], Func<T, object[], object>>>> CaseInsensitiveMethodAccess
= new Lazy<IDictionary<string, Tuple<ParameterInfo[], Func<T, object[], object>>>>(() =>
{
var props = typeof(T).GetMethods(BindingFlags.Instance | BindingFlags.Public)
.Where(x => x.IsSpecialName == false && x.IsVirtual == false)
.DistinctBy(x => x.Name);
return props.Select(methodInfo =>
{
var name = methodInfo.Name.ToLowerInvariant();
Func<T, object[], object> getVal = methodInfo.Invoke;
var val = new Tuple<ParameterInfo[], Func<T, object[], object>>(methodInfo.GetParameters(), getVal);
return new KeyValuePair<string, Tuple<ParameterInfo[], Func<T, object[], object>>>(name, val);
}).ToDictionary(x => x.Key, x => x.Value);
});
public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
{
var name = binder.Name.ToLowerInvariant();
if (CaseInsensitiveMethodAccess.Value.ContainsKey(name) == false)
return base.TryInvokeMember(binder, args, out result);
var val = CaseInsensitiveMethodAccess.Value[name];
var parameters = val.Item1;
var callback = val.Item2;
var fullArgs = new List<object>(args);
if (args.Length <= parameters.Length)
{
//need to fill them up if they're optional
for (var i = args.Length; i < parameters.Length; i++)
{
if (parameters[i].IsOptional)
{
fullArgs.Add(parameters[i].DefaultValue);
}
}
if (fullArgs.Count == parameters.Length)
{
result = callback((T)(object)this, fullArgs.ToArray());
return true;
}
}
return base.TryInvokeMember(binder, args, out result);
}
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
var name = binder.Name.ToLowerInvariant();
if (CaseInsensitivePropertyAccess.Value.ContainsKey(name) == false)
return base.TryGetMember(binder, out result);
result = CaseInsensitivePropertyAccess.Value[name]((T)(object)this);
return true;
}
}
}
@@ -64,7 +64,7 @@ namespace Umbraco.Core.Dynamics
/// </summary>
public class DynamicXmlConverter : TypeConverter
{
public override bool CanConvertTo(ITypeDescriptorContext context, Type sourceType)
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
var convertableTypes = new[]
{
@@ -78,8 +78,8 @@ namespace Umbraco.Core.Dynamics
typeof(RawXmlDocument)
};
return convertableTypes.Any(x => TypeHelper.IsTypeAssignableFrom(x, sourceType))
|| base.CanConvertFrom(context, sourceType);
return convertableTypes.Any(x => TypeHelper.IsTypeAssignableFrom(x, destinationType))
|| base.CanConvertFrom(context, destinationType);
}
public override object ConvertTo(
@@ -5,8 +5,10 @@ using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Linq.Expressions;
using System.Text;
using System.Web.Services.Description;
using Umbraco.Core.Cache;
using Umbraco.Core.Logging;
namespace Umbraco.Core.Dynamics
{
@@ -20,6 +22,20 @@ namespace Umbraco.Core.Dynamics
/// </summary>
private static readonly ConcurrentDictionary<Tuple<Type, string, int>, MethodInfo[]> MethodCache = new ConcurrentDictionary<Tuple<Type, string, int>, MethodInfo[]>();
private static IEnumerable<Type> GetTypes(Assembly a)
{
try
{
return TypeFinder.GetTypesWithFormattedException(a);
}
catch (ReflectionTypeLoadException ex)
{
// is this going to flood the log?
LogHelper.Error(typeof (ExtensionMethodFinder), "Failed to get types.", ex);
return Enumerable.Empty<Type>();
}
}
/// <summary>
/// Returns the enumerable of all extension method info's in the app domain = USE SPARINGLY!!!
/// </summary>
@@ -36,7 +52,7 @@ namespace Umbraco.Core.Dynamics
// assemblies that contain extension methods
.Where(a => a.IsDefined(typeof (ExtensionAttribute), false))
// types that contain extension methods
.SelectMany(a => a.GetTypes()
.SelectMany(a => GetTypes(a)
.Where(t => t.IsDefined(typeof (ExtensionAttribute), false) && t.IsSealed && t.IsGenericType == false && t.IsNested == false))
// actual extension methods
.SelectMany(t => t.GetMethods(BindingFlags.Static | BindingFlags.Public)
@@ -45,9 +61,9 @@ namespace Umbraco.Core.Dynamics
.Concat(typeof (Enumerable).GetMethods(BindingFlags.Static | BindingFlags.Public))
//If we don't do this then we'll be scanning all assemblies each time!
.ToArray(),
//only cache for 5 minutes
timeout: TimeSpan.FromMinutes(5),
timeout: TimeSpan.FromMinutes(5),
//each time this is accessed it will be for 5 minutes longer
isSliding:true);
@@ -57,7 +73,7 @@ namespace Umbraco.Core.Dynamics
/// Returns all extension methods found matching the definition
/// </summary>
/// <param name="runtimeCache">
/// The runtime cache is used to temporarily cache all extension methods found in the app domain so that
/// The runtime cache is used to temporarily cache all extension methods found in the app domain so that
/// while we search for individual extension methods, the process will be reasonably 'quick'. We then statically
/// cache the MethodInfo's that we are looking for and then the runtime cache will expire and give back all that memory.
/// </param>
@@ -78,7 +94,7 @@ namespace Umbraco.Core.Dynamics
{
var candidates = GetAllExtensionMethodsInAppDomain(runtimeCache);
// filter by name
// filter by name
var filtr1 = candidates.Where(m => m.Name == name);
// filter by args count
@@ -102,7 +118,7 @@ namespace Umbraco.Core.Dynamics
return filtr3.ToArray();
});
}
private static MethodInfo DetermineMethodFromParams(IEnumerable<MethodInfo> methods, Type genericType, IEnumerable<object> args)
@@ -123,12 +139,12 @@ namespace Umbraco.Core.Dynamics
types = method.GetParameters().Select(pi => pi.ParameterType).Skip(1)
});
//This type comparer will check
//This type comparer will check
var typeComparer = new DelegateEqualityComparer<Type>(
//Checks if the argument type passed in can be assigned from the parameter type in the method. For
//Checks if the argument type passed in can be assigned from the parameter type in the method. For
// example, if the argument type is HtmlHelper<MyModel> but the method parameter type is HtmlHelper then
// it will match because the argument is assignable to that parameter type and will be able to execute
TypeHelper.IsTypeAssignableFrom,
TypeHelper.IsTypeAssignableFrom,
//This will not ever execute but if it does we need to get the hash code of the string because the hash
// code of a type is random
type => type.FullName.GetHashCode());
@@ -159,7 +175,7 @@ namespace Umbraco.Core.Dynamics
.ToArray();
var methods = GetAllExtensionMethods(runtimeCache, thisType, name, args.Length).ToArray();
return DetermineMethodFromParams(methods, genericType, args);
}
}
@@ -1,5 +1,8 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Security.Permissions;
using Umbraco.Core.Models.PublishedContent;
namespace Umbraco.Core.Events
{
@@ -11,11 +14,19 @@ namespace Umbraco.Core.Events
{
private bool _cancel;
public CancellableEventArgs(bool canCancel, EventMessages messages, IDictionary<string, object> additionalData)
{
CanCancel = canCancel;
Messages = messages;
AdditionalData = new ReadOnlyDictionary<string, object>(additionalData);
}
public CancellableEventArgs(bool canCancel, EventMessages eventMessages)
{
if (eventMessages == null) throw new ArgumentNullException("eventMessages");
CanCancel = canCancel;
Messages = eventMessages;
AdditionalData = new ReadOnlyDictionary<string, object>(new Dictionary<string, object>());
}
public CancellableEventArgs(bool canCancel)
@@ -23,6 +34,7 @@ namespace Umbraco.Core.Events
CanCancel = canCancel;
//create a standalone messages
Messages = new EventMessages();
AdditionalData = new ReadOnlyDictionary<string, object>(new Dictionary<string, object>());
}
public CancellableEventArgs(EventMessages eventMessages)
@@ -78,5 +90,14 @@ namespace Umbraco.Core.Events
/// Returns the EventMessages object which is used to add messages to the message collection for this event
/// </summary>
public EventMessages Messages { get; private set; }
/// <summary>
/// In some cases raised evens might need to contain additional arbitrary readonly data which can be read by event subscribers
/// </summary>
/// <remarks>
/// This allows for a bit of flexibility in our event raising - it's not pretty but we need to maintain backwards compatibility
/// so we cannot change the strongly typed nature for some events.
/// </remarks>
public ReadOnlyDictionary<string, object> AdditionalData { get; private set; }
}
}
@@ -1,3 +1,4 @@
using System.Collections.Generic;
using System.Security.Permissions;
using Umbraco.Core.Models;
using Umbraco.Core.Models.EntityBase;
@@ -11,8 +12,13 @@ namespace Umbraco.Core.Events
[HostProtection(SecurityAction.LinkDemand, SharedState = true)]
public class CancellableObjectEventArgs<T> : CancellableEventArgs
{
public CancellableObjectEventArgs(T eventObject, bool canCancel, EventMessages messages, IDictionary<string, object> additionalData)
: base(canCancel, messages, additionalData)
{
EventObject = eventObject;
}
public CancellableObjectEventArgs(T eventObject, bool canCancel, EventMessages eventMessages)
public CancellableObjectEventArgs(T eventObject, bool canCancel, EventMessages eventMessages)
: base(canCancel, eventMessages)
{
EventObject = eventObject;
@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
namespace Umbraco.Core.Events
+63 -24
View File
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.ComponentModel;
using Semver;
using Umbraco.Core.Configuration;
using Umbraco.Core.Persistence.Migrations;
namespace Umbraco.Core.Events
@@ -13,23 +14,49 @@ namespace Umbraco.Core.Events
/// </summary>
/// <param name="eventObject"></param>
/// <param name="targetVersion"></param>
/// <param name="productName"></param>
/// <param name="canCancel"></param>
/// <param name="configuredVersion"></param>
public MigrationEventArgs(IList<IMigration> eventObject, SemVersion configuredVersion, SemVersion targetVersion, bool canCancel)
: base(eventObject, canCancel)
{
ConfiguredSemVersion = configuredVersion;
TargetSemVersion = targetVersion;
}
public MigrationEventArgs(IList<IMigration> eventObject, SemVersion configuredVersion, SemVersion targetVersion, string productName, bool canCancel)
: this(eventObject, null, configuredVersion, targetVersion, productName, canCancel)
{ }
[Obsolete("Use constructor accepting UmbracoVersion instances instead")]
/// <summary>
/// Constructor accepting multiple migrations that are used in the migration runner
/// </summary>
/// <param name="eventObject"></param>
/// <param name="targetVersion"></param>
/// <param name="canCancel"></param>
/// <param name="configuredVersion"></param>
[Obsolete("Use constructor accepting a product name instead.")]
[EditorBrowsable(EditorBrowsableState.Never)]
public MigrationEventArgs(IList<IMigration> eventObject, SemVersion configuredVersion, SemVersion targetVersion, bool canCancel)
: this(eventObject, null, configuredVersion, targetVersion, GlobalSettings.UmbracoMigrationName, canCancel)
{ }
[Obsolete("Use constructor accepting SemVersion instances and a product name instead.")]
[EditorBrowsable(EditorBrowsableState.Never)]
public MigrationEventArgs(IList<IMigration> eventObject, Version configuredVersion, Version targetVersion, bool canCancel)
: base(eventObject, canCancel)
{
ConfiguredSemVersion = new SemVersion(configuredVersion);
TargetSemVersion = new SemVersion(targetVersion);
}
: this(eventObject, null, new SemVersion(configuredVersion), new SemVersion(targetVersion), GlobalSettings.UmbracoMigrationName, canCancel)
{ }
/// <summary>
/// Constructor accepting multiple migrations that are used in the migration runner
/// </summary>
/// <param name="eventObject"></param>
/// <param name="migrationContext"></param>
/// <param name="targetVersion"></param>
/// <param name="productName"></param>
/// <param name="canCancel"></param>
/// <param name="configuredVersion"></param>
internal MigrationEventArgs(IList<IMigration> eventObject, MigrationContext migrationContext, SemVersion configuredVersion, SemVersion targetVersion, string productName, bool canCancel)
: base(eventObject, canCancel)
{
MigrationContext = migrationContext;
ConfiguredSemVersion = configuredVersion;
TargetSemVersion = targetVersion;
ProductName = productName;
}
/// <summary>
/// Constructor accepting multiple migrations that are used in the migration runner
@@ -39,12 +66,15 @@ namespace Umbraco.Core.Events
/// <param name="targetVersion"></param>
/// <param name="canCancel"></param>
/// <param name="configuredVersion"></param>
[Obsolete("Use constructor accepting a product name instead.")]
[EditorBrowsable(EditorBrowsableState.Never)]
internal MigrationEventArgs(IList<IMigration> eventObject, MigrationContext migrationContext, SemVersion configuredVersion, SemVersion targetVersion, bool canCancel)
: base(eventObject, canCancel)
{
MigrationContext = migrationContext;
ConfiguredSemVersion = configuredVersion;
TargetSemVersion = targetVersion;
ProductName = GlobalSettings.UmbracoMigrationName;
}
/// <summary>
@@ -53,21 +83,28 @@ namespace Umbraco.Core.Events
/// <param name="eventObject"></param>
/// <param name="configuredVersion"></param>
/// <param name="targetVersion"></param>
public MigrationEventArgs(IList<IMigration> eventObject, SemVersion configuredVersion, SemVersion targetVersion)
: base(eventObject)
{
ConfiguredSemVersion = configuredVersion;
TargetSemVersion = targetVersion;
}
/// <param name="productName"></param>
public MigrationEventArgs(IList<IMigration> eventObject, SemVersion configuredVersion, SemVersion targetVersion, string productName)
: this(eventObject, null, configuredVersion, targetVersion, productName, false)
{ }
[Obsolete("Use constructor accepting UmbracoVersion instances instead")]
/// <summary>
/// Constructor accepting multiple migrations that are used in the migration runner
/// </summary>
/// <param name="eventObject"></param>
/// <param name="configuredVersion"></param>
/// <param name="targetVersion"></param>
[Obsolete("Use constructor accepting a product name instead.")]
[EditorBrowsable(EditorBrowsableState.Never)]
public MigrationEventArgs(IList<IMigration> eventObject, SemVersion configuredVersion, SemVersion targetVersion)
: this(eventObject, null, configuredVersion, targetVersion, GlobalSettings.UmbracoMigrationName, false)
{ }
[Obsolete("Use constructor accepting SemVersion instances and a product name instead.")]
[EditorBrowsable(EditorBrowsableState.Never)]
public MigrationEventArgs(IList<IMigration> eventObject, Version configuredVersion, Version targetVersion)
: base(eventObject)
{
ConfiguredSemVersion = new SemVersion(configuredVersion);
TargetSemVersion = new SemVersion(targetVersion);
}
: this(eventObject, null, new SemVersion(configuredVersion), new SemVersion(targetVersion), GlobalSettings.UmbracoMigrationName, false)
{ }
/// <summary>
/// Returns all migrations that were used in the migration runner
@@ -95,6 +132,8 @@ namespace Umbraco.Core.Events
public SemVersion TargetSemVersion { get; private set; }
public string ProductName { get; private set; }
internal MigrationContext MigrationContext { get; private set; }
}
}
+30 -6
View File
@@ -4,6 +4,18 @@ namespace Umbraco.Core.Events
{
public class SaveEventArgs<TEntity> : CancellableObjectEventArgs<IEnumerable<TEntity>>
{
/// <summary>
/// Constructor accepting multiple entities that are used in the saving operation
/// </summary>
/// <param name="eventObject"></param>
/// <param name="canCancel"></param>
/// <param name="messages"></param>
/// <param name="additionalData"></param>
public SaveEventArgs(IEnumerable<TEntity> eventObject, bool canCancel, EventMessages messages, IDictionary<string, object> additionalData)
: base(eventObject, canCancel, messages, additionalData)
{
}
/// <summary>
/// Constructor accepting multiple entities that are used in the saving operation
/// </summary>
@@ -25,12 +37,24 @@ namespace Umbraco.Core.Events
{
}
/// <summary>
/// Constructor accepting a single entity instance
/// </summary>
/// <param name="eventObject"></param>
/// <param name="eventMessages"></param>
public SaveEventArgs(TEntity eventObject, EventMessages eventMessages)
/// <summary>
/// Constructor accepting a single entity instance
/// </summary>
/// <param name="eventObject"></param>
/// <param name="canCancel"></param>
/// <param name="messages"></param>
/// <param name="additionalData"></param>
public SaveEventArgs(TEntity eventObject, bool canCancel, EventMessages messages, IDictionary<string, object> additionalData)
: base(new List<TEntity> { eventObject }, canCancel, messages, additionalData)
{
}
/// <summary>
/// Constructor accepting a single entity instance
/// </summary>
/// <param name="eventObject"></param>
/// <param name="eventMessages"></param>
public SaveEventArgs(TEntity eventObject, EventMessages eventMessages)
: base(new List<TEntity> { eventObject }, eventMessages)
{
}
@@ -0,0 +1,21 @@
using System;
namespace Umbraco.Core.Exceptions
{
internal class DataOperationException<T> : Exception
{
public T Operation { get; private set; }
public DataOperationException(T operation, string message)
:base(message)
{
Operation = operation;
}
public DataOperationException(T operation)
: base("Data operation exception: " + operation)
{
Operation = operation;
}
}
}
@@ -3,22 +3,41 @@
namespace Umbraco.Core.Exceptions
{
public class InvalidCompositionException : Exception
{
public string ContentTypeAlias { get; set; }
{
public InvalidCompositionException(string contentTypeAlias, string addedCompositionAlias, string[] propertyTypeAliass)
{
ContentTypeAlias = contentTypeAlias;
AddedCompositionAlias = addedCompositionAlias;
PropertyTypeAliases = propertyTypeAliass;
}
public string AddedCompositionAlias { get; set; }
public InvalidCompositionException(string contentTypeAlias, string[] propertyTypeAliass)
{
ContentTypeAlias = contentTypeAlias;
PropertyTypeAliases = propertyTypeAliass;
}
public string PropertyTypeAlias { get; set; }
public string ContentTypeAlias { get; private set; }
public string AddedCompositionAlias { get; private set; }
public string[] PropertyTypeAliases { get; private set; }
public override string Message
{
get
{
return string.Format(
"InvalidCompositionException - ContentType with alias '{0}' was added as a Compsition to ContentType with alias '{1}', " +
"but there was a conflict on the PropertyType alias '{2}'. " +
return AddedCompositionAlias.IsNullOrWhiteSpace()
? string.Format(
"ContentType with alias '{0}' has an invalid composition " +
"and there was a conflict on the following PropertyTypes: '{1}'. " +
"PropertyTypes must have a unique alias across all Compositions in order to compose a valid ContentType Composition.",
AddedCompositionAlias, ContentTypeAlias, PropertyTypeAlias);
ContentTypeAlias, string.Join(", ", PropertyTypeAliases))
: string.Format(
"ContentType with alias '{0}' was added as a Composition to ContentType with alias '{1}', " +
"but there was a conflict on the following PropertyTypes: '{2}'. " +
"PropertyTypes must have a unique alias across all Compositions in order to compose a valid ContentType Composition.",
AddedCompositionAlias, ContentTypeAlias, string.Join(", ", PropertyTypeAliases));
}
}
}
+50 -9
View File
@@ -7,7 +7,7 @@ using Umbraco.Core.Models;
namespace Umbraco.Core.IO
{
internal class ViewHelper
public class ViewHelper
{
private readonly IFileSystem _viewFileSystem;
@@ -66,17 +66,58 @@ namespace Umbraco.Core.IO
return viewContent;
}
internal static string GetDefaultFileContent(string layoutPageAlias = null)
public static string GetDefaultFileContent(string layoutPageAlias = null, string modelClassName = null, string modelNamespace = null, string modelNamespaceAlias = null)
{
var design = @"@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = null;
}";
var content = new StringBuilder();
if (layoutPageAlias.IsNullOrWhiteSpace() == false)
design = design.Replace("null", string.Format("\"{0}.cshtml\"", layoutPageAlias));
if (string.IsNullOrWhiteSpace(modelNamespaceAlias))
modelNamespaceAlias = "ContentModels";
return design;
// either
// @inherits Umbraco.Web.Mvc.UmbracoTemplatePage
// @inherits Umbraco.Web.Mvc.UmbracoTemplatePage<ModelClass>
// @inherits Umbraco.Web.Mvc.UmbracoTemplatePage<ContentModels.ModelClass>
content.Append("@inherits Umbraco.Web.Mvc.UmbracoTemplatePage");
if (modelClassName.IsNullOrWhiteSpace() == false)
{
content.Append("<");
if (modelNamespace.IsNullOrWhiteSpace() == false)
{
content.Append(modelNamespaceAlias);
content.Append(".");
}
content.Append(modelClassName);
content.Append(">");
}
content.Append("\r\n");
// if required, add
// @using ContentModels = ModelNamespace;
if (modelClassName.IsNullOrWhiteSpace() == false && modelNamespace.IsNullOrWhiteSpace() == false)
{
content.Append("@using ");
content.Append(modelNamespaceAlias);
content.Append(" = ");
content.Append(modelNamespace);
content.Append(";\r\n");
}
// either
// Layout = null;
// Layout = "layoutPage.cshtml";
content.Append("@{\r\n\tLayout = ");
if (layoutPageAlias.IsNullOrWhiteSpace())
{
content.Append("null");
}
else
{
content.Append("\"");
content.Append(layoutPageAlias);
content.Append(".cshtml\"");
}
content.Append(";\r\n}");
return content.ToString();
}
private string SaveTemplateToFile(ITemplate template)
-12
View File
@@ -340,18 +340,6 @@ namespace Umbraco.Core.Models
}
}
/// <summary>
/// Method to call when Entity is being saved
/// </summary>
/// <remarks>Created date is set and a Unique key is assigned</remarks>
internal override void AddingEntity()
{
base.AddingEntity();
if(Key == Guid.Empty)
Key = Guid.NewGuid();
}
/// <summary>
/// Method to call when Entity is being updated
/// </summary>
+21 -2
View File
@@ -367,8 +367,27 @@ namespace Umbraco.Core.Models
/// <param name="value">Value to set for the Property</param>
public virtual void SetPropertyValue(string propertyTypeAlias, long value)
{
string val = value.ToString();
SetValueOnProperty(propertyTypeAlias, val);
SetValueOnProperty(propertyTypeAlias, value);
}
/// <summary>
/// Sets the <see cref="System.Decimal"/> value of a Property
/// </summary>
/// <param name="propertyTypeAlias">Alias of the PropertyType</param>
/// <param name="value">Value to set for the Property</param>
public virtual void SetPropertyValue(string propertyTypeAlias, decimal value)
{
SetValueOnProperty(propertyTypeAlias, value);
}
/// <summary>
/// Sets the <see cref="System.Double"/> value of a Property
/// </summary>
/// <param name="propertyTypeAlias">Alias of the PropertyType</param>
/// <param name="value">Value to set for the Property</param>
public virtual void SetPropertyValue(string propertyTypeAlias, double value)
{
SetValueOnProperty(propertyTypeAlias, value);
}
/// <summary>
+6 -13
View File
@@ -53,6 +53,9 @@ namespace Umbraco.Core.Models
/// <summary>
/// Gets or sets the alias of the default Template.
/// TODO: This should be ignored from cloning!!!!!!!!!!!!!!
/// - but to do that we have to implement callback hacks, this needs to be fixed in v8,
/// we should not store direct entity
/// </summary>
[IgnoreDataMember]
public ITemplate DefaultTemplate
@@ -79,6 +82,9 @@ namespace Umbraco.Core.Models
/// <summary>
/// Gets or Sets a list of Templates which are allowed for the ContentType
/// TODO: This should be ignored from cloning!!!!!!!!!!!!!!
/// - but to do that we have to implement callback hacks, this needs to be fixed in v8,
/// we should not store direct entity
/// </summary>
[DataMember]
public IEnumerable<ITemplate> AllowedTemplates
@@ -137,19 +143,6 @@ namespace Umbraco.Core.Models
return result;
}
/// <summary>
/// Method to call when Entity is being saved
/// </summary>
/// <remarks>Created date is set and a Unique key is assigned</remarks>
internal override void AddingEntity()
{
base.AddingEntity();
if (Key == Guid.Empty)
Key = Guid.NewGuid();
}
/// <summary>
/// Creates a deep clone of the current entity with its identity/alias and it's property identities reset
/// </summary>
@@ -0,0 +1,17 @@
namespace Umbraco.Core.Models
{
/// <summary>
/// Used when determining available compositions for a given content type
/// </summary>
internal class ContentTypeAvailableCompositionsResult
{
public ContentTypeAvailableCompositionsResult(IContentTypeComposition composition, bool allowed)
{
Composition = composition;
Allowed = allowed;
}
public IContentTypeComposition Composition { get; private set; }
public bool Allowed { get; private set; }
}
}
@@ -0,0 +1,26 @@
using System.Collections.Generic;
using System.Linq;
namespace Umbraco.Core.Models
{
/// <summary>
/// Used when determining available compositions for a given content type
/// </summary>
internal class ContentTypeAvailableCompositionsResults
{
public ContentTypeAvailableCompositionsResults()
{
Ancestors = Enumerable.Empty<IContentTypeComposition>();
Results = Enumerable.Empty<ContentTypeAvailableCompositionsResult>();
}
public ContentTypeAvailableCompositionsResults(IEnumerable<IContentTypeComposition> ancestors, IEnumerable<ContentTypeAvailableCompositionsResult> results)
{
Ancestors = ancestors;
Results = results;
}
public IEnumerable<IContentTypeComposition> Ancestors { get; private set; }
public IEnumerable<ContentTypeAvailableCompositionsResult> Results { get; private set; }
}
}
+37 -37
View File
@@ -26,7 +26,7 @@ namespace Umbraco.Core.Models
private string _alias;
private string _description;
private int _sortOrder;
private string _icon = "folder.png";
private string _icon = "icon-folder";
private string _thumbnail = "folder.png";
private int _creatorId;
private bool _allowedAsRoot;
@@ -373,43 +373,35 @@ namespace Umbraco.Core.Models
{
_propertyGroups = value;
_propertyGroups.CollectionChanged += PropertyGroupsChanged;
PropertyGroupsChanged(_propertyGroups, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
}
}
/// <summary>
/// List of PropertyTypes available on this ContentType.
/// This list aggregates PropertyTypes across the PropertyGroups.
/// Gets all property types, across all property groups.
/// </summary>
/// <remarks>
///
/// The setter is used purely to set the property types that DO NOT belong to a group!
///
/// Marked as DoNotClone because the result of this property is not the natural result of the data, it is
/// a union of data so when auto-cloning if the setter is used it will be setting the unnatural result of the
/// data. We manually clone this instead.
/// </remarks>
[IgnoreDataMember]
[DoNotClone]
public virtual IEnumerable<PropertyType> PropertyTypes
{
get
{
var types = _propertyTypes.Union(PropertyGroups.SelectMany(x => x.PropertyTypes));
return types;
}
internal set
{
_propertyTypes = new PropertyTypeCollection(value);
_propertyTypes.CollectionChanged += PropertyTypesChanged;
return _propertyTypes.Union(PropertyGroups.SelectMany(x => x.PropertyTypes));
}
}
/// <summary>
/// Returns the property type collection containing types that are non-groups - used for tests
/// Gets or sets the property types that are not in a group.
/// </summary>
internal IEnumerable<PropertyType> NonGroupedPropertyTypes
public IEnumerable<PropertyType> NoGroupPropertyTypes
{
get { return _propertyTypes; }
set
{
_propertyTypes = new PropertyTypeCollection(value);
_propertyTypes.CollectionChanged += PropertyTypesChanged;
PropertyTypesChanged(_propertyTypes, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
}
}
/// <summary>
@@ -460,11 +452,6 @@ namespace Umbraco.Core.Models
/// <returns>Returns <c>True</c> if PropertyType was added, otherwise <c>False</c></returns>
public bool AddPropertyType(PropertyType propertyType)
{
if (propertyType.HasIdentity == false)
{
propertyType.Key = Guid.NewGuid();
}
if (PropertyTypeExists(propertyType.Alias) == false)
{
_propertyTypes.Add(propertyType);
@@ -480,24 +467,37 @@ namespace Umbraco.Core.Models
/// <param name="propertyTypeAlias">Alias of the PropertyType to move</param>
/// <param name="propertyGroupName">Name of the PropertyGroup to move the PropertyType to</param>
/// <returns></returns>
/// <remarks>If <paramref name="propertyGroupName"/> is null then the property is moved back to
/// "generic properties" ie does not have a tab anymore.</remarks>
public bool MovePropertyType(string propertyTypeAlias, string propertyGroupName)
{
if (PropertyTypes.Any(x => x.Alias == propertyTypeAlias) == false || PropertyGroups.Any(x => x.Name == propertyGroupName) == false)
return false;
// note: not dealing with alias casing at all here?
var propertyType = PropertyTypes.First(x => x.Alias == propertyTypeAlias);
//The PropertyType already belongs to a PropertyGroup, so we have to remove the PropertyType from that group
if (PropertyGroups.Any(x => x.PropertyTypes.Any(y => y.Alias == propertyTypeAlias)))
{
var oldPropertyGroup = PropertyGroups.First(x => x.PropertyTypes.Any(y => y.Alias == propertyTypeAlias));
oldPropertyGroup.PropertyTypes.RemoveItem(propertyTypeAlias);
}
// get property, ensure it exists
var propertyType = PropertyTypes.FirstOrDefault(x => x.Alias == propertyTypeAlias);
if (propertyType == null) return false;
// get new group, if required, and ensure it exists
var newPropertyGroup = propertyGroupName == null
? null
: PropertyGroups.FirstOrDefault(x => x.Name == propertyGroupName);
if (propertyGroupName != null && newPropertyGroup == null) return false;
// get old group
var oldPropertyGroup = PropertyGroups.FirstOrDefault(x =>
x.PropertyTypes.Any(y => y.Alias == propertyTypeAlias));
// reset PropertyGroupId, which will be re-evaluated when the content type
// is saved - what is important is group.PropertyTypes - see code in
// ContentTypeBaseRepository.PersistUpdatedBaseContentType
propertyType.PropertyGroupId = new Lazy<int>(() => default(int));
propertyType.ResetDirtyProperties();
propertyType.ResetDirtyProperties(); // PropertyGroupId must not be dirty
var propertyGroup = PropertyGroups.First(x => x.Name == propertyGroupName);
propertyGroup.PropertyTypes.Add(propertyType);
// remove from old group, if any - add to new group, if any
if (oldPropertyGroup != null)
oldPropertyGroup.PropertyTypes.RemoveItem(propertyTypeAlias);
if (newPropertyGroup != null)
newPropertyGroup.PropertyTypes.Add(propertyType);
return true;
}
@@ -23,8 +23,8 @@ namespace Umbraco.Core.Models
protected ContentTypeCompositionBase(IContentTypeComposition parent)
: this(parent, null)
{
}
{
}
protected ContentTypeCompositionBase(IContentTypeComposition parent, string alias)
: base(parent, alias)
@@ -37,16 +37,21 @@ namespace Umbraco.Core.Models
x => x.ContentTypeComposition);
/// <summary>
/// List of ContentTypes that make up a composition of PropertyGroups and PropertyTypes for the current ContentType
/// Gets or sets the content types that compose this content type.
/// </summary>
[DataMember]
public IEnumerable<IContentTypeComposition> ContentTypeComposition
{
get { return _contentTypeComposition; }
set
{
_contentTypeComposition = value.ToList();
OnPropertyChanged(ContentTypeCompositionSelector);
}
}
/// <summary>
/// Returns a list of <see cref="PropertyGroup"/> objects from the composition
/// Gets the property groups for the entire composition.
/// </summary>
[IgnoreDataMember]
public IEnumerable<PropertyGroup> CompositionPropertyGroups
@@ -59,7 +64,7 @@ namespace Umbraco.Core.Models
}
/// <summary>
/// Returns a list of <see cref="PropertyType"/> objects from the composition
/// Gets the property types for the entire composition.
/// </summary>
[IgnoreDataMember]
public IEnumerable<PropertyType> CompositionPropertyTypes
@@ -72,10 +77,10 @@ namespace Umbraco.Core.Models
}
/// <summary>
/// Adds a new ContentType to the list of composite ContentTypes
/// Adds a content type to the composition.
/// </summary>
/// <param name="contentType"><see cref="ContentType"/> to add</param>
/// <returns>True if ContentType was added, otherwise returns False</returns>
/// <param name="contentType">The content type to add.</param>
/// <returns>True if the content type was added, otherwise false.</returns>
public bool AddContentType(IContentTypeComposition contentType)
{
if (contentType.ContentTypeComposition.Any(x => x.CompositionAliases().Any(ContentTypeCompositionExists)))
@@ -94,13 +99,7 @@ namespace Umbraco.Core.Models
.Select(p => p.Alias)).ToList();
if (conflictingPropertyTypeAliases.Any())
throw new InvalidCompositionException
{
AddedCompositionAlias = contentType.Alias,
ContentTypeAlias = Alias,
PropertyTypeAlias =
string.Join(", ", conflictingPropertyTypeAliases)
};
throw new InvalidCompositionException(Alias, contentType.Alias, conflictingPropertyTypeAliases.ToArray());
_contentTypeComposition.Add(contentType);
OnPropertyChanged(ContentTypeCompositionSelector);
@@ -110,10 +109,10 @@ namespace Umbraco.Core.Models
}
/// <summary>
/// Removes a ContentType with the supplied alias from the the list of composite ContentTypes
/// Removes a content type with a specified alias from the composition.
/// </summary>
/// <param name="alias">Alias of a <see cref="ContentType"/></param>
/// <returns>True if ContentType was removed, otherwise returns False</returns>
/// <param name="alias">The alias of the content type to remove.</param>
/// <returns>True if the content type was removed, otherwise false.</returns>
public bool RemoveContentType(string alias)
{
if (ContentTypeCompositionExists(alias))
@@ -123,10 +122,10 @@ namespace Umbraco.Core.Models
return false;
RemovedContentTypeKeyTracker.Add(contentTypeComposition.Id);
//If the ContentType we are removing has Compositions of its own these needs to be removed as well
var compositionIdsToRemove = contentTypeComposition.CompositionIds().ToList();
if(compositionIdsToRemove.Any())
if (compositionIdsToRemove.Any())
RemovedContentTypeKeyTracker.AddRange(compositionIdsToRemove);
OnPropertyChanged(ContentTypeCompositionSelector);
@@ -163,31 +162,44 @@ namespace Umbraco.Core.Models
/// <summary>
/// Adds a PropertyGroup.
/// This method will also check if a group already exists with the same name and link it to the parent.
/// </summary>
/// <param name="groupName">Name of the PropertyGroup to add</param>
/// <returns>Returns <c>True</c> if a PropertyGroup with the passed in name was added, otherwise <c>False</c></returns>
public override bool AddPropertyGroup(string groupName)
{
if (PropertyGroups.Any(x => x.Name == groupName))
return false;
return AddAndReturnPropertyGroup(groupName) != null;
}
var propertyGroup = new PropertyGroup {Name = groupName, SortOrder = 0};
private PropertyGroup AddAndReturnPropertyGroup(string name)
{
// ensure we don't have it already
if (PropertyGroups.Any(x => x.Name == name))
return null;
if (CompositionPropertyGroups.Any(x => x.Name == groupName))
// create the new group
var group = new PropertyGroup { Name = name, SortOrder = 0 };
// check if it is inherited - there might be more than 1 but we want the 1st, to
// reuse its sort order - if there are more than 1 and they have different sort
// orders... there isn't much we can do anyways
var inheritGroup = CompositionPropertyGroups.FirstOrDefault(x => x.Name == name);
if (inheritGroup == null)
{
var firstGroup = CompositionPropertyGroups.First(x => x.Name == groupName && x.ParentId.HasValue == false);
propertyGroup.SetLazyParentId(new Lazy<int?>(() => firstGroup.Id));
// no, just local, set sort order
var lastGroup = PropertyGroups.LastOrDefault();
if (lastGroup != null)
group.SortOrder = lastGroup.SortOrder + 1;
}
else
{
// yes, inherited, re-use sort order
group.SortOrder = inheritGroup.SortOrder;
}
if (PropertyGroups.Any())
{
var last = PropertyGroups.Last();
propertyGroup.SortOrder = last.SortOrder + 1;
}
// add
PropertyGroups.Add(group);
PropertyGroups.Add(propertyGroup);
return true;
return group;
}
/// <summary>
@@ -198,39 +210,22 @@ namespace Umbraco.Core.Models
/// <returns>Returns <c>True</c> if PropertyType was added, otherwise <c>False</c></returns>
public override bool AddPropertyType(PropertyType propertyType, string propertyGroupName)
{
if (propertyType.HasIdentity == false)
{
propertyType.Key = Guid.NewGuid();
}
// ensure no duplicate alias - over all composition properties
if (PropertyTypeExists(propertyType.Alias))
return false;
if (PropertyTypeExists(propertyType.Alias) == false)
{
if (PropertyGroups.Contains(propertyGroupName))
{
propertyType.PropertyGroupId = new Lazy<int>(() => PropertyGroups[propertyGroupName].Id);
PropertyGroups[propertyGroupName].PropertyTypes.Add(propertyType);
}
else
{
//If the PropertyGroup doesn't already exist we create a new one
var propertyTypes = new List<PropertyType> { propertyType };
var propertyGroup = new PropertyGroup(new PropertyTypeCollection(propertyTypes)) { Name = propertyGroupName, SortOrder = 1 };
//and check if its an inherited PropertyGroup, which exists in the composition
if (CompositionPropertyGroups.Any(x => x.Name == propertyGroupName))
{
var parentPropertyGroup = CompositionPropertyGroups.First(x => x.Name == propertyGroupName && x.ParentId.HasValue == false);
propertyGroup.SortOrder = parentPropertyGroup.SortOrder;
//propertyGroup.ParentId = parentPropertyGroup.Id;
propertyGroup.SetLazyParentId(new Lazy<int?>(() => parentPropertyGroup.Id));
}
// get and ensure a group local to this content type
var group = PropertyGroups.Contains(propertyGroupName)
? PropertyGroups[propertyGroupName]
: AddAndReturnPropertyGroup(propertyGroupName);
if (group == null)
return false;
PropertyGroups.Add(propertyGroup);
}
// add property to group
propertyType.PropertyGroupId = new Lazy<int>(() => group.Id);
group.PropertyTypes.Add(propertyType);
return true;
}
return false;
return true;
}
/// <summary>
@@ -21,6 +21,8 @@ namespace Umbraco.Core.Models
[EnumMember]
Integer,
[EnumMember]
Date
Date,
[EnumMember]
Decimal
}
}
@@ -49,8 +49,6 @@ namespace Umbraco.Core.Models
_additionalData = new Dictionary<string, object>();
}
[Obsolete("Don't use this, parentId is always -1 for data types")]
[EditorBrowsable(EditorBrowsableState.Never)]
public DataTypeDefinition(int parentId, string propertyEditorAlias)
{
_parentId = parentId;
@@ -267,13 +265,5 @@ namespace Umbraco.Core.Models
{
get { return _additionalData; }
}
internal override void AddingEntity()
{
base.AddingEntity();
if(Key == default(Guid))
Key = Guid.NewGuid();
}
}
}
+99 -61
View File
@@ -9,10 +9,30 @@ namespace Umbraco.Core.Models
{
public static class DeepCloneHelper
{
/// <summary>
/// Stores the metadata for the properties for a given type so we know how to create them
/// </summary>
private struct ClonePropertyInfo
{
public ClonePropertyInfo(PropertyInfo propertyInfo) : this()
{
if (propertyInfo == null) throw new ArgumentNullException("propertyInfo");
PropertyInfo = propertyInfo;
}
public PropertyInfo PropertyInfo { get; private set; }
public bool IsDeepCloneable { get; set; }
public Type GenericListType { get; set; }
public bool IsList
{
get { return GenericListType != null; }
}
}
/// <summary>
/// Used to avoid constant reflection (perf)
/// </summary>
private static readonly ConcurrentDictionary<Type, PropertyInfo[]> PropCache = new ConcurrentDictionary<Type, PropertyInfo[]>();
private static readonly ConcurrentDictionary<Type, ClonePropertyInfo[]> PropCache = new ConcurrentDictionary<Type, ClonePropertyInfo[]>();
/// <summary>
/// Used to deep clone any reference properties on the object (should be done after a MemberwiseClone for which the outcome is 'output')
@@ -30,81 +50,99 @@ namespace Umbraco.Core.Models
throw new InvalidOperationException("Both the input and output types must be the same");
}
//get the property metadata from cache so we only have to figure this out once per type
var refProperties = PropCache.GetOrAdd(inputType, type =>
inputType.GetProperties()
.Where(x =>
//is not attributed with the ignore clone attribute
x.GetCustomAttribute<DoNotCloneAttribute>() == null
.Select<PropertyInfo, ClonePropertyInfo?>(propertyInfo =>
{
if (
//is not attributed with the ignore clone attribute
propertyInfo.GetCustomAttribute<DoNotCloneAttribute>() != null
//reference type but not string
&& x.PropertyType.IsValueType == false && x.PropertyType != typeof (string)
|| propertyInfo.PropertyType.IsValueType || propertyInfo.PropertyType == typeof (string)
//settable
&& x.CanWrite
|| propertyInfo.CanWrite == false
//non-indexed
&& x.GetIndexParameters().Any() == false)
|| propertyInfo.GetIndexParameters().Any())
{
return null;
}
if (TypeHelper.IsTypeAssignableFrom<IDeepCloneable>(propertyInfo.PropertyType))
{
return new ClonePropertyInfo(propertyInfo) { IsDeepCloneable = true };
}
if (TypeHelper.IsTypeAssignableFrom<IEnumerable>(propertyInfo.PropertyType)
&& TypeHelper.IsTypeAssignableFrom<string>(propertyInfo.PropertyType) == false)
{
if (propertyInfo.PropertyType.IsGenericType
&& (propertyInfo.PropertyType.GetGenericTypeDefinition() == typeof(IEnumerable<>)
|| propertyInfo.PropertyType.GetGenericTypeDefinition() == typeof(ICollection<>)
|| propertyInfo.PropertyType.GetGenericTypeDefinition() == typeof(IList<>)))
{
//if it is a IEnumerable<>, IList<T> or ICollection<> we'll use a List<>
var genericType = typeof(List<>).MakeGenericType(propertyInfo.PropertyType.GetGenericArguments());
return new ClonePropertyInfo(propertyInfo) { GenericListType = genericType };
}
if (propertyInfo.PropertyType.IsArray
|| (propertyInfo.PropertyType.IsInterface && propertyInfo.PropertyType.IsGenericType == false))
{
//if its an array, we'll create a list to work with first and then convert to array later
//otherwise if its just a regular derivitave of IEnumerable, we can use a list too
return new ClonePropertyInfo(propertyInfo) { GenericListType = typeof(List<object>) };
}
//skip instead of trying to create instance of abstract or interface
if (propertyInfo.PropertyType.IsAbstract || propertyInfo.PropertyType.IsInterface)
{
return null;
}
//its a custom IEnumerable, we'll try to create it
try
{
var custom = Activator.CreateInstance(propertyInfo.PropertyType);
//if it's an IList we can work with it, otherwise we cannot
var newList = custom as IList;
if (newList == null)
{
return null;
}
return new ClonePropertyInfo(propertyInfo) {GenericListType = propertyInfo.PropertyType};
}
catch (Exception)
{
//could not create this type so we'll skip it
return null;
}
}
return new ClonePropertyInfo(propertyInfo);
})
.Where(x => x.HasValue)
.Select(x => x.Value)
.ToArray());
foreach (var propertyInfo in refProperties)
foreach (var clonePropertyInfo in refProperties)
{
if (TypeHelper.IsTypeAssignableFrom<IDeepCloneable>(propertyInfo.PropertyType))
if (clonePropertyInfo.IsDeepCloneable)
{
//this ref property is also deep cloneable so clone it
var result = (IDeepCloneable)propertyInfo.GetValue(input, null);
var result = (IDeepCloneable)clonePropertyInfo.PropertyInfo.GetValue(input, null);
if (result != null)
{
//set the cloned value to the property
propertyInfo.SetValue(output, result.DeepClone(), null);
clonePropertyInfo.PropertyInfo.SetValue(output, result.DeepClone(), null);
}
}
else if (TypeHelper.IsTypeAssignableFrom<IEnumerable>(propertyInfo.PropertyType)
&& TypeHelper.IsTypeAssignableFrom<string>(propertyInfo.PropertyType) == false)
else if (clonePropertyInfo.IsList)
{
IList newList;
if (propertyInfo.PropertyType.IsGenericType
&& (propertyInfo.PropertyType.GetGenericTypeDefinition() == typeof(IEnumerable<>)
|| propertyInfo.PropertyType.GetGenericTypeDefinition() == typeof(ICollection<>)
|| propertyInfo.PropertyType.GetGenericTypeDefinition() == typeof(IList<>)))
{
//if it is a IEnumerable<>, IList<T> or ICollection<> we'll use a List<>
var genericType = typeof(List<>).MakeGenericType(propertyInfo.PropertyType.GetGenericArguments());
newList = (IList)Activator.CreateInstance(genericType);
}
else if (propertyInfo.PropertyType.IsArray
|| (propertyInfo.PropertyType.IsInterface && propertyInfo.PropertyType.IsGenericType == false))
{
//if its an array, we'll create a list to work with first and then convert to array later
//otherwise if its just a regular derivitave of IEnumerable, we can use a list too
newList = new List<object>();
}
else
{
//skip instead of trying to create instance of abstract or interface
if (propertyInfo.PropertyType.IsAbstract || propertyInfo.PropertyType.IsInterface)
{
continue;
}
//its a custom IEnumerable, we'll try to create it
try
{
var custom = Activator.CreateInstance(propertyInfo.PropertyType);
//if it's an IList we can work with it, otherwise we cannot
newList = custom as IList;
if (newList == null)
{
continue;
}
}
catch (Exception)
{
//could not create this type so we'll skip it
continue;
}
}
var enumerable = (IEnumerable)propertyInfo.GetValue(input, null);
var enumerable = (IEnumerable)clonePropertyInfo.PropertyInfo.GetValue(input, null);
if (enumerable == null) continue;
var newList = (IList)Activator.CreateInstance(clonePropertyInfo.GenericListType);
var isUsableType = true;
//now clone each item
@@ -136,21 +174,21 @@ namespace Umbraco.Core.Models
continue;
}
if (propertyInfo.PropertyType.IsArray)
if (clonePropertyInfo.PropertyInfo.PropertyType.IsArray)
{
//need to convert to array
var arr = (object[])Activator.CreateInstance(propertyInfo.PropertyType, newList.Count);
var arr = (object[])Activator.CreateInstance(clonePropertyInfo.PropertyInfo.PropertyType, newList.Count);
for (int i = 0; i < newList.Count; i++)
{
arr[i] = newList[i];
}
//set the cloned collection
propertyInfo.SetValue(output, arr, null);
clonePropertyInfo.PropertyInfo.SetValue(output, arr, null);
}
else
{
//set the cloned collection
propertyInfo.SetValue(output, newList, null);
clonePropertyInfo.PropertyInfo.SetValue(output, newList, null);
}
}
-11
View File
@@ -98,16 +98,5 @@ namespace Umbraco.Core.Models
enumerable => enumerable.GetHashCode()));
}
}
/// <summary>
/// Method to call before inserting a new entity in the db
/// </summary>
internal override void AddingEntity()
{
base.AddingEntity();
Key = Guid.NewGuid();
}
}
}
+4 -2
View File
@@ -62,9 +62,9 @@ namespace Umbraco.Core.Models.EntityBase
{
get
{
// if an entity does NOT have a UniqueId yet, assign one now
if (_key == Guid.Empty)
return _id.ToGuid();
_key = Guid.NewGuid();
return _key;
}
set
@@ -136,6 +136,7 @@ namespace Umbraco.Core.Models.EntityBase
{
_hasIdentity = false;
_id = default(int);
_key = Guid.Empty;
}
/// <summary>
@@ -242,6 +243,7 @@ namespace Umbraco.Core.Models.EntityBase
{
//Memberwise clone on Entity will work since it doesn't have any deep elements
// for any sub class this will work for standard properties as well that aren't complex object's themselves.
var ignored = this.Key; // ensure that 'this' has a key, before cloning
var clone = (Entity)MemberwiseClone();
//ensure the clone has it's own dictionaries
clone.ResetChangeTrackingCollections();
@@ -0,0 +1,93 @@
using System;
using System.Collections.Generic;
using System.Linq;
namespace Umbraco.Core.Models
{
/// <summary>
/// Represents a folder for organizing entities such as content types and data types.
/// </summary>
public sealed class EntityContainer : UmbracoEntity
{
private readonly Guid _containedObjectType;
private static readonly Dictionary<Guid, Guid> ObjectTypeMap = new Dictionary<Guid, Guid>
{
{ Constants.ObjectTypes.DataTypeGuid, Constants.ObjectTypes.DataTypeContainerGuid },
{ Constants.ObjectTypes.DocumentTypeGuid, Constants.ObjectTypes.DocumentTypeContainerGuid },
{ Constants.ObjectTypes.MediaTypeGuid, Constants.ObjectTypes.MediaTypeContainerGuid }
};
/// <summary>
/// Initializes a new instance of an <see cref="EntityContainer"/> class.
/// </summary>
public EntityContainer(Guid containedObjectType)
{
if (ObjectTypeMap.ContainsKey(containedObjectType) == false)
throw new ArgumentException("Not a contained object type.", "containedObjectType");
_containedObjectType = containedObjectType;
ParentId = -1;
Path = "-1";
Level = 0;
SortOrder = 0;
}
/// <summary>
/// Initializes a new instance of an <see cref="EntityContainer"/> class.
/// </summary>
internal EntityContainer(int id, Guid uniqueId, int parentId, string path, int level, int sortOrder, Guid containedObjectType, string name, int userId)
: this(containedObjectType)
{
Id = id;
Key = uniqueId;
ParentId = parentId;
Name = name;
Path = path;
Level = level;
SortOrder = sortOrder;
CreatorId = userId;
}
/// <summary>
/// Gets or sets the node object type of the contained objects.
/// </summary>
public Guid ContainedObjectType
{
get { return _containedObjectType; }
}
/// <summary>
/// Gets the node object type of the container objects.
/// </summary>
public Guid ContainerObjectType
{
get { return ObjectTypeMap[_containedObjectType]; }
}
/// <summary>
/// Gets the container object type corresponding to a contained object type.
/// </summary>
/// <param name="containedObjectType">The contained object type.</param>
/// <returns>The object type of containers containing objects of the contained object type.</returns>
public static Guid GetContainerObjectType(Guid containedObjectType)
{
if (ObjectTypeMap.ContainsKey(containedObjectType) == false)
throw new ArgumentException("Not a contained object type.", "containedObjectType");
return ObjectTypeMap[containedObjectType];
}
/// <summary>
/// Gets the contained object type corresponding to a container object type.
/// </summary>
/// <param name="containerObjectType">The container object type.</param>
/// <returns>The object type of objects that containers of the container object type can contain.</returns>
public static Guid GetContainedObjectType(Guid containerObjectType)
{
var contained = ObjectTypeMap.FirstOrDefault(x => x.Value == containerObjectType).Key;
if (contained == null)
throw new ArgumentException("Not a container object type.", "containerObjectType");
return contained;
}
}
}
+6 -1
View File
@@ -54,10 +54,15 @@ namespace Umbraco.Core.Models
PropertyGroupCollection PropertyGroups { get; set; }
/// <summary>
/// Gets an enumerable list of Property Types aggregated for all groups
/// Gets all property types, across all property groups.
/// </summary>
IEnumerable<PropertyType> PropertyTypes { get; }
/// <summary>
/// Gets or sets the property types that are not in a group.
/// </summary>
IEnumerable<PropertyType> NoGroupPropertyTypes { get; set; }
/// <summary>
/// Removes a PropertyType from the current ContentType
/// </summary>
@@ -8,17 +8,17 @@ namespace Umbraco.Core.Models
public interface IContentTypeComposition : IContentTypeBase
{
/// <summary>
/// Gets a list of ContentTypes that make up a composition of PropertyGroups and PropertyTypes for the current ContentType
/// Gets or sets the content types that compose this content type.
/// </summary>
IEnumerable<IContentTypeComposition> ContentTypeComposition { get; }
IEnumerable<IContentTypeComposition> ContentTypeComposition { get; set; }
/// <summary>
/// Gets a list of <see cref="PropertyGroup"/> objects from the composition
/// Gets the property groups for the entire composition.
/// </summary>
IEnumerable<PropertyGroup> CompositionPropertyGroups { get; }
/// <summary>
/// Gets a list of <see cref="PropertyType"/> objects from the composition
/// Gets the property types for the entire composition.
/// </summary>
IEnumerable<PropertyType> CompositionPropertyTypes { get; }
+7 -1
View File
@@ -7,6 +7,12 @@ namespace Umbraco.Core.Models
/// </summary
public interface IMediaType : IContentTypeComposition
{
/// <summary>
/// Creates a deep clone of the current entity with its identity/alias and it's property identities reset
/// </summary>
/// <param name="newAlias"></param>
/// <returns></returns>
IMediaType DeepCloneWithResetIdentities(string newAlias);
}
}
@@ -0,0 +1,20 @@
using AutoMapper;
namespace Umbraco.Core.Models.Mapping
{
internal static class MappingExpressionExtensions
{
/// <summary>
/// Ignores all unmapped members by default - Use with caution!
/// </summary>
/// <typeparam name="TSource"></typeparam>
/// <typeparam name="TDest"></typeparam>
/// <param name="expression"></param>
/// <returns></returns>
public static IMappingExpression<TSource, TDest> IgnoreAllUnmapped<TSource, TDest>(this IMappingExpression<TSource, TDest> expression)
{
expression.ForAllMembers(opt => opt.Ignore());
return expression;
}
}
}
-12
View File
@@ -118,17 +118,5 @@ namespace Umbraco.Core.Models
//The Media Recycle Bin Id is -21 so we correct that here
ParentId = parentId == -20 ? -21 : parentId;
}
/// <summary>
/// Method to call when Entity is being saved
/// </summary>
/// <remarks>Created date is set and a Unique key is assigned</remarks>
internal override void AddingEntity()
{
base.AddingEntity();
if (Key == Guid.Empty)
Key = Guid.NewGuid();
}
}
}
@@ -0,0 +1,81 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Logging;
using Umbraco.Core.PropertyEditors.ValueConverters;
namespace Umbraco.Core.Models
{
internal static class MediaExtensions
{
/// <summary>
/// Hack: we need to put this in a real place, this is currently just used to render the urls for a media item in the back office
/// </summary>
/// <returns></returns>
public static string GetUrl(this IMedia media, string propertyAlias, ILogger logger)
{
var propertyType = media.PropertyTypes.FirstOrDefault(x => x.Alias.InvariantEquals(propertyAlias));
if (propertyType != null)
{
var val = media.Properties[propertyType];
if (val != null)
{
var jsonString = val.Value as string;
if (jsonString != null)
{
if (propertyType.PropertyEditorAlias == Constants.PropertyEditors.ImageCropperAlias)
{
if (jsonString.DetectIsJson())
{
try
{
var json = JsonConvert.DeserializeObject<JObject>(jsonString);
if (json["src"] != null)
{
return json["src"].Value<string>();
}
}
catch (Exception ex)
{
logger.Error<ImageCropperValueConverter>("Could not parse the string " + jsonString + " to a json object", ex);
return string.Empty;
}
}
else
{
return jsonString;
}
}
else if (propertyType.PropertyEditorAlias == Constants.PropertyEditors.UploadFieldAlias)
{
return jsonString;
}
//hrm, without knowing what it is, just adding a string here might not be very nice
}
}
}
return string.Empty;
}
/// <summary>
/// Hack: we need to put this in a real place, this is currently just used to render the urls for a media item in the back office
/// </summary>
/// <returns></returns>
public static string[] GetUrls(this IMedia media, IContentSection contentSection, ILogger logger)
{
var links = new List<string>();
var autoFillProperties = contentSection.ImageAutoFillProperties.ToArray();
if (autoFillProperties.Any())
{
links.AddRange(
autoFillProperties
.Select(field => media.GetUrl(field.Alias, logger))
.Where(link => link.IsNullOrWhiteSpace() == false));
}
return links.ToArray();
}
}
}
+19 -15
View File
@@ -40,24 +40,28 @@ namespace Umbraco.Core.Models
}
/// <summary>
/// Method to call when Entity is being saved
/// Creates a deep clone of the current entity with its identity/alias and it's property identities reset
/// </summary>
/// <remarks>Created date is set and a Unique key is assigned</remarks>
internal override void AddingEntity()
/// <returns></returns>
public IMediaType DeepCloneWithResetIdentities(string alias)
{
base.AddingEntity();
var clone = (MediaType)DeepClone();
clone.Alias = alias;
clone.Key = Guid.Empty;
foreach (var propertyGroup in clone.PropertyGroups)
{
propertyGroup.ResetIdentity();
propertyGroup.ResetDirtyProperties(false);
}
foreach (var propertyType in clone.PropertyTypes)
{
propertyType.ResetIdentity();
propertyType.ResetDirtyProperties(false);
}
if (Key == Guid.Empty)
Key = Guid.NewGuid();
}
/// <summary>
/// Method to call when Entity is being updated
/// </summary>
/// <remarks>Modified Date is set and a new Version guid is set</remarks>
internal override void UpdatingEntity()
{
base.UpdatingEntity();
clone.ResetIdentity();
clone.ResetDirtyProperties(false);
return clone;
}
}
}
+1 -4
View File
@@ -509,11 +509,8 @@ namespace Umbraco.Core.Models
{
base.AddingEntity();
if (Key == Guid.Empty)
{
Key = Guid.NewGuid();
if (ProviderUserKey == null)
ProviderUserKey = Key;
}
}
/// <summary>
-12
View File
@@ -60,17 +60,5 @@ namespace Umbraco.Core.Models
}
public IDictionary<string, object> AdditionalData { get; private set; }
/// <summary>
/// Method to call when Entity is being saved
/// </summary>
/// <remarks>Created date is set and a Unique key is assigned</remarks>
internal override void AddingEntity()
{
base.AddingEntity();
if (Key == Guid.Empty)
Key = Guid.NewGuid();
}
}
}
-21
View File
@@ -131,26 +131,5 @@ namespace Umbraco.Core.Models
MemberTypePropertyTypes.Add(propertyTypeAlias, tuple);
}
}
/// <summary>
/// Method to call when Entity is being saved
/// </summary>
/// <remarks>Created date is set and a Unique key is assigned</remarks>
internal override void AddingEntity()
{
base.AddingEntity();
if (Key == Guid.Empty)
Key = Guid.NewGuid();
}
/// <summary>
/// Method to call when Entity is being updated
/// </summary>
/// <remarks>Modified Date is set and a new Version guid is set</remarks>
internal override void UpdatingEntity()
{
base.UpdatingEntity();
}
}
}
-34
View File
@@ -17,7 +17,6 @@ namespace Umbraco.Core.Models
public class PropertyGroup : Entity, IEquatable<PropertyGroup>
{
private string _name;
private Lazy<int?> _parentId;
private int _sortOrder;
private PropertyTypeCollection _propertyTypes;
@@ -31,7 +30,6 @@ namespace Umbraco.Core.Models
}
private static readonly PropertyInfo NameSelector = ExpressionHelper.GetPropertyInfo<PropertyGroup, string>(x => x.Name);
private static readonly PropertyInfo ParentIdSelector = ExpressionHelper.GetPropertyInfo<PropertyGroup, int?>(x => x.ParentId);
private static readonly PropertyInfo SortOrderSelector = ExpressionHelper.GetPropertyInfo<PropertyGroup, int>(x => x.SortOrder);
private readonly static PropertyInfo PropertyTypeCollectionSelector = ExpressionHelper.GetPropertyInfo<PropertyGroup, PropertyTypeCollection>(x => x.PropertyTypes);
void PropertyTypesChanged(object sender, NotifyCollectionChangedEventArgs e)
@@ -56,29 +54,6 @@ namespace Umbraco.Core.Models
}
}
/// <summary>
/// Gets or sets the Id of the Parent PropertyGroup.
/// </summary>
/// <remarks>
/// A Parent PropertyGroup corresponds to an inherited PropertyGroup from a composition.
/// If a PropertyType is inserted into an inherited group then a new group will be created with an Id reference to the parent.
/// </remarks>
[DataMember]
public int? ParentId
{
get
{
if (_parentId == null)
return default(int?);
return _parentId.Value;
}
set
{
_parentId = new Lazy<int?>(() => value);
OnPropertyChanged(ParentIdSelector);
}
}
/// <summary>
/// Gets or sets the Sort Order of the Group
/// </summary>
@@ -117,15 +92,6 @@ namespace Umbraco.Core.Models
}
}
/// <summary>
/// Sets the ParentId from the lazy integer id
/// </summary>
/// <param name="id">Id of the Parent</param>
internal void SetLazyParentId(Lazy<int?> id)
{
_parentId = id;
}
public bool Equals(PropertyGroup other)
{
if (base.Equals(other)) return true;
+6
View File
@@ -9,6 +9,7 @@ using Umbraco.Core.Strings;
namespace Umbraco.Core.Models
{
/// <summary>
/// Defines the type of a <see cref="Property"/> object
/// </summary>
@@ -32,6 +33,8 @@ namespace Umbraco.Core.Models
public PropertyType(IDataTypeDefinition dataTypeDefinition)
{
if (dataTypeDefinition == null) throw new ArgumentNullException("dataTypeDefinition");
if(dataTypeDefinition.HasIdentity)
_dataTypeDefinitionId = dataTypeDefinition.Id;
@@ -401,6 +404,9 @@ namespace Umbraco.Core.Models
if (DataTypeDatabaseType == DataTypeDatabaseType.Integer && type == typeof(int))
return true;
if (DataTypeDatabaseType == DataTypeDatabaseType.Decimal && type == typeof(decimal))
return true;
if (DataTypeDatabaseType == DataTypeDatabaseType.Date && type == typeof(DateTime))
return true;
@@ -108,18 +108,6 @@ namespace Umbraco.Core.Models
}
}
/// <summary>
/// Method to call on entity saved when first added
/// </summary>
internal override void AddingEntity()
{
if (Key == default(Guid))
{
Key = Guid.NewGuid();
}
base.AddingEntity();
}
[DataMember]
public int LoginNodeId
{
@@ -28,18 +28,6 @@ namespace Umbraco.Core.Models
public Guid AccessEntryId { get; internal set; }
/// <summary>
/// Method to call on entity saved when first added
/// </summary>
internal override void AddingEntity()
{
if (Key == default(Guid))
{
Key = Guid.NewGuid();
}
base.AddingEntity();
}
public string RuleValue
{
get { return _ruleValue; }
@@ -1,9 +1,6 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Web.Caching;
using System.Web.UI;
using Umbraco.Core.Cache;
namespace Umbraco.Core.Models.PublishedContent
@@ -16,6 +13,7 @@ namespace Umbraco.Core.Models.PublishedContent
public class PublishedContentType
{
private readonly PublishedPropertyType[] _propertyTypes;
private readonly HashSet<string> _compositionAliases;
// fast alias-to-index xref containing both the raw alias and its lowercase version
private readonly Dictionary<string, int> _indexes = new Dictionary<string, int>();
@@ -27,6 +25,7 @@ namespace Umbraco.Core.Models.PublishedContent
{
Id = contentType.Id;
Alias = contentType.Alias;
_compositionAliases = new HashSet<string>(contentType.CompositionAliases(), StringComparer.InvariantCultureIgnoreCase);
_propertyTypes = contentType.CompositionPropertyTypes
.Select(x => new PublishedPropertyType(this, x))
.ToArray();
@@ -34,10 +33,11 @@ namespace Umbraco.Core.Models.PublishedContent
}
// internal so it can be used for unit tests
internal PublishedContentType(int id, string alias, IEnumerable<PublishedPropertyType> propertyTypes)
internal PublishedContentType(int id, string alias, IEnumerable<string> compositionAliases, IEnumerable<PublishedPropertyType> propertyTypes)
{
Id = id;
Alias = alias;
_compositionAliases = new HashSet<string>(compositionAliases, StringComparer.InvariantCultureIgnoreCase);
_propertyTypes = propertyTypes.ToArray();
foreach (var propertyType in _propertyTypes)
propertyType.ContentType = this;
@@ -45,8 +45,8 @@ namespace Umbraco.Core.Models.PublishedContent
}
// create detached content type - ie does not match anything in the DB
internal PublishedContentType(string alias, IEnumerable<PublishedPropertyType> propertyTypes)
: this (0, alias, propertyTypes)
internal PublishedContentType(string alias, IEnumerable<string> compositionAliases, IEnumerable<PublishedPropertyType> propertyTypes)
: this(0, alias, compositionAliases, propertyTypes)
{ }
private void InitializeIndexes()
@@ -63,6 +63,7 @@ namespace Umbraco.Core.Models.PublishedContent
public int Id { get; private set; }
public string Alias { get; private set; }
public HashSet<string> CompositionAliases { get { return _compositionAliases; } }
#endregion
@@ -113,10 +114,25 @@ namespace Umbraco.Core.Models.PublishedContent
internal static void ClearContentType(int id)
{
Logging.LogHelper.Debug<PublishedContentType>("Clear content type w/id {0}.", () => id);
// requires a predicate because the key does not contain the ID
// faster than key strings comparisons anyway
// we don't support "get all" at the moment - so, cheating
var all = ApplicationContext.Current.ApplicationCache.StaticCache.GetCacheItemsByKeySearch<PublishedContentType>("PublishedContentType_").ToArray();
// the one we want to clear
var clr = all.FirstOrDefault(x => x.Id == id);
if (clr == null) return;
// those that have that one in their composition aliases
// note: CompositionAliases contains all recursive aliases
var oth = all.Where(x => x.CompositionAliases.InvariantContains(clr.Alias)).Select(x => x.Id);
// merge ids
var ids = oth.Concat(new[] { clr.Id }).ToArray();
// clear them all at once
// we don't support "clear many at once" at the moment - so, cheating
ApplicationContext.Current.ApplicationCache.StaticCache.ClearCacheObjectTypes<PublishedContentType>(
(key, value) => value.Id == id);
(key, value) => ids.Contains(value.Id));
}
internal static void ClearDataType(int id)
@@ -164,6 +164,9 @@ namespace Umbraco.Core.Models.PublishedContent
private void InitializeConverters()
{
//TODO: Look at optimizing this method, it gets run for every property type for the document being rendered at startup,
// every precious second counts!
var converters = PropertyValueConvertersResolver.Current.Converters.ToArray();
var defaultConvertersWithAttributes = PropertyValueConvertersResolver.Current.DefaultConverters;
@@ -230,13 +233,13 @@ namespace Umbraco.Core.Models.PublishedContent
{
_sourceCacheLevel = converterMeta.GetPropertyCacheLevel(this, PropertyCacheValue.Source);
_objectCacheLevel = converterMeta.GetPropertyCacheLevel(this, PropertyCacheValue.Object);
_objectCacheLevel = converterMeta.GetPropertyCacheLevel(this, PropertyCacheValue.XPath);
_xpathCacheLevel = converterMeta.GetPropertyCacheLevel(this, PropertyCacheValue.XPath);
}
else
{
_sourceCacheLevel = GetCacheLevel(_converter, PropertyCacheValue.Source);
_objectCacheLevel = GetCacheLevel(_converter, PropertyCacheValue.Object);
_objectCacheLevel = GetCacheLevel(_converter, PropertyCacheValue.XPath);
_xpathCacheLevel = GetCacheLevel(_converter, PropertyCacheValue.XPath);
}
if (_objectCacheLevel < _sourceCacheLevel) _objectCacheLevel = _sourceCacheLevel;
if (_xpathCacheLevel < _sourceCacheLevel) _xpathCacheLevel = _sourceCacheLevel;
@@ -1,28 +1,28 @@
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.DatabaseAnnotations;
namespace Umbraco.Core.Models.Rdbms
{
[TableName("cmsDocumentType")]
[PrimaryKey("contentTypeNodeId", autoIncrement = false)]
[ExplicitColumns]
internal class DocumentTypeDto
{
[Column("contentTypeNodeId")]
[PrimaryKeyColumn(AutoIncrement = false, Name = "PK_cmsDocumentType", OnColumns = "contentTypeNodeId, templateNodeId")]
[ForeignKey(typeof(ContentTypeDto), Column = "nodeId")]
[ForeignKey(typeof(NodeDto))]
public int ContentTypeNodeId { get; set; }
[Column("templateNodeId")]
[ForeignKey(typeof(TemplateDto), Column = "nodeId")]
public int TemplateNodeId { get; set; }
[Column("IsDefault")]
[Constraint(Default = "0")]
public bool IsDefault { get; set; }
[ResultColumn]
public ContentTypeDto ContentTypeDto { get; set; }
}
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.DatabaseAnnotations;
namespace Umbraco.Core.Models.Rdbms
{
[TableName("cmsDocumentType")]
[PrimaryKey("contentTypeNodeId", autoIncrement = false)]
[ExplicitColumns]
internal class ContentTypeTemplateDto
{
[Column("contentTypeNodeId")]
[PrimaryKeyColumn(AutoIncrement = false, Name = "PK_cmsDocumentType", OnColumns = "contentTypeNodeId, templateNodeId")]
[ForeignKey(typeof(ContentTypeDto), Column = "nodeId")]
[ForeignKey(typeof(NodeDto))]
public int ContentTypeNodeId { get; set; }
[Column("templateNodeId")]
[ForeignKey(typeof(TemplateDto), Column = "nodeId")]
public int TemplateNodeId { get; set; }
[Column("IsDefault")]
[Constraint(Default = "0")]
public bool IsDefault { get; set; }
[ResultColumn]
public ContentTypeDto ContentTypeDto { get; set; }
}
}
-6
View File
@@ -10,12 +10,6 @@ namespace Umbraco.Core.Models.Rdbms
[ExplicitColumns]
internal class NodeDto
{
public NodeDto()
{
//By default, always generate a new guid
UniqueId = Guid.NewGuid();
}
public const int NodeIdSeed = 1050;
[Column("id")]
@@ -33,6 +33,10 @@ namespace Umbraco.Core.Models.Rdbms
[NullSetting(NullSetting = NullSettings.Null)]
public int? Integer { get; set; }
[Column("dataDecimal")]
[NullSetting(NullSetting = NullSettings.Null)]
public decimal? Decimal { get; set; }
[Column("dataDate")]
[NullSetting(NullSetting = NullSettings.Null)]
public DateTime? Date { get; set; }
@@ -55,22 +59,27 @@ namespace Umbraco.Core.Models.Rdbms
{
get
{
if(Integer.HasValue)
if (Integer.HasValue)
{
return Integer.Value;
}
if (Decimal.HasValue)
{
return Decimal.Value;
}
if(Date.HasValue)
if (Date.HasValue)
{
return Date.Value;
}
if(string.IsNullOrEmpty(VarChar) == false)
if (string.IsNullOrEmpty(VarChar) == false)
{
return VarChar;
}
if(string.IsNullOrEmpty(Text) == false)
if (string.IsNullOrEmpty(Text) == false)
{
return Text;
}
@@ -10,12 +10,6 @@ namespace Umbraco.Core.Models.Rdbms
[ExplicitColumns]
internal class PropertyTypeDto
{
public PropertyTypeDto()
{
//by default always create a new guid
UniqueId = Guid.NewGuid();
}
[Column("id")]
[PrimaryKeyColumn(IdentitySeed = 50)]
public int Id { get; set; }
@@ -1,6 +1,8 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.DatabaseAnnotations;
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
namespace Umbraco.Core.Models.Rdbms
{
@@ -13,12 +15,6 @@ namespace Umbraco.Core.Models.Rdbms
[PrimaryKeyColumn(IdentitySeed = 12)]
public int Id { get; set; }
[Column("parentGroupId")]
[NullSetting(NullSetting = NullSettings.Null)]
//[Constraint(Default = "NULL")]
[ForeignKey(typeof(PropertyTypeGroupDto))]
public int? ParentGroupId { get; set; }
[Column("contenttypeNodeId")]
[ForeignKey(typeof(ContentTypeDto), Column = "nodeId")]
public int ContentTypeNodeId { get; set; }
@@ -31,5 +27,11 @@ namespace Umbraco.Core.Models.Rdbms
[ResultColumn]
public List<PropertyTypeDto> PropertyTypeDtos { get; set; }
[Column("uniqueID")]
[NullSetting(NullSetting = NullSettings.NotNull)]
[Constraint(Default = SystemMethods.NewGuid)]
[Index(IndexTypes.UniqueNonClustered, Name = "IX_cmsPropertyTypeGroupUniqueID")]
public Guid UniqueId { get; set; }
}
}
@@ -10,9 +10,6 @@ namespace Umbraco.Core.Models.Rdbms
[Column("PropertyTypeGroupId")]
public int? Id { get; set; }
[Column("parentGroupId")]
public int? ParentGroupId { get; set; }
[Column("PropertyGroupName")]
public string Text { get; set; }
@@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.DatabaseAnnotations;
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
namespace Umbraco.Core.Models.Rdbms
{
[TableName("umbracoDeployChecksum")]
[PrimaryKey("id")]
[ExplicitColumns]
internal class UmbracoDeployChecksumDto
{
[Column("id")]
[PrimaryKeyColumn(Name = "PK_umbracoDeployChecksum")]
public int Id { get; set; }
[Column("entityType")]
[Length(32)]
[NullSetting(NullSetting = NullSettings.NotNull)]
[Index(IndexTypes.UniqueNonClustered, Name = "IX_umbracoDeployChecksum", ForColumns = "entityType,entityGuid,entityPath")]
public string EntityType { get; set; }
[Column("entityGuid")]
[NullSetting(NullSetting = NullSettings.Null)]
public Guid EntityGuid { get; set; }
[Column("entityPath")]
[Length(256)]
[NullSetting(NullSetting = NullSettings.Null)]
public string EntityPath { get; set; }
[Column("localChecksum")]
[NullSetting(NullSetting = NullSettings.NotNull)]
[Length(32)]
public string LocalChecksum { get; set; }
[Column("compositeChecksum")]
[NullSetting(NullSetting = NullSettings.Null)]
[Length(32)]
public string CompositeChecksum { get; set; }
}
}
@@ -0,0 +1,26 @@
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.DatabaseAnnotations;
namespace Umbraco.Core.Models.Rdbms
{
[TableName("umbracoDeployDependency")]
[ExplicitColumns]
internal class UmbracoDeployDependencyDto
{
[Column("sourceId")]
[PrimaryKeyColumn(AutoIncrement = false, Clustered = true, Name = "PK_umbracoDeployDependency", OnColumns = "sourceId, targetId")]
[ForeignKey(typeof(UmbracoDeployChecksumDto), Name = "FK_umbracoDeployDependency_umbracoDeployChecksum_id1")]
[NullSetting(NullSetting = NullSettings.NotNull)]
public int SourceId { get; set; }
[Column("targetId")]
[ForeignKey(typeof(UmbracoDeployChecksumDto), Name = "FK_umbracoDeployDependency_umbracoDeployChecksum_id2")]
[NullSetting(NullSetting = NullSettings.NotNull)]
public int TargetId { get; set; }
[Column("mode")]
[NullSetting(NullSetting = NullSettings.NotNull)]
public int Mode { get; set; }
}
}
-12
View File
@@ -118,18 +118,6 @@ namespace Umbraco.Core.Models
return ApplicationContext.Current.Services.FileService.DetermineTemplateRenderingEngine(this);
}
/// <summary>
/// Method to call when Entity is being saved
/// </summary>
/// <remarks>Created date is set and a Unique key is assigned</remarks>
internal override void AddingEntity()
{
base.AddingEntity();
if (Key == Guid.Empty)
Key = Guid.NewGuid();
}
public void SetMasterTemplate(ITemplate masterTemplate)
{
if (masterTemplate == null)
+1 -1
View File
@@ -11,7 +11,7 @@ namespace Umbraco.Core.Models
/// <summary>
/// Implementation of the <see cref="IUmbracoEntity"/> for internal use.
/// </summary>
internal class UmbracoEntity : Entity, IUmbracoEntity
public class UmbracoEntity : Entity, IUmbracoEntity
{
private int _creatorId;
private int _level;
@@ -11,6 +11,20 @@ namespace Umbraco.Core.Models
internal static class UmbracoEntityExtensions
{
public static bool HasChildren(this IUmbracoEntity entity)
{
if (entity.AdditionalData.ContainsKey("HasChildren"))
{
var convert = entity.AdditionalData["HasChildren"].TryConvertTo<bool>();
if (convert)
{
return convert.Result;
}
}
return false;
}
public static object GetAdditionalDataValueIgnoreCase(this IUmbracoEntity entity, string key, object defaultVal)
{
if (entity.AdditionalData.ContainsKeyIgnoreCase(key) == false) return defaultVal;
+38 -15
View File
@@ -15,49 +15,49 @@ namespace Umbraco.Core.Models
/// <summary>
/// Content Item Type
/// </summary>
[UmbracoObjectTypeAttribute(Constants.ObjectTypes.ContentItemType)]
[UmbracoObjectType(Constants.ObjectTypes.ContentItemType)]
[FriendlyName("Content Item Type")]
ContentItemType,
/// <summary>
/// Root
/// </summary>
[UmbracoObjectTypeAttribute(Constants.ObjectTypes.SystemRoot)]
[UmbracoObjectType(Constants.ObjectTypes.SystemRoot)]
[FriendlyName("Root")]
ROOT,
/// <summary>
/// Document
/// </summary>
[UmbracoObjectTypeAttribute(Constants.ObjectTypes.Document, typeof(IContent))]
[UmbracoObjectType(Constants.ObjectTypes.Document, typeof(IContent))]
[FriendlyName("Document")]
Document,
/// <summary>
/// Media
/// </summary>
[UmbracoObjectTypeAttribute(Constants.ObjectTypes.Media, typeof(IMedia))]
[UmbracoObjectType(Constants.ObjectTypes.Media, typeof(IMedia))]
[FriendlyName("Media")]
Media,
/// <summary>
/// Member Type
/// </summary>
[UmbracoObjectTypeAttribute(Constants.ObjectTypes.MemberType, typeof(IMemberType))]
[UmbracoObjectType(Constants.ObjectTypes.MemberType, typeof(IMemberType))]
[FriendlyName("Member Type")]
MemberType,
/// <summary>
/// Template
/// </summary>
[UmbracoObjectTypeAttribute(Constants.ObjectTypes.Template, typeof(ITemplate))]
[UmbracoObjectType(Constants.ObjectTypes.Template, typeof(ITemplate))]
[FriendlyName("Template")]
Template,
/// <summary>
/// Member Group
/// </summary>
[UmbracoObjectTypeAttribute(Constants.ObjectTypes.MemberGroup)]
[UmbracoObjectType(Constants.ObjectTypes.MemberGroup)]
[FriendlyName("Member Group")]
MemberGroup,
@@ -65,50 +65,73 @@ namespace Umbraco.Core.Models
/// <summary>
/// Content Item
/// </summary>
[UmbracoObjectTypeAttribute(Constants.ObjectTypes.ContentItem)]
[UmbracoObjectType(Constants.ObjectTypes.ContentItem)]
[FriendlyName("Content Item")]
ContentItem,
/// <summary>
/// "Media Type
/// </summary>
[UmbracoObjectTypeAttribute(Constants.ObjectTypes.MediaType, typeof(IMediaType))]
[UmbracoObjectType(Constants.ObjectTypes.MediaType, typeof(IMediaType))]
[FriendlyName("Media Type")]
MediaType,
/// <summary>
/// Document Type
/// </summary>
[UmbracoObjectTypeAttribute(Constants.ObjectTypes.DocumentType, typeof(IContentType))]
[UmbracoObjectType(Constants.ObjectTypes.DocumentType, typeof(IContentType))]
[FriendlyName("Document Type")]
DocumentType,
/// <summary>
/// Recycle Bin
/// </summary>
[UmbracoObjectTypeAttribute(Constants.ObjectTypes.ContentRecycleBin)]
[UmbracoObjectType(Constants.ObjectTypes.ContentRecycleBin)]
[FriendlyName("Recycle Bin")]
RecycleBin,
/// <summary>
/// Stylesheet
/// </summary>
[UmbracoObjectTypeAttribute(Constants.ObjectTypes.Stylesheet)]
[UmbracoObjectType(Constants.ObjectTypes.Stylesheet)]
[FriendlyName("Stylesheet")]
Stylesheet,
/// <summary>
/// Member
/// </summary>
[UmbracoObjectTypeAttribute(Constants.ObjectTypes.Member, typeof(IMember))]
[UmbracoObjectType(Constants.ObjectTypes.Member, typeof(IMember))]
[FriendlyName("Member")]
Member,
/// <summary>
/// Data Type
/// </summary>
[UmbracoObjectTypeAttribute(Constants.ObjectTypes.DataType, typeof(IDataTypeDefinition))]
[UmbracoObjectType(Constants.ObjectTypes.DataType, typeof(IDataTypeDefinition))]
[FriendlyName("Data Type")]
DataType
DataType,
/// <summary>
/// Document type container
/// </summary>
[UmbracoObjectType(Constants.ObjectTypes.DocumentTypeContainer)]
[FriendlyName("Document Type Container")]
DocumentTypeContainer,
/// <summary>
/// Media type container
/// </summary>
[UmbracoObjectType(Constants.ObjectTypes.MediaTypeContainer)]
[FriendlyName("Media Type Container")]
MediaTypeContainer,
/// <summary>
/// Media type container
/// </summary>
[UmbracoObjectType(Constants.ObjectTypes.DataTypeContainer)]
[FriendlyName("Data Type Container")]
DataTypeContainer
}
}
@@ -1,98 +1,144 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using Umbraco.Core.Models;
using Umbraco.Core.Models.EntityBase;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Models.Rdbms;
namespace Umbraco.Core.Persistence.Factories
{
// factory for
// IContentType (document types)
// IMediaType (media types)
// IMemberType (member types)
//
internal class ContentTypeFactory
{
private readonly Guid _nodeObjectType;
#region IContentType
public ContentTypeFactory(Guid nodeObjectType)
public IContentType BuildContentTypeEntity(ContentTypeDto dto)
{
_nodeObjectType = nodeObjectType;
}
var contentType = new ContentType(dto.NodeDto.ParentId);
BuildCommonEntity(contentType, dto);
#region Implementation of IEntityFactory<IContentType,DocumentTypeDto>
public IContentType BuildEntity(DocumentTypeDto dto)
{
var contentType = new ContentType(dto.ContentTypeDto.NodeDto.ParentId)
{
Id = dto.ContentTypeDto.NodeDto.NodeId,
Key = dto.ContentTypeDto.NodeDto.UniqueId,
Alias = dto.ContentTypeDto.Alias,
Name = dto.ContentTypeDto.NodeDto.Text,
Icon = dto.ContentTypeDto.Icon,
Thumbnail = dto.ContentTypeDto.Thumbnail,
SortOrder = dto.ContentTypeDto.NodeDto.SortOrder,
Description = dto.ContentTypeDto.Description,
CreateDate = dto.ContentTypeDto.NodeDto.CreateDate,
Path = dto.ContentTypeDto.NodeDto.Path,
Level = dto.ContentTypeDto.NodeDto.Level,
CreatorId = dto.ContentTypeDto.NodeDto.UserId.Value,
AllowedAsRoot = dto.ContentTypeDto.AllowAtRoot,
IsContainer = dto.ContentTypeDto.IsContainer,
Trashed = dto.ContentTypeDto.NodeDto.Trashed,
DefaultTemplateId = dto.TemplateNodeId
};
//on initial construction we don't want to have dirty properties tracked
// http://issues.umbraco.org/issue/U4-1946
contentType.ResetDirtyProperties(false);
return contentType;
}
public DocumentTypeDto BuildDto(IContentType entity)
{
var documentTypeDto = new DocumentTypeDto
{ContentTypeDto = BuildContentTypeDto(entity), ContentTypeNodeId = entity.Id};
var contentType = entity as ContentType;
if(contentType != null)
{
documentTypeDto.TemplateNodeId = contentType.DefaultTemplateId;
documentTypeDto.IsDefault = true;
}
return documentTypeDto;
return contentType;
}
#endregion
private ContentTypeDto BuildContentTypeDto(IContentType entity)
#region IMediaType
public IMediaType BuildMediaTypeEntity(ContentTypeDto dto)
{
var contentType = new MediaType(dto.NodeDto.ParentId);
BuildCommonEntity(contentType, dto);
//on initial construction we don't want to have dirty properties tracked
// http://issues.umbraco.org/issue/U4-1946
contentType.ResetDirtyProperties(false);
return contentType;
}
#endregion
#region IMemberType
public IMemberType BuildMemberTypeEntity(ContentTypeDto dto)
{
throw new NotImplementedException();
}
public IEnumerable<MemberTypeDto> BuildMemberTypeDtos(IMemberType entity)
{
var memberType = entity as MemberType;
if (memberType == null || memberType.PropertyTypes.Any() == false)
return Enumerable.Empty<MemberTypeDto>();
var dtos = memberType.PropertyTypes.Select(x => new MemberTypeDto
{
NodeId = entity.Id,
PropertyTypeId = x.Id,
CanEdit = memberType.MemberCanEditProperty(x.Alias),
ViewOnProfile = memberType.MemberCanViewProperty(x.Alias)
}).ToList();
return dtos;
}
#endregion
#region Common
private static void BuildCommonEntity(ContentTypeBase entity, ContentTypeDto dto)
{
entity.Id = dto.NodeDto.NodeId;
entity.Key = dto.NodeDto.UniqueId;
entity.Alias = dto.Alias;
entity.Name = dto.NodeDto.Text;
entity.Icon = dto.Icon;
entity.Thumbnail = dto.Thumbnail;
entity.SortOrder = dto.NodeDto.SortOrder;
entity.Description = dto.Description;
entity.CreateDate = dto.NodeDto.CreateDate;
entity.Path = dto.NodeDto.Path;
entity.Level = dto.NodeDto.Level;
entity.CreatorId = dto.NodeDto.UserId.Value;
entity.AllowedAsRoot = dto.AllowAtRoot;
entity.IsContainer = dto.IsContainer;
entity.Trashed = dto.NodeDto.Trashed;
}
public ContentTypeDto BuildContentTypeDto(IContentTypeBase entity)
{
Guid nodeObjectType;
if (entity is IContentType)
nodeObjectType = Constants.ObjectTypes.DocumentTypeGuid;
else if (entity is IMediaType)
nodeObjectType = Constants.ObjectTypes.MediaTypeGuid;
else if (entity is IMemberType)
nodeObjectType = Constants.ObjectTypes.MemberTypeGuid;
else
throw new Exception("oops: invalid entity.");
var contentTypeDto = new ContentTypeDto
{
Alias = entity.Alias,
Description = entity.Description,
Icon = entity.Icon,
Thumbnail = entity.Thumbnail,
NodeId = entity.Id,
AllowAtRoot = entity.AllowedAsRoot,
IsContainer = entity.IsContainer,
NodeDto = BuildNodeDto(entity)
};
{
Alias = entity.Alias,
Description = entity.Description,
Icon = entity.Icon,
Thumbnail = entity.Thumbnail,
NodeId = entity.Id,
AllowAtRoot = entity.AllowedAsRoot,
IsContainer = entity.IsContainer,
NodeDto = BuildNodeDto(entity, nodeObjectType)
};
return contentTypeDto;
}
private NodeDto BuildNodeDto(IContentType entity)
private static NodeDto BuildNodeDto(IUmbracoEntity entity, Guid nodeObjectType)
{
var nodeDto = new NodeDto
{
CreateDate = entity.CreateDate,
NodeId = entity.Id,
Level = short.Parse(entity.Level.ToString(CultureInfo.InvariantCulture)),
NodeObjectType = _nodeObjectType,
ParentId = entity.ParentId,
Path = entity.Path,
SortOrder = entity.SortOrder,
Text = entity.Name,
Trashed = false,
UniqueId = entity.Key,
UserId = entity.CreatorId
};
{
CreateDate = entity.CreateDate,
NodeId = entity.Id,
Level = short.Parse(entity.Level.ToString(CultureInfo.InvariantCulture)),
NodeObjectType = nodeObjectType,
ParentId = entity.ParentId,
Path = entity.Path,
SortOrder = entity.SortOrder,
Text = entity.Name,
Trashed = false,
UniqueId = entity.Key,
UserId = entity.CreatorId
};
return nodeDto;
}
#endregion
}
}
@@ -1,82 +0,0 @@
using System;
using System.Globalization;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Rdbms;
namespace Umbraco.Core.Persistence.Factories
{
internal class MediaTypeFactory
{
private readonly Guid _nodeObjectType;
public MediaTypeFactory(Guid nodeObjectType)
{
_nodeObjectType = nodeObjectType;
}
#region Implementation of IEntityFactory<IMediaType,ContentTypeDto>
public IMediaType BuildEntity(ContentTypeDto dto)
{
var contentType = new MediaType(dto.NodeDto.ParentId)
{
Id = dto.NodeDto.NodeId,
Key = dto.NodeDto.UniqueId,
Alias = dto.Alias,
Name = dto.NodeDto.Text,
Icon = dto.Icon,
Thumbnail = dto.Thumbnail,
SortOrder = dto.NodeDto.SortOrder,
Description = dto.Description,
CreateDate = dto.NodeDto.CreateDate,
Path = dto.NodeDto.Path,
Level = dto.NodeDto.Level,
CreatorId = dto.NodeDto.UserId.Value,
AllowedAsRoot = dto.AllowAtRoot,
IsContainer = dto.IsContainer,
Trashed = dto.NodeDto.Trashed
};
//on initial construction we don't want to have dirty properties tracked
// http://issues.umbraco.org/issue/U4-1946
contentType.ResetDirtyProperties(false);
return contentType;
}
public ContentTypeDto BuildDto(IMediaType entity)
{
var contentTypeDto = new ContentTypeDto
{
Alias = entity.Alias,
Description = entity.Description,
Icon = entity.Icon,
Thumbnail = entity.Thumbnail,
NodeId = entity.Id,
AllowAtRoot = entity.AllowedAsRoot,
IsContainer = entity.IsContainer,
NodeDto = BuildNodeDto(entity)
};
return contentTypeDto;
}
#endregion
private NodeDto BuildNodeDto(IMediaType entity)
{
var nodeDto = new NodeDto
{
CreateDate = entity.CreateDate,
NodeId = entity.Id,
Level = short.Parse(entity.Level.ToString(CultureInfo.InvariantCulture)),
NodeObjectType = _nodeObjectType,
ParentId = entity.ParentId,
Path = entity.Path,
SortOrder = entity.SortOrder,
Text = entity.Name,
Trashed = false,
UniqueId = entity.Key,
UserId = entity.CreatorId
};
return nodeDto;
}
}
}
@@ -1,94 +0,0 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Rdbms;
namespace Umbraco.Core.Persistence.Factories
{
internal class MemberTypeFactory
{
private readonly Guid _nodeObjectType;
public MemberTypeFactory(Guid nodeObjectType)
{
_nodeObjectType = nodeObjectType;
}
public IMemberType BuildEntity(ContentTypeDto dto)
{
throw new System.NotImplementedException();
}
public ContentTypeDto BuildDto(IMemberType entity)
{
var contentTypeDto = new ContentTypeDto
{
Alias = entity.Alias,
Description = entity.Description,
Icon = entity.Icon,
Thumbnail = entity.Thumbnail,
NodeId = entity.Id,
AllowAtRoot = entity.AllowedAsRoot,
IsContainer = entity.IsContainer,
NodeDto = BuildNodeDto(entity)
};
return contentTypeDto;
}
public IEnumerable<MemberTypeDto> BuildMemberTypeDtos(IMemberType entity)
{
var memberType = entity as MemberType;
if (memberType == null || memberType.PropertyTypes.Any() == false)
return Enumerable.Empty<MemberTypeDto>();
var memberTypes = new List<MemberTypeDto>();
foreach (var propertyType in memberType.PropertyTypes)
{
memberTypes.Add(new MemberTypeDto
{
NodeId = entity.Id,
PropertyTypeId = propertyType.Id,
CanEdit = memberType.MemberCanEditProperty(propertyType.Alias),
ViewOnProfile = memberType.MemberCanViewProperty(propertyType.Alias)
});
}
return memberTypes;
}
private NodeDto BuildNodeDto(IMemberType entity)
{
var nodeDto = new NodeDto
{
CreateDate = entity.CreateDate,
NodeId = entity.Id,
Level = short.Parse(entity.Level.ToString(CultureInfo.InvariantCulture)),
NodeObjectType = _nodeObjectType,
ParentId = entity.ParentId,
Path = entity.Path,
SortOrder = entity.SortOrder,
Text = entity.Name,
Trashed = false,
UniqueId = entity.Key,
UserId = entity.CreatorId
};
return nodeDto;
}
private int DeterminePropertyTypeId(int initialId, string alias, IEnumerable<PropertyType> propertyTypes)
{
if (initialId == 0 || initialId == default(int))
{
var propertyType = propertyTypes.SingleOrDefault(x => x.Alias.Equals(alias));
if (propertyType == null)
return default(int);
return propertyType.Id;
}
return initialId;
}
}
}
@@ -51,31 +51,28 @@ namespace Umbraco.Core.Persistence.Factories
memberType.MemberTypePropertyTypes.Add(standardPropertyType.Key,
new MemberTypePropertyProfileAccess(false, false));
}
memberType.PropertyTypes = propertyTypes;
memberType.NoGroupPropertyTypes = propertyTypes;
return memberType;
}
private PropertyGroupCollection GetPropertyTypeGroupCollection(MemberTypeReadOnlyDto dto, MemberType memberType, Dictionary<string, PropertyType> standardProps)
{
var propertyGroups = new PropertyGroupCollection();
// see PropertyGroupFactory, repeating code here...
var propertyGroups = new PropertyGroupCollection();
foreach (var groupDto in dto.PropertyTypeGroups.Where(x => x.Id.HasValue))
{
var group = new PropertyGroup();
//Only assign an Id if the PropertyGroup belongs to this ContentType
// if the group is defined on the current member type,
// assign its identifier, else it will be zero
if (groupDto.ContentTypeNodeId == memberType.Id)
{
// note: no idea why Id is nullable here, but better check
if (groupDto.Id.HasValue == false)
throw new Exception("oops: groupDto.Id has no value.");
group.Id = groupDto.Id.Value;
if (groupDto.ParentGroupId.HasValue)
group.ParentId = groupDto.ParentGroupId.Value;
}
else
{
//If the PropertyGroup is inherited, we add a reference to the group as a Parent.
group.ParentId = groupDto.Id;
}
group.Name = groupDto.Text;
@@ -63,7 +63,9 @@ namespace Umbraco.Core.Persistence.Factories
//Check if property has an Id and set it, so that it can be updated if it already exists
if (property.HasIdentity)
{
dto.Id = property.Id;
}
if (property.DataTypeDatabaseType == DataTypeDatabaseType.Integer)
{
@@ -82,11 +84,21 @@ namespace Umbraco.Core.Persistence.Factories
}
}
}
else if (property.DataTypeDatabaseType == DataTypeDatabaseType.Decimal && property.Value != null)
{
decimal val;
if (decimal.TryParse(property.Value.ToString(), out val))
{
dto.Decimal = val;
}
}
else if (property.DataTypeDatabaseType == DataTypeDatabaseType.Date && property.Value != null && string.IsNullOrWhiteSpace(property.Value.ToString()) == false)
{
DateTime date;
if(DateTime.TryParse(property.Value.ToString(), out date))
if (DateTime.TryParse(property.Value.ToString(), out date))
{
dto.Date = date;
}
}
else if (property.DataTypeDatabaseType == DataTypeDatabaseType.Ntext && property.Value != null)
{
@@ -8,21 +8,21 @@ namespace Umbraco.Core.Persistence.Factories
{
internal class PropertyGroupFactory
{
private readonly int _id;
private readonly int _contentTypeId;
private readonly DateTime _createDate;
private readonly DateTime _updateDate;
//a callback to create a property type which can be injected via a contructor
private readonly Func<string, DataTypeDatabaseType, string, PropertyType> _propertyTypeCtor;
public PropertyGroupFactory(int id)
public PropertyGroupFactory(int contentTypeId)
{
_id = id;
_contentTypeId = contentTypeId;
_propertyTypeCtor = (propertyEditorAlias, dbType, alias) => new PropertyType(propertyEditorAlias, dbType);
}
public PropertyGroupFactory(int id, DateTime createDate, DateTime updateDate, Func<string, DataTypeDatabaseType, string, PropertyType> propertyTypeCtor)
public PropertyGroupFactory(int contentTypeId, DateTime createDate, DateTime updateDate, Func<string, DataTypeDatabaseType, string, PropertyType> propertyTypeCtor)
{
_id = id;
_contentTypeId = contentTypeId;
_createDate = createDate;
_updateDate = updateDate;
_propertyTypeCtor = propertyTypeCtor;
@@ -30,29 +30,24 @@ namespace Umbraco.Core.Persistence.Factories
#region Implementation of IEntityFactory<IEnumerable<PropertyGroup>,IEnumerable<TabDto>>
public IEnumerable<PropertyGroup> BuildEntity(IEnumerable<PropertyTypeGroupDto> dto)
public IEnumerable<PropertyGroup> BuildEntity(IEnumerable<PropertyTypeGroupDto> groupDtos)
{
// groupDtos contains all the groups, those that are defined on the current
// content type, and those that are inherited from composition content types
var propertyGroups = new PropertyGroupCollection();
foreach (var groupDto in dto)
foreach (var groupDto in groupDtos)
{
var group = new PropertyGroup();
//Only assign an Id if the PropertyGroup belongs to this ContentType
if (groupDto.ContentTypeNodeId == _id)
{
group.Id = groupDto.Id;
if (groupDto.ParentGroupId.HasValue)
group.ParentId = groupDto.ParentGroupId.Value;
}
else
{
//If the PropertyGroup is inherited, we add a reference to the group as a Parent.
group.ParentId = groupDto.Id;
}
// if the group is defined on the current content type,
// assign its identifier, else it will be zero
if (groupDto.ContentTypeNodeId == _contentTypeId)
group.Id = groupDto.Id;
group.Name = groupDto.Text;
group.SortOrder = groupDto.SortOrder;
group.PropertyTypes = new PropertyTypeCollection();
group.Key = groupDto.UniqueId;
//Because we are likely to have a group with no PropertyTypes we need to ensure that these are excluded
var typeDtos = groupDto.PropertyTypeDtos.Where(x => x.Id > 0);
@@ -101,14 +96,12 @@ namespace Umbraco.Core.Persistence.Factories
{
var dto = new PropertyTypeGroupDto
{
ContentTypeNodeId = _id,
ContentTypeNodeId = _contentTypeId,
SortOrder = propertyGroup.SortOrder,
Text = propertyGroup.Name
Text = propertyGroup.Name,
UniqueId = propertyGroup.Key
};
if (propertyGroup.ParentId.HasValue)
dto.ParentGroupId = propertyGroup.ParentId.Value;
if (propertyGroup.HasIdentity)
dto.Id = propertyGroup.Id;
@@ -122,14 +115,14 @@ namespace Umbraco.Core.Persistence.Factories
var propertyTypeDto = new PropertyTypeDto
{
Alias = propertyType.Alias,
ContentTypeId = _id,
ContentTypeId = _contentTypeId,
DataTypeId = propertyType.DataTypeDefinitionId,
Description = propertyType.Description,
Mandatory = propertyType.Mandatory,
Name = propertyType.Name,
SortOrder = propertyType.SortOrder,
ValidationRegExp = propertyType.ValidationRegExp,
UniqueId = propertyType.Key == Guid.Empty ? Guid.NewGuid() : propertyType.Key
UniqueId = propertyType.Key
};
if (tabId != default(int))
@@ -32,7 +32,7 @@ namespace Umbraco.Core.Persistence.Mappers
internal override void BuildMap()
{
CacheMap<PropertyGroup, PropertyTypeGroupDto>(src => src.Id, dto => dto.Id);
CacheMap<PropertyGroup, PropertyTypeGroupDto>(src => src.ParentId, dto => dto.ParentGroupId);
CacheMap<PropertyGroup, PropertyTypeGroupDto>(src => src.Key, dto => dto.UniqueId);
CacheMap<PropertyGroup, PropertyTypeGroupDto>(src => src.SortOrder, dto => dto.SortOrder);
CacheMap<PropertyGroup, PropertyTypeGroupDto>(src => src.Name, dto => dto.Text);
}
@@ -39,6 +39,7 @@ namespace Umbraco.Core.Persistence.Mappers
{
CacheMap<Template, TemplateDto>(src => src.Id, dto => dto.NodeId);
CacheMap<Template, NodeDto>(src => src.MasterTemplateId, dto => dto.ParentId);
CacheMap<Template, NodeDto>(src => src.Key, dto => dto.UniqueId);
CacheMap<Template, TemplateDto>(src => src.Alias, dto => dto.Alias);
CacheMap<Template, TemplateDto>(src => src.Content, dto => dto.Design);
}

Some files were not shown because too many files have changed in this diff Show More