Compare commits

...

3404 Commits

Author SHA1 Message Date
Stephan b3867d9d55 Post-merge fixes 2019-06-27 12:47:40 +02:00
Stephan 834aeee107 Fix slimmed down ModelsBuilder 2019-06-27 12:47:40 +02:00
Stephan f3643747b3 Publicize IEditorValidator 2019-06-27 12:47:20 +02:00
Stephan ee83c02424 Import slimmed down ModelsBuilder 2019-06-27 12:47:19 +02:00
Stephan 355a5e0eb4 Remove ModelsBuilder NuGet dependency, add project 2019-06-27 12:47:19 +02:00
Stephan 44e567aa34 Prepare MB future
- implement manifest filters to tweak manifests after they have been parsed
- make IEditorValidator public
- stop relying on InternalsVisibleTo Umbraco.ModelsBuilder
2019-06-27 12:42:40 +02:00
Michaël Vanbrabandt 8c5f253b41 V8: Add validation to the Version and UmbracoVersion properties (#5559) 2019-06-27 11:45:48 +02:00
Bjarke Berg 7b99e55148 Merge remote-tracking branch 'origin/v8/dev' into v8/dev 2019-06-27 10:25:12 +02:00
Bjarke Berg ba27eff5cf Added missing using in macro template 2019-06-27 10:24:53 +02:00
Shannon 01d5a12039 when syncing the picker to a path, activate the node 2019-06-27 18:00:45 +10:00
Claus 6d4d26009f Merge pull request #5730 from umbraco/v8/bugfix/umbracomapper-null-property
UmbracoMapper shouldn't throw an exception when trying to map a source prop being null
2019-06-27 08:35:57 +02:00
Bjarke Berg 857a8b163d build fix 2019-06-27 08:03:08 +02:00
Bjarke Berg acbe82f4c8 Merge pull request #5688 from umbraco/v8/bugfix/expand-tree-fix
Feature in v7 based on #2682 that wasn't merged upwards to v8
2019-06-27 07:53:15 +02:00
Shannon Deminick 3bfd9b71e2 Merge pull request #5312 from umbraco/v8/feature/5170-IPublishedContent
Refactor IPublishedContent
2019-06-27 14:49:42 +10:00
Shannon ef714ac258 Merge remote-tracking branch 'origin/v8/dev' into v8/feature/5170-IPublishedContent
# Conflicts:
#	src/Umbraco.Web/UmbracoHelper.cs
2019-06-27 14:44:33 +10:00
Claus 975816ddd7 UmbracoMapper shouldn't throw an exception when trying to map a source property being null. 2019-06-26 23:10:46 +02:00
Warren Buckley 8831860174 Merge pull request #5728 from umbraco/v8/feature/AB-1085
V8: https://umbraco.visualstudio.com/D-Team%20Tracker/_workitems/edit/108…
2019-06-26 14:18:03 +01:00
Bjarke Berg fbf3015de4 Merge remote-tracking branch 'origin/v8/dev' into v8/bugfix/expand-tree-fix
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/tree/umbtree.directive.js
2019-06-26 14:38:19 +02:00
Bjarke Berg be587b2064 https://umbraco.visualstudio.com/D-Team%20Tracker/_workitems/edit/1085 - Creates a custom IAntiForgeryAdditionalDataProvider that provides and validates custom token data in the request which allows having a custom AF token per form created with BeginUmbracoForm 2019-06-26 14:15:26 +02:00
Stephan 347c2e8238 Upgrade to ModelsBuilder 8.1.0 2019-06-26 12:30:13 +02:00
Warren Buckley f5fde0f19e Merge pull request #5719 from umbraco/v8/bug/5700
Fixes Macro Rendered in Richtext Editor when not configured to do so
2019-06-26 10:07:44 +01:00
Kenn Jacobsen c12bdaacbf Show the list view paging component even when there are less than 10 pages :) 2019-06-26 08:10:39 +02:00
Rasmus Olsen 1c4b262c57 Fix/5489 actions button left margin (#5718) 2019-06-25 18:38:46 +02:00
Kim Rauff Schurmann 90d591e5a8 Fixed validation of fileextension. 2019-06-25 18:21:58 +02:00
Dennis Meinert Pedersen ad121bd758 Highlight when tabbing to umb-toggle 2019-06-25 16:20:16 +02:00
tiffy74 8d67e39e9a secondary menu tab first commit (#5701) 2019-06-25 15:58:56 +02:00
Kenn Jacobsen bd8e344736 Support keyboard input in date/time picker 2019-06-25 15:31:56 +02:00
Claus 014eba971e adding a test for enum mapping between equal enums of different types. 2019-06-25 15:29:32 +02:00
Sebastiaan Janssen a5fb2d2025 Replace visually-hidden in favor of sr-only as discussed in #5664 2019-06-25 14:53:58 +02:00
Rachel Breeze 40311f8590 V8: Accessibility improvements for textbox validation (#5664) 2019-06-25 14:50:40 +02:00
Jannik Anker a0c51fb212 Update da.xml
Misc Danish language "fixes", including some in the new language variants stuff
2019-06-25 14:22:53 +02:00
Stephan b306e41560 NuCache - failover to database when local db fails to load 2019-06-25 13:26:50 +02:00
Stephan e8d6daf59a NuCache - be more tolerant when cache is weird 2019-06-25 12:54:16 +02:00
Sebastiaan Janssen a0966be565 Fixes Macro Rendered in Richtext Editor when not configured to do so. #5700 2019-06-25 12:36:03 +02:00
Warren Buckley ba064ba4f5 Merge pull request #5717 from umbraco/v8/bug/5708
V8/bug/5708
2019-06-25 11:34:46 +01:00
Sebastiaan Janssen 1da2c00f0a Fix logic & make code easier to follow 2019-06-25 11:41:33 +02:00
Sebastiaan Janssen 71d076aba2 Dashboards not obeying c# access rules #5708
The invisible negator strikes again.
2019-06-25 11:34:26 +02:00
Claus c7ec1deee6 Merge pull request #5703 from kjac/v8-fix-property-settings-focus
V8: Set focus on "Mandatory" after picking a property type
2019-06-25 10:54:38 +02:00
Shannon Deminick d7d58644e5 Merge pull request #5684 from umbraco/v8/bugfix/AB-1447-Fix-for-update-checker
V8: Fix for update checker error
2019-06-25 15:13:04 +10:00
Claus 56669b5c84 Merge pull request #5709 from umbraco/v8/bugfix/fix-js-tests-currentuser-auth
Fixes JS Unit Test from commit 9fffdb4
2019-06-24 14:59:50 +02:00
Warren Buckley 41b8294ce3 Fixes build as commit 9fffdb4 added a check/call to GetCurrentUser and JS test was failing for unexpected HTTP call to GetCurrentUser 2019-06-24 10:39:47 +01:00
Kenn Jacobsen aed6ef28e6 Fix overflow for specific node permissions 2019-06-23 13:19:18 +02:00
Kenn Jacobsen 339ae32c3d Fix the overflow wrapping for repeatable textstrings 2019-06-23 13:15:14 +02:00
Kenn Jacobsen 7d990a2cbb Enforce max width on numeric inputs 2019-06-23 13:14:33 +02:00
Dennis Adolfi b98812b119 V8/dev missing translations (#5639) 2019-06-23 13:13:42 +02:00
Steve Temple fafd045ed2 V8 Duplicate comments in MediaService (#5636)
* Remove duplicate comments in MediaService

* Remove temp files
2019-06-23 13:12:46 +02:00
Kenn Jacobsen acf63fc74d Fix the back button for media list views 2019-06-23 13:10:52 +02:00
Kenn Jacobsen 85565f2c5f V8: Fix the Nested Content title overflow (#5594) 2019-06-23 13:09:12 +02:00
Chriztian Steinmeier ac6625a80c Handle loginModel.RedirectUrl in Login partial (#5587) 2019-06-23 13:07:43 +02:00
Kenn Jacobsen 6d7b439aec Support negative values for integer and decimal property editors 2019-06-23 13:04:44 +02:00
Andy Butland 9fffdb407a Provided alternative messages for users that do and do not have access to document/media types for when trying to create content or media and no types can be created.
Where they do, provided a link to go to the page where child nodes can be edited.
2019-06-23 13:02:15 +02:00
Kenn Jacobsen 9170061810 V8: Add option to keep the mini profiler active at all times in debug mode (#5560) 2019-06-23 12:40:23 +02:00
Kenn Jacobsen a7da3d741f V8: Add keyboard support for navigating search results (#5500) 2019-06-23 12:30:17 +02:00
Kenn Jacobsen 255bd10296 V8: Use a picker to select allowed types for MNTP (#5506) 2019-06-23 12:25:15 +02:00
Mike 4fca0bb735 V8: Accessibility improvements for top header (#5544) 2019-06-23 12:10:16 +02:00
Kenn Jacobsen f7aaad86c5 Set focus on "Mandatory" after picking a property type when creating a new property 2019-06-21 15:56:36 +02:00
Bjarke Berg 4c443b9e2e Merge pull request #5672 from umbraco/v8/feature/0000-avoid-too-long-locking-when-delete-content
Small fixes for backoffice under load.
2019-06-21 11:58:37 +02:00
Shannon b0121c44b1 Merge branch 'v8/dev' into v8/feature/5170-IPublishedContent 2019-06-21 16:09:43 +10:00
Shannon be9d8e7da7 null checks on UrlHelperRenderExtensions when requesting image crop urls, if there's a null we'll just return an empty string 2019-06-21 16:08:54 +10:00
Shannon d129989c3d Removes irrelevant GetAbsoluteMediaUrl method now that there is both a media url provider and urls have been refactored in this PR, this was overlooked with the media url provider PR 2019-06-21 16:07:07 +10:00
Shannon 2870ce5e0a a perf change that in ContentCacheRefresher it doesn't iterate payloads if there is no real Id 2019-06-21 15:48:10 +10:00
Shannon da1e2680cb Fixes ContentStore when it's building the cache from sources, adds TODO notes, questions, concerns, etc.... 2019-06-21 15:47:47 +10:00
Shannon cd2ce2486a Fixes debugger display attribute 2019-06-21 15:46:16 +10:00
Shannon 5d4f2ec697 Fixes issue with ImageCropperTemplateExtensions since it wasn't re-mapped to the new method definition 2019-06-21 15:45:12 +10:00
Shannon c2cb85f1cd Merge branch 'v8/dev' into v8/feature/5170-IPublishedContent
# Conflicts:
#	src/Umbraco.Web.UI.Client/package-lock.json
2019-06-21 15:06:43 +10:00
Niels Lyngsø 37d3692cd0 Merge pull request #5694 from kjac/v8-fix-editor-state-comma-dangle
V8: Fix "comma-dangle" gulp build error (editorstate.service.js)
2019-06-20 12:56:31 +02:00
Shannon f4b2ff93fc Fixes how Umbraco Context is injected into DI so that LightInject doesn't try to control it's lifetime. 2019-06-20 19:10:32 +10:00
Shannon 5ea6ebcc66 Revert "Fixes up UmbracoContextFactory to ensure it's not returning a disposed Umbraco context"
This reverts commit fcfb107653.
2019-06-20 17:58:40 +10:00
Shannon f6ac64f705 makes TreeChangeExtensions public 2019-06-20 15:53:25 +10:00
Shannon fcfb107653 Fixes up UmbracoContextFactory to ensure it's not returning a disposed Umbraco context 2019-06-20 15:40:57 +10:00
Kenn Jacobsen f829bb8023 Fix "comma-dangle" gulp build error 2019-06-19 18:40:42 +02:00
Niels Lyngsø 23702ee4dc Fixes notifications issue for new variant saving, allows "soft redirect" for creating (#5646)
Fixes notifications issue for new variant saving, allows "soft redirect" for creating
2019-06-19 12:34:33 +02:00
Shannon 5c2b0647f3 Gets the feature in v7 based on #2682 that wasn't merged upwards to v8 and found some issues along the way like not filtering the mini list view properly along with not returning the content type alias in the entity controller 2019-06-19 16:42:04 +10:00
Shannon c7a725ad94 Merge remote-tracking branch 'origin/v7/dev' into v8/dev
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/tree/umbtree.directive.js
#	src/Umbraco.Web.UI.Client/src/common/services/tree.service.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.controller.js
2019-06-19 13:38:35 +10:00
Shannon 5c6a9480a6 remove unneeded method 2019-06-19 13:32:26 +10:00
Shannon c1be8e3f00 Merge branch 'v7/dev' of https://github.com/umbraco/Umbraco-CMS into v7/dev
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.controller.js
2019-06-19 13:31:43 +10:00
Shannon d8dbda8e94 Merge branch 'kjac-v7-fix-treepicker-allowed-nodes' into v7/dev 2019-06-19 13:30:33 +10:00
Shannon a0ab7ace07 Makes the treeNodeExpanded event raised during tree syncing 2019-06-19 13:29:54 +10:00
Shannon 7c27189e2e Merge branch 'v7-fix-treepicker-allowed-nodes' of https://github.com/kjac/Umbraco-CMS into kjac-v7-fix-treepicker-allowed-nodes 2019-06-19 13:01:50 +10:00
Shannon 76cbfdb787 ignores a failing test, will need a separate task for that. 2019-06-19 12:31:36 +10:00
Sebastiaan Janssen 56545ad7f1 Revert "Merge branch 'v7/dev' into v8/dev"
This reverts commit 7db0440b5c.

# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/linkpicker/linkpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/mediapicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.prevalues.html
#	src/Umbraco.Web/WebApi/Filters/EnsureUserPermissionForContentAttribute.cs
2019-06-18 19:18:48 +02:00
Bjarke Berg 832dc7f4a5 Changed superadmin back to admin again 2019-06-18 18:44:22 +02:00
Warren Buckley 62dc68e7b2 Merge pull request #5401 from umbraco/v8/feature/logviewer-change-time-period
Added support for changing the dates of the log files
2019-06-18 15:09:16 +01:00
Bjarke Berg 348c79d841 Init preflight check 2019-06-18 15:19:27 +02:00
Sebastiaan Janssen 994c6eed50 Revert "U4 10147 - Bypass User Security option in pickers (#2441)"
This reverts commit cc9a7ff942.

# Conflicts:
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/Editors/EntityController.cs
#	src/Umbraco.Web/Search/UmbracoTreeSearcher.cs
2019-06-18 13:07:40 +02:00
Bjarke Berg 9614740410 Added timeout for 2 seconds. Dont make sense to wait longer for this 2019-06-18 11:44:56 +02:00
Stephan 62e6168e03 Revert ContentStore changes - have to find the bug now 2019-06-18 11:36:53 +02:00
Warren Buckley b6d762c279 Merge pull request #5683 from umbraco/v8/bugfix/5600-rte-full-screen
Fixes #5600 Adds fullscreen plugin/command to the RTE and allows it to sit in front of the tree when used
2019-06-18 10:12:03 +01:00
Bjarke Berg ab93c4ff2d clean up 2019-06-18 11:02:43 +02:00
Bjarke Berg 473c39f7c4 Still being able to change date period if the period has too much data 2019-06-18 10:53:00 +02:00
Bjarke Berg 811aea7898 Added missing files 2019-06-18 10:27:56 +02:00
Bjarke Berg 07358eb46d Merge remote-tracking branch 'origin/v8/dev' into v8/feature/logviewer-change-time-period
# Conflicts:
#	src/Umbraco.Core/Logging/Viewer/JsonLogViewer.cs
#	src/Umbraco.Web.UI.Client/package-lock.json
2019-06-18 10:20:48 +02:00
Stephan 067af64dff Cleanup ChildrenForAllCultures 2019-06-18 09:46:29 +02:00
Bjarke Berg cb428bb288 https://umbraco.visualstudio.com/D-Team%20Tracker/_workitems/edit/1447: Catch the SoapException which happends when a timeout occurs on the server. Also change such that this check is only executed for super admins. 2019-06-18 08:11:18 +02:00
Shannon b69c981100 Fixes #5600 Adds fullscreen plugin/command to the RTE and allows it to sit in front of the tree when used 2019-06-18 16:02:36 +10:00
Shannon 1709879b14 Merge remote-tracking branch 'origin/v7/dev' into v8/dev
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js
#	src/Umbraco.Web.UI.Client/src/views/member/member.edit.controller.js
#	src/Umbraco.Web.UI.Client/src/views/users/views/user/details.html
2019-06-18 14:15:50 +10:00
Shannon cff5046a9e Merge branch 'kjac-v7-fix-linkpicker-anchor-link-without-url' into v7/dev 2019-06-18 14:09:11 +10:00
Shannon 9f6da2ca4b Merge branch 'v7-fix-linkpicker-anchor-link-without-url' of https://github.com/kjac/Umbraco-CMS into kjac-v7-fix-linkpicker-anchor-link-without-url 2019-06-18 14:08:45 +10:00
Shannon Deminick 0c8b0edcda Merge pull request #5472 from umbraco/v8/feature/5123-rte-data-udi-images
RTE data-udi and image paths
2019-06-18 13:40:20 +10:00
Shannon 68f9e89a32 Merge branch 'v8/dev' into v8/feature/5123-rte-data-udi-images 2019-06-18 13:05:37 +10:00
Shannon fecadeec51 Fixes issue with nucache and rebuilding and fixes ChildrenForAllCultures to deal with unpublished children 2019-06-18 11:57:36 +10:00
Warren Buckley d3b675a213 Merge pull request #5640 from umbraco/v8/feature/0000-dont-mark-default-language
Remove bold from default variant.
2019-06-17 13:39:28 +01:00
Warren Buckley 316ab6becb Merge pull request #5536 from umbraco/v8/bugfix/5345-dragging-rte-in-grid
5345 dragging rte in grid
2019-06-17 13:15:39 +01:00
Bjarke Berg 9a45bda430 Merge pull request #5658 from umbraco/v8/bugfix/3498-EntityService-updates
V8/bugfix/3498 entity service updates
2019-06-17 13:37:58 +02:00
Stephan 7c11943836 Merge remote-tracking branch 'origin/v8/feature/5170-IPublishedContent' into v8/feature/5170-IPublishedContent 2019-06-17 13:24:28 +02:00
Stephan 94d2a5cbad Bugfix published cache and children 2019-06-17 13:03:01 +02:00
Bjarke Berg 99cabe564d Merge pull request #5673 from umbraco/v7/bugfix/5665-non-admin-edit-user-group
V7: Resolved issue where adding non-admin user group editor to group already exists
2019-06-17 09:13:42 +02:00
Shannon b0488d2d94 fixes showing the correct create date on content creation 2019-06-17 16:50:56 +10:00
Bjarke Berg 600c8ebbbf Merge pull request #5670 from AndyButland/defect/5665-non-admin-edit-user-group
V8: Resolved issue where adding non-admin user group editor to group already exists
2019-06-17 08:48:38 +02:00
Shannon 3bf43d7ce3 adds a unit test showing that the SimilarNodeName is broken. 2019-06-17 16:48:35 +10:00
Andy Butland 15b1d35c17 https://github.com/umbraco/Umbraco-CMS/issues/5665: Resolved issue where adding non-admin user group editor to group already exists 2019-06-17 08:43:24 +02:00
Shannon 872db5877f fixes the color of the variant state after publishing and switching to the info tab 2019-06-17 16:33:20 +10:00
Shannon 977c1d9585 fixes JS error when navigating to the content info tab 2019-06-17 16:23:38 +10:00
Bjarke Berg 46f4984add https://umbraco.visualstudio.com/D-Team%20Tracker/_workitems/edit/1357: Fixed issue where too fast change between sections, leads to a wrong tree (The first requested) shown in the menu. 2019-06-17 07:20:11 +02:00
Bjarke Berg e39e132feb Cleaned up, such that we are not in doubt about whether the page variable should have been increased. 2019-06-17 07:19:38 +02:00
Andy Butland 17b479275e Resolved issue where adding non-admin user group editor to group already exists 2019-06-16 12:20:52 +02:00
Shannon 9927ff3c86 removes commented out code 2019-06-13 23:47:48 +10:00
Shannon 81077c2681 Gets the entity service returning a media's url property and allows this to be used in the media picker. 2019-06-13 23:39:36 +10:00
Niels Lyngsø f4593778cb updated package lock 2019-06-13 12:31:29 +02:00
Shannon 16f6bbcbd4 init commit of removing code for entity service that loads in any property data 2019-06-13 18:45:33 +10:00
Warren Buckley c597da8f97 Merge pull request #5423 from umbraco/v7/bugfix/4144-member-password-manual-change-fix
Fixes #4144 - AllowManuallyChangingPassword Regression Fix
2019-06-13 08:53:17 +01:00
Shannon 5775a8b614 fixes if explicitly resetting password 2019-06-13 16:50:15 +10:00
Bjarke Berg cc4a7653e5 Bugfix: Still load trees even when a tree is about to be loaded. But only use the result, if we are still on the correct section. This eliminates the issue where a wrong tree is shown in a section. 2019-06-12 14:31:01 +02:00
Bjarke Berg 5b546cc425 Bugfix: Don't increase the page number in the loop, because the items are moved to another subtree, and therefore is not any longer part of the descendants call. Now we avoid the leak of items when moving to recycle bin. 2019-06-12 10:39:34 +02:00
Sebastiaan Janssen 7f5f304d2d Merge pull request #5642 from umbraco/v8/feature/0000-Gulp-root-folder-as-real-root
Gulp root variable change
2019-06-12 10:25:13 +02:00
Niels Lyngsø 0827ced915 removed App_Plugins 2019-06-12 09:43:59 +02:00
Stephan 9c252131f7 Better exception message in NuCache 2019-06-12 08:55:03 +02:00
Shannon dec042fce4 adds Id to panic exception 2019-06-12 16:28:33 +10:00
Shannon 8eafadc29b adds some more info to panic exceptions 2019-06-12 14:00:28 +10:00
Shannon c5347a97ce Fixes setting the reset flag when allowManuallyChangingPassword is disabled 2019-06-12 12:51:26 +10:00
Shannon 8a19cd4bbc Fixes content blueprint creation 2019-06-12 12:22:14 +10:00
Shannon 2797011fb0 Ensures there's no duplicate notifications and ensures that soft redirects occur for content blueprints too 2019-06-12 11:34:36 +10:00
Shannon 1307ee7ced some cleanup 2019-06-12 10:36:52 +10:00
Shannon e0059f1fad adds notes 2019-06-12 10:35:21 +10:00
Shannon fd5b5b67bf Fixes notifications for invariant content publishing 2019-06-12 10:11:27 +10:00
Shannon 7ba4c2f353 revert overlay.service 2019-06-12 01:04:52 +10:00
Shannon 0381c55ce7 reverts some parts of the content editor 2019-06-12 01:01:09 +10:00
Shannon 88d9e3321c Don't do a redirect on create for content, instead we do a 'soft redirect' which means the URL is updated but the route isn't changed which simplifies re-wiring everything up (will eventually do for all editors) 2019-06-12 00:39:12 +10:00
Niels Lyngsø 05f479a58f changed root folder to only contain the URI for root, not including /Umbraco/ 2019-06-11 14:14:44 +02:00
Shannon d8180604e8 fixes SimilarNodeName 2019-06-11 22:10:53 +10:00
Shannon e6a8ba84aa starts re-binding the variant dialogs on create for the content editor (WIP - will probably revert and try a different approach) 2019-06-11 21:47:45 +10:00
Sebastiaan Janssen 39d93a7ace Spelling mistake IContentFinder function (#5616)
Spelling mistake IContentFinder function
2019-06-11 13:00:27 +02:00
Niels Lyngsø 5ddf21f09f remove bold from lists of language variants 2019-06-11 10:03:04 +02:00
Niels Lyngsø 7b3ab72105 remove bold from default variant. 2019-06-11 09:48:45 +02:00
Shannon 1f64ae4682 Fixes language/variant mapping so it's consistent and by lang name not iso 2019-06-11 17:17:19 +10:00
Shannon 120f4c3096 removes scope.busy callls (legacy old stuff), add ability to preserve editor state between routes, for content we now preserve editor state when redirecting to new content and then rebind some values from that editor state when the editor loads, updates editorstate.service and filemanager.service to manage themselves on route change (decoupling), fixes variant mapper to ensure that the variants are always returned in a deterministic order. 2019-06-11 16:31:32 +10:00
Patrick de Mooij e59d75f4f9 Spelling mistake IContentFinder function 2019-06-07 16:42:53 +02:00
Sebastiaan Janssen e3b2d427a4 Merge branch 'v7/dev' into v8/dev
# Conflicts:
#	build/Modules/Umbraco.Build/Get-UmbracoBuildEnv.ps1
#	build/Modules/Umbraco.Build/Umbraco.Build.psm1
#	build/NuSpecs/UmbracoCms.Core.nuspec
#	build/NuSpecs/UmbracoCms.nuspec
#	src/SQLCE4Umbraco/SqlCE4Umbraco.csproj
#	src/SQLCE4Umbraco/app.config
#	src/SolutionInfo.cs
#	src/Umbraco.Core/Configuration/UmbracoVersion.cs
#	src/Umbraco.Core/app.config
#	src/Umbraco.Core/packages.config
#	src/Umbraco.Tests.Benchmarks/app.config
#	src/Umbraco.Tests.Benchmarks/packages.config
#	src/Umbraco.Tests/App.config
#	src/Umbraco.Tests/Migrations/SqlScripts/SqlResources.Designer.cs
#	src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs
#	src/Umbraco.Tests/TreesAndSections/ResourceFiles.Designer.cs
#	src/Umbraco.Tests/packages.config
#	src/Umbraco.Web.UI.Client/bower.json
#	src/Umbraco.Web.UI.Client/package-lock.json
#	src/Umbraco.Web.UI/Properties/Settings.Designer.cs
#	src/Umbraco.Web.UI/config/imageprocessor/cache.config
#	src/Umbraco.Web.UI/config/imageprocessor/processing.config
#	src/Umbraco.Web.UI/packages.config
#	src/Umbraco.Web.UI/web.Template.Debug.config
#	src/Umbraco.Web.UI/web.Template.config
#	src/Umbraco.Web/Editors/ContentTypeControllerBase.cs
#	src/Umbraco.Web/Editors/EntityController.cs
#	src/Umbraco.Web/Editors/MediaController.cs
#	src/Umbraco.Web/Mvc/Strings.Designer.cs
#	src/Umbraco.Web/Properties/Settings1.Designer.cs
#	src/Umbraco.Web/Search/UmbracoTreeSearcher.cs
#	src/Umbraco.Web/UI/JavaScript/Resources.Designer.cs
#	src/Umbraco.Web/Web References/org.umbraco.our/Reference.cs
#	src/Umbraco.Web/Web References/org.umbraco.update/Reference.cs
#	src/Umbraco.Web/app.config
#	src/Umbraco.Web/packages.config
#	src/Umbraco.Web/umbraco.presentation/umbraco/templateControls/Resources.Designer.cs
#	src/UmbracoExamine/UmbracoExamine.csproj
#	src/UmbracoExamine/app.config
#	src/UmbracoExamine/packages.config
#	src/umbraco.MacroEngines/Resources/Strings.Designer.cs
#	src/umbraco.MacroEngines/app.config
#	src/umbraco.MacroEngines/packages.config
#	src/umbraco.MacroEngines/umbraco.MacroEngines.csproj
#	src/umbraco.businesslogic/app.config
#	src/umbraco.businesslogic/packages.config
#	src/umbraco.businesslogic/umbraco.businesslogic.csproj
#	src/umbraco.cms/app.config
#	src/umbraco.cms/businesslogic/Packager/FileResources/PackageFiles.Designer.cs
#	src/umbraco.cms/packages.config
#	src/umbraco.cms/umbraco.cms.csproj
#	src/umbraco.controls/TreePicker/BaseTreePickerScripts.Designer.cs
#	src/umbraco.controls/app.config
#	src/umbraco.controls/umbraco.controls.csproj
#	src/umbraco.datalayer/app.config
#	src/umbraco.datalayer/umbraco.datalayer.csproj
#	src/umbraco.editorControls/app.config
#	src/umbraco.editorControls/mediapicker/MediaChooserScripts.Designer.cs
#	src/umbraco.editorControls/umbraco.editorControls.csproj
#	src/umbraco.interfaces/umbraco.interfaces.csproj
#	src/umbraco.providers/app.config
#	src/umbraco.providers/umbraco.providers.csproj
2019-06-07 16:05:44 +02:00
Sebastiaan Janssen 22f54394fb Fix method signatures to prevent breaking changes (just like what I'd already done in v8) 2019-06-07 16:02:03 +02:00
Sebastiaan Janssen 57c368f70d Bumps version to 7.15.0 2019-06-07 14:32:02 +02:00
Stephan 14a056f4f4 Fix and cleanup 2019-06-07 11:15:58 +02:00
Kenn Jacobsen 580de6befe Linkpicker should support anchor links without base URL 2019-06-07 09:03:35 +02:00
Bjarke Berg 0120dc6ea3 https://github.com/umbraco/Umbraco-CMS/issues/5574 - Fixes issue when… (#5575) 2019-06-07 09:01:15 +02:00
Shannon 79cd312912 Fixes message when descendant publishing fails when there is a mix of variant types 2019-06-07 14:20:44 +10:00
Shannon 9b36bc4097 Fixes notifications when publishing fails and warnings are issues - these were not being displayed 2019-06-07 13:13:52 +10:00
Shannon 9f346e6ee2 fixes valServer directive so that JS errors dont' occur on the content tyep editor 2019-06-07 13:01:58 +10:00
Shannon 3ea9504620 Revert "Don't show multiple open menus"
This reverts commit 661246b5f5.
2019-06-07 13:01:13 +10:00
Shannon Deminick 86db972188 Merge pull request #5208 from umbraco/v8/bugfix/5190-invariant-property-validation
Fix for server side validation fails invariant-properties on non-default languages.
2019-06-07 12:16:57 +10:00
Shannon 6d12eea789 Adds unit tests for serverValidationManager and fixes it up to ensure that the correct culture callbacks are called. 2019-06-07 12:16:00 +10:00
Shannon 68174bc7df Merge branch 'v8/dev' into v8/bugfix/5190-invariant-property-validation 2019-06-07 11:21:36 +10:00
Shannon 5ca9600c98 adds comments 2019-06-07 11:01:30 +10:00
Shannon 87b3fb5539 Fixes BulkInsertRecordsSqlServer 2019-06-07 10:18:45 +10:00
Sébastien Sougnez 4be6a48fb2 Update tinymce version to 4.9.4 in v7 (#4703) 2019-06-06 17:42:12 +02:00
Sebastiaan Janssen 53731049de Updates .NET Framework to 4.5.2 and updates dependencies (#3064)
Updates .NET Framework to 4.5.2 and updates dependencies
2019-06-06 17:27:53 +02:00
Stephan 7fd6bfa163 Make IPublishedContent changes less breaking and more friendly 2019-06-06 16:54:00 +02:00
Sebastiaan Janssen 4b2ce522fe Update nuspecs 2019-06-06 15:55:38 +02:00
Sebastiaan Janssen d0eddbb9a2 Update SignalR 2019-06-06 15:38:37 +02:00
Sebastiaan Janssen 938abab9d6 Update assembly redirects 2019-06-06 15:29:32 +02:00
Sebastiaan Janssen 5faa71187d More Owin updates 2019-06-06 15:21:05 +02:00
Sebastiaan Janssen c069f262dc Update MVC, Razor, WebApi and Owin 2019-06-06 14:50:01 +02:00
Shannon Deminick ac79fe7a77 Merge pull request #5576 from umbraco/v8/bugfix/database-factory-fix
Fix UmbracoDatabaseFactory SqlServer detection
2019-06-06 22:46:37 +10:00
Sebastiaan Janssen 9f42e6a607 Update ImageProcessor and Newtonsoft.Json dependencies to the latest version 2019-06-06 14:37:57 +02:00
Shannon 3f8fe334b2 Merge branch 'v8/dev' of https://github.com/umbraco/Umbraco-CMS into v8/dev 2019-06-06 22:35:15 +10:00
Shannon 096004db13 fixes infinite loop issue 2019-06-06 22:34:57 +10:00
Sebastiaan Janssen 202f2d2e27 Fix build for VS2019 (not complete yet) 2019-06-06 13:53:42 +02:00
Sebastiaan Janssen aaab14be3e fix csproj file 2019-06-06 13:48:48 +02:00
Sebastiaan Janssen 1c87176d80 Merge branch 'v7/dev' into pr/3064
# Conflicts:
#	build/NuSpecs/UmbracoCms.Core.nuspec
#	src/Umbraco.Tests/packages.config
#	src/Umbraco.Web.UI/packages.config
#	src/Umbraco.Web/packages.config
#	src/umbraco.MacroEngines/packages.config
2019-06-06 12:50:48 +02:00
Stephan c17dbbe141 Fix merge 2019-06-06 12:16:55 +02:00
Stephan 1dde60a1d5 Merge branch v8/dev into v8/feature/5170-IPublishedContent 2019-06-06 12:12:49 +02:00
Shannon Deminick 04967143d8 Merge pull request #5598 from kjac/v8-fix-content-type-culture-variance
V8: Fix broken culture variance toggle on content type properties
2019-06-06 17:33:17 +10:00
Kenn Jacobsen 70fb48d94a Fix broken culture variance toggle on content type properties 2019-06-06 08:39:21 +02:00
Shannon 760d1d7daa Merge branch 'v8/dev' into v8/bugfix/database-factory-fix 2019-06-06 16:32:24 +10:00
Shannon Deminick 3135353a1a Merge pull request #5597 from kjac/v8-fix-rte-unconfigured-dimensions
V8: Fix JS error when the RTE has unconfigured dimensions
2019-06-06 16:16:07 +10:00
Kenn Jacobsen 1565ff1661 Fix JS error when the RTE has unconfigured dimensions 2019-06-06 08:04:06 +02:00
Sebastiaan Janssen bc55d96cde Merge pull request #5589 from MvdDonk/v8/dev
5588 - Correct location for Visual Studio xml documentation files
2019-06-05 16:17:44 +02:00
Maarten v.d. Donk 3d2379d582 Correct location for Visual Studio xml documentation files (5588) 2019-06-05 11:34:42 +02:00
Shannon Deminick 73e907291b Merge pull request #5568 from umbraco/v8/bugfix/5565-rte-sizing
5565 fix for configuration of TineMCE size
2019-06-05 16:07:55 +10:00
Shannon 49c76c744e Fixes width/height for when in distraction free mode 2019-06-05 16:06:55 +10:00
Shannon 8967061758 fixes semi colons 2019-06-05 15:21:00 +10:00
Niels Lyngsø eff8075102 Merge remote-tracking branch 'origin/v8/dev' into v8/bugfix/5190-invariant-property-validation
# Conflicts:
#	src/Umbraco.Web.UI.Client/package-lock.json
2019-06-04 14:49:23 +02:00
Stephan 849feb0683 Fix UmbracoDatabaseFactory SqlServer detection 2019-06-04 13:15:25 +02:00
Sebastiaan Janssen a182c9b1ee Updates to latest Examine (#4851)
Updates to latest Examine
2019-06-04 13:06:35 +02:00
Poornima Nayar 17675d389e Toggle color picker labels squeeze spectrum color picker (#5391) 2019-06-03 12:41:27 +02:00
Niels Lyngsø f30aefb614 parse dimensions to configuration of TinyMCE + remove autoresize if height is set. 2019-06-03 12:04:14 +02:00
Sebastiaan Janssen a1722f268c Merge pull request #5400 from poornimanayar/temp-5326
Search shadow-layer should be on top of the user-dialog
2019-06-03 12:00:41 +02:00
Poornima Nayar 864d83f8f7 Introduce a maxlength on the name of the node (#5374) 2019-06-03 11:41:58 +02:00
Bjarke Berg 2f978e96d4 Merge pull request #5467 from umbraco/v8/bugfix/805-migrate-from-7
Tested starterkit both using SqlCE and SqlServer and reviewed the code. Merging in..
2019-06-03 10:59:57 +02:00
Sebastiaan Janssen dccc6238e0 Merge pull request #5558 from FransdeJong/DeleteDictionaryChildren
Added a check for and delete descendants when deleting a dictionary item
2019-06-03 10:21:45 +02:00
Sebastiaan Janssen 0687125343 Merge pull request #5563 from kjac/v8-fix-multiple-open-menus
V8: Don't show multiple open menus
2019-06-03 10:16:02 +02:00
Sebastiaan Janssen de36edfd58 Merge pull request #5566 from bjarnef/dev-v8-rte-startnodes-description
v8: Remove HTML characters in RTE prevalue description
2019-06-03 10:14:35 +02:00
Bjarne Fyrstenborg 2842a56356 Remove html characters in description 2019-06-02 23:03:20 +02:00
Kenn Jacobsen 661246b5f5 Don't show multiple open menus 2019-06-01 21:11:59 +02:00
Frans de Jong 457474ecf9 Added a check for and delete descendants when deleting a dictionary item 2019-06-01 13:07:16 +02:00
Sebastiaan Janssen 5f67b3a9c1 Merge pull request #5458 from tiffy74/issue#5277_13
Issue#5277 13
2019-05-31 20:52:16 +02:00
Sebastiaan Janssen a3547a79e8 Merge pull request #5460 from kjac/v8-fix-rte-load-indicator
V8: Use umb-load-indicator when loading the RTE
2019-05-31 20:49:22 +02:00
Sebastiaan Janssen c6467b355d Merge pull request #5491 from kjac/v8-feature-mntp-single-mode-improvements
V8: MNTP improvements when configured to select only one item
2019-05-31 20:47:41 +02:00
Sebastiaan Janssen e2ef186dd1 Merge pull request #5519 from FransdeJong/Umb-Sections
Updated allowed width for Umb-Section directive
2019-05-31 20:41:39 +02:00
Sebastiaan Janssen 0ccc40bf52 Merge pull request #5522 from kjac/v8-feature-content-type-editor-without-live-editing
V8: Don't apply changes instantly when editing content type properties
2019-05-31 20:39:22 +02:00
Sebastiaan Janssen ebc21a1cc7 V8: Apply nicer log message wrapping (#5274)
V8: Apply nicer log message wrapping
2019-05-31 20:36:00 +02:00
Kenn Jacobsen 30067d92ae V8: Always show content and media search results first (#5309) 2019-05-31 20:29:00 +02:00
Kenn Jacobsen 342f924e8f V8: Fix the link picker anchor list (#5379) 2019-05-31 20:27:15 +02:00
Sebastiaan Janssen ba12efd285 Merge pull request #5358 from kjac/v8-feature-backoffice-localize
V8: Allow localizing content types and properties using language files
2019-05-31 20:15:22 +02:00
Sebastiaan Janssen ed3efe9bee V8: Default nested content item names to the item type name (#5369)
V8: Default nested content item names to the item type name
2019-05-31 20:11:56 +02:00
Sebastiaan Janssen 47a7c08686 Merge pull request #5407 from kjac/v8-fix-users-search-empty-state
V8: Add/fix empty state in users and groups search
2019-05-31 20:08:57 +02:00
Sebastiaan Janssen 5191dbf011 Case insensitive section comparison (#5540)
Case insensitive section comparison
2019-05-31 20:07:26 +02:00
Sebastiaan Janssen 8d9ae085aa Fix bug with multi url picker. (#5408)
Fix bug with multi url picker.
2019-05-31 19:59:30 +02:00
Sebastiaan Janssen 161d6505eb Merge pull request #5414 from electricsheep/v8/bugfix/5404-avatar-cursor
V8: Fix the avatar cursor
2019-05-31 19:42:12 +02:00
Sebastiaan Janssen c292f7ff03 Merge pull request #5424 from electricsheep/v8/bugfix/5292-remove-hsts-preload
V8: Remove preload from HSTS healthcheck
2019-05-31 19:31:19 +02:00
Sebastiaan Janssen 17860fb8c7 Merge pull request #5432 from leekelleher/v8/bugfix/entitycontroller-convert-membertype
Corrected `EntityController.ConvertToObjectType` return type for MemberType
2019-05-31 19:28:01 +02:00
Sebastiaan Janssen eb642dc611 Merge pull request #5434 from bjarnef/patch-2
Fix noPasswordManager name for docs
2019-05-31 19:27:07 +02:00
Sebastiaan Janssen bc99d074a9 Merge pull request #5435 from ArnoldV/temp-5420
5420: v8 Invited user keeps showing as "has not logged in yet"
2019-05-31 19:25:56 +02:00
Kenn Jacobsen d536bebdbe V8: Show loading indicator while the Nested Content editor is loading (#5446) 2019-05-31 19:22:23 +02:00
Sebastiaan Janssen 3639d952d5 Merge pull request #5447 from kjac/v8-fix-nested-content-set-dirty-on-paste
V8: Prompt to save changes after pasting items into Nested Content
2019-05-31 19:19:41 +02:00
Sebastiaan Janssen 7c79cf318e Merge pull request #5450 from Matthew-Wise/5277-27
Login errors are not identified for screen reader users
2019-05-31 19:17:45 +02:00
Sebastiaan Janssen 6ad1607685 Merge pull request #5456 from electricsheep/v8/feature/5443-add-publish-menu-hotkeys
V8/feature/5443 add publish menu hotkeys
2019-05-31 19:15:41 +02:00
Sebastiaan Janssen c1ed2b9f45 Merge pull request #5523 from kjac/v8-fix-tree-node-flickering
V8: Fix the flickering when browsing up and down already loaded trees
2019-05-31 16:42:56 +02:00
Sebastiaan Janssen 2c5eeaeac8 V8: Don't load the breadcrumb twice when editing content (#5454)
V8: Don't load the breadcrumb twice when editing content
2019-05-31 16:41:43 +02:00
Sebastiaan Janssen a74a0c343e Merge pull request #5465 from kjac/v8-feature-content-sort-ux
V8: UX update for content/media sort dialog
2019-05-31 16:40:17 +02:00
Sebastiaan Janssen 4eb897ccff Merge pull request #5477 from electricsheep/v8/bugfix/5443-save-options-not-tabbable
V8: Enable tabbing for save options dropdown
2019-05-31 16:37:58 +02:00
Sebastiaan Janssen 20dc77c330 Merge pull request #5480 from electricsheep/v8/bugfix/4657-fix-view-source-animation
V8: Fix TinyMCE source overlay animation
2019-05-31 16:36:04 +02:00
Sebastiaan Janssen 4c79863130 Merge pull request #5521 from FransdeJong/Issue5038
Fixed form controls being pushed off screen.
2019-05-31 16:25:19 +02:00
Sebastiaan Janssen 9ec95c7aa2 Merge pull request #5520 from kjac/v8-fix-macro-tree-sorting
V8: Sort macros alphabetically
2019-05-31 16:21:29 +02:00
Sebastiaan Janssen 38bfd07883 Merge pull request #5535 from AndyButland/defect/5534-user-no-group-save-notification
V8: Fixes #5534 (saving a user with no groups fails validation, but no message is displayed)
2019-05-31 16:19:01 +02:00
Sebastiaan Janssen ce15b7c7c4 Merge pull request #5548 from kjac/v8-feature-reload-close-context-menu
V8: Automatically hide the context menu after reloading a node
2019-05-31 16:17:41 +02:00
Sebastiaan Janssen b090de3cde Merge pull request #5549 from kjac/v8-fix-remove-reload-for-container-nodes
V8: Don't show "Reload" for list view nodes
2019-05-31 16:16:42 +02:00
Bjarne Fyrstenborg dbd74f5273 v8: Fix listview layout icons (#5405) 2019-05-31 16:15:20 +02:00
Ollie P e87f8b14be Removed reference to adding languages from dictionary item description (#5457) 2019-05-31 16:14:10 +02:00
Sebastiaan Janssen fb14a4987c Merge pull request #5494 from kjac/v8-fix-umbconfirm-cursor
V8: umb-confirm button cursor should be "pointer"
2019-05-31 16:12:14 +02:00
Sebastiaan Janssen a471e7d25e Merge pull request #5553 from kjac/v8-fix-pointer-cursor-for-ng-links
V8: Ensure "pointer" cursor for all links with ng-click
2019-05-31 16:11:23 +02:00
Sebastiaan Janssen fef9248b51 Merge branch 'v7/dev' into v8/dev
# Conflicts:
#	src/Umbraco.Core/Persistence/Repositories/UserRepository.cs
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/macropicker.html
#	src/Umbraco.Web/Models/Mapping/MemberModelMapper.cs
#	src/Umbraco.Web/Strategies/NotificationsHandler.cs
2019-05-31 11:36:29 +02:00
Kenn Jacobsen a8e2798add Ensure "pointer" cursor for all links with ng-click (even if they have no href) 2019-05-30 21:39:52 +02:00
Sebastiaan Janssen 6af1057ad7 Merge pull request #5508 from Geckex/v7/temp-5507
MemberModelMapper to return member groups ordered alphabetically
2019-05-30 17:38:53 +02:00
Stephan 983144c3f9 Unit-test published content linked-list children 2019-05-29 17:01:12 +02:00
Stephan c451498975 Fix v8/dev merge 2019-05-29 15:13:28 +02:00
Bjarke Berg b366c5da03 Merge remote-tracking branch 'origin/v8/dev' into v8/bugfix/805-migrate-from-7 2019-05-29 10:14:31 +02:00
Stephan 24998425fc Better handling of default constraints 2019-05-29 09:19:29 +02:00
Stephan 8579b5a89b Merge branch 'v8/dev' into v8/feature/5170-IPublishedContent 2019-05-29 08:48:18 +02:00
Mario Lopez 1ad4414026 case insensitive section comparison 2019-05-29 11:39:10 +10:00
Stephan 70e4b7d931 Fix tests 2019-05-28 18:40:44 +02:00
Stephan 49d2a6dbf0 Fix migrations for SqlServer 2019-05-28 17:49:50 +02:00
Niels Lyngsø d52d0819ab remember settings for affected RTEs 2019-05-28 16:08:38 +02:00
Andy Butland 0dedd7b2d4 Show the notification when validation fails following saving a user with no groups assigned 2019-05-28 15:57:03 +02:00
Niels Lyngsø ca25b3199b refactor to use area var 2019-05-28 15:24:02 +02:00
Stephan 457427a5f4 Cleanup logging in DataTypeMigration 2019-05-28 10:58:47 +02:00
Stephan 5046bc019c Cleanup strings in UmbracoPlan 2019-05-28 10:52:04 +02:00
Stephan 187ab9ba46 Better exceptions in MigrationPlan 2019-05-28 10:46:26 +02:00
Stephan 3a813d2d77 Cleanup unknown user for audit events 2019-05-28 10:26:30 +02:00
Kenn Jacobsen 460653d078 Don't show "Reload" for container nodes 2019-05-26 19:06:24 +02:00
Kenn Jacobsen beb9068805 Automatically hide the context menu after reloading a node 2019-05-26 19:05:19 +02:00
Kenn Jacobsen f5a00cc3bd Fix the tree node flickering when browsing up and down already loaded trees. 2019-05-26 13:43:30 +02:00
Frans de Jong 86aef126fd Added float none for viewport up to 768 Larger viewports are not affected 2019-05-25 22:17:19 +02:00
Kenn Jacobsen 0e9d0a5a10 Don't live edit content type properties 2019-05-25 19:08:46 +02:00
Kenn Jacobsen a4f1b433eb Sort macros alphabetically 2019-05-25 10:34:03 +02:00
Frans de Jong 08b386e180 Finetuned Umb-Sections directive to use full space 2019-05-25 10:19:08 +02:00
Sebastiaan Janssen 97ae6165e4 Merge pull request #5511 from ReVoid/patch-1
ng-switch-default directive typo in macropicker.html
2019-05-23 11:19:47 +02:00
Sebastiaan Janssen c4ba0454fc Merge pull request #5488 from bjarnef/dev-v8-fix-overlay-drawer
v8: Fix overlay drawer
2019-05-22 23:02:13 +02:00
Sebastiaan Janssen cf1351b50f v8: Show box shadow when hover user avatar (#5490)
v8: Show box shadow when hover user avatar
2019-05-22 21:02:43 +02:00
Dmitriy 8cdb61195d ng-switch-default typo in macropicker.html
looks like it is just a typo :) fixed
2019-05-22 19:49:07 +03:00
Thomas Poulsen 50c2d574f1 Change MemberModelMapper GetMemberGroupValue to return member groups ordered alphabetically.
- This is used in ContentPropertyDisplay class - for UI purposes only.
2019-05-22 14:13:46 +01:00
Sebastiaan Janssen e3de3f98fd Merge pull request #5396 from kjac/v8-fix-color-picker-label-enabled
V8: Make sure that the color picker labels are always shown
2019-05-22 14:43:17 +02:00
Kenn Jacobsen 7a8a1a3705 Add a bit of a wait to the toggle initialization 2019-05-21 11:48:02 +02:00
Kenn Jacobsen 7707839968 Merge branch 'v8/dev' into v8-fix-color-picker-label-enabled 2019-05-21 11:36:18 +02:00
Sebastiaan Janssen b270db791b Merge pull request #5398 from kjac/v8-fix-rte-codeview-autofocus
V8: Support auto focus on ACE editor and use it for RTE source view
2019-05-21 10:40:04 +02:00
Kenn Jacobsen c6cabf1239 Make sense of the umb-confirm button cursor 2019-05-20 08:11:00 +02:00
Sebastiaan Janssen 0ea4864f24 Merge pull request #5461 from kjac/v8-fix-confirm-discard-esc-key
V8: Disable the escape key in the "unsaved changes" dialog
2019-05-19 10:01:14 +02:00
Kenn Jacobsen f07fcac13d If MNTP is configured to pick max 1 item, don't allow multiselect in the content picker dialog 2019-05-19 08:38:03 +02:00
Kenn Jacobsen e2746604a1 If MNTP is configured to pick max 1 item, convert the value into IPublishedContent instead of IEnumerable<IPublishedContent> 2019-05-19 08:37:33 +02:00
Bjarne Fyrstenborg 21e8a6faf4 Cleanup styles 2019-05-18 14:40:35 +02:00
Bjarne Fyrstenborg 65d8be45a1 Show box shadow when hover user avatar 2019-05-18 14:27:51 +02:00
Bjarne Fyrstenborg 00768fdfa7 Remove empty style 2019-05-18 13:33:43 +02:00
Bjarne Fyrstenborg ee3105009b Add back 100% height to make drawer positioned at bottom in overlays. 2019-05-18 13:33:16 +02:00
Ollie Philpott e9b5225676 Updated view source callback to execute correctly 2019-05-16 15:38:56 +01:00
Stephan 5dbc95a604 Fix StandaloneTests 2019-05-16 14:48:04 +02:00
Bjarke Berg 206f47bf52 Added missing nuget dependencies to the nuspec-file of UmbracoCms.Core 2019-05-16 14:24:09 +02:00
Stephan ea4f1a0f56 Merge branch v8/dev into v8/bugfix/805-migrate-from-7 2019-05-16 13:58:32 +02:00
Ollie Philpott c2046ad173 Fixed formatting 2019-05-16 10:53:03 +01:00
Ollie Philpott f080260396 Enabled tabbing for save options dropdown 2019-05-16 10:42:37 +01:00
Niels Lyngsø 9fac00d91b Fixed documentation mistake 2019-05-16 10:50:24 +02:00
Niels Lyngsø 4456a202e4 Merge remote-tracking branch 'origin/pr_5448' into v8/dev 2019-05-16 10:36:57 +02:00
Niels Lyngsø b503becaf3 Only show if we do have pasteable items. 2019-05-16 10:27:00 +02:00
Niels Lyngsø 5d1da3ada1 normalizing non-existing-culture to "invariant", cause the server sends invariant errors as invariant-culture. 2019-05-16 09:15:57 +02:00
Rasmus John Pedersen 2b84f96836 Don't render data-udi in RTE on frontend 2019-05-16 08:54:57 +02:00
Rasmus John Pedersen 28b669d3a3 Don't add dada-id and rel attributes on media in RTE 2019-05-16 08:48:47 +02:00
Stephan d5e63c0e62 Fix ContentNu cascade rules 2019-05-15 18:27:34 +02:00
Stephan 066a860c1d Fix more PreValues migration + better error reporting 2019-05-15 17:00:05 +02:00
Niels Lyngsø 225688facf fix comment 2019-05-15 16:23:23 +02:00
Niels Lyngsø 8bc28a4d81 clean up 2019-05-15 16:21:38 +02:00
Stephan c0f650436b Fix wording in DatabaseBuilder 2019-05-15 16:17:18 +02:00
Niels Lyngsø e7e74840bc indication if something is wrong in another variant than the current one. 2019-05-15 16:11:01 +02:00
Stephan d16002eb7c Fix KeyValueService to support re-running migrations 2019-05-15 15:34:37 +02:00
Stephan 1a54a24150 Fix DataType and PreValues migrations 2019-05-15 14:21:24 +02:00
Niels Lyngsø ceb1260509 current progress 2019-05-15 08:49:16 +02:00
Kenn Jacobsen 9706a0f76a Remove sort order and add item icons in content and media sort dialogs 2019-05-15 08:32:47 +02:00
Kenn Jacobsen 572dc11995 Disable the escape key in the "confirm discard" dialog 2019-05-14 18:43:57 +02:00
Kenn Jacobsen 12d79f2d08 Use umb-load-indicator when loading the RTE 2019-05-14 17:54:37 +02:00
Tiffany Prosser ef15c247c2 updated styles on focus state on section menu 2019-05-14 14:05:09 +01:00
Tiffany Prosser d255cd115b fixed sections.less focus states on top menu 2019-05-14 13:45:49 +01:00
Rasmus John Pedersen 19e2b1c24e Don't save media paths for images in RTE 2019-05-14 13:35:17 +02:00
Sebastiaan Janssen 1090d54763 Update to the latest caniuse-lite to fix the build
Fixes #5455
2019-05-14 13:32:28 +02:00
Ollie Philpott c0c9f4dfcc Changed publish submenu rendering to allow working hotkeys 2019-05-14 12:21:29 +01:00
Ollie Philpott 61ba78538a Added hotkeys for schedule and publish with descendants 2019-05-14 12:20:58 +01:00
Kenn Jacobsen cb76914a27 Don't load the breadcrumb twice when editing content 2019-05-14 09:09:18 +02:00
Matthew Wise 9b0d16f0ad Added aria label for validation messages on login 2019-05-11 17:31:37 +01:00
Kenn Jacobsen d9027e04f3 Hide "Create new" header in Nested Content create item dialog if all items are filtered out 2019-05-10 21:58:55 +02:00
Kenn Jacobsen 3377888219 Prompt to save changes after pasting items into Nested Content 2019-05-10 21:45:06 +02:00
Stephan 0b924f75d4 Fix migrations 2019-05-10 10:14:15 +02:00
Stephan 301b16a036 Fix user for v7 migration 2019-05-10 10:14:15 +02:00
Stephan 919fb79db9 Fix migrations 2019-05-10 10:14:15 +02:00
Stephan ba9aa49b91 Fix user for v7 migration 2019-05-10 10:14:14 +02:00
Stephan 7fed43cc68 Fix migration tooling 2019-05-10 10:14:14 +02:00
Stephan a1828fec51 Fix migrations 2019-05-10 10:14:09 +02:00
Shannon Deminick a43359e440 Merge pull request #5272 from umbraco/v8/spike/api-docs
Regenerating API docs
2019-05-10 13:53:37 +10:00
Shannon 8fce680430 removes unused line, updates gitignore 2019-05-10 13:07:06 +10:00
Shannon 35645672ae Ensures the reset flag is set for users when the legacy user membership provider setting allowManuallyChangingPassword is used 2019-05-10 02:00:45 +10:00
Shannon f952877d04 ensures that the reset flag is passed to the server when an admin is changing a members password 2019-05-10 01:48:11 +10:00
Warren Buckley 1815112ae7 Merge pull request #5353 from umbraco/v8/feature/ux-copy-paste-service-for-nested-content
V8: ClipboardService + implementation for nested content
2019-05-09 15:42:30 +01:00
Niels Lyngsø 66d12ddab2 fix spelling 2019-05-09 15:30:07 +02:00
Niels Lyngsø 2a592bfe8c remove comments 2019-05-09 15:30:01 +02:00
Shannon Deminick 3bf5160895 Merge pull request #5412 from umbraco/v8/bugfix/5131-remember-focus-for-search
Remember focus from before search opened + unbind shortcuts when backdrop is open
2019-05-09 23:08:41 +10:00
Niels Lyngsø 041fdc40e7 using localStorageService + applied further documentation 2019-05-09 15:02:22 +02:00
Niels Lyngsø 9c599868cc documentation for truncate fitler + only space between dots and words in wordwise mode. 2019-05-09 14:38:13 +02:00
Warren Buckley ac52960938 Merge pull request #5389 from umbraco/v8/feature/ui-improve-focus-state-of-umb-form-check
V8 improved focus state of umb-form-check inputs
2019-05-09 10:39:29 +01:00
Warren Buckley 3995c7c521 Merge pull request #5226 from umbraco/v8/bugfix/ui-sharpen-look-of-umb-tags
Accessibility and UI update of umb-tags
2019-05-09 10:13:49 +01:00
Arnold Visser 62a6a4ec92 5420: v8 Invited user keeps showing as "has not logged in yet" 2019-05-09 10:31:44 +02:00
Bjarne Fyrstenborg 943e050493 Fix noPasswordManager name for docs
Fix `noPasswordManager` for documentation.
https://our.umbraco.com/apidocs/v8/ui/#/api/umbraco.directives.directive:no-password-manager
2019-05-09 09:45:29 +02:00
leekelleher e958ca6f89 Fixed EntityController.ConvertToObjectType (for MemberType)
When the `entityType` was "MemberType", it would return the "MediaType" object-type.
2019-05-09 07:21:18 +01:00
Niels Lyngsø b952156027 corrected documentation 2019-05-08 15:10:46 +02:00
Niels Lyngsø 4c23d7fec9 removed properties, replaced with a getter method. 2019-05-08 15:09:01 +02:00
elitsa 3d80d511a4 Adding a parameter for enabling docfx into the script. 2019-05-08 14:27:44 +02:00
Ollie Philpott 0a752c8985 Updated hsts description from days to weeks 2019-05-08 11:57:03 +01:00
Ollie Philpott b6ad19ccad Corrected hsts max age description 2019-05-08 11:12:09 +01:00
Ollie Philpott bea1d35ebf Updated hsts urls 2019-05-08 11:11:47 +01:00
elitsa fc0f996500 Excluding no longer needed paths. 2019-05-08 12:11:06 +02:00
Ollie Philpott dae8802c50 Removed preload from descriptions 2019-05-08 11:11:01 +01:00
Ollie Philpott 58cdff1d71 Removed preload from HSTS header 2019-05-08 11:09:45 +01:00
Warren Buckley d69a978870 Fixes #4144 - Adds code back for allowing password changes without old password, that was removed in b029215933 2019-05-08 10:52:27 +01:00
Rasmus John Pedersen 16b88ca2ff Merge pull request #5419 from kjac/v8-fix-convert-media-urls-migration
V8: Fix duplicate alias exception in "convert media URLs" migration
2019-05-08 11:06:29 +02:00
Rasmus John Pedersen 6cf82669fb Update media urls migration to only fetch/update needed fields from db 2019-05-08 10:52:05 +02:00
Shannon 93bc2dc95b fixes some null checks 2019-05-08 17:48:54 +10:00
Shannon 1bcf40402c Merge branch 'v8/dev' into v8/bugfix/5190-invariant-property-validation
# Conflicts:
#	src/Umbraco.Web.UI.Client/package-lock.json
2019-05-08 16:53:21 +10:00
Shannon 7b101f0b9e Fixes duplicate error messages per key in ModelState 2019-05-08 16:52:25 +10:00
Shannon dad3f31f86 merged 2019-05-08 16:51:23 +10:00
Kenn Jacobsen 6baea68a7d Fix duplicate alias exception in "convert media URLs" migration 2019-05-08 07:53:11 +02:00
Stephan 7cd31ce970 Fix TourController during upgrade 2019-05-07 14:58:05 +02:00
Stephan 54a8796d51 Cleanup migration plan, supports 7.14.0 2019-05-07 14:58:05 +02:00
Ollie Philpott e091987f0f Added hash to user profile href and reordered attributes 2019-05-07 11:57:35 +01:00
Niels Lyngsø e906808a9b unbind keyboard shortcuts for editors when backdrop is active 2019-05-07 10:59:09 +02:00
Niels Lyngsø c4dbb90d10 remember focus from before opening search 2019-05-07 10:46:52 +02:00
Shannon ef24c2e2f2 Fixes a migration syntax 2019-05-07 18:33:15 +10:00
Niels Lyngsø 4b55f99493 rename copy.service to clipboard.service 2019-05-07 09:08:32 +02:00
Shannon Deminick 3332e93d4c Merge pull request #5375 from umbraco/v8/feature/5373-make-async-file-logging-possible-with-serilog
V8: Make async file logging possible with serilog
2019-05-07 17:06:01 +10:00
Shannon Deminick ed88ce8ae2 Merge pull request #5209 from umbraco/v8/feature/4940-save-media-reference-instead-of-media-url
Save media reference instead of media url
2019-05-07 16:33:30 +10:00
Bjarke Berg 96cd42b316 #5373 - Removed configuration options that we don't want to support. The other options can be archived using the original file sink. 2019-05-07 08:25:43 +02:00
Shannon 2e7aa11211 Adds TODO, removes the data-udi or data-id attribute from inserted links 2019-05-07 15:47:40 +10:00
Kenn Jacobsen f07b9da2ef Add line wrap to RTE code editor 2019-05-06 14:57:18 +02:00
Niels Lyngsø 4c1129e944 added missing documentation 2019-05-06 14:30:23 +02:00
Niels Lyngsø 74cbff5ee5 minor rename 2019-05-06 14:27:15 +02:00
Niels Lyngsø bfdeb6c987 requires alias to be parsed in copy method + minor renaming 2019-05-06 14:23:25 +02:00
Niels Lyngsø 07f4295810 rename copyService to clipboardService 2019-05-06 14:18:15 +02:00
Thomas Pralong 60a3cdc5ab Fix bug with multi url picker. Would display the wrong language tree in
the link picker dialog
2019-05-06 10:47:33 +02:00
Shannon Deminick 74be040298 Merge pull request #5390 from umbraco/v8/bugfix/ui-2fa-login-view
Add back the ability to use a custom 2-factor auth screen
2019-05-06 16:23:18 +10:00
Sebastiaan Janssen c03a4d978b Use int.MinValue instead of calculating from SuperUserId 2019-05-06 08:22:03 +02:00
Shannon 64eff0ba0f adds serilog xdt file 2019-05-06 15:51:28 +10:00
Kenn Jacobsen 03006d7698 Add empty state to groups search result 2019-05-05 19:00:36 +02:00
Kenn Jacobsen 8344372ae2 Fix the empty state for User search 2019-05-05 18:40:10 +02:00
Bjarke Berg d52f6b5810 Added support for changing the dates of the log files 2019-05-03 14:56:44 +02:00
Poornima Nayar 4fa07389dd Search shadow-layer should be on top of the user-dialog 2019-05-03 13:07:05 +01:00
Kenn Jacobsen a056c273de Support auto focus on ACE editor and use it for RTE code view 2019-05-03 11:17:15 +02:00
Bjarke Berg f81fd8f35f #5373 - Handle the serilog fallback pattern in log viewer. The fallback pattern is that a "_NNN" is added to the file name before the file extension, if the file is locked when serilog needs to write to it. 2019-05-03 09:41:26 +02:00
Kenn Jacobsen a6136c18bb Make sure that the color picker labels are always shown 2019-05-03 09:01:41 +02:00
Bjarke Berg 0222f929df #5373 - Changed the logging to be buffered 2019-05-03 08:39:01 +02:00
Shannon Deminick f34b2edb08 Merge pull request #5371 from umbraco/v8/bugfix/remove-old-doc
Removing a no longer relevant section
2019-05-03 13:16:28 +10:00
Sebastiaan Janssen e5839a89cd Fixes references to the "SuperUser" which used to have user Id 0, but now has userId -1 2019-05-02 14:56:12 +02:00
Sebastiaan Janssen 503d6d0265 Make the callback do something and cleanup code a little bit to limit it to only what we actually need 2019-05-02 14:44:33 +02:00
Bjarke Berg 6adec17b26 #5236 - Added options to set (and set default as) the log file is closed after each log event 2019-05-02 14:19:48 +02:00
Niels Lyngsø 3a5538730b only remove gray border when checked. 2019-05-02 13:32:16 +02:00
Niels Lyngsø fe3c1bc089 remove console.log 2019-05-02 13:25:19 +02:00
Niels Lyngsø 8031562ea2 better focus state 2019-05-02 10:54:59 +02:00
Sebastiaan Janssen 4881fb76e4 Merge pull request #5387 from umbraco/v8/bugfix/ui-umb-button-spacing
Added margin-left: 5px; to achieve the needed whitespace, couldn't figu…
2019-05-02 10:29:57 +02:00
Niels Lyngsø e9b06701cc Merge remote-tracking branch 'origin/v8/dev' into v8/feature/ux-copy-paste-service-for-nested-content 2019-05-02 10:10:48 +02:00
Niels Lyngsø 496d5d7791 added margin-left 5px; to achive the needed whitespace, could'nt figure out how it had been done before. 2019-05-02 10:01:16 +02:00
Marc Goodson b92fbffd7c Remove the Link to the out-of-date editors manual
Editors manual is for v7.1
2019-05-02 07:56:44 +02:00
Bjarke Berg 29b4da4dca #5373 - Disposes the logger on application end if disposable and implementes the CloseAndFlush in the dispose method of SerilogLogger 2019-05-01 15:50:43 +02:00
Elitsa Marinovska 6cd77df1ad Updating the base link 2019-05-01 15:30:58 +02:00
Elitsa Marinovska adf762bdf8 Integrate docs script with the main build script 2019-05-01 15:25:47 +02:00
Elitsa Marinovska 6b17248f64 Updating base link 2019-05-01 15:22:10 +02:00
Bjarke Berg a5684f867a #5373 - Added custom extension method to configure the file serilog file sink to be wrapped in the async sink 2019-05-01 15:15:29 +02:00
Niels Lyngsø e2730f2b66 use vm.login and vm.password, not parsing it. 2019-05-01 14:36:51 +02:00
Niels Lyngsø b4368666ca return to login-view on submit 2019-05-01 14:31:26 +02:00
Niels Lyngsø b60fe9cc0a use external view 2019-05-01 13:56:34 +02:00
Stephan 33b857d2c6 Merge branch 'v8/dev' into v8/feature/5170-IPublishedContent 2019-05-01 13:53:13 +02:00
Niels Lyngsø 3aabe424a8 example of 2fa login view 2019-05-01 13:44:18 +02:00
Elitsa Marinovska 9c667414bc Removing a no longer relevant section 2019-05-01 13:36:34 +02:00
Niels Lyngsø 5d5fa3fac8 changed localstorage key to umbCopyService 2019-05-01 10:14:33 +02:00
Niels Lyngsø d23f25beba finishing requestDeleteNode 2019-05-01 10:02:43 +02:00
Niels Lyngsø c0ad64d259 Merge remote-tracking branch 'origin/v8/dev' into v8/feature/ux-copy-paste-service-for-nested-content 2019-05-01 09:57:59 +02:00
Niels Lyngsø 6802716cf1 use requestDeleteNode 2019-05-01 09:57:11 +02:00
Niels Lyngsø 23a27c3519 adding paste feature + cleaning css 2019-05-01 09:40:38 +02:00
Rasmus John Pedersen 0e636b4ce1 Set href to # if url can't be resolved 2019-05-01 09:20:40 +02:00
Kenn Jacobsen 2bdbd86787 Default nested content item names to the content type name if there are multiple content item types to choose from 2019-05-01 09:10:09 +02:00
Rasmus John Pedersen f00a230d12 Merge branch 'v8/dev' into v8/feature/4940-save-media-reference-instead-of-media-url 2019-05-01 08:55:55 +02:00
Shannon Deminick 009e373178 Merge pull request #5354 from umbraco/v8/feature/5350-fluent-type-collection
Make TypeCollectionBuilderBase fluent
2019-05-01 16:45:00 +10:00
Shannon Deminick 3c6d3280d8 Merge pull request #5266 from umbraco/v8/bugfix/5187-mapper-issue
Fix mapper concurrency issue
2019-05-01 15:25:54 +10:00
Callum Whyte 43d84a37a3 Pointing parent doctype links to correct edit pages in doctype builder
Links to parent doctype in doctype builder go to the wrong place
2019-04-30 22:20:30 +02:00
Kenn Jacobsen 3d86b08e31 Send delete notifications when content is moved to trash 2019-04-30 22:19:38 +02:00
shane Prendergast 264958f097 #5277 Adding correct button element,styling to remove default styles 2019-04-30 22:18:59 +02:00
Kenn Jacobsen 99dedac375 Vertically center the button carets in the grid RTE 2019-04-30 22:17:29 +02:00
Kenn Jacobsen 078a7d5679 Fix the active state for nested content in nested content 2019-04-30 22:16:30 +02:00
matthew-hair 5cef71e4e6 fixed typos in ClearLoginSessions queries 2019-04-30 22:11:07 +02:00
matthew-hair fe7b114083 fix for umbracoUserLogin not pruned
Signed-off-by: matthew-hair <matthew.hair@sedgwick.gov>
2019-04-30 22:11:07 +02:00
Kenn Jacobsen 1df2cf5935 Fix info button icon color 2019-04-30 22:08:09 +02:00
Kenn Jacobsen 86c56ae844 Make sure to use the specified content template name when creating content templates from content 2019-04-30 22:05:00 +02:00
Sebastiaan Janssen 16322bed31 Merge pull request #4784 from kjac/v8-fix-content-template-mixed-variance
V8: Handle mixed variance when creating content templates from content
2019-04-30 22:04:21 +02:00
Sebastiaan Janssen 044decc0dc v8: Fix table cells collapsing when sorting doctypes in Nested Content (#4832) 2019-04-30 22:00:35 +02:00
Sebastiaan Janssen b9482fc867 Merge branch 'v8/dev' into pr_4832 2019-04-30 21:59:50 +02:00
Kenn Jacobsen 4d8e5e1416 Make sure to hide the member types when creating a new member 2019-04-30 21:56:00 +02:00
Samuel Butler 958c8b1214 Umbraco installer double-encodes connection string password fix (#4820) 2019-04-30 21:54:35 +02:00
Kenn Jacobsen d04b967fe6 V8: Hide "umbContent" app if the content has no properties (#4840) 2019-04-30 21:34:00 +02:00
Kenn Jacobsen 6bfcc7bb34 Don't "Create matching template" before the content type is created 2019-04-30 21:25:46 +02:00
Kenn Jacobsen 6274a08a4f Don't allow opening an uncreated template 2019-04-30 21:24:52 +02:00
Kenn Jacobsen 4ebfd8ca37 Remove accordion group behavior from media editing 2019-04-30 21:23:40 +02:00
Kenn Jacobsen 1370894b38 Remove accordion group behavior from member editing 2019-04-30 21:23:16 +02:00
Kenn Jacobsen c5f1d2d885 Use standard pickers in MNTP config 2019-04-30 21:22:14 +02:00
Kenn Jacobsen 4df63c7f04 V8: Save the slider default values on the model if no value is set (#4931) 2019-04-30 21:19:34 +02:00
Marc Goodson a822e18719 Patch/update published content request comments (#4945) 2019-04-30 21:13:59 +02:00
Matt Darby 1605b6f909 Adjust naming in Nested Content configuration to fit ElementType (#4946) 2019-04-30 21:08:49 +02:00
Kenn Jacobsen 5e8d73cd20 V8: Add tooltip/title to unselectable items in MNTP (#4964) 2019-04-30 20:57:28 +02:00
Bjarne Fyrstenborg f05915ef08 v8: Fix package download (#4968) 2019-04-30 20:47:37 +02:00
Bjarne Fyrstenborg 5fd423dbb6 Increase z-index of .umb-editor-footer so dropup is above grid editor hover overlay and doctype inherited label. 2019-04-30 20:45:30 +02:00
Kenn Jacobsen 1758d0cd1a Fix glitch in umb-checkbox background 2019-04-30 20:43:15 +02:00
Kenn Jacobsen d698aa56d0 Use umb-checkbox in the delete mediatype dialog 2019-04-30 20:41:07 +02:00
Kenn Jacobsen 0478a37b00 Use umb-checkbox in the delete datatype dialog 2019-04-30 20:40:20 +02:00
Kenn Jacobsen 6def4d6248 Use umb-checkbox in the delete membertype dialog 2019-04-30 20:39:38 +02:00
Kenn Jacobsen 2835da8e96 Use umb-checkbox for "open in new window" in the link picker 2019-04-30 20:37:45 +02:00
Sebastiaan Janssen f895900ec5 Merge branch 'v7/dev' into v8/dev
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js
2019-04-30 20:36:45 +02:00
Kenn Jacobsen 21e91ac4e1 RTE: Don't assume "mailto:" protocol in links with "@" 2019-04-30 20:34:26 +02:00
Anders Bjerner ecc7a3b96e Added parameters to the docs for specifying an already selected icon 2019-04-30 20:31:47 +02:00
Kenn Jacobsen 9598d2c2e6 Make header name input look ok when disabled (reverts input height adjustment from ff8f9083) 2019-04-30 20:30:16 +02:00
Andy Butland 966bfafe22 Fixed casing of editorService open method inline documentation for the size parameter 2019-04-30 20:25:29 +02:00
Peter Duncanson f2a5e5da87 Added in new browser targets for Babel config
Fixes #4894
2019-04-30 20:24:20 +02:00
Kenn Jacobsen 5eb0f6f92f V8: Show info message if Nested Content is configured without content types (#5342) 2019-04-30 16:45:23 +02:00
Sebastiaan Janssen f2e01d8f65 Merge pull request #5343 from kjac/v8-fix-mntp-bounds-validation
V8: Fix the MNTP min/max items validation
2019-04-30 16:15:34 +02:00
Sebastiaan Janssen d328a53590 Merge pull request #5355 from kjac/v8-fix-media-library-open-file
V8: Make it possible to open/view files in the media library
2019-04-30 16:06:17 +02:00
Niels Lyngsø 27d5b258df truncate + cache header for create new + different title for overlay depending on situation 2019-04-30 15:53:38 +02:00
Niels Lyngsø b271c77d97 fixing size to only work for target overlay 2019-04-30 15:52:37 +02:00
Niels Lyngsø 906c7a4ccd added angularJS truncate filter 2019-04-30 15:52:00 +02:00
Niels Lyngsø 5942bce7da control size of umb-overlay 2019-04-30 15:23:56 +02:00
Niels Lyngsø ab2f0c3a1c go to four lines if more than 6 items in Item-picker 2019-04-30 15:00:52 +02:00
Niels Lyngsø 85905f7a77 fix variant error for collection tabs 2019-04-30 15:00:31 +02:00
Niels Lyngsø 85456bbb9b correct lang file 2019-04-30 14:59:34 +02:00
Niels Lyngsø 8e925c930b sort items by dragging the item header 2019-04-30 14:05:20 +02:00
Niels Lyngsø 18c7680baf remove unused CSS 2019-04-30 13:53:06 +02:00
Niels Lyngsø 77407a9446 correcting text 2019-04-30 13:39:17 +02:00
Niels Lyngsø 62e72a54b7 Merge commit 'a7ebf9bed3f78c68f5da8a67d27a8ffa0e961d3b' into v8/feature/ux-copy-paste-service-for-nested-content 2019-04-30 13:34:56 +02:00
Niels Lyngsø 5d7aa4bcf5 remove edit and paste button. 2019-04-30 13:34:35 +02:00
Niels Lyngsø 90912a4b2a restyled umb-overlay + added paste features in nested-content create-overlay 2019-04-30 12:49:37 +02:00
Niels Lyngsø 01116e21f4 finished copy service 2019-04-30 12:48:44 +02:00
Claus a7ebf9bed3 Merge pull request #5318 from umbraco/v8/bugfix/5075-rte-update-model
update RTE model on changing code or media
2019-04-30 10:31:35 +02:00
Claus a01efcb59f fix for vs2019 release build tools. 2019-04-29 13:59:16 +02:00
Kenn Jacobsen adc7201e86 Allow localizing content types and properties using language files 2019-04-29 08:24:34 +02:00
Elitsa Marinovska 880e86820e Updating with correct directory refferences 2019-04-28 21:15:59 +02:00
Elitsa Marinovska 7e064cee83 Optimizing scripts 2019-04-28 21:14:32 +02:00
Kenn Jacobsen cc7bf4cef5 Make it possible to open/view files in the media library 2019-04-27 22:28:00 +02:00
Stephan 70203512fb Make TypeCollectionBuilderBase fluent 2019-04-27 09:07:49 +02:00
Niels Lyngsø 48ceb0d41d working prototype 2019-04-26 15:15:27 +02:00
Stephan 173df80e3d Fix recycle bin moves 2019-04-26 15:01:16 +02:00
Bjarne Fyrstenborg 9b62269bde v8: Update image cropper slider (#4487) 2019-04-26 14:12:57 +02:00
Niels Lyngsø 4d3154c7fa prototype, not working correctly. 2019-04-26 13:34:38 +02:00
Niels Lyngsø e139fa6719 first version of copyService 2019-04-26 13:22:00 +02:00
Warren Buckley 09617d9b50 Merge pull request #5337 from umbraco/v8/feature/ui-prettier-focus-outlines
Created umb-outline to make it easy to apply pretty focus outline for elements.
2019-04-26 10:29:22 +01:00
Warren Buckley 00e33fb156 Merge pull request #5338 from umbraco/v8/feature/ui-app-header-action-focus-outline
V8: app header action focus outline
2019-04-26 10:26:14 +01:00
Warren Buckley dc27bd148a Merge pull request #5340 from umbraco/v8/feature/ux-disable-tabbing-state-with-a-mouse-click
Disable tabbing state if user clicks
2019-04-26 10:19:24 +01:00
Warren Buckley 6dc343f9d8 Merge pull request #5339 from umbraco/v8/feature/ui-hover-and-focus-outline-on-umb-checkbox-and-umb-radio
focus outline + hover states for umb-checkbox and umb-radio
2019-04-26 10:18:33 +01:00
Pete Duncanson 2470a2737f Added gulp-angular-embed-template (#4871)
Fixed #4845 by embedded the angularjs templates for directives in the directives, cuts down on network traffic and increases speed to render
2019-04-26 11:06:00 +02:00
Warren Buckley 1753ddbfc4 Merge pull request #5330 from umbraco/v8/feature/ui-umb-button-nicer-outline
V8: prettier outline for buttons, and only shown when tabbing is active.
2019-04-26 10:00:14 +01:00
Warren Buckley 4230ad27f3 Merge pull request #5329 from umbraco/v8/feature/ui-nested-content-add-content-button
V8: nested content consistent "add content"-button, and other adjustments.
2019-04-26 09:56:44 +01:00
Warren Buckley 9bca5e0347 Merge pull request #5332 from umbraco/v8/feature/ui-prettier-outline-on-media-picker
V8: prettier outline on media picker
2019-04-26 09:31:21 +01:00
Bjarne Fyrstenborg f82dff597b v8: Imagepicker prevalue and grid setting/styles as infinite editor (#4971) 2019-04-25 13:31:29 +02:00
Stephan 56d7755487 Merge branch 'v8/dev' into v8/spike/api-docs 2019-04-25 09:05:21 +02:00
Kenn Jacobsen 82f966ca24 Fix MNTP bounds min/max items validation 2019-04-24 22:09:00 +02:00
Sebastiaan Janssen 2179e85638 Merge pull request #5336 from umbraco/v8/feature/snupkg
Create new Nuget Symbol packags - snupkg
2019-04-24 16:10:33 +02:00
Niels Lyngsø defbb8e821 disables the tabbing-state if the user performes a mouse-click that reaches the window. 2019-04-24 15:56:37 +02:00
Niels Lyngsø f7dce756a7 focus outline + hover states for umb-checkbox and umb-radio 2019-04-24 15:50:57 +02:00
Stephan bb0331e9cc Move IPublishedContent.Url() to ext method 2019-04-24 14:25:41 +02:00
Niels Lyngsø 30385789c8 only show focus-outline on sections if tabbing is active 2019-04-24 14:15:24 +02:00
Niels Lyngsø 8bac388f73 prettier focus outline for app-header-actions 2019-04-24 14:15:02 +02:00
Niels Lyngsø 53c7df36b0 umb-outline to make it easy to apply pretty focus outline for elements. 2019-04-24 13:55:31 +02:00
Sebastiaan Janssen 5f5b21b43e Make Nested Content work with hidden item icons (#5324) 2019-04-24 13:37:48 +02:00
Sebastiaan Janssen 64f7cc1c29 General clean up, use === and double quotes everywhere 2019-04-24 13:35:24 +02:00
Sebastiaan Janssen c80187938b Make sure to parse as boolean in case old models still use "1" or the string "true" 2019-04-24 13:34:48 +02:00
Sebastiaan Janssen bb4be11a0b Merge branch 'v8/dev' into pr_5324 2019-04-24 13:32:29 +02:00
Warren Buckley 103c92bc69 Update powershell to use the snupkg format for symbol package to be hosted on nuget.org symbol server
Advisory from Nuget team is to no longer include the C# .cs files in the src folder of a nuget package
2019-04-24 12:31:05 +01:00
Warren Buckley 950849a4c6 Update jQuery to latest 3.4.0 (#5331)
Seems good
2019-04-24 13:21:24 +02:00
Elitsa Marinovska da125405ea Merge pull request #4722 from kjac/v8-fix-media-picker-create-folder
V8: Return folder creation to non-active state in media picker
2019-04-24 12:35:23 +02:00
Niels Lyngsø d05e188d00 prettier outline on media picker 2019-04-24 12:03:43 +02:00
Stephan 25b8c8a565 Refactor getting Urls 2019-04-24 11:53:35 +02:00
elitsa 4cf55a8837 Getting the current user start nodes 2019-04-24 11:52:38 +02:00
Niels Lyngsø 5436478dfb prettier outline for buttons, and only shown when tabbing is active. 2019-04-24 11:37:03 +02:00
Warren Buckley 9333426985 Merge pull request #5304 from MMasey/v8/feature/tab-accessibility-improvements
V8: Login form accessibility improvements and form input tabbed focus styles
2019-04-24 10:25:13 +01:00
Warren Buckley c21b740c71 Merge pull request #5320 from shane-sigma/temp-5277-4
Re-adding outline to the umb-button__button for focus states
2019-04-24 10:00:44 +01:00
Niels Lyngsø 9e03103cbb using new ligther gray for background of nested content 2019-04-24 10:34:57 +02:00
Niels Lyngsø e889ec1fa9 added new lighter gray 2019-04-24 10:34:41 +02:00
Niels Lyngsø dc66807d13 changed the look of nested content 2019-04-24 10:31:30 +02:00
Warren Buckley fe57ef329b Revert the change to the gitignore - no web.config should be in ui.client folder anyway 2019-04-24 09:26:33 +01:00
elitsa 5ce226104b Merge branch 'v8/dev' into v8-fix-media-picker-create-folder 2019-04-24 09:41:48 +02:00
Stephan eb390f8d80 Fix merge 2019-04-24 09:32:49 +02:00
Niels Lyngsø 43586e6bb7 first step for changing the add-content button 2019-04-24 09:27:47 +02:00
Stephan be93773399 Merge branch v8/dev into v8/feature/5170-IPublishedContent 2019-04-24 08:51:25 +02:00
Kenn Jacobsen fecf561279 Make Nested Content work with hidden item icons 2019-04-23 22:57:10 +02:00
Kenn Jacobsen 61cc22dccf V8: Send notifications for changes in permissions (#5287) 2019-04-23 22:00:35 +02:00
Kenn Jacobsen e7f4f61f93 V8: Send notifications for changes in public access (#5288)
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
2019-04-23 21:55:42 +02:00
Kenn Jacobsen a6d8b48ab4 V8: Remove obsolete umb-permission styling (#5308) 2019-04-23 21:50:28 +02:00
Kenn Jacobsen 7cc9747b2f V8: Allow content to be shown before list view (#5074) 2019-04-23 21:31:48 +02:00
Kenn Jacobsen 72d588287f V8: Add option to create nonclustered primary keys using ICreateBuilder (#5261) 2019-04-23 21:03:50 +02:00
Sebastiaan Janssen 700fe9b787 Merge branch 'v7/dev' into v8/dev
# Conflicts:
#	src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs
#	src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs
#	src/Umbraco.Web.UI.Client/src/common/security/securityinterceptor.js
2019-04-23 20:37:38 +02:00
Kenn Jacobsen d5858fe1be Enable manual sorting on contentTypeAlias 2019-04-23 20:28:17 +02:00
Kenn Jacobsen 6dba751167 Fix "sort by document type" in listviews 2019-04-23 20:28:17 +02:00
Kenn Jacobsen b367ae6c80 Fix "sort by document type" in media listviews 2019-04-23 20:27:25 +02:00
Kenn Jacobsen 07684bb1d6 Fix "sort by document type" in content listviews 2019-04-23 20:26:55 +02:00
Dennis Flæng 7eadcf66ed added submit button for row and layoutconfig (#5136) 2019-04-23 20:17:38 +02:00
Stephan 977bf91409 Merge branch 'v8/feature/4942-media-url-provider' into v8/dev 2019-04-23 19:32:30 +02:00
Kenn Jacobsen fab025bf66 V8: Don't use floats in the slider config as it only supports integers (#4821) 2019-04-23 17:27:34 +02:00
Ondrej Pialek 8d382fb9b7 Backoffice session timeout on custom-URL backoffices leads to high browser CPU and self-inflicted backend DDoS (#5210) 2019-04-23 16:37:37 +02:00
Stephan c19be0c64e Misc cleanup 2019-04-23 16:23:06 +02:00
Kenn Jacobsen 67e046e477 V8: Allow nested content without blueprints (#4777)
* Don't assume there is at least one NC blueprint
* NC disabled icon styling (hover pointer type)
* Allow and handle NC configs without blueprints
2019-04-23 16:14:26 +02:00
Kenn Jacobsen aba409600b V8: Improve notifications save button style and interaction (#5097) 2019-04-23 15:59:57 +02:00
Kenn Jacobsen fdfcb75a71 Make sure datatype configs are validated in infinite editing (#4776) 2019-04-23 15:41:45 +02:00
shane Prendergast ac44f800a6 Re-adding outline to the umb-button__button for focus states 2019-04-23 13:56:48 +01:00
Kenn Jacobsen 7eddc22bba V8: Send notifications for move, restore, copy and delete actions (#5255) 2019-04-23 14:24:45 +02:00
Kenn Jacobsen 9280c74062 V8: Use umb-checkbox for RTE configuration (#5119) 2019-04-23 14:19:08 +02:00
Sebastiaan Janssen 90cbdbf2cd Merge pull request #5316 from umbraco/v8/bugfix/5315-paging-error-nucache
Fix paging error in NuCache
2019-04-23 14:05:56 +02:00
Sebastiaan Janssen fdc9adfe83 Merge pull request #5278 from kjac/v8-fix-macro-parameter-configuration
V8: Fix "multiple" macro parameter property editor configuration
2019-04-23 14:02:45 +02:00
Stephan e6f6c498a5 Merge branch v8/dev into v8/feature/4942-media-url-provider 2019-04-23 13:58:17 +02:00
Kenn Jacobsen 5472297245 Add busy state to <umb-confirm/> OK button 2019-04-23 13:45:42 +02:00
Niels Lyngsø 71bea2bc25 update RTE model on changing code or media 2019-04-23 13:43:36 +02:00
Stephan d9653026de Merge branch 'v8/bugfix/4963-fixing-models-and-member-repo' into v8/dev 2019-04-23 13:41:36 +02:00
Stephan 3185f7ae97 Fix member type builtin properties handling 2019-04-23 13:07:57 +02:00
Kenn Jacobsen 417b270f59 V8: Allow sorting manually by name in listviews (#5252) 2019-04-23 13:05:04 +02:00
Stephan 509b1151a2 Fix tests 2019-04-23 12:09:22 +02:00
Stephan 0cf857e8bc Cleanup 2019-04-23 12:09:13 +02:00
Stephan 50f6779c17 Merge branch v8/dev into v8/bugfix/4963-fixing-models-and-member-repo 2019-04-23 11:31:47 +02:00
Stephan 5d0010a993 Fix paging error in NuCache 2019-04-23 11:11:53 +02:00
Stephan f47cfe155a Merge branch 'v8/dev' of https://github.com/umbraco/Umbraco-CMS into v8/dev 2019-04-23 11:02:15 +02:00
Stephan 6c08828887 Merge branch 'temp8-4682-ui-selection-of-users-and-user-groups' into v8/dev 2019-04-23 11:01:50 +02:00
Niels Lyngsø 74b4689059 corrected spacing 2019-04-23 10:59:53 +02:00
Stephan 2f1687cd4f Merge branch 'v8/dev' into temp8-4682-ui-selection-of-users-and-user-groups 2019-04-23 10:54:07 +02:00
Stephan 6f0baa4a8e Merge branch v8/dev into v8/feature/5170-IPublishedContent 2019-04-23 10:47:40 +02:00
Stephan 9443599382 Merge pull request #5307 from kjac/v8-fix-search-result-mapping
V8: Fix mapping for search results
2019-04-23 10:43:12 +02:00
Stephan a56f3b23d1 Cleanup PublishedMember 2019-04-23 08:29:43 +02:00
Stephan 4feb766cc6 Fix IPublishedContent.Children() and NuCache 2019-04-23 08:29:43 +02:00
Stephan 55d4457c70 UmbracoContext: don't use obsolete properties 2019-04-23 08:29:43 +02:00
Stephan 05c85bbce5 NuCache: children as linked lists 2019-04-23 08:28:26 +02:00
Stephan 2270188668 Refactor IPublishedContent.Children() 2019-04-23 08:28:23 +02:00
Stephan 41e14a62c0 Refactor IPublishedContent.Parent() 2019-04-23 08:27:50 +02:00
Stephan a996d46b6f Refactor IPublishedContent.GetCultureFromDomains() 2019-04-23 08:27:50 +02:00
Stephan e062ea8d31 Refactor IPublishedContent.CultureDate(), .Cultures 2019-04-23 08:27:50 +02:00
Stephan 7cf13cbf94 Fix IPublishedContent.Name(), .Segment() for invariant 2019-04-23 08:27:49 +02:00
Stephan afda7a5661 Refactor IPublishedContent.ItemType 2019-04-23 08:27:49 +02:00
Stephan 11ef00c63d Refactor IPublishedContent.Url() 2019-04-23 08:27:49 +02:00
Stephan 2b54cc50ab Refactor IPublishedContent.UrlSegment() 2019-04-23 08:27:49 +02:00
Stephan 99319e0b49 UmbracoContext: rename properties 2019-04-23 08:27:49 +02:00
Stephan f99302ac63 Cleanup IPublishedContent/PropertyType 2019-04-23 08:27:49 +02:00
Stephan 890d7d8ce3 Refactor IPublishedContent.Name() 2019-04-23 08:27:48 +02:00
Stephan f039b00a44 Introduce IPublishedPropertyType 2019-04-23 08:27:48 +02:00
Stephan 34ad8dfb8d Introduce IPublishedContentType 2019-04-23 08:27:40 +02:00
Sebastiaan Janssen 160d140167 Merge branch 'v7/dev' into v8/dev
# Conflicts:
#	src/Umbraco.Web/Strategies/NotificationsHandler.cs
2019-04-22 13:22:15 +02:00
Sebastiaan Janssen db7ae9a7e2 V7: Send notifications for changes in permissions (#5306)
V7: Send notifications for changes in permissions
2019-04-22 13:21:03 +02:00
Sebastiaan Janssen 2e6f032222 Merge branch 'v7/dev' into pr_5306
# Conflicts:
#	src/Umbraco.Web/Strategies/NotificationsHandler.cs
2019-04-22 13:20:15 +02:00
Sebastiaan Janssen 9fc33d71e4 V7: Send notifications when an item is copied (#5302)
V7: Send notifications when an item is copied
2019-04-22 13:15:44 +02:00
Sebastiaan Janssen 916cd999d5 Merge branch 'v7/dev' into pr_5302
# Conflicts:
#	src/Umbraco.Web/Strategies/NotificationsHandler.cs
2019-04-22 13:14:32 +02:00
Sebastiaan Janssen a75506d60b V7: Send notifications when an item is moved or restored (#5303) 2019-04-22 13:04:14 +02:00
Sebastiaan Janssen 6631a50a44 Merge branch 'v7/dev' into pr_5303
# Conflicts:
#	src/Umbraco.Web/Strategies/NotificationsHandler.cs
2019-04-22 13:03:00 +02:00
Sebastiaan Janssen 9611791f31 Merge branch 'v7/dev' into v8/dev
# Conflicts:
#	src/Umbraco.Web/Strategies/NotificationsHandler.cs
2019-04-22 12:52:25 +02:00
Kenn Jacobsen c35a3fa702 Send notifications for rollbacks 2019-04-22 12:51:37 +02:00
Kenn Jacobsen 153ac58d2a Send notifications for rollbacks 2019-04-22 12:50:44 +02:00
Kenn Jacobsen a969ff6e10 Make sure Nested Content scaffolds are listed in defined sort order 2019-04-22 12:34:19 +02:00
Kenn Jacobsen c7b4d1b206 Always show file names for media/files without thumbnail 2019-04-22 12:31:01 +02:00
Sebastiaan Janssen aaf8ba0211 Merge branch 'v7/dev' into v8/dev
# Conflicts:
#	src/Umbraco.Core/IO/MediaFileSystem.cs
2019-04-22 12:28:33 +02:00
Kenn Jacobsen 072c014055 Read image dimensions via GDI if EXIF fails with an exception 2019-04-22 12:21:55 +02:00
Kenn Jacobsen 655befde42 Read image dimensions via GDI if EXIF fails with an exception 2019-04-22 12:19:36 +02:00
Sebastiaan Janssen 344b7731ce Fix JS unit tests 2019-04-22 12:10:53 +02:00
Sebastiaan Janssen 687cc4630f Fix missing semicolon 2019-04-22 10:47:00 +02:00
Kenn Jacobsen e180bb6722 V8: Fix broken listview pagination when using the back link (#5149) 2019-04-22 10:44:29 +02:00
Kenn Jacobsen 32104fff41 V8: Add back button to listviews for members (#5158)
* Add back button to edit member

* Don't set illegal location (with querystring params)
2019-04-22 10:21:38 +02:00
Kenn Jacobsen 8b6fbee47e V8: Add back button to listviews in media (#5116) 2019-04-22 10:00:51 +02:00
Kenn Jacobsen 59df7f1399 Ensure consistency in the way panels are spaced 2019-04-22 09:57:44 +02:00
Kenn Jacobsen f55e05da79 Don't explode when passing bad parameters to log resource 2019-04-22 09:55:38 +02:00
Kenn Jacobsen 2a43170915 V8: Add toggle group (#5096)
V8: Add toggle group
2019-04-22 09:16:41 +02:00
Kenn Jacobsen 717f8c9944 Fix mapping for search results 2019-04-21 21:00:34 +02:00
Kenn Jacobsen ff4fe2cd79 Send notifications for changes in permissions 2019-04-21 13:22:49 +02:00
Mike 233f00e2d4 improvment: update tabbed focus colour to use blueExtraDark 2019-04-20 20:37:22 +01:00
Mike 18a2871419 feat: return focus to password field on password reveal toggle 2019-04-20 20:20:30 +01:00
Mike 8c954ef433 feat: add clear tabbed focus state to form inputs 2019-04-20 20:15:33 +01:00
Mike b232d3c694 feat: add a 'tabbing-active' class when a person starts tabbing 2019-04-20 20:05:18 +01:00
Kenn Jacobsen d2f727a1ba Send notifications when an item is moved or restored 2019-04-20 20:40:52 +02:00
Kenn Jacobsen 38bb98b099 Send notifications when an item is copied 2019-04-20 20:31:36 +02:00
Kenn Jacobsen d87464b8e4 Fix the style of the public access confirmation button 2019-04-18 13:48:54 +02:00
Sebastiaan Janssen aba9c89ff4 Merge pull request #5090 from deMD/temp8-5069-getTreePackageFolder-use-localeCompare
V8 Plugins: Changed treeService.getTreePackageFolder to use localeCompare
2019-04-18 12:42:17 +02:00
Sebastiaan Janssen 74f98d51cd Compare to 0 to get the desired result 2019-04-18 12:37:52 +02:00
Sebastiaan Janssen 1e475bfc6f Merge branch 'v8/dev' into pr_5090 2019-04-18 12:11:24 +02:00
Kenn Jacobsen e7f3f8da68 Remove unused translations from area"editcontenttype" 2019-04-18 12:05:17 +02:00
Kenn Jacobsen a3af3d6d2b Use "group" instead of "tab" on Nested Content config 2019-04-18 11:47:36 +02:00
Kenn Jacobsen 29a542a0dd Support stylesheets in subfolders in the RTE 2019-04-18 11:38:34 +02:00
Kenn Jacobsen 73e4c6022d Update the title of the macro view picker 2019-04-18 09:38:20 +02:00
Sebastiaan Janssen eb10d71bff Don't just Parse, the value might be null, have to use TryParse 2019-04-17 16:47:23 +02:00
Sebastiaan Janssen 9cf69d53c2 Merge branch 'v7/dev' into v8/dev
# Conflicts:
#	src/Umbraco.Core/Services/ContentService.cs
#	src/Umbraco.Core/Services/IContentService.cs
#	src/Umbraco.Core/Services/IMediaService.cs
#	src/Umbraco.Core/Services/MediaService.cs
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/Editors/MediaController.cs
2019-04-17 16:39:10 +02:00
Kenn Jacobsen 2a930e5a66 Log the ID of the current user when emptying the media recycle bin 2019-04-17 16:01:18 +02:00
Kenn Jacobsen 2d32863fc9 Audit current user when moving media + clean up a few audit related things 2019-04-17 16:00:21 +02:00
Sebastiaan Janssen 2c32fabd36 Merge pull request #5054 from kjac/fix-content-empty-trash-audit-user
V7: Log correct user ID when emptying the content recycle bin
2019-04-17 15:58:43 +02:00
Kenn Jacobsen a48d97e631 Create explicit overloads for UrlAbsolute 2019-04-17 15:38:47 +02:00
Kenn Jacobsen 4107f47588 Add optional culture parameter to UrlAbsolute extension 2019-04-17 15:38:47 +02:00
Kenn Jacobsen bdac2a4a41 Use umb-checkbox for user filters 2019-04-17 15:35:57 +02:00
Stephan 791581f502 Use ConcurrentDictionary specific methods 2019-04-17 14:52:38 +02:00
Sebastiaan Janssen 1941c0dd1c Merge branch 'v7/dev' into v8/dev
# Conflicts:
#	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
#	src/Umbraco.Core/Persistence/Repositories/Interfaces/IContentRepository.cs
#	src/Umbraco.Core/Services/ContentService.cs
#	src/Umbraco.Core/Services/IContentService.cs
#	src/Umbraco.Core/UriExtensions.cs
#	src/Umbraco.Web.UI.Client/src/common/resources/content.resource.js
#	src/Umbraco.Web.UI.Client/src/common/resources/entity.resource.js
#	src/Umbraco.Web.UI.Client/src/common/resources/media.resource.js
#	src/Umbraco.Web.UI.Client/src/common/services/search.service.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/contentpicker/contentpicker.html
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/linkpicker/linkpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/linkpicker/linkpicker.html
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/mediaPicker/mediapicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.html
#	src/Umbraco.Web.UI.Client/src/views/components/content/umb-content-node-info.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/editors/media.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/editors/rte.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/mediapicker/mediapicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/multiurlpicker/multiurlpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/relatedlinks/relatedlinks.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.prevalues.html
#	src/Umbraco.Web/Cache/UnpublishedPageCacheRefresher.cs
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/Editors/EntityController.cs
#	src/Umbraco.Web/Editors/MediaController.cs
#	src/Umbraco.Web/PropertyEditors/ContentPicker2PropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/GridPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/MediaPicker2PropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/MultiNodeTreePicker2PropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/MultiUrlPickerPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/RelatedLinks2PropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/RichTextPreValueEditor.cs
#	src/Umbraco.Web/PublishedCache/ContextualPublishedCache.cs
#	src/Umbraco.Web/PublishedCache/ContextualPublishedContentCache.cs
#	src/Umbraco.Web/PublishedCache/ContextualPublishedMediaCache.cs
#	src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedContentCache.cs
#	src/Umbraco.Web/Search/UmbracoTreeSearcher.cs
#	src/Umbraco.Web/Trees/ContentTreeControllerBase.cs
#	src/Umbraco.Web/Trees/TreeControllerBase.cs
#	src/Umbraco.Web/Trees/TreeQueryStringParameters.cs
#	src/Umbraco.Web/WebApi/Filters/EnsureUserPermissionForContentAttribute.cs
#	src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingMediaAttribute.cs
#	src/Umbraco.Web/umbraco.presentation/content.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/preview/PreviewContent.cs
2019-04-17 14:52:35 +02:00
Sebastiaan Janssen 650ef39780 Merge branch 'v8/dev' into v8/merge/5061-from-v7 2019-04-17 14:44:10 +02:00
Sebastiaan Janssen 7db0440b5c Merge branch 'v7/dev' into v8/dev
# Conflicts:
#	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
#	src/Umbraco.Core/Persistence/Repositories/Interfaces/IContentRepository.cs
#	src/Umbraco.Core/Services/ContentService.cs
#	src/Umbraco.Core/Services/IContentService.cs
#	src/Umbraco.Core/UriExtensions.cs
#	src/Umbraco.Web.UI.Client/src/common/resources/content.resource.js
#	src/Umbraco.Web.UI.Client/src/common/resources/entity.resource.js
#	src/Umbraco.Web.UI.Client/src/common/resources/media.resource.js
#	src/Umbraco.Web.UI.Client/src/common/services/search.service.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/contentpicker/contentpicker.html
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/linkpicker/linkpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/linkpicker/linkpicker.html
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/mediaPicker/mediapicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.html
#	src/Umbraco.Web.UI.Client/src/views/components/content/umb-content-node-info.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/editors/media.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/editors/rte.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/mediapicker/mediapicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/multiurlpicker/multiurlpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/relatedlinks/relatedlinks.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.prevalues.html
#	src/Umbraco.Web/Cache/UnpublishedPageCacheRefresher.cs
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/Editors/EntityController.cs
#	src/Umbraco.Web/Editors/MediaController.cs
#	src/Umbraco.Web/PropertyEditors/ContentPicker2PropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/GridPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/MediaPicker2PropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/MultiNodeTreePicker2PropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/MultiUrlPickerPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/RelatedLinks2PropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/RichTextPreValueEditor.cs
#	src/Umbraco.Web/PublishedCache/ContextualPublishedCache.cs
#	src/Umbraco.Web/PublishedCache/ContextualPublishedContentCache.cs
#	src/Umbraco.Web/PublishedCache/ContextualPublishedMediaCache.cs
#	src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedContentCache.cs
#	src/Umbraco.Web/Search/UmbracoTreeSearcher.cs
#	src/Umbraco.Web/Trees/ContentTreeControllerBase.cs
#	src/Umbraco.Web/Trees/TreeControllerBase.cs
#	src/Umbraco.Web/Trees/TreeQueryStringParameters.cs
#	src/Umbraco.Web/WebApi/Filters/EnsureUserPermissionForContentAttribute.cs
#	src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingMediaAttribute.cs
#	src/Umbraco.Web/umbraco.presentation/content.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/preview/PreviewContent.cs
2019-04-17 14:35:59 +02:00
Shannon a2a247b413 removes the enforcement of non duplicate property type aliases for now 2019-04-17 21:00:15 +10:00
Shannon 0b6a369047 When removing a property group, we need to first remove the group and then re-assign the property types so that duplicates are not added 2019-04-17 17:12:34 +10:00
Shannon 522fdefb8c Ensures that ALL membership properties are created by the installer, removes the logic that updates a membertype while fetching it, fixes the logic of mapping membership properties when fetching and they don't exist. 2019-04-17 16:42:17 +10:00
Shannon 4d8d10f07a adds comments, ignores test for now 2019-04-17 16:03:36 +10:00
Shannon Deminick 1ad19edfbd Merge pull request #5262 from kjac/v8-fix-listview-annotation-order
V8: Tree node annotation "pending changes" should take precendence over "is listview"
2019-04-17 15:25:12 +10:00
Shannon Deminick 637cf6a608 Merge pull request #5276 from 0Neji/temp-5273
Make DropDownFlexibleConfiguration class public
2019-04-17 15:22:02 +10:00
Rasmus John Pedersen a3ee718824 Add media url provider tests 2019-04-16 15:36:21 +02:00
Rasmus John Pedersen d0701ae34e Add media url provider support 2019-04-16 15:36:21 +02:00
Kenn Jacobsen 3668b68155 Merge with v8/dev 2019-04-16 11:48:20 +02:00
Kenn Jacobsen e8e29c9390 Merge branch 'v8/dev' into v8-fix-macro-parameter-configuration 2019-04-16 11:25:48 +02:00
Kenn Jacobsen 0787824fba Pass default configuration to configuration editor for macro parameter editors 2019-04-16 11:23:22 +02:00
Ben Palmer 40d2898fb8 Make DropDownFlexibleConfiguration class public to allow configuration to be set when creating a new data type 2019-04-16 09:21:24 +01:00
Kenn Jacobsen 2c436d5ae0 Apply nicer log message wrapping 2019-04-16 09:39:54 +02:00
Shannon 6f44e4fd09 Fixes INotifyCollectionChanged collections to raise the correct events, ensures that no duplicate property type aliases can be added/updated to 2019-04-16 17:37:42 +10:00
Rasmus John Pedersen 27b4329c1e Rename udiHelper to udiParser 2019-04-16 08:50:19 +02:00
Shannon 02ddf80014 Adds a unit test 2019-04-16 15:39:28 +10:00
Shannon Deminick 9f9d24e6b3 Merge pull request #5246 from umbraco/v8/bugfix/5216-cache-getbyudi
Add GetById(Udi) to published caches
2019-04-16 12:08:39 +10:00
Shannon e4f6794c59 Merge branch 'kjac-v8-feature-tree-annotations-visibility' into v8/dev 2019-04-16 11:42:22 +10:00
Shannon 440ac40674 Merge branch 'v8-feature-tree-annotations-visibility' of https://github.com/kjac/Umbraco-CMS into kjac-v8-feature-tree-annotations-visibility 2019-04-16 11:42:04 +10:00
Elitsa Marinovska dba241ef50 Adding build script for API docs 2019-04-15 22:04:55 +02:00
Elitsa Marinovska 3b22480b5d Update with correct paths 2019-04-15 21:46:09 +02:00
Kenn Jacobsen 52bc4b04b3 Fix annotation hover background color 2019-04-15 21:16:59 +02:00
Kenn Jacobsen 3f5ccb302d Make the tree annotations easier to see 2019-04-15 21:10:09 +02:00
Rasmus John Pedersen 32197f0bd1 Add angular udi helper service 2019-04-15 10:31:10 +02:00
Stephan 6cb55789bd Fix mapper concurrency issue 2019-04-15 10:25:29 +02:00
Shannon 723d9eddd1 unbreaks a ctor change preventing 8.0.2 from being dropped into the bin 2019-04-15 18:15:52 +10:00
Shannon fa655b812c Fix composers ordering 2019-04-15 17:55:22 +10:00
Shannon Deminick 747a8cba2e Merge pull request #5175 from umbraco/v8/bugfix/5174-composer-ordering
Fix composers ordering
2019-04-15 17:54:00 +10:00
Stephan 7e64f455b2 Remove leaked Console.WriteLine 2019-04-15 08:30:04 +02:00
Shannon 576c10cd50 NuCache: fix vanishing content when refreshing content types 2019-04-15 12:56:45 +10:00
Shannon Deminick 0cf609fdce Merge pull request #5240 from umbraco/v8/bugfix/5222-nucache-vanishing-content
NuCache: fix vanishing content when refreshing content types
2019-04-15 12:55:43 +10:00
Shannon Deminick 3a26443f58 Merge pull request #5247 from umbraco/v8/bugfix/bad-local-temp-path
Fix bad local temp path
2019-04-15 12:24:41 +10:00
Kenn Jacobsen 9953aea156 Make tree item annotation "has pending changes" take precendence over "is listview" 2019-04-14 21:03:24 +02:00
Stephan aa75fcfdb3 Fix bad local temp path 2019-04-12 17:40:10 +02:00
Stephan d4ba1298d5 Add GetById(Udi) to published caches 2019-04-12 16:05:43 +02:00
Stephan 14f9445ffb Ensure entities type in content caches GetById(Udi) 2019-04-12 15:34:06 +02:00
Stephan 7f7c9d2796 Merge branch 'v7/bugfix/5216' into v7/dev 2019-04-12 15:33:21 +02:00
Warren Buckley ba4bb843de Merge pull request #5076 from umbraco/temp8-4521-umb-property-editor-css-width
4521 umb-property-editor css width-limitation
2019-04-12 13:56:31 +01:00
Warren Buckley 43fc926f1b Merge pull request #5157 from umbraco/v8/bugfix/5129-ui-app-header-focus
V8: Visually more catching focus highlighting
2019-04-12 10:49:51 +01:00
Elitsa Marinovska e06d18330c Merge pull request #4721 from kjac/v8-fix-invalid-hostname
V8: Handle invalid hostnames
2019-04-12 11:38:03 +02:00
elitsa fb3f2101f0 Merge branch 'v8/dev' into v8-fix-invalid-hostname
# Resolved Conflicts:
#	src/Umbraco.Web.UI/Umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml
2019-04-12 11:27:43 +02:00
Warren Buckley f8f28ec46a Merge branch 'v8/dev' into v8/bugfix/5129-ui-app-header-focus 2019-04-12 09:40:02 +01:00
Elitsa Marinovska 6323dfcf9c Merge pull request #5164 from kjac/v8-fix-navigation-partial-template
V8: Fix navigation partial view template
2019-04-12 10:00:39 +02:00
Elitsa Marinovska 108e3e527f Merge pull request #5178 from kjac/v8-fix-content-type-matching-template-model
V8: Use the content type model when creating a "matching template"
2019-04-12 09:48:00 +02:00
elitsa ebe4c1b3c3 Fixing formatting 2019-04-12 08:56:18 +02:00
Elitsa Marinovska 93f382fc0f Merge pull request #5159 from poornimanayar/error-message-style-hostname
Fix the colour of the error message in the domains overlay
2019-04-12 08:52:46 +02:00
Stephan 8b509656cd NuCache: fix vanishing content when refreshing content types 2019-04-11 18:55:40 +02:00
Kenn Jacobsen 179afe7e0d Add IsVisible extension on IPublishedElement 2019-04-11 17:44:16 +02:00
Niels Lyngsø 92a0ec2964 take valserver and valpropertymsg out of business if we are dealing with invariant property on non-default-language 2019-04-11 13:03:28 +02:00
Niels Lyngsø 760b7ad0ce Merge remote-tracking branch 'origin/v8/dev' into v8/bugfix/5190-invariant-property-validation 2019-04-11 11:53:27 +02:00
Kenn Jacobsen a09e612e1f V8: Fix the layout for editing datatypes in infinite edit mode (#5194)
### Prerequisites

- [x] I have added steps to test this contribution in the description below

If there's an existing issue for this PR then this fixes https://github.com/umbraco/Umbraco-CMS/issues/5154

### Description

This PR fixes the layout of the datatype editor when editing datatypes in infinite editing mode (see #5154 for details).

When applied the editor behaves like this:

![dataype-infinite-editing](https://user-images.githubusercontent.com/7405322/55711636-5df57780-59ed-11e9-958d-0deb05cb17bf.gif)
2019-04-10 15:31:55 +02:00
Niels Lyngsø 9ad5dad710 additional spacing added 2019-04-10 14:59:16 +02:00
Niels Lyngsø 7afd01ff5c Styling update for umb-tags 2019-04-10 14:52:54 +02:00
Niels Lyngsø f8af9fd895 correct spacing between properties 2019-04-10 14:52:39 +02:00
Niels Lyngsø ac1d462bc5 ability to remove tag by pressing delete or backspace 2019-04-10 14:52:16 +02:00
Warren Buckley a4e00b62b3 Merge pull request #5219 from umbraco/v8/bugfix/ui-doc-type-editor
bigger area for add-property + only hover-state if you can edit property
2019-04-10 14:09:03 +02:00
Niels Lyngsø ed8ba3ddcf changed inline-styling into a appearance property 2019-04-10 13:40:06 +02:00
Warren Buckley 9928b770f7 Merge pull request #5221 from umbraco/v8/bugfix/ui-make-toggle-round
Making Umb-Toggle round
2019-04-10 13:28:00 +02:00
Niels Lyngsø 43759fbef3 applied icons again 2019-04-10 12:10:01 +02:00
Niels Lyngsø 94334ff04f style updates 2019-04-10 10:42:29 +02:00
Niels Lyngsø 1fcce288da changed action into buttons for keyboard focus 2019-04-10 10:42:21 +02:00
Niels Lyngsø 5fbd455fd8 align description with title 2019-04-10 10:41:58 +02:00
Shannon be7f42c454 Don't show the recycle bin in tree pickers/dialogs 2019-04-10 09:52:06 +10:00
Shannon Deminick ff707e8768 Merge pull request #4960 from kjac/v8-fix-tree-dialog-remove-recycle-bin
V8: Don't show the recycle bin in tree pickers/dialogs
2019-04-10 09:50:42 +10:00
Ronald Barendse d2e04614c6 Added UDI support for GetById and fixed bug not using specified preview mode 2019-04-09 23:21:40 +02:00
Stephan e540a4ac23 IsVisible moves from publishde content to element 2019-04-09 21:24:55 +02:00
Stephan ed4de5b000 Merge pull request #5041 from kjac/v8-feature-element-isvisible
V8: Add IsVisible extension on IPublishedElement
2019-04-09 21:20:37 +02:00
Niels Lyngsø 699c34263e bigger area for add-property + only hover-state if you can edit property 2019-04-09 16:42:24 +02:00
Rasmus John Pedersen c96cd09dba Add RTE media url -> localLink migration 2019-04-09 15:35:42 +02:00
Rasmus John Pedersen a96bca5fab Remove isMedia workaround 2019-04-09 15:35:41 +02:00
Rasmus John Pedersen 8e5d33b15e Resolve media urls when parsing localLink 2019-04-09 15:35:37 +02:00
Niels Lyngsø b6918253c0 if invariant property then only validate if we are working on the default language. 2019-04-09 15:07:31 +02:00
Rasmus John Pedersen 0a66bbb293 Use localLink for media 2019-04-09 11:59:09 +02:00
Rasmus John Pedersen f246dd7dca Support editing media links 2019-04-09 11:59:09 +02:00
Bjarke Berg b29fd4ada3 Merge pull request #5192 from umbraco/v8/bugfix/5183-mapping-enumerables
Fix mapping of enumerable
2019-04-09 11:51:39 +02:00
Bjarke Berg b1674235e9 Merge pull request #5167 from umbraco/v8/bugfix/checkboxlist-fix
Fixing property editor "checkboxlist" to work in v8
2019-04-09 11:12:13 +02:00
Niels Lyngsø 8441d9017b Merge remote-tracking branch 'origin/v8/dev' into v8/bugfix/checkboxlist-fix 2019-04-09 08:54:02 +02:00
Shannon 7e1ee26dee Fix spelling mistake 2019-04-09 10:34:59 +10:00
Shannon Deminick 980528c652 Merge pull request #5197 from redmorello/v8/dev
Fix spelling mistake in the Packages section of the back office
2019-04-09 10:33:10 +10:00
Shannon Deminick 0f6f7294a2 Merge pull request #5193 from kjac/v8-feature-donotcloneattribute-public
V8: Make DoNotCloneAttribute public
2019-04-09 10:25:52 +10:00
Kenn Jacobsen 0f969ecdd4 Setup non-selectable nodes after the treepicker loads 2019-04-08 19:56:15 +02:00
Stephan 6c8ded6275 Better mapping of enumerable 2019-04-08 16:41:33 +02:00
Ian Houghton a90ae4ae28 Fix spelling mistake 2019-04-08 14:48:42 +01:00
Niels Lyngsø 968fc40622 Merge remote-tracking branch 'origin/v8/dev' into v8/bugfix/checkboxlist-fix 2019-04-08 15:22:59 +02:00
Stephan c4db0a3dc1 Merge pull request #5188 from kjac/v8-fix-relationtype-map-alias
V8: Relation type alias is "generating" when editing an existing relation type
2019-04-08 14:32:24 +02:00
Kenn Jacobsen ceaae13575 Make DoNotCloneAttribute public 2019-04-08 10:39:37 +02:00
Stephan 9eb1415796 Fix mapping of enumerable 2019-04-08 10:05:21 +02:00
Stephan 091fae39a3 Merge pull request #5177 from kjac/v8-fix-entityslim-additionaldata-mapping
V8: Missing "metadata" breaks media picker (mapping issue)
2019-04-08 08:59:07 +02:00
Kenn Jacobsen 1aec0e1d9c Fix exception types as per review 2019-04-08 07:24:56 +02:00
Kenn Jacobsen 22f43e67f5 Include relation type alias when mapping to RelationTypeDisplay 2019-04-07 20:13:39 +02:00
Stephan 1c9b449c46 Log more details about boot environment 2019-04-07 16:25:06 +02:00
Stephan b0ef69a4ec Log more details about boot environment 2019-04-07 16:24:35 +02:00
Stephan 5cb85ebd52 Merge branch 'v8/bugfix/5163-mapping-confusion' into v8/dev 2019-04-07 13:00:14 +02:00
Stephan 89b39be83f Comment out dangerous methods 2019-04-07 12:59:59 +02:00
Stephan ce89aa4857 Minor mapping fix 2019-04-07 12:56:11 +02:00
Stephan 6aeea47f6f Minor fix 2019-04-07 11:27:34 +02:00
Stephan 8049c40f90 Stop exposing mapper in MapperContext 2019-04-07 11:26:47 +02:00
Stephan 1af431a27d Merge pull request #5181 from kjac/v8-fix-variant-listview
V8: Fix YSOD on variant content listview
2019-04-07 10:34:01 +02:00
Stephan 814b8e3b7d Merge pull request #5180 from kjac/v8-fix-save-variant-content
V8: YSOD when saving variant content (mapping issue)
2019-04-07 10:29:37 +02:00
Kenn Jacobsen 9326aac6d3 Pass the mapping context when mapping properties, to ensure that variant properties are mapped according to the current language context 2019-04-06 21:53:40 +02:00
Kenn Jacobsen cb921b1fe2 Pass the mapping context when mapping properties, otherwise variant properties can't be mapped due to missing culture in mapping context 2019-04-06 21:39:16 +02:00
Stephan 9536a868e0 Fix erroneous log message when upgrading 2019-04-06 19:11:01 +02:00
Stephan 0a4465f721 Fix mapping comment 2019-04-06 18:35:07 +02:00
Stephan 9c06ef83e2 Merge pull request #5176 from kjac/v8-fix-map-usergroup-assignedusergrouppermissions
V8: Fix node permissions YSOD (mapping issue)
2019-04-06 18:33:04 +02:00
Kenn Jacobsen f5ad4c67eb Include AdditionalData when mapping IEntitySlim to EntityBasic 2019-04-06 12:24:41 +02:00
Kenn Jacobsen 851f74528f Include UserGroup ID when mapping UserGroup to AssignedUserGroupPermissions 2019-04-06 08:18:40 +02:00
Kenn Jacobsen 2ee8f9dea2 Use the content type model when creating a "matching template" 2019-04-06 08:00:44 +02:00
Stephan 4f6f5cc3fd Merge pull request #5173 from kjac/v8-fix-create-content-type-with-template
V8: YSOD when creating the same content type twice (mapping issue)
2019-04-05 19:05:23 +02:00
Stephan c87a9d6bfa Fix composers ordering 2019-04-05 19:00:34 +02:00
Kenn Jacobsen a9ceb82158 Don't explode when attempting to create a new content type with a template (mapping issue) 2019-04-05 15:18:34 +02:00
Niels Lyngsø ae853a178d Merge remote-tracking branch 'origin/v8/dev' into v8/bugfix/checkboxlist-fix 2019-04-05 14:02:21 +02:00
Niels Lyngsø a4d8f0cd55 Fixing model sync, much weird code cleaned up 2019-04-05 14:01:28 +02:00
Bjarke Berg 9d9c201984 Merge pull request #5140 from umbraco/temp8-ui-use-umb-checkbox-for-select-all-in-listview
Use umb-checkbox for select all in listview
2019-04-05 11:33:10 +02:00
Bjarke Berg c21ffd4417 Merge pull request #5166 from umbraco/v8/bugfix/ui-umb-toggle-v8-look
Changed umb-toggle look to fit with v8
2019-04-05 10:38:44 +02:00
Niels Lyngsø f141025248 Fixing checkbox list to work in v8 2019-04-05 09:43:27 +02:00
Niels Lyngsø afad606d05 Changed umb-toggle look to fit with v8 2019-04-05 09:14:19 +02:00
Stephan 406fd892b4 Document UmbracoMapper 2019-04-05 09:08:00 +02:00
Stephan 4ceef88f59 Merge pull request #5165 from kjac/v8-fix-template-mapping
V8: Can't save templates (missing mapping profile)
2019-04-05 09:06:44 +02:00
Bjarke Berg bdacb7da76 Merge pull request #5011 from umbraco/v8/feature/284-content-type-repo
Content/Media/MemberTypeRepository refactoring
2019-04-05 08:21:11 +02:00
Bjarke Berg 36c35750cd Merge remote-tracking branch 'origin/v8/dev' into v8/feature/284-content-type-repo 2019-04-05 07:49:55 +02:00
Shannon e38095b727 NuCache: fix loading the media cache from local files, was missing media 2019-04-05 10:49:19 +11:00
Shannon Deminick a4c3fdd634 Merge pull request #5162 from umbraco/v8/bugfix/5121-nucache-missing-media
NuCache: fix loading the media cache from local files, was missing media
2019-04-05 10:48:26 +11:00
Shannon 84d69b363a Merge remote-tracking branch 'origin/v8/dev' into v8/bugfix/5121-nucache-missing-media 2019-04-05 10:46:44 +11:00
Shannon b5796ad237 Enable configuration of NuCache BTree block size #5114 2019-04-05 10:44:36 +11:00
Shannon Deminick c6038c6920 Merge pull request #5114 from umbraco/v8/bugfix/4998-nucache-large-volumes
Enable configuration of NuCache BTree block size
2019-04-05 10:43:02 +11:00
Shannon da8fea205a Merge branch 'v8/dev' into v8/bugfix/4998-nucache-large-volumes 2019-04-05 10:39:32 +11:00
Kenn Jacobsen 1999d6121a Proper fix for the mapping 2019-04-04 20:09:21 +02:00
Kenn Jacobsen 295f805f6a Can't save template (fix template mapping) 2019-04-04 19:57:10 +02:00
Kenn Jacobsen 6e1a40e2ee When creating partial views from templates, also replace (Model.Content) with (Model) - building upon the logic in e2d41106 2019-04-04 19:41:39 +02:00
Stephan 4ec51da737 NuCache: fix loading the media cache from local files, was missing media 2019-04-04 17:57:04 +02:00
Poornima Nayar 75bba068a4 Fix the colour of the error message in the domains overlay 2019-04-04 16:39:53 +02:00
Shannon Deminick d0b9fb7d6f Merge pull request #5087 from umbraco/v8/feature/284-auto-mapper
Refactor (auto) mapping
2019-04-05 00:59:22 +11:00
Shannon bff920fa50 Merge branch 'v8/dev' into v8/feature/284-auto-mapper
# Conflicts:
#	src/Umbraco.Core/Composing/SetCollectionBuilderBase.cs
2019-04-05 00:58:56 +11:00
Shannon ac6020ff79 removes the unneeded ctor param 2019-04-05 00:56:18 +11:00
Shannon 2e1dd7f4a9 splits appstate.service and editorstate.service 2019-04-05 00:11:05 +11:00
Shannon fe2c519d75 fixes tests 2019-04-05 00:00:22 +11:00
Shannon Deminick 2ae639a3ae Merge pull request #5099 from umbraco/v7/feature/5059-alt-preview
Alternate Preview Engine
2019-04-04 23:35:23 +11:00
Niels Lyngsø 30da32ee94 Visually more catching focus highlighting 2019-04-04 14:15:57 +02:00
Shannon de8f01a4b2 Merge branch 'v7/dev' into v7/feature/5059-alt-preview 2019-04-04 23:11:27 +11:00
Shannon Deminick 984c31f586 Merge pull request #4955 from umbraco/temp8-server-content-validation-fixes-4884
v8 - Fixes multiple issues with variant validation
2019-04-04 22:15:26 +11:00
Shannon 9da236809a Merge branch 'temp8-server-content-validation-fixes-4884' of https://github.com/umbraco/Umbraco-CMS into temp8-server-content-validation-fixes-4884 2019-04-04 21:58:11 +11:00
Shannon 92b64b2ca6 Changes controller to be explicit about which culture will be affiliated with invariant property issues 2019-04-04 21:57:49 +11:00
Kenn Jacobsen 2c6d400055 Various UX improvements to the RTE configuration (#5122) 2019-04-04 12:44:19 +02:00
Kenn Jacobsen 4a8449d80d Replace listview bulk action checkboxes with umb-toggle (#5128) 2019-04-04 11:47:03 +02:00
Stephan dc337a60ac NuCache dashboard cosmetics 2019-04-04 11:08:33 +02:00
Shannon Deminick 3505984b4d Merge pull request #5138 from Jeavon/bugfix/xmlhelper-public
Make XmlHelper class public again
2019-04-04 19:51:13 +11:00
Jeavon e23b9153a0 fix: set some methods within XmlHelper to internal 2019-04-04 09:45:04 +01:00
Stephan f985c437b5 Add content.SetValue overload for posted files 2019-04-04 09:28:34 +02:00
Andrew Deans 63fb8f5933 Fix case of query parameter 2019-04-04 09:12:40 +02:00
Stephan 571df1894a Cleanup fixmes 2019-04-04 08:36:16 +02:00
Stephan f66e92801d Merge branch 'v8/dev' into temp8-server-content-validation-fixes-4884 2019-04-04 08:27:00 +02:00
Stephan 90c5ddf0dc BaseMapper does not need be IDiscoverable 2019-04-04 08:26:26 +02:00
Bjarke Berg fd6368946c Merge pull request #5146 from umbraco/v8/bugfix/4811
use text-overflow for better look in narrow screens
2019-04-04 07:54:25 +02:00
Shannon Deminick 7d248bd2c8 Merge pull request #5106 from umbraco/v8/feature/284-npoco-mappers
Simplify our Poco mappers
2019-04-04 15:39:05 +11:00
Shannon Deminick 10f22f7848 Merge pull request #5118 from kjac/v7-fix-content-info-contenttype-alias
V7: Add content type alias to content "general" info box
2019-04-04 14:02:06 +11:00
Niels Lyngsø 8472b48ba8 use text-overflow for better look in narrow screens 2019-04-03 15:45:41 +02:00
Matt Darby 7568ab20ac Fix users layout jumping when a user is selected (#4939)
* Remove "xs" sizing from selected user buttons
* Only remove "xs" from first button
2019-04-03 15:31:09 +02:00
Niels Lyngsø bc821db8eb less space for content-node and media-node 2019-04-03 15:11:55 +02:00
Niels Lyngsø 959402d545 removed permissions column 2019-04-03 15:11:36 +02:00
Niels Lyngsø df46593ef3 improved list spacing, better text-overflow & center aligned select-all-checkbox for users list 2019-04-03 15:00:00 +02:00
Niels Lyngsø 1ff67df9df Merge remote-tracking branch 'origin/v8/dev' into temp8-4521-umb-property-editor-css-width 2019-04-03 13:47:30 +02:00
Bjarke Berg 74bfaabf90 Added null-check before updating the count. (#5142) 2019-04-03 13:35:01 +02:00
Bjarke Berg a0f5a466ac Merge pull request #5141 from umbraco/temp8-4427-3
check if value exists
2019-04-03 13:22:04 +02:00
Niels Lyngsø 2529193ca9 finished the work 2019-04-03 13:07:00 +02:00
Niels Lyngsø 92a68d3887 check if value exists 2019-04-03 12:46:55 +02:00
Niels Lyngsø db0a069b02 move highlight css to umb-table-body__link 2019-04-03 12:40:15 +02:00
Stephan e6b26d72e6 NuCache dashboard cosmetics 2019-04-03 11:57:45 +02:00
Jeavon ef79e6c0e9 fix: make XmlHelper class public 2019-04-03 10:54:53 +01:00
Bjarke Berg a99c8ad2ba UI-Fix for readonly values on members. 2019-04-03 11:40:51 +02:00
Niels Lyngsø 9379efceae early testing 2019-04-03 11:22:00 +02:00
Niels Lyngsø 4e027f7c83 space correction 2019-04-03 11:19:26 +02:00
Niels Lyngsø d2ff96e7ea show checkmark icon when checked 2019-04-03 11:18:37 +02:00
Niels Lyngsø 17e9487bf0 remove end of none existing anchor element 2019-04-03 11:18:15 +02:00
Stephan aad245d5a8 Fix mappers 2019-04-03 11:17:51 +02:00
Stephan 7fa71a2f4e Fix mappers 2019-04-03 11:03:35 +02:00
Niels Lyngsø 7f61a6fe9f ability to open as a new tab 2019-04-03 10:51:01 +02:00
Stephan 7a6884d208 Rename mapper stuff 2019-04-03 10:39:49 +02:00
Niels Lyngsø 3d949c9a55 changed user groups to use umb-table 2019-04-03 10:37:31 +02:00
Stephan eb2a506dd8 Merge pull request #5135 from andrewdeans/v8/dev
Fix case of query parameter
2019-04-03 08:00:17 +02:00
Shannon eb529783c4 Don't allow move in members listview 2019-04-03 16:22:13 +11:00
Shannon Deminick a6fa23426e Merge pull request #5125 from kjac/v8-fix-members-disable-bulk-move
V8: Don't allow move in members listview
2019-04-03 16:21:10 +11:00
Andrew Deans 6ac5e19e9f Fix case of query parameter 2019-04-02 23:00:08 -04:00
Shannon a8265db5f0 Reload listview after moving items 2019-04-03 10:45:04 +11:00
Shannon Deminick b73d798b54 Merge pull request #5117 from kjac/v8-fix-listview-reload-after-move
V8: Reload listview after moving items
2019-04-03 10:44:00 +11:00
Shannon Deminick f5d1ae0a3f Merge pull request #5130 from MMasey/update-syncing-fork-info
fix: update contributing.md with correct branch to rebase with (v8/dev)
2019-04-03 10:35:04 +11:00
Mike Masey 6d6121faa6 feat: add updated defaultbranch image and update missed dev-v8 references to v8/dev 2019-04-02 20:47:47 +01:00
Mike Masey 9d4ecc1d41 fix: update contributing.md with correct branch to rebase with (v8/dev) 2019-04-02 20:09:03 +01:00
Stephan 389ee7ec84 Review, cleanup 2019-04-02 18:02:44 +02:00
Kenn Jacobsen 9fe86169dc Don't allow move in members listview 2019-04-02 15:43:57 +02:00
Stephan fd8cef59ef Merge branch 'v8/dev' into temp8-server-content-validation-fixes-4884 2019-04-02 14:03:02 +02:00
Bjarke Berg a45eda9d19 #284 - Removed unused variables/parameters 2019-04-02 13:46:37 +02:00
Stephan 27e145fe3d Fix temporal coupling 2019-04-02 13:35:01 +02:00
Stephan 04427e4c61 Merge branch 'v8/dev' into v8/feature/284-npoco-mappers 2019-04-02 12:03:55 +02:00
Stephan 4e7e784d7c Merge branch 'v8/dev' into v8/feature/284-content-type-repo 2019-04-02 12:03:26 +02:00
Stephan c5f934930e Merge branch 'v8/dev' into v8/feature/284-auto-mapper 2019-04-02 12:03:05 +02:00
Stephan b524019fc4 Merge branch 'v8/dev' into v8/bugfix/4998-nucache-large-volumes 2019-04-02 12:02:45 +02:00
Niels Lyngsø 0997fe6732 checkmark column removed 2019-04-02 10:12:21 +02:00
Bjarke Berg 06bee124ee Merge pull request #4560 from umbraco/temp8-4011
Temp8 Fix for #4011
2019-04-02 09:47:30 +02:00
Bjarke Berg a9f5d3c1e8 #4011 - Use discreet word not disgrete 2019-04-02 09:41:29 +02:00
Stephan bf1e9b48be Comment (bump PR) 2019-04-02 09:40:14 +02:00
Warren Buckley b0e6618773 Merge pull request #5105 from kjac/v8-fix-logviewer-search-ux
V8: Improvements for logviewer search results view
2019-04-02 09:15:51 +02:00
Bjarke Berg 76e2f2f380 #4011 - Not using a unnecessary function call in views 2019-04-02 09:15:30 +02:00
Bjarke Berg d58106d976 Merge remote-tracking branch 'origin/v8/dev' into temp8-4011 2019-04-02 08:36:39 +02:00
Kenn Jacobsen fb1f2c8af4 Add content type alias to content "general" info box 2019-04-02 08:12:46 +02:00
Kenn Jacobsen 392d4f7f96 Reload listview after moving items 2019-04-01 19:56:14 +02:00
Warren Buckley 3af8d0e4f5 Merge pull request #5109 from leekelleher/chore/constants-root
V8: Updated Constant.System.Root references (to use correct constant, and others)
2019-04-01 13:48:33 +01:00
Stephan 92c380fce1 Merge branch v8/dev into temp8-server-content-validation-fixes-4884 2019-04-01 13:48:25 +02:00
Stephan 61cfba506a Merge branch 'temp8-4217-datatype-edits-updates-content-editor' into v8/dev 2019-04-01 12:19:11 +02:00
Stephan 4906231dcd Merge branch 'v8/dev' into temp8-4217-datatype-edits-updates-content-editor 2019-04-01 12:15:57 +02:00
Stephan c1856723ba Merge branch 'temp8-4427-3' into v8/dev 2019-04-01 12:07:00 +02:00
Stephan 58efda69f5 Merge branch 'v8/dev' into temp8-4427-3 2019-04-01 12:00:35 +02:00
Stephan 305bcb3b5d Cleanup 2019-04-01 08:31:33 +02:00
Stephan e6d75f27de Alt. preview: rename modes 2019-04-01 08:23:48 +02:00
Stephan 9bcd70589c Alt. preview: thread safety 2019-04-01 08:21:01 +02:00
Shannon 7dcf2b1abb infinity editing dim-layer for umb-modelcolumn 2019-04-01 17:05:13 +11:00
Shannon Deminick b0c7a7bdaf Merge pull request #5079 from umbraco/temp8-4828
fixes 4828 — by adding dimmed-layer for umb-modelcolumn
2019-04-01 17:04:05 +11:00
Shannon Deminick 80d1d73d7c Merge pull request #5107 from umbraco/v8/feature/284-no-viewbag
Replace dynamic ViewBag with ViewData
2019-04-01 16:47:13 +11:00
Stephan 514452ddb9 Better ServerMessenger configuration 2019-04-01 16:30:37 +11:00
Shannon Deminick 6a8ae22c6c Merge pull request #5013 from umbraco/v8/feature/5012-messenger-options
Better ServerMessenger configuration
2019-04-01 16:29:21 +11:00
Shannon b4885f48d7 fixing bad merge problem 2019-04-01 14:31:34 +11:00
Shannon d0d5d37400 Merge remote-tracking branch 'origin/v8/dev' into temp8-4011
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/grid/grid.rte.directive.js
#	src/Umbraco.Web.UI.Client/src/views/components/grid/grid-rte.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.html
2019-04-01 14:27:11 +11:00
Shannon 043f4f3d02 Revert "Merge remote-tracking branch 'origin/v8/8.0' into temp8-4011"
This reverts commit e73cf590b7, reversing
changes made to 89903a633b.
2019-04-01 14:20:47 +11:00
Shannon e73cf590b7 Merge remote-tracking branch 'origin/v8/8.0' into temp8-4011 2019-04-01 14:16:13 +11:00
Stephan 1eb55a83c0 Merge branch 'patch-8.0.1' into v8/8.0 2019-03-30 12:13:12 +01:00
Stephan 2b2db8bf24 Enable configuration of NuCache BTree block size 2019-03-29 19:18:22 +01:00
leekelleher 0a687ab7ce Whitespace formatting in the Constants classes
Also removed unused namespaces.
2019-03-29 12:26:42 +00:00
leekelleher 533d2cf8dd Replaced hardcoded "-1" with Constants.System.RootString 2019-03-29 12:18:52 +00:00
leekelleher b44360aa99 Swapped System.RecycleBinMedia string conversions
to use the `System.RecycleBinMediaString` constant.

This saves on integer parsing and reduces the number of
new strings being created.

Since the `System.RecycleBinMedia` is `-21`, it didn't
need the culture invariant conversion.
2019-03-29 12:17:12 +00:00
Kenn Jacobsen 31e4701487 Re-style things so the saved searches link is inside the input field 2019-03-29 13:17:00 +01:00
leekelleher a4c96678e5 Swapped System.RecycleBinContent string conversions
to use the `System.RecycleBinContentString` constant.

This saves on integer parsing and reduces the number of
new strings being created.

Since the `System.RecycleBinContentString` is `-20`, it didn't
need the culture invariant conversion.
2019-03-29 12:14:27 +00:00
leekelleher 13564c72ef Replaced hardcoded "-1" with Constants.System.RootString 2019-03-29 12:13:38 +00:00
leekelleher f4bd0cd1f5 Swapped all System.Root string conversions
to use the `System.RootString` constant.

This saves on integer parsing and reduces the number of
new strings being created.

Since the `System.Root` is `-1`, it didn't need the culture invariant
conversion.
2019-03-29 12:06:23 +00:00
Stephan cea8753ff2 Replace dynamic ViewBag with ViewData 2019-03-29 09:56:56 +01:00
Stephan 961cbf694e Simplify our Poco mappers 2019-03-29 09:46:36 +01:00
Warren Buckley 853087a750 Merge pull request #4970 from poornimanayar/cleanup-logview-saved-searches
General tidy up of styles for logviewer
2019-03-29 08:23:17 +00:00
Bjarke Berg 0d1683fa61 Merge pull request #5091 from umbraco/temp8-4669-ui-discreet-option-for-set-date-input
UI changes for Schedule Publishing
2019-03-29 08:37:52 +01:00
Stephan 07bb7ac0f7 Add content.SetValue overload for posted files 2019-03-29 08:26:36 +01:00
Shannon Deminick 212af8be10 Merge pull request #4877 from kjac/v8-feature-get-multiple-members
V8: Add methods for fetching multiple members to UmbracoHelper
2019-03-29 11:19:51 +11:00
Kenn Jacobsen 6a69906fb6 Make the "save search" dialog a little prettier 2019-03-28 17:11:00 +01:00
Kenn Jacobsen d49d4bcdeb Align the logviewer search icons to the right of the search field 2019-03-28 17:10:41 +01:00
Shannon 28210896a8 fixes logic with publish due to flag enums 2019-03-29 00:32:52 +11:00
Shannon c67298dcd4 recommitting, the build server just died for some reason 2019-03-29 00:08:53 +11:00
Shannon 5a626acb3a Fixes up a bunch more validation logic, adds unit tests to support 2019-03-28 23:59:49 +11:00
Kenn Jacobsen 6d9ed6c59b Change Member to Members (plural) for methods returning multiple members 2019-03-28 12:46:54 +01:00
Stephan f8f1fea407 Various corrections to mappers 2019-03-28 12:38:04 +01:00
Stephan 0676726bfc Refactor preview 2019-03-28 10:52:19 +01:00
Stephan bb43fc310a Add service-level loading of preview Xml document 2019-03-27 17:11:21 +01:00
Niels Lyngsø 8da9ecc9e4 date-wrapper styles for variants schedule publishing 2019-03-27 12:49:03 +01:00
Dave de Moel ff9179a15f Changed check to use localeCompare 2019-03-27 10:33:21 +01:00
Stephan 3524ba83a8 Merge branch 'v7/bugfix/5019-change-log-level' into dev-v7 2019-03-27 10:29:30 +01:00
Stephan 9b13d8f5d7 Stop logging useless errors in UriExtensions 2019-03-27 10:29:11 +01:00
Stephan c9f1d9aaf6 Merge branch 'temp8-4839-siblings' into dev-v8 2019-03-27 10:21:14 +01:00
Stephan 8f51e2634c Merge branch 'dev-v8' into temp8-4839-siblings 2019-03-27 10:17:57 +01:00
Stephan 47cb03bb38 Fix mapper and mapping 2019-03-27 09:35:57 +01:00
Stephan 72bdf56ddf Cleanup and fix mappers 2019-03-27 09:15:32 +01:00
Stephan 70c2090a56 Refactor more mappers - AutoMapper gone now 2019-03-27 09:15:32 +01:00
Stephan d274737296 Refactor more mappers 2019-03-27 09:15:32 +01:00
Stephan 92139dd0c9 Refactor more mappers 2019-03-27 09:15:32 +01:00
Stephan 5bcafba34c Refactor more mappers 2019-03-27 09:15:32 +01:00
Stephan a6dc5f0eac Refactor more mappers 2019-03-27 09:15:31 +01:00
Stephan cd0338498f Fix BackOfficeIdentityUser 2019-03-27 09:15:31 +01:00
Stephan 57067d7e56 Use Umbraco.Code to ensure proper mapping 2019-03-27 09:15:31 +01:00
Stephan ef5646fa3b Cleanup, reduce AutoMapper exposure 2019-03-27 09:15:31 +01:00
Stephan b43e113cb6 Experiment with mapping (perfs) 2019-03-27 09:15:31 +01:00
Bjarke Berg 13c11e0434 Merge pull request #5065 from umbraco/temp8-ui-change-notification-style
V8: UI changed notification style
2019-03-27 09:07:21 +01:00
Bjarke Berg 97879fc7aa Merge pull request #5063 from umbraco/temp8-ui-change-redirectmanagement-button-styles
V8: changed button styles for a better low hanging-fruit solution
2019-03-27 08:41:01 +01:00
Niels Lyngsø 719a4a8b6a adjusted size 2019-03-27 08:29:04 +01:00
Shannon ef3f349764 Fixes issue with ContentService.SaveAndPublish when dealing with cultures since it wouldn't actually save the content if it was invalid - we always must save even if data is invalid, this was an oversight with the rush to release with these last minute APIs 2019-03-27 18:00:17 +11:00
Shannon 15a984f68c Merge branch 'dev-v8' into temp8-server-content-validation-fixes-4884
# Conflicts:
#	src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml
2019-03-27 16:33:26 +11:00
Shannon 22662042b5 Fixes up more of dealing with invariant property validation 2019-03-27 16:31:53 +11:00
Shannon 8042405d94 WIP - Fixing up validation so that invariant properties are only validated on the default lang or if the item is not published 2019-03-27 12:41:02 +11:00
Shannon e222bf2920 Reverts the previous changes of validating all languages against invariant properties 2019-03-27 12:39:05 +11:00
Kenn Jacobsen 4d0d17eb1b Remove params overloads on MembershipHelper 2019-03-26 15:11:05 +01:00
Niels Lyngsø d6be02aaec style set date input 2019-03-26 14:57:45 +01:00
Niels Lyngsø 4a14d45a64 remove inline styling 2019-03-26 14:57:30 +01:00
Niels Lyngsø 458e510961 remove double ;; 2019-03-26 14:57:13 +01:00
Niels Lyngsø b36288b987 infinity editing dim-layer for umb-modelcolumn 2019-03-26 14:11:01 +01:00
Stephan dfe6f2029a NuCache: better fixing, cleanup 2019-03-26 10:25:05 +01:00
Stephan 851c844c8b NuCache: fix panic exception 2019-03-26 10:25:05 +01:00
Stephan 7e413ed406 NuCache: troubleshooting 2019-03-26 10:25:05 +01:00
Stephan c56b8863ee NuCache: reorg some classes 2019-03-26 10:25:05 +01:00
Stephan 13a8548d3a NuCache: rename things 2019-03-26 10:25:05 +01:00
Stephan a70cb51559 NuCache: cleanup scoped objects 2019-03-26 10:25:05 +01:00
Kenn Jacobsen 8a56b3db16 Fix the "Language" dropdown in the "Culture and Hostnames" dialog 2019-03-26 20:10:50 +11:00
Niels Lyngsø a7941b9678 setting width limit of selected property editors 2019-03-26 10:10:34 +01:00
Niels Lyngsø 31fd8066a4 fixing border color, which needs to be white. 2019-03-26 10:10:13 +01:00
Bjarke Berg 4fcf2ce7bd Fixed issue when creating variant content templates, but the properties is invariant. Before this change an exception was thrown 2019-03-26 20:10:03 +11:00
Niels Lyngsø 5899f08d7f removing the default width limitation. 2019-03-26 10:09:43 +01:00
Niels Lyngsø 8a16c749e1 Mixin for limiting the width of a property-editor 2019-03-26 10:09:21 +01:00
Shannon 080ace90b2 Bugfix: https://github.com/umbraco/Umbraco-CMS/issues/4827 - Fixed MediaPickerValueConverter when config is Only Images 2019-03-26 20:09:12 +11:00
Shannon 2bfa81c707 fixes 4627 + makes front-end validations appear as soon as they are invalid again. 2019-03-26 20:07:42 +11:00
Shannon Deminick ac6767248e Merge pull request #4978 from umbraco/temp8-4627
Fixes front-end validation (4627)
2019-03-26 01:54:06 -07:00
Kenn Jacobsen 64bae439bf Fix stuff from review 2019-03-26 08:44:03 +01:00
Niels Lyngsø 118f6c7e50 added the ability to watch tokens in localization service 2019-03-25 14:46:42 +01:00
Niels Lyngsø 50ee60e8c3 correcting translate tokens to use % 2019-03-25 14:09:29 +01:00
Niels Lyngsø 286978647e fix type mistake, plus correcting math. 2019-03-25 14:04:31 +01:00
Niels Lyngsø 0cc6e51b7a simplify controller + only show text when near limit + different text when exceeding limit 2019-03-25 13:46:57 +01:00
Niels Lyngsø 15d5c67cd3 global text-color variables 2019-03-25 13:46:49 +01:00
Bjarke Berg 011d406301 https://github.com/umbraco/Umbraco-CMS/issues/5019 - Changed log level from error to debug. This will spam the log if we request with invalid parameters 2019-03-25 11:59:41 +01:00
Niels Lyngsø 84e4189b45 added margin and round corners to notifications 2019-03-25 11:37:05 +01:00
Niels Lyngsø e6720a175c changed notification auto remove time to 10 seconds 2019-03-25 11:36:50 +01:00
Robert 026ad4f2a8 fixes - TinyMCE does not sync data to angular store when dragged away in grid-editor (#5048) 2019-03-25 11:07:50 +01:00
Niels Lyngsø bf3ce014cb changed button styles for a better low hanging-fruit solution 2019-03-25 10:51:06 +01:00
Kenn Jacobsen 8bd9ae062d Merge with dev-v7 2019-03-24 13:37:32 +01:00
Kenn Jacobsen d51daa2a8a Make sure the correct user is registered in the log when emptying the recycle bin 2019-03-24 13:25:55 +01:00
Dan White cc9a7ff942 U4 10147 - Bypass User Security option in pickers (#2441) 2019-03-23 12:51:36 +01:00
Sebastiaan Janssen 929fc415bb Merge branch 'dev-v7' into dev-v8
# Conflicts:
#	src/Umbraco.Web/Routing/RedirectTrackingEventHandler.cs
2019-03-23 10:31:50 +01:00
Nathan Woulfe 4e1634754b fix URL redirection creation - was failing when save and save+publish as save creates new URL, which is compared to itself in save+publish (#5036) 2019-03-23 10:29:46 +01:00
Brandon Osborne 080f433140 Updated Upload method (#4850) 2019-03-23 09:59:04 +01:00
Niels Lyngsø 054bc28a0a Merge remote-tracking branch 'origin/dev-v8' into temp8-4217-datatype-edits-updates-content-editor 2019-03-22 16:35:53 +01:00
Niels Lyngsø d806855698 listen for "editors.documentType.saved" instead of "editors.content.reload" 2019-03-22 16:22:36 +01:00
Niels Lyngsø da503cc9b5 listen for "editors.dataTypeSettings.saved" 2019-03-22 16:19:56 +01:00
Niels Lyngsø af4dc97b10 changed ' to " 2019-03-22 16:06:39 +01:00
Niels Lyngsø 019ac52309 emit "editors.dataTypeSettings.saved"-event 2019-03-22 16:06:07 +01:00
Robert 3761d2e483 Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2019-03-22 15:06:44 +01:00
Robert d107289a08 Fixes not being able to add languages 2019-03-22 15:06:09 +01:00
Robert 1d8ed6e507 Merge pull request #5045 from umbraco/v8/bugfix/4683-Change-text-in-culture-and-hostnames
V8: Translation in the culture and hostnames panel.
2019-03-22 14:37:21 +01:00
Robert 4ea169a636 Merge pull request #5049 from umbraco/v8/bugfix/4990-use-skip-and-take-parameters
V8: Use the skip and take parameters in GetVersionsSlim
2019-03-22 14:32:51 +01:00
Bjarke Berg b16bf78c44 Merge pull request #4957 from kjac/v8-fix-region-and-regionless-languages
V8: Allow mixing languages with and without region
2019-03-22 14:03:10 +01:00
Bjarke Berg acf59dc1d0 Formatting 2019-03-22 13:55:46 +01:00
Bjarke Berg f99d3f7419 https://github.com/umbraco/Umbraco-CMS/issues/4990 - Added skip and take 2019-03-22 13:53:40 +01:00
Bjarke Berg 8ab89f5e1c https://github.com/umbraco/Umbraco-CMS/issues/4683 - Translation in the culture and hostnames panel. Our recommendation in V8 is opposite to V7, therefore a new key is introduced 2019-03-22 12:01:08 +01:00
Bjarke Berg 1587e13b23 Merge pull request #5043 from umbraco/temp8-4695-umb-sticky-bar-position-infinity-mode
top: 70px; in infinity mode
2019-03-22 11:42:00 +01:00
Bjarke Berg 0acc8e1f14 Merge pull request #4961 from umbraco/temp8-rename-color-variable-disgrete-to-discreet
Renamed LESS variables with disgrete to discreet
2019-03-22 09:45:50 +01:00
Bjarke Berg 99ebe13ebb Merge pull request #4974 from umbraco/temp8-fix-conditional-sync-of-checkboxlist
Fixing code in sync functionality of checkbox-list
2019-03-22 09:35:31 +01:00
Niels Lyngsø e16777fc28 remove debugger; 2019-03-22 09:21:37 +01:00
Niels Lyngsø 23f36b9d4e top: 70px; in infinity mode 2019-03-22 09:20:50 +01:00
Bjarke Berg 9a6798953b Merge pull request #5026 from umbraco/temp8-ui-hover-state-for-selectable-items
Hover state for selectable items in Lists and Grids
2019-03-21 15:19:53 +01:00
Bjarke Berg c6e6a9d4cc Merge pull request #5023 from umbraco/temp8-ui-unpublished-state-in-list-view
Make unpublished items in list view show with grey text-color on name
2019-03-21 15:10:02 +01:00
Kenn Jacobsen 33a91bb9e9 Add IsVisible extension on IPublishedElement 2019-03-21 15:01:46 +01:00
Sebastiaan Janssen 77692037f6 Merge branch 'dev-v7' into dev-v8
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/content/umbcontentnodeinfo.directive.js
#	src/Umbraco.Web.UI.Client/src/views/components/content/umb-content-node-info.html
2019-03-21 09:56:12 +01:00
Kenn Jacobsen da6b541112 Show duplicate URLs instead of letting them cause an angular error (#3969) 2019-03-21 09:06:01 +01:00
Kenn Jacobsen 0a3f893f22 V8: Improve plugin language handling (#4454) 2019-03-20 23:44:29 +01:00
Sebastiaan Janssen ee911a579f Merge branch 'dev-v7' into dev-v8
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.controller.js
#	src/Umbraco.Web/UmbracoHelper.cs
2019-03-20 23:29:04 +01:00
Sebastiaan Janssen 1a4a3504d0 Remove unused variable 2019-03-20 23:27:42 +01:00
Tom Fulton 5d3b623173 Fix for RTE never being dirty after initial save (#4140) 2019-03-20 23:26:12 +01:00
Marcin Bigoraj 2c271d3ef4 Allow RTE to set form dirty again after saving content item 2019-03-20 23:18:36 +01:00
Mario Lopez 9a6d938004 fixed xmldoc 2019-03-20 23:10:32 +01:00
Mario Lopez 125423947c add Udi[] to TypedContent helper 2019-03-20 23:10:32 +01:00
Sebastiaan Janssen 263ee5c297 Merge branch 'dev-v7' into dev-v8
# Conflicts:
#	src/Umbraco.Web/PropertyEditors/RichTextPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/ValueConverters/RteMacroRenderingValueConverter.cs
#	src/Umbraco.Web/Templates/TemplateUtilities.cs
2019-03-20 23:03:18 +01:00
Kenn Jacobsen 99b80e0f56 Ensure that media in RTEs are always rendered with up-to-date sources 2019-03-20 22:46:42 +01:00
Robert d7ad19d6c9 Merge pull request #4822 from kjac/v8-grid-hide-empty-sticky-bar
V8: Hide empty sticky bar in Grid
2019-03-20 15:17:26 +01:00
Bjarke Berg 13fd177325 Merge remote-tracking branch 'origin/dev-v8' into dev-v8 2019-03-20 13:30:03 +01:00
Bjarke Berg c589ef1995 https://github.com/umbraco/Umbraco-CMS/issues/5024 - Fixed issue, when using the culture overload of the Children. Now we use ChildrenOfType if alias is set. 2019-03-20 13:29:39 +01:00
Sebastiaan Janssen ff33e0d969 Fix merge mistake 2019-03-20 13:22:22 +01:00
Sebastiaan Janssen 559debc079 Merge branch 'dev-v7' into dev-v8
# Conflicts:
#	src/Umbraco.Web/WebApi/Filters/UmbracoApplicationAuthorizeAttribute.cs
2019-03-20 13:10:32 +01:00
Robert 32c0e02563 Merge pull request #4995 from umbraco/v8/bugfix/4992-nucache-panic
bugfix nucache panic
2019-03-20 12:31:09 +01:00
Kenn Jacobsen 761297a2db Merged with dev-v8 2019-03-20 11:50:35 +01:00
Robert ad17677951 Fix tests 2019-03-20 10:20:00 +01:00
Bjarke Berg 64bc0cf973 Renamed SendingDashboardModelV2 to SendingDashboardSlimModel 2019-03-20 07:35:00 +01:00
Paul Seal bb23fbbf8d increased length of line under the word umbraco 2019-03-19 22:59:28 +01:00
Paul Seal 30b47ff15f Update the umbraco ascii art
I thought it would be a good idea to update the ascii art to a font similar to the one in the umbraco logo on the umbraco.com website.
2019-03-19 22:59:28 +01:00
Sebastiaan Janssen 1c9d1718e7 More readme updates 2019-03-19 22:53:31 +01:00
Sebastiaan Janssen 23656f017c More readme updates 2019-03-19 22:02:52 +01:00
Sebastiaan Janssen 685c4e351b Update readme 2019-03-19 21:31:57 +01:00
Niels Lyngsø 30eb097f9c hover state for media grid + corrected hover state opacity + rounded corner for media info tooltip 2019-03-19 19:03:02 +01:00
Niels Lyngsø fa042194b7 hover state for umb-content-grid-item 2019-03-19 16:50:05 +01:00
Niels Lyngsø bd8f950ba1 hover state for umb-table and umb-mini-list-view 2019-03-19 16:30:18 +01:00
Stephan 1879215e7c Sliding Cache 2019-03-19 16:29:11 +01:00
Stephan 4e87dd389d Refactor Content/Media/Member type repositories 2019-03-19 16:28:50 +01:00
Niels Lyngsø 560367debe hover state for umb-table item 2019-03-19 16:15:01 +01:00
Niels Lyngsø 59a62688c5 Make unpublished items in list view show with grey text-color on name and icon 2019-03-19 16:01:36 +01:00
Robert e9ecb4c998 Only show server-side validation errors if the languages are checked for publish/schedule 2019-03-19 15:03:07 +01:00
Bjarke Berg e4c6ef05a9 Introduced both Siblings and SiblingsAndSelf 2019-03-19 14:59:52 +01:00
Robert aa6e0ce0c2 Show server validation errors only if the language is checked for publish. 2019-03-19 14:50:28 +01:00
Kenn Jacobsen d637a7951b V8: Remember choice of layout in Users section (#4779)
* Support arbitrary identifiers in "last used listview layout"
* Save and use last selected view layout for the users section
2019-03-19 14:50:00 +01:00
Robert 268658812a Return all languages if a variant has a invalid invariant property 2019-03-19 14:43:21 +01:00
Kenn Jacobsen 3a0dd2399a V8: Make "Open in split view" look better in narrow viewports (#4619)
* Make "Open in split view" look better in narrow viewports
* Add white background to inactive split view button
* Better support for long culture names
2019-03-19 14:24:32 +01:00
Niels Lyngsø 532f69e9b7 Show checkmark when list has selection 2019-03-19 13:53:13 +01:00
Bjarke Berg e2b1f0a82d Merge pull request #4948 from umbraco/temp8-temp-gather-url-for-list-items
V8: Provide url in content lists for ability to open item in a new tab
2019-03-19 13:35:45 +01:00
Bjarke Berg e73029cf4f Rename siblings to ParentChildren (Because the actual returned list contains the content node self) 2019-03-19 13:08:08 +01:00
Niels Lyngsø 9597bde7bb visual corrections + remember view layout in a cookie 2019-03-19 13:03:59 +01:00
Niels Lyngsø 7f45d852ed fix search icon location 2019-03-19 13:03:02 +01:00
Niels Lyngsø 3f10c78bee correct js error 2019-03-19 11:04:52 +01:00
Niels Lyngsø 4b02bf2ddf use umb-table for users table 2019-03-19 10:55:36 +01:00
Niels Lyngsø 542eb2ab1d borrow great stuff from KJAC. 2019-03-19 10:04:13 +01:00
Sebastiaan Janssen 935a495d0e Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2019-03-19 09:46:47 +01:00
Sebastiaan Janssen fe7c6bd1ed Merge branch 'patch-8.0.1' into dev-v8 2019-03-19 09:46:14 +01:00
Sebastiaan Janssen 44cb5fd96b Apparently the highest minClientVersion allowed is 4.1.0 for now - see https://github.com/NuGet/NuGetGallery/blob/master/src/NuGetGallery/GalleryConstants.cs#L36 2019-03-19 09:24:41 +01:00
Niels Lyngsø 137c08eaf3 Parse $event argument 2019-03-19 09:06:05 +01:00
Bjarke Berg 1545fe0d5f Merge pull request #5004 from kjac/v8-fix-filter-datatypes
V8: Improve the filtering in the datatype picker
2019-03-19 08:20:09 +01:00
Stephan 7f33454002 Better ServerMessenger configuration 2019-03-18 17:51:04 +01:00
Niels Lyngsø 970f336a5d clean up imports 2019-03-18 16:41:34 +01:00
Niels Lyngsø c6dfc28f03 make open user able to open in a new tab + only use pointer is selectable + improved hover state for open user 2019-03-18 16:34:41 +01:00
Niels Lyngsø 873d230e0e improve hover state for open user 2019-03-18 16:19:02 +01:00
Niels Lyngsø 4a26bfe3c3 clean up imports 2019-03-18 15:00:32 +01:00
Stephan 79dd593ee7 Merge pull request #5009 from umbraco/v8/bugfix/4967-list-view-ordering-ispublished
V8: Fix for ordering by isPublished in list view
2019-03-18 14:56:19 +01:00
Bjarke Berg 919f139607 https://github.com/umbraco/Umbraco-CMS/issues/4967 - fix for ordering by IsPublished in list view 2019-03-18 14:52:50 +01:00
Kenn Jacobsen 6e2c143d00 Improve the filtering in the datatype picker 2019-03-18 12:16:20 +01:00
Bjarke Berg 212b0ba932 Missing injection 2019-03-18 10:14:23 +01:00
Warren Buckley 51be2a5baf Merge pull request #5002 from umbraco/v8/bugfix/avoid-breaking-change-in-dashboard-events
Avoid removing a public method (used by forms 8.0.0)
2019-03-18 09:08:57 +00:00
Bjarke Berg 44beb81e71 Avoid removing a public method (used by forms 8.0.0) 2019-03-18 09:51:05 +01:00
Bjarke Berg 2f187fa403 Merge pull request #5001 from kjac/v8-fix-inherit-culture
V8: Fix the "Language" dropdown in the "Culture and Hostnames" dialog
2019-03-18 08:39:41 +01:00
Bjarke Berg 7359b0b244 Merge pull request #4996 from kjac/v8-fix-assign-domain-close-on-save
V8: Automatically close "Cultures and Hostnames" on successful save
2019-03-18 08:33:15 +01:00
Kenn Jacobsen 8f06603774 Fix the "Language" dropdown in the "Culture and Hostnames" dialog 2019-03-17 20:51:42 +01:00
Bjarke Berg 7d67a734f0 Merge pull request #4994 from umbraco/temp-user-controller-authz
Fixes the authorization for certain endpoints on the UsersController
2019-03-15 12:27:50 +01:00
Kenn Jacobsen 688173488d Automatically close "Cultures and Hostnames" on successful save 2019-03-15 09:26:21 +01:00
Stephan a6568e1952 NuCache: better fixing, cleanup 2019-03-15 08:22:40 +01:00
Shannon 19ad595f5d Adds back in the umb-list-item--error css class when any row in a content publish dialog is invalid 2019-03-15 15:47:46 +11:00
Shannon c8de8b1ad5 Merge remote-tracking branch 'origin/dev-v8' into temp8-server-content-validation-fixes-4884 2019-03-15 15:23:21 +11:00
Shannon d74ec8f8cb Authorizes more endpoints for admin/non-admins 2019-03-15 12:39:46 +11:00
Shannon e24b22f6bd Fixes the authorization for certain endpoints by non admins so that data cannot be seen and avatars cannot be changed 2019-03-15 12:20:24 +11:00
Stephan 260a8ad874 NuCache: fix panic exception 2019-03-14 19:05:02 +01:00
Stephan dc3e985fbb NuCache: troubleshooting 2019-03-14 19:05:02 +01:00
Stephan b7a03f0153 NuCache: reorg some classes 2019-03-14 18:56:28 +01:00
Stephan 66f9ecd8e2 NuCache: rename things 2019-03-14 18:56:27 +01:00
Stephan 541c7e6955 NuCache: cleanup scoped objects 2019-03-14 18:56:27 +01:00
Stephan e72133f322 Merge branch 'dev-v8' into temp8-4839-siblings 2019-03-14 17:15:43 +01:00
Warren Buckley edb8340b32 Merge pull request #4364 from umbraco/abjerner-patch-1
V8: fixed type of dashboards in EditorModelEventManager
2019-03-14 15:00:34 +00:00
Robert b0b987f9cd Merge pull request #4710 from umbraco/temp8-4708-fix-for-exit-preview-with-null-culture
Fix for exit preview with null culture

(cherry picked from commit 9b25cdaa14)
2019-03-14 13:21:28 +01:00
Shannon 1290244602 slight change of wording 2019-03-14 14:19:40 +11:00
Shannon 9d8b5be650 Fixes mandatory validation issue when creating a new document and a mandatory language has validation problems 2019-03-14 14:18:42 +11:00
Shannon 4eedc3ce5c oops, put back logic i removed during testing 2019-03-14 11:46:49 +11:00
Shannon b8c609ddc9 removes old notes, makes MediaSaveModelValidator to be consistent 2019-03-14 11:41:29 +11:00
Shannon 88f2a410f3 adds notes to html about variant notifications, removes the styling from the publish dialog since it's not needed 2019-03-14 11:33:20 +11:00
Shannon 38cf7a4e49 Fixes content service to not validate every culture for properties, only the cultures passed in to to the method, removes client side name check, 2019-03-14 01:55:39 +11:00
Shannon 8c3388507d Merge remote-tracking branch 'origin/dev-v8' into temp8-server-content-validation-fixes-4884 2019-03-14 01:18:16 +11:00
Shannon d6393616f1 Fixing up server side validation for invariant properties on variant content 2019-03-14 00:59:51 +11:00
Shannon 418dab26a5 Merge remote-tracking branch 'origin/dev-v8' into temp8-server-content-validation-fixes-4884 2019-03-14 00:58:02 +11:00
Niels Lyngsø 53e6c620eb fixes 4627 + makes front-end validations appear as soon as they are invalid again. 2019-03-13 14:45:30 +01:00
Niels Lyngsø 6d88726479 Fixing code in sync functionality of checkbox-list 2019-03-13 11:46:33 +01:00
Niels Lyngsø 808d33edf6 force commit white logo svg 2019-03-13 11:13:00 +01:00
Shannon 3d6db4b812 Ensures media is always validated for critical data, adds notes 2019-03-13 18:12:48 +11:00
Shannon ea93d4dd5d simplifies a js operator 2019-03-13 17:52:17 +11:00
Shannon Deminick 8714bb816f Merge pull request #4950 from umbraco/v8/feature/4590-resolvable-ifactory
IFactory is resolvable
2019-03-13 14:49:12 +11:00
Poornima Nayar 1f7172e98d Cleaned up class names in logviewer overview to use new logviewer classes and made a logviewer specific less stylesheet. Also left aligned the saved searches to make them look better 2019-03-12 21:54:13 +00:00
Robert a3e842a315 Merge pull request #4844 from umbraco/dev-v8-4827-fix-for-image-mediapickervalueconverter
V8: Fix for MediaPickerValueConverter when config is only images
2019-03-12 11:59:54 +01:00
Robert c3bf6b0631 Merge pull request #4908 from umbraco/temp8-ui-use-umb-checkbox-for-all-variants-dialogs
Use umb-checkbox for all content variant dialogs
2019-03-12 11:55:40 +01:00
Robert bf28dfe04a Merge pull request #4956 from umbraco/temp8-fix-for-creating-content-templates
V8: Fixed issue when creating variant content templates,
2019-03-12 11:30:44 +01:00
Robert 3e6cdd86b2 Merge branch 'dev-v8' into temp8-ui-use-umb-checkbox-for-all-variants-dialogs 2019-03-12 11:09:20 +01:00
Niels Lyngsø e550e5cd81 rename LESS variables with disgrete to discreet 2019-03-12 10:35:04 +01:00
Robert abd681277d Merge pull request #4906 from umbraco/temp8-ui-umb-checkbox-refactor-for-general-usage
changed umb-checkbox model to be the boolean property, not a object c…
2019-03-12 10:29:43 +01:00
Kenn Jacobsen 0c602567ce Don't show the recycle bin in tree pickers/dialogs 2019-03-12 10:25:51 +01:00
Niels Lyngsø 5ad1dcf894 Merge remote-tracking branch 'origin/temp8-4728' into temp8-ui-use-umb-checkbox-for-all-variants-dialogs
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js
#	src/Umbraco.Web.UI.Client/src/views/content/overlays/publish.controller.js
#	src/Umbraco.Web.UI.Client/src/views/content/overlays/publish.html
2019-03-12 10:17:17 +01:00
Niels Lyngsø 485c1fbf6c use existing notifications for warnings 2019-03-12 10:14:25 +01:00
Niels Lyngsø 447eb88b86 Use tokens for translate + shortcut for reject 2019-03-12 10:14:06 +01:00
Robert ece9c4ae21 Merge branch 'dev-v8' into temp8-ui-use-umb-checkbox-for-all-variants-dialogs 2019-03-12 10:08:14 +01:00
Robert 1509c7364c Reverted extra check 2019-03-12 09:52:03 +01:00
Bjarke Berg 010e2e1f19 Merge pull request #4954 from umbraco/temp8-grid-rte-image-size
Fixes inserting an image into the grid rte since it doesn't get resized correctly
2019-03-12 09:07:54 +01:00
Robert 9b25cdaa14 Merge pull request #4710 from umbraco/temp8-4708-fix-for-exit-preview-with-null-culture
Fix for exit preview with null culture
2019-03-12 08:31:28 +01:00
Kenn Jacobsen 03a5d5b866 Allow mixing languages with and without region 2019-03-12 08:20:43 +01:00
Bjarke Berg 31eea2a2a8 Fixed issue when creating variant content templates, but the properties is invariant. Before this change an exception was thrown 2019-03-12 08:17:09 +01:00
Shannon 5ae6a68078 Fixes how critical data is validated 2019-03-12 16:10:35 +11:00
Shannon 2e52a869b6 Merge branch 'dev-v8' into temp8-4728
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/content/overlays/publish.controller.js
2019-03-12 13:03:32 +11:00
Shannon 95d1ceb529 overrides ToString on UrlInfo to return the correct result 2019-03-12 12:47:37 +11:00
Shannon 10f333081d Fixes inserting an image into the grid rte since it doesn't get resized correctly 2019-03-12 12:43:04 +11:00
Shannon 89903a633b Merge branch 'dev-v8' into temp8-4011
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.controller.js
2019-03-12 11:42:35 +11:00
Shannon Deminick cefff71edf Merge pull request #4853 from umbraco/temp8-js-error-unpublishing
Fixes javascript error when trying to unpublish an invariant item
2019-03-12 11:18:09 +11:00
Stephan 13d97fffdf IFactory is resolvable 2019-03-11 17:14:07 +01:00
Sebastiaan Janssen ba297ad839 Merge branch 'patch-8.0.1' into dev-v8 2019-03-11 16:12:18 +01:00
Sebastiaan Janssen 3961e2533d Fix JS unit tests 2019-03-11 15:50:16 +01:00
Stephan b46f842400 Do not inject IEnumerable but Collection in UmbracoContextFactory
(cherry picked from commit 7e67bbea13)
2019-03-11 15:41:40 +01:00
Stephan 7e67bbea13 Do not inject IEnumerable but Collection in UmbracoContextFactory 2019-03-11 15:37:07 +01:00
Kenn Jacobsen 930acfeb68 Show the content app for media folders with content properties
(cherry picked from commit 9062b400d4)
2019-03-11 14:58:13 +01:00
Kenn Jacobsen 9062b400d4 Show the content app for media folders with content properties 2019-03-11 14:57:25 +01:00
Shannon b004c616ad Removes faulty CustomRouteUrlProvider
(cherry picked from commit 52beb01110)
2019-03-11 14:54:43 +01:00
Niels Lyngsø 48ec795e7b do not open as infinite editing yet. 2019-03-11 14:54:11 +01:00
Bjarke Berg e7781cd95b DRY - Reused code 2019-03-11 14:53:49 +01:00
Niels Lyngsø 1098db1632 use item.editPath for new tab URL 2019-03-11 14:52:16 +01:00
Shannon 6880937b90 Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2019-03-12 00:46:52 +11:00
Shannon 52beb01110 Removes faulty CustomRouteUrlProvider 2019-03-12 00:46:39 +11:00
Sebastiaan Janssen 9d64c4e551 Bugfix CoreRuntime
(cherry picked from commit 2209b37a4a and 7f31ddc250)
2019-03-11 14:45:48 +01:00
Stephan fbfa7e8566 Cleanup temp path in global config 2019-03-11 14:40:18 +01:00
Sebastiaan Janssen 9a0aacd45a Upgrade to ModelsBuilder 8.0.2, support Custom Tool (#4881)
* Upgrade to ModelsBuilder 8.0.2, support Custom Tool

* Upgrade to ModelsBuilder 8.0.3

* Fix controllers

* Upgrade MB

* Fix previous commit

(cherry picked from commit c85c055424)
2019-03-11 14:37:59 +01:00
Stephan c85c055424 Upgrade to ModelsBuilder 8.0.2, support Custom Tool (#4881)
* Upgrade to ModelsBuilder 8.0.2, support Custom Tool

* Upgrade to ModelsBuilder 8.0.3

* Fix controllers

* Upgrade MB

* Fix previous commit
2019-03-11 23:14:32 +11:00
Niels Lyngsø 829980adb2 Merge remote-tracking branch 'origin/dev-v8' into temp8-temp-gather-url-for-list-items
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts/list/list.listviewlayout.controller.js
2019-03-11 13:05:59 +01:00
Bjarke Berg 8f3bcf87da Merge pull request #4754 from umbraco/temp8-ui-update-login-screen
V8: UI — updated login screen
2019-03-11 12:41:40 +01:00
Niels Lyngsø ba55c24d43 correcting path in umbracoSettings.Release.config
+ changed comment to fit with new look
2019-03-11 12:40:23 +01:00
Niels Lyngsø 4d806c1cef correction error colors 2019-03-11 12:38:04 +01:00
Niels Lyngsø b237e4a55e make warnings an array that angularJS can watch 2019-03-11 12:37:53 +01:00
Niels Lyngsø 502794aae9 validation text provided for more languages, plus it takes action when name is an empty string 2019-03-11 11:51:13 +01:00
Kenn Jacobsen 29ff7bc340 Handle checkbox value conversion from Nested Content
(cherry picked from commit 2352b50d97)
2019-03-08 15:09:54 +01:00
Kenn Jacobsen 2352b50d97 Handle checkbox value conversion from Nested Content 2019-03-08 15:07:50 +01:00
Niels Lyngsø 356b7681e8 Merge remote-tracking branch 'origin/temp8-ui-umb-checkbox-refactor-for-general-usage' into temp8-ui-use-umb-checkbox-for-all-variants-dialogs 2019-03-08 14:37:42 +01:00
Niels Lyngsø 0d58b4c42b renamed umb-checkbox id attribute to input-id to avoid colliding Ids 2019-03-08 14:37:23 +01:00
Niels Lyngsø 171cae5fca reverted this line, cause for some wierd reason this line works, and corrected one ruins the feature. Super wierd, i guess the person writting this was just lucky to hit something that works. Need to look into what is going on here. 2019-03-08 14:24:54 +01:00
Niels Lyngsø 979a166b41 changed checkbox-inputs to umb-checkbox 2019-03-08 14:23:37 +01:00
Niels Lyngsø 623ace56bc Improved UX of Save
+ Remove special case for new content
+ Never disable the user choices, instead provide feedback for when the selection doesn't make sense.
2019-03-08 14:22:05 +01:00
Niels Lyngsø 7203926cea no need for type attribute 2019-03-08 12:54:55 +01:00
Niels Lyngsø 021bf470c2 umb-checkbox for save dialog 2019-03-08 12:41:33 +01:00
Niels Lyngsø 7194d7d6b8 update to input-id 2019-03-08 12:41:18 +01:00
Niels Lyngsø 45423ae932 use tokens in localizationsService for replace of %0% 2019-03-08 12:40:57 +01:00
Niels Lyngsø 2b7f12253f umb-checkbox id renamed to input-id for it not to collide, since ids have to be unique. 2019-03-08 12:40:24 +01:00
Kenn Jacobsen 36827cfa9f Move some of the multiget member methods to MembershipHelper 2019-03-08 07:31:39 +01:00
Niels Lyngsø 129210946d Merge branch 'temp8-ui-umb-checkbox-refactor-for-general-usage' into temp8-ui-use-umb-checkbox-for-all-variants-dialogs 2019-03-07 15:29:47 +01:00
Niels Lyngsø 62808958b0 umb-checkbox callback should call a new digest for callbacks changes to take effect. 2019-03-07 15:29:28 +01:00
Niels Lyngsø c5096e67e6 Merge remote-tracking branch 'origin/temp8-ui-umb-checkbox-refactor-for-general-usage' into temp8-ui-use-umb-checkbox-for-all-variants-dialogs
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js
2019-03-07 14:47:40 +01:00
Niels Lyngsø 320d2ae953 Change umb-checkbox to AngularJs Component + fix for callback digest flow 2019-03-07 14:46:50 +01:00
Niels Lyngsø 264a96971a Merge remote-tracking branch 'origin/temp8-ui-umb-checkbox-refactor-for-general-usage' into temp8-ui-use-umb-checkbox-for-all-variants-dialogs
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/components/forms/umb-checkbox.html
2019-03-07 13:01:04 +01:00
Niels Lyngsø 8c28172efc changed umb-checkbox model to be the boolean property, not a object containing a checked property.
This means that the on-change callback will recive the model and the value instead.
2019-03-07 12:57:10 +01:00
Niels Lyngsø 8a4dfd4350 first step for implementing umb-checkbox 2019-03-07 11:54:46 +01:00
Niels Lyngsø 3814138d68 Merge remote-tracking branch 'origin/dev-v8' into temp8-ui-use-umb-checkbox-for-all-variants-dialogs 2019-03-07 11:32:04 +01:00
Niels Lyngsø f54a8725db CSS: change form check inputs to use not-allow cursor when disabled 2019-03-07 11:25:13 +01:00
Bjarne Fyrstenborg bbc2b1a54a v8: Checkbox/radio with disabled state (#4902)
* Add property to disable checkbox and radiobutton

* Add basic styles of disabled state

* Change cursor style for disabled checkbox/radiobutton

* Remove duplicate classes

* Change nested elements to span since it is not valid to have div as nested elements in labels

* Adjust positions

* Better way to center align icon

* Add white as default background color in checkbox/radiobutton e.g. for Nested Content

* Adjust sizing a bit
2019-03-07 11:24:16 +01:00
Niels Lyngsø 6dc5a3b130 Make login background image configurable 2019-03-07 10:33:10 +01:00
Niels Lyngsø 3d941e89a6 Merge remote-tracking branch 'origin/dev-v8' into temp8-ui-update-login-screen 2019-03-07 10:00:56 +01:00
Bjarke Berg a988bd2608 Merge pull request #4809 from umbraco/temp8-3958-fixes-doc-type-details-in-narrow-screen
V8: makes document-details go on to two lines when necessary
2019-03-07 09:57:28 +01:00
Niels Lyngsø cb083d5b2a increased break point to 500px 2019-03-07 09:47:03 +01:00
Sebastiaan Janssen 8334d088e7 Update PULL_REQUEST_TEMPLATE.md 2019-03-07 09:33:43 +01:00
Shannon 39a97fb768 Enable adding api controllers 2019-03-07 19:09:13 +11:00
Shannon Deminick 75a9109971 Merge pull request #4874 from umbraco/temp8-4873-register-api-controllers
Enable adding api controllers
2019-03-07 18:33:13 +11:00
Shannon 52cea17816 Merge remote-tracking branch 'origin/dev-v8' into temp8-4873-register-api-controllers 2019-03-07 18:32:48 +11:00
Niels Lyngsø 6a67f38025 Merge remote-tracking branch 'origin/dev-v8' into temp8-3958-fixes-doc-type-details-in-narrow-screen 2019-03-07 08:12:04 +01:00
Shannon Deminick 22d012c4db Merge pull request #4856 from umbraco/temp8-4775-components-sequence
Better composer sequence
2019-03-07 18:04:01 +11:00
Niels Lyngsø 3046e44f60 minor UI improvements regarding validation 2019-03-07 07:59:13 +01:00
Shannon 790da9d5ca Adds todo note 2019-03-07 17:23:00 +11:00
Stephan 7f31ddc250 Bugfix CoreRuntime 2019-03-06 18:11:10 +01:00
Kenn Jacobsen 0852bd90d0 Always update URLs on save no matter which app is active
(cherry picked from commit 869d088e4b)
2019-03-06 17:26:36 +01:00
Kenn Jacobsen 869d088e4b Always update URLs on save no matter which app is active 2019-03-06 17:02:10 +01:00
Niels Lyngsø e28365a0e5 hack for not using scope() in grid redordering
(cherry picked from commit a67163fd03)
2019-03-06 16:58:57 +01:00
Sebastiaan Janssen 6e3ffc0dd9 Removes outdated gulp setup helper 2019-03-06 16:19:14 +01:00
Niels Lyngsø 45dc3a26ed Updated CONTRIBUTING_DETAILED to fit new npm setup (#4735)
Updated CONTRIBUTING_DETAILED to fit new npm setup

Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
2019-03-06 16:06:56 +01:00
Sebastiaan Janssen 9ef94a667c Merge pull request #4716 from MMasey/#4715
#4715 - V8 - IE11: section name underline not in correct position
2019-03-06 15:39:24 +01:00
Niels Lyngsø 70122c85d7 Merge pull request #4825 from kjac/v8-fix-validation-colors
V8: Update validation colors throughout the backoffice
2019-03-06 15:31:39 +01:00
Niels Lyngsø 72e236a7ab css class umb-list-item--error for when a list item contain a error that needs to be highlighted, currently only used for Save & Publish overlay-dialog. 2019-03-06 14:58:32 +01:00
Sebastiaan Janssen 0d16c79d0c Require higher NuGet version so we don't target VS15 any more (unsupported)
Making backups before we upgrade is no longer needed, removed from install.ps1
If people include the bin folder in their solution they will get errors upgrading now, we shouldn't need to try and fix this, there's no reason to include the bin folder in the solution - therefore install.core.ps1 is removed

(cherry picked from commit 82b78c7530)
2019-03-06 14:57:53 +01:00
Niels Lyngsø 444497be7c For Save & Publish overlay:
+ Publish multiple variants for new nodes.
+ Auto selects mandatory languages.
+ Auto selects languages that has changes.
+ Provides feedback if missing nodeName on variant that isn't open.
+ Highlights "mandatory language"-description if variant isn't selected.
2019-03-06 14:42:31 +01:00
Sebastiaan Janssen b7e929a675 Fix checkboxes and radiobuttons saving the wrong value 2019-03-06 14:01:11 +01:00
Stephan 2209b37a4a Bugfix CoreRuntime 2019-03-06 11:56:03 +01:00
Sebastiaan Janssen 634138724b Merge branch 'dev-v7' into dev-v8
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js
#	src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js
#	src/Umbraco.Web.UI.Client/src/less/components/umb-form-check.less
#	src/Umbraco.Web.UI.Client/src/views/components/forms/umb-checkbox.html
#	src/Umbraco.Web.UI.Client/src/views/components/forms/umb-radiobutton.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/checkboxlist/checkboxlist.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/radiobuttons/radiobuttons.html
#	src/Umbraco.Web/Trees/ApplicationTreeController.cs
#	src/Umbraco.Web/Trees/ContentTreeControllerBase.cs
#	src/Umbraco.Web/Trees/MemberTreeController.cs
#	src/Umbraco.Web/Trees/TreeControllerBase.cs
#	src/Umbraco.Web/WebApi/Filters/HttpQueryStringFilterAttribute.cs
#	src/Umbraco.Web/WebApi/Filters/HttpQueryStringModelBinder.cs
#	src/umbraco.cms/businesslogic/translation/Translation.cs
2019-03-06 11:47:30 +01:00
Sebastiaan Janssen d1c9b7a060 Merge pull request #4842 from umbraco/temp8-merge-3464
Merge branch 'dev-v7' into dev-v8
2019-03-06 11:45:09 +01:00
Sebastiaan Janssen b65f60af78 Update documentation 2019-03-06 11:43:50 +01:00
Sebastiaan Janssen b86a1aa687 Merge branch 'patch-8.0.1' into dev-v8
# Conflicts:
#	src/SolutionInfo.cs
#	src/Umbraco.Core/Migrations/Upgrade/UmbracoPlan.cs
2019-03-06 10:44:09 +01:00
Sebastiaan Janssen ac4c98a7fc Enable direct command execution in build script (#4882) 2019-03-06 10:35:26 +01:00
Sebastiaan Janssen 7cc8983a25 Fix NuCache url segments
(cherry picked from commits 7a0f11bc6f and cfa94b1bb8)
2019-03-06 10:25:21 +01:00
Bjarke Berg b406835c9c Code styling 2019-03-06 10:08:15 +01:00
Kenn Jacobsen 7b815cfcb3 Add methods for fetching multiple members to UmbracoHelper 2019-03-05 21:34:49 +01:00
Stephan 9f7fae2ca6 Enable adding api controllers 2019-03-05 19:23:57 +01:00
Bjarke Berg f508a97c18 Merge pull request #4857 from umbraco/temp8-4649-fix-nucache-url-segments
Fix NuCache url segments
2019-03-05 14:54:51 +01:00
Niels Lyngsø b4de15f19e removed unused htmlId 2019-03-05 14:22:58 +01:00
Bjarke Berg f8abd0f457 Merge pull request #4858 from umbraco/temp8-fix-malformed-logs
Fixes LogViewer if JSON log contains malformed JSON lines
2019-03-05 13:41:54 +01:00
Niels Lyngsø 31eefe1cf9 Front-end mandatory-validation for radiolist and checkbox list. 2019-03-05 13:20:59 +01:00
Stephan a14b1540ea Merge pull request #4848 from umbraco/temp8-modernize-nuget-install
Modernize NuGet install
2019-03-05 13:15:10 +01:00
Stephan 02764e0ccc Implement IPublishedContent Siblings 2019-03-05 13:02:59 +01:00
Warren Buckley 67fdf75da8 Fix typo 2019-03-05 11:12:04 +00:00
Niels Lyngsø 21405266ef align the use of input name attribute for checkboxes and radiobuttons 2019-03-05 11:38:43 +01:00
Niels Lyngsø a4d25dc594 design corrections 2019-03-05 11:38:04 +01:00
Warren Buckley 27cc433b96 We will ignore malformed log lines in the JSON log file - so the rest of the logviewer continues to work 2019-03-05 10:35:51 +00:00
Stephan cfa94b1bb8 Import missing file 2019-03-05 11:21:29 +01:00
Stephan 7a0f11bc6f Fix NuCache url segments 2019-03-05 11:15:30 +01:00
Stephan b665d4825d Better composer sequence 2019-03-05 08:53:37 +01:00
Stephan 55a374bb71 Introduce WebFinalComponent 2019-03-05 08:53:37 +01:00
Shannon 13b35ec7ce Fix to get Js unit tests working again. 2019-03-05 18:53:26 +11:00
Shannon Deminick 54968c819b Merge pull request #4803 from umbraco/temp8-4752-fix-reordering-grid-in-non-debug-mode
Solution for not using scope() in grid redordering
2019-03-05 16:52:01 +11:00
Shannon c910e3afaf Fixes javascript error when trying to unpublish an invariant item 2019-03-05 16:39:03 +11:00
Shannon e7f8baeca4 fixed correct destination url instead of #. 2019-03-05 16:14:06 +11:00
Shannon Deminick 4b7c14113c Merge pull request #4770 from umbraco/temp8-4652-tinymce-inserting-image
change insertContent to selection.setContent
2019-03-05 16:12:05 +11:00
Shannon Deminick b294b83c9f Merge pull request #4753 from mvanhelmont/#4580
Redirects management is broken #4580
2019-03-05 16:04:11 +11:00
Shannon 34a3389c17 Updates to latest Examine 2019-03-05 12:50:51 +11:00
Stephan e716d14a0a Fix distributed cache handler for medias (#4751)
(cherry picked from commit 31b293aa4d)
2019-03-04 16:51:15 +01:00
Stephan 31b293aa4d Fix distributed cache handler for medias (#4751) 2019-03-04 16:39:34 +01:00
Sebastiaan Janssen 82b78c7530 Require higher NuGet version so we don't target VS15 any more (unsupported)
Making backups before we upgrade is no longer needed, removed from install.ps1
If people include the bin folder in their solution they will get errors upgrading now, we shouldn't need to try and fix this, there's no reason to include the bin folder in the solution - therefore install.core.ps1 is removed
2019-03-04 16:27:44 +01:00
Robert Foster 4c6a742007 Changed all references of umbracoUseSSL to Umbraco.Core.UseHttps to fix issue #4749
(cherry picked from commit 5aa38c1f43)
2019-03-04 15:33:08 +01:00
Sebastiaan Janssen 410241b61d 4766 fixed up other instances where nodeSelectHandler was being passed incorrect number of arguments
(cherry picked from commit 553bf6d304 and 4503967778)
2019-03-04 15:13:30 +01:00
Kenn Jacobsen 4e47fa9a70 Fix the "selected" checkmark in tree picker search results
(cherry picked from commit 09dc908332)
2019-03-04 15:10:55 +01:00
Robert Foster 9c5fb1fead Fix for Content App badges not being displayed (#4787)
(cherry picked from commit 055f983cbf)
2019-03-04 15:10:09 +01:00
Sebastiaan Janssen dc41db5fc1 Bumps version to 8.0.1 2019-03-04 15:08:23 +01:00
Sebastiaan Janssen 11b6a98df8 Bugfix exception during install, live models collision
(cherry picked from commit aa86dfa956)
2019-03-04 15:05:17 +01:00
Sebastiaan Janssen da9fc1e147 Make it possible to upload the same file twice or more (#4755)
(cherry picked from commit b5bda772af)
2019-03-04 15:04:27 +01:00
Sebastiaan Janssen 319c75757a Bugfix: Don't use ToString :'(
(cherry picked from commit ed6d54e64a)
2019-03-04 15:01:54 +01:00
Pete Duncanson 6e81e57c8e Removed System.Web.WebPages reference in nonodes.aspx as was failing a clean build
(cherry picked from commit f1d1c95709)
2019-03-04 14:58:05 +01:00
Sebastiaan Janssen 9ebe282ba6 Ensure we dont double insert
(cherry picked from commit 578eb8b32c and b86e7dc0e8)
2019-03-04 14:57:13 +01:00
Niels Lyngsø d3904086f0 adjusted PR 3464 for V8 2019-03-04 14:39:49 +01:00
Bjarke Berg a43f8c4cbd Bugfix: https://github.com/umbraco/Umbraco-CMS/issues/4827 - Fixed MediaPickerValueConverter when config is Only Images 2019-03-04 14:31:45 +01:00
Pete Duncanson f1d1c95709 Removed System.Web.WebPages reference in nonodes.aspx as was failing a clean build 2019-03-04 14:21:38 +01:00
Sebastiaan Janssen 58ce528324 Merge branch 'dev-v7' into dev-v8
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/checkboxlist/checkboxlist.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/radiobuttons/radiobuttons.html
#	src/umbraco.cms/businesslogic/translation/Translation.cs
2019-03-04 13:43:31 +01:00
Stephan eace918258 Merge pull request #4782 from kjac/v8-fix-create-content-template
V8: Fix "ambient scope" error when creating content template from content
2019-03-04 10:40:40 +01:00
Stephan 8961e8b4be Merge pull request #4834 from umbraco/temp-4609-rte-not-rendering-macros-correctly
Bugfix: Could not render macros in RTE
2019-03-04 09:29:06 +01:00
Stephan b526b8f246 Merge pull request #4823 from Brianmanden/patch-1
Update Utf8ToAsciiConverter.cs
2019-03-04 09:15:00 +01:00
Bjarke Berg ed6d54e64a Bugfix: Don't use ToString :'( 2019-03-04 08:43:19 +01:00
Bjarne Fyrstenborg 28d4f1cc44 Fix issues where table cells collapse when sorting doctypes in Nested Content config 2019-03-03 20:18:41 +01:00
Kenn Jacobsen 89153c2fcf Update log viewer error color 2019-03-03 16:22:12 +01:00
Kenn Jacobsen c134aff6cd Update validation colors throughout the backoffice 2019-03-03 13:54:45 +01:00
Brian Juul Andersen 57290c4180 Update Utf8ToAsciiConverter.cs
Fix minor grammatical error.
2019-03-02 21:44:28 +01:00
Kenn Jacobsen e695145019 Grid: Hide empty sticky bar 2019-03-02 12:06:04 +01:00
Kenn Jacobsen 84b60f8b9f V8: Make variant state clickable in various dialogs (#4760)
* Fix publish dialog

* Fix publish with descendants dialog

* Fix save dialog

* Fix scheduled publishing dialog

* Fix send to publish dialog

* Fix unpublish dialog

* Add missing magic IDs to send to publish dialog so the labels actually work.

* Add missing magic IDs to unpublish dialog
2019-03-01 15:21:34 +01:00
Niels Lyngsø e33ae253ee makes document-details go on to two lines when necessary 2019-03-01 12:56:09 +01:00
Niels Lyngsø a67163fd03 hack for not using scope() in grid redordering 2019-02-28 15:29:28 +01:00
Shannon Deminick cfc04a9df0 Merge pull request #4799 from robertjf/dev-v8-uduf-4749
v8 - uduf - Changed all references of umbracoUseSSL to Umbraco.Core.UseHttps to f…
2019-02-28 18:20:25 +11:00
Shannon 3e4ff05d37 removes unused params 2019-02-28 17:18:47 +10:00
Shannon Deminick 28034d664e Merge pull request #4793 from dinc5150/4489
v8 - uduf - Redirect away from page under the settings section when the page is deleted
2019-02-28 18:16:33 +11:00
David Sheiles edf3fd5d31 remove test code 2019-02-28 18:15:41 +11:00
David Sheiles f7705ef134 Move logic from navigation service to controller 2019-02-28 18:10:03 +11:00
David Sheiles f0caa6be4b Update null check 2019-02-28 17:57:05 +11:00
Robert Foster 5aa38c1f43 Changed all references of umbracoUseSSL to Umbraco.Core.UseHttps to fix issue #4749 2019-02-28 16:48:56 +10:00
Shannon Deminick b809f9f03a Merge pull request #4798 from emmanueltissera/v8-uduf2019-issue-4757
v8 - uduf - Fixes hotkey for navigation between apps and content apps
2019-02-28 17:45:16 +11:00
Shannon Deminick eabc05d6f8 Merge pull request #4796 from skartknet/4790_-_Content_and_media_overloads_for_Udis
4790 - added Content and Media Udi overloads
2019-02-28 17:33:05 +11:00
David Sheiles d3fb614d25 Move logic to tree service and navigarion service 2019-02-28 17:29:40 +11:00
Emmanuel Tissera 0eb7d404a1 Fixes hotkey for navigation between apps and content apps
Fixes https://github.com/umbraco/Umbraco-CMS/issues/4757
2019-02-28 17:10:39 +11:00
Mario Lopez 093b57505a simplified GuidUdi checking. 2019-02-28 16:50:28 +11:00
Shannon Deminick 2a7cd4d94a Merge pull request #4797 from iofsauron/4766-list-view-selected-bug
4766 list view selected bug
2019-02-28 16:31:56 +11:00
iofsauron 4503967778 4766 fixed up other instances where nodeSelectHandler was being passed incorrect number of arguments 2019-02-28 15:02:53 +10:00
Mario Lopez f227f2ed61 added Content and Media Udi overloads 2019-02-28 13:55:14 +11:00
iofsauron 553bf6d304 4766 Fixed list view selected item issue by uncommenting out the umb-table-body__fileicon and umb-table-body__checkicon. Fixed call to nodeSelectHandler in selectListViewNode by removing erroneous first parameter 2019-02-28 12:33:49 +10:00
David Sheiles 45dfef78bd Redirect away from page under the settings section when the page is deleted. Affects DataTypes, DocTypes, Macros, MediaTypes, Membertypes, PartialViewMacro,PartialViews, Scripts, Stylesheet & Templates 2019-02-28 13:33:45 +11:00
Shannon Deminick b172a5f847 Merge pull request #4791 from robertjf/dev-v8-uduf-4787
Fix for Content App badges not being displayed (#4787)
2019-02-28 13:05:56 +11:00
Shannon 41f80b942a Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2019-02-28 11:02:12 +10:00
Robert Foster 055f983cbf Fix for Content App badges not being displayed (#4787) 2019-02-28 11:01:59 +10:00
Shannon 3e9556fead Adds TODO note 2019-02-28 11:01:53 +10:00
Kenn Jacobsen 4851bb0534 Handle mixed variance when creating content templates from content 2019-02-27 19:13:51 +01:00
Kenn Jacobsen b403272389 Fix "ambient scope" error when creating content template from content 2019-02-27 18:54:53 +01:00
Niels Lyngsø 60b178dcf7 change insertContent to selection.setContent 2019-02-27 10:28:40 +01:00
Kenn Jacobsen b5bda772af Make it possible to upload the same file twice or more (#4755) 2019-02-27 09:51:11 +01:00
Mikkel Holck Madsen 02ccd45bf6 Merge pull request #4767 from umbraco/temp8-4711-update-web-config-transformations-to-v8
Updated versions and added new dependencies to transformation file
2019-02-27 09:47:12 +01:00
Bjarke Berg b86e7dc0e8 Ensure we dont double insert 2019-02-27 09:44:28 +01:00
Bjarke Berg 578eb8b32c Updated versions and added new dependencies to transformation file 2019-02-27 09:30:15 +01:00
Bjarke Berg f2d7ed69ca Fix for printing html in uninstall package readme 2019-02-27 09:10:33 +01:00
Marcel van Helmont ff708f4ad5 fixed correct destination url instead of #. 2019-02-26 12:17:20 +01:00
Marcel van Helmont 44212f6b53 Revert "the wrong id was used for getting the correct destination url."
This reverts commit 5d1fccb2c4.
2019-02-26 12:15:22 +01:00
Marcel van Helmont 5d1fccb2c4 the wrong id was used for getting the correct destination url. 2019-02-26 12:12:18 +01:00
Claus 746573d28b Merge pull request #4744 from kjac/v8-fix-selectable-search-results
V8: Fix the "selected" checkmark in tree picker search results
2019-02-26 10:36:07 +01:00
Kenn Jacobsen 09dc908332 Fix the "selected" checkmark in tree picker search results 2019-02-26 09:56:07 +01:00
Sebastiaan Janssen 35bf75bc82 Do the version dance 2019-02-26 09:28:51 +01:00
Sebastiaan Janssen cb0268dfdd Merge branch 'dev-v8-fix' into dev-v8 2019-02-26 09:17:47 +01:00
Sebastiaan Janssen 9186b392c9 Merge branch 'dev-v7' into dev-v8
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/imaging/umbimagecrop.directive.js
#	src/Umbraco.Web/Routing/PublishedContentRequestEngine.cs
2019-02-25 19:57:18 +01:00
Anders Bjerner bac2b1cb71 Updated reference to dev-v7 as dev-v8 is now the default branch 2019-02-25 17:19:55 +01:00
Bjarke Berg 57af355d85 Bugfix: get installStateComplete variable from labels 2019-02-25 14:37:25 +01:00
Carole Rennie Logan 9bcce48df3 still reference to temp8 2019-02-25 07:43:35 +01:00
Kenn Jacobsen b9d1df0844 Return folder creation to non-active state in media picker 2019-02-24 15:28:04 +01:00
Kenn Jacobsen 32a622a6ea Add missing documentation + a bit of renaming 2019-02-24 15:10:49 +01:00
Kenn Jacobsen 7ca6739cee Clear error before (re)submitting 2019-02-24 15:01:47 +01:00
Kenn Jacobsen 214457fc04 Add translation 2019-02-24 09:50:13 +01:00
Kenn Jacobsen 30d46a6204 Merge branch 'v8-wip-invalid-hostname' into v8-fix-invalid-hostname 2019-02-24 09:40:07 +01:00
Kenn Jacobsen b94b94ea06 Add serverside validation of assigned hostnames 2019-02-24 09:37:22 +01:00
Skid Vis c83630b376 Updates branch to checkout when trying v8
The branch specified, 'temp8', no longer exists. Updates to the current 'dev-v8' branch name.
2019-02-23 16:32:33 +01:00
Sebastiaan Janssen e1856bf851 Update README.md 2019-02-23 16:30:18 +01:00
Sebastiaan Janssen fe3525bc54 Update README.md 2019-02-23 16:27:18 +01:00
Sebastiaan Janssen 452dcbd016 Update README.md 2019-02-23 16:26:48 +01:00
Mike 7a20ea8781 fix: position of section name underline on IE11 2019-02-23 15:00:29 +00:00
Sebastiaan Janssen 4b489b52ef Bump version again 2019-02-23 14:21:44 +01:00
Stephan aa86dfa956 Bugfix exception during install, live models collision 2019-02-22 19:13:48 +01:00
Bjarke Berg 02122f5e03 Revert "Fix NullReferenceException when using LocalDb, because SqlServerSyntaxProvider.ServerVersion can be null"
This reverts commit a9450f9e.

Root cause is fixed
2019-02-22 14:27:54 +01:00
Bjarke Berg 064f637006 #4708 - Fix for YSOD when exiting preview with on invariant cultures 2019-02-22 11:23:57 +01:00
Bjarke Berg a9450f9ed9 Fix NullReferenceException when using LocalDb, because SqlServerSyntaxProvider.ServerVersion can be null 2019-02-22 11:02:37 +01:00
Stephan 04e916b41c Fix test 2019-02-22 10:42:43 +01:00
Stephan e167388e74 Make UniqueMediaPathScheme deterministic 2019-02-22 09:44:25 +01:00
Claus b8db430615 Revert "Fix UmbracoDatabaseFactory"
This reverts commit 716fc582a0.
2019-02-21 21:01:24 +01:00
Sebastiaan Janssen f9d51ba415 fix version 2019-02-21 19:32:11 +01:00
Stephan e07a17db29 Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2019-02-21 19:17:01 +01:00
Stephan ad62983327 Introduce ILivePublishedModelFactory 2019-02-21 19:15:35 +01:00
Bjarke Berg fc8ae1b228 Merge remote-tracking branch 'origin/dev-v8' into dev-v8-fix 2019-02-21 16:24:31 +01:00
Stephan 48f27afbc9 Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2019-02-21 16:23:20 +01:00
Stephan e1532f9215 Merge branch 'temp8-saving-event-cannot-publish-values' into dev-v8 2019-02-21 16:22:44 +01:00
Bjarke Berg a2279d03f6 Materializing the TypeContentSources before iterating them. 2019-02-21 16:13:21 +01:00
Bjarke Berg e52ff0ea03 merge fix 2019-02-21 14:57:41 +01:00
Bjarke Berg aaa8e881f8 Version number revert 2019-02-21 14:45:12 +01:00
Bjarke Berg 14ec6b8792 Merge branch 'dev-v8' into dev-v8-fix
# Conflicts:
#	src/Umbraco.Core/IO/ShadowWrapper.cs
2019-02-21 14:43:18 +01:00
Stephan 90feb463aa Cleanup 2019-02-21 14:13:37 +01:00
Stephan 73c4e734b3 Move to UniqueMediaPathScheme 2019-02-21 13:48:33 +01:00
Stephan c85b90d65d Combined Guids media path scheme 2019-02-21 13:48:14 +01:00
Stephan e923b940f9 Cleanup Url token encoding 2019-02-21 13:47:10 +01:00
Bjarke Berg d29d629eae Merge pull request #4688 from umbraco/temp8-4674-media-paths
Fix media paths length issues
2019-02-21 13:21:39 +01:00
Stephan 50b076ce38 Merge branch 'dev-v8' into temp8-saving-event-cannot-publish-values 2019-02-21 13:03:36 +01:00
Stephan badb55476b Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2019-02-21 13:03:19 +01:00
Stephan 9ecd63eaed Move to UniqueMediaPathScheme 2019-02-21 12:20:10 +01:00
Stephan 5edd61107f Combined Guids media path scheme 2019-02-21 11:28:51 +01:00
Stephan c21039f1af Fix SqlServer bulk insert / unwrapping commands 2019-02-21 11:17:41 +01:00
Stephan 51f6c639bf Cleanup Url token encoding 2019-02-21 09:35:38 +01:00
Shannon d9a3fa443d fixes test 2019-02-21 15:29:36 +11:00
Shannon 13a1c02507 Fixes content service Saving events so that they are fired before the model's values are published when the service is publishing 2019-02-21 14:46:14 +11:00
Shannon 7a9bc19ffd Adds notes + unit test showing the problem 2019-02-21 12:08:00 +11:00
Stephan 3dfe653ef4 Better throwing on long path in filesystems 2019-02-20 17:04:29 +01:00
Stephan db4dc9006a Shorten filepaths 2019-02-20 17:04:29 +01:00
Stephan 212244b9f2 Hopefully fix PublishedMember 2019-02-20 17:04:29 +01:00
Stephan 12f7492d80 Reorg code 2019-02-20 17:04:29 +01:00
Claus d9d68cf6bf The content service is not returning the invalid properties when publishing fails
(cherry picked from commit d94e383ed7)
2019-02-20 16:17:39 +01:00
Claus d94e383ed7 The content service is not returning the invalid properties when publishing fails 2019-02-20 16:05:42 +01:00
Stephan 716fc582a0 Fix UmbracoDatabaseFactory 2019-02-20 15:52:21 +01:00
Stephan 50c9625cc6 Oops fix previous commit 2019-02-20 15:01:32 +01:00
Stephan 5cbc428590 Fix UserRepository 2019-02-20 15:00:23 +01:00
Stephan db4d88b2dc Shorten shadow filesystems identifiers 2019-02-20 14:10:15 +01:00
Stephan d9d54f7982 Merge branch 'temp8-fixes-published-content-children-method' into dev-v8
(cherry picked from commit 735d759208)
2019-02-20 13:36:10 +01:00
Shannon a61a2b4d97 Removes notes
(cherry picked from commit 717efb6b09)
2019-02-20 13:35:50 +01:00
Stephan 735d759208 Merge branch 'temp8-fixes-published-content-children-method' into dev-v8 2019-02-20 12:56:14 +01:00
Shannon 65f99a9bfd renames the method params to be consistent 2019-02-20 21:06:36 +11:00
Shannon 6c23066fb7 Fixes the Content.Children conundrum with ChildrenOfType method 2019-02-20 21:03:36 +11:00
Shannon 717efb6b09 Removes notes 2019-02-20 20:37:10 +11:00
Anders Bjerner 4d71c5550b Should be returned as a list - otherwise we'll get a new collection and new tab objects each time we iterate over it 2019-02-19 22:36:12 +01:00
Anders Bjerner 0636616a6b #H5IS 2019-02-19 22:21:13 +01:00
Sebastiaan Janssen 91c52cffc8 And revert again 2019-02-19 15:57:40 +01:00
Sebastiaan Janssen 03e7779afb Update install screen 2019-02-19 15:57:06 +01:00
Sebastiaan Janssen 15562ec12f Bump version 2019-02-19 15:01:26 +01:00
Sebastiaan Janssen 6e8862954a Bump version 2019-02-19 15:00:58 +01:00
Warren Buckley 9c7ab96c92 Typo FilderedControllerFactory (#4650) 2019-02-19 14:23:26 +01:00
Niels Lyngsø 564117e62e Grid editor to use $watch for values that needs to transform for presentation 2019-02-19 10:19:02 +01:00
Niels Lyngsø 592d8db3e7 removed comment 2019-02-19 10:18:13 +01:00
Niels Lyngsø 6f67318432 corrected color variables 2019-02-19 10:18:01 +01:00
Stephan 49ca4bbc91 Fix MB in nuspec 2019-02-19 09:42:42 +01:00
Stephan 5121142760 Merge remote-tracking branch 'origin/temp8' into temp8 2019-02-19 08:48:59 +01:00
Stephan 4c53604bd0 Merge branch 'temp8-fixes-publishing-new-content' into temp8 2019-02-19 08:48:28 +01:00
Stephan bf329aa431 Merge branch 'temp8' into temp8-fixes-publishing-new-content 2019-02-19 08:45:54 +01:00
Bjarke Berg d456ee9a31 Merge pull request #4632 from umbraco/temp8-4438
Fixes 4438: Local variant picker squeezes the width of node-name-input, to make it scroll instead of disappear behind.
2019-02-19 08:36:33 +01:00
Stephan f06d720dbd Fix SqlServer detection 2019-02-19 08:12:48 +01:00
Bjarke Berg 87839f4f6a Merge pull request #4643 from umbraco/temp8-show-notification-msg-client-validation
v8 - Shows a notification message when client validation fails in the content editor, else it's not clear there are any problems
2019-02-19 07:54:55 +01:00
Shannon 02f8c4a106 Adds TODO note 2019-02-19 16:55:57 +11:00
Shannon 9f2280da2f Merge branch 'temp8' into temp8-4011 2019-02-19 12:31:11 +11:00
Shannon 71ad7df787 adds code comments 2019-02-19 12:23:08 +11:00
Shannon 4b7520b6f8 Updates the validation warning for media and members 2019-02-19 12:06:55 +11:00
Shannon c06c996ccf Shows a notification message when client validation fails in the content editor, else it's not clear there are any problems. 2019-02-19 11:46:46 +11:00
Sebastiaan Janssen 9fe4d9c44e Make "add group" shortcut consistent 2019-02-18 22:00:25 +01:00
Carole Rennie Logan 560174a21f V8: Changing tab to group (#4391) 2019-02-18 21:44:32 +01:00
Kenn Jacobsen e34a0ec73b Update/fix the blur handling for the tags editor 2019-02-18 20:54:55 +01:00
Jan Skovgaard 152b318d78 v8: Remove open sans font (#4613) 2019-02-18 20:52:18 +01:00
BatJan 414c6b8788 Remove old preview functionality 2019-02-18 20:50:57 +01:00
Kenn Jacobsen 19fb1a55e3 Add missing dirty checks to mediatypes 2019-02-18 20:34:16 +01:00
Kenn Jacobsen b02a9c3e7a Add missing dirty checks to content type dirty checking 2019-02-18 20:22:19 +01:00
Shannon e6f8309d54 reverts the list view changes so they open normally 2019-02-18 17:01:34 +01:00
Shannon 3ecf4144e7 Fixes publishing new variant content that has validation errors 2019-02-19 02:51:05 +11:00
Sebastiaan Janssen 817dd21155 Allow for unselecting a color in the color picker 2019-02-18 16:42:05 +01:00
Sebastiaan Janssen 34216fd635 Create a valid date picker datatype 2019-02-18 16:16:31 +01:00
Shannon c81ff85b41 Merge branch 'kjac-v8-fix-dont-retain-cculture' into temp8 2019-02-19 01:52:26 +11:00
Shannon ca1ec0e4a3 Merge branch 'v8-fix-dont-retain-cculture' of https://github.com/kjac/Umbraco-CMS into kjac-v8-fix-dont-retain-cculture 2019-02-19 01:49:27 +11:00
Shannon f2ae41ada2 Fixes the culturerequest.interceptor so that it works in tests (and so circular deps aren't caused), internalizes ClientCulture and makes it a little less error prone. 2019-02-19 01:44:00 +11:00
Shannon 90cbd69373 Merge remote-tracking branch 'origin/temp8' into temp8 2019-02-19 01:21:40 +11:00
Shannon 16629c78d2 Merge branch 'kjac-v8-fix-use-client-culture' into temp8 2019-02-19 01:20:03 +11:00
Shannon 04487557d7 Merge branch 'v8-fix-use-client-culture' of https://github.com/kjac/Umbraco-CMS into kjac-v8-fix-use-client-culture 2019-02-19 01:05:11 +11:00
Sebastiaan Janssen 5955ede1dc Merge branch 'dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.controller.js
2019-02-18 14:58:49 +01:00
Stephan 5a11b1bcac Upgrade ModelsBuilder 2019-02-18 14:43:15 +01:00
Shannon e1c22ef02c bumped to examine 1.0.0 2019-02-19 00:17:23 +11:00
Niels Lyngsø e1d990e6e8 Only show wrapper when it has content to show 2019-02-18 14:13:23 +01:00
Niels Lyngsø ce8b29bfcc Fixes #4438, makes variant-picker push the width of input, moed border of input to input-wrapper. 2019-02-18 13:35:16 +01:00
Kenn Jacobsen 1c554a8770 Add generic section icon in section picker + clean up legacy section icon stuff 2019-02-18 13:35:08 +01:00
Bjarke Berg 4cc68912ce Merge pull request #4630 from umbraco/temp8-sections
Move sections to their own namespace
2019-02-18 12:20:45 +01:00
Bjarke Berg e2baf50364 Removing boostrap2 stuff 2019-02-18 12:02:03 +01:00
Bjarke Berg dbb82cb3f8 Fixed views 2019-02-18 11:32:09 +01:00
Stephan 11506e5548 Merge branch 'temp8' into temp8-sections 2019-02-18 11:24:41 +01:00
Stephan 7185089f1d Move sections to their own namespace 2019-02-18 11:22:25 +01:00
Bjarke Berg a20fa3d9e2 Merge remote-tracking branch 'origin/temp8' into temp8-4011 2019-02-18 11:13:03 +01:00
Niels Lyngsø 3f13baa8e7 make Embed and Media work for Grid in SplitView when grid is not allowed to vary. 2019-02-18 11:00:47 +01:00
Niels Lyngsø 44b1a738bf clean up css for grid 2019-02-18 10:59:40 +01:00
Niels Lyngsø 2e40911450 get uniq ID by using String.CreateGuid() 2019-02-18 10:59:30 +01:00
Niels Lyngsø 13a326b467 remove logs 2019-02-18 10:58:59 +01:00
Bjarke Berg 050616f446 nullref fixes 2019-02-18 10:58:06 +01:00
Bjarke Berg 08d4747824 nullref fix 2019-02-18 10:55:13 +01:00
Bjarke Berg ecfc8d819f #4379 - Merged Umbraco.Date into Umbraco.Datetime property editor (#4608) 2019-02-18 09:54:01 +01:00
Stephan 30b5dd4d04 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-18 09:49:05 +01:00
Bjarke Berg 6b8fc66858 Merge pull request #4605 from umbraco/temp8-injection-ihttpcontextaccessor-instead-of-controller
Injecting `IUmbracoContextAccessor` instead `UmbracoContext` in constructors
2019-02-18 09:48:37 +01:00
Stephan d7ce71f6a7 Merge branch 'temp8-fixes-rendering-content-without-template' into temp8 2019-02-18 09:48:34 +01:00
Stephan c2bf3d0d53 Merge branch 'temp8' into temp8-fixes-rendering-content-without-template 2019-02-18 09:47:45 +01:00
Stephan ed6167fb0a Document Serilog per-source level 2019-02-18 09:46:43 +01:00
Bjarke Berg aef83b86d4 Merge branch 'temp8' into temp8-injection-ihttpcontextaccessor-instead-of-controller
# Conflicts:
#	src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs
#	src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs
2019-02-18 09:10:47 +01:00
Shannon 8ea6e2b855 If a content item has no template (i.e. route hijack), it will fail to render 2019-02-18 19:07:51 +11:00
Bjarke Berg 8c9d115986 Merge pull request #4626 from umbraco/temp8-remove-Created-service-events
v8 - removal of "Created" events that shouldn't exist
2019-02-18 08:58:57 +01:00
Shannon 79c67e9c1b Fixes logging message 2019-02-18 18:06:54 +11:00
Shannon aa90e61a97 Forgot to remove the ContentService, MediaService and MemberService Created events - these should have been removed a very long time ago! 2019-02-18 16:38:55 +11:00
Shannon 59f51767b5 Forgot to remove the ContentService, MediaService and MemberService Created events - these should have been removed a very long time ago! 2019-02-18 16:38:37 +11:00
Shannon f079f3d66b Fixes a null ref if a url provider returns null 2019-02-18 16:29:57 +11:00
Shannon Deminick 2958b42b31 Merge pull request #4600 from aaronpowell/temp8-3935-clientdependency
Improved fix for non-web Umbraco hosts
2019-02-18 16:13:28 +11:00
Shannon 876336d9fd Fixes more of #4478 2019-02-18 15:02:38 +11:00
Stephan d8a9bfc22c Bugfix variation context in background tasks 2019-02-16 17:25:24 +01:00
Stephan 7641e7a521 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-15 22:45:46 +01:00
Stephan 834a30b5c7 Fix tests 2019-02-15 22:45:30 +01:00
Stephan 6a5f8c0ab8 Fix #4578 2019-02-15 19:32:13 +01:00
Stephan 4ab6ab1a1f Merge branch 'temp8-umbhelper-vs-umbcontext-cleanup' into temp8 2019-02-15 14:20:39 +01:00
Stephan 94a44a2609 Cleanup 2019-02-15 14:20:31 +01:00
Bjarke Berg 8e29dbd494 #4569 - Rename TinyMCE property editor alias (From TinyMCEv3)
#379 - Rename Label property editor alias (From NoEdit)
2019-02-15 13:52:02 +01:00
Robert a0896f168c Merge pull request #4562 from umbraco/temp8-ui-listview-as-infinity-editing-v2
Temp8 ui listview as infinity editing v2
2019-02-15 11:45:58 +01:00
Robert 0555f0868b Merge remote-tracking branch 'origin/temp8' into temp8-ui-listview-as-infinity-editing-v2 2019-02-15 11:24:26 +01:00
Bjarke Berg 5dc3cf45ec Merge remote-tracking branch 'origin/temp8' into temp8-injection-ihttpcontextaccessor-instead-of-controller 2019-02-15 11:13:18 +01:00
Bjarke Berg 8631136444 Merge remote-tracking branch 'origin/temp8' into temp8 2019-02-15 11:05:41 +01:00
Bjarke Berg 7f764a4557 Bugfix for checkboxlist 2019-02-15 11:03:38 +01:00
Robert e29b47069c Show save and publish in infinite mode 2019-02-15 10:54:00 +01:00
Bjarke Berg 73e0e3547c Merge remote-tracking branch 'origin/temp8' into temp8-injection-ihttpcontextaccessor-instead-of-controller 2019-02-15 10:53:23 +01:00
Stephan 6f0ba2236f Fix IGlobalSettings.LocalTempPath in tests 2019-02-15 10:52:30 +01:00
Stephan a46d40e9ef Fix UmbracoContext issue (with a TODO) 2019-02-15 10:52:30 +01:00
Bjarke Berg 2adec8ee74 Merge pull request #4599 from umbraco/temp8-fix-umbeditornavigation-4478
v8 Fixes umbeditornavigation.directive
2019-02-15 10:35:28 +01:00
Robert 68662e271d Merge remote-tracking branch 'origin/temp8' into temp8-ui-listview-as-infinity-editing-v2
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/components/content/edit.html
2019-02-15 10:28:04 +01:00
Stephan cdae0adf52 Merge branch 'temp8' into temp8-umbhelper-vs-umbcontext-cleanup 2019-02-15 10:17:14 +01:00
Bjarke Berg f0dd69d95c Yet another change from injecting UmbracoContext to IUmbracoContextAccessor 2019-02-15 10:10:20 +01:00
Bjarke Berg 90c1fa4a10 Merge remote-tracking branch 'origin/temp8' into temp8-injection-ihttpcontextaccessor-instead-of-controller 2019-02-15 09:59:17 +01:00
Bjarke Berg eab1e46a4b Bugfix in view after UmbracoContext refactoring 2019-02-15 09:58:54 +01:00
Bjarke Berg a29f7b764f Merge remote-tracking branch 'origin/temp8' into temp8-injection-ihttpcontextaccessor-instead-of-controller
# Conflicts:
#	src/Umbraco.Tests/Web/Mvc/RenderIndexActionSelectorAttributeTests.cs
#	src/Umbraco.Tests/Web/Mvc/SurfaceControllerTests.cs
#	src/Umbraco.Web/Editors/Filters/UserGroupAuthorizationAttribute.cs
#	src/Umbraco.Web/Mvc/EnsurePublishedContentRequestAttribute.cs
#	src/Umbraco.Web/Mvc/RedirectToUmbracoPageResult.cs
2019-02-15 09:48:55 +01:00
Stephan 47ee3bf3e4 Move things around 2019-02-15 09:47:35 +01:00
Stephan 64154da4e4 Get LocalTempPath in GlobalSettings 2019-02-15 09:45:51 +01:00
Bjarke Berg 4879e7164e Merge pull request #4413 from kjac/v8-fix-invariant-variant-redirect-tracking
V8: Redirect tracking for invariant content under variant content
2019-02-15 09:10:39 +01:00
Bjarke Berg ed0769f74b Fix for invariant previews 2019-02-15 08:51:03 +01:00
Aaron Powell 0aae5c1df1 Lifting up where the hosted test is 2019-02-15 16:41:50 +11:00
Shannon 3223f23ce4 Dont throw if a property editor isn't found, this prevents the user from doing anything (i.e. if a DLL is removed for some reason like package uninstall), instead default to label so that the admin can actually make changes. 2019-02-15 14:41:20 +11:00
Shannon 9292254aa8 Fixes umbeditornavigation.directive which doesn't listen for any changes to the navigation collection which means it can't dynamically resize or show/hide the items 2019-02-15 14:20:42 +11:00
Shannon 52548316aa adds IPublishedMembersCache to the container and updates MembershipHelper to be request based 2019-02-15 13:36:46 +11:00
Shannon 45f7e71787 Merge remote-tracking branch 'origin/temp8' into temp8-umbhelper-vs-umbcontext-cleanup 2019-02-15 13:09:26 +11:00
Shannon Deminick a87ca8fa1e Merge pull request #4577 from umbraco/temp8-contexts
Refactor UmbracoContext
2019-02-15 12:55:29 +11:00
Shannon 6f7e1cac3e Merge branch 'temp8' into temp8-contexts 2019-02-15 12:55:17 +11:00
Shannon Deminick 997b96e9d4 Merge pull request #4557 from umbraco/temp8-no-restart
Use ChangesMonitor to prevent unwanted restarts during install/upgrade
2019-02-15 12:32:48 +11:00
Shannon afbfc0034d Fixes tests 2019-02-15 12:19:42 +11:00
Shannon 02e3a8f19c Removes all inter-dependencies between UmbracoContext, UmbracoHelper and MembershipHelper and moves Html methods to HtmlHelper extensions. This simplifies UmbracoHelper and MembershipHelper to not require huge dependencies and splits the logic in a nicer fashion instead of wrapping everything 2019-02-15 11:43:56 +11:00
Shannon 6a49f1f99d no need for a Current. usage here 2019-02-15 11:27:33 +11:00
Shannon 4fb0414db3 Removes DisposableObject and uses DisposableObjectSlim where necessary, renames Nul to Null 2019-02-15 10:42:02 +11:00
Bjarne Fyrstenborg 9a5d6afaef Update navigation icons in package section 2019-02-14 21:02:31 +01:00
Bjarne Fyrstenborg 90e3b4273a v8: Adjust Umbraco Forms dashboard (#4589) 2019-02-14 21:01:06 +01:00
Kenn Jacobsen 4662b2e5d4 Fix missing crops on images 2019-02-14 20:55:02 +01:00
Sebastiaan Janssen 3704bfcfe8 Update to latest ImageProcessor 2019-02-14 20:45:34 +01:00
Kenn Jacobsen 013fa2e454 Don't let the image cropper reuse crop states between crops 2019-02-14 20:31:12 +01:00
Kenn Jacobsen 8fe8a0dfa3 Make the image crop slider move at 66 hertz 2019-02-14 20:31:03 +01:00
Kenn Jacobsen 4249f3d1ec Fix the initial zoom offset for new crops in the image cropper 2019-02-14 20:29:43 +01:00
Daniël Knippers 759940b48f Fixes typo defualt -> default 2019-02-14 18:22:04 +01:00
Kenn Jacobsen 5cf0a3adb0 Add the missing right hand side margin for name fields 2019-02-14 18:19:12 +01:00
Kenn Jacobsen 19f884e196 Make sure to show the "No allowed types" for applicable media items 2019-02-14 18:17:35 +01:00
Kenn Jacobsen c1de832c4b Fix: Allowed types for creation don't update 2019-02-14 18:17:00 +01:00
Sebastiaan Janssen 5a482a49bf Merge branch 'dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Web/PropertyEditors/MultiUrlPickerPropertyEditor.cs
2019-02-14 18:14:46 +01:00
Rasmus John Pedersen 46b5c18cc5 V8: Multi Url Picker fixes (#4528)
*  Fix not being able to save link with only an anchor

* Don't allow Multi Url Picker as a Macro Parameter Editor

* Fix anchor/querystring not being saved
2019-02-14 18:12:55 +01:00
Kenn Jacobsen f4a0546dba V8: Add user state and filter localization (#4510) 2019-02-14 18:07:09 +01:00
Kenn Jacobsen 04525b014e Styling for the item edit link in the media picker 2019-02-14 18:04:32 +01:00
Jan Skovgaard 8079b64684 v8: Remove uneeded vendor prefixes (#4502) 2019-02-14 18:03:30 +01:00
Jan Skovgaard 53e6528e6d v8: Remove IE7 CSS hacks (#4500) 2019-02-14 17:55:42 +01:00
Kenn Jacobsen 8a676947bc Don't show the content navigation dropdown if there is only one group of properties 2019-02-14 17:53:32 +01:00
Jan Skovgaard 177a84273f V8: Simplify font setup (#4475) 2019-02-14 17:35:06 +01:00
Kenn Jacobsen 02281a0ee2 Add "back to list" button on edit user 2019-02-14 17:21:35 +01:00
Bjarne Fyrstenborg 9cf4b7b063 v8: Fix closing infinite editors through Escape key (#4462) 2019-02-14 17:19:42 +01:00
Bjarne Fyrstenborg f130fcc390 v8: inifiteediting hide return to list (#4463) 2019-02-14 17:19:02 +01:00
Kenn Jacobsen 9205d2f514 Don't show all children of a selected node as selected 2019-02-14 17:07:54 +01:00
Bjarne Fyrstenborg d76d9b8bcf v8: Fix dictionary items overview (#4456) 2019-02-14 17:04:11 +01:00
Bjarne Fyrstenborg 20e12644e5 v8: Fix saving infinite spinner (#4453) 2019-02-14 16:48:39 +01:00
Bjarne Fyrstenborg 2f377dbefa v8: Update examine management dashboard (#4447) 2019-02-14 16:40:58 +01:00
Bjarne Fyrstenborg fef604d551 v8: Update NuCache dashboard (#4435) 2019-02-14 16:36:44 +01:00
Bjarne Fyrstenborg 822d6cb4c0 v8: Add no relations message (#4431) 2019-02-14 16:33:09 +01:00
Bjarne Fyrstenborg 0d507612cc v8: Fix package options view (#4424) 2019-02-14 16:30:46 +01:00
Bjarne Fyrstenborg 0d36151e53 v8: Macro partial view picker (#4412) 2019-02-14 16:15:00 +01:00
Bjarne Fyrstenborg 280a6d79b4 v8: Add package contributors (#4385) 2019-02-14 16:00:58 +01:00
Robert 2f68853802 Removed console.log 2019-02-14 15:48:39 +01:00
Kenn Jacobsen a8f4cf73d8 V8: Use "Email" instead of "Username" on the login screen (#4383)
* Use "Email" instead of "Username" on the login screen when using email as username in config

* Fix placeholder too
2019-02-14 15:48:20 +01:00
Warren Buckley a7afb2784c Update main UmbracoCms NuSpec for ModelsBuilder update - SK uses the main UmbracoCMS nuget pkg in the example site & wont boot/upgrade without this updated nuspec 2019-02-14 14:28:23 +00:00
Bjarne Fyrstenborg 0a486de6a2 v8: Redirects confirm overlay (#4378) 2019-02-14 15:10:28 +01:00
Kenn Jacobsen 1fe1762724 Retain cculture in breadcrumbs 2019-02-14 15:02:54 +01:00
Stephan 6943be9726 Upgrade ModelsBuilder 2019-02-14 14:23:48 +01:00
Kenn Jacobsen d4a76f1bea V8: Align dialogs in the Settings section (#4344)
* Show the cancel button on macro delete confirm

* Hide "Do something else" when creating folders

* Remove "Do something else" on create relation type
2019-02-14 14:21:21 +01:00
Robert 8cf73e4ecd Merge pull request #4570 from umbraco/temp8-js-test-fixing
v8 - fixing js unit tests + build + CI
2019-02-14 14:18:03 +01:00
Kenn Jacobsen 65670ab539 Merge branch 'temp8' into v8-fix-dont-retain-cculture 2019-02-14 14:01:16 +01:00
Bjarke Berg c4ab4688c7 Merge remote-tracking branch 'origin/temp8' into temp8 2019-02-14 13:50:39 +01:00
Bjarke Berg 92dd1b0f8f Use the url from the object 2019-02-14 13:48:57 +01:00
Stephan 19ac18d13a Really import missing files 2019-02-14 13:48:47 +01:00
Warren Buckley 609786e0c3 Merge pull request #4573 from umbraco/temp8-reorg-composing
Reorganize composition code
2019-02-14 12:44:03 +00:00
Stephan 382a3aba81 Merge branch 'temp8' into temp8-reorg-composing 2019-02-14 13:38:41 +01:00
Warren Buckley de189e506f Merge pull request #4568 from umbraco/temp8-4408-ability-to-add-trees-dynamically
Adds the ability to add tree definitions dynamically on startup
2019-02-14 12:20:06 +00:00
Warren Buckley 29ca926c50 Merge pull request #4574 from umbraco/temp8-4426-fix-for-js-console-error-in-rollback
Added track by $index for `Repeatable Textstrings`
2019-02-14 12:16:58 +00:00
Kenn Jacobsen 684bacb937 V8: Handle element types in the content editor (#4193)
* Don't allow preview for element types

* Don't show the "save and publish" button group for element types + apply primary button state to the "save" button

* Hide templates and URLs for element types

* Fix null error

* Use same notation for negation
2019-02-14 13:13:19 +01:00
Warren Buckley a643f6d1f0 Merge pull request #4551 from umbraco/temp8-ui-umb-tree-grey-out-icon-when-not-published-or-allowed
grey out icons in umb-tree when not published or allowed
2019-02-14 11:54:01 +00:00
Stephan aef9cb807d Import missing files 2019-02-14 12:51:46 +01:00
Stephan fa9dae93b9 Merge branch 'temp8' into temp8-no-restart 2019-02-14 12:47:12 +01:00
Kenn Jacobsen 7b03bc20cc Support localization of template and content type names in the content mapper 2019-02-14 12:46:27 +01:00
Bjarke Berg 1770a0abec Inject IUmbracoContextAccessor instead of UmbracoContext 2019-02-14 12:40:45 +01:00
Kenn Jacobsen 494bdfef1e Allow invariant languages to be resolved by specific cultures 2019-02-14 12:37:03 +01:00
Kenn Jacobsen 0ac196bec6 Add some missing localization for content info 2019-02-14 12:29:06 +01:00
Stephan d933724e39 Cleanup, document 2019-02-14 12:26:50 +01:00
Stephan 186e8fc58b Introduce IUmbracoContextFactory 2019-02-14 12:11:06 +01:00
Claus 30386cc96e adding some translations. 2019-02-14 11:32:23 +01:00
Claus 1bed04f384 Merge branch 'nathanwoulfe-temp8-4548' into temp8 2019-02-14 10:52:41 +01:00
Stephan e5142e4915 Make IPublishedSnapshot IDisposable 2019-02-14 10:50:08 +01:00
Claus 866fdadbe2 Merge branch 'temp8-4548' of https://github.com/nathanwoulfe/Umbraco-CMS into nathanwoulfe-temp8-4548 2019-02-14 10:49:48 +01:00
Claus 7edd338dd0 Merge branch 'kjac-v8-fix-localize-content-apps' into temp8 2019-02-14 10:44:32 +01:00
Stephan abceda7750 Kill UmbracoContext.Current 2019-02-14 10:39:49 +01:00
Stephan 969c2aa184 Bugfix component collection 2019-02-14 10:39:27 +01:00
Claus a37512ffb4 Merge branch 'v8-fix-localize-content-apps' of https://github.com/kjac/Umbraco-CMS into kjac-v8-fix-localize-content-apps 2019-02-14 10:35:52 +01:00
Kenn Jacobsen 7045eb196c Use InvariantContains instead of Contains when looking for culture in the querystring 2019-02-14 10:14:56 +01:00
Kenn Jacobsen 825d8421ed Don't use a hardcoded /umbraco path 2019-02-14 10:12:59 +01:00
Claus 466642af26 Merge pull request #4565 from kjac/v8-fix-remove-console-log
V8: Remove leftover console.log from #4469
2019-02-14 09:39:56 +01:00
Bjarke Berg 71f128d796 #4426 - Added track by $index for Repeatable Textstrings 2019-02-14 09:39:42 +01:00
Kenn Jacobsen 2927ff0af7 Merge branch 'temp8' into v8-fix-use-client-culture 2019-02-14 09:36:54 +01:00
Claus e098b9c184 removing using statements. 2019-02-14 09:28:15 +01:00
Stephan 7660e9fb25 Reorganize composition code 2019-02-14 09:15:47 +01:00
Stephan fe9b964ffe Cleanup IPublishedCache.GetByContentType 2019-02-14 08:54:00 +01:00
Stephan 01b82ee4e8 Bugfix HttpRequestAppCache locking 2019-02-14 08:48:20 +01:00
Bjarke Berg 026094c1b9 Merge pull request #4558 from umbraco/temp8-implement-GetByContentType-nucache
v8 - the GetByContentType methods for the content cache were not implemented
2019-02-14 08:36:24 +01:00
Shannon 2c34979ee8 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-14 18:25:07 +11:00
Shannon 65ce753925 Fixes issue with loading in the correct view for package options 2019-02-14 18:24:52 +11:00
Stephan 94cb6cb668 Bugfix NuCache #4547 2019-02-14 08:05:50 +01:00
Shannon d1624fab2d Merge branch 'temp8' into temp8-implement-GetByContentType-nucache 2019-02-14 16:51:07 +11:00
Shannon 64df1d040f Fixes how tests are run, fixes up the content picker, removes unecessary tests 2019-02-14 15:09:28 +11:00
Shannon Deminick 7e9d8e5de8 Merge pull request #4534 from aaronpowell/temp8-3935-clientdependency
Removing ClientDependency setup for non-web runtimes
2019-02-14 14:04:27 +11:00
Aaron Powell c50daf87a5 Moving to using IOHelper.IsHosted 2019-02-14 13:44:24 +11:00
Shannon 5e38cadacc publishes js test results to xml so that Azure DevOps can read the results, re-enables js test building, fixes an issue with one of the tests 2019-02-14 12:30:36 +11:00
Shannon f814a80ab7 Fixes the ContentSaveValidationAttribute since it was capturing a request based object in it's ctor when it's a singleton, moves the OnlyLocalRequestsAttribute to the correct namespace, WebSecurity shouldn't be IDisposable 2019-02-14 11:37:27 +11:00
Shannon 6644fc790a dont null check tree title 2019-02-14 11:15:43 +11:00
Shannon fd5a2f355b Also exposes the SearchableTreeCollectionBuilder since that's required to be able to replace the ISearchableTree implementations 2019-02-14 11:08:39 +11:00
Shannon f385e1d01d fixes #4408 2019-02-14 11:01:34 +11:00
Shannon Deminick 9a264a120b Merge pull request #4552 from umbraco/temp8-ui-datepicker-style
UI datepicker style updated
2019-02-14 10:28:08 +11:00
Shannon 286730c65e Merge remote-tracking branch 'origin/temp8' into temp8-ui-datepicker-style 2019-02-14 10:25:14 +11:00
Shannon Deminick 6d372fa609 Merge pull request #4556 from umbraco/temp8-4308-styling-of-doc-type-editor
Dimmed overlay on property preview + removed background from "add pro…
2019-02-14 10:23:03 +11:00
Shannon 672f57de5e Merge branch 'temp8' into temp8-4308-styling-of-doc-type-editor 2019-02-14 10:19:57 +11:00
Shannon Deminick e0fa99ee56 Merge pull request #4561 from umbraco/temp8-4451-default-ordering-of-tinymce-toolbar
Changed the default ordering of toolbar in tinymce
2019-02-14 09:55:12 +11:00
Shannon c62ce2ab4b Merge remote-tracking branch 'origin/temp8' into temp8-implement-GetByContentType-nucache 2019-02-14 09:52:09 +11:00
Kenn Jacobsen 30434eacea Remove leftover console.log from #4469 2019-02-13 18:47:29 +01:00
Robert b3a0cd4dd6 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-13 17:24:21 +01:00
Robert 3e0f3bc782 Fixing some tests up by adding the missing _dataTypeService.Setup. 2019-02-13 17:24:02 +01:00
Kenn Jacobsen 9003314d56 Make sure the sticky sub header do not clash with the actions menu (#4503) 2019-02-13 16:43:13 +01:00
Niels Lyngsø 2001487c1e Dont show back button in infinity mode 2019-02-13 16:16:41 +01:00
Stephan d7c8112a7a Merge branch 'temp8' into temp8-no-restart 2019-02-13 16:12:48 +01:00
Warren Buckley df41813ce2 Update the help drawer/sidebar to work with custom dashboards section targeting user-help. Starterkit is the only thing that seems to use this 2019-02-13 15:12:25 +00:00
Bjarke Berg 2b0cfdb143 #4451 - Changed the default ordering of toolbar in tinymce, to be the same as the ordering in config 2019-02-13 15:33:48 +01:00
Niels Lyngsø 95f154cc59 open item in list view as infinity editors 2019-02-13 14:58:48 +01:00
Warren Buckley 375fc62414 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-13 13:45:26 +00:00
Warren Buckley 0a7a42383d Fixed up build output of nupkg & package ZIP containing the Release config files for serilog 2019-02-13 13:44:26 +00:00
Niels Lyngsø 60fa931f3f Grid-RTE got a unique ID, which fixes TineMCE code, which is dependent on a unique ID. #4011 2019-02-13 14:38:25 +01:00
Bjarke Berg fa1c360000 Merge pull request #4553 from umbraco/temp8-post-migrations
Refactor post-migrations
2019-02-13 14:23:39 +01:00
Shannon 3ffeb751b9 Implements GetByContentType in nucache 2019-02-14 00:17:33 +11:00
Shannon Deminick 412c9ffa6e Merge pull request #4484 from umbraco/temp8-sk-installer
V8 Installer Steps for starter kit re-enabled
2019-02-13 23:56:21 +11:00
Shannon b5da6c876b makes sure the package file is removed after install 2019-02-13 23:55:05 +11:00
Robert c318bc55dc Merge pull request #4554 from umbraco/temp8-4542-bugfix-for-edit-property-type
Get the editor from the new dataType instead of the old propertyEditor
2019-02-13 13:50:55 +01:00
Warren Buckley 7aebfce579 Update gitignore to exclude serilog config files 2019-02-13 12:43:26 +00:00
Stephan a9c2ec76f7 Merge remote-tracking branch 'origin/temp8' into temp8-post-migrations 2019-02-13 13:32:09 +01:00
Stephan 0c475aa174 Merge branch 'temp8-post-migrations' of https://github.com/umbraco/Umbraco-CMS into temp8-post-migrations 2019-02-13 13:31:19 +01:00
Stephan d16bcdc841 Bugfix NuCache reload during upgrades 2019-02-13 13:30:13 +01:00
Stephan f2472c321d Use ChangesMonitor to prevent unwanted restarts during install/upgrade 2019-02-13 13:29:27 +01:00
Warren Buckley 3415332504 Remove serilog config files from repo the build in Web.UI CSProj will create them from the Release versions like ClientDependancy does 2019-02-13 12:28:01 +00:00
Niels Lyngsø 988be21990 making the grid work in splitview 2019-02-13 13:20:01 +01:00
Warren Buckley 0a4502af60 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-13 12:03:56 +00:00
Warren Buckley 0176e2f2e0 Adds in some .Release.config files for Serilog config files - so the build script in the CSProj will reset the config files back 2019-02-13 12:03:46 +00:00
Robert ac44823ebb Merge pull request #4540 from umbraco/temp8-4440-get-children-for-single-culture-when-only-one-culture-exists
Fix for vary by culture when only one culture exists
2019-02-13 12:35:56 +01:00
Stephan 4443465e74 Merge branch 'temp8' into temp8-post-migrations 2019-02-13 12:04:15 +01:00
Stephan b5a90bf26a Fix SqlServer detection 2019-02-13 12:02:53 +01:00
Bjarke Berg 3e9113f1ef Clean up 2019-02-13 11:39:09 +01:00
Niels Lyngsø ff8f9083ec Dimmed overlay on property preview + removed background from "add property group" + adjust sizes for umb-panel-header and added hovers. 2019-02-13 11:37:09 +01:00
Robert 5d5e411219 Merge pull request #4539 from umbraco/temp8-default-logging
V8 - Default logging set to JSON
2019-02-13 11:23:04 +01:00
Bjarke Berg d0c4e44e9e Rebuild cache after migration 2019-02-13 11:02:07 +01:00
Bjarke Berg 1b6fd92087 #4542 - Get the editor from the new dataType instead of the old propertyEditory 2019-02-13 10:49:32 +01:00
Stephan 3c9770c6b6 Refactor post-migrations 2019-02-13 10:14:01 +01:00
Stephan 169e93ed81 Refactor post-migrations 2019-02-13 09:53:17 +01:00
Claus 4a17702849 Merge pull request #4389 from kjac/v8-fix-repeatable-string-styling
V8: Repeatable string hover + move handle styling
2019-02-13 09:39:24 +01:00
Warren Buckley c6da0f3b96 Merge pull request #4543 from umbraco/temp8-ui-clear-distinguish-property-groups
Temp8 ui clear distinguish property groups
2019-02-13 08:30:33 +00:00
Niels Lyngsø cc50a7a3ba grey out icons in umb-tree when not published or allowed 2019-02-13 09:27:24 +01:00
Bjarke Berg e19cd5f49f Merge pull request #4459 from kjac/v8-fix-rte-code-editor-width
V8: Don't open the RTE code editor in "small" sized overlay
2019-02-13 08:12:57 +01:00
Kenn Jacobsen 730a2f7768 Localize content app names 2019-02-13 08:11:01 +01:00
Nathan Woulfe 3c2b2e2963 fix height of editor sub-nav to prevent vertical overflow of borders 2019-02-13 17:10:43 +10:00
Bjarke Berg 7b36e89bd3 Merge pull request #4457 from kjac/v8-fix-remove-obsolete-translations
V8: Remove weird and unused translations
2019-02-13 07:35:45 +01:00
Nathan Woulfe 7aac3dc1bf notifications are full-width on all screen sizes 2019-02-13 16:33:02 +10:00
Shannon 775ea0de3c Merge branch 'temp8' into temp8-sk-installer 2019-02-13 17:15:30 +11:00
Nathan Woulfe 1f7092e2a8 Merge pull request #2 from umbraco/temp8
Temp8
2019-02-13 15:56:36 +10:00
Shannon ee4c751423 fix typo 2019-02-13 15:30:39 +11:00
Niels Lyngsø f016d04c1f V8 UI - umb-sticky-bar corrected width and height set by JS. 2019-02-12 16:52:52 +01:00
Warren Buckley 44929e5512 Remove InstallPackageFiles function as it was installing the package XML & NOT the files 2019-02-12 15:46:57 +00:00
Warren Buckley d7d37e3d63 Revert "Need to install the physical files from the package that was missing in this installer flow"
This reverts commit 00082a87fa.
2019-02-12 15:28:58 +00:00
Warren Buckley 00082a87fa Need to install the physical files from the package that was missing in this installer flow 2019-02-12 14:22:26 +00:00
Warren Buckley 47aec9768c Set the packagepath when saving the SK file - as need to know the location when we fetch it in next install step 2019-02-12 14:11:47 +00:00
Bjarke Berg 1def9014cd Reload templates when creating a doc type with template 2019-02-12 15:11:07 +01:00
Niels Lyngsø 385a86b3b3 V8: UI datepicker style update 2019-02-12 14:52:21 +01:00
Niels Lyngsø 7d589eb607 V8: datepicker style matching the light interface of v8 2019-02-12 14:39:12 +01:00
Niels Lyngsø 7b5ff7b2eb distinguish property groups from properties 2019-02-12 14:37:12 +01:00
Warren Buckley 22918b40bf Merge branch 'temp8' into temp8-sk-installer 2019-02-12 13:35:01 +00:00
Warren Buckley 06a8569570 Merge pull request #4535 from umbraco/temp8-4490-tours
Updated the tours to match v8
2019-02-12 13:32:09 +00:00
Stephan e6b77cf307 Merge origin/temp8 into temp8 2019-02-12 13:42:27 +01:00
Stephan 88e11396b4 Merge branch 'temp8-drop-xml-tables' into temp8 2019-02-12 13:39:55 +01:00
Warren Buckley 2ca5c1d94a Removed extra lines to make Claus happy :) 2019-02-12 12:28:12 +00:00
Niels Lyngsø 9f182e6461 compressed login.jpg 2019-02-12 13:17:48 +01:00
Niels Lyngsø 2403373457 added login image 2019-02-12 13:16:28 +01:00
Niels Lyngsø e9e852c499 Merge remote-tracking branch 'origin/temp8' into temp8-ui-update-login-screen 2019-02-12 12:59:01 +01:00
Bjarke Berg 0cfe1b8348 Merge pull request #4504 from kjac/v8-fix-media-picker-always-show-folder-names
V8: Always show folder names in the media picker
2019-02-12 12:51:08 +01:00
Claus ca39531f45 Merge pull request #4533 from umbraco/temp8-4477-radiobutton-must-store-text-value
WIP v8 radio buttons and check box list need to store strings, not INT
2019-02-12 12:45:04 +01:00
Bjarke Berg cdef97efba Merge pull request #4514 from umbraco/temp8-4430-grid-settings-to-use-editorservice
#4430 change grid-editor settings to use editorService
2019-02-12 12:39:13 +01:00
Bjarke Berg 786c9ff3cc form horizontal 2019-02-12 12:38:43 +01:00
Bjarke Berg 3820457536 Merge remote-tracking branch 'origin/temp8' into temp8-4430-grid-settings-to-use-editorservice 2019-02-12 12:30:41 +01:00
Robert 7cd600e58a Merge pull request #4532 from umbraco/temp8-remove-list-view-settings-3199
removes/renames list view settings that don't make sense for v8
2019-02-12 12:27:09 +01:00
Warren Buckley f7c37fecdc Merge pull request #4520 from umbraco/temp8-4476-selection-colors-for-users
V8: corrected selection colors for users, fixes #4476
2019-02-12 11:16:47 +00:00
Bjarke Berg 1677442fad #4440 - If we only have one culture, we sets that's culture when requesting children. Fixes issue where a document type is varing by culture, but we don't show the mculture picker. 2019-02-12 11:58:38 +01:00
Niels Lyngsø ddc88af809 Merge branch 'temp8-4476-selection-colors-for-users' of https://github.com/umbraco/Umbraco-CMS into temp8-4476-selection-colors-for-users 2019-02-12 11:58:19 +01:00
Warren Buckley 4a1c36c8d0 Update src/Umbraco.Web.UI.Client/src/views/users/views/users/users.controller.js 2019-02-12 10:57:47 +00:00
Niels Lyngsø 20dc1b5c10 Corrected colors for buttons + disable select-image button in media-picker if nothing is selected 2019-02-12 11:57:43 +01:00
Warren Buckley 810d8fa87a Update src/Umbraco.Web.UI.Client/src/views/users/views/users/users.controller.js 2019-02-12 10:57:39 +00:00
Niels Lyngsø a1abdc8ba7 Login screen color changes 2019-02-12 11:56:51 +01:00
Stephan 11f4e2429a Merge branch 'temp8' into temp8-drop-xml-tables 2019-02-12 11:43:06 +01:00
Bjarke Berg 7b84c755b3 #4477 - Fixed tests 2019-02-12 11:20:10 +01:00
Bjarke Berg bb27a3f42e #4477 - Migration of radio button, checkbox and dropdown to align underlying data structures 2019-02-12 10:36:36 +01:00
Warren Buckley 6593b704d5 Moves the JSON & TXT logging out of the C# setup of the Serilog logger pipeline into the appsetting XML config file - however its not possible to then have both enabled together anymore 2019-02-12 08:59:12 +00:00
Bjarke Berg f4db356511 WIP - Handle migration of Checkbox list data 2019-02-12 08:58:49 +01:00
Bjarke Berg f5d31a4c5a Merge remote-tracking branch 'origin/temp8' into temp8-4477-radiobutton-must-store-text-value 2019-02-12 08:23:38 +01:00
Bjarke Berg fd01f4e7c6 Merge remote-tracking branch 'origin/temp8-4477-radiobutton-must-store-text-value' into temp8-4477-radiobutton-must-store-text-value
# Conflicts:
#	src/Umbraco.Core/Migrations/Upgrade/UmbracoPlan.cs
#	src/Umbraco.Core/Migrations/Upgrade/V_8_0_0/RadioButtonAndCheckboxPropertyEditorsMigration.cs
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/checkboxlist/checkboxlist.controller.js
2019-02-12 08:17:38 +01:00
Bjarke Berg 724eca7575 #4490 - Fixed the TextArea configuration, to match the text in the tour 2019-02-12 08:10:18 +01:00
Bjarke Berg 3f314fe5be #4490 Updated the tour to match v8 2019-02-12 08:09:42 +01:00
Bjarke Berg 7f7afef976 Merge pull request #4522 from umbraco/temp8-Forms-section-reintrodution
Reintroduced the forms section
2019-02-12 07:36:11 +01:00
Shannon c4eb76faad Updates the checkbox html editor to store the string values, not int ids, renames the underlying confg editor and updates comments, updates the migration and we'll need to migrate the checkbox data too. 2019-02-12 15:02:27 +11:00
Shannon ed2743d570 Merge branch 'temp8' into temp8-4477-radiobutton-must-store-text-value
# Conflicts:
#	src/Umbraco.Core/Migrations/Upgrade/UmbracoPlan.cs
2019-02-12 14:59:59 +11:00
Aaron Powell 88a2878cf2 Removing ClientDependency setup for non-web runtimes 2019-02-12 14:48:49 +11:00
Shannon 118e31d647 removes/renames list view settings that don't make sense for v8 2019-02-12 14:03:22 +11:00
Shannon 54aa1924c0 ok, properly fixes dirty tracking on the tags editor 2019-02-12 13:55:50 +11:00
Shannon c00f805ea2 Fixes dirty tracking on tags editor when it's csv format 2019-02-12 13:36:32 +11:00
Shannon 1a1222905b reverts the formsInstaller alias, fixes the ApplicationTreeController to allow full screen sections without trees, removes the forms tree controller 2019-02-12 12:22:36 +11:00
Shannon 77d70c7e7f Fixes test 2019-02-12 11:43:34 +11:00
Shannon 3d729eb2c3 updates umb plan 2019-02-12 10:54:18 +11:00
Shannon 978f59ffe8 Removes the xml cache tables - we don't use them apart from in unit tests 2019-02-12 10:53:30 +11:00
Shannon Deminick f71fe3f78d Merge pull request #4511 from umbraco/temp8-4466-bugfix-for-creating-macros-from-partial-views
Sets the MacroType when created from Partial View Macro Files
2019-02-12 10:17:49 +11:00
Robert 21d1b7c599 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-11 22:13:30 +01:00
Robert b5bd138bf7 Taking composite PropertyType's into consideration when creating content from xml (PackageInstallation) 2019-02-11 22:13:04 +01:00
Shannon 59f437ebf8 update to latest examine 2019-02-12 02:03:21 +11:00
Shannon d8574248fc Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-12 01:58:56 +11:00
Shannon 0d963d3c4d Fixing package installation for content templates 2019-02-12 01:58:42 +11:00
Bjarke Berg 5fb4e40c3b Merge remote-tracking branch 'origin/temp8-Forms-section-reintrodution' into temp8-Forms-section-reintrodution 2019-02-11 15:32:46 +01:00
Bjarke Berg 60ca85fe25 Introduced the forms section in the sections menu. 2019-02-11 15:32:24 +01:00
Bjarke Berg 944c8d59d7 Need to clone the object before removing $-prefixed variables. Otherwise we are modifying the same data as the views are using 2019-02-11 15:30:11 +01:00
Niels Lyngsø e4a492dc57 Disable button dont hide them + dont select current user 2019-02-11 14:30:01 +01:00
Stephan 154b59c84b Fix redirect tracking 2019-02-11 14:11:13 +01:00
Niels Lyngsø a77b0fc51f Merge remote-tracking branch 'origin/temp8' into temp8-4476-selection-colors-for-users 2019-02-11 13:46:25 +01:00
Kenn Jacobsen 64f41541fe Fix the tree item state annotations (#4497) 2019-02-11 13:33:52 +01:00
Bjarne Fyrstenborg a6fc9f4ede v8: Fix users layout switcher (#4458)
* Localize edit link, remove duplicate class attributes and only make remove link red

* Revert "Localize edit link, remove duplicate class attributes and only make remove link red"

This reverts commit 63cc250c0f929b1f7e6f9f05fae2fd302682d418.

* Use built-in $id function for tracky by since users doesn't have name property

* Set active layout to card layout

* Update onLayoutSelect

* Format document
2019-02-11 13:27:50 +01:00
Niels Lyngsø 5342e65f7c V8: update selection colors for users section 2019-02-11 12:46:23 +01:00
Stephan 0bdd1131bb Add missing file 2019-02-11 11:57:36 +01:00
Bjarke Berg 18c8911164 Merge remote-tracking branch 'origin/temp8' into temp8 2019-02-11 11:55:09 +01:00
Bjarke Berg e08a7c3ea8 Need to clone the object before removing $-prefixed variables. Otherwise we are modifying the same data as the views are using 2019-02-11 11:54:51 +01:00
Stephan a892ae1567 Add missing index on UserLogin table (prevents deadlocks) 2019-02-11 11:36:13 +01:00
Bjarke Berg 14f878b690 #4477 - Align Dropdown, checkbox list and radio button list 2019-02-11 10:36:54 +01:00
Niels Lyngsø 153b665d0a #4430 change grid-editor settings to use editorService 2019-02-11 09:39:54 +01:00
Bjarke Berg e62de9561b #4466 - Sets the MacroType when created from Partial View Macro Files snippets 2019-02-11 07:54:39 +01:00
Shannon e35436225f Fixes JS with the content picker 2019-02-11 15:47:13 +11:00
Shannon dd54b0324c fixes up some comments 2019-02-11 14:13:44 +11:00
Kenn Jacobsen 6fdada69eb Always show folder names in the media picker 2019-02-10 18:55:16 +01:00
Stephan 99887cb362 Bugfix IdkMap 2019-02-10 11:25:46 +01:00
Kenn Jacobsen c75ac83c98 Show missing translations as "(name)", not "((name))" 2019-02-09 18:42:55 +01:00
Kenn Jacobsen 0c860e999b Reimplement after merge 2019-02-09 18:26:03 +01:00
Kenn Jacobsen 3587a774f3 Merge with temp8 2019-02-09 18:03:53 +01:00
Kenn Jacobsen 462a6168b3 Don't show the language selector in content pickers (use the current client culture) 2019-02-09 17:56:13 +01:00
Kenn Jacobsen cb33442e7c Tidy up a bit 2019-02-09 17:50:29 +01:00
Kenn Jacobsen 0dd5ba61ab Clean up unused culture attribute 2019-02-09 17:48:45 +01:00
Kenn Jacobsen 89a701c865 Initial PoC 2019-02-09 15:41:30 +01:00
Bjarke Berg 4f53cfc855 #4477 - Added fixme for cache rebuild 2019-02-08 14:18:24 +01:00
Stephan b177607d47 Suspend JS tests - can we build? 2019-02-08 14:14:30 +01:00
Warren Buckley f549522573 Merge pull request #4469 from umbraco/temp8-ui-umb-editor-navigation-content-apps-dropdown
#4359 + #4360 umb editor navigation content apps anchor-dropdown
2019-02-08 13:04:40 +00:00
Warren Buckley 521fc227ba TYPO - Update src/Umbraco.Web.UI.Client/src/common/directives/components/content/umbtabbedcontent.directive.js 2019-02-08 13:04:30 +00:00
Niels Lyngsø 612a63b6bb fix if scrollTween not defined issue 2019-02-08 13:30:20 +01:00
Niels Lyngsø 1860a175d1 remove eventlisteners on destroy 2019-02-08 13:06:56 +01:00
Stephan b5c803b5ed Cleanup TreeEntityPath 2019-02-08 12:42:46 +01:00
Warren Buckley 393b8f08c8 Adds the plumbing back for when the new V8 compat SK is on our.umb 2019-02-08 11:09:09 +00:00
Stephan 8f39cd605a Fix MacroMapperProfile 2019-02-08 11:47:42 +01:00
Warren Buckley 9eaa0361be Merge pull request #4437 from umbraco/temp8-4302-bugfix-for-media-validation
Bugfixes for media validation
2019-02-08 09:50:26 +00:00
Bjarke Berg 354c45e0e2 #4477 - also refresh cache after migration 2019-02-08 10:32:21 +01:00
Stephan 67e90ca21b Cleanup configuration editors 2019-02-08 09:56:24 +01:00
Bjarke Berg 065cc69f51 #4477 - Changed the saved value from the radio button list to the text value. + Migration of old values 2019-02-08 09:45:36 +01:00
Niels Lyngsø 14db9da57c removed proposal comment 2019-02-08 09:45:33 +01:00
Niels Lyngsø e5a27a2108 removed misleading documentation 2019-02-08 09:39:01 +01:00
Stephan 88b0dccfa1 Fix TreeEntityPath 2019-02-08 09:02:27 +01:00
Shannon 73ce546f0c ensures idType in JS is always udi by default instead of int 2019-02-08 16:12:30 +11:00
Shannon 964447d546 fixes up the web.config view file with the right mvc version 2019-02-08 16:08:29 +11:00
Shannon 40097c441a Ensure the same logic for property editors is executed for parameter editors to get the final configuration object 2019-02-08 16:07:03 +11:00
Shannon 63b3c06b3a Ensures the correct DefaultConfiguration values are specified for any editor that is actively overriding ToValueEditor and setting these values there 2019-02-08 16:00:59 +11:00
Shannon ccaaa9ab93 Ensures everything doesn't explode if a non-found property editor alias exists in the db 2019-02-08 16:00:02 +11:00
Shannon b08218240c updates package json ... lets see how the build server does with the new build 2019-02-08 10:26:21 +11:00
Shannon e67bbdc25f Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-08 10:09:39 +11:00
Kenn Jacobsen 2ab3889b23 Don't retain cculture when navigating away from the current content 2019-02-07 18:15:21 +01:00
Warren Buckley d9ac1868e6 Merge pull request #4465 from umbraco/temp8-fix-for-non-root-start-node-for-media
V8: Bugfix for loading paths Ids into TreeEntityPath
2019-02-07 15:25:42 +00:00
Robert a9b7c649ae Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-07 15:44:42 +01:00
Robert 1095948c27 Sets prop's prefixed with "$" to undefined. 2019-02-07 15:44:17 +01:00
Warren Buckley 7bd0a8edc2 Merge pull request #4429 from umbraco/temp8-4398
#4398 - Added validation to the grid editor, such that columns must b…
2019-02-07 14:38:59 +00:00
Niels Lyngsø 5c8fad330e motion added for umb-editor-navigation-item anchor-dropdown 2019-02-07 15:10:31 +01:00
Warren Buckley 4a2b6116f2 Merge pull request #4418 from kjac/v8-feature-allow-all-at-root
V8: Allow all content types at root if none are explicitly allowed
2019-02-07 13:47:33 +00:00
Warren Buckley 2c0fc737a7 Merge pull request #4421 from umbraco/temp8-4405-reload-history-on-rollback
#4405 - Load history on init if the active tab is info
2019-02-07 13:29:52 +00:00
Stephan df53b93ae0 Fix nuspec 2019-02-07 13:59:43 +01:00
Niels Lyngsø 0b19eab5a9 umb-group-panel for umbtabbedcontent 2019-02-07 13:59:20 +01:00
Claus 7c3b5d1086 Merge remote-tracking branch 'origin/temp8-update-deps' into temp8 2019-02-07 13:40:17 +01:00
Niels Lyngsø 42803ff006 V8: umb-editor-navigation anchor-dropdown refined, remembers last active anchor, 2019-02-07 13:26:23 +01:00
Stephan dbd6e0adbb Merge remote-tracking branch 'origin/temp8' into temp8 2019-02-07 13:10:26 +01:00
Stephan c607c7e259 Merge branch 'temp8-contentAndType' into temp8 2019-02-07 13:09:56 +01:00
Stephan 29334ed2d5 Fix ModelsBuilder changes 2019-02-07 12:57:10 +01:00
Stephan 990e82d183 Upgrade ModelsBuilder, cleanup dashboard 2019-02-07 12:37:52 +01:00
Stephan 2092156db3 Cleanup 2019-02-07 12:27:19 +01:00
Bjarke Berg f7ee8c0899 Merge pull request #4411 from kjac/v8-fix-redirect-tracking-composer
V8: Fix the redirect tracking composer
2019-02-07 11:09:22 +01:00
Stephan a9adc4eee5 Merge branch 'temp8' into temp8-contentAndType 2019-02-07 10:10:55 +01:00
Stephan c59ff8d995 Merge branch 'temp8-fix-default-userid-param' into temp8 2019-02-07 10:02:13 +01:00
Stephan 4a8e5935c2 Merge branch 'temp8' into temp8-fix-default-userid-param 2019-02-07 10:01:15 +01:00
Stephan 8ed2dcb8bf Don't capture content caches! 2019-02-07 09:59:16 +01:00
Bjarke Berg fc6548d87b Fix issue where Id was not set when loading all entity paths 2019-02-07 09:56:14 +01:00
Warren Buckley 5944ea20cc Merge remote-tracking branch 'origin/temp8' into temp8-fix-default-userid-param
# Conflicts:
#	src/Umbraco.Core/Services/IContentService.cs
#	src/Umbraco.Core/Services/Implement/ContentService.cs
2019-02-07 08:24:03 +00:00
Niels Lyngsø fb070928f7 V8: umb-editor-navigation-anchor-dropdown first version 2019-02-07 08:57:20 +01:00
Stephan 8329097974 Review PR, adjustments 2019-02-07 08:53:49 +01:00
Stephan d15f20f560 Merge branch 'temp8' into temp8-contentAndType 2019-02-07 08:40:46 +01:00
Bjarke Berg 87c85341fb Merge remote-tracking branch 'origin/temp8' into temp8 2019-02-07 08:20:02 +01:00
Bjarke Berg f6da7e4444 JS error, handle user dialog in the same way as help dialog. Don't close on change of section. Before was a js error with missing method 2019-02-07 08:19:44 +01:00
Stephan d11fd67a09 Bugfix PublishedContentTypeFactory 2019-02-07 08:04:53 +01:00
Shannon 977250dcdd tests as part of build 2019-02-07 17:15:49 +11:00
Shannon 1703c918d9 test pass now 2019-02-07 17:06:50 +11:00
Shannon d76f7db700 fixes the runTest build so that it properly builds the babel js and fixes one of the tests 2019-02-07 16:59:25 +11:00
Shannon 261ddfbcd6 Gets unit tests running again and added a task runTests 2019-02-07 16:22:29 +11:00
Shannon 86b31c2782 fixes test.js to point to the correct karma config 2019-02-07 15:41:20 +11:00
Shannon Deminick cb309e7f9e Merge pull request #4432 from kjac/v8-fix-rename-umbraco-domains-table
V8: Rename umbracoDomains table to umbracoDomain (singular)
2019-02-07 15:28:37 +11:00
Shannon ed5023e431 Adds some null checks to Examine's value set builders in case some of the data is strangely incorrect 2019-02-07 15:13:45 +11:00
Shannon fcec180dc4 Ship with correct skipIIsCustomeerrors setting 2019-02-07 14:54:22 +11:00
Shannon a9045c254e Removes the need to do any lookup for GetNonGroupedProperties, we already know if they belong to a non-group based on the ID 2019-02-07 14:01:00 +11:00
Shannon 03eaf3aa3d So yup ISimpleContentType needs the IUmbracoEntity, so we'll explicitly implement essentially hiding the implementation from the API unless it's explicitly cast 2019-02-07 13:29:01 +11:00
Shannon 3b12e0b72a Updates ContentBase to track the original PropertyType's which means we don't ever need to look them up again, adds notes about this too since it seems it is probably unnecessary to begin with. 2019-02-07 13:28:23 +11:00
Shannon 123daed990 Removes the need for .Current in some places, adds TODO notes to test a theory, removes IUmbracoEntity from ISimpleContentType since all tests seem to pass without it and because the SimpleContentTypeMapper doesn't actually use ISimpleContentType i don't think it's needed, we'll see what the tests say. 2019-02-07 12:43:11 +11:00
Shannon 9df0f384af Removes the need for another .Current and a lookup, simplifies the whole GetUrl for media 2019-02-07 12:02:47 +11:00
Shannon 562855a687 removes fixme, adds comments and null checks 2019-02-07 11:53:43 +11:00
Shannon 030b626350 Removes the need for a .Current, removes an unused method 2019-02-07 11:49:30 +11:00
Shannon 78849bb7ff removes unused methods and internalizes methods we can't expose yet 2019-02-07 11:42:16 +11:00
Shannon c04da30547 Merge branch 'temp8' into temp8-contentAndType
# Conflicts:
#	src/Umbraco.Core/Models/Content.cs
#	src/Umbraco.Core/Models/ContentBase.cs
#	src/Umbraco.Tests/Models/ContentTests.cs
2019-02-07 11:41:06 +11:00
Shannon Deminick 0606d1bc8b Merge pull request #4341 from umbraco/temp8-3640
Support culture in content Saving and Publishing events
2019-02-07 11:26:45 +11:00
Shannon 4655acfdeb Fixes ambiguous call 2019-02-07 11:26:09 +11:00
Kenn Jacobsen 68f34d5643 Don't open the RTE code editor in "small" sized overlay 2019-02-06 22:09:22 +01:00
Kenn Jacobsen 8d305b2c6a Remove weird and unused translations 2019-02-06 19:45:07 +01:00
Stephan 37c130194f Merge branch 'temp8' into temp8-3640 2019-02-06 16:31:04 +01:00
Stephan 162e691828 Bugfix PublishedContentTypeFactory 2019-02-06 16:26:32 +01:00
Warren Buckley 51ad0f75d1 Fix up unit test but also uses constant for -1 as the parent id aka System Root Node Id 2019-02-06 15:16:11 +00:00
Warren Buckley de5b32749e Merge branch 'temp8' into temp8-fix-default-userid-param 2019-02-06 14:56:52 +00:00
Stephan 19d8796c40 Merge branch 'temp8' into temp8-3640 2019-02-06 15:07:49 +01:00
Stephan 0be5ff64bc Be friendly 2019-02-06 15:05:56 +01:00
Warren Buckley 8b4315cd46 🦸🦸 Is it a bird, is it a plane, no it's SuperUser 🦸🦸 2019-02-06 14:01:14 +00:00
Stephan 48e11ab439 Fix 8.0 migration 2019-02-06 14:53:49 +01:00
Shannon f98727e08d fixing tests 2019-02-07 00:15:47 +11:00
Stephan 7863cd3ab7 Refactor OrderedCollectionBuilderBase AppendAfter to InsertAfter 2019-02-06 14:11:33 +01:00
Shannon 34c65a94bf dont allocate an empty object if the collection is empty 2019-02-07 00:07:43 +11:00
Shannon e2c86a96fe Ensures change collections are cleared on clone 2019-02-07 00:05:25 +11:00
Shannon b95b02d0c0 ensure the culture is bumped if a property of that culture is modified, fixes up the AdjustDates method and tests 2019-02-06 23:51:12 +11:00
Shannon bcfbab2add fixing tests 2019-02-06 23:12:01 +11:00
Stephan b260c18056 Refactor IContent vs IContentType 2019-02-06 13:06:31 +01:00
Shannon 5b33416b7b adds fixme notes 2019-02-06 23:02:28 +11:00
Shannon 5b3f21c541 fixes tests 2019-02-06 22:12:00 +11:00
Shannon 3f8efed392 updates nuspecs to have the correct target framework 2019-02-06 21:55:59 +11:00
Shannon 68cdbf50b2 removes old unused dependency from tests 2019-02-06 21:48:33 +11:00
Shannon 47d660041e updates test proj dependencies 2019-02-06 21:47:21 +11:00
Shannon 817ce71e83 updates threading libs 2019-02-06 21:44:12 +11:00
Shannon 4c2ea81c53 updates Light Inject 2019-02-06 21:41:46 +11:00
Shannon 7c21a42804 Update serilog 2019-02-06 21:39:09 +11:00
Shannon e556e39cd1 latest HtmlAgility 2019-02-06 21:31:50 +11:00
Niels Lyngsø c813aafb38 Merge remote-tracking branch 'origin/temp8' into temp8-ui-refactoring-of-umb-editor-navigation 2019-02-06 11:26:52 +01:00
Niels Lyngsø 64d2940c3b refactoring of umb-editor-navigation 2019-02-06 11:26:39 +01:00
Bjarke Berg a4a437a746 Fixed view after UmbracoHelper ctor changes 2019-02-06 11:18:52 +01:00
Shannon 0947a1a109 Automapper upgraded 2019-02-06 21:14:50 +11:00
Shannon b4bf1cb01c puts the profiler back to the right 2019-02-06 19:58:56 +11:00
Shannon 4b9a13c3a1 Updates mini profiler 2019-02-06 19:04:52 +11:00
Niels Lyngsø 2f0d8b75df Merge remote-tracking branch 'origin/temp8' into temp8-ui-refactoring-of-umb-editor-navigation 2019-02-06 08:24:19 +01:00
Bjarke Berg 48531c6193 #4302 - Sets the default values for Media File and Image File as mandatory 2019-02-06 08:07:50 +01:00
Bjarke Berg b82dde240b #4302 - Bugfixes for media validation. 2019-02-06 08:07:04 +01:00
Shannon 5bf0b143d9 another owin update and nuspec fix 2019-02-06 17:08:47 +11:00
Shannon 33bc979cfc Fixes binding of FormDataCollection for GET requests which fixes the compatibility with the latest WebApi 5.2.7 version (cherry picked from https://github.com/umbraco/Umbraco-CMS/pull/3851), fixes a binding redirect 2019-02-06 17:03:23 +11:00
Shannon 50d1b9ddfd Latest MVC, WebApi, Owin and Signalr 2019-02-06 16:53:15 +11:00
Shannon 1bbb9c2b6e updates to latest newtonsoft 2019-02-06 16:43:04 +11:00
Shannon 3b60ffeb28 fixes test 2019-02-06 16:27:19 +11:00
Shannon 92606e7122 Fixes up dirty tracking of cultures and published cultures the same way we handle that with other entities which uses observable collection events. This simplifies the dirty tracking logic and means we dont require lookup the original object, but now we need to figure out the fixme stuff 2019-02-06 16:10:20 +11:00
Stephan 0f85c921e3 Merge pull request #4433 from umbraco/nul800sebastiaan-patch-1
Why so sad! :-)
2019-02-05 20:02:09 +01:00
Stephan f752861e10 Bugfix null timer in CoreRuntime 2019-02-05 20:01:20 +01:00
Stephan b403e9b3b7 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-05 20:00:30 +01:00
Sebastiaan Janssen eafb9a46f7 Why so sad! :-) 2019-02-05 19:59:13 +01:00
Kenn Jacobsen 1e24981576 Rename umbracoDomains table to umbracoDomain (singular) 2019-02-05 19:48:13 +01:00
Warren Buckley 4c79269081 Merge pull request #4422 from umbraco/temp8-ui-refactoring-infinity-editing-to-css-animation
V8: UI refactoring infinity editing to css animation
2019-02-05 15:49:49 +00:00
Warren Buckley a1a3267c0b Merge pull request #4366 from kjac/v8-fix-icon-picker-color-selection
V8: Doctype icon color picker selection is broken
2019-02-05 15:15:23 +00:00
Bjarke Berg 6f9be482be #4398 - Added validation to the grid editor, such that columns must be at least as large as the layouts. 2019-02-05 14:52:02 +01:00
Stephan 29f2f34f9b Refactor IContent vs IContentType 2019-02-05 14:06:48 +01:00
Stephan 6125643c3f Bump copyright year 2019-02-05 13:43:04 +01:00
Robert 9e8e62dc71 Merge pull request #4346 from kjac/v8-fix-nested-content-elements-with-culture-variance
V8: Make Nested Content resilient towards culture variance in elements
2019-02-05 12:57:51 +01:00
Stephan d2692a2ff5 NuCache respects global local temp storage 2019-02-05 12:20:13 +01:00
Stephan d3b0913047 Fix UmbracoHelper preventing upgrades 2019-02-05 12:19:57 +01:00
Bjarke Berg 4290249719 #4405 - Load history on init if the active tab is info 2019-02-05 11:55:10 +01:00
Niels Lyngsø ff497b413e V8: UI, refactoring of infinity editing to use CSS to fix issue regarding stacking of layers. 2019-02-05 11:54:23 +01:00
Robert ea95b4f454 Merge pull request #4345 from kjac/v8-fix-relation-types-editor
V8: Relation type editor crashes for root relations and is using excessive XHR
2019-02-05 10:35:25 +01:00
Robert bec61a00c9 Merge pull request #4336 from kjac/v8-fix-disappearing-thumbnails
V8: Fix disappearing thumbnails in the media grid
2019-02-05 10:05:14 +01:00
Robert 4054e0ab72 Merge pull request #4357 from kjac/v8-fix-media-picker-upload-button
V8: Media picker upload button does nothing
2019-02-05 09:54:01 +01:00
Stephan f07a2715b4 Add assembly-level composer attributes 2019-02-05 08:37:48 +01:00
Kenn Jacobsen 9579b42330 Allow copying/moving any content type to root if none are marked as "AllowAsRoot" 2019-02-05 07:54:59 +01:00
Kenn Jacobsen c9936058b5 Allow creating any content type at root if none are marked as "AllowAsRoot" 2019-02-05 07:54:42 +01:00
Shannon b65dac946f Merge branch 'temp8-IContentService-SaveAndPublish-4324' into temp8-3640
# Conflicts:
#	src/Umbraco.Core/Models/Content.cs
#	src/Umbraco.Core/Models/ContentBase.cs
#	src/Umbraco.Core/Models/IContent.cs
#	src/Umbraco.Tests/Services/ContentServiceTests.cs
2019-02-05 16:14:46 +11:00
Shannon f1b23ba0e9 Merge remote-tracking branch 'origin/temp8' into temp8-3640
# Conflicts:
#	src/Umbraco.Core/Models/Content.cs
2019-02-05 14:27:40 +11:00
Shannon 3dab68b70d adds note 2019-02-05 14:15:03 +11:00
Shannon 9f612465cf Cleans up IContent/IContentBase, no more internal methods or setters, moves manipulation used by the DocumentRepository to ext methods 2019-02-05 14:13:03 +11:00
Kenn Jacobsen b9d554908d Track redirects for invariant content under variant content 2019-02-04 21:03:45 +01:00
Kenn Jacobsen be881ba9ca Fix the redirect tracking composer 2019-02-04 20:09:17 +01:00
Warren Buckley cd566a6397 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-04 17:21:16 +00:00
Warren Buckley 0061f997e9 Fix up logviewer - search error/mesage drodpwon button to search on Goggle, GitHub, Our.Umb etc 2019-02-04 17:12:41 +00:00
Stephan 1e8b8feee8 Make ContainerControllerFactory exceptions more explicit 2019-02-04 17:59:12 +01:00
Stephan 2e5967ff9e Make TypeLoader less verbose 2019-02-04 17:58:36 +01:00
Shannon a5947356e7 Removes WasCulturePublished from IContent 2019-02-05 01:58:18 +11:00
Shannon 09255019b2 removes CommitDocumentChanges from the public interface 2019-02-05 01:22:52 +11:00
Shannon c20e597115 Merge remote-tracking branch 'origin/temp8' into temp8-IContentService-SaveAndPublish-4324 2019-02-05 01:13:43 +11:00
Stephan 3c65770008 Upgrade ModelsBuilder, cleanup 2019-02-04 14:08:35 +01:00
Stephan e636f12459 Fix leak in BackgroundTaskRunner 2019-02-04 13:39:32 +01:00
Niels Lyngsø bd4b4620d4 First part of refactoring umb-editor-navigation 2019-02-04 13:34:26 +01:00
Sebastiaan Janssen d3eb48cef9 Fixes #4388 File uploads no longer has dragover styles 2019-02-04 13:29:02 +01:00
Bjarke Berg 825b07b823 Merge pull request #4332 from umbraco/temp8-macros-dont-render-and-other-macro-bugs
v8 Macros don't render in the RTE and various
2019-02-04 13:23:46 +01:00
Bjarke Berg 2d2862517a Merge pull request #4327 from umbraco/temp8-4229-validation-from-main-variant-does-not-prevent-publishing
#4229 - If the property do not support variantions, we need to valida…
2019-02-04 13:14:14 +01:00
Bjarke Berg 327b820a25 Fixed broken test 2019-02-04 12:59:58 +01:00
Stephan 3c3b9e3946 Fixes 2019-02-04 12:55:04 +01:00
Bjarke Berg dccea19847 Merge pull request #4370 from kjac/v8-fix-default-dropdowns
V8: Fix the default dropdowns
2019-02-04 11:42:37 +01:00
Stephan 23159ce9a6 Merge branch 'temp8' into temp8-4229-validation-from-main-variant-does-not-prevent-publishing 2019-02-04 11:11:34 +01:00
Niels Lyngsø b13be6840b Merge pull request #3485 from dawoe/temp-3434
V8 - #3434 - change checkboxes on property type settings to toggle
2019-02-04 10:19:25 +01:00
Stephan dbab435f1e Merge branch 'temp8-fixes-allocations-for-property-selectors' into temp8 2019-02-04 10:09:43 +01:00
Stephan bc987a825a Cleanup 2019-02-04 10:09:32 +01:00
Stephan d6181b042b Merge branch 'temp8' into temp8-fixes-allocations-for-property-selectors 2019-02-04 09:58:55 +01:00
Shannon 80165c3c0f Fixes allocations of property selectors, with nameof we save a bunch of both memory and initial reflection lookups 2019-02-04 19:52:04 +11:00
Stephan 7fd51a298d Upgrade ModelsBuilder, following changes in Umbraco 2019-02-04 09:47:37 +01:00
Niels Lyngsø 93dbbd6bbe Merge pull request #4384 from kjac/v8-fix-actions-menu
V8: Fix the editor actions menu
2019-02-04 08:37:10 +01:00
Niels Lyngsø 72f6b2fd11 removing comments from temp8-4257-refactoring-of-infinite-editor-layers 2019-02-04 08:12:27 +01:00
Shannon b51d3036e3 Adds overload of SaveAndPublish to accept multiple cultures, renames SavePublishing to CommitDocumentChanges, removes IContent.ChangeContentType 2019-02-04 16:55:35 +11:00
Shannon 30452f0b17 Fixes rte toolbar pinning in the grid 2019-02-04 14:00:01 +11:00
Shannon 9fba7345aa When rendering macro contents, be sure to use the preview published content since the item 2019-02-04 13:48:53 +11:00
Shannon a0cda4075d Fixes issue with rendering macro content when the page doesn't exist 2019-02-04 13:42:07 +11:00
Shannon c5819ca702 Merge branch 'temp8' into temp8-macros-dont-render-and-other-macro-bugs
# Conflicts:
#	src/Umbraco.Web/Editors/EntityController.cs
#	src/Umbraco.Web/Editors/MediaController.cs
#	src/Umbraco.Web/Runtime/WebRuntimeComposer.cs
2019-02-04 12:42:07 +11:00
Shannon 9be6acf449 Oops forgot to remove the IconClosed and IconOpen TreeAttribute props 2019-02-04 12:09:04 +11:00
Kenn Jacobsen 5566afbabb Add move cursor to umb-multiple-textbox move handle 2019-02-03 22:08:40 +01:00
Kenn Jacobsen c045d4774a Add the correct hover style to umb-multiple-textbox 2019-02-03 22:08:20 +01:00
Kenn Jacobsen 6141d88407 Don't set the menu state until the action is about to be carried out. 2019-02-03 17:05:27 +01:00
Kenn Jacobsen 4b69a7859d Make sure the app menu state is set 2019-02-03 13:56:00 +01:00
Kenn Jacobsen 5d15db8468 Make sure the default dropdowns are created correctly 2019-02-02 13:42:24 +01:00
Kenn Jacobsen 6874a5486b Fix selected color 2019-02-01 20:28:27 +01:00
Kenn Jacobsen 90a282c083 Fix the icon color picker 2019-02-01 20:09:54 +01:00
Anders Bjerner 6130b475da IDashboard -> IDashboardSlim 2019-02-01 18:47:17 +01:00
Stephan c53258a7d2 Merge branch 'temp8-oembed-collection' into temp8 2019-02-01 17:57:21 +01:00
Stephan df61a76868 Cleanup PR 2019-02-01 17:52:29 +01:00
Stephan 3a0f80fc7e Merge branch 'temp8' into temp8-oembed-collection 2019-02-01 17:44:53 +01:00
Stephan add9ee73db Merge branch 'feature/IContentType-removale-from-IContent' into temp8 2019-02-01 17:42:32 +01:00
Stephan 132c3c0c8e Cleanup PR, document and rename things 2019-02-01 17:19:12 +01:00
Stephan e88443e549 Merge branch 'temp8' into feature/IContentType-removale-from-IContent 2019-02-01 16:25:36 +01:00
Warren Buckley e17d6df023 It helps if you put in a valid value - it expects Information and not Info as the loglevel 2019-02-01 15:13:41 +00:00
Warren Buckley 0a9bc82551 Merge pull request #4347 from umbraco/temp8-4068-grid-fixes
Grid fixes
2019-02-01 14:13:23 +00:00
Claus 7d17b1be16 Merge pull request #4337 from umbraco/temp8-appsetting-conventions-constants
Web.Config AppSetting key conventions & move to constants class
2019-02-01 15:11:54 +01:00
Niels Lyngsø 59c43fe8cb Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-01 14:54:54 +01:00
Niels Lyngsø d4b2ac3f1e V8: UI — changed color for focus point on medias 2019-02-01 14:54:49 +01:00
Claus 05a40b32c6 Merge pull request #4361 from kjac/v8-media-items-default-property-descriptions
V8: Add descriptions to properties on default media items
2019-02-01 14:35:36 +01:00
Kenn Jacobsen bf87ecb818 Add descriptions to properties on default media items 2019-02-01 14:32:17 +01:00
Bjarke Berg 9acf913872 #3545 - Added IContentTypeServiceBaseFactory to create a IContentTypeServiceBase (E.g. IContentTypeService or IMediaTypeService) based on the type of the IContentBase 2019-02-01 14:07:31 +01:00
Niels Lyngsø 95b4f9141e test for gathering url for list items so you can Ctrl/CMD+click. 2019-02-01 14:06:44 +01:00
Warren Buckley fec046347b Merge pull request #4352 from umbraco/temp8-4257-refactoring-of-infinite-editor-layers
Temp8 4257 refactoring of infinite editor layers
2019-02-01 12:43:31 +00:00
Niels Lyngsø 7261432461 V8: UI — changed look of media-picker upload button 2019-02-01 13:23:09 +01:00
Niels Lyngsø b645cc8e54 Merge pull request #4355 from umbraco/temp8-4354-publish-fix
Fix for javascript's strict equality
2019-02-01 13:21:40 +01:00
Kenn Jacobsen 712a260159 Fix wrong class name in media picker element selector 2019-02-01 13:01:42 +01:00
Bjarke Berg bfc2d53fa4 Merge remote-tracking branch 'origin/temp8' into feature/IContentType-removale-from-IContent
# Conflicts:
#	src/Umbraco.Web/Macros/PublishedContentHashtableConverter.cs
2019-02-01 12:52:20 +01:00
Niels Lyngsø 0c34de4524 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-01 12:38:59 +01:00
Niels Lyngsø f5d904c88c V8: add spacing around tabs 2019-02-01 12:38:12 +01:00
Bjarke Berg ab5c33e340 #4354 - Fix for stupid javascript's strict equality 2019-02-01 12:34:56 +01:00
Warren Buckley a6d0449671 Merge pull request #4335 from umbraco/temp8-3648-retain-cculture-in-urls
#3648 - Besides mculture also retain cculture in querystring on navig…
2019-02-01 10:40:17 +00:00
Warren Buckley d1edc45d4d Merge pull request #4304 from umbraco/temp8-3645-change-culture-in-preview
Allow changing culture in the preview bar
2019-02-01 10:27:37 +00:00
Warren Buckley fde9e9b654 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-01 10:14:39 +00:00
Warren Buckley d38dba1660 Update nuspec to include new hosted image/icon for Nuget packages from .com site 2019-02-01 10:14:29 +00:00
Niels Lyngsø 0bb69aeeee V8: preview colors changed for brandcolors 2019 2019-02-01 11:10:20 +01:00
Warren Buckley 3fac16eda8 Fix count bug - so it works with two languages 2019-02-01 09:58:10 +00:00
Niels Lyngsø 979f7b404c V8: refactoring of layers add and removal methods 2019-02-01 10:51:14 +01:00
Niels Lyngsø 4ab42e0dc7 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-01 10:49:22 +01:00
Niels Lyngsø fc6e17f3f9 V8: UI — umb-content-grid color change 2019-02-01 10:49:09 +01:00
Stephan a6d04aa5bb Merge branch 'temp8' into temp8-3640 2019-02-01 10:47:34 +01:00
Bjarke Berg 045020e739 #4068 - Changed save event triggered when save dialog is opened. save is still broadcasted on the actual save.
Changed the grid event listener to only execute on `save` events
2019-02-01 08:37:06 +01:00
Shannon Deminick ed734d0f80 Merge pull request #4232 from umbraco/temp8-member-search-and-tags
Fixes for search of members + Removed fixme in member that apparently…
2019-02-01 17:11:10 +11:00
Shannon c0ab9d9e59 Merge branch 'temp8' into temp8-member-search-and-tags
# Conflicts:
#	src/Umbraco.Web/Editors/MemberController.cs
2019-02-01 16:43:03 +11:00
Shannon bb64141207 removes obsolete method 2019-02-01 16:35:10 +11:00
Shannon ad5b166f3f Fixes tests, simplifies constructors 2019-02-01 15:44:32 +11:00
Shannon 036ca7f1e5 fixing tests 2019-02-01 15:30:38 +11:00
Shannon c2ff32aaab Fixing tests, don't expose UmbracoContext on UmbracoHelper, fixing all of the editor constructors 2019-02-01 15:24:07 +11:00
Shannon 493ee63cb9 Merge branch 'temp8' into temp8-macros-dont-render-and-other-macro-bugs 2019-02-01 14:57:13 +11:00
Shannon c846d69507 Merge branch 'kjac-v8-fix-copy-media-types' into temp8 2019-02-01 14:52:06 +11:00
Shannon e540902ee1 Merge branch 'v8-fix-copy-media-types' of https://github.com/kjac/Umbraco-CMS into kjac-v8-fix-copy-media-types 2019-02-01 14:51:42 +11:00
Shannon d7d82ea98d Allows grid rte to be distraction-free, the parameter was not being passed but it can be configured 2019-02-01 14:02:45 +11:00
Shannon 3eb6cd9e21 Macros are now working inline in the rte with both the Classic and Distraction free modes 2019-02-01 13:50:39 +11:00
Shannon e79e07af77 Merge branch 'temp8' into temp8-macros-dont-render-and-other-macro-bugs 2019-02-01 13:50:10 +11:00
Shannon 7614ba42df Fixes the tag editor and tag suggestions 2019-02-01 13:32:17 +11:00
Shannon dae8dfdc59 fix merge 2019-02-01 11:34:28 +11:00
Shannon 0c4712de56 Merge branch 'temp8' into temp8-macros-dont-render-and-other-macro-bugs
# Conflicts:
#	src/Umbraco.Tests/Testing/TestingTests/MockTests.cs
#	src/Umbraco.Tests/Web/Mvc/SurfaceControllerTests.cs
#	src/Umbraco.Web/Templates/TemplateRenderer.cs
2019-02-01 11:33:13 +11:00
Shannon d8fbbeccfe Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-02-01 11:27:53 +11:00
Shannon 452badab41 Fixes tag editor for proper dirty tracking and model updating, the models weren't being updated correctly 2019-02-01 11:27:40 +11:00
Shannon f74a49f5a3 Gets the macros being able to be updated, now to fix the Classic mode, since this now only works in distraction free mode 2019-02-01 10:18:53 +11:00
Kenn Jacobsen eeaf8d594d Make NC resilient towards culture variance in elements 2019-01-31 19:43:57 +01:00
Bjarke Berg 4a480ab391 #4068 - Added interceptor to remove $ variables from post data 2019-01-31 15:10:19 +01:00
Bjarke Berg 6bf3b19d86 #4068 - Fix for ordering of grid 2019-01-31 15:09:57 +01:00
Stephan 3199aa6693 Support culture in content Saving and Publishing events 2019-01-31 15:06:24 +01:00
Warren Buckley 14c43d76c1 Adds OEmbedProviders to the composition extension to make it easier to add/append the collection 2019-01-31 13:37:47 +00:00
Warren Buckley bc7748aed6 Adds in XML docs summary - still need assitance with a few keys so put in some TODOs 2019-01-31 12:37:54 +00:00
Warren Buckley 3f8f1a215e Merge remote-tracking branch 'origin/temp8' into temp8-appsetting-conventions-constants 2019-01-31 12:06:29 +00:00
Warren Buckley 69f7a1b7b9 Finish up remaining AppSetting keys as Constants 2019-01-31 12:05:56 +00:00
Niels Lyngsø d59bddfe9a Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-31 12:58:21 +01:00
Niels Lyngsø d45d0a816e V8: UI — changed colors for selection state for rows in list-view 2019-01-31 12:58:17 +01:00
Warren Buckley 34be548aec Start work on adding AppSettings keys into a constants class & use new prefix of Umbraco.Core. 2019-01-31 10:56:09 +00:00
Kenn Jacobsen 1a64c0a803 Fix disappearing media thumbnails 2019-01-31 11:45:08 +01:00
Warren Buckley 14b97b6abe Fix up JS as the API model had changed 2019-01-31 10:24:15 +00:00
Warren Buckley 8d55340325 Fix up youtube URL regex matching 2019-01-31 10:23:54 +00:00
Bjarke Berg 92d53eb527 #3648 - Besides mculture also retain cculture in querystring on navigation 2019-01-31 11:10:27 +01:00
Stephan a6f9598a23 Introduce IPublishedRouter 2019-01-31 11:07:45 +01:00
Kenn Jacobsen 26e0c6cb79 Don't break for root relations + minimize number of XHR 2019-01-31 10:43:34 +01:00
Warren Buckley ad9c4ec9a5 Merge remote-tracking branch 'origin/temp8' into temp8-oembed-collection 2019-01-31 09:34:10 +00:00
Warren Buckley a36b1962c6 Last of providers moved across & the old config file gone 2019-01-31 09:32:50 +00:00
Niels Lyngsø b65e042b4c Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-31 10:13:11 +01:00
Niels Lyngsø b558023f9e V8: UI interact vs. select 2019-01-31 10:13:07 +01:00
Bjarke Berg 169221a5da Merge pull request #4188 from umbraco/v8/bugfix/temp8-fe-infinityediting-fixing-contentapps-after-edit-doctype
V8/bugfix/temp8 fe infinityediting fixing contentapps after edit doctype
2019-01-31 09:52:23 +01:00
Warren Buckley 160d01e783 Merge remote-tracking branch 'origin/temp8' into temp8-oembed-collection 2019-01-31 08:50:34 +00:00
Bjarke Berg 228480a2ef Merge remote-tracking branch 'origin/temp8' into v8/bugfix/temp8-fe-infinityediting-fixing-contentapps-after-edit-doctype 2019-01-31 09:50:30 +01:00
Bjarke Berg 9d9597dbc3 Merge remote-tracking branch 'origin/temp8' into v8/bugfix/temp8-fe-infinityediting-fixing-contentapps-after-edit-doctype
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/media/media.edit.controller.js
2019-01-31 09:39:43 +01:00
Niels Lyngsø 01ecd49256 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-31 09:37:14 +01:00
Niels Lyngsø 2ab391eb69 V8: UI select colors 2019-01-31 09:37:04 +01:00
Sebastiaan Janssen a1f72826c7 Remove duplicate css class 2019-01-31 08:39:59 +01:00
Bjarne Fyrstenborg 3ba32dafa5 Localize edit link, remove duplicate class attributes and only make remove link red 2019-01-31 08:34:54 +01:00
Bjarne Fyrstenborg d55262b322 Revert "Localize edit link, remove duplicate class attributes and only make remove link red"
This reverts commit 63cc250c0f929b1f7e6f9f05fae2fd302682d418.
2019-01-31 08:34:54 +01:00
Bjarne Fyrstenborg 7b3623a9d9 Localize edit link, remove duplicate class attributes and only make remove link red 2019-01-31 08:34:54 +01:00
Shannon 9abd72f623 gets macro content loading on rte load 2019-01-31 17:12:44 +11:00
Shannon f9e673ca4c Updates tinymce, adds back the styles for the rendered macro in the rte, properly uses tinymce's noneditable plugin and removes a ton of code relating to the old work arounds we had, now just need to get the macro re-rendering 2019-01-31 16:54:17 +11:00
Shannon 2f1c39ab96 Removes the old/strange "pageElements" thing, it's no longer needed 2019-01-31 15:44:39 +11:00
Shannon 7b55d2f1b2 New IMacroRenderer and ITemplateRenderer and hides underlying logic for these in internal classes. Massively cleans up the macro rendering logic (almost makes sense now), removes unused macro code, injects UmbracoHelper wherever it's needed (not creating manually), fixes UmbracoHelper to have it's services injected, no more empty services, allows setting the AssignedContentItem on the UmbracoHelper and ensures it's lifespan is Transient, updates all corresponding ctors. Fixes macro rendering, ensures the correct culture variation is assigned, and that we can render macros for any given IPublishedContent, not just the one assigned in the request. 2019-01-31 15:09:31 +11:00
Shannon Deminick 7f9ca716e7 Merge pull request #4210 from umbraco/temp8-fixme-get-all-entities-with-postfilter
Fixme - Handle not implemented exception on pick of macro
2019-01-31 14:51:55 +11:00
Shannon d9cb605f22 Fixing getting the macro to render in the rte, incorrect params being set 2019-01-31 14:48:43 +11:00
Shannon 8c813fa40d Merge branch 'temp8' into temp8-fixme-get-all-entities-with-postfilter 2019-01-31 11:10:01 +11:00
Shannon 0e9eae6f73 removes a bunch of console.log that was recently added 2019-01-31 11:05:41 +11:00
Shannon dcacff0124 Updates user section routing so that it has nice urls 2019-01-31 11:03:25 +11:00
Warren Buckley fe9700b3f7 A handful more providers moved across & removed any that no longer supported 2019-01-30 21:52:12 +00:00
Callum Whyte 2036da5e84 V8: kill usercontrol support, cleanup macros (#4329) 2019-01-30 18:37:07 +01:00
Sebastiaan Janssen 74a1bb9123 Update .net version, don't insert examine nor defaultuilanguage 2019-01-30 18:02:48 +01:00
Sebastiaan Janssen 781f63b805 There is no log4net.config 2019-01-30 18:01:16 +01:00
Sebastiaan Janssen b7a788e219 There is no trees.config 2019-01-30 18:01:01 +01:00
Sebastiaan Janssen 396fa73283 There is no UI.xml 2019-01-30 18:00:40 +01:00
Warren Buckley 880faeebd3 Adds a few more providers to the collection 2019-01-30 16:50:08 +00:00
Sebastiaan Janssen 1a298be9fa Removes obsoleted settings that prevent v8 startup 2019-01-30 17:47:54 +01:00
Sebastiaan Janssen 2353863092 Fix merge error 2019-01-30 17:35:06 +01:00
Sebastiaan Janssen 5ebe1b19ee Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-30 17:28:07 +01:00
Sebastiaan Janssen 8be93f91ba Merge branch 'dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Core/Services/Implement/MemberGroupService.cs
#	src/Umbraco.Web.UI.Client/src/common/directives/components/imaging/umbimagegravity.directive.js
#	src/Umbraco.Web.UI.Client/src/common/directives/components/umbcolorswatches.directive.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/boolean/boolean.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.html
2019-01-30 17:27:34 +01:00
Warren Buckley 74dcaea879 Merge remote-tracking branch 'origin/temp8' into temp8-oembed-collection 2019-01-30 16:02:02 +00:00
Kenn Jacobsen f2e1978ddb Support start node IDs for media picker in infinite editing 2019-01-30 16:46:33 +01:00
Shannon f8fd255239 Last cleanup of unused umbraco settings 2019-01-31 01:37:38 +11:00
Shannon 6b2831c606 kill more useless umbraco settings 2019-01-31 01:30:17 +11:00
Shannon 2a54b2931c Removes providers section from umbraco settings 2019-01-31 01:20:19 +11:00
Shannon f28c60ced3 Removes all irrelevant logging settings from umbraco settings 2019-01-31 01:11:15 +11:00
Shannon a20c75d3c7 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-31 00:57:39 +11:00
Shannon 1c8b4412e3 Removes scheduled tasks 2019-01-31 00:57:10 +11:00
Bjarke Berg 5561029e07 Merge pull request #4070 from kjac/v8-fix-redirects-search-box-styling
V8: Fix the styling of the search box on the Redirect URL Management dashboard
2019-01-30 14:41:19 +01:00
Shannon 7a50856d32 Removes AutoLegacy routing and the legacy UseDomainPrefixes from umbraco settings 2019-01-31 00:33:02 +11:00
Shannon d1d9779a71 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-31 00:30:44 +11:00
Shannon 9571f48bd3 Removes AutoLegacy routing and the legacy UseDomainPrefixes from umbraco settings 2019-01-31 00:30:28 +11:00
Bjarne Fyrstenborg 0016962bc2 v8: Edit macro parameters (#4317) 2019-01-30 14:27:58 +01:00
Shannon 82ba360435 removes defaultDocumentTypeProperty from umbraco settings 2019-01-31 00:16:15 +11:00
Shannon 36d7c26120 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-31 00:09:46 +11:00
Shannon d852422328 removes CloneXmlContent from umbraco settings 2019-01-31 00:09:30 +11:00
Kenn Jacobsen 14a216778e V8: Align delete dialogs with the other dialogs (take two) (#4288) 2019-01-30 14:08:50 +01:00
Shannon 06cf8abfee Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-31 00:03:20 +11:00
Shannon 357da8ac6e removes PropertyContextHelpOption from umbraco settings 2019-01-31 00:03:03 +11:00
Stephan c8d9e59436 Fix SqlServer version detection 2019-01-30 14:02:45 +01:00
Bjarne Fyrstenborg 69af591b78 v8: Fix general localization (#4274) 2019-01-30 14:01:22 +01:00
Shannon f1b168fc46 removes ForceSafeAliases from umbraco settings, etc... 2019-01-30 23:58:54 +11:00
Bjarke Berg fe2af90caa #4229 - If the property do not support variantions, we need to validate the default language 2019-01-30 13:56:50 +01:00
Shannon 3dce2c870e removes XmlCacheEnabled, ContinouslyUpdateXmlDiskCache, XmlContentCheckForDiskChanges from umb settings 2019-01-30 23:52:35 +11:00
Shannon a123bc7084 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-30 23:42:39 +11:00
Shannon fccfa4f412 Removes umbraco settings: ImageTagAllowedAttributes, UploadAllowDirectories, ensureUniqueNaming, ImageTagAllowedAttributes, ScriptEditorDisable, ScriptFolderPath, UploadAllowDirectories 2019-01-30 23:42:25 +11:00
Kenn Jacobsen 31765a7a47 Remove the tooltip position flickering 2019-01-30 13:26:21 +01:00
Warren Buckley 88eb29e199 Removes EmbedProviders.config & moves into C# types (As its a config file that is rarely ammended IMO) 2019-01-30 11:46:15 +00:00
Callum Whyte 0cdccc1a9b V8: Removing legacy content tree menu items (#4278) 2019-01-30 12:01:57 +01:00
Shannon 19633b8d70 Merge branch 'temp8' into temp8-fixme-get-all-entities-with-postfilter 2019-01-30 20:41:37 +11:00
Shannon a331632800 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-30 20:33:26 +11:00
Shannon 90eae73d9b By default allow all trees to support both main and dialog usages 2019-01-30 20:33:14 +11:00
Shannon 7bb0eb109a moves class to separate file 2019-01-30 20:31:44 +11:00
Shannon c213408b92 Changes OperatorFactory to internal 2019-01-30 20:24:42 +11:00
Niels Lyngsø 0b0371af7e Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-30 10:17:05 +01:00
Bjarke Berg b1b71a4444 Merge pull request #4300 from kjac/v8-fix-respect-template-casing
V8: Respect the name casing when creating a new template
2019-01-30 10:16:40 +01:00
Niels Lyngsø ab77623248 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-30 10:16:36 +01:00
Niels Lyngsø bf7372c6ba V8: Color corrections for several components 2019-01-30 10:16:32 +01:00
Shannon 273441a2fb Merge branch 'temp8' into temp8-fixme-get-all-entities-with-postfilter
# Conflicts:
#	src/Umbraco.Web/Editors/EntityController.cs
2019-01-30 20:09:07 +11:00
Shannon 6ff787046b Fixing trees regression issue 2019-01-30 19:52:24 +11:00
Shannon df5c685bc2 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-30 19:48:55 +11:00
Shannon 6c0321ce72 Fixing trees regression issue 2019-01-30 19:48:42 +11:00
Stephan aa20584588 Merge branch 'temp8-move-xml-published-cache-to-tests' into temp8 2019-01-30 08:40:08 +01:00
Stephan 99ec2d18f2 Merge branch 'temp8' into temp8-move-xml-published-cache-to-tests 2019-01-30 08:37:42 +01:00
Stephan 7ba4fd7ad1 Cleanup Umbraco module 2019-01-30 08:35:50 +01:00
Bjarke Berg 2287c0e402 #3645 - remove badge again in preview mode + added spinner 2019-01-30 08:24:47 +01:00
Shannon Deminick e960d06449 Merge pull request #4298 from umbraco/temp8-fix-partialview-templates
PartialView & PartialViewMacros template generation fix
2019-01-30 18:10:26 +11:00
Shannon 134cc176ff Moves the Xml published cache to the tests project since that is the only place it is used, removes the xml data integrity check since it's not needed, removes the xml published cache benchmark since it's not needed. Now we don't include the old xml published cache at all in the shipped product. 2019-01-30 17:50:13 +11:00
Bjarke Berg 126c91fe51 Merge remote-tracking branch 'origin/temp8' into temp8-3645-change-culture-in-preview 2019-01-30 07:50:02 +01:00
Bjarke Berg cf0095dc1c #3645 - removed viewmodel and uses ILanguage directly in the view 2019-01-30 07:49:45 +01:00
Shannon 3371dbaa48 Merge remote-tracking branch 'origin/temp8-remove-legacy-controls' into temp8 2019-01-30 17:40:00 +11:00
Shannon Deminick f11d22f43a Merge pull request #4249 from umbraco/temp8-remove-unused-filesystem-config
V8 Remove unused filesystemproviders.config
2019-01-30 17:37:38 +11:00
Shannon f02da1fdd2 nucache bug fix 2019-01-30 17:36:33 +11:00
Shannon 08a886b724 nucache bug fix 2019-01-30 17:35:57 +11:00
Bjarke Berg ae9141f9e7 Merge remote-tracking branch 'origin/temp8' into temp8-3645-change-culture-in-preview
# Conflicts:
#	src/Umbraco.Web/Editors/PreviewController.cs
2019-01-30 07:34:19 +01:00
Shannon f49516ff13 fix csproj building 2019-01-30 17:14:04 +11:00
Shannon c2f82d184f Merge branch 'temp8' into temp8-remove-unused-filesystem-config
# Conflicts:
#	src/Umbraco.Web.UI/web.Template.config
2019-01-30 16:58:57 +11:00
Shannon 35b78cc224 Adds notes 2019-01-30 16:56:14 +11:00
Shannon 16b655fd62 Adds null check to SingleServerRegistrar 2019-01-30 16:47:48 +11:00
Shannon Deminick ac19aa4f91 Merge pull request #4243 from umbraco/temp8-remove-legacy-controls
🔥🔥 V8: Bye bye legacy stuff 🔥🔥
2019-01-30 15:22:27 +11:00
Shannon febc788c20 Merge remote-tracking branch 'origin/temp8' into temp8-remove-legacy-controls
# Conflicts:
#	src/Umbraco.Web/UI/Pages/UmbracoEnsuredPage.cs
2019-01-30 14:36:40 +11:00
Shannon 45bfaee590 fixing tests 2019-01-30 14:26:41 +11:00
Kenn Jacobsen a025568196 Handle element types in the multi URL picker 2019-01-29 22:30:06 +01:00
Kenn Jacobsen 9d3d4b77a0 Handle element types in the MNTP 2019-01-29 22:30:06 +01:00
Kenn Jacobsen 10fbffcfcc Handle element types in the conten picker 2019-01-29 22:30:06 +01:00
Kenn Jacobsen 27ce8c8ebc Add a few missing localizations for edit media 2019-01-29 22:21:59 +01:00
Kenn Jacobsen 3f080ab277 Remove the annoying menuDialogTitle tooltip 2019-01-29 22:20:15 +01:00
Kenn Jacobsen 2f146934d3 Show the error message and localize it 2019-01-29 22:11:17 +01:00
Kenn Jacobsen 1002113e7d Server side validation of illegal chars in folder names 2019-01-29 22:11:17 +01:00
Kenn Jacobsen 55aec0bf07 Make sure the install doesn't fail if the user opts out of a custom machine key 2019-01-29 22:03:33 +01:00
Niels Lyngsø 9d37e7ceda Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-29 21:28:29 +01:00
Niels Lyngsø 106c044ba5 V8: Color corrections 2019-01-29 21:28:25 +01:00
Kenn Jacobsen bda8128e93 Proper handling of the selected color 2019-01-29 21:00:40 +01:00
Kenn Jacobsen 4915efbb8d Re-select selected color on reload 2019-01-29 21:00:40 +01:00
Kenn Jacobsen c778249fed Fix the approved color styling 2019-01-29 21:00:40 +01:00
Callum Whyte 1340a5ce4b Removing support for legacy webservices 2019-01-29 20:23:20 +01:00
Bjarke Berg 414f838476 #3645 - Lists available languages in the preview bar (if more than 1)
Reads the culture from hash instead of query and updates the hash when changing culture.
2019-01-29 15:30:25 +01:00
Niels Lyngsø d75cace85d color variable clean up 2019-01-29 15:23:21 +01:00
Niels Lyngsø 2fa2e0109d Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-29 15:14:41 +01:00
Niels Lyngsø 78c3797e5a V8: colors for tags 2019-01-29 15:14:38 +01:00
Stephan 5d65ba3147 Merge branch 'temp8-fixtree' into temp8 2019-01-29 14:59:45 +01:00
Stephan cd5dc410cc Refactor IDataTypeConfigurationConnector for Deploy 2019-01-29 14:49:41 +01:00
Niels Lyngsø f94e0fd3ec V8: CSS — variable correction 2019-01-29 14:38:33 +01:00
Niels Lyngsø d39045caef V8: CSS — adding missing unit for umb-loader in umb-tree 2019-01-29 14:31:27 +01:00
Niels Lyngsø d2934f6be4 Merge remote-tracking branch 'origin/temp8-ui-update-color-to-2019-brandcolor-pink' into temp8 2019-01-29 14:10:18 +01:00
Niels Lyngsø b573b9a50a brandcolor 2019 corrections 2019-01-29 14:09:48 +01:00
Shannon c0026d3c23 Removes UseDirectoryUrls, have better defaults for reserved paths, don't ship with values in them just have them blank 2019-01-29 23:58:43 +11:00
Niels Lyngsø f0b4f31a9e Merge remote-tracking branch 'origin/temp8-ui-niels-adjustments' into temp8-ui-update-color-to-2019-brandcolor-pink
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/less/buttons.less
#	src/Umbraco.Web.UI.Client/src/less/components/editor.less
#	src/Umbraco.Web.UI.Client/src/less/components/html/umb-expansion-panel.less
2019-01-29 13:33:44 +01:00
Shannon 1897c0f162 moves package actions to correct namespace, no more _Legacy namespace 2019-01-29 23:31:59 +11:00
Niels Lyngsø 34f93331bd brandcolor 2019 corrections 2019-01-29 13:31:54 +01:00
Shannon 2e527163f9 no more umbraco.presentation namespace! no more "page" class, has been refactored and renamed to what it actually is and internalized 2019-01-29 23:27:00 +11:00
Sebastiaan Janssen 7a778d4c42 Merge branch 'dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Core/StringExtensions.cs
#	src/Umbraco.Web/Models/Mapping/UserModelMapper.cs
2019-01-29 13:11:03 +01:00
Shannon eef86689c8 Removes booting.aspx and creates embedded html pages for booting and failed (if those are ever seen ), renames some classes and namespaces, removes old cdf bundle classes 2019-01-29 23:05:59 +11:00
Shannon e7b0e43d98 removes scripting.config, EnableSplashWhileLoading, RenderingEngine, and more! 2019-01-29 22:38:03 +11:00
Kenn Jacobsen 66ca8c6018 Respect the name casing when creating a new template 2019-01-29 12:25:23 +01:00
Niels Lyngsø 6bf7db79e3 frontend design update for brandcolors 2019 2019-01-29 12:05:52 +01:00
Shannon cf1bf123da Merge branch 'temp8' into temp8-remove-legacy-controls
# Conflicts:
#	src/Umbraco.Web/Editors/DashboardController.cs
2019-01-29 22:02:37 +11:00
Shannon Deminick 19686496e6 Merge pull request #4228 from umbraco/temp8-3396-fix-YSOD-for-publishing
Publish a variant without a name gives YSOD
2019-01-29 21:57:07 +11:00
Shannon 1f7a0600c6 Merge remote-tracking branch 'origin/temp8' into temp8-3396-fix-YSOD-for-publishing 2019-01-29 21:48:09 +11:00
Warren Buckley e2d4110685 When creating a PartialView we do a string.replace for Model.Content. to be Model. as MacroPartialViews work with Model.Content and PartialViews like Model. 2019-01-29 10:46:10 +00:00
Shannon Deminick de237c36aa Merge pull request #4227 from umbraco/temp8-fixme-no-caching-of-url-and-inject-umbraco-context-accessor
Fixme - No caching of url and inject IUmbracoContextAccessor
2019-01-29 21:29:53 +11:00
Shannon 649aa82c63 Merge branch 'temp8' into temp8-fixme-no-caching-of-url-and-inject-umbraco-context-accessor 2019-01-29 21:29:32 +11:00
Shannon 9bcb2bfb38 removes unused code 2019-01-29 21:27:22 +11:00
Shannon c272c2ad3b Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-29 21:22:17 +11:00
Shannon fd80aecb20 fixes more of the ConvertRelatedLinksToMultiUrlPicker migration 2019-01-29 21:22:01 +11:00
Warren Buckley 7d2024d3fd Merge pull request #4295 from umbraco/temp8-macro-picker-fixes
Fixes UI for macropicker and added submit button
2019-01-29 09:31:41 +00:00
Stephan d24b7f2aba Refactor enums 2019-01-29 10:17:26 +01:00
Niels Lyngsø 9cd2e36c4b more color corrections for brandcolors 2019 2019-01-29 10:00:38 +01:00
Shannon 47bde0f507 Merge branch 'temp8' into temp8-fixme-no-caching-of-url-and-inject-umbraco-context-accessor 2019-01-29 19:58:40 +11:00
Shannon 7b85ebab56 Adds migration to convert start nodes for picker configuration to UDIs 2019-01-29 19:54:32 +11:00
Bjarke Berg 9c3e501a60 Fixes UI for macropicker and added submit button 2019-01-29 09:46:24 +01:00
Niels Lyngsø 08a8e0793e Design & color changes for 2019 brand colors 2019-01-29 09:30:42 +01:00
Stephan 5135635bf8 Cleanup 2019-01-29 09:15:10 +01:00
Shannon 89a99e1c5f Makes IDashboard IDiscoverable 2019-01-29 18:10:50 +11:00
Shannon 70f23b2245 Merge branch 'temp8' into temp8-fixme-no-caching-of-url-and-inject-umbraco-context-accessor 2019-01-29 17:56:11 +11:00
Shannon ee693b63bd Fixes issue with ConvertRelatedLinksToMultiUrlPicker migration since it produces invalid SQL if there are no values in the .Contains calls 2019-01-29 17:52:48 +11:00
Shannon 86d8bc0c62 fix merge 2019-01-29 17:19:58 +11:00
Shannon 22d879ab35 Merge branch 'temp8' into temp8-fixme-no-caching-of-url-and-inject-umbraco-context-accessor
# Conflicts:
#	src/Umbraco.Tests/PublishedContent/NuCacheTests.cs
#	src/Umbraco.Web/Models/PublishedContentBase.cs
#	src/Umbraco.Web/PublishedCache/NuCache/ContentNode.cs
#	src/Umbraco.Web/PublishedCache/NuCache/PublishedSnapshotService.cs
2019-01-29 17:12:35 +11:00
Stephan c2f51be0a1 Bugfix 2019-01-28 22:44:00 +01:00
Niels Lyngsø 052cee31b3 color corrections for pink theme 2019-01-28 21:36:04 +01:00
Warren Buckley 4a5eca3c6a Adds in Composition Extension Methods to allow Setting the LogViewer without having to know the composition.RegisterUnique syntax 2019-01-28 15:39:49 +00:00
Stephan 9eabc1fb3f More NuCache/PublishedContent cleanup 2019-01-28 16:23:10 +01:00
Warren Buckley 633d9c6fb4 Merge pull request #4218 from umbraco/temp8-dashboards-collection
V8 - Remove dashboards.config - use CollectionBuilder
2019-01-28 14:47:44 +00:00
Stephan 9b4b8b9d86 Cleanup NuCache/PublishedContent 2019-01-28 14:15:47 +01:00
Stephan 85d4b4a61d Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-28 14:07:19 +01:00
Stephan d901e14e4f Merge branch 'temp8-ispublished-again' into temp8 2019-01-28 14:06:17 +01:00
Stephan 27fd908517 Refactor IPublished 2019-01-28 14:05:59 +01:00
Niels Lyngsø d262b524df Merge remote-tracking branch 'origin/temp8-ui-overlay-button-style' into temp8-ui-update-color-to-2019-brandcolor-pink 2019-01-28 13:18:04 +01:00
Niels Lyngsø f619b03b04 Correct spelling 2019-01-28 13:17:38 +01:00
Niels Lyngsø 1f09292ee3 Merge remote-tracking branch 'origin/temp8-ui-overlay-button-style' into temp8-ui-update-color-to-2019-brandcolor-pink 2019-01-28 13:15:52 +01:00
Niels Lyngsø 9a0f50291c color adjustments for proposal 2019-01-28 13:15:40 +01:00
Stephan a344a2f240 Merge branch 'temp8' into temp8-ispublished-again 2019-01-28 13:08:30 +01:00
Stephan fac25b5971 Bugfix 2019-01-28 13:04:37 +01:00
Stephan c675708388 Refactor dashboards 2019-01-28 12:38:58 +01:00
Warren Buckley 117b836cd7 Merge pull request #4259 from umbraco/temp8-remove-related-links-with-migration
Remove related links and migrate existing data to Multi URL Picker
2019-01-28 09:42:56 +00:00
Stephan 918908a785 Merge branch 'temp8' into temp8-dashboards-collection 2019-01-28 10:35:34 +01:00
Stephan c2a404c02d Update ModelsBuilder 2019-01-28 10:34:57 +01:00
Stephan e410b8b067 Fix TreeUse 2019-01-28 10:27:36 +01:00
Stephan 27ecd795b2 Merge branch temp8 into temp8-fixtree 2019-01-28 10:19:36 +01:00
Warren Buckley e7181915ff Merge remote-tracking branch 'origin/temp8' into temp8-remove-legacy-controls 2019-01-28 08:40:25 +00:00
Warren Buckley 9f79f1833f Merge remote-tracking branch 'origin/temp8' into temp8-dashboards-collection
# Conflicts:
#	src/Umbraco.Web/Services/DashboardService.cs
2019-01-28 08:33:52 +00:00
Niels Lyngsø df00cfab40 Merge remote-tracking branch 'origin/temp8-ui-update-colors-to-2019-brandcolors' into temp8-ui-update-color-to-2019-brandcolor-pink 2019-01-28 09:31:24 +01:00
Niels Lyngsø f0611fff90 correct color variable for variant switcher 2019-01-28 09:30:08 +01:00
Niels Lyngsø da3a5d35c1 make unpublish button in overlay appear as button-style warning 2019-01-28 09:00:38 +01:00
Bjarke Berg 3c24aac81d Merge remote-tracking branch 'origin/temp8' into temp8-ispublished-again 2019-01-28 08:46:17 +01:00
Bjarke Berg 9b01910d44 Removed isPublished stuff from XmlPublishedContent. 2019-01-28 08:27:42 +01:00
Niels Lyngsø 6b0158f761 color update 2019-01-27 18:14:55 +01:00
Sebastiaan Janssen 7e8c0ed369 Apply changes from PR #4197 to v8 too 2019-01-27 15:17:08 +01:00
Sebastiaan Janssen cebf1e6c22 Merge branch 'dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.controller.js
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/Routing/PublishedRequest.cs
2019-01-27 13:47:22 +01:00
Sebastiaan Janssen 647d92775c Make right-click menu work in Firefox 2019-01-27 12:02:39 +01:00
Kenn Jacobsen a185d56ae5 Ensure that element types can't be assigned as allowed children to other content types 2019-01-27 11:46:55 +01:00
Chris Houston 193e24afd2 Fixing all the TODO, FIXME & HACK comments so they all follow the same layout. 2019-01-27 11:16:00 +01:00
Kenn Jacobsen d31e25281d Fix infinite loop when saving multiple variants using list view 2019-01-27 10:41:50 +01:00
Sebastiaan Janssen ae25e4564e Fix the tests 2019-01-27 10:26:41 +01:00
Kenn Jacobsen 1955409582 Don't allow creation of element types in the content tree 2019-01-26 18:30:50 +01:00
Kenn Jacobsen b709ed4aa3 Don't attempt to resolve URLs for element types 2019-01-26 18:27:53 +01:00
Kenn Jacobsen 57fb9888a2 Add localization to Flatpickr 2019-01-26 18:22:12 +01:00
Kenn Jacobsen 54bb3384b2 Add "time" and "bigint" to value types 2019-01-26 17:48:30 +01:00
Kenn Jacobsen 9f2477ad75 Remove the hover underline from grid items 2019-01-26 17:47:23 +01:00
Kenn Jacobsen 35a6d721ee Make sure to inform the content editor of an app change when split view is opened 2019-01-26 17:38:59 +01:00
Niels Lyngsø 0194ccdad7 corrected on-edit method for MultiUrlPicker, Fixes #4171 2019-01-26 17:30:42 +01:00
Kenn Jacobsen a2f0ad67ab Fix the flickering tooltip 2019-01-26 17:30:27 +01:00
Sebastiaan Janssen 8d4da215fa Merge branch 'dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Core/Models/PublishedContent/PublishedContentType.cs
#	src/Umbraco.Tests/CodeFirst/StronglyTypedMapperTest.cs
#	src/Umbraco.Tests/LibraryTests.cs
#	src/Umbraco.Tests/Membership/DynamicMemberContentTests.cs
#	src/Umbraco.Tests/PublishedContent/DynamicDocumentTestsBase.cs
#	src/Umbraco.Tests/PublishedContent/PublishedContentDataTableTests.cs
#	src/Umbraco.Tests/PublishedContent/PublishedContentMoreTests.cs
#	src/Umbraco.Tests/PublishedContent/PublishedContentTestBase.cs
#	src/Umbraco.Tests/PublishedContent/PublishedContentTestElements.cs
#	src/Umbraco.Tests/PublishedContent/PublishedContentTests.cs
#	src/Umbraco.Tests/TestHelpers/BaseWebTest.cs
#	src/Umbraco.Web.UI/Umbraco/config/lang/da.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/nl.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/es.xml
#	src/Umbraco.Web/Scheduling/HealthCheckNotifier.cs
#	src/Umbraco.Web/WebBootManager.cs
2019-01-26 17:24:21 +01:00
Kenn Jacobsen 32f228fa7c Use the media file name as display name in the file link 2019-01-26 17:05:38 +01:00
Chris Houston 8d2c1332d3 Fixed a few typos I spotted in the last commit :) (#4215) 2019-01-26 16:56:30 +01:00
Chris Houston 0b6ba5aa52 Temp8 - Fixing spelling / typos etc in Umbraco.Web (#4148) 2019-01-26 16:52:19 +01:00
Chris Houston a13a38a482 Updated all the TODO: comments in the Umbraco.Core project so they are all in the same format. ( // TODO: ) (#4220)
Also moved some of the comments so they are will work better / are not within Code Documentation comments
2019-01-26 15:42:14 +01:00
Kenn Jacobsen 43a97185b6 Clean up file system tree controller handling of no-op for nodes 2019-01-26 14:58:47 +01:00
Kenn Jacobsen de8516d2c7 Make it possible to create folders for stylesheets 2019-01-26 14:58:47 +01:00
Niels Lyngsø 98cee55dda Merge remote-tracking branch 'origin/temp8' into temp8-ui-update-colors-to-2019-brandcolors 2019-01-25 16:35:56 +01:00
Niels Lyngsø dfaa297104 V8: Color refactoring up + first draft to fit with 2019 brand colors. 2019-01-25 16:33:06 +01:00
Sebastiaan Janssen 5a896e7417 Remove obsoleted RelatedLinks picker (replaced by Multi URL Picker)
(cherry picked from commit fedf0c78de)
2019-01-25 16:06:49 +01:00
Sebastiaan Janssen 2c6b5f21b0 Migrates RelatedLink data to MultiUrlPicker and changes all RelatedLink datatypes to MultiUrlPicker ones 2019-01-25 16:06:32 +01:00
Warren Buckley b1f94c66dc Remove name property from dashboard package.manifest collection 2019-01-25 12:18:15 +00:00
Warren Buckley 4b3cd91188 Remove Name property from IDashboardSection & the C# types (We use localization of dashboardTabs_alias) 2019-01-25 12:17:52 +00:00
Warren Buckley 19d084e086 Localize dashboard tabs with a convention of dashboardsTabs_dashboardAlias as the localization key 2019-01-25 12:11:07 +00:00
Bjarke Berg 66959baabe Reimplemented IsPublished on PublishedContent 2019-01-25 12:56:53 +01:00
Stephan e8cb30fbc4 Fix exception when replacing IServerRegistrar 2019-01-25 12:33:20 +01:00
Stephan 427ac259f4 Refactor datatype configuration connector 2019-01-25 11:57:42 +01:00
Stephan bb07921363 KeyValueService supports more weird situations 2019-01-25 11:57:08 +01:00
Warren Buckley a8e8832a75 Bye bye dashboard.config.install XDT transform as part of NuGet install 2019-01-25 10:17:40 +00:00
Bjarke Berg 11f8192e52 Merge pull request #4248 from umbraco/temp8-dashboards-collection-review
Dashboards collection review
2019-01-25 11:07:37 +01:00
Bjarke Berg 15c197abd3 public AccessRule.cs, to let third party create dashboards from code without having to implement there own 2019-01-25 11:04:56 +01:00
Warren Buckley b88ca1db49 Remove FIleSystemProviders.config from web.config XML files 2019-01-25 09:22:02 +00:00
Warren Buckley 6ee8ef0a07 Fix the build! Sorry Stephan 👌 2019-01-25 09:18:19 +00:00
Warren Buckley bee2776035 Bye bye FileSystemProvider.config - we no longer use you 2019-01-25 09:10:49 +00:00
Bjarke Berg 1c55f4ed4f changed correct file 2019-01-25 10:09:28 +01:00
Bjarke Berg 8926e28706 revert 2019-01-25 10:08:52 +01:00
Bjarke Berg 6626edbfa8 unused using 2019-01-25 10:04:18 +01:00
Bjarke Berg 87a5b63492 Merge branch 'temp8-dashboards-collection' into temp8-dashboards-collection-review 2019-01-25 09:57:59 +01:00
Bjarke Berg 0f8784b9f5 Merge remote-tracking branch 'origin/temp8' into temp8-dashboards-collection-review 2019-01-25 09:56:06 +01:00
Bjarke Berg 51d2c3f351 Merge remote-tracking branch 'origin/temp8-dashboards-collection' into temp8-dashboards-collection 2019-01-25 09:55:19 +01:00
Bjarke Berg 544b13f05d Merge remote-tracking branch 'origin/temp8' into temp8-dashboards-collection 2019-01-25 09:54:49 +01:00
Bjarke Berg 5f80faa725 Review fix suggestions for dashboards. 2019-01-25 09:52:18 +01:00
Stephan d5c2e21c4a Merge branch 'temp8' into temp8-fixtree 2019-01-25 09:51:08 +01:00
Stephan 585abf2902 Cleanup trees 2019-01-25 09:49:55 +01:00
Warren Buckley d257396013 Missing Serilog.Formatting.Compact.Reader from Nuspec for the Logviewer stuff- thanks Twitter for the heads up 👍 2019-01-25 08:21:43 +00:00
Bjarke Berg d9c6d8c568 Merge remote-tracking branch 'origin/temp8' into temp8-dashboards-ciollection-review 2019-01-25 07:35:07 +01:00
Stephan 4067ac7d93 Merge branch temp8 into tmp8-fixtree 2019-01-24 18:34:25 +01:00
Stephan 0ffa4702ba Bugfix install 2019-01-24 18:26:08 +01:00
Warren Buckley 3e69ceb487 Remove dashboard from web.config 2019-01-24 15:52:56 +00:00
Warren Buckley 79eaeef258 Fixup NuSpec as we no longer ship with default.aspx 2019-01-24 15:44:47 +00:00
Warren Buckley 37b614a577 Another file that can be gone as was used by LegacyDialogTask 2019-01-24 15:41:38 +00:00
Niels Lyngsø 874c89656c action colors 2019-01-24 15:57:28 +01:00
Warren Buckley 7257d19445 Merge remote-tracking branch 'origin/temp8' into temp8-remove-legacy-controls 2019-01-24 14:45:57 +00:00
Warren Buckley 1ad0c88731 👻👻 Nightmares of writing WebForms controls with CSS markup & attributes in a .cs file 👻👻 2019-01-24 14:34:18 +00:00
Stephan e4c644e745 Consistent PublishedContentExtensions, culture always optional 2019-01-24 15:29:50 +01:00
Warren Buckley 1f79d9e635 🔪🔪Next on the chobbing block is config/create/ui.xml & references back to it which was Legacy Controller, DialogTask etc🔪🔪 2019-01-24 14:29:00 +00:00
Stephan 38ec97bbe3 Need to refactor IsPublished 2019-01-24 15:22:20 +01:00
Niels Lyngsoe 74bd8fa0db added 2019 brand colors 2019-01-24 15:11:34 +01:00
Warren Buckley 85da2a94b9 Bye 404Handlers XML config file - add/remove IContentFinders in your own composer/component 2019-01-24 14:09:28 +00:00
Warren Buckley ba098f49c4 ☠️☠️ Bye bye feedproxy.config ☠️☠️ 2019-01-24 13:59:17 +00:00
Warren Buckley c7bbad3c0c Lots or removal & tidy up - still WIP & may break build 2019-01-24 13:58:16 +00:00
Stephan a6d3078638 Improve CoreRuntime handling of boot fails 2019-01-24 14:04:31 +01:00
Stephan 31a6f2d67c Add runtime hooks for Deploy 2019-01-24 14:04:31 +01:00
Niels Lyngsø b9fd04c8b9 Merge remote-tracking branch 'origin/temp8-ui-resizeable-handler' into temp8 2019-01-24 13:31:02 +01:00
Bjarke Berg 5f1ddad835 Merge remote-tracking branch 'origin/temp8' into temp8-dashboards-collection 2019-01-24 13:27:15 +01:00
Warren Buckley def6d67fcc Merge branch 'temp8' into temp8-remove-legacy-controls 2019-01-24 12:21:49 +00:00
Warren Buckley 26f0090fd0 Merge pull request #4205 from umbraco/temp8-fixmes-add-ispublished-to-ipublished-content
Added IsPublished(culture) to IPublishedContent
2019-01-24 12:12:52 +00:00
Warren Buckley 344026ec23 Merge pull request #4240 from umbraco/temp8-update-fixme-comments-to-todo-with-link-to-task
Changed Fixme/task to TODO [Link]
2019-01-24 12:06:38 +00:00
Warren Buckley db3116ff9c Merge pull request #4212 from umbraco/temp8-fixme-only-allow-local-keep-alive-pings
Fixme - Only allow local KeepAlive Pings requests
2019-01-24 11:49:05 +00:00
Bjarke Berg 49b2a9a080 Fixes for search of members + Removed fixme in member that apparently are not necessary after tags refactoring 2019-01-24 12:17:30 +01:00
Warren Buckley 6e1a860e77 Merge pull request #4211 from umbraco/temp8-PublishedContentExtensions-handling-methods-hidden-by-overload
Fixme - Handled "Method with optional parameter is hidden by overload" issues
2019-01-24 11:07:12 +00:00
Niels Lyngsø eef6c783ea updated package-lock.json 2019-01-24 11:59:33 +01:00
Sebastiaan Janssen 9e0d2e5873 Revert "Remove obsoleted RelatedLinks picker (replaced by Multi URL Picker)"
This reverts commit fedf0c78de.
2019-01-24 11:37:28 +01:00
Bjarke Berg ec8c455635 Fixes for search of members + Removed fixme in member that apparently are not necessary after tags refactoring 2019-01-24 11:28:27 +01:00
Warren Buckley f70df699db Merge pull request #4114 from umbraco/temp8-ui-expansion-panel-hover
Temp8 ui expansion panel hover
2019-01-24 10:03:00 +00:00
Bjarke Berg 3eb01a1557 Merge remote-tracking branch 'origin/temp8' into temp8-3396-fix-YSOD-for-publishing 2019-01-24 10:27:47 +01:00
Warren Buckley d8751365c8 Merge pull request #4206 from umbraco/temp8-fixme-children-wrong-merge-and-unused-file
Fixme - Wrong merge in PublishedContentExtensions and renamed prevalue connector
2019-01-24 09:24:58 +00:00
Bjarke Berg 5842337d02 3396 - Fix for when clearing the name again 2019-01-24 09:42:49 +01:00
Bjarke Berg cc897285c9 3396 - Force publish for all mandatory langauges that has not yet beed published 2019-01-24 08:31:42 +01:00
Bjarke Berg b389e6c07f 3396 - don't let user determine whether to publish mandatory languages on first publish. All mandatory languages with data is saved. If a mandatory language does not have data we cannot publish anything. 2019-01-24 08:16:55 +01:00
Warren Buckley 0480242532 Some sneaky MasterPages kill the last of them off with fire 🔥 2019-01-23 18:56:33 +00:00
Warren Buckley 31509beb1c 🙈 WOW this was super old Umbraco V3 days of <umbraco:item runat="server" /> WebForms days 2019-01-23 18:17:10 +00:00
Warren Buckley fcb3f8e791 Remove Umbraco.Web.UI.Controls folder & classes - Controis reek of WebForms era 2019-01-23 17:57:20 +00:00
Warren Buckley 03498b3c61 Update comment about this Interface usage - maybe we can remove this later on 2019-01-23 17:56:44 +00:00
Warren Buckley 5e9f861991 Cleanup of WebRuntimeComposer 2019-01-23 15:09:31 +00:00
Warren Buckley f2cc0eebf5 Remove the dashboard XML config file 2019-01-23 14:43:05 +00:00
Warren Buckley 5d34ee271c Forgot to remove my test App_Plugin Dashboard 2019-01-23 14:42:49 +00:00
Warren Buckley 26f43cda97 Merge remote-tracking branch 'origin/temp8' into temp8-dashboards-collection 2019-01-23 14:38:26 +00:00
Warren Buckley 69a3c85bbc Refactor of dashboards
* Remove dashboards from Configs().Dashboards
* Remove dashboard.config XML file & associated code reading from XML
* Load Dashboards from TypeLoader into a CollectionBuilder
* Load merge/concat C# Dashboard Types with package.manifest
* Add buildercolletion to an extension method on Composition
2019-01-23 14:37:33 +00:00
Bjarke Berg f8b9fb039f Handle culture not set in HasCulture. 2019-01-23 15:35:20 +01:00
Niels Lyngsø d16aa91a5e remove extra border from MCE-edit-area 2019-01-23 15:13:42 +01:00
Bjarke Berg f8b52a57c3 Injecting Umbraco Context Accessor and not saving the url on the class 2019-01-23 14:16:42 +01:00
Bjarke Berg ca76a5424a Only allow local KeepAlive Pings requests 2019-01-23 12:34:41 +01:00
Bjarke Berg d2d852f0f3 Handled "Method with optional parameter is hidden by overload" issues 2019-01-23 10:39:51 +01:00
Bjarke Berg f10b35780c - Removed PostFilterParams
- Handling of PostFilter using Expression trees
2019-01-23 10:22:29 +01:00
Sebastiaan Janssen fedf0c78de Remove obsoleted RelatedLinks picker (replaced by Multi URL Picker) 2019-01-23 09:01:53 +01:00
Bjarke Berg 6f25bc7c37 Reintroduced a interface for deploy 2019-01-23 08:17:39 +01:00
Bjarke Berg e871392405 Added IsPublished(culture) to IPublishedContent 2019-01-23 07:54:45 +01:00
Bjarke Berg dcb616157d Removed unused IPreValueConnector 2019-01-23 07:52:24 +01:00
Bjarke Berg ddace54f45 Fixed wrong merge in Children() method 2019-01-23 07:51:43 +01:00
Chris Houston 78319bae9e Temp8 fix typos 2 (#4130) 2019-01-23 00:03:39 +01:00
Bjarne Fyrstenborg 01de2eb266 Synctree in log viewer overview 2019-01-22 23:05:17 +01:00
Bjarne Fyrstenborg ca98fad918 Update box heading in log viewer overview 2019-01-22 23:02:05 +01:00
Bjarne Fyrstenborg fc12f2b802 Add track by on package lists 2019-01-22 22:57:46 +01:00
Bjarne Fyrstenborg 977423e094 Remove old delete dialog, add new dialog view + set delete button state 2019-01-22 22:57:46 +01:00
Bjarne Fyrstenborg c405d1b6d1 Fix localization of buttons in modals 2019-01-22 22:52:01 +01:00
Kenn Jacobsen 6983f3d43a V8: Clean up trashed content options (#4136) 2019-01-22 22:50:12 +01:00
Sebastiaan Janssen d380f75d31 Merge branch 'dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/Trees/ContentTreeControllerBase.cs
#	src/Umbraco.Web/WebApi/Filters/EnsureUserPermissionForContentAttribute.cs
2019-01-22 22:46:15 +01:00
Sebastiaan Janssen 8e61276b8a Merge branch 'dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.controller.js
#	src/Umbraco.Web/PropertyEditors/DatePreValueEditor.cs
#	src/Umbraco.Web/WebBootManager.cs
2019-01-22 22:06:19 +01:00
Bjarne Fyrstenborg 45735a5529 v8: Add missing localizations (#4199) 2019-01-22 21:57:16 +01:00
Stephan d9cc1f4cb8 Fix more tests 2019-01-22 18:25:02 +01:00
Stephan ce4fc6654e Fix NestedContent tests now we have isElement 2019-01-22 17:32:46 +01:00
Rasmus John Pedersen e1175b814e Add Multi Url Picker 2019-01-22 16:00:15 +01:00
Warren Buckley 9b9c9ef455 Adds Sections() ordered collection to the Composition, so devs can ammend the collection, change order etc 2019-01-22 14:59:32 +00:00
Stephan 917b83be92 Merge branch 'temp8' into temp8-fixtree 2019-01-22 15:11:55 +01:00
Stephan b54155d1c9 Merge remote-tracking branch 'origin/temp8' into temp8 2019-01-22 15:05:23 +01:00
Stephan 6d6828eaaf Merge branch 'temp8-pr4102' into temp8 2019-01-22 15:04:32 +01:00
Niels Lyngsø e651d5917a Finds and set the active ContentApp when running init, fixing the issue of retuning to a node after editing the DocType in infinity editing.
Fixes #4185
2019-01-22 14:38:10 +01:00
Stephan fd0ee6bb11 Merge branch 'v8-fix-nested-content-only-elements' of https://github.com/kjac/Umbraco-CMS into temp8-pr4102 2019-01-22 14:30:38 +01:00
Robert 1fc2ea9345 Fixes composition in Media Types 2019-01-22 14:30:23 +01:00
Stephan 9628d6f761 Merge branch 'temp8-pr4117' into temp8 2019-01-22 14:28:47 +01:00
Stephan c1e81fe40c Merge branch 'v8-fix-remove-element-type-template-assignment' of https://github.com/kjac/Umbraco-CMS into temp8-pr4117 2019-01-22 14:22:36 +01:00
Stephan e36ca2e957 Merge branch temp8 into temp8-fixtree 2019-01-22 14:08:14 +01:00
Stephan ad026e25d7 Cleanup trees 2019-01-22 13:55:31 +01:00
Stephan e349ead8b5 Better error message 2019-01-22 13:08:47 +01:00
Bjarke Berg 4981f0e828 Merge pull request #2926 from umbraco/temp8-logviewer
Merged V8 LogViewer
2019-01-22 12:04:32 +01:00
Bjarke Berg 7b0acf9844 Merge pull request #4179 from umbraco/tem8-logviewer-review
Temp8 logviewer review fixes
2019-01-22 11:29:51 +01:00
Warren Buckley 626b9e8f7b Remove a TODO comment that was hanging around 2019-01-22 10:07:56 +00:00
Warren Buckley 62617537fa Change icon from scary bug to box-alt 2019-01-22 10:05:14 +00:00
Bjarke Berg 70315d4a5f Make as must of the log viewer internal as possible 2019-01-22 10:36:44 +01:00
Bjarke Berg c8daf1d8db Merge branch 'temp8-logviewer' into tem8-logviewer-review 2019-01-22 10:20:26 +01:00
Bjarke Berg 70010bc344 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer
# Conflicts:
#	src/Umbraco.Core/Migrations/Install/DatabaseSchemaCreator.cs
2019-01-22 10:19:43 +01:00
Bjarke Berg 025d0eae18 Logviewer code cleanup. 2019-01-22 10:14:07 +01:00
Stephan c840895f90 Deal with more fixme 2019-01-22 09:49:35 +01:00
Stephan a53a15f4d8 Merge branch 'temp8-remove-mysql' into temp8 2019-01-22 08:30:35 +01:00
Stephan 04a4e2d00e cleanup 2019-01-22 08:30:08 +01:00
Bjarke Berg 2c86e87917 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2019-01-22 08:23:07 +01:00
Stephan 0c07af9a41 Merge branch temp8 into temp8-remove-mysql 2019-01-22 08:15:24 +01:00
Stephan 53d767e978 Fix clearing property values #4119 2019-01-22 08:09:21 +01:00
Stephan afd6236406 Merge pull request #4164 from umbraco/temp8-broken-view-fixes
Fixes for broken views..
2019-01-21 18:55:24 +01:00
Stephan 6fb41e364b Fix query builder 2019-01-21 18:50:27 +01:00
Stephan 76d2421f0c Restore some InternalsVisibleTo that we do need 2019-01-21 18:02:31 +01:00
Warren Buckley 6d0f505e2d Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2019-01-21 16:39:51 +00:00
Stephan 706b865a5f Merge branch 'temp8-3668-query-builder-snippits' into temp8 2019-01-21 17:38:39 +01:00
Stephan 9e811ddd50 Fix fallback 2019-01-21 17:38:06 +01:00
Warren Buckley dda9c5183c Updates the composer/registration of JSONLogViewer - Can't use default parameters with DI hence needed to use factory & new up an instance 2019-01-21 16:36:47 +00:00
Warren Buckley 8ab5142357 Moves tree into Settings group as opposed to third party trees & positions last 2019-01-21 16:36:00 +00:00
Warren Buckley 3af859e020 Updates default log levels that we ship out of the box for V8 - It was a very chatty Verbose, now set to Info 2019-01-21 16:29:59 +00:00
Stephan 358a36dd87 Merge branch temp8 into temp8-3668-query-builder-snippits 2019-01-21 16:07:20 +01:00
Stephan ee0c868687 Misc fixes for PR and Fallback 2019-01-21 16:02:16 +01:00
Stephan 9522ee826f Deal with fixme in Umbraco.Web 2019-01-21 16:01:37 +01:00
Stephan 4a0b969777 Deal with fixme in Umbraco.Core 2019-01-21 16:01:37 +01:00
Warren Buckley 9407c85d71 Remove TreesAndSection tests (must have been a funky merge gone wrong) 2019-01-21 12:40:19 +00:00
Niels Lyngsø 735c2ccfd7 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-21 13:30:55 +01:00
Niels Lyngsø dd29deec6a V8 Gulp — only run imagemin in production mode. 2019-01-21 13:30:49 +01:00
Warren Buckley 1d39c177cc Adds in private method EnsureFileExists as it was removed from IOHelper 2019-01-21 11:48:55 +00:00
Warren Buckley f6154a38d9 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer
# Conflicts:
#	src/Umbraco.Core/Migrations/Install/DatabaseSchemaCreator.cs
#	src/Umbraco.Web.UI.Client/gulpfile.js
#	src/Umbraco.Web.UI/config/trees.Release.config
#	src/Umbraco.Web.UI/config/trees.config
2019-01-21 11:17:14 +00:00
Bjarke Berg a32c8b3a68 Merge pull request #4167 from umbraco/temp8-3417-macro-crud
Macro delete stuff
2019-01-21 11:36:10 +01:00
Niels Lyngsø 82d6af2013 Merge remote-tracking branch 'origin/temp8' into bugfix/temp8-media-could-not-be-moved-to-root
# Conflicts:
#	src/Umbraco.Web/Trees/ApplicationTreeController.cs
2019-01-21 11:13:08 +01:00
Bjarke Berg 57902892f9 Constructor injection 2019-01-21 10:55:48 +01:00
Stephan d4664fbae6 Merge branch 'temp8' into temp8-3668-query-builder-snippits 2019-01-21 10:50:40 +01:00
Bjarke Berg 252d31a5f5 Delete macros 2019-01-21 10:44:11 +01:00
Bjarke Berg 269273f294 Merge pull request #4165 from umbraco/temp8-3417-macro-crud
Macro CRUD angularized
2019-01-21 09:55:26 +01:00
Matthew-Wise 2744afab00 Disable LastPass on page heading (#4153) 2019-01-21 09:49:00 +01:00
Niels Lyngsø 60d86354f3 Media Picker adjustments 2019-01-21 09:46:00 +01:00
Bjarke Berg 566895d3cd Merge branch 'temp8' into temp8-3417-macro-crud 2019-01-21 09:14:40 +01:00
Bjarke Berg 3fd8c63542 - Show Ids
- Hide "Render in rich text editor and the grid" if "Use in rich text editor and the grid" is false
2019-01-21 09:10:39 +01:00
Bjarke Berg d5c6e0c6e7 - Saving paramters 2019-01-21 09:10:08 +01:00
Bjarke Berg ec57f35374 Named arguments cannot precede positional 2019-01-21 08:03:12 +01:00
Bjarke Berg 333c143005 GetPropertyValue change to Value 2019-01-21 07:59:05 +01:00
Bjarke Berg 46f7c76c0b Fixes for broken view..
- Create new UmbracoHelper (Missing parameter)
- string.replace can't handle string and IHtmlString
2019-01-21 07:54:35 +01:00
Bjarne Fyrstenborg a502be606b v8: Fix package localization (#4159) 2019-01-20 21:27:32 +01:00
Sebastiaan Janssen 0b19c07756 Merge branch 'dev-v7' into temp8
# Conflicts:
#	.github/README.md
#	src/Umbraco.Core/Constants-PropertyEditors.cs
#	src/Umbraco.Core/PropertyEditors/PropertyEditorResolver.cs
#	src/Umbraco.Web.UI.Client/src/views/media/media.restore.controller.js
#	src/Umbraco.Web/Cache/DataTypeCacheRefresher.cs
#	src/Umbraco.Web/PropertyEditors/RelatedLinks2PropertyEditor.cs
2019-01-20 21:23:51 +01:00
Bjarne Fyrstenborg d6855d18f9 v8: Nicer delete language confirm (#4108) 2019-01-20 21:19:06 +01:00
Matthew Wise ba85681f8c updated css file location 2019-01-20 21:07:58 +01:00
Kenn Jacobsen 09cc3f89ed Make sure the decimal field value converter can handle double values when converting 2019-01-20 21:05:20 +01:00
Kenn Jacobsen 2c1ba1d23d Make sure the style preview text does not overlap for large font sizes 2019-01-20 21:01:32 +01:00
Bjarne Fyrstenborg 07329103b1 v8: Fix doctype iconpicker (#4053) 2019-01-20 20:56:49 +01:00
Callum Whyte da58673b44 Removing unused insertMasterpage dialog language dictionary keys 2019-01-20 20:44:57 +01:00
Callum Whyte f8b382ea0a Eliminating bower (#4146) 2019-01-20 20:43:47 +01:00
Kenn Jacobsen abbd45c476 Remove hardcoded "Root" when restoring to tree root 2019-01-20 20:34:36 +01:00
Sebastiaan Janssen c56e84af2d Merge branch 'dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/content/content.restore.controller.js
#	src/Umbraco.Web.UI.Client/src/views/media/media.restore.controller.js
#	src/Umbraco.Web.UI/config/umbracoSettings.Release.config
2019-01-20 20:28:52 +01:00
Stephan ed97dbc1a0 Merge branch 'temp8-appCaches' into temp8 2019-01-18 15:51:39 +01:00
Stephan 1506d8c3fa Kill AppCaches.StaticCache 2019-01-18 15:49:54 +01:00
Sebastiaan Janssen 9e7eb2ad75 Remove MySQL support 2019-01-18 15:47:22 +01:00
Stephan 3982732b7d Fix merge + cleanup 2019-01-18 15:05:20 +01:00
Dave Woestenborghs 2dc9eb3a90 #3417 handle saving of general macro data 2019-01-18 15:02:18 +01:00
Stephan 876056f0bb Merge branch temp8 into temp8-appCaches 2019-01-18 14:54:08 +01:00
Stephan cdf38af171 Bugfix the installer 2019-01-18 14:39:39 +01:00
Bjarke Berg e637854149 Merge pull request #4057 from umbraco/temp8-4037
Manual tested, all tests are green, and code changes at fine :) Merged
2019-01-18 13:49:16 +01:00
Bjarke Berg 6fce8810fc Merge remote-tracking branch 'origin/temp8' into temp8-4037
# Conflicts:
#	src/Umbraco.Web/PropertyEditors/MultiNodePickerConfigurationTreeSource.cs
2019-01-18 13:28:57 +01:00
Niels Lyngsø 4bf17c8a4e V8 UI Color adjustments 2019-01-18 13:19:16 +01:00
Niels Lyngsø 4fbeac48eb Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-18 13:17:12 +01:00
Niels Lyngsø 8f64d8d70c correction of editorconfig for *.js and *.less 2019-01-18 13:16:59 +01:00
Stephan 01e70648ba Merge branch 'temp8-packaging-view-3996' into temp8 2019-01-18 13:04:04 +01:00
Dave Woestenborghs 7fd7d7a582 #3417 also send id of parameter with api response 2019-01-18 12:37:04 +01:00
Stephan 6f9a63d035 Merge branch 'temp8' into temp8-packaging-view-3996 2019-01-18 11:04:28 +01:00
Stephan 07238b54e1 Merge branch 'temp8-tree-sections-no-more-xml' into temp8 2019-01-18 10:59:04 +01:00
Stephan 437385fd61 Bit of cleanup 2019-01-18 10:53:51 +01:00
Callum Whyte cee1171d39 Removing masterpages support from V8 (#3971) 2019-01-18 10:53:38 +01:00
Niels Lyngsø 6dd4d7f475 V8 FE Gulp Fastdev script 2019-01-18 10:12:24 +01:00
Dave Woestenborghs a83ac4a24d #3417 retreive data for edit screen 2019-01-18 09:31:38 +01:00
Stephan a7a3fca8a8 Merge branch 'temp8' into temp8-tree-sections-no-more-xml 2019-01-18 09:23:55 +01:00
Bjarke Berg 59fe603ef7 Merge remote-tracking branch 'origin/temp8' into temp8-3668-query-builder-snippits
# Conflicts:
#	src/Umbraco.Web/PublishedContentExtensions.cs
2019-01-18 08:34:14 +01:00
Bjarke Berg 7a74a329ab Merge remote-tracking branch 'origin/bugfix/temp8-media-could-not-be-moved-to-root' into bugfix/temp8-media-could-not-be-moved-to-root 2019-01-18 08:32:21 +01:00
Bjarke Berg 0daca21b51 Merge remote-tracking branch 'origin/temp8' into bugfix/temp8-media-could-not-be-moved-to-root 2019-01-18 08:31:54 +01:00
Bjarke Berg 8e597aabf3 Merge remote-tracking branch 'origin/temp8' into feature/IContentType-removale-from-IContent 2019-01-18 08:29:43 +01:00
Stephan ec58532f7b More renaming of caches 2019-01-18 08:29:16 +01:00
Stephan f952fe7aeb More renaming of caches 2019-01-18 08:14:08 +01:00
Stephan 5aba1a6bd2 IAppPolicedCache is IAppPolicyCache 2019-01-18 07:56:38 +01:00
Mikkel Holck Madsen 6e3618f627 Merge pull request #4129 from umbraco/temp8-gridcellvalueconnector
Redecided on renaming
2019-01-17 21:38:21 +01:00
Kenneth Jakobsen 9fed610902 Redecided on renaming 2019-01-17 21:32:08 +01:00
Mikkel Holck Madsen 1d349f9eb0 Merge pull request #4128 from umbraco/temp8-gridcellvalueconnector
Removed Property parameter from IGridCellValueVConnector
2019-01-17 21:16:30 +01:00
Kenneth Jakobsen 27a1e51f80 Removed Property parameter from IGridCellValueVConnector 2019-01-17 21:12:10 +01:00
Kenn Jacobsen fa8a754f88 Don't reset templates for element types 2019-01-17 20:57:39 +01:00
Kenn Jacobsen 8f205e7d8f Hide list view config for element types 2019-01-17 20:57:18 +01:00
Kenn Jacobsen a01c313345 Hide "allow as root" and "allowed child node types" for element types 2019-01-17 20:56:47 +01:00
Kenn Jacobsen f394bed017 Change StartNodeId from string to Udi 2019-01-17 20:38:03 +01:00
Kenn Jacobsen 1ceab77aef Fix start node configuration for tree pickers 2019-01-17 20:38:03 +01:00
Stephan b3d6de5994 Merge branch 'temp8' into temp8-appCaches 2019-01-17 19:05:56 +01:00
Stephan fc29422b8d Merge remote-tracking branch 'origin/temp8' into temp8 2019-01-17 19:01:06 +01:00
Stephan 32c0d04b1b Merge branch 'temp8-3305-filter-for-current-culture-in-ipublishedcontent-linq' into temp8 2019-01-17 19:00:23 +01:00
Stephan 8ea76a92c3 Merge branch 'temp8' into temp8-3305-filter-for-current-culture-in-ipublishedcontent-linq 2019-01-17 19:00:03 +01:00
Mikkel Holck Madsen 7a68df36a3 Merge pull request #4124 from umbraco/temp8-deploy-valueconnector
- Added PropertyType parameter to IValueConnector.FromArtifact
2019-01-17 18:57:12 +01:00
mclausen 537b7e5ce9 - Added PropertyType parameter to IValueConnector.FromArtifact 2019-01-17 18:52:08 +01:00
Stephan e42995cf10 Fixes for the IPublishedContent Linq/Culture PR 2019-01-17 18:23:23 +01:00
Mikkel Holck Madsen 4234d316fe Merge pull request #4123 from umbraco/temp8-deploy-valueconnector
- Added PropertyType to The IValueConnector
2019-01-17 17:24:07 +01:00
mclausen 42f32e61e9 - Added PropertyType to The IValueConnector 2019-01-17 17:15:22 +01:00
Niels Lyngsø 89a2c1b32d Fix merge of pull request #4120 2019-01-17 17:02:12 +01:00
Warren Buckley 207bcbc10d Merge pull request #4120 from umbraco/temp8-gulp-refactoring
V8 Client Gulp factoring
2019-01-17 15:47:22 +00:00
Warren Buckley e1f1336205 Merge branch 'temp8' into temp8-gulp-refactoring
# Conflicts:
#	src/Umbraco.Web.UI.Client/gulpfile.js
#	src/Umbraco.Web.UI.Client/package-lock.json
2019-01-17 15:46:53 +00:00
Niels Lyngsø b9812ca5c4 Added processJs 2019-01-17 16:37:33 +01:00
Niels Lyngsø 9d2c4d7b08 Stick to the same approach on as used on media move dialog 2019-01-17 15:57:43 +01:00
Kenn Jacobsen b6f6a4015a Style the content links in the info app 2019-01-17 15:33:17 +01:00
Kenn Jacobsen adc9957504 Show the media link in the info app 2019-01-17 15:32:04 +01:00
Bjarne Fyrstenborg 74a7fd50dd v8: Fix validation error label (#4094) 2019-01-17 15:25:07 +01:00
Kenn Jacobsen 2ac175135a Fix linkpicker overlay issues - manual merge of #3718 to V8 2019-01-17 15:18:49 +01:00
Kenn Jacobsen 367fceb3cb Handle selection from treepicker search result 2019-01-17 15:15:26 +01:00
Kenn Jacobsen 2f408e1a01 Style the dialog search results 2019-01-17 15:14:17 +01:00
Kenn Jacobsen 8b178d1be7 Allow linkpicker to select items from search/list view 2019-01-17 15:13:41 +01:00
Kenn Jacobsen aca14c14ca Add some comments 2019-01-17 15:12:20 +01:00
Kenn Jacobsen 56c4dbf77f Ensure that the link picker tree always loads 2019-01-17 15:12:20 +01:00
Niels Lyngsø 5cc0f58f7d Git will now ignorer files that contains *.ignorer.* 2019-01-17 15:10:58 +01:00
Niels Lyngsø 591d100726 Corrected paths 2019-01-17 15:07:18 +01:00
Kenn Jacobsen bf9284089d Update a comment 2019-01-17 15:03:05 +01:00
Kenn Jacobsen 651006fbaf Make sure to update cculture to the last open culture when closing the split view 2019-01-17 15:03:05 +01:00
Sebastiaan Janssen 87a3350cd6 Merge pull request #4074 from kjac/v8-fix-select-content-app-for-split-view
V8: Force select the content app for both views when opening split view
2019-01-17 14:59:51 +01:00
Stephan 640b21d802 Merge branch temp8 into temp8-3305-filter-for-current-culture-in-ipublishedcontent-linq 2019-01-17 14:49:02 +01:00
Stephan b2d22f5650 Merge branch 'temp8' into feature/IContentType-removale-from-IContent 2019-01-17 14:22:45 +01:00
Stephan 650f668edb Improve PublishedModelFactory error message on collisions 2019-01-17 14:21:35 +01:00
Stephan 2eabdbb55b Improve PublishedModelFactory error message on collisions 2019-01-17 14:19:52 +01:00
Stephan e56ad2d312 Fix migration from 7.14 2019-01-17 14:14:08 +01:00
Bjarke Berg ae3c8fe08c 3908 - removed tests for legacy up and down methods 2019-01-17 14:09:17 +01:00
Bjarke Berg 37b826b82f 3908 - Fix for multiple dropdowns opening when clicking on one. 2019-01-17 14:07:56 +01:00
Niels Lyngsø d744d6aabe Gulp factoring
- Moved tasks into separate files
- Moved all configuration into gulp/config.js
2019-01-17 13:57:59 +01:00
Stephan e6bff12337 Merge branch temp8 into feature/IContentType-removale-from-IContent 2019-01-17 13:33:55 +01:00
Bjarke Berg 174db65714 3908 - Query build returns v8 valid statement - and examples of returned items 2019-01-17 13:33:44 +01:00
Stephan 2c3b65c8b1 Fix migrations from 7.14 2019-01-17 13:24:19 +01:00
Chris Houston 941ede776b Corrected all the miss spellings of:
Seperator -> Separator
Seperate -> Separate
2019-01-17 13:16:43 +01:00
Kenn Jacobsen bcda4c186f Don't allow templates on element types 2019-01-17 12:42:38 +01:00
Kenn Jacobsen 57b8a187b8 Add "Move" option for deleted items in the media tree 2019-01-17 12:27:42 +01:00
Sebastiaan Janssen 98fe3e823c Merge branch 'dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/media/media.restore.controller.js
#	src/Umbraco.Web.UI.Client/src/views/media/restore.html
2019-01-17 12:22:01 +01:00
Sebastiaan Janssen effed9efa7 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-17 12:08:27 +01:00
Sebastiaan Janssen e6a99c5097 Merge branch 'dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/content/umbcontentnodeinfo.directive.js
#	src/Umbraco.Web.UI.Client/src/views/components/content/umb-content-node-info.html
#	src/Umbraco.Web/PropertyEditors/MemberGroupPickerPropertyEditor.cs
#	src/Umbraco.Web/Routing/PublishedContentRequestEngine.cs
#	src/Umbraco.Web/Scheduling/ScheduledTasks.cs
#	src/Umbraco.Web/Trees/ContentTreeController.cs
2019-01-17 12:05:56 +01:00
Stephan d4c714eccd Stop injecting the runtime cache, use AppCaches 2019-01-17 11:19:06 +01:00
Stephan 0bee01e0ee Great AppCaches renaming 2019-01-17 11:01:23 +01:00
Niels Lyngsø d6c2fec5d2 Added UI hover for expansion panel 2019-01-17 10:16:04 +01:00
Niels Lyngsø 8aaaf4439a Changed UI for resizable handler 2019-01-17 10:12:28 +01:00
Shannon 1667e914cd Allows the tree collection to be manipulated by devs on startup, renames some things 2019-01-17 18:38:55 +11:00
Stephan 67e4703821 CacheHelper becomes AppCaches 2019-01-17 08:34:29 +01:00
Robert 4ff714ae94 Merge remote-tracking branch 'origin/temp8' into temp8-4037 2019-01-17 08:10:02 +01:00
Shannon 3f89558ddb Fixing tests 2019-01-17 17:51:38 +11:00
Shannon 6b9ba3c53c Fixing tests 2019-01-17 17:50:59 +11:00
Shannon 356209e013 renames ApplicationTree to just Tree 2019-01-17 17:33:38 +11:00
Shannon 1a734141f1 Allows package manifest to declare a section 2019-01-17 17:31:29 +11:00
Shannon 9df1773b78 more cleanup 2019-01-17 17:08:58 +11:00
Shannon 77dd816c51 more cleanup 2019-01-17 17:06:22 +11:00
Shannon 0160f141f4 cleanup and explicitly registering sections 2019-01-17 17:04:53 +11:00
Shannon cfe1b17eec Gets trees and sections loading now in a much more simplified way without any xml, now to cleanup 2019-01-17 16:40:11 +11:00
Shannon 355ac09d90 WIP - moved out the tree and section service from Core, these are web only things, removes their xml parsing, fixes base controller ctor params with UmbracoContext, need to implement tree/section collections taking into account controllers and not scanning so much 2019-01-17 13:20:19 +11:00
Shannon 67c571fb28 Fixes tests 2019-01-17 10:56:24 +11:00
Stephan 5f7bf3a211 Ignore failing test 2019-01-16 17:04:15 +01:00
Dave Woestenborghs c0e62c4c5f #3417 retreive a list with parameter editors from API 2019-01-16 16:37:33 +01:00
Dave Woestenborghs b6a8ad1b6e #3417 load available partial views from api 2019-01-16 16:21:19 +01:00
Shannon Deminick c9ddd783f9 Merge pull request #4080 from umbraco/temp8-auto-install
install for Deploy
2019-01-17 01:44:27 +11:00
Shannon 899bb812aa Creates RuntimeStateOptions and pre-loads the error page on the installer 2019-01-17 01:42:56 +11:00
Bjarke Berg 664a892fd5 3305 - fixed tests 2019-01-16 15:25:42 +01:00
Stephan 3ed1b44710 Try to bugfix a failing test 2019-01-16 15:21:10 +01:00
Shannon c5da10cf10 Merge remote-tracking branch 'origin/temp8' into temp8-auto-install 2019-01-17 00:45:25 +11:00
Shannon ddcead2658 Updates EntityController to support stylesheets, languages and dictionary items GetAll so we can use it for the packager without worrying about security access to sections 2019-01-17 00:29:43 +11:00
Shannon 9ac47d6e85 Merge remote-tracking branch 'origin/temp8' into temp8-packaging-view-3996 2019-01-16 23:54:28 +11:00
Shannon 7bb3588889 Adds the whole package definition to the scope model for devs to use, adds a custom query string parameter when redirecting to the angular view after install (so devs know its a new install) 2019-01-16 23:53:10 +11:00
Stephan d170e4b5c3 Merge branch 'temp8-packages-ui' into temp8 2019-01-16 13:52:24 +01:00
Stephan 9f41457f45 Public composition.UrlProviders 2019-01-16 13:44:19 +01:00
Stephan ba84d95308 Merge branch 'temp8' into temp8-packages-ui 2019-01-16 13:27:14 +01:00
Stephan b5bda0b637 Some things have to be public for service events 2019-01-16 13:26:30 +01:00
Stephan a60bdf5c01 HttpContext VariationContextAccessor fails nicely 2019-01-16 13:26:13 +01:00
Bjarke Berg 35650536c8 3305 - Use the VariationContext instead of thread directly 2019-01-16 13:23:19 +01:00
Stephan 8347fd79a3 Reviewing packages PR, various fixes 2019-01-16 13:20:49 +01:00
Kenn Jacobsen 9ffeb34643 Whoops. Spelling. 2019-01-16 13:17:14 +01:00
Kenn Jacobsen ae97ec4277 Update the doctypes configuration help text 2019-01-16 13:16:41 +01:00
Shannon 70574b6564 Merge remote-tracking branch 'origin/temp8-packages-ui' into temp8-packaging-view-3996
# Conflicts:
#	src/Umbraco.Web.UI/umbraco/config/lang/nb.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/zh_tw.xml
2019-01-16 23:15:09 +11:00
Bjarke Berg 5f3596c7d9 Fixes after merge of temp8 2019-01-16 13:11:46 +01:00
Kenn Jacobsen 4303b4eb80 Ensure that all items passed to rendering are element types 2019-01-16 13:05:54 +01:00
Kenn Jacobsen 93f991b140 Only allow element types in the NC editor 2019-01-16 13:05:16 +01:00
Kenn Jacobsen e924a8ef83 Only return element types for the NC configuration 2019-01-16 13:04:46 +01:00
Bjarke Berg 4ccc468cb6 Merge remote-tracking branch 'origin/temp8' into feature/IContentType-removale-from-IContent
# Conflicts:
#	src/Umbraco.Web/Models/Mapping/ContentMapperProfile.cs
2019-01-16 12:53:58 +01:00
Bjarke Berg fe0d0ce1c7 Merge remote-tracking branch 'origin/temp8' into temp8-3668-query-builder-snippits 2019-01-16 12:49:23 +01:00
Bjarke Berg 00158b42e7 Merge remote-tracking branch 'origin/temp8' into bugfix/temp8-media-could-not-be-moved-to-root
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/content/move.html
#	src/Umbraco.Web.UI.Client/src/views/media/restore.html
2019-01-16 11:47:13 +01:00
Bjarke Berg b4f2d514be #3305 - changed new method to be internal 2019-01-16 11:44:27 +01:00
Shannon c4418185ec Gets the angular view loading and allows navigating back to the view, cleans up non used lang keys 2019-01-16 21:27:14 +11:00
Stephan da079cf393 Merge branch 'temp8' into temp8-packages-ui 2019-01-16 10:42:52 +01:00
Stephan d0016d6a7e Upgrade to MB -alpha.33 supporting elements 2019-01-16 10:40:04 +01:00
Stephan f56e2f0c72 Merge branch temp8 into temp8-packages-ui 2019-01-16 10:02:43 +01:00
Stephan 26b31f1fc8 Fix Git repository issue with casing of some filepaths 2019-01-16 10:01:04 +01:00
Shannon 903d90aff2 Merge remote-tracking branch 'origin/temp8-packages-ui' into temp8-packaging-view-3996 2019-01-16 19:30:58 +11:00
Shannon 572c6989ce Changes control to view for the package view 2019-01-16 19:30:07 +11:00
Shannon 31545db91e Fixes routing with the packages section 2019-01-16 19:29:42 +11:00
Stephan ef3b542ff3 Merge branch temp8 into temp8-packages-ui 2019-01-16 08:54:40 +01:00
Dave Woestenborghs 5ebf51e6df #3417 added mockup of parameter editing 2019-01-16 08:40:00 +01:00
Stephan 8f9813d597 Merge branch 'temp8' into temp8-auto-install 2019-01-16 08:34:46 +01:00
Bjarke Berg 8ad998ab12 #3305 - Clean up and xml-comments 2019-01-16 08:21:24 +01:00
Bjarke Berg c71f438e62 #3305 - Uncommented irrelevant tests. These tests are irrelevant because they use the legacy XmlPublishedContent and not the NuCache 2019-01-16 08:08:13 +01:00
Bjarke Berg 5687287453 Merge remote-tracking branch 'origin/temp8' into temp8-3305-filter-for-current-culture-in-ipublishedcontent-linq
# Conflicts:
#	src/Umbraco.Tests/PublishedContent/PublishedContentTests.cs
2019-01-16 07:47:06 +01:00
Bjarke Berg a27577c17d #3305 - Handle invariants 2019-01-16 07:46:10 +01:00
Shannon e8dead52c7 renames tests 2019-01-16 17:43:12 +11:00
Shannon 94da9a6681 Gets package upgrading working along with package uninstallation with multiple versions 2019-01-16 17:25:46 +11:00
Shannon 90be93d948 Got upgrade status showing in the ui, started implementing merging the package definitions for upgrades but have decided to have an element for each install like we currenlty have in case there are problems installing. 2019-01-16 16:27:51 +11:00
Stephan d4edbc8e79 Fix tests 2019-01-15 19:38:52 +01:00
Stephan eb3d3e129c Bugfix package service 2019-01-15 19:15:06 +01:00
Stephan 4770756621 Bugfix ContentCacheRefresher 2019-01-15 18:41:02 +01:00
Stephan 1bd5127bcf Actually run HealthCheck notifier 2019-01-15 17:27:18 +01:00
Shannon 00e951c394 fixes installer with async 2019-01-16 02:35:21 +11:00
Shannon d97b100bab fixes merge 2019-01-16 02:18:02 +11:00
Shannon b34582b35c Merge remote-tracking branch 'origin/temp8' into temp8-packages-ui
# Conflicts:
#	src/Umbraco.Core/Services/Implement/PackagingService.cs
2019-01-16 02:00:44 +11:00
Shannon b7c15dc393 gets readme and our package install working 2019-01-16 01:53:08 +11:00
Robert 561ce94398 Merge pull request #3933 from umbraco/temo8-3895-infinite-editor-shortcut
Close an infinite editor through Escape key
2019-01-15 15:43:43 +01:00
Robert f9cd22d908 Added a comment explaining why we need the delay 2019-01-15 15:43:10 +01:00
Bjarke Berg f70aea4f8a Merge remote-tracking branch 'origin/temp8' into temp8-3305-filter-for-current-culture-in-ipublishedcontent-linq
# Conflicts:
#	src/Umbraco.Tests/PublishedContent/PublishedContentTests.cs
2019-01-15 15:20:56 +01:00
Bjarke Berg be02d33fd6 Merge pull request #4082 from umbraco/temp8-elements-again
Merged
2019-01-15 15:15:48 +01:00
Bjarke Berg 0b9705ca3f Revert "Revert "Support IContentType.IsElement""
This reverts commit a5efc25c
2019-01-15 15:13:10 +01:00
Bjarke Berg 11ffafacdf Revert "Revert "Identify element types""
This reverts commit ff6a9ba9
2019-01-15 15:12:59 +01:00
Robert 2e782a4f11 Mapping IsContainer into AdditionalData using IEntitySlim to EntityBasic mapper 2019-01-15 15:10:50 +01:00
Bjarke Berg 0436fb3699 Merge pull request #4081 from umbraco/tem8-elements-again
unrevert of Identify "element" content types. #4076
2019-01-15 15:07:47 +01:00
Bjarke Berg 5995a7ec84 a small change to let Git see changes 2019-01-15 15:05:04 +01:00
Shannon 20d6a3b4b4 some cleanup and ensure the package file is deleted after install 2019-01-16 01:02:21 +11:00
Bjarke Berg 16eae7c4fc #3305 Added optional culture parameter to Children and Descendants extension methods 2019-01-15 14:54:34 +01:00
Shannon db2a003444 change how the install status works, fixes infinite loop 2019-01-16 00:54:25 +11:00
Shannon 709df804e5 Updates tests and better type support for importing content 2019-01-16 00:13:40 +11:00
Shannon f6fdc9ae2d Updates test, fixes some other issues during testing 2019-01-15 23:46:58 +11:00
Stephan 62fcbd8e84 Handle max runtime level for components 2019-01-15 13:43:56 +01:00
Stephan 2a36d2625b Merge branch 'temp8' into temp8-auto-install 2019-01-15 13:38:09 +01:00
Stephan 93ba694106 Upgrade ModelsBuilder (bugfix) 2019-01-15 13:36:30 +01:00
Shannon 56ab88983a updates a test 2019-01-15 23:10:08 +11:00
Shannon 8c7d29bd02 file update missing 2019-01-15 23:03:23 +11:00
Shannon 430c95dfad Merge remote-tracking branch 'origin/temp8' into temp8-packages-ui 2019-01-15 22:59:49 +11:00
Shannon a5ff29ccc7 Gets package uninstall working, fixes other UI issues with packages 2019-01-15 22:59:13 +11:00
Bjarke Berg 2d2d0b200b Merge pull request #4014 from umbraco/temp8-40120tags-validation-bug
Fixes - temp8-40120 tags-validation-bug
2019-01-15 12:27:02 +01:00
Bjarke Berg ff6a9ba97f Revert "Identify element types"
This reverts commit 4ad2505b
2019-01-15 12:23:45 +01:00
Bjarke Berg a5efc25c81 Revert "Support IContentType.IsElement"
This reverts commit ba38b67b
2019-01-15 12:23:14 +01:00
Bjarke Berg 87b4254e39 Merge remote-tracking branch 'origin/temp8' into temp8-40120tags-validation-bug 2019-01-15 12:16:52 +01:00
Bjarke Berg 5b1ca92184 Fixes for tag validation and build 2019-01-15 12:12:35 +01:00
Bjarke Berg bdeee95300 Merge remote-tracking branch 'origin/temp8-40120tags-validation-bug' into temp8-40120tags-validation-bug 2019-01-15 12:09:41 +01:00
Shannon 44ab0991ce Package installing is working 2019-01-15 22:08:08 +11:00
Stephan ba38b67b9d Support IContentType.IsElement 2019-01-15 11:30:30 +01:00
Robert 0092cac394 DRY 2019-01-15 10:31:12 +01:00
Warren Buckley e27ea962d9 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2019-01-15 09:30:09 +00:00
Robert 9bc047c03f Adding code to re-validate on value change 2019-01-15 10:17:26 +01:00
Kenn Jacobsen 64469fcb5c Force select the content app for both views when opening split view 2019-01-15 10:03:10 +01:00
Bjarke Berg 1f87ce02a1 Merge remote-tracking branch 'origin/temp8' into feature/IContentType-removale-from-IContent 2019-01-15 09:26:00 +01:00
Kenn Jacobsen 862d522758 Fix the styling of the search box on the redirect url management dashboard 2019-01-14 22:53:19 +01:00
Stephan 4ad2505bea Identify element types 2019-01-14 16:56:44 +01:00
Warren Buckley 525175c939 Merge pull request #4059 from umbraco/temp8-fs
Cleanup Filesystems registrations
2019-01-14 14:56:16 +00:00
Stephan 9ba3f47690 Cleanup 2019-01-14 15:55:18 +01:00
Stephan e2fe1c8260 Refactor IValueConnector for Deploy 2019-01-14 15:01:24 +01:00
Stephan a68b19f1ee More composition / filesystems fixes 2019-01-14 14:28:19 +01:00
Robert 8e4090fb84 Added proper memberPicker in the editorService 2019-01-14 14:00:17 +01:00
Robert 1ac8bbc570 Fixes MNTP member selection tree 2019-01-14 13:23:57 +01:00
Robert 2ce3249c5e Renaming variable to allow MNTP media selection 2019-01-14 13:23:00 +01:00
Warren Buckley a8638f5f43 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer
# Conflicts:
#	src/Umbraco.Web.UI.Client/package-lock.json
2019-01-14 11:10:58 +00:00
Robert 6ee1c96bf0 Merge remote-tracking branch 'origin/temp8' into temp8-4037 2019-01-14 09:05:05 +01:00
Stephan c912feff28 Merge remote-tracking branch 'origin/temp8' into temp8-fs 2019-01-14 08:53:11 +01:00
Stephan 561b359a72 Name change 2019-01-14 08:53:04 +01:00
Bjarke Berg aaedfe0309 Added access to the dictionary tree with we have access to the templates tree. 2019-01-14 08:14:10 +01:00
Stephan 05fbf6c38a Fix DistributedCacheBinder ContentService.TreeChanged event 2019-01-14 08:09:43 +01:00
Stephan c17ee34edb Support enlisting in exiting scope contexts (why not?) 2019-01-14 08:09:43 +01:00
Stephan eb6b172be2 Cleanup 2019-01-14 08:09:43 +01:00
Shannon b3585b0083 some cleanup 2019-01-14 18:03:06 +11:00
Shannon aa6342cc30 adds test 2019-01-14 17:56:41 +11:00
Shannon 65e98928d4 Package data installation is now all migrated 2019-01-14 17:46:12 +11:00
Sebastiaan Janssen 92c278c593 Adds missing translation, fixes #4054 2019-01-14 07:12:21 +01:00
Shannon 18c90c5325 Package file installation logic all migrated and tests are running, now to do the package data installation 2019-01-14 14:28:00 +11:00
Sebastiaan Janssen b865c6b476 Merge branch 'dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Tests/Web/Mvc/HtmlHelperExtensionMethodsTests.cs
#	src/Umbraco.Web.UI.Client/src/common/resources/codefile.resource.js
#	src/Umbraco.Web.UI.Client/src/less/components/umb-table.less
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/linkpicker/linkpicker.controller.js
#	src/Umbraco.Web.UI/Umbraco/config/lang/da.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
#	src/Umbraco.Web/HtmlHelperRenderExtensions.cs
2019-01-13 23:22:10 +01:00
Kenn Jacobsen 3b8a570c3c V8: Safeguard against invalid culture in UMB_MCULTURE cookie (#4051) 2019-01-13 15:53:42 +01:00
Kenn Jacobsen 74986d24f1 V8: Add "Move" option for deleted items in the content tree (#3931) 2019-01-13 15:49:37 +01:00
Bjarne Fyrstenborg 9968cd257d Rename wrapper class on umb-file-dropzone 2019-01-13 14:51:59 +01:00
Bjarne Fyrstenborg 168febae24 Only show extension if media item has a file 2019-01-13 14:51:59 +01:00
Bjarne Fyrstenborg b354eda7ac Add styles for umb-property-file-upload and move styles for umb-upload-big-button 2019-01-13 14:51:59 +01:00
Kenn Jacobsen d350ab0789 Ensure some spacing between properties within Nested Content items 2019-01-13 14:42:58 +01:00
Kenn Jacobsen 0f7cb7c177 Use built-in localization for Nested Content + fix element picker title 2019-01-13 14:40:38 +01:00
Sebastiaan Janssen c94a6b1777 Merge branch 'dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/imaging/umbimagegravity.directive.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/imagecropper/imagecropper.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/imagecropper/imagecropper.html
2019-01-13 14:22:00 +01:00
Sebastiaan Janssen c40d30d2dc Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-13 13:29:24 +01:00
Sebastiaan Janssen ef8ffc5149 Merge branch 'dev-v7' into temp8 2019-01-13 13:29:06 +01:00
Bjarne Fyrstenborg c619b79276 Fix placeholder text when empty alias input after generating alias (#4032) 2019-01-13 13:06:16 +01:00
Kenn Jacobsen 291d58900f V8: Remember editor language between sessions (#4035) 2019-01-13 12:42:42 +01:00
Claus 1c401b9589 Merge branch 'kjac-v8-fix-tags-remove-setdirty' into temp8 2019-01-13 01:04:35 +01:00
Claus 5715b26bb7 Merge branch 'v8-fix-tags-remove-setdirty' of https://github.com/kjac/Umbraco-CMS into kjac-v8-fix-tags-remove-setdirty 2019-01-13 01:02:05 +01:00
Claus 21ffb5cdb9 Merge branch 'kjac-v8-fix-contentnodeinfo-js-error' into temp8 2019-01-13 00:54:40 +01:00
Kenn Jacobsen e88c789b88 Add some defensive coding to avoid JS errors 2019-01-11 15:44:54 +01:00
Robert 8f41fe8d38 Fixes MNTP only being able to open contentPicker 2019-01-11 15:17:29 +01:00
Robert 29390a3624 Fixes string to int conversion error 2019-01-11 15:15:59 +01:00
Stephan ca75b2f4d3 Fix recent Examine changes 2019-01-11 14:54:56 +01:00
Warren Buckley fded793f8e Removes the accidently Web.UI.csproj V7 port numbers for IISExpress when merging up from V7 to V8 2019-01-11 13:32:45 +00:00
Warren Buckley 5a23ca9de7 Merge pull request #4045 from umbraco/temp8-chartjs
Chartjs
2019-01-11 13:30:32 +00:00
Warren Buckley 8f1cd8110d Adds in the missing chart.js & wrapper lib (part of it was put in the solution it seems but not fully merged in correctly perhaps?!) 2019-01-11 13:27:39 +00:00
Bjarke Berg 4566b88e37 #3668 - Fixed test that was failing due to wrong setup 2019-01-11 14:21:03 +01:00
Warren Buckley 250c24de40 Adds in chart.js & the angular wrapper library 2019-01-11 12:54:50 +00:00
Warren Buckley ab565f1d27 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2019-01-11 12:18:29 +00:00
Bjarke Berg b6f4ec3cbc #3668 - Handle fallback strategy with default value and ancestor + Handle fallback strategy when the ancestor is invariant and the item is variant 2019-01-11 11:47:42 +01:00
Bjarke Berg f02bd4bca4 #3668 - Generate v8 code from "insert value" 2019-01-11 11:46:23 +01:00
Sebastiaan Janssen dcf2e4830f Merge branch 'dev-v7' into temp8
# Conflicts:
#	src/SolutionInfo.cs
#	src/Umbraco.Core/Configuration/UmbracoVersion.cs
#	src/Umbraco.Core/IO/MediaFileSystem.cs
#	src/Umbraco.Core/Media/Exif/ImageFile.cs
#	src/Umbraco.Core/PropertyEditors/ValueConverters/TagsValueConverter.cs
#	src/Umbraco.Core/Services/MediaService.cs
#	src/Umbraco.Web.UI.Client/src/canvasdesigner.loader.js
#	src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbtoggle.directive.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/translation/details.aspx.cs
2019-01-11 10:23:27 +01:00
Stephan d0153b1105 Merge branch 'temp8' into temp8-auto-install 2019-01-11 08:57:59 +01:00
Bjarke Berg 586a7a167a Merged v8 2019-01-11 08:55:25 +01:00
Stephan 798c01c514 Merge pull request #4034 from aaronpowell/temp8-4033
Fixing default ProfilingLogger
2019-01-11 08:49:43 +01:00
Stephan a3fc321296 Merge branch 'temp8-examine-updates-3920' into temp8 2019-01-11 08:29:41 +01:00
Bjarke Berg 0330be4e6b Merge remote-tracking branch 'origin/temp8' into feature/IContentType-removale-from-IContent
# Conflicts:
#	src/Umbraco.Core/ContentExtensions.cs
#	src/Umbraco.Core/Models/Content.cs
#	src/Umbraco.Tests/Models/ContentTests.cs
#	src/Umbraco.Tests/Models/Mapping/ContentWebModelMappingTests.cs
#	src/Umbraco.Tests/Models/VariationTests.cs
#	src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs
#	src/Umbraco.Tests/Services/ContentTypeServiceVariantsTests.cs
#	src/Umbraco.Tests/Web/Controllers/ContentControllerTests.cs
#	src/Umbraco.Web.UI/Umbraco/dialogs/ChangeDocType.aspx.cs
2019-01-11 08:29:29 +01:00
Stephan ba282ab81a Comments 2019-01-11 08:26:53 +01:00
Stephan 19233c2e5f Merge branch temp8 into temp8-examine-updates-3920 2019-01-11 08:24:36 +01:00
Stephan 677311aa49 reduce allocs 2019-01-11 08:06:12 +01:00
Aaron Powell a5630a3448 Fixing 4033 by using the right Logger instance 2019-01-11 14:35:24 +11:00
Shannon c89b50f0b8 large refactor/cleanup of most of the old package installer logic dealing with persisting the installedPackages.config which is now in the services, creates new parsers and removes a ton of old code, changes fetching packages to be async, uses XElement instead of old XmlNode apis, next we need to do the actual package installer updates 2019-01-11 14:30:04 +11:00
Shannon 687aa8cc99 Merge remote-tracking branch 'origin/temp8' into temp8-packages-ui 2019-01-11 10:37:22 +11:00
Shannon 74c01af369 Splits logic for IPackageBuilder into ICreatedPackagesRepository and IInstalledPackagesRepository since it's nearly the same for both 2019-01-11 10:35:37 +11:00
Shannon Deminick 7dbd8a3515 Merge pull request #4024 from umbraco/temp8-4005
Temp8 4005
2019-01-11 10:17:22 +11:00
Warren Buckley 2e8a6c88a6 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2019-01-10 19:18:28 +00:00
Stephan 4586a55571 Merge branch 'temp8-pr3583' into temp8 2019-01-10 18:38:07 +01:00
Stephan 2baf3b5b41 Fixes 2019-01-10 18:37:48 +01:00
Stephan 09d28f720a Merge branch 'temp8' into temp8-fs 2019-01-10 16:45:50 +01:00
Stephan ed7c8da81f Merge branch 'temp8' of https://github.com/StefanoChiodino/Umbraco-CMS into temp8-pr3583 2019-01-10 16:29:36 +01:00
Stephan 003907358d Better runtime state detection, to support auto-install 2019-01-10 16:01:13 +01:00
Stephan 95ef6cd249 Merge branch 'temp8' into temp8-examine-updates-3920 2019-01-10 15:44:16 +01:00
Stephan 4700d8a69c Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-10 15:33:22 +01:00
Stephan 167084b39e Merge branch 'temp8-removes-config-based-indexes-3901' into temp8 2019-01-10 15:32:07 +01:00
Claus 875b7fc354 Merge remote-tracking branch 'origin/temp8-3642-content-templates-fixes' into temp8 2019-01-10 14:45:44 +01:00
Bjarke Berg 10d0c79c1d #3642 - also save all languages with content on publish 2019-01-10 14:28:22 +01:00
Claus 7ed66f41dc Merge branch 'temp8-3642-content-templates-fixes' into temp8 2019-01-10 14:20:51 +01:00
Stephan 7db3644fcd Merge remote-tracking branch 'origin/temp8' into temp8-removes-config-based-indexes-3901 2019-01-10 14:04:52 +01:00
Robert b000ead96b CTRL+K+D 2019-01-10 12:09:44 +01:00
Robert eafbf6dcae Update current urls on 'node.updateDate' 2019-01-10 12:07:53 +01:00
Bjarke Berg 228fca04ec #3642 - moved functionality to frontend about saving all variants the first time. 2019-01-10 10:06:42 +01:00
Shannon 4bf3c1d05b Handles trying to create a package with a duplicate name 2019-01-10 19:27:25 +11:00
Shannon 568d5c2583 Fixes issue with redirect 2019-01-10 19:08:52 +11:00
Shannon 5cb99bfddc forgot to add the test class 2019-01-10 18:55:24 +11:00
Shannon 091c9471bb Gets macros in packages, gets the download button working to download a created package, more tests 2019-01-10 18:51:02 +11:00
Bjarke Berg d672531b0b #3642 - reuse method for determine if the content is new 2019-01-10 07:58:45 +01:00
Bjarke Berg b0b0477dab #3642 -bugfix for nonvariant 2019-01-10 07:34:28 +01:00
Shannon b8d2309b9c Gets the IPackageBuilder working and tested, now the controller can create and update packages, validation is also working, need to do some more tests for adding other entities , removes more of the old packaging code. 2019-01-10 17:18:47 +11:00
Bjarke Berg 7421378330 #3642 - use nameof instead of magic strings that has to be equal to variable name 2019-01-10 07:03:08 +01:00
Bjarke Berg 8594af3fe3 #3642 - Also do dirty checks if we have changed the culture. 2019-01-10 06:58:12 +01:00
Bjarke Berg 28d93175d5 #3642 - When saving content the first time, we need to save all variants (even when save is not true), otherwise we loose the information when the url are updated. 2019-01-10 06:56:56 +01:00
Bjarke Berg 50b98a65d3 Merge remote-tracking branch 'origin/temp8' into temp8-3642-content-templates-fixes 2019-01-10 06:26:06 +01:00
Shannon 5f972384b1 WIP - new IEntityXmlSerializer, IPackageCreation, PackageActionRunner, large refactor of entity serialization, no more IPackagingService.Export methods, ports legacy package creation code to new IPackageCreation, more more ExportEventArgs (makes no sense) 2019-01-10 12:44:57 +11:00
Stephan 944d47f669 Refactor filesystems registration 2019-01-09 17:39:32 +01:00
Stephan 2bc63b9700 fix build 2019-01-09 16:06:36 +01:00
Stephan 49668a48bc Upgrade ModelsBuilder (bugfix) 2019-01-09 15:09:16 +01:00
Stephan 39028cd240 Upgrade ModelsBuilder (bugfix) 2019-01-09 14:09:31 +01:00
Warren Buckley 36541fa77c Merge pull request #4017 from kjac/v8-feature-content-app-badge-without-text
V8: Allow Content App badges without "count"
2019-01-09 13:01:07 +00:00
Kenn Jacobsen cd1338db82 Make the count-less badge a little bit bigger 2019-01-09 13:20:16 +01:00
Kenn Jacobsen aea41937f7 Allow content app badges without "count" 2019-01-09 13:18:27 +01:00
Warren Buckley 898f1f2397 Merge pull request #3995 from umbraco/temp8-3656-3988-fixes-for-variants
Temp8 3656 3988 fixes for variants
2019-01-09 12:00:39 +00:00
Kenn Jacobsen 10cf10b33a Set form as dirty when removing a tag 2019-01-09 12:22:55 +01:00
elitsa fe689e6855 Added timeout to for rebinding editor shortcuts, and a shortcut for a media picker. 2019-01-09 12:08:46 +01:00
Warren Buckley 6d808cb121 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2019-01-09 10:46:44 +00:00
elitsa bea740c6e0 Merge remote-tracking branch 'origin/temp8' into temo8-3895-infinite-editor-shortcut 2019-01-09 11:39:02 +01:00
Robert a809e35e5d Fixes - temp8-40120 tags-validation-bug 2019-01-09 11:29:42 +01:00
Shannon e27b873a5a Merge branch 'temp8-remove-package-ascx-3996' into temp8-packages-ui
# Conflicts:
#	src/Umbraco.Web.UI/Umbraco/Views/Default.cshtml
#	src/Umbraco.Web/Trees/PackagesTreeController.cs
2019-01-09 20:57:02 +11:00
Shannon 1772bc1e05 Merge branch 'temp8' into temp8-remove-package-ascx-3996 2019-01-09 20:47:26 +11:00
Warren Buckley 6e8b00d85c Merge pull request #3426 from kjac/v8-feature-content-app-badge
V8: Add notification badge to content app
2019-01-09 09:47:15 +00:00
Shannon fa82e1660b Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-09 20:44:17 +11:00
Shannon b3414166a6 webforms and legacy file cleanup 2019-01-09 20:43:46 +11:00
Bjarke Berg 70aa29ec7a #3642 - removed new stuff with on change event and fixed the old and broken, thats shared in tinymce 2019-01-09 10:20:01 +01:00
Stephan 9ef8e9afc1 Cleanup task runner 2019-01-09 10:05:10 +01:00
Shannon 2e558ed58d Merge branch 'temp8' into temp8-remove-package-ascx-3996 2019-01-09 19:12:01 +11:00
Shannon 4b58e34220 Align namespaces with _Legacy folder
# Conflicts:
#	src/Umbraco.Web/_Legacy/Packager/PackageInstance/InstalledPackage.cs
2019-01-09 19:08:09 +11:00
Shannon a955ef2b36 Align namespaces with _Legacy folder 2019-01-09 19:05:01 +11:00
Shannon 640de1c1a4 very small cleanup before some package code changes 2019-01-09 18:59:59 +11:00
Shannon e73884250a references the form directly 2019-01-09 18:41:52 +11:00
Shannon Deminick e6abfe0720 Merge pull request #3978 from umbraco/temp8-3708
Fixes - Fix publish/draft status for variant content when invariant p…
2019-01-09 17:03:55 +11:00
Shannon c7598bf647 changes the invariant check back since this is how it was done before in code above, plus means a later refactor of property/propertytype will be easier 2019-01-09 17:03:34 +11:00
Shannon a1ad04e04e Refactors a bit of the BuildDtos method and adds a unit test 2019-01-09 16:57:40 +11:00
Shannon 0267378bf9 Merge remote-tracking branch 'origin/temp8' into temp8-3708 2019-01-09 13:19:40 +11:00
Bjarke Berg 9bbe743686 syntax 2019-01-08 22:30:12 +01:00
Stephan 349f48aa2d Refactor task runner maindom hooks 2019-01-08 20:49:21 +01:00
Warren Buckley 2422000b3e Updates RemoteDashboard so FINALLY the main image on the left loads in V8 backoffice
* Adds a new filter that uses the Angular $sce.trustAsHtml() function
2019-01-08 16:20:11 +00:00
Bjarke Berg 33ee239406 #3642 - Worked on creating blueprints 2019-01-08 15:23:05 +01:00
Bjarke Berg f2dac9df3c #3988 - Save RTE value on model.value on each change event 2019-01-08 13:59:33 +01:00
Stephan 429423c07f Unwrap wrapped filesystems 2019-01-08 12:52:16 +01:00
Bjarke Berg 89b5984794 #3695 - force the form to be dirty if any variant is still dirty 2019-01-08 11:01:28 +01:00
Dave Woestenborghs b9d779e921 #3417 prototyped the UI for settings of the macro 2019-01-08 08:34:46 +01:00
Stephan cf631e60dd Fix nuspec 2019-01-08 07:55:38 +01:00
Shannon c6d13ebc39 Merge remote-tracking branch 'origin/temp8' into temp8-3708 2019-01-08 17:17:10 +11:00
Shannon 801e9da028 Fixes issue with dynamically creating/storing field definitions, latest examine update 2019-01-08 16:37:16 +11:00
Shannon 340a7e5383 Changes published index flag to y/n instead of 1/0 2019-01-08 14:04:37 +11:00
Shannon 4a1ae0573f Gets definitions dynamically applied for culture specific fields. 2019-01-08 13:25:07 +11:00
Stephan 436fa261f5 Merge remote-tracking branch 'origin/temp8' into temp8 2019-01-07 19:42:33 +01:00
Stephan a1400d33fd Fixes, version 8.0.0-alpha.58 2019-01-07 19:41:23 +01:00
Stephan 19ae9f5dee Refactor configuration for DI 2019-01-07 19:40:07 +01:00
Robert e0511646af Fixes - Fix publish/draft status for variant content when invariant properties are edited 2019-01-07 16:23:26 +01:00
Warren Buckley 9b7737f0e4 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2019-01-07 14:11:09 +00:00
Warren Buckley c67cb0e8f2 Adds the TourFilterCollectionBuilder into the CompositionExtensions, as StarterKit uses this in its current ApplicationEventHandler 2019-01-07 14:11:00 +00:00
Shannon f7c70bde1e Fixing up the PublishedContentQuery.Search implementation 3920 2019-01-07 23:49:29 +11:00
Claus 003d54cacd cleanup usings 2019-01-07 12:59:38 +01:00
Bjarne Fyrstenborg d231db8ef2 Add disabled state to toggle (#3967) 2019-01-07 12:41:07 +01:00
Sebastiaan Janssen 12f7268423 Also update web.Template.config with latest version of Microsoft.CodeDom.Providers.DotNetCompilerPlatform 2019-01-07 12:01:53 +01:00
Kenn Jacobsen ab11be50a3 Don't change content app when saving media items 2019-01-07 11:22:27 +01:00
Warren Buckley 9ce35d25d2 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer
# Conflicts:
#	src/Umbraco.Core/Migrations/Install/DatabaseSchemaCreator.cs
2019-01-07 09:59:15 +00:00
Stephan 775dd67254 Version 8.0.0-alpha-57 2019-01-07 09:46:11 +01:00
Stephan 4fa43abe23 Fix nuspec 2019-01-07 09:46:11 +01:00
Stephan 84f6239c98 Components Initialize and Terminate 2019-01-07 09:46:11 +01:00
Stephan 5855eaa4c9 Fix nuspec 2019-01-07 09:32:44 +01:00
Shannon 4ca95a11ee Fixes index populator registration and fixes the populators/rebuilders to not execute any lookups if there are no indexes 2019-01-07 18:49:55 +11:00
Kenn Jacobsen b861b379db Make the on-click-outside directive work again 2019-01-07 08:45:37 +01:00
Dave Woestenborghs edd2adc8a0 #3417 changed path of macro tree item to use angular view instead of webform 2019-01-07 08:31:06 +01:00
Dave Woestenborghs 2ca7bb0cf3 #3417 implemented create dialog for macros 2019-01-07 08:28:50 +01:00
Shannon 0356e5a224 Updates to latest examine, fixes issue with rebuilding indexes in the back office seeming to timeout but was a problem with the callback registration in examine 2019-01-07 18:16:06 +11:00
Shannon 118ad5361a Merge remote-tracking branch 'origin/temp8' into temp8-removes-config-based-indexes-3901
# Conflicts:
#	src/Umbraco.Examine/UmbracoExamineIndex.cs
2019-01-07 16:17:58 +11:00
Shannon e20e570dc8 Fixes tests 2019-01-07 16:15:51 +11:00
Stephan 8ce50ca357 Missing change broke the build 2019-01-05 16:24:49 +01:00
Stephan 048b6aa529 Expose FileSystemWrapper.InnerFileSystem 2019-01-05 15:49:35 +01:00
Stephan 5670c6354e Introduce ComponentComposer to simplify registration of components 2019-01-05 15:49:10 +01:00
Dave Woestenborghs d7af9d9fca #3417 added method to macro resource to create a macro 2019-01-04 17:36:42 +01:00
Dave Woestenborghs 03ce922124 #3417 register new api url in server variables 2019-01-04 17:10:53 +01:00
Stephan edfc3996d6 Adjustments for Forms and Deploy 2019-01-04 16:42:55 +01:00
Sebastiaan Janssen 62d6cf111e Applies fix for #3937 to v8 as well 2019-01-04 15:12:09 +01:00
Claus 2fad3c745a Merge branch 'temp8-3539-support-for-variants-in-redirects' into temp8
# Conflicts:
#	src/Umbraco.Web/Routing/RedirectTrackingComponent.cs
2019-01-04 14:36:55 +01:00
Dave Woestenborghs c61b5f947d #3417 renamed server variable 2019-01-04 13:49:03 +01:00
Bjarke Berg 6ad2adf4a2 #3539 - use culture to find the url in the actual redirect 2019-01-04 13:47:23 +01:00
Stephan b0ccdaa4f9 Merge branch 'temp8-di2690' into temp8 2019-01-04 13:17:04 +01:00
Bjarke Berg da6a815f16 #3539 - reverted one line 2019-01-04 13:17:01 +01:00
Dave Woestenborghs e1906113b9 #3417 added macro api controller and create method 2019-01-04 12:31:58 +01:00
Dave Woestenborghs bb6848dd03 #3417 renamed existing macrocontroller to macro rendering controller 2019-01-04 11:44:23 +01:00
Stephan 025cdede6c Merge branch origin/temp8 into temp8-di2690 2019-01-04 11:43:14 +01:00
Stephan 52ada8cec3 Fix nuspec for MB 2019-01-04 11:42:39 +01:00
Dave Woestenborghs 8304ada528 #3417 added create view 2019-01-04 11:39:33 +01:00
Claus 9821901717 Merge remote-tracking branch 'origin/dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Core/StringExtensions.cs
#	src/Umbraco.Web/UI/LegacyDialogHandler.cs
#	src/Umbraco.Web/WebServices/SaveFileController.cs
2019-01-04 11:30:51 +01:00
Bjarke Berg 9bf66b0881 #3539 - Re-enabled url redirect tracking and implemented support for culture variants 2019-01-04 11:24:30 +01:00
Stephan 2705de5d60 Revert "Temporary downgrade of MB due to missing onlien pkg"
This reverts commit b8191c3652.
2019-01-04 11:13:41 +01:00
Dave Woestenborghs d50061b4af Merge branch 'temp8' into temp-3417 2019-01-04 10:50:56 +01:00
Stephan 1875270db1 Compose after/before 2019-01-04 10:29:29 +01:00
Stephan 97272e6220 Bugfix 2019-01-04 09:55:09 +01:00
Stephan f6cd13488e Refactor collection builders to be nicer with DI 2019-01-04 09:34:08 +01:00
Stephan 3f1843def0 Merge remote-tracking branch 'lars-erik/temp8-u4-11427-remove-propertyinjection' into temp8-di2690 2019-01-04 08:36:48 +01:00
Stephan 1bd4cba9ac Fix component constructors 2019-01-04 08:36:38 +01:00
Bjarke Berg e1709eaed5 Bugfix, missing return, when publishing with decendants and the root do not have variants. 2019-01-04 08:16:20 +01:00
Lars-Erik Aabech 7cfe2115c0 Actually uses a scope in the ScopeBuilderCreatesScopedCollection tests 2019-01-04 00:15:06 +01:00
Lars-Erik Aabech 8e5ed6eaa6 Internalize testing ctor to provide unambiguous ctor for container. (Non LI req. / MS-DI) 2019-01-03 22:43:08 +01:00
Lars-Erik Aabech 0455c7ffd5 Public ctor on ExamineComponent to allow construction 2019-01-03 22:14:49 +01:00
Lars-Erik Aabech c18ed7e15a Registering WebRuntimeComponent and publicizing its dep. chain 2019-01-03 22:11:25 +01:00
Lars-Erik Aabech b8191c3652 Temporary downgrade of MB due to missing onlien pkg 2019-01-03 21:38:56 +01:00
Lars-Erik Aabech b8a939d1a1 Public ctor on CoreRuntimeComponent 2019-01-03 21:37:35 +01:00
Stephan 0481c2c736 Fix components 2019-01-03 21:10:13 +01:00
Stephan 9b756b9ce6 Fix components 2019-01-03 21:04:39 +01:00
Stephan 816ed84a2f Refactor components 2019-01-03 21:00:28 +01:00
Warren Buckley baa37549fb Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2019-01-03 13:52:14 +00:00
Claus f69cb89e30 Merge pull request #3810 from kjac/v8-fix-replace-snippet-jquery-dependencies
V8: Replace jquery dependencies for partial snippets
2019-01-03 13:44:57 +01:00
Stephan 9fe8b5f654 TEMP 2019-01-03 11:41:56 +01:00
Stephan 7a37c8743b Add container tests 2019-01-03 11:41:40 +01:00
Bjarke Berg 6490f57f70 Removed commented out code. 2019-01-03 10:53:33 +01:00
Sebastiaan Janssen aceb5c7971 Merge branch 'dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Core/IO/MediaFileSystem.cs
#	src/Umbraco.Web.UI.Client/src/less/helveticons.less
#	src/Umbraco.Web.UI.Client/src/views/content/copy.html
#	src/Umbraco.Web.UI.Client/src/views/content/move.html
#	src/Umbraco.Web.UI.Client/src/views/media/move.html
#	src/Umbraco.Web.UI/Umbraco/config/lang/da.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
#	src/Umbraco.Web.UI/umbraco/dialogs/rollBack.aspx
#	src/Umbraco.Web/Editors/LogController.cs
#	src/Umbraco.Web/Editors/PasswordChanger.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/rollBack.aspx.cs
2019-01-03 10:32:34 +01:00
Stephan 4f7a5e3046 Bugfix RuntimeState 2019-01-03 09:50:51 +01:00
Bjarke Berg eda46a16d0 Changed IContentType on IContent to a more simple class with lesser properties 2019-01-03 09:27:52 +01:00
Stephan a434ac8c74 Upgrade to ModelsBuilder -alpha.26 2019-01-03 09:11:11 +01:00
Kenn Jacobsen 4b60d8bca6 Fix the content template selector in the content tree 2019-01-03 07:57:23 +00:00
Kenn Jacobsen 525b229b42 Fix content creation from list views 2019-01-03 07:56:17 +00:00
Kenn Jacobsen 2dfbb1d555 Don't attempt to apply a filter if none is submitted 2019-01-03 07:53:20 +00:00
Stephan 81a9807206 Version 8.0.0-alpha.56 2019-01-02 18:14:48 +01:00
Stephan ceab758100 Merge branch 'temp8' into temp8-di2690 2019-01-02 16:44:35 +01:00
Stephan 986a7f368f Merge branch 'temp8' into temp8-removes-config-based-indexes-3901 2019-01-02 15:37:20 +01:00
Stephan 17d818b604 Make Current.Container public for Deploy, wont last 2019-01-02 15:29:22 +01:00
Stephan ebf15b9052 Fix CacheRefresher and DistributedCache 2019-01-02 15:24:33 +01:00
Claus 5b7a205835 Merge branch 'kjac-v8-feature-angular-public-access' into temp8 2019-01-02 13:42:36 +01:00
Claus fb9d5a3c5d Merge branch 'v8-feature-angular-public-access' of https://github.com/kjac/Umbraco-CMS into kjac-v8-feature-angular-public-access 2019-01-02 11:58:24 +01:00
Stephan b21d07a282 Merge branch origin/temp8 into temp8-di2690 2019-01-02 10:23:24 +01:00
Warren Buckley 4651325d77 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/services/navigation.service.js
2019-01-01 19:08:59 +00:00
Aaron Powell 0e56f2035d Using npx for running gulp (#3938) 2018-12-31 14:10:31 +00:00
Kenn Jacobsen 884eaf50c3 Fix the flickering name when moving/copying mediatypes 2018-12-31 13:37:24 +00:00
Kenn Jacobsen d054771fc6 Fix the flickering name when moving/copying doctypes 2018-12-31 13:36:25 +00:00
Kenn Jacobsen cace1af958 Fix the flickering name when moving datatypes 2018-12-31 12:45:37 +00:00
Anders Bjerner 91616a527d Should be "Add group" to keep the casing consistent 2018-12-31 12:44:25 +00:00
Stephan 8d9bf91512 Merge branch 'temp8-migrations' into temp8 2018-12-28 21:33:00 +01:00
Brian Juul Andersen 51c9912828 Update CONTRIBUTION_GUIDELINES.md
Fixed minor grammatical error.
2018-12-28 11:43:20 +01:00
elitsa f1197a6db2 Adding shortcuts for closing an infinite editor through Escape key. 2018-12-27 13:23:20 +01:00
Stephan f21dbb3e77 Fix merge 2018-12-21 16:25:16 +01:00
Stephan a60fd1b7be Merge branch origin/temp8 into temp8-di2690 2018-12-21 15:47:08 +01:00
Stephan 29540b1835 TypeLoader TLC, better perfs and logging 2018-12-21 15:11:23 +01:00
Stephan a571af8be2 Make more types IDiscoverable 2018-12-21 13:42:24 +01:00
Stephan 90ab90d6b9 Fix ExamineComponent crashing on shutdown 2018-12-21 13:42:04 +01:00
Stephan bb9846a6ca Merge branch origin/temp8 into temp8-di2690 2018-12-21 10:58:38 +01:00
Stephan 798eb1099a Merge branch 'temp8' into temp8-migrations 2018-12-21 10:46:37 +01:00
Stephan 70dd85f708 Misc fix 2018-12-21 10:38:14 +01:00
Stephan d0623bc494 Merge branch 'temp8' into temp8-removes-config-based-indexes-3901 2018-12-21 09:25:37 +01:00
Stephan f807d40b95 Merge branch 'temp8-contentquery-search-culture-3828' into temp8 2018-12-21 09:00:13 +01:00
Stephan 7f6994514f Merge branch 'temp8' into temp8-contentquery-search-culture-3828 2018-12-21 09:00:03 +01:00
Stephan 9db0f540d0 Fix failing tests 2018-12-21 08:58:20 +01:00
Shannon 698b83c455 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-12-21 14:17:36 +11:00
Shannon d1befc876f manual merges 2018-12-21 13:48:59 +11:00
Shannon 711304dffe manual merges 2018-12-21 13:44:18 +11:00
Shannon 7e20e81cc8 Fixes EntityRepository and EntityService to perform order by operations correctly 2018-12-21 13:15:46 +11:00
Stephan 4a71d14097 Simplify migrations 2018-12-20 18:38:55 +01:00
Stephan b0eb0d1205 Fix tests 2018-12-20 15:36:12 +01:00
Stephan 4e91a5bb3e Merge branch 'temp8-3658-contextual-info-app' into temp8 2018-12-20 14:32:03 +01:00
Stephan e959605b39 Cleanup and deal with FIXMEs 2018-12-20 14:31:46 +01:00
Stephan 1ffd457985 Merge branch 'temp8' into temp8-3658-contextual-info-app 2018-12-20 13:42:19 +01:00
Stephan 4039127c3d Merge branch 'temp8' into temp8-contentquery-search-culture-3828 2018-12-20 13:31:38 +01:00
Stephan 23eabee1a2 Misc fixes 2018-12-20 13:31:34 +01:00
Stephan 56c82d120b Bugfix keepalive route issue 2018-12-20 13:30:19 +01:00
Stephan 5286e02f11 Merge branch 'temp8' into temp8-contentquery-search-culture-3828 2018-12-20 10:19:02 +01:00
Stephan 8219e0ccdd Fix failing test 2018-12-20 08:25:58 +01:00
Shannon e7a06467f1 Fixes merge issues, manually merges other changes 2018-12-20 17:50:16 +11:00
Shannon 2fcb30e54e Merge remote-tracking branch 'origin/dev-v7' into temp8
# Conflicts:
#	.editorconfig
#	.gitignore
#	src/Umbraco.Core/Persistence/Repositories/EntityRepository.cs
#	src/Umbraco.Core/Persistence/Repositories/UserRepository.cs
#	src/Umbraco.Web.UI.Client/src/common/services/navigation.service.js
#	src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-era-button.less
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/login.html
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/contenttypeeditor/compositions/compositions.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/contenttypeeditor/compositions/compositions.html
#	src/Umbraco.Web.UI.Client/src/views/content/content.delete.controller.js
#	src/Umbraco.Web.UI.Client/src/views/content/content.restore.controller.js
#	src/Umbraco.Web.UI.Client/src/views/content/restore.html
#	src/Umbraco.Web.UI.Client/src/views/dashboard/developer/healthcheck.html
#	src/Umbraco.Web.UI.Client/src/views/media/media.move.controller.js
#	src/Umbraco.Web.UI.Client/src/views/media/move.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/layoutconfig.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/rowconfig.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html
#	src/Umbraco.Web.UI/Umbraco/config/lang/da.xml
#	src/Umbraco.Web.UI/config/umbracoSettings.Release.config
#	src/Umbraco.Web.UI/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
#	src/Umbraco.Web/Controllers/UmbLoginController.cs
#	src/Umbraco.Web/Controllers/UmbLoginStatusController.cs
#	src/Umbraco.Web/Controllers/UmbProfileController.cs
#	src/Umbraco.Web/Controllers/UmbRegisterController.cs
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/Editors/ContentTypeControllerBase.cs
#	src/Umbraco.Web/HtmlHelperRenderExtensions.cs
#	src/Umbraco.Web/Trees/ContentTreeController.cs
#	src/Umbraco.Web/Trees/MediaTreeController.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/create/XsltTasks.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/create/xslt.ascx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/developer/Xslt/editXslt.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/webservices/codeEditorSave.asmx.cs
2018-12-20 16:58:01 +11:00
Kenn Jacobsen 6ca2c27ed3 Remove member groups controller TODO's 2018-12-19 21:01:19 +01:00
Kenn Jacobsen 49387aaa02 Fix errors creating content templates + support variants (#3831) 2018-12-19 18:08:14 +01:00
Kenn Jacobsen 7e144eeacf V8: Fix listviews in pickers (#3894) 2018-12-19 18:01:36 +01:00
Kenn Jacobsen b173b41ce0 V8: Fix and clean up the restore media dialog (#3781) 2018-12-19 17:42:42 +01:00
Kenn Jacobsen d431e80df2 Fix more missing localization 2018-12-19 17:30:39 +01:00
Kenn Jacobsen 28ac63a22c Re-introduce accidentally removed localization 2018-12-19 17:30:39 +01:00
Kenn Jacobsen 5944cec8fc Fix and clean up the restore content dialog 2018-12-19 17:30:39 +01:00
Steve Temple fcbfb1a56e Rename PluginManager to TypeLoader in tests 2018-12-19 16:44:35 +01:00
Kenn Jacobsen 506319695b Fix container creation for media types (#3839) 2018-12-19 16:24:56 +01:00
Kenn Jacobsen 12586df562 Use a member group picker for member group assignment (#3888) 2018-12-19 16:21:14 +01:00
Kenn Jacobsen bb53c020e9 Fix the member group picker 2018-12-19 16:20:22 +01:00
Tristan Thompson 2a61d0d988 Remove/Replace ping.aspx
Remove ping.aspx
Add KeepAliveController to receive ping requests
Update KeepAlive.cs to call new MVC route rather than ping.aspx
2018-12-19 16:13:23 +01:00
Thomas Morris 3b7e8e05f2 Fixes references to docs in sln 2018-12-19 16:11:14 +01:00
Stephan fd6a5f60d2 Merge branch 'temp8' into temp8-contentquery-search-culture-3828 2018-12-19 16:06:35 +01:00
Stephan 720ad984dc Merge branch 'temp8-backoffice-search-with-variants' into temp8 2018-12-19 16:02:54 +01:00
Stephan 5593d49719 Minor fixes as per PR#3852 discussion 2018-12-19 16:00:29 +01:00
Karl Tynan 9f9b9d8ccc Update translation alias to use existing emptyRecycleBin naming instead of Trashcan
Removed unused translation alias also
2018-12-19 16:00:04 +01:00
Gregory Dove 6365f910bc Better Validation Options (#3882) 2018-12-19 15:58:06 +01:00
Tristan Thompson 65f7e44338 Remove/Replace endPreview.aspx with MVC endpoint 2018-12-19 15:47:31 +01:00
Thomas Morris c79f557e94 Remove ClientRedirect.aspx 2018-12-19 15:43:57 +01:00
Kenn Jacobsen b087b862e8 Make Nested Content support variant doctypes 2018-12-19 15:36:37 +01:00
Thomas Morris 7b804e27ad Removes umbraco.aspx 2018-12-19 15:30:07 +01:00
Kenn Jacobsen b81f2512cb Fix the disappearing preview/save/publish buttons in listviews (#3906) 2018-12-19 15:01:18 +01:00
Mads Rasmussen cf56dbd34e add more docs for infinite editing - how to create a custom infinite editor 2018-12-19 13:43:58 +01:00
Shannon f724748225 No more IUserService.SavePassword - passwords are managed with Identity. 2018-12-19 23:27:47 +11:00
Shannon 0ad66c488b Long live Operathor 2018-12-19 22:06:04 +11:00
Shannon Deminick 4a83f1f37f Merge pull request #3897 from umbraco/temp8-3653-infinite-animations
reenable infinite editing animations
2018-12-19 17:30:10 +11:00
Shannon Deminick 6de9379b86 Merge pull request #3904 from umbraco/temp8-3650-infinite-keyboard-shortcuts
Temp8 3650 infinite keyboard shortcuts
2018-12-19 17:23:10 +11:00
Shannon 6a8c7d1a3b Writes some tests, fixes a bug, orders results, writes notes 2018-12-19 17:13:46 +11:00
Shannon 72d42e4228 updates the UI to show culture when the item is not variant and shows the unpublished status if the culture has no variants 2018-12-19 15:58:18 +11:00
Mads Rasmussen abb4ab6b0a fix open template/open doctype buttons 2018-12-18 21:56:06 +01:00
Stephan 7cdbe39ce5 Merge branch 'temp8' into temp8-backoffice-search-with-variants 2018-12-18 17:05:17 +01:00
Stephan 115b0cd2aa Merge branch temp8 into temp8-di2690 2018-12-18 15:42:45 +01:00
Shannon 36fd32ee9a remove unused comparer 2018-12-19 00:04:35 +11:00
Shannon 7047a07660 Shows the culture for URLs if the node is invariant but it has cultural URLs (it exists underneath a variant) 2018-12-19 00:03:49 +11:00
Mads Rasmussen 88d328a4e9 unbind all keyboard shortcuts from the underlaying editor so only keyboard shortcuts from the open editor works 2018-12-18 13:40:37 +01:00
Mads Rasmussen 9eecf9898e rebind keyboard shortcuts when infinite editors closes 2018-12-18 13:24:52 +01:00
Shannon a19a58796f Changes IUrlProvider to return UrlInfo 2018-12-18 22:02:39 +11:00
Stephan 61fd924675 Merge branch 'temp8-3866' into temp8 2018-12-18 10:45:21 +01:00
Stephan 792bf40037 Rework for #3866 2018-12-18 10:44:59 +01:00
Stephan 00c6f77f7d Merge branch 'temp8' into temp8-3866 2018-12-18 10:39:48 +01:00
Stephan 53c67fad63 Rework for #3866 2018-12-18 10:39:39 +01:00
Stephan 813eccdc5a Fixes 2018-12-18 10:39:17 +01:00
Stephan d8d04c54e6 Fix IOHelper for debugging other apps 2018-12-18 08:33:54 +01:00
Stephan 8152862ad2 Fix issue with figuring out whether a published content version is draft 2018-12-18 08:31:10 +01:00
Stephan c020383c22 Remove confusing LazyCollectionBuilderBase.Remove 2018-12-18 08:31:10 +01:00
Shannon b9580b389e Merge remote-tracking branch 'origin/temp8' into temp8-3658-contextual-info-app 2018-12-18 18:04:38 +11:00
Shannon 193bc74f26 removes configuration based indexes 2018-12-18 17:55:30 +11:00
Shannon Deminick 2377d3ac11 Merge pull request #3891 from kjac/v8-fix-publish-on-preview
V8: Don't publish on preview
2018-12-18 17:24:14 +11:00
Stephan 35ebced4ed True standalone test 2018-12-17 18:55:36 +01:00
Mads Rasmussen 4068dca938 reenable infinite editing animations 2018-12-17 13:55:08 +01:00
Mads Rasmussen ebc689032d fix dictionary pickers in code editors 2018-12-17 10:48:33 +01:00
Shannon 07d2320898 fixes bool 2018-12-17 13:44:11 +11:00
Shannon 7484626893 Allows passing in a culture to the IPublishedContentQuery search methods 2018-12-17 13:11:51 +11:00
Shannon 4976782247 Updates search published content search extensions to correspond with new examine api changes, updates examine api changes 2018-12-17 12:17:03 +11:00
Kenn Jacobsen 33b9870aec Only perform save when previewing - not a publish 2018-12-16 21:52:45 +01:00
Shannon 4a23a6d3d0 Merge branch 'temp8-backoffice-search-with-variants' into temp8-examine-extensibility-3535 2018-12-14 13:17:51 +11:00
Shannon 9cc729d90b Merge branch 'temp8' into temp8-backoffice-search-with-variants
# Conflicts:
#	src/Umbraco.Examine/ExamineExtensions.cs
2018-12-14 13:06:54 +11:00
Shannon Deminick 6e4ec6e020 Merge pull request #3807 from umbraco/temp8-3675-variant-tags
Support variant tags
2018-12-14 12:38:42 +11:00
Shannon d38e4e6e34 latest examine, fixes sortability 2018-12-14 11:32:20 +11:00
Shannon 162f8480d1 more tweaks to get config based indexes working, updates to IIndexPopulator to have strongly typed association 2018-12-13 23:17:58 +11:00
Shannon c129375dd0 more bug fixes 2018-12-13 22:33:41 +11:00
Stephan 7cad591b86 Fixes 2018-12-13 11:12:48 +01:00
Shannon 2060f69ab0 Allow configuring a DirectoryFactory for all LuceneIndexes created with LuceneIndexCreator 2018-12-13 21:09:56 +11:00
Warren Buckley 3d391fdfb6 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-12-13 08:49:35 +00:00
Stephan 96aff943d5 Bugfix tags (in)variant 2018-12-13 09:15:51 +01:00
Shannon 7159bca71f Update to latest examine api changes 2018-12-13 18:24:06 +11:00
Shannon 5e6320730d Updates nuspec to latest examine 2018-12-13 18:18:04 +11:00
Shannon 8be55f8f98 Merge branch 'temp8' into temp8-examine-extensibility-3535 2018-12-13 16:40:56 +11:00
Shannon ce3395cc1e fix build 2018-12-13 15:13:56 +11:00
Shannon c8b3f11498 latest examine, tweaks to UmbracoFieldDefinitionCollection, adds some test code for testing 2018-12-13 15:04:18 +11:00
Aaron Powell 9649e61f17 Fixing #3866 - making a few methods public 2018-12-13 11:54:32 +11:00
Stephan adced099be Move UmbracoConfig singleton to Current 2018-12-12 23:31:16 +01:00
Kenn Jacobsen 082d65b78f Merge branch 'v8-feature-angular-public-access' of https://github.com/kjac/Umbraco-CMS into v8-feature-angular-public-access 2018-12-12 23:07:53 +01:00
Kenn Jacobsen 41624c8c16 Remove the old aspx page 2018-12-12 23:07:41 +01:00
Stephan e40c9cb227 Fix missing dependencies errors, simplify 2018-12-12 16:07:21 +01:00
Stephan 3150f5d24e Merge branch temp8 into temp8-3675-variant-tags 2018-12-12 16:04:58 +01:00
Kenn Jacobsen 8ff4d821a8 Merge branch 'temp8' into v8-feature-angular-public-access 2018-12-12 15:42:31 +01:00
Kenn Jacobsen 1ba41986d7 Make sure the public access supports member based access 2018-12-12 15:35:34 +01:00
Stephan a74052d647 Further simplify upgrader 2018-12-12 15:29:40 +01:00
Mads Rasmussen defa231c4b add label for history 2018-12-12 14:29:20 +01:00
Stephan 3e082f1a94 Restructure registration of essential services, validate 2018-12-12 14:28:57 +01:00
Kenn Jacobsen e4f9c2916d Use "groups", not "roles" + return richer group models from API 2018-12-12 14:27:20 +01:00
Stephan 54c352f1f9 Kill sql.WriteToConsole 2018-12-12 13:28:52 +01:00
Stephan 376203a4e1 Further simplify upgrader 2018-12-12 13:28:52 +01:00
Stephan b60cda2e1b Add a missing null check 2018-12-12 13:28:51 +01:00
Stephan b086fd2f0b Cleanup the Umbraco migration plan 2018-12-12 13:28:51 +01:00
Stephan 84e0d0571f Refactor migration plan and upgrader 2018-12-12 13:28:51 +01:00
Stephan 478522a573 Migrations TLC 2018-12-12 13:28:51 +01:00
Stephan 68ee1181cb Execute true Sql<ISqlContext> in Migrations 2018-12-12 13:28:51 +01:00
Stephan 7b3cded115 Cleanup 2018-12-12 13:28:51 +01:00
Stephan 11edbc8638 Remove obsolete post-migrations 2018-12-12 13:28:51 +01:00
Stephan e65470de8b Document SqlContext 2018-12-12 13:28:51 +01:00
Stephan d7e61515de Refactor TypeLoader 2018-12-12 13:28:51 +01:00
Stephan e3cd19fed5 Fix tags (in)variant 2018-12-12 13:27:08 +01:00
Mads Rasmussen 4f6f959d7f Add missing translations 2018-12-12 13:12:13 +01:00
Mads Rasmussen c8593c23e6 show correct createDate for variants, only show contextual variant status, only show context variant urls, add variant log colors 2018-12-12 11:59:08 +01:00
Kenn Jacobsen 22b78ec617 Make sure at least one member is selected 2018-12-12 11:18:16 +01:00
Kenn Jacobsen 35f0bf92f2 Support custom membership providers (untested) 2018-12-12 09:55:35 +01:00
Kenn Jacobsen efb9b37f5d Change from member IDs to usernames in member selections 2018-12-12 09:27:03 +01:00
Stephan fc620af9d0 Merge branch 'temp8' into temp8-3675-variant-tags 2018-12-12 08:58:25 +01:00
Kenn Jacobsen e12d374ffa Merge branch 'temp8' into v8-fix-copy-media-types 2018-12-12 07:12:22 +01:00
Shannon 826a8baff5 Merge branch 'temp8' into temp8-backoffice-search-with-variants 2018-12-12 13:37:19 +11:00
Shannon 85b25485da removes trees from trees.Release.config 2018-12-12 13:34:54 +11:00
Shannon 51cfec4157 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-12-12 13:23:44 +11:00
Shannon b5da641d48 Uses the DefaultLockFactory to set the lock 2018-12-12 13:23:29 +11:00
Shannon Deminick bfcc68c7f9 Merge pull request #3856 from umbraco/temp8-forms-fullscreen
Makes the Forms Promo App/Section become fullscreen & removes the empty tree
2018-12-12 13:23:06 +11:00
Shannon 7cb83373ca Creates base class LuceneIndexCreator 2018-12-12 12:46:58 +11:00
Shannon 15c7d7ce77 Creates a sub-generic interface for creating indexes 2018-12-12 12:37:21 +11:00
Shannon 2254c3d00c Merge branch 'temp8' into temp8-backoffice-search-with-variants 2018-12-12 12:06:21 +11:00
Shannon e1743ae3ea Changes IValueSetBuilder to not be strongly typed, no need for that 2018-12-12 12:05:19 +11:00
Kenn Jacobsen ec24ebf93c Fix media type copying and move media type service unit tests to a separate class 2018-12-11 17:00:43 +01:00
Warren Buckley 767cd93f08 Adds in some logic if we have no child trees for that application/section then we create a SingleTreeRoot 2018-12-11 14:09:44 +00:00
Warren Buckley b0157d7116 We do not need to ship with these Umbraco Forms trees in the config file 2018-12-11 14:08:44 +00:00
Stephan 0dff7680fd Fix ContentTypeServiceTests (but, why???) 2018-12-11 14:05:04 +01:00
Mads Rasmussen b19f9c8114 update styling on forms install dashboard 2018-12-11 13:39:12 +01:00
Mads Rasmussen d06ccebf7c update docs for infinite editing 2018-12-11 13:03:18 +01:00
Warren Buckley acc238f6ef Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-12-11 11:23:18 +00:00
Warren Buckley 0ae9d30373 Revert recent change to Forms dashboard back into XML config - now that we have a way to modify from Umbraco Forms component 2018-12-11 09:43:47 +00:00
Mads Rasmussen 27f9490837 fix docs build 2018-12-11 10:14:18 +01:00
Stephan b6f55d12da Merge branch 'temp8' into temp8-3675-variant-tags 2018-12-11 10:11:27 +01:00
Stephan 8c31f69a6f Merge branch origin/temp8 into temp8-di2690 2018-12-11 10:04:42 +01:00
Stephan 35f4bba119 fix UrlProvider for invariant under variant 2018-12-11 10:00:55 +01:00
Stephan d077f9c8a7 Merge pull request #3600 from JimBobSquarePants/temp8
Optimized CombinedGuidsMediaPathScheme
2018-12-11 08:56:41 +01:00
Shannon 8048d57ffe ensures query fields contained the lowercased iso code 2018-12-11 17:57:40 +11:00
Shannon 1fe3045b4c Adds TODO notes 2018-12-11 17:54:10 +11:00
Shannon eb3841fc0a Searches on variant nodeName, orders ISearchableTree results by the corresponding tree SortOrder, fixes assembly scanning ISearchableTree 2018-12-11 17:51:47 +11:00
Shannon 5148f34b32 Fixes ISearchableTree lifetime registration, fixes routing that clears required query strings, fixes lucene search string, gets URls in search results working with default lang/variants 2018-12-11 15:42:32 +11:00
Shannon 9b52fa215f Allows replacing the model with the outgoing event args 2018-12-11 12:53:15 +11:00
Shannon e91cf0039b Adds ability to filter the outgoing dashboard model 2018-12-11 12:32:51 +11:00
James Jackson-South 64dc401be5 Merge branch 'temp8' into temp8 2018-12-11 06:28:23 +11:00
Stephan 046f6f3cd9 Merge branch origin/temp8 into temp8-di2690 2018-12-10 17:49:11 +01:00
Stephan f9967e2d7d Fix e25e509d84 breaking tests, fix original issue 2018-12-10 17:48:24 +01:00
Stephan f10b86c9ec Fix RelationMapperProfiler 2018-12-10 17:08:14 +01:00
Warren Buckley c4cf843b82 Adds in the Umbraco Forms Promo dashboard in via package.manifest so that Forms install can override when installed 2018-12-10 14:59:17 +00:00
Warren Buckley 20a65166be Merge remote-tracking branch 'origin/temp8' into temp8-logviewer
# Conflicts:
#	src/Umbraco.Web/Editors/BackOfficeServerVariables.cs
2018-12-10 14:31:03 +00:00
Stephan e173ea6dac Cleanup 2018-12-10 15:30:56 +01:00
Claus 5fb3ccd758 Merge branch 'temp8-3436-relationtypes' into temp8 2018-12-10 14:24:00 +01:00
Mads Rasmussen c61ac406bb fix fade animation when closing the last infinite editor 2018-12-10 14:20:57 +01:00
Claus ca0cd8711e minor fixes. 2018-12-10 14:11:02 +01:00
Claus cfd6a08366 Merge branch '3436-relations-editor' of https://github.com/jamescoxhead/Umbraco-CMS into jamescoxhead-3436-relations-editor 2018-12-10 13:27:34 +01:00
Mads Rasmussen 98cc48c0d3 remove infinite editing backdrop when discarding changes 2018-12-10 11:38:43 +01:00
Jack Lawry a11b442cfd Update text 2018-12-10 08:31:07 +01:00
Shannon 86b0ab7dab Fixes the typeahead (mostly) 2018-12-10 17:32:10 +11:00
Shannon c80a9b1402 Fixes the typeahead (mostly) 2018-12-10 17:26:15 +11:00
Shannon 971e92d659 fixes last PublishedMediaTests 2018-12-10 14:11:41 +11:00
Shannon 5d028eea04 Merge branch 'temp8' into temp8-3675-variant-tags
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.html
2018-12-10 14:07:20 +11:00
Shannon db1a535af4 Fixes published media tests with Examine and un-ignores them... more tests are better than less even if we aren't using Examine for real media cache 2018-12-10 14:06:25 +11:00
Shannon bcd908e47d Changes term Indexer to Index and fixes a failing test 2018-12-10 13:06:39 +11:00
Kenn Jacobsen 852b44af0e Fix member roles assignment YSOD 2018-12-09 17:56:41 +01:00
Jannik Anker c2a8378b89 V8, Getting Started: typo in URL
Using HHTTPS as protocol just doesn't work :-/
2018-12-09 17:54:13 +01:00
Kenn Jacobsen 939b320971 Fix the OK button for move and close success messages 2018-12-09 17:28:21 +01:00
Kenn Jacobsen 8ff697ad98 Fix the flickering source name and the close button when moving items in the media tree. 2018-12-09 17:26:24 +01:00
Kenn Jacobsen c00b3e283d Add dirty tracking for slider and datetime 2018-12-09 17:19:40 +01:00
Kenn Jacobsen a8b0ede770 Whoops forgot a file 2018-12-09 15:03:35 +01:00
Kenn Jacobsen c860a6b574 Pick members instead of entering username and password 2018-12-09 14:58:52 +01:00
Kenn Jacobsen a51d241dc2 Fix missing "opens dialog dots" for menu items created using the MenuItemList helper methods 2018-12-09 14:36:35 +01:00
Andy Neil e25e509d84 Resolved check for removed properties 2018-12-09 14:31:53 +01:00
Kenn Jacobsen e3e3e06458 Markdown editor: Fix the redo button + remove the button hover flicker 2018-12-09 14:29:39 +01:00
Kenn Jacobsen 573db0d142 V8 fix remove custom event directives (#3622) 2018-12-09 14:25:42 +01:00
Kenn Jacobsen 14fd9c835d V8: Fix the media picker folder creation and "sub folders" toggle button (#3630) 2018-12-09 14:17:57 +01:00
Kenn Jacobsen 0c9ecacca0 Undo the leftovers from another issue 2018-12-09 13:51:33 +01:00
Kenn Jacobsen 9b4a580734 Fix the changing source name when moving a node 2018-12-09 13:51:33 +01:00
Kenn Jacobsen a072278490 Fix the changing source name when copying a node 2018-12-09 13:47:37 +01:00
Kenn Jacobsen 355f02971d Fix the mardown editor button bar in split view 2018-12-09 13:36:40 +01:00
Kenn Jacobsen a795ed66e8 Use a member group picker instead of checkboxes 2018-12-08 14:50:05 +01:00
Stephan 8b0ab01df6 Merge branch 'temp8' into temp8-3675-variant-tags 2018-12-07 17:34:24 +01:00
Stephan 7f8eeeab83 Merge branch temp8 into temp8-di2690 2018-12-07 16:12:08 +01:00
Stephan bd91706f89 Cleanup test 2018-12-07 16:00:01 +01:00
Stephan 0d83da9327 Fix some tests 2018-12-07 15:59:57 +01:00
Stephan 02617885b4 Disable media tests that use Examine (no point) 2018-12-07 15:57:19 +01:00
Stephan 6d898128d4 Fix nuspec for Examine 2018-12-07 15:32:02 +01:00
Mads Rasmussen 2f7772d40a fix control picker 2018-12-07 15:19:41 +01:00
Kenn Jacobsen 33613f3c31 Merge branch 'temp8' into v8-feature-angular-public-access 2018-12-07 15:10:53 +01:00
Mads Rasmussen 53d7023b40 fix file picker 2018-12-07 15:01:12 +01:00
Stephan 04b38a2c46 Merge branch 'temp8' into temp8-3675-variant-tags 2018-12-07 14:26:19 +01:00
Stephan 1eee6dfb2f Cleanup 2018-12-07 14:05:47 +01:00
Stephan 6dad124d5b Merge branch 'temp8' into temp8-manifest 2018-12-07 13:53:28 +01:00
Stephan d1ab980048 Cleanup 2018-12-07 13:44:41 +01:00
Mads Rasmussen ce3729678e fix dictionary items and data types 2018-12-07 13:25:07 +01:00
Stephan ed222510f0 Fixes 2018-12-07 13:24:25 +01:00
Mads Rasmussen 90b0a8b14b correct binding of languages 2018-12-07 13:20:28 +01:00
Mads Rasmussen a411d13d0e fix binding of documenttypes and templates 2018-12-07 13:10:50 +01:00
Stephan 3df1c242c4 Merge remote-tracking branch 'lars-erik/temp8-u4-11427-remove-propertyinjection' into temp8-di2690 2018-12-07 13:09:22 +01:00
Warren Buckley f390e2979d Merge remote-tracking branch 'origin/temp8' into temp8-logviewer
# Conflicts:
#	src/Umbraco.Core/EnumerableExtensions.cs
2018-12-07 12:06:23 +00:00
Stephan 41b7d33d9a Cleanup test 2018-12-07 13:01:26 +01:00
Stephan 1919fa8a03 Fix some tests 2018-12-07 12:44:54 +01:00
Warren Buckley bb5a561932 Wiring up server side validation in the UI 2018-12-07 11:43:36 +00:00
Stephan ccd0437b2e Disable media tests that use Examine (no point) 2018-12-07 12:06:25 +01:00
Warren Buckley c94cfc0156 Merge branch 'temp8-packages-ui' of https://github.com/umbraco/Umbraco-CMS into temp8-packages-ui 2018-12-07 10:37:47 +00:00
Warren Buckley b35a8b406b Fix API Controller for Package create to support new entry & update existing entry 2018-12-07 10:37:33 +00:00
Mads Rasmussen 8252f4d95a clear create query string when using back button 2018-12-07 11:31:33 +01:00
Warren Buckley c7b49d928a Adds in validation to the POST / Create package to ensure name, author is set etc... 2018-12-07 10:22:33 +00:00
Mads Rasmussen 5d3432db51 get render model for content item 2018-12-07 11:15:08 +01:00
Warren Buckley ac3d82b2d8 Merge branch 'temp8-packages-ui' of https://github.com/umbraco/Umbraco-CMS into temp8-packages-ui 2018-12-07 09:30:10 +00:00
Warren Buckley a9aba6731d Update to CreatePackage API endpoint - the ID & Guid was getting overwritten by mistake 2018-12-07 09:29:44 +00:00
Mads Rasmussen fbf29f9f47 bind stylesheets correctly 2018-12-07 10:13:55 +01:00
Mads Rasmussen 6566a43ef9 change end point for delete created package 2018-12-07 10:05:31 +01:00
Stephan 710ec704b3 Merge branch temp8 into temp8-di2690 2018-12-07 09:52:46 +01:00
Stephan c62d64a9b7 Merge temp8 into temp8-3675-variant-tags 2018-12-07 09:36:58 +01:00
Stephan fb4717d31e Merge branch 'temp8-3527-indexes-via-code' into temp8 2018-12-07 09:27:38 +01:00
Sebastiaan Janssen 0095429ff0 Fix package.json after merge 2018-12-07 09:24:15 +01:00
Stephan 04b2765d72 Document 2018-12-07 09:03:36 +01:00
Stephan 159ae136f3 Merge branch 'temp8' into temp8-3675-variant-tags 2018-12-07 08:49:25 +01:00
Shannon 62d74f07bf fixes boolean change mistake to make sure that the Internal/external index has the correct PublishedOnlyFlag, latest examine update, fixes issue with queuing deletions before updates 2018-12-07 15:06:07 +11:00
Shannon ecce3604af Merge remote-tracking branch 'origin/dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Core/StringExtensions.cs
#	src/umbraco.presentation.targets
2018-12-07 13:16:13 +11:00
Shannon 3d3d249e7e adds notes 2018-12-07 13:13:00 +11:00
Shannon 413fea03aa reverts changes for published messaging with scheduled dates, we'll have to deal with that another day 2018-12-07 13:11:19 +11:00
Shannon 91af2c7708 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-12-07 12:50:09 +11:00
Shannon 5c49069805 removes XmlCacheComponent since we will never use the xml cache in a website 2018-12-07 12:49:41 +11:00
Shannon 9b3de7b655 manually merges in publishing messaging when publishing something that has an expire date 2018-12-07 12:49:20 +11:00
Shannon 219a236069 removes unused lang keys 2018-12-07 12:06:16 +11:00
Shannon 8da992aabf manually merges changed lang files and a few other things 2018-12-07 12:03:33 +11:00
Warren Buckley 7f380347dc Some WIP binding updates in the view - will mostly need to bind an array of integers back to items 2018-12-06 15:35:40 +00:00
Warren Buckley 2013fd1619 Try the MakeNew method on CreatedPackage() 2018-12-06 14:41:53 +00:00
Mads Rasmussen 57f462b204 wire up create package 2018-12-06 15:26:12 +01:00
Warren Buckley c67cb46510 Merge branch 'temp8-packages-ui' of https://github.com/umbraco/Umbraco-CMS into temp8-packages-ui 2018-12-06 13:55:44 +00:00
Warren Buckley 6f5155b0f3 Adds in new attribute to override the specific PackageController JSON Serializer to use the NewtonSoft built-in VersionConvertor 2018-12-06 13:54:38 +00:00
Mads Rasmussen e566e240b1 prefill umbraco version number 2018-12-06 14:49:02 +01:00
Warren Buckley 6c25062e4b Merge branch 'temp8-packages-ui' of https://github.com/umbraco/Umbraco-CMS into temp8-packages-ui 2018-12-06 13:09:59 +00:00
Warren Buckley 34dc81058a Move the Delete method over into our new controller 2018-12-06 13:09:34 +00:00
Mads Rasmussen 9409b46ef4 fix back buttons 2018-12-06 13:57:21 +01:00
Sebastiaan Janssen 47287d9d80 Codebase now runs on VS2019 2018-12-06 13:19:04 +01:00
Mads Rasmussen 7df0869649 wire up delete 2018-12-06 13:13:55 +01:00
Mads Rasmussen 3c399ade16 last textarea should be actions 2018-12-06 12:50:08 +01:00
Warren Buckley dfe224486c Merge branch 'temp8-packages-ui' of https://github.com/umbraco/Umbraco-CMS into temp8-packages-ui 2018-12-06 11:21:42 +00:00
Warren Buckley 465229fb39 Return PackageInstance as opposed to CreatedPackage in API responses 2018-12-06 11:21:28 +00:00
Warren Buckley c7e6cf44ed Anotate model so its camelCase friendly for API responses for Mads 2018-12-06 11:21:01 +00:00
Mads Rasmussen 452f97de62 wire up get created package by id 2018-12-06 11:53:26 +01:00
Warren Buckley 17a005c163 Fix up Umbraco.Sys object URL to API endpoint 2018-12-06 10:42:05 +00:00
Mads Rasmussen 68006f78ee wire up end point for get created packages 2018-12-06 11:33:03 +01:00
Warren Buckley de86dace70 Adds a Create/Publish method - will need to figure out validation 2018-12-06 10:18:31 +00:00
Warren Buckley cd8bb8ed99 Adds the package api controller to Umbraco.Sys JS object 2018-12-06 10:07:53 +00:00
Bjarke Berg 1aaa4a353e Bugfix 2018-12-06 11:02:35 +01:00
Warren Buckley 9df8c71bf4 Adds in Delete method 2018-12-06 09:54:21 +00:00
Warren Buckley 17d489bb54 Adds new API/Editor endpoint to deal with created packages - get methods 2018-12-06 09:50:05 +00:00
Warren Buckley 046b35e242 Merge branch 'temp8-packages-ui' of https://github.com/umbraco/Umbraco-CMS into temp8-packages-ui 2018-12-06 09:32:42 +00:00
Warren Buckley 3546de3207 Update packages tree so that its a full screen app/section like users 2018-12-06 09:32:04 +00:00
Mads Rasmussen 849cc2d383 remove tree sync for packages and users as we don't have a tree 2018-12-06 10:20:48 +01:00
Stephan 65370cf4e6 Fix copying tags when (un)variant 2018-12-06 10:20:40 +01:00
Bjarke Berg aee6156a09 Refactored the ManifestContentAppDefinition to have a factory and a seperate data class. 2018-12-06 10:02:23 +01:00
Shannon f671f41f7c removes commented out Relation type editor and the unused/disabled xml health check 2018-12-06 17:25:24 +11:00
Shannon 3e95d94726 fixes build 2018-12-06 17:24:06 +11:00
Shannon 07f15ec7b3 Merge remote-tracking branch 'origin/dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Core/Models/UserExtensions.cs
#	src/Umbraco.Core/Persistence/Repositories/AuditRepository.cs
#	src/Umbraco.Core/Persistence/Repositories/RepositoryBase.cs
#	src/Umbraco.Core/Services/ContentService.cs
#	src/Umbraco.Core/StringExtensions.cs
#	src/Umbraco.Tests/Migrations/Upgrades/SqlCeUpgradeTest.cs
#	src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs
#	src/Umbraco.Web.UI.Client/package-lock.json
#	src/Umbraco.Web.UI.Client/package.json
#	src/Umbraco.Web.UI.Client/src/common/services/contenteditinghelper.service.js
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/treepicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/linkpicker/linkpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/checkboxlist/checkboxlist.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/dropdownFlexible/dropdownFlexible.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/dropdownFlexible/dropdownFlexible.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/radiobuttons/radiobuttons.html
#	src/Umbraco.Web.UI/Umbraco/config/lang/da.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/fr.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/ru.xml
#	src/Umbraco.Web.UI/Umbraco/developer/RelationTypes/EditRelationType.aspx
#	src/Umbraco.Web.UI/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/es.xml
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/HealthCheck/Checks/DataIntegrity/XmlDataIntegrityHealthCheck.cs
#	src/Umbraco.Web/HealthCheck/NotificationMethods/EmailNotificationMethod.cs
#	src/Umbraco.Web/Routing/ContentFinderByRedirectUrl.cs
#	src/Umbraco.Web/Trees/ContentTreeControllerBase.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/create/language.ascx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/developer/RelationTypes/EditRelationType.aspx
#	src/Umbraco.Web/umbraco.presentation/umbraco/developer/RelationTypes/EditRelationType.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/settings/editLanguage.aspx.cs
#	src/umbraco.cms/businesslogic/language/Language.cs
2018-12-06 17:13:23 +11:00
Shannon 3be300db09 Merge remote-tracking branch 'origin/revert-3745-temp8-tinymce' into temp8 2018-12-06 16:44:52 +11:00
Shannon 2216a40d01 Merge commit '2a0748fc1e85c468064f309c03b24a43ed42e177' into temp8 2018-12-06 16:41:45 +11:00
Shannon 311b523c8e dont' write to console unless compiled in debug 2018-12-06 13:12:07 +11:00
Shannon d63492bf41 missing nullable parameter in ITagQuery, removes old wrappign logic in PublishedContentQuery 2018-12-06 12:41:38 +11:00
Shannon 45a6789fde Added a failing test 2018-12-06 12:17:40 +11:00
Lars-Erik Aabech 72fd8534a6 Update comments on controller registration 2018-12-05 23:10:42 +01:00
Lars-Erik Aabech 91f2d47cf8 Merge branch 'temp8-u4-11427-remove-propertyinjection' of https://github.com/lars-erik/Umbraco-CMS into temp8-u4-11427-remove-propertyinjection 2018-12-05 23:02:59 +01:00
Lars-Erik Aabech 542b08650b Also register RenderMvcControllers 2018-12-05 23:01:16 +01:00
Stephan c3d0bee4d3 Fix boot issue 2018-12-05 17:34:34 +01:00
Warren Buckley 5870db0273 Merge branch 'temp8-packages-ui' of https://github.com/umbraco/Umbraco-CMS into temp8-packages-ui 2018-12-05 15:15:58 +00:00
Warren Buckley 8425c3124d Modify FileSystemTree Controller - that if * is used for file extension then we will return all files :) 2018-12-05 15:15:45 +00:00
Mads Rasmussen 74d9945e09 Add title to files and control pickers 2018-12-05 15:42:44 +01:00
Mads Rasmussen 749a25aabb user overlayService for ysods 2018-12-05 15:41:55 +01:00
Warren Buckley 28c4b2ee7f Merge branch 'temp8-packages-ui' of https://github.com/umbraco/Umbraco-CMS into temp8-packages-ui
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/packages/edit.controller.js
2018-12-05 14:29:32 +00:00
Warren Buckley 00428ec2de Adds in new hidden aka initialized=false tree (so that it can be displayed only as a dialog/infinite editor) to display files & folders from root of the site for the package creator UI 2018-12-05 14:28:07 +00:00
Shannon 85efd4dc59 Moves SqlNullableEquals to SqlExpressionExtensions 2018-12-06 01:14:06 +11:00
Shannon a239d50e89 Merge branch 'temp8-3675-variant-tags' of https://github.com/umbraco/Umbraco-CMS into temp8-3675-variant-tags 2018-12-06 01:11:12 +11:00
Shannon dd2c43485d Moves tag editor to a component, fixes issue with typeahead and invariant properties, fixes migration to update the IX_cmsTags index correctly 2018-12-06 01:10:53 +11:00
Mads Rasmussen d77796bcac show selected files and control 2018-12-05 15:06:50 +01:00
Mads Rasmussen e599685684 wip file pickers ui 2018-12-05 14:20:34 +01:00
Mads Rasmussen bd505a8574 get doctypes, datatypes, languages etc from the server and bind selection to model + add content picker 2018-12-05 13:37:01 +01:00
Stephan c74fc7a8f9 Misc cleanup and renaming 2018-12-05 12:57:23 +01:00
Stephan 0dda7c81a0 Rename NEquals 2018-12-05 12:18:52 +01:00
Sebastiaan Janssen f26353a34e Fix broken build 2018-12-05 11:00:49 +01:00
Shannon b8b0404393 adds notes and ignores failing tests (to be fixed later) 2018-12-05 20:51:30 +11:00
Sebastiaan Janssen 901af2be8e Fix docs build 2018-12-05 10:44:06 +01:00
Sebastiaan Janssen f002b371b9 Update npm marked reference 2018-12-05 10:42:44 +01:00
Mads Rasmussen a4bdcf99b1 wip create package editor 2018-12-05 10:36:20 +01:00
Stephan c6a9701e53 Merge branch temp8 into temp8-di2690 2018-12-05 09:05:47 +01:00
Stephan e5d12117d5 Composition can set default renderMvc controller 2018-12-05 08:19:21 +01:00
Shannon 24300e76f9 oops committed a config change 2018-12-05 17:42:31 +11:00
Shannon d549cb8e3d Merge remote-tracking branch 'origin/temp8' into temp8-3527-indexes-via-code 2018-12-05 17:36:50 +11:00
Shannon cb9eec97e2 Fixes tests 2018-12-05 17:20:48 +11:00
Shannon 11d8d17156 Fixes build with ctor change to UmbracoHelper 2018-12-05 17:00:51 +11:00
Shannon 1eba69b070 Fixes build with ctor change to UmbracoHelper 2018-12-05 16:59:33 +11:00
Shannon b48a7fa4a9 Gets search tools working for explicitly defined searchers, have tested with a multi index searcher, refactors SupportsUnpublished vs SupportSoftDelete vs OnlyPublishedContent booleans and made some sense out of the reindexing items in ExamineComponent which didn't really work, cleans up IPublishedContentQuery implementation 2018-12-05 16:53:25 +11:00
Stephan 50f4e12ca1 Merge pull request #3819 from umbraco/temp8-fix-dashboard-manifest
Refactor package.manifest dashboards JSON structure
2018-12-04 12:12:44 +01:00
Stephan 73f31dd800 Refactor manifest dashboards, security 2018-12-04 11:37:07 +01:00
Mads Rasmussen bd455aaede fixing up styles to better fit new UI 2018-12-04 11:19:08 +01:00
Mads Rasmussen 04e8fc7fa3 fix missing form from install local package 2018-12-04 11:18:32 +01:00
Mads Rasmussen cb7c1f9bbd use table for installed packages 2018-12-04 11:18:12 +01:00
Stephan 5c140762c4 Handle tags when variations change 2018-12-04 08:23:18 +01:00
Shannon 1717f94fcf Gets searching on dashboard working with paging and viewing field values 2018-12-04 15:41:54 +11:00
Shannon 56d1a317c0 Gets searching working in the dashboard, updates to latest examine 2018-12-04 14:25:37 +11:00
Kenn Jacobsen ce980fc822 Merge branch 'temp8' into v8-feature-angular-public-access 2018-12-03 15:56:10 +01:00
Warren Buckley b361d1c950 Refactor package.manifest dashboards JSON structure 2018-12-03 14:26:16 +00:00
Warren Buckley e620d26769 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer
# Conflicts:
#	src/Umbraco.Web.UI.Client/package.json
#	src/Umbraco.Web/UI/JavaScript/JsInitialize.js
2018-12-03 13:28:07 +00:00
Shannon fce5b29b1c index rebuilding updates 2018-12-03 23:15:18 +11:00
Warren Buckley 8b5eb1f0a4 Merge pull request #2478 from Shazwazza/U4-2827
U4-2827 Allow dashboards via manifest
2018-12-03 12:13:12 +00:00
Warren Buckley 53df1dfc82 Merge pull request #3815 from umbraco/temp8-upgrade-dev-dependencies
Temp8 upgrade dev dependencies
2018-12-03 11:19:51 +00:00
Shannon 69c939c444 Some cleanup and renames 2018-12-03 22:19:35 +11:00
Shannon f8d203abff Updates latest examine + api updates + fixes tests, gets different validation working (valid, failed, filtered) 2018-12-03 22:10:56 +11:00
Warren Buckley 0d6ee927bc Merge remote-tracking branch 'origin/temp8' into temp8-upgrade-dev-dependencies 2018-12-03 11:01:32 +00:00
Warren Buckley 37eeeba76b Merge pull request #3798 from umbraco/temp8-upgrade-depdendencies
Temp8 upgrade depdendencies
2018-12-03 10:07:16 +00:00
Warren Buckley e4fb2dff96 Merge remote-tracking branch 'origin/temp8' into temp8-upgrade-depdendencies 2018-12-03 09:39:26 +00:00
Warren Buckley 8b77c5e278 Merge pull request #3792 from umbraco/temp8-upgrade-jquery
Temp8 upgrade jquery
2018-12-03 09:35:45 +00:00
Warren Buckley dd7b4669d5 Merge pull request #3786 from umbraco/temp8-3651
add overlay to tree when infinite editing is open
2018-12-03 09:21:41 +00:00
Warren Buckley a40a6fbe8f Merge pull request #3783 from umbraco/temp8-3110
Temp8 3110
2018-12-03 09:16:33 +00:00
Mads Rasmussen 32ed237729 package-lock 2018-12-03 09:48:59 +01:00
Shannon 774b968112 Cleans up the dashboard config that we release 2018-12-03 16:55:06 +11:00
Shannon a5b331f6d7 Gets site running with dashboards 2018-12-03 16:40:28 +11:00
Shannon 162b90194d Gets sln building, removes old legacy settings, removes ascx dashboard support 2018-12-03 16:14:49 +11:00
Shannon 953f37f2db Merge remote-tracking branch 'umbraco/temp8' into U4-2827
# Conflicts:
#	src/Umbraco.Core/Manifest/ManifestBuilder.cs
#	src/Umbraco.Core/Manifest/ManifestParser.cs
#	src/Umbraco.Core/Manifest/PackageManifest.cs
#	src/Umbraco.Web/Editors/DashboardController.cs
#	src/Umbraco.Web/Editors/SectionController.cs
2018-12-03 15:25:31 +11:00
James Coxhead df961d9199 Merge branch 'temp8' into 3436-relations-editor
# Conflicts:
#	src/Umbraco.Web/Trees/RelationTypeTreeController.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/developer/RelationTypes/EditRelationType.aspx.cs
2018-12-02 23:31:54 +00:00
James Coxhead c6d09cbcff Split relation type and associated relations into tabbed view 2018-12-02 22:53:30 +00:00
James Coxhead a4f270bd02 Added localisation 2018-12-02 22:33:15 +00:00
James Coxhead f87dac9972 Remove redundant webforms views 2018-12-02 21:56:03 +00:00
James Coxhead 4617c0c24f Tidy up - remove obsoleted classes 2018-12-02 18:17:20 +00:00
James Coxhead 2dfcb8ed4e Completed delete action 2018-12-02 18:10:03 +00:00
Kenn Jacobsen 8990a8fcb0 Remove the Umbraco core jQuery dependency for macro partials 2018-12-01 09:26:55 +01:00
Stephan 18c382d888 in progress tags 2018-11-30 16:30:59 +01:00
Stephan 3ad0904129 Some benchmarking 2018-11-30 16:30:58 +01:00
James Coxhead a6ab471505 Added delete endpoint. Updated tree controller to use Angular delete view 2018-11-30 14:09:48 +00:00
Warren Buckley b5e12aa29e Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-11-30 08:34:09 +00:00
Mads Rasmussen 704a1ee840 upgrade dev-dependencies 2018-11-30 09:12:58 +01:00
Shannon 6103832b8a Gets index rebuilding working 2018-11-30 12:22:23 +11:00
James Coxhead c3a3f4cf22 Create new relation type 2018-11-29 23:11:03 +00:00
James Coxhead 12d11b7c88 Render create view
Load object types from API
2018-11-29 22:07:17 +00:00
Mads Rasmussen 80afcb64e0 remove bootstrap javascript 2018-11-29 15:10:11 +01:00
Mads Rasmussen 3a839ca1ef don't ship with moments libraries including locales 2018-11-29 14:24:15 +01:00
Mads Rasmussen 45feb9577d get spectrum color picker from npm + get latest version 2018-11-29 13:30:37 +01:00
Mads Rasmussen 9f557d5697 fix color picker model.value 2018-11-29 13:03:43 +01:00
Stephan 2c2873492f Fix merge 2018-11-29 12:48:13 +01:00
Stephan 146bbcec4b Merge branch temp8 into temp8-di2690 2018-11-29 12:38:44 +01:00
Mads Rasmussen 5a33990a74 fix js error in diff + break words 2018-11-29 12:29:52 +01:00
Stephan eb0d2464aa Minor fixes 2018-11-29 12:27:16 +01:00
Mads Rasmussen 89cac781ae fix checkmark when copying password 2018-11-29 11:01:50 +01:00
Mads Rasmussen aa9950ff29 fix assets service 2018-11-29 11:01:21 +01:00
Mads Rasmussen 1daddf484c update npm for packages not running latest 2018-11-29 11:00:09 +01:00
Stephan c6891c6c70 RegisterUnique 2018-11-29 10:35:16 +01:00
Shannon 1767bff255 Quite far revamping the examine dashboard 2018-11-29 16:54:13 +11:00
Shannon afe234e21c better index diag 2018-11-29 14:54:35 +11:00
Shannon 340b8e6cef Latest examine, updates for dashboard, adds UmbracoExamineIndexDiagnostics 2018-11-29 13:55:51 +11:00
Stephan ec3fd890ec Merge pull request #3761 from kjac/v8-fix-move-copy-status-type-ysod
V8: Fix YSODs when moving and copying things in the Settings section
2018-11-28 21:45:15 +01:00
Warren Buckley cbc6a2ddfd Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-11-28 20:18:56 +00:00
Mads Rasmussen 44478201cf update package-lock 2018-11-28 20:47:02 +01:00
Mads Rasmussen e512ba0b8b remove css for jquery-ui 2018-11-28 20:40:40 +01:00
Stephan e9de6c1fc9 Naming is hard 2018-11-28 17:35:12 +01:00
Stephan e42f140a2c Cleanup 2018-11-28 16:57:01 +01:00
Stephan b1651b8c9e Delete legacy code 2018-11-28 16:22:20 +01:00
Stephan 8d49fb3e8b Cleanup and document controller constructors 2018-11-28 16:19:50 +01:00
Mads Rasmussen e4a4a17739 get jquery touch punch from npm 2018-11-28 15:34:51 +01:00
Mads Rasmussen df193987c4 add back jquery-ui and remove jquery-migrate 2018-11-28 15:18:14 +01:00
Mads Rasmussen d0d44bf542 remove unused treepicker overlay 2018-11-28 14:54:01 +01:00
Mads Rasmussen 6fc38b1d12 fix tooltip and overlay calculations 2018-11-28 14:53:39 +01:00
Mads Rasmussen 350bfb3461 remove keypress shorthand 2018-11-28 14:52:49 +01:00
Mads Rasmussen f3d30342b4 change from bind/unbind to on/off 2018-11-28 14:32:30 +01:00
Mads Rasmussen 9c9a05f32c changing from click and focus shorthands 2018-11-28 13:22:30 +01:00
Mads Rasmussen 85d61ee127 remove unused focus search field code 2018-11-28 13:17:08 +01:00
Mads Rasmussen 4e29a3709d upgrade jquery + temp add jquery migrate + temp remove other jquery libraries 2018-11-28 13:16:26 +01:00
Mads Rasmussen f956a035a1 remove jquery validation libraries 2018-11-28 13:12:00 +01:00
Stephan f9a19ada04 IContainer.die.die.die 2018-11-28 12:59:40 +01:00
Stephan 49a0b68b28 IContainer is IRegister+IFactory 2018-11-28 11:05:41 +01:00
Shannon dd571060b9 Starts integrating changes into the Examine mgmt dashboard 2018-11-28 21:02:45 +11:00
Mads Rasmussen 7032f1424d add overlay to tree when infinite editing is open 2018-11-28 10:13:48 +01:00
Shannon 011209bd03 Fixes bool check and member index fields 2018-11-28 19:53:25 +11:00
Shannon 8ba694c4fb more tests 2018-11-28 19:10:43 +11:00
Shannon 6ab5d6ec9f More cleanup, removes options since it was irrelevant 2018-11-28 18:39:03 +11:00
Kenn Jacobsen 9ac3b98acf Add some indents around the various sections of configuration 2018-11-28 07:39:48 +01:00
Shannon 2b05d54fb7 Fixes tests, adds test, renames class 2018-11-28 14:55:05 +11:00
Shannon a7f6985b38 Cleans up the BaseValueSetBuilder 2018-11-28 14:46:45 +11:00
Shannon e3548efed4 Uses IIndexPopulator to populate/rebuild indexes 2018-11-28 14:17:11 +11:00
Kenn Jacobsen d62de961a0 Add a minimum height to the query builder dropdowns 2018-11-27 23:51:14 +01:00
Kenn Jacobsen 8e423d9c75 Sort the dictionary items alphabetically 2018-11-27 22:43:19 +01:00
Kenn Jacobsen 34416d9c0a Change role toggles to checkboxes and restyle the page pickers 2018-11-27 22:11:18 +01:00
Jannik Anker 80f9fed3f3 Pointed "unfinished tasks" link to Github
Link points to open tasks with v8 label. Not sure if "known issues" link also has a Github equivalent?
2018-11-27 21:00:03 +01:00
Kenn Jacobsen a9d5d7a271 Merge branch 'temp8' into v8-feature-angular-public-access 2018-11-27 20:09:57 +01:00
Stephan f290065bb6 More container tests 2018-11-27 16:27:16 +01:00
Shannon 3fd0aef18e decouples data lookup from indexers and rebuilding logic 2018-11-28 01:23:02 +11:00
Stephan 80f3fc6864 Get rid of IContainer.GetRegistered 2018-11-27 15:20:26 +01:00
Stephan de8dbe0041 Cleanup 2018-11-27 15:17:26 +01:00
Stephan b365539368 Optimize 2018-11-27 15:15:44 +01:00
Stephan 5d167b49a4 More composition fixes 2018-11-27 15:09:08 +01:00
Mads Rasmussen 23853a43b8 Merge branch 'temp8' into temp8-3110
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/content/umbcontentnodeinfo.directive.js
2018-11-27 14:41:29 +01:00
Stephan c23c7749b4 Composition fixes 2018-11-27 14:04:08 +01:00
Mads Rasmussen 900c8355cc show prompt if node is dirty before opening the doc type editor in infinite editing 2018-11-27 14:04:05 +01:00
Mads Rasmussen 88e6797cac Refresh content when doc type is changed in infinite editing 2018-11-27 11:49:51 +01:00
Robert 2d30e57617 Merge pull request #3778 from umbraco/temp8-3777
When a node is opened through a content picker don't allow editing do…
2018-11-27 11:41:13 +01:00
Warren Buckley 7c5f5e873d Merge pull request #3621 from umbraco/temp8-controllers
Refactor/fix registering controllers
2018-11-27 10:18:28 +00:00
Stephan e47566ca4e Fix build 2018-11-27 10:49:41 +01:00
Stephan 5b111f9629 More composition simplification 2018-11-27 10:37:33 +01:00
Mads Rasmussen c0f5158b03 When a node is opened through a content picker don't allow editing doc type and template 2018-11-27 09:58:57 +01:00
Robert 3f75274283 Merge pull request #3766 from umbraco/temp8-remove-bootstrap-slider
Temp8 remove bootstrap slider
2018-11-27 09:51:08 +01:00
Robert 4f7b9cd61a Update umbrangeslider.directive.js
Updated comment
2018-11-27 09:50:22 +01:00
Warren Buckley 9b39c6ad5b Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-11-27 08:47:04 +00:00
Stephan 13f6469590 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-11-27 09:45:07 +01:00
Stephan d2a474f6ff ContentService should remain public for now 2018-11-27 09:44:08 +01:00
Shannon ff3af8b7a7 Updates the content value set validator + tests 2018-11-27 17:43:56 +11:00
Stephan b8608f1b2e Refactor runtimes, injection and composition 2018-11-26 16:54:32 +01:00
Warren Buckley 0983726b85 Forgot to update the nuspec for the Serilog.Settings.AppSettings nuspec minor version upgrade 2018-11-26 15:17:15 +00:00
Warren Buckley 58b1c9e9fb Update Serilog.Settings.AppSettings Nupkg reference from 2.1.2 to 2.2.2 in Umbraco.Core 2018-11-26 15:03:39 +00:00
Mads Rasmussen f8068801af add docs 2018-11-26 15:12:38 +01:00
Stephan 27c2b3ba5e Cleanup 2018-11-26 14:43:19 +01:00
Mads Rasmussen 99c5fdbd9d Merge branch 'temp8' into temp8-remove-bootstrap-slider 2018-11-26 14:30:17 +01:00
Mads Rasmussen d314361996 delete bootstrap slider javascript and css files 2018-11-26 14:28:51 +01:00
Robert 334fd778dd Merge pull request #3723 from umbraco/temp8-remove-bootstrap-datepicker
Temp8 remove bootstrap datepicker
2018-11-26 14:23:48 +01:00
Mads Rasmussen d6b24ac92d Merge branch 'temp8' into temp8-remove-bootstrap-slider
# Conflicts:
#	src/Umbraco.Web.UI.Client/package.json
2018-11-26 14:10:57 +01:00
Mads Rasmussen a7e53be079 Merge branch 'temp8' into temp8-remove-bootstrap-datepicker 2018-11-26 13:57:52 +01:00
Mads Rasmussen 16b57ac022 remove bootstrap logic from slider controller 2018-11-26 13:46:47 +01:00
Mads Rasmussen e169de917d remove unused config 2018-11-26 11:53:52 +01:00
Mads Rasmussen 6257416c4a remove a bunch of slider prevalues. 2018-11-26 11:38:15 +01:00
Mads Rasmussen f4728e5b83 add custom styling + add pips 2018-11-26 11:18:23 +01:00
Kenn Jacobsen fee968b94e Make MoveOperationStatusType of underlying type byte to fix move and copy YSODs 2018-11-26 08:19:49 +01:00
Bjarke Berg a50a46f9fa Alt of "close dialog" buttons was not functioning on the success message 2018-11-26 07:50:15 +01:00
Bjarke Berg e8818b36bd Media could not be moved to the root (The root was not available as target) 2018-11-26 07:49:32 +01:00
Shannon d3057ea2e1 Merge remote-tracking branch 'origin/temp8' into temp8-3527-indexes-via-code
# Conflicts:
#	src/Umbraco.Core/StringExtensions.cs
2018-11-26 17:34:22 +11:00
Shannon b6790261c4 Adds test 2018-11-26 17:20:15 +11:00
Shannon 9368c71ced fixes tests 2018-11-26 14:43:08 +11:00
Shannon 985572690f IValueSetBuilder implementations 2018-11-26 14:27:44 +11:00
Shannon 977d18e200 Adds IValueIndexer for the RTE 2018-11-26 13:41:32 +11:00
Shannon 9a9fcab0e9 New IValueIndexer and implements it for grid, new UmbracoValueSetBuilder to create the value sets, no more event handling for grid index data 2018-11-26 13:33:15 +11:00
Shannon 4f7de35e04 Adds HtmlValueType 2018-11-26 12:06:38 +11:00
Shannon fba549e59c Creates IUmbracoIndexer to decouple lucene from the indexers 2018-11-26 11:06:11 +11:00
Shannon 75116e1585 Creates IUmbracoIndexer to decouple lucene from the indexers 2018-11-26 11:05:53 +11:00
Kenn Jacobsen 924419f403 Ensure that the dialog always closes on close() 2018-11-25 11:04:28 +01:00
Kenn Jacobsen 4192a11de0 Update ngdoc and en-us translations 2018-11-25 11:02:33 +01:00
Kenn Jacobsen bf50aba515 A bit of styling 2018-11-25 10:54:26 +01:00
Kenn Jacobsen aa581feebb Pick pages for login and error 2018-11-25 10:49:19 +01:00
Kenn Jacobsen bbea0e3e4c Introduce an option to disallow hiding the current dialog 2018-11-25 10:48:56 +01:00
Kenn Jacobsen ed56845bc1 Implement remove protection + add success messages 2018-11-25 09:17:04 +01:00
Kenn Jacobsen 5026bc03e1 A lot more implementation :) 2018-11-24 19:39:15 +01:00
Stephan 8b74453c13 Simplify IContainer.CreateInstance 2018-11-24 16:41:27 +01:00
Stephan 392c9ed83b More filesystem DI fixes 2018-11-24 15:38:00 +01:00
Stephan ce47eae85b Various fixes 2018-11-23 16:19:03 +01:00
Kenn Jacobsen 18258fe487 Initial setup of public access dialog 2018-11-23 16:16:06 +01:00
Stephan 6ffc340725 Merge branch temp8 into temp8-di2690 2018-11-23 14:58:08 +01:00
Bjarke Berg 31b4e944e7 Fixed issue where tree root was not shown when moving items. Pair programming with @mads 2018-11-23 13:57:26 +01:00
James Coxhead 5872b6de22 Prototyped create view 2018-11-22 14:19:40 +00:00
Warren Buckley 7eee1ac76c Merge remote-tracking branch 'origin/temp8-tinymce' into temp8-logviewer 2018-11-22 14:18:58 +00:00
Warren Buckley 9f2043c68d Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-11-22 11:19:56 +00:00
Mads Rasmussen e54e1989ba format numbers to not have decimals 2018-11-22 10:52:48 +01:00
Mads Rasmussen f24a347b01 load in new slider + basic setup 2018-11-22 10:06:00 +01:00
Shannon ff2b2893ae adds notes 2018-11-22 15:23:50 +11:00
Shannon 845a652c1c adds some notes 2018-11-22 14:31:27 +11:00
Shannon c5b36773c9 Removes the old _searchEmail and configures the 'email' field to be of type EmailAddress 2018-11-22 14:26:26 +11:00
Shannon 2965523029 Configures Umbraco indexes via code, updates to latest examine, simplifies some logic 2018-11-22 14:05:36 +11:00
Warren Buckley 880176e91e Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-11-21 13:16:56 +00:00
Shannon 80af1641ae rebuilds empty indexes on startup on managed background thread 2018-11-21 23:14:12 +11:00
Shannon a8db9d19cb adds a __VariesByCulture field 2018-11-21 21:48:39 +11:00
Shannon 1721f37c43 Gets variant data being indexed and fixes how the __Raw fields are processed 2018-11-21 20:36:15 +11:00
Shannon 62e99aaed5 removes usages of singleton in ExamineComponent 2018-11-21 17:04:20 +11:00
James Coxhead 738b42964d Added save action 2018-11-20 23:15:16 +00:00
Mads Rasmussen d754aa94c0 Merge branch 'temp8' into temp8-remove-bootstrap-datepicker 2018-11-20 13:18:46 +01:00
Mads Rasmussen b685c04c51 Merge branch 'temp8' into temp8-remove-bootstrap-datepicker 2018-11-20 11:52:02 +01:00
Mads Rasmussen bd23cbed20 null checks clean up debug data 2018-11-19 15:50:11 +01:00
Warren Buckley 1452a702e0 More tests for LogViewer around fetching logs & getting the results we expect back 2018-11-19 14:23:07 +00:00
Warren Buckley 28fa60ea46 Fix when querying logs with invalid log level passed in as a string filter - now checks its valid/part of the enum 2018-11-19 14:22:29 +00:00
Stephan e41790b886 Add IContainer tests 2018-11-19 15:16:55 +01:00
Stephan b69cbf0c53 Remove RegisterOrdered requirement from IContainer 2018-11-19 15:10:35 +01:00
Mads Rasmussen 0f07e6830d delete bootstrap datepicker files 2018-11-19 14:56:27 +01:00
Stephan 199e09c789 Remove named services support requirement from IContainer 2018-11-19 14:52:55 +01:00
Stephan 87a64b7406 Refactor filesystems (again) 2018-11-19 14:40:59 +01:00
Mads Rasmussen 301cc00e10 use flatpickr in query builder 2018-11-19 14:29:35 +01:00
Mads Rasmussen d6bd5e7e85 change query builder dropdowns to umb dropdowns 2018-11-19 14:14:37 +01:00
Mads Rasmussen 477a9bae0e use umb dropdown instead of boostrap dropdown in permissions context menu 2018-11-19 13:15:28 +01:00
Mads Rasmussen 138895d5e7 use umb dropdown component for actions menu 2018-11-19 12:48:31 +01:00
Mads Rasmussen 5e4770fd8c use umbraco components instead of bootstrap for button groups 2018-11-19 12:47:30 +01:00
Mads Rasmussen 24913128d1 add option to show a caret in a umb-button 2018-11-19 12:42:27 +01:00
Stephan 3960791bf2 Simplify CollectionBuilderBase, no more named services 2018-11-18 11:05:39 +01:00
Stephan 5b39e5e5c7 Fix typo in ReflectionUtilities 2018-11-18 11:05:14 +01:00
Stefano Chiodino e2455b14d9 Don't serialise null template id to 0. Use empty string instead as null doesn't work in this case. 2018-11-17 10:59:26 +00:00
Warren Buckley f6b0b35ff7 Couple more tests for logviewer 2018-11-16 15:16:18 +00:00
Warren Buckley c62f25c9a8 Adds two more new tests - perisistance with the saved search file & checking log counts are what we expect 2018-11-16 14:26:56 +00:00
Warren Buckley 1d093b4ecb Im clearly not with it today - heres that missing unit test 2018-11-16 13:46:24 +00:00
Warren Buckley b8409cdd2e Forgot to commit the test class file in previous commit
But now we have our first test running, checking that it failed & it now passes as expected
2018-11-16 13:44:29 +00:00
Warren Buckley d9dc32edcb Adds in example log file & JSON saved search file
Unit test class preps/copies files in setup/teardown as needed
2018-11-16 13:32:43 +00:00
Warren Buckley b1244dfa1b Update JsonLogViewer & undelrying base class to support setting path to log files & path to search file - so can be used in testing 2018-11-16 13:20:21 +00:00
Mads Rasmussen e84cbc7e19 wip swap out bootstrap datepicker for flatpickr 2018-11-16 14:07:41 +01:00
Warren Buckley b22ae2cf9f Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-11-16 12:55:04 +00:00
James Coxhead d019ba81f3 Get relation names 2018-11-15 22:34:43 +00:00
James Coxhead 10f6f8df90 Show relations in edit view 2018-11-15 22:22:15 +00:00
Dave Woestenborghs 818e9f8b4c 3417 - don't use legacy action for create method 2018-11-15 15:28:35 +01:00
Stefano Chiodino 470585b50d Fix some more tests that were counting on defaulting to 0 2018-11-15 08:01:54 +00:00
Stefano Chiodino cc8cb96140 The change to nullable expands to even more neighbors... 2018-11-15 07:23:09 +00:00
Stefano Chiodino 8275050dee Comes to terms that we are now using nullables...spread the word to all other types that use a template ID one way or another. 2018-11-15 06:48:25 +00:00
Warren Buckley 23c4f88ce7 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-11-14 10:09:49 +00:00
Stefano Chiodino 6dd260a825 Update DocumentRepositoryTest.cs 2018-11-13 16:20:11 +00:00
Stefano Chiodino 8183f32399 Update DocumentRepository.cs 2018-11-13 16:18:40 +00:00
Stefano Chiodino 7c971b8366 Update DocumentRepository.cs 2018-11-13 16:17:45 +00:00
Warren Buckley 8f6af7b41e Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-11-13 15:08:17 +00:00
Stephan aa621f687e Refactor/fix registering controllers 2018-11-13 10:07:30 +01:00
James Jackson-South a8fc62cf42 Optimize Guid.Combine and HexString generation. 2018-11-12 16:22:33 +00:00
Stefano Chiodino 4a4a897ab1 Find that DB schema isn't happy with TemplateId being zero, using nullable instead 2018-11-08 16:46:12 +00:00
James Jackson-South bee1cd571a Merge branch 'temp8' of https://github.com/JimBobSquarePants/Umbraco-CMS into temp8 2018-11-08 16:31:44 +00:00
James Jackson-South 78b7bb6a22 Recreate benchmark project and update deps Fix #3561 2018-11-08 15:33:14 +00:00
Stefano Chiodino ccd6711a8a cleanup 2018-11-08 14:30:01 +00:00
Stefano Chiodino 2e3cf979d3 #3544: Fix IFileService resolution (now it runs and seem functional) 2018-11-08 13:57:59 +00:00
Kenn Jacobsen 04d6704766 Change badge color from boolean (alert=true/false) to string (type=warning/error) 2018-11-08 14:56:43 +01:00
Kenn Jacobsen 75e1c9a0ae Merge branch 'v8-feature-content-app-badge' of https://github.com/kjac/Umbraco-CMS into v8-feature-content-app-badge 2018-11-08 14:28:33 +01:00
Kenn Jacobsen 355447d4e2 Merge branch 'temp8' into v8-feature-content-app-badge 2018-11-08 14:28:16 +01:00
Stefano Chiodino 993972fa62 #3544: change template reference for its ID (WIP: it builds) 2018-11-08 13:24:34 +00:00
Warren Buckley 5cc4370dc1 Fix log message templates to not use single quotes - as not helpful for searching with logviewer 2018-11-08 13:09:26 +00:00
Warren Buckley 1d5ae45b06 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-11-08 09:58:56 +00:00
Dave Woestenborghs 271e01262f #3434 set correct labels 2018-11-07 10:53:23 +01:00
Dave Woestenborghs b25413abcd #3434 show indication on designer that property is varied by culture 2018-11-07 10:47:13 +01:00
Dave Woestenborghs 7bfce6e428 #3434 refactored toggle functions 2018-11-07 10:39:11 +01:00
Dave Woestenborghs ecb4e00516 #3434 changed checkboxes on member property settings to toggles 2018-11-07 10:31:16 +01:00
Dave Woestenborghs 110ecc5fda #3434 use toggle for mandatory validation on property type settings and made a better distinction between mandatory and custom validation 2018-11-07 10:09:04 +01:00
Dave Woestenborghs d0908895dd #3434 removed usage of subview-classes 2018-11-07 09:48:31 +01:00
Warren Buckley a5e9ce515f Merge branch 'temp8' into temp8-logviewer 2018-11-06 11:46:46 +00:00
Warren Buckley 21be52c60a Merge branch 'temp8' into temp8-logviewer 2018-11-06 08:43:39 +00:00
Warren Buckley 7091658a3b Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-11-02 15:34:09 +00:00
Warren Buckley 2f6e66184f Adds UmbracoFeatures to the Composition to allow user components to do something like this - composition.Features().Disabled.Controllers.Add<LogViewerTreeController>() 2018-11-02 15:33:43 +00:00
Warren Buckley c5b7543e54 Update to pass dates through correctly 2018-11-02 15:32:37 +00:00
Warren Buckley 7a23fdc1ea Update logic for pre-flight check 2018-11-02 11:09:59 +00:00
Warren Buckley 758eea479d Move the logic for checking can view logs out to a bool so it can be reused in the other API method calls 2018-11-01 16:24:48 +00:00
Warren Buckley 398134251e Add in some TODO notes to pickup from next time I get time to hack on this 2018-11-01 16:19:18 +00:00
Warren Buckley 24a6aecd73 Adds in a new API endpoint to get the size of logs - which will determine to display a warning message if the filesize is too big to read (to help prevent the CPU & memory being eaten up & killing the site) 2018-11-01 16:14:03 +00:00
Warren Buckley ef30c1f005 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-11-01 09:16:04 +00:00
Warren Buckley 39bb4f3a1e Merge branch 'temp8' into temp8-logviewer 2018-10-31 14:33:40 +00:00
Warren Buckley 569241eba3 Bumped [Tree] attribute type finder tests to 22 as now there is a new tree for log viewer 2018-10-31 11:18:55 +00:00
Warren Buckley bce6375300 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-10-31 11:11:29 +00:00
Warren Buckley 56f1637631 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-10-30 15:59:33 +00:00
Warren Buckley ee8da06638 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-10-30 12:47:18 +00:00
Warren Buckley 1c9a960f3d Remove the date picker ranges - as not sure how to do the UI/UX best for this 2018-10-30 12:46:54 +00:00
Warren Buckley 436a6df917 Fix up log viewer - if viewing all log items & filterExpression is null or emtpy string return all log items 2018-10-30 12:33:28 +00:00
Warren Buckley 45e892a4b1 Now that developer section is no more - update the routes to use 'settings' 2018-10-29 14:41:14 +00:00
Warren Buckley f2667210b7 Add in chartjs & angular wrapper lib into the gulp to ensure they get copied over from node_modules 2018-10-29 11:15:37 +00:00
Warren Buckley dce485bc6f Adds chartjs & the angular wrapper lib to package.json now that bower has been removed 2018-10-29 10:41:58 +00:00
Warren Buckley 5b1e7e9b3d Merge remote-tracking branch 'origin/temp8' into temp8-logviewer
# Conflicts:
#	src/Umbraco.Core/Constants-Applications.cs
#	src/Umbraco.Web.UI.Client/bower.json
2018-10-29 10:34:23 +00:00
Dave Woestenborghs 397b3ca69f #3434 use toggle for varying by culture on property settings dialog in content type designer 2018-10-29 11:02:53 +01:00
James Coxhead 06d19f2735 Load relation type edit view 2018-10-28 19:04:00 +00:00
James Coxhead 083de95311 Stubbed out relation type controller and resource 2018-10-27 23:37:08 +01:00
James Coxhead 6b19ab3b46 Prototyped edit view 2018-10-27 22:04:47 +01:00
Lars-Erik Aabech 752ae16c1b Merge pull request #5 from lars-erik/castle-compatibility-cleanup
Changes needed for compatibility with other containers. (Castle Windsor used as representative selection)
2018-10-26 21:58:28 +02:00
Lars-Erik Aabech c967d6a0fc Makes Container.CreateInstance into an extension 2018-10-26 21:14:19 +02:00
Stephan eee7222e0b Refactor filesystems 2018-10-26 16:06:45 +02:00
Stephan 1644434ea7 Cleanup controller factories 2018-10-26 16:06:45 +02:00
Stephan a12778fd94 Cleanup IContainer 2018-10-26 16:06:45 +02:00
Stephan 246b9e5af8 Cleanup 2018-10-26 16:06:45 +02:00
Stephan 2b1ba45801 Cleanup, refactor components 2018-10-26 16:06:45 +02:00
Stephan d7adf63a62 Cleanup UmbracoContext registration 2018-10-26 16:06:45 +02:00
Stephan d1e377bc38 Cleanup BootFailedException 2018-10-26 16:06:45 +02:00
Stephan d3a894b7a3 Add package-lock.json back 2018-10-26 16:06:45 +02:00
Stephan 9958436f3b Merge branch 'temp8-di2690' into temp8-di2690c 2018-10-26 16:06:27 +02:00
Stephan a4c81b269f Merge branch temp8 into temp8-di2690 2018-10-26 15:10:20 +02:00
Stephan 4dac5cc7a2 Merge branch temp8-di2690 into temp8-di2690c 2018-10-25 11:25:55 +02:00
Stephan 5c077c3e5d Fix merge 2018-10-25 11:04:49 +02:00
Stephan 8af1da3661 Merge branch temp8 into temp8-di2690 2018-10-25 10:59:49 +02:00
Stephan 0687677718 Fix merge 2018-10-25 10:57:57 +02:00
Lars-Erik Aabech ccd3354b8a Revert "Wrapping server messenger factory to avoid re-registering for now."
This reverts commit 1198191e05.
2018-10-24 21:06:52 +02:00
Kenn Jacobsen abcdfc27c5 Add a white border around the badge to make it stand out if it overlaps the app icon 2018-10-24 20:15:17 +02:00
Kenn Jacobsen 634c2072ca Add optional alert color 2018-10-24 15:49:35 +02:00
Kenn Jacobsen 25718dbe5a Add content app badges 2018-10-24 12:05:25 +02:00
Lars-Erik Aabech 026f10f38a Register instance by name 2018-10-23 21:31:20 +02:00
Stephan d71c879374 Merge branch temp8 into temp8-di2690 2018-10-23 18:01:52 +02:00
Lars-Erik Aabech fbd73dd596 Revert "REVIEW/FIX: Just removing placeholder IApplicationTreeService and ISectionService registrations until we figure defaulting."
This reverts commit 57d22a87c0.
2018-10-22 23:21:27 +02:00
Lars-Erik Aabech ae88932bb8 Revert "Virtualizing registration of the cache helper"
This reverts commit 04944f2c0c.
2018-10-21 12:38:01 +02:00
Lars-Erik Aabech 8894df919e Should not have package-lock in git 2018-10-21 12:37:14 +02:00
Lars-Erik Aabech 8664f90167 Merge remote-tracking branch 'fork/temp8-u4-11427-remove-propertyinjection' into castle-compatibility-cleanup
# Conflicts:
#	src/Umbraco.Tests/Models/MediaXmlTest.cs
2018-10-16 19:44:48 +02:00
Warren Buckley 92aa41fe33 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-10-10 16:42:44 +01:00
Stephan 0d5bf5e9c6 Merge branch 'temp8' into temp8-di2690 2018-10-09 23:03:03 +02:00
Warren Buckley 3c747a1be6 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer
# Conflicts:
#	src/Umbraco.Web.UI/config/trees.Release.config
#	src/Umbraco.Web.UI/config/trees.config
2018-10-09 13:34:19 +01:00
Stephan a9e0f90ef0 Fix merge 2018-10-08 19:27:32 +02:00
Stephan 66d931490e Merge branch temp8 into temp8-di2690 2018-10-08 19:22:20 +02:00
Warren Buckley 0dcbc9f303 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-10-04 15:15:20 +01:00
Warren Buckley 5084c82ac7 Suggestion after talking with Stephane for some refactorings 2018-10-04 15:13:56 +01:00
Warren Buckley 45b5cb0257 Move the tree from developer section to settings section - as we say goodbye to the developer section 2018-10-03 17:43:42 +01:00
Warren Buckley cb166526dc Merge remote-tracking branch 'origin/temp8' into temp8-logviewer
# Conflicts:
#	src/Umbraco.Web.UI.Client/package-lock.json
2018-10-03 16:49:37 +01:00
Warren Buckley 01c3585bd8 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-09-30 21:56:17 +01:00
Shannon beb325eacf oops got a couple versions wrong 2018-09-28 15:01:47 +10:00
Shannon 8e45bcf23f changes targetFramework in web.config 2018-09-28 14:34:39 +10:00
Shannon 40dc49ed47 updates nuspecs 2018-09-28 14:27:03 +10:00
Shannon 4b07305dc5 Update HtmlAgilityPack 2018-09-28 14:10:45 +10:00
Shannon 2514a59e93 Latest MS libs for benchmark project 2018-09-28 14:00:03 +10:00
Shannon 6843da790c Latest MS libs for benchmark project 2018-09-28 13:57:48 +10:00
Shannon ba1a9c3758 Updates to latest compatible CodeAnalysis & DotNetCompilerPlatform libs 2018-09-28 13:54:20 +10:00
Shannon 332ad6349d Updates latest newtonsoft.json 2018-09-28 12:59:12 +10:00
Shannon 42e48426e4 Updates other MS libs: ValueTuple, Dataflow, Reflection.Metadata 2018-09-28 12:44:17 +10:00
Shannon a0cc788f27 Updates to latest Image Processor versions 2018-09-28 12:24:16 +10:00
Shannon aecf96d74d Updates to latest MVC, WebApi and Owin 2018-09-28 12:19:34 +10:00
Shannon c75938076e reinstalls all packages flagged as 'requiresReinstallation' 2018-09-28 11:54:05 +10:00
Shannon cebbcb711a csproj, etc... updates for 452 (and 462 for benchmark proj) 2018-09-28 11:29:56 +10:00
Warren Buckley e0414414d7 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-09-27 10:14:57 +01:00
Warren Buckley 168f4d33d3 Update failing test - as the numkber of trees has increased (Added the Log Viewer tree controller & type attribute) 2018-09-26 18:24:40 +01:00
Warren Buckley e92563ffd8 Merge remote-tracking branch 'origin/temp8' into temp8-logviewer (Diff from temp8 branch & ChartJS stuff merged in together now)
# Conflicts:
#	src/Umbraco.Web.UI.Client/bower.json
2018-09-26 15:37:05 +01:00
Warren Buckley 964dd0374d Makes SavedSearches Get, Add & Delete methods virtual - as you may only want to implement the GetLogs but NOT the GetSavedSearch method for example 2018-09-24 13:12:30 +01:00
Warren Buckley 23245a578a Merge remote-tracking branch 'origin/temp8' into temp8-logviewer 2018-09-20 11:03:38 +01:00
Warren Buckley 2ed048e4e1 Improves logic for single word search to use Message Like expression - Thanks Dan Booth
Co-authored-by: Dan Booth <dan@diplo.co.uk>
Co-authored-by: Warren Buckley <warren@umbraco.com>
2018-09-19 21:22:10 +01:00
Warren Buckley b54998f0af Adds 'lq' aka Log Query Search querystring to be ignored for reloading the view & controller for the log viewer search 2018-09-19 15:03:34 +01:00
Warren Buckley 9f5fe7ddfe Adds some logic if we get 0 results back and the search expression contains no spaces (we retry with a message like filter)
Moves some of the logic into methods - as we end up reusing it
2018-09-18 21:50:31 +01:00
Warren Buckley 1931011152 Adds in confirmation delete dialog for saved searches 2018-09-14 15:25:55 +01:00
Warren Buckley 2f9459f296 Adds in functionality to remove items from the saved searches - Thanks Dan Booth
Co-authored-by: Dan Booth <dan@diplo.co.uk>
Co-authored-by: Warren Buckley <warren@umbraco.com>
2018-09-14 15:17:12 +01:00
Warren Buckley 78b8e78761 Merge branch 'temp8' into temp8-logviewer 2018-09-14 13:49:27 +01:00
Warren Buckley 33fae0cd40 Fixup the back button to remove the lq querystring 2018-09-13 11:53:40 +01:00
Warren Buckley 2a0d73220a Merge branch 'temp8' into temp8-logviewer 2018-09-13 11:45:53 +01:00
Warren Buckley 9f484d0fe2 Update the overview page to link through to the search page and read the lq (log query) querystring 2018-09-13 11:30:50 +01:00
Warren Buckley 5bbe17af54 Start work on getting an overview page that will be entry point with shiny graphs and numbers before jumping over to search page 2018-09-12 22:46:58 +01:00
Warren Buckley 603a1c7814 Log property is now Duration as opposed to TimingDuration (A few diff logtypes that store ms all use same prop name of Duration) 2018-09-12 21:49:59 +01:00
Warren Buckley 6bee3a421f Make search page full width & remove some variables & func's in controller that is no longer needed (as will move to an overview/welcome type dashboard) 2018-09-12 21:46:22 +01:00
Warren Buckley 385bc9c770 Rename overview to search (so I can start maming this view focus only on searching) 2018-09-12 21:22:40 +01:00
Warren Buckley bad002b58a Same feature in Dan Booth's Log Viewer for Find Log message in Search places (Thx Dan Booth) 2018-09-12 16:57:03 +01:00
Warren Buckley a3a95c0f9d Makes the special links to find related values not buttons but simplier links with search icon (Thx Dan Booth) 2018-09-12 16:53:17 +01:00
Warren Buckley 142a319776 Adds full RAW timestamp to properties table (Thx Dan Booth) 2018-09-12 16:52:32 +01:00
Warren Buckley 756e0bbbe1 Update Machine name column in main table to take some less space (Thx Dan Booth) 2018-09-12 16:52:04 +01:00
Warren Buckley 1839c5b3a8 Wraps search input field with ng-form and updates button to submit so that we can then allow users to hit enter key to perform a search 2018-09-12 16:49:31 +01:00
Warren Buckley 3886d47c57 Forgot to add the WebAPI method for PostSavedSearch 2018-09-12 16:47:36 +01:00
Warren Buckley 962bdcf1b4 Remove dupe code 2018-09-12 16:38:35 +01:00
Warren Buckley 630a8af217 Adds in some example SQL like style queries 2018-09-12 16:30:10 +01:00
Warren Buckley 57a7cf3903 We can now save a query to the JSON file on disk now - for our cheap persistence layer 2018-09-12 16:14:42 +01:00
Warren Buckley 4501368cc3 Adds in UI for new overlay to add a logviewer saved search - will need to add API method in C# and AngularJS Resource etc 2018-09-12 14:38:43 +01:00
Warren Buckley 0933443cb3 Adds in new API endpoint that get the saved search - our default implmentation gets them from a JSON file off disk
* If the API call fails then we load in some defaults
* The GetSavedSearches is Abstract so along with the GetLogs the GetSavedSearches could be custom implemented if it needed to come from a DB or some other location for dev's needs
2018-09-12 11:35:51 +01:00
Warren Buckley c3cfee7b2c Need to use the EscapleLikeExpression method instead for the fallback check 2018-09-12 11:33:19 +01:00
Stephan 24b08c7a9b Merge branch temp8 into temp8-di2690 2018-09-12 12:01:18 +02:00
Warren Buckley d38e4a0442 Adds in fallback logic to do a search on @Message which is the rendered message template along with a SQL like. Thanks Diplo aka Dan Booth
@Message like '%find me%'
2018-09-11 15:06:35 +01:00
Warren Buckley 851c11153f Merge remote-tracking branch 'origin/temp8-MOAR-LOGGING' into temp8-logviewer 2018-09-11 09:18:11 +01:00
Warren Buckley 6d7fcb7d64 Adds buttons to find logs with a request number OR with a namespace/sourcecontext 2018-09-10 15:23:41 +01:00
Warren Buckley 0844cb15e0 Adds a clear/reset cross button in search box
Adds @MessageTemplate when listing out properties
Makes the dropdown level filter to be same as badges in main log list
2018-09-10 14:44:07 +01:00
Warren Buckley 53bdef68f4 * Click on a message template in right column - searches for it
* Show more button - to list out more/all message templates
* Get the variant style dropdown to work & display example queries
2018-09-10 11:23:48 +01:00
Warren Buckley c7bff0f9ff Update csproj after recent merge from MOAR logging branch 2018-09-10 11:22:32 +01:00
Warren Buckley 64384dc8b3 Merge remote-tracking branch 'origin/temp8-MOAR-LOGGING' into temp8-logviewer 2018-09-10 10:31:16 +01:00
Warren Buckley ce83e25390 Adds in a little better CSS styling for the error ex message block than a massive RED background
Starts work on getting the dropdown for some example queries setup
2018-09-10 10:30:23 +01:00
Warren Buckley 8cd28a62ea Rename CommonLogMessage to LogTemplate 2018-09-10 09:40:21 +01:00
Lars-Erik Aabech 4ffcdf6943 Replaced base controller factory with one using the container o:) 2018-09-09 22:58:19 +02:00
Lars-Erik Aabech 57d22a87c0 REVIEW/FIX: Just removing placeholder IApplicationTreeService and ISectionService registrations until we figure defaulting. 2018-09-09 22:58:06 +02:00
Lars-Erik Aabech 1418d3124d Registering IdentityMapperProfile as a Profile as well 2018-09-09 22:57:37 +02:00
Lars-Erik Aabech b4b09bc116 Changes to allow using container from third party tests 2018-09-09 22:57:04 +02:00
Lars-Erik Aabech 1198191e05 Wrapping server messenger factory to avoid re-registering for now. 2018-09-09 22:55:37 +02:00
Lars-Erik Aabech 236a755f78 Registration changes for LI when registereing transients.
Can now boot backoffice and can log in when using LightInject.
Before this, the automapper profiles weren't there on the container even if registered.
These changes seem to have solved it.
No real proof or testing back and forth, but it makes LI work...

# Conflicts:
#	src/Umbraco.Web/Runtime/WebRuntimeComponent.cs
2018-09-09 22:55:00 +02:00
Lars-Erik Aabech 04944f2c0c Virtualizing registration of the cache helper
# Conflicts:
#	src/Umbraco.Core/Runtime/CoreRuntime.cs
#	src/Umbraco.Web/Runtime/WebRuntime.cs
2018-09-09 22:52:35 +02:00
Lars-Erik Aabech 51c4962477 Registering lightinject with itself again due to mapper collection builder.
It now fails becuse it doesn't support last registered as default ootb when instantiating cachehelper.
Castle fails on missing mapper collection builder when examine starts indexing.
2018-09-09 22:48:59 +02:00
Lars-Erik Aabech 6bb507037b Initializer interface for components. Supports both reflected and injected versions for now. 2018-09-09 22:48:08 +02:00
Lars-Erik Aabech 97318ace1d MediaFileSystem created with reflection due to chicken and egg situation with registration 2018-09-09 22:47:51 +02:00
Lars-Erik Aabech ee654d0896 Profiles should implement a base class. Castle hiccups. :) 2018-09-09 22:47:33 +02:00
Lars-Erik Aabech 9da750c5c9 Support registering named singleton 2018-09-09 22:46:14 +02:00
Lars-Erik Aabech bc80affcf1 Dictionary params & error handling 2018-09-09 22:45:09 +02:00
Warren Buckley c403df1990 Update to Common Log Messages - it now returns all unique message templates and their counts
In the UI we display the total count of unique but use LimitTo AngularJS filter to continue to display 10 items
Returning all items so that we have a way to show the next 10 items or similar
2018-09-07 21:43:44 +01:00
Stephan 7e68f4724f Fix merge 2018-09-07 09:32:42 +02:00
Stephan 725fe61f91 Merge branch temp8 into temp8-di2690 2018-09-06 16:22:13 +02:00
Warren b4164521f7 Update UI for logviewer - toggle sort order by clicking table header name for timestamp 2018-09-04 13:16:01 +01:00
Warren ab3c5d4d52 Adds in same UI from user overview filters - to add dropdown list of checkboxes to filter by log levels 2018-09-03 21:30:16 +01:00
Warren 96d76c211c Adds in support for log level filtering - rather than using expressions 2018-09-03 21:29:13 +01:00
Warren 20cf8a7637 Create a base class - so we can have the GetLogs implemented by 3rd party devs. Say from Azure Table Storage for example 2018-08-31 21:57:51 +01:00
Stephan 70d93d4668 Merge branch temp8 into temp8-di2690 2018-08-31 08:47:01 +02:00
Warren b15e8a13db * Attempt to get date picker components setup
* Output ex nicer
* Add log level colours to badges
* Output date in friendlier format
2018-08-30 16:26:11 +01:00
Warren c3fa12be6e Exception needs to be a string as Serilog cant easily convert JSON serialised EX back to proper exceptions so we call ToString on it instead 2018-08-30 16:24:34 +01:00
Warren 04f7b14702 * Click to toggle row to see the log properties & ex if present
* Toggle timestamp order by ascending or descending
2018-08-30 14:27:31 +01:00
Warren 08618b653c Gets the rough wrieframe to use real API data now
* List number of total errors
* Pie Chart of log level counts
* Message counts
* Log items with paging & searching
2018-08-30 12:42:43 +01:00
Warren cce70f139c Changed to LogViewer as Logs in solution refers to AuditLogs so this makes it more explicit 2018-08-30 09:59:53 +01:00
Stephan 557bea5f95 Move LightInjectExtensions to proper space 2018-08-30 09:30:49 +02:00
Warren e4c7609675 Fixes paging and uses the same Serilog Expression filtering when setting up loggers to query the same LogEvents loaded into memory
* StartsWith(SourceContext, 'Umbraco.Core')
* StartsWith(SourceContext, 'Umbraco.Core') and @MessageTemplate='[Timing {TimingId}] {EndMessage} ({TimingDuration}ms)'
* @MessageTemplate='[Timing {TimingId}] {EndMessage} ({TimingDuration}ms)' and TimingDuration > 1000
2018-08-29 19:11:20 +01:00
Warren cc915d6ef1 Adds in URL to WebAPI/Editor to Umbraco.Sys global JS object 2018-08-29 19:01:26 +01:00
Warren 38e8feb588 Renames LogsController to LogViewerController to be more explicit only as we have a LogController already for audit logs 2018-08-29 18:42:12 +01:00
Warren fcf8290df9 Update WebAPI method for GetLogs so that we can test out some Expression filter queries in POSTMAN 2018-08-29 18:37:37 +01:00
Stephan 6692f3e7b7 Post-merge fixes 2018-08-29 19:02:35 +02:00
Stephan fed9e27332 Revert "Get rid of container TryGetInstance"
This reverts commit 00b1dda2fe.
2018-08-29 18:50:08 +02:00
Stephan 31a356d98e Merge branch temp8 into temp8-di2690 2018-08-29 12:15:39 +02:00
Warren 424ae7bb91 WIP to open a range of log files 2018-08-28 21:12:38 +01:00
Warren 4ce33c4e3d Updates signature with start/end date and prep for returning paginated logs items 2018-08-28 18:30:58 +01:00
Warren 50e3f84759 As new extension method - to set order by descending or ascending with a property 2018-08-28 18:29:05 +01:00
Warren fbd48b0bd7 Merge commit 'a151829b265b2b6def44b6df76668657469941f6' into temp8-logviewer
# Conflicts:
#	src/Umbraco.Web.UI.Client/bower.json
2018-08-28 14:53:00 +01:00
Warren 152ddbd252 Adds LogViewerComponent & registers singleton in DI (3rd party devs will have to disable this component & register their own implementation)
Get some more of the basic WebAPI stubs fleshed out to get some data to start using in the UI layer
2018-08-28 14:48:54 +01:00
Warren 3e75c69f10 Merge branch 'temp8-serilog' into temp8-logviewer 2018-08-28 11:27:11 +01:00
Warren df13af9dc2 Attempt to get a WebAPI Controller setup 2018-08-27 20:05:59 +01:00
Warren cae468eaeb Some rough untested POC code to read JSON log file from disk 2018-08-27 20:05:17 +01:00
Stephan 2319617fed Cleanup LightInjectContainer 2018-08-27 18:09:10 +02:00
Stephan 00b1dda2fe Get rid of container TryGetInstance 2018-08-27 18:08:59 +02:00
Stephan e8dfca5635 Merge branch temp8 into temp8-di2690 2018-08-27 10:19:41 +02:00
Warren cb5dca5544 More rough UI work - to figure out how it should look or work 2018-08-24 15:02:38 +01:00
Warren fbba60a56b Super rough - WIP UI/layout with a working chart with fake data 2018-08-24 12:58:50 +01:00
Warren 4d66b21084 Adds in chart.js Angular Wrapper lib 2018-08-24 12:57:59 +01:00
Warren 1a89fea816 Adds a Logs Tree controller in the Developer section 2018-08-24 10:53:53 +01:00
Stephan f0241a91b2 Post-merge 2018-07-31 14:51:56 +02:00
Stephan 2c66cdc102 Merge branch temp8 into temp8-di2690 2018-07-31 14:50:01 +02:00
Stephan 865d3f6e30 Cleanup and Fix DI 2018-07-30 16:16:10 +02:00
Stephan ec95017e2c Cleanup DI 2018-07-30 14:29:54 +02:00
Stephan 970d0e3324 Merge branch temp8 into temp8-di2690 2018-07-30 14:05:26 +02:00
Lars-Erik Aabech ce490a4c5b Adding null check to avoid nullref exception on 292 in WebSecurity during install. Still getting nullref on line 115 during install. 2018-07-28 01:12:14 +02:00
Lars-Erik Aabech c885f850e9 Container should be registered with itself 2018-07-28 01:05:07 +02:00
Lars-Erik Aabech caa2802c16 Moved creation of container into ContainerFactory 2018-07-27 21:21:21 +02:00
Stephan f7a599b607 Merge branch temp8 into temp8-di2690 2018-07-26 09:59:52 +02:00
Stephan 0eb1ba56a4 Comments 2018-07-23 12:19:26 +02:00
Stephan 6d40269ade More cleanup 2018-07-23 11:08:33 +02:00
Stephan d2376bf4e3 Cleanup registrations 2018-07-23 08:56:08 +02:00
Stephan a00f2f0bb9 Refactor, fix collection builders, fix tests 2018-07-21 10:47:29 +02:00
Stephan 981152b693 Move IContainer extension methods 2018-07-20 16:39:39 +02:00
Stephan 97da0829a2 Refactor collection builders for IContainer 2018-07-20 16:36:46 +02:00
Stephan 5836cd05cb Abstract container (in progress) 2018-07-20 15:45:01 +02:00
Stephan 5a1bba8a8d Merge branch 'temp8' into temp8-di2690 2018-07-20 11:31:35 +02:00
Stephan 9e9a0d301f Cleanup and Refactor 2018-07-20 09:49:05 +02:00
Stephan e5f09a1420 Fix SqlTemplates concurrency 2018-07-19 15:05:55 +02:00
Stephan fded7db542 Merge branch temp8 into temp8-di 2018-07-18 10:46:42 +02:00
Stephan 77083f259d WIP 2018-07-16 14:03:41 +02:00
Stephan 9341278492 Cleanup CacheHelper 2018-07-13 12:11:00 +02:00
Stephan 68d9b19f65 Merge branch temp8 into temp8-di 2018-07-12 19:24:24 +02:00
Stephan f678c72c4d DisabledCacheHelper, LightInjectContainer 2018-07-06 18:52:23 +02:00
Stephan 60d73c55d0 Cleanup IContainer 2018-07-06 18:37:35 +02:00
Stephan eb8b3965b8 Split UmbracoModule, UmbracoInjectedModule 2018-07-06 18:37:07 +02:00
Stephan 57d7888740 Merge branch temp8 into temp8-di 2018-07-06 17:49:02 +02:00
Stephan 049ff7d882 Merge branch 'temp8' into temp8-u4-11227 2018-06-29 14:29:23 +02:00
Stephan 9bc8ace8db TEMP 2018-06-29 13:17:46 +02:00
Stephan 3bd7eedf03 Merge branch 'temp8-u4-11427-remove-propertyinjection' of https://github.com/lars-erik/Umbraco-CMS into temp8-u4-11227 2018-06-29 09:10:32 +02:00
Lars-Erik Aabech 91a5605341 MembershipHelper presumably working without property injection.
(But OMG! there's nearly no test coverage of Umbraco.Web :O )
2018-06-28 23:28:22 +02:00
Lars-Erik Aabech 3d2810e6b1 Fixes constructor dependency conondrum for MediaFileSystem. It is Completely Broken (tm). Need to review whole lifetime & registration of it. 2018-06-28 22:38:38 +02:00
Lars-Erik Aabech 5f2ec566b7 Merge branch 'temp8' into temp8-u4-11427-remove-propertyinjection 2018-06-26 00:37:08 +02:00
Lars-Erik Aabech 49e9514609 Added "Slow" category to several fixtures, cutting test time in half for most regression runs. 2018-06-26 00:33:38 +02:00
Lars-Erik Aabech 3a7d7e370e MediaFileSystem now purely injected.
A bit messy, and probably leaves quite a bit of dead / useless code around that should be deleted.
Needs some manual testing.
2018-06-26 00:26:57 +02:00
Lars-Erik Aabech 34390dec12 Almost got MediaFileSystem in container. 2018-06-20 22:00:41 +02:00
Lars-Erik Aabech 590765e9c6 Tests build >< 2018-06-20 20:00:34 +02:00
Lars-Erik Aabech db2ad87784 Removed named service reference from repo ctors. Now registered with factory method that looks up services by name instead. 2018-06-20 19:57:42 +02:00
Lars-Erik Aabech 7af04b0a2f Tests pass again 2018-06-19 19:59:12 +02:00
Lars-Erik Aabech ea9ab66ba7 Removed an extra using LI. :) 2018-06-19 18:59:57 +02:00
Lars-Erik Aabech e4aca5f5d8 Several property injections removed from Mvc artifacts and base classes 2018-06-19 18:53:25 +02:00
Lars-Erik Aabech 0e37b3b61b ScopeEventDispatcherTest needs IServiceContainer to be registered. 2018-06-19 18:19:10 +02:00
Lars-Erik Aabech e3d77fb012 Current.Container abstracted. Builds, but fails for collection builder tests. 2018-06-16 13:13:29 +02:00
Lars-Erik Aabech 9b1bd3be60 UmbracoModule parameterless ctor removed.
More notes / fixme.
2018-06-14 19:14:39 +02:00
Lars-Erik Aabech a8c5cd425d DataTypeValidateAttribute now uses bastard injection.
Notes on the UmbracoModule.
Need to abstract resolving via Current.Container to remove LightInject refs.
2018-06-14 18:46:25 +02:00
Lars-Erik Aabech 4c201bcaaa HttpModules able to get injection. UmbracoModule + rest (if implemented) gets dependencies injected through ContainerUmbracoModule. 2018-06-12 23:12:44 +02:00
Shannon 0aa930d1c9 manifest dashboard code 2018-02-23 11:00:03 +10:00
7272 changed files with 418674 additions and 671423 deletions
+24 -1
View File
@@ -8,10 +8,33 @@ root = true
# Use 4 spaces as indentation
[*]
insert_final_newline = true
end_of_line = crlf
indent_style = space
indent_size = 4
# Trim trailing whitespace, limited support.
# https://github.com/editorconfig/editorconfig/wiki/Property-research:-Trim-trailing-spaces
trim_trailing_whitespace = true
csharp_prefer_braces = false : none
[*.{cs,vb}]
dotnet_style_predefined_type_for_locals_parameters_members = true:error
dotnet_naming_rule.private_members_with_underscore.symbols = private_fields
dotnet_naming_rule.private_members_with_underscore.style = prefix_underscore
dotnet_naming_rule.private_members_with_underscore.severity = suggestion
dotnet_naming_symbols.private_fields.applicable_kinds = field
dotnet_naming_symbols.private_fields.applicable_accessibilities = private
dotnet_naming_style.prefix_underscore.capitalization = camel_case
dotnet_naming_style.prefix_underscore.required_prefix = _
# https://github.com/MicrosoftDocs/visualstudio-docs/blob/master/docs/ide/editorconfig-code-style-settings-reference.md
[*.cs]
csharp_style_var_for_built_in_types = true:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = true:suggestion
csharp_prefer_braces = false : none
[*.{js,less}]
trim_trailing_whitespace = false
+170 -144
View File
@@ -1,24 +1,180 @@
Umbraco Cms Build
--
----
# Umbraco Cms Build
# Quick!
## Are you sure?
To build Umbraco, fire PowerShell and move to Umbraco's repository root (the directory that contains `src`, `build`, `README.md`...). There, trigger the build with the following command:
In order to use Umbraco as a CMS and build your website with it, you should not build it yourself. If you're reading this then you're trying to contribute to Umbraco or you're debugging a complex issue.
build\build.ps1
- Are you about to create a pull request for Umbraco?
- Are you trying to get to the bottom of a problem in your existing Umbraco installation?
If the answer is yes, please read on. Otherwise, make sure to head on over [to the download page](https://our.umbraco.com/download) and start using Umbraco CMS as intended.
**Table of contents**
[Building from source](#building-from-source)
* [The quick build](#quick)
* [Build infrastructure](#build-infrastructure)
* [Properties](#properties)
* [GetUmbracoVersion](#getumbracoversion)
* [SetUmbracoVersion](#setumbracoversion)
* [Build](#build)
* [Build-UmbracoDocs](#build-umbracodocs)
* [Verify-NuGet](#verify-nuget)
* [Cleaning up](#cleaning-up)
[Azure DevOps](#azure-devops)
[Quirks](#quirks)
* [Powershell quirks](#powershell-quirks)
* [Git quirks](#git-quirks)
## Building from source
Did you read ["Are you sure"](#are-you-sure)?
### Quick!
To build Umbraco, fire up PowerShell and move to Umbraco's repository root (the directory that contains `src`, `build`, `LICENSE.md`...). There, trigger the build with the following command:
build/build.ps1
By default, this builds the current version. It is possible to specify a different version as a parameter to the build script:
You might run into [Powershell quirks](#powershell-quirks).
build\build.ps1 7.6.44
### Build Infrastructure
Valid version strings are defined in the `Set-UmbracoVersion` documentation below.
The Umbraco Build infrastructure relies on a PowerShell object. The object can be retrieved with:
## PowerShell Quirks
$ubuild = build/build.ps1 -get
The object exposes various properties and methods that can be used to fine-grain build Umbraco. Some, but not all, of them are detailed below.
#### Properties
The object exposes the following properties:
* `SolutionRoot`: the absolute path to the solution root
* `VisualStudio`: a Visual Studio object (see below)
* `NuGet`: the absolute path to the NuGet executable
* `Zip`: the absolute path to the 7Zip executable
* `VsWhere`: the absolute path to the VsWhere executable
* `NodePath`: the absolute path to the Node install
* `NpmPath`: the absolute path to the Npm install
The Visual Studio object is `null` when Visual Studio has not been detected (eg on VSTS). When not null, the object exposes the following properties:
* `Path`: Visual Studio installation path (eg some place under `Program Files`)
* `Major`: Visual Studio major version (eg `15` for VS 2017)
* `Minor`: Visual Studio minor version
* `MsBUild`: the absolute path to the MsBuild executable
#### GetUmbracoVersion
Gets an object representing the current Umbraco version. Example:
$v = $ubuild.GetUmbracoVersion()
Write-Host $v.Semver
The object exposes the following properties:
* `Semver`: the semver object representing the version
* `Release`: the main part of the version (eg `7.6.33`)
* `Comment`: the pre release part of the version (eg `alpha02`)
* `Build`: the build number part of the version (eg `1234`)
#### SetUmbracoVersion
Modifies Umbraco files with the new version.
>This entirely replaces the legacy `UmbracoVersion.txt` file. Do *not* edit version infos in files.
The version must be a valid semver version. It can include a *pre release* part (eg `alpha02`) and/or a *build number* (eg `1234`). Examples:
$ubuild.SetUmbracoVersion("7.6.33")
$ubuild.SetUmbracoVersion("7.6.33-alpha.2")
$ubuild.SetUmbracoVersion("7.6.33+1234")
$ubuild.SetUmbracoVersion("7.6.33-beta.5+5678")
#### Build
Builds Umbraco. Temporary files are generated in `build.tmp` while the actual artifacts (zip files, NuGet packages...) are produced in `build.out`. Example:
$ubuild.Build()
Some log files, such as MsBuild logs, are produced in `build.tmp` too. The `build` directory should remain clean during a build.
**Note: web.config**
Building Umbraco requires a clean `web.config` file in the `Umbraco.Web.UI` project. If a `web.config` file already exists, the `pre-build` task (see below) will save it as `web.config.temp-build` and replace it with a clean copy of `web.Template.config`. The original file is replaced once it is safe to do so, by the `pre-packages` task.
#### Build-UmbracoDocs
Builds umbraco documentation. Temporary files are generated in `build.tmp` while the actual artifacts (docs...) are produced in `build.out`. Example:
Build-UmbracoDocs
Some log files, such as MsBuild logs, are produced in `build.tmp` too. The `build` directory should remain clean during a build.
#### Verify-NuGet
Verifies that projects all require the same version of their dependencies, and that NuSpec files require versions that are consistent with projects. Example:
Verify-NuGet
### Cleaning up
Once the solution has been used to run a site, one may want to "reset" the solution in order to run a fresh new site again.
At the very minimum, you want
git clean -Xdf src/Umbraco.Web.UI/App_Data
rm src/Umbraco.Web.UI/web.config
Then, a simple 'Rebuild All' in Visual Studio will recreate a fresh `web.config` but should be quite fast (since it does not really need to rebuild anything).
The `clean` Git command force (`-f`) removes (`-X`, note the capital X) all files and directories (`-d`) that are ignored by Git.
This will leave media files and views around, but in most cases, it will be enough.
To perform a more complete clear, you will want to also delete the content of the media, views, scripts... directories.
The following command will force remove all untracked files and directories, whether they are ignored by Git or not. Combined with `git reset` it can recreate a pristine working directory.
git clean -xdf .
For git documentation see:
* git [clean](<https://git-scm.com/docs/git-clean>)
* git [reset](<https://git-scm.com/docs/git-reset>)
## Azure DevOps
Umbraco uses Azure DevOps for continuous integration, nightly builds and release builds. The Umbraco CMS project on DevOps [is available for anonymous users](https://umbraco.visualstudio.com/Umbraco%20Cms).
DevOps uses the `Build-Umbraco` command several times, each time passing a different *target* parameter. The supported targets are:
* `pre-build`: prepares the build
* `compile-belle`: compiles Belle
* `compile-umbraco`: compiles Umbraco
* `pre-tests`: prepares the tests
* `compile-tests`: compiles the tests
* `pre-packages`: prepares the packages
* `pkg-zip`: creates the zip files
* `pre-nuget`: prepares NuGet packages
* `pkg-nuget`: creates NuGet packages
All these targets are executed when `Build-Umbraco` is invoked without a parameter (or with the `all` parameter). On VSTS, compilations (of Umbraco and tests) are performed by dedicated DevOps tasks. Similarly, creating the NuGet packages is also performed by dedicated DevOps tasks.
Finally, the produced artifacts are published in two containers that can be downloaded from DevOps: `zips` contains the zip files while `nuget` contains the NuGet packages.
>During a DevOps build, some environment `UMBRACO_*` variables are exported by the `pre-build` target and can be reused in other targets *and* in DevOps tasks. The `UMBRACO_TMP` environment variable is used in `Umbraco.Tests` to disable some tests that have issues with DevOps at the moment.
## Quirks
### PowerShell Quirks
There is a good chance that running `build.ps1` ends up in error, with messages such as
>The file ...\build\build.ps1 is not digitally signed. You cannot run this script on the current system. For more information about running scripts and setting execution policy, see about_Execution_Policies.
>The file ...\build.ps1 is not digitally signed. You cannot run this script on the current system. For more information about running scripts and setting execution policy, see about_Execution_Policies.
PowerShell has *Execution Policies* that may prevent the script from running. You can check the current policies with:
@@ -42,7 +198,7 @@ Alternatively, you can do it at machine level, from within an elevated PowerShel
And *then* the script should run. It *might* however still complain about executing scripts, with messages such as:
>Security warning - Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning message. Do you want to run ...\build\build.ps1?
>Security warning - Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning message. Do you want to run ...\build.ps1?
[D] Do not run [R] Run once [S] Suspend [?] Help (default is "D"):
This is usually caused by the scripts being *blocked*. And that usually happens when the source code has been downloaded as a Zip file. When Windows downloads Zip files, they are marked as *blocked* (technically, they have a Zone.Identifier alternate data stream, with a value of "3" to indicate that they were downloaded from the Internet). And when such a Zip file is un-zipped, each and every single file is also marked as blocked.
@@ -51,136 +207,6 @@ The best solution is to unblock the Zip file before un-zipping: right-click the
PS> Get-ChildItem -Recurse *.* | Unblock-File
## Notes
### Git Quirks
Git might have issues dealing with long file paths during build. You may want/need to enable `core.longpaths` support (see [this page](https://github.com/msysgit/msysgit/wiki/Git-cannot-create-a-file-or-directory-with-a-long-path) for details).
# Build
The Umbraco Build solution relies on a PowerShell module. The module needs to be imported into PowerShell. From within Umbraco's repository root:
build\build.ps1 -ModuleOnly
Or the abbreviated form:
build\build.ps1 -mo
Once the module has been imported, a set of commands are added to PowerShell.
## Get-UmbracoBuildEnv
Gets the Umbraco build environment ie NuGet, Semver, Visual Studio, etc. Downloads things that can be downloaded such as NuGet. Examples:
$uenv = Get-UmbracoBuildEnv
Write-Host $uenv.SolutionRoot
&$uenv.NuGet help
The object exposes the following properties:
* `SolutionRoot`: the absolute path to the solution root
* `VisualStudio`: a Visual Studio object (see below)
* `NuGet`: the absolute path to the NuGet executable
* `Zip`: the absolute path to the 7Zip executable
* `VsWhere`: the absolute path to the VsWhere executable
* `NodePath`: the absolute path to the Node install
* `NpmPath`: the absolute path to the Npm install
The Visual Studio object is `null` when Visual Studio has not been detected (eg on VSTS). When not null, the object exposes the following properties:
* `Path`: Visual Studio installation path (eg some place under `Program Files`)
* `Major`: Visual Studio major version (eg `15` for VS 2017)
* `Minor`: Visual Studio minor version
* `MsBUild`: the absolute path to the MsBuild executable
## Get-UmbracoVersion
Gets an object representing the current Umbraco version. Example:
$v = Get-UmbracoVersion
Write-Host $v.Semver
The object exposes the following properties:
* `Semver`: the semver object representing the version
* `Release`: the main part of the version (eg `7.6.33`)
* `Comment`: the pre release part of the version (eg `alpha02`)
* `Build`: the build number part of the version (eg `1234`)
## Set-UmbracoVersion
Modifies Umbraco files with the new version.
>This entirely replaces the legacy `UmbracoVersion.txt` file.
The version must be a valid semver version. It can include a *pre release* part (eg `alpha02`) and/or a *build number* (eg `1234`). Examples:
Set-UmbracoVersion 7.6.33
Set-UmbracoVersion 7.6.33-alpha02
Set-UmbracoVersion 7.6.33+1234
Set-UmbracoVersion 7.6.33-beta05+5678
Note that `Set-UmbracoVersion` enforces a slightly more restrictive naming scheme than what semver would tolerate. The pre release part can only be composed of a-z and 0-9, therefore `alpha033` is considered valid but not `alpha.033` nor `alpha033-preview` nor `RC2` (would need to be lowercased `rc2`).
>It is considered best to add trailing zeroes to pre releases, else NuGet gets the order of versions wrong. So if you plan to have more than 10, but no more that 100 alpha versions, number the versions `alpha00`, `alpha01`, etc.
## Build-Umbraco
Builds Umbraco. Temporary files are generated in `build.tmp` while the actual artifacts (zip files, NuGet packages...) are produced in `build.out`. Example:
Build-Umbraco
Some log files, such as MsBuild logs, are produced in `build.tmp` too. The `build` directory should remain clean during a build.
### web.config
Building Umbraco requires a clean `web.config` file in the `Umbraco.Web.UI` project. If a `web.config` file already exists, the `pre-build` task (see below) will save it as `web.config.temp-build` and replace it with a clean copy of `web.Template.config`. The original file is replaced once it is safe to do so, by the `pre-packages` task.
## Build-UmbracoDocs
Builds umbraco documentation. Temporary files are generated in `build.tmp` while the actual artifacts (docs...) are produced in `build.out`. Example:
Build-UmbracoDocs
Some log files, such as MsBuild logs, are produced in `build.tmp` too. The `build` directory should remain clean during a build.
## Verify-NuGet
Verifies that projects all require the same version of their dependencies, and that NuSpec files require versions that are consistent with projects. Example:
Verify-NuGet
# VSTS
Continuous integration, nightly builds and release builds run on VSTS.
VSTS uses the `Build-Umbraco` command several times, each time passing a different *target* parameter. The supported targets are:
* `pre-build`: prepares the build
* `compile-belle`: compiles Belle
* `compile-umbraco`: compiles Umbraco
* `pre-tests`: prepares the tests
* `compile-tests`: compiles the tests
* `pre-packages`: prepares the packages
* `pkg-zip`: creates the zip files
* `pre-nuget`: prepares NuGet packages
* `pkg-nuget`: creates NuGet packages
All these targets are executed when `Build-Umbraco` is invoked without a parameter (or with the `all` parameter). On VSTS, compilations (of Umbraco and tests) are performed by dedicated VSTS tasks. Similarly, creating the NuGet packages is also performed by dedicated VSTS tasks.
Finally, the produced artifacts are published in two containers that can be downloaded from VSTS: `zips` contains the zip files while `nuget` contains the NuGet packages.
>During a VSTS build, some environment `UMBRACO_*` variables are exported by the `pre-build` target and can be reused in other targets *and* in VSTS tasks. The `UMBRACO_TMP` environment variable is used in `Umbraco.Tests` to disable some tests that have issues with VSTS at the moment.
# Notes
*This part needs to be cleaned up*
Nightlies should use some sort of build number.
We should increment versions as soon as a version is released. Ie, as soon as `7.6.33` is released, we should `Set-UmbracoVersion 7.6.34-alpha` and push.
NuGet / NuSpec consistency checks are performed in tests. We should move it so it is done as part of the PowerShell script even before we try to compile and run the tests.
There are still a few commands in `build` (to build docs, install Git or cleanup the install) that will need to be migrated to PowerShell.
/eof
Git might have issues dealing with long file paths during build. You may want/need to enable `core.longpaths` support (see [this page](https://github.com/msysgit/msysgit/wiki/Git-cannot-create-a-file-or-directory-with-a-long-path) for details).
+187 -97
View File
@@ -1,97 +1,187 @@
_Looking for Umbraco version 8? [Click here](https://github.com/umbraco/Umbraco-CMS/blob/dev-v8/.github/V8_GETTING_STARTED.md) to go to the v8 branch_
# Contributing to Umbraco CMS
👍🎉 First off, thanks for taking the time to contribute! 🎉👍
The following is a set of guidelines for contributing to Umbraco CMS.
These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
Remember, we're a friendly bunch and are happy with whatever contribution you might provide. Below are guidelines for success that we've gathered over the years. If you choose to ignore them then we still love you 💖.
## Contributing code changes
This document gives you a quick overview on how to get started, we will link to in-depth documentation throughout if you need some more background info.
## Guidelines for contributions we welcome
Not all changes are wanted, so on occassion we might close a PR without merging it. We will give you feedback why we can't accept your changes and we'll be nice about it, thanking you for spending your valuable time.
We have [documented what we consider small and large changes](CONTRIBUTION_GUIDELINES.md). Make sure to talk to us before making large changes.
Remember, if an issue is in the `Up for grabs` list or you've asked for some feedback before you sent us a PR, your PR will not be closed as unwanted.
## How do I begin?
Great question! The short version goes like this:
* **Fork** - create a fork of [`Umbraco-CMS` on GitHub](https://github.com/umbraco/Umbraco-CMS)
![Fork the repository](img/forkrepository.png)
* **Clone** - when GitHub has created your fork, you can clone it in your favorite Git tool
![Clone the fork](img/clonefork.png)
* **Build** - build your fork of Umbraco locally as described in [building Umbraco from source code](BUILD.md)
* **Change** - make your changes, experiment, have fun, explore and learn, and don't be afraid. We welcome all contributions and will [happily give feedback](#questions)
* **Commit** - done? Yay! 🎉 It is recommended to create a new branch now and name it after the issue you're fixing, we usually follow the format: `temp-12345`. This means it's a temporary branch for the particular issue you're working on, in this case `12345`
* **Push** - great, now you can push the changes up to your fork on GitHub
* **Create pull request** - exciting! You're ready to show us your changes (or not quite ready, you just need some feedback to progress). GitHub has picked up on the new branch you've pushed and will offer to create a Pull Request. Click that green button and away you go.
![Create a pull request](img/createpullrequest.png)
### Further reading
At this point you might want to [read on about contributing in depth](CONTRIBUTING_DETAILED.md).
### Reviews
You've sent us your first contribution, congratulations! Now what?
The [pull request team](#the-pr-team) can now start reviewing your proposed changes and give you feedback on them. If it's not perfect, we'll either fix up what we need or we can request you to make some additional changes.
We have [a process in place which you can read all about](REVIEW_PROCESS.md). The very abbreviated version is:
- Your PR will get a reply within 48 hours
- An in-depth reply will be added within at most 2 weeks
- The PR will be either merged or rejected within at most 4 weeks
- Sometimes it is difficult to meet these timelines and we'll talk to you
## Styleguides
To be honest, we don't like rules very much. We trust you have the best of intentions and we encourage you to create working code. If it doesn't look perfect then we'll happily help clean it up.
That said, the Umbraco development team likes to follow the hints that ReSharper gives us (no problem if you don't have this installed) and we've added a `.editorconfig` file so that Visual Studio knows what to do with whitespace, line endings, etc.
## The PR team
The pull request team consists of a member of Umbraco HQ, [Sebastiaan](https://github.com/nul800sebastiaan), who gets assistance from the following community members
- [Anders Bjerner](https://github.com/abjerner)
- [Dave Woestenborghs](https://github.com/dawoe)
- [Emma Burstow](https://github.com/emmaburstow)
- [Poornima Nayar](https://github.com/poornimanayar)
These wonderful volunteers will provide you with a first reply to your PR, review and test out your changes and might ask more questions. After that they'll let Umbraco HQ know if everything seems okay.
## Questions?
You can get in touch with [the PR team](#the-pr-team) in multiple ways, we love open conversations and we are a friendly bunch. No question you have is stupid. Any questions you have usually helps out multiple people with the same question. Ask away:
- If there's an existing issue on the issue tracker then that's a good place to leave questions and discuss how to start or move forward
- Unsure where to start? Did something not work as expected? Try leaving a note in the ["Contributing to Umbraco"](https://our.umbraco.com/forum/contributing-to-umbraco-cms/) forum, the team monitors that one closely
## Code of Conduct
This project and everyone participating in it is governed by the [our Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [Sebastiaan Janssen - sj@umbraco.dk](mailto:sj@umbraco.dk).
## Contributing to Umbraco, in depth
There are other ways to contribute, and there's a few more things that you might be wondering about. We will answer the [most common questions and ways to contribute in our detailed documentation](CONTRIBUTING_DETAILED.md).
## Credits
This contribution guide borrows heavily from the excellent work on [the Atom contribution guide](https://github.com/atom/atom/blob/master/CONTRIBUTING.md). A big [#h5yr](http://h5yr.com/) to them!
# Contributing to Umbraco CMS
👍🎉 First off, thanks for taking the time to contribute! 🎉👍
The following is a set of guidelines for contributing to Umbraco CMS.
These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
Remember, we're a friendly bunch and are happy with whatever contribution you might provide. Below are guidelines for success that we've gathered over the years. If you choose to ignore them then we still love you 💖.
**Code of conduct**
This project and everyone participating in it is governed by the [our Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [Sebastiaan Janssen - sj@umbraco.dk](mailto:sj@umbraco.dk).
**Table of contents**
[Contributing code changes](#contributing-code-changes)
* [Guidelines for contributions we welcome](#guidelines-for-contributions-we-welcome)
* [What can I start with?](#what-can-i-start-with)
* [How do I begin?](#how-do-i-begin)
* [Pull requests](#pull-requests)
[Reviews](#reviews)
* [Styleguides](#styleguides)
* [The PR team](#the-pr-team)
* [Questions?](#questions)
[Working with the code](#working-with-the-code)
* [Building Umbraco from source code](#building-umbraco-from-source-code)
* [Working with the source code](#working-with-the-source-code)
* [Making changes after the PR was opened](#making-changes-after-the-pr-was-opened)
* [Which branch should I target for my contributions?](#which-branch-should-i-target-for-my-contributions)
* [Keeping your Umbraco fork in sync with the main repository](#keeping-your-umbraco-fork-in-sync-with-the-main-repository)
## Contributing code changes
This document gives you a quick overview on how to get started.
### Guidelines for contributions we welcome
Not all changes are wanted, so on occassion we might close a PR without merging it. We will give you feedback why we can't accept your changes and we'll be nice about it, thanking you for spending your valuable time.
We have [documented what we consider small and large changes](CONTRIBUTION_GUIDELINES.md). Make sure to talk to us before making large changes.
Remember, if an issue is in the `Up for grabs` list or you've asked for some feedback before you sent us a PR, your PR will not be closed as unwanted.
### What can I start with?
Unsure where to begin contributing to Umbraco? You can start by looking through [these `Up for grabs` issues](https://github.com/umbraco/Umbraco-CMS/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3Acommunity%2Fup-for-grabs+)
### How do I begin?
Great question! The short version goes like this:
* **Fork** - create a fork of [`Umbraco-CMS` on GitHub](https://github.com/umbraco/Umbraco-CMS)
![Fork the repository](img/forkrepository.png)
* **Clone** - when GitHub has created your fork, you can clone it in your favorite Git tool
![Clone the fork](img/clonefork.png)
* **Build** - build your fork of Umbraco locally as described in [building Umbraco from source code](BUILD.md)
* **Change** - make your changes, experiment, have fun, explore and learn, and don't be afraid. We welcome all contributions and will [happily give feedback](#questions)
* **Commit** - done? Yay! 🎉 **Important:** create a new branch now and name it after the issue you're fixing, we usually follow the format: `temp-12345`. This means it's a temporary branch for the particular issue you're working on, in this case `12345`. When you have a branch, commit your changes. Don't commit to `v8/dev`, create a new branch first.
* **Push** - great, now you can push the changes up to your fork on GitHub
* **Create pull request** - exciting! You're ready to show us your changes (or not quite ready, you just need some feedback to progress). GitHub has picked up on the new branch you've pushed and will offer to create a Pull Request. Click that green button and away you go.
![Create a pull request](img/createpullrequest.png)
### Pull requests
The most successful pull requests usually look a like this:
* Fill in the required template
* Include screenshots and animated GIFs in your pull request whenever possible.
* Unit tests, while optional are awesome, thank you!
* New code is commented with documentation from which [the reference documentation](https://our.umbraco.com/documentation/Reference/) is generated
Again, these are guidelines, not strict requirements.
## Reviews
You've sent us your first contribution, congratulations! Now what?
The [pull request team](#the-pr-team) can now start reviewing your proposed changes and give you feedback on them. If it's not perfect, we'll either fix up what we need or we can request you to make some additional changes.
We have [a process in place which you can read all about](REVIEW_PROCESS.md). The very abbreviated version is:
- Your PR will get a reply within 48 hours
- An in-depth reply will be added within at most 2 weeks
- The PR will be either merged or rejected within at most 4 weeks
- Sometimes it is difficult to meet these timelines and we'll talk to you
### Styleguides
To be honest, we don't like rules very much. We trust you have the best of intentions and we encourage you to create working code. If it doesn't look perfect then we'll happily help clean it up.
That said, the Umbraco development team likes to follow the hints that ReSharper gives us (no problem if you don't have this installed) and we've added a `.editorconfig` file so that Visual Studio knows what to do with whitespace, line endings, etc.
### The PR team
The pull request team consists of a member of Umbraco HQ, [Sebastiaan](https://github.com/nul800sebastiaan), who gets assistance from the following community members
- [Anders Bjerner](https://github.com/abjerner)
- [Dave Woestenborghs](https://github.com/dawoe)
- [Emma Burstow](https://github.com/emmaburstow)
- [Poornima Nayar](https://github.com/poornimanayar)
These wonderful volunteers will provide you with a first reply to your PR, review and test out your changes and might ask more questions. After that they'll let Umbraco HQ know if everything seems okay.
### Questions?
You can get in touch with [the PR team](#the-pr-team) in multiple ways, we love open conversations and we are a friendly bunch. No question you have is stupid. Any questions you have usually helps out multiple people with the same question. Ask away:
- If there's an existing issue on the issue tracker then that's a good place to leave questions and discuss how to start or move forward
- Unsure where to start? Did something not work as expected? Try leaving a note in the ["Contributing to Umbraco"](https://our.umbraco.com/forum/contributing-to-umbraco-cms/) forum, the team monitors that one closely
## Working with the code
### Building Umbraco from source code
In order to build the Umbraco source code locally, first make sure you have the following installed.
* Visual Studio 2017 v15.9.7+
* Node v10+
* npm v6.4.1+
The easiest way to get started is to run `build.ps1` which will build both the backoffice (also known as "Belle") and the Umbraco core. You can then easily start debugging from Visual Studio, or if you need to debug Belle you can run `gulp dev` in `src\Umbraco.Web.UI.Client`. See [this page](BUILD.md) for more details.
Alternatively, you can open `src\umbraco.sln` in Visual Studio 2017 (version 15.9.7 or higher, [the community edition is free](https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15) for you to use to contribute to Open Source projects). In Visual Studio, find the Task Runner Explorer (in the View menu under Other Windows) and run the build task under the gulpfile.
![Gulp build in Visual Studio](img/gulpbuild.png)
After this build completes, you should be able to hit `F5` in Visual Studio to build and run the project. A IISExpress webserver will start and the Umbraco installer will pop up in your browser, follow the directions there to get a working Umbraco install up and running.
### Working with the source code
Some parts of our source code are over 10 years old now. And when we say "old", we mean "mature" of course!
There's two big areas that you should know about:
1. The Umbraco backoffice is a extensible AngularJS app and requires you to run a `gulp dev` command while you're working with it, so changes are copied over to the appropriate directories and you can refresh your browser to view the results of your changes.
You may need to run the following commands to set up gulp properly:
```
npm cache clean --force
npm install
npm run build
```
2. "The rest" is a C# based codebase, which is mostly ASP.NET MVC based. You can make changes, build them in Visual Studio, and hit `F5` to see the result.
To find the general areas of something you're looking to fix or improve, have a look at the following two parts of the API documentation.
* [The AngularJS based backoffice files](https://our.umbraco.com/apidocs/ui/#/api) (to be found in `src\Umbraco.Web.UI.Client\src`)
* [The C# application](https://our.umbraco.com/apidocs/csharp/)
### Which branch should I target for my contributions?
We like to use [Gitflow as much as possible](https://jeffkreeftmeijer.com/git-flow/), don't worry if you are not familiar with it. The most important thing you need to know is that when you fork the Umbraco repository, the default branch is set to something, usually `v8/dev`. Whatever the default is, that's where we'd like you to target your contributions.
![Which branch should I target?](img/defaultbranch.png)
### Making changes after the PR was opened
If you make the corrections we ask for in the same branch and push them to your fork again, the pull request automatically updates with the additional commit(s) so we can review it again. If all is well, we'll merge the code and your commits are forever part of Umbraco!
### Keeping your Umbraco fork in sync with the main repository
We recommend you sync with our repository before you submit your pull request. That way, you can fix any potential merge conflicts and make our lives a little bit easier.
Also, if you've submitted a pull request three weeks ago and want to work on something new, you'll want to get the latest code to build against of course.
To sync your fork with this original one, you'll have to add the upstream url, you only have to do this once:
```
git remote add upstream https://github.com/umbraco/Umbraco-CMS.git
```
Then when you want to get the changes from the main repository:
```
git fetch upstream
git rebase upstream/v8/dev
```
In this command we're syncing with the `v8/dev` branch, but you can of course choose another one if needed.
(More info on how this works: [http://robots.thoughtbot.com/post/5133345960/keeping-a-git-fork-updated](http://robots.thoughtbot.com/post/5133345960/keeping-a-git-fork-updated))
-163
View File
@@ -1,163 +0,0 @@
# Contributing in detail
There's more than one way to contribute to Umbraco, there's some more suggestions below.
When contributing code to Umbraco there's plenty of things you'll want to know, skip down to [What should I know before I get started](#what-should-i-know-before-i-get-started) for the answers to your burning questions.
#### Table Of Contents
[How Can I Contribute?](#how-can-i-contribute)
* [Reporting Bugs](#reporting-bugs)
* [Suggesting Enhancements](#suggesting-enhancements)
* [Your First Code Contribution](#your-first-code-contribution)
* [Pull Requests](#pull-requests)
[Styleguides](#styleguides)
[What should I know before I get started?](#what-should-i-know-before-i-get-started)
* [Working with the source code](#working-with-the-source-code)
* [What branch should I target for my contributions?](#what-branch-should-i-target-for-my-contributions)
* [Building Umbraco from source code](#building-umbraco-from-source-code)
* [Keeping your Umbraco fork in sync with the main repository](#keeping-your-umbraco-fork-in-sync-with-the-main-repository)
## How Can I Contribute?
### Reporting Bugs
This section guides you through submitting a bug report for Umbraco CMS. Following these guidelines helps maintainers and the community understand your report 📝, reproduce the behavior 💻 💻, and find related reports 🔎.
Before creating bug reports, please check [this list](#before-submitting-a-bug-report) as you might find out that you don't need to create one. When you are creating a bug report, please [include as many details as possible](#how-do-i-submit-a-good-bug-report). Fill out [the required template](https://github.com/umbraco/Umbraco-CMS/issues/new/choose), the information it asks for helps us resolve issues faster.
> **Note:** If you find a **Closed** issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.
##### Before Submitting A Bug Report
* Most importantly, check **if you can reproduce the problem** in the [latest version of Umbraco](https://our.umbraco.com/download/). We might have already fixed your particular problem.
* It also helps tremendously to check if the issue you're experiencing is present in **a clean install** of the Umbraco version you're currently using. Custom code can have side-effects that don't occur in a clean install.
* **Use the Google**. Whatever you're experiencing, Google it plus "Umbraco" - usually you can get some pretty good hints from the search results, including open issues and further troubleshooting hints.
* If you do find and existing issue has **and the issue is still open**, add a comment to the existing issue if you have additional information. If you have the same problem and no new info to add, just "star" the issue.
Explain the problem and include additional details to help maintainers reproduce the problem. The following is a long description which we've boiled down into a few very simple questions in the issue tracker when you create a new issue. We're listing the following hints to indicate that the most successful reports usually have a lot of this ground covered:
* **Use a clear and descriptive title** for the issue to identify the problem.
* **Describe the exact steps which reproduce the problem** in as many details as possible. For example, start by explaining which steps you took in the backoffice to get to a certain undesireable result, e.g. you created a document type, inherting 3 levels deep, added a certain datatype, tried to save it and you got an error.
* **Provide specific examples to demonstrate the steps**. If you wrote some code, try to provide a code sample as specific as possible to be able to reproduce the behavior.
* **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior.
* **Explain which behavior you expected to see instead and why.**
Provide more context by answering these questions:
* **Can you reproduce the problem** when `debug="false"` in your `web.config` file?
* **Did the problem start happening recently** (e.g. after updating to a new version of Umbraco) or was this always a problem?
* **Can you reliably reproduce the issue?** If not, provide details about how often the problem happens and under which conditions it normally happens.
Include details about your configuration and environment:
* **Which version of Umbraco are you using?**
* **What is the environment you're using Umbraco in?** Is this a problem on your local machine or on a server. Tell us about your configuration: Windows version, IIS/IISExpress, database type, etc.
* **Which packages do you have installed?**
### Suggesting Enhancements
This section guides you through submitting an enhancement suggestion for Umbraco, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion 📝 and find related suggestions 🔎.
Most of the suggestions in the [reporting bugs](#reporting-bugs) section also count for suggesting enhancements.
Some additional hints that may be helpful:
* **Include screenshots and animated GIFs** which help you demonstrate the steps or point out the part of Umbraco which the suggestion is related to.
* **Explain why this enhancement would be useful to most Umbraco users** and isn't something that can or should be implemented as a [community package](https://our.umbraco.com/projects/).
### Your First Code Contribution
Unsure where to begin contributing to Umbraco? You can start by looking through [these `Up for grabs` and issues](https://issues.umbraco.org/issues?q=&project=U4&tagValue=upforgrabs&release=&issueType=&search=search) or on the [new issue tracker](https://github.com/umbraco/Umbraco-CMS/issues?q=is%3Aopen+is%3Aissue+label%3Acommunity%2Fup-for-grabs).
### Pull Requests
The most successful pull requests usually look a like this:
* Fill in the required template
* Include screenshots and animated GIFs in your pull request whenever possible.
* Unit tests, while optional are awesome, thank you!
* New code is commented with documentation from which [the reference documentation](https://our.umbraco.com/documentation/Reference/) is generated
Again, these are guidelines, not strict requirements.
## Making changes after the PR was opened
If you make the corrections we ask for in the same branch and push them to your fork again, the pull request automatically updates with the additional commit(s) so we can review it again. If all is well, we'll merge the code and your commits are forever part of Umbraco!
## Styleguides
To be honest, we don't like rules very much. We trust you have the best of intentions and we encourage you to create working code. If it doesn't look perfect then we'll happily help clean it up.
That said, the Umbraco development team likes to follow the hints that ReSharper gives us (no problem if you don't have this installed) and we've added a `.editorconfig` file so that Visual Studio knows what to do with whitespace, line endings, etc.
## What should I know before I get started?
### Working with the source code
Some parts of our source code is over 10 years old now. And when we say "old", we mean "mature" of course!
There's two big areas that you should know about:
1. The Umbraco backoffice is a extensible AngularJS app and requires you to run a `gulp dev` command while you're working with it, so changes are copied over to the appropriate directories and you can refresh your browser to view the results of your changes.
You may need to run the following commands to set up gulp properly:
```
npm cache clean
npm install -g bower
npm install -g gulp
npm install -g gulp-cli
npm install
gulp build
```
2. "The rest" is a C# based codebase, with some traces of our WebForms past but mostly ASP.NET MVC based these days. You can make changes, build them in Visual Studio, and hit `F5` to see the result.
To find the general areas of something you're looking to fix or improve, have a look at the following two parts of the API documentation.
* [The AngularJS based backoffice files](https://our.umbraco.com/apidocs/ui/#/api) (to be found in `src\Umbraco.Web.UI.Client\src`)
* [The rest](https://our.umbraco.com/apidocs/csharp/)
### What branch should I target for my contributions?
We like to use [Gitflow as much as possible](https://jeffkreeftmeijer.com/git-flow/), don't worry if you are not familiar with it. The most important thing you need to know is that when you fork the Umbraco repository, the default branch is set to something, usually `dev-v7`. Whatever the default is, that's where we'd like you to target your contributions.
![What branch do you want me to target?](img/defaultbranch.png)
### Building Umbraco from source code
In order to build the Umbraco source code locally, first make sure you have the following installed.
* Visual Studio 2017 v15.3+
* Node v10+ (Installed via `build.bat` script. If you already have it installed, make sure you're running at least v10)
* npm v6.4.1+ (Installed via `build.bat` script. If you already have it installed, make sure you're running at least v6.4.1)
The easiest way to get started is to run `build.bat` which will build both the backoffice (also known as "Belle") and the Umbraco core. You can then easily start debugging from Visual Studio, or if you need to debug Belle you can run `gulp dev` in `src\Umbraco.Web.UI.Client`. See [this page](BUILD.md) for more details.
Alternatively, you can open `src\umbraco.sln` in Visual Studio 2017 (version 15.3 or higher, [the community edition is free](https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15) for you to use to contribute to Open Source projects). In Visual Studio, find the Task Runner Explorer (in the View menu under Other Windows) and run the build task under the gulpfile.
![Gulp build in Visual Studio](img/gulpbuild.png)
After this build completes, you should be able to hit `F5` in Visual Studio to build and run the project. A IISExpress webserver will start and the Umbraco installer will pop up in your browser, follow the directions there to get a working Umbraco install up and running.
### Keeping your Umbraco fork in sync with the main repository
We recommend you sync with our repository before you submit your pull request. That way, you can fix any potential merge conflicts and make our lives a little bit easier.
Also, if you've submitted a pull request three weeks ago and want to work on something new, you'll want to get the latest code to build against of course.
To sync your fork with this original one, you'll have to add the upstream url, you only have to do this once:
```
git remote add upstream https://github.com/umbraco/Umbraco-CMS.git
```
Then when you want to get the changes from the main repository:
```
git fetch upstream
git rebase upstream/dev-v7
```
In this command we're syncing with the `dev-v7` branch, but you can of course choose another one if needed.
(More info on how this works: [http://robots.thoughtbot.com/post/5133345960/keeping-a-git-fork-updated](http://robots.thoughtbot.com/post/5133345960/keeping-a-git-fork-updated))
-33
View File
@@ -1,33 +0,0 @@
# Contributing to Umbraco CMS
When youre considering creating a pull request for Umbraco CMS, we will categorize them in two different sizes, small and large.
The process for both sizes is very similar, as [explained in the contribution document](CONTRIBUTING.md#how-do-i-begin).
## Small PRs
Bug fixes and small improvements - can be recognized by seeing a small number of changes and possibly a small number of new files.
Were usually able to handle small PRs pretty quickly. A community volunteer will do the initial review and flag it for Umbraco HQ as “community tested”. If everything looks good, it will be merged pretty quickly [as per the described process](REVIEW_PROCESS.md).
### Up for grabs
Umbraco HQ will regularly mark newly created issues on the issue tracker with the `Up for grabs` tag. This means that the proposed changes are wanted in Umbraco but the HQ does not have the time to make them at this time. These issues are usually small enough to fit in the "Small PRs" category and we encourage anyone to pick them up and help out.
If you do start working on something, make sure leave a small comment on the issue saying something like: "I'm working on this". That way other people stumbling upon the issue know they don't need to pick it up, someone already has.
## Large PRs
New features and large refactorings - can be recognized by seeing a large number of changes, plenty of new files, updates to package manager files (NuGets packages.config, NPMs packages.json, etc.).
We would love to follow the same process for larger PRs but this is not always possible due to time limitations and priorities that need to be aligned. We dont want to put up any barriers, but this document should set the correct expectations.
Please make sure to describe your idea in an issue, it helps to put in mockup screenshots or videos.
If the change makes sense for HQ to include in Umbraco CMS we will leave you some feedback on how wed like to see it being implemented.
If a larger pull request is encouraged by Umbraco HQ, the process will be similar to what is described in the [small PRs process](#small-prs) above, well get feedback to you within 14 days. Finalizing and merging the PR might take longer though as it will likely need to be picked up by the development team to make sure everything is in order. Well keep you posted on the progress.
### Pull request or package?
If it doesnt fit in CMS right now, we will likely encourage you to make it into a package instead. A package is a great way to check out popularity of a feature, learn how people use it, validate good usability and to fix bugs.
Eventually, a package could "graduate" to be included in the CMS.
+11 -2
View File
@@ -2,11 +2,20 @@
- [ ] I have added steps to test this contribution in the description below
If there's an existing issue for this PR then this fixes: <!-- link to the issue here! -->
If there's an existing issue for this PR then this fixes <!-- link to the issue here! -->
### Description
<!-- A description of the changes proposed in the pull-request and how to test these changes -->
<!--
A description of the changes proposed in the pull-request and how to test these changes.
The most successful pull requests usually look a like this:
* Fill in this template with details: what did you do, why did you do it, how can we test the changes?
* Include screenshots and animated GIFs in your pull request whenever possible.
* Unit tests, while optional are awesome, thank you!
While these are guidelines and not strict requirements, they really help us evaluate your PR quicker.
-->
<!-- Thanks for contributing to Umbraco CMS! -->
+40 -51
View File
@@ -1,51 +1,40 @@
[![Build status](https://ci.appveyor.com/api/projects/status/6by6harxtxt0ocdx/branch/dev-v7?svg=true)](https://ci.appveyor.com/project/Umbraco/umbraco-cms-b2cri/branch/dev-v7)
[![pullreminders](https://pullreminders.com/badge.svg)](https://pullreminders.com?ref=badge)
_Looking for Umbraco version 8? [Click here](https://github.com/umbraco/Umbraco-CMS/tree/temp8) to go to the v8 branch_
Umbraco CMS
===========
The friendliest, most flexible and fastest growing ASP.NET CMS, and used by more than 443,000 websites worldwide: [https://umbraco.com](https://umbraco.com)
[![ScreenShot](img/vimeo.png)](https://vimeo.com/172382998/)
## Umbraco CMS
Umbraco is a free open source Content Management System built on the ASP.NET platform. Our mission is to help you deliver delightful digital experiences by making Umbraco friendly, simpler and social.
## Watch an introduction video
[![ScreenShot](https://shop.umbraco.com/images/whatisumbraco.png)](https://umbraco.tv/videos/umbraco-v7/content-editor/basics/introduction/cms-explanation/)
## Umbraco - The Friendly CMS
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 - and 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, right out of the box.
Umbraco is not only loved by developers, but is a content editor's dream. Enjoy intuitive editing tools, media management, responsive views, and approval workflows to send your content live.
Used by more than 443,000 active websites including Carlsberg, Segway, Amazon and Heinz and **The Official ASP.NET and IIS.NET website from Microsoft** ([https://asp.net](https://asp.net) / [https://iis.net](https://iis.net)), you can be sure that the technology is proven, stable and scalable. Backed by the team at Umbraco HQ, and supported by a dedicated community of over 220,000 craftspeople globally, you can trust that Umbraco is a safe choice and is here to stay.
To view more examples, please visit [https://umbraco.com/case-studies-testimonials/](https://umbraco.com/case-studies-testimonials/)
## Why Open Source?
As an Open Source platform, Umbraco is more than just a CMS. We are transparent with our roadmap for future versions, our incremental sprint planning notes are publicly accessible, and community contributions and packages are available for all to use.
## Trying out Umbraco CMS
[Umbraco Cloud](https://umbraco.com/cloud) is the easiest and fastest way to use Umbraco yet, with full support for all your custom .NET code and integrations. You're up and running in less than a minute, and your life will be made easier with automated upgrades and a built-in deployment engine. We offer a free 14-day trial, no credit card needed.
If you want to DIY, you can [download Umbraco](https://our.umbraco.com/download) either as a ZIP file or via NuGet. It's the same version of Umbraco CMS that powers Umbraco Cloud, but you'll need to find a place to host it yourself, and handling deployments and upgrades will be all up to you.
## Community
Our friendly community is available 24/7 at the community hub we call ["Our Umbraco"](https://our.umbraco.com). Our Umbraco features forums for questions and answers, documentation, downloadable plugins for Umbraco, and a rich collection of community resources.
## Contribute to Umbraco
Umbraco is contribution-focused and community-driven. If you want to contribute back to Umbraco, please check out our [guide to contributing](CONTRIBUTING.md).
## 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](https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/.github/CONTRIBUTING.md).
You can comment and report issues on the [github issue tracker](https://github.com/umbraco/Umbraco-CMS/issues).
Since [September 2018](https://umbraco.com/blog/a-second-take-on-umbraco-issue-tracker-hello-github-issues/), the old issue tracker is in read-only mode, but can still be found at [http://issues.umbraco.org](http://issues.umbraco.org).
# [Umbraco CMS](https://umbraco.com) &middot; [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](../LICENSE.md) [![Build status](https://umbraco.visualstudio.com/Umbraco%20Cms/_apis/build/status/Cms%208%20Continuous?branchName=v8/dev)](https://umbraco.visualstudio.com/Umbraco%20Cms/_build?definitionId=75) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md) [![pullreminders](https://pullreminders.com/badge.svg)](https://pullreminders.com?ref=badge)
Umbraco is the friendliest, most flexible and fastest growing ASP.NET CMS, and used by more than 500,000 websites worldwide. Our mission is to help you deliver delightful digital experiences by making Umbraco friendly, simpler and social.
Learn more at [umbraco.com](https://umbraco.com)
<p align="center">
<img src="img/logo.png" alt="Umbraco Logo" />
</p>
See the official [Umbraco website](https://umbraco.com) for an introduction, core mission and values of the product and team behind it.
- [Getting Started](#getting-started)
- [Documentation](#documentation)
- [Community](#join-the-umbraco-community)
- [Contributing](#contributing)
Please also see our [Code of Conduct](CODE_OF_CONDUCT.md).
## Getting Started
[Umbraco Cloud](https://umbraco.com/cloud) is the easiest and fastest way to use Umbraco yet, with full support for all your custom .NET code and integrations. You're up and running in less than a minute, and your life will be made easier with automated upgrades and a built-in deployment engine. We offer a free 14-day trial, no credit card needed.
If you want to DIY, you can [download Umbraco]((https://our.umbraco.com/download)) either as a ZIP file or via NuGet. It's the same version of Umbraco CMS that powers Umbraco Cloud, but you'll need to find a place to host it yourself, and handling deployments and upgrades will be all up to you.
## Documentation
The documentation for Umbraco CMS can be found [on Our Umbraco](https://our.umbraco.com/documentation/). The source for the Umbraco docs is [open source as well](https://github.com/umbraco/UmbracoDocs) and we're happy to look at your documentation contributions.
## Join the Umbraco community
Our friendly community is available 24/7 at the community hub we call ["Our Umbraco"](https://our.umbraco.com/). Our Umbraco features forums for questions and answers, documentation, downloadable plugins for Umbraco, and a rich collection of community resources.
Besides "Our", we all support each other also via Twitter: [Umbraco HQ](https://twitter.com/umbraco), [Release Updates](https://twitter.com/umbracoproject), [#umbraco](https://twitter.com/hashtag/umbraco)
## Contributing
Umbraco is contribution-focused and community-driven. If you want to contribute back to the Umbraco source code, please check out our [guide to contributing](CONTRIBUTING.md).
-25
View File
@@ -1,25 +0,0 @@
# Review process
You're an awesome person and have sent us your contribution in the form of a pull request! It's now time to relax for a bit and wait for our response.
In order to set some expectations, here's what happens next.
## Review process
You will get an initial reply within 48 hours (workdays) to acknowledge that weve seen your PR and well pick it up as soon as we can.
You will get feedback within at most 14 days after opening the PR. Youll most likely get feedback sooner though. Then there are a few possible outcomes:
- Your proposed change is awesome! We merge it in and it will be included in the next minor release of Umbraco
- If the change is a high priority bug fix, we will cherry-pick it into the next patch release as well so that we can release it as soon as possible
- Your proposed change is awesome but needs a bit more work, well give you feedback on the changes wed like to see
- Your proposed change is awesome but.. not something were looking to include at this point. Well close your PR and the related issue (well be nice about it!)
## Are you still available?
We understand you have other things to do and can't just drop everything to help us out.
So if were asking for your help to improve the PR well wait for two weeks to give you a fair chance to make changes. Well ask for an update if we dont hear back from you after that time.
If we dont hear back from you for 4 weeks, well close the PR so that it doesnt just hang around forever. Youre very welcome to re-open it once you have some more time to spend on it.
There will be times that we really like your proposed changes and well finish the final improvements wed like to see ourselves. You still get the credits and your commits will live on in the git repository.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

+164 -145
View File
@@ -1,145 +1,164 @@
*.obj
*.pdb
*.user
*.aps
*.pch
*.vspscc
.DS_Store
._.DS_Store
[Bb]in
[Db]ebug*/
obj/
[Rr]elease*/
_ReSharper*/
_NCrunch_*/
*.ncrunchsolution
*.ncrunchsolution.user
*.ncrunchproject
*.crunchsolution.cache
[Tt]est[Rr]esult*
[Bb]uild[Ll]og.*
*.[Pp]ublish.xml
*.suo
[sS]ource
[sS]andbox
umbraco.config
*.vs10x
App_Data/TEMP/*
[Uu]mbraco/[Pp]resentation/[Uu]mbraco/[Pp]lugins/*
[Uu]mbraco/[Pp]resentation/[Uu]ser[Cc]ontrols/*
[Uu]mbraco/[Pp]resentation/[Ss]cripts/*
[Uu]mbraco/[Pp]resentation/[Ff]onts/*
[Uu]mbraco/[Pp]resentation/[Cc]ss/*
src/Umbraco.Web.UI/[Cc]ss/*
src/Umbraco.Web.UI/App_Code/*
src/Umbraco.Web.UI/App_Data/*
src/Umbraco.Tests/App_Data/*
src/Umbraco.Web.UI/[Mm]edia/*
src/Umbraco.Web.UI/[Mm]aster[Pp]ages/*
src/Umbraco.Web.UI/[Mm]acro[Ss]cripts/*
!src/Umbraco.Web.UI/[Mm]acro[Ss]cripts/[Ww]eb.[Cc]onfig
src/Umbraco.Web.UI/[Xx]slt/*
src/Umbraco.Web.UI/[Ii]mages/*
src/Umbraco.Web.UI/[Ss]cripts/*
src/Umbraco.Web.UI/Web.*.config.transformed
umbraco/presentation/umbraco/plugins/uComponents/uComponentsInstaller.ascx
umbraco/presentation/packages/uComponents/MultiNodePicker/CustomTreeService.asmx
*.ncrunchsolution
src/Umbraco.Tests/config/applications.config
src/Umbraco.Tests/config/trees.config
src/Umbraco.Web.UI/web.config
src/Umbraco.Web.UI/Config/ClientDependency.config
*.orig
src/Umbraco.Tests/config/404handlers.config
src/Umbraco.Web.UI/[Vv]iews/*.cshtml
src/Umbraco.Web.UI/[Vv]iews/*.vbhtml
src/Umbraco.Tests/[Cc]onfig/umbracoSettings.config
src/Umbraco.Web.UI/[Vv]iews/*
src/packages/
src/packages/repositories.config
src/Umbraco.Web.UI/[Ww]eb.config
*.transformed
node_modules
lib-bower
src/Umbraco.Web.UI/[Uu]mbraco/[Ll]ib/*
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/umbraco.*
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/routes.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/app.dev.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/loader.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/loader.dev.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/main.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/app.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/tuning.panel.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/tuning.palettes.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/tuning.loader.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/tuning.front.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/tuning.config.js
src/Umbraco.Web.UI/[Uu]mbraco/[Vv]iews/
src/Umbraco.Web.UI/[Uu]mbraco/[Vv]iews/**/*.js
src/Umbraco.Web.UI/[Uu]mbraco/[Vv]iews/**/*.css
src/Umbraco.Web.UI/[Uu]mbraco/[Vv]iews/**/*.html
src/Umbraco.Web.UI/[Uu]mbraco/[Aa]ssets/*
src/Umbraco.Web.UI.Client/[Bb]uild/*
src/Umbraco.Web.UI.Client/[Bb]uild/[Bb]elle/
src/Umbraco.Web.UI/[Uu]ser[Cc]ontrols/
src/Umbraco.Web.UI.Client/src/[Ll]ess/*.css
src/Umbraco.Web.UI.Client/vwd.webinfo
tools/NDepend/
src/Umbraco.Web.UI/App_Plugins/*
src/*.psess
src/*.vspx
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/routes.js.*
NDependOut/*
*.ndproj
QueryResult.htm
*.ndproj
src/Umbraco.Web.UI/[Uu]mbraco/[Aa]ssets/*
src/Umbraco.Web.UI/[Uu]mbraco/[Ll]ib/*
src/Umbraco.Web.UI/[Uu]mbraco/[Vv]iews/**/*.html
src/Umbraco.Web.UI/[Uu]mbraco/[Vv]iews/**/*.js
src/Umbraco.Web.UI/[Cc]onfig/appSettings.config
src/Umbraco.Web.UI/[Cc]onfig/connectionStrings.config
src/Umbraco.Web.UI/umbraco/plugins/*
src/Umbraco.Web.UI/umbraco/js/init.js
build/ApiDocs/*
build/ApiDocs/Output/*
src/Umbraco.Web.UI.Client/bower_components/*
/src/Umbraco.Web.UI/Umbraco/preview
/src/Umbraco.Web.UI/Umbraco/preview.old
#Ignore Rule for output of generated documentation files from Grunt docserve
src/Umbraco.Web.UI.Client/docs/api
src/*.boltdata/
/src/Umbraco.Web.UI/Umbraco/Js/canvasdesigner.loader.js
/src/Umbraco.Web.UI/Umbraco/Js/canvasdesigner.palettes.js
/src/Umbraco.Web.UI/Umbraco/Js/canvasdesigner.panel.js
/src/Umbraco.Web.UI/Umbraco/Js/canvasdesigner.config.js
/src/Umbraco.Web.UI/Umbraco/Js/canvasdesigner.front.js
src/umbraco.sln.ide/*
src/.vs/
src/Umbraco.Web.UI/umbraco/js/install.loader.js
src/Umbraco.Tests/media
tools/docfx/*
apidocs/_site/*
apidocs/api/*
build/docs.zip
build/ui-docs.zip
build/csharp-docs.zip
.vs/
src/packages/
src/PrecompiledWeb/*
build.out/
build.tmp/
build/Modules/*/temp/
/src/.idea/*
#
# Umbraco Cms Git Ignore
#
# common files
*.obj
*.pdb
*.user
*.aps
*.pch
*.vspscc
*.orig
*.suo
*.vs10x
*.ndproj
*.ignorer.*
# common directories
.DS_Store
._.DS_Store
.vs/
/local/
# build directories
[Bb]in/
[Db]ebug*/
[Rr]elease*/
obj/
# tools
_ReSharper*/
_NCrunch_*/
*.ncrunchsolution
*.ncrunchsolution.user
*.ncrunchproject
*.crunchsolution.cache
tools/NDepend/
[Tt]est[Rr]esult*
[Bb]uild[Ll]og.*
*.[Pp]ublish.xml
[sS]ource
[sS]andbox
umbraco.config
App_Data/TEMP/*
[Uu]mbraco/[Pp]resentation/[Uu]mbraco/[Pp]lugins/*
[Uu]mbraco/[Pp]resentation/[Uu]ser[Cc]ontrols/*
[Uu]mbraco/[Pp]resentation/[Ss]cripts/*
[Uu]mbraco/[Pp]resentation/[Ff]onts/*
[Uu]mbraco/[Pp]resentation/[Cc]ss/*
src/Umbraco.Web.UI/[Cc]ss/*
src/Umbraco.Web.UI/App_Code/*
src/Umbraco.Web.UI/App_Data/*
src/Umbraco.Tests/App_Data/*
src/Umbraco.Web.UI/[Mm]edia/*
src/Umbraco.Web.UI/[Mm]aster[Pp]ages/*
src/Umbraco.Web.UI/[Mm]acro[Ss]cripts/*
!src/Umbraco.Web.UI/[Mm]acro[Ss]cripts/[Ww]eb.[Cc]onfig
src/Umbraco.Web.UI/[Xx]slt/*
src/Umbraco.Web.UI/[Ii]mages/*
src/Umbraco.Web.UI/[Ss]cripts/*
src/Umbraco.Web.UI/Web.*.config.transformed
umbraco/presentation/umbraco/plugins/uComponents/uComponentsInstaller.ascx
umbraco/presentation/packages/uComponents/MultiNodePicker/CustomTreeService.asmx
src/Umbraco.Tests/config/applications.config
src/Umbraco.Tests/config/trees.config
src/Umbraco.Web.UI/web.config
src/Umbraco.Web.UI/[Cc]onfig/ClientDependency.config
src/Umbraco.Web.UI/[Cc]onfig/serilog.config
src/Umbraco.Web.UI/[Cc]onfig/serilog.user.config
src/Umbraco.Tests/config/404handlers.config
src/Umbraco.Web.UI/[Vv]iews/*.cshtml
src/Umbraco.Web.UI/[Vv]iews/*.vbhtml
src/Umbraco.Tests/[Cc]onfig/umbracoSettings.config
src/Umbraco.Web.UI/[Vv]iews/*
src/packages/
src/packages/repositories.config
src/Umbraco.Web.UI/[Ww]eb.config
*.transformed
node_modules
lib-bower
src/Umbraco.Web.UI/[Uu]mbraco/[Ll]ib/*
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/umbraco.*
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/*.loader.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/init.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/routes.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/app.dev.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/loader.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/loader.dev.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/main.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/app.js
src/Umbraco.Web.UI/[Uu]mbraco/[Jj]s/canvasdesigner.*.js
src/Umbraco.Web.UI/[Uu]mbraco/[Vv]iews/
src/Umbraco.Web.UI/[Uu]mbraco/[Vv]iews/**/*.js
src/Umbraco.Web.UI/[Uu]mbraco/[Vv]iews/**/*.css
src/Umbraco.Web.UI/[Uu]mbraco/[Vv]iews/**/*.html
src/Umbraco.Web.UI/[Uu]mbraco/[Aa]ssets/*
src/Umbraco.Web.UI.Client/[Bb]uild/*
src/Umbraco.Web.UI.Client/[Bb]uild/[Bb]elle/
src/Umbraco.Web.UI/[Uu]ser[Cc]ontrols/
src/Umbraco.Web.UI.Client/src/[Ll]ess/*.css
src/Umbraco.Web.UI.Client/vwd.webinfo
src/Umbraco.Web.UI/App_Plugins/*
src/*.psess
src/*.vspx
NDependOut/*
QueryResult.htm
src/Umbraco.Web.UI/[Cc]onfig/appSettings.config
src/Umbraco.Web.UI/[Cc]onfig/connectionStrings.config
src/Umbraco.Web.UI/[Uu]mbraco/plugins/*
build/ApiDocs/*
build/ApiDocs/Output/*
src/Umbraco.Web.UI.Client/bower_components/*
/src/Umbraco.Web.UI/[Uu]mbraco/preview
/src/Umbraco.Web.UI/[Uu]mbraco/preview.old
# ignore rule for clearing out Belle (avoid rebuilding all the time)
preserve.belle
#Ignore Rule for output of generated documentation files from Grunt docserve
src/Umbraco.Web.UI.Client/docs/api
src/*.boltdata/
src/umbraco.sln.ide/*
src/.vs/
src/Umbraco.Web.UI/[Jj]s/*
src/Umbraco.Tests/[Mm]edia
tools/docfx/*
apidocs/_site/*
src/*/project.lock.json
src/.idea/*
apidocs/api/*
build/docs.zip
build/ui-docs.zip
build/csharp-docs.zip
src/packages/
src/PrecompiledWeb/*
# build
build.out/
build.tmp/
build/hooks/
build/temp/
# eof
/src/Umbraco.Web.UI.Client/TESTS-*.xml
/src/ApiDocs/api/*
+12
View File
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
this is Umbraco's NuGet configuration,
content of this file is merged with the system-wide configuration,
at %APPDATA%\NuGet\NuGet.config
-->
<packageSources>
<add key="UmbracoCoreMyGet" value="https://www.myget.org/F/umbracocore/api/v3/index.json" />
<add key="ExamineAppVeyor" value="https://ci.appveyor.com/nuget/examine-f73l6qv0oqfh/" />
</packageSources>
</configuration>
-75
View File
@@ -1,75 +0,0 @@
{
"metadata": [
{
"src": [
{
"files": [
"Umbraco.Core/Umbraco.Core.csproj",
"Umbraco.Web/Umbraco.Web.csproj"
],
"exclude": [
"**/obj/**",
"**/bin/**",
"_site/**"
],
"cwd": "../src"
}
],
"dest": "../apidocs/api",
"filter": "../apidocs/docfx.filter.yml"
}
],
"build": {
"content": [
{
"files": [
"api/**.yml",
"api/index.md"
]
},
{
"files": [
"articles/**.md",
"articles/**/toc.yml",
"toc.yml",
"*.md"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"resource": [
{
"files": [
"images/**"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"overwrite": [
{
"files": [
"**.md"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"globalMetadata": {
"_appTitle": "Umbraco c# Api docs",
"_enableSearch": true,
"_disableContribution": false
},
"dest": "_site",
"template": [
"default", "umbracotemplate"
]
}
}
-62
View File
@@ -1,62 +0,0 @@
version: '{build}'
shallow_clone: true
init:
- ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
build_script:
- cmd: >-
SET SLN=%CD%
SET SRC=%SLN%\src
SET PACKAGES=%SRC%\packages
CD build
SET "release="
FOR /F "skip=1 delims=" %%i IN (UmbracoVersion.txt) DO IF NOT DEFINED release SET "release=%%i"
ECHO "Restoring NuGet into %PACKAGES%"
%SRC%\.nuget\NuGet.exe sources Add -Name MyGetUmbracoCore -Source https://www.myget.org/F/umbracocore/api/v2/ >NUL
%SRC%\.nuget\NuGet.exe restore %SRC%\umbraco.sln -Verbosity Quiet -NonInteractive -PackagesDirectory %PACKAGES%
ECHO Building Release %release% build%APPVEYOR_BUILD_NUMBER%
SET PATH=C:\Program Files (x86)\MSBuild\14.0\Bin;%PATH%
SET MSBUILD="C:\Program Files (x86)\MSBuild\14.0\Bin\MsBuild.exe"
XCOPY "%SRC%\Umbraco.Tests\unit-test-log4net.CI.config" "%SRC%\Umbraco.Tests\unit-test-log4net.config" /Y
%MSBUILD% "%SLN%/src/Umbraco.Tests/Umbraco.Tests.csproj" /consoleloggerparameters:Summary;ErrorsOnly;WarningsOnly /p:NugetPackagesDirectory=%PACKAGES%
build.bat -integration -release:%release% -comment:build%APPVEYOR_BUILD_NUMBER% -nugetfolder:%PACKAGES%
test:
assemblies: src\Umbraco.Tests\bin\Debug\Umbraco.Tests.dll
artifacts:
- path: build\UmbracoCms.*
name: UmbracoFiles
- path: build\msbuild.log
name: BuildLog
deploy:
- provider: AzureBlob
storage_account_name: umbraconightlies
storage_access_key:
secure: bmEMml2SF7QLHULiePa/a01XOeIa2SxJeXuaZ+1R27b+Vb2nNUQVYiPlUyF2cZAFSHI/zO/LekRsVU1rTescGhJjF7SSjKybymI3p+F/OWpwqiu2WfFee1ofXBFx8QHw
container: umbraco-750
artifact: UmbracoFiles
on:
branch: dev-v7
notifications:
- provider: Slack
auth_token:
secure: v2csJi2V5ghR0rPdODK8GJdOGNCA+XaK84iQ9MdPOClqB+VU+40ybdKp6gPirGSH
channel: '#build-umbraco-core'
on_build_success: false
on_build_failure: true
on_build_status_changed: false
-14
View File
@@ -1,14 +0,0 @@
@ECHO OFF
powershell .\build\build.ps1
IF ERRORLEVEL 1 (
GOTO :error
) ELSE (
GOTO :EOF
)
:error
ECHO.
ECHO Cannot run build\build.ps1.
ECHO If this is due to a SecurityError then please refer to BUILD.md for help!
ECHO.
@@ -1,112 +0,0 @@
#
function Build-UmbracoDocs
{
$uenv = Get-UmbracoBuildEnv
$src = "$($uenv.SolutionRoot)\src"
$out = "$($uenv.SolutionRoot)\build.out"
$tmp = "$($uenv.SolutionRoot)\build.tmp"
$buildTemp = "$PSScriptRoot\temp"
$cache = 2
Prepare-Build -keep $uenv
################ Do the UI docs
# get a temp clean node env (will restore)
Sandbox-Node $uenv
Write-Host "Executing gulp docs"
push-location "$($uenv.SolutionRoot)\src\Umbraco.Web.UI.Client"
write "node version is:" > $tmp\belle-docs.log
&node -v >> $tmp\belle-docs.log 2>&1
write "npm version is:" >> $tmp\belle-docs.log 2>&1
&npm -v >> $tmp\belle-docs.log 2>&1
write "executing npm install" >> $tmp\belle-docs.log 2>&1
&npm install >> $tmp\belle-docs.log 2>&1
write "executing bower install" >> $tmp\belle-docs.log 2>&1
&npm install -g bower >> $tmp\belle-docs.log 2>&1
write "installing gulp" >> $tmp\belle-docs.log 2>&1
&npm install -g gulp >> $tmp\belle-docs.log 2>&1
write "installing gulp-cli" >> $tmp\belle-docs.log 2>&1
&npm install -g gulp-cli --quiet >> $tmp\belle-docs.log 2>&1
write "building docs using gulp" >> $tmp\belle-docs.log 2>&1
&gulp docs >> $tmp\belle-docs.log 2>&1
pop-location
Write-Host "Completed gulp docs build"
# fixme - should we filter the log to find errors?
#get-content .\build.tmp\belle-docs.log | %{ if ($_ -match "build") { write $_}}
# change baseUrl
$baseUrl = "https://our.umbraco.com/apidocs/ui/"
$indexPath = "$src/Umbraco.Web.UI.Client/docs/api/index.html"
(Get-Content $indexPath).Replace("origin + location.href.substr(origin.length).replace(rUrl, indexFile)", "'$baseUrl'") `
| Set-Content $indexPath
# restore
Restore-Node
# zip
&$uenv.Zip a -tzip -r "$out\ui-docs.zip" "$src\Umbraco.Web.UI.Client\docs\api\*.*" `
> $null
################ Do the c# docs
Write-Host "Build C# documentation"
# Build the solution in debug mode
# FIXME no only a simple compilation should be enough!
# FIXME we MUST handle msbuild & co error codes!
# FIXME deal with weird things in gitconfig?
#Build-Umbraco -Configuration Debug
Restore-NuGet $uenv
Compile-Umbraco $uenv "Debug" # FIXME different log file!
Restore-WebConfig "$src\Umbraco.Web.UI"
# ensure we have docfx
Get-DocFx $uenv $buildTemp
# clear
$docFxOutput = "$($uenv.SolutionRoot)\apidocs\_site"
if (test-path($docFxOutput))
{
Remove-Directory $docFxOutput
}
# run
$docFxJson = "$($uenv.SolutionRoot)\apidocs\docfx.json"
push-location "$($uenv.SolutionRoot)\build" # silly docfx.json wants this
Write-Host "Run DocFx metadata"
Write-Host "Logging to $tmp\docfx.metadata.log"
&$uenv.DocFx metadata $docFxJson > "$tmp\docfx.metadata.log"
Write-Host "Run DocFx build"
Write-Host "Logging to $tmp\docfx.build.log"
&$uenv.DocFx build $docFxJson > "$tmp\docfx.build.log"
pop-location
# zip
&$uenv.Zip a -tzip -r "$out\csharp-docs.zip" "$docFxOutput\*.*" `
> $null
}
function Get-DocFx($uenv, $buildTemp)
{
$docFx = "$buildTemp\docfx"
if (-not (test-path $docFx))
{
$source = "https://github.com/dotnet/docfx/releases/download/v2.19.2/docfx.zip"
Write-Host "Download DocFx from $source"
Invoke-WebRequest $source -OutFile "$buildTemp\docfx.zip"
&$uenv.Zip x "$buildTemp\docfx.zip" -o"$buildTemp\docfx" -aos > $nul
Remove-File "$buildTemp\docfx.zip"
}
$uenv | add-member -memberType NoteProperty -name DocFx -value "$docFx\docfx.exe"
}
@@ -1,182 +0,0 @@
#
# Get-UmbracoBuildEnv
# Gets the Umbraco build environment
# Downloads tools if necessary
#
function Get-UmbracoBuildEnv
{
# store tools in the module's directory
# and cache them for two days
$path = "$PSScriptRoot\temp"
$src = "$PSScriptRoot\..\..\..\src"
$cache = 2
if (-not (test-path $path))
{
mkdir $path > $null
}
# ensure we have NuGet
$nuget = "$path\nuget.exe"
$source = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
if ((test-path $nuget) -and ((ls $nuget).CreationTime -lt [DateTime]::Now.AddDays(-$cache)))
{
Remove-File $nuget
}
if (-not (test-path $nuget))
{
Write-Host "Download NuGet..."
Invoke-WebRequest $source -OutFile $nuget
}
# ensure we have 7-Zip
$sevenZip = "$path\7za.exe"
if ((test-path $sevenZip) -and ((ls $sevenZip).CreationTime -lt [DateTime]::Now.AddDays(-$cache)))
{
Remove-File $sevenZip
}
if (-not (test-path $sevenZip))
{
Write-Host "Download 7-Zip..."
&$nuget install 7-Zip.CommandLine -configFile "$src\NuGet.config" -OutputDirectory $path -Verbosity quiet
$dir = ls "$path\7-Zip.CommandLine.*" | sort -property Name -descending | select -first 1
$file = ls -path "$dir" -name 7za.exe -recurse
$file = ls -path "$dir" -name 7za.exe -recurse | select -first 1 #A select is because there is tools\7za.exe & tools\x64\7za.exe
mv "$dir\$file" $sevenZip
Remove-Directory $dir
}
# ensure we have vswhere
$vswhere = "$path\vswhere.exe"
if ((test-path $vswhere) -and ((ls $vswhere).CreationTime -lt [DateTime]::Now.AddDays(-$cache)))
{
Remove-File $vswhere
}
if (-not (test-path $vswhere))
{
Write-Host "Download VsWhere..."
&$nuget install vswhere -configFile "$src\NuGet.config" -OutputDirectory $path -Verbosity quiet
$dir = ls "$path\vswhere.*" | sort -property Name -descending | select -first 1
$file = ls -path "$dir" -name vswhere.exe -recurse
mv "$dir\$file" $vswhere
Remove-Directory $dir
}
# ensure we have semver
$semver = "$path\Semver.dll"
if ((test-path $semver) -and ((ls $semver).CreationTime -lt [DateTime]::Now.AddDays(-$cache)))
{
Remove-File $semver
}
if (-not (test-path $semver))
{
Write-Host "Download Semver..."
&$nuget install semver -configFile "$src\NuGet.config" -OutputDirectory $path -Verbosity quiet
$dir = ls "$path\semver.*" | sort -property Name -descending | select -first 1
$file = "$dir\lib\net452\Semver.dll"
if (-not (test-path $file))
{
Write-Error "Failed to file $file"
return
}
mv "$file" $semver
Remove-Directory $dir
}
try
{
[Reflection.Assembly]::LoadFile($semver) > $null
}
catch
{
Write-Error -Exception $_.Exception -Message "Failed to load $semver"
break
}
# ensure we have node
$node = "$path\node-v8.12.0-win-x86"
$source = "http://nodejs.org/dist/v8.12.0/node-v8.12.0-win-x86.7z "
if (-not (test-path $node))
{
Write-Host "Download Node..."
Invoke-WebRequest $source -OutFile "$path\node-v8.12.0-win-x86.7z"
&$sevenZip x "$path\node-v8.12.0-win-x86.7z" -o"$path" -aos > $nul
Remove-File "$path\node-v8.12.0-win-x86.7z"
}
# note: why? node already brings everything we need!
## ensure we have npm
#$npm = "$path\npm.*"
#$getNpm = $true
#if (test-path $npm)
#{
# $getNpm = $false
# $tmpNpm = ls "$path\npm.*" | sort -property Name -descending | select -first 1
# if ($tmpNpm.CreationTime -lt [DateTime]::Now.AddDays(-$cache))
# {
# $getNpm = $true
# }
# else
# {
# $npm = $tmpNpm.ToString()
# }
#}
#if ($getNpm)
#{
# Write-Host "Download Npm..."
# &$nuget install npm -OutputDirectory $path -Verbosity quiet
# $npm = ls "$path\npm.*" | sort -property Name -descending | select -first 1
# $npm.CreationTime = [DateTime]::Now
# $npm = $npm.ToString()
#}
# find visual studio
# will not work on VSO but VSO does not need it
$vsPath = ""
$vsVer = ""
$msBuild = $null
&$vswhere | foreach {
if ($_.StartsWith("installationPath:")) { $vsPath = $_.SubString("installationPath:".Length).Trim() }
if ($_.StartsWith("installationVersion:")) { $vsVer = $_.SubString("installationVersion:".Length).Trim() }
}
if ($vsPath -ne "")
{
$vsVerParts = $vsVer.Split('.')
$vsMajor = [int]::Parse($vsVerParts[0])
$vsMinor = [int]::Parse($vsVerParts[1])
if ($vsMajor -eq 15) {
$msBuild = "$vsPath\MSBuild\$vsMajor.0\Bin"
}
elseif ($vsMajor -eq 14) {
$msBuild = "c:\Program Files (x86)\MSBuild\$vsMajor\Bin"
}
else
{
$msBuild = $null
}
}
$vs = $null
if ($msBuild)
{
$vs = new-object -typeName PsObject
$vs | add-member -memberType NoteProperty -name Path -value $vsPath
$vs | add-member -memberType NoteProperty -name Major -value $vsMajor
$vs | add-member -memberType NoteProperty -name Minor -value $vsMinor
$vs | add-member -memberType NoteProperty -name MsBuild -value "$msBuild\MsBuild.exe"
}
$solutionRoot = Get-FullPath "$PSScriptRoot\..\..\.."
$uenv = new-object -typeName PsObject
$uenv | add-member -memberType NoteProperty -name SolutionRoot -value $solutionRoot
$uenv | add-member -memberType NoteProperty -name VisualStudio -value $vs
$uenv | add-member -memberType NoteProperty -name NuGet -value $nuget
$uenv | add-member -memberType NoteProperty -name Zip -value $sevenZip
$uenv | add-member -memberType NoteProperty -name VsWhere -value $vswhere
$uenv | add-member -memberType NoteProperty -name Semver -value $semver
$uenv | add-member -memberType NoteProperty -name NodePath -value $node
#$uenv | add-member -memberType NoteProperty -name NpmPath -value $npm
return $uenv
}
@@ -1,26 +0,0 @@
#
# Get-UmbracoVersion
# Gets the Umbraco version
#
function Get-UmbracoVersion
{
$uenv = Get-UmbracoBuildEnv
# parse SolutionInfo and retrieve the version string
$filepath = "$($uenv.SolutionRoot)\src\SolutionInfo.cs"
$text = [System.IO.File]::ReadAllText($filepath)
$match = [System.Text.RegularExpressions.Regex]::Matches($text, "AssemblyInformationalVersion\(`"(.+)?`"\)")
$version = $match.Groups[1]
# semver-parse the version string
$semver = [SemVer.SemVersion]::Parse($version)
$release = "" + $semver.Major + "." + $semver.Minor + "." + $semver.Patch
$versions = new-object -typeName PsObject
$versions | add-member -memberType NoteProperty -name Semver -value $semver
$versions | add-member -memberType NoteProperty -name Release -value $release
$versions | add-member -memberType NoteProperty -name Comment -value $semver.PreRelease
$versions | add-member -memberType NoteProperty -name Build -value $semver.Build
return $versions
}
@@ -1,30 +0,0 @@
# finds msbuild
function Get-VisualStudio($vswhere)
{
$vsPath = ""
$vsVer = ""
&$vswhere | foreach {
if ($_.StartsWith("installationPath:")) { $vsPath = $_.SubString("installationPath:".Length).Trim() }
if ($_.StartsWith("installationVersion:")) { $vsVer = $_.SubString("installationVersion:".Length).Trim() }
}
if ($vsPath -eq "") { return $null }
$vsVerParts = $vsVer.Split('.')
$vsMajor = [int]::Parse($vsVerParts[0])
$vsMinor = [int]::Parse($vsVerParts[1])
if ($vsMajor -eq 15) {
$msBuild = "$vsPath\MSBuild\$vsMajor.$vsMinor\Bin"
}
elseif ($vsMajor -eq 14) {
$msBuild = "c:\Program Files (x86)\MSBuild\$vsMajor\Bin"
}
else { return $null }
$msBuild = "$msBuild\MsBuild.exe"
$vs = new-object -typeName PsObject
$vs | add-member -memberType NoteProperty -name Path -value $vsPath
$vs | add-member -memberType NoteProperty -name Major -value $vsMajor
$vs | add-member -memberType NoteProperty -name Minor -value $vsMinor
$vs | add-member -memberType NoteProperty -name MsBuild -value $msBuild
return $vs
}
@@ -1,30 +0,0 @@
#
# Set-UmbracoContinuousVersion
# Sets the Umbraco version for continuous integration
#
# -Version <version>
# where <version> is a Semver valid version
# eg 1.2.3, 1.2.3-alpha, 1.2.3-alpha+456
#
# -BuildNumber <buildNumber>
# where <buildNumber> is a string coming from the build server
# eg 34, 126, 1
#
function Set-UmbracoContinuousVersion
{
param (
[Parameter(Mandatory=$true)]
[string]
$version,
[Parameter(Mandatory=$true)]
[string]
$buildNumber
)
Write-Host "Version is currently set to $version"
$umbracoVersion = "$($version.Trim())-alpha$($buildNumber)"
Write-Host "Setting Umbraco Version to $umbracoVersion"
Set-UmbracoVersion $umbracoVersion
}
@@ -1,117 +0,0 @@
#
# Set-UmbracoVersion
# Sets the Umbraco version
#
# -Version <version>
# where <version> is a Semver valid version
# eg 1.2.3, 1.2.3-alpha, 1.2.3-alpha+456
#
function Set-UmbracoVersion
{
param (
[Parameter(Mandatory=$true)]
[string]
$version
)
$uenv = Get-UmbracoBuildEnv
try
{
[Reflection.Assembly]::LoadFile($uenv.Semver) > $null
}
catch
{
Write-Error "Failed to load $uenv.Semver"
break
}
# validate input
$ok = [Regex]::Match($version, "^[0-9]+\.[0-9]+\.[0-9]+(\-[a-z0-9]+)?(\+[0-9]+)?$")
if (-not $ok.Success)
{
Write-Error "Invalid version $version"
break
}
# parse input
try
{
$semver = [SemVer.SemVersion]::Parse($version)
}
catch
{
Write-Error "Invalid version $version"
break
}
#
$release = "" + $semver.Major + "." + $semver.Minor + "." + $semver.Patch
# edit files and set the proper versions and dates
Write-Host "Update UmbracoVersion.cs"
Replace-FileText "$($uenv.SolutionRoot)\src\Umbraco.Core\Configuration\UmbracoVersion.cs" `
"(\d+)\.(\d+)\.(\d+)(.(\d+))?" `
"$release"
Replace-FileText "$($uenv.SolutionRoot)\src\Umbraco.Core\Configuration\UmbracoVersion.cs" `
"CurrentComment { get { return `"(.+)`"" `
"CurrentComment { get { return `"$($semver.PreRelease)`""
Write-Host "Update SolutionInfo.cs"
Replace-FileText "$($uenv.SolutionRoot)\src\SolutionInfo.cs" `
"AssemblyFileVersion\(`"(.+)?`"\)" `
"AssemblyFileVersion(`"$release`")"
Replace-FileText "$($uenv.SolutionRoot)\src\SolutionInfo.cs" `
"AssemblyInformationalVersion\(`"(.+)?`"\)" `
"AssemblyInformationalVersion(`"$semver`")"
$year = [System.DateTime]::Now.ToString("yyyy")
Replace-FileText "$($uenv.SolutionRoot)\src\SolutionInfo.cs" `
"AssemblyCopyright\(`"Copyright © Umbraco (\d{4})`"\)" `
"AssemblyCopyright(`"Copyright © Umbraco $year`")"
# edit csproj and set IIS Express port number
# this is a raw copy of ReplaceIISExpressPortNumber.exe
# it probably can be achieved in a much nicer way - l8tr
$source = @"
using System;
using System.IO;
using System.Xml;
using System.Globalization;
namespace Umbraco
{
public static class PortUpdater
{
public static void Update(string path, string release)
{
XmlDocument xmlDocument = new XmlDocument();
string fullPath = Path.GetFullPath(path);
xmlDocument.Load(fullPath);
int result = 1;
int.TryParse(release.Replace(`".`", `"`"), out result);
while (result < 1024)
result *= 10;
XmlNode xmlNode1 = xmlDocument.GetElementsByTagName(`"IISUrl`").Item(0);
if (xmlNode1 != null)
xmlNode1.InnerText = `"http://localhost:`" + (object) result;
XmlNode xmlNode2 = xmlDocument.GetElementsByTagName(`"DevelopmentServerPort`").Item(0);
if (xmlNode2 != null)
xmlNode2.InnerText = result.ToString((IFormatProvider) CultureInfo.InvariantCulture);
xmlDocument.Save(fullPath);
}
}
}
"@
$assem = (
"System.Xml",
"System.IO",
"System.Globalization"
)
Write-Host "Update Umbraco.Web.UI.csproj"
add-type -referencedAssemblies $assem -typeDefinition $source -language CSharp
$csproj = "$($uenv.SolutionRoot)\src\Umbraco.Web.UI\Umbraco.Web.UI.csproj"
[Umbraco.PortUpdater]::Update($csproj, $release)
return $semver
}
@@ -1,615 +0,0 @@
# Umbraco.Build.psm1
#
# $env:PSModulePath = "$pwd\build\Modules\;$env:PSModulePath"
# Import-Module Umbraco.Build -Force -DisableNameChecking
#
# PowerShell Modules:
# https://msdn.microsoft.com/en-us/library/dd878324%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
#
# PowerShell Module Manifest:
# https://msdn.microsoft.com/en-us/library/dd878337%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
#
# See also
# http://www.powershellmagazine.com/2014/08/15/pstip-taking-control-of-verbose-and-debug-output-part-5/
. "$PSScriptRoot\Utilities.ps1"
. "$PSScriptRoot\Get-VisualStudio.ps1"
. "$PSScriptRoot\Get-UmbracoBuildEnv.ps1"
. "$PSScriptRoot\Set-UmbracoVersion.ps1"
. "$PSScriptRoot\Set-UmbracoContinuousVersion.ps1"
. "$PSScriptRoot\Get-UmbracoVersion.ps1"
. "$PSScriptRoot\Verify-NuGet.ps1"
. "$PSScriptRoot\Build-UmbracoDocs.ps1"
#
# Prepares the build
#
function Prepare-Build
{
param (
$uenv, # an Umbraco build environment (see Get-UmbracoBuildEnv)
[Alias("k")]
[switch]
$keep = $false
)
Write-Host ">> Prepare Build"
$src = "$($uenv.SolutionRoot)\src"
$tmp = "$($uenv.SolutionRoot)\build.tmp"
$out = "$($uenv.SolutionRoot)\build.out"
# clear
Write-Host "Clear folders and files"
Remove-Directory "$src\Umbraco.Web.UI.Client\bower_components"
if (-not $keep)
{
Remove-Directory "$tmp"
Remove-Directory "$out"
}
if (-not (Test-Path "$tmp"))
{
mkdir "$tmp" > $null
}
if (-not (Test-Path "$out"))
{
mkdir "$out" > $null
}
# ensure proper web.config
$webUi = "$src\Umbraco.Web.UI"
Store-WebConfig $webUi
Write-Host "Create clean web.config"
Copy-File "$webUi\web.Template.config" "$webUi\web.config"
}
function Clear-EnvVar($var)
{
$value = [Environment]::GetEnvironmentVariable($var)
if (test-path "env:$var") { rm "env:$var" }
return $value
}
function Set-EnvVar($var, $value)
{
if ($value)
{
[Environment]::SetEnvironmentVariable($var, $value)
}
else
{
if (test-path "env:$var") { rm "env:$var" }
}
}
function Sandbox-Node
{
param (
$uenv # an Umbraco build environment (see Get-UmbracoBuildEnv)
)
$global:node_path = $env:path
$nodePath = $uenv.NodePath
$gitExe = (get-command git).Source
$gitPath = [System.IO.Path]::GetDirectoryName($gitExe)
$env:path = "$nodePath;$gitPath"
$global:node_nodepath = Clear-EnvVar "NODEPATH"
$global:node_npmcache = Clear-EnvVar "NPM_CONFIG_CACHE"
$global:node_npmprefix = Clear-EnvVar "NPM_CONFIG_PREFIX"
}
function Restore-Node
{
$env:path = $node_path
Set-EnvVar "NODEPATH" $node_nodepath
Set-EnvVar "NPM_CONFIG_CACHE" $node_npmcache
Set-EnvVar "NPM_CONFIG_PREFIX" $node_npmprefix
}
#
# Builds the Belle UI project
#
function Compile-Belle
{
param (
$uenv, # an Umbraco build environment (see Get-UmbracoBuildEnv)
$version # an Umbraco version object (see Get-UmbracoVersion)
)
$tmp = "$($uenv.SolutionRoot)\build.tmp"
$src = "$($uenv.SolutionRoot)\src"
Write-Host ">> Compile Belle"
Write-Host "Logging to $tmp\belle.log"
# get a temp clean node env (will restore)
Sandbox-Node $uenv
push-location "$($uenv.SolutionRoot)\src\Umbraco.Web.UI.Client"
write "node version is:" > $tmp\belle.log
&node -v >> $tmp\belle.log 2>&1
write "npm version is:" >> $tmp\belle.log 2>&1
&npm -v >> $tmp\belle.log 2>&1
write "cleaning npm cache" >> $tmp\belle.log 2>&1
&npm cache clean >> $tmp\belle.log 2>&1
write "installing bower" >> $tmp\belle.log 2>&1
&npm install -g bower >> $tmp\belle.log 2>&1
write "installing gulp" >> $tmp\belle.log 2>&1
&npm install -g gulp >> $tmp\belle.log 2>&1
write "installing gulp-cli" >> $tmp\belle.log 2>&1
&npm install -g gulp-cli --quiet >> $tmp\belle.log 2>&1
write "executing npm install" >> $tmp\belle.log 2>&1
&npm install >> $tmp\belle.log 2>&1
write "executing gulp build for version $version" >> $tmp\belle.log 2>&1
&gulp build --buildversion=$version.Release >> $tmp\belle.log 2>&1
pop-location
# fixme - should we filter the log to find errors?
#get-content .\build.tmp\belle.log | %{ if ($_ -match "build") { write $_}}
# restore
Restore-Node
# setting node_modules folder to hidden
# used to prevent VS13 from crashing on it while loading the websites project
# also makes sure aspnet compiler does not try to handle rogue files and chokes
# in VSO with Microsoft.VisualC.CppCodeProvider -related errors
# use get-item -force 'cos it might be hidden already
write "Set hidden attribute on node_modules"
$dir = get-item -force "$src\Umbraco.Web.UI.Client\node_modules"
$dir.Attributes = $dir.Attributes -bor ([System.IO.FileAttributes]::Hidden)
}
#
# Compiles Umbraco
#
function Compile-Umbraco
{
param (
$uenv, # an Umbraco build environment (see Get-UmbracoBuildEnv)
[string] $buildConfiguration = "Release"
)
$src = "$($uenv.SolutionRoot)\src"
$tmp = "$($uenv.SolutionRoot)\build.tmp"
$out = "$($uenv.SolutionRoot)\build.out"
if ($uenv.VisualStudio -eq $null)
{
Write-Error "Build environment does not provide VisualStudio."
break
}
$toolsVersion = "4.0"
if ($uenv.VisualStudio.Major -eq 15)
{
$toolsVersion = "15.0"
}
Write-Host ">> Compile Umbraco"
Write-Host "Logging to $tmp\msbuild.umbraco.log"
# beware of the weird double \\ at the end of paths
# see http://edgylogic.com/blog/powershell-and-external-commands-done-right/
&$uenv.VisualStudio.MsBuild "$src\Umbraco.Web.UI\Umbraco.Web.UI.csproj" `
/p:WarningLevel=0 `
/p:Configuration=$buildConfiguration `
/p:Platform=AnyCPU `
/p:UseWPP_CopyWebApplication=True `
/p:PipelineDependsOnBuild=False `
/p:OutDir=$tmp\bin\\ `
/p:WebProjectOutputDir=$tmp\WebApp\\ `
/p:Verbosity=minimal `
/t:Clean`;Rebuild `
/tv:$toolsVersion `
/p:UmbracoBuild=True `
> $tmp\msbuild.umbraco.log
# /p:UmbracoBuild tells the csproj that we are building from PS
}
#
# Prepare Tests
#
function Prepare-Tests
{
param (
$uenv # an Umbraco build environment (see Get-UmbracoBuildEnv)
)
$src = "$($uenv.SolutionRoot)\src"
$tmp = "$($uenv.SolutionRoot)\build.tmp"
Write-Host ">> Prepare Tests"
# fixme - idea is to avoid rebuilding everything for tests
# but because of our weird assembly versioning (with .* stuff)
# everything gets rebuilt all the time...
#Copy-Files "$tmp\bin" "." "$tmp\tests"
# data
Write-Host "Copy data files"
if (-Not (Test-Path -Path "$tmp\tests\Packaging" ) )
{
Write-Host "Create packaging directory"
mkdir "$tmp\tests\Packaging" > $null
}
Copy-Files "$src\Umbraco.Tests\Packaging\Packages" "*" "$tmp\tests\Packaging\Packages"
# required for package install tests
if (-Not (Test-Path -Path "$tmp\tests\bin" ) )
{
Write-Host "Create bin directory"
mkdir "$tmp\tests\bin" > $null
}
}
#
# Compiles Tests
#
function Compile-Tests
{
param (
$uenv # an Umbraco build environment (see Get-UmbracoBuildEnv)
)
$src = "$($uenv.SolutionRoot)\src"
$tmp = "$($uenv.SolutionRoot)\build.tmp"
$out = "$tmp\tests"
$buildConfiguration = "Release"
if ($uenv.VisualStudio -eq $null)
{
Write-Error "Build environment does not provide VisualStudio."
break
}
$toolsVersion = "4.0"
if ($uenv.VisualStudio.Major -eq 15)
{
$toolsVersion = "15.0"
}
Write-Host ">> Compile Tests"
Write-Host "Logging to $tmp\msbuild.tests.log"
# beware of the weird double \\ at the end of paths
# see http://edgylogic.com/blog/powershell-and-external-commands-done-right/
&$uenv.VisualStudio.MsBuild "$src\Umbraco.Tests\Umbraco.Tests.csproj" `
/p:WarningLevel=0 `
/p:Configuration=$buildConfiguration `
/p:Platform=AnyCPU `
/p:UseWPP_CopyWebApplication=True `
/p:PipelineDependsOnBuild=False `
/p:OutDir=$out\\ `
/p:Verbosity=minimal `
/t:Build `
/tv:$toolsVersion `
/p:UmbracoBuild=True `
/p:NugetPackages=$src\packages `
> $tmp\msbuild.tests.log
# /p:UmbracoBuild tells the csproj that we are building from PS
}
#
# Cleans things up and prepare files after compilation
#
function Prepare-Packages
{
param (
$uenv # an Umbraco build environment (see Get-UmbracoBuildEnv)
)
Write-Host ">> Prepare Packages"
$src = "$($uenv.SolutionRoot)\src"
$tmp = "$($uenv.SolutionRoot)\build.tmp"
$out = "$($uenv.SolutionRoot)\build.out"
$buildConfiguration = "Release"
# restore web.config
Restore-WebConfig "$src\Umbraco.Web.UI"
# cleanup build
Write-Host "Clean build"
Remove-File "$tmp\bin\*.dll.config"
Remove-File "$tmp\WebApp\bin\*.dll.config"
# cleanup presentation
Write-Host "Cleanup presentation"
Remove-Directory "$tmp\WebApp\umbraco.presentation"
# create directories
Write-Host "Create directories"
mkdir "$tmp\Configs" > $null
mkdir "$tmp\Configs\Lang" > $null
mkdir "$tmp\WebApp\App_Data" > $null
#mkdir "$tmp\WebApp\Media" > $null
#mkdir "$tmp\WebApp\Views" > $null
# copy various files
Write-Host "Copy xml documentation"
cp -force "$tmp\bin\*.xml" "$tmp\WebApp\bin"
Write-Host "Copy transformed configs and langs"
# note: exclude imageprocessor/*.config as imageprocessor pkg installs them
Copy-Files "$tmp\WebApp\config" "*.config" "$tmp\Configs" `
{ -not $_.RelativeName.StartsWith("imageprocessor") }
Copy-Files "$tmp\WebApp\config" "*.js" "$tmp\Configs"
Copy-Files "$tmp\WebApp\config\lang" "*.xml" "$tmp\Configs\Lang"
Copy-File "$tmp\WebApp\web.config" "$tmp\Configs\web.config.transform"
Write-Host "Copy transformed web.config"
Copy-File "$src\Umbraco.Web.UI\web.$buildConfiguration.Config.transformed" "$tmp\WebApp\web.config"
# offset the modified timestamps on all umbraco dlls, as WebResources
# break if date is in the future, which, due to timezone offsets can happen.
Write-Host "Offset dlls timestamps"
ls -r "$tmp\*.dll" | foreach {
$_.CreationTime = $_.CreationTime.AddHours(-11)
$_.LastWriteTime = $_.LastWriteTime.AddHours(-11)
}
# copy libs
Write-Host "Copy SqlCE libraries"
Copy-Files "$src\packages\SqlServerCE.4.0.0.1" "*.*" "$tmp\bin" `
{ -not $_.Extension.StartsWith(".nu") -and -not $_.RelativeName.StartsWith("lib\") }
Copy-Files "$src\packages\SqlServerCE.4.0.0.1" "*.*" "$tmp\WebApp\bin" `
{ -not $_.Extension.StartsWith(".nu") -and -not $_.RelativeName.StartsWith("lib\") }
# copy Belle
Write-Host "Copy Belle"
Copy-Files "$src\Umbraco.Web.UI\umbraco\assets" "*" "$tmp\WebApp\umbraco\assets"
Copy-Files "$src\Umbraco.Web.UI\umbraco\js" "*" "$tmp\WebApp\umbraco\js"
Copy-Files "$src\Umbraco.Web.UI\umbraco\lib" "*" "$tmp\WebApp\umbraco\lib"
Copy-Files "$src\Umbraco.Web.UI\umbraco\views" "*" "$tmp\WebApp\umbraco\views"
}
#
# Creates the Zip packages
#
function Package-Zip
{
param (
$uenv # an Umbraco build environment (see Get-UmbracoBuildEnv)
)
Write-Host ">> Create Zip packages"
$src = "$($uenv.SolutionRoot)\src"
$tmp = "$($uenv.SolutionRoot)\build.tmp"
$out = "$($uenv.SolutionRoot)\build.out"
Write-Host "Zip all binaries"
&$uenv.Zip a -r "$out\UmbracoCms.AllBinaries.$($version.Semver).zip" `
"$tmp\bin\*" `
"-x!dotless.Core.*" `
> $null
Write-Host "Zip cms"
&$uenv.Zip a -r "$out\UmbracoCms.$($version.Semver).zip" `
"$tmp\WebApp\*" `
"-x!dotless.Core.*" "-x!Content_Types.xml" "-x!*.pdb"`
> $null
}
#
# Prepares NuGet
#
function Prepare-NuGet
{
param (
$uenv # an Umbraco build environment (see Get-UmbracoBuildEnv)
)
Write-Host ">> Prepare NuGet"
$src = "$($uenv.SolutionRoot)\src"
$tmp = "$($uenv.SolutionRoot)\build.tmp"
$out = "$($uenv.SolutionRoot)\build.out"
# add Web.config transform files to the NuGet package
Write-Host "Add web.config transforms to NuGet package"
mv "$tmp\WebApp\Views\Web.config" "$tmp\WebApp\Views\Web.config.transform"
# fixme - that one does not exist in .bat build either?
#mv "$tmp\WebApp\Xslt\Web.config" "$tmp\WebApp\Xslt\Web.config.transform"
}
#
# Restores NuGet
#
function Restore-NuGet
{
param (
$uenv # an Umbraco build environment (see Get-UmbracoBuildEnv)
)
$src = "$($uenv.SolutionRoot)\src"
$tmp = "$($uenv.SolutionRoot)\build.tmp"
Write-Host ">> Restore NuGet"
Write-Host "Logging to $tmp\nuget.restore.log"
&$uenv.NuGet restore "$src\Umbraco.sln" -configfile "$src\NuGet.config" > "$tmp\nuget.restore.log"
}
#
# Copies the Azure Gallery script to output
#
function Prepare-AzureGallery
{
param (
$uenv # an Umbraco build environment (see Get-UmbracoBuildEnv)
)
$src = "$($uenv.SolutionRoot)\src"
$tmp = "$($uenv.SolutionRoot)\build.tmp"
$out = "$($uenv.SolutionRoot)\build.out"
$psScript = "$($uenv.SolutionRoot)\build\azuregalleryrelease.ps1"
Write-Host ">> Copy azuregalleryrelease.ps1 to output folder"
Copy-Item $psScript $out
}
#
# Creates the NuGet packages
#
function Package-NuGet
{
param (
$uenv, # an Umbraco build environment (see Get-UmbracoBuildEnv)
$version # an Umbraco version object (see Get-UmbracoVersion)
)
$src = "$($uenv.SolutionRoot)\src"
$tmp = "$($uenv.SolutionRoot)\build.tmp"
$out = "$($uenv.SolutionRoot)\build.out"
$nuspecs = "$($uenv.SolutionRoot)\build\NuSpecs"
Write-Host ">> Create NuGet packages"
# see https://docs.microsoft.com/en-us/nuget/schema/nuspec
# note - warnings about SqlCE native libs being outside of 'lib' folder,
# nothing much we can do about it as it's intentional yet there does not
# seem to be a way to disable the warning
&$uenv.NuGet Pack "$nuspecs\UmbracoCms.Core.nuspec" `
-Properties BuildTmp="$tmp" `
-Version $version.Semver.ToString() `
-Symbols -Verbosity quiet -outputDirectory $out
&$uenv.NuGet Pack "$nuspecs\UmbracoCms.nuspec" `
-Properties BuildTmp="$tmp" `
-Version $version.Semver.ToString() `
-Verbosity quiet -outputDirectory $out
}
#
# Builds Umbraco
#
function Build-Umbraco
{
[CmdletBinding()]
param (
[string]
$target = "all",
[string]
$buildConfiguration = "Release"
)
$target = $target.ToLowerInvariant()
Write-Host ">> Build-Umbraco <$target> <$buildConfiguration>"
Write-Host "Get Build Environment"
$uenv = Get-UmbracoBuildEnv
Write-Host "Get Version"
$version = Get-UmbracoVersion
Write-Host "Version $($version.Semver)"
if ($target -eq "pre-build")
{
Prepare-Build $uenv
#Compile-Belle $uenv $version
# set environment variables
$env:UMBRACO_VERSION=$version.Semver.ToString()
$env:UMBRACO_RELEASE=$version.Release
$env:UMBRACO_COMMENT=$version.Comment
$env:UMBRACO_BUILD=$version.Build
# set environment variable for VSO
# https://github.com/Microsoft/vsts-tasks/issues/375
# https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md
Write-Host ("##vso[task.setvariable variable=UMBRACO_VERSION;]$($version.Semver.ToString())")
Write-Host ("##vso[task.setvariable variable=UMBRACO_RELEASE;]$($version.Release)")
Write-Host ("##vso[task.setvariable variable=UMBRACO_COMMENT;]$($version.Comment)")
Write-Host ("##vso[task.setvariable variable=UMBRACO_BUILD;]$($version.Build)")
Write-Host ("##vso[task.setvariable variable=UMBRACO_TMP;]$($uenv.SolutionRoot)\build.tmp")
}
elseif ($target -eq "pre-tests")
{
Prepare-Tests $uenv
}
elseif ($target -eq "compile-tests")
{
Compile-Tests $uenv
}
elseif ($target -eq "compile-umbraco")
{
Compile-Umbraco $uenv $buildConfiguration
}
elseif ($target -eq "pre-packages")
{
Prepare-Packages $uenv
}
elseif ($target -eq "pre-nuget")
{
Prepare-NuGet $uenv
}
elseif ($target -eq "restore-nuget")
{
Restore-NuGet $uenv
}
elseif ($target -eq "pkg-zip")
{
Package-Zip $uenv
}
elseif ($target -eq "compile-belle")
{
Compile-Belle $uenv $version
}
elseif ($target -eq "prepare-azuregallery")
{
Prepare-AzureGallery $uenv
}
elseif ($target -eq "all")
{
Prepare-Build $uenv
Restore-NuGet $uenv
Compile-Belle $uenv $version
Compile-Umbraco $uenv $buildConfiguration
Prepare-Tests $uenv
Compile-Tests $uenv
# not running tests...
Prepare-Packages $uenv
Package-Zip $uenv
Verify-NuGet $uenv
Prepare-NuGet $uenv
Package-NuGet $uenv $version
Prepare-AzureGallery $uenv
}
else
{
Write-Error "Unsupported target `"$target`"."
}
}
#
# export functions
#
Export-ModuleMember -function Get-UmbracoBuildEnv
Export-ModuleMember -function Set-UmbracoVersion
Export-ModuleMember -function Set-UmbracoContinuousVersion
Export-ModuleMember -function Get-UmbracoVersion
Export-ModuleMember -function Build-Umbraco
Export-ModuleMember -function Build-UmbracoDocs
Export-ModuleMember -function Verify-NuGet
#eof
-95
View File
@@ -1,95 +0,0 @@
# returns the full path if $file is relative to $pwd
function Get-FullPath($file)
{
$path = [System.IO.Path]::Combine($pwd, $file)
$path = [System.IO.Path]::GetFullPath($path)
return $path
}
# removes a directory, doesn't complain if it does not exist
function Remove-Directory($dir)
{
remove-item $dir -force -recurse -errorAction SilentlyContinue > $null
}
# removes a file, doesn't complain if it does not exist
function Remove-File($file)
{
remove-item $file -force -errorAction SilentlyContinue > $null
}
# copies a file, creates target dir if needed
function Copy-File($source, $target)
{
$ignore = new-item -itemType file -path $target -force
cp -force $source $target
}
# copies files to a directory
function Copy-Files($source, $select, $target, $filter)
{
$files = ls -r "$source\$select"
$files | foreach {
$relative = $_.FullName.SubString($source.Length+1)
$_ | add-member -memberType NoteProperty -name RelativeName -value $relative
}
if ($filter -ne $null) {
$files = $files | where $filter
}
$files |
foreach {
if ($_.PsIsContainer) {
$ignore = new-item -itemType directory -path "$target\$($_.RelativeName)" -force
}
else {
Copy-File $_.FullName "$target\$($_.RelativeName)"
}
}
}
# regex-replaces content in a file
function Replace-FileText($filename, $source, $replacement)
{
$filepath = Get-FullPath $filename
$text = [System.IO.File]::ReadAllText($filepath)
$text = [System.Text.RegularExpressions.Regex]::Replace($text, $source, $replacement)
$utf8bom = New-Object System.Text.UTF8Encoding $true
[System.IO.File]::WriteAllText($filepath, $text, $utf8bom)
}
# store web.config
function Store-WebConfig($webUi)
{
if (test-path "$webUi\web.config")
{
if (test-path "$webUi\web.config.temp-build")
{
Write-Host "Found existing web.config.temp-build"
$i = 0
while (test-path "$webUi\web.config.temp-build.$i")
{
$i = $i + 1
}
Write-Host "Save existing web.config as web.config.temp-build.$i"
Write-Host "(WARN: the original web.config.temp-build will be restored during post-build)"
mv "$webUi\web.config" "$webUi\web.config.temp-build.$i"
}
else
{
Write-Host "Save existing web.config as web.config.temp-build"
Write-Host "(will be restored during post-build)"
mv "$webUi\web.config" "$webUi\web.config.temp-build"
}
}
}
# restore web.config
function Restore-WebConfig($webUi)
{
if (test-path "$webUi\web.config.temp-build")
{
Write-Host "Restoring existing web.config"
Remove-File "$webUi\web.config"
mv "$webUi\web.config.temp-build" "$webUi\web.config"
}
}
@@ -1,444 +0,0 @@
#
# Verify-NuGet
#
function Format-Dependency
{
param ( $d )
$m = $d.Id + " "
if ($d.MinInclude) { $m = $m + "[" }
else { $m = $m + "(" }
$m = $m + $d.MinVersion
if ($d.MaxVersion -ne $d.MinVersion) { $m = $m + "," + $d.MaxVersion }
if ($d.MaxInclude) { $m = $m + "]" }
else { $m = $m + ")" }
return $m
}
function Write-NuSpec
{
param ( $name, $deps )
Write-Host ""
Write-Host "$name NuSpec dependencies:"
foreach ($d in $deps)
{
$m = Format-Dependency $d
Write-Host " $m"
}
}
function Write-Package
{
param ( $name, $pkgs )
Write-Host ""
Write-Host "$name packages:"
foreach ($p in $pkgs)
{
Write-Host " $($p.Id) $($p.Version)"
}
}
function Verify-NuGet
{
param (
$uenv # an Umbraco build environment (see Get-UmbracoBuildEnv)
)
if ($uenv -eq $null)
{
$uenv = Get-UmbracoBuildEnv
}
$source = @"
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using Semver;
namespace Umbraco.Build
{
public class NuGet
{
public static Dependency[] GetNuSpecDependencies(string filename)
{
NuSpec nuspec;
var serializer = new XmlSerializer(typeof(NuSpec));
using (var reader = new StreamReader(filename))
{
nuspec = (NuSpec) serializer.Deserialize(reader);
}
var nudeps = nuspec.Metadata.Dependencies;
var deps = new List<Dependency>();
foreach (var nudep in nudeps)
{
var dep = new Dependency();
dep.Id = nudep.Id;
var parts = nudep.Version.Split(',');
if (parts.Length == 1)
{
dep.MinInclude = parts[0].StartsWith("[");
dep.MaxInclude = parts[0].EndsWith("]");
SemVersion version;
if (!SemVersion.TryParse(parts[0].Substring(1, parts[0].Length-2).Trim(), out version)) continue;
dep.MinVersion = dep.MaxVersion = version; //parts[0].Substring(1, parts[0].Length-2).Trim();
}
else
{
SemVersion version;
if (!SemVersion.TryParse(parts[0].Substring(1).Trim(), out version)) continue;
dep.MinVersion = version; //parts[0].Substring(1).Trim();
if (!SemVersion.TryParse(parts[1].Substring(0, parts[1].Length-1).Trim(), out version)) continue;
dep.MaxVersion = version; //parts[1].Substring(0, parts[1].Length-1).Trim();
dep.MinInclude = parts[0].StartsWith("[");
dep.MaxInclude = parts[1].EndsWith("]");
}
deps.Add(dep);
}
return deps.ToArray();
}
public static IEnumerable<TSource> DistinctBy<TSource, TKey>(/*this*/ IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
{
HashSet<TKey> knownKeys = new HashSet<TKey>();
foreach (TSource element in source)
{
if (knownKeys.Add(keySelector(element)))
{
yield return element;
}
}
}
public static Package[] GetProjectsPackages(string src, string[] projects)
{
var l = new List<Package>();
foreach (var project in projects)
{
var path = Path.Combine(src, project);
var packageConfig = Path.Combine(path, "packages.config");
if (File.Exists(packageConfig))
ReadPackagesConfig(packageConfig, l);
var csprojs = Directory.GetFiles(path, "*.csproj");
foreach (var csproj in csprojs)
{
ReadCsProj(csproj, l);
}
}
IEnumerable<Package> p = l.OrderBy(x => x.Id);
p = DistinctBy(p, x => x.Id + ":::" + x.Version);
return p.ToArray();
}
public static object[] GetPackageErrors(Package[] pkgs)
{
return pkgs
.GroupBy(x => x.Id)
.Where(x => x.Count() > 1)
.ToArray();
}
public static object[] GetNuSpecErrors(Package[] pkgs, Dependency[] deps)
{
var d = pkgs.ToDictionary(x => x.Id, x => x.Version);
return deps
.Select(x =>
{
SemVersion v;
if (!d.TryGetValue(x.Id, out v)) return null;
var ok = true;
/*
if (x.MinInclude)
{
if (v < x.MinVersion) ok = false;
}
else
{
if (v <= x.MinVersion) ok = false;
}
if (x.MaxInclude)
{
if (v > x.MaxVersion) ok = false;
}
else
{
if (v >= x.MaxVersion) ok = false;
}
*/
if (!x.MinInclude || v != x.MinVersion) ok = false;
return ok ? null : new { Dependency = x, Version = v };
})
.Where(x => x != null)
.ToArray();
}
/*
public static Package[] GetProjectPackages(string path)
{
var l = new List<Package>();
var packageConfig = Path.Combine(path, "packages.config");
if (File.Exists(packageConfig))
ReadPackagesConfig(packageConfig, l);
var csprojs = Directory.GetFiles(path, "*.csproj");
foreach (var csproj in csprojs)
{
ReadCsProj(csproj, l);
}
return l.ToArray();
}
*/
public static string GetDirectoryName(string filename)
{
return Path.GetFileName(Path.GetDirectoryName(filename));
}
public static void ReadPackagesConfig(string filename, List<Package> packages)
{
//Console.WriteLine("read " + filename);
PackagesConfigPackages pkgs;
var serializer = new XmlSerializer(typeof(PackagesConfigPackages));
using (var reader = new StreamReader(filename))
{
pkgs = (PackagesConfigPackages) serializer.Deserialize(reader);
}
foreach (var p in pkgs.Packages)
{
SemVersion version;
if (!SemVersion.TryParse(p.Version, out version)) continue;
packages.Add(new Package { Id = p.Id, Version = version, Project = GetDirectoryName(filename) });
}
}
public static void ReadCsProj(string filename, List<Package> packages)
{
//Console.WriteLine("read " + filename);
// if xmlns then it's not a VS2017 with PackageReference
var text = File.ReadAllLines(filename);
var line = text.FirstOrDefault(x => x.Contains("<Project"));
if (line == null) return;
if (line.Contains("xmlns")) return;
CsProjProject proj;
var serializer = new XmlSerializer(typeof(CsProjProject));
using (var reader = new StreamReader(filename))
{
proj = (CsProjProject) serializer.Deserialize(reader);
}
foreach (var p in proj.ItemGroups.Where(x => x.Packages != null).SelectMany(x => x.Packages))
{
var sversion = p.VersionE ?? p.VersionA;
SemVersion version;
if (!SemVersion.TryParse(sversion, out version)) continue;
packages.Add(new Package { Id = p.Id, Version = version, Project = GetDirectoryName(filename) });
}
}
public class Dependency
{
public string Id { get; set; }
public SemVersion MinVersion { get; set; }
public SemVersion MaxVersion { get; set; }
public bool MinInclude { get; set; }
public bool MaxInclude { get; set; }
}
public class Package
{
public string Id { get; set; }
public SemVersion Version { get; set; }
public string Project { get; set; }
}
[XmlType(AnonymousType = true, Namespace = "http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd")]
[XmlRoot(Namespace = "http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd", IsNullable = false, ElementName = "package")]
public class NuSpec
{
[XmlElement("metadata")]
public NuSpecMetadata Metadata { get; set; }
}
[XmlType(AnonymousType = true, Namespace = "http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd", TypeName = "metadata")]
public class NuSpecMetadata
{
[XmlArray("dependencies")]
[XmlArrayItem("dependency", IsNullable = false)]
public NuSpecDependency[] Dependencies { get; set; }
}
[XmlType(AnonymousType = true, Namespace = "http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd", TypeName = "dependencies")]
public class NuSpecDependency
{
[XmlAttribute(AttributeName = "id")]
public string Id { get; set; }
[XmlAttribute(AttributeName = "version")]
public string Version { get; set; }
}
[XmlType(AnonymousType = true)]
[XmlRoot(Namespace = "", IsNullable = false, ElementName = "packages")]
public class PackagesConfigPackages
{
[XmlElement("package")]
public PackagesConfigPackage[] Packages { get; set; }
}
[XmlType(AnonymousType = true, TypeName = "package")]
public class PackagesConfigPackage
{
[XmlAttribute(AttributeName = "id")]
public string Id { get; set; }
[XmlAttribute(AttributeName = "version")]
public string Version { get; set; }
}
[XmlType(AnonymousType = true)]
[XmlRoot(Namespace = "", IsNullable = false, ElementName = "Project")]
public class CsProjProject
{
[XmlElement("ItemGroup")]
public CsProjItemGroup[] ItemGroups { get; set; }
}
[XmlType(AnonymousType = true, TypeName = "ItemGroup")]
public class CsProjItemGroup
{
[XmlElement("PackageReference")]
public CsProjPackageReference[] Packages { get; set; }
}
[XmlType(AnonymousType = true, TypeName = "PackageReference")]
public class CsProjPackageReference
{
[XmlAttribute(AttributeName = "Include")]
public string Id { get; set; }
[XmlAttribute(AttributeName = "Version")]
public string VersionA { get; set; }
[XmlElement("Version")]
public string VersionE { get; set;}
}
}
}
"@
Write-Host ">> Verify NuGet consistency"
$assem = (
"System.Xml",
"System.Core", # "System.Collections.Generic"
"System.Linq",
"System.Xml.Serialization",
"System.IO",
"System.Globalization",
$uenv.Semver
)
try
{
# as long as the code hasn't changed it's fine to re-add, but if the code
# has changed this will throw - better warn the dev that we have an issue
add-type -referencedAssemblies $assem -typeDefinition $source -language CSharp
}
catch
{
if ($_.FullyQualifiedErrorId.StartsWith("TYPE_ALREADY_EXISTS,"))
{ Write-Error "Failed to add type, did you change the code?" }
else
{ Write-Error $_ }
}
if (-not $?) { break }
$nuspecs = (
"UmbracoCms",
"UmbracoCms.Core"
)
$projects = (
"Umbraco.Core",
"Umbraco.Web",
"Umbraco.Web.UI",
"UmbracoExamine"#,
#"Umbraco.Tests",
#"Umbraco.Tests.Benchmarks"
)
$src = "$($uenv.SolutionRoot)\src"
$pkgs = [Umbraco.Build.NuGet]::GetProjectsPackages($src, $projects)
if (-not $?) { break }
#Write-Package "All" $pkgs
$errs = [Umbraco.Build.NuGet]::GetPackageErrors($pkgs)
if (-not $?) { break }
if ($errs.Length -gt 0)
{
Write-Host ""
}
foreach ($err in $errs)
{
Write-Host $err.Key
foreach ($e in $err)
{
Write-Host " $($e.Version) required by $($e.Project)"
}
}
if ($errs.Length -gt 0)
{
Write-Error "Found non-consolidated package dependencies"
break
}
$nuerr = $false
$nupath = "$($uenv.SolutionRoot)\build\NuSpecs"
foreach ($nuspec in $nuspecs)
{
$deps = [Umbraco.Build.NuGet]::GetNuSpecDependencies("$nupath\$nuspec.nuspec")
if (-not $?) { break }
#Write-NuSpec $nuspec $deps
$errs = [Umbraco.Build.NuGet]::GetNuSpecErrors($pkgs, $deps)
if (-not $?) { break }
if ($errs.Length -gt 0)
{
Write-Host ""
Write-Host "$nuspec requires:"
$nuerr = $true
}
foreach ($err in $errs)
{
$m = Format-Dependency $err.Dependency
Write-Host " $m but projects require $($err.Version)"
}
}
if ($nuerr)
{
Write-Error "Found inconsistent NuGet dependencies"
break
}
}
+60 -107
View File
@@ -1,107 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="3.4.4">
<id>UmbracoCms.Core</id>
<version>7.0.0</version>
<title>Umbraco Cms Core Binaries</title>
<authors>Umbraco HQ</authors>
<owners>Umbraco HQ</owners>
<licenseUrl>http://opensource.org/licenses/MIT</licenseUrl>
<projectUrl>http://umbraco.com/</projectUrl>
<iconUrl>http://umbraco.com/media/357769/100px_transparent.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Contains the core assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms-package to setup Umbraco in Visual Studio as an ASP.NET project.</description>
<summary>Contains the core assemblies needed to run Umbraco Cms</summary>
<language>en-US</language>
<tags>umbraco</tags>
<dependencies>
<dependency id="log4net" version="[2.0.8,3.0.0)" />
<dependency id="Log4Net.Async" version="[2.0.4,3.0.0)" />
<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.AspNet.Identity.Owin" version="[2.2.1, 3.0.0)" />
<dependency id="Microsoft.AspNet.SignalR.Core" version="[2.2.1, 3.0.0)" />
<dependency id="Microsoft.Owin.Security.Cookies" version="[3.1.0, 4.0.0)" />
<dependency id="Microsoft.Owin.Security.OAuth" version="[3.1.0, 4.0.0)" />
<dependency id="Microsoft.Owin.Host.SystemWeb" version="[3.1.0, 4.0.0)" />
<dependency id="MiniProfiler" version="[2.1.0, 3.0.0)" />
<dependency id="HtmlAgilityPack" version="[1.4.9.5, 2.0.0)" />
<dependency id="Lucene.Net" version="[2.9.4.1, 3.0.0.0)" />
<dependency id="MySql.Data" version="[6.9.9, 7.0.0)" />
<dependency id="ClientDependency" version="[1.9.7, 2.0.0)" />
<dependency id="ClientDependency-Mvc5" version="[1.8.0.0, 2.0.0)" />
<dependency id="AutoMapper" version="[3.3.1, 4.0.0)" />
<dependency id="Newtonsoft.Json" version="[10.0.2, 11.0.0)" />
<dependency id="Examine" version="[0.1.89, 1.0.0)" />
<dependency id="ImageProcessor" version="[2.5.6, 3.0.0)" />
<dependency id="ImageProcessor.Web" version="[4.8.7, 5.0.0)" />
<dependency id="semver" version="[1.1.2, 3.0.0)" />
<!-- Markdown can not be updated due to: https://github.com/hey-red/markdownsharp/issues/71#issuecomment-233585487 -->
<dependency id="Markdown" version="[1.14.7, 2.0.0)" />
<dependency id="System.Threading.Tasks.Dataflow" version="[4.7.0, 5.0.0)" />
<dependency id="System.ValueTuple" version="[4.4.0, 5.0.0)" />
</dependencies>
</metadata>
<files>
<file src="$BuildTmp$\WebApp\bin\businesslogic.dll" target="lib\net45\businesslogic.dll" />
<file src="$BuildTmp$\WebApp\bin\businesslogic.xml" target="lib\net45\businesslogic.xml" />
<file src="$BuildTmp$\WebApp\bin\cms.dll" target="lib\net45\cms.dll" />
<file src="$BuildTmp$\WebApp\bin\cms.xml" target="lib\net45\cms.xml" />
<file src="$BuildTmp$\WebApp\bin\controls.dll" target="lib\net45\controls.dll" />
<file src="$BuildTmp$\WebApp\bin\controls.xml" target="lib\net45\controls.xml" />
<file src="$BuildTmp$\WebApp\bin\interfaces.dll" target="lib\net45\interfaces.dll" />
<file src="$BuildTmp$\WebApp\bin\interfaces.xml" target="lib\net45\interfaces.xml" />
<file src="$BuildTmp$\WebApp\bin\log4net.dll" target="lib\net45\log4net.dll" />
<file src="$BuildTmp$\WebApp\bin\Microsoft.ApplicationBlocks.Data.dll" target="lib\net45\Microsoft.ApplicationBlocks.Data.dll" />
<file src="$BuildTmp$\WebApp\bin\SQLCE4Umbraco.dll" target="lib\net45\SQLCE4Umbraco.dll" />
<file src="$BuildTmp$\WebApp\bin\SQLCE4Umbraco.xml" target="lib\net45\SQLCE4Umbraco.xml" />
<file src="$BuildTmp$\WebApp\bin\System.Data.SqlServerCe.dll" target="lib\net45\System.Data.SqlServerCe.dll" />
<file src="$BuildTmp$\WebApp\bin\System.Data.SqlServerCe.Entity.dll" target="lib\net45\System.Data.SqlServerCe.Entity.dll" />
<file src="$BuildTmp$\WebApp\bin\TidyNet.dll" target="lib\net45\TidyNet.dll" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.dll" target="lib\net45\Umbraco.Core.dll" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.xml" target="lib\net45\Umbraco.Core.xml" />
<file src="$BuildTmp$\WebApp\bin\umbraco.DataLayer.dll" target="lib\net45\umbraco.DataLayer.dll" />
<file src="$BuildTmp$\WebApp\bin\umbraco.DataLayer.xml" target="lib\net45\umbraco.DataLayer.xml" />
<file src="$BuildTmp$\WebApp\bin\umbraco.dll" target="lib\net45\umbraco.dll" />
<file src="$BuildTmp$\WebApp\bin\umbraco.xml" target="lib\net45\umbraco.xml" />
<file src="$BuildTmp$\WebApp\bin\umbraco.editorControls.dll" target="lib\net45\umbraco.editorControls.dll" />
<file src="$BuildTmp$\WebApp\bin\umbraco.editorControls.xml" target="lib\net45\umbraco.editorControls.xml" />
<file src="$BuildTmp$\WebApp\bin\umbraco.MacroEngines.dll" target="lib\net45\umbraco.MacroEngines.dll" />
<file src="$BuildTmp$\WebApp\bin\umbraco.MacroEngines.xml" target="lib\net45\umbraco.MacroEngines.xml" />
<file src="$BuildTmp$\WebApp\bin\umbraco.providers.dll" target="lib\net45\umbraco.providers.dll" />
<file src="$BuildTmp$\WebApp\bin\umbraco.providers.xml" target="lib\net45\umbraco.providers.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.UI.dll" target="lib\net45\Umbraco.Web.UI.dll" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.UI.xml" target="lib\net45\Umbraco.Web.UI.xml" />
<file src="$BuildTmp$\WebApp\bin\UmbracoExamine.dll" target="lib\net45\UmbracoExamine.dll" />
<file src="$BuildTmp$\WebApp\bin\UmbracoExamine.xml" target="lib\net45\UmbracoExamine.xml" />
<file src="tools\install.core.ps1" target="tools\install.ps1" />
<!-- Added to be able to produce a symbols package -->
<file src="$BuildTmp$\bin\SQLCE4Umbraco.pdb" target="lib" />
<file src="..\..\src\SQLCE4Umbraco\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\SQLCE4Umbraco" />
<file src="$BuildTmp$\bin\businesslogic.pdb" target="lib" />
<file src="..\..\src\umbraco.businesslogic\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.businesslogic" />
<file src="$BuildTmp$\bin\cms.pdb" target="lib" />
<file src="..\..\src\umbraco.cms\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.cms" />
<file src="$BuildTmp$\bin\controls.pdb" target="lib" />
<file src="..\..\src\umbraco.controls\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.controls" />
<file src="$BuildTmp$\bin\interfaces.pdb" target="lib" />
<file src="..\..\src\umbraco.interfaces\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.interfaces" />
<file src="$BuildTmp$\bin\Umbraco.Core.pdb" target="lib" />
<file src="..\..\src\Umbraco.Core\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Core" />
<file src="$BuildTmp$\bin\umbraco.DataLayer.pdb" target="lib" />
<file src="..\..\src\umbraco.datalayer\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.datalayer" />
<file src="$BuildTmp$\bin\umbraco.editorControls.pdb" target="lib" />
<file src="..\..\src\umbraco.editorControls\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.editorControls" />
<file src="$BuildTmp$\bin\umbraco.MacroEngines.pdb" target="lib" />
<file src="..\..\src\umbraco.MacroEngines\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.MacroEngines" />
<file src="$BuildTmp$\bin\umbraco.providers.pdb" target="lib" />
<file src="..\..\src\umbraco.providers\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.providers" />
<file src="$BuildTmp$\bin\umbraco.pdb" target="lib" />
<file src="..\..\src\Umbraco.Web\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Web" />
<file src="$BuildTmp$\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="$BuildTmp$\bin\UmbracoExamine.pdb" target="lib" />
<file src="..\..\src\UmbracoExamine\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\UmbracoExamine" />
</files>
</package>
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="4.1.0">
<id>UmbracoCms.Core</id>
<version>8.0.0</version>
<title>Umbraco Cms Core Binaries</title>
<authors>Umbraco HQ</authors>
<owners>Umbraco HQ</owners>
<licenseUrl>http://opensource.org/licenses/MIT</licenseUrl>
<projectUrl>http://umbraco.com/</projectUrl>
<iconUrl>https://umbraco.com/dist/nuget/logo-small.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Contains the core assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms package to setup Umbraco in Visual Studio as an ASP.NET project.</description>
<summary>Contains the core assemblies needed to run Umbraco Cms</summary>
<language>en-US</language>
<tags>umbraco</tags>
<dependencies>
<group targetFramework="net472">
<!--
note: dependencies are specified as [x.y.z,x.999999) eg [2.1.0,2.999999) and NOT [2.1.0,3.0.0) because
the latter would pick anything below 3.0.0 and that includes prereleases such as 3.0.0-alpha, and we do
not want this to happen as the alpha of the next major is, really, the next major already.
-->
<dependency id="LightInject" version="[5.4.0,5.999999)" />
<dependency id="LightInject.Annotation" version="[1.1.0,1.999999)" />
<dependency id="LightInject.Web" version="[2.0.0,2.999999)" />
<dependency id="Microsoft.AspNet.Identity.Core" version="[2.2.2,2.999999)" />
<dependency id="Microsoft.AspNet.WebApi.Client" version="[5.2.7,5.999999)" />
<dependency id="Microsoft.Owin" version="[4.0.1,4.999999)" />
<dependency id="MiniProfiler" version="[4.0.138,4.999999)" />
<dependency id="Newtonsoft.Json" version="[12.0.1,12.999999)" />
<dependency id="Semver" version="[2.0.4,2.999999)" />
<dependency id="Serilog" version="[2.8.0,2.999999)" />
<dependency id="Serilog.Enrichers.Process" version="[2.0.1,2.999999)" />
<dependency id="Serilog.Enrichers.Thread" version="[3.0.0,3.999999)" />
<dependency id="Serilog.Filters.Expressions" version="[2.0.0,2.999999)" />
<dependency id="Serilog.Formatting.Compact" version="[1.0.0,1.999999)" />
<dependency id="Serilog.Formatting.Compact.Reader" version="[1.0.3,1.999999)" />
<dependency id="Serilog.Settings.AppSettings" version="[2.2.2,2.999999)" />
<dependency id="Serilog.Sinks.File" version="[4.0.0,4.999999)" />
<dependency id="Serilog.Sinks.Map" version="[1.0.0,1.999999)" />
<dependency id="Serilog.Sinks.Async" version="[1.3.0,1.999999)" />
<dependency id="Umbraco.SqlServerCE" version="[4.0.0.1,4.999999)" />
<dependency id="NPoco" version="[3.9.4,3.999999)" />
</group>
</dependencies>
</metadata>
<files>
<!-- libs -->
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.dll" target="lib\net472\Umbraco.Core.dll" />
<!-- docs -->
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.xml" target="lib\net472\Umbraco.Core.xml" />
<!-- symbols -->
<file src="$BuildTmp$\bin\Umbraco.Core.pdb" target="lib" />
</files>
</package>
+67
View File
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="4.1.0">
<id>UmbracoCms.Web</id>
<version>8.0.0</version>
<title>Umbraco Cms Core Binaries</title>
<authors>Umbraco HQ</authors>
<owners>Umbraco HQ</owners>
<licenseUrl>http://opensource.org/licenses/MIT</licenseUrl>
<projectUrl>http://umbraco.com/</projectUrl>
<iconUrl>https://umbraco.com/dist/nuget/logo-small.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Contains the web assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms package to setup Umbraco in Visual Studio as an ASP.NET project.</description>
<summary>Contains the core assemblies needed to run Umbraco Cms</summary>
<language>en-US</language>
<tags>umbraco</tags>
<dependencies>
<group targetFramework="net472">
<!--
note: dependencies are specified as [x.y.z,x.999999) eg [2.1.0,2.999999) and NOT [2.1.0,3.0.0) because
the latter would pick anything below 3.0.0 and that includes prereleases such as 3.0.0-alpha, and we do
not want this to happen as the alpha of the next major is, really, the next major already.
-->
<dependency id="UmbracoCms.Core" version="[$version$]" />
<dependency id="ClientDependency" version="[1.9.7,1.999999)" />
<dependency id="ClientDependency-Mvc5" version="[1.8.0,1.999999)" />
<dependency id="CSharpTest.Net.Collections" version="[14.906.1403.1082,14.999999)" />
<dependency id="Examine" version="[1.0.0,1.999999)" />
<dependency id="HtmlAgilityPack" version="[1.8.14,1.999999)" />
<dependency id="ImageProcessor" version="[2.7.0.100,2.999999)" />
<dependency id="LightInject.Mvc" version="[2.0.0,2.999999)" />
<dependency id="LightInject.WebApi" version="[2.0.0,2.999999)" />
<dependency id="Markdown" version="[2.2.1,2.999999)" />
<dependency id="Microsoft.AspNet.Identity.Owin" version="[2.2.2,2.999999)" />
<dependency id="Microsoft.AspNet.Mvc" version="[5.2.7,5.999999)" />
<dependency id="Microsoft.AspNet.SignalR.Core" version="[2.4.0,2.999999)" />
<dependency id="Microsoft.AspNet.WebApi" version="[5.2.7,5.999999)" />
<dependency id="Microsoft.Owin.Host.SystemWeb" version="[4.0.1,4.999999)" />
<dependency id="Microsoft.Owin.Security.Cookies" version="[4.0.1,4.999999)" />
<dependency id="Microsoft.Owin.Security.OAuth" version="[4.0.1,4.999999)" />
<dependency id="System.Threading.Tasks.Dataflow" version="[4.9.0,4.999999)" />
</group>
</dependencies>
</metadata>
<files>
<!-- libs -->
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.dll" target="lib\net472\Umbraco.Web.dll" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.UI.dll" target="lib\net472\Umbraco.Web.UI.dll" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Examine.dll" target="lib\net472\Umbraco.Examine.dll" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.ModelsBuilder.dll" target="lib\net472\Umbraco.ModelsBuilder.dll" />
<!-- docs -->
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.xml" target="lib\net472\Umbraco.Web.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.UI.xml" target="lib\net472\Umbraco.Web.UI.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Examine.xml" target="lib\net472\Umbraco.Examine.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.ModelsBuilder.xml" target="lib\net472\Umbraco.ModelsBuilder.xml" />
<!-- symbols -->
<file src="$BuildTmp$\bin\Umbraco.Web.pdb" target="lib" />
<file src="$BuildTmp$\bin\Umbraco.Examine.pdb" target="lib" />
<file src="$BuildTmp$\bin\Umbraco.ModelsBuilder.pdb" target="lib" />
</files>
</package>
+68 -54
View File
@@ -1,54 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="3.4.4">
<id>UmbracoCms</id>
<version>7.0.0</version>
<title>Umbraco Cms</title>
<authors>Umbraco HQ</authors>
<owners>Umbraco HQ</owners>
<licenseUrl>http://opensource.org/licenses/MIT</licenseUrl>
<projectUrl>http://umbraco.com/</projectUrl>
<iconUrl>http://umbraco.com/media/357769/100px_transparent.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Installs Umbraco Cms in your Visual Studio ASP.NET project</description>
<summary>Installs Umbraco Cms in your Visual Studio ASP.NET project</summary>
<language>en-US</language>
<tags>umbraco</tags>
<dependencies>
<dependency id="UmbracoCms.Core" version="[$version$]" />
<dependency id="Newtonsoft.Json" version="[10.0.2, 11.0.0)" />
<dependency id="Umbraco.ModelsBuilder" version="[3.0.10, 4.0.0)" />
<dependency id="Microsoft.AspNet.SignalR.Core" version="[2.2.1, 3.0.0)" />
<dependency id="ImageProcessor.Web.Config" version="[2.3.1, 3.0.0)" />
<dependency id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="[2.0.0, 3.0.0)" />
</dependencies>
</metadata>
<files>
<file src="$BuildTmp$\Configs\**" target="Content\Config" exclude="$BuildTmp$\Configs\Web.config.transform" />
<file src="$BuildTmp$\WebApp\Views\**" target="Content\Views" exclude="$BuildTmp$\WebApp\Views\Web.config" />
<file src="$BuildTmp$\WebApp\default.aspx" target="Content\default.aspx" />
<file src="$BuildTmp$\WebApp\Global.asax" target="Content\Global.asax" />
<file src="$BuildTmp$\WebApp\Web.config" target="UmbracoFiles\Web.config" />
<file src="$BuildTmp$\WebApp\App_Browsers\**" target="UmbracoFiles\App_Browsers" />
<file src="$BuildTmp$\WebApp\bin\amd64\**" target="UmbracoFiles\bin\amd64" />
<file src="$BuildTmp$\WebApp\bin\x86\**" target="UmbracoFiles\bin\x86" />
<file src="$BuildTmp$\WebApp\config\splashes\**" target="UmbracoFiles\Config\splashes" />
<file src="$BuildTmp$\WebApp\config\BackOfficeTours\**" target="Content\Config\BackOfficeTours" />
<file src="$BuildTmp$\WebApp\umbraco\**" target="UmbracoFiles\umbraco" />
<file src="$BuildTmp$\WebApp\umbraco_client\**" target="UmbracoFiles\umbraco_client" />
<file src="$BuildTmp$\WebApp\Media\Web.config" target="Content\Media\Web.config" />
<file src="tools\install.ps1" target="tools\install.ps1" />
<file src="tools\Readme.txt" target="tools\Readme.txt" />
<file src="tools\ReadmeUpgrade.txt" target="tools\ReadmeUpgrade.txt" />
<file src="tools\Web.config.install.xdt" target="Content\Web.config.install.xdt" />
<file src="tools\applications.config.install.xdt" target="Content\config\applications.config.install.xdt" />
<file src="tools\ClientDependency.config.install.xdt" target="Content\config\ClientDependency.config.install.xdt" />
<file src="tools\Dashboard.config.install.xdt" target="Content\config\Dashboard.config.install.xdt" />
<file src="tools\trees.config.install.xdt" target="Content\config\trees.config.install.xdt" />
<file src="tools\umbracoSettings.config.install.xdt" target="Content\config\umbracoSettings.config.install.xdt" />
<file src="tools\Views.Web.config.install.xdt" target="Views\Web.config.install.xdt" />
<file src="tools\processing.config.install.xdt" target="Content\Config\imageprocessor\processing.config.install.xdt" />
<file src="tools\cache.config.install.xdt" target="Content\Config\imageprocessor\cache.config.install.xdt" />
<file src="build\**" target="build" />
</files>
</package>
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="4.1.0">
<id>UmbracoCms</id>
<version>8.0.0</version>
<title>Umbraco Cms</title>
<authors>Umbraco HQ</authors>
<owners>Umbraco HQ</owners>
<licenseUrl>http://opensource.org/licenses/MIT</licenseUrl>
<projectUrl>http://umbraco.com/</projectUrl>
<iconUrl>https://umbraco.com/dist/nuget/logo-small.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Installs Umbraco Cms in your Visual Studio ASP.NET project</description>
<summary>Installs Umbraco Cms in your Visual Studio ASP.NET project</summary>
<language>en-US</language>
<tags>umbraco</tags>
<dependencies>
<group targetFramework="net472">
<dependency id="UmbracoCms.Web" version="[$version$]" />
<!--
note: dependencies are specified as [x.y.z,x.999999) eg [2.1.0,2.999999) and NOT [2.1.0,3.0.0) because
the latter would pick anything below 3.0.0 and that includes prereleases such as 3.0.0-alpha, and we do
not want this to happen as the alpha of the next major is, really, the next major already.
-->
<dependency id="Microsoft.AspNet.SignalR.Core" version="[2.4.0, 2.999999)" />
<dependency id="ImageProcessor.Web" version="[4.10.0.100,4.999999)" />
<dependency id="ImageProcessor.Web.Config" version="[2.5.0.100,2.999999)" />
<dependency id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="[2.0.1,2.999999)" />
<dependency id="Microsoft.Net.Compilers" version="[2.10.0,2.999999)" />
</group>
</dependencies>
</metadata>
<files>
<!-- files -->
<file src="$BuildTmp$\Configs\**" target="Content\Config" exclude="$BuildTmp$\Configs\Web.config.transform" />
<file src="$BuildTmp$\WebApp\Views\**" target="Content\Views" exclude="$BuildTmp$\WebApp\Views\Web.config" />
<file src="$BuildTmp$\WebApp\Global.asax" target="Content\Global.asax" />
<file src="$BuildTmp$\WebApp\config\BackOfficeTours\**" target="Content\Config\BackOfficeTours" />
<file src="$BuildTmp$\WebApp\Media\Web.config" target="Content\Media\Web.config" />
<!-- these files are copied by install.ps1 -->
<file src="$BuildTmp$\WebApp\Web.config" target="UmbracoFiles\Web.config" />
<file src="$BuildTmp$\WebApp\umbraco\**" target="UmbracoFiles\umbraco" />
<file src="$BuildTmp$\WebApp\config\splashes\**" target="UmbracoFiles\Config\splashes" />
<!-- tools -->
<!-- beware! install.ps1 not supported by PackageReference -->
<file src="tools\install.ps1" target="tools\install.ps1" />
<file src="tools\Readme.txt" target="tools\Readme.txt" />
<file src="tools\ReadmeUpgrade.txt" target="tools\ReadmeUpgrade.txt" />
<!-- config transforms -->
<!-- beware! config transforms not supported by PackageReference -->
<file src="tools\Web.config.install.xdt" target="Content\Web.config.install.xdt" />
<file src="tools\serilog.config.install.xdt" target="Content\config\serilog.config.install.xdt" />
<file src="tools\ClientDependency.config.install.xdt" target="Content\config\ClientDependency.config.install.xdt" />
<file src="tools\umbracoSettings.config.install.xdt" target="Content\config\umbracoSettings.config.install.xdt" />
<file src="tools\Views.Web.config.install.xdt" target="Views\Web.config.install.xdt" /> <!-- FIXME: Content\ !! and then... transform?! -->
<!-- UmbracoCms props and targets -->
<file src="build\**" target="build" />
</files>
</package>
-3
View File
@@ -47,9 +47,6 @@
<CustomFilesToInclude Include=".\umbraco\**\*">
<Dir>umbraco</Dir>
</CustomFilesToInclude>
<CustomFilesToInclude Include=".\umbraco_client\**\*">
<Dir>umbraco_client</Dir>
</CustomFilesToInclude>
<CustomFilesToInclude Include=".\Global.asax">
<Dir>.</Dir>
</CustomFilesToInclude>
@@ -1,95 +0,0 @@
<?xml version="1.0"?>
<dashBoard xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<section alias="StartupSettingsDashboardSection" xdt:Locator="Match(alias)" xdt:Transform="InsertIfMissing">
<tab caption="Get Started" xdt:Locator="Match(caption)" xdt:Transform="Remove" />
<tab caption="Welcome" xdt:Locator="Match(caption)" xdt:Transform="InsertIfMissing">
<control showOnce="true" addPanel="true" panelCaption="" xdt:Transform="InsertIfMissing">
views/dashboard/settings/settingsdashboardintro.html
</control>
</tab>
</section>
<section alias="StartupFormsDashboardSection" xdt:Locator="Match(alias)" xdt:Transform="InsertIfMissing">
<areas>
<area>forms</area>
</areas>
<tab caption="Install Umbraco Forms">
<control showOnce="true" addPanel="true" panelCaption="">
views/dashboard/forms/formsdashboardintro.html
</control>
</tab>
</section>
<section alias="StartupDeveloperDashboardSection" xdt:Locator="Match(alias)" xdt:Transform="InsertIfMissing">
<areas xdt:Transform="InsertIfMissing">
<area xdt:Transform="InsertIfMissing">developer</area>
</areas>
</section>
<section alias="StartupDeveloperDashboardSection">
<tab caption="Get Started" xdt:Locator="Match(caption)" xdt:Transform="Replace">
<control showOnce="true" addPanel="true" panelCaption="">
views/dashboard/developer/developerdashboardvideos.html
</control>
</tab>
<tab caption="Examine Management" xdt:Locator="Match(caption)" xdt:Transform="Remove" />
</section>
<section alias="StartupDeveloperDashboardSection" xdt:Locator="Match(alias)" xdt:Transform="InsertIfMissing">
<tab caption="Examine Management" xdt:Locator="Match(caption)" xdt:Transform="InsertIfMissing">
<control>
views/dashboard/developer/examinemanagement.html
</control>
</tab>
</section>
<section alias="StartupMediaDashboardSection" xdt:Locator="Match(alias)" xdt:Transform="InsertIfMissing">
<tab caption="Get Started" xdt:Locator="Match(caption)" xdt:Transform="Remove" />
<tab caption="Content" xdt:Locator="Match(caption)" xdt:Transform="InsertIfMissing" />
<tab caption="Content" xdt:Locator="Match(caption)" xdt:Transform="Replace">
<control showOnce="false" addPanel="false" panelCaption="">
views/dashboard/media/mediafolderbrowser.html
</control>
</tab>
</section>
<section alias="StartupMemberDashboardSection" xdt:Locator="Match(alias)" xdt:Transform="InsertIfMissing">
<tab caption="Get Started" xdt:Locator="Match(caption)" xdt:Transform="Remove" />
<tab caption="Get Started" xdt:Transform="Insert">
<control showOnce="true" addPanel="true" panelCaption="">
views/dashboard/members/membersdashboardvideos.html
</control>
</tab>
</section>
<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" />
<tab caption="Last Edits" xdt:Locator="Match(caption)" xdt:Transform="Remove" />
</section>
<section alias="RedirectUrlManagement" xdt:Locator="Match(alias)" xdt:Transform="InsertIfMissing">
<areas>
<area>content</area>
</areas>
<tab caption="Redirect URL Management">
<control>
views/dashboard/developer/redirecturls.html
</control>
</tab>
</section>
<section alias="UmbracoHealthCheck" xdt:Locator="Match(alias)" xdt:Transform="InsertIfMissing">
<areas>
<area>developer</area>
</areas>
<tab caption="Health Check">
<control>
views/dashboard/developer/healthcheck.html
</control>
</tab>
</section>
</dashBoard>
+27 -26
View File
@@ -1,26 +1,27 @@
_ _ __ __ ____ _____ _____ ____
| | | | \/ | _ \| __ \ /\ / ____/ __ \
| | | | \ / | |_) | |__) | / \ | | | | | |
| | | | |\/| | _ <| _ / / /\ \| | | | | |
| |__| | | | | |_) | | \ \ / ____ | |___| |__| |
\____/|_| |_|____/|_| \_/_/ \_\_____\____/
----------------------------------------------------
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).
This NuGet package includes build targets that extend the creation of a deploy package, which is generated by
Publishing from Visual Studio. The targets will only work once Publishing is configured, so if you don't use
Publish this won't affect you.
The following items will now be automatically included when creating a deploy package or publishing to the file
system: umbraco, umbraco_client, config\splashes and global.asax.
Please read the release notes on our.umbraco.com:
https://our.umbraco.com/download/releases
- Umbraco
888
888
888 888 88888b.d88b. 88888b. 888d888 8888b. .d8888b .d88b.
888 888 888 "888 "88b 888 "88b 888P" "88b d88P" d88""88b
888 888 888 888 888 888 888 888 .d888888 888 888 888
Y88b 888 888 888 888 888 d88P 888 888 888 Y88b. Y88..88P
"Y88888 888 888 888 88888P" 888 "Y888888 "Y8888P "Y88P"
------------------------------------------------------------------
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).
This NuGet package includes build targets that extend the creation of a deploy package, which is generated by
Publishing from Visual Studio. The targets will only work once Publishing is configured, so if you don't use
Publish this won't affect you.
The following items will now be automatically included when creating a deploy package or publishing to the file
system: umbraco, config\splashes and global.asax.
Please read the release notes on our.umbraco.com:
https://our.umbraco.com/download/releases
- Umbraco
+11 -20
View File
@@ -1,39 +1,30 @@
_ _ __ __ ____ _____ _____ ____
| | | | \/ | _ \| __ \ /\ / ____/ __ \
_ _ __ __ ____ _____ _____ ____
| | | | \/ | _ \| __ \ /\ / ____/ __ \
| | | | \ / | |_) | |__) | / \ | | | | | |
| | | | |\/| | _ <| _ / / /\ \| | | | | |
| |__| | | | | |_) | | \ \ / ____ | |___| |__| |
\____/|_| |_|____/|_| \_/_/ \_\_____\____/
\____/|_| |_|____/|_| \_/_/ \_\_____\____/
----------------------------------------------------
*** IMPORTANT NOTICE FOR UPGRADES FROM VERSIONS BELOW 7.7.0 ***
Be sure to read the version specific upgrade information before proceeding:
https://our.umbraco.com/documentation/Getting-Started/Setup/Upgrading/version-specific#version-7-7-0
Depending on the version you are upgrading from, you may need to make some changes to your web.config
and you will need to be aware of the breaking changes listed there to see if these affect your installation.
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.
We've overwritten all the files in the Umbraco and Umbraco_Client folder, these have been backed up in
App_Data\NuGetBackup. We didn't overwrite the UI.xml file nor did we remove any files or folders that you or
a package might have added. Only the existing files were overwritten. If you customized anything then make
We've overwritten all the files in the Umbraco folder, these have been backed up in
App_Data\NuGetBackup. We didn't overwrite the UI.xml file nor did we remove any files or folders that you or
a package might have added. Only the existing files were overwritten. If you customized anything then make
sure to do a compare and merge with the NuGetBackup folder.
This NuGet package includes build targets that extend the creation of a deploy package, which is generated by
This NuGet package includes build targets that extend the creation of a deploy package, which is generated by
Publishing from Visual Studio. The targets will only work once Publishing is configured, so if you don't use
Publish this won't affect you.
The following items will now be automatically included when creating a deploy package or publishing to the file
system: umbraco, umbraco_client, config\splashes and global.asax.
The following items will now be automatically included when creating a deploy package or publishing to the file
system: umbraco, config\splashes and global.asax.
Please read the release notes on our.umbraco.com:
http://our.umbraco.com/contribute/releases
- Umbraco
- Umbraco
+153 -378
View File
@@ -1,420 +1,195 @@
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<configSections xdt:Transform="InsertIfMissing" />
<configSections>
<section name="BaseRestExtensions" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<section name="FileSystemProviders" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<section name="ExamineLuceneIndexSets" type="Examine.LuceneEngine.Config.IndexSets, Examine" requirePermission="false" xdt:Locator="Match(name)" xdt:Transform="SetAttributes(type,requirePermission)" />
<configSections xdt:Transform="InsertIfMissing" />
<configSections>
<sectionGroup name="applicationSettings" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<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" />
<section name="dashBoard" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<section name="HealthChecks" type="Umbraco.Core.Configuration.HealthChecks.HealthChecksSection, Umbraco.Core" requirePermission="false" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />
</sectionGroup>
</configSections>
<sectionGroup name="applicationSettings" xdt:Locator="Match(name)">
<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" />
<section name="BaseRestExtensions" type="Umbraco.Core.Configuration.BaseRest.BaseRestSection, Umbraco.Core" requirePermission="false" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />
<section name="FileSystemProviders" type="Umbraco.Core.Configuration.FileSystemProvidersSection, Umbraco.Core" requirePermission="false" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />
<section name="dashBoard" type="Umbraco.Core.Configuration.Dashboard.DashboardSection, Umbraco.Core" requirePermission="false" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />
<section name="HealthChecks" type="Umbraco.Core.Configuration.HealthChecks.HealthChecksSection, Umbraco.Core" requirePermission="false" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />
</sectionGroup>
</configSections>
<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>
<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" />
<add key="umbracoDefaultUILanguage" value="en-US" xdt:Locator="Match(key)" xdt:Transform="SetAttributes(value)" />
</appSettings>
<umbracoConfiguration xdt:Transform="InsertIfMissing">
<settings configSource="config\umbracoSettings.config" xdt:Locator="Match(configSource)" xdt:Transform="InsertIfMissing" />
<dashBoard configSource="config\Dashboard.config" xdt:Locator="Match(configSource)" xdt:Transform="Remove" />
<HealthChecks configSource="config\HealthChecks.config" xdt:Locator="Match(configSource)" xdt:Transform="InsertIfMissing" />
</umbracoConfiguration>
<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" />
<FileSystemProviders configSource="config\FileSystemProviders.config" xdt:Locator="Match(configSource)" xdt:Transform="InsertIfMissing" />
<dashBoard configSource="config\Dashboard.config" xdt:Locator="Match(configSource)" xdt:Transform="InsertIfMissing" />
<HealthChecks configSource="config\HealthChecks.config" xdt:Locator="Match(configSource)" xdt:Transform="InsertIfMissing" />
</umbracoConfiguration>
<system.data xdt:Transform="InsertIfMissing">
<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)" />
</DbProviderFactories>
</system.data>
<clientDependency xdt:Transform="RemoveAttributes(version)" />
<FileSystemProviders xdt:Transform="Remove" />
<BaseRestExtensions xdt:Transform="Remove" />
<system.web xdt:Transform="InsertIfMissing" />
<system.web>
<siteMap xdt:Transform="Remove" />
<httpRuntime xdt:Transform="InsertIfMissing" />
<httpRuntime maxRequestLength="51200" fcnMode="Single" xdt:Transform="SetAttributes(fcnMode,maxRequestLength)" />
<httpRuntime targetFramework="4.7.2" xdt:Locator="Condition(count(@targetFramework) != 1)" xdt:Transform="SetAttributes(targetFramework)" />
<system.data xdt:Transform="InsertIfMissing">
<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" />
<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)" />
</DbProviderFactories>
</system.data>
<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"/>>
<sessionState customProvider="DefaultSessionProvider" xdt:Locator="Match(customProvider)" xdt:Transform="Remove"/>
<compilation xdt:Transform="InsertIfMissing" />
<clientDependency xdt:Transform="RemoveAttributes(version)" />
<xhtmlConformance xdt:Transform="Remove" />
<system.web xdt:Transform="InsertIfMissing" />
<system.web>
<siteMap xdt:Transform="Remove" />
<siteMap xdt:Transform="InsertIfMissing">
<providers xdt:Transform="InsertIfMissing">
<remove name="MySqlSiteMapProvider" xdt:Transform="InsertIfMissing" />
</providers>
</siteMap>
<httpRuntime xdt:Transform="InsertIfMissing" />
<httpRuntime maxRequestLength="51200" fcnMode="Single" xdt:Transform="SetAttributes(fcnMode,maxRequestLength)" />
<httpRuntime targetFramework="4.5" xdt:Locator="Condition(count(@targetFramework) != 1)" xdt:Transform="SetAttributes(targetFramework)" />
<httpModules xdt:Transform="InsertIfMissing" />
<httpModules>
<add name="umbracoRequestModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<add name="umbracoBaseRequestModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<add name="viewstateMoverModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<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" />
</httpModules>
<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"/>>
<sessionState customProvider="DefaultSessionProvider" xdt:Locator="Match(customProvider)" xdt:Transform="Remove"/>
<compilation xdt:Transform="InsertIfMissing" />
<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.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" />
<add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" xdt:Locator="Match(assembly)" xdt:Transform="Remove" />
<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>
<httpHandlers xdt:Transform="InsertIfMissing" />
<httpHandlers>
<add path="GoogleSpellChecker.ashx" xdt:Locator="Match(path)" xdt:Transform="Remove" />
</httpHandlers>
</system.web>
<compilation>
<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>
<system.webServer xdt:Transform="InsertIfMissing" />
<system.webServer>
<modules xdt:Transform="InsertIfMissing" />
<modules runAllManagedModulesForAllRequests="true" xdt:Transform="SetAttributes(runAllManagedModulesForAllRequests)">
<remove name="umbracoRequestModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<remove name="viewstateMoverModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<remove name="umbracoBaseRequestModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<xhtmlConformance xdt:Transform="Remove" />
<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>
<httpModules xdt:Transform="InsertIfMissing" />
<httpModules>
<add name="umbracoRequestModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<add name="umbracoBaseRequestModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<add name="viewstateMoverModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<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" />
</httpModules>
<staticContent xdt:Transform="InsertIfMissing" />
<staticContent>
<remove fileExtension=".svg" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
<remove fileExtension=".woff" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
<remove fileExtension=".woff2" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
<mimeMap fileExtension=".woff2" mimeType="application/x-font-woff2" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
<remove fileExtension=".less" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
<mimeMap fileExtension=".less" mimeType="text/css" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
</staticContent>
<httpHandlers xdt:Transform="InsertIfMissing" />
<httpHandlers>
<add path="GoogleSpellChecker.ashx" xdt:Locator="Match(path)" xdt:Transform="Remove" />
</httpHandlers>
</system.web>
<handlers>
<remove name="SpellChecker" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<add name="SpellChecker" xdt:Locator="Match(name)" xdt:Transform="Remove" />
</handlers>
<system.webServer xdt:Transform="InsertIfMissing" />
<system.webServer>
<modules xdt:Transform="InsertIfMissing" />
<modules runAllManagedModulesForAllRequests="true" xdt:Transform="SetAttributes(runAllManagedModulesForAllRequests)">
<remove name="umbracoRequestModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<remove name="viewstateMoverModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<remove name="umbracoBaseRequestModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<remove name="WebDAVModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<!-- Inserts it as the first element. Also see http://stackoverflow.com/a/19041487/5018 -->
<remove name="WebDAVModule" xdt:Locator="Match(name)" xdt:Transform="Insert" />
<security xdt:Transform="InsertIfMissing">
<requestFiltering xdt:Transform="InsertIfMissing">
<requestLimits maxAllowedContentLength="52428800" xdt:Transform="InsertIfMissing" />
</requestFiltering>
</security>
<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>
</system.webServer>
<staticContent xdt:Transform="InsertIfMissing" />
<staticContent>
<remove fileExtension=".svg" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
<remove fileExtension=".woff" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
<remove fileExtension=".woff2" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
<mimeMap fileExtension=".woff2" mimeType="application/x-font-woff2" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
<remove fileExtension=".less" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
<mimeMap fileExtension=".less" mimeType="text/css" xdt:Locator="Match(fileExtension)" xdt:Transform="InsertIfMissing" />
</staticContent>
<runtime xdt:Transform="InsertIfMissing" />
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" xdt:Transform="InsertIfMissing" />
</runtime>
<handlers>
<remove name="SpellChecker" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<add name="SpellChecker" xdt:Locator="Match(name)" xdt:Transform="Remove" />
</handlers>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='HtmlAgilityPack')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='AutoMapper')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Net.Http')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='Newtonsoft.Json')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Web.Mvc')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Web.WebPages.Razor')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Web.Http')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='Microsoft.Owin')" xdt:Transform="Remove" />
<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='Microsoft.CodeAnalysis.CSharp')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='log4net')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Data.SqlServerCe')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.ValueTuple')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Net.Http.Formatting')" xdt:Transform="Remove" />
</assemblyBinding>
</runtime>
<security xdt:Transform="InsertIfMissing">
<requestFiltering xdt:Transform="InsertIfMissing">
<requestLimits maxAllowedContentLength="52428800" xdt:Transform="InsertIfMissing" />
</requestFiltering>
</security>
</system.webServer>
<runtime xdt:Transform="InsertIfMissing" />
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" xdt:Transform="InsertIfMissing" />
</runtime>
<runtime>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='HtmlAgilityPack')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='AutoMapper')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Net.Http')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='Newtonsoft.Json')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Web.Mvc')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Web.WebPages.Razor')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Web.Http')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='Microsoft.Owin')" xdt:Transform="Remove" />
<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='Microsoft.CodeAnalysis.CSharp')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='log4net')" xdt:Transform="Remove" />
<dependentAssembly xdt:Locator="Condition(./_defaultNamespace:assemblyIdentity/@name='System.Data.SqlServerCe')" xdt:Transform="Remove" />
</assemblyBinding>
</runtime>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="HtmlAgilityPack" publicKeyToken="bd319b19eaf3b43a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.4.9.5" newVersion="1.4.9.5" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="AutoMapper" publicKeyToken="be96cd2c38ef1005" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.3.1.0" newVersion="3.3.1.0" />
</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"/>
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<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 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" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</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" />
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.0.8.0" newVersion="2.0.8.0"/>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="System.Data.SqlServerCe" publicKeyToken="89845DCD8080CC91" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1"/>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.3.0" newVersion="1.2.3.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.web.webPages.razor xdt:Transform="Remove" />
<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)" />
</system.webServer>
</location>
<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)" />
</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)" />
</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)" />
</system.webServer>
</location>
</configuration>
@@ -1,11 +1,11 @@
<?xml version="1.0"?>
<applications xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<add alias="content" icon="traycontent" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="media" icon="traymedia" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="settings" icon="traysettings" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="developer" icon="traydeveloper" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="users" icon="trayusers" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="member" icon="traymember" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="forms" name="Forms" icon="icon-umb-contour" sortOrder="6" xdt:Locator="Match(alias)" xdt:Transform="InsertIfMissing" />
<add alias="translation" icon="traytranslation" sortOrder="7" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon,sortOrder)" />
</applications>
<add alias="content" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="media" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="settings" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="developer" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="users" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="member" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="forms" name="Forms" sortOrder="6" xdt:Locator="Match(alias)" xdt:Transform="InsertIfMissing" />
<add alias="translation" sortOrder="7" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon,sortOrder)" />
</applications>
-105
View File
@@ -1,105 +0,0 @@
param($installPath, $toolsPath, $package, $project)
Write-Host "installPath:" "${installPath}"
Write-Host "toolsPath:" "${toolsPath}"
Write-Host " "
if ($project) {
$dateTime = Get-Date -Format yyyyMMdd-HHmmss
# 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"
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
if(Test-Path $umbracoBinFolder) {
$umbracoBinBackupPath = Join-Path $backupPath "bin"
New-Item -ItemType Directory -Force -Path $umbracoBinBackupPath
robocopy $umbracoBinFolder $umbracoBinBackupPath /e /LOG:$copyLogsPath\UmbracoBinBackup.log
# 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 }
if(Test-Path $umbracoBinFolder\interfaces.dll) { Remove-Item $umbracoBinFolder\interfaces.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\log4net.dll) { Remove-Item $umbracoBinFolder\log4net.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Microsoft.ApplicationBlocks.Data.dll) { Remove-Item $umbracoBinFolder\Microsoft.ApplicationBlocks.Data.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\SQLCE4Umbraco.dll) { Remove-Item $umbracoBinFolder\SQLCE4Umbraco.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\System.Data.SqlServerCe.dll) { Remove-Item $umbracoBinFolder\System.Data.SqlServerCe.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\System.Data.SqlServerCe.Entity.dll) { Remove-Item $umbracoBinFolder\System.Data.SqlServerCe.Entity.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\TidyNet.dll) { Remove-Item $umbracoBinFolder\TidyNet.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\umbraco.dll) { Remove-Item $umbracoBinFolder\umbraco.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Umbraco.Core.dll) { Remove-Item $umbracoBinFolder\Umbraco.Core.dll -Force -Confirm:$false }
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 }
# Delete files Umbraco depends upon
$amd64Folder = Join-Path $umbracoBinFolder "amd64"
if(Test-Path $amd64Folder) { Remove-Item $amd64Folder -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 }
if(Test-Path $umbracoBinFolder\ClientDependency.Core.Mvc.dll) { Remove-Item $umbracoBinFolder\ClientDependency.Core.Mvc.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\CookComputing.XmlRpcV2.dll) { Remove-Item $umbracoBinFolder\CookComputing.XmlRpcV2.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Examine.dll) { Remove-Item $umbracoBinFolder\Examine.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\HtmlAgilityPack.dll) { Remove-Item $umbracoBinFolder\HtmlAgilityPack.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\ICSharpCode.SharpZipLib.dll) { Remove-Item $umbracoBinFolder\ICSharpCode.SharpZipLib.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\ImageProcessor.dll) { Remove-Item $umbracoBinFolder\ImageProcessor.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\ImageProcessor.Web.dll) { Remove-Item $umbracoBinFolder\ImageProcessor.Web.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Lucene.Net.dll) { Remove-Item $umbracoBinFolder\Lucene.Net.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Microsoft.IO.RecyclableMemoryStream.dll) { Remove-Item $umbracoBinFolder\Microsoft.IO.RecyclableMemoryStream.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 }
if(Test-Path $umbracoBinFolder\Microsoft.Owin.Security.Cookies.dll) { Remove-Item $umbracoBinFolder\Microsoft.Owin.Security.Cookies.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Microsoft.Owin.Security.OAuth.dll) { Remove-Item $umbracoBinFolder\Microsoft.Owin.Security.OAuth.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Microsoft.Web.Infrastructure.dll) { Remove-Item $umbracoBinFolder\Microsoft.Web.Infrastructure.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Microsoft.Web.Helpers.dll) { Remove-Item $umbracoBinFolder\Microsoft.Web.Helpers.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\Microsoft.Web.Mvc.FixedDisplayModes.dll) { Remove-Item $umbracoBinFolder\Microsoft.Web.Mvc.FixedDisplayModes.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\MiniProfiler.dll) { Remove-Item $umbracoBinFolder\MiniProfiler.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\MySql.Data.dll) { Remove-Item $umbracoBinFolder\MySql.Data.dll -Force -Confirm:$false }
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 }
if(Test-Path $umbracoBinFolder\System.Web.Helpers.dll) { Remove-Item $umbracoBinFolder\System.Web.Helpers.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\System.Web.Http.dll) { Remove-Item $umbracoBinFolder\System.Web.Http.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\System.Web.Http.WebHost.dll) { Remove-Item $umbracoBinFolder\System.Web.Http.WebHost.dll -Force -Confirm:$false }
if(Test-Path $umbracoBinFolder\System.Web.Mvc.dll) { Remove-Item $umbracoBinFolder\System.Web.Mvc.dll -Force -Confirm:$false }
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 }
}
}
+90 -162
View File
@@ -1,162 +1,90 @@
param($installPath, $toolsPath, $package, $project)
Write-Host "installPath:" "${installPath}"
Write-Host "toolsPath:" "${toolsPath}"
Write-Host " "
if ($project) {
$dateTime = Get-Date -Format yyyyMMdd-HHmmss
# 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"
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
Copy-Item $webConfigSource $backupPath -Force
# Backup config files folder
if(Test-Path $configFolder) {
$umbracoBackupPath = Join-Path $backupPath "Config"
New-Item -ItemType Directory -Force -Path $umbracoBackupPath
robocopy $configFolder $umbracoBackupPath /e /LOG:$copyLogsPath\ConfigBackup.log
}
# Copy umbraco and umbraco_files from package to project folder
$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 $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 $projectPath "Web.config"
if(Test-Path $destinationWebConfig)
{
Try
{
[xml]$config = Get-Content $destinationWebConfig
$config.configuration.appSettings.ChildNodes | ForEach-Object {
if($_.key -eq "umbracoConfigurationStatus")
{
# The web.config has an umbraco-specific appSetting in it
# don't overwrite it and let config transforms do their thing
$copyWebconfig = $false
}
}
}
Catch { }
}
if($copyWebconfig -eq $true)
{
$packageWebConfigSource = Join-Path $installPath "UmbracoFiles\Web.config"
Copy-Item $packageWebConfigSource $destinationWebConfig -Force
# Copy files that don't get automatically copied for Website projects
# We do this here, when copyWebconfig is true because we only want to do it for new installs
# If this is an upgrade then the files should already be there
$splashesSource = Join-Path $installPath "UmbracoFiles\Config\splashes\*.*"
$splashesDestination = Join-Path $projectPath "Config\splashes\"
New-Item $splashesDestination -Type directory
Copy-Item $splashesSource $splashesDestination -Force
$sqlCe64Source = Join-Path $installPath "UmbracoFiles\bin\amd64\*"
$sqlCe64Destination = Join-Path $projectPath "bin\amd64\"
Copy-Item $sqlCe64Source $sqlCe64Destination -Force
$sqlCex86Source = Join-Path $installPath "UmbracoFiles\bin\x86\*"
$sqlCex86Destination = Join-Path $projectPath "bin\x86\"
Copy-Item $sqlCex86source $sqlCex86Destination -Force
$umbracoUIXMLSource = Join-Path $installPath "UmbracoFiles\Umbraco\Config\Create\UI.xml"
$umbracoUIXMLDestination = Join-Path $projectPath "Umbraco\Config\Create\UI.xml"
Copy-Item $umbracoUIXMLSource $umbracoUIXMLDestination -Force
} else {
# This part only runs for upgrades
$upgradeViewSource = Join-Path $umbracoFolderSource "Views\install\*"
$upgradeView = Join-Path $umbracoFolder "Views\install\"
Write-Host "Copying2 ${upgradeViewSource} to ${upgradeView}"
Copy-Item $upgradeViewSource $upgradeView -Force
Try
{
# Disable tours for upgrades, presumably Umbraco experience is already available
$umbracoSettingsConfigPath = Join-Path $configFolder "umbracoSettings.config"
$content = (Get-Content $umbracoSettingsConfigPath).Replace('<tours enable="true">','<tours enable="false">')
# Saves with UTF-8 encoding without BOM which makes sure Umbraco can still read it
# Reference: https://stackoverflow.com/a/32951824/5018
[IO.File]::WriteAllLines($umbracoSettingsConfigPath, $content)
}
Catch
{
# Not a big problem if this fails, let it go
}
Try
{
$uiXmlConfigPath = Join-Path $umbracoFolder -ChildPath "Config" | Join-Path -ChildPath "create" | Join-Path -ChildPath "UI.xml"
$uiXmlFile = Join-Path $umbracoFolder -ChildPath "Config" | Join-Path -ChildPath "create" | Join-Path -ChildPath "UI.xml"
$uiXml = New-Object System.Xml.XmlDocument
$uiXml.PreserveWhitespace = $true
$uiXml.Load($uiXmlFile)
$createExists = $uiXml.SelectNodes("//nodeType[@alias='macros']/tasks/create")
if($createExists.Count -eq 0)
{
$macrosTasksNode = $uiXml.SelectNodes("//nodeType[@alias='macros']/tasks")
#Creating: <create assembly="umbraco" type="macroTasks" />
$createNode = $uiXml.CreateElement("create")
$createNode.SetAttribute("assembly", "umbraco")
$createNode.SetAttribute("type", "macroTasks")
$macrosTasksNode.AppendChild($createNode)
$uiXml.Save($uiXmlFile)
}
}
Catch { }
}
$installFolder = Join-Path $projectPath "Install"
if(Test-Path $installFolder) {
Remove-Item $installFolder -Force -Recurse -Confirm:$false
}
# Open appropriate readme
if($copyWebconfig -eq $true)
{
$DTE.ItemOperations.OpenFile($toolsPath + '\Readme.txt')
}
else
{
$DTE.ItemOperations.OpenFile($toolsPath + '\ReadmeUpgrade.txt')
}
}
param($installPath, $toolsPath, $package, $project)
Write-Host "installPath:" "${installPath}"
Write-Host "toolsPath:" "${toolsPath}"
Write-Host " "
if ($project) {
$dateTime = Get-Date -Format yyyyMMdd-HHmmss
# Create paths and list them
$projectPath = (Get-Item $project.Properties.Item("FullPath").Value).FullName
Write-Host "projectPath:" "${projectPath}"
$webConfigSource = Join-Path $projectPath "Web.config"
Write-Host "webConfigSource:" "${webConfigSource}"
$configFolder = Join-Path $projectPath "Config"
Write-Host "configFolder:" "${configFolder}"
# Copy umbraco and umbraco_files from package to project folder
$umbracoFolder = Join-Path $projectPath "Umbraco"
New-Item -ItemType Directory -Force -Path $umbracoFolder
$umbracoFolderSource = Join-Path $installPath "UmbracoFiles\Umbraco"
robocopy $umbracoFolderSource $umbracoFolder /is /it /e /xf UI.xml /LOG:$copyLogsPath\UmbracoCopy.log
$copyWebconfig = $true
$destinationWebConfig = Join-Path $projectPath "Web.config"
if(Test-Path $destinationWebConfig)
{
Try
{
[xml]$config = Get-Content $destinationWebConfig
$config.configuration.appSettings.ChildNodes | ForEach-Object {
if($_.key -eq "Umbraco.Core.ConfigurationStatus")
{
# The web.config has an umbraco-specific appSetting in it
# don't overwrite it and let config transforms do their thing
$copyWebconfig = $false
}
}
}
Catch { }
}
if($copyWebconfig -eq $true)
{
$packageWebConfigSource = Join-Path $installPath "UmbracoFiles\Web.config"
Copy-Item $packageWebConfigSource $destinationWebConfig -Force
# Copy files that don't get automatically copied for Website projects
# We do this here, when copyWebconfig is true because we only want to do it for new installs
# If this is an upgrade then the files should already be there
$splashesSource = Join-Path $installPath "UmbracoFiles\Config\splashes\*.*"
$splashesDestination = Join-Path $projectPath "Config\splashes\"
New-Item $splashesDestination -Type directory
Copy-Item $splashesSource $splashesDestination -Force
} else {
# This part only runs for upgrades
$upgradeViewSource = Join-Path $umbracoFolderSource "Views\install\*"
$upgradeView = Join-Path $umbracoFolder "Views\install\"
Write-Host "Copying2 ${upgradeViewSource} to ${upgradeView}"
Copy-Item $upgradeViewSource $upgradeView -Force
Try
{
# Disable tours for upgrades, presumably Umbraco experience is already available
$umbracoSettingsConfigPath = Join-Path $configFolder "umbracoSettings.config"
$content = (Get-Content $umbracoSettingsConfigPath).Replace('<tours enable="true">','<tours enable="false">')
# Saves with UTF-8 encoding without BOM which makes sure Umbraco can still read it
# Reference: https://stackoverflow.com/a/32951824/5018
[IO.File]::WriteAllLines($umbracoSettingsConfigPath, $content)
}
Catch
{
# Not a big problem if this fails, let it go
}
}
# Open appropriate readme
if($copyWebconfig -eq $true)
{
$DTE.ItemOperations.OpenFile($toolsPath + '\Readme.txt')
}
else
{
$DTE.ItemOperations.OpenFile($toolsPath + '\ReadmeUpgrade.txt')
}
}
@@ -1,20 +0,0 @@
<?xml version="1.0"?>
<log4net xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appender name="AsynchronousLog4NetAppender" xdt:Transform="Remove" xdt:Locator="Match(name)" />
<appender name="AsynchronousLog4NetAppender" type="Umbraco.Core.Logging.ParallelForwardingAppender,Umbraco.Core" xdt:Transform="Insert" >
<appender-ref ref="rollingFile" />
</appender>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender" xdt:Transform="InsertIfMissing">
<file value="App_Data\Logs\UmbracoTraceLog.txt" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<maximumFileSize value="5MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value=" %date [P%property{processId}/D%property{appDomainId}/T%thread] %-5level %logger - %message%newline" />
</layout>
<encoding value="utf-8" />
</appender>
</log4net>
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">>
<appSettings>
<add key="serilog:using:File" value="Umbraco.Core" xdt:Transform="SetAttributes(value)" xdt:Locator="Match(key)"/>
<add key="serilog:write-to:File.shared" xdt:Transform="Remove" xdt:Locator="Match(key)"/>
</appSettings>
</configuration>
@@ -1,146 +0,0 @@
<?xml version="1.0"?>
<trees xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--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" type="Umbraco.Web.Trees.PartialViewsTree, umbraco"
xdt:Locator="Match(application,alias,type)"
xdt:Transform="Remove()" />
<add application="settings" alias="partialViews" title="Partial Views" silent="false" initialize="true" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.PartialViewsTreeController, umbraco" sortOrder="2"
xdt:Locator="Match(application,alias)"
xdt:Transform="InsertIfMissing" />
<add application="settings" alias="scripts" title="Scripts" type="Umbraco.Web.Trees.ScriptTreeController, 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.Web.Trees.DictionaryTreeController, 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="packager" application="developer"
xdt:Locator="Match(application,alias)"
xdt:Transform="Remove" />
<add alias="packagerPackages" application="developer"
xdt:Locator="Match(application,alias)"
xdt:Transform="Remove" />
<add initialize="true" sortOrder="0" alias="packager" application="developer" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.PackagesTreeController, umbraco"
xdt:Locator="Match(application,alias)"
xdt:Transform="InsertIfMissing" />
<!-- Before 7.4 this tree had the alias 'dataType', without the 's' on the end, this is here to rename it -->
<add sortOrder="1" alias="dataTypes" application="developer" type="Umbraco.Web.Trees.DataTypeTreeController, umbraco"
xdt:Locator="Match(application,type)"
xdt:Transform="SetAttributes(alias,sortOrder)" />
<!-- Yes, set the sortOrder again, like above because.. sometimes apparently we already have a dataTypes node and we can't remove more than one.. if they're equal though (same alias,application and sortOrder) it doesn't throw an error -->
<add sortOrder="1" alias="dataTypes" application="developer"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes(sortOrder)" />
<add initialize="true" sortOrder="2" alias="macros" application="developer" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.MacroTreeController, umbraco"
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 initialize="true" sortOrder="5" alias="xslt" application="developer" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.XsltTreeController, umbraco"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="developer" alias="partialViewMacros" type="Umbraco.Web.Trees.PartialViewMacrosTree, umbraco"
xdt:Locator="Match(application,alias,type)"
xdt:Transform="Remove()" />
<add application="developer" alias="partialViewMacros" type="Umbraco.Web.Trees.PartialViewMacrosTreeController, 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="InsertIfMissing" />
<add application="developer" alias="python"
xdt:Locator="Match(application,alias)"
xdt:Transform="Remove" />
<!--Users-->
<add initialize="true" sortOrder="0" alias="users" application="users" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.UserTreeController, umbraco"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="users" alias="userTypes"
xdt:Locator="Match(application,alias)"
xdt:Transform="Remove" />
<add application="users" alias="userPermissions"
xdt:Locator="Match(application,alias)"
xdt:Transform="Remove" />
<!--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>
+92
View File
@@ -0,0 +1,92 @@
# this script should be dot-sourced into the build.ps1 scripts
# right after the parameters declaration
# ie
# . "$PSScriptRoot\build-bootstrap.ps1"
# THIS FILE IS DISTRIBUTED AS PART OF UMBRACO.BUILD
# DO NOT MODIFY IT - ALWAYS USED THE COMMON VERSION
# ################################################################
# BOOTSTRAP
# ################################################################
# reset errors
$error.Clear()
# ensure we have temp folder for downloads
$scriptRoot = "$PSScriptRoot"
$scriptTemp = "$scriptRoot\temp"
if (-not (test-path $scriptTemp)) { mkdir $scriptTemp > $null }
# get NuGet
$cache = 4
$nuget = "$scriptTemp\nuget.exe"
if (-not $local)
{
$source = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
if ((test-path $nuget) -and ((ls $nuget).CreationTime -lt [DateTime]::Now.AddDays(-$cache)))
{
Remove-Item $nuget -force -errorAction SilentlyContinue > $null
}
if (-not (test-path $nuget))
{
Write-Host "Download NuGet..."
Invoke-WebRequest $source -OutFile $nuget
if (-not $?) { throw "Failed to download NuGet." }
}
}
elseif (-not (test-path $nuget))
{
throw "Failed to locate NuGet.exe."
}
# NuGet notes
# As soon as we use -ConfigFile, NuGet uses that file, and only that file, and does not
# merge configuration from system level. See comments in NuGet.Client solution, class
# NuGet.Configuration.Settings, method LoadDefaultSettings.
# For NuGet to merge configurations, it needs to "find" the file in the current directory,
# or above. Which means we cannot really use -ConfigFile but instead have to have Umbraco's
# NuGet.config file at root, and always run NuGet.exe while at root or in a directory below
# root.
$solutionRoot = "$scriptRoot\.."
$testPwd = [System.IO.Path]::GetFullPath($pwd.Path) + "\"
$testRoot = [System.IO.Path]::GetFullPath($solutionRoot) + "\"
if (-not $testPwd.ToLower().StartsWith($testRoot.ToLower()))
{
throw "Cannot run outside of the solution's root."
}
# get the build system
if (-not $local)
{
$params = "-OutputDirectory", $scriptTemp, "-Verbosity", "quiet", "-PreRelease"
&$nuget install Umbraco.Build @params
if (-not $?) { throw "Failed to download Umbraco.Build." }
}
# ensure we have the build system
$ubuildPath = ls "$scriptTemp\Umbraco.Build.*" | sort -property CreationTime -descending | select -first 1
if (-not $ubuildPath)
{
throw "Failed to locate the build system."
}
# boot the build system
# this creates $global:ubuild
return &"$ubuildPath\ps\Boot.ps1"
# at that point the build.ps1 script must boot the build system
# eg
# $ubuild.Boot($ubuildPath.FullName, [System.IO.Path]::GetFullPath("$scriptRoot\.."),
# @{ Local = $local; With7Zip = $false; WithNode = $false },
# @{ continue = $continue })
# if (-not $?) { throw "Failed to boot the build system." }
#
# and it's good practice to report
# eg
# Write-Host "Umbraco.Whatever Build"
# Write-Host "Umbraco.Build v$($ubuild.BuildVersion)"
# eof
+44
View File
@@ -0,0 +1,44 @@
$uenv=build/build.ps1 -get
$src = "$($uenv.SolutionRoot)\src"
$tmp = $uenv.BuildTemp
$out = $uenv.BuildOutput
$DocFxJson = "$src\ApiDocs\docfx.json"
$DocFxSiteOutput = "$tmp\_site\*.*"
################ Do the UI docs
$uenv.CompileBelle()
"Moving to Umbraco.Web.UI.Client folder"
cd .\src\Umbraco.Web.UI.Client
"Generating the docs and waiting before executing the next commands"
& gulp docs | Out-Null
# change baseUrl
$BaseUrl = "https://our.umbraco.com/apidocs/v8/ui/"
$IndexPath = "./docs/api/index.html"
(Get-Content $IndexPath).replace('location.href.replace(rUrl, indexFile)', "`'" + $BaseUrl + "`'") | Set-Content $IndexPath
# zip it
& $uenv.BuildEnv.Zip a -tzip -r "$out\ui-docs.zip" "$src\Umbraco.Web.UI.Client\docs\api\*.*"
################ Do the c# docs
# Build the solution in debug mode
$SolutionPath = Join-Path -Path $src -ChildPath "umbraco.sln"
#$uenv.CompileUmbraco()
#restore nuget packages
$uenv.RestoreNuGet()
# run DocFx
$DocFx = $uenv.BuildEnv.DocFx
Write-Host "$DocFxJson"
& $DocFx metadata $DocFxJson
& $DocFx build $DocFxJson
# zip it
& $uenv.BuildEnv.Zip a -tzip -r "$out\csharp-docs.zip" $DocFxSiteOutput
+532 -56
View File
@@ -1,67 +1,543 @@
param (
param (
# get, don't execute
[Parameter(Mandatory=$false)]
[string]
$version,
[Alias("g")]
[switch] $get = $false,
# run local, don't download, assume everything is ready
[Parameter(Mandatory=$false)]
[Alias("mo")]
[switch]
$moduleOnly = $false
)
[Alias("l")]
[Alias("loc")]
[switch] $local = $false,
# the script can run either from the solution root,
# or from the ./build directory - anything else fails
if ([System.IO.Path]::GetFileName($pwd) -eq "build")
{
$mpath = [System.IO.Path]::GetDirectoryName($pwd) + "\build\Modules\"
}
else
{
$mpath = "$pwd\build\Modules\"
}
# enable docfx
[Parameter(Mandatory=$false)]
[Alias("doc")]
[switch] $docfx = $false,
# keep the build directories, don't clear them
[Parameter(Mandatory=$false)]
[Alias("c")]
[Alias("cont")]
[switch] $continue = $false,
# look for the module and throw if not found
if (-not [System.IO.Directory]::Exists($mpath + "Umbraco.Build"))
{
Write-Error "Could not locate Umbraco build Powershell module."
break
}
# execute a command
[Parameter(Mandatory=$false, ValueFromRemainingArguments=$true)]
[String[]]
$command
)
# add the module path (if not already there)
if (-not $env:PSModulePath.Contains($mpath))
{
$env:PSModulePath = "$mpath;$env:PSModulePath"
}
# ################################################################
# BOOTSTRAP
# ################################################################
# force-import (or re-import) the module
Write-Host "Import Umbraco build Powershell module"
Import-Module Umbraco.Build -Force -DisableNameChecking
# create and boot the buildsystem
$ubuild = &"$PSScriptRoot\build-bootstrap.ps1"
if (-not $?) { return }
$ubuild.Boot($PSScriptRoot,
@{ Local = $local; WithDocFx = $docfx },
@{ Continue = $continue })
if ($ubuild.OnError()) { return }
# module only?
if ($moduleOnly)
{
if (-not [string]::IsNullOrWhiteSpace($version))
Write-Host "Umbraco Cms Build"
Write-Host "Umbraco.Build v$($ubuild.BuildVersion)"
# ################################################################
# TASKS
# ################################################################
$ubuild.DefineMethod("SetMoreUmbracoVersion",
{
Write-Host "(module only: ignoring version parameter)"
}
else
param ( $semver )
$release = "" + $semver.Major + "." + $semver.Minor + "." + $semver.Patch
Write-Host "Update IIS Express port in csproj"
$updater = New-Object "Umbraco.Build.ExpressPortUpdater"
$csproj = "$($this.SolutionRoot)\src\Umbraco.Web.UI\Umbraco.Web.UI.csproj"
$updater.Update($csproj, $release)
})
$ubuild.DefineMethod("SandboxNode",
{
Write-Host "(module only)"
$global:node_path = $env:path
$nodePath = $this.BuildEnv.NodePath
$gitExe = (Get-Command git).Source
if (-not $gitExe) { $gitExe = (Get-Command git).Path }
$gitPath = [System.IO.Path]::GetDirectoryName($gitExe)
$env:path = "$nodePath;$gitPath"
$global:node_nodepath = $this.ClearEnvVar("NODEPATH")
$global:node_npmcache = $this.ClearEnvVar("NPM_CONFIG_CACHE")
$global:node_npmprefix = $this.ClearEnvVar("NPM_CONFIG_PREFIX")
# https://github.com/gruntjs/grunt-contrib-connect/issues/235
$this.SetEnvVar("NODE_NO_HTTP2", "1")
})
$ubuild.DefineMethod("RestoreNode",
{
$env:path = $node_path
$this.SetEnvVar("NODEPATH", $node_nodepath)
$this.SetEnvVar("NPM_CONFIG_CACHE", $node_npmcache)
$this.SetEnvVar("NPM_CONFIG_PREFIX", $node_npmprefix)
$ignore = $this.ClearEnvVar("NODE_NO_HTTP2")
})
$ubuild.DefineMethod("CompileBelle",
{
$src = "$($this.SolutionRoot)\src"
$log = "$($this.BuildTemp)\belle.log"
Write-Host "Compile Belle"
Write-Host "Logging to $log"
# get a temp clean node env (will restore)
$this.SandboxNode()
# stupid PS is going to gather all "warnings" in $error
# so we have to take care of it else they'll bubble and kill the build
if ($error.Count -gt 0) { return }
try {
Push-Location "$($this.SolutionRoot)\src\Umbraco.Web.UI.Client"
Write-Output "" > $log
Write-Output "### node version is:" > $log
node -v >> $log 2>&1
if (-not $?) { throw "Failed to report node version." }
Write-Output "### npm version is:" >> $log 2>&1
npm -v >> $log 2>&1
if (-not $?) { throw "Failed to report npm version." }
Write-Output "### clean npm cache" >> $log 2>&1
npm cache clean --force >> $log 2>&1
$error.Clear() # that one can fail 'cos security bug - ignore
Write-Output "### npm install" >> $log 2>&1
npm install >> $log 2>&1
Write-Output ">> $? $($error.Count)" >> $log 2>&1
# Don't really care about the messages from npm install making us think there are errors
$error.Clear()
Write-Output "### gulp build for version $($this.Version.Release)" >> $log 2>&1
npx gulp build --buildversion=$this.Version.Release >> $log 2>&1
if (-not $?) { throw "Failed to build" } # that one is expected to work
} finally {
Pop-Location
# FIXME: should we filter the log to find errors?
#get-content .\build.tmp\belle.log | %{ if ($_ -match "build") { write $_}}
# restore
$this.RestoreNode()
}
# setting node_modules folder to hidden
# used to prevent VS13 from crashing on it while loading the websites project
# also makes sure aspnet compiler does not try to handle rogue files and chokes
# in VSO with Microsoft.VisualC.CppCodeProvider -related errors
# use get-item -force 'cos it might be hidden already
Write-Host "Set hidden attribute on node_modules"
$dir = Get-Item -force "$src\Umbraco.Web.UI.Client\node_modules"
$dir.Attributes = $dir.Attributes -bor ([System.IO.FileAttributes]::Hidden)
})
$ubuild.DefineMethod("CompileUmbraco",
{
$buildConfiguration = "Release"
$src = "$($this.SolutionRoot)\src"
$log = "$($this.BuildTemp)\msbuild.umbraco.log"
if ($this.BuildEnv.VisualStudio -eq $null)
{
throw "Build environment does not provide VisualStudio."
}
Write-Host "Compile Umbraco"
Write-Host "Logging to $log"
# beware of the weird double \\ at the end of paths
# see http://edgylogic.com/blog/powershell-and-external-commands-done-right/
&$this.BuildEnv.VisualStudio.MsBuild "$src\Umbraco.Web.UI\Umbraco.Web.UI.csproj" `
/p:WarningLevel=0 `
/p:Configuration=$buildConfiguration `
/p:Platform=AnyCPU `
/p:UseWPP_CopyWebApplication=True `
/p:PipelineDependsOnBuild=False `
/p:OutDir="$($this.BuildTemp)\bin\\" `
/p:WebProjectOutputDir="$($this.BuildTemp)\WebApp\\" `
/p:Verbosity=minimal `
/t:Clean`;Rebuild `
/tv:"$($this.BuildEnv.VisualStudio.ToolsVersion)" `
/p:UmbracoBuild=True `
> $log
if (-not $?) { throw "Failed to compile Umbraco.Web.UI." }
# /p:UmbracoBuild tells the csproj that we are building from PS, not VS
})
$ubuild.DefineMethod("PrepareTests",
{
Write-Host "Prepare Tests"
# FIXME: - idea is to avoid rebuilding everything for tests
# but because of our weird assembly versioning (with .* stuff)
# everything gets rebuilt all the time...
#Copy-Files "$tmp\bin" "." "$tmp\tests"
# data
Write-Host "Copy data files"
if (-not (Test-Path -Path "$($this.BuildTemp)\tests\Packaging" ))
{
Write-Host "Create packaging directory"
mkdir "$($this.BuildTemp)\tests\Packaging" > $null
}
$this.CopyFiles("$($this.SolutionRoot)\src\Umbraco.Tests\Packaging\Packages", "*", "$($this.BuildTemp)\tests\Packaging\Packages")
# required for package install tests
if (-not (Test-Path -Path "$($this.BuildTemp)\tests\bin" ))
{
Write-Host "Create bin directory"
mkdir "$($this.BuildTemp)\tests\bin" > $null
}
})
$ubuild.DefineMethod("CompileTests",
{
$buildConfiguration = "Release"
$log = "$($this.BuildTemp)\msbuild.tests.log"
if ($this.BuildEnv.VisualStudio -eq $null)
{
throw "Build environment does not provide VisualStudio."
}
Write-Host "Compile Tests"
Write-Host "Logging to $log"
# beware of the weird double \\ at the end of paths
# see http://edgylogic.com/blog/powershell-and-external-commands-done-right/
&$this.BuildEnv.VisualStudio.MsBuild "$($this.SolutionRoot)\src\Umbraco.Tests\Umbraco.Tests.csproj" `
/p:WarningLevel=0 `
/p:Configuration=$buildConfiguration `
/p:Platform=AnyCPU `
/p:UseWPP_CopyWebApplication=True `
/p:PipelineDependsOnBuild=False `
/p:OutDir="$($this.BuildTemp)\tests\\" `
/p:Verbosity=minimal `
/t:Build `
/tv:"$($this.BuildEnv.VisualStudio.ToolsVersion)" `
/p:UmbracoBuild=True `
> $log
if (-not $?) { throw "Failed to compile tests." }
# /p:UmbracoBuild tells the csproj that we are building from PS
})
$ubuild.DefineMethod("PreparePackages",
{
Write-Host "Prepare Packages"
$src = "$($this.SolutionRoot)\src"
$tmp = "$($this.BuildTemp)"
$out = "$($this.BuildOutput)"
$buildConfiguration = "Release"
# restore web.config
$this.TempRestoreFile("$src\Umbraco.Web.UI\web.config")
# cleanup build
Write-Host "Clean build"
$this.RemoveFile("$tmp\bin\*.dll.config")
$this.RemoveFile("$tmp\WebApp\bin\*.dll.config")
# cleanup presentation
Write-Host "Cleanup presentation"
$this.RemoveDirectory("$tmp\WebApp\umbraco.presentation")
# create directories
Write-Host "Create directories"
mkdir "$tmp\Configs" > $null
mkdir "$tmp\Configs\Lang" > $null
mkdir "$tmp\WebApp\App_Data" > $null
#mkdir "$tmp\WebApp\Media" > $null
#mkdir "$tmp\WebApp\Views" > $null
# copy various files
Write-Host "Copy xml documentation"
Copy-Item -force "$tmp\bin\*.xml" "$tmp\WebApp\bin"
Write-Host "Copy transformed configs and langs"
# note: exclude imageprocessor/*.config as imageprocessor pkg installs them
$this.CopyFiles("$tmp\WebApp\config", "*.config", "$tmp\Configs", `
{ -not $_.RelativeName.StartsWith("imageprocessor") })
$this.CopyFiles("$tmp\WebApp\config", "*.js", "$tmp\Configs")
$this.CopyFiles("$tmp\WebApp\config\lang", "*.xml", "$tmp\Configs\Lang")
$this.CopyFile("$tmp\WebApp\web.config", "$tmp\Configs\web.config.transform")
Write-Host "Copy transformed web.config"
$this.CopyFile("$src\Umbraco.Web.UI\web.$buildConfiguration.Config.transformed", "$tmp\WebApp\web.config")
# offset the modified timestamps on all umbraco dlls, as WebResources
# break if date is in the future, which, due to timezone offsets can happen.
Write-Host "Offset dlls timestamps"
Get-ChildItem -r "$tmp\*.dll" | ForEach-Object {
$_.CreationTime = $_.CreationTime.AddHours(-11)
$_.LastWriteTime = $_.LastWriteTime.AddHours(-11)
}
# copy libs
Write-Host "Copy SqlCE libraries"
$nugetPackages = $env:NUGET_PACKAGES
if (-not $nugetPackages)
{
$nugetPackages = [System.Environment]::ExpandEnvironmentVariables("%userprofile%\.nuget\packages")
}
$this.CopyFiles("$nugetPackages\umbraco.sqlserverce\4.0.0.1\runtimes\win-x86\native", "*.*", "$tmp\bin\x86")
$this.CopyFiles("$nugetPackages\umbraco.sqlserverce\4.0.0.1\runtimes\win-x64\native", "*.*", "$tmp\bin\amd64")
$this.CopyFiles("$nugetPackages\umbraco.sqlserverce\4.0.0.1\runtimes\win-x86\native", "*.*", "$tmp\WebApp\bin\x86")
$this.CopyFiles("$nugetPackages\umbraco.sqlserverce\4.0.0.1\runtimes\win-x64\native", "*.*", "$tmp\WebApp\bin\amd64")
# copy Belle
Write-Host "Copy Belle"
$this.CopyFiles("$src\Umbraco.Web.UI\umbraco\assets", "*", "$tmp\WebApp\umbraco\assets")
$this.CopyFiles("$src\Umbraco.Web.UI\umbraco\js", "*", "$tmp\WebApp\umbraco\js")
$this.CopyFiles("$src\Umbraco.Web.UI\umbraco\lib", "*", "$tmp\WebApp\umbraco\lib")
$this.CopyFiles("$src\Umbraco.Web.UI\umbraco\views", "*", "$tmp\WebApp\umbraco\views")
})
$ubuild.DefineMethod("PackageZip",
{
Write-Host "Create Zip packages"
$src = "$($this.SolutionRoot)\src"
$tmp = $this.BuildTemp
$out = $this.BuildOutput
Write-Host "Zip all binaries"
&$this.BuildEnv.Zip a -r "$out\UmbracoCms.AllBinaries.$($this.Version.Semver).zip" `
"$tmp\bin\*" `
"-x!dotless.Core.*" `
> $null
if (-not $?) { throw "Failed to zip UmbracoCms.AllBinaries." }
Write-Host "Zip cms"
&$this.BuildEnv.Zip a -r "$out\UmbracoCms.$($this.Version.Semver).zip" `
"$tmp\WebApp\*" `
"-x!dotless.Core.*" "-x!Content_Types.xml" "-x!*.pdb" `
> $null
if (-not $?) { throw "Failed to zip UmbracoCms." }
})
$ubuild.DefineMethod("PrepareBuild",
{
$this.TempStoreFile("$($this.SolutionRoot)\src\Umbraco.Web.UI\web.config")
Write-Host "Create clean web.config"
$this.CopyFile("$($this.SolutionRoot)\src\Umbraco.Web.UI\web.Template.config", "$($this.SolutionRoot)\src\Umbraco.Web.UI\web.config")
Write-host "Set environment"
$env:UMBRACO_VERSION=$this.Version.Semver.ToString()
$env:UMBRACO_RELEASE=$this.Version.Release
$env:UMBRACO_COMMENT=$this.Version.Comment
$env:UMBRACO_BUILD=$this.Version.Build
if ($args -and $args[0] -eq "vso")
{
Write-host "Set VSO environment"
# set environment variable for VSO
# https://github.com/Microsoft/vsts-tasks/issues/375
# https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md
Write-Host ("##vso[task.setvariable variable=UMBRACO_VERSION;]$($this.Version.Semver.ToString())")
Write-Host ("##vso[task.setvariable variable=UMBRACO_RELEASE;]$($this.Version.Release)")
Write-Host ("##vso[task.setvariable variable=UMBRACO_COMMENT;]$($this.Version.Comment)")
Write-Host ("##vso[task.setvariable variable=UMBRACO_BUILD;]$($this.Version.Build)")
Write-Host ("##vso[task.setvariable variable=UMBRACO_TMP;]$($this.SolutionRoot)\build.tmp")
}
})
$ubuild.DefineMethod("PrepareNuGet",
{
Write-Host "Prepare NuGet"
# add Web.config transform files to the NuGet package
Write-Host "Add web.config transforms to NuGet package"
mv "$($this.BuildTemp)\WebApp\Views\Web.config" "$($this.BuildTemp)\WebApp\Views\Web.config.transform"
})
$ubuild.DefineMethod("RestoreNuGet",
{
Write-Host "Restore NuGet"
Write-Host "Logging to $($this.BuildTemp)\nuget.restore.log"
&$this.BuildEnv.NuGet restore "$($this.SolutionRoot)\src\Umbraco.sln" > "$($this.BuildTemp)\nuget.restore.log"
if (-not $?) { throw "Failed to restore NuGet packages." }
})
$ubuild.DefineMethod("PackageNuGet",
{
$nuspecs = "$($this.SolutionRoot)\build\NuSpecs"
Write-Host "Create NuGet packages"
&$this.BuildEnv.NuGet Pack "$nuspecs\UmbracoCms.Core.nuspec" `
-Properties BuildTmp="$($this.BuildTemp)" `
-Version "$($this.Version.Semver.ToString())" `
-Symbols -SymbolPackageFormat snupkg -Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cmscore.log"
if (-not $?) { throw "Failed to pack NuGet UmbracoCms.Core." }
&$this.BuildEnv.NuGet Pack "$nuspecs\UmbracoCms.Web.nuspec" `
-Properties BuildTmp="$($this.BuildTemp)" `
-Version "$($this.Version.Semver.ToString())" `
-Symbols -SymbolPackageFormat snupkg -Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cmsweb.log"
if (-not $?) { throw "Failed to pack NuGet UmbracoCms.Web." }
&$this.BuildEnv.NuGet Pack "$nuspecs\UmbracoCms.nuspec" `
-Properties BuildTmp="$($this.BuildTemp)" `
-Version "$($this.Version.Semver.ToString())" `
-Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cms.log"
if (-not $?) { throw "Failed to pack NuGet UmbracoCms." }
# run hook
if ($this.HasMethod("PostPackageNuGet"))
{
Write-Host "Run PostPackageNuGet hook"
$this.PostPackageNuGet();
if (-not $?) { throw "Failed to run hook." }
}
})
$ubuild.DefineMethod("VerifyNuGet",
{
$this.VerifyNuGetConsistency(
("UmbracoCms", "UmbracoCms.Core", "UmbracoCms.Web"),
("Umbraco.Core", "Umbraco.Web", "Umbraco.Web.UI", "Umbraco.Examine"))
if ($this.OnError()) { return }
})
$ubuild.DefineMethod("PrepareAzureGallery",
{
Write-Host "Prepare Azure Gallery"
$this.CopyFile("$($this.SolutionRoot)\build\Azure\azuregalleryrelease.ps1", $this.BuildOutput)
})
$ubuild.DefineMethod("PrepareCSharpDocs",
{
Write-Host "Prepare C# Documentation"
$src = "$($this.SolutionRoot)\src"
$tmp = $this.BuildTemp
$out = $this.BuildOutput
$DocFxJson = Join-Path -Path $src "\ApiDocs\docfx.json"
$DocFxSiteOutput = Join-Path -Path $tmp "\_site\*.*"
#restore nuget packages
$this.RestoreNuGet()
# run DocFx
$DocFx = $this.BuildEnv.DocFx
& $DocFx metadata $DocFxJson
& $DocFx build $DocFxJson
# zip it
& $this.BuildEnv.Zip a -tzip -r "$out\csharp-docs.zip" $DocFxSiteOutput
})
$ubuild.DefineMethod("PrepareAngularDocs",
{
Write-Host "Prepare Angular Documentation"
$src = "$($this.SolutionRoot)\src"
$out = $this.BuildOutput
$this.CompileBelle()
"Moving to Umbraco.Web.UI.Client folder"
cd .\src\Umbraco.Web.UI.Client
"Generating the docs and waiting before executing the next commands"
& gulp docs | Out-Null
# change baseUrl
$BaseUrl = "https://our.umbraco.com/apidocs/v8/ui/"
$IndexPath = "./docs/api/index.html"
(Get-Content $IndexPath).replace('location.href.replace(rUrl, indexFile)', "`'" + $BaseUrl + "`'") | Set-Content $IndexPath
# zip it
& $this.BuildEnv.Zip a -tzip -r "$out\ui-docs.zip" "$src\Umbraco.Web.UI.Client\docs\api\*.*"
})
$ubuild.DefineMethod("Build",
{
$error.Clear()
$this.PrepareBuild()
if ($this.OnError()) { return }
$this.RestoreNuGet()
if ($this.OnError()) { return }
$this.CompileBelle()
if ($this.OnError()) { return }
$this.CompileUmbraco()
if ($this.OnError()) { return }
$this.PrepareTests()
if ($this.OnError()) { return }
$this.CompileTests()
if ($this.OnError()) { return }
# not running tests
$this.PreparePackages()
if ($this.OnError()) { return }
$this.PackageZip()
if ($this.OnError()) { return }
$this.VerifyNuGet()
if ($this.OnError()) { return }
$this.PrepareNuGet()
if ($this.OnError()) { return }
$this.PackageNuGet()
if ($this.OnError()) { return }
$this.PrepareAzureGallery()
if ($this.OnError()) { return }
$this.PostPackageHook()
if ($this.OnError()) { return }
Write-Host "Done"
})
$ubuild.DefineMethod("PostPackageHook",
{
# run hook
if ($this.HasMethod("PostPackage"))
{
Write-Host "Run PostPackage hook"
$this.PostPackage();
if (-not $?) { throw "Failed to run hook." }
}
})
# ################################################################
# RUN
# ################################################################
# configure
$ubuild.ReleaseBranches = @( "master" )
# run
if (-not $get)
{
if ($command.Length -eq 0)
{
$command = @( "Build" )
}
$ubuild.RunMethod($command);
if ($ubuild.OnError()) { return }
}
break
}
# get build environment
Write-Host "Setup Umbraco build Environment"
$uenv = Get-UmbracoBuildEnv
# set the version if any
if (-not [string]::IsNullOrWhiteSpace($version))
{
Write-Host "Set Umbraco version to $version"
Set-UmbracoVersion $version
}
# full umbraco build
Write-Host "Build Umbraco"
Build-Umbraco
if ($get) { return $ubuild }
-18
View File
@@ -1,18 +0,0 @@
# Usage: powershell .\setversion.ps1 7.6.8
# Or: powershell .\setversion 7.6.8-beta001
param (
[Parameter(Mandatory=$true)]
[string]
$version
)
# report
Write-Host "Setting Umbraco version to $version"
# import Umbraco Build PowerShell module - $pwd is ./build
$env:PSModulePath = "$pwd\Modules\;$env:PSModulePath"
Import-Module Umbraco.Build -Force -DisableNameChecking
# run commands
$version = Set-UmbracoVersion -Version $version
+61
View File
@@ -0,0 +1,61 @@
{
"metadata": [
{
"src": [
{
"src": "../",
"files": [
"Umbraco.Core/Umbraco.Core.csproj",
"Umbraco.Web/Umbraco.Web.csproj"
],
"exclude": [
"**/obj/**",
"**/bin/**"
]
}
],
"dest": "api",
"filter": "docfx.filter.yml"
}
],
"build": {
"content": [
{
"files": [
"api/**.yml",
"api/index.md"
]
},
{
"files": [
"articles/**.md",
"articles/**/toc.yml",
"toc.yml",
"*.md"
],
"exclude": [
"obj/**"
]
}
],
"overwrite": [
{
"files": [
"**.md"
],
"exclude": [
"obj/**"
]
}
],
"globalMetadata": {
"_appTitle": "Umbraco c# Api docs",
"_enableSearch": true,
"_disableContribution": false
},
"dest": "../../build.tmp/_site",
"template": [
"default", "umbracotemplate"
]
}
}
-7
View File
@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="umbracocore" value="https://www.myget.org/F/umbracocore/api/v3/index.json" />
</packageSources>
</configuration>
@@ -1,21 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("SqlCE4Umbraco")]
[assembly: AssemblyDescription("Umbraco specific Sql Ce Provider")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyProduct("Umbraco CMS")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("04436b0a-1dc6-4ee1-9d96-4c04f1a9f429")]
[assembly: InternalsVisibleTo("Umbraco.Tests")]
-101
View File
@@ -1,101 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{5BA5425F-27A7-4677-865E-82246498AA2E}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>SQLCE4Umbraco</RootNamespace>
<AssemblyName>SQLCE4Umbraco</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
<RestorePackages>true</RestorePackages>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Release\SQLCE4Umbraco.XML</DocumentationFile>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<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>
</Reference>
<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>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\SolutionInfo.cs">
<Link>Properties\SolutionInfo.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SqlCeApplicationBlock.cs" />
<Compile Include="SqlCeContextGuardian.cs" />
<Compile Include="SqlCEDataReader.cs" />
<Compile Include="SqlCEHelper.cs" />
<Compile Include="SqlCEInstaller.cs" />
<Compile Include="SqlCEParameter.cs" />
<Compile Include="SqlCeProviderException.cs" />
<Compile Include="SqlCETableUtility.cs" />
<Compile Include="SqlCEUtility.cs" />
</ItemGroup>
<ItemGroup>
<None Include="app.config">
<SubType>Designer</SubType>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\umbraco.datalayer\umbraco.datalayer.csproj">
<Project>{C7CB79F0-1C97-4B33-BFA7-00731B579AE2}</Project>
<Name>umbraco.datalayer</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -1,2 +0,0 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp50</s:String></wpf:ResourceDictionary>
-44
View File
@@ -1,44 +0,0 @@
/************************************************************************************
*
* Umbraco Data Layer
* MIT Licensed work
* ©2008 Ruben Verborgh
*
***********************************************************************************/
using System.Data.SqlServerCe;
using umbraco.DataLayer;
namespace SqlCE4Umbraco
{
/// <summary>
/// Class that adapts a SqlDataReader.SqlDataReader to a RecordsReaderAdapter.
/// </summary>
public class SqlCeDataReaderHelper : RecordsReaderAdapter<SqlCeDataReader>
{
#region Public Constructors
/// <summary>
/// Initializes a new instance of the <see cref="SqlServerDataReader"/> class.
/// </summary>
/// <param name="dataReader">The data reader.</param>
public SqlCeDataReaderHelper(System.Data.SqlServerCe.SqlCeDataReader dataReader) : base(dataReader) { }
#endregion
#region RecordsReaderAdapter Members
/// <summary>
/// Gets a value indicating whether this instance has records.
/// </summary>
/// <value>
/// <c>true</c> if this instance has records; otherwise, <c>false</c>.
/// </value>
public override bool HasRecords
{
get { return DataReader.HasRows; }
}
#endregion
}
}
-253
View File
@@ -1,253 +0,0 @@
/************************************************************************************
*
* Umbraco Data Layer
* MIT Licensed work
* ©2008 Ruben Verborgh
*
***********************************************************************************/
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlServerCe;
using System.Linq;
using System.Xml;
using System.Diagnostics;
using umbraco.DataLayer;
using umbraco.DataLayer.SqlHelpers.SqlServer;
namespace SqlCE4Umbraco
{
/// <summary>
/// Sql Helper for an SQL Server database.
/// </summary>
public class SqlCEHelper : SqlHelper<SqlCeParameter>
{
/// <summary>
/// Initializes a new instance of the <see cref="SqlCEHelper"/> class.
/// </summary>
/// <param name="connectionString">The connection string.</param>
public SqlCEHelper(string connectionString) : base(connectionString)
{
m_Utility = new SqlCEUtility(this);
}
/// <summary>
/// Checks if the actual database exists, if it doesn't then it will create it
/// </summary>
internal void CreateEmptyDatabase()
{
var localConnection = new SqlCeConnection(ConnectionString);
if (!System.IO.File.Exists(ReplaceDataDirectory(localConnection.Database)))
{
using (var sqlCeEngine = new SqlCeEngine(ConnectionString))
{
sqlCeEngine.CreateDatabase();
}
}
}
/// <summary>
/// Most likely only will be used for unit tests but will remove all tables from the database
/// </summary>
internal void ClearDatabase()
{
// drop constraints before tables to avoid exceptions
// looping on try/catching exceptions was not really nice
// http://stackoverflow.com/questions/536350/drop-all-the-tables-stored-procedures-triggers-constriants-and-all-the-depend
var localConnection = new SqlCeConnection(ConnectionString);
if (System.IO.File.Exists(ReplaceDataDirectory(localConnection.Database)))
{
List<string> tables;
// drop foreign keys
// SQL may need "where constraint_catalog=DB_NAME() and ..."
tables = new List<string>();
using (var reader = ExecuteReader("select table_name from information_schema.table_constraints where constraint_type = 'FOREIGN KEY' order by table_name"))
{
while (reader.Read()) tables.Add(reader.GetString("table_name").Trim());
}
foreach (var table in tables)
{
var constraints = new List<string>();
using (var reader = ExecuteReader("select constraint_name from information_schema.table_constraints where constraint_type = 'FOREIGN KEY' and table_name = '" + table + "' order by constraint_name"))
{
while (reader.Read()) constraints.Add(reader.GetString("constraint_name").Trim());
}
foreach (var constraint in constraints)
{
// SQL may need "[dbo].[table]"
ExecuteNonQuery("alter table [" + table + "] drop constraint [" + constraint + "]");
}
}
// drop primary keys
// SQL may need "where constraint_catalog=DB_NAME() and ..."
tables = new List<string>();
using (var reader = ExecuteReader("select table_name from information_schema.table_constraints where constraint_type = 'PRIMARY KEY' order by table_name"))
{
while (reader.Read()) tables.Add(reader.GetString("table_name").Trim());
}
foreach (var table in tables)
{
var constraints = new List<string>();
using (var reader = ExecuteReader("select constraint_name from information_schema.table_constraints where constraint_type = 'PRIMARY KEY' and table_name = '" + table + "' order by constraint_name"))
{
while (reader.Read()) constraints.Add(reader.GetString("constraint_name").Trim());
}
foreach (var constraint in constraints)
{
// SQL may need "[dbo].[table]"
ExecuteNonQuery("alter table [" + table + "] drop constraint [" + constraint + "]");
}
}
// drop tables
tables = new List<string>();
using (var reader = ExecuteReader("select table_name from information_schema.tables where table_type <> 'VIEW' order by table_name"))
{
while (reader.Read()) tables.Add(reader.GetString("table_name").Trim());
}
foreach (var table in tables)
{
ExecuteNonQuery("drop table [" + table + "]");
}
}
}
/// <summary>
/// Drops all foreign keys on a table.
/// </summary>
/// <param name="table">The name of the table.</param>
/// <remarks>To be used in unit tests.</remarks>
internal void DropForeignKeys(string table)
{
var constraints = new List<string>();
using (var reader = ExecuteReader("select constraint_name from information_schema.table_constraints where constraint_type = 'FOREIGN KEY' and table_name = '" + table + "' order by constraint_name"))
{
while (reader.Read()) constraints.Add(reader.GetString("constraint_name").Trim());
}
foreach (var constraint in constraints)
{
// SQL may need "[dbo].[table]"
ExecuteNonQuery("alter table [" + table + "] drop constraint [" + constraint + "]");
}
}
/// <summary>
/// Replaces the data directory with a local path.
/// </summary>
/// <param name="path">The path.</param>
/// <returns>A local path with the resolved 'DataDirectory' mapping.</returns>
private string ReplaceDataDirectory(string path)
{
if (!string.IsNullOrWhiteSpace(path) && path.Contains("|DataDirectory|"))
{
var dataDirectory = AppDomain.CurrentDomain.GetData("DataDirectory") as string;
if (!string.IsNullOrEmpty(dataDirectory))
{
path = path.Contains(@"|\")
? path.Replace("|DataDirectory|", dataDirectory)
: path.Replace("|DataDirectory|", dataDirectory + System.IO.Path.DirectorySeparatorChar);
}
}
return path;
}
/// <summary>
/// Creates a new parameter for use with this specific implementation of ISqlHelper.
/// </summary>
/// <param name="parameterName">Name of the parameter.</param>
/// <param name="value">Value of the parameter.</param>
/// <returns>A new parameter of the correct type.</returns>
/// <remarks>Abstract factory pattern</remarks>
public override IParameter CreateParameter(string parameterName, object value)
{
return new SqlCEParameter(parameterName, value);
}
/// <summary>
/// Executes a command that returns a single value.
/// </summary>
/// <param name="commandText">The command text.</param>
/// <param name="parameters">The parameters.</param>
/// <returns>The return value of the command.</returns>
protected override object ExecuteScalar(string commandText, SqlCeParameter[] parameters)
{
#if DEBUG && DebugDataLayer
// Log Query Execution
Trace.TraceInformation(GetType().Name + " SQL ExecuteScalar: " + commandText);
#endif
using (var cc = UseCurrentConnection)
{
return SqlCeApplicationBlock.ExecuteScalar(
(SqlCeConnection) cc.Connection, (SqlCeTransaction) cc.Transaction,
CommandType.Text, commandText, parameters);
}
}
/// <summary>
/// Executes a command and returns the number of rows affected.
/// </summary>
/// <param name="commandText">The command text.</param>
/// <param name="parameters">The parameters.</param>
/// <returns>
/// The number of rows affected by the command.
/// </returns>
protected override int ExecuteNonQuery(string commandText, SqlCeParameter[] parameters)
{
#if DEBUG && DebugDataLayer
// Log Query Execution
Trace.TraceInformation(GetType().Name + " SQL ExecuteNonQuery: " + commandText);
#endif
using (var cc = UseCurrentConnection)
{
return SqlCeApplicationBlock.ExecuteNonQuery(
(SqlCeConnection) cc.Connection, (SqlCeTransaction) cc.Transaction,
CommandType.Text, commandText, parameters);
}
}
/// <summary>
/// Executes a command and returns a records reader containing the results.
/// </summary>
/// <param name="commandText">The command text.</param>
/// <param name="parameters">The parameters.</param>
/// <returns>
/// A data reader containing the results of the command.
/// </returns>
protected override IRecordsReader ExecuteReader(string commandText, SqlCeParameter[] parameters)
{
#if DEBUG && DebugDataLayer
// Log Query Execution
Trace.TraceInformation(GetType().Name + " SQL ExecuteReader: " + commandText);
#endif
using (var cc = UseCurrentConnection)
{
return new SqlCeDataReaderHelper(SqlCeApplicationBlock.ExecuteReader(
(SqlCeConnection) cc.Connection, (SqlCeTransaction) cc.Transaction,
CommandType.Text, commandText, parameters));
}
}
internal IRecordsReader ExecuteReader(string commandText)
{
return ExecuteReader(commandText, new SqlCEParameter(string.Empty, string.Empty));
}
internal int ExecuteNonQuery(string commandText)
{
return ExecuteNonQuery(commandText, new SqlCEParameter(string.Empty, string.Empty));
}
}
}
-141
View File
@@ -1,141 +0,0 @@
/************************************************************************************
*
* Umbraco Data Layer
* MIT Licensed work
* ©2008 Ruben Verborgh
*
***********************************************************************************/
using System;
using System.Resources;
using SQLCE4Umbraco;
using umbraco.DataLayer.Utility.Installer;
using System.Diagnostics;
namespace SqlCE4Umbraco
{
/// <summary>
/// Database installer for an SQL Server data source.
/// </summary>
[Obsolete("The legacy installers are no longer used and will be removed from the codebase in the future")]
public class SqlCEInstaller : DefaultInstallerUtility<SqlCEHelper>
{
#region Private Constants
/// <summary>The latest database version this installer supports.</summary>
private const DatabaseVersion LatestVersionSupported = DatabaseVersion.Version4_8;
/// <summary>The specifications to determine the database version.</summary>
private static readonly VersionSpecs[] m_VersionSpecs = new VersionSpecs[] {
new VersionSpecs("SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS LEFT OUTER JOIN umbracoApp ON appAlias = appAlias WHERE CONSTRAINT_NAME = 'FK_umbracoUser2app_umbracoApp'", 0, DatabaseVersion.Version4_8),
new VersionSpecs("SELECT id FROM umbracoNode WHERE id = -21", 1, DatabaseVersion.Version4_1),
new VersionSpecs("SELECT action FROM umbracoAppTree",DatabaseVersion.Version4),
new VersionSpecs("SELECT description FROM cmsContentType",DatabaseVersion.Version3),
new VersionSpecs("SELECT id FROM sysobjects",DatabaseVersion.None) };
#endregion
#region Public Properties
/// <summary>
/// This ensures that the database exists, then runs the base method
/// </summary>
public override bool CanConnect
{
get
{
using (var sqlHelper = SqlHelper)
sqlHelper.CreateEmptyDatabase();
return base.CanConnect;
}
}
/// <summary>
/// Gets a value indicating whether the installer can upgrade the data source.
/// </summary>
/// <value>
/// <c>true</c> if the installer can upgrade the data source; otherwise, <c>false</c>.
/// </value>
/// <remarks>Empty data sources can't be upgraded, just installed.</remarks>
public override bool CanUpgrade
{
get
{
return CurrentVersion == DatabaseVersion.Version4_1;
}
}
#endregion
#region Protected Properties
/// <summary>
/// Gets the version specification for evaluation by DetermineCurrentVersion.
/// Only first matching specification is taken into account.
/// </summary>
/// <value>The version specifications.</value>
protected override VersionSpecs[] VersionSpecs
{
get { return m_VersionSpecs; }
}
#endregion
#region Public Constructors
/// <summary>
/// Initializes a new instance of the <see cref="SqlCEInstaller"/> class.
/// </summary>
/// <param name="sqlHelper">The SQL helper.</param>
public SqlCEInstaller(SqlCEHelper sqlHelper) : base(sqlHelper, LatestVersionSupported)
{ }
#endregion
#region DefaultInstaller Members
/// <summary>
/// Returns the sql to do a full install
/// </summary>
protected override string FullInstallSql
{
get { return string.Empty; }
}
/// <summary>
/// Returns the sql to do an upgrade
/// </summary>
protected override string UpgradeSql
{
get { return string.Empty; }
}
// We need to override this as the default way of detection a db connection checks for systables that doesn't exist
// in a CE db
protected override DatabaseVersion DetermineCurrentVersion()
{
DatabaseVersion version = base.DetermineCurrentVersion();
if (version != DatabaseVersion.Unavailable)
{
return version;
}
// verify connection
try
{
using (var sqlHelper = SqlHelper)
if (SqlCeApplicationBlock.VerifyConnection(sqlHelper.ConnectionString))
return DatabaseVersion.None;
}
catch (Exception e)
{
Trace.WriteLine(e.ToString());
}
return DatabaseVersion.Unavailable;
}
#endregion
}
}
-34
View File
@@ -1,34 +0,0 @@
/************************************************************************************
*
* Umbraco Data Layer
* MIT Licensed work
* ©2008 Ruben Verborgh
*
***********************************************************************************/
using System;
using System.Data.SqlServerCe;
using System.Data.SqlTypes;
using umbraco.DataLayer;
namespace SqlCE4Umbraco
{
/// <summary>
/// Parameter class for the SqlCEHelper.
/// </summary>
public class SqlCEParameter : SqlParameterAdapter<SqlCeParameter>
{
#region Public Constructors
/// <summary>
/// Initializes a new instance of the <see cref="SqlCEParameter"/> class.
/// </summary>
/// <param name="parameterName">Name of the parameter.</param>
/// <param name="value">Value of the parameter.</param>
public SqlCEParameter(string parameterName, object value)
: base(new SqlCeParameter(parameterName, value))
{ }
#endregion
}
}
-250
View File
@@ -1,250 +0,0 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using umbraco.DataLayer.Utility.Table;
using umbraco.DataLayer;
using umbraco;
namespace SqlCE4Umbraco
{
/// <summary>
/// SQL Server implementation of <see cref="DefaultTableUtility&lt;S&gt;"/>.
/// </summary>
[Obsolete("The legacy installers are no longer used and will be removed from the codebase in the future")]
public class SqlCETableUtility : DefaultTableUtility<SqlCEHelper>
{
/// <summary>
/// Initializes a new instance of the <see cref="SqlCETableUtility"/> class.
/// </summary>
/// <param name="sqlHelper">The SQL helper.</param>
public SqlCETableUtility(SqlCEHelper sqlHelper)
: base(sqlHelper)
{ }
#region DefaultTableUtility<SqlCEHelper> members
/// <summary>
/// Gets the table with the specified name.
/// </summary>
/// <param name="name">The name.</param>
/// <returns>The table, or <c>null</c> if no table with that name exists.</returns>
public override ITable GetTable(string name)
{
if (name == null)
throw new ArgumentNullException("name");
ITable table = null;
// get name in correct casing
using (var sqlHelper = SqlHelper)
name = sqlHelper.ExecuteScalar<string>("SELECT name FROM sys.tables WHERE name=@name",
sqlHelper.CreateParameter("name", name));
if (name != null)
{
table = new DefaultTable(name);
using (var sqlHelper = SqlHelper)
using (IRecordsReader reader = sqlHelper.ExecuteReader(
@"SELECT c.name AS Name, st.name AS DataType, c.max_length, c.is_nullable, c.is_identity
FROM sys.tables AS t
JOIN sys.columns AS c ON t.object_id = c.object_id
JOIN sys.schemas AS s ON s.schema_id = t.schema_id
JOIN sys.types AS ty ON ty.user_type_id = c.user_type_id
JOIN sys.types st ON ty.system_type_id = st.user_type_id
WHERE t.name = @name
ORDER BY c.column_id", sqlHelper.CreateParameter("name", name)))
{
while (reader.Read())
{
table.AddField(table.CreateField(reader.GetString("Name"), GetType(reader)));
}
}
}
return table;
}
/// <summary>
/// Saves or updates the table.
/// </summary>
/// <param name="table">The table to be saved.</param>
public override void SaveTable(ITable table)
{
if (table == null)
throw new ArgumentNullException("table");
ITable oldTable = GetTable(table.Name);
// create the table if it didn't exist, update fields otherwise
if (oldTable == null)
{
CreateTable(table);
}
else
{
foreach (IField field in table)
{
// create the field if it did't exist in the old table
if (oldTable.FindField(field.Name)==null)
{
CreateColumn(table, field);
}
}
}
}
#endregion
#region Protected Helper Methods
/// <summary>
/// Creates the table in the data source.
/// </summary>
/// <param name="table">The table.</param>
protected virtual void CreateTable(ITable table)
{
Debug.Assert(table != null);
// create enumerator and check for first field
IEnumerator<IField> fieldEnumerator = table.GetEnumerator();
bool hasNext = fieldEnumerator.MoveNext();
if(!hasNext)
throw new ArgumentException("The table must contain at least one field.");
// create query
StringBuilder createTableQuery = new StringBuilder();
using (var sqlHelper = SqlHelper)
createTableQuery.AppendFormat("CREATE TABLE [{0}] (", sqlHelper.EscapeString(table.Name));
// add fields
while (hasNext)
{
// add field name and type
IField field = fieldEnumerator.Current;
createTableQuery.Append('[').Append(field.Name).Append(']');
createTableQuery.Append(' ').Append(GetDatabaseType(field));
// append comma if a following field exists
hasNext = fieldEnumerator.MoveNext();
if (hasNext)
{
createTableQuery.Append(',');
}
}
// close CREATE TABLE x (...) bracket
createTableQuery.Append(')');
// execute query
try
{
using (var sqlHelper = SqlHelper)
sqlHelper.ExecuteNonQuery(createTableQuery.ToString());
}
catch (Exception executeException)
{
throw new UmbracoException(String.Format("Could not create table '{0}'.", table), executeException);
}
}
/// <summary>
/// Creates a new column in the table.
/// </summary>
/// <param name="table">The table.</param>
/// <param name="field">The field used to create the column.</param>
protected virtual void CreateColumn(ITable table, IField field)
{
Debug.Assert(table != null && field != null);
StringBuilder addColumnQuery = new StringBuilder();
using (var sqlHelper = SqlHelper)
addColumnQuery.AppendFormat("ALTER TABLE [{0}] ADD [{1}] {2}",
sqlHelper.EscapeString(table.Name),
sqlHelper.EscapeString(field.Name),
sqlHelper.EscapeString(GetDatabaseType(field)));
try
{
using (var sqlHelper = SqlHelper)
sqlHelper.ExecuteNonQuery(addColumnQuery.ToString());
}
catch (Exception executeException)
{
throw new UmbracoException(String.Format("Could not create column '{0}' in table '{1}'.",
field, table.Name), executeException);
}
}
/// <summary>
/// Gets the .Net type corresponding to the specified database data type.
/// </summary>
/// <param name="dataTypeReader">The data type reader.</param>
/// <returns>The .Net type</returns>
protected virtual Type GetType(IRecordsReader dataTypeReader)
{
string typeName = dataTypeReader.GetString("DataType");
switch (typeName)
{
case "bit": return typeof(bool);
case "tinyint": return typeof(byte);
case "datetime": return typeof(DateTime);
// TODO: return different decimal type according to field precision
case "decimal": return typeof(decimal);
case "uniqueidentifier": return typeof(Guid);
case "smallint": return typeof(Int16);
case "int": return typeof(Int32);
case "bigint": return typeof(Int64);
case "nvarchar": return typeof(string);
default:
throw new ArgumentException(String.Format("Cannot convert database type '{0}' to a .Net type.",
typeName));
}
}
/// <summary>
/// Gets the database type corresponding to the field, complete with field properties.
/// </summary>
/// <param name="field">The field.</param>
/// <returns>The database type.</returns>
protected virtual string GetDatabaseType(IField field)
{
StringBuilder fieldBuilder = new StringBuilder();
fieldBuilder.Append(GetDatabaseTypeName(field));
fieldBuilder.Append(field.HasProperty(FieldProperties.Identity) ? " IDENTITY(1,1)" : String.Empty);
fieldBuilder.Append(field.HasProperty(FieldProperties.NotNull) ? " NOT NULL" : " NULL");
return fieldBuilder.ToString();
}
/// <summary>
/// Gets the name of the database type, without field properties.
/// </summary>
/// <param name="field">The field.</param>
/// <returns></returns>
protected virtual string GetDatabaseTypeName(IField field)
{
switch (field.DataType.FullName)
{
case "System.Boolean": return "bit";
case "System.Byte": return "tinyint";
case "System.DateTime": return "datetime";
case "System.Decimal": return "decimal(28)";
case "System.Double": return "decimal(15)";
case "System.Single": return "decimal(7)";
case "System.Guid": return "uniqueidentifier";
case "System.Int16": return "smallint";
case "System.Int32": return "int";
case "System.Int64": return "bigint";;
case "System.String":
string type = "nvarchar";
return field.Size == 0 ? type : String.Format("{0}({1})", type, field.Size);
default:
throw new ArgumentException(String.Format("Cannot convert '{0}' to a database type.", field));
}
}
#endregion
}
}
-56
View File
@@ -1,56 +0,0 @@
/************************************************************************************
*
* Umbraco Data Layer
* MIT Licensed work
* ©2008 Ruben Verborgh
*
***********************************************************************************/
using System;
using umbraco.DataLayer.SqlHelpers.SqlServer;
using umbraco.DataLayer.Utility;
using umbraco.DataLayer.Utility.Installer;
using umbraco.DataLayer.Utility.Table;
namespace SqlCE4Umbraco
{
/// <summary>
/// Utility for an SQL Server data source.
/// </summary>
[Obsolete("The legacy installers are no longer used and will be removed from the codebase in the future")]
public class SqlCEUtility : DefaultUtility<SqlCEHelper>
{
#region Public Constructors
/// <summary>
/// Initializes a new instance of the <see cref="SqlServerUtility"/> class.
/// </summary>
/// <param name="sqlHelper">The SQL helper.</param>
public SqlCEUtility(SqlCEHelper sqlHelper) : base(sqlHelper)
{ }
#endregion
#region DefaultUtility Members
/// <summary>
/// Creates an installer.
/// </summary>
/// <returns>The SQL Server installer.</returns>
public override IInstallerUtility CreateInstaller()
{
return new SqlCEInstaller(SqlHelper);
}
/// <summary>
/// Creates a table utility.
/// </summary>
/// <returns>The table utility</returns>
public override ITableUtility CreateTableUtility()
{
return new SqlCETableUtility(SqlHelper);
}
#endregion
}
}
-270
View File
@@ -1,270 +0,0 @@
using System;
using System.Collections.Generic;
using System.Data.SqlServerCe;
using System.Data;
using System.Diagnostics;
using SQLCE4Umbraco;
namespace SqlCE4Umbraco
{
public class SqlCeApplicationBlock
{
/// <summary>
///
/// </summary>
/// <param name="connectionString"></param>
/// <param name="commandType"></param>
/// <param name="commandText"></param>
/// <param name="commandParameters"></param>
/// <returns></returns>
public static object ExecuteScalar(
string connectionString,
CommandType commandType,
string commandText,
params SqlCeParameter[] commandParameters
)
{
try
{
using (var conn = SqlCeContextGuardian.Open(connectionString))
{
return ExecuteScalarTry(conn, null, commandText, commandParameters);
}
}
catch (Exception ee)
{
throw new SqlCeProviderException("Error running Scalar: \nSQL Statement:\n" + commandText + "\n\nException:\n" + ee);
}
}
public static object ExecuteScalar(
SqlCeConnection conn, SqlCeTransaction trx,
CommandType commandType,
string commandText,
params SqlCeParameter[] commandParameters)
{
try
{
return ExecuteScalarTry(conn, trx, commandText, commandParameters);
}
catch (Exception ee)
{
throw new SqlCeProviderException("Error running Scalar: \nSQL Statement:\n" + commandText + "\n\nException:\n" + ee);
}
}
public static object ExecuteScalar(
SqlCeConnection conn,
CommandType commandType,
string commandText,
params SqlCeParameter[] commandParameters)
{
return ExecuteScalar(conn, null, commandType, commandText, commandParameters);
}
private static object ExecuteScalarTry(
SqlCeConnection conn, SqlCeTransaction trx,
string commandText,
params SqlCeParameter[] commandParameters)
{
object retVal;
using (var cmd = trx == null ? new SqlCeCommand(commandText, conn) : new SqlCeCommand(commandText, conn, trx))
{
AttachParameters(cmd, commandParameters);
Debug.WriteLine("---------------------------------SCALAR-------------------------------------");
Debug.WriteLine(commandText);
Debug.WriteLine("----------------------------------------------------------------------------");
retVal = cmd.ExecuteScalar();
}
return retVal;
}
/// <summary>
///
/// </summary>
/// <param name="connectionString"></param>
/// <param name="commandType"></param>
/// <param name="commandText"></param>
/// <param name="commandParameters"></param>
public static int ExecuteNonQuery(
string connectionString,
CommandType commandType,
string commandText,
params SqlCeParameter[] commandParameters
)
{
try
{
using (var conn = SqlCeContextGuardian.Open(connectionString))
{
return ExecuteNonQueryTry(conn, null, commandText, commandParameters);
}
}
catch (Exception ee)
{
throw new SqlCeProviderException("Error running NonQuery: \nSQL Statement:\n" + commandText + "\n\nException:\n" + ee.ToString());
}
}
public static int ExecuteNonQuery(
SqlCeConnection conn,
CommandType commandType,
string commandText,
params SqlCeParameter[] commandParameters
)
{
return ExecuteNonQuery(conn, null, commandType, commandText, commandParameters);
}
public static int ExecuteNonQuery(
SqlCeConnection conn, SqlCeTransaction trx,
CommandType commandType,
string commandText,
params SqlCeParameter[] commandParameters
)
{
try
{
return ExecuteNonQueryTry(conn, trx, commandText, commandParameters);
}
catch (Exception ee)
{
throw new SqlCeProviderException("Error running NonQuery: \nSQL Statement:\n" + commandText + "\n\nException:\n" + ee.ToString());
}
}
private static int ExecuteNonQueryTry(
SqlCeConnection conn, SqlCeTransaction trx,
string commandText,
params SqlCeParameter[] commandParameters)
{
// this is for multiple queries in the installer
if (commandText.Trim().StartsWith("!!!"))
{
commandText = commandText.Trim().Trim('!');
var commands = commandText.Split('|');
var currentCmd = string.Empty;
foreach (var command in commands)
{
try
{
currentCmd = command;
if (string.IsNullOrWhiteSpace(command)) continue;
var c = trx == null ? new SqlCeCommand(command, conn) : new SqlCeCommand(command, conn, trx);
c.ExecuteNonQuery();
}
catch (Exception e)
{
Debug.WriteLine("*******************************************************************");
Debug.WriteLine(currentCmd);
Debug.WriteLine(e);
Debug.WriteLine("*******************************************************************");
}
}
return 1;
}
Debug.WriteLine("----------------------------------------------------------------------------");
Debug.WriteLine(commandText);
Debug.WriteLine("----------------------------------------------------------------------------");
var cmd = new SqlCeCommand(commandText, conn);
AttachParameters(cmd, commandParameters);
var rowsAffected = cmd.ExecuteNonQuery();
return rowsAffected;
}
/// <summary>
///
/// </summary>
/// <param name="connectionString"></param>
/// <param name="commandType"></param>
/// <param name="commandText"></param>
/// <param name="commandParameters"></param>
/// <returns></returns>
public static SqlCeDataReader ExecuteReader(
string connectionString,
CommandType commandType,
string commandText,
params SqlCeParameter[] commandParameters
)
{
try
{
var conn = SqlCeContextGuardian.Open(connectionString);
return ExecuteReaderTry(conn, null, commandText, commandParameters);
}
catch (Exception ee)
{
throw new SqlCeProviderException("Error running Reader: \nSQL Statement:\n" + commandText + "\n\nException:\n" + ee.ToString());
}
}
public static SqlCeDataReader ExecuteReader(
SqlCeConnection conn,
CommandType commandType,
string commandText,
params SqlCeParameter[] commandParameters
)
{
return ExecuteReader(conn, commandType, commandText, commandParameters);
}
public static SqlCeDataReader ExecuteReader(
SqlCeConnection conn, SqlCeTransaction trx,
CommandType commandType,
string commandText,
params SqlCeParameter[] commandParameters
)
{
try
{
return ExecuteReaderTry(conn, trx, commandText, commandParameters);
}
catch (Exception ee)
{
throw new SqlCeProviderException("Error running Reader: \nSQL Statement:\n" + commandText + "\n\nException:\n" + ee.ToString());
}
}
private static SqlCeDataReader ExecuteReaderTry(
SqlCeConnection conn, SqlCeTransaction trx,
string commandText,
params SqlCeParameter[] commandParameters)
{
Debug.WriteLine("---------------------------------READER-------------------------------------");
Debug.WriteLine(commandText);
Debug.WriteLine("----------------------------------------------------------------------------");
try
{
var cmd = trx == null ? new SqlCeCommand(commandText, conn) : new SqlCeCommand(commandText, conn, trx);
AttachParameters(cmd, commandParameters);
return cmd.ExecuteReader();
}
catch
{
conn.Close();
throw;
}
}
public static bool VerifyConnection(string connectionString)
{
using (var conn = SqlCeContextGuardian.Open(connectionString))
{
return conn.State == ConnectionState.Open;
}
}
private static void AttachParameters(SqlCeCommand command, IEnumerable<SqlCeParameter> commandParameters)
{
foreach (var parameter in commandParameters)
{
if ((parameter.Direction == ParameterDirection.InputOutput) && (parameter.Value == null))
parameter.Value = DBNull.Value;
command.Parameters.Add(parameter);
}
}
}
}
-64
View File
@@ -1,64 +0,0 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Data.SqlServerCe;
using System.Linq;
using System.Text;
namespace SQLCE4Umbraco
{
public static class SqlCeContextGuardian
{
private static SqlCeConnection _constantOpenConnection;
private static readonly object Lock = new object();
// Awesome SQL CE 4 speed improvement by Erik Ejskov Jensen - SQL CE 4 MVP
// It's not an issue with SQL CE 4 that we never close the connection
public static SqlCeConnection Open(string connectionString)
{
var connectionStringBuilder = new DbConnectionStringBuilder();
try
{
connectionStringBuilder.ConnectionString = connectionString;
}
catch (Exception ex)
{
throw new ArgumentException("Bad connection string.", "connectionString", ex);
}
connectionStringBuilder.Remove("datalayer");
// SQL CE 4 performs better when there's always a connection open in the background
EnsureOpenBackgroundConnection(connectionStringBuilder.ConnectionString);
SqlCeConnection conn = new SqlCeConnection(connectionStringBuilder.ConnectionString);
conn.Open();
return conn;
}
/// <summary>
/// Sometimes we need to ensure this is closed especially in unit tests
/// </summary>
internal static void CloseBackgroundConnection()
{
if (_constantOpenConnection != null)
_constantOpenConnection.Close();
}
private static void EnsureOpenBackgroundConnection(string connectionString)
{
lock (Lock)
{
if (_constantOpenConnection == null)
{
_constantOpenConnection = new SqlCeConnection(connectionString);
_constantOpenConnection.Open();
}
else if (_constantOpenConnection.State != ConnectionState.Open)
_constantOpenConnection.Open();
}
}
}
}
@@ -1,20 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SqlCE4Umbraco
{
public class SqlCeProviderException : Exception
{
public SqlCeProviderException() : base()
{
}
public SqlCeProviderException(string message) : base(message)
{
}
}
}
-39
View File
@@ -1,39 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.8.0" newVersion="2.0.8.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup></configuration>
-4
View File
@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="SqlServerCE" version="4.0.0.1" targetFramework="net45" />
</packages>
+22 -15
View File
@@ -1,15 +1,22 @@
using System.Reflection;
using System.Resources;
[assembly: AssemblyCompany("Umbraco")]
[assembly: AssemblyCopyright("Copyright © Umbraco 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: NeutralResourcesLanguageAttribute("en-US")]
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("7.14.0")]
[assembly: AssemblyInformationalVersion("7.14.0")]
using System.Reflection;
using System.Resources;
[assembly: AssemblyCompany("Umbraco")]
[assembly: AssemblyCopyright("Copyright © Umbraco 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: NeutralResourcesLanguage("en-US")]
// versions
// read https://stackoverflow.com/questions/64602/what-are-differences-between-assemblyversion-assemblyfileversion-and-assemblyin
// note: do NOT change anything here manually, use the build scripts
// this is the ONLY ONE the CLR cares about for compatibility
// should change ONLY when "hard" breaking compatibility (manual change)
[assembly: AssemblyVersion("8.0.0")]
// these are FYI and changed automatically
[assembly: AssemblyFileVersion("8.1.0")]
[assembly: AssemblyInformationalVersion("8.1.0")]
-98
View File
@@ -1,98 +0,0 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Reflection;
using Umbraco.Core.Logging;
using Umbraco.Core.ObjectResolution;
using umbraco.interfaces;
namespace Umbraco.Core
{
/// <summary>
/// A resolver to return all IAction objects
/// </summary>
public sealed class ActionsResolver : LazyManyObjectsResolverBase<ActionsResolver, IAction>
{
/// <summary>
/// Constructor
/// </summary>
/// <param name="serviceProvider"></param>
/// <param name="logger"></param>
/// <param name="packageActions"></param>
internal ActionsResolver(IServiceProvider serviceProvider, ILogger logger, Func<IEnumerable<Type>> packageActions)
: base(serviceProvider, logger, packageActions)
{
}
/// <summary>
/// Gets the <see cref="IAction"/> implementations.
/// </summary>
public IEnumerable<IAction> Actions
{
get
{
return Values;
}
}
/// <summary>
/// This method will return a list of IAction's based on a string (letter) list. Each character in the list may represent
/// an IAction. This will associate any found IActions based on the Letter property of the IAction with the character being referenced.
/// </summary>
/// <param name="actions"></param>
/// <returns>returns a list of actions that have an associated letter found in the action string list</returns>
public IEnumerable<IAction> FromActionSymbols(IEnumerable<string> actions)
{
var allActions = Actions.ToArray();
return actions
.Select(c => allActions.FirstOrDefault(a => a.Letter.ToString(CultureInfo.InvariantCulture) == c))
.WhereNotNull()
.ToArray();
}
/// <summary>
/// Returns the string (letter) representation of the actions that make up the actions collection
/// </summary>
/// <returns></returns>
public IEnumerable<string> ToActionSymbols(IEnumerable<IAction> actions)
{
return actions.Select(x => x.Letter.ToString(CultureInfo.InvariantCulture)).ToArray();
}
/// <summary>
/// Gets an Action if it exists.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
internal IAction GetAction<T>()
where T : IAction
{
return Actions.SingleOrDefault(x => x.GetType() == typeof (T));
}
protected override IEnumerable<IAction> CreateInstances()
{
var actions = new List<IAction>();
var foundIActions = InstanceTypes;
foreach (var type in foundIActions)
{
IAction typeInstance;
var instance = type.GetProperty("Instance", BindingFlags.Public | BindingFlags.Static);
//if the singletone initializer is not found, try simply creating an instance of the IAction if it supports public constructors
if (instance == null)
typeInstance = ServiceProvider.GetService(type) as IAction;
else
typeInstance = instance.GetValue(null, null) as IAction;
if (typeInstance != null)
{
actions.Add(typeInstance);
}
}
return actions;
}
}
}
-20
View File
@@ -1,20 +0,0 @@
namespace Umbraco.Core
{
/// <summary>
/// Helper methods for Activation
/// </summary>
internal static class ActivatorHelper
{
/// <summary>
/// Creates an instance of a type using that type's default constructor.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public static T CreateInstance<T>() where T : class, new()
{
return new ActivatorServiceProvider().GetService(typeof (T)) as T;
}
}
}
@@ -1,12 +0,0 @@
using System;
namespace Umbraco.Core
{
internal class ActivatorServiceProvider : IServiceProvider
{
public object GetService(Type serviceType)
{
return Activator.CreateInstance(serviceType);
}
}
}
-506
View File
@@ -1,506 +0,0 @@
using Semver;
using System;
using System.Collections.Concurrent;
using System.Configuration;
using System.Threading;
using Umbraco.Core.Configuration;
using Umbraco.Core.Logging;
using Umbraco.Core.ObjectResolution;
using Umbraco.Core.Profiling;
using Umbraco.Core.Scoping;
using Umbraco.Core.Services;
using Umbraco.Core.Sync;
namespace Umbraco.Core
{
/// <summary>
/// the Umbraco Application context
/// </summary>
/// <remarks>
/// one per AppDomain, represents the global Umbraco application
/// </remarks>
public class ApplicationContext : IDisposable
{
/// <summary>
/// Constructor
/// </summary>
/// <param name="dbContext"></param>
/// <param name="serviceContext"></param>
/// <param name="cache"></param>
/// <param name="logger"></param>
public ApplicationContext(DatabaseContext dbContext, ServiceContext serviceContext, CacheHelper cache, ProfilingLogger logger)
{
if (dbContext == null) throw new ArgumentNullException("dbContext");
if (serviceContext == null) throw new ArgumentNullException("serviceContext");
if (cache == null) throw new ArgumentNullException("cache");
if (logger == null) throw new ArgumentNullException("logger");
_databaseContext = dbContext;
_services = serviceContext;
ApplicationCache = cache;
ProfilingLogger = logger;
Init();
}
/// <summary>
/// Constructor
/// </summary>
/// <param name="dbContext"></param>
/// <param name="serviceContext"></param>
/// <param name="cache"></param>
[Obsolete("Use the other constructor specifying a ProfilingLogger instead")]
public ApplicationContext(DatabaseContext dbContext, ServiceContext serviceContext, CacheHelper cache)
: this(dbContext, serviceContext, cache,
new ProfilingLogger(LoggerResolver.Current.Logger, ProfilerResolver.Current.Profiler))
{
}
/// <summary>
/// Creates a basic app context
/// </summary>
/// <param name="cache"></param>
[Obsolete("Use the other constructor specifying a ProfilingLogger instead")]
public ApplicationContext(CacheHelper cache)
{
if (cache == null) throw new ArgumentNullException("cache");
ApplicationCache = cache;
ProfilingLogger = new ProfilingLogger(LoggerResolver.Current.Logger, ProfilerResolver.Current.Profiler);
Init();
}
/// <summary>
/// Creates a basic app context
/// </summary>
/// <param name="cache"></param>
/// <param name="logger"></param>
public ApplicationContext(CacheHelper cache, ProfilingLogger logger)
{
if (cache == null) throw new ArgumentNullException("cache");
if (logger == null) throw new ArgumentNullException("logger");
ApplicationCache = cache;
ProfilingLogger = logger;
Init();
}
/// <summary>
/// A method used to set and/or ensure that a global ApplicationContext singleton is created.
/// </summary>
/// <param name="appContext">
/// The instance to set on the global application singleton
/// </param>
/// <param name="replaceContext">If set to true and the singleton is already set, it will be replaced</param>
/// <returns></returns>
/// <remarks>
/// This is NOT thread safe
/// </remarks>
public static ApplicationContext EnsureContext(ApplicationContext appContext, bool replaceContext)
{
if (Current != null)
{
if (!replaceContext)
return Current;
}
Current = appContext;
return Current;
}
/// <summary>
/// A method used to create and ensure that a global ApplicationContext singleton is created.
/// </summary>
/// <param name="cache"></param>
/// <param name="replaceContext">
/// If set to true will replace the current singleton instance - This should only be used for unit tests or on app
/// startup if for some reason the boot manager is not the umbraco boot manager.
/// </param>
/// <param name="dbContext"></param>
/// <param name="serviceContext"></param>
/// <returns></returns>
/// <remarks>
/// This is NOT thread safe
/// </remarks>
[Obsolete("Use the other method specifying an ProfilingLogger instead")]
public static ApplicationContext EnsureContext(DatabaseContext dbContext, ServiceContext serviceContext, CacheHelper cache, bool replaceContext)
{
if (Current != null)
{
if (!replaceContext)
return Current;
}
var ctx = new ApplicationContext(dbContext, serviceContext, cache);
Current = ctx;
return Current;
}
/// <summary>
/// A method used to create and ensure that a global ApplicationContext singleton is created.
/// </summary>
/// <param name="cache"></param>
/// <param name="logger"></param>
/// <param name="replaceContext">
/// If set to true will replace the current singleton instance - This should only be used for unit tests or on app
/// startup if for some reason the boot manager is not the umbraco boot manager.
/// </param>
/// <param name="dbContext"></param>
/// <param name="serviceContext"></param>
/// <returns></returns>
/// <remarks>
/// This is NOT thread safe
/// </remarks>
public static ApplicationContext EnsureContext(DatabaseContext dbContext, ServiceContext serviceContext, CacheHelper cache, ProfilingLogger logger, bool replaceContext)
{
if (Current != null)
{
if (!replaceContext)
return Current;
}
var ctx = new ApplicationContext(dbContext, serviceContext, cache, logger);
Current = ctx;
return Current;
}
/// <summary>
/// Singleton accessor
/// </summary>
public static ApplicationContext Current { get; internal set; }
/// <summary>
/// Gets the scope provider.
/// </summary>
internal IScopeProvider ScopeProvider { get { return _databaseContext == null ? null : _databaseContext.ScopeProvider; } }
/// <summary>
/// Returns the application wide cache accessor
/// </summary>
/// <remarks>
/// Any caching that is done in the application (app wide) should be done through this property
/// </remarks>
public CacheHelper ApplicationCache { get; private set; }
/// <summary>
/// Exposes the global ProfilingLogger - this should generally not be accessed via the UmbracoContext and should normally just be exposed
/// on most base classes or injected with IoC
/// </summary>
public ProfilingLogger ProfilingLogger { get; private set; }
// IsReady is set to true by the boot manager once it has successfully booted
// note - the original umbraco module checks on content.Instance in umbraco.dll
// now, the boot task that setup the content store ensures that it is ready
bool _isReady = false;
readonly ManualResetEventSlim _isReadyEvent = new ManualResetEventSlim(false);
private DatabaseContext _databaseContext;
private ServiceContext _services;
public bool IsReady
{
get
{
return _isReady;
}
internal set
{
AssertIsNotReady();
_isReady = value;
_isReadyEvent.Set();
}
}
public bool WaitForReady(int timeout)
{
return _isReadyEvent.WaitHandle.WaitOne(timeout);
}
// notes
// GlobalSettings.ConfigurationStatus returns the value that's in the web.config, so it's the "configured version"
// GlobalSettings.CurrentVersion returns the hard-coded "current version"
// the system is configured if they match
// if they don't, install runs, updates web.config (presumably) and updates GlobalSettings.ConfiguredStatus
public bool IsConfigured
{
get { return _configured.Value; }
}
/// <summary>
/// If the db is configured, there is a database context and there is an umbraco schema, but we are not 'configured' , then it means we are upgrading
/// </summary>
public bool IsUpgrading
{
get
{
if (IsConfigured == false
&& DatabaseContext != null
&& DatabaseContext.IsDatabaseConfigured)
{
var schemaresult = DatabaseContext.ValidateDatabaseSchema();
if (schemaresult.ValidTables.Count > 0) return true;
}
return false;
}
}
/// <summary>
/// The application url.
/// </summary>
/// <remarks>
/// The application url is the url that should be used by services to talk to the application,
/// eg keep alive or scheduled publishing services. It must exist on a global context because
/// some of these services may not run within a web context.
/// The format of the application url is:
/// - has a scheme (http or https)
/// - has the SystemDirectories.Umbraco path
/// - does not end with a slash
/// It is initialized on the first request made to the server, by UmbracoModule.EnsureApplicationUrl:
/// - if umbracoSettings:settings/web.routing/@umbracoApplicationUrl is set, use the value (new setting)
/// - if umbracoSettings:settings/scheduledTasks/@baseUrl is set, use the value (backward compatibility)
/// - otherwise, use the url of the (first) request.
/// Not locking, does not matter if several threads write to this.
/// See also issues:
/// - http://issues.umbraco.org/issue/U4-2059
/// - http://issues.umbraco.org/issue/U4-6788
/// - http://issues.umbraco.org/issue/U4-5728
/// - http://issues.umbraco.org/issue/U4-5391
/// </remarks>
public string UmbracoApplicationUrl
{
get
{
ApplicationUrlHelper.EnsureApplicationUrl(this);
return _umbracoApplicationUrl;
}
}
/// <summary>
/// Resets the url.
/// </summary>
public void ResetUmbracoApplicationUrl()
{
_umbracoApplicationUrl = null;
}
// ReSharper disable once InconsistentNaming
internal string _umbracoApplicationUrl;
internal ConcurrentDictionary<string, string> _umbracoApplicationDomains = new ConcurrentDictionary<string, string>();
internal string _umbracoApplicationDeploymentId;
private Lazy<bool> _configured;
internal MainDom MainDom { get; private set; }
private void Init()
{
MainDom = new MainDom(ProfilingLogger.Logger);
MainDom.Acquire();
//Create the lazy value to resolve whether or not the application is 'configured'
_configured = new Lazy<bool>(() =>
{
try
{
var configStatus = ConfigurationStatus;
var currentVersion = UmbracoVersion.GetSemanticVersion();
var ok =
//we are not configured if this is null
string.IsNullOrWhiteSpace(configStatus) == false
//they must match
&& configStatus == currentVersion;
if (ok)
{
//The versions are the same in config, but are they the same in the database. We can only check this
// if we have a db context available, if we don't then we are not installed anyways
if (DatabaseContext.IsDatabaseConfigured && DatabaseContext.CanConnect)
{
var found = Services.MigrationEntryService.FindEntry(Constants.System.UmbracoMigrationName, UmbracoVersion.GetSemanticVersion());
if (found == null)
{
//we haven't executed this migration in this environment, so even though the config versions match,
// this db has not been updated.
ProfilingLogger.Logger.Debug<ApplicationContext>(string.Format("The migration for version: '{0} has not been executed, there is no record in the database", currentVersion.ToSemanticString()));
ok = false;
}
}
}
else
{
ProfilingLogger.Logger.Debug<ApplicationContext>(string.Format("CurrentVersion different from configStatus: '{0}','{1}'", currentVersion.ToSemanticString(), configStatus));
}
return ok;
}
catch (Exception ex)
{
LogHelper.Error<ApplicationContext>("Error determining if application is configured, returning false", ex);
return false;
}
});
}
private string ConfigurationStatus
{
get
{
try
{
return ConfigurationManager.AppSettings["umbracoConfigurationStatus"];
}
catch
{
return String.Empty;
}
}
}
/// <summary>
/// Gets the Current Version of the Umbraco Site before an upgrade
/// by using the last/most recent Umbraco Migration that has been run
/// </summary>
/// <returns>A SemVersion of the latest Umbraco DB Migration run</returns>
/// <remarks>
/// NOTE: This existed in the InstallHelper previously but should really be here so it can be re-used if necessary
/// </remarks>
internal SemVersion CurrentVersion()
{
//Set a default version of 0.0.0
var version = new SemVersion(0);
//If we have a db context available, if we don't then we are not installed anyways
if (DatabaseContext.IsDatabaseConfigured && DatabaseContext.CanConnect)
version = DatabaseContext.ValidateDatabaseSchema().DetermineInstalledVersionByMigrations(Services.MigrationEntryService);
if (version != new SemVersion(0))
return version;
// If we aren't able to get a result from the umbracoMigrations table then use the version in web.config, if it's available
if (string.IsNullOrWhiteSpace(GlobalSettings.ConfigurationStatus))
return version;
var configuredVersion = GlobalSettings.ConfigurationStatus;
string currentComment = null;
var current = configuredVersion.Split('-');
if (current.Length > 1)
currentComment = current[1];
Version currentVersion;
if (Version.TryParse(current[0], out currentVersion))
{
version = new SemVersion(
currentVersion.Major,
currentVersion.Minor,
currentVersion.Build,
string.IsNullOrWhiteSpace(currentComment) ? null : currentComment,
currentVersion.Revision > 0 ? currentVersion.Revision.ToString() : null);
}
return version;
}
private void AssertIsNotReady()
{
if (this.IsReady)
throw new Exception("ApplicationContext has already been initialized.");
}
/// <summary>
/// Gets the current DatabaseContext
/// </summary>
/// <remarks>
/// Internal set is generally only used for unit tests
/// </remarks>
public DatabaseContext DatabaseContext
{
get
{
if (_databaseContext == null)
throw new InvalidOperationException("The DatabaseContext has not been set on the ApplicationContext");
return _databaseContext;
}
internal set { _databaseContext = value; }
}
/// <summary>
/// Gets the current ServiceContext
/// </summary>
/// <remarks>
/// Internal set is generally only used for unit tests
/// </remarks>
public ServiceContext Services
{
get
{
if (_services == null)
throw new InvalidOperationException("The ServiceContext has not been set on the ApplicationContext");
return _services;
}
internal set { _services = value; }
}
internal ServerRole GetCurrentServerRole()
{
var registrar = ServerRegistrarResolver.Current.Registrar as IServerRegistrar2;
return registrar == null ? ServerRole.Unknown : registrar.GetCurrentServerRole();
}
private volatile bool _disposed;
private readonly ReaderWriterLockSlim _disposalLocker = new ReaderWriterLockSlim();
/// <summary>
/// This will dispose and reset all resources used to run the application
/// </summary>
/// <remarks>
/// IMPORTANT: Never dispose this object if you require the Umbraco application to run, disposing this object
/// is generally used for unit testing and when your application is shutting down after you have booted Umbraco.
/// </remarks>
void IDisposable.Dispose()
{
// Only operate if we haven't already disposed
if (_disposed) return;
using (new WriteLock(_disposalLocker))
{
// Check again now we're inside the lock
if (_disposed) return;
//clear the cache
if (ApplicationCache != null)
{
ApplicationCache.RuntimeCache.ClearAllCache();
ApplicationCache.IsolatedRuntimeCache.ClearAllCaches();
}
//reset all resolvers
ResolverCollection.ResetAll();
//reset resolution itself (though this should be taken care of by resetting any of the resolvers above)
Resolution.Reset();
//reset the instance objects
this.ApplicationCache = null;
if (_databaseContext != null) //need to check the internal field here
{
if (_databaseContext.ScopeProvider.AmbientScope != null)
{
var scope = _databaseContext.ScopeProvider.AmbientScope;
scope.Dispose();
}
/*
if (DatabaseContext.IsDatabaseConfigured && DatabaseContext.Database != null)
{
DatabaseContext.Database.Dispose();
}
*/
}
this.DatabaseContext = null;
this.Services = null;
this._isReady = false; //set the internal field
// Indicate that the instance has been disposed.
_disposed = true;
}
}
}
}
-119
View File
@@ -1,119 +0,0 @@
namespace Umbraco.Core
{
/// <summary>
/// A plugin type that allows developers to execute code during the Umbraco bootup process
/// </summary>
/// <remarks>
/// Allows you to override the methods that you would like to execute code for: ApplicationInitialized, ApplicationStarting, ApplicationStarted.
///
/// By default none of these methods will execute if the Umbraco application is not configured or if the Umbraco database is not configured, however
/// if you need these methods to execute even if either of these are not configured you can override the properties:
/// ExecuteWhenApplicationNotConfigured and ExecuteWhenDatabaseNotConfigured
/// </remarks>
public abstract class ApplicationEventHandler : IApplicationEventHandler
{
public void OnApplicationInitialized(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
if (ShouldExecute(applicationContext))
{
ApplicationInitialized(umbracoApplication, applicationContext);
}
}
public void OnApplicationStarting(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
if (ShouldExecute(applicationContext))
{
ApplicationStarting(umbracoApplication, applicationContext);
}
}
public void OnApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
if (ShouldExecute(applicationContext))
{
ApplicationStarted(umbracoApplication, applicationContext);
}
}
/// <summary>
/// Overridable method to execute when the ApplicationContext is created and other static objects that require initialization have been setup
/// </summary>
/// <param name="umbracoApplication"></param>
/// <param name="applicationContext"></param>
protected virtual void ApplicationInitialized(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
}
/// <summary>
/// Overridable method to execute when All resolvers have been initialized but resolution is not frozen so they can be modified in this method
/// </summary>
/// <param name="umbracoApplication"></param>
/// <param name="applicationContext"></param>
protected virtual void ApplicationStarting(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
}
/// <summary>
/// Overridable method to execute when Bootup is completed, this allows you to perform any other bootup logic required for the application.
/// Resolution is frozen so now they can be used to resolve instances.
/// </summary>
/// <param name="umbracoApplication"></param>
/// <param name="applicationContext"></param>
protected virtual void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
}
/// <summary>
/// Determine if the methods should execute based on the configuration status of the application.
/// </summary>
/// <param name="applicationContext"></param>
/// <returns></returns>
private bool ShouldExecute(ApplicationContext applicationContext)
{
if (applicationContext.IsConfigured && applicationContext.DatabaseContext.IsDatabaseConfigured)
{
return true;
}
if (!applicationContext.IsConfigured && ExecuteWhenApplicationNotConfigured)
{
return true;
}
if (!applicationContext.DatabaseContext.IsDatabaseConfigured && ExecuteWhenDatabaseNotConfigured)
{
return true;
}
return false;
}
/// <summary>
/// A flag to determine if the overridable methods for this class will execute even if the
/// Umbraco application is not configured
/// </summary>
/// <remarks>
/// An Umbraco Application is not configured when it requires a new install or upgrade. When the latest version in the
/// assembly does not match the version in the config.
/// </remarks>
protected virtual bool ExecuteWhenApplicationNotConfigured
{
get { return false; }
}
/// <summary>
/// A flag to determine if the overridable methods for this class will execute even if the
/// Umbraco database is not configured
/// </summary>
/// <remarks>
/// The Umbraco database is not configured when we cannot connect to the database or when the database tables are not installed.
/// </remarks>
protected virtual bool ExecuteWhenDatabaseNotConfigured
{
get { return false; }
}
}
}
+72 -72
View File
@@ -1,72 +1,72 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
namespace Umbraco.Core
{
internal static class AssemblyExtensions
{
/// <summary>
/// Returns the file used to load the assembly
/// </summary>
/// <param name="assembly"></param>
/// <returns></returns>
public static FileInfo GetAssemblyFile(this Assembly assembly)
{
var codeBase = assembly.CodeBase;
var uri = new Uri(codeBase);
var path = uri.LocalPath;
return new FileInfo(path);
}
/// <summary>
/// Returns true if the assembly is the App_Code assembly
/// </summary>
/// <param name="assembly"></param>
/// <returns></returns>
public static bool IsAppCodeAssembly(this Assembly assembly)
{
if (assembly.FullName.StartsWith("App_Code"))
{
try
{
Assembly.Load("App_Code");
return true;
}
catch (FileNotFoundException)
{
//this will occur if it cannot load the assembly
return false;
}
}
return false;
}
/// <summary>
/// Returns true if the assembly is the compiled global asax.
/// </summary>
/// <param name="assembly"></param>
/// <returns></returns>
public static bool IsGlobalAsaxAssembly(this Assembly assembly)
{
//only way I can figure out how to test is by the name
return assembly.FullName.StartsWith("App_global.asax");
}
/// <summary>
/// Returns the file used to load the assembly
/// </summary>
/// <param name="assemblyName"></param>
/// <returns></returns>
public static FileInfo GetAssemblyFile(this AssemblyName assemblyName)
{
var codeBase = assemblyName.CodeBase;
var uri = new Uri(codeBase);
var path = uri.LocalPath;
return new FileInfo(path);
}
}
}
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
namespace Umbraco.Core
{
internal static class AssemblyExtensions
{
/// <summary>
/// Returns the file used to load the assembly
/// </summary>
/// <param name="assembly"></param>
/// <returns></returns>
public static FileInfo GetAssemblyFile(this Assembly assembly)
{
var codeBase = assembly.CodeBase;
var uri = new Uri(codeBase);
var path = uri.LocalPath;
return new FileInfo(path);
}
/// <summary>
/// Returns true if the assembly is the App_Code assembly
/// </summary>
/// <param name="assembly"></param>
/// <returns></returns>
public static bool IsAppCodeAssembly(this Assembly assembly)
{
if (assembly.FullName.StartsWith("App_Code"))
{
try
{
Assembly.Load("App_Code");
return true;
}
catch (FileNotFoundException)
{
//this will occur if it cannot load the assembly
return false;
}
}
return false;
}
/// <summary>
/// Returns true if the assembly is the compiled global asax.
/// </summary>
/// <param name="assembly"></param>
/// <returns></returns>
public static bool IsGlobalAsaxAssembly(this Assembly assembly)
{
//only way I can figure out how to test is by the name
return assembly.FullName.StartsWith("App_global.asax");
}
/// <summary>
/// Returns the file used to load the assembly
/// </summary>
/// <param name="assemblyName"></param>
/// <returns></returns>
public static FileInfo GetAssemblyFile(this AssemblyName assemblyName)
{
var codeBase = assemblyName.CodeBase;
var uri = new Uri(codeBase);
var path = uri.LocalPath;
return new FileInfo(path);
}
}
}
+6 -6
View File
@@ -69,11 +69,11 @@ namespace Umbraco.Core
public Task<IDisposable> LockAsync()
{
var wait = _semaphore != null
var wait = _semaphore != null
? _semaphore.WaitAsync()
: _semaphore2.WaitOneAsync();
return wait.IsCompleted
return wait.IsCompleted
? _releaserTask ?? Task.FromResult(CreateReleaser()) // anonymous vs named
: wait.ContinueWith((_, state) => (((AsyncLock) state).CreateReleaser()),
this, CancellationToken.None,
@@ -112,7 +112,7 @@ namespace Umbraco.Core
return _releaser ?? CreateReleaser(); // anonymous vs named
}
// note - before making those classes some structs, read
// note - before making those classes some structs, read
// about "impure methods" and mutating readonly structs...
private class NamedSemaphoreReleaser : CriticalFinalizerObject, IDisposable
@@ -140,9 +140,9 @@ namespace Umbraco.Core
_semaphore.Dispose();
}
// we WANT to release the semaphore because it's a system object, ie a critical
// we WANT to release the semaphore because it's a system object, ie a critical
// non-managed resource - and if it is not released then noone else can acquire
// the lock - so we inherit from CriticalFinalizerObject which means that the
// the lock - so we inherit from CriticalFinalizerObject which means that the
// finalizer "should" run in all situations - there is always a chance that it
// does not run and the semaphore remains "acquired" but then chances are the
// whole process (w3wp.exe...) is going down, at which point the semaphore will
@@ -200,4 +200,4 @@ namespace Umbraco.Core
}
}
}
}
}
+126 -166
View File
@@ -1,166 +1,126 @@
using System;
namespace Umbraco.Core
{
/// <summary>
/// Provides ways to create attempts.
/// </summary>
public static class Attempt
{
/// <summary>
/// Creates a successful attempt with a result.
/// </summary>
/// <typeparam name="T">The type of the attempted operation result.</typeparam>
/// <param name="result">The result of the attempt.</param>
/// <returns>The successful attempt.</returns>
public static Attempt<T> Succeed<T>(T result)
{
return Attempt<T>.Succeed(result);
}
/// <summary>
/// Creates a failed attempt with a result.
/// </summary>
/// <typeparam name="T">The type of the attempted operation result.</typeparam>
/// <param name="result">The result of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<T> Fail<T>(T result)
{
return Attempt<T>.Fail(result);
}
/// <summary>
/// Creates a failed attempt with a result and an exception.
/// </summary>
/// <typeparam name="T">The type of the attempted operation result.</typeparam>
/// <param name="result">The result of the attempt.</param>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<T> Fail<T>(T result, Exception exception)
{
return Attempt<T>.Fail(result, exception);
}
/// <summary>
/// Creates a successful or a failed attempt, with a result.
/// </summary>
/// <typeparam name="T">The type of the attempted operation result.</typeparam>
/// <param name="success">A value indicating whether the attempt is successful.</param>
/// <param name="result">The result of the attempt.</param>
/// <returns>The attempt.</returns>
public static Attempt<T> If<T>(bool success, T result)
{
return Attempt<T>.SucceedIf(success, result);
}
/// <summary>
/// Executes an attempt function, with callbacks.
/// </summary>
/// <typeparam name="T">The type of the attempted operation result.</typeparam>
/// <param name="attempt">The attempt returned by the attempt function.</param>
/// <param name="onSuccess">An action to execute in case the attempt succeeds.</param>
/// <param name="onFail">An action to execute in case the attempt fails.</param>
/// <returns>The outcome of the attempt.</returns>
/// <remarks>Runs <paramref name="onSuccess"/> or <paramref name="onFail"/> depending on the
/// whether the attempt function reports a success or a failure.</remarks>
public static Outcome Try<T>(Attempt<T> attempt, Action<T> onSuccess, Action<Exception> onFail = null)
{
if (attempt.Success)
{
onSuccess(attempt.Result);
return Outcome.Success;
}
if (onFail != null)
{
onFail(attempt.Exception);
}
return Outcome.Failure;
}
/// <summary>
/// Represents the outcome of an attempt.
/// </summary>
/// <remarks>Can be a success or a failure, and allows for attempts chaining.</remarks>
public struct Outcome
{
private readonly bool _success;
/// <summary>
/// Gets an outcome representing a success.
/// </summary>
public static readonly Outcome Success = new Outcome(true);
/// <summary>
/// Gets an outcome representing a failure.
/// </summary>
public static readonly Outcome Failure = new Outcome(false);
private Outcome(bool success)
{
_success = success;
}
/// <summary>
/// Executes another attempt function, if the previous one failed, with callbacks.
/// </summary>
/// <typeparam name="T">The type of the attempted operation result.</typeparam>
/// <param name="nextFunction">The attempt function to execute, returning an attempt.</param>
/// <param name="onSuccess">An action to execute in case the attempt succeeds.</param>
/// <param name="onFail">An action to execute in case the attempt fails.</param>
/// <returns>If it executes, returns the outcome of the attempt, else returns a success outcome.</returns>
/// <remarks>
/// <para>Executes only if the previous attempt failed, else does not execute and return a success outcome.</para>
/// <para>If it executes, then runs <paramref name="onSuccess"/> or <paramref name="onFail"/> depending on the
/// whether the attempt function reports a success or a failure.</para>
/// </remarks>
public Outcome OnFailure<T>(Func<Attempt<T>> nextFunction, Action<T> onSuccess, Action<Exception> onFail = null)
{
return _success
? Success
: ExecuteNextFunction(nextFunction, onSuccess, onFail);
}
/// <summary>
/// Executes another attempt function, if the previous one succeeded, with callbacks.
/// </summary>
/// <typeparam name="T">The type of the attempted operation result.</typeparam>
/// <param name="nextFunction">The attempt function to execute, returning an attempt.</param>
/// <param name="onSuccess">An action to execute in case the attempt succeeds.</param>
/// <param name="onFail">An action to execute in case the attempt fails.</param>
/// <returns>If it executes, returns the outcome of the attempt, else returns a failed outcome.</returns>
/// <remarks>
/// <para>Executes only if the previous attempt succeeded, else does not execute and return a success outcome.</para>
/// <para>If it executes, then runs <paramref name="onSuccess"/> or <paramref name="onFail"/> depending on the
/// whether the attempt function reports a success or a failure.</para>
/// </remarks>
public Outcome OnSuccess<T>(Func<Attempt<T>> nextFunction, Action<T> onSuccess, Action<Exception> onFail = null)
{
return _success
? ExecuteNextFunction(nextFunction, onSuccess, onFail)
: Failure;
}
private static Outcome ExecuteNextFunction<T>(Func<Attempt<T>> nextFunction, Action<T> onSuccess, Action<Exception> onFail = null)
{
var attempt = nextFunction();
if (attempt.Success)
{
onSuccess(attempt.Result);
return Success;
}
if (onFail != null)
{
onFail(attempt.Exception);
}
return Failure;
}
}
}
}
using System;
namespace Umbraco.Core
{
/// <summary>
/// Provides ways to create attempts.
/// </summary>
public static class Attempt
{
// note:
// cannot rely on overloads only to differentiate between with/without status
// in some cases it will always be ambiguous, so be explicit w/ 'WithStatus' methods
/// <summary>
/// Creates a successful attempt with a result.
/// </summary>
/// <typeparam name="TResult">The type of the attempted operation result.</typeparam>
/// <param name="result">The result of the attempt.</param>
/// <returns>The successful attempt.</returns>
public static Attempt<TResult> Succeed<TResult>(TResult result)
{
return Attempt<TResult>.Succeed(result);
}
/// <summary>
/// Creates a successful attempt with a result and a status.
/// </summary>
/// <typeparam name="TResult">The type of the attempted operation result.</typeparam>
/// <typeparam name="TStatus">The type of the attempted operation status.</typeparam>
/// <param name="status">The status of the attempt.</param>
/// <param name="result">The result of the attempt.</param>
/// <returns>The successful attempt.</returns>
public static Attempt<TResult, TStatus> SucceedWithStatus<TResult, TStatus>(TStatus status, TResult result)
{
return Attempt<TResult, TStatus>.Succeed(status, result);
}
/// <summary>
/// Creates a failed attempt.
/// </summary>
/// <typeparam name="TResult">The type of the attempted operation result.</typeparam>
/// <returns>The failed attempt.</returns>
public static Attempt<TResult> Fail<TResult>()
{
return Attempt<TResult>.Fail();
}
/// <summary>
/// Creates a failed attempt with a result.
/// </summary>
/// <typeparam name="TResult">The type of the attempted operation result.</typeparam>
/// <param name="result">The result of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<TResult> Fail<TResult>(TResult result)
{
return Attempt<TResult>.Fail(result);
}
/// <summary>
/// Creates a failed attempt with a result and a status.
/// </summary>
/// <typeparam name="TResult">The type of the attempted operation result.</typeparam>
/// <typeparam name="TStatus">The type of the attempted operation status.</typeparam>
/// <param name="status">The status of the attempt.</param>
/// <param name="result">The result of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<TResult, TStatus> FailWithStatus<TResult, TStatus>(TStatus status, TResult result)
{
return Attempt<TResult, TStatus>.Fail(status, result);
}
/// <summary>
/// Creates a failed attempt with a result and an exception.
/// </summary>
/// <typeparam name="TResult">The type of the attempted operation result.</typeparam>
/// <param name="result">The result of the attempt.</param>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<TResult> Fail<TResult>(TResult result, Exception exception)
{
return Attempt<TResult>.Fail(result, exception);
}
/// <summary>
/// Creates a failed attempt with a result, an exception and a status.
/// </summary>
/// <typeparam name="TResult">The type of the attempted operation result.</typeparam>
/// <typeparam name="TStatus">The type of the attempted operation status.</typeparam>
/// <param name="status">The status of the attempt.</param>
/// <param name="result">The result of the attempt.</param>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<TResult, TStatus> FailWithStatus<TResult, TStatus>(TStatus status, TResult result, Exception exception)
{
return Attempt<TResult, TStatus>.Fail(status, result, exception);
}
/// <summary>
/// Creates a successful or a failed attempt, with a result.
/// </summary>
/// <typeparam name="TResult">The type of the attempted operation result.</typeparam>
/// <param name="condition">A value indicating whether the attempt is successful.</param>
/// <param name="result">The result of the attempt.</param>
/// <returns>The attempt.</returns>
public static Attempt<TResult> If<TResult>(bool condition, TResult result)
{
return Attempt<TResult>.If(condition, result);
}
/// <summary>
/// Creates a successful or a failed attempt, with a result.
/// </summary>
/// <typeparam name="TResult">The type of the attempted operation result.</typeparam>
/// <typeparam name="TStatus">The type of the attempted operation status.</typeparam>
/// <param name="condition">A value indicating whether the attempt is successful.</param>
/// <param name="succStatus">The status of the successful attempt.</param>
/// <param name="failStatus">The status of the failed attempt.</param>
/// <param name="result">The result of the attempt.</param>
/// <returns>The attempt.</returns>
public static Attempt<TResult, TStatus> IfWithStatus<TResult, TStatus>(bool condition, TStatus succStatus, TStatus failStatus, TResult result)
{
return Attempt<TResult, TStatus>.If(condition, succStatus, failStatus, result);
}
}
}
+133
View File
@@ -0,0 +1,133 @@
using System;
namespace Umbraco.Core
{
/// <summary>
/// Represents the result of an operation attempt.
/// </summary>
/// <typeparam name="TResult">The type of the attempted operation result.</typeparam>
[Serializable]
public struct Attempt<TResult>
{
// private - use Succeed() or Fail() methods to create attempts
private Attempt(bool success, TResult result, Exception exception)
{
Success = success;
Result = result;
Exception = exception;
}
/// <summary>
/// Gets a value indicating whether this <see cref="Attempt{TResult}"/> was successful.
/// </summary>
public bool Success { get; }
/// <summary>
/// Gets the exception associated with an unsuccessful attempt.
/// </summary>
public Exception Exception { get; }
/// <summary>
/// Gets the attempt result.
/// </summary>
public TResult Result { get; }
/// <summary>
/// Gets the attempt result, if successful, else a default value.
/// </summary>
public TResult ResultOr(TResult value) => Success ? Result : value;
// optimize, use a singleton failed attempt
private static readonly Attempt<TResult> Failed = new Attempt<TResult>(false, default(TResult), null);
/// <summary>
/// Creates a successful attempt.
/// </summary>
/// <returns>The successful attempt.</returns>
public static Attempt<TResult> Succeed()
{
return new Attempt<TResult>(true, default(TResult), null);
}
/// <summary>
/// Creates a successful attempt with a result.
/// </summary>
/// <param name="result">The result of the attempt.</param>
/// <returns>The successful attempt.</returns>
public static Attempt<TResult> Succeed(TResult result)
{
return new Attempt<TResult>(true, result, null);
}
/// <summary>
/// Creates a failed attempt.
/// </summary>
/// <returns>The failed attempt.</returns>
public static Attempt<TResult> Fail()
{
return Failed;
}
/// <summary>
/// Creates a failed attempt with an exception.
/// </summary>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<TResult> Fail(Exception exception)
{
return new Attempt<TResult>(false, default(TResult), exception);
}
/// <summary>
/// Creates a failed attempt with a result.
/// </summary>
/// <param name="result">The result of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<TResult> Fail(TResult result)
{
return new Attempt<TResult>(false, result, null);
}
/// <summary>
/// Creates a failed attempt with a result and an exception.
/// </summary>
/// <param name="result">The result of the attempt.</param>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<TResult> Fail(TResult result, Exception exception)
{
return new Attempt<TResult>(false, result, exception);
}
/// <summary>
/// Creates a successful or a failed attempt.
/// </summary>
/// <param name="condition">A value indicating whether the attempt is successful.</param>
/// <returns>The attempt.</returns>
public static Attempt<TResult> If(bool condition)
{
return condition ? new Attempt<TResult>(true, default(TResult), null) : Failed;
}
/// <summary>
/// Creates a successful or a failed attempt, with a result.
/// </summary>
/// <param name="condition">A value indicating whether the attempt is successful.</param>
/// <param name="result">The result of the attempt.</param>
/// <returns>The attempt.</returns>
public static Attempt<TResult> If(bool condition, TResult result)
{
return new Attempt<TResult>(condition, result, null);
}
/// <summary>
/// Implicitly operator to check if the attempt was successful without having to access the 'success' property
/// </summary>
/// <param name="a"></param>
/// <returns></returns>
public static implicit operator bool(Attempt<TResult> a)
{
return a.Success;
}
}
}
+142
View File
@@ -0,0 +1,142 @@
using System;
namespace Umbraco.Core
{
/// <summary>
/// Represents the result of an operation attempt.
/// </summary>
/// <typeparam name="TResult">The type of the attempted operation result.</typeparam>
/// <typeparam name="TStatus">The type of the attempted operation status.</typeparam>
[Serializable]
public struct Attempt<TResult, TStatus>
{
/// <summary>
/// Gets a value indicating whether this <see cref="Attempt{TResult,TStatus}"/> was successful.
/// </summary>
public bool Success { get; }
/// <summary>
/// Gets the exception associated with an unsuccessful attempt.
/// </summary>
public Exception Exception { get; }
/// <summary>
/// Gets the attempt result.
/// </summary>
public TResult Result { get; }
/// <summary>
/// Gets the attempt status.
/// </summary>
public TStatus Status { get; }
// private - use Succeed() or Fail() methods to create attempts
private Attempt(bool success, TResult result, TStatus status, Exception exception)
{
Success = success;
Result = result;
Status = status;
Exception = exception;
}
/// <summary>
/// Creates a successful attempt.
/// </summary>
/// <param name="status">The status of the attempt.</param>
/// <returns>The successful attempt.</returns>
public static Attempt<TResult, TStatus> Succeed(TStatus status)
{
return new Attempt<TResult, TStatus>(true, default(TResult), status, null);
}
/// <summary>
/// Creates a successful attempt with a result.
/// </summary>
/// <param name="status">The status of the attempt.</param>
/// <param name="result">The result of the attempt.</param>
/// <returns>The successful attempt.</returns>
public static Attempt<TResult, TStatus> Succeed(TStatus status, TResult result)
{
return new Attempt<TResult, TStatus>(true, result, status, null);
}
/// <summary>
/// Creates a failed attempt.
/// </summary>
/// <param name="status">The status of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<TResult, TStatus> Fail(TStatus status)
{
return new Attempt<TResult, TStatus>(false, default(TResult), status, null);
}
/// <summary>
/// Creates a failed attempt with an exception.
/// </summary>
/// <param name="status">The status of the attempt.</param>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<TResult, TStatus> Fail(TStatus status, Exception exception)
{
return new Attempt<TResult, TStatus>(false, default(TResult), status, exception);
}
/// <summary>
/// Creates a failed attempt with a result.
/// </summary>
/// <param name="status">The status of the attempt.</param>
/// <param name="result">The result of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<TResult, TStatus> Fail(TStatus status, TResult result)
{
return new Attempt<TResult, TStatus>(false, result, status, null);
}
/// <summary>
/// Creates a failed attempt with a result and an exception.
/// </summary>
/// <param name="status">The status of the attempt.</param>
/// <param name="result">The result of the attempt.</param>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<TResult, TStatus> Fail(TStatus status, TResult result, Exception exception)
{
return new Attempt<TResult, TStatus>(false, result, status, exception);
}
/// <summary>
/// Creates a successful or a failed attempt.
/// </summary>
/// <param name="condition">A value indicating whether the attempt is successful.</param>
/// <param name="succStatus">The status of the successful attempt.</param>
/// <param name="failStatus">The status of the failed attempt.</param>
/// <returns>The attempt.</returns>
public static Attempt<TResult, TStatus> If(bool condition, TStatus succStatus, TStatus failStatus)
{
return new Attempt<TResult, TStatus>(condition, default(TResult), condition ? succStatus : failStatus, null);
}
/// <summary>
/// Creates a successful or a failed attempt, with a result.
/// </summary>
/// <param name="condition">A value indicating whether the attempt is successful.</param>
/// <param name="succStatus">The status of the successful attempt.</param>
/// <param name="failStatus">The status of the failed attempt.</param>
/// <param name="result">The result of the attempt.</param>
/// <returns>The attempt.</returns>
public static Attempt<TResult, TStatus> If(bool condition, TStatus succStatus, TStatus failStatus, TResult result)
{
return new Attempt<TResult, TStatus>(condition, result, condition ? succStatus : failStatus, null);
}
/// <summary>
/// Implicitly operator to check if the attempt was successful without having to access the 'success' property
/// </summary>
/// <param name="a"></param>
/// <returns></returns>
public static implicit operator bool(Attempt<TResult, TStatus> a)
{
return a.Success;
}
}
}
-174
View File
@@ -1,174 +0,0 @@
using System;
using Umbraco.Core.Dynamics;
namespace Umbraco.Core
{
/// <summary>
/// Represents the result of an operation attempt.
/// </summary>
/// <typeparam name="T">The type of the attempted operation result.</typeparam>
[Serializable]
public struct Attempt<T>
{
private readonly bool _success;
private readonly T _result;
private readonly Exception _exception;
/// <summary>
/// Gets a value indicating whether this <see cref="Attempt{T}"/> was successful.
/// </summary>
public bool Success
{
get { return _success; }
}
/// <summary>
/// Gets the exception associated with an unsuccessful attempt.
/// </summary>
public Exception Exception { get { return _exception; } }
/// <summary>
/// Gets the exception associated with an unsuccessful attempt.
/// </summary>
/// <remarks>Keep it for backward compatibility sake.</remarks>
[Obsolete(".Error is obsolete, you should use .Exception instead.", false)]
public Exception Error { get { return _exception; } }
/// <summary>
/// Gets the attempt result.
/// </summary>
public T Result
{
get { return _result; }
}
// optimize, use a singleton failed attempt
private static readonly Attempt<T> Failed = new Attempt<T>(false, default(T), null);
/// <summary>
/// Represents an unsuccessful attempt.
/// </summary>
/// <remarks>Keep it for backward compatibility sake.</remarks>
[Obsolete(".Failed is obsolete, you should use Attempt<T>.Fail() instead.", false)]
public static readonly Attempt<T> False = Failed;
// private - use Succeed() or Fail() methods to create attempts
private Attempt(bool success, T result, Exception exception)
{
_success = success;
_result = result;
_exception = exception;
}
/// <summary>
/// Initialize a new instance of the <see cref="Attempt{T}"/> struct with a result.
/// </summary>
/// <param name="success">A value indicating whether the attempt is successful.</param>
/// <param name="result">The result of the attempt.</param>
/// <remarks>Keep it for backward compatibility sake.</remarks>
[Obsolete("Attempt ctors are obsolete, you should use Attempt<T>.Succeed(), Attempt<T>.Fail() or Attempt<T>.If() instead.", false)]
public Attempt(bool success, T result)
: this(success, result, null)
{ }
/// <summary>
/// Initialize a new instance of the <see cref="Attempt{T}"/> struct representing a failed attempt, with an exception.
/// </summary>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <remarks>Keep it for backward compatibility sake.</remarks>
[Obsolete("Attempt ctors are obsolete, you should use Attempt<T>.Succeed(), Attempt<T>.Fail() or Attempt<T>.If() instead.", false)]
public Attempt(Exception exception)
: this(false, default(T), exception)
{ }
/// <summary>
/// Creates a successful attempt.
/// </summary>
/// <returns>The successful attempt.</returns>
public static Attempt<T> Succeed()
{
return new Attempt<T>(true, default(T), null);
}
/// <summary>
/// Creates a successful attempt with a result.
/// </summary>
/// <param name="result">The result of the attempt.</param>
/// <returns>The successful attempt.</returns>
public static Attempt<T> Succeed(T result)
{
return new Attempt<T>(true, result, null);
}
/// <summary>
/// Creates a failed attempt.
/// </summary>
/// <returns>The failed attempt.</returns>
public static Attempt<T> Fail()
{
return Failed;
}
/// <summary>
/// Creates a failed attempt with an exception.
/// </summary>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<T> Fail(Exception exception)
{
return new Attempt<T>(false, default(T), exception);
}
/// <summary>
/// Creates a failed attempt with a result.
/// </summary>
/// <param name="result">The result of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<T> Fail(T result)
{
return new Attempt<T>(false, result, null);
}
/// <summary>
/// Creates a failed attempt with a result and an exception.
/// </summary>
/// <param name="result">The result of the attempt.</param>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<T> Fail(T result, Exception exception)
{
return new Attempt<T>(false, result, exception);
}
/// <summary>
/// Creates a successful or a failed attempt.
/// </summary>
/// <param name="condition">A value indicating whether the attempt is successful.</param>
/// <returns>The attempt.</returns>
public static Attempt<T> SucceedIf(bool condition)
{
return condition ? new Attempt<T>(true, default(T), null) : Failed;
}
/// <summary>
/// Creates a successful or a failed attempt, with a result.
/// </summary>
/// <param name="condition">A value indicating whether the attempt is successful.</param>
/// <param name="result">The result of the attempt.</param>
/// <returns>The attempt.</returns>
public static Attempt<T> SucceedIf(bool condition, T result)
{
return new Attempt<T>(condition, result, null);
}
/// <summary>
/// Implicity operator to check if the attempt was successful without having to access the 'success' property
/// </summary>
/// <param name="a"></param>
/// <returns></returns>
public static implicit operator bool(Attempt<T> a)
{
return a.Success;
}
}
}
-17
View File
@@ -1,17 +0,0 @@
using System;
using System.ComponentModel;
namespace Umbraco.Core.Auditing
{
[Obsolete("Use Umbraco.Core.Services.IAuditService instead")]
[EditorBrowsable(EditorBrowsableState.Never)]
public static class Audit
{
public static void Add(Umbraco.Core.Auditing.AuditTypes type, string comment, int userId, int objectId)
{
ApplicationContext.Current.Services.AuditService.Add(
Enum<Umbraco.Core.Models.AuditType>.Parse(type.ToString()),
comment, userId, objectId);
}
}
}
@@ -1,351 +0,0 @@
using System;
using System.Linq;
using System.Text;
using System.Threading;
using System.Web;
using Umbraco.Core.Events;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Security;
using Umbraco.Core.Services;
namespace Umbraco.Core.Auditing
{
public sealed class AuditEventHandler : ApplicationEventHandler
{
private IAuditService _auditServiceInstance;
private IUserService _userServiceInstance;
private IEntityService _entityServiceInstance;
private IUser CurrentPerformingUser
{
get
{
var identity = Thread.CurrentPrincipal?.GetUmbracoIdentity();
return identity == null
? new User { Id = 0, Name = "SYSTEM", Email = "" }
: _userServiceInstance.GetUserById(Convert.ToInt32(identity.Id));
}
}
private IUser GetPerformingUser(int userId)
{
var found = userId >= 0 ? _userServiceInstance.GetUserById(userId) : null;
return found ?? new User {Id = 0, Name = "SYSTEM", Email = ""};
}
private string PerformingIp
{
get
{
var httpContext = HttpContext.Current == null ? (HttpContextBase) null : new HttpContextWrapper(HttpContext.Current);
var ip = httpContext.GetCurrentRequestIpAddress();
if (ip.ToLowerInvariant().StartsWith("unknown")) ip = "";
return ip;
}
}
protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
_auditServiceInstance = applicationContext.Services.AuditService;
_userServiceInstance = applicationContext.Services.UserService;
_entityServiceInstance = applicationContext.Services.EntityService;
//BackOfficeUserManager.AccountLocked += ;
//BackOfficeUserManager.AccountUnlocked += ;
BackOfficeUserManager.ForgotPasswordRequested += OnForgotPasswordRequest;
BackOfficeUserManager.ForgotPasswordChangedSuccess += OnForgotPasswordChange;
BackOfficeUserManager.LoginFailed += OnLoginFailed;
//BackOfficeUserManager.LoginRequiresVerification += ;
BackOfficeUserManager.LoginSuccess += OnLoginSuccess;
BackOfficeUserManager.LogoutSuccess += OnLogoutSuccess;
BackOfficeUserManager.PasswordChanged += OnPasswordChanged;
BackOfficeUserManager.PasswordReset += OnPasswordReset;
//BackOfficeUserManager.ResetAccessFailedCount += ;
UserService.SavedUserGroup2 += OnSavedUserGroupWithUsers;
UserService.SavedUser += OnSavedUser;
UserService.DeletedUser += OnDeletedUser;
UserService.UserGroupPermissionsAssigned += UserGroupPermissionAssigned;
MemberService.Saved += OnSavedMember;
MemberService.Deleted += OnDeletedMember;
MemberService.AssignedRoles += OnAssignedRoles;
MemberService.RemovedRoles += OnRemovedRoles;
MemberService.Exported += OnMemberExported;
}
private string FormatEmail(IMember member)
{
return member == null ? string.Empty : member.Email.IsNullOrWhiteSpace() ? "" : $"<{member.Email}>";
}
private string FormatEmail(IUser user)
{
return user == null ? string.Empty : user.Email.IsNullOrWhiteSpace() ? "" : $"<{user.Email}>";
}
private void OnRemovedRoles(IMemberService sender, RolesEventArgs args)
{
var performingUser = CurrentPerformingUser;
var roles = string.Join(", ", args.Roles);
var members = sender.GetAllMembers(args.MemberIds).ToDictionary(x => x.Id, x => x);
foreach (var id in args.MemberIds)
{
members.TryGetValue(id, out var member);
_auditServiceInstance.Write(performingUser.Id, $"User \"{performingUser.Name}\" {FormatEmail(performingUser)}", PerformingIp,
DateTime.UtcNow,
-1, $"Member {id} \"{member?.Name ?? "(unknown)"}\" {FormatEmail(member)}",
"umbraco/member/roles/removed", $"roles modified, removed {roles}");
}
}
private void OnAssignedRoles(IMemberService sender, RolesEventArgs args)
{
var performingUser = CurrentPerformingUser;
var roles = string.Join(", ", args.Roles);
var members = sender.GetAllMembers(args.MemberIds).ToDictionary(x => x.Id, x => x);
foreach (var id in args.MemberIds)
{
members.TryGetValue(id, out var member);
_auditServiceInstance.Write(performingUser.Id, $"User \"{performingUser.Name}\" {FormatEmail(performingUser)}", PerformingIp,
DateTime.UtcNow,
-1, $"Member {id} \"{member?.Name ?? "(unknown)"}\" {FormatEmail(member)}",
"umbraco/member/roles/assigned", $"roles modified, assigned {roles}");
}
}
private void OnMemberExported(IMemberService sender, ExportedMemberEventArgs exportedMemberEventArgs)
{
var performingUser = CurrentPerformingUser;
var member = exportedMemberEventArgs.Member;
_auditServiceInstance.Write(performingUser.Id, $"User \"{performingUser.Name}\" {FormatEmail(performingUser)}", PerformingIp,
DateTime.UtcNow,
-1, $"Member {member.Id} \"{member.Name}\" {FormatEmail(member)}",
"umbraco/member/exported", "exported member data");
}
private void OnSavedUserGroupWithUsers(IUserService sender, SaveEventArgs<UserGroupWithUsers> saveEventArgs)
{
var performingUser = CurrentPerformingUser;
foreach (var groupWithUser in saveEventArgs.SavedEntities)
{
var group = groupWithUser.UserGroup;
var dp = string.Join(", ", ((UserGroup)group).GetPreviouslyDirtyProperties());
var sections = ((UserGroup)group).WasPropertyDirty("AllowedSections")
? string.Join(", ", group.AllowedSections)
: null;
var perms = ((UserGroup)group).WasPropertyDirty("Permissions")
? string.Join(", ", group.Permissions)
: null;
var sb = new StringBuilder();
sb.Append($"updating {(string.IsNullOrWhiteSpace(dp) ? "(nothing)" : dp)};");
if (sections != null)
sb.Append($", assigned sections: {sections}");
if (perms != null)
{
if (sections != null)
sb.Append(", ");
sb.Append($"default perms: {perms}");
}
_auditServiceInstance.Write(performingUser.Id, $"User \"{performingUser.Name}\" {FormatEmail(performingUser)}", PerformingIp,
DateTime.UtcNow,
-1, $"User Group {group.Id} \"{group.Name}\" ({group.Alias})",
"umbraco/user-group/save", $"{sb}");
// now audit the users that have changed
foreach (var user in groupWithUser.RemovedUsers)
{
_auditServiceInstance.Write(performingUser.Id, $"User \"{performingUser.Name}\" {FormatEmail(performingUser)}", PerformingIp,
DateTime.UtcNow,
user.Id, $"User \"{user.Name}\" {FormatEmail(user)}",
"umbraco/user-group/save", $"Removed user \"{user.Name}\" {FormatEmail(user)} from group {group.Id} \"{group.Name}\" ({group.Alias})");
}
foreach (var user in groupWithUser.AddedUsers)
{
_auditServiceInstance.Write(performingUser.Id, $"User \"{performingUser.Name}\" {FormatEmail(performingUser)}", PerformingIp,
DateTime.UtcNow,
user.Id, $"User \"{user.Name}\" {FormatEmail(user)}",
"umbraco/user-group/save", $"Added user \"{user.Name}\" {FormatEmail(user)} to group {group.Id} \"{group.Name}\" ({group.Alias})");
}
}
}
private void UserGroupPermissionAssigned(IUserService sender, SaveEventArgs<EntityPermission> saveEventArgs)
{
var performingUser = CurrentPerformingUser;
var perms = saveEventArgs.SavedEntities;
foreach (var perm in perms)
{
var group = sender.GetUserGroupById(perm.UserGroupId);
var assigned = string.Join(", ", perm.AssignedPermissions);
var entity = _entityServiceInstance.Get(perm.EntityId);
_auditServiceInstance.Write(performingUser.Id, $"User \"{performingUser.Name}\" {FormatEmail(performingUser)}", PerformingIp,
DateTime.UtcNow,
-1, $"User Group {group.Id} \"{group.Name}\" ({group.Alias})",
"umbraco/user-group/permissions-change", $"assigning {(string.IsNullOrWhiteSpace(assigned) ? "(nothing)" : assigned)} on id:{perm.EntityId} \"{entity.Name}\"");
}
}
private void OnSavedMember(IMemberService sender, SaveEventArgs<IMember> saveEventArgs)
{
var performingUser = CurrentPerformingUser;
var members = saveEventArgs.SavedEntities;
foreach (var member in members)
{
var dp = string.Join(", ", ((Member) member).GetPreviouslyDirtyProperties());
_auditServiceInstance.Write(performingUser.Id, $"User \"{performingUser.Name}\" {FormatEmail(performingUser)}", PerformingIp,
DateTime.UtcNow,
-1, $"Member {member.Id} \"{member.Name}\" {FormatEmail(member)}",
"umbraco/member/save", $"updating {(string.IsNullOrWhiteSpace(dp) ? "(nothing)" : dp)}");
}
}
private void OnDeletedMember(IMemberService sender, DeleteEventArgs<IMember> deleteEventArgs)
{
var performingUser = CurrentPerformingUser;
var members = deleteEventArgs.DeletedEntities;
foreach (var member in members)
{
_auditServiceInstance.Write(performingUser.Id, $"User \"{performingUser.Name}\" {FormatEmail(performingUser)}", PerformingIp,
DateTime.UtcNow,
-1, $"Member {member.Id} \"{member.Name}\" {FormatEmail(member)}",
"umbraco/member/delete", $"delete member id:{member.Id} \"{member.Name}\" {FormatEmail(member)}");
}
}
private void OnSavedUser(IUserService sender, SaveEventArgs<IUser> saveEventArgs)
{
var performingUser = CurrentPerformingUser;
var affectedUsers = saveEventArgs.SavedEntities;
foreach (var affectedUser in affectedUsers)
{
var groups = affectedUser.WasPropertyDirty("Groups")
? string.Join(", ", affectedUser.Groups.Select(x => x.Alias))
: null;
var dp = string.Join(", ", ((User)affectedUser).GetPreviouslyDirtyProperties());
_auditServiceInstance.Write(performingUser.Id, $"User \"{performingUser.Name}\" {FormatEmail(performingUser)}", PerformingIp,
DateTime.UtcNow,
affectedUser.Id, $"User \"{affectedUser.Name}\" {FormatEmail(affectedUser)}",
"umbraco/user/save", $"updating {(string.IsNullOrWhiteSpace(dp) ? "(nothing)" : dp)}{(groups == null ? "" : "; groups assigned: " + groups)}");
}
}
private void OnDeletedUser(IUserService sender, DeleteEventArgs<IUser> deleteEventArgs)
{
var performingUser = CurrentPerformingUser;
var affectedUsers = deleteEventArgs.DeletedEntities;
foreach (var affectedUser in affectedUsers)
_auditServiceInstance.Write(performingUser.Id, $"User \"{performingUser.Name}\" {FormatEmail(performingUser)}", PerformingIp,
DateTime.UtcNow,
affectedUser.Id, $"User \"{affectedUser.Name}\" {FormatEmail(affectedUser)}",
"umbraco/user/delete", "delete user");
}
private void OnLoginSuccess(object sender, EventArgs args)
{
if (args is IdentityAuditEventArgs identityArgs)
{
var performingUser = GetPerformingUser(identityArgs.PerformingUser);
WriteAudit(performingUser, identityArgs.AffectedUser, identityArgs.IpAddress, "umbraco/user/sign-in/login", "login success");
}
}
private void OnLogoutSuccess(object sender, EventArgs args)
{
if (args is IdentityAuditEventArgs identityArgs)
{
var performingUser = GetPerformingUser(identityArgs.PerformingUser);
WriteAudit(performingUser, identityArgs.AffectedUser, identityArgs.IpAddress, "umbraco/user/sign-in/logout", "logout success");
}
}
private void OnPasswordReset(object sender, EventArgs args)
{
if (args is IdentityAuditEventArgs identityArgs && identityArgs.PerformingUser >= 0)
{
WriteAudit(identityArgs.PerformingUser, identityArgs.AffectedUser, identityArgs.IpAddress, "umbraco/user/password/reset", "password reset");
}
}
private void OnPasswordChanged(object sender, EventArgs args)
{
if (args is IdentityAuditEventArgs identityArgs && identityArgs.PerformingUser >= 0)
{
WriteAudit(identityArgs.PerformingUser, identityArgs.AffectedUser, identityArgs.IpAddress, "umbraco/user/password/change", "password change");
}
}
private void OnLoginFailed(object sender, EventArgs args)
{
if (args is IdentityAuditEventArgs identityArgs && identityArgs.PerformingUser >= 0)
{
WriteAudit(identityArgs.PerformingUser, 0, identityArgs.IpAddress, "umbraco/user/sign-in/failed", "login failed", affectedDetails: "");
}
}
private void OnForgotPasswordChange(object sender, EventArgs args)
{
if (args is IdentityAuditEventArgs identityArgs && identityArgs.PerformingUser >= 0)
{
WriteAudit(identityArgs.PerformingUser, identityArgs.AffectedUser, identityArgs.IpAddress, "umbraco/user/password/forgot/change", "password forgot/change");
}
}
private void OnForgotPasswordRequest(object sender, EventArgs args)
{
if (args is IdentityAuditEventArgs identityArgs && identityArgs.PerformingUser >= 0)
{
WriteAudit(identityArgs.PerformingUser, identityArgs.AffectedUser, identityArgs.IpAddress, "umbraco/user/password/forgot/request", "password forgot/request");
}
}
private void WriteAudit(int performingId, int affectedId, string ipAddress, string eventType, string eventDetails, string affectedDetails = null)
{
var performingUser = _userServiceInstance.GetUserById(performingId);
var performingDetails = performingUser == null
? $"User UNKNOWN:{performingId}"
: $"User \"{performingUser.Name}\" {FormatEmail(performingUser)}";
WriteAudit(performingId, performingDetails, affectedId, ipAddress, eventType, eventDetails, affectedDetails);
}
private void WriteAudit(IUser performingUser, int affectedId, string ipAddress, string eventType, string eventDetails)
{
var performingDetails = performingUser == null
? $"User UNKNOWN"
: $"User \"{performingUser.Name}\" {FormatEmail(performingUser)}";
WriteAudit(performingUser?.Id ?? 0, performingDetails, affectedId, ipAddress, eventType, eventDetails);
}
private void WriteAudit(int performingId, string performingDetails, int affectedId, string ipAddress, string eventType, string eventDetails, string affectedDetails = null)
{
if (affectedDetails == null)
{
var affectedUser = _userServiceInstance.GetUserById(affectedId);
affectedDetails = affectedUser == null
? $"User UNKNOWN:{affectedId}"
: $"User \"{affectedUser.Name}\" {FormatEmail(affectedUser)}";
}
_auditServiceInstance.Write(performingId, performingDetails,
ipAddress,
DateTime.UtcNow,
affectedId, affectedDetails,
eventType, eventDetails);
}
}
}
-87
View File
@@ -1,87 +0,0 @@
using System;
using System.ComponentModel;
namespace Umbraco.Core.Auditing
{
[Obsolete("Use Umbraco.Core.Models.AuditType instead")]
[EditorBrowsable(EditorBrowsableState.Never)]
public enum AuditTypes
{
/// <summary>
/// Used when new nodes are added
/// </summary>
New,
/// <summary>
/// Used when nodes are saved
/// </summary>
Save,
/// <summary>
/// Used when nodes are opened
/// </summary>
Open,
/// <summary>
/// Used when nodes are deleted
/// </summary>
Delete,
/// <summary>
/// Used when nodes are published
/// </summary>
Publish,
/// <summary>
/// Used when nodes are send to publishing
/// </summary>
SendToPublish,
/// <summary>
/// Used when nodes are unpublished
/// </summary>
UnPublish,
/// <summary>
/// Used when nodes are moved
/// </summary>
Move,
/// <summary>
/// Used when nodes are copied
/// </summary>
Copy,
/// <summary>
/// Used when nodes are assígned a domain
/// </summary>
AssignDomain,
/// <summary>
/// Used when public access are changed for a node
/// </summary>
PublicAccess,
/// <summary>
/// Used when nodes are sorted
/// </summary>
Sort,
/// <summary>
/// Used when a notification are send to a user
/// </summary>
Notify,
/// <summary>
/// General system notification
/// </summary>
System,
/// <summary>
/// Used when a node's content is rolled back to a previous version
/// </summary>
RollBack,
/// <summary>
/// Used when a package is installed
/// </summary>
PackagerInstall,
/// <summary>
/// Used when a package is uninstalled
/// </summary>
PackagerUninstall,
/// <summary>
/// Used when a node is send to translation
/// </summary>
SendToTranslate,
/// <summary>
/// Use this log action for custom log messages that should be shown in the audit trail
/// </summary>
Custom
}
}
+10 -14
View File
@@ -1,10 +1,10 @@
using System;
using System;
using System.Reflection;
using System.Text.RegularExpressions;
using System.Web;
using Umbraco.Core;
[assembly: PreApplicationStartMethod(typeof(BindingRedirects), "Initialize")]
// no binding redirect for now = de-activate
//[assembly: PreApplicationStartMethod(typeof(BindingRedirects), "Initialize")]
namespace Umbraco.Core
{
@@ -19,9 +19,6 @@ namespace Umbraco.Core
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
}
private static readonly Regex Log4NetAssemblyPattern = new Regex("log4net, Version=([\\d\\.]+?), Culture=neutral, PublicKeyToken=\\w+$", RegexOptions.Compiled);
private const string Log4NetReplacement = "log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a";
/// <summary>
/// This is used to do an assembly binding redirect via code - normally required due to signature changes in assemblies
/// </summary>
@@ -30,20 +27,19 @@ namespace Umbraco.Core
/// <returns></returns>
private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
//log4net:
if (Log4NetAssemblyPattern.IsMatch(args.Name) && args.Name != Log4NetReplacement)
{
return Assembly.Load(Log4NetAssemblyPattern.Replace(args.Name, Log4NetReplacement));
}
// When an assembly can't be resolved. In here we can do magic with the assembly name and try loading another.
// keep here for reference - we don't use AutoMapper
/*
//AutoMapper:
// this is used for loading a signed assembly of AutoMapper (v. 3.1+) without having to recompile old code.
// ensure the assembly is indeed AutoMapper and that the PublicKeyToken is null before trying to Load again
// do NOT just replace this with 'return Assembly', as it will cause an infinite loop -> stackoverflow
if (args.Name.StartsWith("AutoMapper") && args.Name.EndsWith("PublicKeyToken=null"))
return Assembly.Load(args.Name.Replace(", PublicKeyToken=null", ", PublicKeyToken=be96cd2c38ef1005"));
*/
return null;
}
}
}
}
-39
View File
@@ -1,39 +0,0 @@
namespace Umbraco.Core
{
public static class ByteArrayExtensions
{
private static readonly char[] BytesToHexStringLookup = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
public static string ToHexString(this byte[] bytes)
{
int i = 0, p = 0, bytesLength = bytes.Length;
var chars = new char[bytesLength * 2];
while (i < bytesLength)
{
var b = bytes[i++];
chars[p++] = BytesToHexStringLookup[b / 0x10];
chars[p++] = BytesToHexStringLookup[b % 0x10];
}
return new string(chars, 0, chars.Length);
}
public static string ToHexString(this byte[] bytes, char separator, int blockSize, int blockCount)
{
int p = 0, bytesLength = bytes.Length, count = 0, size = 0;
var chars = new char[bytesLength * 2 + blockCount];
for (var i = 0; i < bytesLength; i++)
{
var b = bytes[i++];
chars[p++] = BytesToHexStringLookup[b / 0x10];
chars[p++] = BytesToHexStringLookup[b % 0x10];
if (count == blockCount) continue;
if (++size < blockSize) continue;
chars[p++] = '/';
size = 0;
count++;
}
return new string(chars, 0, chars.Length);
}
}
}
@@ -0,0 +1,70 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Caching;
namespace Umbraco.Core.Cache
{
/// <summary>
/// Extensions for strongly typed access
/// </summary>
public static class AppCacheExtensions
{
public static T GetCacheItem<T>(this IAppPolicyCache provider,
string cacheKey,
Func<T> getCacheItem,
TimeSpan? timeout,
bool isSliding = false,
CacheItemPriority priority = CacheItemPriority.Normal,
CacheItemRemovedCallback removedCallback = null,
string[] dependentFiles = null)
{
var result = provider.Get(cacheKey, () => getCacheItem(), timeout, isSliding, priority, removedCallback, dependentFiles);
return result == null ? default(T) : result.TryConvertTo<T>().Result;
}
public static void InsertCacheItem<T>(this IAppPolicyCache provider,
string cacheKey,
Func<T> getCacheItem,
TimeSpan? timeout = null,
bool isSliding = false,
CacheItemPriority priority = CacheItemPriority.Normal,
CacheItemRemovedCallback removedCallback = null,
string[] dependentFiles = null)
{
provider.Insert(cacheKey, () => getCacheItem(), timeout, isSliding, priority, removedCallback, dependentFiles);
}
public static IEnumerable<T> GetCacheItemsByKeySearch<T>(this IAppCache provider, string keyStartsWith)
{
var result = provider.SearchByKey(keyStartsWith);
return result.Select(x => x.TryConvertTo<T>().Result);
}
public static IEnumerable<T> GetCacheItemsByKeyExpression<T>(this IAppCache provider, string regexString)
{
var result = provider.SearchByRegex(regexString);
return result.Select(x => x.TryConvertTo<T>().Result);
}
public static T GetCacheItem<T>(this IAppCache provider, string cacheKey)
{
var result = provider.Get(cacheKey);
if (result == null)
{
return default(T);
}
return result.TryConvertTo<T>().Result;
}
public static T GetCacheItem<T>(this IAppCache provider, string cacheKey, Func<T> getCacheItem)
{
var result = provider.Get(cacheKey, () => getCacheItem());
if (result == null)
{
return default(T);
}
return result.TryConvertTo<T>().Result;
}
}
}
+86
View File
@@ -0,0 +1,86 @@
using System;
using System.Web;
namespace Umbraco.Core.Cache
{
/// <summary>
/// Represents the application caches.
/// </summary>
public class AppCaches
{
/// <summary>
/// Initializes a new instance of the <see cref="AppCaches"/> for use in a web application.
/// </summary>
public AppCaches()
: this(HttpRuntime.Cache)
{ }
/// <summary>
/// Initializes a new instance of the <see cref="AppCaches"/> for use in a web application.
/// </summary>
public AppCaches(System.Web.Caching.Cache cache)
: this(
new WebCachingAppCache(cache),
new HttpRequestAppCache(),
new IsolatedCaches(t => new ObjectCacheAppCache()))
{ }
/// <summary>
/// Initializes a new instance of the <see cref="AppCaches"/> with cache providers.
/// </summary>
public AppCaches(
IAppPolicyCache runtimeCache,
IAppCache requestCache,
IsolatedCaches isolatedCaches)
{
RuntimeCache = runtimeCache ?? throw new ArgumentNullException(nameof(runtimeCache));
RequestCache = requestCache ?? throw new ArgumentNullException(nameof(requestCache));
IsolatedCaches = isolatedCaches ?? throw new ArgumentNullException(nameof(isolatedCaches));
}
/// <summary>
/// Gets the special disabled instance.
/// </summary>
/// <remarks>
/// <para>When used by repositories, all cache policies apply, but the underlying caches do not cache anything.</para>
/// <para>Used by tests.</para>
/// </remarks>
public static AppCaches Disabled { get; } = new AppCaches(NoAppCache.Instance, NoAppCache.Instance, new IsolatedCaches(_ => NoAppCache.Instance));
/// <summary>
/// Gets the special no-cache instance.
/// </summary>
/// <remarks>
/// <para>When used by repositories, all cache policies are bypassed.</para>
/// <para>Used by repositories that do no cache.</para>
/// </remarks>
public static AppCaches NoCache { get; } = new AppCaches(NoAppCache.Instance, NoAppCache.Instance, new IsolatedCaches(_ => NoAppCache.Instance));
/// <summary>
/// Gets the per-request cache.
/// </summary>
/// <remarks>
/// <para>The per-request caches works on top of the current HttpContext items.</para>
/// <para>Outside a web environment, the behavior of that cache is unspecified.</para>
/// </remarks>
public IAppCache RequestCache { get; }
/// <summary>
/// Gets the runtime cache.
/// </summary>
/// <remarks>
/// <para>The runtime cache is the main application cache.</para>
/// </remarks>
public IAppPolicyCache RuntimeCache { get; }
/// <summary>
/// Gets the isolated caches.
/// </summary>
/// <remarks>
/// <para>Isolated caches are used by e.g. repositories, to ensure that each cached entity
/// type has its own cache, so that lookups are fast and the repository does not need to
/// search through all keys on a global scale.</para>
/// </remarks>
public IsolatedCaches IsolatedCaches { get; }
}
}
@@ -0,0 +1,74 @@
using System;
using System.Collections.Concurrent;
namespace Umbraco.Core.Cache
{
/// <summary>
/// Provides a base class for implementing a dictionary of <see cref="IAppPolicyCache"/>.
/// </summary>
/// <typeparam name="TKey">The type of the dictionary key.</typeparam>
public abstract class AppPolicedCacheDictionary<TKey>
{
private readonly ConcurrentDictionary<TKey, IAppPolicyCache> _caches = new ConcurrentDictionary<TKey, IAppPolicyCache>();
/// <summary>
/// Initializes a new instance of the <see cref="AppPolicedCacheDictionary{TKey}"/> class.
/// </summary>
/// <param name="cacheFactory"></param>
protected AppPolicedCacheDictionary(Func<TKey, IAppPolicyCache> cacheFactory)
{
CacheFactory = cacheFactory;
}
/// <summary>
/// Gets the internal cache factory, for tests only!
/// </summary>
internal readonly Func<TKey, IAppPolicyCache> CacheFactory;
/// <summary>
/// Gets or creates a cache.
/// </summary>
public IAppPolicyCache GetOrCreate(TKey key)
=> _caches.GetOrAdd(key, k => CacheFactory(k));
/// <summary>
/// Tries to get a cache.
/// </summary>
public Attempt<IAppPolicyCache> Get(TKey key)
=> _caches.TryGetValue(key, out var cache) ? Attempt.Succeed(cache) : Attempt.Fail<IAppPolicyCache>();
/// <summary>
/// Removes a cache.
/// </summary>
public void Remove(TKey key)
{
_caches.TryRemove(key, out _);
}
/// <summary>
/// Removes all caches.
/// </summary>
public void RemoveAll()
{
_caches.Clear();
}
/// <summary>
/// Clears a cache.
/// </summary>
public void ClearCache(TKey key)
{
if (_caches.TryGetValue(key, out var cache))
cache.Clear();
}
/// <summary>
/// Clears all caches.
/// </summary>
public void ClearAllCaches()
{
foreach (var cache in _caches.Values)
cache.Clear();
}
}
}
+15 -97
View File
@@ -1,97 +1,15 @@
using System;
using System.ComponentModel;
using Umbraco.Core.CodeAnnotations;
namespace Umbraco.Core.Cache
{
/// <summary>
/// Constants storing cache keys used in caching
/// </summary>
public static class CacheKeys
{
public const string ApplicationTreeCacheKey = "ApplicationTreeCache";
public const string ApplicationsCacheKey = "ApplicationCache";
[Obsolete("This is no longer used and will be removed from the codebase in the future")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string UserTypeCacheKey = "UserTypeCache";
[Obsolete("This is no longer used and will be removed from the codebase in the future - it is referenced but no cache is stored against this key")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string ContentItemCacheKey = "contentItem";
[UmbracoWillObsolete("This cache key is only used for the legacy 'library' caching, remove in v8")]
public const string MediaCacheKey = "UL_GetMedia";
public const string MacroXsltCacheKey = "macroXslt_";
[UmbracoWillObsolete("This cache key is only used for legacy business logic caching, remove in v8")]
public const string MacroCacheKey = "UmbracoMacroCache";
public const string MacroHtmlCacheKey = "macroHtml_";
public const string MacroControlCacheKey = "macroControl_";
public const string MacroHtmlDateAddedCacheKey = "macroHtml_DateAdded_";
public const string MacroControlDateAddedCacheKey = "macroControl_DateAdded_";
[UmbracoWillObsolete("This cache key is only used for legacy 'library' member caching, remove in v8")]
public const string MemberLibraryCacheKey = "UL_GetMember";
[UmbracoWillObsolete("This cache key is only used for legacy business logic caching, remove in v8")]
public const string MemberBusinessLogicCacheKey = "MemberCacheItem_";
[UmbracoWillObsolete("This cache key is only used for legacy template business logic caching, remove in v8")]
public const string TemplateFrontEndCacheKey = "template";
[Obsolete("This is no longer used and will be removed from the codebase in the future")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string TemplateBusinessLogicCacheKey = "UmbracoTemplateCache";
[Obsolete("This is no longer used and will be removed from the codebase in the future")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string UserContextCacheKey = "UmbracoUserContext";
public const string UserContextTimeoutCacheKey = "UmbracoUserContextTimeout";
[Obsolete("This is no longer used and will be removed from the codebase in the future")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string UserCacheKey = "UmbracoUser";
[Obsolete("This is no longer used and will be removed from the codebase in the future")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string UserGroupPermissionsCacheKey = "UmbracoUserGroupPermissions";
[UmbracoWillObsolete("This cache key is only used for legacy business logic caching, remove in v8")]
public const string ContentTypeCacheKey = "UmbracoContentType";
[UmbracoWillObsolete("This cache key is only used for legacy business logic caching, remove in v8")]
public const string ContentTypePropertiesCacheKey = "ContentType_PropertyTypes_Content:";
[Obsolete("No longer used and will be removed in v8")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string PropertyTypeCacheKey = "UmbracoPropertyTypeCache";
[Obsolete("This is no longer used and will be removed from the codebase in the future")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string LanguageCacheKey = "UmbracoLanguageCache";
[Obsolete("This is no longer used and will be removed from the codebase in the future")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string DomainCacheKey = "UmbracoDomainList";
[Obsolete("This is no longer used and will be removed from the codebase in the future")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string StylesheetCacheKey = "UmbracoStylesheet";
[Obsolete("This is no longer used and will be removed from the codebase in the future")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string StylesheetPropertyCacheKey = "UmbracoStylesheetProperty";
[Obsolete("This is no longer used and will be removed from the codebase in the future")]
[EditorBrowsable(EditorBrowsableState.Never)]
public const string DataTypeCacheKey = "UmbracoDataTypeDefinition";
public const string DataTypePreValuesCacheKey = "UmbracoPreVal";
public const string IdToKeyCacheKey = "UI2K__";
public const string KeyToIdCacheKey = "UK2I__";
}
}
namespace Umbraco.Core.Cache
{
/// <summary>
/// Constants storing cache keys used in caching
/// </summary>
public static class CacheKeys
{
public const string ApplicationsCacheKey = "ApplicationCache"; // used by SectionService
// TODO: this one can probably be removed
public const string TemplateFrontEndCacheKey = "template";
public const string MacroContentCacheKey = "macroContent_"; // used in MacroRenderers
}
}
@@ -1,70 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Caching;
namespace Umbraco.Core.Cache
{
/// <summary>
/// Extensions for strongly typed access
/// </summary>
public static class CacheProviderExtensions
{
public static T GetCacheItem<T>(this IRuntimeCacheProvider provider,
string cacheKey,
Func<T> getCacheItem,
TimeSpan? timeout,
bool isSliding = false,
CacheItemPriority priority = CacheItemPriority.Normal,
CacheItemRemovedCallback removedCallback = null,
string[] dependentFiles = null)
{
var result = provider.GetCacheItem(cacheKey, () => getCacheItem(), timeout, isSliding, priority, removedCallback, dependentFiles);
return result == null ? default(T) : result.TryConvertTo<T>().Result;
}
public static void InsertCacheItem<T>(this IRuntimeCacheProvider provider,
string cacheKey,
Func<T> getCacheItem,
TimeSpan? timeout = null,
bool isSliding = false,
CacheItemPriority priority = CacheItemPriority.Normal,
CacheItemRemovedCallback removedCallback = null,
string[] dependentFiles = null)
{
provider.InsertCacheItem(cacheKey, () => getCacheItem(), timeout, isSliding, priority, removedCallback, dependentFiles);
}
public static IEnumerable<T> GetCacheItemsByKeySearch<T>(this ICacheProvider provider, string keyStartsWith)
{
var result = provider.GetCacheItemsByKeySearch(keyStartsWith);
return result.Select(x => x.TryConvertTo<T>().Result);
}
public static IEnumerable<T> GetCacheItemsByKeyExpression<T>(this ICacheProvider provider, string regexString)
{
var result = provider.GetCacheItemsByKeyExpression(regexString);
return result.Select(x => x.TryConvertTo<T>().Result);
}
public static T GetCacheItem<T>(this ICacheProvider provider, string cacheKey)
{
var result = provider.GetCacheItem(cacheKey);
if (result == null)
{
return default(T);
}
return result.TryConvertTo<T>().Result;
}
public static T GetCacheItem<T>(this ICacheProvider provider, string cacheKey, Func<T> getCacheItem)
{
var result = provider.GetCacheItem(cacheKey, () => getCacheItem());
if (result == null)
{
return default(T);
}
return result.TryConvertTo<T>().Result;
}
}
}
+120 -78
View File
@@ -1,78 +1,120 @@
using System;
using Umbraco.Core.Events;
using Umbraco.Core.Sync;
using umbraco.interfaces;
using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Cache
{
/// <summary>
/// A base class for cache refreshers to inherit from that ensures the correct events are raised
/// when cache refreshing occurs.
/// </summary>
/// <typeparam name="TInstanceType">The real cache refresher type, this is used for raising strongly typed events</typeparam>
public abstract class CacheRefresherBase<TInstanceType> : ICacheRefresher
where TInstanceType : ICacheRefresher
{
/// <summary>
/// An event that is raised when cache is updated on an individual server
/// </summary>
/// <remarks>
/// This event will fire on each server configured for an Umbraco project whenever a cache refresher
/// is updated.
/// </remarks>
public static event TypedEventHandler<TInstanceType, CacheRefresherEventArgs> CacheUpdated;
/// <summary>
/// Raises the event
/// </summary>
/// <param name="sender"></param>
/// <param name="args"></param>
protected static void OnCacheUpdated(TInstanceType sender, CacheRefresherEventArgs args)
{
if (CacheUpdated != null)
{
CacheUpdated(sender, args);
}
}
/// <summary>
/// Returns the real instance of the object ('this') for use in strongly typed events
/// </summary>
protected abstract TInstanceType Instance { get; }
public abstract Guid UniqueIdentifier { get; }
public abstract string Name { get; }
public virtual void RefreshAll()
{
OnCacheUpdated(Instance, new CacheRefresherEventArgs(null, MessageType.RefreshAll));
}
public virtual void Refresh(int id)
{
OnCacheUpdated(Instance, new CacheRefresherEventArgs(id, MessageType.RefreshById));
}
public virtual void Remove(int id)
{
OnCacheUpdated(Instance, new CacheRefresherEventArgs(id, MessageType.RemoveById));
}
public virtual void Refresh(Guid id)
{
OnCacheUpdated(Instance, new CacheRefresherEventArgs(id, MessageType.RefreshById));
}
/// <summary>
/// Clears the cache for all repository entities of this type
/// </summary>
/// <typeparam name="TEntity"></typeparam>
internal void ClearAllIsolatedCacheByEntityType<TEntity>()
where TEntity : class, IAggregateRoot
{
ApplicationContext.Current.ApplicationCache.IsolatedRuntimeCache.ClearCache<TEntity>();
}
}
}
using System;
using Umbraco.Core.Events;
using Umbraco.Core.Models.Entities;
using Umbraco.Core.Sync;
namespace Umbraco.Core.Cache
{
/// <summary>
/// A base class for cache refreshers that handles events.
/// </summary>
/// <typeparam name="TInstanceType">The actual cache refresher type.</typeparam>
/// <remarks>The actual cache refresher type is used for strongly typed events.</remarks>
public abstract class CacheRefresherBase<TInstanceType> : ICacheRefresher
where TInstanceType : class, ICacheRefresher
{
/// <summary>
/// Initializes a new instance of the <see cref="CacheRefresherBase{TInstanceType}"/>.
/// </summary>
/// <param name="appCaches">A cache helper.</param>
protected CacheRefresherBase(AppCaches appCaches)
{
AppCaches = appCaches;
}
/// <summary>
/// Triggers when the cache is updated on the server.
/// </summary>
/// <remarks>
/// Triggers on each server configured for an Umbraco project whenever a cache refresher is updated.
/// </remarks>
public static event TypedEventHandler<TInstanceType, CacheRefresherEventArgs> CacheUpdated;
#region Define
/// <summary>
/// Gets the typed 'this' for events.
/// </summary>
protected abstract TInstanceType This { get; }
/// <summary>
/// Gets the unique identifier of the refresher.
/// </summary>
public abstract Guid RefresherUniqueId { get; }
/// <summary>
/// Gets the name of the refresher.
/// </summary>
public abstract string Name { get; }
#endregion
#region Refresher
/// <summary>
/// Refreshes all entities.
/// </summary>
public virtual void RefreshAll()
{
OnCacheUpdated(This, new CacheRefresherEventArgs(null, MessageType.RefreshAll));
}
/// <summary>
/// Refreshes an entity.
/// </summary>
/// <param name="id">The entity's identifier.</param>
public virtual void Refresh(int id)
{
OnCacheUpdated(This, new CacheRefresherEventArgs(id, MessageType.RefreshById));
}
/// <summary>
/// Refreshes an entity.
/// </summary>
/// <param name="id">The entity's identifier.</param>
public virtual void Refresh(Guid id)
{
OnCacheUpdated(This, new CacheRefresherEventArgs(id, MessageType.RefreshById));
}
/// <summary>
/// Removes an entity.
/// </summary>
/// <param name="id">The entity's identifier.</param>
public virtual void Remove(int id)
{
OnCacheUpdated(This, new CacheRefresherEventArgs(id, MessageType.RemoveById));
}
#endregion
#region Protected
/// <summary>
/// Gets the cache helper.
/// </summary>
protected AppCaches AppCaches { get; }
/// <summary>
/// Clears the cache for all repository entities of a specified type.
/// </summary>
/// <typeparam name="TEntity">The type of the entities.</typeparam>
protected void ClearAllIsolatedCacheByEntityType<TEntity>()
where TEntity : class, IEntity
{
AppCaches.IsolatedCaches.ClearCache<TEntity>();
}
/// <summary>
/// Raises the CacheUpdated event.
/// </summary>
/// <param name="sender">The event sender.</param>
/// <param name="args">The event arguments.</param>
protected static void OnCacheUpdated(TInstanceType sender, CacheRefresherEventArgs args)
{
CacheUpdated?.Invoke(sender, args);
}
#endregion
}
}
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Umbraco.Core.Composing;
namespace Umbraco.Core.Cache
{
public class CacheRefresherCollection : BuilderCollectionBase<ICacheRefresher>
{
public CacheRefresherCollection(IEnumerable<ICacheRefresher> items)
: base(items)
{ }
public ICacheRefresher this[Guid id]
=> this.FirstOrDefault(x => x.RefresherUniqueId == id);
}
}
@@ -0,0 +1,9 @@
using Umbraco.Core.Composing;
namespace Umbraco.Core.Cache
{
public class CacheRefresherCollectionBuilder : LazyCollectionBuilderBase<CacheRefresherCollectionBuilder, CacheRefresherCollection, ICacheRefresher>
{
protected override CacheRefresherCollectionBuilder This => this;
}
}
@@ -1,19 +1,19 @@
using System;
using Umbraco.Core.Sync;
namespace Umbraco.Core.Cache
{
/// <summary>
/// Event args for cache refresher updates
/// </summary>
public class CacheRefresherEventArgs : EventArgs
{
public CacheRefresherEventArgs(object msgObject, MessageType type)
{
MessageType = type;
MessageObject = msgObject;
}
public object MessageObject { get; private set; }
public MessageType MessageType { get; private set; }
}
}
using System;
using Umbraco.Core.Sync;
namespace Umbraco.Core.Cache
{
/// <summary>
/// Event args for cache refresher updates
/// </summary>
public class CacheRefresherEventArgs : EventArgs
{
public CacheRefresherEventArgs(object msgObject, MessageType type)
{
MessageType = type;
MessageObject = msgObject;
}
public object MessageObject { get; private set; }
public MessageType MessageType { get; private set; }
}
}
+157
View File
@@ -0,0 +1,157 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Caching;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Entities;
namespace Umbraco.Core.Cache
{
/// <summary>
/// Implements <see cref="IAppPolicyCache"/> by wrapping an inner other <see cref="IAppPolicyCache"/>
/// instance, and ensuring that all inserts and returns are deep cloned copies of the cache item,
/// when the item is deep-cloneable.
/// </summary>
internal class DeepCloneAppCache : IAppPolicyCache
{
/// <summary>
/// Initializes a new instance of the <see cref="DeepCloneAppCache"/> class.
/// </summary>
public DeepCloneAppCache(IAppPolicyCache innerCache)
{
var type = typeof (DeepCloneAppCache);
if (innerCache.GetType() == type)
throw new InvalidOperationException($"A {type} cannot wrap another instance of itself.");
InnerCache = innerCache;
}
/// <summary>
/// Gets the inner cache.
/// </summary>
public IAppPolicyCache InnerCache { get; }
/// <inheritdoc />
public object Get(string key)
{
var item = InnerCache.Get(key);
return CheckCloneableAndTracksChanges(item);
}
/// <inheritdoc />
public object Get(string key, Func<object> factory)
{
var cached = InnerCache.Get(key, () =>
{
var result = FastDictionaryAppCacheBase.GetSafeLazy(factory);
var value = result.Value; // force evaluation now - this may throw if cacheItem throws, and then nothing goes into cache
// do not store null values (backward compat), clone / reset to go into the cache
return value == null ? null : CheckCloneableAndTracksChanges(value);
});
return CheckCloneableAndTracksChanges(cached);
}
/// <inheritdoc />
public IEnumerable<object> SearchByKey(string keyStartsWith)
{
return InnerCache.SearchByKey(keyStartsWith)
.Select(CheckCloneableAndTracksChanges);
}
/// <inheritdoc />
public IEnumerable<object> SearchByRegex(string regex)
{
return InnerCache.SearchByRegex(regex)
.Select(CheckCloneableAndTracksChanges);
}
/// <inheritdoc />
public object Get(string key, Func<object> factory, TimeSpan? timeout, bool isSliding = false, CacheItemPriority priority = CacheItemPriority.Normal, CacheItemRemovedCallback removedCallback = null, string[] dependentFiles = null)
{
var cached = InnerCache.Get(key, () =>
{
var result = FastDictionaryAppCacheBase.GetSafeLazy(factory);
var value = result.Value; // force evaluation now - this may throw if cacheItem throws, and then nothing goes into cache
// do not store null values (backward compat), clone / reset to go into the cache
return value == null ? null : CheckCloneableAndTracksChanges(value);
// clone / reset to go into the cache
}, timeout, isSliding, priority, removedCallback, dependentFiles);
// clone / reset to go into the cache
return CheckCloneableAndTracksChanges(cached);
}
/// <inheritdoc />
public void Insert(string key, Func<object> factory, TimeSpan? timeout = null, bool isSliding = false, CacheItemPriority priority = CacheItemPriority.Normal, CacheItemRemovedCallback removedCallback = null, string[] dependentFiles = null)
{
InnerCache.Insert(key, () =>
{
var result = FastDictionaryAppCacheBase.GetSafeLazy(factory);
var value = result.Value; // force evaluation now - this may throw if cacheItem throws, and then nothing goes into cache
// do not store null values (backward compat), clone / reset to go into the cache
return value == null ? null : CheckCloneableAndTracksChanges(value);
}, timeout, isSliding, priority, removedCallback, dependentFiles);
}
/// <inheritdoc />
public void Clear()
{
InnerCache.Clear();
}
/// <inheritdoc />
public void Clear(string key)
{
InnerCache.Clear(key);
}
/// <inheritdoc />
public void ClearOfType(string typeName)
{
InnerCache.ClearOfType(typeName);
}
/// <inheritdoc />
public void ClearOfType<T>()
{
InnerCache.ClearOfType<T>();
}
/// <inheritdoc />
public void ClearOfType<T>(Func<string, T, bool> predicate)
{
InnerCache.ClearOfType<T>(predicate);
}
/// <inheritdoc />
public void ClearByKey(string keyStartsWith)
{
InnerCache.ClearByKey(keyStartsWith);
}
/// <inheritdoc />
public void ClearByRegex(string regex)
{
InnerCache.ClearByRegex(regex);
}
private static object CheckCloneableAndTracksChanges(object input)
{
if (input is IDeepCloneable cloneable)
{
input = cloneable.DeepClone();
}
// reset dirty initial properties
if (input is IRememberBeingDirty tracksChanges)
{
tracksChanges.ResetDirtyProperties(false);
input = tracksChanges;
}
return input;
}
}
}
@@ -1,151 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Caching;
using Umbraco.Core.Models;
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, IRuntimeCacheProviderWrapper
{
public IRuntimeCacheProvider InnerProvider { get; private set; }
public DeepCloneRuntimeCacheProvider(IRuntimeCacheProvider innerProvider)
{
if (innerProvider.GetType() == typeof(DeepCloneRuntimeCacheProvider))
throw new InvalidOperationException("A " + typeof(DeepCloneRuntimeCacheProvider) + " cannot wrap another instance of " + typeof(DeepCloneRuntimeCacheProvider));
InnerProvider = innerProvider;
}
#region Clear - doesn't require any changes
public void ClearAllCache()
{
InnerProvider.ClearAllCache();
}
public void ClearCacheItem(string key)
{
InnerProvider.ClearCacheItem(key);
}
public void ClearCacheObjectTypes(string typeName)
{
InnerProvider.ClearCacheObjectTypes(typeName);
}
public void ClearCacheObjectTypes<T>()
{
InnerProvider.ClearCacheObjectTypes<T>();
}
public void ClearCacheObjectTypes<T>(Func<string, T, bool> predicate)
{
InnerProvider.ClearCacheObjectTypes<T>(predicate);
}
public void ClearCacheByKeySearch(string keyStartsWith)
{
InnerProvider.ClearCacheByKeySearch(keyStartsWith);
}
public void ClearCacheByKeyExpression(string regexString)
{
InnerProvider.ClearCacheByKeyExpression(regexString);
}
#endregion
public IEnumerable<object> GetCacheItemsByKeySearch(string keyStartsWith)
{
return InnerProvider.GetCacheItemsByKeySearch(keyStartsWith)
.Select(CheckCloneableAndTracksChanges);
}
public IEnumerable<object> GetCacheItemsByKeyExpression(string regexString)
{
return InnerProvider.GetCacheItemsByKeyExpression(regexString)
.Select(CheckCloneableAndTracksChanges);
}
public object GetCacheItem(string cacheKey)
{
var item = InnerProvider.GetCacheItem(cacheKey);
return CheckCloneableAndTracksChanges(item);
}
public object GetCacheItem(string cacheKey, Func<object> getCacheItem)
{
var cached = InnerProvider.GetCacheItem(cacheKey, () =>
{
var result = DictionaryCacheProviderBase.GetSafeLazy(getCacheItem);
var value = result.Value; // force evaluation now - this may throw if cacheItem throws, and then nothing goes into cache
if (value == null) return null; // do not store null values (backward compat)
return CheckCloneableAndTracksChanges(value);
});
return CheckCloneableAndTracksChanges(cached);
}
public object GetCacheItem(string cacheKey, Func<object> getCacheItem, TimeSpan? timeout, bool isSliding = false, CacheItemPriority priority = CacheItemPriority.Normal, CacheItemRemovedCallback removedCallback = null, string[] dependentFiles = null)
{
var cached = InnerProvider.GetCacheItem(cacheKey, () =>
{
var result = DictionaryCacheProviderBase.GetSafeLazy(getCacheItem);
var value = result.Value; // force evaluation now - this may throw if cacheItem throws, and then nothing goes into cache
if (value == null) return null; // do not store null values (backward compat)
//Clone/reset to go into the cache
return CheckCloneableAndTracksChanges(value);
}, timeout, isSliding, priority, removedCallback, dependentFiles);
//Clone/reset to go out of the cache
return CheckCloneableAndTracksChanges(cached);
}
public void InsertCacheItem(string cacheKey, Func<object> getCacheItem, TimeSpan? timeout = null, bool isSliding = false, CacheItemPriority priority = CacheItemPriority.Normal, CacheItemRemovedCallback removedCallback = null, string[] dependentFiles = null)
{
InnerProvider.InsertCacheItem(cacheKey, () =>
{
var result = DictionaryCacheProviderBase.GetSafeLazy(getCacheItem);
var value = result.Value; // force evaluation now - this may throw if cacheItem throws, and then nothing goes into cache
if (value == null) return null; // do not store null values (backward compat)
return CheckCloneableAndTracksChanges(value);
}, timeout, isSliding, priority, removedCallback, dependentFiles);
}
private static object CheckCloneableAndTracksChanges(object input)
{
var cloneable = input as IDeepCloneable;
if (cloneable != null)
{
input = cloneable.DeepClone();
}
//on initial construction we don't want to have dirty properties tracked
// http://issues.umbraco.org/issue/U4-1946
var tracksChanges = input as IRememberBeingDirty;
if (tracksChanges != null)
{
tracksChanges.ResetDirtyProperties(false);
input = tracksChanges;
}
return input;
}
}
}
@@ -1,7 +1,7 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using Umbraco.Core.Models.EntityBase;
using Umbraco.Core.Models.Entities;
using Umbraco.Core.Scoping;
namespace Umbraco.Core.Cache
@@ -18,37 +18,31 @@ namespace Umbraco.Core.Cache
/// <para>If options.GetAllCacheValidateCount then we check against the db when getting many entities.</para>
/// </remarks>
internal class DefaultRepositoryCachePolicy<TEntity, TId> : RepositoryCachePolicyBase<TEntity, TId>
where TEntity : class, IAggregateRoot
where TEntity : class, IEntity
{
private static readonly TEntity[] EmptyEntities = new TEntity[0]; // const
private readonly RepositoryCachePolicyOptions _options;
public DefaultRepositoryCachePolicy(IRuntimeCacheProvider cache, RepositoryCachePolicyOptions options)
: base(cache)
public DefaultRepositoryCachePolicy(IAppPolicyCache cache, IScopeAccessor scopeAccessor, RepositoryCachePolicyOptions options)
: base(cache, scopeAccessor)
{
if (options == null) throw new ArgumentNullException("options");
_options = options;
}
public override IRepositoryCachePolicy<TEntity, TId> Scoped(IRuntimeCacheProvider runtimeCache, IScope scope)
{
return new ScopedRepositoryCachePolicy<TEntity, TId>(this, runtimeCache, scope);
_options = options ?? throw new ArgumentNullException(nameof(options));
}
protected string GetEntityCacheKey(object id)
{
if (id == null) throw new ArgumentNullException("id");
if (id == null) throw new ArgumentNullException(nameof(id));
return GetEntityTypeCacheKey() + id;
}
protected string GetEntityTypeCacheKey()
{
return string.Format("uRepo_{0}_", typeof(TEntity).Name);
return $"uRepo_{typeof (TEntity).Name}_";
}
protected virtual void InsertEntity(string cacheKey, TEntity entity)
{
Cache.InsertCacheItem(cacheKey, () => entity, TimeSpan.FromMinutes(5), true);
Cache.Insert(cacheKey, () => entity, TimeSpan.FromMinutes(5), true);
}
protected virtual void InsertEntities(TId[] ids, TEntity[] entities)
@@ -58,7 +52,7 @@ namespace Umbraco.Core.Cache
// getting all of them, and finding nothing.
// if we can cache a zero count, cache an empty array,
// for as long as the cache is not cleared (no expiration)
Cache.InsertCacheItem(GetEntityTypeCacheKey(), () => EmptyEntities);
Cache.Insert(GetEntityTypeCacheKey(), () => EmptyEntities);
}
else
{
@@ -66,7 +60,7 @@ namespace Umbraco.Core.Cache
foreach (var entity in entities)
{
var capture = entity;
Cache.InsertCacheItem(GetEntityCacheKey(entity.Id), () => capture, TimeSpan.FromMinutes(5), true);
Cache.Insert(GetEntityCacheKey(entity.Id), () => capture, TimeSpan.FromMinutes(5), true);
}
}
}
@@ -74,7 +68,7 @@ namespace Umbraco.Core.Cache
/// <inheritdoc />
public override void Create(TEntity entity, Action<TEntity> persistNew)
{
if (entity == null) throw new ArgumentNullException("entity");
if (entity == null) throw new ArgumentNullException(nameof(entity));
try
{
@@ -83,21 +77,21 @@ namespace Umbraco.Core.Cache
// just to be safe, we cannot cache an item without an identity
if (entity.HasIdentity)
{
Cache.InsertCacheItem(GetEntityCacheKey(entity.Id), () => entity, TimeSpan.FromMinutes(5), true);
Cache.Insert(GetEntityCacheKey(entity.Id), () => entity, TimeSpan.FromMinutes(5), true);
}
// if there's a GetAllCacheAllowZeroCount cache, ensure it is cleared
Cache.ClearCacheItem(GetEntityTypeCacheKey());
Cache.Clear(GetEntityTypeCacheKey());
}
catch
{
// if an exception is thrown we need to remove the entry from cache,
// this is ONLY a work around because of the way
// that we cache entities: http://issues.umbraco.org/issue/U4-4259
Cache.ClearCacheItem(GetEntityCacheKey(entity.Id));
Cache.Clear(GetEntityCacheKey(entity.Id));
// if there's a GetAllCacheAllowZeroCount cache, ensure it is cleared
Cache.ClearCacheItem(GetEntityTypeCacheKey());
Cache.Clear(GetEntityTypeCacheKey());
throw;
}
@@ -106,7 +100,7 @@ namespace Umbraco.Core.Cache
/// <inheritdoc />
public override void Update(TEntity entity, Action<TEntity> persistUpdated)
{
if (entity == null) throw new ArgumentNullException("entity");
if (entity == null) throw new ArgumentNullException(nameof(entity));
try
{
@@ -115,21 +109,21 @@ namespace Umbraco.Core.Cache
// just to be safe, we cannot cache an item without an identity
if (entity.HasIdentity)
{
Cache.InsertCacheItem(GetEntityCacheKey(entity.Id), () => entity, TimeSpan.FromMinutes(5), true);
Cache.Insert(GetEntityCacheKey(entity.Id), () => entity, TimeSpan.FromMinutes(5), true);
}
// if there's a GetAllCacheAllowZeroCount cache, ensure it is cleared
Cache.ClearCacheItem(GetEntityTypeCacheKey());
Cache.Clear(GetEntityTypeCacheKey());
}
catch
{
// if an exception is thrown we need to remove the entry from cache,
// this is ONLY a work around because of the way
// that we cache entities: http://issues.umbraco.org/issue/U4-4259
Cache.ClearCacheItem(GetEntityCacheKey(entity.Id));
Cache.Clear(GetEntityCacheKey(entity.Id));
// if there's a GetAllCacheAllowZeroCount cache, ensure it is cleared
Cache.ClearCacheItem(GetEntityTypeCacheKey());
Cache.Clear(GetEntityTypeCacheKey());
throw;
}
@@ -138,7 +132,7 @@ namespace Umbraco.Core.Cache
/// <inheritdoc />
public override void Delete(TEntity entity, Action<TEntity> persistDeleted)
{
if (entity == null) throw new ArgumentNullException("entity");
if (entity == null) throw new ArgumentNullException(nameof(entity));
try
{
@@ -148,9 +142,9 @@ namespace Umbraco.Core.Cache
{
// whatever happens, clear the cache
var cacheKey = GetEntityCacheKey(entity.Id);
Cache.ClearCacheItem(cacheKey);
Cache.Clear(cacheKey);
// if there's a GetAllCacheAllowZeroCount cache, ensure it is cleared
Cache.ClearCacheItem(GetEntityTypeCacheKey());
Cache.Clear(GetEntityTypeCacheKey());
}
}
@@ -244,7 +238,7 @@ namespace Umbraco.Core.Cache
/// <inheritdoc />
public override void ClearAll()
{
Cache.ClearAllCache();
Cache.ClearByKey(GetEntityTypeCacheKey());
}
}
}
}
@@ -0,0 +1,96 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace Umbraco.Core.Cache
{
/// <summary>
/// Implements <see cref="IAppCache"/> on top of a concurrent dictionary.
/// </summary>
public class DictionaryAppCache : IAppCache
{
/// <summary>
/// Gets the internal items dictionary, for tests only!
/// </summary>
internal readonly ConcurrentDictionary<string, object> Items = new ConcurrentDictionary<string, object>();
/// <inheritdoc />
public virtual object Get(string key)
{
return Items.TryGetValue(key, out var value) ? value : null;
}
/// <inheritdoc />
public virtual object Get(string key, Func<object> factory)
{
return Items.GetOrAdd(key, _ => factory());
}
/// <inheritdoc />
public virtual IEnumerable<object> SearchByKey(string keyStartsWith)
{
var items = new List<object>();
foreach (var (key, value) in Items)
if (key.InvariantStartsWith(keyStartsWith))
items.Add(value);
return items;
}
/// <inheritdoc />
public IEnumerable<object> SearchByRegex(string regex)
{
var compiled = new Regex(regex, RegexOptions.Compiled);
var items = new List<object>();
foreach (var (key, value) in Items)
if (compiled.IsMatch(key))
items.Add(value);
return items;
}
/// <inheritdoc />
public virtual void Clear()
{
Items.Clear();
}
/// <inheritdoc />
public virtual void Clear(string key)
{
Items.TryRemove(key, out _);
}
/// <inheritdoc />
public virtual void ClearOfType(string typeName)
{
Items.RemoveAll(kvp => kvp.Value != null && kvp.Value.GetType().ToString().InvariantEquals(typeName));
}
/// <inheritdoc />
public virtual void ClearOfType<T>()
{
var typeOfT = typeof(T);
Items.RemoveAll(kvp => kvp.Value != null && kvp.Value.GetType() == typeOfT);
}
/// <inheritdoc />
public virtual void ClearOfType<T>(Func<string, T, bool> predicate)
{
var typeOfT = typeof(T);
Items.RemoveAll(kvp => kvp.Value != null && kvp.Value.GetType() == typeOfT && predicate(kvp.Key, (T)kvp.Value));
}
/// <inheritdoc />
public virtual void ClearByKey(string keyStartsWith)
{
Items.RemoveAll(kvp => kvp.Key.InvariantStartsWith(keyStartsWith));
}
/// <inheritdoc />
public virtual void ClearByRegex(string regex)
{
var compiled = new Regex(regex, RegexOptions.Compiled);
Items.RemoveAll(kvp => compiled.IsMatch(kvp.Key));
}
}
}

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