Compare commits

...

2665 Commits

Author SHA1 Message Date
Warren 26c148dccc Merge remote-tracking branch 'origin/temp8-135-ChangeDocTypeDialog' into temp8-135-ChangeDocTypeDialog 2018-08-13 15:12:48 +01:00
Warren 8497056185 Fix up camelCasing stuff 2018-08-13 15:12:23 +01:00
Mads Rasmussen 5498e2c2bb Don't show property select if there are no allowed properties 2018-08-13 15:25:09 +02:00
Mads Rasmussen 602a8ce08c add property map + wire up save 2018-08-13 14:48:18 +02:00
Warren 7e82524c4e Camel case properties to make Mads not have a OCD issue with the server responses :) 2018-08-13 12:18:42 +01:00
Warren 783973b9da Fix up the Content Resource to send the correct params to the Controller endpoint 2018-08-13 11:53:14 +01:00
Mads Rasmussen 096cd1ef73 wip change doc type UI 2018-08-13 12:25:36 +02:00
Warren 07b01fa318 Updates resource with getAvailableProperties(fromAlias, toAlias) to call our new HTTP endpoint 2018-08-13 10:58:40 +01:00
Warren 0ba253c61d New Controller endpoint for Mads to get back a JSON object of allowed properties that he can use easier in the clientside for this dialog 2018-08-13 10:40:52 +01:00
Warren 5da7f034e9 WIP - Need some help with JS 2018-08-10 13:34:42 +01:00
Warren 8eebd4ccae WIP - UI needs finishing
* Adds in the GET & POST Controller methods along with new Models
* Adds new HTML view & Angular Controller
* Updates Angular Content Resource to call our new C# controller endpoints
2018-08-09 18:18:27 +01:00
Warren c47e254efe Remove the Legacy menu conversion on ChangeDocType action 2018-08-09 09:54:39 +01:00
Warren 3f35749619 * Remove actionNotify as notifications dialog already merged in
* Remove actionChangeDocType
2018-08-09 09:53:31 +01:00
Warren e818197365 Fix comma dangle ESLint errors 2018-08-09 09:00:34 +01:00
Shannon 1ffcc853e1 updates package-lock 2018-08-09 15:23:46 +10:00
Shannon 284e440b7e Merge remote-tracking branch 'origin/dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Web.UI.Client/package-lock.json
#	src/Umbraco.Web.UI.Client/src/canvasdesigner/config/canvasdesigner.config.js
#	src/Umbraco.Web.UI.Client/src/canvasdesigner/editors/border.js
#	src/Umbraco.Web.UI.Client/src/canvasdesigner/editors/googlefontpicker.js
#	src/Umbraco.Web.UI.Client/src/canvasdesigner/editors/margin.js
#	src/Umbraco.Web.UI.Client/src/canvasdesigner/editors/padding.js
#	src/Umbraco.Web.UI.Client/src/canvasdesigner/editors/radius.js
#	src/Umbraco.Web.UI.Client/src/canvasdesigner/lib/spectrum.directive.js
#	src/Umbraco.Web.UI.Client/src/common/directives/components/umblaunchminieditor.directive.js
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/legacydelete.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/linkpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/login.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/template/querybuilder.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/treepicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/mediaPicker/mediapicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/datatypes/datatype.edit.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js
2018-08-09 15:22:20 +10:00
Shannon Deminick 50597b5715 Merge pull request #2843 from umbraco/temp7-eslint
Temp7 eslint
2018-08-09 15:19:12 +10:00
Shannon 9d7519d591 manually merges noscript update 2018-08-09 15:10:27 +10:00
Mads Rasmussen f35110309a fix comma-dangle error 2018-08-08 19:52:31 +02:00
Mads Rasmussen c73860d144 start eslint from scratch so we slowly can add more rules for easier merging to v8 2018-08-08 19:52:00 +02:00
Warren 1842c78c5d Fix for navigation service for hideDialog(true) which is used to hide the current dialog & show the right click context/more options menu which was failing 2018-08-08 15:26:25 +01:00
Warren Buckley da39eb3ceb Merge pull request #2808 from kows/hackathon-import-doc-type-to-angular
Rewrite importDocumenttype.aspx to Angular [v8hackathon]
2018-08-08 14:36:09 +01:00
Warren baef12eb2a * Rename import to importdocumentype to match up with the action alias
* Minor UI changes to match what we had previously & some simple validation if an incorrect file extension is chosen
2018-08-08 14:35:09 +01:00
Warren 5389a018b3 Sets back the action alias to importDocumentType - It may break more than we expected 2018-08-08 14:32:58 +01:00
Warren 00487c87fc Merge branch 'temp8' into kows-hackathon-import-doc-type-to-angular 2018-08-08 13:23:41 +01:00
Warren 4dbcfc6907 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-08-08 13:22:04 +01:00
Warren 8ba319b9d9 Fix up syntax error in JS from my merge/port upto V8 - oops :( 2018-08-08 12:53:23 +01:00
Robert 2d6ea3c57c Merge pull request #2778 from umbraco/temp-editing-all-variants
WIP Editing all variants at once
2018-08-08 13:47:51 +02:00
Robert c2433a336c Merge branch 'temp8' into temp-editing-all-variants 2018-08-08 13:46:19 +02:00
Warren 44e76adbd1 Merge branch 'hackathon-import-doc-type-to-angular' of https://github.com/kows/Umbraco-CMS into kows-hackathon-import-doc-type-to-angular
# Conflicts:
#	src/Umbraco.Web/Trees/LegacyTreeDataConverter.cs
2018-08-08 12:01:15 +01:00
copilaurobert 3f348e00cf Merge branch 'temp-editing-all-variants' of https://github.com/umbraco/Umbraco-CMS into temp-editing-all-variants 2018-08-08 11:58:55 +02:00
copilaurobert bd40428ad9 Variants in NotCreated state are now considered as dirty. 2018-08-08 11:58:35 +02:00
Mads Rasmussen 9dc99d5e35 fix arrow on media boxes 2018-08-08 10:36:17 +02:00
Mads Rasmussen ea92608f84 prefix new directives with "umb" 2018-08-08 10:25:43 +02:00
Warren fc7c2523c2 Merge branch 'dev-v7' into temp8 (The small fixes that Shan suggested)
# Conflicts:
#	src/Umbraco.Web/Editors/ContentController.cs
2018-08-08 09:21:58 +01:00
Warren 7397541259 Minor fixes to notification dialog after some feedback from Shan when merging this up into V8 2018-08-08 09:04:09 +01:00
Shannon f921e891a3 Fixes issue with IsEdited and state to make things consistent and easy 2018-08-08 16:29:07 +10:00
Shannon 69acaabec1 Fixes creating doc types, some null checks missing and an issue with how umbgridselector is responsible for syncing the template alias on a new doc type 2018-08-08 15:35:02 +10:00
Shannon 72b1fb1d60 fix sort issue on publish dialog 2018-08-08 13:31:35 +10:00
Shannon 34e7440517 Fixes issues with data re-syncing and underlying js exceptions causing problems 2018-08-08 13:29:25 +10:00
Shannon 0769b634e0 fixes status bar on info tab for content 2018-08-08 12:17:57 +10:00
Shannon 9e6947f62c Fixes issue of moving/deleting media along with other issues of us returning plain text responses with incorrect mime type results and an issue with our interceptors 2018-08-08 11:49:05 +10:00
Mads Rasmussen 4a43b97f64 fix media info tab 2018-08-07 20:18:34 +02:00
Warren 6372d393ee Merge branch 'dev-v7' into temp8 == Shan or Stephan please review this !
* Contains a change to work with V8 - content.notify.controller sends a string array
* C# ContentController methods reworked to newer services available & API POST is model bound to string array

# Conflicts:
#	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/views/common/overlays/contenttypeeditor/editorsettings/editorsettings.html
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/insertfield/insertfield.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/notifications.aspx
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/Editors/TemplateController.cs
#	src/Umbraco.Web/Trees/ContentTreeController.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/notifications.aspx
#	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/notifications.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/notifications.aspx.designer.cs
2018-08-07 15:48:21 +01:00
copilaurobert 0b51cb703d Back arrow from list view children will redirect back to parrent, changed the order content apps get added to have the ListView app added first. 2018-08-07 15:59:19 +02:00
Mads Rasmussen af8dc17f5e remove z-index from audit trail css so it doens't colide with language dropdown 2018-08-07 14:50:22 +02:00
Mads Rasmussen a4155ad6d8 Update save and publish button text 2018-08-07 14:22:17 +02:00
Mads Rasmussen 0c727a2817 set active variant in language dropdown 2018-08-07 13:59:11 +02:00
Mads Rasmussen 8222234f86 Merge branch 'temp-editing-all-variants' of https://github.com/umbraco/Umbraco-CMS into temp-editing-all-variants 2018-08-07 13:43:56 +02:00
Mads Rasmussen 345aac8d5b remove hacky group filter + fix arrow 2018-08-07 13:43:33 +02:00
copilaurobert 0da9f108a3 Added null check for active variant on the publish dialog. 2018-08-07 13:41:12 +02:00
Warren Buckley abb88f20f9 Merge pull request #2839 from MMasey/U4-10801
U4-10801 - Fix label UI bug and update Notification Settings UI to angular take 2.
2018-08-07 11:00:55 +01:00
Warren 7c9652d966 Minor changes to controller methods
* Renamed from SetNotificationOptions to PostNotificationsOptions
* Ditch CMSNode in the Get method - as we can use the content.path instead
* Use newer ActionsResolver instead of legacy BusinessLogic for getting Actions
2018-08-07 10:36:09 +01:00
Warren 65571f4ee2 Change endpoint name to be inline with others prefixing with Post in the Controller method 2018-08-07 10:34:03 +01:00
Warren Buckley 5e01da2013 Merge pull request #2838 from umbraco/temp8-bye-umbraco_client
Bye umbraco_client
2018-08-07 10:09:36 +01:00
Warren Buckley b0756b0b0e Fix typo selectedSting to selectedString 2018-08-07 09:24:59 +01:00
Warren Buckley b4de7fd64a Removes unused dependancies notificationService & localizationService 2018-08-07 09:23:45 +01:00
Warren Buckley 1f1a4ac15c Remove 64Bit IISExpress config in CSProj 2018-08-07 09:16:36 +01:00
Warren f0fb66be7d Fix unit test - One less Action class as Aduit has been removed from the context menu as its now part of the info tab on a content node 2018-08-07 08:58:36 +01:00
Shannon 7f09814973 Merge branch 'temp-editing-all-variants' into temp-variants-with-file-uploads 2018-08-07 09:18:48 +10:00
Shannon dc5f3c1f27 only set the active culture if the content item is variant 2018-08-07 09:12:44 +10:00
Shannon 96aa442855 fixes creating content 2018-08-07 09:09:34 +10:00
Shannon 6dfaaffdfe adds null check in invariant content 2018-08-07 09:06:19 +10:00
Shannon 19c39341f7 allowing more than 2 parts per file name 2018-08-07 09:03:37 +10:00
Mike 2b6c6b3022 http://issues.umbraco.org/issue/U4-10801
Fixes label ui issue on template editor ui.

Updated notification settings ui to use angular instead of web forms.
2018-08-06 19:52:29 +01:00
Shannon e53fe669ef Start to setting files with a culture and catering for being able to set any metadata for files 2018-08-07 00:43:52 +10:00
Shannon f37fe60bd5 Merge remote-tracking branch 'origin/temp8' into temp-editing-all-variants 2018-08-06 22:08:35 +10:00
Warren ef5fc2e7b2 Add back in bundle control - seems to fix up Macro Editor 2018-08-06 13:05:07 +01:00
Shannon 3af09bfe9f fixes tests 2018-08-06 22:04:55 +10:00
Shannon c000ef0b5c adding some code docs 2018-08-06 21:50:23 +10:00
Shannon 9e1b4e1c52 cleanup 2018-08-06 21:39:30 +10:00
Warren a242d13bb9 Fix up missing .aspx tag control reference for ProtectPage dialog 2018-08-06 12:24:43 +01:00
Warren 2fb6588160 Fixes some YSODs with older dialogs 2018-08-06 12:21:31 +01:00
Shannon 3777ea9a7d Moves the 'editor' variant editor to a separate directive so that we can separate out a bit of logic and have a form to watch for dirty tracking on the header value 2018-08-06 21:19:36 +10:00
Warren dd63ff850c Remove test paths to umbraco_client - makes no sense to test for this path as it no longer exists 2018-08-06 11:54:07 +01:00
Warren 4730ee317b Removes some unused .aspx files for dictionary editing - no longer needed as we now have this in Angular 2018-08-06 11:52:12 +01:00
Robert 398c75ca4d Merge pull request #2833 from umbraco/temp8-126
fixes: Update UI on the dictionary editor to match V8 styles
2018-08-06 11:04:20 +02:00
Warren Buckley 4b2ddbdbdd Merge pull request #2832 from umbraco/temp-92
fixes temp-92: Code editing: Convert overlays into infinite editors
2018-08-06 09:54:58 +01:00
Sebastiaan Janssen 5e9f73b114 Merge pull request #2837 from umbraco/temp-U4-11554
Changed the Danish language file - added the Dictionary title
2018-08-06 10:51:23 +02:00
Mads Rasmussen 85b18eec05 only allow to open template if user has access to settings section 2018-08-06 10:47:20 +02:00
elitsa fc7db11c6c Changed the Danish language file - added the Dictionary title 2018-08-06 10:45:51 +02:00
Shannon a0f7dbbc60 Only update variant info if it is dirty 2018-08-06 18:05:04 +10:00
Shannon 7aaf024397 more work on validation, saving and publishing 2018-08-06 16:50:40 +10:00
Mads Rasmussen 41f5d7d113 This treeSync code doesn't work and I don't know why 2018-08-03 11:17:48 +02:00
Mads Rasmussen 18e0eda7d3 Merge branch 'temp8-bye-umbraco_client' of https://github.com/umbraco/Umbraco-CMS into temp8-bye-umbraco_client 2018-08-03 10:52:24 +02:00
Mads Rasmussen 85938e5432 fix sorting of root nodes 2018-08-03 10:52:09 +02:00
Warren 733fb7ed33 Merge branch 'temp8-bye-umbraco_client' of https://github.com/umbraco/Umbraco-CMS into temp8-bye-umbraco_client 2018-08-03 09:26:29 +01:00
Warren 237fcbead6 Last of the umbraco_client files removed 2018-08-03 09:25:33 +01:00
Mads Rasmussen ad12026e29 add sorting for media 2018-08-03 10:24:44 +02:00
Warren 7f5d22b587 Adds in the email notification service taken from the old sorter WebService to use in the ContentEditor Controller 2018-08-03 08:35:01 +01:00
Shannon ad72ba6c6a Fixes up some $watch expressions to be more efficient 2018-08-03 15:08:11 +10:00
Shannon fdf0182ffe TEMP - trying to remove watches to figure out the angular infinite digest loop 2018-08-03 10:49:19 +10:00
Shannon 789a9434c1 fixes property rebinding with variants and fixes more validation flow 2018-08-03 10:22:29 +10:00
Warren 01a2988737 Tablesorting 3rd party lib is removed 2018-08-02 20:33:38 +01:00
Mads Rasmussen 8177d08df2 add sort by table headings 2018-08-02 20:59:55 +02:00
Mads Rasmussen 1e5db34679 add empty state and error handling for save 2018-08-02 19:22:17 +02:00
Mads Rasmussen 23c86ecc4a forgot the parentId was still in use 2018-08-02 17:37:29 +02:00
Mads Rasmussen 3dff904264 get children from the current node id and not the parent 2018-08-02 17:15:26 +02:00
Mads Rasmussen f12091df5d Merge branch 'temp8-bye-umbraco_client' of https://github.com/umbraco/Umbraco-CMS into temp8-bye-umbraco_client 2018-08-02 17:10:06 +02:00
Mads Rasmussen 2b25de4ae6 save sort order 2018-08-02 16:17:53 +02:00
Warren b0ca59b0ab OLD sort dialog.aspx & its JS assets from umbraco_client have vanished into thin air 2018-08-02 15:05:18 +01:00
Shannon 9b067d3539 Merge remote-tracking branch 'origin/temp8' into temp-editing-all-variants 2018-08-02 23:57:43 +10:00
Shannon be1fbcfe04 don't short circuit the property validation, run all of them for content for all variants so we get the correct response 2018-08-02 23:55:47 +10:00
Mads Rasmussen 0ea7bdfe7b get children for sort dialog 2018-08-02 15:51:41 +02:00
Warren 043437b725 Revert "Adds in new API endpoint in Content Editor - GetContentSortOrder (same logic & SortNode class from the WebService) - this may need to change depending on JSON structure required"
This reverts commit 67b348df92.
2018-08-02 14:45:31 +01:00
Shannon bfbcbdb604 more fixes for validation states when changing variants 2018-08-02 23:36:49 +10:00
Warren 67b348df92 Adds in new API endpoint in Content Editor - GetContentSortOrder (same logic & SortNode class from the WebService) - this may need to change depending on JSON structure required 2018-08-02 14:25:46 +01:00
Warren fee48e9dee To get the build to work - need to push these commented out classes for now that reference MenuButton (I think EditMacro, EditPackage & EditDictionaryItem) are no longer loaded this way AFAIK but I need to check 2018-08-02 14:06:05 +01:00
Warren 6967ed1846 Adds in Sort Angular dialog from Mads & removes some of the old sort dialog parts 2018-08-02 13:52:13 +01:00
Sebastiaan Janssen af46e1a549 Merge pull request #2834 from andiih/TourWording
Tour Step 7 Wording
2018-08-02 14:45:54 +02:00
Shannon ef4710b6cc several fixes for maintaining a validation state between switching between variants 2018-08-02 22:42:49 +10:00
Andy Hawken (SP4) afa27ce872 Tour Step 7 Wording
Change wording of tour step 7 to "Now click on" to indicate that clicking on the avatar is a step in the tour, rather than a description of what it does at runtime
2018-08-02 13:34:30 +01:00
Warren 08991dc98c Removes old modal js lib & references 2018-08-02 11:58:10 +01:00
Warren c0ccc79604 Remove another AssignDomain dialog & Punycode lib which was only used in AssignDomain2 dialog 2018-08-02 11:36:13 +01:00
Warren b59c7d8af6 Remove AssignDomain JS & CSS assets from umbraco_client 2018-08-02 11:33:14 +01:00
Warren 1b20f0be0d Scaffold HTML & Angular Controller to put in a UI (Probably with some help from Mads) 2018-08-02 11:16:31 +01:00
Shannon 1f25847cd7 Gets contextual culture server validation working 2018-08-02 20:00:35 +10:00
Sebastiaan Janssen 89bdbf500e Revert "Fixed issue with creating doctypes & templated with an Ampersand : http://issues.umbraco.org/issue/U4-11550 (#2828)"
Revert "We need to create the template from it's alias, which is the safeAlias, which is the correct filename"
This reverts commit 9663cfde82 and commit 11aea0f515
2018-08-02 11:48:12 +02:00
Mads Rasmussen bef6afe359 post-merge fix: open doctype in infinite editing from info app 2018-08-02 11:41:40 +02:00
Warren c91776dd5e Sets the Assign Domain Content tree menu item to not use the legacy conversion - will load a view from /umbraco/views/content/assignDomain.html based on convention routing 2018-08-02 10:27:37 +01:00
Mads Rasmussen fceb7804b4 fixes: Update UI on the dictionary editor to match V8 styles 2018-08-02 11:05:04 +02:00
Warren 3fadfaf632 Kaboom - now the View Audit Trial Context menu item & its dialog is gone. As you can see this on the content node under info 2018-08-02 09:55:48 +01:00
Mads Rasmussen 788ed8b61b make template editor support infinite editing 2018-08-02 10:00:11 +02:00
Shannon d926f1b3a2 It saves (not publishing though)! now on to validation 2018-08-02 15:12:26 +10:00
Warren e33498fb56 Remove old location of jQuery Validate & Unobtrusive libs 2018-08-01 22:37:25 +01:00
Warren eb220b6db0 Add in jQuery VUpalidate & Unobtrusive into bower
Update ref's to new path
2018-08-01 22:35:03 +01:00
Mads Rasmussen 759c21cec9 use infinite macropicker in partial views and partial view macro editior 2018-08-01 20:06:35 +02:00
Mads Rasmussen 3e36e06d77 add extra markup for the infinite editor 2018-08-01 19:01:44 +02:00
Mads Rasmussen 0a31ac6ef3 use macropicker in template editor 2018-08-01 18:47:55 +02:00
Mads Rasmussen bf4b48aa9d move the macropicker files to the infinite editor folder 2018-08-01 18:47:08 +02:00
Warren 6e08a7d8ce jQuery.metadata.js is on garden leave 2018-08-01 15:57:21 +01:00
Warren 0e6465ee14 See ya later alligator jQuery.hotkeys.js - CTRL+S still wortks in DocType editor so all good 2018-08-01 15:48:19 +01:00
Warren 3bc6bf6da5 jQuery.cookie lib has ran off into the woods 2018-08-01 15:34:32 +01:00
Warren 2fec8b6b02 Remove jQuer fieldselection lib - its not being used 2018-08-01 15:32:43 +01:00
Warren a2839876c6 Extnesions.js removed from umbraco_client as it has a new home in umbraco/lib/umbraco 2018-08-01 15:30:16 +01:00
Warren 5b4c897892 Yet again I forgot to save the CSProj - you would have thought I would have learnt 2018-08-01 15:07:11 +01:00
Warren a884a9c56c UmbracoClientManager is next for the chopping block but a legacy copy is in the umbraco/lib/ folder for safe keeping for the time being :) 2018-08-01 15:06:01 +01:00
Mads Rasmussen caf942db8b Merge branch 'temp8' into temp-92 2018-08-01 16:01:41 +02:00
Warren fb4dfb62f6 Removes UmbracoField JS & its .aspx dialog - this got rewritten in a nicer UI for template editor 2018-08-01 14:39:42 +01:00
Warren dcfe0c8bda Forgot csproj update again when removing files 2018-08-01 14:38:27 +01:00
Mads Rasmussen b28d23b8e7 add item picker infinite editor + use in template editor 2018-08-01 15:20:48 +02:00
Warren 6c7ecaed5b More vintage menuicon stuff removed from when Umbraco backoffice had drop shadows & buttons like office 2018-08-01 14:08:44 +01:00
Warren 37444a500d ScrollingMenu - now that is vintage V3 & V4 UI days ! 2018-08-01 13:53:24 +01:00
Warren f645e6ffa9 Macro Split Button has been taken around the back along with its C# Control 2018-08-01 13:46:20 +01:00
Warren 956d1d53a6 base2.js has been moved to that nice farm upstate 2018-08-01 13:35:00 +01:00
Warren 90267338a4 Some old CSS styling is now gone 2018-08-01 13:33:04 +01:00
Warren 4650940084 Forgot to remove it from disk & csproj (jQuery) 2018-08-01 13:31:26 +01:00
Warren adf34cd18e Remove jQUery from umbraco_client its in via bower now & updated a ref in some .cshtml to use new path 2018-08-01 13:30:31 +01:00
Warren 838a5e07f7 Cheerio default.js 2018-08-01 13:18:18 +01:00
Warren 7d380a6e03 JQueryUI is gone - well from umbraco_client as its used in bower in the newer client stuff 2018-08-01 13:11:43 +01:00
Warren 41f0d6f211 Bye bye JSON2.js lib 2018-08-01 13:09:42 +01:00
Warren 05d7ed92fb Bye bye knockout.js - you were cool before the new kids on the block such as VueJS, React & Angular were about 2018-08-01 13:03:29 +01:00
Mads Rasmussen b5f02367ab Use new template section infinite editor instead of the old overlay in the template editor 2018-08-01 13:34:01 +02:00
Mads Rasmussen fbfcccc13d add infinite editor markup to template sections 2018-08-01 13:33:17 +02:00
Mads Rasmussen 37db8516ed move template sections overlay to infinite editors 2018-08-01 13:13:09 +02:00
Mads Rasmussen d7c0a92d9f update insert code snippet infinite editor to use new insert field editor 2018-08-01 12:30:31 +02:00
Mads Rasmussen d88ed02a8d use insert field infinite editor in template, partial views and macro partial views editors 2018-08-01 11:47:48 +02:00
Mads Rasmussen 4cc31a62c0 convert insertfeld overlay to an infinite editor 2018-08-01 11:46:28 +02:00
Sebastiaan Janssen 8c5e20c8fe Merge pull request #2830 from karltynan/dev-v7
Updated some lang files grammar
2018-08-01 10:59:59 +02:00
Stephan f049d1b479 Ensure PublishedRequest always has a culture 2018-08-01 10:42:50 +02:00
Karl Tynan db2d7687e4 And updated the en_us.xml version too 2018-08-01 09:23:15 +01:00
Karl Tynan c97311607d Improved text for email and capitalisation for URL 2018-08-01 09:22:45 +01:00
Karl Tynan dbd9db780c Also updated the en_us.xml 2018-08-01 09:11:19 +01:00
Karl Tynan 04775098fe Updated some grammar on en.xml 2018-08-01 09:10:40 +01:00
Mads Rasmussen 4ede57836e move insertfield files to new location 2018-08-01 09:51:44 +02:00
Shannon 778a557f3c Gets the correct content posting which now binds and validates on the server properly 2018-08-01 17:28:39 +10:00
Shannon 6a94694f16 Got models pulled apart and simplified, much less inheritance and easier to follow, start wiring up the model binding logic for content along with validation for each variant 2018-08-01 16:46:13 +10:00
Sebastiaan Janssen 638f71d80e Merge remote-tracking branch 'origin/dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/mocks/services/localization.mocks.js
#	src/Umbraco.Web.UI.Client/src/common/resources/entity.resource.js
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/help.html
#	src/Umbraco.Web.UI.Client/src/views/common/drawers/help/help.html
#	src/Umbraco.Web.UI.Client/src/views/dashboard/default/StartupDashboardVideos.html
#	src/Umbraco.Web.UI.Client/src/views/dashboard/developer/developerdashboardvideos.html
#	src/Umbraco.Web.UI.Client/src/views/dashboard/settings/settingsdashboardintro.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/relatedlinks/relatedlinks.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js
#	src/Umbraco.Web/Editors/ContentTypeController.cs
#	src/Umbraco.Web/Editors/TemplateController.cs
2018-08-01 08:45:18 +02:00
Sebastiaan Janssen f849ca38fc Merge pull request #2829 from readingdancer/U4-11551
Fixing various broken links in the source code
2018-08-01 08:04:20 +02:00
Shannon c073ab2731 WIP still pulling apart models, binders, validators 2018-08-01 15:40:54 +10:00
Sebastiaan Janssen 11aea0f515 We need to create the template from it's alias, which is the safeAlias, which is the correct filename
Relates to: https://github.com/umbraco/Umbraco-CMS/pull/2828#issuecomment-409452155
2018-08-01 07:18:44 +02:00
Sebastiaan Janssen d803aeb205 Merge pull request #2827 from umbraco/temp-U4-11059
Changing the document type alias before first save leads to YSOD
2018-08-01 07:17:07 +02:00
Chris Houston 9663cfde82 Fixed issue with creating doctypes & templated with an Ampersand : http://issues.umbraco.org/issue/U4-11550 (#2828) 2018-08-01 07:16:38 +02:00
Shannon fc3c8bab45 Merge branch 'temp8' into temp-editing-all-variants 2018-08-01 15:16:02 +10:00
Sebastiaan Janssen 1d5a807e0d Merge pull request #2826 from bjarnef/dev-v7-U4-9025-3
U4-9025 - Fix styling of prevalues
2018-08-01 06:43:29 +02:00
Chris Houston bb59c4708d Just triggering AppVeyor :)
As per my other pull request, pretty sure the one unit test failed due to it running close to midnight on the last day of the month.
2018-08-01 00:30:44 -04:00
Chris Houston 23fda3a0ed Fixing various broken links in the source code, some are just in comments and others are actually used within Umbraco, also added HTTPS where possible. 2018-07-31 23:00:46 -04:00
Shannon 35af025ae3 fixes migrations for v8 2018-08-01 12:37:44 +10:00
Shannon dfc8f3837a Merge branch 'temp8' into temp-editing-all-variants 2018-08-01 12:36:45 +10:00
Shannon 19851b6986 Merge remote-tracking branch 'origin/dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Core/Configuration/GlobalSettings.cs
#	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenTwelveZero/AddRelationTypeForMediaFolderOnDelete.cs
#	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenTwelveZero/IncreaseLanguageIsoCodeColumnLength.cs
#	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenTwelveZero/UpdateUmbracoConsent.cs
#	src/Umbraco.Core/Persistence/PetaPoco.cs
#	src/Umbraco.Core/PluginManager.cs
#	src/Umbraco.Core/Services/Implement/UserService.cs
#	src/Umbraco.Core/StringExtensions.cs
#	src/Umbraco.Core/Strings/DefaultShortStringHelper.cs
#	src/Umbraco.Tests/CodeFirst/ContentTypeMapper.cs
#	src/Umbraco.Tests/CoreXml/NavigableNavigatorTests.cs
#	src/Umbraco.Tests/PublishedContent/PublishedContentTests.cs
#	src/Umbraco.Web.UI.Client/src/common/resources/contenttype.resource.js
#	src/Umbraco.Web.UI.Client/src/common/resources/datatype.resource.js
#	src/Umbraco.Web.UI.Client/src/common/resources/mediatype.resource.js
#	src/Umbraco.Web.UI/Umbraco/developer/Packages/DirectoryBrowser.aspx.cs
#	src/Umbraco.Web/Install/FilePermissionHelper.cs
#	src/Umbraco.Web/Trees/PackagesTreeController.cs
#	src/Umbraco.Web/UI/JavaScript/UmbracoClientDependencyLoader.cs
#	src/Umbraco.Web/UmbracoModule.cs
#	src/Umbraco.Web/umbraco.presentation/content.cs
#	src/Umbraco.Web/umbraco.presentation/requestModule.cs
#	src/umbraco.businesslogic/BasePages/UmbracoEnsuredPage.cs
#	src/umbraco.cms/businesslogic/Content.cs
#	src/umbraco.cms/businesslogic/Packager/PackageActions/publishRootDocument.cs
2018-08-01 12:26:26 +10:00
Shannon f36a23dd42 WIP sln builds now 2018-08-01 12:16:03 +10:00
Shannon 55e1a792da Fixes migrations for 7.12.0 2018-08-01 12:15:18 +10:00
Shannon 5eedfc2a53 Merge remote-tracking branch 'origin/temp8' into temp-editing-all-variants
# Conflicts:
#	src/Umbraco.Web/Editors/ContentController.cs
2018-08-01 11:56:46 +10:00
Bjarne Fyrstenborg a6d9b4b260 Add text-overflow for long labels 2018-07-31 23:25:56 +02:00
Sebastiaan Janssen 4422c5ec52 Update AllowedTemplates list as well if the doctype alias is not the generated one 2018-07-31 22:39:22 +02:00
Bjarne Fyrstenborg c4fc5a04f9 Adjust color picker prevalues to fit within overlay 2018-07-31 22:16:33 +02:00
Bjarne Fyrstenborg 63bbbbab31 Adjust multivalues styles 2018-07-31 22:15:30 +02:00
Sebastiaan Janssen fc6dc25224 Merge pull request #2825 from readingdancer/U4-11472
Fixes issue #U4-11472
2018-07-31 22:03:49 +02:00
Sebastiaan Janssen fe914dc339 Also make sure the alias gets generated from the full name and not just the part before the & 2018-07-31 22:01:35 +02:00
Mads Rasmussen 23136c5f4f Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-07-31 20:49:24 +02:00
Mads Rasmussen 1bdd848582 Post-merge color picker fixes 2018-07-31 20:48:44 +02:00
Chris Houston a2cb5fac98 Fixes issue #U4-11472
Document type, Media Type & Data Type folders did not support Ampersands in their names, now they do.
2018-07-31 11:06:06 -04:00
Stephan ee5a834ab0 Ensure build respects NUGET_PACKAGES 2018-07-31 15:55:31 +02:00
Stephan a3f2372b6c Post-merge namespace cleanup 2018-07-31 14:56:40 +02:00
Stephan c209bdde5b Fix routing, AliasUrlProvider 2018-07-31 14:48:30 +02:00
Stephan f35c63fa40 Renormalize 2018-07-31 14:14:52 +02:00
Stephan 309ca0a765 Fix tests after merge (loadPackager tree is gone) 2018-07-31 13:41:38 +02:00
Stephan abc2bfa774 Cleanup merge of migrations 2018-07-31 13:35:12 +02:00
Stephan 3c446a3ba0 Cleanup merge of Color Picker editor 2018-07-31 13:35:12 +02:00
Stephan f30171bcfd Cleanup filenames 2018-07-31 13:35:12 +02:00
Warren 80db20fdfb Fix up failing JS unit test from a recent change from V8 hackathon to the query builder syntax (was curly's on new lines) 2018-07-31 11:18:24 +01:00
Mundairson 9cd2db5018 U4-11546 [v7] Clean up to remove compiler warnings (#2823) 2018-07-31 10:41:15 +02:00
ashallcross 02b6b77d38 Updated links in readme file (#2822)
Updated the links from our.umbraco.org > our.umbraco.com also the case study and cloud links
2018-07-31 10:39:51 +02:00
Shannon 9241e1fcda WIP Getting the content controller a bit further, now need to pull apart the content binder 2018-07-31 17:50:24 +10:00
Shannon 122c18e6d7 Merge branch 'temp8' into temp-editing-all-variants
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/Models/Mapping/TabsAndPropertiesResolver.cs
2018-07-31 15:56:04 +10:00
Shannon 6e36755de5 updates gitignore 2018-07-31 15:37:47 +10:00
Shannon 190b16626f updates gitignore 2018-07-31 15:26:09 +10:00
Shannon ecc83595c8 minor merge fixes 2018-07-31 15:12:49 +10:00
Shannon d073e727cb minor merge fixes 2018-07-31 15:11:31 +10:00
Shannon b96e1343c2 renames lang files back to correct cased folder... now we'll see if merging detects renames 2018-07-31 15:00:56 +10:00
Shannon d272dbf611 Merge branch 'dev-v7' into temp8
# Conflicts:
#	build/NuSpecs/tools/Readme.txt
#	src/Umbraco.Core/Configuration/UmbracoSettings/HelpElement.cs
#	src/Umbraco.Core/Macros/MacroFieldEditorsResolver.cs
#	src/Umbraco.Core/Packaging/Models/PackageAction.cs
#	src/Umbraco.Core/PropertyEditors/PreValueField.cs
#	src/Umbraco.Core/PropertyEditors/ValueConverters/MultipleTextStringValueConverter.cs
#	src/Umbraco.Core/Sync/ApplicationUrlHelper.cs
#	src/Umbraco.Tests/Configurations/UmbracoSettings/umbracoSettings.minimal.config
#	src/Umbraco.Tests/Dependencies/NuGet.cs
#	src/Umbraco.Tests/Persistence/PetaPocoExtensionsTest.cs
#	src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs
#	src/Umbraco.Tests/Services/Importing/StandardMvc-Package.xml
#	src/Umbraco.Tests/Services/Importing/TemplateOnly-Package.xml
#	src/Umbraco.Tests/Services/Importing/TemplateOnly-Updated-Package.xml
#	src/Umbraco.Tests/Services/Importing/uBlogsy-Package.xml
#	src/Umbraco.Tests/Services/PerformanceTests.cs
#	src/Umbraco.Web.UI.Client/src/less/belle.less
#	src/Umbraco.Web.UI.Client/src/less/components/umb-tabs.less
#	src/Umbraco.Web.UI.Client/src/less/navs.less
#	src/Umbraco.Web.UI.Client/src/less/tree.less
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/help.html
#	src/Umbraco.Web.UI.Client/src/views/common/drawers/help/help.html
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/help/help.html
#	src/Umbraco.Web.UI.Client/src/views/dashboard/dashboard.tabs.controller.js
#	src/Umbraco.Web.UI.Client/src/views/dashboard/settings/settingsdashboardintro.html
#	src/Umbraco.Web.UI.Client/src/views/datatypes/datatype.edit.controller.js
#	src/Umbraco.Web.UI.Client/src/views/packager/views/repo.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.html
#	src/Umbraco.Web.UI/Properties/Settings.Designer.cs
#	src/Umbraco.Web.UI/Properties/Settings.settings
#	src/Umbraco.Web.UI/Umbraco/config/lang/nb.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/zh_tw.xml
#	src/Umbraco.Web.UI/config/feedProxy.Release.config
#	src/Umbraco.Web.UI/config/feedProxy.config
#	src/Umbraco.Web.UI/config/umbracoSettings.Release.config
#	src/Umbraco.Web.UI/umbraco/config/lang/da.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/de.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.UI/umbraco/config/lang/fr.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/he.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/it.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/ja.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/ko.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/nl.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/pl.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/pt.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/ru.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/sv.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/zh.xml
#	src/Umbraco.Web.UI/umbraco/developer/Packages/editPackage.aspx
#	src/Umbraco.Web.UI/umbraco_client/Tree/jquery.tree.contextmenu.js
#	src/Umbraco.Web.UI/web.Template.config
#	src/Umbraco.Web/Install/InstallHelper.cs
#	src/Umbraco.Web/Install/InstallSteps/UpgradeStep.cs
#	src/Umbraco.Web/Media/ThumbnailProviders/ImageThumbnailProvider.cs
#	src/Umbraco.Web/Models/ContentEditing/PreValueFieldDisplay.cs
#	src/Umbraco.Web/Mvc/EnsurePublishedContentRequestAttribute.cs
#	src/Umbraco.Web/Properties/Settings.settings
#	src/Umbraco.Web/Properties/Settings1.Designer.cs
#	src/Umbraco.Web/Routing/PublishedContentRequest.cs
#	src/Umbraco.Web/Trees/PackagesTreeController.cs
#	src/Umbraco.Web/UI/LegacyDialogHandler.cs
#	src/Umbraco.Web/UmbracoModule.cs
#	src/Umbraco.Web/Web References/org.umbraco.our/Reference.map
#	src/Umbraco.Web/Web References/org.umbraco.our/repository.disco
#	src/Umbraco.Web/Web References/org.umbraco.our/repository.wsdl
#	src/Umbraco.Web/app.config
#	src/Umbraco.Web/umbraco.presentation/item.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadScripts.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/create/simple.ascx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/editPackage.aspx
#	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/search.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/preview/PreviewContent.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/DocumentExtensions.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/NodeExtensions.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/uQuery-Nodes.cs
#	src/umbraco.MacroEngines/RazorDataTypeModels/IntegerDataTypeModel.cs
#	src/umbraco.MacroEngines/RazorDynamicNode/DynamicNodeList.cs
#	src/umbraco.businesslogic/ApplicationTree.cs
#	src/umbraco.businesslogic/BasePages/BasePage.cs
#	src/umbraco.businesslogic/BasePages/UmbracoEnsuredPage.cs
#	src/umbraco.editorControls/uploadfield/uploadField.cs
2018-07-31 14:57:20 +10:00
Shannon 814e4c781f testing rename change 2018-07-31 14:44:23 +10:00
Shannon 5ef067b5f0 More manual merges 2018-07-31 13:05:54 +10:00
Shannon c36a1e4537 Fixes issue with pre-value models due to data type refactor (has been already fixed in other temp branches) 2018-07-31 12:50:30 +10:00
Shannon f4342ed9cb Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js
#	src/Umbraco.Web.UI/web.Template.Debug.config
2018-07-31 12:34:03 +10:00
Shannon 8517a8e088 fixes tests 2018-07-31 12:19:12 +10:00
Shannon d3c45bc90f lang files merged 2018-07-31 11:26:27 +10:00
Sebastiaan Janssen 3a0c872587 Merge pull request #2631 from poornimanayar/U4-8617
check for recursive value
2018-07-30 17:30:47 +02:00
Steven Harland 92b11bf966 Increase z-index of .umb-nav-tabs (#2566)
This lowers the chances of property editors overlapping the tab overflow menu.
More info here: http://issues.umbraco.org/issue/U4-11185
2018-07-30 17:10:50 +02:00
Steven Harland a7f68fa3d3 Add margin and padding to tabs dropdown (#2560)
This reduces the space between the active tab and tab content so that they bleed into each other.
More info here: http://issues.umbraco.org/issue/U4-11181
2018-07-30 17:03:53 +02:00
Sebastiaan Janssen f59104a6f1 Merge pull request #2810 from AnthonyCogworks/refactor-obsolete-sweep4
v8hackathon Refactor obsolete sweep4 [v8hackaton]
2018-07-30 16:31:18 +02:00
Sebastiaan Janssen 3c2e84fdae Merge pull request #2807 from AnthonyCogworks/refactor-obsolete-sweep3
v8hackathon Refactored out some obsolete methods and files. [v8hackaton]
2018-07-30 16:29:32 +02:00
Sebastiaan Janssen 9397b34e35 Merge pull request #2805 from AnthonyCogworks/refactor-obsolete-sweep2
v8hackathon Refactor obsolete sweep2 [v8hackaton]
2018-07-30 16:27:39 +02:00
Sebastiaan Janssen 2613d0b5ac Pass UrlProvider in from grid editor too 2018-07-30 16:18:59 +02:00
Sebastiaan Janssen 5a5ce293d2 Merge branch 'refactor-obsolete-sweep2' of https://github.com/AnthonyCogworks/Umbraco-CMS into AnthonyCogworks-refactor-obsolete-sweep2 2018-07-30 16:12:45 +02:00
Sebastiaan Janssen 4a1113307e Merge pull request #2802 from AnthonyCogworks/refactor-obsolete-mark2
v8hackathon Refactor obsolete mark2 [v8hackaton]
2018-07-30 16:10:52 +02:00
Sebastiaan Janssen 86acf0c1ad Revert "enable use of radiobuttonlist pre editor"
This reverts commit 80412f56ee.
2018-07-30 15:46:34 +02:00
Sebastiaan Janssen 2ea5a7a293 Make radiobuttonlist work with configs as well
Re: https://github.com/umbraco/Umbraco-CMS/pull/2763#issuecomment-408848485
2018-07-30 15:46:02 +02:00
Shannon fbc4820ab4 Fixes migrations and updates the api usages for v8, more manual merging of files 2018-07-30 23:23:01 +10:00
Shannon 3a487e447b moves migrations 2018-07-30 22:25:29 +10:00
Stephan ff607aef7a Remove obsolete stuff 2018-07-30 14:04:02 +02:00
Shannon 10db2834aa committing new migrations from v7 so we can properly rename them on next commit 2018-07-30 21:36:15 +10:00
Sebastiaan Janssen 8dc3b032b7 Removes unmaintained cleanup scripts and unused git installer 2018-07-30 13:34:45 +02:00
Sebastiaan Janssen 7aa9ae8771 Cleanup: remove Teamcity test runner 2018-07-30 13:34:10 +02:00
Shannon a83ea47c25 Merge remote-tracking branch 'origin/dev-v7' into temp8
# Conflicts:
#	build/NuSpecs/tools/Web.config.install.xdt
#	src/Umbraco.Core/Constants-Conventions.cs
#	src/Umbraco.Core/DatabaseContext.cs
#	src/Umbraco.Core/Models/Rdbms/LanguageDto.cs
#	src/Umbraco.Core/Models/Rdbms/RelationTypeDto.cs
#	src/Umbraco.Core/Persistence/Migrations/Initial/BaseDataCreation.cs
#	src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs
#	src/Umbraco.Core/PropertyEditors/PreValueField.cs
#	src/Umbraco.Core/PropertyEditors/SupportTagsAttribute.cs
#	src/Umbraco.Core/Services/FileService.cs
#	src/Umbraco.Core/Services/IFileService.cs
#	src/Umbraco.Core/Strategies/RelateOnTrashHandler.cs
#	src/Umbraco.Tests/App.config
#	src/Umbraco.Tests/Persistence/Repositories/RelationTypeRepositoryTest.cs
#	src/Umbraco.Tests/PublishedContent/PublishedContentTests.cs
#	src/Umbraco.Web.UI.Client/src/common/directives/components/content/umbcontentnodeinfo.directive.js
#	src/Umbraco.Web.UI.Client/src/common/directives/components/umbgridselector.directive.js
#	src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js
#	src/Umbraco.Web.UI.Client/src/less/belle.less
#	src/Umbraco.Web.UI.Client/src/less/components/application/umb-drawer.less
#	src/Umbraco.Web.UI.Client/src/less/components/umb-grid.less
#	src/Umbraco.Web.UI.Client/src/less/hacks.less
#	src/Umbraco.Web.UI.Client/src/less/property-editors.less
#	src/Umbraco.Web.UI.Client/src/less/variables.less
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/insertmacro.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/drawers/help/help.html
#	src/Umbraco.Web.UI.Client/src/views/components/content/umb-content-node-info.html
#	src/Umbraco.Web.UI.Client/src/views/components/umb-grid-selector.html
#	src/Umbraco.Web.UI.Client/src/views/datatypes/datatype.edit.controller.js
#	src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.html
#	src/Umbraco.Web.UI.Client/src/views/media/move.html
#	src/Umbraco.Web.UI.Client/src/views/prevalueeditors/multivalues.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.prevalues.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/fileupload/fileupload.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/fileupload/fileupload.html
#	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.Client/src/views/propertyeditors/mediapicker/mediapicker.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/multipletextbox/multipletextbox.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/multipletextbox/multipletextbox.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.html
#	src/Umbraco.Web.UI/Views/Web.config
#	src/Umbraco.Web.UI/umbraco/Install/Views/Web.config
#	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/config/lang/nl.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/ru.xml
#	src/Umbraco.Web.UI/web.Template.Debug.config
#	src/Umbraco.Web.UI/web.Template.config
#	src/Umbraco.Web/Editors/TemplateController.cs
#	src/Umbraco.Web/Models/ContentEditing/ContentItemDisplay.cs
#	src/Umbraco.Web/Models/ContentEditing/PreValueFieldDisplay.cs
#	src/Umbraco.Web/PropertyEditors/ColorListPreValueEditor.cs
#	src/Umbraco.Web/PropertyEditors/ListViewPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/TagsPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/TrueFalsePropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/ValueListPreValueEditor.cs
#	src/Umbraco.Web/PublishedContentExtensions.cs
#	src/Umbraco.Web/Trees/ApplicationTreeExtensions.cs
#	src/Umbraco.Web/Trees/MediaTreeController.cs
#	src/umbraco.MacroEngines/Resources/Web.config
#	src/umbraco.cms/Actions/ActionRestore.cs
#	src/umbraco.editorControls/yesno/YesNoDataType.cs
2018-07-30 21:31:35 +10:00
Stephan 2ce9d9f7dc Fix medias (broken by removing not-so-obsolete method) 2018-07-30 13:27:35 +02:00
Sebastiaan Janssen 4a77afd3c8 Cleanup tests that don't work and have been ignored for years
Also means we don't need ctt.exe any more
2018-07-30 13:24:46 +02:00
Sebastiaan Janssen fd6582f066 Removes unused Umbraco.MSBuild.Tasks 2018-07-30 13:20:13 +02:00
Sebastiaan Janssen 6f409fdec2 Merge pull request #2803 from callumbwhyte/query-builder-updates
V8 Hackathon: Query builder updates [v8hackaton]
2018-07-30 12:43:49 +02:00
Sebastiaan Janssen d03152c4f1 Merge pull request #2809 from LottePitcher/patch-1
Update v8_getting_started.md after v8 hackathon [v8hackaton]
2018-07-30 12:28:23 +02:00
Sebastiaan Janssen 09d65a5aae Merge pull request #2815 from Mundairson/dev-v7-U4-11540
U4-11540 Removing Warning CS0105 - The using directive appeared previously in this namespace
2018-07-30 12:27:27 +02:00
Sebastiaan Janssen cd601d8ada Revert whitespace changes 2018-07-30 12:25:18 +02:00
Sebastiaan Janssen 29ae78b1a0 Merge branch 'dev-v7-U4-11540' of https://github.com/Mundairson/Umbraco-CMS into Mundairson-dev-v7-U4-11540 2018-07-30 12:17:52 +02:00
Sebastiaan Janssen 4cefd355ec Merge pull request #2811 from imranhaidercogworks/update-our-umbraco-url-references
Update our umbraco url references [v8hackaton]
2018-07-30 11:42:25 +02:00
Sebastiaan Janssen 8404efc521 Adds a few updates from PR #2820 and updates feedProxy to allow both .org and .com 2018-07-30 11:38:51 +02:00
Sebastiaan Janssen c8cc5278f3 Merge branch 'update-our-umbraco-url-references' of https://github.com/imranhaidercogworks/Umbraco-CMS into imranhaidercogworks-update-our-umbraco-url-references 2018-07-30 11:20:32 +02:00
BatJan 60c66823f8 Fix for PR #2792 - Selected color does not show in document type (#2817) 2018-07-30 10:11:57 +02:00
Sebastiaan Janssen 6a946c8a1c Merge pull request #2816 from BatJan/features/temp-U4-11541
U4-11541 - Change the color pickers "active" appearance
2018-07-30 10:11:15 +02:00
Sebastiaan Janssen 960755b22c Merge pull request #2818 from BatJan/patch-3
Adding danish translations for labels added in PR #2342
2018-07-30 09:39:00 +02:00
Sebastiaan Janssen ae1c0e3c9b Merge pull request #2814 from dawoe/temp-U4-10681
U4-10681 Added dutch translations for labels added in PR #2342
2018-07-30 09:36:01 +02:00
Sebastiaan Janssen dc8ab7d00a Merge pull request #2813 from BatJan/features/color-picker-prevalue-width-fix
Fix color-picker prevalue width
2018-07-30 09:35:24 +02:00
BatJan 9a2fd293cd Adding danish translations for labels added in PR #2342
Adding danish translations for labels added in PR #2342
2018-07-28 23:03:00 +02:00
Jan Skovgaard 9fa148db4f Split the "check-circle" class out into it's own .less file for making it easier to re-use throughout the codebase making the color picker datatype use the same UI for the active state. 2018-07-28 13:35:35 +02:00
Mundairson 902efef481 Warning CS0105 The using directive appeared previously in this namespace 2018-07-28 10:53:57 +01:00
Dave Woestenborghs 9b8943f80c U4-10681 Added dutch translations for labels added in PR #2342 2018-07-28 11:37:23 +02:00
Jan Skovgaard 1c1a4778f9 Make sure to set min-width: auto - Otherwise the defined width will never be applied 2018-07-27 23:25:32 +02:00
Anthony 6c430bd0f5 Refactored out obsolete class 2018-07-27 16:43:20 +01:00
Imran Haider 2660b31370 Updated our.umbraco.org to .com 2018-07-27 16:41:57 +01:00
Lotte Pitcher 1d4f6ba813 Update v8_getting_started.md
Recommending people clone to the temp8 branch directly, and how to speed up the VS build
2018-07-27 16:37:36 +01:00
Imran Haider 7baca85f6a Update ourumbraco references to https 2018-07-27 16:08:38 +01:00
Anthony 8e78c3dfb1 Refactored out some obsolete methods and files. 2018-07-27 15:51:32 +01:00
Jonas Pyfferoen 01b3747956 Rewrite importDocumenttype.aspx to Angular 2018-07-27 16:51:20 +02:00
ashallcross 7559fab5ce Update readme (#2806) 2018-07-27 16:01:34 +02:00
Richard Thompson 60910efc53 U4-10681 Restore option in media recycle bin (#2342) 2018-07-27 15:56:18 +02:00
Anthony 3f7a5d18f8 Refactored out some obsolete methods 2018-07-27 14:17:41 +01:00
Sebastiaan Janssen c0cdf727ca Merge pull request #2804 from ashallcross/Update-Readme
Updated the umbraco.org URL's to be umbraco.com
2018-07-27 15:15:23 +02:00
Adam Shallcross 675ce08469 Updated the umbraco.org URL's to be umbraco.com 2018-07-27 14:09:51 +01:00
Sebastiaan Janssen 8c1f236e3f Fix unit test 2018-07-27 15:08:48 +02:00
Anthony 344b67d236 Removed unused files 2018-07-27 13:45:09 +01:00
BatJan bd3f7ffcd4 U4-11538 Color picker thumbnail is to wide (#2801) 2018-07-27 14:35:04 +02:00
Callum Whyte 154d36e580 Cleanup of template query builder whitespace 2018-07-27 13:02:37 +01:00
Callum Whyte 9162be9fb0 Updating template query builder to use new APIs 2018-07-27 13:01:54 +01:00
Sebastiaan Janssen 940bc0c7de Merge pull request #2799 from BatJan/features/temp-U4-11537
U4-11537 - Add title attributes to the umbConfirmAction directive's "buttons"
2018-07-27 13:51:32 +02:00
Jan Skovgaard b8af6f7987 Add title attributes to the "buttons" inside the umbConfirmAction directive providing translations for english and danish at the same time 2018-07-27 13:03:12 +02:00
Sebastiaan Janssen fd993f733f Merge pull request #2798 from LottePitcher/temp8
In build.ps1, use .Path if .Source returns nothing
2018-07-27 12:57:14 +02:00
Sébastien Sougnez f7e097be8e Minor update to the grid settings/style section (#2797) 2018-07-27 12:50:30 +02:00
Lotte Pitcher e920d3f4b2 In build.ps1, use .Path if .Source returns nothing 2018-07-27 11:39:27 +01:00
BatJan 9b9173d64f Use the umbConfirmAction directive when deleting tags (#2795) 2018-07-27 11:24:29 +02:00
Sebastiaan Janssen e0c0eecaac Merge pull request #2796 from umbraco/temp-U4-11536
fixes U4-11536 Migration is breaking upgrade path to v. 7.12
2018-07-27 10:29:35 +02:00
Sebastiaan Janssen ed4ded79ee Merge pull request #2794 from dawoe/temp-U4-10502
U4-10502 added dutch translations for user management
2018-07-27 10:29:22 +02:00
Claus f11c71599b fixes U4-11536 Migration is breaking upgrade path to v. 7.12 2018-07-27 09:10:46 +02:00
Dave Woestenborghs 7109338f68 U4-10502 added dutch translations for user management 2018-07-27 08:01:59 +02:00
Sebastiaan Janssen 26a49fbe9f Fixes U4-9244 2018-07-26 15:55:33 +02:00
Sebastiaan Janssen 6deb97e356 Merge branch 'TimGeyssens-dev-v7' into dev-v7 2018-07-26 15:34:54 +02:00
Sebastiaan Janssen ff0af2f227 Merge branch 'dev-v7' of https://github.com/TimGeyssens/Umbraco-CMS into TimGeyssens-dev-v7
# Conflicts:
#	src/Umbraco.Web/Trees/TreeController.cs
2018-07-26 15:33:52 +02:00
Sebastiaan Janssen 2bb5d0b30e Merge pull request #2775 from bjarnef/dev-v7-U4-9025-2
U4-9025 - Add sortable to color picker prevalues
2018-07-26 13:47:53 +02:00
Sebastiaan Janssen dffe33569a Merge branch 'dev-v7' into dev-v7-U4-9025-2 2018-07-26 13:47:36 +02:00
Bjarne Fyrstenborg 567863079e Update a few names and descriptions for prevalues 2018-07-26 12:03:31 +02:00
Bjarne Fyrstenborg c571284f40 Adjust a bit more styling 2018-07-26 11:50:31 +02:00
Stephan 52bb935604 Merge pull request #2684 from jamescoxhead/U4-6231
U4-6231 Refactored Umbraco.Web.WebServices classes
2018-07-26 11:30:34 +02:00
Bjarne Fyrstenborg 89c84c7a30 Set same width as for multivalues 2018-07-26 11:28:24 +02:00
Bjarne Fyrstenborg d2e8b084f5 Remove width on label 2018-07-26 11:25:38 +02:00
Bjarne Fyrstenborg 99181d5bf4 Adjust thumbnail styling 2018-07-26 11:23:24 +02:00
Stephan 1f353da33c Cleanup IShortStringHelper if controller is gone 2018-07-26 11:23:06 +02:00
Stephan 8c88f8709b Fix merge 2018-07-26 11:22:53 +02:00
Bjarne Fyrstenborg 0f3a8bff5d Add consistency and a few localizations 2018-07-26 11:17:53 +02:00
Sebastiaan Janssen 0811baef9b Merge pull request #1620 from bjarnef/dev-v7-U4-9186
U4-9186 - Fix positioning of file icon extension label
2018-07-26 10:55:55 +02:00
Sebastiaan Janssen 7d76e2efbc Merge branch 'dev-v7-U4-9186' of https://github.com/bjarnef/Umbraco-CMS into bjarnef-dev-v7-U4-9186
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/less/property-editors.less
2018-07-26 10:53:40 +02:00
Stephan eadd79771d Merge branch temp8 into temp8-6231 2018-07-26 10:42:35 +02:00
Stephan 8a3232bd23 Renormalize 2018-07-26 10:39:13 +02:00
Owain Williams 0eddf6b755 Implementing new colour picker for document types (#2792) 2018-07-26 10:04:55 +02:00
Stephan 3c8a5c3a0d Remove obsolete code 2018-07-26 09:56:23 +02:00
Stephan 6f4ad059ef Cleanup 2018-07-26 09:41:43 +02:00
Sebastiaan Janssen 295f59e236 Merge pull request #2230 from StefanoChiodino/dev-v7
Normalises whitespace (replace tabs) and add EOF line
2018-07-25 22:17:33 +02:00
Sebastiaan Janssen b39b724303 Merge pull request #2241 from marcemarc/temp-u4-10537
U4-10537 - Enable editor to skip Macro Selection step, when there is only one macro, and it has parameters
2018-07-25 21:56:11 +02:00
Sebastiaan Janssen 4ca88e48c2 Merge pull request #2259 from AndyFelton/U4-10577
Use the underlying Peta Poco DB type to get the Type
2018-07-25 17:25:13 +02:00
Sebastiaan Janssen 53aed514fa Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2018-07-25 17:12:29 +02:00
Sebastiaan Janssen 6afb28088d Merge branch 'Attackmonkey-U4-10334' into dev-v7 2018-07-25 17:11:34 +02:00
Sebastiaan Janssen 33fdfbbad5 Merge branch 'U4-10334' of https://github.com/Attackmonkey/Umbraco-CMS into Attackmonkey-U4-10334 2018-07-25 17:02:54 +02:00
Sebastiaan Janssen a9d6a842b6 Merge pull request #2326 from bjarnef/dev-v7-U4-10694
Change types of listview properties
2018-07-25 16:44:27 +02:00
Sebastiaan Janssen cbe4154013 Merge pull request #2344 from matthew-darby/U4-8879
U4-8879 - Create button on member and media list view
2018-07-25 16:41:15 +02:00
Bjarne Fyrstenborg 02ac44e214 U4-10792 - highlight error when trying to add duplicate in listview columns (#2362) 2018-07-25 16:29:20 +02:00
Anders Bjerner 187a32cdc0 Added fallback URLs for the "umbNodePreview" directive (#2369) 2018-07-25 16:01:36 +02:00
Bjarne Fyrstenborg 2bd9e24cc2 U4-9803 - Update styles of Repeatable textstrings (#2446) 2018-07-25 15:19:57 +02:00
Dave Woestenborghs 2669a51fe1 Only show umbraco.tv and our.umbraco.org content to admin users in the help drawer (#2513) 2018-07-25 15:01:33 +02:00
Sebastiaan Janssen fd2137ec8d Merge pull request #2519 from bjarnef/dev-v7-U4-11111
U4-11111 - Hide tooltip of slider property editor in document type editor preview
2018-07-25 14:49:41 +02:00
Sebastiaan Janssen 9f1dfb2684 Merge pull request #2520 from bjarnef/dev-v7-U4-11113
U4-11113 - Remove umb-pane from dialog to avoid additional padding
2018-07-25 14:48:18 +02:00
Bjarne Fyrstenborg 4442afc1fd U4-10769 - Fix listviewhelper to work without key property on objects (#2521) 2018-07-25 14:46:39 +02:00
Sebastiaan Janssen f63456a18f Merge pull request #2552 from marcemarc/temp-U4-11163
Consider the 'case' of the Member Group/Role Name when comparing...
2018-07-25 14:40:08 +02:00
Sebastiaan Janssen 065de778f0 Merge pull request #2729 from russellshome/patch-1
Fix for TinyMCE inserts __mcenew in id attribute for images
2018-07-25 13:38:53 +02:00
Sebastiaan Janssen 1b5c553a05 Merge branch 'patch-1' of https://github.com/russellshome/Umbraco-CMS into russellshome-patch-1
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js
2018-07-25 13:33:55 +02:00
Sebastiaan Janssen 113b8d825e Merge pull request #2730 from mvanhelmont/U4-7463
Media library thumbnail does not reload if a new image with the same name is uploaded
2018-07-25 13:14:42 +02:00
Sebastiaan Janssen 3ec31bb64d Merge pull request #2756 from kows/hackathon-export-doc-type-to-angular
Rewrite exportdocumenttype.aspx to Angular [v8hackaton]
2018-07-25 12:13:52 +02:00
Sebastiaan Janssen 3b771bf0f7 Download using the umbraco built-in download method and adds notification for success/error 2018-07-25 12:09:46 +02:00
Sebastiaan Janssen b5c3b85298 Merge branch 'hackathon-export-doc-type-to-angular' of https://github.com/kows/Umbraco-CMS into kows-hackathon-export-doc-type-to-angular
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/resources/contenttype.resource.js
#	src/Umbraco.Web.UI/Umbraco/dialogs/exportDocumenttype.aspx
#	src/Umbraco.Web.UI/umbraco_client/Application/UmbracoApplicationActions.js
#	src/Umbraco.Web/Editors/ContentTypeController.cs
#	src/Umbraco.Web/Trees/LegacyTreeDataConverter.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/exportDocumenttype.aspx
#	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/exportDocumenttype.aspx.cs
2018-07-25 11:40:29 +02:00
Sebastiaan Janssen b744962066 Cleaning up the mess I made 🙈 2018-07-25 11:13:27 +02:00
BatJan 882fa42e2d U4-11497 - Make JSON storage default on the Tags property editor (#2773) 2018-07-25 11:10:35 +02:00
Sebastiaan Janssen 2d79188433 Correct some mistakes I made in queries 2018-07-25 11:08:34 +02:00
Jan Skovgaard 9a4c022ea3 Remove stuff that has been commented out 2018-07-25 11:08:34 +02:00
Jan Skovgaard 808fc14b32 Set the default storageType for the Umbraco.Tags datatype to "Json", which is now going to be the default 2018-07-25 11:08:33 +02:00
Jan Skovgaard 92f0d0d2ea Add a new migration to set the default storageType for Umbraco.Tags datatype to CSV if it has not been set previously 2018-07-25 11:08:33 +02:00
Jan Skovgaard 9180ab4442 Reset commit to not break backwards compatibility mode 2018-07-25 11:08:33 +02:00
Jan Skovgaard 4e1e9e0687 Switch JSON to be the default storage option and changing the storage type text to say JSON is default and CSV is legacy 2018-07-25 11:08:32 +02:00
skidmow c264368042 U4-11528 Problem with length of culture in database (#2791) 2018-07-25 10:06:29 +02:00
Sébastien Sougnez ff8ea3ec6b Link to template from "document types" or "content" screen (#2784) 2018-07-25 08:36:09 +02:00
Kenn Jacobsen c85185bdb0 Visual improvements to Nested Content (U4-10742) (#2457) 2018-07-24 16:19:26 +02:00
agrath 43fd34ab80 U4-11152 Add visual indicator to trashed media items in the media pic… (#2542) 2018-07-24 16:10:30 +02:00
Sebastiaan Janssen 794c7fc389 Merge pull request #2790 from agrath/U4-11531
U4-11531 When the grid editor initializes it can set the form state to dirty
2018-07-24 09:25:52 +02:00
Sebastiaan Janssen e0b1507056 Show/hide label field when label is toggled
Adds dib class to parent div to make the click target smaller
2018-07-23 23:22:52 +02:00
Stephan c7fabf84ba Merge branch origin/temp8 into temp8 2018-07-20 11:01:10 +02:00
Stephan d7e97ac771 Remove unused CodeAnnotations attributes, obsolete stuff 2018-07-20 10:59:25 +02:00
Stephan ef7be48cc5 Fix SqlTemplates concurrency 2018-07-20 10:41:22 +02:00
Gareth Evans 88b6f4e436 Guard gridController.addRow from setting form state to dirty if invoked from initSection 2018-07-20 11:42:52 +12:00
Shannon 5fdaa451b8 fixes null check on linkpicker changes with anchors, fixes ng-true-value constant value 2018-07-19 22:35:05 +10:00
Shannon 18cd9ea1e8 WIP refactor commit for getting all variants at once saving, this requires pulling apart a lot of the models and corresponding binders and validators. 2018-07-19 19:32:07 +10:00
Shannon 888f8cfc56 Merge branch 'temp8' into temp-editing-all-variants
# Conflicts:
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/Models/Mapping/ContentMapperProfile.cs
#	src/Umbraco.Web/Models/Mapping/MediaMapperProfile.cs
2018-07-19 19:30:38 +10:00
Stephan d36ec60039 Fix IPropertyValueConverter determining HasValue 2018-07-19 11:02:51 +02:00
Sebastiaan Janssen b9d7046bbc Merge pull request #2788 from nathanwoulfe/temp-U4-6946
Updating #2742 - U4 6946 - Existing template file is overwritten when creating a new template in the backoffice
2018-07-19 10:28:24 +02:00
Sebastiaan Janssen 09dd5cf879 Merge pull request #2781 from Mundairson/temp8-U4-11428
U4-11428 CodeAnnotations classes have inconsistent constructor parameter order
2018-07-19 09:18:17 +02:00
Nathan Woulfe 06f014df61 remove TryGetViewPath as not needed 2018-07-19 08:28:07 +10:00
Sebastiaan Janssen f622a9154b Merge pull request #2763 from OptimisticCoder/U4-7030-Using-radiobuttonlist-prevalue-editor
U4-7030 enable use of radiobuttonlist pre editor
2018-07-18 15:29:20 +02:00
Mundairson d7d36c34be Removed empty block comments. 2018-07-18 14:29:10 +01:00
Sebastiaan Janssen 6f6c29ce43 Merge pull request #2782 from agrath/u4-11522
U4-11522 Add ~/.well-known to umbracoReservedUrls
2018-07-18 15:14:54 +02:00
Sebastiaan Janssen 26a004210e Merge pull request #2787 from leekelleher/U4-10561-1
U4-10561 - Bug fix for IsAncestor/IsDescendant extension methods
2018-07-18 14:50:06 +02:00
Sebastiaan Janssen d9459661eb Merge pull request #2785 from nathanwoulfe/temp-U4-11524
U4 11524 - icon alignment in help drawer
2018-07-18 14:49:31 +02:00
leekelleher 2da5a522b0 Updated PublishedContent unit-test
to support the fix in commit 7a9a4a2fab

However this meant that I had to update a bunch of other unit-tests, due to hardcoded counts/references on the content XML.
2018-07-18 10:56:31 +01:00
leekelleher 7a9a4a2fab Fixes bug with comparing partial content paths
Raised here in a comment by @coolmikkel
https://github.com/umbraco/Umbraco-CMS/pull/2253#issuecomment-405751083
2018-07-18 10:54:19 +01:00
Stephan 6c526b24a0 Post-merge fixes 2018-07-18 10:32:50 +02:00
Shannon 1f1bb37a57 merges lang files 2018-07-18 16:08:38 +10:00
Shannon 959caf4d04 Fixes tests and merging issues, simplifies TabsAndPropertiesResolver since it doesn't need umbracocontext, only the MemberTabsAndPropertiesResolver one does 2018-07-18 15:42:12 +10:00
Shannon ec1d013004 Manually merges the IgnorePublishedContentCollisions change, removes more service locator pattern, removes ContextMapper with UmbracoContext and instead uses IUmbracoContextAccessor and adjusts some DI. 2018-07-18 14:34:32 +10:00
Nathan Woulfe fe648c8069 get view content in service methods rather than controller 2018-07-18 14:27:18 +10:00
Nathan Woulfe 017b5353db remove direct IO operation, replace with exisiting repository method 2018-07-18 14:02:26 +10:00
Shannon 66f9eb01c7 merge fixing and cleanup 2018-07-18 13:19:48 +10:00
Shannon 390514cd9d Merge remote-tracking branch 'origin/dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Core/Configuration/UmbracoSettings/ContentElement.cs
#	src/Umbraco.Core/Models/Identity/BackOfficeIdentityUser.cs
#	src/Umbraco.Core/Models/Identity/IdentityModelMappings.cs
#	src/Umbraco.Core/Persistence/PetaPoco.cs
#	src/Umbraco.Core/Persistence/PetaPocoSqlExtensions.cs
#	src/Umbraco.Core/Security/BackOfficeUserManager.cs
#	src/Umbraco.Core/Services/ContentService.cs
#	src/Umbraco.Core/Services/FileService.cs
#	src/Umbraco.Core/Services/IFileService.cs
#	src/Umbraco.Tests/Configurations/UmbracoSettings/ContentElementTests.cs
#	src/Umbraco.Tests/Configurations/UmbracoSettings/umbracoSettings.config
#	src/Umbraco.Tests/FrontEnd/UmbracoHelperTests.cs
#	src/Umbraco.Tests/Persistence/Querying/PetaPocoSqlTests.cs
#	src/Umbraco.Tests/PublishedContent/PublishedContentTests.cs
#	src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js
#	src/Umbraco.Web.UI.Client/src/less/property-editors.less
#	src/Umbraco.Web.UI.Client/src/routes.js
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/linkpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/linkpicker.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/components/content/umb-content-node-info.html
#	src/Umbraco.Web.UI.Client/src/views/content/copy.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/email/email.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.html
#	src/Umbraco.Web.UI.Client/src/views/users/user.controller.js
#	src/Umbraco.Web.UI/config/splashes/noNodes.aspx
#	src/Umbraco.Web.UI/config/umbracoSettings.Release.config
#	src/Umbraco.Web.UI/config/umbracoSettings.config
#	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/fr.xml
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/Editors/MemberTypeController.cs
#	src/Umbraco.Web/Editors/TemplateController.cs
#	src/Umbraco.Web/PublishedContentExtensions.cs
#	src/Umbraco.Web/Routing/PublishedContentRequest.cs
#	src/Umbraco.Web/Routing/UrlProviderExtensions.cs
#	src/Umbraco.Web/UmbracoHelper.cs
#	src/Umbraco.Web/WebApi/Filters/EnsureUserPermissionForContentAttribute.cs
2018-07-18 13:19:14 +10:00
Shannon 309e0e6dc8 Merge remote-tracking branch 'origin/temp8' into temp-editing-all-variants 2018-07-18 11:38:00 +10:00
Shannon Deminick cf6a8956cd Merge pull request #2779 from umbraco/temp8-w112
Variations with Compositions
2018-07-18 11:32:59 +10:00
Shannon Deminick 438261beb8 Merge pull request #2780 from umbraco/temp8-w49
Allow IPropertyValueConverter to determine if a property has value
2018-07-18 11:28:12 +10:00
Nathan Woulfe 9488df823a remove inline styles in help drawer 2018-07-18 11:00:27 +10:00
Nathan Woulfe 1294512ce8 fix cropped icon, resize large to double small icon size 2018-07-18 10:06:08 +10:00
Stephan baead95c33 Comments and notes 2018-07-17 18:42:23 +02:00
Stephan c7c1c7e8fa Cleanup ISqlSyntaxProvider 2018-07-17 17:20:40 +02:00
Stephan 132b729dd9 Fix nuspec for AutoMapper 2018-07-17 15:51:39 +02:00
Shannon c2dae6f5a0 fixes js tests 2018-07-17 15:41:09 +10:00
Shannon e2bcf59b0f Fixes and documents the odd async usage for reading multipart in a model binder, fixes up navigation.service checks and adds unit tests for that 2018-07-17 15:33:57 +10:00
Shannon e9752cd5e1 Gets all list views working correctly with content apps, fixes various issues, cleans up a bunch of code and reduces amount of service locator. 2018-07-17 14:23:07 +10:00
Shannon 45f959fb6b updates tests 2018-07-17 11:53:46 +10:00
Gareth Evans ef897b2d3e Add ~/.well-known to umbracoReservedUrls to support letsencrypt/certifytheweb ootb 2018-07-17 12:25:57 +12:00
Mundairson 9e21a72515 Changed the constructors so the two overloads have the same parameter in the same position. 2018-07-16 22:12:03 +01:00
Mundairson e17d2fbfc0 Changed the constructors so the two overloads have the same parameter in the same position. 2018-07-16 22:09:03 +01:00
Mundairson 9b5455c186 Changed the constructors so the two overloads have the same parameter in the same position. 2018-07-16 22:06:45 +01:00
Stephan 05317bb5e6 Allow IPropertyValueConverter to determine if a property has value 2018-07-16 19:14:00 +02:00
Sebastiaan Janssen 157b66dc4c Fixes the persistence and correct display of the sort order 2018-07-16 18:08:20 +02:00
Stephan 874ec142bf Variations with Compositions 2018-07-16 17:21:26 +02:00
Sebastiaan Janssen 596157f90b Default to section route if not specified 2018-07-16 16:00:05 +02:00
Sebastiaan Janssen 2a080da666 Merge pull request #2603 from mvanhelmont/patch-2
U4-11275 routPath in custom tree always needs a id
2018-07-16 15:56:38 +02:00
Shannon c8e65f085b Gets content apps working nicer so we can have a proper view model that is discoverable, updates list views to use the new way, removes strange hack of copying a list view from a tab that doesn't exist. 2018-07-16 22:32:46 +10:00
Sebastiaan Janssen 014e50a13a Merge pull request #2148 from LennardF1989/U4-10345
Added possibilty to ignore collisions from an IContentFinder (U4-10345)
2018-07-16 13:38:23 +02:00
Shannon 9a2aa8fff0 Fixes up tests 2018-07-16 20:24:49 +10:00
Sebastiaan Janssen 9fc3dfdbee Merge pull request #2771 from hartviglarsen/temp-U4-11516
U4-11516 Updates the links in the noNodes splash screen
2018-07-16 12:03:07 +02:00
Sebastiaan Janssen 565c9ef95d Cleans up some code and fixes sorting / storing the correct order. 2018-07-16 11:41:10 +02:00
Sebastiaan Janssen 973a6471f3 Merge branch 'dev-v7-U4-9025-2' of https://github.com/bjarnef/Umbraco-CMS into bjarnef-dev-v7-U4-9025-2 2018-07-16 11:09:16 +02:00
Sebastiaan Janssen a87987e5e9 Merge pull request #2772 from BatJan/features/temp-U4-11495
U4-11495 - Add border to custom regex in property settings
2018-07-16 11:06:22 +02:00
Sebastiaan Janssen dad318834f Merge pull request #2776 from agrath/U4-9309
U4-9309 When node is copied, copy is logged as writer
2018-07-16 11:03:17 +02:00
Sebastiaan Janssen 4e099f7509 Merge pull request #2774 from BatJan/features/temp-U4-11519
U4-11519 - Use the umb-toggle directive in the "Copy" dialog
2018-07-16 11:00:14 +02:00
Lee Kelleher abf61417ad U4-10561 - Performance improvement for IsAncestor/IsDescendant extension methods (#2768) 2018-07-16 10:44:54 +02:00
Shannon d3ad0b8e03 Merge remote-tracking branch 'origin/temp8' into temp-editing-all-variants 2018-07-16 18:41:24 +10:00
Shannon 7cc300f59c Gets all of the content for both variant and invariant content loading in the editor and for split views too 2018-07-16 18:40:47 +10:00
Gareth Evans 615d57a78b U4-10898 U4-9309 When node is copied, the copy is logged as being completed by the original node writer, not the person performing the copy 2018-07-16 16:43:20 +12:00
Bjarne Fyrstenborg 6ac654a36b Add different cursor styling on sortable thumbnail handle 2018-07-15 22:21:55 +02:00
Bjarne Fyrstenborg ec78e99ca0 Add sortorder to prevalue 2018-07-15 22:07:06 +02:00
Bjarne Fyrstenborg 912b101d0a Order items by sort order 2018-07-15 21:44:03 +02:00
Bjarne Fyrstenborg 130dabfdce Add monospace font on pre elements to ensure same width of elements 2018-07-15 20:23:54 +02:00
Bjarne Fyrstenborg d697e46f24 Configurate sortable on color picker property editor 2018-07-15 20:22:12 +02:00
Bjarne Fyrstenborg 1296214400 Localization of text in color picker 2018-07-15 20:20:57 +02:00
Jan Skovgaard e7932b6ae4 Replace the checkboxes with the umb-toggle directive using a toggleHandler in the controller 2018-07-15 18:00:20 +02:00
Jan Skovgaard 12dbb0ec20 Add a border and other adjustments specifically for the "validation" textarea when setting up a datatype on a document type 2018-07-15 12:26:35 +02:00
Sebastiaan Janssen 24e9136f57 Fixes U4-11517 - E-mail property editor triggers validation when validation has not been enabled in the settings 2018-07-15 08:36:37 +02:00
Sebastiaan Janssen 1fc09cda0f Following small R# hints, removed commented out line 2018-07-15 08:01:16 +02:00
Sebastiaan Janssen 43d3d6b235 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2018-07-15 07:58:35 +02:00
Sebastiaan Janssen 66b2ad9fdb Merge pull request #2770 from ssougnez/temp-U4-11513
Added "Select" and "AndSelect" to "PetaPoco"
2018-07-15 07:57:28 +02:00
ssougnez 65d68aefad - Removed new obsolete method
- Fix tests
2018-07-14 20:18:17 +02:00
Sebastiaan Janssen c2039ef01f Merge pull request #2462 from iofsauron/U4-10975
UDUF (U4-10975) Failed Logon Attempts resets to 0 after maximum number of attempts
2018-07-14 19:04:20 +02:00
Sebastiaan Janssen 722bc7b110 Merge branch 'iofsauron-U4-10975' into dev-v7 2018-07-14 18:58:42 +02:00
Sebastiaan Janssen 73b9374006 Merge branch 'U4-10975' of https://github.com/iofsauron/Umbraco-CMS into iofsauron-U4-10975 2018-07-14 18:57:43 +02:00
Sebastiaan Janssen c24683b014 Merge pull request #2463 from Sam7/U4-10849
U4-10849 [uDuf] fixed Umbraco user field "User Last updated" and "last locke…
2018-07-14 18:54:34 +02:00
Sebastiaan Janssen c0f102f1e0 Merge branch 'pr_2463' into dev-v7 2018-07-14 18:47:42 +02:00
Sebastiaan Janssen ca993187b0 Fixes unit tests after adding an extra node in the cache 2018-07-14 17:37:14 +02:00
Sebastiaan Janssen 861b2c61a8 Adds a few more test cases 2018-07-14 17:16:59 +02:00
Sebastiaan Janssen 9daae665e4 Adds unit tests for IsAncestor(OrSelf) and IsDescendant(OrSelf) 2018-07-14 17:09:02 +02:00
Sebastiaan Janssen 972a9da2f1 Merge pull request #2769 from leekelleher/U4-11514
U4-11514 - Content Picker adds sortable options to restrict within container
2018-07-14 16:14:03 +02:00
Morten Larsen 7a07649e2b Update links in the noNodes splash screen 2018-07-14 10:26:46 +02:00
ssougnez a03173da4d Update the code to use the GetFieldName method instead of recreating it 2018-07-14 00:11:04 +02:00
sebastien-sougnez c841f32ba6 Added "Select" and "AndSelect" to "PetaPocoSqlExtensions" to be able to select columns based on predicated instead of string values. 2018-07-13 15:10:21 +02:00
leekelleher cf2938151f U4-11514 - Content Picker adds sortable options to restrict within container 2018-07-13 12:34:06 +01:00
Sebastiaan Janssen 1908725a9a Merge pull request #2742 from nathanwoulfe/temp-U4-6946
U4 6946 - Existing template file is overwritten when creating a new template in the backoffice
2018-07-13 11:12:16 +02:00
Shannon 6ffcea8aae Gets the content loading into split view 2018-07-13 17:27:34 +10:00
Shannon 0e41c2dfcd Cutures can now be changed and the editor updated to the variant specific values without reloading, split view is re-enabled so working on getting that showing now. 2018-07-13 15:53:59 +10:00
Shannon 072c1a6764 WIP - editing all variants at once, this is getting things wired up to display a content item, lots of TODOs added, models and mappings refactored, content apps put in c# model, etc... 2018-07-13 12:45:04 +10:00
Stephan 2051caaa01 Post-merge fixes 2018-07-12 18:05:48 +02:00
Stephan 20293fb50d Remove non-existing ps1 from solution files 2018-07-12 16:08:47 +02:00
Shannon 7e77cd334d fix merge 2018-07-12 22:57:29 +10:00
Tim Payne 229e6dd043 Retarget for 7.12.0 2018-07-12 13:51:05 +01:00
Shannon a8ad55ef3c Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8
# Conflicts:
#	src/Umbraco.Tests/FrontEnd/UmbracoHelperTests.cs
#	src/Umbraco.Web/UmbracoHelper.cs
2018-07-12 22:41:33 +10:00
Shannon 41407d27d0 hopefully the last merge 2018-07-12 22:39:30 +10:00
Shannon 7cec861323 more manual merges 2018-07-12 22:18:03 +10:00
Sebastiaan Janssen b4a941e367 Merge pull request #2766 from Mundairson/dev-v7-U4-11509
Correct Umbraco.Web.UmbracoHelper and tests to coding standards
2018-07-12 13:17:47 +02:00
Sebastiaan Janssen 5a8f37ff02 Merge pull request #2767 from mikecp/mikecp-update-fr
Synchronise fr.xml file with en.xml file + translate new stuff
2018-07-12 13:17:11 +02:00
Sebastiaan Janssen 9e35748040 Merge pull request #2357 from Dexmoor/U4-10779
U4-10779 Allow Members tree to work independently of Member Types tree
2018-07-12 13:13:04 +02:00
Sebastiaan Janssen 374011ec9e Reverts some whitespace changes 2018-07-12 13:02:58 +02:00
Michael Latouche 2a2cea0b7d Update fr.xml 2018-07-12 13:00:33 +02:00
Sebastiaan Janssen c56dc63150 Merge pull request #2702 from nathanwoulfe/temp-U4-4732
U4-4732 Anchor missing in TinyMCE of Umbraco 7.x
2018-07-12 12:39:23 +02:00
Nathan Woulfe 57c9acc874 Merge branch 'temp-U4-6946' of https://github.com/nathanwoulfe/umbraco-cms into temp-U4-6946 2018-07-12 14:40:56 +10:00
Nathan Woulfe f9761ad2f8 auto save on create to fetch existing view 2018-07-12 14:32:13 +10:00
Nathan Woulfe f2fafbc631 handle manual/external links, add label to input, update placeholder 2018-07-12 11:37:04 +10:00
Mundairson 583b25a85d Correct Umbraco.Web.UmbracoHelper and tests to be coding standards compliant. 2018-07-11 17:24:36 +01:00
Sebastiaan Janssen f966c38513 Merge pull request #2762 from nathanwoulfe/temp-U4-11107
U4-11107 Link to the page is not active after saving content without publish
2018-07-11 16:29:17 +02:00
Sebastiaan Janssen f8b6b8c9ad Merge pull request #2722 from nathanwoulfe/temp-U4-11259
U4-11259: Duplicates in tag editor throws error and breaks property editor
2018-07-11 16:11:31 +02:00
Sebastiaan Janssen 39b2e6543c Merge pull request #2757 from Mundairson/temp8-U4-11492
U4-11492 Clean Umbraco.Web.UmbracoHelper [v8]
2018-07-11 15:14:27 +02:00
Shannon 92f85fad4a Merging dictionary changes 2018-07-11 16:59:05 +10:00
Shannon ebe224fb6e Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-07-11 16:43:21 +10:00
Shannon 8521a405f7 manually merging other files 2018-07-11 16:43:09 +10:00
Shannon 13d6dfd234 renames DictionaryTreeController to have the correct file name 2018-07-11 16:42:25 +10:00
Nathan Woulfe 914a8fdc2b revert link change, config test now passes 2018-07-11 16:27:53 +10:00
Shannon 7aa413d558 Merge remote-tracking branch 'origin/dev-v7' into temp8 (after fixing)
# Conflicts:
#	build/Modules/Umbraco.Build/Build-UmbracoDocs.ps1
#	src/SolutionInfo.cs
#	src/Umbraco.Core/Configuration/UmbracoVersion.cs
#	src/Umbraco.Core/Constants-Applications.cs
#	src/Umbraco.Core/Models/Rdbms/ConsentDto.cs
#	src/Umbraco.Core/Persistence/DatabaseSchemaHelper.cs
#	src/Umbraco.Core/Persistence/Repositories/AuditRepository.cs
#	src/Umbraco.Core/PropertyEditors/ValueConverters/GridValueConverter.cs
#	src/Umbraco.Core/Services/ConsentService.cs
#	src/Umbraco.Core/Services/IRelationService.cs
#	src/Umbraco.Core/Services/RelationService.cs
#	src/Umbraco.Tests/Plugins/PluginManagerTests.cs
#	src/Umbraco.Tests/PublishedContent/PublishedContentTests.cs
#	src/Umbraco.Tests/Services/ConsentServiceTests.cs
#	src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js
#	src/Umbraco.Web.UI.Client/src/common/directives/components/editor/umbeditorheader.directive.js
#	src/Umbraco.Web.UI.Client/src/common/directives/components/tree/umbtree.directive.js
#	src/Umbraco.Web.UI.Client/src/common/resources/contenttype.resource.js
#	src/Umbraco.Web.UI.Client/src/common/resources/entity.resource.js
#	src/Umbraco.Web.UI.Client/src/common/services/tree.service.js
#	src/Umbraco.Web.UI.Client/src/less/application/grid.less
#	src/Umbraco.Web.UI.Client/src/less/forms.less
#	src/Umbraco.Web.UI.Client/src/less/main.less
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/login.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/login.html
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/iconpicker/iconpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/iconpicker/iconpicker.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/components/content/umb-content-node-info.html
#	src/Umbraco.Web.UI.Client/src/views/components/html/umb-control-group.html
#	src/Umbraco.Web.UI.Client/src/views/components/users/change-password.html
#	src/Umbraco.Web.UI.Client/src/views/content/content.copy.controller.js
#	src/Umbraco.Web.UI.Client/src/views/content/content.move.controller.js
#	src/Umbraco.Web.UI.Client/src/views/datatypes/datatype.edit.controller.js
#	src/Umbraco.Web.UI.Client/src/views/datatypes/edit.html
#	src/Umbraco.Web.UI.Client/src/views/documenttypes/views/permissions/permissions.html
#	src/Umbraco.Web.UI.Client/src/views/media/media.move.controller.js
#	src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.controller.js
#	src/Umbraco.Web.UI.Client/src/views/mediatypes/views/permissions/permissions.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/boolean/boolean.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/users/views/user/details.html
#	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml
#	src/Umbraco.Web.UI/config/EmbeddedMedia.Release.config
#	src/Umbraco.Web.UI/config/EmbeddedMedia.config
#	src/Umbraco.Web.UI/config/trees.Release.config
#	src/Umbraco.Web.UI/config/trees.config
#	src/Umbraco.Web.UI/config/umbracoSettings.config
#	src/Umbraco.Web.UI/umbraco/Views/Default.cshtml
#	src/Umbraco.Web.UI/umbraco/config/create/UI.xml
#	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/config/lang/it.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/nl.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/ru.xml
#	src/Umbraco.Web/Editors/BackOfficeController.cs
#	src/Umbraco.Web/Editors/BackOfficeServerVariables.cs
#	src/Umbraco.Web/Editors/ContentTypeController.cs
#	src/Umbraco.Web/Editors/MacroController.cs
#	src/Umbraco.Web/Editors/MemberController.cs
#	src/Umbraco.Web/Models/RegisterModel.cs
#	src/Umbraco.Web/PropertyEditors/TagsPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/ValueConverters/MacroContainerValueConverter.cs
#	src/Umbraco.Web/PublishedContentExtensions.cs
#	src/Umbraco.Web/Trees/ContentTreeController.cs
#	src/Umbraco.Web/Trees/ContentTreeControllerBase.cs
#	src/Umbraco.Web/Trees/TreeControllerBase.cs
#	src/Umbraco.Web/UmbracoHelper.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/settings/EditDictionaryItem.aspx
#	src/Umbraco.Web/umbraco.presentation/umbraco/settings/EditDictionaryItem.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/settings/EditDictionaryItem.aspx.designer.cs
2018-07-11 15:58:48 +10:00
Nathan Woulfe f416fc6919 clear preview cookie when clicking the info-box link 2018-07-11 15:25:39 +10:00
Mundairson 85c9e66cee Implemented changes from first PR code review. 2018-07-11 00:12:18 +01:00
Michael Latouche ca13782e2a Update fr.xml 2018-07-10 13:57:40 +02:00
Stephan 2607e5b5a1 ContentVariation is not a Flag enum 2018-07-10 11:01:52 +02:00
Stephan 9ca298543f Merge branch 'hackathon-automapper-update' of https://github.com/mzajkowski/Umbraco-CMS into temp8-2747 2018-07-10 09:37:54 +02:00
Stephan ad633c7606 Merge branch 'temp8-2758' into temp8 2018-07-10 09:36:28 +02:00
Stephan 47cfe9c6c0 Merge branch 'temp8' into temp8-2758 2018-07-10 09:34:25 +02:00
Shannon 37871f4de5 updated package-lock 2018-07-10 13:19:13 +10:00
Shannon Deminick 7132ccdd99 Merge pull request #2760 from umbraco/temp8-variants
Variants Refactoring [v8]
2018-07-10 13:05:13 +10:00
Shannon 7250b3d491 Fixes null checks on all parts of VariationContextAccessor.VariationContext.Culture and fixes translations with tokens for url collisions 2018-07-10 12:43:07 +10:00
Stephan 02de09eaf7 Explain last merge 2018-07-09 18:26:15 +02:00
Stephan 7c43fbd0c6 Merge pull request #2761 from mzajkowski/hackathon-publishing
Removed bulk publishing action from the content tree (temp) [v8hackaton]
2018-07-09 18:24:43 +02:00
Stephan 6f139cd72a Misc cleanup of PR 2018-07-09 18:08:03 +02:00
Stephan 97d4d48c4d Merge branch 'v8hack-delete-obselete' of https://github.com/AnthonyCogworks/Umbraco-CMS into temp8-2758 2018-07-09 17:35:41 +02:00
Stephan e644b63ba6 Misc cleanup of PR 2018-07-09 17:29:50 +02:00
Stephan 52be2d7864 Merge branch 'v8hackathon-library-media-remove' of https://github.com/AnthonyCogworks/Umbraco-CMS into temp-2748 2018-07-09 16:34:44 +02:00
Michael Latouche 9d5b089227 Update fr.xml 2018-07-09 13:05:15 +02:00
Stephan 1f37fb2c67 Merge branch 'v8hackathon-library-delete' of https://github.com/AnthonyCogworks/Umbraco-CMS into temp8-2746 2018-07-09 13:02:25 +02:00
Michael Latouche 916340f1f4 Merge pull request #4 from umbraco/dev-v7
merging back dev-v7
2018-07-09 12:58:37 +02:00
Stephan 00bcef3ba6 Misc cleanup of PR 2018-07-09 12:40:57 +02:00
Stephan f4983a2b21 Merge branch 'hackathon-remove-imediaserviceoperation' of https://github.com/AndyFelton/Umbraco-CMS into temp8-mediaserviceops 2018-07-09 11:49:56 +02:00
Stephan ec9d4dc565 Merge pull request #2714 from umbraco/temp-w77
Fixes models builder false positive error on media and member type mo…
2018-07-09 10:42:32 +02:00
Dan Patching 80412f56ee enable use of radiobuttonlist pre editor 2018-07-08 14:15:27 +01:00
Warren Buckley 2bae3e2eda Merge pull request #2759 from umbraco/temp8-82
fixes: Infinite editing support for content picker
2018-07-06 14:43:07 +01:00
Mads Rasmussen 3caafc03f1 Merge branch 'temp8' into temp8-82
# Conflicts:
#	src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml
2018-07-06 15:41:08 +02:00
Stephan 6bcf1e4cd8 Merge branch temp8 into temp8-variants 2018-07-06 12:29:18 +02:00
Stephan ef28f23c61 Renormalize 2018-07-06 12:27:39 +02:00
Stephan 860def507b Fix .editorconfig line endings 2018-07-06 12:26:14 +02:00
Stephan fdfdd541e3 Content Url and Audit (in progress) 2018-07-06 12:20:10 +02:00
Stephan e9a31437e1 Fix .editorconfig line endings 2018-07-06 12:20:05 +02:00
Nathan Woulfe d3c8b46e00 replace node.published with node.hasPublishedVersion 2018-07-06 09:52:43 +10:00
Nathan Woulfe 416cea796e clean up usings 2018-07-06 09:38:00 +10:00
Nathan Woulfe e34926acd6 check for existing file content when creating/saving new template 2018-07-06 09:38:00 +10:00
Mads Rasmussen b63af8b56f convert the last pickers in the user section to infinite editors 2018-07-05 20:22:27 +02:00
Stephan 75d685ef43 NuCache - fix parent published 2018-07-05 17:08:40 +02:00
Stephan 0af18b2376 Fix publishing 2018-07-05 17:07:40 +02:00
Mads Rasmussen 10207a1c50 remove unused overlay 2018-07-05 10:59:33 +02:00
Marcin Zajkowski 8f7bc1a083 Merge remote-tracking branch 'origin/temp8' into hackathon-publishing 2018-07-04 22:16:02 +02:00
Mads Rasmussen a9fd88567e update treePickers on user group to use infinite editing 2018-07-04 20:19:54 +02:00
Mads Rasmussen cabc3b7567 fix up infinite trees in insert overlay and change insert overlay to infinite editing 2018-07-04 19:47:06 +02:00
Mads Rasmussen 579dc058aa ues infinite tree picker in prevalue editors 2018-07-04 14:28:37 +02:00
Warren Buckley a57658b274 Merge pull request #2737 from umbraco/temp8-w80
Fixes - Create user confirmation page gives angulajs error
2018-07-04 13:24:52 +01:00
Mads Rasmussen 8dbc4cb2c5 use infinite tree picker in member picker property editor 2018-07-04 13:46:09 +02:00
Mads Rasmussen e74112ee2a use infinite tree picker in related links property editor 2018-07-04 13:44:20 +02:00
Mads Rasmussen be9db43e21 use infinite tree for partial view picker 2018-07-04 13:17:37 +02:00
Mads Rasmussen 8b86c372dc use infinite tree picker in media picker prevalues 2018-07-04 13:04:20 +02:00
Mads Rasmussen 06d813736d rename queryBuilder controller 2018-07-04 12:56:14 +02:00
Mads Rasmussen c087f09071 fix check for member section in treePicker 2018-07-04 10:57:52 +02:00
Mads Rasmussen 6637cc47ee use infinite treePicker in when editing a user 2018-07-04 10:57:27 +02:00
Stephan 0d3ea107c5 Deal with some FIXME 2018-07-04 10:41:08 +02:00
Mads Rasmussen b7f187b69a use infinite queryBuilder and treePicker in partial views 2018-07-04 09:54:20 +02:00
Mads Rasmussen 534788cc38 use infinite queryBuilder and treePicker in template editor 2018-07-04 09:48:40 +02:00
Mads Rasmussen 5466287063 use infinite treePicker and queryBuilder in the macro partial views editor 2018-07-04 09:45:23 +02:00
Mads Rasmussen 49e35367f1 add infinite query builder and tree picker 2018-07-04 09:43:41 +02:00
Stephan e8aa6701ef Renormalize 2018-07-04 09:03:59 +02:00
Stephan b3696c29cc Refactor Variants at service level 2018-07-04 08:59:50 +02:00
Mads Rasmussen afd8e7d404 remove code for content mini editor 2018-07-03 16:06:37 +02:00
Mads Rasmussen 14365e3894 remove function to open old mini content editor 2018-07-03 15:59:16 +02:00
Mads Rasmussen 3587039406 add save and close button - show the correct button based on permissions 2018-07-03 15:55:29 +02:00
Mads Rasmussen 3750ebf882 add publish and close button to infinite content editor 2018-07-03 13:07:39 +02:00
Stephan 8df060fb00 Fix migration 2018-07-03 13:05:21 +02:00
Stephan 570ca464e7 Migrate variations 2018-07-03 13:05:21 +02:00
Stephan ecf9a928d7 Refactor variations 2018-07-03 13:05:21 +02:00
Stephan a697608529 Fix un/publishing with variants + urls 2018-07-03 13:05:20 +02:00
Stephan 9c3e8b8e3c Fix language inconsistencies management 2018-07-03 13:04:27 +02:00
Stephan b931ce0123 Fix CoreRuntime upgrade detection 2018-07-03 13:04:27 +02:00
Mads Rasmussen fccd0b4f42 Don't allow to change the content variant when using infinite editing. 2018-07-03 11:10:19 +02:00
Mads Rasmussen b10c0e7f4c don't sync the content tree when in infinite mode 2018-07-03 10:24:17 +02:00
Mads Rasmussen c23d6f12ac Hide content actions button when in infinite mode 2018-07-03 10:19:22 +02:00
Marcin Zajkowski 0a168986cb Merge branch 'temp8' into hackathon-automapper-update 2018-07-03 02:04:30 +02:00
Marcin Zajkowski 618897aa3f Merge remote-tracking branch 'origin/temp8' into hackathon-publishing 2018-07-03 01:58:02 +02:00
Mads Rasmussen e6e619b967 open regular content editor instead of mini content editor 2018-07-02 15:57:16 +02:00
Mads Rasmussen a5467bc277 delete old tree picker 2018-07-02 14:16:41 +02:00
Mads Rasmussen c0af8de493 use treepicker infinite editor instead of overlay verson 2018-07-02 14:15:39 +02:00
Mads Rasmussen 9bc1f1e468 add tree picker infinite editor files 2018-07-02 14:14:52 +02:00
Mads Rasmussen d181ab193f add content picker to editorService 2018-07-02 14:14:04 +02:00
Mads Rasmussen b6b44e30f6 Merge pull request #2732 from umbraco/temp8-83
fixes: infinite editing - change doc type from content node
2018-07-02 12:50:27 +02:00
Mads Rasmussen 41a3dc862e fix js error 2018-07-02 12:44:53 +02:00
Anthony 40f04f7510 Fixed unintended whitespace 2018-07-02 10:47:43 +01:00
Anthony 96a89c0166 Re-added attributes which were mistakenly deleted 2018-07-02 10:16:20 +01:00
Mads Rasmussen 451f894976 Merge branch 'temp8' into temp8-83
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.controller.js
#	src/Umbraco.Web.UI.Client/src/views/media/media.edit.controller.js
#	src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.controller.js
#	src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml
2018-07-02 10:07:50 +02:00
Anthony 43fdd691fe Removed obsolete methods from Umbraco.Core which are not used 2018-07-01 18:58:58 +01:00
Anthony 2f7ddb20db Removed obsolete file from Umbraoc.Examine which is not used. 2018-07-01 18:16:47 +01:00
Anthony 372d0f7c3c Removed files from Umbraco.Web which are not used 2018-07-01 18:06:25 +01:00
Anthony 7affbbd186 Removed obsolete methods from Umbraco.Web which are not used. 2018-07-01 18:06:00 +01:00
Mundairson d4d90e1d4d Corrected test name to match semantics. 2018-07-01 16:33:48 +01:00
Mundairson 082bf484ed Clean tests. 2018-07-01 16:20:02 +01:00
Mundairson 1879cfe029 Restricted the UDI set up and tear down to only the UDI tests. 2018-07-01 15:36:55 +01:00
Mundairson 7caf7e6a78 Removed unneeded usings. 2018-07-01 11:28:14 +01:00
Mundairson 9f04a9de9c Refactored simple conversion methods.
Added unit tests to cover the methods.
2018-07-01 11:27:49 +01:00
Jonas Pyfferoen ffccad642e Rewrite exportdocumenttype.aspx to Angular 2018-06-30 19:43:35 +02:00
Stephan c95340ab78 Merge branch 'ismailmayat-convert-model-factories-to-static-classes' into temp8 2018-06-30 11:09:41 +02:00
Stephan 9cd9470f87 Merge branch 'temp8' into ismailmayat-convert-model-factories-to-static-classes 2018-06-30 11:09:07 +02:00
Stephan cc4815200e Revert "Removed obsolete method from WebProfileProvider" (needed!)
This reverts commit 5d3309dbf1.
2018-06-30 11:08:30 +02:00
Stephan 3c1b8de323 Fix projects 2018-06-30 11:07:10 +02:00
Stephan 2386845347 Merge branch 'convert-model-factories-to-static-classes' of https://github.com/ismailmayat/Umbraco-CMS into ismailmayat-convert-model-factories-to-static-classes 2018-06-29 20:05:11 +02:00
Stephan 619d24ec3c Merge branch temp8 into ismailmayat-convert-model-factories-to-static-classes 2018-06-29 19:58:39 +02:00
Marcin Zajkowski 0e9b7bfccc Republish action removed from the default content tree 2018-06-29 19:55:50 +02:00
Stephan 7a615133ff Renormalize 2018-06-29 19:52:40 +02:00
Stephan c1f3de7e5c Umbraco.Web.UI/Umbraco not /umbraco 2018-06-29 19:51:59 +02:00
Ismail Mayat 98eae84d56 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into convert-model-factories-to-static-classes
# Conflicts:
#	src/Umbraco.Core/Persistence/Factories/ContentTypeFactory.cs
2018-06-29 18:30:51 +01:00
Stephan 0364e1b176 Remove unused using statement 2018-06-29 17:17:18 +02:00
Stephan c2cfdfd746 Merge branch 'convert-model-factories-to-static-classes' of https://github.com/ismailmayat/Umbraco-CMS into ismailmayat-convert-model-factories-to-static-classes 2018-06-29 16:54:09 +02:00
Stephan d12fa45571 Merge branch 'ed-parry-hackathon-obsolete-action-constructors' into temp8 2018-06-29 16:52:07 +02:00
Stephan ee87d00ffe Merge branch 'hackathon-obsolete-action-constructors' of https://github.com/ed-parry/Umbraco-CMS into ed-parry-hackathon-obsolete-action-constructors 2018-06-29 16:49:12 +02:00
Stephan 6a05c556b5 Merge pull request #2751 from lkoruba/hackathon-use-logger-warn-with-func
(V8 Hackathon) use logger warn with func<string>
2018-06-29 16:43:22 +02:00
Stephan ed81214e87 Merge pull request #2752 from LottePitcher/patch-1
Correcting broken link to current v8 branch in CONTRIBUTING.md
2018-06-29 16:40:38 +02:00
Ismail Mayat 0439812607 Merge remote-tracking branch 'origin/convert-model-factories-to-static-classes' into convert-model-factories-to-static-classes 2018-06-29 15:32:13 +01:00
Ismail Mayat a0519be6a8 remove this file it does nothing 2018-06-29 15:31:14 +01:00
Ismail Mayat f40af21e55 make static again needs another pair of eyes to ensure nothing has been broken 2018-06-29 15:31:14 +01:00
Ismail Mayat 3c27f95397 make static 2018-06-29 15:31:14 +01:00
Ismail Mayat 79ce8a29ae made static, however this has been refactored will need extra sanity checking to ensure nothing has been broken 2018-06-29 15:31:13 +01:00
Lotte Pitcher 2a532e6993 Making DictionaryTranslationFactory static and callers 2018-06-29 15:31:13 +01:00
Ismail Mayat ef07efcfba remove unused usings 2018-06-29 15:31:13 +01:00
Ismail Mayat 9e16d92c99 tasktype now static 2018-06-29 15:31:13 +01:00
Ismail Mayat aca08a8021 taskfactory now static updated callers 2018-06-29 15:31:12 +01:00
Ismail Mayat 4f4dc922e0 server registration now static 2018-06-29 15:31:12 +01:00
Ismail Mayat 69a103ce3d make static update callers 2018-06-29 15:31:12 +01:00
Ismail Mayat fa7382d073 formatting and also remove method that is not used and is throwing exception to say its not implemented 2018-06-29 15:31:12 +01:00
Ismail Mayat 53adf532d1 make membertype static 2018-06-29 15:31:11 +01:00
Ismail Mayat 3c8a870dfa membergroup made static 2018-06-29 15:31:11 +01:00
Ismail Mayat de2322e384 another class and its callers made static 2018-06-29 15:31:11 +01:00
Ismail Mayat 2c9b128daf make static 2018-06-29 15:31:11 +01:00
Ismail Mayat 77168c7d10 make static 2018-06-29 15:31:10 +01:00
Ismail Mayat cfca39274f make static and update calling methods 2018-06-29 15:31:10 +01:00
Ismail Mayat 59f67ffd19 fix this call 2018-06-29 15:31:10 +01:00
Ismail Mayat 427d4e4655 update calls to the old factory which is now static 2018-06-29 15:31:10 +01:00
Ismail Mayat 931baffb45 made class and methods static also removed unused using 2018-06-29 15:31:09 +01:00
Anthony d38c856923 Removed unused method. 2018-06-29 15:26:05 +01:00
lkoruba 549a030d91 Fixed concatenation of 4 lines 2018-06-29 16:10:04 +02:00
Ismail Mayat 1dab7e5261 remove this file it does nothing 2018-06-29 15:02:43 +01:00
Ed Parry 52b7be0f15 Removed obsolete constructors from actions 2018-06-29 15:01:24 +01:00
Ismail Mayat 35660a2131 make static again needs another pair of eyes to ensure nothing has been broken 2018-06-29 14:59:14 +01:00
Lotte Pitcher 6fac55595d Correcting broken link to current v8 branch 2018-06-29 14:45:45 +01:00
Ismail Mayat f343d98391 make static 2018-06-29 14:38:50 +01:00
lkoruba b515f24c16 Change calls to logger.Warn method to use Func<string> second part 2018-06-29 15:35:56 +02:00
Ismail Mayat 8f31ea7b3d made static, however this has been refactored will need extra sanity checking to ensure nothing has been broken 2018-06-29 14:30:20 +01:00
Andy Felton c56b983cd6 Merged methods from IMediaService to IMediaServiceOperations
Moved methods from IMediaServer to IMediaServiceOperations, fixed tests and other code which depends on these.
2018-06-29 14:18:11 +01:00
Sebastiaan Janssen db230aa45d Merge pull request #2745 from aburok/hackathon-use-logger-info-with-func
Hackathon use logger info with func
2018-06-29 15:13:53 +02:00
lkoruba 8359ea5862 Revoke files where string is not concatenated 2018-06-29 15:08:35 +02:00
Marcin Zajkowski e350ab89ca Updated nuspec file 2018-06-29 15:04:43 +02:00
Anthony b3a8161b25 Removed library.cs and it cache settings 2018-06-29 13:56:00 +01:00
Marcin Zajkowski 449b6af70e Updated AutoMapper to the latest (7.0.1) 2018-06-29 14:54:11 +02:00
lkoruba 7e4f2957a3 Change calls to logger.Warn method to use Func<string> parameter 2018-06-29 14:53:41 +02:00
Sebastiaan Janssen 8ad4848536 Merge pull request #2741 from ed-parry/hackathon-remove-unused-textservice-method
V8 Hackathon: Removed method marked for deletion
2018-06-29 14:53:14 +02:00
Sebastiaan Janssen f91bc1604a Merge pull request #2744 from ed-parry/hackathon-remove-obsolete-methods
V8 Hackathon: remove obsolete methods
2018-06-29 14:51:18 +02:00
Sebastiaan Janssen 4b120827cf Merge pull request #2739 from aburok/hackathon-use-logger-debug-with-func
Change calls to logger.Debug method to use Func<string> parameter
2018-06-29 14:46:01 +02:00
Anthony 69d1f4e0cd Moved methods which wrapped UmbracoHelper 2018-06-29 13:41:47 +01:00
Sebastiaan Janssen 5af5264764 Merge pull request #2743 from kows/hackathon-custom-db-config-on-instal
Hackathon custom db config on install
2018-06-29 14:40:15 +02:00
Sebastiaan Janssen f015c0f27f Merge pull request #2740 from matthew-darby/#U4-8424
U4-8424 - When no document types are allowed at root, don't allow all
2018-06-29 14:26:52 +02:00
Stephan 8462c7efbb Fix tests 2018-06-29 14:25:48 +02:00
Dawid Koruba 7660e10098 Change calls to logger.Info method to use Func<string> parameter 2018-06-29 14:25:17 +02:00
Lotte Pitcher 058033527d Making DictionaryTranslationFactory static and callers 2018-06-29 13:23:24 +01:00
Ed Parry 7f7cceb90f Removed obsolete methods in editors and the grid template. 2018-06-29 13:12:08 +01:00
Anthony 7e32dbc544 Removed methods from library.cs which are not used. 2018-06-29 12:38:17 +01:00
Ed Parry 5d3309dbf1 Removed obsolete method from WebProfileProvider 2018-06-29 12:31:28 +01:00
Jonas Pyfferoen ba66b4dd36 Fix small javascript issue when validating database connection for non SQLCE setups 2018-06-29 13:18:48 +02:00
Ismail Mayat da4e63719f remove unused usings 2018-06-29 12:16:46 +01:00
Ismail Mayat 833d6ac722 tasktype now static 2018-06-29 12:14:37 +01:00
Ismail Mayat 413e1b35b6 taskfactory now static updated callers 2018-06-29 12:13:03 +01:00
Ismail Mayat eba94c994b server registration now static 2018-06-29 12:09:47 +01:00
Ismail Mayat d1273f2ba9 make static update callers 2018-06-29 12:07:32 +01:00
Ismail Mayat 580ea66ea5 formatting and also remove method that is not used and is throwing exception to say its not implemented 2018-06-29 11:55:37 +01:00
Ismail Mayat c0e36822b3 make membertype static 2018-06-29 11:54:35 +01:00
Ismail Mayat 58e14d3e6d membergroup made static 2018-06-29 11:52:12 +01:00
Ed Parry 00b3234124 Removed method marked for deletion in V8 2018-06-29 11:50:18 +01:00
Ismail Mayat eff70db87e another class and its callers made static 2018-06-29 11:48:47 +01:00
Dawid Koruba 51ab9e32de Change calls to logger.Debug method to use Func<string> parameter 2018-06-29 12:35:31 +02:00
Nathan Woulfe e6842a1020 clean up usings 2018-06-29 20:34:04 +10:00
Matt Darby 35ca13c83a U4-8424 - When no document types are allowed at root, don't allow all of them 2018-06-29 11:31:43 +01:00
Nathan Woulfe 9b8f4c1a9a check for existing file content when creating/saving new template 2018-06-29 20:27:28 +10:00
Ismail Mayat 48362f50ba make static 2018-06-29 11:27:08 +01:00
Ismail Mayat 52a9fced07 make static 2018-06-29 11:23:54 +01:00
Ismail Mayat 69272d2a20 make static and update calling methods 2018-06-29 11:05:23 +01:00
Ismail Mayat 60d558508f fix this call 2018-06-29 10:22:57 +01:00
Ismail Mayat 32f061b555 update calls to the old factory which is now static 2018-06-29 10:16:47 +01:00
Ismail Mayat 6251dc1acf made class and methods static also removed unused using 2018-06-29 10:10:22 +01:00
Sebastiaan Janssen 1e9e13ea6a Merge pull request #2735 from ZizZu94/dev-v7
Italian translation of prompt, bulk and grid area
2018-06-29 09:46:57 +02:00
Sebastiaan Janssen 3f48f8c8e1 Merge pull request #2736 from dawoe/patch-1
Translated unpublish dialog to dutch
2018-06-29 09:37:36 +02:00
Robert 722510aee1 Changing the background color of the password field to white, passing copySuccess and copyError functions as expressions. 2018-06-29 09:02:47 +02:00
Robert 1de3f01207 Adding resetClipboardButtonState function and adding a 1 second delay in between resets to show the "success"or "error" symbols on the button every time it's pressed 2018-06-29 09:00:39 +02:00
Robert d25c16025b Parsing clipboard button state setters from expressions to methods 2018-06-29 08:55:29 +02:00
Dave Woestenborghs d9b10b294e Translated unpublish dialog
Added translation for key added in PR #2731
2018-06-29 08:47:20 +02:00
Sebastiaan Janssen 42dcaf9ccd Merge pull request #2693 from BatJan/dev-v7
Replaced the old checkbox with the umb-toggle directive
2018-06-28 20:43:22 +02:00
Sebastiaan Janssen a860e6b324 Merge pull request #2547 from soreng/patch-1
U4-11156: Updated documentation + default values for getPagedDescendants
2018-06-28 20:40:29 +02:00
Sebastiaan Janssen 0f818c4e0a Merge pull request #2562 from leekelleher/U4-9668
U4-9668 RelationService - Relates entities by ID and a relationType + Alias
2018-06-28 20:36:55 +02:00
Sebastiaan Janssen 5f6fdc759a Merge pull request #2565 from leekelleher/U4-9088
U4-9088 - Macro Container Property Type returned incorrect object-type
2018-06-28 20:33:50 +02:00
Sebastiaan Janssen 00959a16cc Merge pull request #2585 from bjarnef/dev-v7-U4-11214
U4-11214 - Display member type name in heading
2018-06-28 20:32:26 +02:00
Sebastiaan Janssen 51fc0da379 U4-11187 - Adds friendlier "Enable JavaScript" message (#2568) 2018-06-28 20:30:52 +02:00
Sebastiaan Janssen cda4f6a2f0 Merge pull request #2569 from Mivaweb/patch-3
Fix wrong closing i tag and wrong title for edit button
2018-06-28 20:29:50 +02:00
Sebastiaan Janssen 0a29ad3d21 Merge pull request #2570 from AndyButland/u4-10502
U4-10502 - resend of user invitations
2018-06-28 20:28:24 +02:00
Sebastiaan Janssen 623fa59a3f Merge pull request #2571 from dampee/patch-2
Typo in the documentation summary
2018-06-28 20:26:49 +02:00
Sebastiaan Janssen 8c815554da Merge pull request #2583 from dontbesorry80/U4-11198
Allow capital letters for email address entry in RegisterModel
2018-06-28 20:25:28 +02:00
Sebastiaan Janssen 16cff73f9d Merge pull request #2592 from dawoe/temp-U4-11233
U4-11233 intro tour step needs to be shown centered
2018-06-28 20:21:58 +02:00
Sebastiaan Janssen 31965358c3 Removes unused class 2018-06-28 20:14:27 +02:00
Dan Booth f083a33d92 U4 10778 - FirstChild<T> extension returns IPublishedContent rather than model of type T (#2623) 2018-06-28 20:09:54 +02:00
Sebastiaan Janssen f7517fa64b Revert whitespace changes and csproj file 2018-06-28 20:01:44 +02:00
Anders Brohus 9c8d73dcfa U4-11372 - Make history section on Info tab translatable (#2650) 2018-06-28 19:49:28 +02:00
OptimisticCoder ffd0adb0f3 U4-9544 Added database schema validation health check and language file updates. (#2674) 2018-06-28 19:37:28 +02:00
Sebastiaan Janssen 477245ee71 Merge pull request #2731 from nathanwoulfe/temp-U4-9379
U4 9379 - add confirmation step to unpublish action
2018-06-28 19:31:54 +02:00
Stephan ce74108848 Fix component requirements 2018-06-28 13:50:13 +02:00
Sebastiaan Janssen 88ac1f59e7 Merge pull request #2492 from soreng/temp-U4-9204
U4-9204: Added a generic TableExists-method
2018-06-28 12:21:49 +02:00
Sebastiaan Janssen 5fa5f90bfc Merge pull request #2544 from Mivaweb/patch-2
Update NL.xml with missing translations
2018-06-28 12:20:54 +02:00
Robert 0c3c5a2a5f Changed clipboard directive to take in attribute instead of bindings to avoid scope isolated scope error. 2018-06-28 11:46:37 +02:00
Mads Rasmussen f402b9e449 update labels on generate models buttons when using infinite editing 2018-06-28 10:57:09 +02:00
Nathan Woulfe ee0888e58c updates to make it all work - event from the notification determines the action 2018-06-28 10:21:41 +10:00
Nathan Woulfe 7aa47f32c4 new notification view + controller for confirming unpublish 2018-06-28 10:19:26 +10:00
Nathan Woulfe 70aeb1c09d add en variants for unpublish notification 2018-06-28 10:13:01 +10:00
Nathan Woulfe bf9a336344 correct notifications positioning on smaller screens - was hidden behind the left nav 2018-06-28 10:12:40 +10:00
Mads Rasmussen 2142bd978f only allow change of media type if the user has access to the settings section 2018-06-27 20:14:53 +02:00
Mads Rasmussen f058ec9c03 only allow change of doc type if you have access to the settings section 2018-06-27 20:06:24 +02:00
Mads Rasmussen 68f4aae172 open infinite media type editor from media info tab 2018-06-27 19:34:26 +02:00
Mads Rasmussen d09aeeaf2e listen for doc type changes and refresh the node 2018-06-27 15:06:50 +02:00
Robert ecaea2a5b7 Merge pull request #2724 from umbraco/temp8-tabs
Temp8 tabs
2018-06-27 05:17:54 -07:00
Marcel 774227314e Fix Media library thumbnail does not reload if a new image with the same name is uploaded 2018-06-27 14:09:30 +02:00
Mads Rasmussen 5f7ba058ca update keyboard shortcuts state in rest of the code editors 2018-06-27 13:57:22 +02:00
Mads Rasmussen 9d0c1b5278 this commit fixes template editor shortcuts 2018-06-27 13:50:10 +02:00
Mads Rasmussen e0643c8dd0 user overlayService for keyboard shortcuts instead of custom overlay + fix template editor shortcuts 2018-06-27 13:49:25 +02:00
Robert 385f1d6689 Merge pull request #2604 from umbraco/temp-U4-11276
Implements doc type collections | connects #73
2018-06-26 23:58:35 -07:00
Russell c0b094f2e8 Fix http://issues.umbraco.org/issue/U4-8887
The only usage of __mcenew id is to change the HTML when there is size set on the element. This is done on the timeout function.
As per suggestion - "we wipe the ID in $timeout then, regardless the maxSize"
2018-06-27 10:06:45 +12:00
Sebastiaan Janssen d2500b36d3 Merge pull request #2728 from BatJan/patch-2
Adjusting danish translations
2018-06-26 20:15:43 +02:00
BatJan 476e33bf40 Changed "Denne tekst vil blive brugt..." to "Denne tekst bruges..."
Lowering the lix count for the sentence :-)
2018-06-26 20:04:40 +02:00
BatJan 59d68a7fdc Changed "antaller" to "antal 2018-06-26 20:02:25 +02:00
Sebastiaan Janssen 083a34275e Merge pull request #2727 from readingdancer/U4-11482
Fix for U4 11482 - Adding space before the character counter.
2018-06-26 19:59:39 +02:00
BatJan b3d2e49f1a Adjusting translations
I just noticed a few untranslated words and I also took the liberty to change the translation of "grid" to "gitter" and translate it back to english. "Gitter layout" is not something we say in dansih we simply adopt the english word "Grid" :-)
2018-06-26 19:29:09 +02:00
Chris Houston bbe15b69b7 Merge branch 'U4-11482' of https://github.com/readingdancer/Umbraco-CMS into U4-11482 2018-06-26 13:17:50 -04:00
Chris Houston 3371360bc7 Adding a small space between the text box & text area fields and the help text ( which is the character counter ) underneath. 2018-06-26 13:16:06 -04:00
Chris Houston 9fb1ce534b Adding a small space between the text box & text area fields and the help text ( which is the character counter ) underneath. 2018-06-26 13:14:39 -04:00
Sebastiaan Janssen a4d9790279 Merge pull request #2718 from ed-parry/temp-U4-10839
U4-10839: Backoffice password field 'eye' icon overlaps with password manager icons
2018-06-26 18:29:14 +02:00
Ed Parry f6efbcf99f Added the Danish translations. 2018-06-26 16:26:15 +01:00
Mads Rasmussen 101135b1ea user overlayService for template picker to fix bug with nested position relatve/fixed 2018-06-26 17:03:59 +02:00
Ed Parry 1ac62dcee7 Added prevent default on the a tag. 2018-06-26 15:33:37 +01:00
Mads Rasmussen 8b6a321897 remove header and footer background color on target overlay 2018-06-26 15:37:36 +02:00
Mads Rasmussen a2b609fc12 user overlayService to open permissions overlay to prevent bugs with nested position relative/fixed 2018-06-26 15:35:57 +02:00
Mads Rasmussen dd53811698 node info timeline polish 2018-06-26 14:59:15 +02:00
Mads Rasmussen 7cb1ac6acf prepare doc type editor for infinite editing 2018-06-26 14:11:08 +02:00
Mads Rasmussen 119cf54e97 open infinite doc type editor from info tab 2018-06-26 14:02:21 +02:00
Mads Rasmussen 96fada7586 add translations 2018-06-26 14:00:29 +02:00
Mads Rasmussen c0058109b8 add new helper function to open document type 2018-06-26 13:59:59 +02:00
Sebastiaan Janssen ad81b193a2 Merge pull request #2726 from ProNotion/issues/U4-11312
Issues/u4 11312
2018-06-26 13:29:46 +02:00
Simon Dingley f8f94eae32 Merge branch 'dev-v7' into issues/U4-11312 2018-06-26 12:00:42 +01:00
Simon Dingley 4724230d2c U4-11312 Provides a fallback AuditType value of AuditType.Custom for any legacy logHeader column values that cannot be parsed 2018-06-26 11:59:05 +01:00
Shannon Deminick b40d717546 Merge pull request #2709 from umbraco/temp8-mediapath
media path
2018-06-26 11:59:07 +10:00
Shannon b3f4ca13a4 Changes to 2 folders instead of hyphen 2018-06-26 11:58:44 +10:00
Sebastiaan Janssen 1bb593d264 Merge pull request #2725 from abjerner/patch-40
U4-11477 Improves URL not being populated in the RTE link media picker when searching for content
2018-06-25 23:57:11 +02:00
Anders Bjerner dd49febd77 U4-11477 Here we go again
https://github.com/umbraco/Umbraco-CMS/pull/2720#issuecomment-400106496
2018-06-25 23:51:19 +02:00
ZizZu94 ff5bda551c Done italian translation of grid area 2018-06-25 18:34:17 +02:00
ZizZu94 63a72090a4 Done italian translation of prompt and bulk area 2018-06-25 17:23:32 +02:00
Mads Rasmussen ef58e3226b remove bootstrap tabdrop 2018-06-25 15:13:14 +02:00
Mads Rasmussen 4fc929fc64 add tabs drop 2018-06-25 15:03:56 +02:00
Sebastiaan Janssen f2aa1ea95b Fixes Our reference to old .org domain 2018-06-25 14:50:56 +02:00
Sebastiaan Janssen 6fdc49fa28 Merge pull request #2721 from BatJan/patch-1
Change description text
2018-06-25 12:13:57 +02:00
Sebastiaan Janssen be45237830 Merge branch 'patch-v7' into dev-v7 2018-06-25 12:10:11 +02:00
Anders Bjerner ae3205c429 Fixes U4-11426 for files as well
The original fix from #2679 only fixes the bug for images, as it checks whether the `umbracoWidth` and `umbracoHeight` properties are present. With this PR, the bug is now fixed for both images and regular files.
2018-06-25 12:08:42 +02:00
Sebastiaan Janssen 1ad483df70 Merge pull request #2720 from abjerner/patch-39
Fixes U4-11426 for files as well
2018-06-25 12:06:55 +02:00
Mads Rasmussen 1d0ef8980f Merge pull request #2723 from umbraco/temp8-upgrade-angular
Temp8 upgrade angular
2018-06-25 12:03:39 +02:00
leekelleher 2c28c82b06 Enhanced (basic) styling
- Inline style for the link, to ensure underlined
- Added logo for branding
- Relocated to inside the #contentcolumn container tag, otherwise we hit a CSS conflict (due to `position:absolute` of the container)
2018-06-25 11:01:44 +01:00
Sebastiaan Janssen 4626041aca Merge pull request #2716 from mvanhelmont/U4-11335
U4-11335 Failed to retrieve data for media id undefined
2018-06-25 11:46:16 +02:00
Sebastiaan Janssen 7e88696cbc Merge pull request #2705 from mvanhelmont/patch-3
U4-11452 umbPagination directive does not update when pagesize dynamically changed
2018-06-25 11:44:11 +02:00
Sebastiaan Janssen f49d057262 Merge pull request #2712 from mvanhelmont/U4-11334
U4 11334 Content type edit, click on icon always shows black empty icon
2018-06-25 11:40:57 +02:00
Sebastiaan Janssen 8ef213547a Merge pull request #2606 from jamescoxhead/U4-11295
U4-11295 Added filtering to Nested Content add doctype overlay
2018-06-25 11:32:56 +02:00
leekelleher b3ed3585e4 Using correct BareMinimumServerVariablesScript method
The previous one had been deprecated.
2018-06-25 09:42:26 +01:00
leekelleher bd5e1a2461 Removed the "type" attribute from the <script> tags
With HTML5, it is no longer required, (the browser assumes "text/javascript"),
see: https://www.w3.org/TR/html5/semantics-scripting.html#script-processing-model
2018-06-25 09:42:26 +01:00
leekelleher a4bd2ae4c7 Removed additional whitespace
Including the leading whitespace for the HTML DOCTYPE,
which should appear on the first line of a HTML document.

Removed unused "using" namespaces.

Also removed the code comment towards the end, I'm not sure how useful it is to a developer?
2018-06-25 09:42:26 +01:00
leekelleher 55401fffbb U4-11187 - Adds friendlier "Enable JavaScript" message
Moves the `<noscript>` tags into the main body - within `#mainwrapper` (fullscreen overlay), so to allow the link to work.
Links to https://enable-javascript.com/
2018-06-25 09:42:26 +01:00
Sebastiaan Janssen 35bbb5aae4 Fix unit test 2018-06-25 08:59:08 +02:00
Sebastiaan Janssen d02a8c0a59 Merge branch 'patch-v7' into dev-v7 2018-06-25 08:31:10 +02:00
Joshua Pease 10c71a7381 Set a initial $scope.model.value for true/false 2018-06-25 08:24:22 +02:00
Sebastiaan Janssen 5c275df83c Merge pull request #2717 from joshuapease/temp-U4-11474
U4-11474: Bugfix - Umbraco.TrueFalse default value is not being stored in database
2018-06-25 08:22:23 +02:00
Nathan Woulfe 576ff6d2b9 add trackby in repeater, filter out dupes 2018-06-25 16:09:28 +10:00
BatJan 323954243b Change description text
I changed the description text since it's no longer necessary to make a custom value converter when selecting the JSON option. It's handled out of the box now.

**The original text**
"Select whether to store the tags in cache as CSV (default) or as JSON. The only benefits of storage as JSON is that you are able to have commas in a tag value but this will require parsing the json in your views or using a property value converter"

**New text**
"Select whether to store the tags in cache as CSV (default) or as JSON. The only benefits of storage as JSON is that you are able to have commas in a tag value"
2018-06-23 13:36:07 +02:00
Anders Bjerner a9e9eb9bdd Fixes U4-11426 for files as well
The original fix from #2679 only fixes the bug for images, as it checks whether the `umbracoWidth` and `umbracoHeight` properties are present. With this PR, the bug is now fixed for both images and regular files.
2018-06-22 19:09:20 +02:00
Ed Parry f62b7dd4fd Reduced spacing between text and icon. 2018-06-22 12:24:59 +01:00
Ed Parry ea9663fa22 Initial solution built and working. 2018-06-22 12:15:26 +01:00
Joshua Pease 35e3a39cc3 Set a initial $scope.model.value for true/false 2018-06-21 14:49:17 -07:00
Marcel def3529f12 simple check for target id if not gotoStartNode 2018-06-21 20:05:01 +02:00
Mads Rasmussen 0e5f52d2e0 add docs 2018-06-21 19:10:52 +02:00
Mads Rasmussen 46b63e5400 move error styles 2018-06-21 18:23:27 +02:00
Mads Rasmussen d269bae3c4 show validation 2018-06-21 17:42:56 +02:00
Sebastiaan Janssen 8e0b89801a Merge pull request #2713 from richarth/patch-1
Spelling correction
2018-06-21 15:20:57 +02:00
Robert cac35b6894 Fixes models builder false positive error on media and member type model generation 2018-06-21 13:14:14 +02:00
Richard Thompson b16c5f3cdf Spelling correction 2018-06-21 11:34:58 +01:00
Sebastiaan Janssen 677f22b008 Merge branch 'patch-v7' into dev-v7
# Conflicts:
#	src/SolutionInfo.cs
#	src/Umbraco.Core/Configuration/UmbracoVersion.cs
2018-06-21 11:05:05 +02:00
Sebastiaan Janssen 9875c37cf2 Bumps version to 7.11.1 2018-06-21 10:48:25 +02:00
Sebastiaan Janssen 67e36a0d60 U4-11456 Package installation - Load usercontrol: file cannot be found: /umbraco/developer/Packages/installer.aspx 2018-06-21 10:38:04 +02:00
Sebastiaan Janssen bcca0528c0 U4-11462 Error when using Simple Injector - 'The Tree controller is missing the Umbraco.Web.Trees.TreeAttribute attribute' 2018-06-21 08:19:53 +02:00
Nathan Woulfe 411ff80b3e removes inline styles 2018-06-21 07:15:54 +10:00
Marcel 768e360853 mark icon as selected instead off using search for it. 2018-06-20 20:18:14 +02:00
Marcel 2af5cf97ef show selected icon and set selected color on editing icon 2018-06-20 18:59:01 +02:00
Sebastiaan Janssen f420f7a870 Merge pull request #2610 from ProNotion/issues/U4-11296
Fixes U4-11296 allowing nulls to be stored in the comment column of the umbracoConsent table
2018-06-20 17:12:02 +02:00
Sebastiaan Janssen 6116161fef Fix up csproj file and moves migration to v7.12 2018-06-20 17:06:43 +02:00
Sebastiaan Janssen cf6fc2ec78 Merge branch 'issues/U4-11296' of https://github.com/ProNotion/Umbraco-CMS into ProNotion-issues/U4-11296 2018-06-20 16:57:55 +02:00
Sebastiaan Janssen 4f2b7411e9 Merge branch 'patch-v7' into dev-v7 2018-06-20 16:57:15 +02:00
Sebastiaan Janssen 359201955a Merge pull request #2629 from umbraco/temp-U4-11339
Fixes - User permissions does not work in listview in 7.10.4
2018-06-20 15:39:56 +02:00
Mads Rasmussen fe7431b9ab remove tabs directive from media edit view 2018-06-20 14:38:03 +02:00
Mads Rasmussen 3d19fb57b4 remove tabs from member edit view 2018-06-20 14:37:26 +02:00
Robert ce2e8a147e Removed meaningless v2 variabile 2018-06-20 14:35:48 +02:00
Mads Rasmussen 6235dd282b use new tabs components on data type picker 2018-06-20 14:19:18 +02:00
Mads Rasmussen 1fbbd7a576 use new tab components on dashboard 2018-06-20 14:14:24 +02:00
Mads Rasmussen 699bb3272d remove tabs dependecy on bootstrap 2018-06-20 14:07:03 +02:00
Mads Rasmussen c8f52aa238 Merge branch 'temp8-upgrade-angular' of https://github.com/umbraco/Umbraco-CMS into temp8-upgrade-angular 2018-06-20 13:58:48 +02:00
Sebastiaan Janssen 94cfbaf0ab Merge pull request #2710 from madsoulswe/temp-U4-11461
U4-11461 - Add OEmbed support for Twitter.com
2018-06-20 13:52:46 +02:00
Dennis Öhman 042db06ba1 Added twitter obembed 2018-06-20 13:39:12 +02:00
Shannon b22ee9255d Fixes FirstChild method 2018-06-20 21:07:01 +10:00
Shannon d6e7be1b0b Fixes initial tree load and tree sync, the cachekey was not being used on init which causes the tree to double load which causes all sorts of odd things to happen 2018-06-20 21:01:54 +10:00
Stephan f0f55156d1 Merge branch 'temp8' into temp8-mediapath 2018-06-20 11:34:06 +02:00
Stephan ebee70fb61 Fix components unit tests 2018-06-20 11:33:42 +02:00
Stephan 824c428579 Remove media path scheme config 2018-06-20 10:49:20 +02:00
Stephan fe445f5ecd Implement media path scheme 2018-06-20 10:49:12 +02:00
Shannon Deminick 4f04692afa Merge pull request #2707 from umbraco/temp-U4-11341
U4-11341 Content node tree collapse on random nodes level 3 or lower …
2018-06-20 18:25:22 +10:00
Mads Rasmussen 3d0ef17ab5 increase editor header height + add more focus to the active content app 2018-06-20 09:49:48 +02:00
Sebastiaan Janssen 9909b10edb Removes more unnecessary code from the tree syncing if we don't need to consider the start nodes 2018-06-20 09:26:09 +02:00
Stephan aa8436f07f Terminate components in reverse order 2018-06-20 09:24:18 +02:00
Stephan d4e3a66dc6 IUmbracoUserComponent defaults to RuntimeLevel.Run minlevel now 2018-06-20 09:23:46 +02:00
Sebastiaan Janssen 7fa66ed914 Merge pull request #2708 from ctolkien/temp-U4-11460
U4-11460 - Use an OrdinalIgnoreCase for localdb instance lookups
2018-06-20 09:01:53 +02:00
Chad Tolkien 66a40eb69f Use an OrdinalIgnoreCase for localdb instance lookups 2018-06-20 10:24:22 +10:00
Adam Prendergast b5c86f1412 Documentation for recently merged UmbNodePreview 'alias' property (#2706) 2018-06-19 16:57:48 +02:00
Sebastiaan Janssen 4e6c4d6f7f U4-11341 Content node tree collapse on random nodes level 3 or lower after upgrade to 7.10.4 2018-06-19 16:08:11 +02:00
Mads Rasmussen 6bc1ed588b fix back button in editor header 2018-06-19 15:57:55 +02:00
Mads Rasmussen 54477f8a79 fix list view dropdown button color + change dropdown to use umb-dropdown component 2018-06-19 15:01:19 +02:00
Mads Rasmussen 8e08552ab7 add track by to users ng-repeat 2018-06-19 13:48:55 +02:00
Mads Rasmussen 5a0fbd0900 updates to package-lock.json 2018-06-19 10:56:39 +02:00
Mads Rasmussen b32b23172a remove tree debug data 2018-06-19 10:54:27 +02:00
Mads Rasmussen 3d7d223cb1 Merge pull request #2700 from umbraco/temp8-angular-tree-update
Angular 1.7 - Tree Updates
2018-06-19 10:41:11 +02:00
Claus 2f4bdf1af5 Merge pull request #2695 from umbraco/temp8-mediapath
New mediapath scheme becomes default
2018-06-19 08:57:16 +02:00
Shannon 49de3f264c Merge branch 'temp8-upgrade-angular' into temp8-angular-tree-update 2018-06-19 12:51:57 +10:00
Shannon cf59067451 Fixes issue with max $digest iterations 2018-06-19 12:51:30 +10:00
Shannon ebbdb945c4 Merge branch 'temp8-upgrade-angular' into temp8-angular-tree-update 2018-06-19 12:32:43 +10:00
Shannon f877e0d1bb Fixes delete animations 2018-06-19 12:20:18 +10:00
Sebastiaan Janssen aa132b29ee Merge pull request #2682 from rasmusjp/feature/U4-3921-expand-tree
Expand tree to current node on copy/move and when picking content
2018-06-18 22:36:33 +02:00
Sebastiaan Janssen 3e12908332 Merge pull request #2681 from rasmusjp/fix/U4-10499-expand-collapse-icon-missing
Fix missing expand/collapse tree icon when refreshing page
2018-06-18 22:22:36 +02:00
Sebastiaan Janssen b207d6a7ad Merge pull request #2680 from Mundairson/dev-v7-U4-11429
U4-11429 Cleaning Umbraco.Web.UmbracoHelper (part 1)
2018-06-18 22:20:12 +02:00
Sebastiaan Janssen 61bde607c7 Bumps version to 7.12 2018-06-18 21:53:13 +02:00
Sebastiaan Janssen bd7608599b Merge pull request #2659 from jamescoxhead/U4-11272
U4-11272 Added flexible dropdown property value converter
2018-06-18 21:48:10 +02:00
Sebastiaan Janssen a26663653e Merge pull request #2696 from BatJan/features/U4-11424-Use-umb-toggle-directive-permissions.tab
Features/u4 11424 use umb toggle directive permissions.tab
2018-06-18 20:54:26 +02:00
Mads Rasmussen ba408e8c79 wip tree animations 2018-06-18 20:35:29 +02:00
Shannon 545360bdaa fixes order by on list view 2018-06-18 22:48:28 +10:00
Shannon 9d63b68eb6 Fixes the variant lang drop down due to a boolean check 2018-06-18 21:49:15 +10:00
Shannon 4417892337 Removes valToggleMsg directive and replaces all occurances of this with ngMessages, fixes a few smaller things along the way too 2018-06-18 21:40:06 +10:00
Sebastiaan Janssen 6cbc3367b1 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2018-06-18 12:05:28 +02:00
Mads Rasmussen bd7211f8e6 fix arrow and active state 2018-06-18 10:55:22 +02:00
mvanhelmont 95301fbc2b add watchCollection to include totalpages
this will ensure the directive update it selfs correctly when totalpages is changed by pagesize.
2018-06-18 10:17:17 +02:00
Sebastiaan Janssen c961ffcef2 Merge pull request #2704 from andyneil/dev-v7
U4-11321 - Removed redundant autocomplete attribute
2018-06-18 10:00:59 +02:00
Sebastiaan Janssen f034fbccf9 Merge pull request #2701 from abryukhov/temp-U4-11430
U4-11430 - adds new UI localization keys (ru-RU) for v7.11
2018-06-18 09:58:03 +02:00
Andy Neil 65d9b3b99d U4-11321 - Remove unused "autocomplete" attribute 2018-06-17 16:03:02 +01:00
Mads Rasmussen 6a422fc88d add track by for properties 2018-06-17 15:00:43 +02:00
Nathan Woulfe ecaa853799 tidy up get/set for anchor when opening overlay 2018-06-17 20:07:14 +10:00
Nathan Woulfe bb28d3f4a9 extend contentcontroller to allow udi or guid params for getbyid, which also requires extending the attribute for the different param types 2018-06-17 20:06:39 +10:00
Nathan Woulfe 9f90c99350 fetch anchors for existing links 2018-06-17 19:46:07 +10:00
Nathan Woulfe ef580558b1 ensure anchor attribute is removed if anchor value is empty 2018-06-17 19:18:16 +10:00
Nathan Woulfe d327299d76 data.anchor was not used, no need to keep it 2018-06-17 18:11:01 +10:00
Nathan Woulfe 6b625481ff adds ngdoc 2018-06-17 14:47:02 +10:00
Nathan Woulfe 9cfc997ba2 update overlay/dialog to add input for anchor value - value can be a string or selection from the datalist. Is the dialog in use anymore? 2018-06-17 14:42:16 +10:00
Nathan Woulfe 3fecd55c49 adds check for anchors when overlay opens, and fetches anchors when target updates. 2018-06-17 14:41:41 +10:00
Nathan Woulfe 1cbb456dcd update rte controllers to add anchors array to overlay model - anchors are parsed from the current editor properties 2018-06-17 14:39:45 +10:00
Nathan Woulfe f3375c01d8 remove unused dialog service, add logic for managing anchor value in link object, add function for parsing an array of anchors from a string 2018-06-17 14:38:37 +10:00
Nathan Woulfe 8be303cb05 Adds key for 'anchor' to en variants. Needs translations. 2018-06-17 14:33:32 +10:00
Alexander Bryukhov 77f0b4e093 U4-11430 - couple of typos 2018-06-16 16:25:16 +07:00
Alexander Bryukhov 59e291f961 U4-11430 - slightly better health check keys translation 2018-06-16 16:23:11 +07:00
Alexander Bryukhov 50e4825066 U4-11430 - adds new UI localization keys (ru-RU) for v7.11 2018-06-16 15:59:57 +07:00
Warren 7d4ba999cf Update umb-tree-item directive
* Use one way binding in the directive from = to <
* Move template out to an external file
* Remove lots of DOM manipulation code and use directly in template
* Template uses :: for one-time binding
2018-06-15 13:20:50 +01:00
Mads Rasmussen 72fb712bad fixes mini list view animations 2018-06-15 14:01:10 +02:00
Shannon 359b1ac774 Adds ngMessages and updates the change password directive to use ng-messages for the validation message toggling, this requires a small custom new directive, now i can go replace all instances of val-toggle-msg and remove it. 2018-06-15 16:44:37 +10:00
Shannon 9d49ddba7c Fixes installer including some c# bits, fixes the hash bang to be back to normal 2018-06-15 15:51:37 +10:00
Shannon 56ba6c7a1d removes files old files that are no longer used 2018-06-15 15:35:46 +10:00
Shannon 8b1c506fef updates a couple validators to use the nicer syntax but the other ones are more complex so we can't change them 2018-06-15 15:05:12 +10:00
Shannon 6d0307cdc7 updates to latest jasmine removes unit tests that weren't testing anything and one that was failing 2018-06-15 13:54:01 +10:00
Shannon 81f78e3ec5 trying to fix vsts running the tests 2018-06-15 12:21:18 +10:00
Shannon 4acc3f48bf Fixes JS test runner and all test pass 2018-06-15 12:06:21 +10:00
Shannon feb16f901f Updates some JS dependencies, moves more dependencies to bower instead of having them committed, ensures angular locales are workgin with 1.7, upgrades to angular 1.7.2 2018-06-15 11:42:43 +10:00
Shannon Deminick 80c585c21e Temp8 validation fixing (#2699)
* Showing notifications if any for any response with status 400 >= x < 500.

* fixes valFormManager

* Updates logic for the valpropertymsg.directive to simplify it and so that it doesn't need to query the DOM which was causing issues with timing.

* commits package-lock

* fixes some issues with the securityinterceptor, properly nests promises in contentEditingHelper, fixes errors occuring when not handling promise rejections due to validation problems,

* another unhandled potential validation problem

* Merge branch 'temp-U4-7757' of https://github.com/lars-erik/Umbraco-CMS into lars-erik-temp-U4-7757

# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/services/umbrequesthelper.service.js

* cleans up the interceptor objects and puts them in appropriate modules and files, centralizes the logic to show notifications so that only happens in one place.

* Fixes more places where notifications were manually shown.

* Fixes validation with the variant publishing overlay and html descrepencies
2018-06-15 10:33:16 +10:00
Mads Rasmussen 4708293b18 remove debug info in production, disables execution of css and comment directives 2018-06-14 19:37:49 +02:00
Sebastiaan Janssen 4235963fce Fix configuration errors 2018-06-14 15:32:38 +02:00
Sebastiaan Janssen 7d2bbb64b1 Fix configuration errors 2018-06-14 15:22:22 +02:00
Robert b72e0ba30b Merge pull request #2686 from umbraco/temp8-w42
Fix new media not showing in published cache
2018-06-14 14:17:26 +02:00
Mads Rasmussen f6c03c1fe1 Merge branch 'temp8-upgrade-angular' of https://github.com/umbraco/Umbraco-CMS into temp8-upgrade-angular 2018-06-14 13:49:33 +02:00
Mads Rasmussen 383d5527bb fixes slow UI by restricting angular animations to only work on elements with the umb-animated css class 2018-06-14 13:48:51 +02:00
Jan Skovgaard b16ea2c9bf Merge branch 'dev-v7' of https://github.com/BatJan/Umbraco-CMS into dev-v7 2018-06-14 13:30:30 +02:00
Jan Skovgaard b1be0f2dae Replaced the old checkbox with the umb-toggle button. It behaves the same as before but looks nicer :-) - Also removed some unsued references from the code in the directive. 2018-06-14 13:29:16 +02:00
Jan Skovgaard 785dc4864a Switch the old checkbox to use the umb-toggle directive in the views instead. Added a toggle function to deal with this in each of the two controllers 2018-06-14 12:33:48 +02:00
Sebastiaan Janssen 07ccdfb7af Removes hacky way to get the section name and replaces it with the normal way to get it 2018-06-14 12:01:29 +02:00
Stephan a380683833 New mediapath scheme becomes default 2018-06-14 11:43:36 +02:00
Warren 4171fc7bfa Fixes Forms Dashboard Error - $cookieStore is no more & is now just $cookies in Angular 2018-06-14 10:26:32 +01:00
Jan Skovgaard 02a00eca49 Merge branch 'dev-v7' of https://github.com/BatJan/Umbraco-CMS into dev-v7 2018-06-14 10:59:42 +02:00
Jan Skovgaard 12ea56261f Replaced the old checkbox with the umb-toggle button. It behaves the same as before but looks nicer :-) - Also removed some unsued references from the code in the directive. 2018-06-14 10:59:09 +02:00
Warren 913364b2c7 Fixes test with the changes to the template editor shortcuts as they now return a promise 2018-06-14 09:31:19 +01:00
Sebastiaan Janssen 2022ca6d64 Merge pull request #2694 from dampee/feature/U4-11438
U4-11438 Add issuu.com oembed functionality
2018-06-14 10:29:19 +02:00
Mads Rasmussen 500cd9da19 fix shortcuts for scripts editor 2018-06-14 09:41:04 +02:00
Shannon Deminick 7372fa1705 Merge pull request #2627 from efabioli/patch-1
U4-11329 - GetExternalAuthenticationOptions gets called when AuthType is Null in Umbraco.Web/editors/BackOfficeController.cs
2018-06-14 14:31:27 +10:00
Damiaan 9ec1d20d51 U4-11438 Add issuu.com oembed functionality + fixed typo's in EmbeddedMedia.config file 2018-06-13 22:20:11 +02:00
Ed Parry 0e4bcc96e7 U4-9367 Refined context menu for content in the recycle bin (#2687) 2018-06-13 21:38:03 +02:00
Sebastiaan Janssen 82c7bc45a7 Merge pull request #2640 from lars-erik/U4-7874
U4-7874 - Add events to content editor
2018-06-13 21:30:10 +02:00
Sebastiaan Janssen 10484a2240 Fix unit tests after moving the Dictionary tree 2018-06-13 21:16:44 +02:00
Enkel Media 8d41d106d0 Fixes #U4-11406 by setting the thread culture before rendering macro (#2666) 2018-06-13 21:06:58 +02:00
Sebastiaan Janssen 8e18778bc2 Merge pull request #2675 from bjarnef/dev-v7-U4-11301
Add id and guid on datatype pages
2018-06-13 21:04:19 +02:00
Sebastiaan Janssen 8068641120 Merge pull request #2679 from stephen47/temp-U4-11426
U4-11426 - Fixed bug with media picker not populating URL in RTE link editor when search is used.
2018-06-13 20:58:18 +02:00
Jan Skovgaard b08343fe76 Replaced the old checkbox with the umb-toggle button. It behaves the same as before but looks nicer :-) - Also removed some unsued references from the code in the directive. 2018-06-13 20:55:52 +02:00
Sebastiaan Janssen 388f9e3a1e Merge pull request #2685 from abryukhov/temp-U4-11430
U4-11430 - Backoffice UI localization update (ru-RU)
2018-06-13 20:48:55 +02:00
Adam Prendergast 51b77669cb U4-11437: Added 'Document Type Alias' title to appear on mouse hover … (#2692) 2018-06-13 20:46:45 +02:00
Garrit Petersen f04335ef7d cursor remians default when no alias is given to the umb-control-grou… (#2497) 2018-06-13 20:42:21 +02:00
Sebastiaan Janssen aca0249c0f NuGet install now creates the correct tree controller 2018-06-13 20:29:55 +02:00
Sebastiaan Janssen d66e951b68 Updating code style, removes obsolete files, now we can move the tree to the Translation section 2018-06-13 20:20:21 +02:00
Dave Woestenborghs 9c33f1b1c9 U4-5683 Migrate Dictionary tree & editor to angular (#2159) 2018-06-13 20:19:18 +02:00
Warren 884d49a349 Merge branch 'temp8-upgrade-angular' of https://github.com/umbraco/Umbraco-CMS into temp8-upgrade-angular 2018-06-13 15:46:50 +01:00
Warren e630faa185 Fixes translation items for the keyboard shortcuts in template editor & partial view editor
* Angular does not auto expand promises when we assign to properties on scope & now we return a promise with the object data with the values translated from the localization service
2018-06-13 15:46:20 +01:00
Mads Rasmussen 44529f266e fixes: When opening the doctype, media type, member type editor the name field makes a small “jump”. 2018-06-13 15:31:05 +02:00
Mads Rasmussen faad17a92e fixes: #48 Subviews show a quick content flash of all views before they hide 2018-06-13 14:10:17 +02:00
Warren 3be22bd6a7 Fix up modelsbuilder dashboard - we now use ng-bind-html directive as opposed to ng-bind-html-unsafe 2018-06-13 12:27:22 +01:00
Daniël Knippers 3520f2d1e4 Fix NullReferenceException when HttpContext is null
This method will throw a NullReferenceException in contexts without an HttpContext, like is the case in background threads. As HttpContext is only used to set an isDebug flag, it seems more sensible to not throw in cases without an HttpContext, but simply set isDebug to false instead. If this is not acceptable behavior, could we perhaps look at something other than HttpContext.Current.IsDebuggingEnabled to decide whether isDebug should be set?
2018-06-13 13:25:10 +02:00
Warren f29167eb59 Fix up nucache/published status dashboard - the responses back from the API calls are not JSON but a simple string and thus we did not need angular.fromJson() 2018-06-13 12:04:05 +01:00
Warren Buckley 598566198d Merge pull request #2691 from umbraco/temp8-56
fix icon contet flashes + update to new component syntax
2018-06-13 11:47:36 +01:00
Mads Rasmussen 20cd36026e fix overlay conent flash 2018-06-13 11:51:44 +02:00
Mads Rasmussen 27891e304d fix icon contet flashes + update to new component syntax 2018-06-13 10:16:25 +02:00
Warren f848746f33 Remove the unused functions in the security interceptor re-write 2018-06-13 08:31:28 +01:00
Mads Rasmussen 3b4e1ea3d6 fix media recycle bin 2018-06-12 20:57:08 +02:00
Mads Rasmussen 09006352f7 fix logout 2018-06-12 20:51:22 +02:00
Rasmus John Pedersen 5e3a8b4694 Only call updateNodeData if there's children
Also there's no need to send the node to the function
since it's the same node, so better save some compute
power there too
2018-06-12 20:09:10 +02:00
Rasmus John Pedersen e034bd4a1f Update tree node when children are loaded
This fixes the expand/collapse icon not being show when a tree
is autoexpanded, e.g. when refreshing the page
2018-06-12 16:39:42 +02:00
Mads Rasmussen 90a53ddcc7 fix localisation for user groups picker 2018-06-12 16:03:17 +02:00
Warren acab866b29 Update list view create button to use ng-href now the hashbang is now just hash :) 2018-06-12 14:40:44 +01:00
Warren cb1a0897eb Merge branch 'temp8-upgrade-angular' of https://github.com/umbraco/Umbraco-CMS into temp8-upgrade-angular
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/routes.js
2018-06-12 14:39:18 +01:00
Warren fde1d6f6fb Update the angular routing to be # as opposed to hash bang #! 2018-06-12 14:34:45 +01:00
Mads Rasmussen 8337500356 turn html5 mode on 2018-06-12 15:17:43 +02:00
Warren 4577ec1016 Remove the console.log debug from the interceptor for now - we may need to revisit this 2018-06-12 13:51:06 +01:00
Mads Rasmussen d91e3e90c6 Merge branch 'temp8-upgrade-angular' of https://github.com/umbraco/Umbraco-CMS into temp8-upgrade-angular 2018-06-12 14:17:37 +02:00
Mads Rasmussen 02c02a3abe update responseError in security interceptor 2018-06-12 14:17:03 +02:00
Warren 939cac264a Get the x-umb-user-modified header to work - set a new profile photo or remove it and ensure header is sent down & the event is emitted to update the avatar 2018-06-12 12:38:32 +01:00
Claus 2715d49630 Merge pull request #2498 from hemraker/temp-U4-10899
Fixes U4-10899: Template circular dependency
2018-06-12 13:04:23 +02:00
Warren 083fbbf3c6 WIP - refactor of interceptor to new format - having issues getting the x-umb-user-seconds 2018-06-12 10:54:49 +01:00
Mads Rasmussen 9b0bf28d15 fixing unit tests 2018-06-12 11:26:08 +02:00
Mads Rasmussen 945271cb67 correct error handling of http requests 2018-06-11 22:12:40 +02:00
Mads Rasmussen 94a65fa628 fixing more localisation issues 2018-06-11 20:46:43 +02:00
Warren 6dae192497 Fixes up missing listview create button - due to the HTTP promise being directly assigned to the Angular property on the model as opposed to the items/result of the promise 2018-06-11 15:01:31 +01:00
Warren 9388089b9e Fix #55 - Search icon outside input field on list views for Angular 1.7 upgrade 2018-06-11 14:13:16 +01:00
Mads Rasmussen 3978d0c529 Merge branch 'temp8' into temp8-upgrade-angular 2018-06-11 14:17:00 +02:00
Mads Rasmussen 4670ba9fe0 inject localizationService into the publish dialog 2018-06-11 13:32:13 +02:00
Mads Rasmussen c89423946a fix more localisation labels 2018-06-11 13:16:29 +02:00
Stephan 297c4a8e73 Fix new media not showing in published cache 2018-06-11 12:31:54 +02:00
Alexander Bryukhov 78fe1015aa U4-11430 - Backoffice UI localization update (ru-RU) 2018-06-11 17:16:49 +07:00
James Coxhead 5a43f6b6fe Moved remaining classes out of WebServices 2018-06-10 20:00:07 +01:00
Rasmus John Pedersen 66b0d4e3b6 Expand tree to current node on copy/move and when picking content 2018-06-10 14:01:32 +02:00
Mundairson 74ce567702 The default for a class is null anyway. 2018-06-10 12:03:09 +01:00
Mundairson 0571970a92 Remove the double cast. 2018-06-10 12:01:43 +01:00
Mundairson a63b3889e7 Run the plugin set up before the UDI tests so the types are there. 2018-06-09 17:15:26 +01:00
Mundairson 72e0eabb4b Reset the UDI types before each unit test. 2018-06-09 16:57:58 +01:00
Mundairson 0745ed87c2 Convert GUID and UDI methods to pattern matching. 2018-06-09 16:40:51 +01:00
Mundairson c3d7bd5fdf Add tests to refactor the GUID and UDI convert methods. 2018-06-09 16:36:49 +01:00
Mundairson b60e7246fb Converted to simple pattern matching. 2018-06-09 16:02:51 +01:00
Mundairson 73d6f81d67 Add tests before refactoring. 2018-06-09 16:01:15 +01:00
Mundairson 9e9648cbb8 Removed unused using declarations and changed tabs to spaces. 2018-06-09 15:27:57 +01:00
Mundairson 34b2349cd7 Clean the AssignedContentItem property. 2018-06-09 15:26:40 +01:00
Stephen Holder d43d432d2f U4-11426 - Fixed bug with media picker not populating URL in RTE link editor when search is used. 2018-06-08 20:35:20 +01:00
Stephan e4fafd55c8 Fix tests - but we have to fix variant names 2018-06-08 10:49:51 +02:00
Stephan 3c9ba6502a TEMP ignore some tests for build 2018-06-08 07:52:40 +02:00
James Coxhead bd7aea31ee Removed unused Examine Management Controller actions 2018-06-07 21:32:48 +01:00
James Coxhead dd7d6ba392 Removed unused EmbedMediaService 2018-06-07 21:29:07 +01:00
Stephan 2f93601544 Fix tests, reflection utilities 2018-06-07 14:30:26 +02:00
Sebastiaan Janssen 0512a13ef1 Merge pull request #2677 from PeteDuncanson/patch-3
Made the need for VS2017 version 15.7+ REALLY clear!
2018-06-07 13:57:59 +02:00
Pete Duncanson aaf88a8488 Update V8_GETTING_STARTED.md 2018-06-07 12:31:12 +01:00
Pete Duncanson 56d54de3b3 Made the need for VS2017 version 15.7+ REALLY clear! 2018-06-07 12:13:02 +01:00
Sebastiaan Janssen ab8472780a Merge pull request #2676 from PeteDuncanson/patch-2
Linked to "how to contribute" for v7
2018-06-07 12:03:03 +02:00
Pete Duncanson 98648b12f1 Linked to "how to contribute" for v7 2018-06-07 10:58:36 +01:00
Sebastiaan Janssen a3e0f908de Fixes merge error 2018-06-07 09:00:47 +02:00
Stephan 73ee972d37 Cleanup my cleanup 2018-06-07 08:48:46 +02:00
Stephan d166591ee5 Cleanup docs 2018-06-07 08:48:12 +02:00
Bjarne Fyrstenborg 06ee6e3845 Add id and guid on datatype pages 2018-06-06 23:23:15 +02:00
Sebastiaan Janssen 6e8214e697 Merge remote-tracking branch 'origin/dev-v7' into temp8 2018-06-06 22:36:22 +02:00
Marc Goodson 0eceb3c7fc U4-11369 - Add list of content types where a composition content type is used to compositions dialog (#2668) 2018-06-06 22:35:10 +02:00
Sebastiaan Janssen 9008e6af88 Merge branch 'dev-v7' into temp8
# Conflicts:
#	docs/CONTRIBUTING_DETAILED.md
#	docs/README.md
#	src/Umbraco.Core/Configuration/GlobalSettings.cs
#	src/Umbraco.Core/StringExtensions.cs
#	src/Umbraco.Web.UI.Client/src/common/directives/components/buttons/umbbutton.directive.js
#	src/Umbraco.Web.UI.Client/src/less/components/umb-group-builder.less
#	src/Umbraco.Web.UI.Client/src/views/components/buttons/umb-button.html
#	src/Umbraco.Web.UI.Client/src/views/dashboard/developer/developerdashboardvideos.html
#	src/Umbraco.Web.UI.Client/src/views/prevalueeditors/boolean.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/boolean/boolean.html
#	src/Umbraco.Web/PublishedContentExtensions.cs
#	src/Umbraco.Web/Trees/LanguageTreeController.cs
2018-06-06 21:15:11 +02:00
Mads Rasmussen bf1024c1b0 fix more localize problems 2018-06-06 20:38:21 +02:00
Chris Houston 5013c5f526 Fixes issue: U4-11416 - Better formatting for the video tiles in the developer section. (#2673) 2018-06-06 20:17:56 +02:00
Mads Rasmussen b5333fe2d6 make sure the placeholder template name and alias is updated correcly so you can create doc types 2018-06-06 13:19:34 +02:00
Mads Rasmussen d9df6e12be fix loading of recycle bin controller 2018-06-06 13:18:46 +02:00
Mads Rasmussen adde66d3e9 Merge branch 'temp8' into temp8-upgrade-angular 2018-06-06 11:50:31 +02:00
Mads Rasmussen eb6da7a41a fixing item picker title and master template title 2018-06-06 11:26:34 +02:00
Mads Rasmussen 33be5a4960 fixing titles in the insert dialog 2018-06-06 10:59:35 +02:00
Mads Rasmussen 3f6ac3fcd6 fix titles for dictionary items and partial views dialog 2018-06-06 10:36:16 +02:00
Mads Rasmussen b98aa215c3 fix title in insert field dialog 2018-06-06 10:15:50 +02:00
Sebastiaan Janssen d07bd58deb Merge pull request #2672 from WojciechKmiecik/temp-U4-10936
fix for U4-10936 "Failed to read the 'rules' property from 'CSSStyleSheet'" when certain chrome extensions are enabled
2018-06-06 10:01:01 +02:00
Mads Rasmussen ed1d7fb2c5 fix title in embed dialog 2018-06-06 09:59:21 +02:00
Sebastiaan Janssen d8ba0d352e Merge pull request #2633 from maarten-kieft/dev-v7
Make base AnchestorOrSelf public
2018-06-06 09:58:55 +02:00
Mads Rasmussen c2aa3e9d06 fix title in macro dialog 2018-06-06 09:58:49 +02:00
Mads Rasmussen 11a0b36ff0 fix move-dialog title 2018-06-06 09:12:57 +02:00
Mads Rasmussen 764a706143 fix copy-dialog title 2018-06-06 09:09:05 +02:00
Mads Rasmussen a9a274dea5 Added an empty "/" route to default to "content" 2018-06-05 21:03:43 +02:00
Mads Rasmussen ccd8ecd055 add title to query builder 2018-06-05 20:22:56 +02:00
Mads Rasmussen 394fa9215a fix title in insert overlay 2018-06-05 19:58:58 +02:00
Wojciech Kmiecik faf9800235 fix U4-10936 when ceratin chrome extensions are enabled 2018-06-05 17:17:14 +02:00
Stephan bc06d7b20c Adjust SqlTemplate usage in DomainRepository 2018-06-05 16:02:37 +02:00
Mads Rasmussen 7287d8c565 move hideoptions to ng-class 2018-06-05 15:21:18 +02:00
Mads Rasmussen 99589789dd renames onlyinitialized because angular thinks its an onclick 2018-06-05 15:20:35 +02:00
Sebastiaan Janssen e789cb8875 Merge pull request #2671 from Mundairson/dev-v7-U4-8199
Refactor the extension method IsNullOrWhiteSpace() to use the native version
2018-06-05 14:30:18 +02:00
Sebastiaan Janssen f208fc65d0 Merge pull request #2639 from lars-erik/U4-11356
U4-11356 Events emitted from the grid on init, row added and item added
2018-06-05 14:18:14 +02:00
Mundairson e7c1d3dd2e Removed old version. 2018-06-05 12:25:37 +01:00
Mundairson 379ac8a3cb Refactored the extension method to call the native method. 2018-06-05 12:25:06 +01:00
Sebastiaan Janssen 8202dbcc5b Merge pull request #2644 from ssougnez/temp-U4-10956
Created an innerState variable in the isolated scope of "umb-button" …
2018-06-05 12:57:44 +02:00
Sebastiaan Janssen 8172789537 Merge pull request #2669 from dawoe/temp-U4-11412
U4-11412 only show buttons in umb-confirm when callback is defined
2018-06-05 12:39:17 +02:00
Sebastiaan Janssen 08dd74322a Merge pull request #2667 from BatJan/dev-v7
Use the umb-toggle directive for the "True/False" property editor
2018-06-05 12:37:08 +02:00
Stephan d4f884df74 Fix tests 2018-06-05 12:26:13 +02:00
Stephan aa582658ac Fix tags 2018-06-05 12:26:13 +02:00
Mundairson 8953021784 Corrected the VersionCheckPeriod property's XML comment. 2018-06-05 10:58:45 +01:00
Mads Rasmussen 2330ff334b fix content-type in request header when saving content 2018-06-05 11:24:16 +02:00
Mads Rasmussen 0b7426aa3f Merge branch 'temp8' into temp8-upgrade-angular
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/tree/umbtree.directive.js
2018-06-05 09:53:11 +02:00
James Coxhead 8444423201 Removed unused bulk publish controller 2018-06-04 21:50:58 +01:00
Mads Rasmussen 6697c67f38 fix keys for keyboard shortcuts in content type editors 2018-06-04 22:44:12 +02:00
Mads Rasmussen 4dbec70f00 fix localisation for node publish state 2018-06-04 21:26:34 +02:00
Robert 0e72c34973 Merge pull request #2664 from umbraco/temp8-U4-11401
U4-11401 Unique content naming isn't implemented for culture variants
2018-06-04 15:16:57 +02:00
Sebastiaan Janssen da4e519e4b Merge pull request #2658 from PeteDuncanson/temp-U4-11395
U4-11395 - Add Gulp ImageMin to compress images in build process
2018-06-04 14:16:48 +02:00
Sebastiaan Janssen 42a6872685 Move image to the new location 2018-06-04 13:51:12 +02:00
Mads Rasmussen 2b5ef7b45c change angular.lowercase() to .toLowerCase() 2018-06-04 13:48:36 +02:00
Sebastiaan Janssen a8cf6e8426 Merge pull request #2651 from umbraco/temp-ic-2
Restructures contribution guidelines into multiple files to make them…
2018-06-04 13:43:06 +02:00
Mads Rasmussen fefb6e4454 fix more localisation issues 2018-06-04 12:08:19 +02:00
Stephan d167e7bf0b Fix media cache 2018-06-04 11:44:54 +02:00
Stephan 01927e1e53 Fix variation context accessor 2018-06-04 11:44:54 +02:00
Stephan 825f785a2b Fix database debugging tools 2018-06-04 11:37:19 +02:00
Stephan 632e401d33 Implement typed labels 2018-06-04 11:37:19 +02:00
Stephan 062a47f2aa Use ModelsBuilder from NuGet, -alpha.44 2018-06-04 11:37:19 +02:00
Stephan f92a03b996 Use ModelsBuilder from NuGet, -alpha.43 2018-06-04 11:32:53 +02:00
Stephan 1255eed84c Remove ModelsBuilder project 2018-06-04 11:10:55 +02:00
Dave Woestenborghs fe2ff696c5 U4-11412 documented umbConfirm directive 2018-06-04 09:06:25 +02:00
Sebastiaan Janssen 240c205765 Merge pull request #2649 from AndyFelton/temp-U4-11039
Conditional Upload button on Media Picker
2018-06-04 08:58:35 +02:00
Dave Woestenborghs 03019e9676 U4-11412 only show cancel and confirm button when a handler is attached 2018-06-04 08:52:48 +02:00
Dave Woestenborghs 697cc7a420 U4-11412 hide cancel button in umb-confirm when handler is not defined 2018-06-04 08:45:09 +02:00
Sebastiaan Janssen 8961f930e3 Merge pull request #2646 from AndersBrohus/U4-11367
U4-11367 - Show trashbin icon again
2018-06-04 08:03:30 +02:00
Sebastiaan Janssen 2d3ef8d311 Merge pull request #2642 from Mundairson/dev-v7-getting-started-text-fixes
Corrected spelling and grammar in the Getting Started tool tips for v7.
2018-06-04 07:58:36 +02:00
Shannon Deminick 02afb1e774 Merge pull request #2665 from umbraco/temp-U4-11338
fixes U4-11338 Language dropdown fails when invalid cultures are present
2018-06-04 14:07:01 +10:00
James Coxhead 222cb25cfd Moved XmlDataIntegrityController, PublishedStatusController, and NuCacheStatusController out of WebServices 2018-06-03 14:42:10 +01:00
James Coxhead cca3c5df78 Removed unused CoreStringsController 2018-06-02 20:00:07 +01:00
James Coxhead 1b42a2a6ac Removed SaveFileController
Replaced with CodeFileController
2018-06-02 19:39:52 +01:00
James Coxhead 87df9b8f04 Migrated DomainsApiController
Moved action to exiting ContentController, moved viewmodels out into seperate files.
2018-06-01 21:39:29 +01:00
Jan Skovgaard 6188629da6 Convert the default boring checkbox to the shiny new and beautiful toggle based on the umb-toggle directive 2018-06-01 22:03:10 +02:00
Sebastiaan Janssen 2c04a02d62 Merge pull request #2662 from readingdancer/U4-11400
Updated references to mention May for CodeGarden in the installer
2018-06-01 15:09:07 +02:00
Mads Rasmussen 0216bea233 dropzone can now upload files again 2018-06-01 14:59:45 +02:00
Claus ccc8868f68 fixes U4-11338 Language dropdown fails when invalid cultures are present 2018-06-01 13:06:13 +02:00
Mads Rasmussen 328f83c0c7 fix title on media picker 2018-06-01 12:39:07 +02:00
Mads Rasmussen b8a77b8661 fix localisation in property settings editor 2018-06-01 12:19:22 +02:00
Mads Rasmussen 6d84e1bb40 move ng-controller to its own element 2018-06-01 10:09:19 +02:00
Mads Rasmussen 0aec09a258 temp fix to bring infinite editors back to life 2018-06-01 10:05:45 +02:00
Mads Rasmussen 078e45b7ea move ng-controller in media picker to its own element 2018-06-01 09:40:41 +02:00
Claus 2de0d5e09f Merge pull request #2656 from umbraco/temp8-U4-11378
U4-11378 - ContentFinderByUrlAlias
2018-06-01 08:30:46 +02:00
Shannon 504b6cb079 Changes Content.Names to Content.CultureNames and Content.PublishNames to Content.PublishCultureNames 2018-06-01 16:15:46 +10:00
Shannon 90e6769169 adds check for EnsureUniqueNaming 2018-06-01 16:04:20 +10:00
Shannon fd3e6f4d9c turns out there's no need for the full table name, the sql generator figures this out 2018-06-01 15:52:55 +10:00
Shannon 3cfd9c5b00 ensures the unique name check is not performed against itself 2018-06-01 15:51:45 +10:00
Shannon b75cf3bc76 Changes EnumExtensions to ContentVariationExtensions and adds more helper methods to replace a lot of the duplicate checking in our code. Adds code to enforce unique naming for culture names, adds supporting tests. 2018-06-01 15:20:16 +10:00
Shannon e907a085bd fixes U4-11391 Content picker language drop down isn't working 2018-06-01 13:13:29 +10:00
Shannon Deminick 9e826004d8 Merge pull request #2655 from umbraco/temp8-U4-11375
U4-11375 - url segments are ascii by default
2018-06-01 11:59:15 +10:00
Shannon Deminick 33b7f355c9 Merge pull request #2663 from umbraco/temp8-U4-11384
U4-11384 nodes moved to the recycle bin still show up in the cache so remain routable
2018-06-01 11:56:56 +10:00
Shannon 5d79d01457 Merge remote-tracking branch 'origin/temp8' into temp8-U4-11384 2018-06-01 11:53:55 +10:00
Shannon Deminick 6c0c59f731 Merge pull request #2660 from umbraco/temp8-user-unknown
Ensures referential integrity for all FKs to umbracoUser but supports NULL entries
2018-06-01 11:53:14 +10:00
Shannon a24fd55b43 Merge remote-tracking branch 'origin/temp8' into temp8-U4-11384 2018-06-01 09:35:19 +10:00
James Coxhead e26b8ae6d9 Migrated Examine Management controller 2018-05-31 22:03:12 +01:00
Chris Houston cde7f0fa18 Updated references to CodeGarden in the installer and the umbraco.config test file to mention May instead of June :) 2018-05-31 14:50:01 -04:00
Stephan 3398de7fdb Fix NuCache, exclude trashed items 2018-05-31 17:14:25 +02:00
Shannon e6a354876d disables ContentFinderByUrlAndTemplate 2018-06-01 01:00:51 +10:00
Shannon 40791e1266 Merge remote-tracking branch 'origin/temp8' into temp8-U4-11384 2018-06-01 00:15:33 +10:00
Shannon 6ae538d555 reverts the fix that doesn't work 2018-06-01 00:06:59 +10:00
Mads Rasmussen 18f790d180 Merge branch 'temp8' into temp8-upgrade-angular 2018-05-31 15:40:22 +02:00
Shannon 79f95f4243 fixes removing content item from the cache when it is trashed 2018-05-31 23:34:10 +10:00
Shannon 437855979d Fixes passing in the user id for copy operations 2018-05-31 23:33:52 +10:00
Sebastiaan Janssen 867ccaf2b1 Small corrections 2018-05-31 15:26:12 +02:00
Shannon 2f331de7b4 reverts default userId parameters to be zero which means 'unknown' 2018-05-31 23:12:48 +10:00
Shannon abbb119fc9 Ensures ref integrity for all FKs to umbracoUser table but support NULL values 2018-05-31 23:05:35 +10:00
Peter Duncanson 3743fc1c29 Added Gulp Images to compress images as part of the front end build process 2018-05-31 13:37:24 +01:00
Stephan 82b5e0be02 Fix nuspec files 2018-05-31 14:02:39 +02:00
Shannon b5f0bc7234 creates a user 0 for unknown to keep ref integrity 2018-05-31 21:21:08 +10:00
Mads Rasmussen 9621bb0391 Fix title localisation 2018-05-31 12:57:08 +02:00
Mads Rasmussen 3829936d06 move ng-controller 2018-05-31 12:56:36 +02:00
Stephan 5e39dd3ed0 U4-11378 - ContentFinderByUrlAlias 2018-05-31 12:54:10 +02:00
Mads Rasmussen a07c43a790 fix localisation in data type picker 2018-05-31 12:44:23 +02:00
Mads Rasmussen 07b0faadd9 move ng-controller to its own element 2018-05-31 12:43:56 +02:00
Stephan 4f8973a043 Fix Upgrader - was updating even when nothing happened 2018-05-31 11:58:38 +02:00
Stephan 721a239d4a Fix ModelsBuilder structure - had circ dependencies etc 2018-05-31 11:58:20 +02:00
Stephan 6c5f07f201 Fix shutdown message logging - was not logging 2018-05-31 11:55:50 +02:00
Stephan 3862ff9076 Cleanup and get rid of other warnings 2018-05-31 11:55:37 +02:00
Stephan 2248e310d9 Cleanup and get rid of more warnings 2018-05-31 11:53:14 +02:00
Stephan 38eae90640 Cleanup and get rid of warnings 2018-05-31 11:53:14 +02:00
Stephan e0f97feb1c Update Benchmarks csproj 2018-05-31 11:53:14 +02:00
Stephan 454eb82a1f Merge branch 'temp8' into temp8-U4-11375 2018-05-31 11:43:31 +02:00
Mads Rasmussen 3a9b2069af fix localisation in umbControlGroup 2018-05-31 11:30:15 +02:00
Mads Rasmussen f473ff8795 fix translations for users overview 2018-05-31 11:23:29 +02:00
Mads Rasmussen f5499b1755 fix help drawer 2018-05-31 10:42:09 +02:00
Claus bfa93ec76f Merge pull request #2652 from umbraco/temp8-U4-11202
U4-11202 - fix database issues
2018-05-31 10:23:39 +02:00
Claus 8f87381c01 fixed typo 2018-05-31 10:23:09 +02:00
Shannon 1cd4862803 Fixes user Id is 0 everywhere 2018-05-31 16:52:38 +10:00
Stephan ac788320a2 U4-11375 - 'try' ascii 2018-05-31 08:26:38 +02:00
Stephan 985385bb30 U4-11375 - url segments are ascii by default 2018-05-31 08:23:22 +02:00
Stephan 5b227ab2a0 Merge branch 'temp8' into temp8-U4-11202 2018-05-31 08:16:12 +02:00
Shannon 0d68a3fb4f avoids a ysod if the wrong user id sneaks in to the log 2018-05-31 15:54:23 +10:00
Shannon a2aa318e18 Fixes moving event dispatching in content service which prohibited you from moving anything 2018-05-31 15:43:39 +10:00
Shannon 5ed5ebf054 Fixes event handling for content type containers 2018-05-31 14:59:26 +10:00
Shannon Deminick ea1d557ee5 Merge pull request #2653 from umbraco/temp8-U4-11385
U4-11385 Can't create doc type folders
2018-05-31 13:47:27 +10:00
James Coxhead 63512462fd Added flexible dropdown property value converter 2018-05-30 23:25:00 +01:00
Mads Rasmussen e86ca6c361 Merge branch 'temp8' into temp8-upgrade-angular 2018-05-30 17:43:21 +02:00
Mads Rasmussen 07349bcd71 fix orderBy error in content create dialog 2018-05-30 17:17:49 +02:00
Mads Rasmussen b73769d4c7 temp comment out val-form-manager 2018-05-30 17:08:27 +02:00
Claus 9838977806 fixes U4-11385 Can't create doc type folders.
using dispatch instead of dispatchcancelable when the event is not cancelable for both saving and renaming.
2018-05-30 14:39:12 +02:00
Mads Rasmussen 82f70ac453 update $http request 2018-05-30 11:43:09 +02:00
Mads Rasmussen 264d545325 update required formProps to recognize a form 2018-05-30 11:42:33 +02:00
Mads Rasmussen 6de4d85783 upgrade ng-file-upload 2018-05-30 11:41:20 +02:00
Sebastiaan Janssen d10aec9e68 Merge branch 'dev-v7' into temp-ic-2
# Conflicts:
#	docs/CONTRIBUTING_DETAILED.md
#	docs/README.md
2018-05-30 11:18:15 +02:00
Mundairson fefe5660ef Added merged files from dev-v7 2018-05-30 10:07:05 +01:00
Stephan 00c62804a8 U4-11202 - Fix deadlock in UserRepository 2018-05-30 10:44:33 +02:00
Sebastiaan Janssen 5d978a62fd Small corrections 2018-05-30 10:19:21 +02:00
Stephan 6208a3ec73 Ensure server messenger actually starts 2018-05-30 10:00:20 +02:00
Stephan 3da596eedf Fix PublishedSnapshotAccessor to not throw but return null 2018-05-30 10:00:19 +02:00
Stephan 518ccd5686 Cleanup Dtos 2018-05-30 10:00:18 +02:00
Stephan 9e1d19d56a Fix ALTER TABLE ADD COLUMN issue 2018-05-30 10:00:18 +02:00
Stephan 936b8ab5fe Fix NPoco update expressions 2018-05-30 10:00:17 +02:00
Stephan 91396e561f Deal with IDE1006 2018-05-30 10:00:17 +02:00
Stephan ac04abe59b Fix ContentTreeController 2018-05-30 10:00:16 +02:00
Stephan a7ba4a155e Fix logging in NuCache SnapshotService 2018-05-30 10:00:15 +02:00
Stephan 2fade20656 Kill legacy, get rid of warnings 2018-05-30 10:00:14 +02:00
Stephan c5af3e51b0 Update V8_GETTING_STARTED.md 2018-05-30 10:00:14 +02:00
Shannon 685a052339 tweak /umbraco/view/web.config to only block cshtml, so the *.html files can be downloaded 2018-05-30 16:29:16 +10:00
Shannon 6e2222d357 Merge remote-tracking branch 'origin/dev-v7' into temp8 2018-05-30 16:16:04 +10:00
Shannon 559fece3e9 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-05-30 16:15:35 +10:00
Shannon 6868279909 csproj bump 2018-05-30 16:15:23 +10:00
Shannon Deminick 49062d3ede Merge pull request #2625 from poornimanayar/U4-11159
Fixed typos in tours
2018-05-30 08:10:25 +02:00
Shannon Deminick 41865d76fb Merge pull request #2645 from simonech/sort-languages-by-name
U4-11368 - Sort language by name in languages settings page
2018-05-30 08:05:23 +02:00
Shannon 2c41f3dbfa Updated web.config for /umbraco/views 2018-05-30 15:32:33 +10:00
Shannon 9b08a73210 Merge remote-tracking branch 'origin/dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Core/StringExtensions.cs
#	src/Umbraco.Tests/Strings/StringExtensionsTests.cs
#	src/Umbraco.Web/UmbracoHelper.cs
2018-05-30 15:29:08 +10:00
Shannon 00e0dbaa65 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-05-30 15:22:09 +10:00
Shannon 4705a6bc10 updates views web.config 2018-05-30 15:21:59 +10:00
Sebastiaan Janssen 7853245fe4 Small corrections 2018-05-29 17:33:06 +02:00
Sebastiaan Janssen fa88efbf5e Small corrections 2018-05-29 17:24:14 +02:00
Sebastiaan Janssen 6f6252b616 Restructures contribution guidelines into multiple files to make them easier to digest for new
contributors
ref: https://github.com/umbraco/issues-community/issues/2
2018-05-29 17:18:25 +02:00
Mads Rasmussen 3d5d2648ff upgrade angular-local-storage 2018-05-29 14:39:17 +02:00
Mads Rasmussen 04c4a8cd34 fix lexer error in tree 2018-05-29 14:13:38 +02:00
Mads Rasmussen 7a85a82094 changed ng-bind-html-unsafe to ng-bind-html 2018-05-29 13:33:26 +02:00
Mads Rasmussen c86e2b3031 Make subviews clickable again 2018-05-29 11:05:53 +02:00
Mads Rasmussen a293ff0200 fix localisation of doc type subviews 2018-05-29 11:05:19 +02:00
Mads Rasmussen d7a8d433de add null check + remove weird ngShow support 2018-05-28 21:19:23 +02:00
Mads Rasmussen 4c50ab6042 fix button translations in overlay 2018-05-28 21:18:39 +02:00
Mads Rasmussen 2d0d5c179b fix transclude for overlays 2018-05-28 21:18:08 +02:00
Mads Rasmussen 6510dce9d4 fix link for header avatar 2018-05-28 21:17:50 +02:00
Mads Rasmussen 5670fc14e0 add optional marker to routes 2018-05-28 21:16:57 +02:00
Mads Rasmussen 8b96efc02e move umbTree markup to template 2018-05-28 20:55:56 +02:00
Mads Rasmussen 66894e81e1 temp comment out securityInterceptor 2018-05-28 20:52:35 +02:00
Mads Rasmussen fa0b3049ee update requestHelper to handle new promises 2018-05-28 20:48:52 +02:00
Mads Rasmussen 1cd231fdb9 upgrade angular version + load new dependencies 2018-05-28 20:47:54 +02:00
Andy Felton 7947970817 Conditional Upload button on Media Picker
Made upload button only appear when media can be uploaded to the current folder. Also ensured acceptedMediatypes is always valid even in the root directory
2018-05-28 15:39:15 +01:00
Anders Brohus 76717eb720 Show trashbin icon again
After looking i found out that the problem was that the "position:relative;" was removed on the umb-group-builder__group class.
2018-05-25 19:53:06 +02:00
Simone Chiaretta 7c5fe63d0b Sort language by name
The issue was that the web API was returning a dictionary that was interpreted as data object by AngularJS, with each key becoming a property of an enormous object, so when binding this object to the select element, it was sorted by property name, thus the key of the array, which was the And being an object it was impossible to sort it again by value.
Only option was to convert it to an array. And since the original list of culture is already sorted correctly, no need to sort it again.
2018-05-25 10:01:12 +02:00
Seb cd0c9a39f3 Created an innerState variable in the isolated scope of "umb-button" directive in order to ensure not to create a "state" property in the directive isolated scope. 2018-05-23 18:01:17 +02:00
Shannon Deminick 91ca72b56d Update V8_GETTING_STARTED.md 2018-05-22 13:05:05 +02:00
Shannon Deminick 355209354e Update V8_GETTING_STARTED.md 2018-05-22 12:58:14 +02:00
Sebastiaan Janssen 96ce2882a2 Merge pull request #2643 from abjerner/patch-38
Health Checks: the warning icon should be orange instead of yellow
2018-05-22 11:00:11 +02:00
Anders Bjerner 068ad19492 Health Checks: the warning icon should be orange instead of yellow
Both the yellow and orange colors used to be a bit darker, but when more colors were introduced in 7.10.x, the two colors were made a bit lighter. So now the yellow warning icon is hard to see on a white background, but the orange color now looks just right ;)
2018-05-22 10:44:43 +02:00
Mundairson 6fb4f8fc8b Corrected some spelling and grammar. 2018-05-22 01:10:41 +01:00
Stephan baba390c7b Version 8.0.0-alpha.41 2018-05-21 23:04:18 +02:00
Stephan a3a14c8339 Fix NuGet packages - oh well 2018-05-21 22:38:27 +02:00
Stephan e4bd0e975e Fix NuGet package 2018-05-21 19:08:52 +02:00
Lars-Erik Aabech e7fce9120e Added several events to content editor 2018-05-21 18:04:50 +02:00
Lars-Erik Aabech 76c924fbaa Events emitted from the grid on init, row added and item added w/DOM element and scope. 2018-05-21 17:06:12 +02:00
Stephan bd07a1ba5c Version 8.0.0-alpha.40 2018-05-21 11:49:20 +02:00
Stephan f535f6d324 Cleanup ModelsBuilder merge 2018-05-21 11:49:08 +02:00
Sebastiaan Janssen 93b470f15c Merge pull request #2638 from rozzilla/patch-2
Update README img
2018-05-21 10:25:31 +02:00
Roberto Bianchi 1cef87ee34 Update README img 2018-05-21 10:20:44 +02:00
Stephan 373fad6efe Merge ModelsBuilder in, NuGet dies on circ dependencies now 2018-05-21 10:05:52 +02:00
leekelleher 21dbd1e402 Corrected a typo with MultipleTextStringConfiguration class name
@zpqrtbnk approved in person this at CGRT18 ;-)
2018-05-20 18:16:09 +01:00
Stephan 129e094b09 Fix Umbraco.Web.UI references 2018-05-18 15:24:12 +02:00
Mads Rasmussen c3c24eba4f Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-05-18 12:33:16 +02:00
Mads Rasmussen 145858a302 hide culture dropdown in culture and hostnames dialog 2018-05-18 11:07:54 +02:00
Stephan c13e3ec220 Version 8.0.0-alpha.37 2018-05-18 09:39:02 +02:00
Stephan 6ce24bf1a1 Various fixes 2018-05-17 17:24:30 +02:00
Stephan 6c61eb2d69 Fix tests 2018-05-17 16:34:11 +02:00
Stephan 76bf84f8ea Forgot to update binding redirects 2018-05-17 16:34:05 +02:00
Stephan a8ba8598f2 Merge branch origin/temp8 into temp8-xbuild 2018-05-17 15:34:27 +02:00
Stephan 6e7bb41190 Version 8.0.0-alpha.36 2018-05-17 15:33:38 +02:00
Stephan 7387379aea Upgrade to ModelsBuilder -alpha.18 2018-05-17 15:32:27 +02:00
Shannon 50659787ee fixes published content Url for invariant 2018-05-17 15:26:06 +02:00
Shannon 3da120ce33 Adds Property Type to the published content model, fixes some web.config versions 2018-05-17 13:32:20 +02:00
Stephan de9f4f8d0b Cleanup references and dependencies 2018-05-17 13:19:35 +02:00
Stephan 20ecb6a779 Merge branch origin/temp8 into temp8-xbuild 2018-05-17 13:04:57 +02:00
Stephan 40f2558a70 Cleanup 2018-05-17 13:03:37 +02:00
Stephan f44c5ad757 Cleanup nuget, bindings, build 2018-05-17 12:17:42 +02:00
Maarten Kieft 8e7630cd9c Make Base AnchestorOrSelf function public
By making this function public, developers can use it to iterate over the tree on different property / function than the ones which are created. It makes umbraco easier to extend. Now we have to copy existing code in order to do this.
2018-05-17 12:09:15 +02:00
Shannon 1cf63bd471 missing checkin of package-lock 2018-05-17 11:29:21 +02:00
Shannon 07a263b794 Fixes validation check for variant nodes that don't have names assigned 2018-05-17 10:28:38 +02:00
Claus c2236b7b97 Merge pull request #2632 from umbraco/temp-U4-11218
Merge infinite editing UI branch to temp8
2018-05-17 09:16:01 +02:00
Claus 9e3db051c9 Merge remote-tracking branch 'origin/temp8' into temp-U4-11218
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/insertmacro.html
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/linkpicker.html
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/mediapicker.html
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/rteembed.html
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/googlemaps/googlemaps.html
#	src/Umbraco.Web.UI/web.Template.config
2018-05-17 08:26:02 +02:00
Claus 70d1bed396 Merge branch 'temp8' into temp-U4-11218 2018-05-17 08:16:17 +02:00
Stephan a6ea270d93 Cleanup build 2018-05-16 21:52:40 +02:00
Stephan a39a9b7a89 Cleanup nuspec 2018-05-16 16:02:51 +02:00
Stephan 8c815cf47e Git-ignore local directory 2018-05-16 15:54:08 +02:00
Stephan 2b7966dc55 Depend on Umbraco.SqlServerCE, package in net47 2018-05-16 15:54:07 +02:00
Stephan fe1a4f7d4f Depend on Umbraco.SqlServerCE 2018-05-16 15:54:07 +02:00
Stephan 9b17468c43 Cleanup solution 2018-05-16 15:53:22 +02:00
Stephan 6bedc1020b Cleanup solution and build wip 2018-05-16 15:46:51 +02:00
Stephan fc56126820 Cleanup Solution 2018-05-16 15:46:51 +02:00
Shannon c6fa0e560a Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-05-16 15:21:35 +02:00
Shannon 34de58e0dc adjust assembly redirects 2018-05-16 15:21:23 +02:00
Shannon Deminick 056bcaff96 adds notes on what to work on 2018-05-16 13:51:59 +02:00
Shannon Deminick 8985d514ec cross link to v8 branch 2018-05-16 13:36:57 +02:00
Shannon Deminick f38df3753c Adds quick start v8 link 2018-05-16 13:35:52 +02:00
Shannon Deminick 7fd78aaf2e adds link to quick start guide 2018-05-16 13:29:38 +02:00
Shannon Deminick 9bba6f4b9b adding get started guide for v8 2018-05-16 13:21:29 +02:00
Shannon Deminick 5128c23413 cross link to v7 branch 2018-05-16 12:57:13 +02:00
Shannon Deminick 3c82315782 cross link to the v8 branch 2018-05-16 12:56:00 +02:00
Shannon b565b8be77 disables redirect tracking for now until we fix it to work with variants 2018-05-16 11:25:57 +02:00
Shannon Deminick 2e2e76c92a Merge pull request #2624 from umbraco/temp-U4-11327
fixes: U4-11327 Remove styles for umb-era-button and use umb-button c…
2018-05-16 18:51:12 +10:00
Shannon 1bc3fdd07c Fixes package tree references 2018-05-16 10:49:43 +02:00
Shannon c1e0b86554 Merge branch 'temp8' into temp-U4-11327 2018-05-16 10:39:51 +02:00
Shannon bf7591aaa0 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-05-16 10:33:57 +02:00
Shannon 6c5abf14bd Removes legacy dialog client files 2018-05-16 10:33:46 +02:00
Claus 8044ccbf27 adding missing null check after navigating to parent. 2018-05-16 10:17:38 +02:00
Shannon 95c6de5534 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-05-16 10:15:57 +02:00
Stephan 2c124e87dd Merge pull request #2630 from umbraco/temp8-dependency-fixing
Temp8 dependency fixing
2018-05-16 10:15:45 +02:00
Shannon c655873b7d Cleanup canvas designer files, no more dotless dependency, cleans up preview, removes bloat 2018-05-16 10:13:55 +02:00
Shannon ea6c466323 Fixes up some warnings 2018-05-16 10:06:51 +02:00
MADSRASMUSSB4A1\madsrasmussen 6e647d87fa Merge branch 'temp8' into temp-U4-11218
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/controllers/main.controller.js
#	src/Umbraco.Web.UI/umbraco/Views/Default.cshtml
2018-05-16 09:51:26 +02:00
Poornima Nayar deaf26109b check for recursive value 2018-05-15 19:33:36 +01:00
Shannon 07e7068c22 removed too many assembly bindings 2018-05-15 18:07:48 +02:00
Shannon 971114e0fd Updates to 472 and re-targets to the original System.Threading.Tasks.Dataflow package against netstandard 1.3 but with 472 this completely fixes dependency outputs 2018-05-15 17:17:05 +02:00
Shannon 03977c4806 removed too much 2018-05-15 17:13:24 +02:00
Shannon 842d5049b5 Fixing dependencies so we aren't relying so much on netstandard 1.3 libs which require system runtime facade's 2018-05-15 17:02:06 +02:00
Sebastiaan Janssen 58751577c6 Merge pull request #2622 from DanDiplo/temp-U4-11313
u4 11313 - ContainsAny() method in StringExtensions doesn't honour the StringComparison parameter
2018-05-15 13:07:21 +02:00
Sebastiaan Janssen debe0d811c Merge pull request #2628 from ragivi/patch-1
Update preview page
2018-05-15 13:00:57 +02:00
Sebastiaan Janssen 8d09243473 Merge pull request #2626 from DanDiplo/temp-U4-10706
U4-10706 - Fixes TypedMedia not working with UDI strings
2018-05-15 12:44:46 +02:00
Shannon Deminick e4d1415627 Merge pull request #2621 from umbraco/temp8-U4-11282
U4-11282 - Publishing, unpublishing, saving drafts, for variant, non variant content types and property types
2018-05-15 20:29:10 +10:00
Robert 5cd80daa3f Child nodes of a list view should now render when set as a start node 2018-05-15 11:21:37 +02:00
ragivi 2b4cf7d185 Update preview page
In order to avoid indexing.
2018-05-14 14:48:01 +02:00
efabioli 9040b1a3cb NullReferenceException
Retrieving ExternalSignInAutoLinkOptions only if authType is not null.  
Issue found in version 7.9 too; not checked other versions.
2018-05-11 16:27:43 +02:00
Dan Booth 9a8f71dd81 Fixed issue where TypedMedia didn't work with UDI strings 2018-05-11 14:53:03 +01:00
Poornima Nayar d05819e125 Fixed typos in tours 2018-05-11 12:23:51 +01:00
Mads Rasmussen 5dad26cb92 fixes: U4-11327 Remove styles for umb-era-button and use umb-button component instead 2018-05-11 11:59:32 +02:00
Mads Rasmussen 491ce00c17 remove console.log from unit test 2018-05-11 10:36:36 +02:00
Mads Rasmussen b7c7e8e84b make right side overlays go all the way to the top 2018-05-11 10:11:26 +02:00
Mads Rasmussen 095704d297 removing unnecessary print of number of open overlays 2018-05-11 10:05:57 +02:00
Shannon 09d03161ce fixes test 2018-05-11 00:09:31 +10:00
Dan Booth 9c65ed92f1 Added string ContainsAny tests for the ContainsAny(haystack, needles, comparison) extension method 2018-05-10 14:29:00 +01:00
Dan Booth 3f35eca999 Fixed ContainsAny method so that it uses the passed in Comparison method (which enabled case-insensitive comparisons to work) 2018-05-10 14:28:16 +01:00
Shannon aa4dc64a57 Fixes ContentCache.GetRouteByIdInternal to ensure that no route is returned for any variant in the path of an unpublished variant of the same culture 2018-05-10 23:07:33 +10:00
Shannon d78fa85307 null check fix 2018-05-10 22:40:32 +10:00
Shannon 0ee056aafc null check fix 2018-05-10 22:38:10 +10:00
Shannon 68f0a64136 Fixes auth with AllowsCultureVariation and LanguageController post methods, fixes merge issues with navigation.controller 2018-05-10 19:16:46 +10:00
Warren Buckley f9f108ef33 Merge pull request #2620 from umbraco/temp-U4-11309
Temp u4 11309
2018-05-10 10:00:17 +01:00
Shannon 573b8a0701 Merge remote-tracking branch 'origin/temp8' into temp8-U4-11282
# Conflicts:
#	src/Umbraco.Tests/Routing/DomainsAndCulturesTests.cs
#	src/Umbraco.Web.UI.Client/src/controllers/navigation.controller.js
2018-05-10 18:55:39 +10:00
Shannon 4ce6f5c3b0 Fixes how the name is ensured on the content tree so that the media tree doesn't break. 2018-05-10 18:20:33 +10:00
Shannon f2b78c06ef FIxes issue where an invariant property type was being validated with a culture when that would always fail. Fixes issue when saving a content type to ensure that a property type is never both variant and invariant. Adds test. 2018-05-10 18:01:41 +10:00
Mads Rasmussen d27594d4af Update picked nodes which has been updated through the media picker 2018-05-09 16:19:54 +02:00
Mads Rasmussen 7239ce97aa only allow users to add and edit media if they have access to the media section 2018-05-09 11:09:26 +02:00
Mads Rasmussen 18b7581879 only parse in the media id for the infinite media editor 2018-05-09 09:46:15 +02:00
Mads Rasmussen 8535ff1d01 update media items in media picker if they are changed in the infinite media editor 2018-05-09 09:35:11 +02:00
Mads Rasmussen 4f366bbdda prepare media editor to support infinite mode 2018-05-09 09:34:11 +02:00
Mads Rasmussen 86c554e3d3 add option to prevent redirect of succesfull saves to new route 2018-05-09 09:20:23 +02:00
Mads Rasmussen d97d1c427e fixes some js errors in editor service 2018-05-09 09:18:45 +02:00
Mads Rasmussen 600979d129 Merge branch 'temp8' into temp-U4-11218 2018-05-09 08:51:34 +02:00
Shannon 8be861809a fixes filter 2018-05-09 15:52:06 +10:00
Shannon 8642a52a12 Fixes property model binding to display to show the invariant data if the property is non variant 2018-05-09 14:35:23 +10:00
Shannon d90ccbb7f0 no matter what you can always publish the current variant 2018-05-09 14:34:55 +10:00
Shannon 9c1451ecd3 Fixes LanguageRepository for deleting a lang, updates UrlProvider to have consistent method parameter order, updates UmbracoHelper to have culture params for getting URLs 2018-05-09 12:50:34 +10:00
andyneil 4a86244924 Merge pull request #1 from umbraco/dev-v7
Latest master
2018-05-08 18:28:54 +01:00
Stephan c890421f55 Fix mixed properties (wip) 2018-05-08 17:09:26 +02:00
Stephan 6d1f42c9b6 Fixes 2018-05-08 16:41:37 +02:00
Stephan b1faade9b0 Revert various changes 2018-05-08 16:41:30 +02:00
Warren Buckley 5bc229801b Merge pull request #2618 from umbraco/temp8-U4-11284-2
Removes vertical and horizontal scroll bars on content tree language …
2018-05-08 12:20:22 +01:00
Robert f3e509ad55 Removes vertical and horizontal scroll bars on content tree language picker, updates languageCreated and languageDeleted event listeners to check for variant doctypes before populating the language list 2018-05-08 12:13:42 +02:00
Warren Buckley 9e8239f05b Merge pull request #2612 from umbraco/temp8-U4-11284
Fixes - U4-11284 When you don't have any doc types that are variant, the tree language drop downs should not be there
2018-05-08 10:28:54 +01:00
Stephan 6051891280 Fixes 2018-05-08 11:06:07 +02:00
Robert 70e4ea5502 Moved authenticated flag back to "app.ready" listener 2018-05-08 10:46:09 +02:00
Robert 216aaec7f2 Removed unneeded test 2018-05-08 10:00:28 +02:00
Robert db160cdc85 Merge pull request #2617 from umbraco/temp8-U4-11306
fixes: U4-11306 Add load indicators in doc type infinite editors
2018-05-08 09:00:02 +02:00
Claus d1191c0693 temporarily removing the packages tree - known issue it's not working. 2018-05-08 08:49:09 +02:00
Claus 9ac7df82ad fixing typo in packages tree. 2018-05-08 08:46:48 +02:00
Shannon 389fb100bb 'fixes' an issue where you can get any property value back due to the incorrect cache key being used 2018-05-08 16:01:20 +10:00
Shannon 7728dfa853 Ensures that the PublishedContent culture dictionary is CultureInvariantIgnoreCase and fixes the publish dialog to allow publishing the current culture if the user has edited it 2018-05-08 13:50:39 +10:00
Shannon 177bba5e73 REmoves null checks on PropertyData since this causes exceptions when creating this object and deserializing to this object 2018-05-08 13:03:19 +10:00
Shannon ee9f150483 Removes the AdditionalData properties for EntitySlim and moves them to real properties of IDocumentEntitySlim, renames PublishedCultureInfos to not be plural 2018-05-08 12:43:07 +10:00
Shannon 85c739aed4 Merge branch 'temp8-U4-11227' into temp8-U4-11282
# Conflicts:
#	src/Umbraco.Core/Models/ContentBase.cs
#	src/Umbraco.Core/Persistence/Repositories/Implement/EntityRepository.cs
#	src/Umbraco.Tests/Services/EntityServiceTests.cs
#	src/Umbraco.Web/PublishedCache/NuCache/ContentCache.cs
#	src/Umbraco.Web/PublishedContentExtensions.cs
#	src/Umbraco.Web/Trees/ContentTreeControllerBase.cs
2018-05-08 12:31:03 +10:00
Shannon 0e19ec7495 Fixes logic for determining if a domain is published and fixes logic for getting a url name for a variant taking into account it's published status 2018-05-08 11:21:14 +10:00
Shannon 6e61450788 Merge remote-tracking branch 'origin/temp8' into temp8-U4-11282 2018-05-08 10:36:53 +10:00
Mads Rasmussen 736190f93c rename class on dropdown property editor 2018-05-07 21:40:27 +02:00
Mads Rasmussen 02f95053b8 fixes: U4-11306 Add load indicators in doc type infinite editors 2018-05-07 21:14:35 +02:00
Stephan 3f73452bc7 Various fixes, and U4-11287 2018-05-07 18:51:18 +02:00
Stephan 5247a9d143 Merge branch temp8 into temp8-U4-11227 2018-05-07 18:27:30 +02:00
Stephan 912d89cdb3 Fix DomainHelper 2018-05-07 18:24:56 +02:00
Robert 1a82f93722 Fixes email property editor pre-value 2018-05-07 17:59:43 +02:00
Shannon 8a5ca2c4b4 Fixes being able to edit invariant content 2018-05-08 01:16:32 +10:00
Shannon b1eeb5b193 Merge remote-tracking branch 'origin/temp8' into temp8-U4-11282 2018-05-08 00:39:12 +10:00
Shannon 97cb752cda Ensures the whole doc gets unpublished if a mandatory culture is unpublished, updates content service Unpublish to have it's own status result enum since that is needed. 2018-05-08 00:37:41 +10:00
Shannon 5a991c9424 Fixes Publishing/Unpublishing variants and it's nuances 2018-05-07 23:22:52 +10:00
Robert ff505531c2 Merge pull request #2614 from umbraco/temp8-U4-11283
fixes - U4-11283 Cannot save content when a doc type is variant but a property type is invariant
2018-05-07 13:18:15 +02:00
Robert 1b2a964001 Fixed localization 2018-05-07 12:08:59 +02:00
Mads Rasmussen 1d5751a1e5 Merge branch 'temp8' into temp-U4-11218
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js
#	src/Umbraco.Web.UI.Client/src/common/directives/components/umbgroupsbuilder.directive.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/contenttypeeditor/propertysettings/propertysettings.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/contenttypeeditor/propertysettings/propertysettings.html
#	src/Umbraco.Web.UI.Client/src/views/content/edit.html
2018-05-07 11:25:38 +02:00
Robert b8c5a389d2 Merge pull request #2613 from umbraco/temp8-U4-11223
Temp8 u4 11223
2018-05-07 09:58:29 +02:00
Stephan 5d37df182a Fix tests 2018-05-07 09:36:51 +02:00
Stephan d13a6f5f58 Fixes 2018-05-07 08:26:10 +02:00
Stephan aa35b28349 Cleanup 2018-05-07 08:25:09 +02:00
Stephan 6104dcafd5 Merge branch 'temp8' into temp8-U4-11227 2018-05-07 08:21:58 +02:00
Stephan 71ed99f080 Fix some tests 2018-05-05 10:46:52 +02:00
Stephan bb0f6fe0e3 Cleanup benchmarks SqlCE nuget dependency 2018-05-05 10:02:04 +02:00
Stephan 73b5694aad Fix web.config transform 2018-05-04 18:35:01 +02:00
Mads Rasmussen 63d7768653 add bg box to code editors 2018-05-04 18:32:35 +02:00
Mads Rasmussen ed0886b040 add bg box to user details sidebar 2018-05-04 18:21:58 +02:00
Mads Rasmussen 9474c78de8 add bg boxes to content type editors 2018-05-04 18:21:04 +02:00
Stephan 8388eca503 Fix agressive cleanup 2018-05-04 15:00:10 +02:00
Robert cc7febcc6d Allows variant content item to save while having a invariant property, also fixes not being able to save invariant content item with invariant property 2018-05-04 13:51:35 +02:00
Robert c5de31cce3 Invariant property value should persist trough all variants of a content item 2018-05-04 13:44:04 +02:00
Robert 48c70604a9 Added localization for "Ready to publish?" publish overlay, added previously removed property which was still in use. 2018-05-04 13:42:33 +02:00
Mads Rasmussen 650441b1f6 don't add shadow to the default editor 2018-05-04 11:25:19 +02:00
Sebastiaan Janssen 324cd7e98f Adds a quick start to setup a gulp environment - when you have NPM in the path the pre-requisites get taken care of 2018-05-04 10:33:35 +02:00
Shannon 7a92691bf5 ok the routing is working, for realz this time 2018-05-04 16:07:05 +10:00
Shannon 506365b8ff OK, finally got the query string problem resolved 2018-05-04 13:17:56 +10:00
Mads Rasmussen a5bbf3d832 add will-change css property to prepare browser for the animations 2018-05-03 20:04:34 +02:00
Mads Rasmussen 101d92ca2d speed up animation 2018-05-03 20:03:05 +02:00
Shannon 912711bfa0 Fixing tree, navs, initializing, sequence of events, oh my. The init logic is much more stable but we have issues with tracking the mculture query string 2018-05-04 00:58:18 +10:00
Mads Rasmussen 677bf71a94 make icon picker as infinite editor 2018-05-03 16:11:32 +02:00
Stephan b35d28c568 Merge branch temp8 into temp8-U4-11227 2018-05-03 15:12:42 +02:00
Stephan 3495331005 Cleanup, get rid of warnings 2018-05-03 15:11:57 +02:00
Stephan bcf46eceb6 Cleanup, get rid of warnings 2018-05-03 15:11:52 +02:00
Stephan d04a573888 Refactor some locks, get rid of warnings 2018-05-03 15:11:41 +02:00
Stephan 41144bb7f7 Fix references and build 2018-05-03 15:11:33 +02:00
Stephan 5798d8e57b Enable src/preserve.belle to stop rebuilding Belle all the time 2018-05-03 15:11:25 +02:00
Mads Rasmussen e2478e5cd4 move new editors to infinite editor folder 2018-05-03 14:43:22 +02:00
Mads Rasmussen c4027898cb fix validation in property settings dialog 2018-05-03 14:21:43 +02:00
Mads Rasmussen 2704111497 move indent value to a variable 2018-05-03 13:44:07 +02:00
Robert 8a9caad23d Small fix to editors that had no config values defined. 2018-05-03 13:14:19 +02:00
Mads Rasmussen 1fc0b32fc2 submit property settings editor on enter 2018-05-03 10:55:27 +02:00
Mads Rasmussen 11a4040da7 remove unused umb-overlay component 2018-05-03 10:54:51 +02:00
Robert b5ec775833 Removed duplicate code and fixed bug where dropdown would not go away when there were no document types that allowed variations 2018-05-03 10:35:23 +02:00
Mads Rasmussen 329f90922c remove old content type overlays 2018-05-03 10:30:06 +02:00
Mads Rasmussen 4eca4ac291 use infinite editing in content type editors instead of overlays 2018-05-03 10:19:14 +02:00
Robert f447294c0b Adds new end point that returns true/false if current document types allows variations, display language dropdown if current content types allow variations. 2018-05-03 10:18:08 +02:00
Shannon 46c7290e4f Fixes JS tests 2018-05-03 15:16:23 +10:00
Shannon c33bdf1f27 Revert "Reverts change from merge in U4-11289 aka PR#2608 from Shan - that causes the Karma unit JS tests to fail - not sure why the chained version fails though & thus the Powershell ZIP & Nuget build output script"
This reverts commit 2246e5bc2f.
2018-05-03 14:40:56 +10:00
Stephan a545c3c333 Fix 2018-05-02 18:15:22 +02:00
Stephan aaa1ac0700 Merge branch temp8 into temp8-U4-11227 2018-05-02 17:50:58 +02:00
Stephan 93adda2e4a Cleanup 2018-05-02 17:44:14 +02:00
Stephan 5c96b32c64 Fix tests 2018-05-02 16:23:58 +02:00
Warren 2246e5bc2f Reverts change from merge in U4-11289 aka PR#2608 from Shan - that causes the Karma unit JS tests to fail - not sure why the chained version fails though & thus the Powershell ZIP & Nuget build output script 2018-05-02 14:03:00 +01:00
Stephan a5f1ad6da1 Merge branch temp8 into temp8-U4-11227 2018-05-02 13:43:12 +02:00
Stephan d56af5872d Implement basic fallback plumbing (in progress) 2018-05-02 13:38:45 +02:00
Sebastiaan Janssen a4cc67f732 Make NuGet package install work 2018-05-02 12:35:10 +02:00
Robert 64d467e071 Merge pull request #2608 from umbraco/temp8-U4-11289
U4-11289 Tracking the currently selected language in the main tree
2018-05-02 12:10:02 +02:00
Warren Buckley 394e7f3d6d Merge pull request #2609 from umbraco/temp8-U4-11173
Fixes - U4-11173 Update the publish dialog list to only show languages that have pending changes
2018-05-02 09:39:08 +01:00
Stephan 211267d500 Deal with FIXMEs 2018-05-02 09:31:30 +02:00
Stephan a695b8aed5 Test host-less domains 2018-05-02 08:55:21 +02:00
Shannon 6fe9c4d4df Fixes the null PublishName problem, ensures the quey strings are not replaced when selecting a doc type 2018-05-02 15:35:26 +10:00
Shannon 9843f3a5fd Ensures that domains assigned to non-published nodes are filtered when routing, ensures caches are cleared when content is deleted or langauges are changed, updates logic for dealing with null invariant content names, adds more validation for saving cultre variants. 2018-05-02 14:52:00 +10:00
Shannon efc56c015f Merge remote-tracking branch 'origin/temp8' into temp8-U4-11289 2018-05-02 13:22:32 +10:00
Shannon Deminick 638b6e9cdc Merge pull request #2607 from umbraco/temp8-U4-11291
U4-11291 Paging in the IContentService needs to work with variant data - for both names and property values
2018-05-02 13:22:07 +10:00
Shannon fb759e3923 Merge remote-tracking branch 'origin/temp8' into temp8-U4-11289 2018-05-02 13:11:19 +10:00
Mads Rasmussen c308b081a1 start on docs for editorService 2018-05-01 20:21:48 +02:00
Mads Rasmussen 6c77313a82 remove background color on modal footer 2018-05-01 17:12:40 +02:00
Mads Rasmussen 7c42d29eb0 remove margin on actions 2018-05-01 17:11:54 +02:00
Robert 106955f6c3 Adds localization keys for some text, removed duplicate loading indicator 2018-05-01 16:41:36 +02:00
Simon Dingley fcefae078e Merge branch 'dev-v7' into issues/U4-11296 2018-05-01 14:45:06 +01:00
Mads Rasmussen e3754fb62f remove indentation code from the editorService 2018-05-01 15:33:14 +02:00
Mads Rasmussen db2d75c3f5 temp remove animations 2018-05-01 15:31:03 +02:00
Simon Dingley 0a45f8f51c Fixes U4-11296 allowing nulls to be stored in the comment column of the umbracoConsent table 2018-05-01 13:59:46 +01:00
Robert adfc8769e6 Adding missing service injection which broke discard changes dialog 2018-05-01 13:16:13 +02:00
Stephan 6548154261 Fixes 2018-05-01 12:45:07 +02:00
Robert 630212f66f remove console log 2018-05-01 12:06:43 +02:00
Robert a4b5e08a73 Simplified the way we mark variants as drafts trough localization keys, show published languages in the overlay instead of hiding them 2018-05-01 12:03:34 +02:00
Shannon be4ea93d12 U4-11289 Tracking the currently selected language in the main tree 2018-05-01 18:17:07 +10:00
Warren 8f11edc17a Fix up csproj to remove reference to file that's been removed in cleanup - umbraco/developer/packages/installer.aspx 2018-05-01 09:12:07 +01:00
Robert fc860d5061 Merge branch 'temp8' into temp8-U4-11173 2018-05-01 08:27:45 +02:00
Robert 03c574a97c Merge pull request #2605 from umbraco/temp8-U4-11290
U4-11290 - Disables Open in List View link from variant/language switcher in node name
2018-05-01 08:11:54 +02:00
Shannon f407c3b2b3 Updates test to test for variant doc type with invariant property types 2018-05-01 13:43:27 +10:00
Shannon 39f9449dc7 Adds overloads for content ctors to pass in culture so we can more easily set the name in the API nicely, adds a unit test for paging queries with variant data. 2018-05-01 13:30:25 +10:00
Shannon 171a82e233 Adds more description to CustomRouteUrlProvider 2018-05-01 12:23:09 +10:00
Shannon 459479a7b8 Refactors how macros are stored in the DB 2018-05-01 12:12:26 +10:00
Shannon 1bdf064437 Removes the DistributedCall section along with CacheRefresher and the ConfigServerRegistrar, changes IServerMessenger to not have any servers parameters since we don't use that. 2018-05-01 10:39:04 +10:00
James Coxhead f1521ad752 Added filtering to Nested Content add doctype overlay 2018-04-30 22:01:48 +01:00
Stephan 92b9184706 Swap order of IContentBase.SetName parameters 2018-04-30 22:05:07 +02:00
Stephan ff7c74ec8a Rename accessors 2018-04-30 21:29:49 +02:00
Stephan dbf310caf1 Now use empty string for invariant in published 2018-04-30 21:03:43 +02:00
Shannon 2afd257838 more cleanup of unused files 2018-05-01 01:55:40 +10:00
Shannon 19edfdb2a4 Removes unused and obsoleted code 2018-05-01 01:30:36 +10:00
Shannon 6faa2ff177 Removes unused and obsoleted code 2018-05-01 01:27:25 +10:00
Shannon c8d2ea141b Removes more xslt, more very old code and configurations that aren't used anymore 2018-05-01 01:15:43 +10:00
Shannon 310a31b03e More xslt removal and other file cleanup 2018-05-01 01:01:24 +10:00
Shannon 0a18306d40 More xslt removal 2018-05-01 00:45:05 +10:00
Shannon 0a5db8f97b Fixes up macros and file trees 2018-05-01 00:35:49 +10:00
Robert a4b24bf198 Content language picker now contains (if needed) Draft state to be consistent with the Publish dialog 2018-04-30 16:23:32 +02:00
Robert 92d88d5a4c Publish dialog should show only variants in Draft state 2018-04-30 16:18:35 +02:00
Shannon 6db5ebf6f9 More xslt removal 2018-05-01 00:15:05 +10:00
Robert a7f9628b48 Updated ContentItemDisplay model to contain IsEdited property 2018-04-30 16:06:53 +02:00
Shannon 9a2797303b cleaning up files 2018-04-30 23:30:08 +10:00
Shannon 51d608125d updates editor config file with vs specific rules 2018-04-30 23:29:44 +10:00
Shannon 890b5f30a1 Merge remote-tracking branch 'origin/dev-v7' into temp8
# Conflicts:
#	src/Umbraco.Core/Configuration/UmbracoSettings/IRepositoriesSection.cs
#	src/Umbraco.Core/Configuration/UmbracoSettings/IRepository.cs
#	src/Umbraco.Core/Configuration/UmbracoSettings/RepositoriesCollection.cs
#	src/Umbraco.Core/Configuration/UmbracoSettings/RepositoriesElement.cs
#	src/Umbraco.Core/Configuration/UmbracoSettings/RepositoryConfigExtensions.cs
#	src/Umbraco.Core/Configuration/UmbracoSettings/RepositoryElement.cs
#	src/Umbraco.Core/Configuration/UmbracoSettings/UmbracoSettingsSection.cs
#	src/Umbraco.Core/Services/PackagingService.cs
#	src/Umbraco.Tests/Configurations/UmbracoSettings/PackageRepositoriesElementDefaultTests.cs
#	src/Umbraco.Tests/Configurations/UmbracoSettings/PackageRepositoriesElementTests.cs
#	src/Umbraco.Tests/Plugins/PluginManagerTests.cs
#	src/Umbraco.Web.UI.Client/lib/umbraco/Extensions.js
#	src/Umbraco.Web.UI/config/umbracoSettings.config
#	src/Umbraco.Web.UI/umbraco/developer/Packages/installer.aspx
#	src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackager.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackages.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/installer.aspx.cs
#	src/umbraco.cms/umbraco.cms.csproj
2018-04-30 23:25:07 +10:00
Stephan 038fc87a40 Cleanup, fix tests 2018-04-30 15:11:01 +02:00
Warren 954098eb7e Comments out & leaves comment about removing the open in split view link (otherwise we will forget) 2018-04-30 13:52:05 +01:00
Niels Hartvig 51061fe4ba Makes container a list view by default and tries to match icons automatically 2018-04-30 10:04:17 +02:00
Stephan bcd0c95ec1 Refactor getting urls 2018-04-30 09:14:14 +02:00
Stephan 7dd1efb29f Refactor content culture & variations 2018-04-30 09:14:14 +02:00
Stephan 6959e595f5 IPublishedContent.UrlSegment 2018-04-30 09:14:14 +02:00
Stephan ce8775b3e7 Cleanup IPublishedContent 2018-04-30 09:14:13 +02:00
Niels Hartvig 9ffca1bcab Implements doc type collections 2018-04-30 09:13:34 +02:00
Stephan 27390afe86 All tests green 2018-04-30 09:13:21 +02:00
Stephan 923fdf9199 ISystemDefaultCultureAccessor 2018-04-30 09:13:21 +02:00
Stephan 908589277a U4-11227 - default variations and fallback (wip) 2018-04-30 09:13:21 +02:00
Stephan 8873fa9dd4 Merge pull request #2600 from umbraco/temp8-U4-11220
U4-11220 Implement routing for variants
2018-04-30 09:04:33 +02:00
Shannon a26d7747b6 removes commented out code 2018-04-30 15:51:05 +10:00
Shannon 1a99d0e4d0 Merge remote-tracking branch 'origin/patch-v7' into dev-v7 2018-04-30 15:27:27 +10:00
Shannon Deminick da0fe5e5a3 Merge pull request #2602 from ProNotion/issues/U4-8516
Fixes U4-8516 Copied node now sets the current user as the creator of the new node.
2018-04-30 15:25:07 +10:00
mvanhelmont b492641633 U4-11275
This is a simple fix for U4-11275 so that packages also can set routePath to something like a overview page. Like the new user section when you don't want to display children. Is a copy of /:section/:tree/:method/:id
2018-04-29 08:48:49 +02:00
Stephan 8f13fa3ae5 ISystemDefaultCultureProvider 2018-04-27 18:21:06 +02:00
Stephan aa46e1e282 Test nullref on NPocoSqlExtensions 2018-04-27 17:54:49 +02:00
Stephan dbf1b1e0d4 Refactor DomainHelper 2018-04-27 17:54:49 +02:00
Stephan 9407f75522 Fix importing test 2018-04-27 17:54:40 +02:00
Simon Dingley dbad0d261e Fixes U4-8516 Copied node now sets the current user as the creator of the new node. 2018-04-27 16:18:25 +01:00
Shannon 5b555d35d3 adds test 2018-04-27 15:35:11 +10:00
Shannon f6984438a0 Fixes cases where there are no domains assigned, ensures there can't be duplicate URLs returned to the UI 2018-04-27 15:26:50 +10:00
Shannon 335cf65663 fixes more of my test logic 2018-04-27 14:01:29 +10:00
Shannon c19dbeda23 Adds a couple of tests which yielded some other issues with getting urls by culture, those are now fixed 2018-04-27 13:27:15 +10:00
Shannon 73567ffdce Fixes IPublishedShapshot and friends 2018-04-27 11:38:50 +10:00
Shannon ad6a745681 Changes CultureInfo to string where required, fixes tests 2018-04-27 11:08:20 +10:00
Shannon 59b6665ff3 Removes NiceUrl methods, renames NiceUrl test cases 2018-04-27 10:57:51 +10:00
Shannon 3cdc0e1142 Removes IShortStringHelper.ReplaceMany, this should just be a normal string extension and removes the need to load in IUmbracoSettings for this simple purpose, this fixes some unit tests 2018-04-27 10:26:32 +10:00
Shannon 270f3a75ff Fixes more tests 2018-04-27 09:57:04 +10:00
Shannon 12d56cd201 fixes null check which fixes a whole lot of failing tests 2018-04-26 23:48:07 +10:00
Shannon cb3cba5b05 Updates DefaultUrlProvider so that hieararchy of nodes that are variant and invariant still generate URLs correctly 2018-04-26 23:34:06 +10:00
Shannon ffd85b4e94 Fixes more bugs and outbound routing for additional urls 2018-04-26 22:54:36 +10:00
Shannon 23c40cbf2c Fixes a couple issues, changes name from PublishValues to TryPublishValues 2018-04-26 21:37:29 +10:00
Shannon e99c519032 Merge remote-tracking branch 'origin/temp8' into temp8-U4-11220
# Conflicts:
#	src/Umbraco.Web/PublishedCache/NuCache/DataSource/BTree.cs
2018-04-26 19:18:14 +10:00
Shannon Deminick c435597d7e Merge pull request #2599 from umbraco/temp8-U4-11250
Refine Variants [U4-11250]
2018-04-26 16:32:17 +10:00
Mads Rasmussen c71d00cd7e wip closing editors 2018-04-25 17:55:27 +02:00
Stephan 40f94d23d4 Cleanup 2018-04-25 17:39:02 +02:00
Stephan f3bf5d86d2 Cleanup BTree 2018-04-25 17:39:02 +02:00
Stephan 16aac382d1 Merge branch 'temp8' into temp8-U4-11220 2018-04-25 17:38:36 +02:00
Mads Rasmussen ef3b3326fc always take up all available space when editor is not the last opened one 2018-04-25 14:44:20 +02:00
Mads Rasmussen 79f303ddcf wip animation experiments 2018-04-25 10:29:18 +02:00
Stephan 87f9e8c72e Merge branch temp8 into temp8-U4-11250 2018-04-24 19:21:12 +02:00
Stephan aba5e849c1 Fix tests 2018-04-24 18:56:03 +02:00
Stephan ef2fd52482 Cleanup 2018-04-24 17:59:26 +02:00
Stephan 7b82208677 Implement getting avail/edit/publish cultures 2018-04-24 17:43:08 +02:00
Stephan 23333710f5 Implement culture available/edited 2018-04-24 16:50:13 +02:00
Shannon 2e38f7b27b Fixes PublishedContent.cs when the property index doesn't contain the alias index (due to adding a new property type and the json not matchin) 2018-04-24 17:28:57 +10:00
Shannon c5ca61f249 Fixes PublishedContent.cs when the property index doesn't contain the alias index (due to adding a new property type and the json not matchin) 2018-04-24 17:15:35 +10:00
Shannon 6db75d4226 Fixes PublishedContent.cs when the property index doesn't contain the alias index (due to adding a new property type and the json not matchin) 2018-04-24 17:11:09 +10:00
Shannon 43ca9593d4 fixes AliasUrlProvider 2018-04-24 16:29:55 +10:00
Shannon a1cd80a0f6 Removes GetLanguageByCultureCode since it is kind of useless and the name is also very misleading 2018-04-24 15:59:16 +10:00
Shannon f49fa7b567 don't show the variation toggle on a property type if the content type doesn't have it enabled, ensure the default variation is set on a new property type based on the content type setting 2018-04-24 15:41:50 +10:00
Shannon d552d5dadb Updates UI and mapping to update a property type to allow being culture variant 2018-04-24 15:27:33 +10:00
Shannon de2784c281 Adds culture optional parameters to all GetUrl methods on UrlProvider 2018-04-24 14:51:27 +10:00
Shannon 7c05f2e86c fixes routing cache key 2018-04-24 14:39:52 +10:00
Shannon e9bfad3c09 Merge remote-tracking branch 'origin/temp8' into temp8-U4-11220 2018-04-24 13:18:34 +10:00
Shannon 9044c9328d Gets inbound routing working, reduces the amount of non injected dependencies, reduces the amount of DomainHelper instances 2018-04-24 13:07:18 +10:00
Shannon 48641166b9 WIP - gets 'inbound' routing working to generate culture specific URLs 2018-04-24 01:31:01 +10:00
Stephan 6dfb618efe Merge branch 'temp8' into HEAD 2018-04-23 12:57:12 +02:00
Mads Rasmussen 7e383ea961 fix issue with infinite mode and create route param in media editor 2018-04-23 11:13:01 +02:00
Robert 5e14af7d38 Merge pull request #2598 from umbraco/temp8-U4-11219
U4-11219 Wire up new APIs for Variant names
2018-04-23 11:09:18 +02:00
Mads Rasmussen 312b2ff435 Merge branch 'dev-v8' into temp-U4-11218 2018-04-23 09:43:22 +02:00
Stephan 6b9adfa929 Move IsCultureAvailable to IContentBase 2018-04-21 11:11:31 +02:00
Stephan a69019aea0 From int languageId to string culture 2018-04-21 09:57:28 +02:00
Sebastiaan Janssen d30ec335b8 Merge branch 'patch-v7' into dev-v7 2018-04-20 11:05:46 +02:00
Sebastiaan Janssen e820d2a4aa Merge branch 'patch-7.9.6' into dev-v7 2018-04-20 11:05:37 +02:00
Sebastiaan Janssen 5aa490cbff Merge branch 'patch-7.8.3' into dev-v7 2018-04-20 11:04:51 +02:00
Sebastiaan Janssen f1a8da2876 Bumps version to 7.9.6 2018-04-20 11:02:29 +02:00
Sebastiaan Janssen 27f6560a00 U4-11253 New Chrome 66 trimStart function is overriding the Umbraco Core trimStart polyfill 2018-04-20 11:00:49 +02:00
Sebastiaan Janssen 7a181bd281 Bump version to 7.8.3 2018-04-20 10:59:13 +02:00
Sebastiaan Janssen 4a0cd87a38 U4-11253 New Chrome 66 trimStart function is overriding the Umbraco Core trimStart polyfill 2018-04-20 10:51:28 +02:00
Sebastiaan Janssen 861e5908a7 U4-11253 New Chrome 66 trimStart function is overriding the Umbraco Core trimStart polyfill 2018-04-20 10:35:21 +02:00
Claus ae5a5bd2c0 Merge pull request #2596 from umbraco/temp-U4-11146
Removes Package repository config setting and related unnecessary code
2018-04-20 10:23:16 +02:00
Shannon 7d349ef518 Replaces instances of UmbracoTemplatePage with UmbracoViewPage 2018-04-20 17:40:01 +10:00
Robert 395575dbe4 Merge pull request #2597 from umbraco/temp-U4-11253
U4-11253 New Chrome 66 trimStart function is overriding the Umbraco C…
2018-04-20 09:39:15 +02:00
Shannon 5dfa0e7446 Updates EntityRepository to support normal get operations adds another unit tests, adds notes. 2018-04-20 16:07:34 +10:00
Shannon 9325d30e7c adds some notes to the setVariantStatusColor 2018-04-20 13:44:20 +10:00
Shannon d99beb0c8b Gets the tree to display the culture specific name 2018-04-20 13:26:45 +10:00
Shannon e9f0e98d2c Updates EntityRepository to get the variant names for content items ... for the non-paged query which we can use in the tree 2018-04-20 13:12:55 +10:00
Sebastiaan Janssen 6d6be4e6a4 Fixes last failing test 2018-04-19 20:29:46 +02:00
Sebastiaan Janssen fbc9c6aed6 Fixes even more (hopefully all) unit tests 2018-04-19 20:06:34 +02:00
Sebastiaan Janssen 386dc1a14d U4-11253 New Chrome 66 trimStart function is overriding the Umbraco Core trimStart polyfill 2018-04-19 19:54:53 +02:00
Sebastiaan Janssen 8fc33f6aea Fix unit tests 2018-04-19 19:36:44 +02:00
Sebastiaan Janssen 6c8e39876f These changes shouldn't have been checked in 2018-04-19 19:36:32 +02:00
Sebastiaan Janssen bfca8c555e Removes Package repository config setting and related unnecessary code 2018-04-19 19:12:42 +02:00
Shannon c84087e96b Gets the variant names working in the editor 2018-04-20 00:59:23 +10:00
Shannon d4252a3dc8 Merge branch 'dev-v8' into temp8-U4-11219 2018-04-20 00:12:31 +10:00
Shannon 6b12fe7c57 Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8
# Conflicts:
#	src/Umbraco.Web/PropertyEditors/ParameterEditors/MultipleContentPickerParameterEditor.cs
2018-04-20 00:10:44 +10:00
Shannon 04da7cfd20 doh, fixes csproj merge 2018-04-20 00:09:12 +10:00
Shannon d5ebe12983 removes ununsed aliases 2018-04-20 00:05:45 +10:00
Stephan 5d1abaa713 Import missing parameter editor from v7 merge 2018-04-19 16:03:54 +02:00
Shannon e9e0274ad8 fixes MultipleContentPickerParameterEditor 2018-04-20 00:03:19 +10:00
Shannon 966de9b9f4 Merge branch 'dev-v8' into temp8-U4-11219 2018-04-19 23:49:06 +10:00
Shannon c46d4e9e43 Merge remote-tracking branch 'origin/dev-v7' into dev-v8
# Conflicts:
#	src/SolutionInfo.cs
#	src/Umbraco.Core/Configuration/UmbracoVersion.cs
#	src/Umbraco.Core/Persistence/Migrations/MigrationRunner.cs
#	src/Umbraco.Core/Persistence/PetaPoco.cs
#	src/Umbraco.Core/Scoping/NoScope.cs
#	src/Umbraco.Core/Scoping/ScopeProvider.cs
#	src/Umbraco.Core/Services/ContentService.cs
#	src/Umbraco.Core/Services/IContentService.cs
#	src/Umbraco.Tests/Persistence/Migrations/MigrationStartupHandlerTests.cs
#	src/Umbraco.Tests/UI/LegacyDialogTests.cs
#	src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js
#	src/Umbraco.Web.UI/umbraco/config/create/UI.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/zh.xml
#	src/Umbraco.Web/BatchedDatabaseServerMessenger.cs
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/Editors/MediaTypeController.cs
#	src/Umbraco.Web/HealthCheck/Checks/Security/ClickJackingCheck.cs
#	src/Umbraco.Web/HealthCheck/Checks/Security/ExcessiveHeadersCheck.cs
#	src/Umbraco.Web/Models/Mapping/ContentModelMapper.cs
#	src/Umbraco.Web/Models/Mapping/ContentPropertyBasicConverter.cs
#	src/Umbraco.Web/Models/Mapping/ContentPropertyDisplayConverter.cs
#	src/Umbraco.Web/Models/Mapping/ContentPropertyDtoConverter.cs
#	src/Umbraco.Web/Models/Mapping/ContentPropertyModelMapper.cs
#	src/Umbraco.Web/PropertyEditors/NestedContentPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/ParameterEditors/MultipleContentPickerParameterEditor.cs
#	src/Umbraco.Web/Trees/ContentTreeControllerBase.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/create/MemberGroupTasks.cs
2018-04-19 23:41:35 +10:00
Mads Rasmussen ee853f0189 Merge branch 'dev-v8' into temp-U4-11218 2018-04-19 15:15:10 +02:00
Shannon 1d0d6e78de fixes tree again 2018-04-19 22:32:48 +10:00
Shannon 8ae27ecc27 Updates doc type editor to be able to change update the doc type to support being culture variant 2018-04-19 22:06:02 +10:00
Shannon 642ce36f59 updates when the tree does it's initialization , fixes migration 2018-04-19 21:58:59 +10:00
Shannon Deminick db5ffd6b29 Merge pull request #2594 from umbraco/temp8-U4-11128
Manage content variations [U4-11128]
2018-04-19 21:49:13 +10:00
Robert 9384cd0f27 Merge pull request #2574 from umbraco/temp-U4-11195
fixes U4-11195 Mapping complex properties slow down some queries
2018-04-19 12:22:12 +02:00
Robert 0262b4aa76 Changed ContentPropertyDto modifier back to override which rendered content with tags unable to be saved 2018-04-19 12:10:39 +02:00
Shannon 158eb18de0 Merge remote-tracking branch 'origin/dev-v8' into temp8-U4-11128 2018-04-19 18:16:49 +10:00
Mads Rasmussen 03ac073c02 Merge branch 'dev-v8' into temp-U4-11218
# Conflicts:
#	src/Umbraco.Web.UI/umbraco/Views/Default.cshtml
2018-04-19 09:59:31 +02:00
Sebastiaan Janssen 96761efe4d Merge branch 'patch-v7' into dev-v7 2018-04-19 09:55:16 +02:00
Robert 8e02aad2bb Merge pull request #2590 from umbraco/temp-U4-11177
U4-11177 Update tree nodes with the new node names based on variant/language
2018-04-19 08:35:01 +02:00
Shannon 75fb070825 U4-11246 When user belongs to groups and none of them have browse access and one or more have a custom start node applied a YSOD occurs 2018-04-19 16:20:18 +10:00
Shannon Deminick 8a0f32e980 Merge pull request #2595 from umbraco/temp-U4-11208
U4-11208 Error : "An item with the same key has already been added." into "Umbraco.Core.Services.IdkMap.Populate" method
2018-04-19 15:27:00 +10:00
Stephan a68e37c67b Fix availability and names 2018-04-18 18:43:17 +02:00
Stephan dea47dfafe Fix availability and names 2018-04-18 18:28:47 +02:00
Sebastiaan Janssen f5163ed0c2 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2018-04-18 16:05:43 +02:00
Sebastiaan Janssen 694f3d71e2 Merge branch 'patch-v7' into dev-v7 2018-04-18 16:05:15 +02:00
Stephan 5b1bdd84ee Fix availability and content name (WIP) 2018-04-18 16:04:33 +02:00
Robert 15eb40aedb Removed code that populates content tree with duplicate start nodes. 2018-04-18 16:01:01 +02:00
Sebastiaan Janssen 49251271e9 Merge pull request #2591 from umbraco/temp-U4-10995
Removed code that populates content tree with duplicate start nodes.
2018-04-18 15:59:45 +02:00
Sebastiaan Janssen cc3e75dc63 U4-11208 Error : "An item with the same key has already been added." into "Umbraco.Core.Services.IdkMap.Populate" method 2018-04-18 15:14:16 +02:00
Stephan 4f17ecbdee Fix tests 2018-04-18 14:43:13 +02:00
Stephan ec7b038569 Variant names, availability, etc 2018-04-18 14:43:07 +02:00
Stephan d4244d3807 Fix faster languages 2018-04-18 14:42:20 +02:00
Sebastiaan Janssen eeaf17c857 Weird revert of a PR that was merged in before
(cherry picked from commit 94ed741dd5)
2018-04-18 12:18:44 +02:00
Stephan 46487fa466 Variant names, availability, etc 2018-04-18 11:14:08 +02:00
Dave Woestenborghs 21a8395142 U4-11216 Multiple Content Picker allows only one item when used as macro parameter (#2593)
U4-11216 set min and max number when used as parameter editor

(cherry picked from commit f25233ac2b)
2018-04-18 10:22:09 +02:00
Dave Woestenborghs f25233ac2b U4-11216 Multiple Content Picker allows only one item when used as macro parameter (#2593)
U4-11216 set min and max number when used as parameter editor
2018-04-18 10:21:12 +02:00
Dave Woestenborghs 759e1f2e5a U4-11233 make sure when a tour step is marked as intro get's displayed centered, even if element is set 2018-04-18 08:27:03 +02:00
Shannon Deminick 415810ecfe Merge pull request #2589 from umbraco/temp-U4-11196
Fixes - U4-11196 Validation UI is not working for the content name field
2018-04-18 11:16:38 +10:00
Shannon fd3129f166 fixes TODOs 2018-04-18 09:42:30 +10:00
Stephan 58e4e2398a Variant names, availability, etc 2018-04-17 19:08:53 +02:00
Stephan 392965bb3a Faster languages 2018-04-17 19:08:44 +02:00
Sebastiaan Janssen 61cd59b237 Merge branch 'patch-v7' into dev-v7 2018-04-17 15:47:41 +02:00
Sebastiaan Janssen 7d171b1e95 Bumps version to 7.10.4 2018-04-17 15:46:39 +02:00
Sebastiaan Janssen d63061fade Merge pull request #2564 from leekelleher/U4-11184
U4-11184 - Nested Content PropertyValueEditor - return converted value, not update reference value
2018-04-17 15:33:14 +02:00
Sebastiaan Janssen 362261e879 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2018-04-17 15:16:46 +02:00
Sebastiaan Janssen af8c00d075 Merge remote-tracking branch 'origin/patch-7.10.3' into dev-v7 2018-04-17 15:16:21 +02:00
Sebastiaan Janssen 68b440e494 Merge remote-tracking branch 'origin/patch-7.9.5' into dev-v7 2018-04-17 15:15:44 +02:00
Sebastiaan Janssen 0c328ef30e Merge remote-tracking branch 'origin/patch-7.8.2' into dev-v7 2018-04-17 15:15:06 +02:00
Robert ef47e85741 Removed code that populates content tree with duplicate start nodes. 2018-04-17 15:07:59 +02:00
Stephan 26af63549f Fix vsts - wip 2018-04-17 10:52:32 +02:00
Stephan 70e3f895da Fix vsts - wip 2018-04-17 10:11:14 +02:00
Mads Rasmussen e6a69ccb0d add feature toggle for media grid edit button 2018-04-17 09:55:31 +02:00
Shannon f80a27f5d7 adds notes 2018-04-17 17:09:58 +10:00
Shannon f3d68276fe Fixes more angular promise chaining, fixes issue with the tree node UI not updating when sycn tree is called. 2018-04-17 17:04:52 +10:00
Claus 0c191a3ef7 updating to use includeProperties, fixing modifier keywords for methods, and passing includeProperties from list views. 2018-04-17 08:36:36 +02:00
Shannon 2872d0b0a2 Fixes tree init logic when user isn't logged in, moves sequential promise chaining to a helper funciton, updates the route promise chaining to actual chain. 2018-04-17 14:43:17 +10:00
Mads Rasmussen 97548df146 rename folder 2018-04-16 21:42:11 +02:00
Mads Rasmussen ebf3ab3a41 add helpers to open media picker and media editor 2018-04-16 21:27:07 +02:00
Stephan c97822a430 Fix vsts 2018-04-16 17:48:45 +02:00
Shannon 319bd783ff Merge remote-tracking branch 'origin/dev-v8' into temp-U4-11177 2018-04-17 01:45:32 +10:00
Shannon e234eb22f6 ensure the language tree changing is done after the digest 2018-04-17 01:41:06 +10:00
Shannon d45112f2ab Gets the content tree controller to return the names for items per language (with mock data), wires up the navigation.controller to re-build the tree for the new language 2018-04-17 01:37:35 +10:00
Stephan 6b3c6eba8d Fix csproj, nuspec 2018-04-16 17:04:23 +02:00
Shannon f7719773f2 fixes passing in the element and clicking on a root node 2018-04-17 00:38:32 +10:00
Stephan 15c6e28354 Fix nuspec 2018-04-16 16:29:37 +02:00
Shannon b5b643e04c fixes up the activeTree issue 2018-04-17 00:09:53 +10:00
Stephan dc589f9b96 Fix csproj, nuspec 2018-04-16 16:08:26 +02:00
Mads Rasmussen 7a4ff7b9c0 Merge pull request #2588 from umbraco/temp-v8-UI-infinite-editing
Temp v8 ui infinite editing
2018-04-16 15:38:33 +02:00
Mads Rasmussen d0f9021bcf Merge branch 'temp-U4-11218' into temp-v8-UI-infinite-editing 2018-04-16 15:27:29 +02:00
Shannon a92361bd00 Tree refactor, cleanup legacy support, remove odd jquery callback object, removes unused files, removes publish dialog 2018-04-16 23:07:00 +10:00
Robert f7ce8af24d Language picker is now included in the invalid field prompt (red border) so it makes sense aesthetically. 2018-04-16 14:58:54 +02:00
Shannon Deminick 9ac96f24aa Merge pull request #2587 from dawoe/temp-U4-11150
U4-11150 added culture property of tour to the docs
2018-04-16 16:48:25 +10:00
Dave Woestenborghs eca5b6e4e6 U4-11150 added culture property of tour to the docs 2018-04-16 08:35:05 +02:00
Sebastiaan Janssen 2dd7c5210f Merge pull request #2523 from tomfulton/u4-11133
U4-11133 - Fix access check for Unpublish button
2018-04-15 22:48:16 +02:00
Sebastiaan Janssen 3a854688e0 Merge branch 'dawoe-temp-U4-11150' into dev-v7 2018-04-15 22:38:22 +02:00
Sebastiaan Janssen 1594adf3ed Makes code a bit more readable and uses ToList instead of ToArray 2018-04-15 22:38:09 +02:00
Sebastiaan Janssen 23fcb38d69 Merge branch 'temp-U4-11150' of https://github.com/dawoe/Umbraco-CMS into dawoe-temp-U4-11150 2018-04-15 22:15:36 +02:00
Sebastiaan Janssen 7571949ad0 Merge pull request #2586 from bjarnef/dev-v7-U4-11215
U4-11215 - Fix icons in member create dialog
2018-04-15 22:11:24 +02:00
Bjarne Fyrstenborg d45c3520d4 Format document in media create dialog 2018-04-15 21:42:35 +02:00
Bjarne Fyrstenborg b7c04575fa Document media type resource save as in member type resource 2018-04-15 21:42:04 +02:00
Bjarne Fyrstenborg 588f5a3789 Fix some wrong descriptions 2018-04-15 21:41:23 +02:00
Bjarne Fyrstenborg b535a45898 Respect icon set on member type - by default the icon is "icon-user" 2018-04-15 21:39:46 +02:00
Bjarne Fyrstenborg e3faa05435 Lookup member type to map this name of this to the MemberListDisplay model 2018-04-15 19:03:38 +02:00
Robert aebfc33037 Class renamed in .less file to bring back UI validation for content name 2018-04-13 14:51:02 +02:00
Robert Dyson a5aa1b4db7 Allow capital letters for email address entry in RegesterModel 2018-04-13 11:18:17 +01:00
Sebastiaan Janssen 1b56c55300 Merge pull request #2522 from tomfulton/u4-7757-client2
U4-7757 - Show notifications when Unpublishing event is canceled
2018-04-13 11:53:51 +02:00
Stephan ed3e693308 Umbraco.Compat7.die.die.die 2018-04-13 11:03:35 +02:00
Warren Buckley 1c70c34d57 Merge pull request #2581 from umbraco/temp-U4-11209
fixes: U4-11209 Update layout for developer dashboards to fit new styles
2018-04-13 09:28:13 +02:00
Stephan ca00cde043 VSO build wip 2018-04-12 22:58:46 +02:00
Sebastiaan Janssen 29d9dcffb8 Manually applying PR: Three new healthchecks #1522 2018-04-12 18:38:00 +02:00
Mads Rasmussen bf78bb16dd fixes: U4-11209 Update layout for developer dashboards to fit new styles 2018-04-12 18:37:37 +02:00
Sebastiaan Janssen b0f0a7afc4 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2018-04-12 18:01:43 +02:00
Sebastiaan Janssen 30f8885aa9 Merge branch 'u4-9983' of https://github.com/AndyButland/Umbraco-CMS into AndyButland-u4-9983
# Conflicts:
#	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/zh.xml
#	src/Umbraco.Web/HealthCheck/Checks/Security/ClickJackingCheck.cs
#	src/Umbraco.Web/HealthCheck/Checks/Security/ExcessiveHeadersCheck.cs
#	src/Umbraco.Web/HealthCheck/Checks/Security/HttpsCheck.cs
2018-04-12 17:59:11 +02:00
Sebastiaan Janssen 94ed741dd5 Weird revert of a PR that was merged in before 2018-04-12 17:50:44 +02:00
Sebastiaan Janssen b6d5ac6a01 Update CONTRIBUTING.md 2018-04-12 17:20:12 +02:00
Sebastiaan Janssen 4664266b8d Bumps version to 7.10.3 2018-04-12 16:40:10 +02:00
Sebastiaan Janssen c61fd65463 Bumps version to 7.9.5 2018-04-12 16:38:22 +02:00
Sebastiaan Janssen 1e2598a3a3 Bumps version to 7.8.2 2018-04-12 16:36:41 +02:00
Sebastiaan Janssen 5003a55aca Cherry picked - Fix scope leaks caused by database messenger [U4-11207] #2580 2018-04-12 16:32:34 +02:00
Sebastiaan Janssen b5415844b8 Cherry picked - Fix scope leaks caused by database messenger [U4-11207] #2580 2018-04-12 16:30:55 +02:00
Sebastiaan Janssen 19241995e8 Cherry picked - Fix scope leaks caused by database messenger [U4-11207] #2580 2018-04-12 16:23:33 +02:00
Shannon b53400ceca Fixes up promise chains for the tree, adds logic to the tree picker to track the deepest paths expanded and then when a language is changed, we reload the tree with the new language and also sync all paths so the user can continue where they left off but with the new language nodes. 2018-04-13 00:09:28 +10:00
Bjarne Fyrstenborg 828dbaedfb Indicate that a row is clickable and highlight with background color. (#1473) 2018-04-12 15:37:01 +02:00
Sebastiaan Janssen 52701f0056 Fix unit tests that were trying to "downgrade" from version 1 to version 2 2018-04-12 15:30:25 +02:00
Claus c802171f38 Merge pull request #2580 from umbraco/temp-u4-11207
Fix scope leaks caused by database messenger [U4-11207]
2018-04-12 14:43:03 +02:00
Claus 81c5c66e15 adding readonly. 2018-04-12 14:41:55 +02:00
Sebastiaan Janssen 79515cdae7 Merge branch 'martin-blackwell-U4-8927' into dev-v7 2018-04-12 14:36:21 +02:00
Sebastiaan Janssen 99ce7c0736 Throw error when "downgrading" to a higher version, make sure to give the results back in the correct order (newest version first, oldest last). 2018-04-12 14:35:34 +02:00
Claus d9b1598fa2 use scope when writing instructions. 2018-04-12 14:26:47 +02:00
Claus c630e5ef8e only warn if there's actually anything to warn about 2018-04-12 14:26:14 +02:00
Shannon Deminick e9c8df55ec Merge pull request #2579 from umbraco/temp-U4-11179
Fixes - U4-11179 Support selecting variants in content pickers
2018-04-12 21:59:38 +10:00
Shannon f903c42d1b Gets the tree reloading when the customtreeparams change too so now the language selection will auto trigger the tree to reload ... next task we'll make it re-sycn and work. 2018-04-12 21:56:49 +10:00
Sebastiaan Janssen fe5896c85f Merge branch 'U4-8927' of https://github.com/martin-blackwell/Umbraco-CMS into martin-blackwell-U4-8927 2018-04-12 13:44:38 +02:00
Sebastiaan Janssen 28cbb0a517 Bumps version to 7.11.0 2018-04-12 13:41:56 +02:00
Sebastiaan Janssen 0597b43014 Merge branch 'patch-v7' into dev-v7 2018-04-12 13:39:09 +02:00
Sebastiaan Janssen a124d77670 Merge remote-tracking branch 'origin/patch-7.9.4' into dev-v7
# Conflicts:
#	src/SolutionInfo.cs
#	src/Umbraco.Core/Configuration/UmbracoVersion.cs
2018-04-12 13:38:53 +02:00
Shannon fddea8c815 Fixes data type pre-value issues with MNTP, removes unecessary contentpicker.html and memberpicker.html overlays since treepicker.html is all that should be used, cleans up the treepicker one to be more inline with our current angular standards. Removes uneeded event handling from treepicker 2018-04-12 21:29:36 +10:00
Stephan 1076b882fb U4-11207 - collect rogue/leaked NoScope instances 2018-04-12 11:56:56 +02:00
Stephan 4a47c5e129 U4-11207 - fix scope leaks caused by database messenger 2018-04-12 11:13:00 +02:00
Shannon 80d682c22a Merge branch 'dev-v8' into temp-U4-11179 2018-04-12 14:30:50 +10:00
Warren d8459bf4b4 Changes to build script & references etc with Stephan 2018-04-11 18:06:33 +02:00
Warren Buckley fd75a59e13 Merge pull request #2575 from umbraco/temp-U4-11174
U4-11174 - Wire up new publish dialog when editing content/variants
2018-04-11 16:39:48 +02:00
Robert 01332db0a6 "split not a function" error fix 2018-04-11 15:44:43 +02:00
Robert 905a7d4a16 Added language drop-down in the content picker dialog window 2018-04-11 13:26:03 +02:00
Robert f9dcfbbf95 Merge pull request #2577 from umbraco/temp-U4-11176
fixes: U4-11176 Language Selector for the main content tree
2018-04-11 09:35:30 +02:00
Shannon a334a9999d Merge and simplify the variants selector to use routing logic now that we have routing built in for languages, now the pending changes alert is just using the default route change 2018-04-11 09:21:12 +10:00
Shannon 5eec80b8ae fixes trashing/trashed event dispatching 2018-04-11 09:05:02 +10:00
Warren Buckley 7d947afdf0 Merge pull request #2576 from umbraco/temp-U4-11178
Fixes - U4-11178 Browse to content node as a different variant/language
2018-04-10 16:42:25 +02:00
Mads Rasmussen cc2a90a697 set max-height on language dropdown 2018-04-10 15:36:26 +02:00
Mads Rasmussen d9e433b3ea emit and listen for events when languages are created/deleted 2018-04-10 15:36:06 +02:00
Mads Rasmussen b869e095e6 don't show the dropdown if there is only one language 2018-04-10 14:34:40 +02:00
Mads Rasmussen b30f414c15 remove padding in dropdown + node language dropdown 2018-04-10 13:56:44 +02:00
Mads Rasmussen e1394a18e5 add tree language selector + load in languages 2018-04-10 13:56:14 +02:00
Robert f3e473f64d Wrong property 2018-04-10 12:08:47 +02:00
Robert aba0b0448d Can change content node variants trough routeParams (languageId) 2018-04-10 11:50:37 +02:00
Robert 8d654e3630 Ctrl + K + D 2018-04-10 11:28:05 +02:00
Mads Rasmussen 9233a9f08a fix width of getting started dashboard 2018-04-10 10:24:36 +02:00
mikkelhm 6d052aeeac Bump version to 7.9.4 2018-04-10 08:56:50 +02:00
Shannon 53dc83ca16 removes unused method 2018-04-10 13:49:09 +10:00
Shannon c17217fc10 Merge remote-tracking branch 'origin/dev-v8' into temp-U4-11174 2018-04-10 13:40:12 +10:00
Shannon Deminick bfcad4f46d Merge pull request #2558 from umbraco/temp-U4-11127
WIP - U4-11127 Update ContentController for editing variants
2018-04-10 13:39:47 +10:00
Shannon 2ee955e664 Fixes media picker property editor attribute declaration, fixes promise chaining when saving content, fixes the boolean pre-value editor to accept a 'true' boolean value 2018-04-10 13:37:54 +10:00
Shannon 3d92ce96f3 Make sure client side validation executes before the publish dialog launches, then check the validation results, if there isn't any variant validations then close the dialog. 2018-04-10 12:41:11 +10:00
Shannon 09b0d61ab8 Ensures current variant is at the top of the publish list and is selected, disable the publish button if there are none selected 2018-04-10 12:26:19 +10:00
Shannon bf296158b0 Fixes displaying the audit trail on the info tab 2018-04-10 11:23:39 +10:00
Shannon 10b777a4e0 Merge remote-tracking branch 'origin/dev-v8' into temp-U4-11174 2018-04-10 10:53:10 +10:00
Shannon a23e36ffd2 Removes angularHelper.rejectedPromise since that is built into angular already 2018-04-10 10:52:39 +10:00
Shannon 584209c38d adds elipses to the publish button when there is more than one variant 2018-04-10 10:52:07 +10:00
Shannon 8a57380db4 fixes deleting a language 2018-04-10 10:50:53 +10:00
Shannon b7570ed2e0 Cleans up unused statusMessage thing 2018-04-10 10:05:19 +10:00
Shannon 07225de5cf re-binds the variants list when there is an error 2018-04-10 02:10:14 +10:00
Shannon 59f9af6eb8 Gets publish dialog mostly working with server side validation messages wired up to the dialog 2018-04-10 01:38:35 +10:00
Claus 5380b62504 fixes U4-11195 Mapping complex properties slow down some queries 2018-04-09 15:43:17 +02:00
Warren Buckley 2675669cf8 Merge pull request #2573 from umbraco/temp-U4-11171
fixes: U4-11171 Tree panel doesn't vertically scroll
2018-04-09 15:40:03 +02:00
Mads Rasmussen dfcb93abf9 fixes: U4-11171 Tree panel doesn't vertically scroll 2018-04-09 15:00:52 +02:00
Dave Woestenborghs 9b33c8a0e2 U4-11149 fixed error when creating new xslt file (#2540)
* U4-10659 added create task back for xslt files

* Add fix to UI.Release.xml as well
2018-04-09 14:45:26 +02:00
Warren Buckley b98e7f2d3e Merge pull request #2567 from umbraco/temp-U4-10783
fixes: 
* The UI for the new bulk publish variants from Mads merged in
2018-04-09 13:27:21 +01:00
Dave Woestenborghs 07fc6753f5 U4-11149 fixed error when creating new xslt file (#2540)
* U4-10659 added create task back for xslt files

* Add fix to UI.Release.xml as well
2018-04-09 14:04:02 +02:00
Sebastiaan Janssen 967178cb92 Manually applies U4-11155 fixed error when creating member groups #2545 2018-04-09 11:43:48 +02:00
Warren Buckley fe44494936 Merge pull request #2550 from dawoe/temp-U4-11161
U4-11161 fix for adding multiple items in a single content picker
2018-04-09 11:42:18 +02:00
Shannon Deminick 793c9470c2 Manually applies merge pull request #2556 from dawoe/temp-U4-11167
U4-11167 Fixes rare syncTree error
2018-04-09 11:39:07 +02:00
Shannon e61089f927 Merge remote-tracking branch 'origin/temp-U4-10783' into temp-U4-11174 2018-04-09 17:55:20 +10:00
Damiaan cabcb08b98 Typo in the docs reference
Makes it hard to navigate the documentation :-)
2018-04-09 09:16:58 +02:00
Shannon 41d91c225f Gets validation working for trying to publish a document when there are validation problems with required languages 2018-04-09 16:59:45 +10:00
AndyButland 78121dd0f2 Re-send of invitation from user profile.
Allow delete of users that haven't logged in from user profile.
Prevent disable/enable and change password options from user profile for invited users.
2018-04-09 08:52:54 +02:00
Sebastiaan Janssen 862fdf27e4 Merge pull request #2545 from dawoe/temp-U4-11155
U4-11155 fixed error when creating member groups
2018-04-09 08:10:53 +02:00
Shannon 1660d25bad ensures that only the default variant is available when creating content 2018-04-09 15:01:55 +10:00
Shannon 0971aa0ab6 fixes null check on image cropper 2018-04-09 13:35:18 +10:00
Shannon fb74b1b75f Merge remote-tracking branch 'origin/dev-v8' into temp-U4-11127 2018-04-09 13:25:02 +10:00
Michaël Vanbrabandt 6abd778fd9 Fix wrong closing i tag and wrong title for edit button 2018-04-07 13:50:10 +02:00
Mads Rasmussen c5f27aeea5 fix language tree sync 2018-04-06 11:14:25 +02:00
Mads Rasmussen 8e0133f8af return selected variants 2018-04-06 10:37:10 +02:00
Shannon d03a8098da Merge branch 'dev-v8' into temp-U4-11127 2018-04-06 14:52:28 +10:00
Shannon c760d25479 Merge remote-tracking branch 'origin/dev-v7' into dev-v8 2018-04-06 14:52:02 +10:00
Shannon 8499c01eac Merge remote-tracking branch 'origin/patch-v7' into dev-v7 2018-04-06 14:51:14 +10:00
Shannon e10698532b Merge branch 'dev-v8' into temp-U4-11127
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/dashboard/dashboard.tabs.controller.js
2018-04-06 13:56:07 +10:00
Shannon 8b88bb68ed must always register install components 2018-04-06 13:54:42 +10:00
Shannon c90d6be8ab U4-8861 Extract GlobalSettings to an interface and expose on the standard UmbracoConfig.For settings singleton including a bunch of cleanup, getting the installer and steps to be DI 2018-04-06 13:51:54 +10:00
Mads Rasmussen 7a4f7da0d6 a little bit of clean up 2018-04-05 21:10:38 +02:00
leekelleher 639ef53c88 U4-9088 - Macro Container Property Type returned incorrect object-type
The `PropertyValueType` attribute marks this converter as returning an `IHtmlString`, but `ConvertDataToSource` returns a `string` type.
This patch corrects the return type to be a `HtmlString`.
2018-04-05 17:56:10 +01:00
leekelleher 7225ec29fe Nested Content - enabled support for property-editors:
- Umbraco.CheckBoxList
- Umbraco.DropDownMultiple
- Umbraco.MacroContainer
- Umbraco.RadioButtonList
- Umbraco.MultipleTextstring
2018-04-05 17:17:34 +01:00
leekelleher cf1069e0e1 NestedContentPropertyEditor - code tidy-up
A little tidy-up of these class method. I noticed we were calling `ToString()` twice in places,
and the `ConfigureForDisplay` prevalues are already available as a Dictionary, so there's no need for an additional `ToDictionary` allocation.
2018-04-05 17:16:34 +01:00
leekelleher 99ce88228c U4-11184 - Nested Content PropertyValueEditor - return converted value, not update reference value
ConvertDbToString

We were updating the `property.Value` reference, which was having adverse effects on the editor value.
In the majority of cases this wasn't an issue, but it did mean that any prevalue-ID-based editors (e.g. dropdown list) had problems.

I've removed the call to the base method, we don't need it - here's what it does...
https://github.com/umbraco/Umbraco-CMS/blob/release-7.4.0/src/Umbraco.Core/PropertyEditors/PropertyValueEditor.cs#L367

It attempts to convert the value to an XML-safe string, which is ultimately `ToString()` (if not null):
https://github.com/umbraco/Umbraco-CMS/blob/release-7.4.0/src/Umbraco.Core/ObjectExtensions.cs#L544

ConvertDbToEditor

Same as ConvertDbToString, we were updating the `property.Value` reference when we shouldn't be.
We should be returning the converted value, not updating the original reference value itself.

I've removed the call to the base method, we don't need it - it attempts to deserialize the JSON string that we've literally just serialized...
https://github.com/umbraco/Umbraco-CMS/blob/release-7.4.0/src/Umbraco.Core/PropertyEditors/PropertyValueEditor.cs#L283

So we can pass the List<object> value back, as this will be handled by Umbraco and handed by Angular.
2018-04-05 17:14:15 +01:00
Mads Rasmussen f1c78b45a7 set overlay button state + call temp publish method 2018-04-05 16:11:30 +02:00
Mads Rasmussen 0f32b653a1 Change "Save and publish" label to "Publish" 2018-04-05 16:01:26 +02:00
Mads Rasmussen 875e05b680 add support for setting the overlay submit button state from the controller 2018-04-05 16:00:39 +02:00
leekelleher 23612d7599 U4-9668 RelationService - Relates entities by ID and a relationType + Alias
Currently you need to supply both parent & child entities to create a new relation.
When the underlying code requires the entity IDs (int).

This patch adds methods to accept the int IDs.
http://issues.umbraco.org/issue/U4-9668

This patch also de-duplicates the logic from `Relate(IUmbracoEntity, IUmbracoEntity, string)`,
as it was the same as the method body of `Relate(IUmbracoEntity, IUmbracoEntity, IRelationType)`.
2018-04-05 14:37:45 +01:00
Shannon 7442c96be1 removes unused methods 2018-04-05 23:15:51 +10:00
Shannon 990ca51279 Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2018-04-05 23:11:24 +10:00
Shannon 262c4afb16 Removes FormsAuthentication cookie format and replaces with standard aspnet identity format, removes a bunch of old obsolete and unused code, fixes the culture setting issue, simplifies the UmbracoBackOfficeIdentity since it no longer needs to be a FormsIdentity and just a straight forward ClaimsIdentity 2018-04-05 23:10:51 +10:00
Mads Rasmussen 7636cd5eb6 add new publish overlay 2018-04-05 14:40:57 +02:00
Mads Rasmussen 54c41dfb23 open publish dialog when clicking the save and publish button 2018-04-05 14:39:57 +02:00
Mads Rasmussen 63315f6162 dont indent first center/target overlays 2018-04-05 14:39:04 +02:00
Mads Rasmussen a2356ea651 Restyle centered overlay 2018-04-05 14:37:58 +02:00
Mads Rasmussen 892eb56a2d fix backdrop z-index 2018-04-05 14:37:13 +02:00
Mads Rasmussen d09d50e013 add global overlay component + add simple service for opening and closing 2018-04-05 14:35:47 +02:00
Stephan eb6a08af31 v7@11d4189c8d 2018-04-05 14:12:15 +02:00
Warren 0dba812053 Merge branch 'patch-v7' into dev-v8 2018-04-05 10:44:34 +01:00
Warren edb62b740b Merge branch 'patch-v7' into dev-v7 2018-04-05 10:42:41 +01:00
Shannon 798236dc85 removes unused code, cleans up web.confgi 2018-04-05 18:13:50 +10:00
Shannon 9bfe9e6bbf Ensures that the thread culture is set both in owin and in aspnet 2018-04-05 18:11:15 +10:00
Shannon 11d4189c8d Merge branch 'patch-v7' into dev-v7 2018-04-05 17:28:46 +10:00
Shannon a62422fac3 ensure that debug is true when developing 2018-04-05 15:09:12 +10:00
Shannon f32e787816 fixes dashboard.tabs.controller 2018-04-05 15:08:52 +10:00
Stephan 6da91b7770 Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2018-04-04 17:43:26 +02:00
Stephan f7a14a03f2 Fix build, still some weird csc.exe versionning 2018-04-04 17:41:55 +02:00
Stephan 612acfac15 Fix solution 2018-04-04 09:59:01 +02:00
Warren 4047fb119d Adds in missing $scope dependency for Dynamic Dashboard Controller 2018-04-04 08:35:58 +01:00
Warren ebbd05dc97 Adds in missing $scope dependency for Dynamic Dashboard Controller 2018-04-04 08:30:33 +01:00
Shannon 6d1e50c44d Merge branch 'dev-v8' into temp-U4-11127
# Conflicts:
#	src/Umbraco.Web.UI/web.Template.config
2018-04-04 16:51:00 +10:00
Stephan 683b47bae5 Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2018-04-04 08:32:10 +02:00
Stephan 1b804e07e5 Push web.template.config 2018-04-04 08:28:10 +02:00
Shannon d89009bbe7 Changes targetFramework to 4.7, removes the huge assembly list, removes post build scripts since they don't work 2018-04-04 16:17:57 +10:00
Shannon e5b0b2bfb7 Merge branch 'dev-v8' into temp-U4-11127 2018-04-04 16:01:23 +10:00
Shannon 471009cfd1 nuspec for examine was incorrect 2018-04-04 16:00:14 +10:00
Shannon efeef98e55 fixes merge/build 2018-04-04 15:59:02 +10:00
Shannon c655e9c2b1 Merge branch 'dev-v8' into temp-U4-11127 2018-04-04 15:55:13 +10:00
Shannon d618151e4f Fixes the csproj, binding redirects and versions 2018-04-04 15:54:39 +10:00
Shannon f775fd8672 removes sqlce build commands since no packages folder exists anymore 2018-04-04 15:35:13 +10:00
Shannon cdd50b899a Merge remote-tracking branch 'origin/dev-v8' into temp-U4-11127
# Conflicts:
#	src/Umbraco.Web/Models/Mapping/TabsAndPropertiesResolver.cs
2018-04-04 15:04:11 +10:00
Shannon a673babfb7 Fixes Content List View installation, removes unecessary properties from the RecycleBinEventArgs, updates both the upload and image cropper property editors to properly remove all files including any associated with variants, updates several other places to deal with variants and Property.GetValue(langId), adds notes, ensures we are returning the corect IDictionary instead of Dictionary for some interfaces 2018-04-04 13:11:12 +10:00
Shannon b1d309aa16 Some updates based on PR review notes 2018-04-04 10:50:18 +10:00
Shannon 7a73175aa0 Starts wiring up the back office to the c# bits, updates controllers, mappers, models, property editors to support getting and saving data by language. The content editor now "works" with multi-lingual properties 2018-04-04 01:59:51 +10:00
Stephan d4bd4256f1 Fix models mapping 2018-04-03 16:20:19 +02:00
Stephan 553de2ea68 Cleanup ILogger 2018-04-03 16:15:59 +02:00
Stephan e3c6205d0c Fix 2018-04-03 15:32:46 +02:00
Stephan 75966dcfbd Merge branch origin/dev-v8 into dev-v8 2018-04-03 14:57:55 +02:00
Stephan cdd064ba08 Upgrade Dependencies 2018-04-03 14:54:01 +02:00
MADSRASMUSSB4A1\madsrasmussen fca9279322 update languages icon to globe instead of flag 2018-04-03 11:25:59 +02:00
Shannon e7bc4986a5 Start updating the model/controller for editing variants in the back office and wiring up the angular side of things 2018-04-03 19:25:43 +10:00
Warren Buckley c6814d41a9 Merge pull request #2557 from umbraco/dev-v8-merge-up-11164-regression
Merge upto V8 - U4-11164 Blank Login Screen regression from 7.10
2018-04-03 09:44:41 +01:00
Warren 05604880e0 Merge branch 'patch-v7' into dev-v8
* Merging up into V8 the 7.10 regression with assetsService locale stuff #U4-11164
2018-04-03 09:38:50 +01:00
Shannon 271a100759 Obsolete the methods we want to remove from ILogger 2018-04-03 16:38:31 +10:00
Shannon 26134cd616 updates nuspec and install.core.ps1 to not include the old dlls 2018-04-03 13:10:08 +10:00
Shannon 9d5156d7f0 fixes some tests 2018-04-03 13:01:01 +10:00
Shannon 1719d33a48 Fixes tests, updates examine, fixes how __Path is stored 2018-04-03 12:33:21 +10:00
Warren Buckley 1e9aad5a0c Merge pull request #2553 from umbraco/temp-U4-11165
U4-11165 Integrate language UI with the language controller in the back end
2018-03-30 21:03:20 +01:00
Warren ad14fbd1f8 Set the language to be mandatory too as well 2018-03-30 21:01:24 +01:00
Stephan f89816111b Wire NuCache and IdkMap 2018-03-30 14:00:44 +02:00
Stephan c75d4e5b5b Fix post-merge 2018-03-30 11:00:07 +02:00
Stephan f7a3c97da0 Fix build 2018-03-30 10:29:19 +02:00
Stephan 62b6efc4da Fix upgrading 2018-03-30 10:28:49 +02:00
Warren a9c184b4fd Updates the JS to remove unneeded services injected in
Updates view to be simpler if statement - that by having something set to it then we can show the UI
2018-03-29 20:54:20 +01:00
Warren 14b4c12cdb Adds NPM package.json lock file - so we ensure dependencies are consistent for all 2018-03-29 20:11:14 +01:00
Warren 1049a7be12 Updates UI .csproj - to remove the broken Analyzers for now (Not sure we use the lovely VS C# analyzers & more of a R# team) 2018-03-29 20:09:58 +01:00
Shannon 6d2bf71824 adds required check back in 2018-03-30 01:23:51 +11:00
Shannon 7f27862943 Gets correct validation working with languages, we can now create and update 2018-03-30 01:20:40 +11:00
Shannon b9d0c63002 Starts wiring up the language editor with the controller, ensure that you cannot delete a language at the repo level and makes sure that we return and show validation messages when the user tries to delete the default or last language. 2018-03-29 23:48:54 +11:00
Shannon Deminick 3489e66d64 Merge pull request #2546 from umbraco/temp-U4-11124
U4-11124 - Prevents deleting a default language (API Controller & Service Layers)
2018-03-29 22:48:24 +11:00
Shannon 826102ea4d Merge remote-tracking branch 'origin/temp-v8-UI' into dev-v8 2018-03-29 22:42:18 +11:00
Shannon 7fd9caf889 Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8
# Conflicts:
#	src/Umbraco.Web/PublishedContentQuery.cs
2018-03-29 22:35:46 +11:00
Shannon 83e90969b3 i guess trying to rename the thing didn't work 2018-03-29 22:15:46 +11:00
Shannon 8f01a2ab0a fixes merge issues 2018-03-29 22:13:41 +11:00
Stephan 23e8632df6 Merge pull request #2549 from umbraco/temp-U4-11102
Examine v1.0.0 integration to Umbraco v8
2018-03-29 11:32:13 +02:00
Stephan c72ce0b759 Fix Examine PR, fix migrations and upgrades 2018-03-29 11:31:33 +02:00
Shannon 881fbb7f76 Merge remote-tracking branch 'origin/dev-v7' into dev-v8
# Conflicts:
#	build/Modules/Umbraco.Build/Umbraco.Build.psm1
#	src/SolutionInfo.cs
#	src/Umbraco.Core/Configuration/UmbracoVersion.cs
#	src/Umbraco.Core/DatabaseContext.cs
#	src/Umbraco.Core/IO/FileSystemProviderManager.cs
#	src/Umbraco.Core/ObjectExtensions.cs
#	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenSevenZero/AddUserGroupTables.cs
#	src/Umbraco.Core/PropertyEditors/ValueConverters/IntegerValueConverter.cs
#	src/Umbraco.Core/Services/IdkMap.cs
#	src/Umbraco.Core/Services/UserService.cs
#	src/Umbraco.Core/packages.config
#	src/Umbraco.Tests.Benchmarks/app.config
#	src/Umbraco.Tests/UI/LegacyDialogTests.cs
#	src/Umbraco.Web/Cache/MediaCacheRefresher.cs
#	src/Umbraco.Web/Cache/UnpublishedPageCacheRefresher.cs
#	src/Umbraco.Web/Features/DisabledFeatures.cs
#	src/Umbraco.Web/Mvc/RenderRouteHandler.cs
#	src/Umbraco.Web/Mvc/UmbracoAuthorizeAttribute.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/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs
#	src/Umbraco.Web/PublishedContentQuery.cs
#	src/Umbraco.Web/WebApi/Filters/FeatureAuthorizeAttribute.cs
#	src/Umbraco.Web/packages.config
#	src/Umbraco.Web/umbraco.presentation/umbraco/create/MemberGroupTasks.cs
2018-03-29 20:01:14 +11:00
Stephan 295f727c90 Merge origin/dev-v8 into temp-U4-11102 2018-03-29 10:57:38 +02:00
Marc Goodson 73565d9be1 Consider the 'case' of the Member Group/Role Name when comparing, during assignment, whether or not the Member Group/Role exists and whether it needs to be created... and whether the Member belongs to a particular Group/Role and whether they need to be assigned. 2018-03-29 09:12:57 +01:00
Stephan 8cb92b95cb Fix migration plan 2018-03-29 09:39:37 +02:00
Shannon fb89f0a795 Merge commit '2aa0dfb2c5' into dev-v8
Force merging v7 -> v8, ignoring any conflicts and choosing "our" version (v8)
since we've manually merged it alraedy
2018-03-29 18:07:45 +11:00
Shannon 10dec4115d Updates to latest examine and replaces IExamineIndexCollectionAccessor since we now have IExamineManager 2018-03-29 16:42:11 +11:00
Shannon 5010cbbf30 Gets the examine stuff re-merged and updated after the great merge 2018-03-29 15:39:48 +11:00
Shannon 5482b8f2f0 Merge remote-tracking branch 'origin/dev-v8' into temp-U4-11102
# Conflicts:
#	src/NuGet.Config
#	src/Umbraco.Web/Components/DatabaseServerRegistrarAndMessengerComponent.cs
#	src/Umbraco.Web/IPublishedContentQuery.cs
#	src/Umbraco.Web/PublishedContentQuery.cs
#	src/Umbraco.Web/Search/ExamineComponent.cs
#	src/Umbraco.Web/WebServices/ExamineManagementApiController.cs
2018-03-29 14:00:20 +11:00
Stephan 796d931f65 Fix tests & apps 2018-03-28 18:07:53 +02:00
Shannon 2c132fe15f ignores search properties that should not be discovered 2018-03-28 23:00:03 +11:00
Shannon 4b32387aec fixes bug with getting indexer properties in the mgmt controller 2018-03-28 22:50:31 +11:00
Shannon 3d42ce166f fixes bug with getting indexer properties in the mgmt controller 2018-03-28 22:48:04 +11:00
Shannon 53f66d2a1b removes unused class 2018-03-28 22:38:40 +11:00
Shannon 7d13704cf9 Updates to latest examine beta, cleans up more code, always reference a searcher by it's indexer 2018-03-28 22:23:17 +11:00
Stephan 14592a227b Merge origin/dev-v8 into v7 temp merge 2018-03-28 12:58:39 +02:00
Stephan 7adc986472 Cleanup various migration stuff 2018-03-28 12:40:52 +02:00
Stephan 0ecc333a90 Fix port, tests 2018-03-28 11:28:32 +02:00
Søren Gregersen a623e4034c Updated documentation + default values for getPagedDescendants
Changed type in example, from unknown "Content" to known "Document". 

Also changed the default values to show the first page, with a 100 results, instead the 100th page with 1 result.
2018-03-28 11:00:35 +02:00
Shannon 52aa02668f Gets examine working with proper events, tests are working, etc... 2018-03-28 16:12:43 +11:00
Shannon f0a342d84e Merge branch 'dev-v8' into temp-U4-11102 2018-03-28 12:58:42 +11:00
Shannon 487e4cbe20 Fixes various migration stuff - language migration was broken (public ctor), the custom sql in KeyValueService was incorrect, moved to migration syntax, InsertDataExpression didn't work, fixed with v7 code that does work, changes some Database.Execute to Execute.Sql so logging occurs. Fixes packages.config inclusion 2018-03-28 12:50:15 +11:00
Shannon c2707f3806 updates to latest examine and fixes a test 2018-03-28 12:46:34 +11:00
Stephan 0d22478186 Port v7@2aa0dfb2c5 - WIP 2018-03-27 17:59:53 +02:00
Warren e9380b048b Throw a HTTP Bad Request if an API request in backoffice is made to try & delete the Default Language 2018-03-27 16:33:28 +01:00
Michaël Vanbrabandt b0ab408fda Update NL.xml
Set die instead of dat
2018-03-27 17:19:24 +02:00
Stephan 6b1ed89cb0 Port v7@2aa0dfb2c5 - WIP 2018-03-27 16:42:52 +02:00
Stephan c2e1ba21b2 Port v7@2aa0dfb2c5 - WIP 2018-03-27 16:18:51 +02:00
Dave Woestenborghs cf871196f2 U4-11155 changed namespace back to previous value so creating member groups works again 2018-03-27 16:11:07 +02:00
Michaël Vanbrabandt b962d2a9d3 Update NL.xml with missing translations 2018-03-27 15:55:28 +02:00
Dave Woestenborghs 36d6b6a254 U4-11150 merged where statements in to one statement 2018-03-27 14:22:51 +02:00
Stephan d40a835701 Port v7@2aa0dfb2c5 - WIP 2018-03-27 10:51:41 +02:00
Stephan 0a4878d2a3 Port v7@2aa0dfb2c5 - WIP 2018-03-27 10:04:07 +02:00
Shannon c66365e11a gets some tests working 2018-03-27 18:35:16 +11:00
Shannon 88d66cfb53 Examine v1.0.0 integration, it now builds! now to run tests and fixup 2018-03-27 18:14:21 +11:00
Robert e5c7c5eb2d Merge pull request #2541 from umbraco/temp-U4-11121
U4-11121 New LanguagesController (back office editor controller) for …
2018-03-26 13:14:18 +02:00
Claus 19a408fcae U4-11121 New LanguagesController (back office editor controller) for persisting language changes 2018-03-26 10:55:49 +02:00
Dave Woestenborghs 29bb86ea13 Filter tours based on current users culture 2018-03-23 16:37:13 +01:00
Dave Woestenborghs fa171e4553 Added culture property to Backoffice tour 2018-03-23 15:33:42 +01:00
Mads Rasmussen 486ead0983 Merge pull request #2537 from umbraco/temp-U4-11129
U4-11129 Updates Content Delete Dialog with new copy/warning about variants
2018-03-23 14:57:46 +01:00
Warren Buckley 5449de6426 Merge pull request #2538 from umbraco/temp-U4-11126-variant-switch-prompt
Temp u4 11126 variant switch prompt
2018-03-23 13:50:31 +00:00
Mads Rasmussen 4fa27c09fa fix user dialog toggle 2018-03-23 14:47:12 +01:00
Mads Rasmussen fe32481b6e bring dashboards back to life 2018-03-23 14:14:25 +01:00
Mads Rasmussen cf81f97f73 show discard changes prompt when swithing variant 2018-03-23 11:28:27 +01:00
Mads Rasmussen 26b575b2f6 remove console log 2018-03-23 11:27:42 +01:00
Mads Rasmussen 8e8102a51d update styling for discard changes dialog 2018-03-23 11:27:24 +01:00
Warren 7b17539022 Merge branch 'temp-v8-UI' into temp-U4-11129 2018-03-23 10:05:01 +00:00
Warren 9269a257e8 Adds new info bar to content delete dialog with warning about variants/languages 2018-03-23 10:04:26 +00:00
Mads Rasmussen edeb9c61ac Merge pull request #2535 from umbraco/temp-U4-11125
U4-11125 - Updates Langugae Keys for when changing default language in info bar
2018-03-23 10:07:48 +01:00
Warren 8d0441ee08 Update language keys for changing default language warning 2018-03-23 09:03:06 +00:00
Stephan 59bac5c2a6 Fix a few things, the v8 way 2018-03-22 17:51:34 +01:00
Stephan a2a4edb3be Port v7@2aa0dfb2c5 - WIP 2018-03-22 17:41:13 +01:00
Mads Rasmussen 2250943c87 remove gray bg in context menu header 2018-03-22 15:43:13 +01:00
Claus 3a3d6239f0 U4-11144 GetManifestFiles fails if there's no App_Plugins folder 2018-03-22 15:35:51 +01:00
Claus a4c9d8f1bf typos 2018-03-22 15:34:28 +01:00
Claus e6010fcd1e Merge pull request #2534 from umbraco/temp-U4-11122
U4-11122 - Update DB and Service/Repo layer to handle language changes: mandatory, default
2018-03-22 15:18:15 +01:00
Claus 730c4eaf2d Merge pull request #2529 from umbraco/temp-U4-11123-take2
U4-11123 (Take 2) Updates Language Tree to not show having children or right click menu
2018-03-22 13:48:43 +01:00
Shannon 01b48a5aab adds logic for repository and unit tests 2018-03-22 23:15:52 +11:00
Warren Buckley c5365b7d0d Merge pull request #2528 from umbraco/temp-U4-11120
Temp u4 11120
2018-03-22 11:37:44 +00:00
Stephan 62c5f0f1ef Port v7@2aa0dfb2c5 - WIP 2018-03-22 11:25:38 +01:00
Stephan 8bfb8e2b72 Port v7@2aa0dfb2c5 - WIP 2018-03-22 11:25:33 +01:00
Stephan 41948607d0 Port v7@2aa0dfb2c5 - WIP 2018-03-22 11:25:25 +01:00
Stephan a9147f1473 Port v7@2aa0dfb2c5 - WIP 2018-03-22 11:25:22 +01:00
Stephan 8199b7710c Port v7@2aa0dfb2c5 - WIP 2018-03-22 11:25:18 +01:00
Stephan 0cbfebe21c Port v7@2aa0dfb2c5 - WIP 2018-03-22 11:25:08 +01:00
Mads Rasmussen f3859f891e localize "add language" 2018-03-22 10:46:38 +01:00
Mads Rasmussen bb7c96f408 better naming of tree language selector 2018-03-22 09:59:49 +01:00
Shannon b3fb23a67a Adds language entity changes and tests 2018-03-22 17:51:38 +11:00
Shannon d852c43559 oops, didn't mean to commit new lang tests 2018-03-22 17:33:16 +11:00
Shannon 0710311e70 uncomments an ignore attribute on a test that should definitely be passable 2018-03-22 17:27:34 +11:00
Shannon 422fd8e274 Fixes many hard coded SQL table names with the proposed new prefix 2018-03-22 17:17:01 +11:00
Shannon 448d490eb7 Adds TODO note about GlobalSettings 2018-03-22 16:35:16 +11:00
Shannon e2d039d984 Changes db prefix to 'umbraco' 2018-03-22 15:10:05 +11:00
Warren d8c1e2fa98 Makes sure to set no child nodes & menu url
Removes the child arrow for tree items
Removes the 3 dots for the context menu item that had nothing in it
2018-03-21 15:53:09 +00:00
Mads Rasmussen c701bf5a74 fix unit tests 2018-03-21 16:51:08 +01:00
Stephan 10972002d9 Fix install issues with super user 2018-03-21 16:10:33 +01:00
Mads Rasmussen 32daf0f8d7 only show default language info when toggle is turned on 2018-03-21 15:31:51 +01:00
Claus 37870e906c Merge pull request #2527 from umbraco/temp-U4-11123
Temp U4-11123 - Sets Language Root Tree Node to use custom UI
2018-03-21 14:36:11 +01:00
Claus 49a9a249d0 removes using statements. 2018-03-21 14:35:43 +01:00
Mads Rasmussen a23f122f5f only delete language when allowed 2018-03-21 14:01:48 +01:00
Mads Rasmussen bc4e97be48 fixes: U4-11120 Create new Language dashboard to create/remove/set default languages - angular 2018-03-21 13:39:16 +01:00
Warren 82bc05e0a0 Sets language tree root node with flag icon that child items had & sets the route for a custom UI
Removes child tree items as we will now use new UI to manage them
Removes menu items (as no need for create, refresh, delete etc)
2018-03-21 11:42:09 +00:00
Stephan 33a24e0e2f Fix the install process 2018-03-21 11:32:07 +01:00
Shannon df312309a3 ensure the key/value table is created 2018-03-21 16:53:21 +11:00
Shannon bd6dd13295 Updates the user Id to the new -1 2018-03-21 14:49:10 +11:00
Stephan c6986ef0ab With ModelsBuilder alpha.15 2018-03-20 16:56:05 +01:00
Stephan 32e6aa4f6b Version alpha.32 for ModelsBuilder 2018-03-20 16:21:26 +01:00
Stephan fe03f1af57 Merge remote-tracking branch 'origin/dev-v8' into dev-v8 2018-03-20 09:32:07 +01:00
Tom Fulton 0b63eb9430 U4-11133 - Adjust access check for Unpublish button
Require both Publish (assigned) and Unpublish (automatic, but could be removed during event) to show the button
2018-03-19 19:43:07 -06:00
Tom Fulton d7ddbfec35 U4-11133 - Fix access check for Unpublish button
The logic to show the Unpublish button was checking for "Publish" (U) permission rather than "Unpublish" (Z)
2018-03-19 19:30:51 -06:00
Tom Fulton d260a9dc88 U4-7757 - Show notifications when Unpublishing is canceled 2018-03-19 19:03:02 -06:00
Stephan 39cc7add80 Rename Umbraco.Whatever2 editors 2018-03-19 18:39:34 +01:00
Stephan 54122cc0c6 Troubleshoot, fix 2018-03-19 13:36:31 +01:00
Bjarne Fyrstenborg 587d9b6d6c Remove umb-pane from dialog 2018-03-18 20:05:16 +01:00
Bjarne Fyrstenborg 4babcbf96e Hide tooltip of slider property editor in document type editor property preview 2018-03-17 17:16:14 +01:00
Stephan dda696bde5 Troubleshoot, fix 2018-03-16 09:11:59 +01:00
Mads Rasmussen 2d263447cf lighten border on tree 2018-03-16 08:19:03 +01:00
Mads Rasmussen 26defd8f29 Merge branch 'dev-v7' into temp-v8-UI 2018-03-08 11:52:08 +01:00
Stephan 3637e1e5af Cleanup 2018-03-07 10:26:02 +01:00
Stephan c9f868dd3c UserId zero means null users, not super 2018-03-07 09:35:28 +01:00
Stephan e2ea849211 Cleanup 2018-03-07 09:34:41 +01:00
Stephan 2a3f284554 Cleanup 2018-03-06 17:24:28 +01:00
Stephan 0277ddc584 DataType troubleshooting 2018-03-05 14:59:23 +01:00
Rune Hem Strand 20216df8cf Add check to avoid cicular template reference 2018-03-02 17:49:02 +01:00
Stephan 030c97ef26 Super user is not a Zero 2018-03-02 16:00:15 +01:00
skg@novicell.dk be2ed0e8da Added a generic TableExists-method 2018-03-01 20:31:26 +01:00
Stephan 20a7d9926b Improve ReflectionUtilities 2018-03-01 14:50:42 +01:00
Stephan a39511bf55 Troubleshooting 2018-02-27 16:13:23 +01:00
Stephan 1f60314348 Refactor editing, cleanup 2018-02-25 10:43:16 +01:00
Mads Rasmussen 725fec5b3c add active state to language dropdown 2018-02-22 10:08:27 +01:00
Samuel Sperling 863679b386 U4-10849 fixed Umbraco user field "User Last updated" and "last locked date" not updating after password change / account locking.. 2018-02-22 14:06:26 +11:00
Rebecca c040cfefcd Failed Logon Attempts resets to 0 after maximum number of attempts 2018-02-22 13:02:34 +10:00
Mads Rasmussen a13711318e Merge branch 'dev-v7.8' into temp-v8-UI 2018-02-19 20:13:59 +01:00
Mads Rasmussen b0303a9e45 add more margin bottom to expansion panels 2018-02-19 19:53:03 +01:00
Mads Rasmussen f32513066f add border to node name input 2018-02-19 19:52:43 +01:00
Mads Rasmussen fecb5e7979 don't open splitview when publishing 2018-02-19 19:52:13 +01:00
Stephan 47d7677948 Refactor editing, all tests green 2018-02-16 12:00:45 +01:00
Stephan cfd2ba3b5a Refactor editing 2018-02-15 14:53:29 +01:00
Stephan d30842e1bf Cleanup editing 2018-02-14 16:55:42 +01:00
Stephan af7df0c6b5 Cleanup 2018-02-09 18:22:59 +01:00
Stephan aa614f1e20 Cleanup 2018-02-09 15:33:44 +01:00
Stephan 15d7fa76a8 Cleanup 2018-02-09 14:59:41 +01:00
Stephan fcb6dfdfdf Cleanup 2018-02-09 14:34:28 +01:00
Mads Rasmussen d5e32249ed fix split view on publish 2018-02-09 12:42:42 +01:00
Mads Rasmussen 3c78d59c67 Merge branch 'temp-v8-UI' into temp-v8-UI-infinite-editing 2018-02-08 20:58:36 +01:00
Mads Rasmussen 1de2d536c2 fixes styling of fixed header 2018-02-08 20:30:26 +01:00
Stephan f9a8f82434 DataTypes refactoring - getting frontend to work 2018-02-08 18:28:53 +01:00
Stephan c0439b3c4e DataTypes refactoring - troubleshooting 2018-02-08 16:08:52 +01:00
Mads Rasmussen 14a8045351 check for $scope.model 2018-02-08 14:26:17 +01:00
Mads Rasmussen 3fa59a6ac1 Merge branch 'temp-v8-UI' into temp-v8-UI-infinite-editing 2018-02-08 13:44:46 +01:00
Mads Rasmussen 2d337923a3 adjustments to editor header layout 2018-02-08 13:42:42 +01:00
Mads Rasmussen c9986a9aeb prototyping media picker 2018-02-08 11:04:56 +01:00
Mads Rasmussen 06714c2e31 add component and services to control infinite editors 2018-02-07 13:44:48 +01:00
Stephan 450854a209 DataType refactoring - polish 2018-02-07 13:35:59 +01:00
Mads Rasmussen 806b375e29 use umb-property-editor component instead of umb-editor 2018-02-06 09:52:39 +01:00
Stephan a97900515b DataType refactoring - polish 2018-02-05 17:48:54 +01:00
Mads Rasmussen 34c985dc19 Merge branch 'dev-v7.8' into temp-v8-UI
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/components/application/umb-navigation.html
#	src/Umbraco.Web.UI.Client/src/views/users/user.html
2018-02-05 13:59:09 +01:00
Stephan 947d08c947 DataType refactoring - troubleshooting 2018-02-02 19:50:48 +01:00
Stephan c748a2bc41 DataType refactoring - all tests green 2018-02-01 17:53:32 +01:00
Stephan b416079e12 DataType refactoring - troubleshooting tags and fixing tests 2018-02-01 14:14:45 +01:00
Mads Rasmussen 466e97086b remove border on sub header sections 2018-01-31 20:45:37 +01:00
Mads Rasmussen d1fac8885c adjust size on header icons 2018-01-31 20:44:59 +01:00
Mads Rasmussen 288048175f fix tree options 2018-01-31 20:43:54 +01:00
Mads Rasmussen 162d3ce47d show variant publish state in variant dropdown 2018-01-31 15:41:39 +01:00
Mads Rasmussen 21bf5cd4ec truncate tree node names 2018-01-31 15:39:27 +01:00
Stephan f5546ca870 DataType refactoring - troubleshooting and fixing tests 2018-01-29 19:23:25 +01:00
Mads Rasmussen 59612e9539 fine tuning the variant selector 2018-01-29 11:45:51 +01:00
Stephan e60a5a4a83 DataType refactoring - in progress 2018-01-26 17:55:20 +01:00
Mads Rasmussen 23c04ad830 added animations 2018-01-26 09:42:32 +01:00
Mads Rasmussen 9064d205bf move help drawer to right side 2018-01-25 16:37:17 +01:00
Mads Rasmussen 5f069670aa overlays shouldn't cover app header 2018-01-25 15:53:00 +01:00
Mads Rasmussen bff344dc70 small style adjustments 2018-01-25 15:45:54 +01:00
Mads Rasmussen 8368b81528 add close splitview icon 2018-01-25 15:43:30 +01:00
Mads Rasmussen 7fee6f7389 fix umb-table styling 2018-01-25 15:42:52 +01:00
Mads Rasmussen 78398fb8bb start on split view prototype 2018-01-24 14:46:53 +01:00
Stephan f7f42f893b DataType refactoring - in progress 2018-01-24 13:37:14 +01:00
Stephan c3e6886ac0 DataType refactoring - in progress 2018-01-24 11:44:44 +01:00
Stephan 97a058b817 DataType refactoring 2018-01-20 12:31:42 +01:00
Stephan e30d8f79ef DataType refactoring 2018-01-20 12:09:40 +01:00
Stephan 2f7f22961b Version alpha.31 with ModelsBuilder alpha.14 2018-01-20 10:21:01 +01:00
Stephan eff2e7a65b Manifest refactoring 2018-01-20 10:19:57 +01:00
Stephan 506d810cf6 DataType refactoring preparation - Entity refactoring 2018-01-15 15:54:06 +01:00
Stephan cc47276095 DataType refactoring preparation - Entity refactoring 2018-01-15 13:44:49 +01:00
Stephan d23933a5b1 DataType refactoring preparation - Entity refactoring 2018-01-15 13:28:35 +01:00
Stephan 988aa661ea DataType refactoring preparation - Entity refactoring 2018-01-12 10:48:36 +01:00
Mads Rasmussen 80c2cbdfe5 add umb-box to users 2018-01-10 22:23:54 +01:00
Mads Rasmussen e58b759d10 move user group back button to header 2018-01-10 22:11:35 +01:00
Mads Rasmussen d04d37ec90 move user back button to header 2018-01-10 22:09:43 +01:00
Mads Rasmussen b6528c533c add box to create/invite user 2018-01-10 22:06:10 +01:00
Mads Rasmussen b56e4e8b40 add umb-box to user sidebar 2018-01-10 20:37:00 +01:00
Mads Rasmussen 3b9d56f557 Merge branch 'dev-v7.8' into temp-v8-UI 2018-01-10 20:08:50 +01:00
Stephan b5856803e1 DataType refactoring preparation - Entity refactoring 2018-01-10 12:48:51 +01:00
Mads Rasmussen 2fea966a49 decrease space between sidebar and main content on info tab 2018-01-05 20:41:08 +01:00
Mads Rasmussen f1f4d64e85 update data type editor to use umb-box directive 2018-01-05 20:40:29 +01:00
Mads Rasmussen 9260c04a08 update styling + wip node variant picker 2018-01-05 14:01:51 +01:00
Warren Buckley 3a4e5a2027 Update client build NPM dependancy for gulp-connect to use 5.0.0 as next/latest version required you to use CoffeeScript to compile their src code to use the module/component 2018-01-03 12:00:01 +00:00
Stephan 2cb6378c26 Reorg code, move stuff 2017-12-28 09:27:57 +01:00
Stephan edf7df043f Reorg code, move services 2017-12-28 09:18:09 +01:00
Stephan af43ea0beb Reorg code, move dtos 2017-12-28 09:06:33 +01:00
Stephan 3be8f9f645 Variants - invariant segments, property values 2017-12-27 15:11:29 +01:00
Stephan 26f02ea6f2 Migrations refactoring - kill migrations table 2017-12-26 19:58:06 +01:00
Stephan bd3e762d9b Migrations refactoring - WIP - namespaces 2017-12-26 19:01:22 +01:00
Stephan a9d9221548 Migrations refactoring - WIP - cleanup 2017-12-26 12:54:27 +01:00
Stephan 8c8fac5d52 Migrations refactoring - WIP - plan 2017-12-26 11:37:57 +01:00
Stephan 16c919c1a5 Migrations refactoring - WIP - plan 2017-12-22 16:14:09 +01:00
Stephan 772c8ba242 Migrations refactoring, troubleshoot and fix, tests 2017-12-21 15:16:28 +01:00
John Churchley bf1a90020c Allow Members tree to work independently of Member Types tree by giving it permission to access the MemberType.GetAllTypes Method 2017-12-20 16:35:24 +00:00
Stephan 8066b2d4ed Migrations refactoring - WIP - immediate 2017-12-20 11:18:17 +01:00
Stephan a47320301d Migrations refactoring - WIP - immediate 2017-12-19 19:13:53 +01:00
Mads Rasmussen 46b1781567 fix navigation resize 2017-12-19 15:58:10 +01:00
Mads Rasmussen 40b4976a22 add user avatar to header 2017-12-19 13:47:23 +01:00
Mads Rasmussen 760d7897d8 prototype apps for media section 2017-12-19 13:07:22 +01:00
Mads Rasmussen 62954b4d7d expand all content panels when node is loaded 2017-12-19 11:27:26 +01:00
Stephan 2182b0f18f Migrations refactoring - WIP - move code 2017-12-19 11:00:46 +01:00
Stephan f6314e1361 Cleanup 2017-12-18 17:13:29 +01:00
Stephan bbff74fa51 UnitOfWork RIP, troubleshoot and fix, tests 2017-12-18 17:02:15 +01:00
Mads Rasmussen 46aee1d0af add back button to header 2017-12-18 15:44:42 +01:00
Mads Rasmussen aa975445f5 fix sections tray 2017-12-18 14:37:46 +01:00
Mads Rasmussen ba120e9627 remove search from tree + add languages to dropdown 2017-12-18 09:53:14 +01:00
Mads Rasmussen dcf64222da add shadow to header and footer 2017-12-15 18:29:02 +01:00
Mads Rasmussen 830ab2692f styling tweaks 2017-12-15 14:41:51 +01:00
Stephan 0ab2f6cc9f Faster variants in Property 2017-12-15 11:58:11 +01:00
Stephan e4b375f72d UnitOfWork RIP, build tests 2017-12-15 11:19:03 +01:00
Mads Rasmussen 7d080ff337 style umb-table 2017-12-15 10:51:42 +01:00
Mads Rasmussen 84a4b4007b add list view as an app 2017-12-15 10:22:49 +01:00
Stephan 33b4af0340 UnitOfWork RIP, IScopeAccessor 2017-12-14 17:04:44 +01:00
Mads Rasmussen 7b13feb29b change tabs to groups and add apps + first round of styling 2017-12-14 15:21:01 +01:00
Mads Rasmussen b29f591084 start on moving sections to new top bar 2017-12-14 11:24:37 +01:00
Stephan 6d4644c118 UnitOfWork RIP 2017-12-12 15:04:13 +01:00
Stephan 84f9242aa0 Persistence Shakeup 2017-12-07 16:45:25 +01:00
Stephan 269531c570 Published variants in NuCache 2017-12-07 13:22:32 +01:00
Matt Darby 3d326158ca Check node permissions only on content list view 2017-12-06 19:58:58 +07:00
Stephan b392d72bc2 Published variants - WIP 2017-12-06 11:51:35 +01:00
Stephan 995f47e6d9 Add variants support to SetValue for files 2017-12-06 10:20:15 +01:00
Stephan d48cb8a66d Fix content event tests 2017-12-06 09:58:50 +01:00
Stephan 5ed82fe297 Fix content event tests 2017-12-02 16:14:21 +01:00
Stephan eb1b1f669c Remove rollback service method 2017-12-02 14:51:01 +01:00
Stephan eca51631b7 Refactor validation and publishing 2017-12-02 14:30:20 +01:00
Stephan eea1392ef4 Fix UI namespaces issues 2017-12-02 13:13:02 +01:00
Stephan aa25990681 Integer version ID, cleanup 2017-12-01 20:00:33 +01:00
Stephan 9b9c7c8e3a Refactor content service 2017-11-30 13:57:40 +01:00
Stephan 94127e9aa2 Implement content- and property-type variations 2017-11-27 19:17:50 +01:00
Stephan 62712cef3d More segment-only values 2017-11-23 16:30:04 +01:00
Stephan 23c0687ae0 Minor variant fixes, support segment-only values 2017-11-22 18:48:43 +01:00
Stephan e843b2c7ea Troubleshoot variants migration 2017-11-22 12:45:09 +01:00
Stephan c6514a6ee1 Troubleshooting variants, running the back-office 2017-11-22 08:39:54 +01:00
Stephan 228c8e7935 PropertyData evo.2 (tests) 2017-11-15 19:44:32 +01:00
Bjarne Fyrstenborg a388657dbb Change types of listview properties 2017-11-15 19:11:35 +01:00
Stephan ef11fda272 More content refactoring (tests) 2017-11-15 08:53:20 +01:00
Stephan fcf2b27953 More content refactoring (tests) 2017-11-10 11:27:12 +01:00
Stephan 09f499d5d6 More content refactoring (WIP, barely builds) 2017-11-08 08:39:36 +01:00
Tim a861d306c9 Makes changes recommended by Sebastian, includes missing Migration. 2017-11-07 09:39:18 +00:00
Tim 802a4386c3 Renames the true false field to be more descriptive, adds migration to change existing name. 2017-11-02 10:58:44 +00:00
Stephan 6ce23ee8fd Migrate documents (WIP) 2017-11-01 16:27:24 +01:00
Stephan b66412e2d6 Complete PropertyData table migration 2017-11-01 15:35:37 +01:00
Stephan 8157daaf23 Cleanup migrations, PropertyData table name 2017-11-01 11:32:48 +01:00
Stephan e5b22bf731 Migrate PropertyData table 2017-11-01 10:42:46 +01:00
Stephan 472cb41190 Begin implementing Constants.DatabaseSchema 2017-10-31 18:03:40 +01:00
Stephan 829d995154 Simplicity 2017-10-31 12:50:30 +01:00
Stephan ec6ba01cbf So long Facade 2017-10-31 12:48:24 +01:00
Stephan ab758001ef Cleanup more build 2017-10-26 17:52:51 +02:00
Stephan 7463852202 Cleanup build 2017-10-26 12:49:49 +02:00
Stephan 2305426dda Version -alpha.30 with ModelsBuilder -alpha.13 2017-10-26 11:25:01 +02:00
Stephan edc5b398bd Version 8.0.0-alpha.29 2017-10-25 14:25:52 +02:00
Stephan cf46a51866 Getting NestedContent and ModelsBuilder happy 2017-10-25 13:23:14 +02:00
Andy Felton 899265c5c5 Use the underlying Peta Poco DB type to get the Type 2017-10-21 14:44:09 +01:00
Stephan 0fe96a58c1 Migrate to Umbraco.Build 2017-10-20 17:53:41 +02:00
Stephan 14eb4fe6e0 Refactor PublishedContentTypes 2017-10-19 12:00:55 +02:00
Stephan cfe5350269 Refactor model type mapping in IPublishedModelFactory 2017-10-17 09:07:01 +02:00
Stephan c62513bd04 Remove ISharpZipLib dependencies where possible 2017-10-16 18:26:03 +02:00
Stephan 890b87a1cf More build fixing 2017-10-16 17:51:53 +02:00
Marc Goodson 0752ef06b1 Enables the editor to skip the macro selection stage, when there is only one Macro and it has parameters (is this a controller still used? ) 2017-10-15 10:36:26 +01:00
Marc Goodson 404fc40127 Skips the Macro Selection stage if only one macro exists, and it has parameters to be entered 2017-10-15 10:28:16 +01:00
Stefano Chiodino 647d3e8792 Normalises whitespace (replace tabs) and add EOF line 2017-10-05 19:17:06 +01:00
Stephan 4a2ee801d4 Fix build 2017-09-29 22:07:48 +02:00
Stephan bcbd4289ea Facade cleanup and refactoring 2017-09-29 18:33:34 +02:00
Stephan ccd54392b7 More reflection utilities 2017-09-29 18:33:34 +02:00
Stephan d32f18f9e7 Relax versionning, version 8.0.0-alpha.26 2017-09-29 18:33:33 +02:00
Stephan 101ba8f620 Facade cleanup and refactoring 2017-09-29 18:33:16 +02:00
Stephan e7a0d79ea7 Bugfix, getting things to run 2017-09-27 16:14:11 +02:00
Stephan be00851b50 Installer image 2017-09-27 12:02:04 +02:00
Stephan 477acb4de3 Fix build, version 8.0.0-alpha024 2017-09-27 11:35:51 +02:00
Stephan 05cb03af11 Fix, now boots and runs 2017-09-27 10:26:37 +02:00
Stephan c24fdc0ddf Facade cleanup and refactoring 2017-09-27 10:26:36 +02:00
Stephan 91b8f073ad Reflection and model factory 2017-09-27 10:26:35 +02:00
Stephan d61ca898c4 PropertySet => PublishedElement 2017-09-27 10:26:34 +02:00
Stephan 057d1a3395 EditorConfig to CrLf 2017-09-24 22:10:19 +02:00
Stephan e71c9740cd More SqlTemplates 2017-09-24 18:54:31 +02:00
Stephan 5ba2ffcbf3 CrLfTab 2017-09-23 10:08:18 +02:00
Stephan c1e2625de0 Use ISqlContext 2017-09-22 19:19:28 +02:00
Stephan ee1941b9bf Refactor ISqlContext and SqlTemplates 2017-09-22 18:30:38 +02:00
Stephan c43bf6c741 Get tests green 2017-09-22 15:23:46 +02:00
Stephan dca3b74542 Refactor and fix tests 2017-09-20 20:06:46 +02:00
Stephan bcf3916e54 Refactor test options attribute 2017-09-19 18:47:07 +02:00
Stephan 1341a37f2b Cleanup Constants.ObjectTypes 2017-09-19 18:19:05 +02:00
Stephan 1308b4cc8b Import NPoco tests 2017-09-19 17:14:26 +02:00
Stephan 8721478fd3 Port 7.7 - WIP 2017-09-19 17:14:12 +02:00
Stephan ca0d5e365a Port 7.7 - WIP 2017-09-19 16:46:49 +02:00
Stephan 9ed6576908 Port 7.7 - WIP 2017-09-19 15:51:47 +02:00
Stephan d54658009c Port 7.7 - WIP 2017-09-18 15:33:13 +02:00
Stephan 9a28250a8d Port 7.7 - WIP 2017-09-15 18:22:19 +02:00
Stephan d9aaba192c Port 7.7 - WIP 2017-09-14 19:29:12 +02:00
Stephan 4634eb28e7 Port 7.7 - WIP 2017-09-14 11:41:46 +02:00
Stephan 37171d96bc Port 7.7 - WIP 2017-09-13 17:35:20 +02:00
Stephan e6de96cb90 Port 7.7 - WIP 2017-09-13 14:40:10 +02:00
Stephan 96c08f24ee Port 7.7 - WIP 2017-09-12 16:22:16 +02:00
Stephan 1c96df83cd Port 7.7 - WIP 2017-09-08 19:39:13 +02:00
Stephan 00d2ea928d Port 7.7 - WIP 2017-09-08 12:35:34 +02:00
Stephan 4dedd52e37 Port 7.7 - WIP 2017-08-26 17:39:23 +02:00
Stephan ac1e4bdfe3 Port 7.7 - WIP 2017-08-25 17:55:26 +02:00
Stephan 934d03e63f Port 7.7 - WIP 2017-08-24 21:24:14 +02:00
Lennard Fonteijn d980ffe783 Added possibilty to ignore collisions from an IContentFinder 2017-08-23 23:14:49 +02:00
Stephan ab8fc33691 Port 7.7 - WIP 2017-08-14 18:21:48 +02:00
Stephan 1a40dd8d78 Build - remove Umbraco.MSBuild tasks 2017-08-09 11:19:11 +02:00
Stephan 9029d8dbd9 PropertyValueConverter - cleanup WIP 2017-07-31 11:27:29 +02:00
Stephan a0fe56ee7c Rename UmbracoExamine to Umbraco.Examine 2017-07-27 12:01:38 +02:00
Stephan 42a046b80c Cleanup AssemblyInfo 2017-07-27 11:18:41 +02:00
Stephan 4bfea6044a PropertyValueConverter - more WIP 2017-07-27 11:09:55 +02:00
Stephan 76569d58fe Cleanup DotSettings 2017-07-26 19:26:55 +02:00
Stephan db9eccc220 Cleanup versions 2017-07-25 18:06:28 +02:00
Stephan af25d5b0d1 Version 8.0.0-alpha0024 2017-07-25 15:27:18 +02:00
Stephan 83f84f05b9 PropertyValueConverter - refactoring WIP 2017-07-25 13:57:42 +02:00
Stephan 0e832d195a Benchmark dynamic ctors 2017-07-25 13:57:38 +02:00
Stephan c31cbf6b6d PropertySet - rename and refactor 2017-07-24 12:39:35 +02:00
Stephan 5d1c0d916c Build - remove Umbraco MSBuild tasks 2017-07-24 12:39:26 +02:00
Stephan 7dce104afb Build - fixes from v7 2017-07-21 10:08:06 +02:00
Stephan c76403077f Normalize cr/lf/tab 2017-07-20 11:21:28 +02:00
Stephan fa6c147a65 NuCache+Scope - caches 2017-07-19 19:59:46 +02:00
Stephan 2a9072609d Update AutoMapper to v6 2017-07-19 18:23:23 +02:00
Stephan 6098ba42a2 Update common dependencies 2017-07-19 18:23:14 +02:00
Stephan 1ff0338d35 NuCache+Scope - tests 2017-07-19 13:33:26 +02:00
Stephan d24ea3c95b NuCache+Scope - tests 2017-07-18 19:57:45 +02:00
Stephan c8052def7a NuCache+Scope add scope lock to ContentStore 2017-07-18 19:57:45 +02:00
Stephan 6d02ad3ce8 Build - fixes from v7 2017-07-18 19:57:45 +02:00
Stephan ea72b0a7b6 NuCache+Scope - more SnapDictionary scoping 2017-07-18 19:57:44 +02:00
Stephan b0303ca753 NuCache+Scope - add scope lock to SnapDictionary 2017-07-18 19:57:44 +02:00
Stephan ab42f8d6e0 NuCache - code cleanup 2017-07-18 19:57:44 +02:00
Stephan f668c25346 Cleanup 2017-07-18 19:57:44 +02:00
Stephan 291b4364c3 Scope/UnitOfWork db context and locking 2017-07-18 19:57:43 +02:00
Stephan 5897881ca8 CacheRefresherBase.This not .Instance 2017-07-11 19:21:13 +02:00
Stephan 41cc622260 Current.DistributedCache 2017-07-11 19:13:45 +02:00
Stephan 9619066a50 Persistence - cleanup 2017-07-11 16:29:44 +02:00
Stephan 5fe38d6aaf Build - Verify NuGet 2017-07-10 17:42:44 +02:00
Stephan 5c136483cc Fix NuSpec consistency 2017-07-10 12:30:53 +02:00
Stephan 35c979e33e Build - fix build.ps1, build docs 2017-07-09 18:46:10 +02:00
Stephan 59f4fd9713 Build - import build.ps1 2017-07-07 16:42:27 +02:00
Stephan 32d4d36847 Upgrade more dependencies 2017-06-30 21:39:26 +02:00
Stephan 534e11ae1e Upgrade ModelsBuilder 2017-06-30 21:29:30 +02:00
Stephan cf011a8366 Fix NuSpec 2017-06-30 21:29:14 +02:00
Stephan 410f3a32cc Fix build 2017-06-29 20:24:20 +02:00
Stephan 1cc6c91c52 Build Compat7 2017-06-29 19:31:26 +02:00
Stephan b120bb929a Fix dependencies 2017-06-29 19:23:14 +02:00
Stephan f6f00a2cda Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2017-06-29 17:26:38 +02:00
Stephan 10a7e4b5cf Fix tests 2017-06-29 17:22:28 +02:00
Claus f8274e4e99 Merge pull request #1439 from Mantus667/U4-7542
U4 7542
2017-06-29 14:28:04 +02:00
Stephan fc8bba188c Include NUnit3 Test Adapter 2017-06-29 08:21:00 +02:00
Stephan 9dee84a21d Fix build 2017-06-29 08:11:07 +02:00
Stephan 95bfc89ec0 Fix build 2017-06-28 21:27:56 +02:00
Stephan 7126234e80 Fix build 2017-06-28 21:11:02 +02:00
Stephan 777175c3fe v8-alpha0021 + migrations (wip) 2017-06-28 20:57:23 +02:00
Stephan 6c710dac93 Log4Net fixing 2017-06-28 20:57:23 +02:00
Stephan 8397fc8e1b Build with PS - fix 2017-06-28 20:57:22 +02:00
Stephan d37100e2d8 Build with PS 2017-06-28 13:38:06 +02:00
Stephan f85a688a0b Remove unwanted dependencies 2017-06-28 12:41:47 +02:00
Stephan 64b2a094f3 Fix WebProfiler for back-office 2017-06-28 12:33:48 +02:00
Stephan 45438c032e Upgrade to NUnit 3 2017-06-28 12:33:48 +02:00
Stephan a243af8a06 Consolidate and Update NuGet dependencies 2017-06-28 12:33:46 +02:00
Stephan 9e7b9ea5b5 From umbraco.dll to Umbraco.Web.dll 2017-06-28 12:33:45 +02:00
Stephan 687ccee100 Fix assembly version 2017-06-27 16:35:06 +02:00
Stephan faec8f7d94 Fixing tests - all green or ignored 2017-06-27 16:09:33 +02:00
Stephan e87be7ad9d Fixing tests - and all sorts of issues 2017-06-23 18:58:08 +02:00
Stephan 08ce8bc4dc Remove legacy projects 2017-06-20 12:12:29 +02:00
Stephan ddd89fa6e8 Remove legacy refs from Umbraco.Web 2017-06-20 11:00:09 +02:00
Stephan 3bf232ec3c Remove legacy refs from Umbraco.Web.UI 2017-06-19 09:41:58 +02:00
Stephan c369c93710 Remove legacy refs from UmbracoExamine 2017-06-19 09:25:23 +02:00
Stephan f62121d880 Move some tests 2017-06-14 09:56:14 +02:00
AndyButland 6861453166 Added localised texts and renamed some to less specific names when used across checks 2017-06-04 14:35:37 +02:00
AndyButland 5f263ad851 Added check for X-Content-Type-Options and refactored existing HTTP header check to use common base class. 2017-06-04 14:34:37 +02:00
Stephan e11b267ef4 Bugfix FileSystems vs Scopes 2017-06-02 14:00:09 +02:00
Stephan d0abbf0664 Better boot fail error reporting 2017-05-31 15:25:07 +02:00
Stephan e17417c49f Get rid of IScopeInternal, add IScopeContext 2017-05-31 10:57:22 +02:00
Stephan d3133abcab Get rid of Mandate 2017-05-31 10:10:47 +02:00
Stephan 1e62ea8b16 Get rid of IScopeProviderInternal 2017-05-30 19:41:37 +02:00
Stephan 2435449854 Break ScopeProvider vs FileSystems circular dependency 2017-05-30 18:59:15 +02:00
Stephan 7ea9c9c8e2 Move Web.Current to Composing 2017-05-30 18:13:11 +02:00
Stephan 1f5c47f029 Move Plugins to Composing 2017-05-30 15:56:30 +02:00
Stephan 81234cd702 Rename DI to Composing 2017-05-30 15:46:25 +02:00
Stephan b251d23a57 Refactor DI and type loading 2017-05-30 15:33:57 +02:00
Stephan d34a425dd1 porting 7.6@5c5baca into 8 2017-05-30 12:54:22 +02:00
Stephan 13ec3db2d3 fix 7.6-rc1 port 2017-05-24 12:25:59 +02:00
Stephan 9c58410d6c vs2017 csproj wip 2017-05-24 12:25:44 +02:00
Stephan 0be86efc50 remove old files 2017-05-24 12:25:40 +02:00
Stephan 8561d85f7a porting 7.6-rc1 into 8 2017-05-24 12:25:39 +02:00
Stephan ade6c2f057 All projects use C# 7.0 2017-04-20 19:16:41 +02:00
Stephan 53f1cb0b0a temp-build 2017-03-14 19:13:08 +01:00
Stephan 824cf30e2e PluginManager TLC from v7 2017-03-05 11:59:11 +01:00
Stephan 3576794a64 Cleanup DI 2016-12-19 17:37:18 +01:00
Stephan 9eb467f38a Fix tests 2016-12-16 18:45:41 +01:00
Stephan 7f39f7748f Persistence reorg, killed DatabaseContext 2016-12-16 17:56:10 +01:00
Stephan 49d54f497d Persistence reorg 2016-12-16 17:20:51 +01:00
Stephan 467f71e392 Tests reorg, kill TestWithApplicationBase 2016-12-16 11:25:20 +01:00
Stephan d17959d1a8 Tests reorg 2016-12-16 10:40:14 +01:00
Stephan 1276415ea4 Improve components, proper cache refresher ordering 2016-12-15 13:15:49 +01:00
Stephan 37ca66f42e Fix tests 2016-12-15 08:57:23 +01:00
Stephan 621eb94225 Fix database scope, get the application to run 2016-12-14 19:22:00 +01:00
Stephan a7e5759526 Fix tests and cleanup 2016-12-14 18:40:16 +01:00
Stephan 68f84908c4 Fix build 2016-12-14 14:19:45 +01:00
Stephan 07a05317ff Merge dev-v7.6 into dev-v8 2016-12-14 14:06:30 +01:00
Stephan 04066e901f Fix tests 2016-12-13 15:41:55 +01:00
Stephan a55ae8ba57 Refactor Query in repos 2016-12-01 08:46:58 +01:00
Stephan fe3b28261f Deal with FIXMEs in persistence layer 2016-11-30 19:23:20 +01:00
Stephan 800b60ad68 Deal with FIXMEs 2016-11-30 18:32:22 +01:00
Stephan 39f6d5dacc Cleanup MapperCollectionBuilder init 2016-11-30 18:30:34 +01:00
Stephan f4d9e73da7 Copy Compat7 DLL over to UI only in VS 2016-11-30 13:31:03 +01:00
Stephan 6313a65824 Define COMPAT7 in Release mode too, to copy the DLL over to UI 2016-11-30 11:59:55 +01:00
Stephan e29f8bedb5 Fix tests 2016-11-29 19:05:36 +01:00
Sebastiaan Janssen 677cc74a61 Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2016-11-29 18:02:49 +01:00
Sebastiaan Janssen 4855466b38 Merge remote-tracking branch 'origin/dev-v7.6' into dev-v8
# Conflicts:
#	build/NuSpecs/UmbracoCms.Core.nuspec
#	src/Umbraco.Core/DatabaseContext.cs
#	src/Umbraco.Core/Persistence/DefaultDatabaseFactory.cs
#	src/Umbraco.Core/Persistence/PetaPoco.cs
#	src/Umbraco.Core/Persistence/UmbracoDatabase.cs
#	src/Umbraco.Core/Services/ContentTypeService.cs
#	src/Umbraco.Core/UmbracoApplicationBase.cs
#	src/Umbraco.Web.UI/packages.config
#	src/Umbraco.Web/Scheduling/LogScrubber.cs
#	src/Umbraco.Web/Scheduling/ScheduledPublishing.cs
#	src/Umbraco.Web/Search/ExamineEvents.cs
#	src/Umbraco.Web/Strategies/ServerRegistrationEventHandler.cs
#	src/Umbraco.Web/UI/Controls/UmbracoControl.cs
#	src/Umbraco.Web/UI/Controls/UmbracoUserControl.cs
#	src/Umbraco.Web/Umbraco.Web.csproj
#	src/Umbraco.Web/UmbracoModule.cs
#	src/Umbraco.Web/packages.config
#	src/Umbraco.Web/umbraco.presentation/content.cs
#	src/Umbraco.Web/umbraco.presentation/library.cs
#	src/Umbraco.Web/umbraco.presentation/macro.cs
#	src/Umbraco.Web/umbraco.presentation/template.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadMacros.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/create/macroTasks.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/developer/RelationTypes/EditRelationType.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/editMacro.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/insertMacro.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/plugins/tinymce3/insertMacro.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/settings/editTemplate.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/PreValueExtensions.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/RelationTypeExtensions.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/uQuery-Content.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/uQuery-DataTypes.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/uQuery-PreValues.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/uQuery-UmbracoObjectType.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/uQuery.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/webservices/TagsAutoCompleteHandler.ashx.cs
#	src/UmbracoExamine/DataServices/UmbracoContentService.cs
#	src/umbraco.businesslogic/BasePages/BasePage.cs
#	src/umbraco.businesslogic/Log.cs
#	src/umbraco.businesslogic/User.cs
#	src/umbraco.cms/businesslogic/CMSNode.cs
#	src/umbraco.cms/businesslogic/Content.cs
#	src/umbraco.cms/businesslogic/ContentType.cs
#	src/umbraco.cms/businesslogic/Dictionary.cs
#	src/umbraco.cms/businesslogic/Packager/Package.cs
#	src/umbraco.cms/businesslogic/Property/Property.cs
#	src/umbraco.cms/businesslogic/RecycleBin.cs
#	src/umbraco.cms/businesslogic/Tags/Tag.cs
#	src/umbraco.cms/businesslogic/datatype/BaseDataType.cs
#	src/umbraco.cms/businesslogic/datatype/DataEditorSettingsStorage.cs
#	src/umbraco.cms/businesslogic/datatype/DefaultData.cs
#	src/umbraco.cms/businesslogic/datatype/DefaultPreValueEditor.cs
#	src/umbraco.cms/businesslogic/datatype/PreValue.cs
#	src/umbraco.cms/businesslogic/datatype/PreValues.cs
#	src/umbraco.cms/businesslogic/macro/macroPropertyType.cs
#	src/umbraco.cms/businesslogic/member/Member.cs
#	src/umbraco.cms/businesslogic/member/MemberGroup.cs
#	src/umbraco.cms/businesslogic/propertytype/propertytype.cs
#	src/umbraco.cms/businesslogic/relation/Relation.cs
#	src/umbraco.cms/businesslogic/relation/RelationType.cs
#	src/umbraco.cms/businesslogic/template/Template.cs
#	src/umbraco.cms/businesslogic/web/Document.cs
#	src/umbraco.cms/businesslogic/web/DocumentType.cs
#	src/umbraco.cms/businesslogic/workflow/Notification.cs
#	src/umbraco.cms/packages.config
#	src/umbraco.datalayer/SqlHelpers/MySql/MySqlInstaller.cs
#	src/umbraco.editorControls/BaseDataType.cs
#	src/umbraco.editorControls/DefaultData.cs
#	src/umbraco.editorControls/DefaultDataKeyValue.cs
#	src/umbraco.editorControls/DefaultPrevalueEditor.cs
#	src/umbraco.editorControls/KeyValuePrevalueEditor.cs
#	src/umbraco.editorControls/PickerRelations/PickerRelationsDataEditor.cs
#	src/umbraco.editorControls/PickerRelations/PickerRelationsEventHandler.cs
#	src/umbraco.editorControls/SettingControls/Pickers/Field.cs
#	src/umbraco.editorControls/imagecropper/PrevalueEditor.cs
#	src/umbraco.editorControls/macrocontainer/PrevalueEditor.cs
#	src/umbraco.editorControls/mediapicker/MediaPickerPrevalueEditor.cs
#	src/umbraco.editorControls/memberpicker/memberPicker.cs
#	src/umbraco.editorControls/packages.config
#	src/umbraco.editorControls/tags/PrevalueEditor.cs
#	src/umbraco.editorControls/tinymce/tinyMCEPreValueConfigurator.cs
#	src/umbraco.editorControls/ultimatepicker/ultimatePickerPrevalueEditor.cs
#	src/umbraco.editorControls/umbraco.editorControls.csproj
#	src/umbraco.editorControls/uploadfield/uploadFieldPreValue.cs
#	src/umbraco.editorControls/userControlWrapper/usercontrolPrevalueEditor.cs
2016-11-29 18:01:43 +01:00
Stephan 80503c92ce Fix cmsContentNu table creation during install 2016-11-29 11:34:51 +01:00
Stephan 581f3d791f Fix persistence layer refactoring 2016-11-29 11:31:38 +01:00
Stephan 6f91f8c2d7 Improve BootLoader logging in case of errors 2016-11-29 11:31:29 +01:00
Stephan feea4430f6 Fix dependencies 2016-11-29 10:48:47 +01:00
Stephan d407038141 Fix owin:AppStartup setting 2016-11-29 10:32:43 +01:00
Stephan a49af20275 More persistence layer refactoring 2016-11-29 10:31:25 +01:00
Stephan 74604c69f9 Fix tests after merge 2016-11-25 14:08:23 +01:00
Stephan 8e056aba66 Merge origin/dev-v7.6 into dev-v8-zbwip (builds, not tested) 2016-11-23 10:33:12 +01:00
bjarnef e501f0f612 Fix positioning of file icon extension label 2016-11-15 21:26:57 +01:00
Tim Geyssens 7aeea96e23 First take localized text into account before the title property when working with tree headers 2016-11-11 11:45:25 +01:00
Stephan 50f7af2823 Making tests less random! 2016-11-08 18:11:28 +01:00
Stephan 5d632b2426 More structuring & minor fixes 2016-11-08 17:38:05 +01:00
Stephan babf00f510 Keep structuring tests 2016-11-07 20:50:14 +01:00
Stephan 2967add41a Keep structuring tests 2016-11-07 19:12:09 +01:00
Stephan 224986d56c Trying to cleanup and refactor tests 2016-11-07 18:32:44 +01:00
Stephan b9d39db995 Refactor build, put tests in the right place 2016-11-05 17:57:29 +01:00
Stephan dc75b20bc6 Refactor build, tests configuration is always Debug 2016-11-05 15:40:45 +01:00
Stephan ed9abcf181 Refactor build, better to build tests 2016-11-05 15:33:27 +01:00
Stephan d33083a2e6 Refactor build, why build tests separately? 2016-11-05 13:44:03 +01:00
Stephan 8aa730d986 Ensure U4-8720 is properly merged into v8 2016-11-05 13:16:22 +01:00
Stephan 467ed87c3b Ensure U4-8729 is properly merged into v8 2016-11-05 10:32:09 +01:00
Stephan bbe1825847 Ensure U4-8663 is properly merged into v8 2016-11-05 10:23:39 +01:00
Stephan a28b916534 Fix NPoco stuff 2016-11-04 19:19:16 +01:00
Stephan c6e4e3b3ed Merge origin/dev-v7-deploy into dev-v8-zbwip 2016-11-04 18:40:42 +01:00
Stephan a4c3d3ec2d Not supposed to have jquery.unobtrusive-ajax.min.js anymore? 2016-11-04 12:36:41 +01:00
Stephan f825ed6bb4 Post-merge fixing (running) 2016-11-04 12:14:42 +01:00
Stephan 3f4306a05f Consolidate and update dependencies 2016-11-04 12:05:51 +01:00
Stephan b29bc66026 Post-merge fixing & refactoring (tests ok) 2016-11-04 11:36:58 +01:00
Stephan b26b415096 Merge origin/dev-v7-deploy into dev-v8-zbwip (builds) 2016-11-03 10:31:44 +01:00
Stephan d44ee715a9 Minor cleanup 2016-10-20 12:22:08 +02:00
Stephan ec68993448 Cleanup hybrid accessors 2016-10-20 10:52:11 +02:00
Stephan acca83a6b1 Boot time optimization 2016-10-19 15:35:27 +02:00
Stephan c9adb39946 Explicitely register persistence mappers 2016-10-19 15:35:26 +02:00
Stephan b7ef002da5 Cleanup SignalR 2016-10-19 15:35:25 +02:00
Stephan a1c11d17ea Fix typo 2016-10-19 13:56:58 +02:00
Stephan 42adb46f2a Move Examine entirely to its own component 2016-10-19 13:56:57 +02:00
Stephan 33a773a0b9 Cleanup UmbracoContext 2016-10-18 17:28:36 +02:00
Stephan 88593b0bf3 Deal with fixme in FacadeRouter 2016-10-18 16:16:46 +02:00
Stephan 0fdd94e489 More fixes in Core DI 2016-10-17 18:53:21 +02:00
Stephan 422fef84ff Minor fix in Core DI 2016-10-17 15:16:07 +02:00
Stephan d8ba9723c8 Fix Umbraco.Core dependencies 2016-10-17 12:44:31 +02:00
Stephan 60a172343f Build TLC 2016-10-17 12:40:43 +02:00
Stephan 92c55e302f Oops, U4-8626 colateral WIP 2016-10-17 11:00:19 +02:00
Stephan 341e817fd5 Get tests to run, troubleshoot 2016-10-17 11:00:18 +02:00
Stephan 422a9cf162 Stop LightInject scanning of assemblies 2016-10-17 11:00:15 +02:00
Stephan 3c698cbf8c Refactor UmbracoContext, PublishedContentRequest... 2016-10-17 11:00:14 +02:00
Stephan 187e5ed751 Add and use ArgumentNullOrEmptyException 2016-10-17 11:00:13 +02:00
Stephan a00ee8d275 Rename DependencyInjection into DI, cleanup components, compose 2016-10-17 11:00:12 +02:00
Stephan 172ae81924 Build TLC 2016-10-17 11:00:09 +02:00
Stephan 11e41ee07e Restoring most resolvers in Compat7 2016-10-17 11:00:08 +02:00
Stephan 3bee1d3bce Version 8.0.0-alpha0020 2016-10-17 11:00:07 +02:00
Stephan 7784dfbbcb Upgrade ModelsBuilder to 8.0.0-alpha0005 2016-09-19 16:33:49 +02:00
Stephan 3a34e1fb90 Introduce Umbraco.Compat7 2016-09-19 16:33:48 +02:00
Stephan e9648f8d7b Introduce SafeCallContext 2016-09-19 16:33:48 +02:00
Stephan 5c2232aa3b Refactor logging and profiling, boot reporting 2016-09-19 16:33:47 +02:00
Stephan 091816a2ea RIP IApplicationEventHandler 2016-09-19 16:33:45 +02:00
Stephan 9fb9472193 Refactor hybrid accessors for async 2016-09-19 16:33:44 +02:00
Stephan 0597eea72b Resvolution - Components, Runtime & Booting 2016-09-19 16:33:43 +02:00
Stephan 18f3a7fbab Resvolution - Runtime components, fixing, cleanup 2016-09-19 16:33:42 +02:00
Stephan f32d984fbb Resvolution - Components 2016-09-19 16:33:41 +02:00
Stephan e25e77f167 Resvolution - WIP running without Resolution 2016-09-19 16:33:40 +02:00
Stephan 9dcc6b285f Resvolution - Booting 2016-09-19 16:33:39 +02:00
Stephan 9949f07a46 Resvolution - Loggers & Booting 2016-09-19 16:33:38 +02:00
Stephan 3707db6c21 Resvolution - ShortStringHelperResolver 2016-09-19 16:33:37 +02:00
Stephan 376dec2fed Resvolution - CultureDictionaryFactoryResolver 2016-09-19 16:33:36 +02:00
Stephan 352e02f064 Resvolution - ServerRegistrarResolver 2016-09-19 16:33:36 +02:00
Stephan 9782fc7083 Resvolution - ServerMessengerResolver 2016-09-19 16:33:35 +02:00
Stephan d5dd17746d Resvolution - PublishedContentModelFactoryResolver 2016-09-19 16:33:34 +02:00
Stephan 784f290f7b Resvolution - DefaultRenderMvcControllerResolver 2016-09-19 16:33:33 +02:00
Stephan 3b46539c98 Resvolution - SiteDomainHelperResolver 2016-09-19 16:33:32 +02:00
Stephan ce5ba3be2a Resvolution - FacadeServiceResolver 2016-09-19 16:33:32 +02:00
Stephan 1535079ee7 Resvolution - Kill 2016-09-19 16:33:31 +02:00
Stephan c4a00dbfb2 Resvolution - ImageUrlProviderResolver 2016-09-19 16:33:30 +02:00
Stephan 7ba122f124 Resvolution - FilteredControllerFactoriesResolver 2016-09-19 16:33:29 +02:00
Stephan cd432ddc57 Resvolution - SurfaceControllerResolver 2016-09-19 16:33:28 +02:00
Stephan 169735dab9 Resvolution - UmbracoApiControllerResolver 2016-09-19 16:33:28 +02:00
Stephan cac14d57eb Resvolution - ThumbnailProvidersResolver 2016-09-19 16:33:27 +02:00
Stephan 39e46ae0d6 Resvolution - PropertyValueConvertersResolver 2016-09-19 16:33:26 +02:00
Stephan 9608e9ca97 Resvolution - Prepare 2016-09-19 16:33:25 +02:00
Stephan efcd1d5483 Resvolution - Kill 2016-09-19 16:33:24 +02:00
Stephan 1b9aa68bb2 Resvolution - PackageActionsResolver 2016-09-19 16:33:24 +02:00
Stephan 713484eb26 Resvolution - Prepare, Tests 2016-09-19 16:30:45 +02:00
Stephan 69ab8c7afd Resvolution - XsltExtensionsResolver 2016-09-19 16:30:44 +02:00
Stephan a45ffb71a4 Resvolution - ValidatorsResolver 2016-09-19 16:30:43 +02:00
Stephan b1d6757952 Resvolution - EditorValidationResolver 2016-09-19 16:30:42 +02:00
Stephan 6b17156fe8 Resvolution - ParameterEditorResolver 2016-09-19 16:30:41 +02:00
Stephan aa8b8c7736 Resvolution - MappingResolver 2016-09-19 16:30:40 +02:00
Stephan 648632bd36 Resvolution - ContentLastChanceFinderResolver 2016-09-19 16:30:39 +02:00
Stephan 55eb813536 Resvolution - PropertyEditorResolver 2016-09-19 16:30:38 +02:00
Stephan 33ed19da1b Resvolution - ContentFinderResolver 2016-09-19 16:30:37 +02:00
Stephan e49a3f4c72 Resvolution - MigrationResolver 2016-09-19 16:30:36 +02:00
Stephan bbd632f644 Resvolution - ActionResolver 2016-09-19 16:30:35 +02:00
Stephan d8d736edda Resvolution - HealthCheckResolver 2016-09-19 16:30:35 +02:00
Stephan ebaeb98a4a Resvolution - UrlProviderResolver 2016-09-19 16:30:34 +02:00
Stephan da685167f7 Resvolution - UrlSegmentProviderResolver 2016-09-19 16:30:33 +02:00
Stephan caf3c4280a Resvolution - CacheRefresherResolver 2016-09-19 16:30:32 +02:00
Stephan ac271dfc3f Resvolution - Refactor 2016-09-19 16:30:31 +02:00
Stephan 09c3894209 Resvolution - Refactor, UrlProviderResolver 2016-09-19 16:30:30 +02:00
Stephan bda2dbfb88 Resvolution - Refactor 2016-09-19 16:30:30 +02:00
Stephan 5ee6a8c47b Resvolution - UrlSegmentProviderResolver 2016-09-19 16:30:29 +02:00
Stephan f43967c7b1 Resvolution - Refactor 2016-09-19 16:30:28 +02:00
Stephan 4e368f8d42 Resvolution - UrlSegmentProvider 2016-09-19 16:30:27 +02:00
Stephan 0817ffdd28 Resvolution - Prepare 2016-09-19 16:30:26 +02:00
Stephan dbdff2e2c4 Resvolution - PluginManager 2016-09-19 16:30:25 +02:00
Stephan 10c202cb9e Bugfix - ioc and replacing singletons 2016-09-19 16:30:24 +02:00
Martin Blackwell afc2363163 Resolution for U4-8927 2016-08-31 16:22:41 +01:00
David Brendel 25130065f7 U4-7542
Moved member type tree to settings
2016-08-17 17:22:53 +02:00
David Brendel a53a572335 Merge remote-tracking branch 'refs/remotes/umbraco/dev-v8' into dev-v8 2016-08-17 17:07:30 +02:00
Stephan e3343e6a2f UrlRedirect - bugfix 2016-08-15 13:08:00 +02:00
Stephan 17585e14e8 TEMP - HealthCheck and NuCache 2016-07-21 14:55:19 +02:00
Stephan 3fb2b97069 Fix lazy container resolver 2016-07-21 14:54:43 +02:00
Stephan 86968f218c Version 8.0.0-alpha0016 2016-07-21 11:07:34 +02:00
Stephan 4c74bd577a Fix build after rebase 2016-07-21 11:07:25 +02:00
Stephan 670659cca5 Feature - live SignalR preview - files 2016-07-21 10:31:29 +02:00
Stephan b7421537c5 Version 8.0.0-alpha0015 2016-07-21 10:27:04 +02:00
Stephan e5d3a777f2 Bugfix - Container resolvers & conflict issues 2016-07-21 10:27:04 +02:00
Stephan de68c02dfc Feature - live SignalR preview - nuget 2016-07-21 10:25:44 +02:00
Stephan bd2fa49581 Version 8.0.0-alpha0011 2016-07-21 10:25:44 +02:00
Stephan 61aa38a11f Bugfix - controller injection in Release mode 2016-07-21 10:23:29 +02:00
Stephan dbd7dc4252 Bugfix - views web.config 2016-07-21 10:23:29 +02:00
Stephan 9798e7d70c Bugfix - NuSpec for ModelsBuilder 2016-07-21 10:23:29 +02:00
Stephan 93539e4702 Bugfix - resolvers and ioc 2016-07-21 10:23:29 +02:00
Stephan 73185e93c2 NuCache - minor cleanup 2016-07-21 10:23:29 +02:00
Stephan bf22954abc Bugfix - MainDom must accept duplicate callback weights 2016-07-21 10:23:29 +02:00
Stephan 466438484a Upgrade ModelsBuilder to 8.0.0-alpha0003 2016-07-21 10:23:29 +02:00
Stephan 515b880e70 Bugfix - ContainerSingleObjectResolver 2016-07-21 10:23:29 +02:00
Stephan 6afe04837a Cleanup - PublishedContentModelFactory 2016-07-21 10:23:29 +02:00
Stephan 5497261eed Upgrade ModelsBuilder to 8.0.0-alpha0002 2016-07-21 10:23:29 +02:00
Stephan a43b47f9ba Upgrade ModelsBuilder to 8.0.0-alpha0001 2016-07-21 10:23:29 +02:00
Stephan 1f55f1c443 Version 8.0.0-alpha0007 2016-07-21 10:22:20 +02:00
Stephan 8f2522dd3e Fix NuSpec ranges 2016-07-21 10:21:53 +02:00
Stephan 9edffa010d Upgrade NuGet dependencies 2016-07-21 10:20:23 +02:00
Stephan 5cb3a3be2b Consolidate NuGet dependencies 2016-07-21 10:07:12 +02:00
Stephan 36c60c9b81 U4-8710 - from Umbraco.Field... try to re-implement 2016-07-21 10:03:11 +02:00
Stephan ffb30123cc U4-8710 - from Umbraco.Field, GetPropertyValue to Value 2016-07-21 10:03:11 +02:00
Stephan 9332335dff U4-8709 - refactor UmbracoViewPage, RenderModel 2016-07-21 10:03:11 +02:00
Stephan d2de66ab5c U4-8626 - kill typed queries 2016-07-21 10:03:11 +02:00
Stephan cdb1f29ec0 U4-8626 - kill dynamic support 2016-07-21 10:03:11 +02:00
Stephan 216329c096 Cleanup - kill IScopeContextAdapter, use accessors 2016-07-21 09:59:37 +02:00
Stephan f4ff50a03f Cleanup - file permission helper 2016-07-21 09:51:27 +02:00
Stephan a8bb18ecae Refactor - IPublishedContent, converters, fragments (cont) 2016-07-21 09:49:06 +02:00
Stephan 12e5372148 U4-8649 - apply to v8 2016-07-21 09:49:06 +02:00
Stephan d08412c0fe Refactor - IPublishedContent, converters, fragments 2016-07-21 09:37:40 +02:00
Stephan 78ab9c087d U4-7014 - merge IServerRegistrar2 into IServerRegistrar 2016-07-21 09:34:17 +02:00
Stephan a8975e6c41 NuCache - bugfix, must sort nodes when reloading from local db 2016-07-21 09:34:17 +02:00
Stephan f7e86eab3e Feature - live SignalR preview 2016-07-21 09:34:17 +02:00
Claus 71dc910623 Feature - live SignalR preview 2016-07-20 19:31:52 +02:00
Stephan a4a73d5586 Bugfix - container-based many resolvers 2016-07-20 19:31:30 +02:00
Stephan 0987b2d646 Cleanup - Attempt 2016-07-20 19:31:02 +02:00
Stephan be2d81154b U4-6674 - Kill ToContentSet, becomes ToIndexedArray 2016-07-20 19:30:42 +02:00
Stephan cfa91f000b Merge IPublishedContentWithKey into IPublishedContent 2016-07-20 19:30:42 +02:00
Stephan 9fe9f9d167 Cleanup - DisposableObject & disposing UmbracoContext 2016-07-20 19:30:15 +02:00
Stephan 5a839c3654 Cleanup - preview & forcing preview 2016-07-20 19:30:15 +02:00
Stephan e87e579e90 Cleanup - fix current UmbracoContext in async (but, really...) 2016-07-20 19:30:15 +02:00
Stephan df8dca6dee Cleanup - lazy PublishedPropertyType initialization 2016-07-20 19:28:17 +02:00
Stephan c0b9b050e9 Cleanup - fix broken stuff after cleanup 2016-07-20 19:28:17 +02:00
Stephan 74b8e5ba36 Cleanup - UmbracoContext and injection 2016-07-20 19:28:17 +02:00
Stephan ef013f9d3b Cleanup - Examine events 2016-07-20 19:23:09 +02:00
Stephan 5261a53a5d Cleanup - domains 2016-07-20 19:23:09 +02:00
Stephan fae688b896 Cleanup - membership 2016-07-20 19:23:09 +02:00
Stephan 2345d0c543 Cleanup - macros 2016-07-20 19:23:09 +02:00
Stephan f8d6c90193 Cleanup - ContentController ctor 2016-07-20 19:23:09 +02:00
Stephan ffeeb4f7d4 Cleanup - more distributed cache cleanup 2016-07-20 19:23:09 +02:00
Stephan ecadb918f2 Cleanup - no more stylesheet cache refresher 2016-07-20 19:23:09 +02:00
Stephan 0b041b28fa Cleanup - kill IsInRecycleBin and trust Trashed 2016-07-20 19:23:09 +02:00
Stephan 79195c5c7d Cleanup - minor stuff 2016-07-20 19:23:09 +02:00
Stephan 6e8fc27c13 U4-8397 - Cleanup server registration db & cache 2016-07-20 19:23:09 +02:00
Stephan f1fd918120 Cleanup - member (group) service 2016-07-20 19:23:09 +02:00
Stephan b2830f0c7d Cleanup - deleting non-empty containers 2016-07-20 19:23:09 +02:00
Stephan 88f9deda95 Cleanup - MediaService & ContentService 2016-07-20 19:23:09 +02:00
Stephan ccc701c298 Cleanup - TypeHelper 2016-07-20 19:23:09 +02:00
Stephan 2c12f4a82a Cleanup - VersionableRepositoryBase 2016-07-20 19:23:09 +02:00
Stephan b092c09c4b Cleanup - repository events = todo 2016-07-20 19:23:09 +02:00
Stephan 0c8cfbb7fa Cleanup - sub-repositories 2016-07-20 19:23:09 +02:00
Stephan ded5848e4c Cleanup - NPoco bulk inserts 2016-07-20 19:23:09 +02:00
Stephan d9fe474269 Cleanup - legacy template 2016-07-20 19:23:09 +02:00
Stephan f90f2e50c3 Cleanup - published member 2016-07-20 19:23:09 +02:00
Stephan c85626a4f1 Facade - cleanup 2016-07-20 19:23:09 +02:00
Stephan 03107dc82b Facade - use NoCache policy when reloading 2016-07-20 19:23:09 +02:00
Stephan 7c5542dca3 Facade - Cleanup access to 'current' 2016-07-20 19:23:09 +02:00
Stephan bc45dd8d6a U4-8536 - removing db.GetTransaction wherever possible 2016-07-20 19:22:26 +02:00
Stephan f584404324 U4-8551 - import NuCache code 2016-07-20 18:43:53 +02:00
Stephan 6e84e085c1 Merge branch dev-v8 into temp-u4-8497 2016-07-20 18:04:41 +02:00
Sebastiaan Janssen fe61553243 Also restore Examine packages to get it in the correct path for Build.bat 2016-07-20 17:41:56 +02:00
Stephan a0f2d63451 Fix build batch (is it real? take11) 2016-07-20 17:11:34 +02:00
Stephan 4a98c63de1 Fix build batch (is it real? take10) 2016-07-20 16:53:29 +02:00
Stephan 81341f7c32 Fix build batch (is it real? take9) 2016-07-20 16:36:54 +02:00
Stephan 21bf1c9c42 Fix build batch (is it real? take8) 2016-07-20 16:29:50 +02:00
Stephan 4ec0038b71 Fix build batch (is it real? take7) 2016-07-20 16:24:42 +02:00
Stephan 3fe84472a6 Fix build batch (is it real? take6) 2016-07-20 16:23:22 +02:00
Stephan 6528e6a204 Fix build batch (is it real? take5) 2016-07-20 16:03:12 +02:00
Stephan 77a38a6a32 Fix build batch (is it real? take4) 2016-07-20 16:01:11 +02:00
Stephan 16fb2cee26 Fix build batch (is it real? take3) 2016-07-20 15:37:14 +02:00
Stephan 247d9f8029 Fix build batch (is it real? take2) 2016-07-20 15:25:49 +02:00
Stephan f4aad94505 Fix build batch (is it real?) 2016-07-20 15:10:33 +02:00
Stephan f9fd8b67b1 Fix build after merge 2016-07-20 13:33:47 +02:00
Stephan 5df967355a Fix appveyor.yml (need blank lines) 2016-07-20 12:42:20 +02:00
Stephan c37effa668 Fix appveyor.yml (need blank lines) 2016-07-20 12:41:19 +02:00
Stephan ecee4d3702 Merge branch dev-v8 into temp-u4-8497 2016-07-20 12:38:57 +02:00
Stephan d6462370fc Fix after merge 2016-07-20 11:31:20 +02:00
Stephan c9152e3aca Fix build after merge 2016-07-18 15:00:08 +02:00
Stephan 77c2766d55 Merge branch origin/dev-v7 into dev-v8 2016-07-18 14:42:06 +02:00
Stephan d04efbf5a4 Retarget migrations after merge 2016-07-18 10:54:27 +02:00
Stephan 2594fa423f Cleanup after merge 2016-07-18 10:50:41 +02:00
Stephan a66cf484e8 Fix more tests after merge 2016-07-18 10:37:37 +02:00
Stephan 554b943931 Fix tests after merge 2016-07-08 19:20:57 +02:00
Stephan e19471fea7 Build - cleanup build.bat 2016-07-08 19:10:34 +02:00
Stephan be056869f0 Fix build after merge 2016-07-08 18:31:37 +02:00
Stephan 3c7245f9ba Merge origin/dev-v7 into dev-v8 2016-07-08 16:32:06 +02:00
Stephan f8b315dad0 Build - fix warnings 2016-07-08 14:17:49 +02:00
Stephan 9792aebf00 Build - fix InstallGit.cmd 2016-07-08 14:16:36 +02:00
Sebastiaan Janssen 7d6cbee9e6 Add msbuild.log to artifacts so we can easily figure out build errors if they occur 2016-07-08 14:15:03 +02:00
Stephan 263109d6ad Can we fix build.bat? 2016-07-08 13:47:32 +02:00
Sebastiaan Janssen 45e48c483d Makes the build of the Tests project quiet too
Do not PAUSE if the build fails, the build server will get stuck or an hour
2016-07-08 13:47:19 +02:00
Sebastiaan Janssen 423df156c1 Makes the build output only show warnings and errors so it's easier to pinpoint problems 2016-07-08 13:47:07 +02:00
Stephan 853e2c7888 Build - cleanup InstallGit 2016-07-08 13:46:23 +02:00
Sebastiaan Janssen 54009a04c3 Makes sense, recent commit removed one of these classes 2016-06-21 17:58:04 +02:00
Stephan f54022c5d2 Fix exception in DefaultDatabaseFactory during installs 2016-06-21 17:38:08 +02:00
Sebastiaan Janssen f58c9b5056 Merge branch 'u4-8191' of https://github.com/AndyButland/Umbraco-CMS into AndyButland-u4-8191
Conflicts:
	src/Umbraco.Web/umbraco.presentation/umbraco/Trees/UserPermissions.cs
2016-06-21 17:33:57 +02:00
Stephan a512880855 U4-8553 - NPoco 3.3.4 2016-06-20 16:42:25 +02:00
Stephan bc0a4a8b05 U4-8497 - don't load content cache before running upgrades 2016-06-07 16:42:24 +02:00
Stephan f9dc594e25 Merge branch 'dev-v8' into temp-u4-8497 2016-06-02 15:15:31 +02:00
Shannon Deminick 9959d58fbc Merge pull request #1300 from umbraco/temp-u4-8400
U4-8400 (part) - cleanup repository cache policies
2016-06-02 14:51:29 +02:00
Stephan bc375e5fc2 U4-8400 - kill repository cache policy factories 2016-06-02 10:44:06 +02:00
Stephan 743a1451f5 U4-8400 - cleanup and document repository cache policies 2016-06-02 10:36:19 +02:00
Stephan 90500af915 Merge dev-v8 into temp-u4-8497 2016-06-02 10:03:14 +02:00
Sebastiaan Janssen 4ba1692b49 Remove some debug info an unnecessary path modification 2016-06-01 22:34:38 +02:00
Sebastiaan Janssen 8ec981f72e Missing CDF dependency 2016-06-01 22:04:09 +02:00
Sebastiaan Janssen 3314d4ccdf Trying to get datalayer to build 2016-06-01 21:56:43 +02:00
Sebastiaan Janssen 5732d12f8d Seems like we're gettting there.. 2016-06-01 14:08:21 +02:00
Sebastiaan Janssen 988b0485b9 Oops, forgot to remove experiments 2016-06-01 14:02:09 +02:00
Sebastiaan Janssen e627b55ec7 Okay, let's put the packages where AppVeyor is actually looking for them then 2016-06-01 13:55:58 +02:00
Sebastiaan Janssen 3b74e660a7 Is this path supported? 2016-06-01 13:45:59 +02:00
Sebastiaan Janssen 518e266832 AppVeyor recommends this method for doing package restore 2016-06-01 13:27:46 +02:00
Shannon bad6785ac6 Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2016-06-01 13:24:23 +02:00
Shannon 1c82d8ac4e argh! no more extension methods that depend on singletons 2016-06-01 13:24:12 +02:00
Sebastiaan Janssen 570fd86919 Letting this restore be verbose for a minute because I think it has some problems 2016-06-01 13:16:18 +02:00
Shannon Deminick f5f7cf8d63 Merge pull request #1277 from umbraco/temp-u4-8447
U4-8447
2016-06-01 12:57:01 +02:00
Sebastiaan Janssen 0f0718db80 Hopefully fixes the build 2016-06-01 12:51:08 +02:00
Sebastiaan Janssen 347732463f Continued from PR 1254 (#1296)
* Changes Umbraco.Core to use project.json for package references, instead of nuget (next is the Web proj)

Changes the build to use correct version of MSBuild
Updates the Web.UI project to reference Microsoft.CodeDom.Providers.DotNetCompilerPlatform so that we can use c# 6 in views
Updates all other projects to use auto-package restore instead of the legacy nuget target restore

* Updates Umbraco.Web to use project.json - removes the lock file (will ignore)

* updates ignore to ignore lock files

* forgot about the tests project, removed the old nuget targets

* Need to restore some packages before we can build

* Update to latest nuget.exe which understands project.json

* This happened automatically, I'm guessing new NuGet removed these

* Correctly restore all necessary packages

* Fix merge problems and package version dependency conflicts

* Removes unnecessary file

* Removes unnecessary file

* Some things didn't make it during the merge, re-applying

* And even more changes that got reverted

* And even more changes that got reverted
2016-06-01 12:37:52 +02:00
Shannon b7985cb2c8 Merge remote-tracking branch 'origin/dev-v7' into dev-v8
# Conflicts:
#	src/Umbraco.Web/PropertyEditors/FileUploadPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/GridPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/ImageCropperPropertyEditor.cs
2016-06-01 12:20:12 +02:00
Shannon 11552da6ec reverts change made to remove the 'child container' - this actually works well and doesn't interfere with the main container's scope mananger. Ignores the one failing test, need to ask Stephan 2016-06-01 00:36:10 +02:00
Shannon df9160b3cd Removes the 'Child Container' idea (that was bad and would consume lots of mem) and instead we use Scopes. Ensures that the app event handlers are creating during a single Scope operation in the CoreBootManager. Changes MigrationBase and all sub-classes to have an IMigrationContext as a ctor param. Updates the MigrationResolver to resolve Migration instances with the passed in IMigrationContext value. Simplifies MigrationBase since now we know we have a context to work with, there's no need to GetUp/GetDown Expression methods. Updates the MigrationRunner to use the MigrationContext instead of creating one itself. 2016-05-31 23:29:15 +02:00
Shannon a1b6240299 Fixes more merge issues and tests, removes lucene dependency from core (not sure why it was there), creates IExamineIndexCollectionAccessor for better testing for classes that require access to the indexers like the GridPropertyEditor. 2016-05-31 19:24:33 +02:00
Shannon c025dd463f Fixes up merging issues, bit of manual process with this one 2016-05-31 17:24:40 +02:00
Shannon 6a5a736877 Merge remote-tracking branch 'origin/dev-v7' into dev-v8
# Conflicts:
#	.gitignore
#	build/UmbracoVersion.txt
#	src/Umbraco.Core/Configuration/UmbracoVersion.cs
#	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/UpdateRelatedLinksData.cs
#	src/Umbraco.Core/Services/DataTypeService.cs
#	src/Umbraco.Core/Xml/XmlHelper.cs
#	src/Umbraco.Tests/Routing/UrlRoutingTestBase.cs
#	src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs
#	src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs
#	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
#	src/Umbraco.Web.UI/config/ClientDependency.config
#	src/Umbraco.Web.UI/umbraco/config/lang/da.xml
#	src/Umbraco.Web/PropertyEditors/GridPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/ImageCropperPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/LabelPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/MultipleMediaPickerPropertyEditor.cs
#	src/Umbraco.Web/Routing/ContentFinderByLegacy404.cs
#	src/Umbraco.Web/Routing/NotFoundHandlerHelper.cs
#	src/Umbraco.Web/Umbraco.Web.csproj
#	src/Umbraco.Web/umbraco.presentation/content.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/create/DLRScriptingTasks.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/create/language.ascx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/developer/Python/editPython.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/sendToTranslation.aspx.cs
#	src/umbraco.cms/businesslogic/Packager/Installer.cs
#	src/umbraco.cms/businesslogic/translation/Translation.cs
2016-05-31 16:00:32 +02:00
Shannon 2f44241439 fixes test 2016-05-31 15:17:00 +02:00
Stephan 18351b57b4 Consolidate on NewtonSoft.Json 8.0.3 2016-05-31 11:28:33 +02:00
Stephan ec4373a4df Upgraded to NPoco 3.3.3 2016-05-31 11:27:51 +02:00
Stephan a71894f1ec Merge branch 'temp-u4-8447' into temp-u4-8497 2016-05-30 18:45:47 +02:00
Stephan 7a9ff1fc3b U4-8447 - bugfix 2016-05-30 18:45:33 +02:00
Stephan 669d64dff4 Merge temp-u4-8447 into temp-u4-8497 2016-05-30 18:38:47 +02:00
Stephan a514ffc258 U4-8447 - fix xml serialization 2016-05-30 18:32:32 +02:00
Stephan 8c33a31f37 U4-8447 - fix services setup 2016-05-30 17:56:25 +02:00
Stephan ba7638793f U4-8497 - fixing... tests green 2016-05-27 12:48:38 +02:00
Stephan 2e4e8a3fbc U4-8497 - fixing tests... 2016-05-26 19:20:33 +02:00
Stephan 23ce1e5b6e U4-8447 - prepare for NuCache (fixing, now builds) 2016-05-26 18:48:35 +02:00
Stephan 06574b8b40 U4-8447 - prepare for NuCache (work-in-progress) 2016-05-26 17:12:04 +02:00
Stephan 8682940efb Merge branch 'dev-v8' into temp-u4-8447 2016-05-23 13:58:34 +02:00
Stephan 6b88714cdc U4-8447 - MediaService & MemberService 2016-05-23 13:56:59 +02:00
Stephan 4d852102e8 Refactor tests 2016-05-23 13:56:58 +02:00
Stephan 4870c228dc Fix tests 2016-05-20 11:24:30 +02:00
Shannon 1d2b629b66 Removes legacy MemberGroup business logic. 2016-05-19 19:44:46 +02:00
Shannon 23394b4eff Removes Relation and RelationType legacy business logic classes! 2016-05-19 19:36:30 +02:00
Shannon db1cac6086 Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2016-05-19 19:21:00 +02:00
Shannon b268f76aa9 Removes umbraco.cms.businesslogic.Dictionary !!! 2016-05-19 19:20:49 +02:00
Stephan a8850f8c0b Merge pull request #1247 from umbraco/dev-v8-ExamineV2
Examine v2 integration
2016-05-19 18:52:31 +02:00
Stephan 21fb67654b Merge dev-v8 into dev-v8-ExamineV2 2016-05-19 18:52:09 +02:00
Stephan 63a86704b6 Cleanup 2016-05-19 18:50:05 +02:00
Stephan b3a83e274f Fix tests 2016-05-19 18:42:07 +02:00
Shannon 9ba095508e Removes MySql stuff from the old data layer project since we need to remove this whole project anyways and these aren't used 2016-05-19 18:41:44 +02:00
Shannon 7621006200 updates trees.Release.config with correct tree 2016-05-19 18:17:49 +02:00
Shannon 1d8e0eb280 Merge branch 'u4-8192' of https://github.com/AndyButland/Umbraco-CMS into AndyButland-u4-8192
# Conflicts:
#	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
2016-05-19 18:16:47 +02:00
Stephan ed40ce0695 Merge branch 'dev-v8' into dev-v8-ExamineV2 2016-05-19 18:13:19 +02:00
Shannon c53d074aaf Merge branch 'U4-8195' of https://github.com/Mantus667/Umbraco-CMS into Mantus667-U4-8195
# Conflicts:
#	src/Umbraco.Web.UI/config/trees.Release.config
#	src/Umbraco.Web.UI/config/trees.config
#	src/Umbraco.Web/Umbraco.Web.csproj
2016-05-19 17:56:11 +02:00
Shannon b91da2949b Merge remote-tracking branch 'origin/dev-v8' into dev-v8-ExamineV2 2016-05-19 17:21:43 +02:00
Shannon 4ce9964019 fix merge issues 2016-05-19 17:21:34 +02:00
Stephan b7ed3b4fe2 Fix tests 2016-05-19 17:17:02 +02:00
Stephan dd29e692d6 minor scheduled publish fixes 2016-05-19 17:00:06 +02:00
Shannon f9ba3fe76f Merge branch 'dev-v8' into dev-v8-ExamineV2
# Conflicts:
#	src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs
#	src/Umbraco.Core/Plugins/PluginManager.cs
#	src/Umbraco.Core/Services/ContentService.cs
#	src/Umbraco.Core/Services/IContentService.cs
#	src/Umbraco.Core/Umbraco.Core.csproj
#	src/Umbraco.Tests/Persistence/Repositories/NotificationsRepositoryTest.cs
#	src/Umbraco.Tests/Services/ContentServiceTests.cs
#	src/Umbraco.Tests/Services/MediaServiceTests.cs
#	src/Umbraco.Tests/Services/ThreadSafetyServiceTest.cs
#	src/Umbraco.Web.UI/config/ClientDependency.config
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/UmbracoExamine/UmbracoContentIndexer.cs
2016-05-19 16:32:22 +02:00
Shannon 6975642a98 puts the scheduled publish in a uow + lock 2016-05-19 15:45:46 +02:00
Shannon Deminick 0ad2a2bfa4 Merge pull request #1219 from MangoPieface/PublicAccessServiceExtension-HasAccessRemoval
U4-8199 - Removal of the internal unused obsolete HasAccess method in PublicAccessServiceExtensions.cs
2016-05-19 11:18:56 +02:00
Shannon 8127731f72 Namespace and file cleanup - Profiling --> Logging, root cache stuff moved to Cache, XmlHelper --> Xml, TypeFinder, etc.. --> Plugins 2016-05-18 23:34:56 +02:00
Shannon 7fb1b4fb3b Updates all cache refreshers to use ctor injection, no more applicationcontext singleton usages 2016-05-18 18:44:08 +02:00
Shannon 2880190b6f Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2016-05-18 18:13:04 +02:00
Shannon f51a98435f removes LegacyTransientObjectsResolver (no longer needed), makes CacheRefreshersResolver into a container resolver so we can ctor inject into them (these should NOT be transient instances), Fixes more extension methods that rely on ApplicationContext.Current which exposes a few issues like DescendantsAndSelf since that was only getting them for content types! 2016-05-18 18:12:41 +02:00
Stephan 57ee598fc5 Make sure to dispose UnitOfWork in tests 2016-05-18 16:53:32 +02:00
Shannon 885595b1e6 Hides and Obsoletes crappy extension methods that rely on ApplicationContext.Current and updates all usages to not use them - this is most important because the services were using extensions methods that go back out to the ApplicationContext.Current (booo!) 2016-05-18 16:06:59 +02:00
Shannon e20c1cd0bb U4-8465 Remove Core.Publishing namespace and classes 2016-05-18 13:10:36 +02:00
Stephan ddf38407d8 U4-4847 Refactor ContentService (#1266)
* U4-4748 - refactor Content-, Media- and MemberTypeRepository

* Cleanup Attempt

* Cleanup OperationStatus

* U4-4748 - refactor Content-, Media- and MemberTypeService

* U4-4748 - cleanup locking

* U4-4748 - refactor Content-, Media- and MemberRepository

* U4-4748 - refactor ContentService (in progress)

* U4-4748 - all unit of work must be completed

* U4-4748 - refactor locks, fix tests

* U4-4748 - deal with fixmes

* U4-4748 - lock table migration

* Update UmbracoVersion

* Fix AuthorizeUpgrade

* U4-4748 - cleanup+bugfix lock objects

* U4-4748 - bugfix

* updates a string interpolation
2016-05-18 10:55:19 +02:00
Stephan 12f4873c90 Kill IHttpContextAccessor 2016-05-17 19:41:02 +02:00
Stephan 9ac2c94373 post-merge + bugfixing 2016-05-17 18:56:33 +02:00
Stephan edda877fd6 Merge origin/dev-v8 into dev-v8-ExamineV2 2016-05-17 13:21:47 +02:00
Stephan 04ae479476 Fix build.bat so it supports C# 6 2016-05-13 14:16:47 +02:00
Stephan 4891bbf9a4 Update UmbracoVersion 2016-05-13 14:16:27 +02:00
David Brendel 75613fa60e Merge remote-tracking branch 'refs/remotes/umbraco/dev-v8' into dev-v8 2016-05-12 20:31:30 +02:00
Stephan 9458fad190 Upgrade to NPoco 3.3.0-beta3 2016-05-10 08:48:49 +02:00
Shannon 1a522f2136 Removes Auditing namespace 2016-05-09 10:10:26 +02:00
Shannon 648fbdd3f3 moves packaging models to models/packaging 2016-05-09 10:05:55 +02:00
AndyButland 1e0602bc45 Updated project reference to deleted file 2016-05-08 08:52:14 +02:00
AndyButland aed1986520 Removed legacy tree 2016-05-08 08:06:11 +02:00
AndyButland 1b4d7c3733 Migrated user permissions tree to new format; updated icon to indicate single user being acted on 2016-05-07 23:52:47 +02:00
Stephan aee7973c11 IScopeContextAdapter uses LogicalCallContext 2016-05-04 08:31:21 +02:00
Shannon Deminick 892935469d Merge pull request #1251 from umbraco/dev-v8-context
From IScopeContext/Factory to IScopeContextAdapter
2016-05-03 22:33:48 +02:00
Shannon a2bc99fabd Removes AmbientContext 2016-05-03 22:33:29 +02:00
Shannon 4619b7b67b fixes merge/rebase 2016-05-03 22:30:45 +02:00
Stephan 0b1f12c823 From IScopeContext/Factory to IScopeContextAdapter 2016-05-03 22:23:42 +02:00
Shannon Deminick 5d72bcdc86 Merge pull request #1249 from umbraco/temp-u4-6147
U4-6147
2016-05-03 22:19:53 +02:00
Stephan 4f0718ef3f U4-6147 - cleanup 2016-05-03 15:50:10 +02:00
Shannon c25f12b1cd Updates all examine refs - uses Nuget 2016-05-03 13:00:55 +02:00
Stephan 715e03d1c5 U4-6147 - fix tests 2016-05-03 11:15:04 +02:00
Stephan 94c82c7cf7 U4-6147 - cleanup units of work 2016-05-03 11:14:55 +02:00
Stephan 8f820d2ecf Merge dev-v8 into temp-u4-6147 2016-05-03 09:07:36 +02:00
Shannon f90a9c2e5e fixes unit tests, all should pass now 2016-05-02 18:29:35 +02:00
Shannon 3c446cbf82 Adds IQueryFactory property to IDatabaseFactory, DatabaseContext.
Changes exposed Query<T> to correct IQuery<T>
Creates interface for QueryFactory: IQueryFactory
Updates all repositories with these changes
2016-05-02 15:38:45 +02:00
Stephan dbaede43af U4-6147 - GetUnitOfWork becomes CreateUnitOfWork 2016-05-02 12:24:13 +02:00
Stephan dc0456e108 U4-6147 - stop injecting RepositoryFactory into services (it's in uow) 2016-05-02 12:18:25 +02:00
Stephan be32448426 U4-6147 - cleanup persistence units of work (in progress) 2016-05-02 12:12:21 +02:00
Stephan 578cb6eafb U4-6147 - repositories are not disposable (in progress) 2016-04-29 19:14:02 +02:00
Shannon 8ab482dbfb Merge branch 'dev-v8' into dev-v8-ExamineV2
Conflicts:
	src/Umbraco.Tests/packages.config
	src/Umbraco.Web.UI/config/ClientDependency.config
2016-04-29 17:12:59 +02:00
Shannon a5cbca348f re-delete files ... argh thanks gitkraken. 2016-04-29 17:11:51 +02:00
Shannon bd31dd6caf Fixes issue with ThreadStatic db
Uses IScopeContext which wraps either HttpContext or CallContext which is created/injected via IOC factory.
2016-04-29 17:08:34 +02:00
Shannon 5c24a3a734 Fixes AuthorizeUpgrade HtmlHelper reference 2016-04-29 15:22:07 +02:00
Shannon Deminick e0a5ad5236 Merge pull request #1226 from umbraco/dev-v8-persistclr
Core.Persistence - post-NPoco cleanup & refactor
2016-04-29 15:18:33 +02:00
Shannon 74b83f30c3 Gets all tests passing and updates content/media svc/repos with filters
The content/media services & repos are now consistent with their filter, filterargs parameters and tests have been updated to support this, we can now pass in more robust filters to these methods which is required by Examine to get published content from the db.
2016-04-29 10:50:03 +02:00
Stephan 8ab61039ed U4-6147 - refactor RepositoryFactory and all IUnitOfWork (in progress) 2016-04-29 09:10:00 +02:00
Shannon 209e9373d0 Rebuild on startup working
Gets indexes rebuilding at startup, gets indexes rebuilding with published content which required some updates to the content service/repo to pass in a more robust filter when paging. Added more tasks to fix up more of the examine parts like the local storage sync which currently just throws exceptions.
2016-04-29 00:50:26 +02:00
Shannon 734f5f35dc Fixes tests 2016-04-28 22:12:55 +02:00
Shannon cba64aeb49 cleans up the UmbracoExamineSearcher class
makes sure the temp storage stuff works - but this will be only configuration based searchers (legacy)
2016-04-28 20:19:38 +02:00
Shannon 0f2c59b735 Obsolete code updated to correct usages
Updates most of the code in the umbraco examine indexers to use current (non deprecated examine code)
2016-04-28 18:39:52 +02:00
Stephan b0a33844b1 Fixing tests - database 2016-04-27 19:59:01 +02:00
Shannon f992c47111 all tests passing 2016-04-27 16:37:57 +02:00
Shannon e42ac644a3 Merge branch 'dev-v8' into dev-v8-ExamineV2
Conflicts:
	src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs
	src/UmbracoExamine/DataServices/PropertyAliasDto.cs
	src/UmbracoExamine/packages.config
2016-04-27 14:30:10 +02:00
Shannon 0f2f439477 Updates examine, fixes more tests, ensures the correct FieldDefinitions are set 2016-04-27 12:58:43 +02:00
Shannon 589b80ca03 Gets all index tests passing 2016-04-26 17:29:40 +02:00
Shannon 2de8f5117c Adds parent id option, finally getting some examine tests passing 2016-04-26 15:48:25 +02:00
Shannon af95e4bb29 a little more integration, working on getting unit tests passing 2016-04-24 11:16:48 +02:00
Shannon 46e714208d More refactoring with new examine 2 version, it builds again but nothing will quite work yet, now to work on the unit tests. 2016-04-23 18:57:13 +02:00
Shannon 4491d033e9 it builds! ... now to fix a bunch more. 2016-04-22 23:23:27 +02:00
Stephan ae7b93609b Fixing tests - application context 2016-04-22 12:03:30 +02:00
Stephan 1f85f51ecd Fixing tests - services test object 2016-04-22 09:58:02 +02:00
Stephan 3daf2bf9a0 Fixing test - MultiValuePropertyEditorTests, FindingMigrationsTest 2016-04-22 09:34:12 +02:00
Shannon 1f2838cb0a fixes merge issues 2016-04-21 14:38:39 +02:00
Shannon 2027cd7b07 Merge branch 'dev-v8' into dev-v8-persistclr
Conflicts:
	src/Umbraco.Core/Persistence/UmbracoDatabase.cs
	src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs
	src/Umbraco.Tests/Umbraco.Tests.csproj
2016-04-21 12:19:14 +02:00
Shannon Deminick afc78317ca Merge pull request #1236 from umbraco/temp-u4-8354
U4-8354 - fix v8 tests
2016-04-21 12:15:55 +02:00
Shannon 081d6ecc07 adds notes 2016-04-21 12:15:39 +02:00
Shannon 55ae0d3af6 Ensure the correct services are injected in to property editors so they are not using singletons 2016-04-21 11:38:43 +02:00
Stephan 23817cdce5 Fixing tests - MigrationStartupHandler is IDisposable 2016-04-20 22:52:48 +02:00
Stephan 07b410459f Fixing tests - file systems 2016-04-20 22:52:48 +02:00
Stephan 4e702c7c79 Fixing tests - kill KegacyShortStringHelper 2016-04-20 22:52:48 +02:00
Stephan 41f6012eb3 Fixing tests - ServiceContext 2016-04-20 22:52:48 +02:00
Stephan bf51be950f Fixing tests - CoreBootManager 2016-04-20 22:52:48 +02:00
Stephan 7e8b4d13a7 Fixing tests - ValueListPreValueEditor 2016-04-20 22:52:48 +02:00
Stephan b04e070757 Fixing tests - Plugin and TypeFinder 2016-04-20 22:52:48 +02:00
Shannon 3ef204a46f Merge remote-tracking branch 'origin/dev-v7' into dev-v8
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs
	src/Umbraco.Core/Persistence/UmbracoDatabase.cs
	src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
2016-04-20 15:53:13 +02:00
Shannon 289d5f5741 removes the need for the custom regex for the order by since we no longer have an order by sub-query 2016-04-20 12:51:42 +02:00
Shannon f149ca9c76 Fixes SqlCe and MySQL sorting on custom properties for list view, this also makes the query work much better and there is no longer a requirement for a sub-query in the order by statement. 2016-04-20 12:50:52 +02:00
Stephan 3b612bf346 Core.Persistence - more cleanup 2016-04-14 18:20:07 +02:00
Stephan 5b935dbd90 Core.Persistence - post-cleanup debugging 2016-04-13 21:21:20 +02:00
Stephan 01d46944b7 Core.Persistence - post-cleanup debugging 2016-04-13 18:27:39 +02:00
Stephan e6f6444034 Core.Persistence - post-cleanup debugging 2016-04-13 17:33:25 +02:00
Stephan aceaf4b15d Core.Persistence - massive cleanup 2016-04-13 17:33:09 +02:00
Shannon b8d8c9e59a fixes merge - but the sorting on custom field will not currently work, need to fix that now. 2016-04-13 16:41:45 +02:00
Shannon df016813ea Merge remote-tracking branch 'origin/dev-v7.5' into dev-v8
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IMediaRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs
	src/Umbraco.Core/Services/ContentService.cs
	src/Umbraco.Core/Services/MediaService.cs
	src/Umbraco.Core/Services/MemberService.cs
	src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs
	src/Umbraco.Web/Editors/AuthenticationController.cs
	src/Umbraco.Web/Editors/BackOfficeController.cs
	src/UmbracoExamine/UmbracoMemberIndexer.cs
	src/umbraco.businesslogic/UmbracoSettings.cs
2016-04-13 16:18:58 +02:00
Shannon 43f0d77c10 Merge remote-tracking branch 'origin/dev-v7' into dev-v8 2016-04-13 16:09:14 +02:00
Shannon a3158b48ac fix merge 2016-04-12 15:18:14 +02:00
Shannon 06ce26989a Merge remote-tracking branch 'origin/dev-v7' into dev-v8
Conflicts:
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web/PropertyEditors/RelatedLinksPropertyEditor.cs
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/WebApi/Filters/DisableBrowserCacheAttribute.cs
2016-04-12 15:16:19 +02:00
Stephan 365a01a476 From PetaPoco to NPoco (#1207)
* NPoco - 2.x (builds)

* NPoco - v3.1 (does not build)

* NPoco - builds

* NPoco - configure database factory (tests fail)

* Pick fix from 7.4

* NPoco - stock v3.1 - sort-of working

* NPoco - fix merge

* Fix Newtonsoft.Json in web.Template.Debug.config

* NPoco - fix SELECT *

* NPoco - fixing repositories

* NPoco - fix EntityRepository

* NPoco - fix EntityRepository

* NPoco - cosmetic

* NPoco - use 3.1.0-u001 from github/zpqrtbnk/NPoco

* Fixes build, NPoco needed to be referenced in the cms and UmbracoExamine projects

* Fixes lots of tests

* fixes more tests

* NPoco - bugfixing

* Bugfix CacheHelper in tests

* Bugfix connection mocking in tests

* NPoco - inject database in Sql.Select<>

* NPoco - discovery retry policy only once

* Enable C# 6 for Umbraco.Core

* NPoco - introduce UmbracoSql, cleanup

* NPoco - more cleanup and fixing

* NPoco - fix UserRepository

* Optimize InGroupsOf

* Implement UmbracoDatabase.FetchByGroups

* NPoco - fix Select

* NPoco - simplify GetPagedResultsByQuery

* Cherry-pick DisableBrowserCacheAttribute fix from 7.4

* Upgrade NPoco to use Sql<TContext>

* U4-8257 - cleanup relators

* 4-8257 - cleanup more relators

* Upgrade NPoco with more OOTB version

* fixes a couple tests, changes double check lock to Lazy<T>
2016-04-12 15:11:07 +02:00
sna 21f2929ab3 U4-8199 Remove the internal obsolete HasAccess method.
It it not used and marked as obsolete.
2016-04-08 14:37:33 +01:00
Shannon 1b8747bd6d removes legacy disable user menu item and uses the new/normal way of dealing with menu items. 2016-03-31 19:41:42 +02:00
Shannon c6a586274e Merge branch 'U4-8189' of https://github.com/danlister/Umbraco-CMS into danlister-U4-8189
Conflicts:
	src/Umbraco.Core/Constants-Applications.cs
	src/Umbraco.Web/Umbraco.Web.csproj
2016-03-31 19:40:07 +02:00
Shannon 4df5ddcb4c Removes old serializers for old tree formats 2016-03-31 18:50:25 +02:00
Shannon cf822be04f Merge branch 'MangoPieface-dev-v8' into dev-v8
Conflicts:
	src/Umbraco.Web/Umbraco.Web.csproj
2016-03-31 18:46:26 +02:00
Shannon b6f88895dc re-adds images that are still required for some of the legacy file editors 2016-03-31 14:35:49 +02:00
Shannon 734392bb0e Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2016-03-31 14:31:21 +02:00
Shannon b22fda1e80 fixes some ysods 2016-03-31 14:28:41 +02:00
Shannon Deminick aefe2ee1c3 Merge pull request #1196 from BatJan/dev-v8
Part 1 of U4-8226 Remove all unused/un-needed webforms files from the Umbraco.Web and Umbraco.Web.UI projects
2016-03-31 14:27:31 +02:00
Shannon 79bebb9e14 Merge remote-tracking branch 'origin/dev-v8' into dev-v8
Conflicts:
	src/Umbraco.Web.UI/config/trees.Release.config
	src/Umbraco.Web/Umbraco.Web.csproj
2016-03-30 16:08:08 +02:00
Shannon 74e1078c31 Merge branch 'U4-8198_file_system' of https://github.com/yannisgu/Umbraco-CMS into yannisgu-U4-8198_file_system
Conflicts:
	src/Umbraco.Web/Umbraco.Web.csproj
2016-03-30 16:07:45 +02:00
Warren Buckley 659af0ba48 Merge branch 'U4-8194' of https://github.com/jamescoxhead/Umbraco-CMS into jamescoxhead-U4-8194
# Conflicts:
#	src/Umbraco.Web/Umbraco.Web.csproj
2016-03-30 14:44:03 +01:00
Shannon Deminick 3c697436b1 Merge pull request #1195 from yannisgu/U4-8193
U4-8193  replaced loadMacros with MacrosTreeController
2016-03-30 15:15:41 +02:00
Shannon 429d7e2aff WIP - starts porting umbraco over to lucene 3 and Examine v2 2016-03-30 15:12:30 +02:00
James Coxhead efa8bf44f9 Merge remote-tracking branch 'upstream/dev-v8' into U4-8194
# Conflicts:
#	src/Umbraco.Web.UI/config/trees.Release.config
#	src/Umbraco.Web.UI/config/trees.config
#	src/Umbraco.Web/Umbraco.Web.csproj
#	src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadDictionary.cs
2016-03-24 20:56:44 +00:00
James Coxhead d99aef5ee8 Updated config transforms 2016-03-24 20:30:31 +00:00
Stephan e6a187a3d6 Merge pull request #1197 from yannisgu/fixNewtonsoft
Fix Newtonsoft.JSON dependency when running in debug mode in v8
2016-03-24 20:17:53 +01:00
Yannis Guedel 69dc8bc57f fix newtonsoft.json 8.0.0 when running in debug mode 2016-03-24 19:49:01 +01:00
Jan Skovgaard 2d3d36a14c Removing unused member usercontrols and master layouts. 2016-03-24 12:43:51 +01:00
Jan Skovgaard e2fbbc3df0 First commit - Could not resist the urge to get rid of a lot of unused images as well as some of the unused .ascx files. Primarily images removed in this commit and two user controls no longer used in the dashboard.config. 2016-03-24 12:02:29 +01:00
Yannis Guedel 5ec0a58d4d fixed copy paste error 2016-03-23 22:58:52 +01:00
Yannis Guedel bb7d5b4bd2 U4-8193 replaced loadMacros with MacrosTreeController 2016-03-23 22:56:42 +01:00
Shannon 4defc881d4 Removes lots of dead methods 2016-03-23 12:00:58 +01:00
Shannon 295368fc2b Merge remote-tracking branch 'origin/dev-v7' into dev-v8
Conflicts:
	.gitignore
	build/UmbracoVersion.txt
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/config/ClientDependency.config
2016-03-23 11:04:06 +01:00
Shannon 7d3ba43816 Removes lots of Dead Code - thanks NDepend! 2016-03-23 10:58:06 +01:00
David Brendel 91ab84ef72 Merge remote-tracking branch 'refs/remotes/umbraco/dev-v8' into dev-v8 2016-03-22 21:52:03 +01:00
Shannon fb104004e0 Updates LightInject 2016-03-22 16:39:52 +01:00
Shannon 4355761da1 U4-8228 Update to latest Newtonsoft.Json 2016-03-22 16:35:23 +01:00
Shannon 9baf344ad3 U4-8227 Change Umbraco.Core.Models.Mapping.MapperConfiguration and Umbraco.Core.Models.Mapping.IMapperConfiguration implementations AND U4-6923 Update to latest Automapper - with signed assembly 2016-03-22 16:29:04 +01:00
Shannon b90cb7304b removes old moveOrCopy dialog, removes old CMSNode.asmx service (no idea what that did), some work on U4-8224 Remove all legacy/obsolete webservices from umbraco.presentation/webservices, and some work on U4-8226 Remove all unused/un-needed webforms files from the Umbraco.Web and Umbraco.Web.UI projects 2016-03-22 15:34:23 +01:00
Shannon ed7003110b Removes legacy trashcan business logic class along with the legacy trashcan webforms files. 2016-03-22 14:46:27 +01:00
Shannon cdb58d7f8c Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2016-03-22 14:39:21 +01:00
Shannon d296bf80ff Removes legacy 'Notification' business logic, adds new SetNotifications method to INotificationService 2016-03-22 14:39:08 +01:00
Stephan bd6e273779 Merge remote-tracking branch 'origin/dev-v8' into dev-v8 2016-03-22 14:38:00 +01:00
Stephan df99edba18 GitIgnore Umbraco.Tests/media 2016-03-22 14:37:48 +01:00
Shannon 329a48edea U4-8223 Remove all old events and event classes 2016-03-22 14:18:45 +01:00
Shannon 286e43bc10 U4-8222 Remove IMacroEngine - we will only ship with the macro engines we have currently 2016-03-22 12:48:59 +01:00
Shannon f181c3041e Ensures Admin creation has translation section 2016-03-22 12:35:59 +01:00
Shannon eb59d33f42 updates dictionary tree sort + config and ensures that all new users by default have access to translations 2016-03-22 12:34:25 +01:00
Shannon Deminick bc7016384c Merge pull request #1182 from Mantus667/U4-5448
U4-5448
2016-03-22 12:28:55 +01:00
Shannon 4fb69e0c59 updates trees sort order and trees.Release.config 2016-03-22 12:26:37 +01:00
Shannon Deminick fd0af41710 Merge pull request #1189 from yannisgu/U4-7543_Move_data_type_tree_to_settings
U4-7543 Move data type tree to settings
2016-03-22 12:20:58 +01:00
Shannon 4715a17c03 updates the csproj file with the removed items, puts back in punycode.min for now since its still used, fixes a couple ysods. 2016-03-22 12:11:02 +01:00
Shannon d52f295547 Merge branch 'BatJan-dev-v8' into dev-v8 2016-03-22 11:56:14 +01:00
Shannon 31733bdb6e Merge branch 'dev-v8' of https://github.com/BatJan/Umbraco-CMS into BatJan-dev-v8 2016-03-22 11:56:02 +01:00
James Coxhead 88ad2cdc37 Removed legacy loadDictionary class 2016-03-21 23:32:56 +00:00
James Coxhead a04506ba60 Created new dictionary tree controller 2016-03-21 23:31:22 +00:00
sna 34931cae91 Merge remote-tracking branch 'upstream/dev-v8' into dev-v8 2016-03-21 21:46:26 +00:00
sna afc3126125 U4-8199 - Remove the JSONSerializer, where used for serialisation it's been replaced with JavaScriptSerializer
Also removed references to JSONSerializer.ToJSONObject  in \Umbraco-CMS\src\Umbraco.Web\umbraco.presentation\umbraco\controls\Tree\JTreeContextMenuItem.cs as it looks like this is just used by the jsTree which will be removed in a future commit.

http://issues.umbraco.org/issue/U4-8199
2016-03-21 21:41:26 +00:00
Yannis Guedel 4db83be874 U4-7543 Move data type tree to settings
data type tree belongs in settings since it is heavily tied to content
types.
2016-03-21 22:38:40 +01:00
Jan Skovgaard a533362e7c Removing unused scripts, styles and images. 2016-03-21 22:35:52 +01:00
sna bfe9bd5a20 U4-8199 - Remove the obsolete EncodedStringWriter.cs
No references, clean build - looks safe to remove

http://issues.umbraco.org/issue/U4-8199
2016-03-21 21:15:31 +00:00
Sebastiaan Janssen 8113b7e66c Fixes NuGet build 2016-03-21 20:23:43 +01:00
Shannon 0964985711 Merge branch 'MangoPieface-dev-v8' into dev-v8 2016-03-21 17:47:41 +01:00
sna 5b5ff10af0 U4-8199: Removed SerializableData.cs, this was used by the XmlTree.cs for the Serializable.XmlTree in the ToString() method.
This in turn was only used in the LegacyTree class, so I deleted this too. This also meant I could remove the old Render method in BaseTree.

http://issues.umbraco.org/issue/U4-8199
2016-03-21 16:14:25 +00:00
Shannon Deminick 0c5081b6a3 Merge pull request #1185 from danlister/U4-8190
U4-8190 Converted umbraco.cms.presentation.Trees.UserTypes to use the new tree structure
2016-03-21 11:45:21 +01:00
Shannon Deminick 68245a85f0 Merge pull request #1183 from danlister/U4-8187
U4-8187 Removed legacy loadLanguages and loadTemplates tree classes
2016-03-21 11:39:09 +01:00
Dan Lister 1e08f5f9ce U4-8190 Converted umbraco.cms.presentation.Trees.UserTypes to use the new tree structure 2016-03-18 14:58:24 +00:00
Dan Lister 7f6296b255 U4-8187 Removed legacy loadLanguages and loadTemplates tree classes 2016-03-18 10:07:56 +00:00
David Brendel 0468af67d4 U4-5448
Move dictionary tree to translation section instead of settings section
2016-03-18 07:58:19 +01:00
Shannon 69e53b6510 Merge remote-tracking branch 'origin/dev-v7' into dev-v8 2016-03-17 16:46:55 +01:00
Shannon 9c1880b768 umbraco.interfaces = GONE! 2016-03-17 16:06:41 +01:00
Shannon 39c39879f9 Moves IPackageAction to _Legacy Core for now 2016-03-17 16:05:56 +01:00
Shannon 516d0365aa moves all package actions to Web _Legacy for now. 2016-03-17 16:03:12 +01:00
Shannon a4ab137c3f moves ICacheRefresher to Core 2016-03-17 15:59:35 +01:00
Shannon d4bf8287bd fixes an ioc registration for PartialViewRepository 2016-03-17 15:52:54 +01:00
Shannon c0f8532350 Removes ITree! 2016-03-17 15:48:43 +01:00
Shannon 1a880f6b68 moves the LegacyDialogHandler stuff to _Legacy namespaces for now, moves the legacy ITask and ITaskReturnUrl to the same namespace/proj. 2016-03-17 15:30:25 +01:00
Shannon bb6b9f4ebc moves legacy actions to _Legacy namespace for now 2016-03-17 15:28:46 +01:00
Shannon 7d20557937 Moves IAction and ActionsResolver to Web proj, removes IMenuElement, ITag, IUseTags 2016-03-17 15:26:22 +01:00
Shannon 12d7d060d7 Removes the super old INode and IProperty! 2016-03-17 15:13:50 +01:00
Shannon 73fdc17bc4 removes IMacroGuiRendering, all umbraco.interfaces/skinning classes, fixes CDF load in some aspx views, removes dialog/editmacro.aspx, removes macroParameterControl 2016-03-17 15:09:20 +01:00
Shannon 63cb6d96b2 Merge remote-tracking branch 'origin/dev-v7' into dev-v8 2016-03-17 14:30:02 +01:00
Shannon bcd12172eb manually merges: U4-4075 umbracoSettings help section removed 2016-03-17 14:28:06 +01:00
Shannon 430afcab90 Removes Umbraco.Core.Models.Template.GetTypeOfRenderingEngine 2016-03-17 14:21:15 +01:00
Shannon d4b0b3d31b removes IPublicAccessService.AddOrUpdateRule 2016-03-17 14:18:34 +01:00
Shannon 1ed1a8a580 umbraco.businesslogic.dll = GONE 2016-03-17 10:43:05 +01:00
Shannon a292defdb9 moves LegacySqlHelper to the only places that needs it now: umbraco.cms,marks as obsolete and internal since its temporary. 2016-03-17 10:41:21 +01:00
Shannon 4c9f4beaf9 Removes old 'Application' and renames to LegacySqlHelper 2016-03-17 10:39:39 +01:00
Shannon 24fed0de2e removes ISqlHelper usages from Web project 2016-03-17 10:35:02 +01:00
Shannon 9ac2d04aea User and User type from the old businesslogic assembly are GONE! 2016-03-16 17:52:08 +01:00
Shannon f594a1132d Remove IMediaFactory 2016-03-16 15:56:52 +01:00
Shannon 3b191239be Removes all usages of UserType 2016-03-16 15:55:26 +01:00
Shannon e1f17e848d moves the legacy serialization classes for the super old XmlTree format into Web proj so we can remove the businesslogic DLL first, we'll get to removing those classes later as it will be a bit tricky. 2016-03-16 15:29:08 +01:00
Shannon 88504306ca fixes merge 2016-03-16 15:14:00 +01:00
Shannon d37d31246e Merge remote-tracking branch 'origin/dev-v7' into dev-v8
Conflicts:
	src/Umbraco.Core/Persistence/Migrations/MigrationRunner.cs
	src/Umbraco.Core/Persistence/Querying/BaseExpressionHelper.cs
	src/Umbraco.Tests/Persistence/SyntaxProvider/MySqlSyntaxProviderTests.cs
	src/Umbraco.Web.UI/umbraco/create/content.ascx
	src/Umbraco.Web.UI/umbraco/create/member.ascx
	src/Umbraco.Web.UI/umbraco/create/nodeType.ascx
	src/Umbraco.Web/PropertyEditors/TrueFalsePropertyEditor.cs
	src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs
	src/Umbraco.Web/Security/Identity/BackOfficeCookieManager.cs
	src/Umbraco.Web/Strategies/Migrations/ClearMediaXmlCacheForDeletedItemsAfterUpgrade.cs
	src/Umbraco.Web/Strategies/Migrations/PublishAfterUpgradeToVersionSixth.cs
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/WebBootManager.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/settings/stylesheet/editstylesheet.aspx.cs
2016-03-16 15:02:53 +01:00
Shannon 2cc709c460 Removes StateHelper!! Adds a few cookie extensions and http extensions to more easily replace. 2016-03-16 14:59:21 +01:00
Shannon cbb06dcfe1 umbraco.ui is GONE :) 2016-03-15 19:54:21 +01:00
Shannon 0636ea0b16 fix build 2016-03-15 16:59:01 +01:00
Shannon b98277f573 remore ui replacements 2016-03-15 16:58:13 +01:00
Shannon fb5e998e1f remore ui replacements 2016-03-15 16:39:17 +01:00
Shannon bf36b54ac8 remore ui replacements 2016-03-11 16:11:33 +01:00
Shannon a47a9e5e64 remore ui replacements 2016-03-11 16:02:33 +01:00
Shannon 9ebe93df06 remore ui replacements 2016-03-11 15:56:00 +01:00
Shannon ca3630f9d9 remore ui replacements 2016-03-11 15:47:22 +01:00
Shannon fa0588116f remore ui replacements 2016-03-11 15:43:34 +01:00
Shannon 5eea4d039f remore ui replacements 2016-03-11 15:32:05 +01:00
Shannon 26f85e4241 remore ui replacements 2016-03-11 15:28:08 +01:00
Shannon b47eedb381 remore ui replacements 2016-03-11 15:24:26 +01:00
Shannon fd8af57167 regex is working! 2016-03-11 15:16:43 +01:00
Shannon 55301b9b6b start replacing ui.text calls... now gonna try some regex. 2016-03-11 15:14:31 +01:00
Shannon 6faa886362 removes commented lines 2016-03-11 14:11:16 +01:00
Shannon d5ec991556 doh! not sure how the identity extensions files got committed, have removed them 2016-03-11 14:01:34 +01:00
Shannon 15a48dd921 Ensures more IoC services are there, creates new GetContentXml methods on IContentServices, updates the xml cache 'content' class to use these methods, removes more checks for legacy XML structures, removes old xsd schema files. 2016-03-11 13:54:56 +01:00
Shannon 6ee5457a81 Fixes more merge issues, project builds and runs 2016-03-11 09:23:09 +01:00
Shannon 8729e00864 it builds! ... but not sure it works yet. 2016-03-10 19:47:10 +01:00
Shannon f6f54fd057 Merge branch 'master-v7' into dev-v8
Conflicts:
	build/UmbracoVersion.txt
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Core/CoreBootManager.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/UpdateRelatedLinksData.cs
	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
	src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/DataTypeDefinitionRepository.cs
	src/Umbraco.Core/Persistence/Repositories/DictionaryRepository.cs
	src/Umbraco.Core/Persistence/Repositories/DomainRepository.cs
	src/Umbraco.Core/Persistence/Repositories/EntityContainerRepository.cs
	src/Umbraco.Core/Persistence/Repositories/LanguageRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/PublicAccessRepository.cs
	src/Umbraco.Core/Persistence/Repositories/RepositoryBase.cs
	src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs
	src/Umbraco.Core/Persistence/RepositoryFactory.cs
	src/Umbraco.Core/PropertyEditors/PropertyEditorValueConvertersResolver.cs
	src/Umbraco.Core/Services/ContentTypeService.cs
	src/Umbraco.Core/Services/FileService.cs
	src/Umbraco.Core/Services/LocalizationService.cs
	src/Umbraco.Core/Services/MemberTypeService.cs
	src/Umbraco.Core/Services/PackagingService.cs
	src/Umbraco.Core/Services/ServiceContext.cs
	src/Umbraco.Tests/Persistence/Querying/ContentTypeSqlMappingTests.cs
	src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/DataTypeDefinitionRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/DictionaryRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
	src/Umbraco.Tests/Umbraco.Tests.csproj
	src/Umbraco.Tests/Web/Mvc/UmbracoViewPageTests.cs
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/config/ClientDependency.config
	src/Umbraco.Web.UI/packages.config
	src/Umbraco.Web.UI/web.Template.config
	src/Umbraco.Web/Models/Mapping/ContentModelMapper.cs
	src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs
	src/Umbraco.Web/PropertyEditors/ImageCropperPropertyValueEditor.cs
	src/Umbraco.Web/PropertyEditors/ListViewPropertyEditor.cs
	src/Umbraco.Web/Services/ApplicationTreeService.cs
	src/Umbraco.Web/Services/SectionService.cs
	src/Umbraco.Web/Trees/MemberTreeController.cs
	src/Umbraco.Web/UI/Pages/ClientTools.cs
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/WebBootManager.cs
	src/Umbraco.Web/umbraco.presentation/macro.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadNodeTypes.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/channels/api.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasksBase.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/exportDocumenttype.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/protectPage.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/templateControls/ItemRenderer.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/MediaExtensions.cs
	src/umbraco.businesslogic/BasePages/ClientTools.cs
	src/umbraco.businesslogic/UmbracoSettings.cs
	src/umbraco.cms/businesslogic/CMSNode.cs
	src/umbraco.cms/businesslogic/Content.cs
	src/umbraco.cms/businesslogic/cache/Cache.cs
	src/umbraco.cms/businesslogic/datatype/DataTypeDefinition.cs
	src/umbraco.cms/businesslogic/propertytype/propertytype.cs
	src/umbraco.cms/businesslogic/web/Document.cs
	src/umbraco.cms/helpers/DeepLink.cs
	src/umbraco.editorControls/tinyMCE3/TinyMCE.cs
2016-03-10 19:20:15 +01:00
Shannon a26bb336f1 hard codes the en-US language until we get rid of ui calls. 2016-03-10 18:35:29 +01:00
Shannon 5659f8d3f7 fixes back office rendering 2016-02-17 17:39:12 +01:00
Shannon e10fb4fd7e Gets the Services IoC working!! 2016-02-17 17:37:17 +01:00
Shannon 172c4a59d7 Creates a RegisterSingleton ext method for easier registration 2016-02-17 17:14:54 +01:00
Shannon 4fa1ce42dc WIP - moving tree and section service implementations to Web because they are web based and they need web based objects, there's no sense in coying all of the non-web objects to Core. Now we need to use IoC for the ServiceContext 2016-02-17 16:45:26 +01:00
Shannon 6e7f3b5500 Removes the old business logic ApplicationTree and affilated files, replaces with current data structures. 2015-12-28 18:44:20 +01:00
Shannon b5eee9194f fixes build errors 2015-12-28 18:11:08 +01:00
Shannon e3d153e422 wip for removing legacy Application and moving IApplication 2015-12-28 18:06:18 +01:00
Shannon ca407d78cc Removes the old Log/ILog along with the concept of an ExternalLogger, updates the IAuditService to handle what the Log used to do 2015-12-23 15:22:45 +01:00
Shannon e005c5bba6 Massive file cleanup, removed the old BasePage, UmbracoEnsuredPage, ClientTools, moved the menu 'Action' to the Web project until we can remove those too. 2015-12-23 13:51:16 +01:00
Shannon de776f86a4 Lots of code cleanup, lots of unused/obsolete classes & files removed. 2015-12-22 19:25:10 +01:00
Shannon 4f3968e837 R# cleanup, losts of obsoleted methods removed 2015-12-22 18:00:11 +01:00
Shannon 0b13e18fd5 some r# cleanup 2015-12-22 17:25:09 +01:00
Shannon 5af839693c U4-7600 Remove obsoleted string helpers, string extensions, umbraco.helper, umbraco.cms.helper.* 2015-12-22 16:48:55 +01:00
Shannon 1aa52b4cc9 removes old helpers/url 2015-12-22 16:43:11 +01:00
Shannon 24e2341115 U4-7600 Remove obsoleted string helpers, string extensions & umbraco.helper 2015-12-22 16:37:21 +01:00
Shannon fb5e11fea6 Merge remote-tracking branch 'origin/temp-U4-7591' into dev-v8
Conflicts:
	src/Umbraco.Web/umbraco.presentation/umbraco/create/content.ascx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/create/member.ascx.cs
2015-12-22 16:28:27 +01:00
Shannon 516b59a12a Merge remote-tracking branch 'origin/temp-U4-7591' into dev-v8
Conflicts:
	src/Umbraco.Tests/UI/LegacyDialogTests.cs
	src/Umbraco.Web.UI/config/ClientDependency.config
	src/Umbraco.Web/Umbraco.Web.csproj
2015-12-22 16:23:55 +01:00
Shannon 6078b822c6 Merge remote-tracking branch 'origin/7.4.0' into dev-v8 2015-12-22 16:22:30 +01:00
Shannon 9f0cc15822 U4-7600 Remove obsoleted string helpers, string extensions & umbraco.helper 2015-12-22 16:22:17 +01:00
Shannon c7eaf9a591 U4-7600 Remove obsoleted string helpers & string extensions 2015-12-22 16:07:45 +01:00
Shannon d6779619ea U4-6899 Change UmbracoHelper.TagQuery to return ITagQuery instead of the current hack to return a non interface 2015-12-22 15:45:15 +01:00
Shannon 880e17601b U4-5071 Update MiniProfiler to latest major version 2015-12-21 21:28:35 +01:00
Shannon 395e904df3 U4-6923 Update to latest Automapper - with signed assembly 2015-12-21 20:48:20 +01:00
Shannon ebbfe4edad U4-1324 log4net assembly Umbraco uses custom log4net build that is not strongly typed 2015-12-21 19:33:58 +01:00
Shannon afe06ffb02 U4-5424 Upgrade to latest .Net framework version (4.6.1) 2015-12-21 19:23:13 +01:00
Shannon c242383430 removes some obsolete code, ensures that UmbracoHelper is added to the container. 2015-12-21 17:50:00 +01:00
Shannon 2f5616a21c Content is now rendering 2015-12-21 17:09:31 +01:00
Shannon e17720a5f7 updates LightInject, saves a ton of code for repo registrations. 2015-12-21 16:33:09 +01:00
Shannon 5f6ae3683e removes files that shouldn't be committed 2015-12-21 15:03:10 +01:00
Shannon fbf93e2059 Umbraco now installs and can install the starter kit... not much else though ;) 2015-12-21 15:02:21 +01:00
Shannon 6593f4eaaa creates ServicesCompositionRoot 2015-12-21 14:27:36 +01:00
Shannon 69e1df87df only 22 tests failing now 2015-12-21 14:08:05 +01:00
Shannon 34a379ac5f Merge branch 'dev-v8' of https://github.com/umbraco/Umbraco-CMS into dev-v8 2015-12-21 13:41:11 +01:00
Shannon eaf8d55d48 WIP - refactored RepositoryFactory to use IoC, everything builds, haven't tested anything yet. 2015-12-21 13:36:58 +01:00
Shannon Deminick 91dc7576ea Merge pull request #965 from umbraco/temp-v8macros
Fixing failing macro tests.
2015-12-21 10:51:21 +01:00
Claus 46bdae7492 Fixing failing macro tests. 2015-12-21 10:45:14 +01:00
Shannon 96c336e34c now only 24 tests failing, that's pretty good! 2015-12-20 20:40:49 +01:00
Shannon 7ec63ad491 fixes some macro unit tests (some still need fixing though) 2015-12-20 20:17:57 +01:00
Shannon 04e7979fe6 Fixes some merge issues, gets a bunch more tests operational. 2015-12-20 20:09:25 +01:00
Shannon 4d0b2b745a first unit tests passing 2015-12-20 17:28:38 +01:00
Shannon 0bcf38b267 Removes LightInject as Source and adds it as DLL dependencies, updates to latest Light Inject. 2015-12-20 17:09:46 +01:00
Shannon 0fd9a074d8 WIP sln is now building... though i doubt anything works atm, working on that now. 2015-12-20 16:49:24 +01:00
Shannon 73cc4b4e3f Web proj is building 2015-12-18 14:58:22 +01:00
Shannon f09f3c4129 ok, now Core proj is building 2015-12-18 14:45:28 +01:00
Shannon 6f43230a9b Core is more or less building (i think) 2015-12-18 14:24:17 +01:00
Shannon 5c5a5d12cc WIP working on getting Core project to build 2015-12-18 13:29:12 +01:00
Shannon 2ea9418fd7 Merge remote-tracking branch 'origin/7.4.0' into dev-v8
Conflicts:
	build/UmbracoVersion.txt
	src/Umbraco.Core/ApplicationContext.cs
	src/Umbraco.Core/Configuration/UmbracoConfig.cs
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Core/CoreBootManager.cs
	src/Umbraco.Core/DatabaseContext.cs
	src/Umbraco.Core/Dictionary/CultureDictionaryFactoryResolver.cs
	src/Umbraco.Core/Manifest/ManifestParser.cs
	src/Umbraco.Core/Models/DataTypeDefinition.cs
	src/Umbraco.Core/ObjectResolution/ApplicationEventsResolver.cs
	src/Umbraco.Core/Persistence/DatabaseSchemaHelper.cs
	src/Umbraco.Core/Persistence/Factories/MemberTypeFactory.cs
	src/Umbraco.Core/Persistence/Migrations/MigrationBase.cs
	src/Umbraco.Core/Persistence/Migrations/MigrationExpressionBase.cs
	src/Umbraco.Core/Persistence/Migrations/MigrationResolver.cs
	src/Umbraco.Core/Persistence/Migrations/MigrationRunner.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/AlterSyntaxBuilder.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Column/AlterColumnBuilder.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterColumnExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterDefaultConstraintExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterTableExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Table/AlterTableBuilder.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Column/CreateColumnBuilder.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Create/CreateBuilder.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Expressions/CreateConstraintExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Expressions/CreateTableExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Table/CreateTableBuilder.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/DeleteBuilder.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteColumnExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteConstraintExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteDataExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteDefaultConstraintExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteForeignKeyExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteIndexExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteTableExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Execute/ExecuteBuilder.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Execute/Expressions/ExecuteCodeStatementExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Execute/Expressions/ExecuteSqlStatementExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateColumnExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateForeignKeyExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateIndexExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Insert/Expressions/InsertDataExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Insert/InsertBuilder.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Rename/Expressions/RenameColumnExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Rename/Expressions/RenameTableExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Rename/RenameBuilder.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Update/Expressions/UpdateDataExpression.cs
	src/Umbraco.Core/Persistence/Migrations/Syntax/Update/UpdateBuilder.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AddIndexToCmsMacroTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeZero/MigrateAndRemoveTemplateMasterColumn.cs
	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
	src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/DataTypeDefinitionRepository.cs
	src/Umbraco.Core/Persistence/Repositories/DictionaryRepository.cs
	src/Umbraco.Core/Persistence/Repositories/DomainRepository.cs
	src/Umbraco.Core/Persistence/Repositories/LanguageRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/RecycleBinRepository.cs
	src/Umbraco.Core/Persistence/Repositories/ServerRegistrationRepository.cs
	src/Umbraco.Core/Persistence/Repositories/TagRepository.cs
	src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs
	src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs
	src/Umbraco.Core/Persistence/RepositoryFactory.cs
	src/Umbraco.Core/Persistence/UmbracoDatabase.cs
	src/Umbraco.Core/PropertyEditors/IPropertyEditorValueConverter.cs
	src/Umbraco.Core/PropertyEditors/PropertyEditor.cs
	src/Umbraco.Core/PropertyEditors/PropertyEditorResolver.cs
	src/Umbraco.Core/Services/ContentService.cs
	src/Umbraco.Core/Services/ContentTypeService.cs
	src/Umbraco.Core/Services/DataTypeService.cs
	src/Umbraco.Core/Services/EntityService.cs
	src/Umbraco.Core/Services/LocalizationService.cs
	src/Umbraco.Core/Services/MacroService.cs
	src/Umbraco.Core/Services/MediaService.cs
	src/Umbraco.Core/Services/MemberGroupService.cs
	src/Umbraco.Core/Services/MemberService.cs
	src/Umbraco.Core/Services/MemberTypeService.cs
	src/Umbraco.Core/Services/PackagingService.cs
	src/Umbraco.Core/Services/ServerRegistrationService.cs
	src/Umbraco.Core/Services/ServiceContext.cs
	src/Umbraco.Core/Services/TagService.cs
	src/Umbraco.Core/Services/UserService.cs
	src/Umbraco.Core/Strings/DefaultShortStringHelper.cs
	src/Umbraco.Core/Sync/ConfigServerRegistrar.cs
	src/Umbraco.Core/Sync/DatabaseServerMessenger.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Core/UmbracoApplicationBase.cs
	src/Umbraco.Core/packages.config
	src/Umbraco.Tests/BootManagers/CoreBootManagerTests.cs
	src/Umbraco.Tests/Macros/MacroTests.cs
	src/Umbraco.Tests/Manifest/ManifestParserTests.cs
	src/Umbraco.Tests/Migrations/FindingMigrationsTest.cs
	src/Umbraco.Tests/Migrations/MigrationRunnerTests.cs
	src/Umbraco.Tests/Migrations/Stubs/FiveZeroMigration.cs
	src/Umbraco.Tests/Migrations/Stubs/FourElevenMigration.cs
	src/Umbraco.Tests/Migrations/Stubs/SixZeroMigration1.cs
	src/Umbraco.Tests/Migrations/Stubs/SixZeroMigration2.cs
	src/Umbraco.Tests/Migrations/TargetVersionSixthMigrationsTest.cs
	src/Umbraco.Tests/Migrations/Upgrades/BaseUpgradeTest.cs
	src/Umbraco.Tests/Migrations/Upgrades/SqlCeDataUpgradeTest.cs
	src/Umbraco.Tests/Mvc/UmbracoViewPageTests.cs
	src/Umbraco.Tests/Persistence/BaseTableByTableTest.cs
	src/Umbraco.Tests/Persistence/DatabaseContextTests.cs
	src/Umbraco.Tests/Persistence/Mappers/PropertyGroupMapperTest.cs
	src/Umbraco.Tests/Persistence/MySqlDatabaseCreationTest.cs
	src/Umbraco.Tests/Persistence/Querying/ContentTypeRepositorySqlClausesTest.cs
	src/Umbraco.Tests/Persistence/Querying/ContentTypeSqlMappingTests.cs
	src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/DataTypeDefinitionRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/DomainRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/PublicAccessRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/ServerRegistrationRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/TemplateRepositoryTest.cs
	src/Umbraco.Tests/Persistence/SyntaxProvider/SqlCeSyntaxProviderTests.cs
	src/Umbraco.Tests/PublishedContent/PublishedMediaTests.cs
	src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs
	src/Umbraco.Tests/Services/ContentServiceTests.cs
	src/Umbraco.Tests/Services/ThreadSafetyServiceTest.cs
	src/Umbraco.Tests/Strings/DefaultShortStringHelperTests.cs
	src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs
	src/Umbraco.Tests/TestHelpers/BaseDatabaseTest.cs
	src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs
	src/Umbraco.Tests/Umbraco.Tests.csproj
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/config/ClientDependency.config
	src/Umbraco.Web.UI/packages.config
	src/Umbraco.Web.UI/umbraco/controls/ContentTypeControlNew.ascx.cs
	src/Umbraco.Web.UI/umbraco/plugins/tinymce3/insertImage.aspx
	src/Umbraco.Web.UI/umbraco/settings/EditNodeTypeNew.aspx.cs
	src/Umbraco.Web/BatchedDatabaseServerMessenger.cs
	src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs
	src/Umbraco.Web/Cache/DataTypeCacheRefresher.cs
	src/Umbraco.Web/Cache/DistributedCacheExtensions.cs
	src/Umbraco.Web/Editors/AuthenticationController.cs
	src/Umbraco.Web/Editors/BackOfficeController.cs
	src/Umbraco.Web/Install/InstallSteps/DatabaseInstallStep.cs
	src/Umbraco.Web/Install/InstallSteps/DatabaseUpgradeStep.cs
	src/Umbraco.Web/Media/ThumbnailProviders/ThumbnailProvidersResolver.cs
	src/Umbraco.Web/Mvc/DefaultRenderMvcControllerResolver.cs
	src/Umbraco.Web/PropertyEditors/FileUploadPropertyEditor.cs
	src/Umbraco.Web/PropertyEditors/FolderBrowserPropertyEditor.cs
	src/Umbraco.Web/PropertyEditors/GridPropertyEditor.cs
	src/Umbraco.Web/PropertyEditors/ImageCropperPropertyEditor.cs
	src/Umbraco.Web/Routing/NotFoundHandlerHelper.cs
	src/Umbraco.Web/Trees/MediaTreeController.cs
	src/Umbraco.Web/Trees/MemberTreeController.cs
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/UmbracoApplication.cs
	src/Umbraco.Web/UmbracoModule.cs
	src/Umbraco.Web/WebBootManager.cs
	src/Umbraco.Web/packages.config
	src/Umbraco.Web/umbraco.presentation/content.cs
	src/Umbraco.Web/umbraco.presentation/keepAliveService.cs
	src/Umbraco.Web/umbraco.presentation/macro.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadDictionary.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentControl.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/Images/ImageViewer.ascx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/Images/UploadMediaImage.ascx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/imageViewer.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/rollBack.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMemberType.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/plugins/tinymce3/insertImage.aspx
	src/Umbraco.Web/umbraco.presentation/umbraco/settings/EditNodeTypeNew.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/MediaExtensions.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/uQuery/uQuery.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/webService.asmx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/webservices/MediaUploader.ashx.cs
	src/UmbracoExamine/UmbracoContentIndexer.cs
	src/UmbracoExamine/UmbracoMemberIndexer.cs
	src/umbraco.MacroEngines/RazorCore/UmbracoCultureDictionary.cs
	src/umbraco.MacroEngines/RazorDynamicNode/DynamicNode.cs
	src/umbraco.MacroEngines/RazorDynamicNode/ExtensionMethods.cs
	src/umbraco.MacroEngines/app.config
	src/umbraco.MacroEngines/packages.config
	src/umbraco.MacroEngines/umbraco.MacroEngines.csproj
	src/umbraco.businesslogic/UmbracoSettings.cs
	src/umbraco.cms/businesslogic/Content.cs
	src/umbraco.cms/businesslogic/datatype/DataTypeDefinition.cs
	src/umbraco.cms/businesslogic/datatype/DefaultPreValueEditor.cs
	src/umbraco.cms/businesslogic/datatype/FileHandlerData.cs
	src/umbraco.cms/businesslogic/translation/Translation.cs
	src/umbraco.cms/businesslogic/web/Document.cs
	src/umbraco.cms/packages.config
	src/umbraco.editorControls/DefaultPrevalueEditor.cs
	src/umbraco.editorControls/MultiNodeTreePicker/MNTPResources.Designer.cs
	src/umbraco.editorControls/MultiNodeTreePicker/MNTPResources.resx
	src/umbraco.editorControls/MultiNodeTreePicker/MNTP_DataType.cs
	src/umbraco.editorControls/app.config
	src/umbraco.editorControls/macrocontainer/PrevalueEditor.cs
	src/umbraco.editorControls/packages.config
	src/umbraco.editorControls/textfieldmultiple/textfieldMultipleDataType.cs
	src/umbraco.editorControls/umbraco.editorControls.csproj
	src/umbraco.editorControls/uploadfield/uploadField.cs
	src/umbraco.editorControls/userControlWrapper/usercontrolPrevalueEditor.cs
	src/umbraco.providers/app.config
2015-12-18 11:23:58 +01:00
Shannon 19c5eee791 Merge remote-tracking branch 'origin/7.3.0' into dev-v8
Conflicts:
	src/Umbraco.Core/UmbracoApplicationBase.cs
2015-05-14 08:45:57 +10:00
Shannon b5b6ce8bf9 fixes merge 2015-05-13 16:50:45 +10:00
Shannon f7bcae1aa7 Merge remote-tracking branch 'origin/7.3.0' into dev-v8
Conflicts:
	src/Umbraco.Core/Services/DomainService.cs
	src/Umbraco.Web/Routing/NotFoundHandlerHelper.cs
	src/Umbraco.Web/umbraco.presentation/NotFoundHandlers.cs
2015-05-13 16:47:33 +10:00
Shannon 0a921c0701 fixes merge issues 2015-05-13 16:46:53 +10:00
Shannon 8c771660a7 Merge remote-tracking branch 'origin/7.3.0' into dev-v8
Conflicts:
	src/Umbraco.Core/Services/UserService.cs
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/packages.config
	src/Umbraco.Web/Routing/ContentFinderByLegacy404.cs
	src/Umbraco.Web/Routing/NotFoundHandlerHelper.cs
	src/Umbraco.Web/umbraco.presentation/NotFoundHandlers.cs
	src/Umbraco.Web/umbraco.presentation/library.cs
	src/umbraco.MacroEngines/app.config
	src/umbraco.MacroEngines/packages.config
	src/umbraco.MacroEngines/umbraco.MacroEngines.csproj
	src/umbraco.editorControls/app.config
	src/umbraco.providers/UsersMembershipProvider.cs
	src/umbraco.providers/app.config
2015-05-13 14:49:11 +10:00
Shannon 177a1e336f Converts UrlProviderResolver to a container resolver and also ensures any container many resolver is added to the container itself 2015-05-05 19:14:56 +10:00
Shannon dc7b3612bc converts PropertyValueConvertersResolver to a container resolver and updates IPropertyValueConverter that were relying on singletons to use DependencyInjection 2015-05-05 19:01:49 +10:00
Shannon 939fc8a92c Changes ParameterEditorResolver to a Container resolver 2015-05-05 18:51:33 +10:00
Shannon 36f3948835 Fixes most tests, only 4 failing but they are arbitrary... now we can look to start cleaning/deleting more stuff :) 2015-05-05 18:24:31 +10:00
Shannon fba98eb7f6 Fixes merges, sln builds now, just need to run tests and fix them 2015-05-05 16:53:52 +10:00
Shannon 2ea4acbc6f Merge branch '7.3.0' into dev-v8
Conflicts:
	src/Umbraco.Core/Configuration/UmbracoConfig.cs
	src/Umbraco.Core/CoreBootManager.cs
	src/Umbraco.Core/Manifest/ManifestBuilder.cs
	src/Umbraco.Core/Manifest/ManifestParser.cs
	src/Umbraco.Core/Persistence/Migrations/MigrationResolver.cs
	src/Umbraco.Core/Persistence/Migrations/MigrationRunner.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionFourNineZero/RemoveUmbracoAppConstraints.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AddIndexToCmsMacroPropertyTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AddIndexToCmsMacroTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AddPropertyEditorAliasColumn.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AlterCmsMacroPropertyTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AlterTagRelationsTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AlterTagsTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AlterUserTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AssignMissingKeysAndIndexes.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/DropControlIdColumn.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/RemoveCmsMacroPropertyTypeTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/UpdateControlIdToPropertyEditorAlias.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/UpdateRelatedLinksData.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenOneZero/AssignMissingPrimaryForMySqlKeys.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeZero/MigrateAndRemoveTemplateMasterColumn.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeZero/RemoveHelpTextColumn.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeZero/UpdateUniqueIdToHaveCorrectIndexType.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenTwoZero/AddIndexToUmbracoNodeTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenTwoZero/AddMissingForeignKeyForContentType.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenTwoZero/AlterDataTypePreValueTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenTwoZero/RemoveCmsDocumentAliasColumn.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSix/DeleteAppTables.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSix/EnsureAppsTreesUpdated.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSix/MoveMasterContentTypeData.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSix/NewCmsContentType2ContentTypeTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSix/RemoveMasterContentTypeColumn.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSix/RenameCmsTabTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSix/RenameTabIdColumn.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSix/UpdateCmsContentTypeAllowedContentTypeTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSix/UpdateCmsContentTypeTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSix/UpdateCmsContentVersionTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSix/UpdateCmsPropertyTypeGroupTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixOneZero/CreateServerRegistryTable.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AddChangeDocumentTypePermission.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AdditionalIndexesAndKeys.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AssignMissingPrimaryForMySqlKeys.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AssignMissingPrimaryForMySqlKeys2.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/ChangePasswordColumn.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/UpdateToNewMemberPropertyAliases.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixZeroOne/UpdatePropertyTypesAndGroups.cs
	src/Umbraco.Core/Persistence/RepositoryFactory.cs
	src/Umbraco.Core/PropertyEditors/ParameterEditorResolver.cs
	src/Umbraco.Core/PropertyEditors/PropertyEditorResolver.cs
	src/Umbraco.Core/Services/MemberService.cs
	src/Umbraco.Core/Services/ServerRegistrationService.cs
	src/Umbraco.Core/Sync/ConfigServerRegistrar.cs
	src/Umbraco.Core/Sync/ServerMessengerResolver.cs
	src/Umbraco.Core/Sync/ServerRegistrarResolver.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Tests/Cache/PublishedCache/PublishedContentCacheTests.cs
	src/Umbraco.Tests/CodeFirst/Definitions/ContentTypeDefinitionFactory.cs
	src/Umbraco.Tests/Migrations/FindingMigrationsTest.cs
	src/Umbraco.Tests/Migrations/Stubs/AlterUserTableMigrationStub.cs
	src/Umbraco.Tests/Migrations/TargetVersionSixthMigrationsTest.cs
	src/Umbraco.Tests/Migrations/Upgrades/BaseUpgradeTest.cs
	src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/ServerRegistrationRepositoryTest.cs
	src/Umbraco.Tests/Plugins/TypeFinderTests.cs
	src/Umbraco.Tests/Routing/DomainsAndCulturesTests.cs
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/config/ClientDependency.config
	src/Umbraco.Web.UI/packages.config
	src/Umbraco.Web.UI/umbraco/Views/Default.cshtml
	src/Umbraco.Web/BaseRest/BaseRestHandler.cs
	src/Umbraco.Web/Cache/DistributedCacheExtensions.cs
	src/Umbraco.Web/Editors/AuthenticationController.cs
	src/Umbraco.Web/Editors/BackOfficeController.cs
	src/Umbraco.Web/Routing/ContentFinderByIdPath.cs
	src/Umbraco.Web/Routing/ContentFinderByNiceUrlAndTemplate.cs
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/WebBootManager.cs
	src/Umbraco.Web/umbraco.presentation/NotFoundHandlers.cs
	src/Umbraco.Web/umbraco.presentation/content.cs
	src/Umbraco.Web/umbraco.presentation/page.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs
	src/UmbracoExamine/UmbracoMemberIndexer.cs
	src/umbraco.MacroEngines/app.config
	src/umbraco.MacroEngines/packages.config
	src/umbraco.MacroEngines/umbraco.MacroEngines.csproj
	src/umbraco.editorControls/app.config
	src/umbraco.editorControls/packages.config
	src/umbraco.editorControls/umbraco.editorControls.csproj
	src/umbraco.providers/app.config
2015-05-05 16:11:06 +10:00
Shannon cc27d2c483 fix merge issues 2015-02-23 13:49:53 +01:00
Shannon dc513570a5 Merge remote-tracking branch 'origin/7.3.0' into dev-v8
Conflicts:
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeZero/AddPublicAccessTables.cs
	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/RepositoryBase.cs
	src/Umbraco.Core/Persistence/RepositoryFactory.cs
	src/Umbraco.Core/Services/ServiceContext.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
	src/Umbraco.Web.UI/config/ClientDependency.config
	src/Umbraco.Web/Search/ExamineEvents.cs
	src/Umbraco.Web/UmbracoHelper.cs
	src/Umbraco.Web/umbraco.presentation/content.cs
	src/Umbraco.Web/umbraco.presentation/requestModule.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/translation/default.aspx.cs
	src/umbraco.MacroEngines/RazorDynamicNode/RazorLibraryCore.cs
	src/umbraco.businesslogic/IO/SystemFiles.cs
	src/umbraco.cms/businesslogic/Dictionary.cs
	src/umbraco.cms/businesslogic/web/Document.cs
2015-02-23 13:41:34 +01:00
Shannon e5b88a9a75 removes commented out code 2015-02-23 13:21:10 +01:00
Shannon 2dcc03ee3f more tests fixed, decouples more of the MappingResolver.Current singleton 2015-02-23 13:20:14 +01:00
Shannon 0ff5780944 fixes lots of tests 2015-02-23 11:29:11 +01:00
Shannon c76be66028 starts fixing up all the tests 2015-02-23 00:02:12 +01:00
Shannon 3e18c93cf5 More singleton reduction, created new IMappingResolver which is used by the Query<T> object instead of relying on a singleton, creates a new QueryFactory to create Query<T>, removes all standalone stuff (will create that again later). It builds, but most tests will still be failing. 2015-02-22 23:09:20 +01:00
Shannon 905e58e3b6 Completes: U4-6104 Remove SqlSyntaxContext - quite a large refactor and cleanup since the SqlSyntaxContext was used everywhere :( haven't run tests, etc... yet but the project builds now. 2015-02-22 21:36:02 +01:00
Shannon 693384bdf6 completes: U4-5546 Remove user 'channels', weblog api, and all code / db tables relevant to those 2015-02-22 17:16:39 +01:00
Shannon c4ca50dd5f fixes an ioc registration 2015-02-22 17:16:21 +01:00
Shannon 9f5f8e57af fixes merge issues 2015-02-22 16:59:40 +01:00
Shannon 1851303343 Merge remote-tracking branch 'origin/dev-v7' into dev-v8
Conflicts:
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/packages.config
	src/Umbraco.Web.UI/umbraco/controls/ContentTypeControlNew.ascx.cs
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/umbraco.presentation/macro.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs
	src/umbraco.MacroEngines/RazorDynamicNode/ExtensionMethodFinder.cs
	src/umbraco.MacroEngines/Resources/Web.config
	src/umbraco.MacroEngines/packages.config
	src/umbraco.MacroEngines/umbraco.MacroEngines.csproj
	src/umbraco.cms/businesslogic/Dictionary.cs
	src/umbraco.editorControls/packages.config
	src/umbraco.editorControls/umbraco.editorControls.csproj
2015-02-22 16:56:02 +01:00
Shannon bd34193cfd Completes: U4-6186 Remove all support for legacy xml schema 2015-01-27 15:18:58 +11:00
Shannon 7c5e68dd1c Merge remote-tracking branch 'origin/7.3.0' into dev-v8
Conflicts:
	src/Umbraco.Core/Services/ServiceContext.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Tests/Mvc/UmbracoViewPageTests.cs
	src/Umbraco.Tests/Persistence/BaseTableByTableTest.cs
	src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs
2015-01-27 15:00:23 +11:00
Shannon 64787f8576 Fixes tests, decouples the UrlSegmentProviderResolver a little bit, removes lots of obsoleted ctors 2015-01-27 14:58:33 +11:00
Shannon 3e410e6a41 starts fixing up tests 2015-01-23 20:09:42 +11:00
Shannon 887ccaae83 WIP - Updates property editor resolver to use IoC, updates base prop editor class to require an ILogger which now get's ctor injected. This is a WIP because even though it builds there's a bunch of stuff not working, need to run/fix all tests (soon) 2015-01-23 20:00:44 +11:00
Shannon a292c60402 completes: U4-5148 Remove TidyNet from the core and anything that references/uses it 2015-01-23 18:05:55 +11:00
Shannon ea5575c1f5 Deletes a bunch of old unused files - mostly in umbraco_client 2015-01-23 17:10:10 +11:00
Shannon 7222058dd4 Deletes a bunch of old unused files - mostly in umbraco_client 2015-01-23 17:01:24 +11:00
Shannon 0df22a16b5 fixes merge issues 2015-01-23 12:28:27 +11:00
Shannon c94eff9089 Merge remote-tracking branch 'origin/7.3.0' into dev-v8
Conflicts:
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs
	src/Umbraco.Tests/Routing/ContentFinderByAliasTests.cs
	src/Umbraco.Tests/Routing/ContentFinderByAliasWithDomainsTests.cs
	src/Umbraco.Tests/Routing/ContentFinderByNiceUrlWithDomainsTests.cs
	src/Umbraco.Tests/Routing/DomainsAndCulturesTests.cs
	src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs
	src/Umbraco.Tests/Routing/uQueryGetNodeIdByUrlTests.cs
	src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs
	src/umbraco.MacroEngines/packages.config
	src/umbraco.MacroEngines/umbraco.MacroEngines.csproj
	src/umbraco.cms/businesslogic/Property/Property.cs
	src/umbraco.cms/businesslogic/datatype/DataTypeDefinition.cs
2015-01-23 12:25:07 +11:00
Shannon 9710e6f9e2 refactors where the container is created 2015-01-21 13:21:36 +11:00
Shannon 13a4d5c81c WIP - have added LightInject as a fast and tiny IoC container that is embedded. Have updated all required SingleObjectResolverBase and non lazy ManyObjectResolverBase to use a Container implementation. Have updated the boot managers to use IoC to instantiate all their requirements. This is so much nicer now by using IoC to ctor all of the objects in these resolvers we can get ctor injection OOTB so no more singletons. Need to create resolver to support the lazy resolver with IoC next. Updated IContentFinders, IThumbnailProviders to use ctor injection. 2015-01-21 12:48:08 +11:00
Shannon 215113d635 more unused code removed 2015-01-20 18:17:11 +11:00
Shannon 2342ba5537 removes old unused code 2015-01-20 18:15:22 +11:00
Shannon f6a547d681 Merge remote-tracking branch 'origin/7.3.0' into dev-v8 2015-01-19 19:10:56 +11:00
Shannon 631c8e3944 fixes up some tests 2015-01-19 19:03:58 +11:00
Shannon 6ad895d7db Fixes merge issues - proj now builds (not sure if it works yet though) 2015-01-19 13:38:51 +11:00
Shannon f9159a0afc Merge remote-tracking branch 'origin/7.3.0' into dev-v8
Conflicts:
	build/UmbracoVersion.txt
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Core/CoreBootManager.cs
	src/Umbraco.Core/DataTypesResolver.cs
	src/Umbraco.Core/PropertyEditors/PropertyEditorValueConvertersResolver.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Tests/CodeFirst/Definitions/ContentTypeDefinitionFactory.cs
	src/Umbraco.Tests/CodeFirst/TypeInheritanceTest.cs
	src/Umbraco.Tests/Macros/MacroTests.cs
	src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs
	src/Umbraco.Tests/Plugins/PluginManagerTests.cs
	src/Umbraco.Tests/Plugins/TypeFinderTests.cs
	src/Umbraco.Tests/Services/ThreadSafetyServiceTest.cs
	src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs
	src/Umbraco.Tests/TestHelpers/BaseSeleniumTest.cs
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/config/ClientDependency.config
	src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadStylesheetProperty.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadStylesheets.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadTemplates.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/settings/stylesheet/property/EditStyleSheetProperty.aspx.cs
	src/umbraco.cms/businesslogic/CMSNode.cs
	src/umbraco.cms/businesslogic/propertytype/propertytype.cs
	src/umbraco.cms/businesslogic/web/StyleSheet.cs
	src/umbraco.editorControls/tinyMCE3/TinyMCE.cs
2015-01-19 13:16:56 +11:00
Shannon 02a903f77b Merge remote-tracking branch 'origin/dev-v7' into dev-v8
Conflicts:
	build/UmbracoVersion.txt
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/packages.config
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/UmbracoHelper.cs
	src/Umbraco.Web/umbraco.presentation/CompatibilityHelper.cs
	src/Umbraco.Web/umbraco.presentation/library.cs
	src/Umbraco.Web/umbraco.presentation/macro.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs
	src/umbraco.MacroEngines/RazorDynamicNode/DynamicBackingItem.cs
	src/umbraco.MacroEngines/app.config
	src/umbraco.MacroEngines/packages.config
	src/umbraco.MacroEngines/umbraco.MacroEngines.csproj
	src/umbraco.cms/businesslogic/Packager/Installer.cs
	src/umbraco.editorControls/app.config
	src/umbraco.editorControls/packages.config
	src/umbraco.editorControls/umbraco.editorControls.csproj
	src/umbraco.providers/app.config
2015-01-19 13:11:51 +11:00
Shannon 7a53fa3ba7 remove more unused code 2014-11-21 17:42:05 +11:00
Shannon 3cd949d49c Completes: U4-5861 and removes the very old legacy umbraco context, server, request, etc... stuff 2014-11-21 17:19:06 +11:00
Shannon 072c77989f Completes: U4-5415, almost completes U4-5416 2014-11-21 17:05:39 +11:00
Shannon 9cc584ae52 Completes: U4-5484 Remove /base REST support 2014-11-21 16:39:27 +11:00
Shannon c3523a09ec WIP WIP WIP. Started working on U4-5648 which led to quite a lot of other things, once IDataType was removed (U4-5858), this lead to U4-5546, U4-5416, U4-5484, U4-5805. So much of this stuff is etched deep into the codebase, so nice to get rid of it. Had to remove the codefirst tests too for now since they relied on old apis and we don't really support it/use it. Commented out all of the code relating to the document type editor UI bits since they need to be rewritten and removed. 2014-11-21 16:34:47 +11:00
Shannon 854bf5acbf remove more obsolete code 2014-11-14 18:48:42 +11:00
Shannon 1e7197d28c removes obsolete io classes 2014-11-14 18:45:29 +11:00
Shannon acfa63f592 removes a ton more of the legacy tinymce files 2014-11-14 18:41:34 +11:00
Shannon c839264ad8 Removes more old tinymce files, removes unused js files, removes unused search controls 2014-11-14 18:39:13 +11:00
Shannon ae79a7cd7a Completes: U4-5810 Remove umbraco.providers assembly and classes - old membership providers 2014-11-14 18:26:01 +11:00
Shannon 4fce47cff3 Completes: U4-5808 All old legacy 'datatypes' since they are not supported or used 2014-11-14 18:22:31 +11:00
Shannon 07fdd81801 Fixes up a bunch of code errors with 'hiding' members, i'm actually surprised our sln even built with this sort of stuff 2014-11-14 18:10:41 +11:00
Shannon bdcf8f8fc0 Removes more unused code 2014-11-14 17:57:44 +11:00
Shannon c08db70e82 Removing more unused code and working on U4-5805 2014-11-14 17:52:18 +11:00
Shannon 1d9da125c4 Removing more unused code and working on U4-5808 2014-11-14 17:49:10 +11:00
Shannon 0ff5c72862 Removing unused code and also working on U4-5805 2014-11-14 17:46:21 +11:00
Shannon 6a7c7d396b Completes: U4-5807 2014-11-14 17:27:07 +11:00
Shannon fbb023f844 working on U4-5648 Remove legacy razor macro's entirely - removes lots of legacy 2014-11-14 17:15:38 +11:00
Shannon d7948a79e2 working on U4-5648 Remove legacy razor macro's entirely - removes old config section, bumps version to 8 2014-11-14 15:11:46 +11:00
Shannon fba48cb845 fixes dotless dependencies so it builds 2014-11-14 14:46:25 +11:00
Shannon ed518feb4c working on U4-5648 Remove legacy razor macro's entirely 2014-11-14 14:24:35 +11:00
Shannon 5aeecf7701 working on U4-5648 Remove legacy razor macro's entirely 2014-11-14 14:05:46 +11:00
Shannon b7bc98fccc removes legacy RazorBuildProvider 2014-11-14 13:46:37 +11:00
6532 changed files with 419179 additions and 649160 deletions
+15 -1
View File
@@ -8,9 +8,23 @@ 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
trim_trailing_whitespace = true
[*.{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 = _
+50 -36
View File
@@ -1,29 +1,49 @@
#
# Umbraco Cms Git Ignore
#
# common files
*.obj
*.pdb
*.user
*.aps
*.pch
*.vspscc
*.orig
*.suo
*.vs10x
*.ndproj
# common directories
.DS_Store
._.DS_Store
[Bb]in
.vs/
/local/
# build directories
[Bb]in/
[Db]ebug*/
obj/
[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
*.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/*
@@ -46,12 +66,11 @@ 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.Web.UI/[Cc]onfig/ClientDependency.config
src/Umbraco.Tests/config/404handlers.config
src/Umbraco.Web.UI/[Vv]iews/*.cshtml
src/Umbraco.Web.UI/[Vv]iews/*.vbhtml
@@ -68,18 +87,15 @@ 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/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/[Jj]s/canvasdesigner.*.js
src/Umbraco.Web.UI/[Uu]mbraco/[Vv]iews/
src/Umbraco.Web.UI/[Uu]mbraco/[Vv]iews/**/*.js
@@ -89,56 +105,54 @@ 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
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
src/Umbraco.Web.UI/[Uu]mbraco/plugins/*
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
/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.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
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
.vs/
src/packages/
src/PrecompiledWeb/*
# build
build.out/
build.tmp/
build/Modules/*/temp/
/src/.idea/*
build/hooks/
build/temp/
# eof
-80
View File
@@ -1,80 +0,0 @@
# Code of Conduct
## 1. Purpose
A primary goal of Umbraco CMS is to be inclusive to the largest number of contributors, with the most varied and diverse backgrounds possible. As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof).
This code of conduct outlines our expectations for all those who participate in our community, as well as the consequences for unacceptable behavior.
We invite all those who participate in Umbraco CMS to help us create safe and positive experiences for everyone.
## 2. Open Source Citizenship
A supplemental goal of this Code of Conduct is to increase open source citizenship by encouraging participants to recognize and strengthen the relationships between our actions and their effects on our community.
Communities mirror the societies in which they exist and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society.
If you see someone who is making an extra effort to ensure our community is welcoming, friendly, and encourages all participants to contribute to the fullest extent, we want to know.
## 3. Expected Behavior
The following behaviors are expected and requested of all community members:
* Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community.
* Exercise consideration and respect in your speech and actions.
* Attempt collaboration before conflict.
* Refrain from demeaning, discriminatory, or harassing behavior and speech.
* Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential.
* Remember that community event venues may be shared with members of the public; please be respectful to all patrons of these locations.
## 4. Unacceptable Behavior
The following behaviors are considered harassment and are unacceptable within our community:
* Violence, threats of violence or violent language directed against another person.
* Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language.
* Posting or displaying sexually explicit or violent material.
* Posting or threatening to post other peoples personally identifying information ("doxing").
* Personal insults, particularly those related to gender, sexual orientation, race, religion, or disability.
* Inappropriate photography or recording.
* Inappropriate physical contact. You should have someones consent before touching them.
* Unwelcome sexual attention. This includes, sexualized comments or jokes; inappropriate touching, groping, and unwelcomed sexual advances.
* Deliberate intimidation, stalking or following (online or in person).
* Advocating for, or encouraging, any of the above behavior.
* Sustained disruption of community events, including talks and presentations.
## 5. Consequences of Unacceptable Behavior
Unacceptable behavior from any community member, including sponsors and those with decision-making authority, will not be tolerated.
Anyone asked to stop unacceptable behavior is expected to comply immediately.
If a community member engages in unacceptable behavior, the community organizers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from the community without warning (and without refund in the case of a paid event).
## 6. Reporting Guidelines
If you are subject to or witness unacceptable behavior, or have any other concerns, please notify a community organizer as soon as possible. Please contact Sebastiaan Janssen - [sj@umbraco.dk](mailto:sj@umbraco.dk).
Additionally, community organizers are available to help community members engage with local law enforcement or to otherwise help those experiencing unacceptable behavior feel safe. In the context of in-person events, organizers will also provide escorts as desired by the person experiencing distress.
## 7. Addressing Grievances
If you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify Umbraco with a concise description of your grievance. Your grievance will be handled in accordance with our existing governing policies.
## 8. Scope
We expect all community participants (contributors, paid or otherwise; sponsors; and other guests) to abide by this Code of Conduct in all community venuesonline and in-personas well as in all one-on-one communications pertaining to community business.
This code of conduct and its related procedures also applies to unacceptable behavior occurring outside the scope of community activities when such behavior has the potential to adversely affect the safety and well-being of community members.
## 9. Contact info
Sebastiaan Janssen - [sj@umbraco.dk](mailto:sj@umbraco.dk)
## 10. License and attribution
This Code of Conduct is distributed under a [Creative Commons Attribution-ShareAlike license](http://creativecommons.org/licenses/by-sa/3.0/).
Portions of text derived from the [Django Code of Conduct](https://www.djangoproject.com/conduct/) and the [Geek Feminism Anti-Harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy).
Retrieved on November 22, 2016 from [http://citizencodeofconduct.org/](http://citizencodeofconduct.org/)
-207
View File
@@ -1,207 +0,0 @@
# 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 💖.
#### Table Of Contents
[Code of Conduct](#code-of-conduct)
[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 do I even begin?](#how-do-i-even-begin)
[Problems?](#problems)
[Credits](#credits)
## 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).
## 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](ISSUE_TEMPLATE.md), 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.org/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 question 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 Atom, 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.org/projects/).
### Your First Code Contribution
Unsure where to begin contributing to Umbraco? You can start by looking through [these `Up for grabs` and issues](http://issues.umbraco.org/issues/U4?q=%28project%3A+%7BU4%7D+Difficulty%3A+%7BVery+Easy%7D+%23Easy+%23Unresolved+Priority%3A+Normal+%23Major+%23Show-stopper+State%3A+-%7BIn+Progress%7D+sort+by%3A+votes+Affected+versions%3A+-6.*+Affected+versions%3A+-4.*%29+OR+%28tag%3A+%7BUp+For+Grabs%7D+%23Unresolved+%29).
The issue list is sorted by total number of upvotes. While not perfect, number of upvotes is a reasonable proxy for impact a given change will have.
### 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.org/documentation/Reference/) is generated
Again, these are guidelines, not strict requirements.
## 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.org/apidocs/ui/#/api) (to be found in `src\Umbraco.Web.UI.Client\src`)
* [The rest](https://our.umbraco.org/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?](tools/contributing/defaultbranch.png)
### Building Umbraco from source code
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 ([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](tools/contributing/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))
## How do I even 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](tools/contributing/forkrepository.png)
* **Clone** - when GitHub has created your fork, you can clone it in your favorite Git tool
![Clone the fork](tools/contributing/clonefork.png)
* **Build** - build your fork of Umbraco locally as described in [building Umbraco from source code](#building-umbraco-from-source-code)
* **Change** - make your changes, experiment, have fun, explore and learn, and don't be afraid. We welcome all contributions and will happily give feedback
* **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-U4-12345`. This means it's a temporary branch for the particular issue you're working on, in this case `U4-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](tools/contributing/createpullrequest.png)
The Umbraco development 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.
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!
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 at this and we'll be nice about it, thanking you for spending your valueable time.
Remember, if an issue is in the `Up for grabs` list or you've asked for some feedback before you send us a PR, your PR will not be closed as unwanted.
## Problems?
Did something not work as expected? Try leaving a note in the ["Contributing to Umbraco"](https://our.umbraco.org/forum/contributing-to-umbraco-cms/) forum, the team monitors that one closely!
## 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!
+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>
-47
View File
@@ -1,47 +0,0 @@
[![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)
Umbraco CMS
===========
The friendliest, most flexible and fastest growing ASP.NET CMS used by more than 443,000 websites worldwide: [https://umbraco.com](https://umbraco.com)
[![ScreenShot](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](http://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 - or a breeze to build complex web applications. Umbraco has award-winning integration capabilities and supports ASP.NET MVC or Web Forms, including User and Custom Controls, out of the box.
Umbraco is not only loved by developers, but is a content editors 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 scales. 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/why-umbraco/#caseStudies](https://umbraco.com/why-umbraco/#caseStudies)
## 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) is the easiest and fastest way to use Umbraco yet with full support for all your custom .NET code and intergrations. 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.org/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 yourself and handling deployments and upgrades is all down to you.
## Community
Our friendly community is available 24/7 at the community hub we call ["Our Umbraco"](https://our.umbraco.org). Our Umbraco feature 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://our.umbraco.org/contribute/report-an-issue-or-request-a-feature).
To view existing issues, please visit [http://issues.umbraco.org](http://issues.umbraco.org).
-5
View File
@@ -1,5 +0,0 @@
- name: Umbraco.Core Documentation
href: https://our.umbraco.org/apidocs/csharp/api/Umbraco.Core.html
- name: Umbraco.Web Documentation
href: https://our.umbraco.org/apidocs/csharp/api/Umbraco.Web.html
-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 Can not run build\build.ps1.
ECHO If this is due to a SecurityError then please refer to BUILD.md for help!
ECHO.
-63
View File
@@ -1,63 +0,0 @@
@ECHO OFF
SETLOCAL
REM SETLOCAL is on, so changes to the path not persist to the actual user's path
git.exe --version
IF %ERRORLEVEL%==9009 GOTO :trydefaultpath
REM OK, DONE
GOTO :EOF
:trydefaultpath
PATH=C:\Program Files (x86)\Git\cmd;C:\Program Files\Git\cmd;%PATH%
git.exe --version
IF %ERRORLEVEL%==9009 GOTO :showerror
REM OK, DONE
GOTO :EOF
:showerror
ECHO Git is not in your path and could not be found in C:\Program Files (x86)\Git\cmd nor in C:\Program Files\Git\cmd
SET /p install=" Do you want to install Git through Chocolatey [y/n]? " %=%
IF %install%==y (
:: Create a temporary batch file to execute either after elevating to admin or as-is when the user is already admin
ECHO @ECHO OFF > "%temp%\ChocoInstallGit.cmd"
ECHO SETLOCAL >> "%temp%\ChocoInstallGit.cmd"
ECHO ECHO Installing Chocolatey first >> "%temp%\ChocoInstallGit.cmd"
ECHO @powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" >> "%temp%\ChocoInstallGit.cmd"
ECHO SET PATH=%%PATH%%;%%ALLUSERSPROFILE%%\chocolatey\bin >> "%temp%\ChocoInstallGit.cmd"
ECHO choco install git -y >> "%temp%\ChocoInstallGit.cmd"
GOTO :installgit
) ELSE (
GOTO :cantcontinue
)
:cantcontinue
ECHO Can't complete the build without Git being in the path. Please add it to be able to continue.
GOTO :EOF
:installgit
pushd %~dp0
:: Running prompt elevated
:: --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
:: --> If error flag set, we do not have admin.
IF '%errorlevel%' NEQ '0' (
GOTO UACPrompt
) ELSE ( GOTO gotAdmin )
:UACPrompt
ECHO You're not currently running this with admin privileges, we'll now try to execute the install of Git through Chocolatey after elevating to admin privileges
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
ECHO UAC.ShellExecute "%temp%\ChocoInstallGit.cmd", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
EXIT /B
:gotAdmin
IF EXIST "%temp%\getadmin.vbs" ( DEL "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
CALL "%temp%\ChocoInstallGit.cmd"
@@ -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.org/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-v6.9.1-win-x86"
$source = "http://nodejs.org/dist/v6.9.1/node-v6.9.1-win-x86.7z"
if (-not (test-path $node))
{
Write-Host "Download Node..."
Invoke-WebRequest $source -OutFile "$path\node-v6.9.1-win-x86.7z"
&$sevenZip x "$path\node-v6.9.1-win-x86.7z" -o"$path" -aos > $nul
Remove-File "$path\node-v6.9.1-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
}
}
+87 -107
View File
@@ -1,107 +1,87 @@
<?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.6, 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="3.4.4">
<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>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>
<!--
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="AutoMapper" version="[7.0.1,7.999999)" />
<dependency id="ClientDependency" version="[1.9.6,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-beta025,1.999999)" />
<dependency id="HtmlAgilityPack" version="[1.7.2,1.999999)" />
<dependency id="ImageProcessor" version="[2.6.1.19,2.999999)" />
<dependency id="ImageProcessor.Web" version="[4.9.2.19,4.999999)" />
<dependency id="ImageProcessor.Web.Config" version="[2.4.1.19,2.999999)" />
<dependency id="LightInject" version="[5.1.2,5.999999)" />
<dependency id="LightInject.Annotation" version="[1.1.0,1.999999)" />
<dependency id="LightInject.Mvc" version="[2.0.0,2.999999)" />
<dependency id="LightInject.WebApi" version="[2.0.0,2.999999)" />
<dependency id="log4net" version="[2.0.8,2.999999)" />
<dependency id="Log4Net.Async" version="[2.0.4,2.999999)" />
<dependency id="Lucene.Net.Contrib" version="[3.0.3,3.999999)" />
<dependency id="Markdown" version="[2.2.1,2.999999)" />
<dependency id="Microsoft.AspNet.Identity.Owin" version="[2.2.1,2.999999)" />
<dependency id="Microsoft.AspNet.Mvc" version="[5.2.6,5.999999)" />
<dependency id="Microsoft.AspNet.SignalR.Core" version="[2.2.3,2.999999)" />
<dependency id="Microsoft.AspNet.WebApi" version="[5.2.6,5.999999)" />
<dependency id="Microsoft.CodeAnalysis.CSharp" version="[2.8.0,2.999999)" />
<dependency id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="[1.0.8,1.999999)" />
<dependency id="Microsoft.Net.Compilers" version="[2.8.0,2.999999)" />
<dependency id="Microsoft.Owin.Host.SystemWeb" version="[4.0.0,4.999999)" />
<dependency id="Microsoft.Owin.Security.Cookies" version="[4.0.0,4.999999)" />
<dependency id="Microsoft.Owin.Security.OAuth" version="[4.0.0,4.999999)" />
<dependency id="Microsoft.Web.Xdt" version="[2.1.2,2.999999)" />
<dependency id="MiniProfiler" version="[3.2.0.157,3.999999)" />
<dependency id="MySql.Data" version="[6.10.7,6.999999)" />
<dependency id="Newtonsoft.Json" version="[11.0.2,11.999999)" />
<dependency id="NPoco" version="[3.9.3,3.999999)" />
<dependency id="Semver" version="[2.0.4,2.999999)" />
<dependency id="System.Reflection.Primitives" version="[4.3.0,4.999999)" />
<dependency id="System.Runtime.Handles" version="[4.3.0,4.999999)" />
<dependency id="System.Security.Cryptography.X509Certificates" version="[4.3.2,4.999999)" />
<dependency id="System.Threading.Tasks.Dataflow" version="[4.8.0,4.999999)" />
<dependency id="Umbraco.SqlServerCE" version="[4.0.0.1,4.999999)" />
</dependencies>
</metadata>
<files>
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.dll" target="lib\net472\Umbraco.Core.dll" />
<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" />
<!-- docs -->
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.xml" target="lib\Umbraco.Core.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.xml" target="lib\Umbraco.Web.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.UI.xml" target="lib\Umbraco.Web.UI.xml" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Examine.xml" target="lib\Umbraco.Examine.xml" />
<file src="tools\install.core.ps1" target="tools\install.ps1" />
<!-- symbols -->
<file src="$BuildTmp$\bin\Umbraco.Core.pdb" target="lib" />
<file src="$BuildTmp$\..\src\Umbraco.Core\**\*.cs" exclude="$BuildTmp$\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Core" />
<file src="$BuildTmp$\bin\Umbraco.Web.pdb" target="lib" />
<file src="$BuildTmp$\..\src\Umbraco.Web\**\*.cs" exclude="$BuildTmp$\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Web" />
<file src="$BuildTmp$\bin\Umbraco.Web.UI.pdb" target="lib" />
<file src="$BuildTmp$\..\src\Umbraco.Web.UI\**\*.cs" exclude="$BuildTmp$\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Web.UI" />
<file src="$BuildTmp$\bin\Umbraco.Examine.pdb" target="lib" />
<file src="$BuildTmp$\..\src\Umbraco.Examine\**\*.cs" exclude="$BuildTmp$\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Examine" />
</files>
</package>
+59 -53
View File
@@ -1,53 +1,59 @@
<?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)" />
</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="3.4.4">
<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>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$]" />
<!--
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.2.3, 2.999999)" />
<dependency id="Umbraco.ModelsBuilder.Ui" version="[8.0.0-alpha.20]" />
</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\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="$BuildTmp$\WebApp\App_Plugins\ModelsBuilder\modelsbuilder.htm" target="Content\App_Plugins\ModelsBuilder\modelsbuilder.htm" />
<file src="$BuildTmp$\WebApp\App_Plugins\ModelsBuilder\modelsbuilder.controller.js" target="Content\App_Plugins\ModelsBuilder\modelsbuilder.controller.js" />
<file src="$BuildTmp$\WebApp\App_Plugins\ModelsBuilder\modelsbuilder.resource.js" target="Content\App_Plugins\ModelsBuilder\modelsbuilder.resource.js" />
<file src="$BuildTmp$\WebApp\App_Plugins\ModelsBuilder\package.manifest" target="Content\App_Plugins\ModelsBuilder\package.manifest" />
<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="build\**" target="build" />
</files>
</package>
+25 -25
View File
@@ -1,26 +1,26 @@
_ _ __ __ ____ _____ _____ ____
| | | | \/ | _ \| __ \ /\ / ____/ __ \
| | | | \ / | |_) | |__) | / \ | | | | | |
| | | | |\/| | _ <| _ / / /\ \| | | | | |
| |__| | | | | |_) | | \ \ / ____ | |___| |__| |
\____/|_| |_|____/|_| \_/_/ \_\_____\____/
----------------------------------------------------
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.org:
http://our.umbraco.org/contribute/releases
_ _ __ __ ____ _____ _____ ____
| | | | \/ | _ \| __ \ /\ / ____/ __ \
| | | | \ / | |_) | |__) | / \ | | | | | |
| | | | |\/| | _ <| _ / / /\ \| | | | | |
| |__| | | | | |_) | | \ \ / ____ | |___| |__| |
\____/|_| |_|____/|_| \_/_/ \_\_____\____/
----------------------------------------------------
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:
http://our.umbraco.com/contribute/releases
- Umbraco
+3 -3
View File
@@ -11,7 +11,7 @@
*** IMPORTANT NOTICE FOR UPGRADES FROM VERSIONS BELOW 7.7.0 ***
Be sure to read the version specific upgrade information before proceeding:
https://our.umbraco.org/documentation/Getting-Started/Setup/Upgrading/version-specific#version-7-7-0
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.
@@ -33,7 +33,7 @@ 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.org:
http://our.umbraco.org/contribute/releases
Please read the release notes on our.umbraco.com:
http://our.umbraco.com/contribute/releases
- Umbraco
@@ -1,42 +1,32 @@
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
xdt:Locator="Match(name)"
xdt:Transform="SetAttributes(type)">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
xdt:Locator="Match(name)"
xdt:Transform="SetAttributes(type)" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
xdt:Locator="Match(name)"
xdt:Transform="SetAttributes(type)" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
xdt:Locator="Match(factoryType)"
xdt:Transform="SetAttributes(factoryType)" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="Umbraco.Web.PublishedContentModels" xdt:Transform="InsertIfMissing" />
</namespaces>
</pages>
</system.web.webPages.razor>
<system.web>
<pages
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
xdt:Locator="Match(pageParserFilterType,pageBaseType,userControlBaseType)"
xdt:Transform="SetAttributes(pageParserFilterType,pageBaseType,userControlBaseType)">
<controls>
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc"
xdt:Locator="Match(namespace)"
xdt:Transform="SetAttributes(assembly)" />
</controls>
</pages>
</system.web>
</configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" xdt:Locator="Match(name)" xdt:Transform="SetAttributes(type)">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" xdt:Locator="Match(name)" xdt:Transform="SetAttributes(type)" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" xdt:Locator="Match(name)" xdt:Transform="SetAttributes(type)" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" xdt:Locator="Match(factoryType)" xdt:Transform="SetAttributes(factoryType)" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="Umbraco.Web.PublishedContentModels" xdt:Transform="InsertIfMissing" />
</namespaces>
</pages>
</system.web.webPages.razor>
<system.web>
<pages
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
xdt:Locator="Match(pageParserFilterType,pageBaseType,userControlBaseType)"
xdt:Transform="SetAttributes(pageParserFilterType,pageBaseType,userControlBaseType)">
<controls>
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" xdt:Locator="Match(namespace)" xdt:Transform="SetAttributes(assembly)" />
</controls>
</pages>
</system.web>
</configuration>
+38 -249
View File
@@ -2,9 +2,8 @@
<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)" />
<section name="ExamineLuceneIndexSets" type="Umbraco.Examine.Config.IndexSets, Umbraco.Examine" requirePermission="false" xdt:Locator="Match(name)" xdt:Transform="SetAttributes(type,requirePermission)" />
<sectionGroup name="applicationSettings" xdt:Locator="Match(name)">
<section name="umbraco.presentation.Properties.Settings" xdt:Locator="Match(name)" xdt:Transform="Remove" />
@@ -12,7 +11,6 @@
<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" />
@@ -29,14 +27,12 @@
<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>
<FileSystemProviders xdt:Transform="Remove" />
<BaseRestExtensions xdt:Transform="Remove" />
<system.data xdt:Transform="InsertIfMissing">
<DbProviderFactories xdt:Transform="InsertIfMissing">
@@ -67,190 +63,6 @@
<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>
<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>
<xhtmlConformance xdt:Transform="Remove" />
@@ -276,9 +88,6 @@
<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" />
<add name="umbracoRequestModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
<add name="viewstateMoverModule" xdt:Locator="Match(name)" xdt:Transform="Remove" />
@@ -341,62 +150,42 @@
<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" />
</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" />
</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" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<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"/>
</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"/>
</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" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" 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-11.0.0.0" newVersion="11.0.0.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.1.0" newVersion="1.2.1.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.6.0" newVersion="5.2.6.0" />
</dependentAssembly>
<dependentAssembly xdt:Transform="Insert">
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.6.0" newVersion="5.2.6.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
@@ -416,4 +205,4 @@
</system.webServer>
</location>
</configuration>
</configuration>
+3 -13
View File
@@ -33,26 +33,16 @@ if ($project) {
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.Web.dll) { Remove-Item $umbracoBinFolder\Umbraco.Web.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 }
if(Test-Path $umbracoBinFolder\Umbraco.Examine.dll) { Remove-Item $umbracoBinFolder\Umbraco.Examine.dll -Force -Confirm:$false }
# Delete files Umbraco depends upon
$amd64Folder = Join-Path $umbracoBinFolder "amd64"
@@ -102,4 +92,4 @@ if ($project) {
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 }
}
}
}
+161 -161
View File
@@ -1,162 +1,162 @@
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}"
$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')
}
}
+26 -29
View File
@@ -4,18 +4,18 @@
<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"
<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.Web"
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"
<add initialize="true" sortOrder="0" alias="content" application="content" title="Content" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.ContentTreeController, Umbraco.Web"
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"
<add initialize="true" sortOrder="0" alias="media" application="media" title="Media" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.MediaTreeController, Umbraco.Web"
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"
<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.Web"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
@@ -23,39 +23,39 @@
<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"
<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.Web"
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"
<add application="settings" alias="stylesheets" title="Stylesheets" type="umbraco.loadStylesheets, Umbraco.Web" 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"
<add application="settings" alias="stylesheetProperty" title="Stylesheet Property" type="umbraco.loadStylesheetProperty, Umbraco.Web" 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"
<add application="settings" alias="templates" title="Templates" type="Umbraco.Web.Trees.TemplatesTreeController, Umbraco.Web" 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"
<add application="settings" alias="partialViews" type="Umbraco.Web.Trees.PartialViewsTree, Umbraco.Web"
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"
<add application="settings" alias="partialViews" title="Partial Views" silent="false" initialize="true" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.PartialViewsTreeController, Umbraco.Web" 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"
<add application="settings" alias="scripts" title="Scripts" type="Umbraco.Web.Trees.ScriptTreeController, Umbraco.Web" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="settings" alias="dictionary" title="Dictionary" type="umbraco.loadDictionary, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="6"
<add application="settings" alias="dictionary" title="Dictionary" type="Umbraco.Web.Trees.DictionaryTreeController, Umbraco.Web" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="8"
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"
<add application="settings" alias="languages" title="Languages" type="Umbraco.Web.Trees.LanguageTreeController, Umbraco.Web" 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"
<add application="settings" initialize="true" alias="mediaTypes" title="Media Types" type="Umbraco.Web.Trees.MediaTypeTreeController, Umbraco.Web" iconClosed="icon-folder" iconOpen="icon-folder-open" sortOrder="7"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
@@ -66,12 +66,12 @@
<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"
<add initialize="true" sortOrder="0" alias="packager" application="developer" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.PackagesTreeController, Umbraco.Web"
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"
<add sortOrder="1" alias="dataTypes" application="developer" type="Umbraco.Web.Trees.DataTypeTreeController, Umbraco.Web"
xdt:Locator="Match(application,type)"
xdt:Transform="SetAttributes(alias,sortOrder)" />
@@ -80,20 +80,17 @@
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"
<add initialize="true" sortOrder="2" alias="macros" application="developer" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.MacroTreeController, Umbraco.Web"
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"
<add application="developer" alias="relationTypes" title="Relation Types" type="umbraco.loadRelationTypes, Umbraco.Web" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add application="developer" alias="partialViewMacros" type="Umbraco.Web.Trees.PartialViewMacrosTree, umbraco"
<add application="developer" alias="partialViewMacros" type="Umbraco.Web.Trees.PartialViewMacrosTree, Umbraco.Web"
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"
<add application="developer" alias="partialViewMacros" type="Umbraco.Web.Trees.PartialViewMacrosTreeController, Umbraco.Web" 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" />
@@ -102,7 +99,7 @@
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"
<add initialize="true" sortOrder="0" alias="users" application="users" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.UserTreeController, Umbraco.Web"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
@@ -114,30 +111,30 @@
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"
<add initialize="true" sortOrder="0" alias="member" application="member" title="Members" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.MemberTreeController, Umbraco.Web"
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"
<add application="member" sortOrder="2" alias="memberGroups" title="Member Groups" type="umbraco.loadMemberGroups, Umbraco.Web" 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"
<add application="member" sortOrder="1" alias="memberTypes" initialize="true" title="Member Types" type="Umbraco.Web.Trees.MemberTypeTreeController, Umbraco.Web" 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"
<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.Web"
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"
<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.Web"
xdt:Locator="Match(application,alias)"
xdt:Transform="SetAttributes()" />
<add alias="yourTasks" application="translation"
@@ -5,4 +5,6 @@
</content>
<webservices xdt:Transform="Remove" />
<repositories xdt:Transform="Remove" />
</settings>
-127
View File
@@ -1,127 +0,0 @@
@ECHO OFF
:choice
set /P c=WARNING! Are you sure you want to continue, this will remove all package files, view files, sqlce database, etc... Press 'Y' to auto-remove all files/folders, 'N' to cancel or 'C' to prompt for each folder removal?
if /I "%c%" EQU "C" goto :prompt
if /I "%c%" EQU "Y" goto :auto
if /I "%c%" EQU "N" goto :exit
goto :choice
:prompt
echo Current folder: %CD%
echo Removing sqlce database
del ..\src\Umbraco.Web.UI\App_Data\Umbraco.sdf
echo Resetting installedPackages.config
echo ^<?xml version="1.0" encoding="utf-8"?^>^<packages^>^</packages^> >..\src\Umbraco.Web.UI\App_Data\packages\installed\installedPackages.config
echo Removing plugin cache files
del ..\src\Umbraco.Web.UI\App_Data\TEMP\PluginCache\*.*
echo Removing cache files and examine index
del ..\src\Umbraco.Web.UI\App_Data\TEMP\*.*
echo Removing log files
del ..\src\Umbraco.Web.UI\App_Data\Logs\*.*
echo Removing packages
del ..\src\Umbraco.Web.UI\App_Data\packages\*.*
echo Removing previews
del ..\src\Umbraco.Web.UI\App_Data\preview\*.*
echo Removing app code files (typically added by starterkits)
del ..\src\Umbraco.Web.UI\App_Code\*.*
echo Removing xslt files
del ..\src\Umbraco.Web.UI\xslt\*.*
echo Removing user control files
del ..\src\Umbraco.Web.UI\UserControls\*.*
echo Removing masterpage files
del ..\src\Umbraco.Web.UI\masterpages\*.*
echo Removing razor files
del ..\src\Umbraco.Web.UI\macroScripts\*.*
echo Removing media files
del ..\src\Umbraco.Web.UI\media\*.*
echo Removing script files
del ..\src\Umbraco.Web.UI\scripts\*.*
echo Removing css files
del ..\src\Umbraco.Web.UI\css\*.*
echo "Umbraco install reverted to clean install"
pause
exit
:auto
echo Current folder: %CD%
echo Removing sqlce database
del ..\src\Umbraco.Web.UI\App_Data\Umbraco.sdf
echo Resetting installedPackages.config
echo ^<?xml version="1.0" encoding="utf-8"?^>^<packages^>^</packages^> >..\src\Umbraco.Web.UI\App_Data\packages\installed\installedPackages.config
echo Removing plugin cache files
FOR %%A IN (..\src\Umbraco.Web.UI\App_Data\TEMP\PluginCache\*.*) DO DEL %%A
echo Removing cache files and examine index
FOR %%A IN (..\src\Umbraco.Web.UI\App_Data\TEMP\*.*) DO DEL %%A
echo Removing log files
FOR %%A IN (..\src\Umbraco.Web.UI\App_Data\Logs\*.*) DO DEL %%A
echo Removing packages
FOR %%A IN (..\src\Umbraco.Web.UI\App_Data\packages\*.*) DO DEL %%A
echo Removing previews
FOR %%A IN (..\src\Umbraco.Web.UI\App_Data\preview\*.*) DO DEL %%A
echo Removing app code files (typically added by starterkits)
FOR %%A IN (..\src\Umbraco.Web.UI\App_Code\*.*) DO DEL %%A
echo Removing xslt files
FOR %%A IN (..\src\Umbraco.Web.UI\xslt\*.*) DO DEL %%A
echo Removing masterpage files
FOR %%A IN (..\src\Umbraco.Web.UI\masterpages\*.*) DO DEL %%A
echo Removing user control files
FOR %%A IN (..\src\Umbraco.Web.UI\usercontrols\*.*) DO DEL %%A
echo Removing view files
ATTRIB +H ..\src\Umbraco.Web.UI\Views\Partials\Grid\*.cshtml /S
FOR %%A IN (..\src\Umbraco.Web.UI\Views\) DO DEL /Q /S *.cshtml -H
ATTRIB -H ..\src\Umbraco.Web.UI\Views\Partials\Grid\*.cshtml /S
echo Removing razor files
FOR %%A IN (..\src\Umbraco.Web.UI\macroScripts\*.*) DO DEL %%A
echo Removing media files
FOR %%A IN (..\src\Umbraco.Web.UI\media\*.*) DO DEL %%A
echo Removing script files
FOR %%A IN (..\src\Umbraco.Web.UI\scripts\*.*) DO DEL %%A
echo Removing css files
FOR %%A IN (..\src\Umbraco.Web.UI\css\*.*) DO DEL %%A
echo "Umbraco install reverted to clean install"
pause
exit
:exit
exit
-163
View File
@@ -1,163 +0,0 @@
@ECHO OFF
:choice
set /P c=WARNING! Are you sure you want to continue, this will remove all package files, view files, sqlce database, etc... Press 'Y' to auto-remove all files/folders, 'N' to cancel or 'C' to prompt for each folder removal?
if /I "%c%" EQU "C" goto :prompt
if /I "%c%" EQU "Y" goto :auto
if /I "%c%" EQU "N" goto :exit
goto :choice
:prompt
echo Current folder: %CD%
echo Regenerating SQL CE database
SET buildfolder=%CD%
CD ..\tools\RegenerateUmbracoSQLCEDatabase\
RegenerateUmbracoSQLCEDatabase.exe %CD%\..\..\src\Umbraco.Web.UI
CD %buildfolder%
echo Removing bin files
del ..\src\Umbraco.Web.UI\bin\*.*
echo Building solution
%windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe ..\src\umbraco.sln /t:Clean,Build
echo Resetting installedPackages.config
echo ^<?xml version="1.0" encoding="utf-8"?^>^<packages^>^</packages^> >..\src\Umbraco.Web.UI\App_Data\packages\installed\installedPackages.config
echo Removing plugin cache files
del ..\src\Umbraco.Web.UI\App_Data\TEMP\PluginCache\*.*
echo Removing cache files and examine index
del ..\src\Umbraco.Web.UI\App_Data\TEMP\*.*
echo Removing log files
del ..\src\Umbraco.Web.UI\App_Data\Logs\*.*
echo Removing packages
del ..\src\Umbraco.Web.UI\App_Data\packages\*.*
echo Removing previews
del ..\src\Umbraco.Web.UI\App_Data\preview\*.*
echo Removing app code files (typically added by starterkits)
del ..\src\Umbraco.Web.UI\App_Code\*.*
echo Removing xslt files
del ..\src\Umbraco.Web.UI\xslt\*.*
echo Removing user control files
del ..\src\Umbraco.Web.UI\UserControls\*.*
echo Removing masterpage files
del ..\src\Umbraco.Web.UI\masterpages\*.*
echo Removing razor files
del ..\src\Umbraco.Web.UI\macroScripts\*.*
echo Removing media files
del ..\src\Umbraco.Web.UI\media\*.*
echo Removing script files
del ..\src\Umbraco.Web.UI\scripts\*.*
echo Removing css files
del ..\src\Umbraco.Web.UI\css\*.*
echo "Umbraco install reverted to clean install"
pause
exit
:auto
echo Current folder: %CD%
echo Regenerating SQL CE database
SET buildfolder=%CD%
CD ..\tools\RegenerateUmbracoSQLCEDatabase\
RegenerateUmbracoSQLCEDatabase.exe %CD%\..\..\src\Umbraco.Web.UI
CD %buildfolder%
echo Removing bin files
FOR %%A IN (..\src\Umbraco.Web.UI\bin\*.*) DO DEL %%A
echo Building solution
%windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe ..\src\umbraco.sln /t:Clean,Build
echo Resetting installedPackages.config
echo ^<?xml version="1.0" encoding="utf-8"?^>^<packages^>^</packages^> >..\src\Umbraco.Web.UI\App_Data\packages\installed\installedPackages.config
echo Removing plugin cache files
FOR %%A IN (..\src\Umbraco.Web.UI\App_Data\TEMP\PluginCache\*.*) DO DEL %%A
echo Removing cache files and examine index
FOR %%A IN (..\src\Umbraco.Web.UI\App_Data\TEMP\*.*) DO DEL %%A
echo Removing log files
FOR %%A IN (..\src\Umbraco.Web.UI\App_Data\Logs\*.*) DO DEL %%A
echo Removing packages
FOR %%A IN (..\src\Umbraco.Web.UI\App_Data\packages\*.*) DO DEL %%A
echo Removing previews
FOR %%A IN (..\src\Umbraco.Web.UI\App_Data\preview\*.*) DO DEL %%A
echo Removing app code files (typically added by starterkits)
FOR %%A IN (..\src\Umbraco.Web.UI\App_Code\*.*) DO DEL %%A
echo Removing xslt files
FOR %%A IN (..\src\Umbraco.Web.UI\xslt\*.*) DO DEL %%A
echo Removing masterpage files
FOR %%A IN (..\src\Umbraco.Web.UI\masterpages\*.*) DO DEL %%A
echo Removing user control files
FOR %%A IN (..\src\Umbraco.Web.UI\usercontrols\*.*) DO DEL %%A
echo Removing view files
ATTRIB +H ..\src\Umbraco.Web.UI\Views\Partials\Grid\*.cshtml /S
FOR %%A IN (..\src\Umbraco.Web.UI\Views\) DO DEL /Q /S *.cshtml -H
ATTRIB -H ..\src\Umbraco.Web.UI\Views\Partials\Grid\*.cshtml /S
echo Removing razor files
FOR %%A IN (..\src\Umbraco.Web.UI\macroScripts\*.*) DO DEL %%A
echo Removing media files
FOR %%A IN (..\src\Umbraco.Web.UI\media\*.*) DO DEL %%A
echo Removing script files
FOR %%A IN (..\src\Umbraco.Web.UI\scripts\*.*) DO DEL %%A
echo Removing css files
FOR %%A IN (..\src\Umbraco.Web.UI\css\*.*) DO DEL %%A
echo Removing Courier files
del ..\src\Umbraco.Web.UI\config\courier.config
del ..\src\Umbraco.Web.UI\umbraco\images\tray\courier.jpg
rmdir "..\src\Umbraco.Web.UI\umbraco\plugins\courier\" /S /Q
echo Removing Contour files
del ..\src\Umbraco.Web.UI\umbraco\images\tray\contour.png
FOR %%A IN (..\src\Umbraco.Web.UI\umbraco\images\umbraco\icon_*.*) DO DEL %%A
rmdir "..\src\Umbraco.Web.UI\umbraco\plugins\umbracoContour\" /S /Q
del ..\src\Umbraco.Web.UI\umbraco\xslt\templates\UmbracoContour*.* /S /Q
rmdir "..\src\Umbraco.Web.UI\usercontrols\umbracoContour\" /S /Q
echo Start with a clean web.config
copy ..\src\Umbraco.Web.UI\web.Template.config ..\src\Umbraco.Web.UI\web.config /Y
echo Start with a clean web.config
copy ..\src\Umbraco.Web.UI\web.Template.config ..\src\Umbraco.Web.UI\web.config /Y
echo "Umbraco install reverted to clean install"
pause
exit
:exit
exit
+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
+465 -56
View File
@@ -1,67 +1,476 @@
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\"
}
# 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
}
# ################################################################
# BOOTSTRAP
# ################################################################
# add the module path (if not already there)
if (-not $env:PSModulePath.Contains($mpath))
{
$env:PSModulePath = "$mpath;$env:PSModulePath"
}
# create and boot the buildsystem
$ubuild = &"$PSScriptRoot\build-bootstrap.ps1"
if (-not $?) { return }
$ubuild.Boot($PSScriptRoot,
@{ Local = $local; },
@{ Continue = $continue })
if ($ubuild.OnError()) { return }
# force-import (or re-import) the module
Write-Host "Import Umbraco build Powershell module"
Import-Module Umbraco.Build -Force -DisableNameChecking
Write-Host "Umbraco Cms Build"
Write-Host "Umbraco.Build v$($ubuild.BuildVersion)"
# module only?
if ($moduleOnly)
{
if (-not [string]::IsNullOrWhiteSpace($version))
# ################################################################
# TASKS
# ################################################################
$ubuild.DefineMethod("SetMoreUmbracoVersion",
{
Write-Host "(module only: ignoring version parameter)"
}
else
param ( $semver )
$release = "" + $semver.Major + "." + $semver.Minor + "." + $semver.Patch
Write-Host "Update UmbracoVersion.cs"
$this.ReplaceFileText("$($this.SolutionRoot)\src\Umbraco.Core\Configuration\UmbracoVersion.cs", `
"(\d+)\.(\d+)\.(\d+)(.(\d+))?", `
"$release")
$this.ReplaceFileText("$($this.SolutionRoot)\src\Umbraco.Core\Configuration\UmbracoVersion.cs", `
"CurrentComment => `"(.+)`"", `
"CurrentComment => `"$($semver.PreRelease)`"")
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")
})
$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)
})
$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 }
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
Write-Output "### install bower" >> $log 2>&1
&npm install -g bower >> $log 2>&1
$error.Clear() # that one fails 'cos bower is deprecated - ignore
Write-Output "### install gulp" >> $log 2>&1
&npm install -g gulp >> $log 2>&1
$error.Clear() # that one fails 'cos deprecated stuff - ignore
Write-Output "### install gulp-cli" >> $log 2>&1
&npm install -g gulp-cli --quiet >> $log 2>&1
if (-not $?) { throw "Failed to install gulp-cli" } # that one is expected to work
Write-Output "### gulp build for version $($this.Version.Release)" >> $log 2>&1
&gulp build --buildversion=$this.Version.Release >> $log 2>&1
if (-not $?) { throw "Failed to build" } # that one is expected to work
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",
{
Write-Host "Clear folders and files"
$this.RemoveDirectory("$($this.SolutionRoot)\src\Umbraco.Web.UI.Client\bower_components")
$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 -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.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"),
("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("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 }
})
# ################################################################
# RUN
# ################################################################
# configure
$ubuild.ReleaseBranches = @( "master" )
# run
if (-not $get)
{
$ubuild.Build()
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
Write-Host "Done"
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
+20 -42
View File
@@ -6,19 +6,13 @@ Umbraco Cms Build
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:
build\build.ps1
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:
build\build.ps1 7.6.44
Valid version strings are defined in the `Set-UmbracoVersion` documentation below.
## 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 +36,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,30 +45,20 @@ 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
# Build Infrastructure
The Umbraco Build solution relies on a PowerShell module. The module needs to be imported into PowerShell. From within Umbraco's repository root:
The Umbraco Build infrastructure relies on a PowerShell object. The object can be retrieved with:
build\build.ps1 -ModuleOnly
$ubuild = build/build.ps1 -get
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 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
@@ -92,11 +76,11 @@ The Visual Studio object is `null` when Visual Studio has not been detected (eg
* `Minor`: Visual Studio minor version
* `MsBUild`: the absolute path to the MsBuild executable
## Get-UmbracoVersion
## GetUmbracoVersion
Gets an object representing the current Umbraco version. Example:
$v = Get-UmbracoVersion
$v = $ubuild.GetUmbracoVersion()
Write-Host $v.Semver
The object exposes the following properties:
@@ -106,28 +90,24 @@ The object exposes the following properties:
* `Comment`: the pre release part of the version (eg `alpha02`)
* `Build`: the build number part of the version (eg `1234`)
## Set-UmbracoVersion
## SetUmbracoVersion
Modifies Umbraco files with the new version.
>This entirely replaces the legacy `UmbracoVersion.txt` file.
>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:
Set-UmbracoVersion 7.6.33
Set-UmbracoVersion 7.6.33-alpha02
Set-UmbracoVersion 7.6.33+1234
Set-UmbracoVersion 7.6.33-beta05+5678
$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")
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
## Build
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
$ubuild.Build()
Some log files, such as MsBuild logs, are produced in `build.tmp` too. The `build` directory should remain clean during a build.
@@ -181,6 +161,4 @@ We should increment versions as soon as a version is released. Ie, as soon as `7
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
+34
View File
@@ -0,0 +1,34 @@
Umbraco Cms Clear
--
----
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.
## Fast
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 medias and views around, but in most cases, it will be enough.
## More
To perform a more complete clear, you will want to also delete the content of the media, views, masterpages, scripts... directories.
## Full
The following command will force remove all untracked files and directories, be they ignored by Git or not. Combined with `git reset` it can recreate a pristine working directory.
git clean -xdf .
## Docs
See
* git [clean](<https://git-scm.com/docs/git-clean>)
* git [reset](<https://git-scm.com/docs/git-reset>)
+32
View File
@@ -0,0 +1,32 @@
# Code Of Conduct
Our informal code of conduct concentrates on the values we, as Umbraco HQ, have set for ourselves and for our community. We expect you to be a friend.
Instead of listing out all the exact "do's" and "don't's" we want to challenge you to think about our values and apply them:
If there's a need to talk to Umbraco HQ about anything, please make sure to send a mail to [Sebastiaan Janssen - sj@umbraco.dk](mailto:sj@umbraco.dk).
## Be a Friend
We welcome and thank you for registering at Our Umbraco. Find below the values that govern Umbraco and which you accept by using Our Umbraco.
## Trust
Assume positive intent and try to understand before being understood.
## Respect
Treat others as you would like to be treated.
This also goes for treating the HQ with respect. For example: dont promote products on [our.umbraco.org](https://our.umbraco.org) that directly compete with our commercial offerings which enables us to work for a sustainable Umbraco.
## Open
Be honest and straightforward. Tell it as it is. Share thoughts and knowledge and engage in collaboration.
## Hungry
Don't rest on your laurels and never accept the status quo. Contribute and give back to fellow Umbracians.
## Friendly
Dont judge upon mistakes made but rather upon the speed and quality with which mistakes are corrected. Friendly posts and contributions generate smiles and builds long lasting relationships.
+99
View File
@@ -0,0 +1,99 @@
_Looking for Umbraco version 8? [Click here](https://github.com/umbraco/Umbraco-CMS/blob/temp8/docs/CONTRIBUTING.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 valueable 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-U4-12345`. This means it's a temporary branch for the particular issue you're working on, in this case `U4-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)
- [Kyle Weems](https://github.com/cssquirrel)
- [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.org/forum/contributing-to-umbraco-cms/) forum, the team monitors that one closely
- We're also [active in the Gitter chatroom](https://gitter.im/umbraco/Umbraco-CMS)
## 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!
+159
View File
@@ -0,0 +1,159 @@
# 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](http://issues.umbraco.org/issues#newissue=61-30118), 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.org/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.org/projects/).
### Your First Code Contribution
Unsure where to begin contributing to Umbraco? You can start by looking through [these `Up for grabs` and issues](http://issues.umbraco.org/issues/U4?q=%28project%3A+%7BU4%7D+Difficulty%3A+%7BVery+Easy%7D+%23Easy+%23Unresolved+Priority%3A+Normal+%23Major+%23Show-stopper+State%3A+-%7BIn+Progress%7D+sort+by%3A+votes+Affected+versions%3A+-6.*+Affected+versions%3A+-4.*%29+OR+%28tag%3A+%7BUp+For+Grabs%7D+%23Unresolved+%29).
The issue list is sorted by total number of upvotes. While not perfect, number of upvotes is a reasonable proxy for impact a given change will have.
### 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.org/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.org/apidocs/ui/#/api) (to be found in `src\Umbraco.Web.UI.Client\src`)
* [The rest](https://our.umbraco.org/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
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 ([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
@@ -0,0 +1,33 @@
# 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.
+51
View File
@@ -0,0 +1,51 @@
_You are browsing the Umbraco v8 branch._
_Looking for Umbraco version 7? [Click here](https://github.com/umbraco/Umbraco-CMS) to go to the v7 branch._
_Ready to try out Version 8? [See the quick start guide](V8_GETTING_STARTED.md)._
Umbraco CMS
===========
The friendliest, most flexible and fastest growing ASP.NET CMS 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 - or a breeze to build complex web applications. Umbraco has award-winning integration capabilities and supports ASP.NET MVC or Web Forms, including User and Custom Controls, out of the box.
Umbraco is not only loved by developers, but is a content editors 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 scales. 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 intergrations. 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 yourself and handling deployments and upgrades is all down to you.
## Community
Our friendly community is available 24/7 at the community hub we call ["Our Umbraco"](https://our.umbraco.com). Our Umbraco feature 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](CONTRIBUTING_DETAILED.md#reporting-bugs).
To view existing issues, please visit [http://issues.umbraco.org](http://issues.umbraco.org).
+25
View File
@@ -0,0 +1,25 @@
# 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.
+37
View File
@@ -0,0 +1,37 @@
## A quick start guide for getting up and runnning with Umbraco v8
### What you need:
* [Visual Studio 2017 Community (Free)](https://www.visualstudio.com/vs/community/), or Professional, Enterprise, etc... _(**Minimum of Version 15.7** or higher, this is important, you WILL get issues with lesser versions)_
* .NET Framework 4.7.2 installed, get it here: https://www.microsoft.com/net/download/thank-you/net472?survey=false
* .NET Framework 4.7.2 developer pack, get it here: https://www.microsoft.com/net/download/thank-you/net472-developer-pack _(be sure this is the ENU file which will be named `NDP472-DevPack-ENU.exe`)_
* Clone the Umbraco repository using the `temp8` branch. If your git client doesn't support specifying the branch as you clone then use the command `git clone --single-branch -b temp8 <your fork url>`. _(If you clone the repo using the default v7 branch and then checkout the `temp8` branch you **might** get problems)_
### Start the solution
* Open the `/src/umbraco.sln` Visual Studio solution
* Start the solution (easiest way is to use `ctrl + F5`)
* When the solution is first built this may take some time since it will restore all nuget, npm and bower packages, build the .net solution and also build the angular solution
* When the website starts you'll see the Umbraco installer and just follow the prompts
* You're all set!
### Want to run from a zip instead?
If you just want to try out a few things, you can run the site from a zip file which you can download from here https://github.com/umbraco/Umbraco-CMS/releases/tag/temp8-cg18.
We recommend running the site with the Visual Studio since you'll be able to remain up to date with the latest source code changes.
### Making code changes
* _[The process for making code changes in v8 is the same as v7](https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/docs/CONTRIBUTING.md)_
* Any .NET changes you make you just need to compile
* Any Angular/JS changes you make you will need to make sure you are running the Gulp build. Easiest way to do this is from within Visual Studio in the `Task Runner Explorer`. You can find this window by pressing `ctrl + q` and typing in `Task Runner Explorer`. In this window you'll see all Gulp tasks, double click on the `dev` task, this will compile the angular solution and start a file watcher, then any html/js changes you make are automatically built.
* When making js changes, you should have the chrome developer tools open to ensure that cache is disabled
* If you are only making C# changes and are not touching the UI code at all, you can significantly speed up the VS build by adding an empty file specifically called `~/src/preserve.belle`. The UI (Belle) build will then be skipped during a Rebuild.
### What to work on?
We are keeping track of [known issues and limitations here](http://issues.umbraco.org/issue/U4-11279). These line items will eventually be turned into actual tasks to be worked on. Feel free to help us keep this list updated if you find issues and even help fix some of these items. If there is a particular item you'd like to help fix please mention this on the task and we'll create a sub task for the item to continue discussion there.
There's [a list of tasks for v8 that haven't been completed](http://issues.umbraco.org/issues/U4?q=Due+in+version%3A+8.0.0+%23Unresolved+). If you are interested in helping out with any of these please mention this on the task. This list will be constantly updated as we begin to document and design some of the other tasks that still need to get done.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

+5
View File
@@ -0,0 +1,5 @@
- name: Umbraco.Core Documentation
href: https://our.umbraco.com/apidocs/csharp/api/Umbraco.Core.html
- name: Umbraco.Web Documentation
href: https://our.umbraco.com/apidocs/csharp/api/Umbraco.Web.html
-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 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: NeutralResourcesLanguageAttribute("en-US")]
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("7.10.2")]
[assembly: AssemblyInformationalVersion("7.10.2")]
using System.Reflection;
using System.Resources;
[assembly: AssemblyCompany("Umbraco")]
[assembly: AssemblyCopyright("Copyright © Umbraco 2017")]
[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.0.0")]
[assembly: AssemblyInformationalVersion("8.0.0-alpha.44")]
-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 System;
using System.Collections.Generic;
using System.Configuration;
using System.Threading;
using Semver;
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 List<string> _umbracoApplicationDomains = new List<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 differenciate 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>
/// 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<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>
/// 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<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);
}
}
}
@@ -0,0 +1,353 @@
using System;
using System.Linq;
using System.Text;
using System.Threading;
using System.Web;
using Umbraco.Core.Components;
using Umbraco.Core.Events;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Security;
using Umbraco.Core.Services;
using Umbraco.Core.Services.Implement;
namespace Umbraco.Core.Auditing
{
public sealed class AuditEventsComponent : UmbracoComponentBase, IUmbracoCoreComponent
{
private IAuditService _auditService;
private IUserService _userService;
private IEntityService _entityService;
private IUser CurrentPerformingUser
{
get
{
var identity = Thread.CurrentPrincipal?.GetUmbracoIdentity();
return identity == null
? new User { Id = 0, Name = "SYSTEM", Email = "" }
: _userService.GetUserById(Convert.ToInt32(identity.Id));
}
}
private IUser GetPerformingUser(int userId)
{
var found = userId >= 0 ? _userService.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;
}
}
public void Initialize(IAuditService auditService, IUserService userService, IEntityService entityService)
{
_auditService = auditService;
_userService = userService;
_entityService = 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.SavedUserGroup += 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);
_auditService.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);
_auditService.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;
_auditService.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).GetWereDirtyProperties());
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}");
}
_auditService.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)
{
_auditService.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)
{
_auditService.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 = _entityService.Get(perm.EntityId);
_auditService.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).GetWereDirtyProperties());
_auditService.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)
{
_auditService.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).GetWereDirtyProperties());
_auditService.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)
_auditService.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 = _userService.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 = _userService.GetUserById(affectedId);
affectedDetails = affectedUser == null
? $"User UNKNOWN:{affectedId}"
: $"User \"{affectedUser.Name}\" {FormatEmail(affectedUser)}";
}
_auditService.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
}
}
@@ -46,19 +46,6 @@ namespace Umbraco.Core.Auditing
/// </summary>
public string Username { get; private set; }
[Obsolete("Use the method that has the affectedUser parameter instead")]
[EditorBrowsable(EditorBrowsableState.Never)]
public IdentityAuditEventArgs(AuditEvent action, string ipAddress, int performingUser = -1)
{
DateTimeUtc = DateTime.UtcNow;
Action = action;
IpAddress = ipAddress;
PerformingUser = performingUser == -1
? GetCurrentRequestBackofficeUserId()
: performingUser;
}
/// <summary>
/// Default constructor
+6 -6
View File
@@ -1,4 +1,4 @@
using System;
using System;
using System.Reflection;
using System.Text.RegularExpressions;
using System.Web;
@@ -21,7 +21,7 @@ namespace Umbraco.Core
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,12 +30,12 @@ namespace Umbraco.Core
/// <returns></returns>
private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
//log4net:
//log4net:
if (Log4NetAssemblyPattern.IsMatch(args.Name) && args.Name != Log4NetReplacement)
{
return Assembly.Load(Log4NetAssemblyPattern.Replace(args.Name, Log4NetReplacement));
}
//AutoMapper:
// 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
@@ -43,7 +43,7 @@ namespace Umbraco.Core
return Assembly.Load(args.Name.Replace(", PublicKeyToken=null", ", PublicKeyToken=be96cd2c38ef1005"));
return null;
}
}
}
}
+99
View File
@@ -0,0 +1,99 @@
using System;
using System.Web;
namespace Umbraco.Core.Cache
{
/// <summary>
/// Class that is exposed by the ApplicationContext for application wide caching purposes
/// </summary>
public class CacheHelper
{
public static CacheHelper NoCache { get; } = new CacheHelper(NullCacheProvider.Instance, NullCacheProvider.Instance, NullCacheProvider.Instance, new IsolatedRuntimeCache(_ => NullCacheProvider.Instance));
/// <summary>
/// Creates a cache helper with disabled caches
/// </summary>
/// <returns></returns>
/// <remarks>
/// Good for unit testing
/// </remarks>
public static CacheHelper CreateDisabledCacheHelper()
{
// do *not* return NoCache
// NoCache is a special instance that is detected by RepositoryBase and disables all cache policies
// CreateDisabledCacheHelper is used in tests to use no cache, *but* keep all cache policies
return new CacheHelper(NullCacheProvider.Instance, NullCacheProvider.Instance, NullCacheProvider.Instance, new IsolatedRuntimeCache(_ => NullCacheProvider.Instance));
}
/// <summary>
/// Initializes a new instance for use in the web
/// </summary>
public CacheHelper()
: this(
new HttpRuntimeCacheProvider(HttpRuntime.Cache),
new StaticCacheProvider(),
new HttpRequestCacheProvider(),
new IsolatedRuntimeCache(t => new ObjectCacheRuntimeCacheProvider()))
{
}
/// <summary>
/// Initializes a new instance for use in the web
/// </summary>
/// <param name="cache"></param>
public CacheHelper(System.Web.Caching.Cache cache)
: this(
new HttpRuntimeCacheProvider(cache),
new StaticCacheProvider(),
new HttpRequestCacheProvider(),
new IsolatedRuntimeCache(t => new ObjectCacheRuntimeCacheProvider()))
{
}
/// <summary>
/// Initializes a new instance based on the provided providers
/// </summary>
/// <param name="httpCacheProvider"></param>
/// <param name="staticCacheProvider"></param>
/// <param name="requestCacheProvider"></param>
/// <param name="isolatedCacheManager"></param>
public CacheHelper(
IRuntimeCacheProvider httpCacheProvider,
ICacheProvider staticCacheProvider,
ICacheProvider requestCacheProvider,
IsolatedRuntimeCache isolatedCacheManager)
{
if (httpCacheProvider == null) throw new ArgumentNullException("httpCacheProvider");
if (staticCacheProvider == null) throw new ArgumentNullException("staticCacheProvider");
if (requestCacheProvider == null) throw new ArgumentNullException("requestCacheProvider");
if (isolatedCacheManager == null) throw new ArgumentNullException("isolatedCacheManager");
RuntimeCache = httpCacheProvider;
StaticCache = staticCacheProvider;
RequestCache = requestCacheProvider;
IsolatedRuntimeCache = isolatedCacheManager;
}
/// <summary>
/// Returns the current Request cache
/// </summary>
public ICacheProvider RequestCache { get; internal set; }
/// <summary>
/// Returns the current Runtime cache
/// </summary>
public ICacheProvider StaticCache { get; internal set; }
/// <summary>
/// Returns the current Runtime cache
/// </summary>
public IRuntimeCacheProvider RuntimeCache { get; internal set; }
/// <summary>
/// Returns the current Isolated Runtime cache manager
/// </summary>
public IsolatedRuntimeCache IsolatedRuntimeCache { get; internal set; }
}
}
+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 ApplicationTreeCacheKey = "ApplicationTreeCache"; // used by ApplicationTreeService
public const string ApplicationsCacheKey = "ApplicationCache"; // used by SectionService
public const string TemplateFrontEndCacheKey = "template"; // fixme usage?
public const string MacroContentCacheKey = "macroContent_"; // used in MacroRenderers
}
}
@@ -1,70 +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 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;
}
}
}
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="cacheHelper">A cache helper.</param>
protected CacheRefresherBase(CacheHelper cacheHelper)
{
CacheHelper = cacheHelper;
}
/// <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 CacheHelper CacheHelper { 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
{
CacheHelper.IsolatedRuntimeCache.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);
}
}

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