Compare commits

...

1331 Commits

Author SHA1 Message Date
Warren Buckley 462a7a2a36 Merge remote-tracking branch 'origin/temp8' into temp8-3093-bulk-publish 2018-10-30 12:00:00 +00:00
Shannon 9416c5f638 fixes up localized text for audit trail 2018-10-30 14:57:54 +11:00
Shannon fc39568415 Updated audit info to include full lang name 2018-10-30 14:49:25 +11:00
Warren Buckley 087e4780cb WIP to deal with publish with descendants in the PublishInternal method 2018-10-29 14:35:23 +00:00
Warren Buckley 61e50f6196 Update enum for ContentSave Action to include descendants & descendantsWithDrafts 2018-10-29 14:33:07 +00:00
Warren Buckley 5cea2d6815 Merge branch 'temp8' into temp8-3093-bulk-publish 2018-10-29 13:29:52 +00:00
Robert bc20db5a46 Merge pull request #3432 from umbraco/temp8-153-invariant-properties
Temp8 153 invariant properties
2018-10-29 12:39:48 +01:00
Robert 777d88ed8f Fixed unit test 2018-10-29 12:38:46 +01:00
Stephan f4b970e887 Fix timing-dependent test 2018-10-29 11:21:30 +01:00
Warren Buckley 78bb72a36c Merge remote-tracking branch 'origin/temp8' into temp8-3093-bulk-publish 2018-10-26 13:53:35 +01:00
Stephan 628895cc89 In-Progress in ContentService 2018-10-26 14:39:11 +02:00
Mads Rasmussen ed4439e3d5 add ellipsis to more items 2018-10-26 13:36:05 +02:00
Mads Rasmussen e0365d4214 add ellipsis to action menu items that opens a dialog + fix action menu not opening anything 2018-10-26 13:17:12 +02:00
Stephan 45cb56b96c Fix ContentCultureInfos and collection 2018-10-26 12:36:59 +02:00
Warren Buckley 8b7546a20b New model for the updated WebAPI POST method to take rather than just an int id of the node 2018-10-26 11:13:54 +01:00
Stephan 0cb19e0dbd Document 2018-10-26 11:47:35 +02:00
Mads Rasmussen bce2c43fdd small fixes to alignment and copy 2018-10-26 11:21:56 +02:00
Mads Rasmussen 5356d0a0ab Merge branch 'temp-3433' of git://github.com/dawoe/Umbraco-CMS into dawoe-temp-3433 2018-10-26 10:35:24 +02:00
Mads Rasmussen 78d4b452f5 Merge branch 'v8-feature-action-ellipsis' of git://github.com/kjac/Umbraco-CMS into kjac-v8-feature-action-ellipsis
# Conflicts:
#	src/Umbraco.Web/_Legacy/Actions/ActionUnPublish.cs
2018-10-26 09:59:57 +02:00
Shannon 83f73c085f Fixes unpublish, allows to be permission assigned and checks this permission when trying to perform that action 2018-10-26 16:40:28 +11:00
Shannon 02221f6dd0 Fixes how the content app view model works so dirty tracking continues to work properly, previously we tried to omit the apps so we didn' thave a circualar model reference but that doesn't work because that clones the object, so now the view model is just the variant index which works much better.Fixes other js probs 2018-10-26 15:07:21 +11:00
Shannon e280226abc fix issue with content picker always setting a dirty state 2018-10-26 14:41:49 +11:00
Shannon 3d29c0381e small refactor of trees for single page apps sections and some cleanup, puts the back button for dictionary back in with the correct route 2018-10-26 14:18:42 +11:00
Shannon Deminick 336f29fa3b Merge pull request #3420 from dawoe/temp-3419
V8- #3419 - Fix dictionary tree
2018-10-26 13:39:42 +11:00
Shannon Deminick 9453bb06e8 Merge pull request #3435 from umbraco/temp8-3129
Temp8 3129
2018-10-26 13:22:09 +11:00
Shannon 555a275e13 fixes build 2018-10-26 13:21:30 +11:00
Warren Buckley 972dc56d9a More dupe using's declared & tidied up - total number of warnings now at 48 2018-10-25 21:58:39 +01:00
Warren Buckley 20b9bb1032 Gets rid of a couple of VS SLN Warnings - due to dupe'd using's decared (done a tidy up) 2018-10-25 21:55:44 +01:00
Kenn Jacobsen 4cfac8da16 Make it possible to add ellipsis on actions that invokes dialogs by means of OpensDialog on IAction 2018-10-25 14:54:36 +02:00
Rasmus John Pedersen 93aa9dfe93 Fix sort audit parameters call 2018-10-25 14:41:24 +02:00
Dave Woestenborghs 2fbe2bb3da #3433 added short cut for toglle allow culture variants to short cuts overview 2018-10-25 12:54:17 +02:00
Dave Woestenborghs 3c217adc2e #3433 added language keys for text of culture variant permissions 2018-10-25 12:49:32 +02:00
Dave Woestenborghs 3b2e473a9e #3433 changed layout so it looks better 2018-10-25 12:38:43 +02:00
Dave Woestenborghs 5199e8e901 #3433 replace checkbox with for setting culture variants with toggle box 2018-10-25 12:23:34 +02:00
Dave Woestenborghs 96a102decf #3433 fix build error 2018-10-25 12:13:54 +02:00
Mads Rasmussen 492feaaa26 fix position relaitve issue for property editors 2018-10-25 11:06:48 +02:00
Stephan 4649fb2505 Fix merge 2018-10-25 10:51:46 +02:00
Stephan a8110a0886 Merge branch temp8 into temp8-3129 2018-10-25 10:32:05 +02:00
Mads Rasmussen 18c8104a88 localize label 2018-10-25 10:02:31 +02:00
Mads Rasmussen b63b25414c show inherted from label 2018-10-25 09:38:46 +02:00
Dave Woestenborghs 3a0981e02b #3419 fix error in backend for sections with no tree (forms when not installed) 2018-10-25 09:06:53 +02:00
Dave Woestenborghs fe0176f97c Fixed unit test 2018-10-25 08:59:13 +02:00
Dave Woestenborghs 25a90ffbf5 #3419 added extra parameter to createSingleRoot node method so it will always show a single tree. If a single tree doesn't have children it does not show 2018-10-25 08:54:17 +02:00
Mads Rasmussen 2137c1026b css cleanup 2018-10-24 20:44:07 +02:00
Mads Rasmussen 4420f101d2 add toggle to disable tabindex directive 2018-10-24 20:41:58 +02:00
Stephan 638f8b57b3 Fix content type variant changes 2018-10-24 18:47:17 +02:00
Stephan 56b9d36f53 Add content type variant changes tests 2018-10-24 18:47:13 +02:00
Dave Woestenborghs d5cc658811 #3419 added check on tree items count back 2018-10-24 18:28:52 +02:00
Dave Woestenborghs 96c0b701a0 #3419 added always show root item to tree attribute 2018-10-24 18:27:00 +02:00
Shannon Deminick 3652a96687 Merge pull request #3352 from umbraco/temp8-dirty-tracking-on-variants
v8 - allows audit trail/logging of changed cultures
2018-10-25 01:11:53 +11:00
Warren Buckley 9a1a13ba81 Fix the ordering logic - it helps if you actually assign the ordered items back to the list *facepalm* 2018-10-24 14:55:01 +01:00
Dave Woestenborghs 2af2a9b77f #3419 don't show the back button in the edit screen of dictionary...doesn't make sense to go to settings section when the tree is in the translation section 2018-10-24 15:39:45 +02:00
Dave Woestenborghs d23f5f8124 #3419 remove check on number of trees so dictoinary tree shows in the translation section and doesn't return a error when it's moved to the settings section 2018-10-24 15:31:45 +02:00
Warren Buckley e2557697bc Emit a single event if the language has been created or been saved - send through a new property in args to determine if it was new or not
Then event listener updates the tree languages dropdown only when a new language has been added or deleted OR when an existing language has been saved/updated to be set as the new default language (as this now at top of list)
2018-10-24 14:08:15 +01:00
Warren Buckley 5b84702c2f Cleanup of disable tab directive & adds in tabbable 3rd party lib (wrapped as an AngularJS service) 2018-10-24 13:37:33 +01:00
Warren Buckley a5b7e8b0ae WIP put the tabindex back to what it was before 2018-10-24 11:57:02 +01:00
Warren Buckley 62716fb417 WIP disable tab index directive 2018-10-24 11:03:41 +01:00
Warren Buckley ba0d96ce2a WIP for CSS overlay click through prevention stuff with Z-indexes 2018-10-24 10:36:45 +01:00
Warren Buckley 30c312c4b0 CSS & DOM element for overlay to prevent double click through to undelying input element 2018-10-24 10:20:10 +01:00
Mads Rasmussen 6920a7f0e0 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-10-24 11:12:00 +02:00
Kenn Jacobsen 024338790f Make sure to check the dirty state of the umbContent app viewModel when saving/publishing 2018-10-24 11:11:29 +02:00
Mads Rasmussen ac14d38961 fix rename controller 2018-10-24 11:11:25 +02:00
Warren Buckley a7b13e2b4b Merge remote-tracking branch 'origin/temp8' into temp8-153-invariant-properties 2018-10-24 09:22:52 +01:00
Warren Buckley c94775608a When returning a collection of languages - such as through the GetAllLanguages API Controller call the model mapping ensures that rather than order by name we, also put the default lang first then order a-z 2018-10-24 09:18:26 +01:00
Claus aa4acb33e8 ensuring macros are using the correct section. 2018-10-24 09:59:40 +02:00
Claus 715083ef93 Merge pull request #3398 from umbraco/temp8-258-empty-trees-arrow
Fixing right-pointing arrow for empty trees.
2018-10-24 09:47:14 +02:00
Mads Rasmussen b95a994f94 set opacity and disabled cursor when property is locked 2018-10-24 09:12:09 +02:00
Shannon c7cb8b52cc Fixes AuthorizeUpgrade page since it was still referencing the old UmbracoClient folder 2018-10-24 15:23:21 +11:00
Stephan 4ec9350f54 Merge branch temp8 into temp8-3129 2018-10-23 17:44:31 +02:00
Stephan c0a1e7f2f6 Merge branch temp8 into temp8-dirty-tracking-on-variants 2018-10-23 17:43:52 +02:00
Warren Buckley 79e3a35869 WIP - Ensures the default language variant is always first then the rest of the variants are organised by A-Z 2018-10-23 16:03:49 +01:00
Warren Buckley b20acebe6a Cleanup unused DI stuff in this directive 2018-10-23 15:23:36 +01:00
Warren Buckley 11e5fa3f28 Merge branch 'temp8-153-invariant-properties' of https://github.com/umbraco/Umbraco-CMS into temp8-153-invariant-properties 2018-10-23 15:13:50 +01:00
Warren Buckley a8ac9cf8f2 MDN JS Docs suggested to use MutationObsorver as oppsoed to deprecated DOMSubtreeModified event 2018-10-23 15:13:35 +01:00
Mads Rasmussen 515f183b28 make default language bold in selectors 2018-10-23 16:00:53 +02:00
Stephan 9320c1a061 Cleanup variants dirty tracking 2018-10-23 15:38:47 +02:00
Warren Buckley 60b575825d Adds new WIP attribute only based directive disable-tabindex - which sets all child input elements to use a tabindex of -1 2018-10-23 14:22:17 +01:00
Mads Rasmussen a0eba5a9d8 wip testing ideas 2018-10-23 15:02:56 +02:00
Shannon e34728c10c fixes drop down pre value editor 2018-10-23 23:04:53 +11:00
Shannon ce6b4f4a51 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8
# Conflicts:
#	src/Umbraco.Core/Persistence/Repositories/Implement/DocumentRepository.cs
#	src/Umbraco.Web.UI/Umbraco/dialogs/rollBack.aspx
#	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/rollBack.aspx
2018-10-23 22:16:48 +11:00
Shannon 001ed50c7d fixes test 2018-10-23 22:13:50 +11:00
Shannon dfd3e8f4c4 Fixes tests and issue with member list view not passing the GUID along in the route 2018-10-23 22:10:27 +11:00
Shannon fa64f4a6a8 Fixes member group editing, removes old dialog tasks, removes old references in the old ui.xml file 2018-10-23 21:38:24 +11:00
Warren Buckley 2ec6216932 Merge pull request #3400 from umbraco/temp8-247-hostnames-dialog
Temp8 247 hostnames dialog
2018-10-23 11:28:08 +01:00
Warren Buckley 03b363df21 Add some TODO's to consider removing references to MasterPages & UserControls 2018-10-23 10:53:55 +01:00
Warren Buckley 0e51b45e64 Make SystemDirectories.Bin non configurable, as the comment mentioned you cannot configure the bin folder for ASP.NET projects 2018-10-23 10:53:22 +01:00
Warren Buckley 3e4ecac4e3 Remove SystemDirectory.Base - this is a very legacy feature & no longer in use in codebase 2018-10-23 10:52:19 +01:00
Mads Rasmussen abed9ab331 show duplicate domain validation messages 2018-10-23 11:48:42 +02:00
Warren Buckley d88aab59a1 Remove all references to SystemDirectories.UmbracoClient - as Umbraco_Client folder no longer exists anymore 2018-10-23 10:41:44 +01:00
Claus 9438581621 Merge pull request #3240 from umbraco/temp8-sendToPublish
Send to Publish changes
2018-10-23 10:54:42 +02:00
Stephan 9699e6cb71 Merge branch 'temp8' into temp8-dirty-tracking-on-variants 2018-10-23 10:51:28 +02:00
Mads Rasmussen 1badcd0b29 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-10-23 10:32:33 +02:00
Mads Rasmussen 76eb809b2c Fix list view property editors. Use "display: block" for instead of "inline block" 2018-10-23 10:31:54 +02:00
Warren Buckley e3c6cfa63c Merge pull request #3312 from umbraco/temp8-3298-move-rollback
Temp8 3298 move rollback
2018-10-23 09:28:41 +01:00
Shannon 69450791cf Fixes the new Id/Guid property on members, ensures all tabs are expanded by default and removes that init logic from JS since we don't want it there. 2018-10-23 19:25:48 +11:00
Shannon 1936cc5be9 Merge remote-tracking branch 'origin/temp8' into temp8 2018-10-23 18:39:16 +11:00
elitsa 127ecdf48e Right arrow appears only when there are child nodes. 2018-10-23 09:34:02 +02:00
Shannon 9dadecdcc1 Fixes boolean conversion logic in ColorPickerConfigurationEditor, Fixes tree grouping logic and moves groups cache to the ApplicationTreeService, fix other merge issues 2018-10-23 18:28:55 +11:00
elitsa c5755e25c8 Revert commit not belonging to this PR. 2018-10-23 09:04:09 +02:00
Shannon d9a4d1fa97 Manual merging 2018-10-23 16:12:23 +11:00
Stephan d2cfe8f3b9 Fix GetVersionsSlim 2018-10-22 18:21:00 +02:00
Stephan ba913db60e Fix to/from (in)variant changes 2018-10-22 17:20:48 +02:00
Stephan 3468351de8 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-10-22 17:20:19 +02:00
Mads Rasmussen 78fb52f788 fix size of publish state in publish dialog 2018-10-22 17:04:56 +02:00
Mads Rasmussen 7265d329ea Alwyas show ellipsis for unpublish. It will always open a dialog 2018-10-22 15:56:08 +02:00
Mads Rasmussen 9d1c12d7df this validation needs to happen server side 2018-10-22 15:13:25 +02:00
Mads Rasmussen d3163aa00e show validation message when a domain name is missing 2018-10-22 13:34:57 +02:00
Mads Rasmussen bc379e0b71 set domain and language to be required + add required markers in the table headings 2018-10-22 13:07:54 +02:00
Mads Rasmussen 5391934a76 remove domain validation regex 2018-10-22 12:59:23 +02:00
Mads Rasmussen 88857fa1b5 show load indicator when dialog loads 2018-10-22 12:53:26 +02:00
Mads Rasmussen 126ed536ed update casing to match model updates 2018-10-22 12:34:48 +02:00
Warren Buckley 2062672eda Camel case models for the hostnames dialog 2018-10-22 10:20:02 +01:00
Mads Rasmussen 9560548b46 temp remove domain validation because that is preventing the form from saving + show saving state 2018-10-22 11:03:25 +02:00
Mads Rasmussen 7a2b91c9a7 don't show culture selector for nodes with variants 2018-10-22 10:41:46 +02:00
Stephan 8976a6cce3 Show language ISO code in list 2018-10-22 10:34:14 +02:00
Stephan d49e06255c Fix upgrade message 2018-10-22 10:34:04 +02:00
Mads Rasmussen 8cc0fae771 Merge branch 'temp8-247-hostnames-dialog' of https://github.com/umbraco/Umbraco-CMS into temp8-247-hostnames-dialog 2018-10-22 10:32:12 +02:00
Mads Rasmussen d3625f9569 first round of styling fixes 2018-10-22 10:31:34 +02:00
Warren Buckley 6b7dd261ab Add to the tree metadata (So the UI of the tree node can be aware if it allows variants) 2018-10-22 09:30:39 +01:00
Stephan f46b7ca7b1 Rollback uses GetVersionsSlim 2018-10-22 08:45:30 +02:00
Shannon 93a52432cf Manual merging 2018-10-22 17:04:58 +11:00
Shannon cd2cf26274 Fixes build errors after merge 2018-10-22 16:13:53 +11:00
Shannon c6a67f79ac Merge remote-tracking branch 'origin/dev-v7' into temp8
# Conflicts:
#	src/SolutionInfo.cs
#	src/Umbraco.Core/Configuration/GlobalSettings.cs
#	src/Umbraco.Core/Configuration/UmbracoConfig.cs
#	src/Umbraco.Core/Configuration/UmbracoSettings/ContentElement.cs
#	src/Umbraco.Core/Configuration/UmbracoSettings/IContentSection.cs
#	src/Umbraco.Core/Models/IContentTypeBase.cs
#	src/Umbraco.Core/Persistence/DatabaseSchemaHelper.cs
#	src/Umbraco.Core/Persistence/Migrations/Initial/BaseDataCreation.cs
#	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
#	src/Umbraco.Core/Persistence/Repositories/Implement/MemberGroupRepository.cs
#	src/Umbraco.Core/Services/ContentService.cs
#	src/Umbraco.Tests/Web/TemplateUtilitiesTests.cs
#	src/Umbraco.Tests/packages.config
#	src/Umbraco.Web.UI.Client/bower.json
#	src/Umbraco.Web.UI.Client/lib/umbraco/LegacyUmbClientMgr.js
#	src/Umbraco.Web.UI.Client/src/common/directives/components/imaging/umbimagegravity.directive.js
#	src/Umbraco.Web.UI.Client/src/common/resources/media.resource.js
#	src/Umbraco.Web.UI.Client/src/common/services/navigation.service.js
#	src/Umbraco.Web.UI.Client/src/common/services/umbrequesthelper.service.js
#	src/Umbraco.Web.UI.Client/src/less/belle.less
#	src/Umbraco.Web.UI.Client/src/less/buttons.less
#	src/Umbraco.Web.UI.Client/src/less/components/umb-tabs.less
#	src/Umbraco.Web.UI.Client/src/less/forms.less
#	src/Umbraco.Web.UI.Client/src/less/hacks.less
#	src/Umbraco.Web.UI.Client/src/less/modals.less
#	src/Umbraco.Web.UI.Client/src/less/panel.less
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/approvedcolorpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/dialogs/login.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/mediapicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/mediaPicker/mediapicker.html
#	src/Umbraco.Web.UI.Client/src/views/components/imaging/umb-image-gravity.html
#	src/Umbraco.Web.UI.Client/src/views/dashboard/media/mediadashboardvideos.html
#	src/Umbraco.Web.UI.Client/src/views/dashboard/members/membersdashboardvideos.html
#	src/Umbraco.Web.UI.Client/src/views/dashboard/settings/settingsdashboardvideos.html
#	src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/boolean/boolean.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/boolean/boolean.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.prevalues.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/imagecropper/imagecropper.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/imagecropper/imagecropper.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/rte/rte.html
#	src/Umbraco.Web.UI.Client/src/views/users/user.html
#	src/Umbraco.Web.UI.Client/src/views/users/views/user/details.html
#	src/Umbraco.Web.UI/Umbraco/Views/Preview/Index.cshtml
#	src/Umbraco.Web.UI/Umbraco/config/lang/da.xml
#	src/Umbraco.Web.UI/Umbraco/dialogs/protectPage.aspx
#	src/Umbraco.Web.UI/Umbraco/dialogs/rollBack.aspx
#	src/Umbraco.Web.UI/config/EmbeddedMedia.Release.config
#	src/Umbraco.Web.UI/config/EmbeddedMedia.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/dialogs/sort.aspx
#	src/Umbraco.Web.UI/umbraco_client/Dialogs/PublishDialog.js
#	src/Umbraco.Web.UI/web.Template.config
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/HealthCheck/Checks/DataIntegrity/DatabaseSchemaValidationHealthCheck.cs
#	src/Umbraco.Web/Models/Mapping/MemberModelMapper.cs
#	src/Umbraco.Web/Models/Trees/TreeNodeExtensions.cs
#	src/Umbraco.Web/PropertyEditors/ColorListPreValueEditor.cs
#	src/Umbraco.Web/PropertyEditors/EmailAddressPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/ImageCropperPropertyValueEditor.cs
#	src/Umbraco.Web/PropertyEditors/TrueFalsePropertyEditor.cs
#	src/Umbraco.Web/PublishedCache/XmlPublishedCache/XmlPublishedContent.cs
#	src/Umbraco.Web/Routing/ContentFinderByUrlAlias.cs
#	src/Umbraco.Web/Templates/TemplateUtilities.cs
#	src/Umbraco.Web/UmbracoHelper.cs
#	src/Umbraco.Web/WebServices/SaveFileController.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/Trees/FileSystemTree.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/controls/dualSelectBox.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/dashboard/FeedProxy.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/protectPage.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/rollBack.aspx
#	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/rollBack.aspx.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/settings/stylesheet/editstylesheet.aspx.cs
2018-10-22 16:03:01 +11:00
Sebastiaan Janssen 2c6fd3af14 Re-fix - U4-11111 - Hide tooltip of slider in document type property preview 2018-10-21 19:46:08 +02:00
Bjarne Fyrstenborg b86be5b854 Fix color swatches title when using css classes for colors 2018-10-21 19:41:12 +02:00
Kenn Jacobsen 8c8d979eb2 Style confirmations and alerts consistently across all sections (#3251) 2018-10-21 19:36:07 +02:00
James Coxhead dadc3ad7a7 Fixes #3348 - Configure Umbraco.Dropdown.Flexible for new installations 2018-10-21 19:18:43 +02:00
Sebastiaan Janssen 04aa199266 Makes sure the path on the tree is correct 2018-10-21 18:59:25 +02:00
Tim Geyssens 2c14f396fb Update FileSystemTree.cs
Make sure it can find child items in root folders
2018-10-21 18:59:25 +02:00
Kenn Jacobsen 10526cfc81 Fix #3368 by watching changes and explicitly flagging the form as dirty 2018-10-21 18:28:15 +02:00
Sebastiaan Janssen cd6f489606 Merge pull request #3374 from umbraco/abjerner-umb-generate-alias
Localized umb-generate-alias placeholder texts
2018-10-21 18:20:20 +02:00
Sebastiaan Janssen 96d7a776b7 Removes dangling comma 2018-10-21 18:17:56 +02:00
Anders Bjerner 954893cf2b umbRequestHelper.resourcePromise not supports the error message being a promise 2018-10-21 18:17:56 +02:00
Anders Bjerner bb3beb406d <pre> elements should at least have white-space: pre-wrap 2018-10-21 18:17:55 +02:00
Anders Bjerner d6a329925c Border color for .add-on should be @purple-l3 2018-10-21 18:17:54 +02:00
Jan Skovgaard 7eecf230af 3364 - Suggestion: Make use of confirm action directive on repeatable textstring when deleting (#3365) 2018-10-21 18:17:53 +02:00
Kenn Jacobsen 44fbff4410 Hide "reset password" on the login screen if system emails can't be sent. 2018-10-21 18:17:53 +02:00
Kenn Jacobsen d16bc7a465 Add a custom content item binder for saving blueprints (fixes #2985) 2018-10-21 18:17:51 +02:00
Anders Bjerner df2313f7ec umbRequestHelper.resourcePromise not supports the error message being a promise 2018-10-21 18:08:56 +02:00
Chris Houston c401782d5e Added clean-css to the client side build process (#3371) 2018-10-21 16:27:39 +02:00
Anders Bjerner 1de7b8f10f <pre> elements should at least have white-space: pre-wrap 2018-10-21 16:11:22 +02:00
Anders Bjerner fe06f095be Border color for .add-on should be @purple-l3 2018-10-21 16:05:04 +02:00
Jan Skovgaard 01d9785097 3364 - Suggestion: Make use of confirm action directive on repeatable textstring when deleting (#3365) 2018-10-21 16:00:11 +02:00
Kenn Jacobsen 5da5df5bf9 Hide "reset password" on the login screen if system emails can't be sent. 2018-10-21 14:58:18 +02:00
Kenn Jacobsen 90416a4d87 Add a custom content item binder for saving blueprints (fixes #2985) 2018-10-21 14:52:05 +02:00
Anders Bjerner 827bc19f6a Localized umb-generate-alias placeholder texts 2018-10-21 14:03:22 +02:00
Anders Bjerner 39edf4c6dd Added keys for "enterAlias" and "generatingAlias" 2018-10-21 13:58:45 +02:00
Anders Bjerner 6f359b3d18 Added keys for "enterAlias" and "generatingAlias" 2018-10-21 13:57:01 +02:00
Anders Bjerner e1919e0c52 Added keys for "enterAlias" and "generatingAlias" 2018-10-21 13:54:17 +02:00
Pawel Bres 5bd87efb3f Updated URL to the Contributing page of v7
The old link was not working anymore and was pointing to 404 GitHub page
2018-10-21 12:51:09 +02:00
Anders Bjerner f4a9617487 Improved the description for the "Icon" property 2018-10-21 12:50:42 +02:00
sebastien-sougnez 5efb079f56 Changed font-awesome verison from 4.2 to 4.7 2018-10-21 12:50:02 +02:00
Chris Houston 4ef9c3f086 When typing to configure some of the data types on a small width screen ( mobile or very narrow browser window ) the editing controls for some of the data types did not wrap underneath the titles and in some cases they disappeared completely.
This adds a 100% width on small screen sizes and then reverts back to the original 60% width after 800px's.
2018-10-21 11:23:08 +02:00
Kenn Jacobsen 00cf8dcf05 Reload the node when publishing all unpublished children 2018-10-21 11:01:45 +02:00
Rasmus John Pedersen ef343f04a8 Only hide icons if hideIcons is set to 'true' 2018-10-21 10:51:35 +02:00
Carole Rennie Logan 7071b21db7 Updating example content app manifest
Including roles
2018-10-21 10:41:17 +02:00
Søren Kottal 5dc67deeec adds the right description to UmbracoHelper.Concatenate 2018-10-21 10:39:57 +02:00
Rasmus John Pedersen 6996a06d64 Only add "Move" action once 2018-10-21 10:34:42 +02:00
Warren Buckley f37f679031 Adds ContentApps to the Composition extension methods 2018-10-19 15:19:37 +01:00
Jamie Townsend 0f2381a94d Merge multiple ng-if attributes 2018-10-19 15:19:22 +02:00
Kenn Jacobsen f993869482 Remove the default SMTP configuration 2018-10-19 15:16:01 +02:00
Ed Parry 201a2cd7b1 Added the user ID and GUID to the user details view. (#3279) 2018-10-19 15:13:07 +02:00
Bjarne Fyrstenborg 8e1065a2b6 Fix missing semicolons and remove comma at end 2018-10-19 15:08:17 +02:00
Mike Chambers ecf9c0adb4 Update datepickerController to add onValueChanged function
adding onValueChanged method to capture serverside Model Changes, clearing flag using c# System.DateTime.MinValue.
2018-10-19 15:07:03 +02:00
fer22f d95ec9eb14 Fix documentation of container styling of nodes 2018-10-19 14:56:52 +02:00
Andy Robinson 6b90d62bd1 update to issue #3292 to fix 4 col grid cards. 2018-10-19 14:51:44 +02:00
Andy Robinson c5ea0ea3a9 fixing issue in #3292 2018-10-19 14:51:44 +02:00
Mads Rasmussen 126a834ad4 fix installer facts 2018-10-19 14:49:27 +02:00
Pritesh Tailor d9efc2a401 Fixed broken link in detailed contrib doc
The link to the the issues was broken (Your first code code contribution section). I've updated to the readonly issue tracker and added a reference to new issue tracker.

Removed a line on upvotes, as i don't believe that's relevant anymore.
2018-10-19 14:46:37 +02:00
Mads Rasmussen b75f41b3f6 fix user cards grid 2018-10-19 14:25:15 +02:00
Kenn Jacobsen 8036af958f Allow video feeds to load over HTTPS + fix a few feeds (#3256) 2018-10-19 14:19:47 +02:00
Stephan 421cbf979c Cleanup rollback in content service 2018-10-19 12:47:04 +02:00
Stephan 89510148ac Merge branch 'temp8' into temp8-3298-move-rollback 2018-10-19 11:55:44 +02:00
elitsa 40424b805b Merge remote-tracking branch 'origin/temp8' into temp8-sendToPublish 2018-10-19 11:40:56 +02:00
Bjarne Fyrstenborg 25d9e432c3 Remove space 2018-10-19 11:32:17 +02:00
Bjarne Fyrstenborg a23901c07a Enable email address as macro parameter editor 2018-10-19 11:32:17 +02:00
Poornima Nayar df2ee8e3e1 Moved the css rules for the rollback modal to a new stylesheet 2018-10-19 11:29:49 +02:00
Søren Kottal 1b0581bfce xml comments for ImageCropMode 2018-10-19 11:26:33 +02:00
Mads Rasmussen 82f7b099d5 change styling 2018-10-19 10:43:39 +02:00
Mads Rasmussen 4c638565b7 special treatment for property editors which store the value as json 2018-10-19 09:41:52 +02:00
Shannon 239112a1de notes 2018-10-19 15:45:05 +11:00
Shannon abeb4e04e5 Enhance implementation of ObservableDictionary so we can re-use this in more places, changes CultureNameCollection to ObservableDictionary, fixes issue with dirty tracking changed property type collections ... this was working by pure fluke before! Fixes more tests. 2018-10-19 15:41:28 +11:00
Shannon 8dfb0dc35c more send to translate cleanup 2018-10-19 13:25:06 +11:00
Shannon cc4ee6527d Gets the correct variant logging put in to the audit trail, cleans up audit trail messages to make sense, makes sure audit trail is reloaded when changing variants 2018-10-19 13:24:36 +11:00
Shannon 71fd47f452 Fixes issue of observable collections, event binding and deep cloning 2018-10-19 08:45:53 +11:00
Shannon b30f55ea30 Fixes issue of observable collections, event binding and deep cloning 2018-10-19 08:26:17 +11:00
Warren Buckley 6c459c5117 OK I think we are finally done with C# for Audit
Wraps with a scope so Audit can be fired & the Rollback events can be emitted
2018-10-18 15:51:22 +01:00
Warren Buckley f3ce005cbf Added in some TODOs
Fix log message for success of save
2018-10-18 15:25:11 +01:00
Warren Buckley 6850599ce9 Remove the emtpy folders from CSProj in the legacy umbraco.presentation folder 2018-10-18 15:04:40 +01:00
Warren Buckley 1efe90ba1d More rollback .aspx dialogs removed 2018-10-18 14:54:29 +01:00
Warren Buckley d4bf084b82 Merge branch 'temp8-3298-move-rollback' of https://github.com/umbraco/Umbraco-CMS into temp8-3298-move-rollback 2018-10-18 14:33:12 +01:00
Warren Buckley 321313f134 Remove rollback .aspx dialog 2018-10-18 14:32:44 +01:00
Mads Rasmussen b78a4c2f88 Merge branch 'temp8-3298-move-rollback' of https://github.com/umbraco/Umbraco-CMS into temp8-3298-move-rollback 2018-10-18 15:26:02 +02:00
Mads Rasmussen 0f528a7a89 disable roll back button when no version is selected 2018-10-18 15:25:17 +02:00
Warren Buckley 4a797781a6 Merge branch 'temp8-3298-move-rollback' of https://github.com/umbraco/Umbraco-CMS into temp8-3298-move-rollback 2018-10-18 14:24:50 +01:00
Warren Buckley 6f7d0c3a45 Move logic out of controller into a Rollback method in the service level 2018-10-18 14:24:32 +01:00
Mads Rasmussen 09a7443701 dont show diff if a versionId is not set 2018-10-18 15:16:37 +02:00
Mads Rasmussen a12d736b6b show user in version dropdown 2018-10-18 14:56:00 +02:00
Stephan 2b83b44c9c Fix ContentService.GetPagedChildren 2018-10-18 14:25:35 +02:00
Stephan 510666cd7e ContentService.GetPagedChildren is broken? 2018-10-18 14:25:35 +02:00
Warren Buckley aa86f5b135 Merge branch 'temp8-3298-move-rollback' of https://github.com/umbraco/Umbraco-CMS into temp8-3298-move-rollback 2018-10-18 13:13:20 +01:00
Warren Buckley a40a6e8f35 WIP: Adds logging & audit message
Fixes the filtering & dates to display in the version list
2018-10-18 13:13:11 +01:00
Mads Rasmussen b2138d6376 reload content after rollback 2018-10-18 14:06:21 +02:00
Shannon c3e2d2a821 Cleaning up the log/audit trail usage, removing duplicate and unecessary entries and adding new cols 2018-10-18 22:52:49 +11:00
Shannon a163f79526 Merge remote-tracking branch 'origin/temp8' into temp8-dirty-tracking-on-variants
# Conflicts:
#	src/Umbraco.Core/Migrations/Upgrade/UmbracoPlan.cs
#	src/Umbraco.Core/Models/Content.cs
2018-10-18 22:52:15 +11:00
Shannon f1ca32ea54 Cleaning up the log/audit trail usage, removing duplicate and unecessary entries and adding new cols 2018-10-18 22:47:12 +11:00
Shannon 6cd9102fac Gets publish names tracking changes, adds unit tests 2018-10-18 21:12:55 +11:00
Robert 15f5e9a98e Typo in lazyload JS path for AuthUpgrade page 2018-10-18 11:25:05 +02:00
Mads Rasmussen fd08316189 wire up rollback button 2018-10-18 11:10:27 +02:00
Warren Buckley 816b5ba598 Merge branch 'temp8-3298-move-rollback' of https://github.com/umbraco/Umbraco-CMS into temp8-3298-move-rollback 2018-10-18 09:24:53 +01:00
Mads Rasmussen 813f3f8d84 a language should always be selected when a node has variants 2018-10-18 10:21:13 +02:00
Warren Buckley 3f82cd7677 Update get rollback version to use a culture in the resource 2018-10-18 09:13:27 +01:00
Warren Buckley bdf474f111 Typo in lazyload JS path for AuthUpgrade page 2018-10-18 09:06:46 +01:00
Warren Buckley f0d12f7915 Merge remote-tracking branch 'origin/temp8' into temp8-3298-move-rollback 2018-10-18 08:42:43 +01:00
Robert ace5c07987 Merge pull request #3152 from umbraco/temp8-w220
Fixes: List view searching needs to search on variant names
2018-10-18 08:51:32 +02:00
Mads Rasmussen ab34deb726 add diff 2018-10-17 20:37:15 +02:00
Stephan 15968bc99b Fix dates in document versions 2018-10-17 17:27:39 +02:00
Warren Buckley b358fd5e2d Merge branch 'temp8-3298-move-rollback' of https://github.com/umbraco/Umbraco-CMS into temp8-3298-move-rollback 2018-10-17 15:10:06 +01:00
Warren Buckley fff7891e53 Filter rollback version to display the VariantDisplay model instead 2018-10-17 15:09:29 +01:00
Mads Rasmussen eb8b269846 wire up getRollbackVersion endpoint 2018-10-17 16:02:47 +02:00
Warren Buckley 2baafd9c91 * Renamed API variables to 'culture' to make Stephan happy - updated the AngularJS HTTP Resource call too
* Stubbed out some other WIP code - for getting a specific version & attempting to perform a rollback
2018-10-17 14:39:11 +01:00
Mads Rasmussen 214d6a9834 show correct title and date for current version + update versions when language is changed 2018-10-17 15:17:43 +02:00
Stephan 581658086f Fix KeyValueService for proper initialization 2018-10-17 15:11:00 +02:00
Stephan e80ea9830c Fix bad LockDto primary key w/migration 2018-10-17 15:11:00 +02:00
Stephan 71cec84f78 Fix MigrationExpressionBase, minor typo 2018-10-17 15:11:00 +02:00
Stephan d324466fe1 Fix LockDto, had wrong primary key + missing rows 2018-10-17 15:11:00 +02:00
Mads Rasmussen 2be2273589 wire up versions end point 2018-10-17 14:33:42 +02:00
Warren Buckley 27ce1f34bb Make the JSON model over the API control be the correct casing & make Mads happy :) 2018-10-17 13:24:23 +01:00
Warren Buckley d9864eb6d6 * Make the culturename nullable for invariant content
* fallback to update date and writer id if its not published
2018-10-17 13:19:09 +01:00
Stephan 7c1c6f6806 Fix AlterTableBuilder, was ignoring primary keys 2018-10-17 13:57:35 +02:00
Warren Buckley c05495f358 WIP: Adds a new API endpoint in the editor/webapi for ContenController to list rollback versions available for a culture 2018-10-17 12:15:57 +01:00
Warren Buckley 2e5562c353 Merge branch 'temp8' into temp8-3298-move-rollback 2018-10-17 10:19:42 +01:00
Warren Buckley 5c796b15ad Remove console.log 2018-10-17 11:01:33 +02:00
Shannon ba186144a0 Updates models to allow dirty tracking on variants 2018-10-17 18:09:52 +11:00
Shannon 69640515cf fixes issue with sorting on published 2018-10-17 13:44:24 +11:00
Shannon d7b85397e7 Merge remote-tracking branch 'origin/temp8' into temp8-w220 2018-10-17 12:15:33 +11:00
Mads Rasmussen fd6f9fc83b remove rollback context menu item 2018-10-16 15:11:47 +02:00
Stephan 6346710b97 Fix tests 2018-10-16 15:05:17 +02:00
Mads Rasmussen 16282e1007 remove old client side files for rollback 2018-10-16 14:37:00 +02:00
Mads Rasmussen 203ea8019b add language selector 2018-10-16 14:09:57 +02:00
Warren Buckley c63c114563 Fixes the colors in the icon picker
Checked that the color picker property editor is also OK/happy as well that re-uses the <umb-color-swatches> directive/component
2018-10-16 12:58:21 +01:00
Warren Buckley b27be1153c Merge pull request #3239 from umbraco/temp8-3092-publish-descendants
Temp8 3092 publish descendants
2018-10-16 12:20:40 +01:00
Mads Rasmussen 1c1057412e move current rollback version to infinite editor 2018-10-16 12:40:40 +02:00
Warren Buckley 982fb46e7d Fix failing unit test - number of trees gone down as we have removed the user tree (as this is now a fullscreen/wide section/app only) 2018-10-16 11:16:45 +01:00
Mads Rasmussen eceec9ea3e Set rollback button to be xs + fix padding on xs buttons 2018-10-16 11:43:14 +02:00
Warren Buckley d8f1ec5116 Merge pull request #3200 from umbraco/temp8-3087-tree-grouping
#3087 - Tree Grouping in Settings section
2018-10-16 10:14:22 +01:00
Mads Rasmussen 3d52f2676e Add possibility to extend the umb-box-header + add rollback button 2018-10-16 10:59:04 +02:00
Stephan f868172f48 Cleanup 2018-10-16 10:58:17 +02:00
Stephan 6e8411acaa Merge pull request #3287 from crgrieve/v8-content-app-roles
v8 ContentApp Show/Hide per user Role
2018-10-16 10:12:13 +02:00
Shannon a100d321f6 Fixes group node route 2018-10-16 18:08:57 +11:00
Shannon 10873c1dfc Cleans up all old tree classes. woohoo! 2018-10-16 17:41:02 +11:00
Shannon 831657537f tree webforms cleanup 2018-10-16 16:56:28 +11:00
Shannon 286f7b3279 Gets tree syncing working, updates the GetApplicationTrees to still return a single Root since we require this everywhere for JS, fixes full screen section and makes users a full screen section (and reduces unecessary code), removes code to avoid breaking changes from v7 2018-10-16 16:41:06 +11:00
Shannon 466d782db4 Fixes issue with umbsetdirtyonchange.directive 2018-10-16 13:18:21 +11:00
Shannon 339417b977 Merge remote-tracking branch 'origin/temp8' into temp8-3087-tree-grouping
# Conflicts:
#	src/Umbraco.Web.UI/umbraco/config/lang/nb.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/zh_tw.xml
2018-10-16 13:11:09 +11:00
Stephan 7757c7060e Refactor ManifestContentAppDefinition for roles 2018-10-15 15:48:26 +02:00
Stephan 575d7a3ae7 Cleanup 2018-10-15 14:44:26 +02:00
Carole Rennie Logan 64d7caee78 Update src/Umbraco.Core/Manifest/ManifestContentAppDefinition.cs
Rework logic on content app permissoins. Roles should override all other.
2018-10-14 19:24:18 +01:00
Carole Rennie Logan 3a6f2545f6 Update src/Umbraco.Core/Manifest/ManifestContentAppDefinition.cs
making it case insensitive
2018-10-14 17:38:38 +01:00
Tim Payne f394af20d0 Update umbsections.directive.js
Update the number of sections to the actual number of sections available at the present time, add a fix to the calculateWidth method so that if less items are allowed than available but there is technically enough room to show them the overflow tray still shows up.

On prior version, try adding translation to your allowed user group sections and reload, you can't see the translation section in the top menu, but the overflow menu button won't show until you shrink the screen.
2018-10-14 18:04:39 +02:00
Carole Rennie Logan 1f072a383e ContentApp Show/Hide per user Role
Making content app work show hide in manifest work for user roles. for example:

 "show": [
                "+role/admin"
            ]
2018-10-14 15:56:22 +01:00
Lotte Pitcher a3de30934d Re-adding the language keys for login greeting on a Sunday (greeting0) that were accidentally removed 2018-10-14 16:56:18 +02:00
Kim Holzmann 7a474c6fa4 #3219 Validation error on templates when clicking "save"
Error with use of savebutton fixed, use the suppressNotification value to check state.
2018-10-14 15:23:31 +02:00
Jamie Townsend fb277d80e7 Fix for old password not showing/hiding correctly on admin users page #3069 (#3273) 2018-10-14 13:34:16 +02:00
Sebastiaan Janssen c23f01e74d Merge pull request #3278 from tcmorris/patch-2
Update v8 getting started
2018-10-14 13:07:32 +02:00
Thomas Morris 00afea61f0 Update v8 getting started
Update link so that it doesn't 404 and replace with relevant link.
2018-10-14 10:49:50 +01:00
Sebastiaan Janssen b78f13bd9b Merge pull request #3274 from MMasey/fix-lazyload-reference
Update lazyload.js reference on install pages.
2018-10-14 10:49:22 +02:00
Mike Masey fe906f0e81 Update lazyload.js reference on install pages. 2018-10-13 17:59:43 +01:00
Warren Buckley bbc28b132d Merge pull request #3260 from umbraco/temp8-remove-bower
Temp8 remove bower
2018-10-11 14:38:45 +01:00
Mads Rasmussen 9800f1bd9c fix paths in karma test 2018-10-11 15:31:39 +02:00
Mads Rasmussen 4f00082dd5 fix angular mocks 2018-10-11 15:06:12 +02:00
Mads Rasmussen 91a64c9ea9 Merge branch 'temp8-remove-bower' of https://github.com/umbraco/Umbraco-CMS into temp8-remove-bower 2018-10-11 14:51:09 +02:00
Mads Rasmussen 6071be79be set private to true in package.json. We don't need to publish on npm 2018-10-11 14:50:34 +02:00
elitsa 140e410dcc Revert changes 2018-10-11 14:40:18 +02:00
Warren Buckley e902bb08f6 Removes installing bower from the build powershell 2018-10-11 13:37:20 +01:00
Mads Rasmussen e390d28e29 fix jquery-ui 2018-10-11 14:34:02 +02:00
Warren Buckley ac5ee9053f Update & match momentjs version 2018-10-11 13:32:15 +01:00
Warren Buckley ecaedc547a Fixes moment locale copying 2018-10-11 13:31:54 +01:00
Mads Rasmussen a00875089c get the right version of ace 2018-10-11 14:10:18 +02:00
Mads Rasmussen 7a372bf814 fix lazyload 2018-10-11 13:50:52 +02:00
Mads Rasmussen 09f67c6c43 fix version 2018-10-11 13:26:35 +02:00
Mads Rasmussen efefa54601 remove all bower logic in gulp + remove bower.json 2018-10-11 13:26:21 +02:00
Mads Rasmussen bb5817ca92 fixing versions and files 2018-10-11 13:12:10 +02:00
elitsa e1c7d23c81 Adding a missing parameter 2018-10-11 12:54:32 +02:00
elitsa 79c363c900 Updating the admin user id to the correct userId 2018-10-11 12:54:06 +02:00
elitsa a73e288846 Few fixes - including completing a transaction, disabling the notifications so they can be handled manually. 2018-10-11 12:52:57 +02:00
Mads Rasmussen bd20518d50 move the last dependencies 2018-10-11 12:16:09 +02:00
Warren Buckley 7ebccb1a36 Don't need to globally install bower anymore in this helper batch script 2018-10-11 10:54:45 +01:00
Robert 00bad829c3 Removed rogue colon 2018-10-11 11:54:28 +02:00
Mads Rasmussen a0c7a45a4c move, move, move all day loong... 2018-10-11 10:44:14 +02:00
Shannon f996653a67 changes logic to Count 2018-10-11 10:35:23 +02:00
Shannon c6a4b014cb Merge remote-tracking branch 'origin/temp8-3087-tree-grouping' into temp8-3087-tree-grouping 2018-10-11 10:28:47 +02:00
Warren Buckley 6dd9bf56be Update logic for checking for groups to be more robust (as we could still have one named group) 2018-10-11 09:23:42 +01:00
Warren Buckley eb3fd54e2e Remove empty/unused keys for these tree header groupings 2018-10-11 09:21:39 +01:00
Warren Buckley 9572d195b5 Fixes based on Shan's feedback of the PR
Only does fancy group logic if more than one group - means other sections can be grouped in the future
2018-10-11 09:16:44 +01:00
Shannon a534457f53 Merge remote-tracking branch 'origin/temp8' into temp8-3087-tree-grouping 2018-10-11 10:15:07 +02:00
Mads Rasmussen 37d14f7413 moving moments + angular-dynamic-locale 2018-10-11 09:46:23 +02:00
Robert 9231d2e61c Merge branch 'temp8' into temp8-w220 2018-10-11 09:42:27 +02:00
Stephan 24ff605862 Merge pull request #3244 from umbraco/temp8-installbackground-issue-3243
Fixes issue #3243
2018-10-10 22:05:59 +02:00
Mads Rasmussen 7e85235e20 delete cssparser and less libraries 2018-10-10 21:32:08 +02:00
Mads Rasmussen 4d13c631ed aaand move some more 2018-10-10 21:29:42 +02:00
Mads Rasmussen a4903b9581 get jquery libraries to npm 2018-10-10 20:58:35 +02:00
Niels Hartvig f64cbfae60 Add info on release plan for Umbraco 8 to installer 2018-10-10 13:51:55 -05:00
Niels Hartvig dd6d292896 Updating installer background 2018-10-10 13:51:42 -05:00
Niels Hartvig b5b162cba1 Adds information about the Umbraco 8 release plan 2018-10-10 13:29:51 -05:00
Warren Buckley 4da6788cb8 Fix PartialView Tree Controller to display a folder icon as opposed to an article icon for nested folders - looks odd/broken to me otherwise 2018-10-10 16:27:13 +01:00
Warren Buckley c69590fd21 Move macro tree from Templating up into Settings group 2018-10-10 15:03:14 +01:00
Warren Buckley 5b3db88df9 Fix logic - so that Content Blueprints tree is added to the list of trees (Finding by name/title was not working, so switched to the AdditionalData["treeAlias"] instead 2018-10-10 15:02:50 +01:00
elitsa 8ed4013954 Merge branch 'temp8-sendToPublish' of https://github.com/umbraco/Umbraco-CMS into temp8-sendToPublish 2018-10-10 15:28:18 +02:00
elitsa f0bbce3117 Configuring the logic behind "Send to Publish". 2018-10-10 15:26:05 +02:00
elitsa 5c6bfe823d Configuring the logi behind "Send to Publish". 2018-10-10 15:23:40 +02:00
Mads Rasmussen 66333aa5ec fix label for schedule publish invariant content 2018-10-10 15:19:29 +02:00
elitsa 6db8f50ce3 Right arrow appears when there are child nodes 2018-10-10 15:13:46 +02:00
Mads Rasmussen 5a42259005 disable button if nothing is selected 2018-10-10 15:02:03 +02:00
Mads Rasmussen 75d5c7e30c add translations, autoslect active variant, order by active + clean up 2018-10-10 14:48:54 +02:00
Warren Buckley f1b20ebbb2 Orders the grouped trees by name (which means the custom trees will be last now)
Displays custom third party group - only if we have items to show in that group
2018-10-10 12:25:19 +01:00
Warren Buckley e2d3cbc8eb Decorate other settings trees with the correct grouping 2018-10-10 12:24:00 +01:00
Mads Rasmussen 8fdbfea23f wip publish descendants dialog 2018-10-10 11:33:42 +02:00
Robert a8449a4d01 Merge pull request #3155 from umbraco/temp8-222-variant-invariant-data-updates
variant to invariant data updates
2018-10-10 08:44:33 +02:00
Robert d41251819f RemoveItem now returns a bool 2018-10-10 08:27:20 +02:00
Robert 931fcd565a Removed the override of IsPropertyDirty as is not needed. 2018-10-10 08:26:10 +02:00
Stephan ee24fb4ef7 Make Tests Green Again 2018-10-09 23:02:22 +02:00
Kenn Jacobsen afa3e9b5eb Improve image cropper UX (#3149) 2018-10-09 22:54:51 +02:00
Jan Skovgaard 3aece09e09 3223 - Minor tweaks and code alignment for the checkbox and color picker styling (#3224)
* Make the focus effect on the toggle use the same box-shadow as is already being used in the color picker instead of doing it differently

* Use the color variables instead of hard coded color and also make use of LESS' fade function outputting an rgba() color
2018-10-09 22:25:42 +02:00
Dave Woestenborghs fd1a9bb365 #3214 - umbracoUrlAlias with uppercase characters (#3220) 2018-10-09 21:51:04 +02:00
Kenn Jacobsen 4d1b361f8f Style Public access dialog (#3194) 2018-10-09 21:32:54 +02:00
Mads Rasmussen 91d8b40216 move more libraries 2018-10-09 21:29:50 +02:00
Sebastiaan Janssen ee4a252b07 Revert "Fixed udi's rendered in rte content (#2531)"
This reverts commit b0374695b1.
2018-10-09 21:19:55 +02:00
Mads Rasmussen 5dd6ef18aa first round of moving libraries from bower to npm 2018-10-09 20:48:20 +02:00
Warren Buckley ecb46214d8 package lock JSON update post babel merge 2018-10-09 15:20:31 +01:00
Warren Buckley 3887a9091c Merge pull request #3190 from umbraco/temp8-babel
Temp8 - Add babel to gulp build
2018-10-09 14:46:08 +01:00
Mads Rasmussen 369971bf5f Merge branch 'temp8' into temp8-babel 2018-10-09 15:35:59 +02:00
Warren Buckley ebe52ed6b6 Updated package-lock.json 2018-10-09 14:30:25 +01:00
Warren Buckley 7cdfb65a60 Merge pull request #3213 from umbraco/temp8-223-scheduled-publishing
Temp8 223 scheduled publishing
2018-10-09 14:09:46 +01:00
Jan Skovgaard d1b1a1cf6d #3178 - Make the Checkbox/TrueFalse property editor configurable (#3179) 2018-10-09 14:23:09 +02:00
Poornima Nayar 7e16cf360a Issue with the bottom border looking out of place on the select editor screen fixed 2018-10-09 12:36:28 +02:00
Poornima Nayar 9986c10cec Cleaned up the view by removing inline styles and style tags on the view itself.
Removed inline styles in the code behind files
Moved all styles into the modals.less stylesheet
2018-10-09 12:35:32 +02:00
Anders Bjerner 9b4f879b6d Added XML documentation to the DatabaseSchemaHelper class (#3205) 2018-10-09 12:28:43 +02:00
Kenn Jacobsen 62d65f0e3a Style the sort result so it looks like e.g. the copy dialog result 2018-10-09 12:09:12 +02:00
Jan Skovgaard 8d35dac9b6 #3187 - Small UI fixes for the toggle directive (#3188) 2018-10-09 12:00:29 +02:00
Kenn Jacobsen b8890aee25 Safe(r) handling of invalid images in the image cropper 2018-10-09 11:12:47 +02:00
Paul Seal bb23e8e200 - fix styling of Learn Umbraco help list (#3184) 2018-10-09 10:56:54 +02:00
Paul Seal cbc3ca0768 Updated copyright year 2018-10-09 10:56:18 +02:00
Søren Kottal e76d7cf060 removes selector 2018-10-09 10:45:03 +02:00
Jan Skovgaard 471e47e11b #3163 - Don't overwrite the label name even though labels are disabled in the color picker (#3164) 2018-10-09 10:41:31 +02:00
Warren Buckley 31b616f0ae Merge branch 'temp8' into temp8-3087-tree-grouping
# 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/es.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/nl.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/tr.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/nb.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/zh_tw.xml
#	src/Umbraco.Web/Trees/DictionaryTreeController.cs
2018-10-09 09:25:00 +01:00
Robert 6275a481aa Fixed order by "updater" query. 2018-10-09 10:21:32 +02:00
Sebastiaan Janssen 747edaa6ce #3141 fixed broken Do something else button (#3154) 2018-10-09 10:20:46 +02:00
Nathan Woulfe 08818c6358 removes ng-show from iframe, make loader background a solid color to hide iframe while it loads 2018-10-09 10:08:51 +02:00
Warren Buckley f63a9e93b0 Merge remote-tracking branch 'origin/temp8' into temp8-3087-tree-grouping
# 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/es.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/nl.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/tr.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/zh_tw.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/zh_tw.xml
#	src/Umbraco.Web/Trees/DictionaryTreeController.cs
2018-10-09 08:53:40 +01:00
Mads Rasmussen a78230e135 lock version of flatpickr 2018-10-09 09:46:17 +02:00
Robert 4c6f297ce5 Merge branch 'temp8-w220' of https://github.com/umbraco/Umbraco-CMS into temp8-w220 2018-10-09 09:45:13 +02:00
Robert cc52652481 Added some comments detailing the hack that is in place for the where clause. 2018-10-09 09:44:44 +02:00
Dave Woestenborghs 94922ccbd2 #3141 fixed the problem differently after input from @markadrake 2018-10-09 08:51:02 +02:00
Robert b2d1a48c7a Added null check for EmailValidator value, fixed js error. 2018-10-09 08:19:36 +02:00
Mads Rasmussen 42830312d8 remove properties only needed for this dialog 2018-10-08 20:37:46 +02:00
Mads Rasmussen 501e2ea20b add docs 2018-10-08 19:53:30 +02:00
Mads Rasmussen 4d927e705d fix language file 2018-10-08 19:35:08 +02:00
Mads Rasmussen 92ffdaaca6 Merge branch 'temp8' into temp8-223-scheduled-publishing
# Conflicts:
#	src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml
2018-10-08 17:49:33 +02:00
Mads Rasmussen 5c121e733d small style tweaks to fit backoffice better 2018-10-08 17:31:37 +02:00
Stephan 69f4f0c8a8 Fix preview signalR due to browser throttling background tabs 2018-10-08 17:17:19 +02:00
Stephan 0726ee1a39 Get ContentFinderByUrl to work on preview urls 2018-10-08 17:17:19 +02:00
Stephan f5c5d9f9d5 Update ModelsBuilder to -alpha.24 2018-10-08 17:15:08 +02:00
Stephan 00017a0624 Version 8.0.0-alpha.52 for ModelsBuilder 2018-10-08 16:46:23 +02:00
Stephan d323d0f330 Fix nuspec 2018-10-08 16:45:12 +02:00
Stephan 0f7f6aad41 Add migration to drop task tables 2018-10-08 16:16:47 +02:00
Stephan 075b40444c Cleanup 2018-10-08 16:02:20 +02:00
Poornima Nayar 3977d24eb2 Button styling on inactive user profile & clean up user view (#3170) 2018-10-08 15:29:09 +02:00
Mads Rasmussen 3d345badc3 add comments to schedule controller + fix problem with backdrop clicks 2018-10-08 15:22:15 +02:00
Warren Buckley b2bc259bd5 Adds in lang keys 2018-10-08 14:19:52 +01:00
Kenn Jacobsen 2e135d2006 Register an audit on the parent node when sorting child nodes. 2018-10-08 15:11:51 +02:00
Warren Buckley be42783616 Remove dupe code & order by descending (still need to specify own sort order) 2018-10-08 14:10:11 +01:00
Mads Rasmussen 6869833c54 clean up settings when dates are cleared 2018-10-08 14:41:14 +02:00
Warren Buckley c306bdea47 Updates umb-tree directive to loop over the uodated WebAPI collection of SectionRootNodes 2018-10-08 13:36:59 +01:00
Warren Buckley b3f4e9da8f JS tweaks needed to deal with a collection of SectionRootNodes returning from the API 2018-10-08 13:36:14 +01:00
Warren Buckley 5a551bd3d6 Changed needed as GetApplicationTrees returns an IEnumerable of SectionRootNodes now 2018-10-08 13:34:11 +01:00
Warren Buckley 6c7c510eb9 Initial WIP of grouping trees for settings section - needs tidying 2018-10-08 13:33:14 +01:00
Warren Buckley 7db13960e9 Adds in GetAllTypes to ApplicationTreeService 2018-10-08 13:32:12 +01:00
Kenn Jacobsen b820baf643 Whe moving an item, make sure the current user is registered in Audit instead of the default user (#3150) 2018-10-08 14:27:18 +02:00
Kim Holzmann a3cf1d7d58 #3138 - Can add a null item to the grid
Don't perform submit function if selectedItem is undefined
2018-10-08 14:22:04 +02:00
KimHolzmann 4d7a36e017 #3001 Styles cannot be saved - Not sure if oldName is legacy (#3123) 2018-10-08 14:04:52 +02:00
Mads Rasmussen fb783e33af add flatpickr to variants 2018-10-08 13:59:25 +02:00
Mads Rasmussen 8c71aefe70 prevents overlay from closing when clicking inside date picker 2018-10-08 13:58:38 +02:00
Shannon Deminick e15992a66b Merge pull request #3197 from umbraco/temp8-I3089
Translation cleanup
2018-10-08 13:11:22 +02:00
Shannon 210102fcdc oops incorrect package version got reverted 2018-10-08 13:10:38 +02:00
Sebastiaan Janssen a9756e065c Don't show toggles to create templates when that feature is disabled.
Also default the toggle to false when the feature is disabled.
2018-10-08 13:07:54 +02:00
elitsa b68b962d6f Removed all keys which are not being referenced anywhere in the code base. 2018-10-08 11:58:22 +02:00
elitsa aa003713e6 Removed files which were added mistakenly discarding merge conflicts. 2018-10-08 11:57:13 +02:00
Shannon 975e08ba9f Fixes member/media list views, reformats some code and fixes js error 2018-10-08 11:23:12 +02:00
Shannon 13693bddef Ensures the correct default list view settings are loaded for media content type 2018-10-08 10:54:02 +02:00
Mads Rasmussen eda87cbbd2 prevent unpublish date to be before publish date and vice versa 2018-10-08 10:48:57 +02:00
elitsa 85309e8ce5 Merge branch 'temp8-I3089' of https://github.com/umbraco/Umbraco-CMS into temp8-I3089 2018-10-08 10:23:53 +02:00
elitsa 4bde59ed66 Translation clean up 2018-10-08 10:13:36 +02:00
Shannon 1bb4d3d3ec Merge remote-tracking branch 'origin/temp8' into temp8-w220 2018-10-08 10:10:56 +02:00
elitsa 9ad65e5fa8 Deleting 'Task' related references and implementations 2018-10-08 10:08:04 +02:00
Shannon Deminick b93dea5c38 Merge pull request #3171 from umbraco/temp8-I3089
Removed the old Developer section and replaced it with Packages section instead.
2018-10-08 10:00:59 +02:00
elitsa e2acc8b447 Remove sections icons - not needed anymore 2018-10-08 10:00:52 +02:00
Robert 59962c7afe Merge pull request #3136 from umbraco/temp-3063-xmlPublishedContent-lock
Lock XmlPublishedContent initialization for thread-safety
2018-10-08 09:58:58 +02:00
elitsa 8fdee9af85 Update trees.Release.config 2018-10-08 09:58:19 +02:00
Shannon b48202197f Merge remote-tracking branch 'origin/temp8' into temp8-I3089
# Conflicts:
#	src/Umbraco.Web/Trees/DataTypeTreeController.cs
2018-10-08 09:54:12 +02:00
Mads Rasmussen a629f8fb83 Merge branch 'temp8' into temp8-223-scheduled-publishing 2018-10-08 09:42:04 +02:00
Jan Skovgaard 0f3da1ae14 #3159 - Add border around the colors from the approved color picker (#3161) 2018-10-08 08:38:24 +02:00
Poornima Nayar 774f1d706c Fixed issue with actions dropdown menu being partially visible. 2018-10-08 08:17:48 +02:00
Sebastiaan Janssen 6b55c11321 Merge pull request #3156 from jannikanker/patch-1
Lecoati CSS reference removed (issue #3147)
2018-10-08 08:13:04 +02:00
Sebastiaan Janssen 2737085161 Merge pull request #3167 from rahulkumaran/licsene-patch
Update LICENSE.md
2018-10-08 08:10:21 +02:00
Mads Rasmussen b9ad98b357 package is a reserved word 2018-10-07 20:03:23 +02:00
Mads Rasmussen 0cd24e94bb can't delete variables 2018-10-07 20:03:06 +02:00
Mads Rasmussen 6dfb1e7e83 await is a reserved word 2018-10-07 20:01:54 +02:00
Mads Rasmussen 8c52529e47 add babel + babel config 2018-10-07 20:01:20 +02:00
Mads Rasmussen 90900067a8 wip Add flatpickr library + create flatpickr component 2018-10-07 15:29:24 +02:00
Shannon fdc94b9d1b Writes tests to ensure that property values are updated in docs that are of a composed type of the one that variants are being changed in. 2018-10-05 15:07:19 +02:00
Warren Buckley 2612f33283 Update trees using [CoreTree] attribute to use new property from our constants 2018-10-05 13:11:38 +01:00
Warren Buckley e013545cfc Adds property to [CoreTree] attribute that allows you to set the TreeGroup key - which will be from our constants 2018-10-05 13:10:31 +01:00
Warren Buckley 4ff15fbf04 Updates constants to include nested class in Constants.Trees.Groups for the various settings section subtree groupings - these keys will be used to help group the trees 2018-10-05 13:09:30 +01:00
Shannon 06d41086f3 adds stub code for clearing scheduled publishing 2018-10-05 11:56:47 +02:00
Shannon 2e5d0f85e8 clears redirects on variation change 2018-10-05 11:53:35 +02:00
elitsa 99257f2245 Updated the sortOrder also in the respective controllers, as well as updating to the new standards of string interpolation in those controllers. 2018-10-05 11:51:34 +02:00
elitsa 373dfde730 don't show down arrow when no doc types 2018-10-05 11:28:43 +02:00
Mads Rasmussen 8eac3c5894 clean up old schedule publshing button code 2018-10-05 11:15:21 +02:00
elitsa 0cc5a01069 packages section is there with translations sections and correct trees 2018-10-05 11:09:33 +02:00
Mads Rasmussen 41aa6e680e schedule button should always show an ellipsis because it always opens a dialog 2018-10-05 09:54:57 +02:00
Rahul Arulkumaran e7d7de6273 Update LICENSE.md 2018-10-05 11:43:41 +05:30
Mads Rasmussen a1abe568ce clean up 2018-10-04 21:01:47 +02:00
Mads Rasmussen 7d56ebf662 fix width of date picker 2018-10-04 20:21:13 +02:00
Jannik Anker b6c3297884 Lecoati CSS reference removed (issue #3147)
ApprovedColorPickerController had a reference for no apparent reason.
2018-10-04 17:16:57 +02:00
Shannon 0ae1d06c2d fix merge 2018-10-04 16:39:31 +02:00
Shannon 9222ede853 Merge remote-tracking branch 'origin/temp8' into temp8-222-variant-invariant-data-updates
# Conflicts:
#	src/Umbraco.Core/Persistence/Repositories/Implement/LanguageRepository.cs
2018-10-04 16:39:23 +02:00
Shannon 304c874006 removes comments 2018-10-04 16:36:19 +02:00
Shannon c5ae149d40 Gets remaining tests in place along with moving name values 2018-10-04 16:27:41 +02:00
Stephan b6679551d4 Fix url provider for variant/invariant urls 2018-10-04 16:16:56 +02:00
Stephan 9106dc9ca9 Fix ModelType and media picker converter for when picking only images 2018-10-04 16:16:56 +02:00
Mads Rasmussen 01bb00a8ec better date formatting 2018-10-04 16:04:14 +02:00
Mads Rasmussen 99e7fb008e remove unused styles 2018-10-04 16:03:13 +02:00
Dave Woestenborghs 9d36ee6bd8 #3141 fixed broken Do something else button 2018-10-04 15:49:32 +02:00
Mads Rasmussen 5b6c6c0cd1 remove schedule publish box from info app 2018-10-04 15:37:59 +02:00
Mads Rasmussen 1c5547e594 add better styling for scheduling of invariant content 2018-10-04 15:23:38 +02:00
Mads Rasmussen 8f9db82159 clean up states when dialog closes, prevent dialog from closing then date picker is open, wip support for invariant content 2018-10-04 14:21:30 +02:00
Shannon 7b41730b60 Changes how variant property data is updated with bulk SQL and gets tests working 2018-10-04 14:15:54 +02:00
Warren Buckley 811526859c Fix up unit test - Test_Section_Tabs after dahsboards moving around from dev into settings 2018-10-04 13:08:14 +01:00
Warren Buckley d1835d8ea0 Merge pull request #3151 from umbraco/temp8-219-IsolatedContentAppForms
#219 Isolated content app forms
2018-10-04 12:53:38 +01:00
Warren Buckley 17cb3604e0 After peer review with Shan & Mads - forgot to remove commented out code but both are happy with this implemtation for first iteration 2018-10-04 12:49:43 +01:00
Robert bed391d20f Merge branch 'temp8' into temp8-w220 2018-10-04 13:20:44 +02:00
Robert 24fe3b33f2 Cleaning some usings 2018-10-04 13:20:15 +02:00
Robert 76bacb3ba0 Moved the join and coalesce into GetBaseQuery, making sure that we append the right query if we are searching a variant list 2018-10-04 13:15:01 +02:00
Robert f33953e702 Moving the sql join and coalesce query in the DocumentRepository.GetBaseQuery(), renaming "ordering" to "variantName" to match the field created in GetBaseQuery. 2018-10-04 13:12:49 +02:00
Robert ff7356fea2 Extending the AndSelect to take an param array of fields 2018-10-04 13:06:07 +02:00
Warren Buckley 5bc2954650 Merge pull request #3109 from umbraco/update-dashboards
Merge dashboards from Developer to Settings section
2018-10-04 11:56:14 +01:00
Warren Buckley 8270888780 Merge remote-tracking branch 'origin/temp8' into temp8-219-IsolatedContentAppForms
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js
2018-10-04 10:38:37 +01:00
Bjarne Fyrstenborg 7355ba4b23 Add option to rename colorpicker labels (#3121) 2018-10-04 08:36:21 +02:00
Jan Skovgaard deca5d7bdb Refactor error handling to serve different error messages depending on the context. If we know that the id being moved is the same as the id we want to move it to then show a specific error message hinting the editor what's wrong and otherwise show the usual generic error message. 2018-10-04 08:19:51 +02:00
Anders Bjerner bc081db9e6 Sentences should end with a period (#3144) 2018-10-04 08:16:11 +02:00
Shannon f76df08cd2 ensures that property type variations are set to nothing if the content type is updated to nothing 2018-10-03 19:34:02 +02:00
Shannon 26759e97fa First iteration to populate property type changes when they are changed variant/invariant 2018-10-03 19:03:22 +02:00
Sebastiaan Janssen b6966055b4 Merge pull request #3140 from StrikerRUS/domain
updated domain in links to Umbraco community
2018-10-03 18:29:11 +02:00
Sebastiaan Janssen 2389901ba9 Merge pull request #3139 from ThomasAdams2/twitter-settings-typo
Fix typo in twitter settings section of EmbeddedMedia configs
2018-10-03 18:23:09 +02:00
Claus 9579b97dde fixes #3124 - logging in BaseDataCreation. 2018-10-03 18:17:46 +02:00
Claus c27b9d76db fixes #3126 - If no property data is found for a specific version - a null exception is thrown.
- Throwing an exception with a description instead of hitting a null exception.
2018-10-03 18:16:56 +02:00
KimHolzmann a8df8f484f #3022 media uploader in rte doesn't select uploaded image (#3117) 2018-10-03 18:13:35 +02:00
Warren Buckley e98cd3fe8f WIP - Get the custom content app icon as invalid if my form in my content app contains errors in the form 2018-10-03 16:42:58 +01:00
Stephan 5c2591f9a1 Merge pull request #2764 from AndyButland/u4-11502
U4-11502 - fall-back languages [v8]
2018-10-03 17:42:22 +02:00
Jan Skovgaard 0a245dda43 Add an outer check to make sure the scope.includeSubFolders property is not undefined, which makes the media render in the view again 2018-10-03 17:38:44 +02:00
BatJan 125bbdd5bd #3102 - Make styling for media search dialogue prettier (#3103) 2018-10-03 17:20:04 +02:00
Dave Woestenborghs 321460c395 #3099 Added docs for tour directives (#3100) 2018-10-03 17:05:25 +02:00
Sebastiaan Janssen 6bd31636f0 Merge pull request #3086 from kjac/fix-nc-dragging-discards-changes
Avoid data loss when dragging an unsaved Nested Content item
2018-10-03 17:03:49 +02:00
Sebastiaan Janssen e80c450e42 Merge pull request #3085 from kjac/fix-nc-config-duplicate-doctypes
Don't let the same doctype be selectable twice in the Nested Content configuration
2018-10-03 16:52:58 +02:00
Mads Rasmussen 0bbacf46ea add filters 2018-10-03 16:41:56 +02:00
Sebastiaan Janssen 262f7aff7c Merge pull request #3084 from kjac/fix-nc-rte-loading-v2
Fix loading issue for RTE's in Nested Content
2018-10-03 16:33:28 +02:00
StrikerRUS 62a82c17c2 updated domain in links to Umbraco community 2018-10-03 17:33:11 +03:00
Stephan 96acc1bd7e Contextualize variations in fallback, too 2018-10-03 16:19:41 +02:00
Stephan ef3099ec58 Expose variation context accessor on Current 2018-10-03 16:16:50 +02:00
Warren Buckley a3217a73d3 we need to NOT have umb-isolate-form or val-form-manager on the umb-editor-sub-view when its core's own content apps 2018-10-03 15:15:43 +01:00
Stephan 1ff92d819d Fix languages list 2018-10-03 16:08:25 +02:00
Thomas Adams 833137772d Fix typo in twitter settings section of EmbeddedMedia configs 2018-10-03 15:04:33 +01:00
Warren Buckley 6d604a37b6 WIP with Shan - Removes nested content app form validation error messages & then puts them back 2018-10-03 14:55:15 +01:00
Warren Buckley b2ec2ac592 Update bower to angular 1.7.4 2018-10-03 14:51:04 +01:00
Sebastiaan Janssen 69528704ca Merge pull request #3106 from umbraco/abjerner-patch-3
Hide the "Links" box when there are no links
2018-10-03 15:36:16 +02:00
Sebastiaan Janssen be140bd06c Merge pull request #3104 from umbraco/abjerner-patch-2
Hide "Created Date" field when the media hasn't yet been created
2018-10-03 15:35:35 +02:00
Sebastiaan Janssen 2bda1a211d Merge pull request #3107 from umbraco/abjerner-patch-4
Should be "JavaScript" instead of "javascript"
2018-10-03 15:34:40 +02:00
Stephan f42bb663ff Lock XmlPublishedContent initialization for thread-safety 2018-10-03 15:17:32 +02:00
Mads Rasmussen 991d960379 Merge branch 'temp8' into temp8-223-scheduled-publishing
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js
#	src/Umbraco.Web.UI.Client/src/common/services/contenteditinghelper.service.js
2018-10-03 15:13:54 +02:00
Stephan 2020c680d6 Merge branch temp8 into temp8-11502 2018-10-03 15:08:12 +02:00
Mads Rasmussen fbff56d911 change schedule flag to save flag 2018-10-03 14:57:45 +02:00
Mads Rasmussen 739effba46 add schedule publish to the publish combo button 2018-10-03 14:51:20 +02:00
Stephan 61a926e7e6 Cleanup npm package[-log].json files 2018-10-03 14:44:08 +02:00
Shannon Deminick 8f6329d165 Merge pull request #3135 from umbraco/temp8-241-unpublish
unpublish dialog in v8
2018-10-03 14:28:49 +02:00
Shannon 651b4a348a gets unpublish working 2018-10-03 14:27:48 +02:00
elitsa f3d1cc29bb Remove file related to old Developer's dashboard. 2018-10-03 14:21:41 +02:00
elitsa 7468c4ab04 Disabling packages section dashboard. 2018-10-03 14:20:46 +02:00
elitsa 83c66730e2 Updating tabs into Settings section. 2018-10-03 14:19:35 +02:00
elitsa 2fca4579e7 Relocate "Redirect URLs" markup and controller into a newly created 'content' folder. 2018-10-03 14:16:06 +02:00
elitsa f2825a6308 Adding back wrongly deleted code. 2018-10-03 14:12:18 +02:00
Sebastiaan Janssen ff0b95b337 Merge pull request #3083 from kjac/fix-nc-dragging-offset
Fix Nested Content "second time dragging" issue
2018-10-03 11:46:35 +02:00
Mads Rasmussen 1e501cc3c3 wip schedule publish dialog 2018-10-03 11:27:15 +02:00
Sebastiaan Janssen 7c28e8979a Merge pull request #3082 from kjac/fix-nc-icon-colors
Ensure the correct color for items in the Nested Content item picker
2018-10-03 11:17:27 +02:00
Stephan 914b8177bd Fix the migration plan 2018-10-03 11:11:55 +02:00
Stephan e44ed00c97 Another fallback iteration 2018-10-03 10:31:35 +02:00
Sebastiaan Janssen 93ae55c919 Removes the DatabaseSchemaValidationHealthCheck for now until we can improve it
Fixes #3132
2018-10-03 10:27:07 +02:00
Shannon b42cbbc0ff Merge branch 'temp8' into temp8-241-unpublish 2018-10-03 10:07:43 +02:00
Claus 985e1cc1b7 fixing annoying typo... 2018-10-03 07:49:36 +02:00
Shannon 6dba59585c Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-10-02 15:30:53 +02:00
Shannon 39458017ec removes old tag API 2018-10-02 15:29:17 +02:00
Sebastiaan Janssen c90e7735f9 Fix initial upload for svg and correct the way the cropper elements are hidden when cropping is not possible 2018-10-02 15:24:51 +02:00
Shannon 7196c855b2 Fixes tests 2018-10-02 15:19:01 +02:00
Claus 9cbb7f1d4a Merge pull request #3108 from umbraco/temp8-3094-save-button
Temp8 3094 save button
2018-10-02 15:14:58 +02:00
elitsa ce2cf7caa3 Updating the count of classes meeting the condition, due to uncommenting PackagesTreeController.cs 2018-10-02 14:21:28 +02:00
elitsa cda24b4fba Updating the right path to the Packages dashboard subviews. Adding new properties and attribute to meet the new implementation standards of a section. 2018-10-02 14:19:00 +02:00
elitsa 0ec789ca06 Enable PackagesTreeController while disabling the custom UI for the Packages dashboard. 2018-10-02 14:14:25 +02:00
elitsa 0e8d4eed63 Move dashboards from the Developer's section into Settings one. 2018-10-02 14:12:53 +02:00
elitsa 4e87abcc1e Update references to the right sections. 2018-10-02 14:11:48 +02:00
elitsa e2eaa1b9dd Change the location of the Developer section's dashboards markups and controllers into the respective Settings folder . 2018-10-02 14:08:45 +02:00
Mads Rasmussen ba295ddcf7 Merge branch 'temp8-234-disable-change-doctype-function' into temp8 2018-10-02 14:02:43 +02:00
Mads Rasmussen facaba2ed2 Remove save from comment 2018-10-02 13:07:57 +02:00
Shannon 0c5cf5256b manual merge pass #2 2018-10-02 12:57:19 +02:00
Warren Buckley 59c0e3f988 Uses underscorejs omit to remove the 'apps' from the object we copy to avoid a never ending nested tree of apps in the JSON 2018-10-02 11:45:06 +01:00
Shannon edc9744397 manual merge pass #1 2018-10-02 11:14:04 +02:00
Mads Rasmussen 1c0cf42f86 fixing dashboard paddings 2018-10-02 10:43:28 +02:00
Mads Rasmussen 92314a14f6 show load spinners in dialogs when those are used. Show load spinner on button when dialogs are not used. 2018-10-02 10:42:57 +02:00
Mads Rasmussen 41f4953013 add outlined button style 2018-10-02 10:40:44 +02:00
Shannon 7349b545b0 manually merging new media detectors 2018-10-02 09:38:27 +02:00
Anders Bjerner 3dffb59f72 Should be "JavaScript" instead of "javascript" 2018-10-01 21:55:13 +02:00
Anders Bjerner 38bd53978b Should be "JavaScript" instead of "javascript" 2018-10-01 21:53:53 +02:00
Anders Bjerner 9c04abc5ad Hide the "Links" box when there are no links 2018-10-01 21:40:24 +02:00
Anders Bjerner 66221364ca Hide "Created Date" field when the media hasn't yet been created 2018-10-01 21:21:17 +02:00
Stephan 8a29745b98 Merge branch temp8 into temp8-11502 2018-10-01 14:45:33 +02:00
Shannon 549d8d83ce reverts changes that shouldn't have been made, will manually merge these ones 2018-10-01 14:39:28 +02:00
Stephan eda6e084a7 Fix casing issue in member group service/repo 2018-10-01 14:37:40 +02:00
Shannon b96ba05d22 Merge remote-tracking branch 'origin/dev-v7' into temp8
# Conflicts:
#	build/Modules/Umbraco.Build/Get-UmbracoBuildEnv.ps1
#	build/NuSpecs/UmbracoCms.Core.nuspec
#	build/NuSpecs/UmbracoCms.nuspec
#	build/NuSpecs/tools/Readme.txt
#	src/Umbraco.Core/Configuration/UmbracoConfig.cs
#	src/Umbraco.Core/Configuration/UmbracoSettings/ContentElement.cs
#	src/Umbraco.Core/Configuration/UmbracoSettings/IContentSection.cs
#	src/Umbraco.Core/Constants-Conventions.cs
#	src/Umbraco.Core/Constants-System.cs
#	src/Umbraco.Core/IO/MediaFileSystem.cs
#	src/Umbraco.Core/Media/Exif/ImageFile.cs
#	src/Umbraco.Core/Models/Property.cs
#	src/Umbraco.Core/Models/PropertyTagBehavior.cs
#	src/Umbraco.Core/Models/PropertyTags.cs
#	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenTwelveZero/SetDefaultTagsStorageType.cs
#	src/Umbraco.Core/Persistence/Repositories/AuditRepository.cs
#	src/Umbraco.Core/Persistence/Repositories/UserRepository.cs
#	src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs
#	src/Umbraco.Core/Security/AuthenticationExtensions.cs
#	src/Umbraco.Core/Security/BackOfficeCookieAuthenticationProvider.cs
#	src/Umbraco.Core/Services/Implement/PackagingService.cs
#	src/Umbraco.Core/Services/ServerRegistrationService.cs
#	src/Umbraco.Core/StringExtensions.cs
#	src/Umbraco.Core/packages.config
#	src/Umbraco.Tests/ApplicationUrlHelperTests.cs
#	src/Umbraco.Tests/Persistence/Repositories/AuditRepositoryTest.cs
#	src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs
#	src/Umbraco.Tests/Web/TemplateUtilitiesTests.cs
#	src/Umbraco.Tests/packages.config
#	src/Umbraco.Web.UI.Client/package.json
#	src/Umbraco.Web.UI.Client/src/common/directives/components/content/umbcontentnodeinfo.directive.js
#	src/Umbraco.Web.UI.Client/src/common/directives/components/imaging/umbimagegravity.directive.js
#	src/Umbraco.Web.UI.Client/src/common/directives/components/tree/umbtreeitem.directive.js
#	src/Umbraco.Web.UI.Client/src/common/resources/log.resource.js
#	src/Umbraco.Web.UI.Client/src/common/services/user.service.js
#	src/Umbraco.Web.UI.Client/src/less/belle.less
#	src/Umbraco.Web.UI.Client/src/less/components/card.less
#	src/Umbraco.Web.UI.Client/src/less/navs.less
#	src/Umbraco.Web.UI.Client/src/less/panel.less
#	src/Umbraco.Web.UI.Client/src/less/property-editors.less
#	src/Umbraco.Web.UI.Client/src/less/tree.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/infiniteeditors/mediapicker/mediapicker.controller.js
#	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/linkpicker/linkpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/common/overlays/mediaPicker/mediapicker.html
#	src/Umbraco.Web.UI.Client/src/views/components/content/umb-content-node-info.html
#	src/Umbraco.Web.UI.Client/src/views/components/notifications/umb-notifications.html
#	src/Umbraco.Web.UI.Client/src/views/components/umb-color-swatches.html
#	src/Umbraco.Web.UI.Client/src/views/components/umb-table.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/fileupload/fileupload.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/imagecropper/imagecropper.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/mediapicker/mediapicker.html
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.controller.js
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/textarea/textarea.html
#	src/Umbraco.Web.UI/Umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml
#	src/Umbraco.Web.UI/config/umbracoSettings.Release.config
#	src/Umbraco.Web.UI/packages.config
#	src/Umbraco.Web.UI/web.Template.Debug.config
#	src/Umbraco.Web.UI/web.Template.config
#	src/Umbraco.Web/Editors/AuthenticationController.cs
#	src/Umbraco.Web/Editors/BackOfficeController.cs
#	src/Umbraco.Web/Editors/CanvasDesignerController.cs
#	src/Umbraco.Web/Editors/ContentController.cs
#	src/Umbraco.Web/Editors/DashboardController.cs
#	src/Umbraco.Web/Editors/LogController.cs
#	src/Umbraco.Web/Editors/MediaController.cs
#	src/Umbraco.Web/Install/InstallHelper.cs
#	src/Umbraco.Web/Install/InstallSteps/NewInstallStep.cs
#	src/Umbraco.Web/Media/EmbedProviders/AbstractOEmbedProvider.cs
#	src/Umbraco.Web/Models/Mapping/DataTypeModelMapper.cs
#	src/Umbraco.Web/Models/Mapping/PreValueDisplayResolver.cs
#	src/Umbraco.Web/Mvc/MasterControllerFactory.cs
#	src/Umbraco.Web/PropertyEditors/FileUploadPropertyValueEditor.cs
#	src/Umbraco.Web/PropertyEditors/ImageCropperPropertyValueEditor.cs
#	src/Umbraco.Web/PropertyEditors/TextAreaPropertyEditor.cs
#	src/Umbraco.Web/PropertyEditors/ValueConverters/MultiNodeTreePickerPropertyConverter.cs
#	src/Umbraco.Web/PublishedCache/MemberPublishedContent.cs
#	src/Umbraco.Web/Routing/RedirectTrackingEventHandler.cs
#	src/Umbraco.Web/Scheduling/HealthCheckNotifier.cs
#	src/Umbraco.Web/Scheduling/KeepAlive.cs
#	src/Umbraco.Web/Scheduling/LogScrubber.cs
#	src/Umbraco.Web/Scheduling/ScheduledPublishing.cs
#	src/Umbraco.Web/Scheduling/ScheduledTasks.cs
#	src/Umbraco.Web/Scheduling/Scheduler.cs
#	src/Umbraco.Web/Templates/TemplateUtilities.cs
#	src/Umbraco.Web/Trees/DataTypeTreeController.cs
#	src/Umbraco.Web/UmbracoModule.cs
#	src/Umbraco.Web/_Legacy/Packager/Installer.cs
#	src/Umbraco.Web/packages.config
#	src/Umbraco.Web/umbraco.presentation/keepAliveService.cs
#	src/Umbraco.Web/umbraco.presentation/umbraco/dashboard/FeedProxy.aspx.cs
#	src/umbraco.businesslogic/IO/IOHelper.cs
#	src/umbraco.cms/packages.config
#	src/umbraco.cms/umbraco.cms.csproj
#	src/umbraco.controls/packages.config
#	src/umbraco.controls/umbraco.controls.csproj
#	src/umbraco.editorControls/packages.config
#	src/umbraco.editorControls/umbraco.editorControls.csproj
2018-10-01 14:32:46 +02:00
Warren Buckley 47bafdfc19 Removes ng-swipe-left-directive on the umb-navigation component/directive - aka make Mads happy :) 2018-10-01 13:07:12 +01:00
Mads Rasmussen 6b08af666a add ellipsis to save button when it opens the variant overlay 2018-10-01 13:39:14 +02:00
Warren Buckley 1ae1a462d4 Tempolarily removes the right click context menu item for 'Change DocType' 2018-10-01 12:15:06 +01:00
Mads Rasmussen 22ad787c95 fix border radius on button group 2018-10-01 13:06:13 +02:00
Mads Rasmussen f8bf94c4c9 remove save button from publish combo button + add new save button 2018-10-01 12:54:41 +02:00
Warren Buckley 7304c140a7 Update to make domain dropdown binding on load (if selected lang in top half is not selected) 2018-10-01 10:30:56 +01:00
Shannon b4f4d2cfe8 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-10-01 11:26:40 +02:00
Shannon 5c8fd56317 comment 2018-10-01 11:26:18 +02:00
Sebastiaan Janssen 328b4b1556 Merge pull request #3077 from umbraco/abjerner-patch-1
Removed "debugger" statement from linkpicker overlay controller
2018-09-30 22:19:05 +02:00
Anders Bjerner fabab44342 Removed "debugger" statement from linkpicker overlay 2018-09-30 19:31:40 +02:00
Stephan d56d39ee1a Fix nested content validation when null 2018-09-30 19:09:06 +02:00
Kenn Jacobsen 2c9256c672 Don't let the same doctype be selectable twice in the Nested Content configuration 2018-09-30 18:50:33 +02:00
Stephan 053e0e17a3 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-09-30 18:49:50 +02:00
Matthew-Wise a33ccd15c6 Convertion of assigndomain2.aspx to angular (#2897) 2018-09-30 16:02:09 +02:00
agrath 63a2a155d1 User invite flow review (#3000) 2018-09-30 15:03:52 +02:00
KimHolzmann 8fad718347 #2916 Media picker searches entire media archive (#3061) 2018-09-30 14:08:01 +02:00
Sebastiaan Janssen 3879b81ed3 Merge pull request #3062 from markadrake/temp-3058
If TinyMCE has not loaded yet, return the initialized value.
2018-09-30 13:44:11 +02:00
Mark Drake c5de33dcae Added an active css class for Umbraco Tree items (#3056) 2018-09-30 13:38:19 +02:00
Sebastiaan Janssen f36139619a Merge pull request #3060 from markadrake/temp-3051
Minimal changes to class `nav-tabs` styling
2018-09-30 13:29:01 +02:00
Sebastiaan Janssen 093182c56d Allow svg uploads 2018-09-30 13:12:11 +02:00
imranhaidercogworks 5f1fb144e0 Uploading SVG's Causes Error (Depending on imageFileTypes Setting) (#3072) 2018-09-30 13:09:44 +02:00
Sebastiaan Janssen 6b398a2d16 Merge pull request #3074 from arknu/tags-internal
Make TagSupport and related types public
2018-09-30 11:02:52 +02:00
Sebastiaan Janssen 3c73f6a764 Rename name property so title gets set for the doctype icon picker - relates to PR #2864 2018-09-30 10:59:20 +02:00
Bjarne Fyrstenborg 865cdc09c6 U4-11588 - Adjustments of color picker (#2864) 2018-09-30 10:50:05 +02:00
Asbjørn 7f107a8559 Make TagSupport and related types public #2988 2018-09-29 17:42:45 +02:00
Kenn Jacobsen 0dbbb585ad Fix loading issue for RTE's in Nested Content 2018-09-29 17:06:04 +02:00
Kenn Jacobsen a7573ce31f Avoid data loss when dragging an unsaved Nested Content item (#3014) 2018-09-29 07:35:16 +02:00
Kenn Jacobsen c6e2ced971 Fix Nested Content "second time dragging" issue 2018-09-29 07:30:27 +02:00
Kenn Jacobsen 45f574ed3a Ensure the correct color for items in the Nested Content item picker 2018-09-29 07:27:39 +02:00
Stephan b572407084 Fix nested content when empty or null 2018-09-28 16:59:00 +02:00
Stephan 621ef28680 Fix PublishedElementModel, must be abstract 2018-09-28 16:59:00 +02:00
Stephan 3382a4efdb Fix nested content breaking issue 2018-09-28 16:59:00 +02:00
Stephan b1be86c9d6 fix nuspec, app_browsers is gone 2018-09-28 16:53:48 +02:00
Mads Rasmussen a418322ee5 find languages for unpublishing 2018-09-28 13:52:36 +02:00
Mads Rasmussen 36520b0777 add support for invariant content 2018-09-28 13:01:27 +02:00
Mads Rasmussen 39ffb60a9d show mandatory language as text 2018-09-28 12:30:05 +02:00
Mads Rasmussen 90150fdc46 fine tuning selection 2018-09-28 11:19:29 +02:00
Robert 432fb7257a Merge pull request #3065 from umbraco/temp8-p181
Fixes: #181 Breadcrumbs should be contextual to the variant language
2018-09-28 09:47:44 +02:00
Mark Drake 12a9466cd7 if tinymce has not loaded yet, return the initialized value only 2018-09-27 17:03:24 -04:00
Mark Drake fce0dd98f9 minimal changes to class nav-tabs styling 2018-09-27 13:34:20 -04:00
Mads Rasmussen 7c55baf727 better check for published variants 2018-09-27 15:24:58 +02:00
Mads Rasmussen be7acb904d Unpublish dialog scaffolding 2018-09-27 15:24:38 +02:00
Robert 442e0c93a5 Merge branch 'temp8' into temp8-p181 2018-09-27 15:17:56 +02:00
Mads Rasmussen e41b435d85 small style adjustment 2018-09-27 15:03:06 +02:00
Mads Rasmussen ea3085a08c add ellipsis to unpublish button label if a node has variants 2018-09-27 12:56:16 +02:00
Mads Rasmussen f529a47e0a show unpublish button if a node has a published variant 2018-09-27 12:55:21 +02:00
Sebastiaan Janssen 25aa74b4cd Merge pull request #2937 from umbraco/temp-view-compilation
Changes compilation batch mode to true uses Roslyn compiler for views
2018-09-27 12:01:00 +02:00
Sebastiaan Janssen 976d329292 Merge pull request #3005 from dalyUSN/temp-U4-9967
Preview update: smartphone sizes
2018-09-27 11:55:05 +02:00
Shannon Deminick 2db32ef347 Merge pull request #3052 from umbraco/temp8-IDocumentEntity-updates
IDocumentEntity updates
2018-09-27 19:41:53 +10:00
Shannon 83501ba1eb Gets tree node states showing correctly for variants. 2018-09-27 19:30:31 +10:00
Sebastiaan Janssen b079593efd Merge pull request #2083 from Eyescream/#U4-5139
U4-5139 Error uploading a file when filename contains comma
2018-09-27 11:17:27 +02:00
Stephan 8ea4c10ce7 Fix GetCurrentRequestIpAddress when there is no request 2018-09-27 10:52:02 +02:00
Stephan e6d5af5c3a Fix DisposableTimer messages 2018-09-27 10:51:29 +02:00
Sebastiaan Janssen 883da4eaf1 Merge pull request #2408 from abjerner/patch-35
"Select editor" items shouldn't have a max height
2018-09-26 23:28:12 +02:00
Marc Goodson c021cc50ce U4-10669 7.8. Show 301 url redirects on info tab too (#2452) 2018-09-26 23:16:54 +02:00
Sebastiaan Janssen 85291b562e Merge pull request #2533 from ronaldbarendse/U4-10586
Added property editor alias to PreValueDisplayResolver warning
2018-09-26 23:03:57 +02:00
Sebastiaan Janssen ca8c6248c1 Merge pull request #2561 from umbraco/temp-U4-10816
fixes U4-10816 Umbraco V7.7.1 - Media - File upload taking full path
2018-09-26 22:53:41 +02:00
Sebastiaan Janssen 6843fa72aa Merge pull request #3016 from readingdancer/patch-1
Updated the URL for the issue tracker.
2018-09-26 22:02:35 +02:00
Sebastiaan Janssen 258baad127 Removed uneccessary properties 2018-09-26 22:01:09 +02:00
Chris Houston 0e6376f4e5 Updated the URL for the issue tracker.
Also updated the version number to reflect the current version.
2018-09-26 21:58:05 +02:00
Dave Woestenborghs b0374695b1 Fixed udi's rendered in rte content (#2531) 2018-09-26 21:51:20 +02:00
Dave Woestenborghs 471bc7f116 U4-11458 - Fix multiple issues for angular logResource (#2719) 2018-09-26 20:48:54 +02:00
Sebastiaan Janssen 9c0aa5e099 Merge pull request #2072 from Adolfi/U4-6961
U4-6961 Prevent from deleting default used datatypes (e.g. Label)
2018-09-26 18:04:13 +02:00
Sebastiaan Janssen 3940176f23 Just a bit of code cleanup 2018-09-26 18:01:50 +02:00
Dennis Adolfi 5832387484 Added the DefaultLabelDataTypeIdas a non-deletable datatype. 2018-09-26 17:55:28 +02:00
Stephan ad8c309f3d Variant-contextual breadcrumb 2018-09-26 16:27:34 +02:00
Mads Rasmussen 400d4552de remove the action button on editors in the settings/developer tree 2018-09-26 15:12:53 +02:00
Sebastiaan Janssen a1224da5e1 Fixes #3036
Removes WebClient completely except for in an old legacy class that is not used for anything
any more (umbraco.cms.businesslogic.packager.Installer.Fetch).
2018-09-26 13:27:16 +02:00
Robert 230875f3cf Merge pull request #3030 from umbraco/temp8-rollback
Temp8 rollback
2018-09-26 12:38:48 +02:00
Mads Rasmussen 03d13b90bd fix up styling quirks after umb-actions update 2018-09-26 12:20:38 +02:00
Robert 8b9f64b2c8 Merge pull request #3021 from umbraco/temp8-send-to-publish
Temp8 send to publish
2018-09-26 11:01:27 +02:00
Sebastiaan Janssen 540e4f17d6 Fixes #3042
Code comes from v8, commit: 9bfe9e6bbf
2018-09-26 09:48:24 +02:00
Sebastiaan Janssen 2e92172ed4 Merge pull request #2984 from bjarnef/dev-v7-momentjs-locales
Load specific locales for moment.js
2018-09-25 23:28:00 +02:00
Sebastiaan Janssen f0fbc808f2 Merge pull request #3025 from WebCentrum/temp-#3024
#3024: Removed unnecessary queries in MultiNodeTreePickerPropertyConv…
2018-09-25 23:05:09 +02:00
Sebastiaan Janssen c19bc0b296 Merge pull request #3007 from callumbwhyte/updating-macro-templates
Updating macro templates for V8
2018-09-25 22:48:58 +02:00
Sebastiaan Janssen fe64baba96 Merge pull request #3009 from AnthonyCogworks/umbplfest-hackathon-remove-obsolete-phase4
umbPLfest hackathon removed obsolete - phase 4
2018-09-25 22:22:19 +02:00
Sebastiaan Janssen 1e07fb48cc Preventing infinite loop into this method 2018-09-25 22:21:00 +02:00
Sebastiaan Janssen d61240e1fd Merge branch 'umbplfest-hackathon-remove-obsolete-phase4' of https://github.com/AnthonyCogworks/Umbraco-CMS into AnthonyCogworks-umbplfest-hackathon-remove-obsolete-phase4 2018-09-25 22:18:16 +02:00
Sebastiaan Janssen a531907853 Merge pull request #3008 from AnthonyCogworks/umbplfest-hachathon-remove-obsolete-phase3
umbPLfest hackathon - Removed obsolete methods - phase 3
2018-09-25 22:13:37 +02:00
Sebastiaan Janssen 5384e64879 Merge pull request #3006 from AnthonyCogworks/umbplfest-hackathon-remove-obsolete-phase2
umbPLfest hackathon - Removed obsolete methods and properties.
2018-09-25 22:11:07 +02:00
Sebastiaan Janssen a3ba3e9e8e Making MemberIdRuleType private so we won't expose it to people trying to use it somehow 2018-09-25 22:09:45 +02:00
Sebastiaan Janssen 75ab692955 Merge branch 'umbplfest-hackathon-remove-obsolete-phase2' of https://github.com/AnthonyCogworks/Umbraco-CMS into AnthonyCogworks-umbplfest-hackathon-remove-obsolete-phase2 2018-09-25 22:06:04 +02:00
Sebastiaan Janssen 6a25408c48 Merge pull request #3003 from AnthonyCogworks/umbplfest-hackathon-remove-obsolete
umbPLfest hackathon - Remove obsolete methods
2018-09-25 22:04:50 +02:00
Sebastiaan Janssen 84b59b1193 Removed tests for FlattenList 2018-09-25 22:03:12 +02:00
Sebastiaan Janssen 197361721f Merge branch 'umbplfest-hackathon-remove-obsolete' of https://github.com/AnthonyCogworks/Umbraco-CMS into AnthonyCogworks-umbplfest-hackathon-remove-obsolete 2018-09-25 21:49:30 +02:00
Sebastiaan Janssen dd7a4d262e Merge pull request #3019 from ed-parry/v8hackathon-remove-pageid-references
Replaced references of PageID with the UmbracoContext calls. [v8hackathon]
2018-09-25 21:45:06 +02:00
Sebastiaan Janssen 6dfb0f0711 Removes some unused code which relate to the pageID too 2018-09-25 21:37:00 +02:00
Sebastiaan Janssen c3e85796d8 Merge branch 'v8hackathon-remove-pageid-references' of https://github.com/ed-parry/Umbraco-CMS into ed-parry-v8hackathon-remove-pageid-references 2018-09-25 20:59:43 +02:00
Sebastiaan Janssen c44a22d205 Merge pull request #3023 from UEDevs/temp-U4-11302
Fixes content getting deleted when saving an RTE before it's fully loaded
2018-09-25 20:55:48 +02:00
Mads Rasmussen 98991d4cd0 fix tree root height 2018-09-25 18:22:51 +02:00
Stephan 14bd8a0851 Cleanup some DTOs 2018-09-25 18:05:14 +02:00
Sebastiaan Janssen 0f6ce1eeba Merge pull request #2965 from poornimanayar/2964
Removed the anchor tag around notification
2018-09-25 17:44:53 +02:00
Sebastiaan Janssen cbeb0de748 Merge pull request #2947 from readingdancer/Issue-#2910
Fixing issue #2910 -  List view shows dimmed link for saved item
2018-09-25 17:37:25 +02:00
Sebastiaan Janssen e06fef2b6d Merge pull request #2901 from umbraco/abjerner-patch-1
Hide "Created Date" field when the content hasn't yet been created
2018-09-25 17:33:21 +02:00
Sebastiaan Janssen 524f53d03f Merge pull request #2899 from villian/temp-U4-8143
U4-8143 - MNTP (content picker) does not set $dirty
2018-09-25 17:19:12 +02:00
Sebastiaan Janssen d2d77d2732 Merge pull request #2895 from marcemarc/temp-u4-11561
Make the file extension visible when picking a file using the media picker
2018-09-25 17:07:48 +02:00
Sebastiaan Janssen 31bdc9d9a6 Merge pull request #2894 from KimHolzmann/dev-v7
U4-8824 Selection in media grid doesn't match when filter has value
2018-09-25 16:58:32 +02:00
Stephan c791050058 Denormalize variants for perfs 2018-09-25 16:55:00 +02:00
Sebastiaan Janssen 8c8e23f981 Merge pull request #2861 from raduorleanu/temp2-U4-11570
Found additional usages for (var web = new HttpClient()) and replaced…
2018-09-25 16:17:26 +02:00
Sebastiaan Janssen 35ec07f970 Some tiny code style updates 2018-09-25 16:15:37 +02:00
Sebastiaan Janssen 917269a260 Merge branch 'temp2-U4-11570' of https://github.com/raduorleanu/Umbraco-CMS into raduorleanu-temp2-U4-11570 2018-09-25 16:09:58 +02:00
Sebastiaan Janssen 7c437998ec Merge pull request #2842 from leekelleher/U4-11555
[v8] U4-11555 - Remove App_Browsers folder
2018-09-25 16:06:54 +02:00
Sebastiaan Janssen 85dbf5b0da Merge pull request #2777 from nathanwoulfe/temp8-11849
U4-11849 - tree not aligned with editor
2018-09-25 15:59:28 +02:00
Sebastiaan Janssen 00fc1b7c26 Merge branch 'dev-v7' into temp-view-compilation 2018-09-25 15:13:22 +02:00
Sebastiaan Janssen d14b0236a2 Merge branch 'temp8-11849' of https://github.com/nathanwoulfe/Umbraco-CMS into nathanwoulfe-temp8-11849
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/less/components/application/umb-language-picker.less
#	src/Umbraco.Web.UI.Client/src/less/tree.less
#	src/Umbraco.Web.UI.Client/src/views/components/tree/umb-tree.html
2018-09-25 15:03:02 +02:00
Mads Rasmussen 2038603389 fix track by on pagination component 2018-09-25 14:46:54 +02:00
Sebastiaan Janssen 53c218428f Merge pull request #3029 from kedde/dev-v7
fix #3020 - casing errors
2018-09-25 14:41:35 +02:00
Sebastiaan Janssen b9f5ddab06 Merge pull request #2866 from umbraco/temp-U4-11458-2
Fixes SQL generation for paged results for both UserRepository and AuditRepository
2018-09-25 14:27:27 +02:00
Mads Rasmussen 0219f1c465 add white background to media files 2018-09-25 14:20:48 +02:00
Umbraco HQ f9973f602c Fixes the belle build (requires newer node version) 2018-09-25 14:03:21 +02:00
Mads Rasmussen 55324aa736 Merge pull request #3031 from umbraco/temp8-ui-cleanup
Temp8 ui cleanup
2018-09-25 13:11:03 +02:00
Robert 44ef428c2b Merge pull request #3004 from umbraco/temp8-166-search-ui
fixes: Temp8 166 search ui
2018-09-25 13:06:02 +02:00
Mads Rasmussen 598590c929 update correct html file 2018-09-25 13:03:13 +02:00
Mads Rasmussen 2a784719ce add focus to search when you click icon 2018-09-25 12:53:00 +02:00
Mads Rasmussen 54cc6f4968 reset backdrop options on close 2018-09-25 12:41:20 +02:00
Stephan 3d19acb97e Variants in EntityRepository 2018-09-25 12:01:38 +02:00
Mads Rasmussen 904be442ae we don't need these 2018-09-25 11:36:15 +02:00
Mads Rasmussen 5fc7f7bce5 Merge branch 'temp8' into temp8-ui-cleanup 2018-09-25 11:16:49 +02:00
Stephan 5f805b0804 Extend NPoco fluent querying 2018-09-25 10:55:06 +02:00
Mads Rasmussen b2e843089b add strike-through text for deleted parts 2018-09-25 10:34:40 +02:00
Mads Rasmussen cfa4512f8c lazy load diff library in rollback dialog instead of loading it globally 2018-09-25 10:12:41 +02:00
Mads Rasmussen a47ae2e5c3 add diff library + generate diff 2018-09-24 20:10:05 +02:00
kedde 3d0d8d7430 fix mysql casing 2018-09-24 20:00:08 +02:00
Stephan f4e87b9949 Merge branch temp8 into temp8-IDocumentEntity-updates 2018-09-24 19:12:56 +02:00
Stephan 1511fd9b38 Merge branch temp8 into temp8-IDocumentEntity-updates 2018-09-24 19:12:45 +02:00
Pavel Budik 70a851dbf9 #3024: Removed unnecessary queries in MultiNodeTreePickerPropertyConverter 2018-09-24 14:23:00 +02:00
Mads Rasmussen ef1684ca36 wip add rollback scaffolding 2018-09-24 13:44:02 +02:00
Mads Rasmussen a00b510563 load angular dialog 2018-09-24 13:43:20 +02:00
Jim Osborn 3f79067e26 Fixes content getting deleted when saving an RTE before it's fully loaded. 2018-09-24 12:38:04 +01:00
Stephan a1ee099987 Log content app duplicate aliases instead of throwing 2018-09-24 09:34:25 +02:00
Shannon Deminick 24439086d9 Merge pull request #3012 from umbraco/temp8-p212
Implement content apps code config and manifest
2018-09-24 13:51:25 +10:00
Shannon 3189ce75ae throw exception if duplicate content app aliases are found 2018-09-24 13:50:42 +10:00
Ed Parry 4184288afc Removed test aimed at testing the httpcontext works (after removal of storing page ID there) 2018-09-23 14:07:04 +01:00
Ed Parry 22f25ee467 Replaced references of PageID with the UmbracoContext calls. 2018-09-23 13:39:51 +01:00
Mads Rasmussen c36f9f9d31 use ellipsis in template, partial view and partial view macros editor 2018-09-21 15:25:36 +02:00
Mads Rasmussen ce38ea7695 clean up 2018-09-21 15:23:40 +02:00
Mads Rasmussen 15a696b9f7 remove unused language key 2018-09-21 15:23:26 +02:00
Mads Rasmussen 7787dd8644 set ellipsis when we create content buttons 2018-09-21 15:23:04 +02:00
Mads Rasmussen c1d1dad999 add ellipsis functionality to button and button group 2018-09-21 15:19:31 +02:00
Mads Rasmussen 3706f08803 disable submit button if nothing is selected 2018-09-21 13:11:03 +02:00
Mads Rasmussen 5f0379093e fine tune filters 2018-09-21 13:10:36 +02:00
Mads Rasmussen af7261c6f6 hide the unmodified list if is empty 2018-09-21 13:10:12 +02:00
Mads Rasmussen c017a73471 add unmodified languages list + show currently edited language preselected at the top of the list 2018-09-21 11:59:40 +02:00
Mads Rasmussen dfb3cde1c9 add basic scaffolding for send to publish dialog + show modified variants 2018-09-21 11:09:41 +02:00
Stephan 681ef67653 Support ordering content apps 2018-09-21 09:42:36 +02:00
Stephan b1b1d60712 Pre-parse show rules in ManifestContentAppDefinition (perfs) 2018-09-21 09:01:37 +02:00
Stephan c24f8810d8 Fix tests 2018-09-21 08:56:49 +02:00
Stephan d6775aa79a Implement content apps code config and manifest 2018-09-21 08:09:53 +02:00
Stephan 7f45727936 Compile SqlSyntax alias regex - why not? 2018-09-21 08:06:42 +02:00
Shannon a39e77d1cf Gets culture publishing info in IDocumentEntitySlim and has the tree showing the correct publish state, but missing 'edited' flag since i think that requires yet-another-query 2018-09-21 15:49:37 +10:00
Shannon 19e4352243 Revert "making an attempt at a single SQL statement to get publish info for variants ... but failing, will revert"
This reverts commit c65480cf77.
2018-09-21 15:28:36 +10:00
Shannon c65480cf77 making an attempt at a single SQL statement to get publish info for variants ... but failing, will revert 2018-09-21 12:28:29 +10:00
Stephan 16eab3eb49 Cleanup DisposableTimer log messages 2018-09-20 17:26:10 +02:00
Shannon 448850b2d0 I may have figured out how to get publish information into the IDocumentEntitySlim 2018-09-21 01:21:52 +10:00
Shannon 539c882adb Merge branch 'temp8' into temp8-IDocumentEntity-updates 2018-09-21 01:06:21 +10:00
Shannon bd613ec971 more components, more 1 way binding, more perf in angular 2018-09-21 01:04:08 +10:00
Anthony c6f3b2fe7c umbPLfest hackathon removed obsolete - phase 4 2018-09-20 16:02:49 +01:00
Shannon Deminick 1cf5c6c89d Merge pull request #2995 from umbraco/temp8-p188
Implement listviews variants sorting (p188)
2018-09-21 00:30:41 +10:00
Shannon 665055f130 1 way bindings where needed 2018-09-21 00:21:03 +10:00
Anthony 85d26ab47d umbPLfest hackathon - Removed obsolete methods - phase 3 2018-09-20 15:18:12 +01:00
Shannon 819e1235f7 Reduces digest cycle of list views, converts umb-layout-selector to a component 2018-09-21 00:04:26 +10:00
Callum Whyte 35227a8d58 Cleanup of partial view macro templates for consistency 2018-09-20 14:00:01 +01:00
Anthony 8cd0bc5f50 umbPLfest hackathon - Removed obsolete methods and properties. 2018-09-20 13:56:02 +01:00
Mads Rasmussen 2ef524b6e3 remove old search controller 2018-09-20 14:17:14 +02:00
Paul Daly 1050e9d0a1 Preview update: smartphone sizes
The current most used screen size on a smarthphone is 360x640 according to Globalstats Statcounter. With this in mind I have adjusted the sizes of the preview frames for both portrait and landscape. Minor change but something that has been on my mind for a while.
2018-09-20 13:15:22 +01:00
Anthony 1ab324ebb9 umbPLfest hackathon - Remove obsolete methods 2018-09-20 13:14:16 +01:00
Mads Rasmussen 029707a34b add button to quickly clear the search query 2018-09-20 14:02:50 +02:00
Mads Rasmussen ca341d2732 remove unused code 2018-09-20 13:03:17 +02:00
Callum Whyte 4976ffc106 Updating legacy macro examples with latest V8 equivalents 2018-09-20 10:45:45 +01:00
Mads Rasmussen a8ceaf53f7 add code comments 2018-09-20 11:40:07 +02:00
Mads Rasmussen d9731728de remove console log 2018-09-20 11:28:14 +02:00
Stephan 4b31a98812 Fix test broken by e771e78 2018-09-20 11:27:44 +02:00
Mads Rasmussen 74c4e68efc close search when item is clicked 2018-09-20 11:27:39 +02:00
Sebastiaan Janssen 8bf8e0a741 Updates CDF 2018-09-20 08:48:46 +02:00
Stephan 8649062500 Merge pull request #2987 from umbraco/temp8-decouple-serilog-from-httpreqid
Decouple Serilog from HTTP Request ID in UmbracoModule Begin & End logs
2018-09-20 08:36:06 +02:00
Shannon feeb1c56cf wip for IDocumentEntitySlim changes 2018-09-20 14:58:15 +10:00
Stephan e6e3716dda Detect SqlServer 2012+ 2018-09-19 18:51:27 +02:00
Stephan 97b726ba20 Fix listviews sorting 2018-09-19 17:50:43 +02:00
Mads Rasmussen 6a630e413f use correct subtitle 2018-09-19 16:04:09 +02:00
Mads Rasmussen b2fa7ea475 close on outside click and escape 2018-09-19 16:01:12 +02:00
Mads Rasmussen ff6509be34 use our own auto focus - it works better 2018-09-19 15:17:41 +02:00
Mads Rasmussen 402f724396 make sure the close the overlay when the component gets destroyed. 2018-09-19 15:17:22 +02:00
Mads Rasmussen bf3234c8b2 register search in appState + launch when click search icon 2018-09-19 15:13:55 +02:00
Mads Rasmussen 5b4c273133 Add search icon + focus indention 2018-09-19 14:50:29 +02:00
Mads Rasmussen ca5e9940d5 add styling for search results + basic wire up of search service 2018-09-19 14:24:21 +02:00
Mads Rasmussen 34ca7a420a add basic UI scaffolding for search 2018-09-19 11:31:41 +02:00
Shannon 479f38b141 attempting to fix sorting due to aliased column names 2018-09-19 16:24:31 +10:00
Shannon 82b2778a59 Merge branch 'temp8' into temp8-p188 2018-09-19 16:16:03 +10:00
Stephan a0821cbc95 Refactor ordering in services to support listviews variants sorting 2018-09-18 11:53:33 +02:00
Sebastiaan Janssen fd0e2f5a9c Merge pull request #2992 from dampee/patch-3
old issue tracker reference
2018-09-17 21:30:10 +02:00
Damiaan 6ee235b640 old issue tracker reference
Since the github issue tracker is used, we should at least mention that.
2018-09-17 20:42:22 +02:00
Sebastiaan Janssen 2921413476 Merge pull request #2941 from AliSheikhTaheri/temp-2939
temp-2939 - Removed hardcoded number of rows from textarea with the d…
2018-09-17 20:18:17 +02:00
Stephan 95361da1f8 Cleanup/fix content variants mapping 2018-09-17 13:19:29 +02:00
Stephan fb246de5fc Cleanup/fix listviews configuration (prevalues) 2018-09-17 13:07:31 +02:00
Stephan a979e8023e Improve NPoco extensions 2018-09-17 13:06:20 +02:00
Stephan e412fd8802 Ensure data types get a proper default configuration when created 2018-09-17 12:54:22 +02:00
Stephan 4ac188f564 Forgot to create languages lock object on install 2018-09-17 12:36:45 +02:00
Shannon Deminick 1f27f6731b Merge pull request #2969 from umbraco/temp8-p103
Remove mandatory constraint on default language
2018-09-17 14:35:44 +10:00
Warren Buckley 8bad44782b Move logic from the HttpRequestIdEnricher into our own class so its not coupled to Serilog when attempting to get ReqId in UmbracoModule start & end log requests 2018-09-14 14:44:00 +01:00
Mads Rasmussen daa8b90372 Merge pull request #2982 from umbraco/temp8-get-preview-working
v8 - Gets previewing working with variants
2018-09-14 13:41:18 +02:00
Mads Rasmussen 82fbdff993 Merge branch 'temp8' into temp8-ui-cleanup 2018-09-14 12:35:58 +02:00
Mads Rasmussen e90ac06d82 Merge pull request #2968 from umbraco/temp8-203
fixes 205: Only show preview/publish/save etc buttons on the "Content" content app.
2018-09-14 12:28:13 +02:00
Mads Rasmussen c9601365d6 update list view empty state 2018-09-14 11:56:28 +02:00
Warren Buckley ab250b0549 Merge branch 'temp8-203' of https://github.com/umbraco/Umbraco-CMS into temp8-203 2018-09-14 10:54:40 +01:00
Warren Buckley 41fd9afab5 Update API Scaffold call to remove the List View app, now the alias has changed 2018-09-14 10:53:59 +01:00
Warren Buckley cd151ac19a Update MediaApp resolver with new aliases 2018-09-14 10:53:12 +01:00
Mads Rasmussen 2ef33090a9 update alias for node with list view scaffolds 2018-09-14 11:52:22 +02:00
Poornima Nayar 7f4280c67f added checks for whitespace 2018-09-14 10:06:32 +01:00
Mads Rasmussen f27bded4e8 fix audit trail 2018-09-14 10:59:25 +02:00
Mads Rasmussen fe60cdda5c fix app aliases client side 2018-09-14 10:46:22 +02:00
Warren Buckley cdf9260f02 Update the hard coded content app aliases until this gets moved into a package.manifest or similar?! 2018-09-14 09:20:05 +01:00
Mads Rasmussen d3ba17484d Merge branch 'temp8' into temp8-ui-cleanup 2018-09-14 08:00:25 +02:00
Shannon 187028146e Merge branch 'temp8' into temp8-203 2018-09-14 12:29:50 +10:00
Shannon Deminick ae9805f082 Merge pull request #2970 from umbraco/temp8-206-listview-variant-states
V8 Listview child items display variant states
2018-09-14 11:53:51 +10:00
Shannon b62477ec3b null check 2018-09-14 11:52:59 +10:00
Shannon 458b9dac4d Ensure list view is updated when cultures are changed 2018-09-14 11:47:29 +10:00
Shannon ec71814ec2 Fixes up nullable State, fixes up tracking global query strings in case they are removed by other routes 2018-09-14 11:31:43 +10:00
Shannon 8c90b7fa28 Cleans up code, fixes tests, adds comments 2018-09-14 10:08:09 +10:00
Shannon 5009dfa0d7 Merge remote-tracking branch 'origin/temp8' into temp8-206-listview-variant-states 2018-09-14 09:15:51 +10:00
Shannon 62c0719712 Merge remote-tracking branch 'origin/temp8' into temp8-get-preview-working 2018-09-14 09:14:59 +10:00
Bjarne Fyrstenborg e9f8fb8d1f Remove console.log 2018-09-14 01:10:17 +02:00
Bjarne Fyrstenborg 28ae25c166 Move logic to load moment.js locales to public function in userservice 2018-09-14 00:57:19 +02:00
Ali.Taheri 1acc61ede8 temp-2939 - corrected the data type from boolean to int for rich text editor. 2018-09-13 16:24:50 +01:00
Shannon 59a5f50b5f now you can preview specific variants 2018-09-14 00:44:36 +10:00
Mads Rasmussen e93f822528 Merge branch 'temp8' into temp8-ui-cleanup 2018-09-13 16:43:24 +02:00
Shannon e771e781dd finally it actually previews 2018-09-14 00:14:03 +10:00
Mads Rasmussen 90a425da5f add background-color to media folders 2018-09-13 15:06:58 +02:00
Stephan 25c87d76b8 Fix merge 2018-09-13 14:59:45 +02:00
Mads Rasmussen 75c73a181a better alignment of alias 2018-09-13 14:50:23 +02:00
Mads Rasmussen f0c487d9c4 fix alignment of group sort order 2018-09-13 14:41:10 +02:00
Shannon Deminick 53057d6e20 Merge pull request #2962 from umbraco/temp8-204-ListView-Variant-PublishedStates
204 V8 - ListView Variants - Get Published State & UpdateDate for Variant
2018-09-13 22:28:01 +10:00
Warren Buckley 4782f03334 ping pong with shan's reviews - checks for doctype/contenttype is variant or not 2018-09-13 13:25:54 +01:00
Mads Rasmussen 598eb75e8c add active state to tree language dropdown 2018-09-13 14:23:42 +02:00
Stephan 685e3028a6 Merge pull request #2935 from umbraco/temp8-MOAR-LOGGING
MOAR Logging for V8
2018-09-13 14:11:57 +02:00
Stephan 33af498f88 Merge branch origin/temp8-p103 into temp8-11502 2018-09-13 14:11:17 +02:00
Warren Buckley 082d6e6792 Rather than throw null ex's if culture not set - return the underlying source property (As used for both variant & invariant mapping in list views) 2018-09-13 13:05:36 +01:00
Warren Buckley c41bdccd5a Merge branch 'temp8' into temp8-204-ListView-Variant-PublishedStates
# Conflicts:
#	src/Umbraco.Web/Models/Mapping/ContentMapperProfile.cs
2018-09-13 12:13:17 +01:00
Warren Buckley 772c0b7b6a Merge branch 'temp8' into temp8-204-ListView-Variant-PublishedStates
# Conflicts:
#	src/Umbraco.Web/Models/Mapping/ContentMapperProfile.cs
2018-09-13 12:10:50 +01:00
Warren Buckley 4b715d2081 Null checks for culture added and moved date to var to avoid getting item twice 2018-09-13 12:07:33 +01:00
Sebastiaan Janssen 31ed4e0574 Merge pull request #2973 from prjseal/patch-1
update the release notes url
2018-09-13 12:01:01 +02:00
Poornima Nayar a0ae39a147 Reworked the notifications banner to use ng-switch to show the anchor tag when there is a notification url. 2018-09-13 10:27:48 +01:00
Shannon Deminick bf7273e42e Merge pull request #2960 from umbraco/temp8-listview-variant-defaultname
V8 Listview Variant Default Nodename fallback
2018-09-13 15:14:23 +10:00
Warren Buckley 46ff45c2f0 Makes State a ContentSavedState enum nullable - otherwise media items was getting a default enum of not created 2018-09-12 15:34:48 +01:00
Mads Rasmussen b06ba12e42 fix js error on invariant nodes 2018-09-12 15:15:11 +02:00
Mads Rasmussen 0c135ea3e2 Add state to list view 2018-09-12 14:52:29 +02:00
Paul Seal 9e3cf00cc0 update the release notes url 2018-09-12 13:32:10 +01:00
Warren Buckley 551e8120c9 Adds state property to ContentItemBase (Not sure if this will blow things up or if I need to use a diff model for ListView children now)
Adds/copies the same logic from ContentSavedStateResolver.cs
2018-09-12 12:08:51 +01:00
Stephan a5aa38c7ca Merge branch temp8 into temp8-11502 2018-09-12 12:01:49 +02:00
Stephan 380e2aff2e Merge branch temp8 into temp8-p103 2018-09-12 11:59:21 +02:00
Stephan 4cbd0d9178 Remove mandatory constraint on default language 2018-09-12 11:47:04 +02:00
Poornima Nayar fbbc89b477 Removed the anchor tag around notification 2018-09-11 16:29:21 +01:00
Mads Rasmussen 9f65102916 use border color on node name input hover 2018-09-11 15:36:24 +02:00
Mads Rasmussen 62043f7cf9 only allow changing the node name if the active content app is "Content". 2018-09-11 15:33:26 +02:00
Mads Rasmussen e8322edc84 maybe test is not needed 2018-09-11 14:47:56 +02:00
Mads Rasmussen e27a982bf6 Add empty state if a node has no properties 2018-09-11 14:43:07 +02:00
Mads Rasmussen ad1f11f1da only show save/publish/preview on "Content" content app 2018-09-11 14:17:55 +02:00
Warren Buckley d39bb96056 Update ContentMapper to display variant information for bool Published and UpdateDate for Variant ListView 2018-09-11 12:33:32 +01:00
Warren Buckley af3e5f2db0 Merge pull request #2954 from umbraco/temp8-200
fixes 200: Stay on the same content app when changing language
2018-09-11 10:03:53 +01:00
Warren Buckley ed94ea485d Gets the same HttpRequestId from the Enricher to use in the message template for text log files for begin & end request verbose logs 2018-09-11 09:04:29 +01:00
Warren Buckley 4b47943e05 Remove quotes within logging message templates - as when doing querying with logs makes these logs impossible to find 2018-09-11 08:44:58 +01:00
Shannon 647eac2d9b Merge remote-tracking branch 'origin/temp8' into temp8-get-preview-working 2018-09-11 13:57:17 +10:00
Shannon 003e83f883 wip on preview 2018-09-11 08:54:04 +10:00
Mads Rasmussen cc7ae2b930 split up editor-header into editor-header and editor-content-header 2018-09-10 20:23:15 +02:00
Warren Buckley e86b7a5982 Updates name of variant model mappign in list views - to use same logic as the content tree if a variant has not been set - we fallabck to the base/master lanaguage of the node name 2018-09-10 16:20:23 +01:00
Stephan 4ef2d27da2 Fix various build issues 2018-09-10 16:23:27 +02:00
Mads Rasmussen 8e713e2350 clean up dependecies 2018-09-10 15:41:54 +02:00
Mads Rasmussen 3001c656d1 remove unused code 2018-09-10 15:39:04 +02:00
Mads Rasmussen 3358c70312 Fixes: Stay on the same content app when changing language 2018-09-10 15:32:12 +02:00
Mads Rasmussen b1aef27388 use cculture in list view 2018-09-10 14:11:32 +02:00
Shannon Deminick fe6b2bb43f Merge pull request #2944 from umbraco/temp8-18-ListViewVariants
List View - Updates Node Name based on selected Variant
2018-09-10 18:31:18 +10:00
Warren Buckley 94a6639bc7 Remove unecessary string null check - the culture ext in mapping code will deal with this 2018-09-10 09:29:50 +01:00
Warren Buckley 2fcabdee0a Use ResolutionContext as opposed to an inline AfterMap function with a CustomResolver class 2018-09-10 09:09:24 +01:00
Shannon 59f9354ff4 Merge remote-tracking branch 'origin/temp8' into temp8-get-preview-working 2018-09-10 15:04:37 +10:00
Shannon Deminick b217c6f2c7 Merge pull request #2942 from umbraco/temp8-134
fixes: Prevent the same language from being open in split view
2018-09-10 12:40:58 +10:00
Shannon 09aecddf6f Merge remote-tracking branch 'origin/temp8' into temp8 2018-09-10 11:34:50 +10:00
Shannon e6ef924b1b init commit to getting preview working 2018-09-10 11:34:31 +10:00
Shannon 47347ed966 updates wording 2018-09-10 11:32:49 +10:00
Shannon 2f74720c38 updates wording 2018-09-10 11:12:46 +10:00
Sebastiaan Janssen 91ebc649d4 Re-apply missing changes from #2446 2018-09-09 16:35:48 +02:00
Chris Houston b2133aace1 Fixing issue #2910 2018-09-08 23:28:44 -04:00
Warren Buckley d61e71aae6 Updates ContentResouce and the ListView Controller to pass along the CultureName 2018-09-07 15:09:51 +01:00
Warren Buckley f368b493de Updates Content Controller - that uses the Mapping AfterMap to allow us to update the Name of the node based on the culturename passed into the WebAPI 2018-09-07 15:02:44 +01:00
Sebastiaan Janssen 32591eec36 Merge branch 'shoecake-U4-5572' into dev-v7 2018-09-07 15:20:36 +02:00
Sebastiaan Janssen e05a55c532 Fixes incorrectly named method and removes extraneous spaces 2018-09-07 15:20:29 +02:00
Sebastiaan Janssen f3d96ad45e Merge branch 'U4-5572' of https://github.com/shoecake/Umbraco-CMS into shoecake-U4-5572 2018-09-07 15:15:52 +02:00
Poornima Nayar 010a2e012e Clean up multiple textstring(repeatable textstring) view - (#2934)
* Clean up multiple textstring(repeatable textstring) view - Introduced some styling rules to make the view look cleaner

* Removes unnecessary additional included files from csproj
2018-09-07 14:54:20 +02:00
Mads Rasmussen 9d6c287028 Merge branch 'temp8' into temp8-ui-cleanup 2018-09-07 14:20:31 +02:00
Mads Rasmussen 006bec25c9 fixes: Prevent the same language from being open in split view 2018-09-07 13:28:10 +02:00
Ali.Taheri da88cc2d04 temp-2939 - Removed hardcoded number of rows from textarea with the default value of 10. 2018-09-07 11:04:35 +01:00
Stephan 69e8b11a79 Fix tests 2018-09-07 11:43:57 +02:00
Shannon 03f204c22f deletes old webform files not referenced in the project 2018-09-07 17:01:52 +10:00
Shannon 5e8245c5b4 package-lock update 2018-09-07 16:12:43 +10:00
Shannon 8ff671a7c6 Changes compilation batch mode to true uses Roslyn compiler for views 2018-09-07 13:10:55 +10:00
Warren Buckley 4184b277aa Reduce the number of different properties, for the timing based logs for the duration in milliseconds to be consistently called 'Duration' 2018-09-06 20:38:03 +01:00
Warren Buckley a825dd1b92 Configures the default logging pipeline to use the new enrichers 2018-09-06 20:35:02 +01:00
Warren Buckley d27b4cce09 Adds a few most useful enrichers from the Serilog.Classic.Web project (we dont want all thex extra bloat such as handlers etc) 2018-09-06 20:20:24 +01:00
Warren Buckley cd20348be5 Move Log4NetLevelMapper enricher into seperate folder - as we plan to add more 2018-09-06 20:19:32 +01:00
Warren Buckley 64e148f994 Update UmbracoModule to only log the end of the request & its time - not sure how useful a log for start & end request IMO (Stephan may think otherwise) 2018-09-06 20:18:33 +01:00
Mads Rasmussen 31f84ff130 Merge branch 'temp8' into temp8-ui-cleanup 2018-09-06 16:32:47 +02:00
Stephan 68d083249b Fix merge 2018-09-06 16:09:31 +02:00
Stephan 7a1744a38b Merge branch temp8 into temp8-11502 2018-09-06 16:07:32 +02:00
Stephan 04c654c290 Fix merges 2018-09-06 15:59:10 +02:00
Mads Rasmussen 33df7647d2 Merge pull request #2900 from umbraco/temp8-validation-quirks
v8 validation quirks
2018-09-06 15:00:05 +02:00
Mads Rasmussen 0d0179ecee allow uncheck of active variants in save/publish dialogs - often in split views you don't want to publish both languages 2018-09-06 14:45:54 +02:00
Mads Rasmussen dfeedf9819 removed auto complete from header name field 2018-09-06 14:44:50 +02:00
Shannon ad85f1b3dd resets dirty state for successfully saved variants when validation fails for other ones, updates the dialogs to show the notifications when filtered. 2018-09-06 22:22:08 +10:00
Stephan d9d51584ea Fix merge 2018-09-06 14:10:26 +02:00
Stephan bbd8315176 Merge remote-tracking branch 'origin/temp8' into temp8-nuget-pkgs 2018-09-06 13:57:34 +02:00
Stephan 612c38654d Merge branch origin/dev-v7 into temp8 2018-09-06 13:07:09 +02:00
Shannon 729177ffef Fixes issue with not showing validation errors in the dialogs when creating content and saving/publishing when the names haven't been filled out, adds unit tests to support. 2018-09-06 20:33:32 +10:00
Sebastiaan Janssen 5986899b5e Fixes #U4-10383 Feature request - Ignore casing when getting member email and username from IPublishedContent 2018-09-06 11:07:04 +02:00
Shannon 20c0185ddf Adds unit tests for content controller 2018-09-06 17:37:47 +10:00
Shannon bf666fc6d3 fixes saving invariant content 2018-09-06 15:21:02 +10:00
Mads Rasmussen 00491a9963 Fallback to main language 2018-09-05 15:24:34 +02:00
Mads Rasmussen 91d12635cd always create new nodes based on the language set in the tree 2018-09-05 15:24:03 +02:00
Mads Rasmussen 35b798f16f fix styling for variant state in publish and save dialog 2018-09-05 11:15:50 +02:00
Stephan e8e2a21e9f Handle binding redirects 2018-09-04 19:44:24 +02:00
Warren Buckley 2ae9405fcf Merge pull request #2906 from umbraco/temp8-190
fixes: 190 - Re-enable tours
2018-09-04 13:42:29 +01:00
Warren e0c0bc7da4 Update getting started tour template tour - to use Model.Name as opposed to older Model.Content.Name 2018-09-04 13:29:42 +01:00
Anders Bjerner c8664a886a ID property is now hidden as well when creating new content 2018-09-04 14:27:58 +02:00
Stephan 7611f89642 Update nuspec and dependencies 2018-09-04 13:42:04 +02:00
Mads Rasmussen e221a1af36 fix the rest of the create media tour 2018-09-04 13:35:31 +02:00
Mads Rasmussen 0286984c5b prefix directive 2018-09-04 13:19:34 +02:00
Warren 306c12de69 Merge branch 'temp8-190' of https://github.com/umbraco/Umbraco-CMS into temp8-190 2018-09-04 11:35:26 +01:00
Warren 0ea2682661 Adds in new util directive isolate-form used for nested forms that you do not want dirty to propogate upwards to parent forms 2018-09-04 11:34:10 +01:00
Mads Rasmussen 54255b41a0 make special zIndex's for the tour 2018-09-04 11:17:27 +02:00
Stephan b1a59569a3 Cleanup readmes 2018-09-04 11:12:47 +02:00
Mads Rasmussen 5b3b160f3b Make header styling consistent 2018-09-04 10:27:53 +02:00
Stephan ee5a3fc99a Cleanup UmbracoCms.nuspec 2018-09-04 10:18:33 +02:00
Mads Rasmussen b8f141982b fix create doc type tour 2018-09-04 09:42:34 +02:00
Mads Rasmussen 3bc7f0a124 wait for animations to be done 2018-09-04 09:41:26 +02:00
Sebastiaan Janssen 5dd04d9a3e Merge pull request #2902 from umbraco/abjerner-patch-2
The name field is not automatically in focus when creating a new data type folder
2018-09-04 09:38:15 +02:00
Stephan a1a06609b9 Version 8.0.0-alpha.50 with 3 NuGet packages 2018-09-04 09:36:58 +02:00
Stephan f603cb3b05 Recent Node upgrade touches package[-lock].json 2018-09-04 09:36:26 +02:00
Stephan ffc7d5ba04 Fix build script 2018-09-04 09:35:39 +02:00
Shannon 3f4e6dfce8 Gets success notifications showing in the save/publish dialogs 2018-09-04 16:16:11 +10:00
Anders Bjerner 6ff2f1eabb The name field is not automatically in focus when creating a new data type folder 2018-09-03 18:06:15 +02:00
Anders Bjerner cbdfb6f25f Hide "Created Date" field when content hasn't yet been created 2018-09-03 17:32:39 +02:00
Stephan 1fb7bcb980 Cleanup nuspecs 2018-09-03 17:26:07 +02:00
Stephan 34fb19ac76 Merge remote-tracking branch 'origin/temp8' into temp8-nuget-pkgs 2018-09-03 17:24:58 +02:00
Shannon f9657ae04d Gets mixed validation and success messages returning when persisting multiple variants at once. 2018-09-04 01:13:26 +10:00
villian 1437af62b3 fix U4-8143 2018-09-03 17:39:17 +03:00
Mads Rasmussen b72fc95d1f fix up getting started and create content tours 2018-09-03 16:02:39 +02:00
Shannon 124e1691fc Fixes how culture validation is reported and fixes the problem of validating required langs after we've changed the publish state. 2018-09-03 22:46:24 +10:00
Sebastiaan Janssen ac9c6305e7 Update CONTRIBUTING_DETAILED.md 2018-09-03 12:12:27 +02:00
Sebastiaan Janssen b2b9b53af1 Whoops, fixes previous commit for #2896 2018-09-02 10:03:51 +02:00
Sebastiaan Janssen 2dd5010d2c Seems there is no need to hide the .small class, fixes #2896 2018-09-02 09:57:45 +02:00
Marc Goodson c6a31b30f1 position relative to stack the item above to avoid opacity issue 2018-09-01 19:27:55 +01:00
Kim Holzmann ef3abea005 U4-8824
Selection in media grid doesn't match when filter has value.
2018-09-01 12:57:32 +02:00
Marc Goodson c95cc14703 Make the file extension for files visible when picking a file using the media picker 2018-09-01 11:57:05 +01:00
Sebastiaan Janssen 83ce9050e8 Fix U4-10029 Umbraco.ReplaceLineBreaksForHtml should return an IHtmlString #2881 2018-08-31 21:07:56 +02:00
Sebastiaan Janssen d8cd2c109f Merge branch 'feature/remove-logout-aspx' of https://github.com/imranhaidercogworks/Umbraco-CMS into imranhaidercogworks-feature/remove-logout-aspx
# Conflicts:
#	src/Umbraco.Web.UI/umbraco_client/Application/UmbracoApplicationActions.js
2018-08-31 21:07:32 +02:00
Sebastiaan Janssen bfd12b3a7b Merge pull request #2888 from mvanhelmont/#2886
Media Picker should not show deleted items #2886
2018-08-31 20:43:47 +02:00
Sebastiaan Janssen 396b499e81 Merge pull request #2885 from adhaliwal34/comment-change
Fix comment regarding the length of the salt bytes array
2018-08-31 20:27:32 +02:00
Sebastiaan Janssen 61ce1bcdca Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2018-08-31 20:21:58 +02:00
Sebastiaan Janssen ec1d2a6433 Merge branch 'mvanhelmont-U4-11589' into dev-v7 2018-08-31 20:21:05 +02:00
Sebastiaan Janssen 9ea9c5d6b7 Don't repeat the code to check for and create a template 2018-08-31 20:20:37 +02:00
Sebastiaan Janssen fee9bce110 Merge branch 'U4-11589' of https://github.com/mvanhelmont/Umbraco-CMS into mvanhelmont-U4-11589 2018-08-31 20:11:50 +02:00
Sebastiaan Janssen 222720aea4 Merge pull request #2884 from AliSheikhTaheri/temp-u4-8310
Temp u4 8310 - Fixed can't rename of a document type alias by changing its casing
2018-08-31 20:06:07 +02:00
Sebastiaan Janssen 9e3213147f Merge pull request #2883 from mvanhelmont/U4-11145
U4-11145 Email validation is too strict on password reset screen
2018-08-31 19:50:54 +02:00
Sebastiaan Janssen 075fcdc155 Merge pull request #2881 from skttl/patch-10
U4-10029 Umbraco.ReplaceLineBreaksForHtml should return an IHtmlString
2018-08-31 19:42:57 +02:00
Stephan c42f3a1158 Merge branch temp8 into temp8-11502 2018-08-31 08:43:11 +02:00
Marcel van Helmont c29357b845 inside ensureWithinStartNode also check if node is trashed otherwise go to startnode. 2018-08-30 21:06:29 +02:00
Mads Rasmussen f450abb5c2 wip clean up doc type editor 2018-08-30 19:42:30 +02:00
Mads Rasmussen 748fc3310b add border radius to login box 2018-08-30 19:41:53 +02:00
Stephan 4a32eebb0b Cleanup logging 2018-08-30 19:08:55 +02:00
Stephan 8b4e2c5bcb Fix tests, a culture is not edited if not available 2018-08-30 13:06:41 +02:00
Stephan 7ab393f2b2 Fix TestHelper for properties comparisons 2018-08-30 12:51:55 +02:00
Shannon 506d57ab07 Allows the overlay view to be created with a custom parent scope so that broadcast/emit work correctly for the code within the overlay to be a 'child' of the editor that invoked it. 2018-08-30 20:21:25 +10:00
Stephan 52c6377366 Fix failing test due to 66a00546d 2018-08-30 12:08:01 +02:00
AJ_Dhaliwal cc680f2cfb Fix comment regarding the length of the salt bytes array 2018-08-30 18:03:44 +08:00
Stephan 069c42ef36 Ensure all ILogger impl support message templates 2018-08-30 10:48:27 +02:00
Sebastiaan Janssen 58dab23d04 Fix links 2018-08-30 10:00:29 +02:00
Sebastiaan Janssen 90a47cd042 Move from docs to github folder 2018-08-30 09:58:29 +02:00
Sebastiaan Janssen fb6079d4e2 Add issue templates and updated PR template 2018-08-30 09:57:17 +02:00
Shannon f359648215 fixes U4-11463 MembershipHelper is not working with basic auth on the initial request 2018-08-30 09:57:16 +02:00
Shannon 53ae01c123 small fix after refactor 2018-08-30 16:21:53 +10:00
Shannon c615f7bd9f small fix after refactor 2018-08-30 16:15:42 +10:00
Shannon 2bb2f7bbbd componentizes umb-variant-content and umb-variant-content-editors, moves the logic dealing with the editors array to a component and out of the content controller, ensures that the editor array is updated correctly so that all directives are re-bound 2018-08-30 16:12:42 +10:00
Marcel van Helmont 74ca315197 added val-email to corrrectly validate emails supporting new TLD 2018-08-29 15:38:12 +02:00
Ali.Taheri 541e546f7b u4-8310 - Added error message to the xml file. 2018-08-29 14:35:20 +01:00
Ali.Taheri 26a8d680d4 u4-8310 - Fixed rename content type with the same alias but with different casing. 2018-08-29 14:28:33 +01:00
Mads Rasmussen f2e85beb49 polish 2018-08-29 13:23:07 +02:00
Mads Rasmussen cb102d761a align dashboard tabs 2018-08-29 13:09:17 +02:00
Mads Rasmussen fb2914ca09 remove flashing overlay from examine dashboard 2018-08-29 13:08:08 +02:00
RaduOrleanu 412069414b U4-11570 - performed instantiation locally in classes where WebClient or HttpClient is used only in 1 method and added null check 2018-08-29 12:39:06 +02:00
Mads Rasmussen 9b8a30e73b align language picker with editor header 2018-08-29 12:23:38 +02:00
Mads Rasmussen eff425ff46 more background fixes 2018-08-29 12:23:04 +02:00
Mads Rasmussen a85ea0a932 add boxes to dashboards 2018-08-29 11:45:31 +02:00
Stephan 451b58ee50 Fix for Serilog PR 2018-08-29 11:41:04 +02:00
Stephan 3e183a057e Fix for Serilog PR 2018-08-29 11:37:36 +02:00
Mads Rasmussen 15b0d01517 remove inline style 2018-08-29 10:30:47 +02:00
Mads Rasmussen 2f504383d0 add margin to badge 2018-08-29 10:30:24 +02:00
Mads Rasmussen ca98409379 add white box behind create user confirm 2018-08-29 10:12:33 +02:00
Mads Rasmussen 40e1d2445c Merge branch 'temp8' into temp8-ui-cleanup 2018-08-29 09:54:20 +02:00
Stephan 9e07bf0948 Improve ILogger documentation 2018-08-29 09:12:14 +02:00
Shannon 0fc8da4642 Fixes issue with exception swallowing and tree syncing in the content which made the save dialog not close. 2018-08-29 16:05:33 +10:00
Shannon 016ed4a49d fixing some validation issues 2018-08-29 15:24:50 +10:00
Shannon c85128dd11 Fixes redirect when creating new content for a specific culture 2018-08-29 13:30:48 +10:00
Shannon aed9ad3a66 Merge remote-tracking branch 'origin/temp8' into temp8-nuget-pkgs
# Conflicts:
#	build/NuSpecs/UmbracoCms.nuspec
2018-08-29 12:24:38 +10:00
Shannon b3442be768 removes manual copying of sqlce files, this is taken care of with the Umbraco.sqlce package 2018-08-29 12:16:52 +10:00
Shannon fe508c5a0f Removes MB files that are already included in the MB package 2018-08-29 11:57:31 +10:00
Shannon 09ee58ddad Removes more refs to umbraco_client, fixes up nuspecs 2018-08-29 10:49:55 +10:00
Marcel van Helmont ec1a3f0fe8 make sure alias is camelCase format 2018-08-28 22:44:53 +02:00
Marcel van Helmont 8ce200bd16 added toggles to allow creating templates for collection and collection item 2018-08-28 21:32:18 +02:00
Søren Kottal a6fd377f31 Update UmbracoHelper.cs 2018-08-28 20:21:49 +02:00
Søren Kottal ba22ac4e83 Update HtmlStringUtilities.cs 2018-08-28 20:18:12 +02:00
Stephan c743ac760d Update ModelsBuilder to -alpha.22 2018-08-28 20:02:25 +02:00
Stephan f791198817 Version 8.0.0-alpha.49 for ModelsBuilder 2018-08-28 18:45:37 +02:00
Shannon 46c193c9e2 updates nuspec 2018-08-29 01:45:05 +10:00
Shannon 029eff1f8a Some refactoring to decouple web based assemblies from Umbraco.Core and move whatever we can to Umbraco.Web where web based assemblies are used. Decouples System.Drawing entirely from Umbraco.Core and removes the Active Directory dependency from Umbraco.core. 2018-08-29 01:15:46 +10:00
Stephan eaacdc0514 Deal with fixmes in IContent IsCultureSomething 2018-08-28 15:11:13 +02:00
Shannon ab6758e7bf Merge branch 'temp8' into temp8-nuget-pkgs
# Conflicts:
#	build/NuSpecs/UmbracoCms.Core.nuspec
2018-08-28 20:53:19 +10:00
Shannon Deminick a151829b26 Merge pull request #2845 from umbraco/temp8-serilog
Bye bye Log4Net, Hello Serilog
2018-08-28 20:31:12 +10:00
Warren 91ab3b4894 Comments out a lot of the serilog.user.config to give some guidance and examples on what can be setup & configured 2018-08-28 10:11:08 +01:00
Warren 34452e72c0 Adds the shared option to the File sink to avoid file locking & if app restarts we don't get _001 or _002 files etc 2018-08-28 09:46:51 +01:00
Shannon 61c52913dd Fixes MediaCacheRefresher, it wasn't checking if there was an IMedia cache 2018-08-28 16:50:56 +10:00
Shannon Deminick e1e435cc33 Merge pull request #2877 from umbraco/temp8-97
Temp8 97
2018-08-28 16:11:59 +10:00
Shannon 94cbe3b1b8 updates timing id 2018-08-28 15:40:20 +10:00
Shannon 6506abd451 Simplifies logger calls to proxy all calls to a single method of it's type 2018-08-28 15:38:36 +10:00
Shannon 8d6e297c37 Adds additional Fatal methods to match Error and move Fatal code above error so all logger code goes from Fatal -> Verbose 2018-08-28 15:24:45 +10:00
Mads Rasmussen db385bbf17 make umb-variant-state directive reusable + reuse in umb-editor-header 2018-08-27 15:53:56 +02:00
Mads Rasmussen e96d16536b Make sure two overlays can't be open at the same time 2018-08-27 12:36:40 +02:00
Mads Rasmussen 8c663b5993 Add option to prevent close on backdrop click 2018-08-27 11:44:55 +02:00
Mads Rasmussen db37a34bac fix z-index problem 2018-08-27 11:28:10 +02:00
Stephan a2e80f27f3 Merge branch temp8 into temp8-11502 2018-08-27 09:57:41 +02:00
Shannon 06d08e2cb1 removes last log4net strings i can find 2018-08-27 16:49:54 +10:00
Sebastiaan Janssen 26e2bc6afa Merge pull request #2879 from umbraco/temp-u4-11599
U4-11599 - do not abort inst processing on error
2018-08-27 08:45:04 +02:00
Sebastiaan Janssen 546458bcfd Merge pull request #2322 from umbraco/validate-using-schema
Updates sql to include current schema in queries
2018-08-27 08:16:57 +02:00
Stephan f2090e9fc7 U4-11599 - do not abort inst processing on error 2018-08-27 08:10:39 +02:00
Sebastiaan Janssen 46b0063921 Fixes U4-11598 Scheduling the content does not reload the page at the same time 2018-08-27 06:56:05 +02:00
Sebastiaan Janssen 7fd1617759 Merge branch 'dev-v7' into validate-using-schema 2018-08-26 23:13:08 +02:00
Sebastiaan Janssen 5e7c9f2341 Merge pull request #2876 from RNHornets/temp-u4-9030
U4-9030 Moving a RTE between grid cells causes rendering issues for other RTEs
2018-08-26 22:57:17 +02:00
Sebastiaan Janssen bec8aabede Merge pull request #2442 from madsoulswe/temp-U4-10962
U4-10962 - Disable stickyheader when nested, fix margins when disabled
2018-08-26 22:17:44 +02:00
Sebastiaan Janssen c07780caff Merge pull request #2481 from SaDa1337/dev-v7.9
fix x alignment in colorpicker transparent option in umbraco skin
2018-08-26 22:08:24 +02:00
Sebastiaan Janssen 0c3d3ca545 Merge pull request #2506 from PeteDuncanson/temp-U4-11074
Added web.config to fonts folder to allow for caching out of the box
2018-08-26 21:26:45 +02:00
Sebastiaan Janssen 35a0d4451f Merge pull request #2483 from kccsf/U4-4441
U4-4441 Fix: TinyMCE overlay was showing in front of login overlay
2018-08-26 21:01:58 +02:00
Sebastiaan Janssen 03fdba6a3b Merge pull request #2512 from NathalieLarsson/dev-v7
Quick fix for U4-11085 and added filtering to list view in MNTP
2018-08-26 20:51:53 +02:00
Sebastiaan Janssen 550c383598 Also make sure there's a value for dialogOptions.filterTypes if it doesn't start with "!"
Else you get errors on `dialogOptions.filterTypes.toLowerCase()`
2018-08-26 20:47:26 +02:00
Sebastiaan Janssen 9d3d718e16 Merge branch 'dev-v7' into dev-v7 2018-08-26 20:33:00 +02:00
Ben Palmer b09bf518c6 U4-9237 Validate application parameter when getting application trees (#2315) 2018-08-26 18:12:07 +02:00
Sebastiaan Janssen 8666b222ac Merge pull request #2841 from leekelleher/U4-11556
U4-11556 - Removed metablogConfig.config
2018-08-26 18:04:50 +02:00
Sebastiaan Janssen 9e564d70ef Merge branch 'drpeck-U4-8550' into dev-v7 2018-08-26 17:57:00 +02:00
Sebastiaan Janssen 276810be6c Bump to v7.13.0 2018-08-26 17:56:13 +02:00
Sebastiaan Janssen 49df6e7c9d Merge branch 'U4-8550' of https://github.com/drpeck/Umbraco-CMS into drpeck-U4-8550
# Conflicts:
#	src/Umbraco.Web.UI/config/umbracoSettings.config
#	src/Umbraco.Web/PublishedContentExtensions.cs
2018-08-26 17:45:34 +02:00
Sebastiaan Janssen 16155ea416 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into dev-v7 2018-08-26 17:25:18 +02:00
Sebastiaan Janssen f183e27cae Merge branch 'jamescoxhead-U4-11166' into dev-v7 2018-08-26 17:24:18 +02:00
Sebastiaan Janssen a411c9c300 Make sure inactive users get the correct state attached to them 2018-08-26 17:23:52 +02:00
Sebastiaan Janssen 342ac7b1b2 Merge branch 'U4-11166' of https://github.com/jamescoxhead/Umbraco-CMS into jamescoxhead-U4-11166 2018-08-26 16:52:58 +02:00
Sebastiaan Janssen f5ac5f20a8 Merge pull request #2869 from Bazmech/temp-U4-11594
U4-11594 HasFocalPoint in ImageCropDataSet does not return correct value
2018-08-26 16:44:19 +02:00
Chris Houston 56de9ff4ae Fix for issue: U4 11409 - "Create content" tour is failing when doing the tour with the starter kit installed (#2851) 2018-08-26 14:52:14 +02:00
Mads Rasmussen 7fce9799e7 clear editorService and overlayService when a new user logs in 2018-08-24 21:06:48 +02:00
Mads Rasmussen d8006b54e8 soften overlay shadow 2018-08-24 21:05:36 +02:00
Robert e3ee485126 Merge pull request #2875 from umbraco/temp8-141
Editing all variants at once - Deal with invariant property value syncing
2018-08-24 14:43:46 +02:00
Robert 3b4aa66516 Merge branch 'temp8' into temp8-141 2018-08-24 14:43:15 +02:00
Mads Rasmussen 32d263a398 translate labels 2018-08-24 14:08:36 +02:00
Mads Rasmussen 3f05396c2b show discard changes dialog when changing location and infinite editors are open + reuse same overlay for unsaved changes 2018-08-24 13:51:07 +02:00
Robert 09719d0ca3 Fixes slider 2018-08-24 12:50:46 +02:00
Arbie Sarkissian e4d8fcf019 U4-11506 - Fix Gregorian DateTime.MinValue is out of range for some calendars (like PersianCalendar) (#2821) 2018-08-24 11:15:53 +02:00
Sebastiaan Janssen e1f7e835ea Fixes U4-11584 RelatedLinks2 throws exception with null value in Link field 2018-08-24 11:08:27 +02:00
Sebastiaan Janssen d83bb6aa49 Whoops, committed the wrong file! Revert "Fixes U4-11584 RelatedLinks2 throws exception with null value in Link field"
This reverts commit 612138f0e1.
2018-08-24 11:07:55 +02:00
Robert Johnston 06e55c8c4e Use offsetParent to get the grid cell for the moved item since parents() always returns 0 results 2018-08-24 09:50:24 +01:00
Sebastiaan Janssen 612138f0e1 Fixes U4-11584 RelatedLinks2 throws exception with null value in Link field 2018-08-24 10:49:39 +02:00
Sebastiaan Janssen bfc627857d Merge pull request #2840 from WebCentrum/temp-U4-11527
U4-11527 Fix concurrency issue
2018-08-24 00:02:30 +02:00
BatJan 7d439566cd U4-11526 - Member Group Picker doesn't remove group after unselecting it during selection. (#2835) 2018-08-23 23:56:32 +02:00
Sebastiaan Janssen d224a93ce1 Merge branch 'BatJan-feature/temp-U4-11577' into dev-v7 2018-08-23 23:44:23 +02:00
Sebastiaan Janssen 3454db6ee8 No need to do an extra userService request, if the contentType is null we can't access the settings section, that's a good enough test
Also fixed the bug where editors would see the node name instead of the content type name
2018-08-23 23:36:50 +02:00
Sebastiaan Janssen b67c06a85a Remove console.log that was left behind 2018-08-23 22:23:41 +02:00
Sebastiaan Janssen 44bd3dec9a Merge branch 'dev-v7' into feature/temp-U4-11577 2018-08-23 22:22:57 +02:00
Thomas Nielsen 68ac84aa1d Sort the Umbraco.UserPicker list alphabetically by name (#2872) 2018-08-23 22:15:28 +02:00
Sebastiaan Janssen c1bf8259ef Merge branch 'rasmusjp-fix/linkpicker-url-empty' into dev-v7 2018-08-23 21:34:06 +02:00
Sebastiaan Janssen 1b1df84863 Populates the anchor when found
Also fixes one of the JS files where .model was seemingly used randomly, but the view doesn't want a .model in there
2018-08-23 21:31:31 +02:00
Sebastiaan Janssen 05fdfc6b34 Merge branch 'fix/linkpicker-url-empty' of https://github.com/rasmusjp/Umbraco-CMS into rasmusjp-fix/linkpicker-url-empty 2018-08-23 20:52:14 +02:00
Sebastiaan Janssen 18b690f11a Bump the version to 7.12.2 2018-08-23 20:45:49 +02:00
Sebastiaan Janssen d3b577fe37 Merge pull request #2867 from BatJan/features/temp-U4-11587
U4-11587 Media link does not update when the file is swapped
2018-08-23 20:37:45 +02:00
Sebastiaan Janssen 720409ef54 Merge pull request #2871 from leekelleher/U4-11595
umb-node-preview directive - corrected the title of the "Edit" button
2018-08-23 19:21:30 +02:00
Sebastiaan Janssen 919a63d0ea Merge pull request #2848 from readingdancer/U4-11569
Small tweaks to the Getting Started tour text.
2018-08-23 18:53:40 +02:00
Warren 24f91f1917 Adds in Error without ex for just a message and a message template with params 2018-08-23 14:43:38 +01:00
Warren fb4b0ceb69 Verified the log works correctly from my TODO note 2018-08-23 13:23:40 +01:00
Warren e17ba1c876 Verified the log output for genRef is all ok & remove TODO note 2018-08-23 13:09:51 +01:00
Warren 224a7de61f Update ignore list for typefinder tests to include Serilog. in exclusion filters 2018-08-23 12:56:35 +01:00
Warren 4070fc65b7 Remove some //WB TODOs to check if the enum returns the string and not 0,1 etc- check & verified all good :) 2018-08-23 12:49:27 +01:00
Warren afebd88d45 Update ImageProcessorLogger - to use the new Error logger method that contains only an ex - and under the hood it will pass on an empty string to the message 2018-08-23 12:26:33 +01:00
Warren 219e8c730d Add inline null checks as requested 2018-08-23 12:22:05 +01:00
Warren 0c9ac7fa45 Make Log4NetLevel enricher internal - no need for it to be public 2018-08-23 12:16:43 +01:00
Warren 66e4e1f0f4 Adds new method to ILogger for taking only the exception - NOTE will add an empty string for the message 2018-08-23 12:14:07 +01:00
Warren Buckley 5b219af3ad Merge pull request #2874 from umbraco/temp8-93
fixes: 93 - Content editing: convert overlays into infinite editors
2018-08-23 10:32:58 +01:00
Mads Rasmussen ec7610f290 Merge pull request #2865 from umbraco/temp8-w150
Temp8 w150
2018-08-23 10:42:35 +02:00
Mads Rasmussen 1a465a7bee move inline styling to a class 2018-08-23 10:31:54 +02:00
Mads Rasmussen 6187018ee7 simplify width calculation to use the browser width instead of the element widths + reuse dropdown component 2018-08-23 10:22:00 +02:00
Shannon e0610fc85d Gets tinymce syncing with the view model 2018-08-23 18:11:16 +10:00
Mads Rasmussen ef6822e15b Merge pull request #2873 from kjac/media-picker-update
Media picker: Minor style update + add help text.
2018-08-23 09:29:05 +02:00
Shannon 7f734f19f0 Fixes radio button editor 2018-08-23 17:11:57 +10:00
Shannon c0d617a044 Fixes checkbox list to sync the model value and view model nicely 2018-08-23 16:56:40 +10:00
Shannon b1ba25debe Fixes contentpicker to update model.value correctly and sync it's renderModel and deal with the quirks of the ui-sortable stuff 2018-08-23 15:31:59 +10:00
Mads Rasmussen 1f4094c676 Revert "move grid layout config to new location"
This reverts commit 5e0ca12d72.
2018-08-22 13:55:02 +02:00
Mads Rasmussen 5e0ca12d72 move grid layout config to new location 2018-08-22 13:43:32 +02:00
Mads Rasmussen c165226688 use infinite media picker in grid media picker 2018-08-22 13:35:35 +02:00
Mads Rasmussen 46dc0baf86 remove unused overlay markup 2018-08-22 12:57:03 +02:00
Mads Rasmussen 973696329d convert memberGroupPicker into an infinite editor 2018-08-22 12:55:27 +02:00
Mads Rasmussen 61312bf61b move member group picker to new location 2018-08-22 12:46:10 +02:00
Jan Skovgaard 015e89b927 Make sure the "open" action is only visible when logged in as an administrator 2018-08-22 11:31:07 +02:00
Jan Skovgaard 05e48376c7 Use the node object to get the name and icon so it's also displayed for non-admin users 2018-08-22 11:30:39 +02:00
Jan Skovgaard a2cc0ec411 Shorten comments 2018-08-22 11:30:07 +02:00
Jan Skovgaard d4fff97814 Move the setModePublishStatus function above the scope.previewOpenUrl...not sure why but this makes the status be visible when logged in as something other than an administrator. When logged in as an admin it worked fine before. Can't quite make sense of this. But now it works. 2018-08-22 11:23:51 +02:00
Lee Kelleher 06e99c3b33 Corrected the title of the "Edit" button
umb-node-preview directive - corrected the title of the "Edit" button
2018-08-22 09:13:43 +01:00
Jan Skovgaard ad3d27be76 Reference the node object instead of the documentType object, which returns null if the user is not logged in as an admin. 2018-08-22 10:00:54 +02:00
Jan Skovgaard 2e2fc6ad84 Make sure to check whether the open anchor for the template should be displayed or not 2018-08-22 09:31:44 +02:00
Jan Skovgaard 9f396e4b15 By default set the "allowOpen" to be false and only set it to true if the current user is an admin. This ensures that the "Open" anchors are never displayed for other than admin users. 2018-08-22 09:13:46 +02:00
Shannon 128c14d06f Fixes datepicker to sync the model value with it's view model correctly 2018-08-22 15:47:12 +10:00
Shannon 320fd82c24 Fixes slider value syncing 2018-08-22 15:00:24 +10:00
Shannon cc57724834 fixes media picker so that it's model.value stays in sync with it's view model 2018-08-22 14:15:43 +10:00
Shannon 30014ee86b fixes boolean checks and problems with removed angular.lowercase deprecated method 2018-08-22 14:15:23 +10:00
Shannon 5b32268cd7 Merge remote-tracking branch 'origin/temp8' into temp8-141 2018-08-22 14:14:14 +10:00
Shannon c164a4789b Fixes Slider 2018-08-22 14:13:33 +10:00
Barry Bell f42862c42a Update ImageCropDataSet.cs
If only one of the Left or Right values changed the HasFocalPoint function would return false but this should now return true if only one is altered
2018-08-21 21:07:54 +01:00
Mads Rasmussen f7201a70bd add colored border 2018-08-21 21:20:38 +02:00
Mads Rasmussen ec67ab83af Merge branch 'patch-1' of git://github.com/jannikanker/Umbraco-CMS into jannikanker-patch-1 2018-08-21 21:10:01 +02:00
Mads Rasmussen 6678f42f42 use infinite macro picker in grid 2018-08-21 20:01:55 +02:00
Mads Rasmussen dcdf21d86c use infinite editor in grid embed 2018-08-21 19:42:49 +02:00
Rasmus John Pedersen a725ddae5a Only remove ? or # if it's part of the url 2018-08-21 17:10:46 +02:00
Mads Rasmussen 08c1a2d095 grid rte - use infinite editors instead of overlays 2018-08-21 16:07:38 +02:00
Mads Rasmussen 6a0dc77be3 remove unused overlay markup 2018-08-21 15:55:15 +02:00
Mads Rasmussen 8280b522a5 use infinite media picker in markdown editor 2018-08-21 15:51:53 +02:00
Mads Rasmussen 3ed76a34b9 remove unused overlay markup 2018-08-21 15:34:56 +02:00
Mads Rasmussen e18598e836 use infinite icon picker in list view prevalues 2018-08-21 15:31:16 +02:00
Mads Rasmussen f35c1866b9 remove icon picker overlay 2018-08-21 15:23:54 +02:00
Mads Rasmussen 564eb0f059 remove media picker overlay 2018-08-21 15:23:24 +02:00
Mads Rasmussen b6ca017033 add feature toggle for edit media in media picker 2018-08-21 15:17:24 +02:00
Mads Rasmussen c81ce94f1f use infinite media picker in link picker 2018-08-21 14:54:11 +02:00
Jan Skovgaard 8f2c253138 Refactort the scope.nodeUrl to be updated whenever save is hit in the existing update watcher 2018-08-21 14:52:00 +02:00
Mads Rasmussen 892a88179e rename controller 2018-08-21 14:30:06 +02:00
Mads Rasmussen fab08f4dde convert linpicker overlay to infinite editor 2018-08-21 14:29:21 +02:00
Mads Rasmussen bc1c400481 open link picker and media picker infinite editors from rte 2018-08-21 14:13:27 +02:00
Mads Rasmussen f02382d3ab add linkpicker to editorService 2018-08-21 14:12:57 +02:00
Warren 3baf5697e4 Add in MachineName as a Serilog property 2018-08-21 12:48:06 +01:00
Mads Rasmussen b9b45336d4 move linkpicker to new location 2018-08-21 13:38:29 +02:00
Mads Rasmussen 08eaf16f11 turn embed overlay into infinite editor 2018-08-21 12:54:23 +02:00
Mads Rasmussen bdcbb0511f move embed overlay to new location 2018-08-21 12:41:39 +02:00
Mads Rasmussen 55a9fec64f embed overlay was broken. now its fixed 2018-08-21 12:40:24 +02:00
Mads Rasmussen 3c8b43cc3b use infinite macro picker in RTE 2018-08-21 11:29:04 +02:00
copilaurobert 4fa595edd9 Content apps will now move into the tray based on window width 2018-08-21 11:09:10 +02:00
Mads Rasmussen 1c0d09a1cb Merge branch 'temp8' into temp8-93 2018-08-21 11:08:45 +02:00
Mads Rasmussen e470436519 use overlayService to open media type child nodes overlay 2018-08-21 11:03:12 +02:00
Warren Buckley 3568a6565d Merge pull request #2863 from umbraco/temp8-95
Temp8 95
2018-08-21 10:03:10 +01:00
Mads Rasmussen afadf9999b remove unused overlay markup 2018-08-21 10:32:20 +02:00
Mads Rasmussen 5671103cd2 remove unused overlay markup 2018-08-21 10:09:23 +02:00
Mads Rasmussen 75cc69454a convert move dialog to infinite editor 2018-08-21 10:06:16 +02:00
Mads Rasmussen 7bd8c35d37 update copy dialog markup to make it work as an infinite editor 2018-08-21 09:02:38 +02:00
Shannon efbcce5261 Fixes SQL generation for paged results for both UserRepository and AuditRepository 2018-08-21 10:41:50 +10:00
Sebastiaan Janssen e6597d47e3 Fixes U4-11574 - return an empty string if the datatype is in "single" mode and nothing is selected 2018-08-20 16:12:23 +02:00
Nathan Woulfe 89f69bd2a8 U4 4732 - fix regressions in 7.12 (#2862) 2018-08-20 16:10:36 +02:00
copilaurobert ab6d5d09e2 "More" button now shows a tray containing overflowing apps that passed the set app limit 2018-08-20 15:57:58 +02:00
Mads Rasmussen 880eff5e71 use editorService to open copy dialog 2018-08-20 15:54:36 +02:00
Mads Rasmussen 7ffa4969b9 move copy-files to new location 2018-08-20 15:51:38 +02:00
Mads Rasmussen 3b4e5ad8c9 Revert "move copy files to new location"
This reverts commit 4c8c4e7578.
2018-08-20 15:49:23 +02:00
Mads Rasmussen 4c8c4e7578 move copy files to new location 2018-08-20 15:48:23 +02:00
Mads Rasmussen 745ac7600d remove compositions from the editorService again 2018-08-20 14:42:18 +02:00
Mads Rasmussen b58bce7c64 move confirm logic to compositions controller 2018-08-20 14:30:59 +02:00
Mads Rasmussen ab25713486 remove unsed overlay component 2018-08-20 14:16:16 +02:00
Mads Rasmussen 97b8aa8b3a open compositions dialog through infinite editing 2018-08-20 13:13:02 +02:00
Sebastiaan Janssen 8087fc4c9a Merge pull request #2858 from umbraco/temp-U4-11579
U4-11579 Take startNodeId into account before picking the current nod…
2018-08-20 12:06:45 +02:00
Mads Rasmussen 807f0be9df move compositions overlay to infinite editors folder 2018-08-20 11:18:58 +02:00
Nathan Woulfe 3775c7d653 Merge branch 'umbraco-temp8' into temp8-11849 2018-08-20 18:51:36 +10:00
Nathan Woulfe 9593f0dc01 update from temp8 2018-08-20 18:49:28 +10:00
Shannon 04db0caa63 Merge remote-tracking branch 'origin/dev-v7' into temp8
# Conflicts:
#	src/SolutionInfo.cs
#	src/Umbraco.Core/Configuration/UmbracoVersion.cs
#	src/Umbraco.Core/Migrations/Install/DatabaseSchemaCreator.cs
#	src/Umbraco.Core/Migrations/Upgrade/V_7_12_0/AddRelationTypeForMediaFolderOnDelete.cs
#	src/Umbraco.Core/Migrations/Upgrade/V_7_12_0/IncreaseLanguageIsoCodeColumnLength.cs
#	src/Umbraco.Core/Persistence/DatabaseModelDefinitions/ConstraintDefinition.cs
#	src/Umbraco.Core/Persistence/DatabaseModelDefinitions/DbIndexDefinition.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/AlterTagsTable.cs
#	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AssignMissingKeysAndIndexes.cs
#	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenEightZero/AddIndexToPropertyTypeAliasColumn.cs
#	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeZero/AddForeignKeysForLanguageAndDictionaryTables.cs
#	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeZero/MigrateAndRemoveTemplateMasterColumn.cs
#	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeZero/UpdateUniqueIdToHaveCorrectIndexType.cs
#	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenTwoZero/AddMissingForeignKeyForContentType.cs
#	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AdditionalIndexesAndKeys.cs
#	src/Umbraco.Core/Persistence/SqlSyntax/ISqlSyntaxProvider.cs
#	src/Umbraco.Core/Persistence/SqlSyntax/MySqlSyntaxProvider.cs
#	src/Umbraco.Core/Persistence/SqlSyntax/SqlCeSyntaxProvider.cs
#	src/Umbraco.Core/Persistence/SqlSyntax/SqlServerSyntaxProvider.cs
#	src/Umbraco.Core/Persistence/SqlSyntax/SqlSyntaxProviderBase.cs
#	src/Umbraco.Core/Persistence/SqlSyntax/SqlSyntaxProviderExtensions.cs
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/nestedcontent/nestedcontent.editor.html
#	src/Umbraco.Web/HealthCheck/Checks/DataIntegrity/DatabaseSchemaValidationHealthCheck.cs
#	src/Umbraco.Web/Scheduling/KeepAlive.cs
#	src/Umbraco.Web/Trees/ApplicationTreeExtensions.cs
2018-08-20 15:16:58 +10:00
RaduOrleanu 07e5161988 U4-11570 - changed WebClient() from created inside of using to check if null and then creating it 2018-08-18 20:21:24 +02:00
Mads Rasmussen 655d6356b5 fix padding for dashboard content 2018-08-17 22:03:10 +02:00
Mads Rasmussen a5d0fc28d5 add background-color to dropzone 2018-08-17 21:55:13 +02:00
Mads Rasmussen 25d0437363 add background color to user cards 2018-08-17 21:14:41 +02:00
Mads Rasmussen 63a761512f turn user group overview into real table 2018-08-17 20:06:20 +02:00
Mads Rasmussen 739dc7905b add table header on languages 2018-08-17 20:04:57 +02:00
Warren 9e996c68bb Refactored the error params, so that exception is before the message/template so its more in sync with Serilog signature & was an easy way to find some more logs I missed too 2018-08-17 15:41:58 +01:00
RaduOrleanu 03e642fced Found additional usages for (var web = new HttpClient()) and replaced with private static readonly HttpClient HttpClient = new HttpClient(); 2018-08-17 15:21:33 +02:00
RaduOrleanu 051b595f82 Found additional usages for (var web = new HttpClient()) and replaced with private static readonly HttpClient HttpClient = new HttpClient(); 2018-08-17 15:18:08 +02:00
RaduOrleanu 0cd3bb38ed Found additional usages for (var web = new HttpClient()) and replaced with private static readonly HttpClient HttpClient = new HttpClient(); 2018-08-17 15:07:57 +02:00
copilaurobert 4efc0c8be2 Initial commit on "more" button 2018-08-17 14:14:01 +02:00
Radu Orleanu f665f8af89 fixing U4-11570 (#2860) 2018-08-17 14:04:35 +02:00
Mads Rasmussen b7005127b2 add alias to user subviews to fix broken track by 2018-08-17 13:26:28 +02:00
Warren 38984181fc Adds the Fatal Logger Extension method <T> 2018-08-17 11:38:31 +01:00
Warren a020d60f3e Adds in new log level from Serilog to our Umbraco ILogger - Fatal (Worse than Error) 2018-08-17 11:26:22 +01:00
Kenn Jacobsen de8a24c691 Add "info" style to upload button + add help text when the dropzone is hidden. 2018-08-17 12:22:54 +02:00
Warren Buckley 0ee84c52b3 Merge pull request #2853 from umbraco/temp-variant-save-dialog
Save dialog for variants
2018-08-17 11:06:52 +01:00
Sebastiaan Janssen c4163e94c0 Merge pull request #2856 from dawoe/remove-deleted-scripts-from-solution
Removed files from solution that are not longer present in repo
2018-08-17 08:25:50 +02:00
Sebastiaan Janssen 62855d021f Merge pull request #2857 from umbraco/temp-U4-11581
U4-11581 In rare cases the umbracoLanguage table has a constraint ins…
2018-08-17 08:24:43 +02:00
Shannon 49430ca0a5 fixes logic order of dropping indexes 2018-08-17 16:07:53 +10:00
Shannon 9d75e36eb4 Ensures that checking for constraints/indexes is done within the transaction before dropping anything instead of before the transaction. 2018-08-17 15:20:12 +10:00
Shannon 5068b8ae9f Fixes DB schema validation 2018-08-17 11:16:10 +10:00
Shannon cdf3581721 code simplification 2018-08-17 10:53:45 +10:00
Shannon 0c6cca44d8 Fixes SQL providers for returning the correct results for constraints 2018-08-17 10:53:21 +10:00
Shannon f9300b4714 set variants to pristine after saving 2018-08-17 01:04:15 +10:00
Shannon 5324e0fc59 Fixes initial tree loading to ensure it gets passed the right culture params, puts any non-translated variant name in brackets in the tree 2018-08-17 00:50:05 +10:00
Warren ce4a19a20a Update OWIN logger with message template properties - mostly used for user X logged in (however we can't log those messages with properties) :( 2018-08-16 15:24:45 +01:00
Shannon 3fac749b38 fixes tree syncing so that the name can be updated 2018-08-17 00:19:17 +10:00
Shannon f8370a04a2 Fixes tracking the state of variants in the header drop down when the state changes but validation fails 2018-08-17 00:00:29 +10:00
Warren bb7fd0af25 Another one got through the net 2018-08-16 14:47:42 +01:00
Warren 0fdccc9c2f Found another log item that was using string interpolation 2018-08-16 14:40:33 +01:00
Shannon 54af649b78 Cleans up some models, adds another unit test, fixes the Info tab state updating when a content item is changed. 2018-08-16 23:30:33 +10:00
Sebastiaan Janssen f18b0aa774 U4-11579 Take startNodeId into account before picking the current node to sync to 2018-08-16 13:53:42 +02:00
Sebastiaan Janssen b9e8dd8b86 Removes unused import statement 2018-08-16 13:47:20 +02:00
Warren f9ba6970f4 Last pass of updating log messages in the solution 2018-08-16 12:42:21 +01:00
Warren 47c8651609 Update more logging messages to use templates as opposed to string formats that were using the LoggerExtensions <T> 2018-08-16 12:00:12 +01:00
Sebastiaan Janssen 45d8d302c9 U4-11581 In rare cases the umbracoLanguage table has a constraint instead of an index, making the migration fail 2018-08-16 12:10:21 +02:00
Shannon b4378ecb26 Merge remote-tracking branch 'origin/temp8' into temp-variant-save-dialog 2018-08-16 19:21:27 +10:00
Shannon 5168ef0f7a Fixes js tests and some logic 2018-08-16 19:20:43 +10:00
Mads Rasmussen 1fadff105a Merge pull request #2849 from umbraco/temp-variants-with-file-uploads
Editing variants with file uploads
2018-08-16 10:43:47 +02:00
Dave Woestenborghs e0ce9f1a77 Removed files from solution that are not longer present in repo 2018-08-16 10:35:08 +02:00
Sebastiaan Janssen d7a0886097 Fixes problem where we try to query a table that hasn't been updated with the new column yet, so we can't use the DTO 2018-08-16 10:32:10 +02:00
Nathan Woulfe 7bc43cb430 sane nesting, adds classes to replace element selectors, remove unused bits 2018-08-16 12:11:29 +10:00
Nathan Woulfe d16650d395 modal needs white background when iframed 2018-08-16 12:10:39 +10:00
Nathan Woulfe 8f0112c113 revert sizing changes - needs more thought... 2018-08-16 12:10:04 +10:00
Warren d632b46f9a For each & every request give it a GUID so we can log the begin & end request with timings along with making this log entry VERBOSE 2018-08-15 17:44:22 +01:00
Warren 7f53786461 Sets the default text file logger to be debug only & for the JSON file to log verbose 2018-08-15 17:43:20 +01:00
Warren 93a69d89e8 Add in optional params for the Serilog LoggerConfig Extension methods, to control number of days to keep and the log level to use 2018-08-15 16:58:23 +01:00
Warren b0d697af6c Forgot the ConsoleLogger needs to have Verbose added 2018-08-15 16:47:15 +01:00
Warren e76d35e2ff * Removes the unused func methods from Logger & DebugDiagnosticsLogger
* Adds in new Verbose logging level
2018-08-15 16:39:35 +01:00
Warren 95c5817e1e Removes the logging Func from Interface AND updates the only usages
* UmbracoExamineindexer
* The extension method <T> wrappers
2018-08-15 15:21:27 +01:00
Warren d7c6daac98 Updates the WebAPI Controller Unhandled exception logger to give us a structured message that will now include the Request URL 2018-08-15 14:55:16 +01:00
Warren ed262e6d4b Fix up the error method in the logger - to pass the exception to Serilog correctly (was wrong way round) & for it to add context of the <T> too 2018-08-15 14:53:23 +01:00
Sebastiaan Janssen 39e8a9fa67 Bump version to 7.12.1 2018-08-15 15:47:21 +02:00
Warren Buckley 1dbf509020 Merge pull request #2855 from umbraco/temp7-156
fixes: 156: Update nested content css/markup so it doesn't collide with the old package
2018-08-15 14:03:47 +01:00
Warren Buckley 5b4ef5b29e Merge pull request #2854 from umbraco/temp8-w155
Removed double encoding
2018-08-15 12:45:37 +01:00
Mads Rasmussen 8ce93055ef update colors to use variables and match the new color scheme 2018-08-15 13:00:40 +02:00
Mads Rasmussen ee4b2adbd4 prefix all nested content css classes with "umb" 2018-08-15 11:59:06 +02:00
copilaurobert 5da220c436 Removed double encoding 2018-08-15 10:32:59 +02:00
Shannon 9e131aa633 oooooh our first ContentController test :) 2018-08-15 17:44:06 +10:00
Shannon 0910a46b8a Merge remote-tracking branch 'origin/temp-variants-with-file-uploads' into temp-variant-save-dialog 2018-08-15 17:29:40 +10:00
Shannon cf39b2a54f Fixes server side check for publishing when a mandatory language isn't published 2018-08-15 15:23:02 +10:00
Shannon 2a15feec40 Fixes state issue to ensure that non-created variants show up as not-created 2018-08-15 15:13:27 +10:00
Warren 23ed9773bc FIRST PASS - Updates Umbraco.Web project to not use the func overload & to use new message template instead 2018-08-14 22:36:47 +01:00
Warren 2a298aaaf5 FIRST PASS - Updates Umbraco.Core project to not use the func overload & to use new message template instead 2018-08-14 15:08:32 +01:00
Warren 1c54c4c87d Update Umbraco ILogger extension methods to have some that support message templates for Serilog
* NOTE: Added obsolete with error bool set - to help me find uses to update easier
2018-08-14 15:05:58 +01:00
Shannon 66a00546d1 more work with saving, publishing and validation for variants, fixes up a few old things too 2018-08-14 23:19:32 +10:00
Warren f62f3300c2 Implements updates from recent ILogger changes for these other classes that use it 2018-08-14 13:29:38 +01:00
Warren 404e79dd3f Move DisposableTimer into Umbraco.Core.Logging - as it seems to be only related to logging 2018-08-14 13:22:44 +01:00
Warren b44fc3e273 Update DisposableTime - so that we now have a timing id to help with correlation (searching for the start & end in logs easier) 2018-08-14 13:20:54 +01:00
Warren 24cd72e9a5 Update Umbraco ILogger to use messagetemplates & params to make Serilog happy 2018-08-14 13:16:22 +01:00
Jannik Anker de73080e14 U4-11572
Add border to selected icon in document type icon picker dialog
2018-08-14 13:37:54 +02:00
Mads Rasmussen 6c0d14e0f4 add type="button" to toggle so it doesn't auto-submits a form 2018-08-14 13:14:49 +02:00
Mads Rasmussen 66187bf01a fix issue with property variant state being overwritten if document type wasn't saved 2018-08-14 12:32:12 +02:00
Shannon 9c84d5e3f9 more work with variants, saving, publishing and validation. 2018-08-14 20:21:33 +10:00
Warren c53d6f1948 Change Logger ctor to take in a Serilog LoggerConfiguration to make it easy to override in code if needed 2018-08-14 11:00:18 +01:00
Warren 31dcded8d6 Moves parts of the Serilog LoggerConfiguration to extensions methods for easier to read & re-use (if someone is attempting to configure the Serilog pipeline in code) 2018-08-14 09:37:29 +01:00
Shannon 758d09cd5c More work on save and publish overlays 2018-08-14 16:29:14 +10:00
Warren 529a5e10d9 Use string.PadRight to be more explicit with what we are doing with the Log4Net level property enricher 2018-08-13 11:26:50 +01:00
Shannon 30d29d9fcf initial commit for save dialog 2018-08-13 16:45:05 +10:00
Shannon e950914fc8 Fixes wiring up server validation when creating content 2018-08-13 12:11:08 +10:00
Shannon 5bd74f90aa cleanup 2018-08-13 11:36:43 +10:00
Shannon 9d5d516064 Fixes up invariant property validation since we were only allowing one callback per alias, but we need to allow multiple 2018-08-13 11:25:55 +10:00
Chris Houston ba682d95dc Small tweaks to the Getting Started tour text. 2018-08-12 01:16:57 -04:00
Warren ee91e8cec2 Nuget still not happy - as this merge contains the recent removal of the umbraco_client folder 2018-08-10 16:50:38 +01:00
Warren 1f9c5a48a7 Fix up .csproj after merge & update CMS.Core nuspec to include the new Serilog nuget packages we've added 2018-08-10 16:44:36 +01:00
Warren 054308b44e Merge remote-tracking branch 'origin/temp8-directive-cleanup' into temp8-serilog 2018-08-10 15:37:50 +01:00
Warren Buckley ac9be3995b Merge pull request #2844 from umbraco/temp8-directive-cleanup
Temp8 directive cleanup
2018-08-10 13:50:13 +01:00
Mads Rasmussen ec139ca16c clean up that windows resizer event 2018-08-10 14:17:12 +02:00
Mads Rasmussen 23e81a67fa fix indention 2018-08-10 14:05:15 +02:00
Mads Rasmussen c7a5786521 remove the deprecaed note 2018-08-10 14:03:39 +02:00
Mads Rasmussen c0ec2a5314 move the auto-scale directive from obsolete. It is still pretty usefull for the code editors 2018-08-10 14:02:59 +02:00
Shannon e41aad78b0 Updates the logic for the normal file upload for clearing files to be the same as the image cropper which makes more sense, now the upload editor also syncs properly with invariant propertes. 2018-08-10 16:52:33 +10:00
Shannon 3932ec0640 Fixes how invariant property are processed during saving on the server side. 2018-08-10 15:39:57 +10:00
Shannon d608daa87b Gets new images syncing between instances on image cropper 2018-08-10 14:48:58 +10:00
Shannon 2d1bda54be Fixes: Deal with invariant property value syncing, componentizes umb-image-gravity, gets the image cropper syncing data correctly, ensures resizing for image cropper is done when variants change. 2018-08-10 13:53:19 +10:00
Shannon 3395e4c150 Fixes allowedFileType JS problem with unit test 2018-08-10 10:31:04 +10:00
Warren 212e0a091a Allows Serilog to be configured in a serilog.user.config file that will not effect the main umbraco logger
Adds in support for filtering expressions - so the user logger configuration can filter by including or excluding on an expression - common use case to include only my namespace from SourceContext thjat starts with xyz
2018-08-09 22:08:40 +01:00
Mads Rasmussen cd6585c9b9 remove detect-fold 2018-08-09 21:12:45 +02:00
Mads Rasmussen a1c4bd6b7a remove umb-content-name 2018-08-09 20:59:10 +02:00
Mads Rasmussen ca85b0e45c remove umb-header 2018-08-09 20:53:44 +02:00
Warren 9446c2a568 Trying with a nested logger config to see if it works better 2018-08-09 19:51:22 +01:00
Mads Rasmussen 48c5e61d88 remove item sorter 2018-08-09 20:50:52 +02:00
Mads Rasmussen 933bb8ad44 remove drag and drop less import 2018-08-09 20:50:30 +02:00
Mads Rasmussen ab90690e17 remove umb-login 2018-08-09 20:41:26 +02:00
Mads Rasmussen 67e0b68b7b remove umb-optionsmenu 2018-08-09 20:39:50 +02:00
Mads Rasmussen c50f7a1284 remove umb-sort 2018-08-09 20:33:48 +02:00
Mads Rasmussen 5ab978ecf5 remove umb-photo-folder 2018-08-09 20:29:17 +02:00
Mads Rasmussen 16ceca1598 remove umb-tab-view 2018-08-09 20:23:20 +02:00
Mads Rasmussen 404055917f remove umb-upload-dropzone 2018-08-09 20:22:11 +02:00
Shannon 2f0f43e605 Gets image cropper working between variants, even with invariant properties, adds unit test to ensure invariant properties in the model are the same reference 2018-08-10 00:39:20 +10:00
Shannon 9183a9987b Updates imagecropper to use our new umb-property-file-upload component which now maintains file state between variant switching 2018-08-09 23:15:42 +10:00
Sebastiaan Janssen fd888cab4b Fixes U4-9095 - the textService.Localize always returns some string, either the translation or [alias] - so we need to make sure it actually translated something 2018-08-09 14:36:08 +02:00
Shannon 6a7b6f7267 Merge branch 'temp8' of https://github.com/umbraco/Umbraco-CMS into temp8 2018-08-09 19:38:36 +10:00
Shannon f738e6d7c7 Fixes js tests 2018-08-09 19:38:20 +10:00
Shannon 601c30c39a Fixes js tests 2018-08-09 19:34:32 +10:00
Warren e818197365 Fix comma dangle ESLint errors 2018-08-09 09:00:34 +01:00
Shannon d237fd7e26 Merge branch 'temp8' into temp-variants-with-file-uploads
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/imagecropper/imagecropper.controller.js
2018-08-09 15:27:21 +10: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 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
leekelleher 0869a9be69 Removed Form.browser
ref: http://issues.umbraco.org/issue/U4-11555

Also removed the referenced classes...

- FormRewriterControlAdapter
- UrlRewriterFormWriter
- LegacyRequestInitializer

These were being used to rewrite the `action` value on rendered `<form runat=server>` tags, (a la WebForms).
2018-08-08 11:32:19 +01:00
leekelleher 79eb9fc2e7 Removed w3cvalidator.browser
ref: http://issues.umbraco.org/issue/U4-11555
2018-08-08 10:34:08 +01:00
leekelleher 92273f263b U4-11556 V8 - Removed metablogConfig.config
http://issues.umbraco.org/issue/U4-11556

For v7, I've marked the `SystemFiles.MetablogConfig` strings as deprecated.
2018-08-08 10:23:14 +01:00
Pavel Budik 3efbb47aed U4-11527 Fix concurrency issue 2018-08-08 10:38:53 +02:00
Shannon 08fe947575 Gets the image cropper posting files correctly 2018-08-07 18:37:55 +10:00
Shannon 96ea95b04a Files are uploading and clearing per variant now with the file upload control 2018-08-07 18:05:30 +10:00
Shannon cd89d016d1 Adds culture to the properties and removes reliance on tabbed-content directive for culture, adds a new directive for file uploads for properties that is more like the image cropper and maintains state when switching between variants. 2018-08-07 17:10:02 +10:00
Shannon bd2414bc49 WIP committing a change for the file upload to convert to a component but will revert because using a directive to get the culture isn't going to work because a property can be invariant so the property itself needs to know it's own culture, not just the culture of the current variant. 2018-08-07 11:41:57 +10:00
James Coxhead 9a774c8f9e Added inactive state for users who haven't logged in 2018-08-02 22:01:45 +01:00
James Coxhead f81dc16210 Specify which user states we want to include when getting all users 2018-08-02 21:55:04 +01:00
James Coxhead c4a787331f Reverted previous commit to show disabled users in the status filter 2018-08-02 21:54:00 +01:00
Warren a0f083a534 More nupkg cleanup & sync with .csproj's 2018-08-01 11:55:57 +01:00
Warren e626fe3c8f Merge branch 'temp8' into temp8-nuget-pkgs 2018-08-01 10:46:00 +01:00
Warren 2ec18d0489 Bit of a hack - adds extra whitespace behind Log4Net Levels in our enricher so that they are all 5 characters in length and logfile aligns nicely as it used to in old Log4Net setup 2018-08-01 10:44:20 +01:00
Warren c59912ce94 Adds in SourceContext property into text log file that was missing - aka C# class/namespace 2018-08-01 10:43:14 +01:00
Warren cfebb335f2 Merge remote-tracking branch 'origin/temp8' into temp8-serilog 2018-08-01 10:34:14 +01:00
Warren b89e7bca97 Adds our Serilog Enricher so that we can map Serilog log levels to Log4Net levels and use it the text log file so that the logfiles still look the same as previously 2018-08-01 10:33:38 +01:00
Warren bfae07b95b Merge remote-tracking branch 'origin/temp8' into temp8-serilog 2018-08-01 08:45:12 +01:00
Warren 7ea85c26a7 Merge remote-tracking branch 'origin/temp8' into temp8-serilog 2018-07-31 22:07:24 +01:00
Warren 1a69297c7e Changes in tests proj to not use Log4Net but Serilog
However not sure how this is used to where the output of the logs was viewed when it was set/configured to console - VS Output Window, VSTS Logs?
2018-07-31 22:03:41 +01:00
Warren eda6c62fcc Minor change so that the text log filenames match better to old log4net style - adds in an extra . between Machine Name and the Date that gets added 2018-07-31 18:08:58 +01:00
Warren 5f226e7874 Adds in MachineName into the logfiles like we did previously 2018-07-31 16:15:07 +01:00
Warren aed9f77f31 Remove log4net from the typefinder tests 2018-07-31 15:44:59 +01:00
Warren 8331abf4a2 Remove log4net from Tests & Benchmark projects 2018-07-31 15:42:20 +01:00
Warren 0c3601435e Removes mention of Log4Net & removes commented out methods 2018-07-31 15:31:43 +01:00
Warren 20d8139399 Merge remote-tracking branch 'origin/temp8' into temp8-serilog 2018-07-31 15:28:47 +01:00
Warren 4392055249 Removes mention of Log4Net & the commented code with it as it's never invoked 2018-07-31 15:27:27 +01:00
Warren a460d48607 Remove mention of Log4Net 2018-07-31 15:26:38 +01:00
Warren 998a7ff406 Merge branch 'temp8' into temp8-serilog 2018-07-31 14:51:50 +01:00
Warren a7fb11ee3b Removed the install.ps1 reference from the core nuspec 2018-07-31 14:43:42 +01:00
Warren cce6fab687 Remove the commented parts from the nuspec in the new web.nuspec 2018-07-31 14:43:00 +01:00
Stephan 0928fc099d Merge branch temp8 into temp8-11502 2018-07-31 15:34:42 +02:00
Warren 81095fb77d Adds an env variable (set to process level) so that the external config can use it to save files with a relative path 2018-07-31 12:43:26 +01:00
Warren 05196d5aa0 Add Cms.Web to Nuspecs to Verify in build script 2018-07-31 12:19:11 +01:00
Warren d2ae7737b6 Update Powershell Build.ps1 to attempt to pack the Web.nuspec 2018-07-31 11:24:07 +01:00
Warren c65a3c1ffe Add new Web.nuspec into the SLN 2018-07-31 11:23:35 +01:00
Warren 7adf2014d7 UmbracoCms.Web.nuspec added - copied from UmbracoCms.Core.nuspec - with stuff commented out to align with the Web.CSProj ref's 2018-07-31 11:22:56 +01:00
Warren 35c5640d0d Makes the top level nuget package reference UmbracoCms.Web 2018-07-31 11:21:37 +01:00
Warren 216d01d323 Merge branch 'temp8' into temp8-serilog 2018-07-31 11:19:28 +01:00
Warren e886086aed Adds in a new File sink - that will generate a JSON log file in the CLEF format so that it can be imported into a local copy of SEQ to help with filtering/finding log items 2018-07-31 10:21:26 +01:00
Warren 045ece0f70 After latest V8 merge - update the CSProj to remove the files that I nuked earlier 2018-07-31 10:19:04 +01:00
Warren b5f728541a Merge remote-tracking branch 'origin/temp8' into temp8-serilog 2018-07-31 09:51:44 +01:00
Warren 5cacdeafa8 Adds in Serilog.Settings.AppSettings package
Configured to read from a custom .config file location as opposed to root web.config appsettings
Enable Serilog Debugging aka Selflog
2018-07-31 09:50:43 +01:00
Warren bee2c2dd16 Merge remote-tracking branch 'origin/temp8' into temp8-serilog
# Conflicts:
#	src/Umbraco.Web.UI/web.Template.Debug.config
2018-07-30 16:42:15 +01:00
Warren cd2a70a520 Get logger to output as same file as old Log4Net and in same format (only diff currently is the log level type in the log file)
Ensures we use the calling type in the Umbraco ILogger and passes it onto Serilog
2018-07-30 16:36:38 +01:00
AndyButland c61f041d06 Added fallback by language option to IPublishedElement and IPublishedProperty 2018-07-28 08:39:12 +02:00
AndyButland 49c6212cb6 Implemented constants, tests and functionality for trying one fallback method and then another 2018-07-28 08:11:48 +02:00
AndyButland b608ea8322 Restored service context as being DIed into PublishedValueFallback.
Whilst only the LocalizationService service is needed, not injecting this via the service context was breaking the unit tests.
If there's a way around this so we can use the mocked ILocalizationService in tests then this change can be reverted.
2018-07-28 07:58:22 +02:00
AndyButland 85bdc8f14d Updated XML documentation on IPublisedValueCallback methods 2018-07-28 07:56:23 +02:00
Warren cf47fb99f2 An initial test of seeing if Serilog is setup & can write out to a new file 2018-07-27 16:19:44 +01:00
Warren 5659624879 Adds Serilogs.Sink.File Nuget package 2018-07-27 15:53:24 +01:00
Jonas Pyfferoen 01b3747956 Rewrite importDocumenttype.aspx to Angular 2018-07-27 16:51:20 +02:00
Warren b774330e4f Updates Logger class to implement & call Serilog methods as opposed to Log4Net
Unsure about the methods that take in args - have commented these out for now (Need to talk with Seb or Stephan about this)
2018-07-27 15:49:40 +01:00
Warren f6d81f397d Adds in Serilog & configures it to add in enrichers from the Nuget package & a custom one for the AppDomainAppId 2018-07-27 15:35:08 +01:00
Warren f6c02fb543 Replaces Log4Net Shutdown in UmbracoAppBase Application_End event with Serilog CloseAndFlush- not 100% sure we need to do this as think LightInject tears it down nicely 2018-07-27 15:32:12 +01:00
Warren 0826928ffa Adds in Serilog.Enrichers.Process & Serilog.Enrichers.Thread Nuget Packages
Removes AppDomainTokenConvertor - as we can add to SeriLog via a custom Enrich Property
2018-07-27 15:30:25 +01:00
Warren 9909add9be Adds in Serilog core logging Nuget package to csproj & NuSpec to make build output happy 2018-07-27 14:38:34 +01:00
Warren 182f72a5f8 Rename init logger method to be non specific to what logging framework we use 2018-07-27 14:37:03 +01:00
Warren a3b018c6b5 Remove lots of classes that was specific to extending/configuring Log4Net further 2018-07-27 14:28:58 +01:00
Warren 9dfe53fef8 Log4Net config files removed from disk & CSProj
Removes references to Log4Net from Web.Config's
2018-07-27 14:15:34 +01:00
Warren dca7fb1763 Remove Log4Net from Umbraco.Web.UI AssemblyInfo 2018-07-27 13:59:59 +01:00
Warren ac8d3579be Remove log4net of the types/assemblies to ignore TypeFinding checking in 2018-07-27 13:57:21 +01:00
Warren 6527abffd8 Remove Log4Net from the Core Nuget package Install PowerShell script 2018-07-27 13:53:33 +01:00
Warren e3be68da07 Removes the logic for the Log4Net binding redirect 2018-07-27 13:51:17 +01:00
Warren 20540d9a15 Removes Log4Net NuGet packages & from our NuSpec's for Build scripts 2018-07-27 13:48:29 +01:00
Stephan 2b3807ffee Merge branch temp8 into temp8-11502 2018-07-26 09:58:17 +02:00
Stephan a35f67ecef Refactoring 2018-07-24 15:04:30 +02:00
Stephan 053698baf6 Merge branch andyb/u4-11502 into temp8-11502 2018-07-23 15:12:52 +02:00
AndyButland 1be74589f2 Combined fallback parameters into an array that defines methods and priority to be used. 2018-07-21 15:58:49 +02:00
AndyButland 695f21eadb Removed unnecessary loop in looking up value from a fall-back language.
Put in a check to abort fall-back if there's a loop in language fall-backs.
2018-07-21 09:41:07 +02:00
AndyButland ecc75bc4c9 Allowed delete of langage via services even if used as a fall-back for other languages, by setting references to null before deleting 2018-07-21 08:24:08 +02:00
Stephan b1ef9c5aa8 U4-11502 misc fixes 2018-07-18 12:27:14 +02:00
Stephan b5dc538905 Merge branch 'u4-11502' of https://github.com/AndyButland/Umbraco-CMS into temp8-11502 2018-07-18 11:13:22 +02:00
Nathan Woulfe 021b46120c adjust tree node heights when language picker is rendered 2018-07-18 08:47:04 +10:00
Nathan Woulfe 53cb961234 for discussion... 2018-07-16 14:36:15 +10:00
AndyButland 91a0ee2c93 Refactored to object graph reference of fallback language to just use id 2018-07-12 20:52:02 +01:00
AndyButland d1a31ad8f8 Removed index from fallback language column 2018-07-12 08:12:54 +01:00
AndyButland 50c5b2ed92 Added test for fallback languages 2018-07-11 22:15:58 +01:00
AndyButland f868bc9589 Added fall back language database migration to UmbracoPlan 2018-07-11 09:23:26 +02:00
AndyButland 11871dc4f7 Changed the services reference in the published value fall back via language implementation to constructor injection 2018-07-08 16:14:58 +02:00
AndyButland aadd843c33 Implemented published value fall back via language 2018-07-08 16:14:58 +02:00
AndyButland 3c13b7bd70 Added and updated tests for fall back languages 2018-07-08 16:14:58 +02:00
AndyButland 4e859cd88b Prevent delete of a language used as a fall-back for another language 2018-07-08 16:14:57 +02:00
AndyButland 8a34ec8864 Prevented creation of circular fall-back language paths. Allowed for update to no fall-back language. 2018-07-08 16:14:57 +02:00
AndyButland 53e96b25f6 Save of fall-back language on create and update of language 2018-07-08 16:14:57 +02:00
AndyButland 660fe2d773 Localised fallback language related messages. Filtered out current languge from list of available fall back languages for selection. 2018-07-08 16:14:57 +02:00
AndyButland 592de8bebc Model, retrieval, mapping and display for fall back language editing 2018-07-08 16:14:47 +02:00
James Coxhead 3078be93b6 Remove disabled users option from users list view filter 2018-07-05 21:07:12 +01:00
James Coxhead 0a2fd277a6 U4-11166 Hide disabled users from the users list view 2018-06-28 20:19:02 +01:00
Morten Christensen f5b017ed67 Updates sql to include current schema in queries 2018-06-08 10:44:11 +02:00
Claus 08bf48b8b7 adding the fix for content controller - to support when uploads are done via content. 2018-04-05 11:04:56 +02:00
Claus 8ddda5868e fixes U4-10816 Umbraco V7.7.1 - Media - File upload taking full path 2018-04-05 10:41:08 +02:00
Ronald Barendse 477761a81a Added property editor alias to PreValueDisplayResolver warning and updated key lookup 2018-03-22 10:41:14 +01:00
Nathalie Festin 4512cf0145 Filtering items 'Allow items of type' in mini list view in MNTP 2018-03-11 20:49:43 +01:00
Nathalie Festin 38e9a3d2ee Bug in exclude - Dialogoption.filter 2018-03-11 20:41:51 +01:00
Peter Duncanson 13f42773d7 Added web.config to fonts folder to allow for caching out of the box 2018-03-06 17:02:16 +00:00
Steve Fawcett 71d3c1112e Fix: TinyMCE overlay was showing in front of login overlay 2018-02-27 17:48:53 +00:00
Maciej Sadowski 5bfac6c5b4 fix x alignment in colorpicker in umbraco skin 2018-02-27 09:23:35 +01:00
Dennis Öhman ebae69d00c U4-10962 - Disable stickyheader when nested, fix margins when disabled 2018-02-11 16:58:46 +01:00
Anders Bjerner a8ea535bb2 "Select editor" items shouldn't have a max height 2018-01-22 18:52:54 +01:00
Eyescream 3b231f5138 Update fileupload.controller.js
Uploading a file with a comma in it resulted in an error (because server side there was a split on the comma character). The comma later was replaced with a dash, so it's safe to replace it before sending it to the server.
2017-07-28 15:49:07 +02:00
David Peck 1ece576825 Merge branch 'dev-v7' of https://github.com/umbraco/Umbraco-CMS into U4-8550
Conflicts:
	src/Umbraco.Web.UI/config/umbracoSettings.config
2017-05-30 23:13:33 +01:00
David Peck a2611ce35f Changed the name of IsTemplateAllowed to IsAllowedTemplate to reflect the usage elsewhere and changed the overload of IsAllowedTemplate with the alias parameter to use the template id version to be more DRY 2017-05-30 22:39:26 +01:00
David Peck 7a89580db2 Merge branch 'dev-v7' into U4-8550 2016-11-08 21:06:39 +00:00
David Peck a031551fb2 Rationalised changes in whitespace, to reduce the differences in the PR 2016-11-08 17:59:30 +00:00
David Peck 69728fb5c4 Changed Allowed Templates setting to be validate templates which checks url only 2016-11-08 08:27:18 +00:00
David Peck afd91f8adb Added ability to only allow templates what are allowed by the document type 2016-11-03 16:25:45 +00:00
Patrick Scott d99d5a0b36 Issue U4-5572 convert file name to friendly media item name 2016-11-03 14:30:57 +00:00
1338 changed files with 39671 additions and 41240 deletions
+7 -1
View File
@@ -27,4 +27,10 @@ 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 = _
dotnet_naming_style.prefix_underscore.required_prefix = _
# https://github.com/MicrosoftDocs/visualstudio-docs/blob/master/docs/ide/editorconfig-code-style-settings-reference.md
[*.cs]
csharp_style_var_for_built_in_types = true:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = true:suggestion
View File
View File
@@ -17,7 +17,7 @@ Assume positive intent and try to understand before being understood.
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.
This also goes for treating the HQ with respect. For example: dont promote products on [our.umbraco.com](https://our.umbraco.com) that directly compete with our commercial offerings which enables us to work for a sustainable Umbraco.
## Open
@@ -82,7 +82,7 @@ These wonderful volunteers will provide you with a first reply to your PR, revie
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
- Unsure where to start? Did something not work as expected? Try leaving a note in the ["Contributing to Umbraco"](https://our.umbraco.com/forum/contributing-to-umbraco-cms/) forum, the team monitors that one closely
- We're also [active in the Gitter chatroom](https://gitter.im/umbraco/Umbraco-CMS)
## Code of Conduct
@@ -31,7 +31,7 @@ Before creating bug reports, please check [this list](#before-submitting-a-bug-r
##### 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.
* Most importantly, check **if you can reproduce the problem** in the [latest version of Umbraco](https://our.umbraco.com/download/). We might have already fixed your particular problem.
* It also helps tremendously to check if the issue you're experiencing is present in **a clean install** of the Umbraco version you're currently using. Custom code can have side-effects that don't occur in a clean install.
* **Use the Google**. Whatever you're experiencing, Google it plus "Umbraco" - usually you can get some pretty good hints from the search results, including open issues and further troubleshooting hints.
* If you do find and existing issue has **and the issue is still open**, add a comment to the existing issue if you have additional information. If you have the same problem and no new info to add, just "star" the issue.
@@ -65,13 +65,11 @@ Most of the suggestions in the [reporting bugs](#reporting-bugs) section also co
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/).
* **Explain why this enhancement would be useful to most Umbraco users** and isn't something that can or should be implemented as a [community package](https://our.umbraco.com/projects/).
### Your First Code Contribution
Unsure where to begin contributing to Umbraco? You can start by looking through [these `Up for grabs` and issues](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.
Unsure where to begin contributing to Umbraco? You can start by looking through [these `Up for grabs` and issues](https://issues.umbraco.org/issues?q=&project=U4&tagValue=upforgrabs&release=&issueType=&search=search) or on the [new issue tracker](https://github.com/umbraco/Umbraco-CMS/issues?q=is%3Aopen+is%3Aissue+label%3Acommunity%2Fup-for-grabs).
### Pull Requests
@@ -80,7 +78,7 @@ 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
* New code is commented with documentation from which [the reference documentation](https://our.umbraco.com/documentation/Reference/) is generated
Again, these are guidelines, not strict requirements.
@@ -116,8 +114,8 @@ There's two big areas that you should know about:
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/)
* [The AngularJS based backoffice files](https://our.umbraco.com/apidocs/ui/#/api) (to be found in `src\Umbraco.Web.UI.Client\src`)
* [The rest](https://our.umbraco.com/apidocs/csharp/)
### What branch should I target for my contributions?
@@ -129,7 +127,7 @@ We like to use [Gitflow as much as possible](https://jeffkreeftmeijer.com/git-fl
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.
Alternatively, you can open `src\umbraco.sln` in Visual Studio 2017 (version 15.3 or higher, [the community edition is free](https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15) for you to use to contribute to Open Source projects). In Visual Studio, find the Task Runner Explorer (in the View menu under Other Windows) and run the build task under the gulpfile.
![Gulp build in Visual Studio](img/gulpbuild.png)
@@ -156,4 +154,4 @@ 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))
(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))
+66
View File
@@ -0,0 +1,66 @@
---
name: 🐛 Bug Report
about: File a bug report, if you've discovered a problem in Umbraco.
---
A brief description of the issue goes here.
<!--
If you haven't yet done so, please read the "contributing guidelines"
thoroughly. Then, proceed by filling out the rest of the details in the issue
template below. The more details you can give us, the easier it will be for us
to determine the cause of a problem.
See: https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/.github/CONTRIBUTING.md
-->
Reproduction
------------
If you're filing a bug, please describe how to reproduce it. Include as much
relevant information as possible, such as:
### Bug summary
<!--
* Write a short summary of the bug
* Try to pinpoint it as much as possible
* Try to state the _actual problem_, and not just what you _think_ the
solution might be.
-->
### Specifics
<!--
* Mention the URL where this bug occurs, if applicable
* What version of Umbraco are you using (down to the very last digit!)
* What browser and version you are using
* Please mention if you've checked it in other browsers as well
* Please include *full error messages* and *screenshots* if possible
-->
### Steps to reproduce
<!--
* Clearly mention the steps to reproduce the bug
-->
### Expected result
<!--
* What did you _expect_ that would happen on your Umbraco site?
* Describe the intended/desired outcome after you did the steps mentioned.
-->
### Actual result
<!--
* What is the actual result of the above steps?
* Describe the behaviour of the bug
* Please, please include **error messages** and screenshots. They might mean
nothing to you, but they are _very_ helpful to us.
-->
@@ -0,0 +1,31 @@
---
name: 📮 Feature Request
about: Open a feature request, if you want to propose a new feature.
---
A brief description of your feature request goes here.
<!--
If you want to discuss the feature you're imagining, please make sure to keep
those discussions on the forum at https://our.umbraco.com/ (choose the
category "Contributing to Umbraco", Umbraco HQ follows all new topics there).
Once you've come to a conclusion in the discussion, feel free to propose the
new feature here.
-->
How can you help?
-------------------------------
<!--
The resources (read: available time and effort) of Umbraco's core team are
limited.
If we can not work on your suggestion, please don't take it personally. Most
likely, it's either:
- We think your idea is valid, but we can't find the time to work on it.
- Your idea might be better suited as a package, if it's not suitable for
the majority of users.
-->
@@ -0,0 +1,9 @@
---
name: ⁉️ Support Question
about: Having trouble with Umbraco? -> https://our.umbraco.com
---
This issue tracker is NOT meant for support questions. If you have a question,
please join us on the forum at https://our.umbraco.com.
Thanks!
@@ -0,0 +1,9 @@
---
name: 📖 Documentation Issue
about: See https://github.com/umbraco/UmbracoDocs/issues for documentation issues
---
The Umbraco documentation has its own dedicated repository. Please open your
documentation-related issue at https://github.com/umbraco/UmbracoDocs/issues
Thanks!
@@ -0,0 +1,31 @@
---
name: 🔐 Security Issue
about: Discovered a Security Issue in Umbraco?
---
⚠️ PLEASE DON'T DISCLOSE SECURITY-RELATED ISSUES PUBLICLY, SEE BELOW.
If you have found a security issue in Umbraco, please send the details to
security@umbraco.com and don't disclose it publicly until we can provide a fix for
it. If you wish, we'll credit you for finding verified issues, when we release
the patched version.
❗ Please read more about how to report security issues on https://umbraco.com/security
A note on "Self XSS"
--------------------
Umbraco is a CMS, that allows users to edit content on a website. As such,
all _authenticated users_ can:
- Edit content, and (depending on the field types) insert HTML and CSS in that
content, with a variety of allowed attributes.
- Depending on the user level: Edit template files, and insert C#, HTML, CSS and
javascript in so on.
- Upload files to the site, which will become publicly available.
We see these functionalities as _features_, and not as security issues. Please
report the mentioned items only if they can be performed by non-authorized
users, or other exploitable vulnerabilities.
Thanks!
+11
View File
@@ -0,0 +1,11 @@
### Prerequisites
- [ ] I have [created an issue](https://github.com/umbraco/Umbraco-CMS/issues) for the proposed changes in this PR, the link is:
- [ ] I have added steps to test this contribution in the description below
### Description
<!-- A description of the changes proposed in the pull-request -->
<!-- Make sure to link to the related issue number so we can easily find it in the issue tracker -->
<!-- Thanks for contributing to Umbraco CMS! -->
+12 -2
View File
@@ -1,9 +1,18 @@
_You are browsing the Umbraco v8 branch._
_You are browsing the Umbraco v8 branch. Umbraco 8 is currently under development._
_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)._
When is Umbraco 8 coming?
=========================
When it's ready. We're done with the major parts of the architecture work and are focusing on three seperate tracks to prepare Umbraco 8 for release:
1) Editor Track (_currently in progress_). Without editors, there's no market for Umbraco. So we want to make sure that Umbraco 8 is full of love for editors.
2) Partner Track. Without anyone implementing Umbraco, there's nothing for editors to update. So we want to make sure that Umbraco 8 is a joy to implement
3) Contributor Track. Without our fabulous ecosystem of both individual Umbracians and 3rd party ISVs, Umbraco wouldn't be as rich a platform as it is today. We want to make sure that it's easy, straight forward and as backwards-compatible as possible to create packages for Umbraco
Once a track is done, we start releasing previews where we ask people to test the features we believe are ready. While the testing is going on and we gather feedback, we move on to the next track. This doesn't mean that there hasn't already been work done in the area, but that a track focuses on finalizing, polishing and preparing the features for release.
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)
@@ -48,4 +57,5 @@ Umbraco is contribution focused and community driven. If you want to contribute
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).
You can comment and report issues on the [github issue tracker](https://github.com/umbraco/Umbraco-CMS/issues).
Since [September 2018](https://umbraco.com/blog/a-second-take-on-umbraco-issue-tracker-hello-github-issues/) the old issue tracker is in read only mode, but can still be found at [http://issues.umbraco.org](http://issues.umbraco.org).
@@ -23,7 +23,7 @@ We recommend running the site with the Visual Studio since you'll be able to rem
### 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)_
* _[The process for making code changes in v8 is the same as v7](https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/.github/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
@@ -33,5 +33,5 @@ We recommend running the site with the Visual Studio since you'll be able to rem
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.
There's [a list of tasks for v8 that haven't been completed](https://issues.umbraco.org/issues?q=&project=U4&tagValue=&release=8.0.0&issueType=&resolvedState=open&search=search). 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

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

+1 -1
View File
@@ -1,6 +1,6 @@
# The MIT License (MIT) #
Copyright (c) 2013 Umbraco
Copyright (c) 2013-present Umbraco
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+51 -82
View File
@@ -1,87 +1,56 @@
<?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" />
<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="LightInject" version="[5.1.2,5.999999)" />
<dependency id="LightInject.Annotation" version="[1.1.0,1.999999)" />
<dependency id="LightInject.Web" version="[2.0.0,2.999999)" />
<dependency id="Microsoft.AspNet.Identity.Core" version="[2.2.2,2.999999)" />
<dependency id="Microsoft.AspNet.WebApi.Client" version="[5.2.6,5.999999)" />
<dependency id="Microsoft.Owin" version="[4.0.0,4.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="Semver" version="[2.0.4,2.999999)" />
<dependency id="Serilog" version="[2.7.1,2.999999)" />
<dependency id="Serilog.Enrichers.Process" version="[2.0.1,2.999999)" />
<dependency id="Serilog.Enrichers.Thread" version="[3.0.0,3.999999)" />
<dependency id="Serilog.Filters.Expressions" version="[2.0.0,2.999999)" />
<dependency id="Serilog.Formatting.Compact" version="[1.0.0,1.999999)" />
<dependency id="Serilog.Settings.AppSettings" version="[2.1.2,2.999999)" />
<dependency id="Serilog.Sinks.File" version="[4.0.0,4.999999)" />
<dependency id="Umbraco.SqlServerCE" version="[4.0.0.1,4.999999)" />
<dependency id="NPoco" version="[3.9.4,3.999999)" />
</dependencies>
</metadata>
<files>
<!-- libs -->
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.dll" target="lib\net472\Umbraco.Core.dll" />
<!-- docs -->
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.xml" target="lib\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" />
<!-- docs -->
<file src="$BuildTmp$\WebApp\bin\Umbraco.Core.xml" target="lib\Umbraco.Core.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>
<!-- 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" />
</files>
</package>
+62
View File
@@ -0,0 +1,62 @@
<?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.Web</id>
<version>8.0.0</version>
<title>Umbraco Cms Core Binaries</title>
<authors>Umbraco HQ</authors>
<owners>Umbraco HQ</owners>
<licenseUrl>http://opensource.org/licenses/MIT</licenseUrl>
<projectUrl>http://umbraco.com/</projectUrl>
<iconUrl>http://umbraco.com/media/357769/100px_transparent.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Contains the web assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms package to setup Umbraco in Visual Studio as an ASP.NET project.</description>
<summary>Contains the core assemblies needed to run Umbraco Cms</summary>
<language>en-US</language>
<tags>umbraco</tags>
<dependencies>
<!--
note: dependencies are specified as [x.y.z,x.999999) eg [2.1.0,2.999999) and NOT [2.1.0,3.0.0) because
the latter would pick anything below 3.0.0 and that includes prereleases such as 3.0.0-alpha, and we do
not want this to happen as the alpha of the next major is, really, the next major already.
-->
<dependency id="UmbracoCms.Core" version="[$version$]" />
<dependency id="AutoMapper" version="[7.0.1,7.999999)" />
<dependency id="ClientDependency" version="[1.9.7,1.999999)" />
<dependency id="ClientDependency-Mvc5" version="[1.8.0,1.999999)" />
<dependency id="CSharpTest.Net.Collections" version="[14.906.1403.1082,14.999999)" />
<dependency id="Examine" version="[1.0.0-beta025,1.999999)" />
<dependency id="Lucene.Net.Contrib" version="[3.0.3,3.999999)" />
<dependency id="HtmlAgilityPack" version="[1.8.9,1.999999)" />
<dependency id="ImageProcessor" version="[2.6.2.25,2.999999)" />
<dependency id="LightInject.Mvc" version="[2.0.0,2.999999)" />
<dependency id="LightInject.WebApi" version="[2.0.0,2.999999)" />
<dependency id="Markdown" version="[2.2.1,2.999999)" />
<dependency id="Microsoft.AspNet.Identity.Owin" version="[2.2.2,2.999999)" />
<dependency id="Microsoft.AspNet.Mvc" version="[5.2.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.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="System.Threading.Tasks.Dataflow" version="[4.8.0,4.999999)" />
</dependencies>
</metadata>
<files>
<!-- libs -->
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.dll" target="lib\net472\Umbraco.Web.dll" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Web.UI.dll" target="lib\net472\Umbraco.Web.UI.dll" />
<file src="$BuildTmp$\WebApp\bin\Umbraco.Examine.dll" target="lib\net472\Umbraco.Examine.dll" />
<!-- docs -->
<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" />
<!-- symbols -->
<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.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,59 +1,65 @@
<?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" />
<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.Web" version="[$version$]" />
<!--
note: dependencies are specified as [x.y.z,x.999999) eg [2.1.0,2.999999) and NOT [2.1.0,3.0.0) because
the latter would pick anything below 3.0.0 and that includes prereleases such as 3.0.0-alpha, and we do
not want this to happen as the alpha of the next major is, really, the next major already.
-->
<dependency id="Microsoft.AspNet.SignalR.Core" version="[2.2.3, 2.999999)" />
<dependency id="Umbraco.ModelsBuilder.Ui" version="[8.0.0-alpha.24]" />
<dependency id="ImageProcessor.Web" version="[4.9.3.25,4.999999)" />
<dependency id="ImageProcessor.Web.Config" version="[2.4.1.19,2.999999)" />
<dependency id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="[2.0.0,2.999999)" />
<dependency id="Microsoft.Net.Compilers" version="[2.9.0,2.999999)" />
</dependencies>
</metadata>
<files>
<!-- files -->
<file src="$BuildTmp$\Configs\**" target="Content\Config" exclude="$BuildTmp$\Configs\Web.config.transform" />
<file src="$BuildTmp$\WebApp\Views\**" target="Content\Views" exclude="$BuildTmp$\WebApp\Views\Web.config" />
<file src="$BuildTmp$\WebApp\default.aspx" target="Content\default.aspx" />
<file src="$BuildTmp$\WebApp\Global.asax" target="Content\Global.asax" />
<file src="$BuildTmp$\WebApp\config\BackOfficeTours\**" target="Content\Config\BackOfficeTours" />
<file src="$BuildTmp$\WebApp\Media\Web.config" target="Content\Media\Web.config" />
<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" />
<!-- these files are copied by install.ps1 -->
<file src="$BuildTmp$\WebApp\Web.config" target="UmbracoFiles\Web.config" />
<file src="$BuildTmp$\WebApp\umbraco\**" target="UmbracoFiles\umbraco" />
<file src="$BuildTmp$\WebApp\config\splashes\**" target="UmbracoFiles\Config\splashes" />
<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" />
<!-- tools -->
<!-- beware! install.ps1 not supported by PackageReference -->
<file src="tools\install.ps1" target="tools\install.ps1" />
<file src="tools\Readme.txt" target="tools\Readme.txt" />
<file src="tools\ReadmeUpgrade.txt" target="tools\ReadmeUpgrade.txt" />
<file src="build\**" target="build" />
</files>
<!-- config transforms -->
<!-- beware! config transforms not supported by PackageReference -->
<file src="tools\Web.config.install.xdt" target="Content\Web.config.install.xdt" />
<file src="tools\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" /> <!-- FIXME Content\ !! and then... transform?! -->
<!-- UmbracoCms props and targets -->
<file src="build\**" target="build" />
</files>
</package>
-3
View File
@@ -47,9 +47,6 @@
<CustomFilesToInclude Include=".\umbraco\**\*">
<Dir>umbraco</Dir>
</CustomFilesToInclude>
<CustomFilesToInclude Include=".\umbraco_client\**\*">
<Dir>umbraco_client</Dir>
</CustomFilesToInclude>
<CustomFilesToInclude Include=".\Global.asax">
<Dir>.</Dir>
</CustomFilesToInclude>
+11 -11
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).
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
This NuGet package includes build targets that extend the creation of a deploy package, which is generated by
Publishing from Visual Studio. The targets will only work once Publishing is configured, so if you don't use
Publish this won't affect you.
The following items will now be automatically included when creating a deploy package or publishing to the file
system: umbraco, umbraco_client, config\splashes and global.asax.
The following items will now be automatically included when creating a deploy package or publishing to the file
system: umbraco, config\splashes and global.asax.
Please read the release notes on our.umbraco.com:
http://our.umbraco.com/contribute/releases
https://our.umbraco.com/download/releases
- Umbraco
- Umbraco
+11 -20
View File
@@ -1,39 +1,30 @@
_ _ __ __ ____ _____ _____ ____
| | | | \/ | _ \| __ \ /\ / ____/ __ \
_ _ __ __ ____ _____ _____ ____
| | | | \/ | _ \| __ \ /\ / ____/ __ \
| | | | \ / | |_) | |__) | / \ | | | | | |
| | | | |\/| | _ <| _ / / /\ \| | | | | |
| |__| | | | | |_) | | \ \ / ____ | |___| |__| |
\____/|_| |_|____/|_| \_/_/ \_\_____\____/
\____/|_| |_|____/|_| \_/_/ \_\_____\____/
----------------------------------------------------
*** IMPORTANT NOTICE FOR UPGRADES FROM VERSIONS BELOW 7.7.0 ***
Be sure to read the version specific upgrade information before proceeding:
https://our.umbraco.com/documentation/Getting-Started/Setup/Upgrading/version-specific#version-7-7-0
Depending on the version you are upgrading from, you may need to make some changes to your web.config
and you will need to be aware of the breaking changes listed there to see if these affect your installation.
Don't forget to build!
We've done our best to transform your configuration files but in case something is not quite right: remember we
backed up your files in App_Data\NuGetBackup so you can find the original files before they were transformed.
We've overwritten all the files in the Umbraco and Umbraco_Client folder, these have been backed up in
App_Data\NuGetBackup. We didn't overwrite the UI.xml file nor did we remove any files or folders that you or
a package might have added. Only the existing files were overwritten. If you customized anything then make
We've overwritten all the files in the Umbraco folder, these have been backed up in
App_Data\NuGetBackup. We didn't overwrite the UI.xml file nor did we remove any files or folders that you or
a package might have added. Only the existing files were overwritten. If you customized anything then make
sure to do a compare and merge with the NuGetBackup folder.
This NuGet package includes build targets that extend the creation of a deploy package, which is generated by
This NuGet package includes build targets that extend the creation of a deploy package, which is generated by
Publishing from Visual Studio. The targets will only work once Publishing is configured, so if you don't use
Publish this won't affect you.
The following items will now be automatically included when creating a deploy package or publishing to the file
system: umbraco, umbraco_client, config\splashes and global.asax.
The following items will now be automatically included when creating a deploy package or publishing to the file
system: umbraco, config\splashes and global.asax.
Please read the release notes on our.umbraco.com:
http://our.umbraco.com/contribute/releases
- Umbraco
- Umbraco
@@ -150,10 +150,6 @@
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<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" />
@@ -1,11 +1,11 @@
<?xml version="1.0"?>
<applications xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<add alias="content" icon="traycontent" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="media" icon="traymedia" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="settings" icon="traysettings" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="developer" icon="traydeveloper" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="users" icon="trayusers" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="member" icon="traymember" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="forms" name="Forms" icon="icon-umb-contour" sortOrder="6" xdt:Locator="Match(alias)" xdt:Transform="InsertIfMissing" />
<add alias="translation" icon="traytranslation" sortOrder="7" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon,sortOrder)" />
</applications>
<add alias="content" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="media" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="settings" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="developer" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="users" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="member" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon)" />
<add alias="forms" name="Forms" sortOrder="6" xdt:Locator="Match(alias)" xdt:Transform="InsertIfMissing" />
<add alias="translation" sortOrder="7" xdt:Locator="Match(alias)" xdt:Transform="SetAttributes(icon,sortOrder)" />
</applications>
-1
View File
@@ -33,7 +33,6 @@ if ($project) {
robocopy $umbracoBinFolder $umbracoBinBackupPath /e /LOG:$copyLogsPath\UmbracoBinBackup.log
# Delete files Umbraco ships with
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\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 }
+2 -18
View File
@@ -44,14 +44,6 @@ if ($project) {
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"
@@ -85,15 +77,7 @@ if ($project) {
$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
@@ -159,4 +143,4 @@ if ($project) {
{
$DTE.ItemOperations.OpenFile($toolsPath + '\ReadmeUpgrade.txt')
}
}
}
+16 -9
View File
@@ -69,6 +69,9 @@
$global:node_nodepath = $this.ClearEnvVar("NODEPATH")
$global:node_npmcache = $this.ClearEnvVar("NPM_CONFIG_CACHE")
$global:node_npmprefix = $this.ClearEnvVar("NPM_CONFIG_PREFIX")
# https://github.com/gruntjs/grunt-contrib-connect/issues/235
$this.SetEnvVar("NODE_NO_HTTP2", "1")
})
$ubuild.DefineMethod("RestoreNode",
@@ -78,6 +81,8 @@
$this.SetEnvVar("NODEPATH", $node_nodepath)
$this.SetEnvVar("NPM_CONFIG_CACHE", $node_npmcache)
$this.SetEnvVar("NPM_CONFIG_PREFIX", $node_npmprefix)
$ignore = $this.ClearEnvVar("NODE_NO_HTTP2")
})
$ubuild.DefineMethod("CompileBelle",
@@ -114,17 +119,13 @@
&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
$error.Clear() # that one fails 'cos some files not being removed - ignore
Write-Output "### gulp build for version $($this.Version.Release)" >> $log 2>&1
&gulp build --buildversion=$this.Version.Release >> $log 2>&1
@@ -399,9 +400,15 @@
-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.Web.nuspec" `
-Properties BuildTmp="$($this.BuildTemp)" `
-Version "$($this.Version.Semver.ToString())" `
-Symbols -Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cmsweb.log"
if (-not $?) { throw "Failed to pack NuGet UmbracoCms.Web." }
&$this.BuildEnv.NuGet Pack "$nuspecs\UmbracoCms.nuspec" `
-Properties BuildTmp="$($this.BuildTemp)" `
-Version $this.Version.Semver.ToString() `
-Version "$($this.Version.Semver.ToString())" `
-Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cms.log"
if (-not $?) { throw "Failed to pack NuGet UmbracoCms." }
@@ -417,7 +424,7 @@
$ubuild.DefineMethod("VerifyNuGet",
{
$this.VerifyNuGetConsistency(
("UmbracoCms", "UmbracoCms.Core"),
("UmbracoCms", "UmbracoCms.Core", "UmbracoCms.Web"),
("Umbraco.Core", "Umbraco.Web", "Umbraco.Web.UI", "Umbraco.Examine"))
if ($this.OnError()) { return }
})
@@ -427,7 +434,7 @@
Write-Host "Prepare Azure Gallery"
$this.CopyFile("$($this.SolutionRoot)\build\Azure\azuregalleryrelease.ps1", $this.BuildOutput)
})
$ubuild.DefineMethod("Build",
{
$error.Clear()
@@ -457,6 +464,7 @@
if ($this.OnError()) { return }
$this.PrepareAzureGallery()
if ($this.OnError()) { return }
Write-Host "Done"
})
# ################################################################
@@ -472,5 +480,4 @@
$ubuild.Build()
if ($ubuild.OnError()) { return }
}
Write-Host "Done"
if ($get) { return $ubuild }
-11
View File
@@ -1,11 +0,0 @@
### Prerequisites
- [ ] I have written a descriptive pull-request title
- [ ] I have linked this PR to an issue on the tracker at http://issues.umbraco.org
### Description
<!-- A description of the changes proposed in the pull-request -->
<!-- Thanks for contributing to Umbraco CMS! -->
@@ -8,7 +8,7 @@
<meta name="title" content="{{#title}}{{title}}{{/title}}{{^title}}{{>partials/title}}{{/title}} {{#_appTitle}}| {{_appTitle}} {{/_appTitle}}">
<meta name="generator" content="docfx {{_docfxVersion}}">
{{#_description}}<meta name="description" content="{{_description}}">{{/_description}}
<link rel="icon" type="image/png" href="https://our.umbraco.org/assets/images/app-icons/favicon.png">
<link rel="icon" type="image/png" href="https://our.umbraco.com/assets/images/app-icons/favicon.png">
<link rel="stylesheet" href="{{_rel}}styles/docfx.vendor.css">
<link rel="stylesheet" href="{{_rel}}styles/docfx.css">
<link rel="stylesheet" href="{{_rel}}styles/main.css">
+1 -1
View File
@@ -63,7 +63,7 @@ a:focus {
}
.navbar-header .navbar-brand {
background: url(https://our.umbraco.org/assets/images/logo.svg) left center no-repeat;
background: url(https://our.umbraco.com/assets/images/logo.svg) left center no-repeat;
background-size: 40px auto;
width:50px;
}
+2 -2
View File
@@ -2,7 +2,7 @@
using System.Resources;
[assembly: AssemblyCompany("Umbraco")]
[assembly: AssemblyCopyright("Copyright © Umbraco 2017")]
[assembly: AssemblyCopyright("Copyright © Umbraco 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -19,4 +19,4 @@ using System.Resources;
// these are FYI and changed automatically
[assembly: AssemblyFileVersion("8.0.0")]
[assembly: AssemblyInformationalVersion("8.0.0-alpha.44")]
[assembly: AssemblyInformationalVersion("8.0.0-alpha.52")]
+1 -10
View File
@@ -18,10 +18,7 @@ namespace Umbraco.Core
// this only gets called when an assembly can't be resolved
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
}
private static readonly Regex Log4NetAssemblyPattern = new Regex("log4net, Version=([\\d\\.]+?), Culture=neutral, PublicKeyToken=\\w+$", RegexOptions.Compiled);
private const string Log4NetReplacement = "log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a";
/// <summary>
/// This is used to do an assembly binding redirect via code - normally required due to signature changes in assemblies
/// </summary>
@@ -30,12 +27,6 @@ namespace Umbraco.Core
/// <returns></returns>
private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
//log4net:
if (Log4NetAssemblyPattern.IsMatch(args.Name) && args.Name != Log4NetReplacement)
{
return Assembly.Load(Log4NetAssemblyPattern.Replace(args.Name, Log4NetReplacement));
}
//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
@@ -40,4 +40,4 @@ namespace Umbraco.Core.Collections
public static bool operator !=(CompositeIntStringKey key1, CompositeIntStringKey key2)
=> key1._key2 != key2._key2 || key1._key1 != key2._key1;
}
}
}
@@ -14,30 +14,31 @@ namespace Umbraco.Core.Collections
/// </remarks>
/// <typeparam name="TValue">The type of elements contained in the BindableCollection</typeparam>
/// <typeparam name="TKey">The type of the indexing key</typeparam>
public class ObservableDictionary<TKey, TValue> : ObservableCollection<TValue>
public class ObservableDictionary<TKey, TValue> : ObservableCollection<TValue>, IReadOnlyDictionary<TKey, TValue>, IDictionary<TKey, TValue>
{
protected Dictionary<TKey, int> Indecies = new Dictionary<TKey, int>();
protected Func<TValue, TKey> KeySelector;
protected Dictionary<TKey, int> Indecies { get; }
protected Func<TValue, TKey> KeySelector { get; }
/// <summary>
/// Create new ObservableDictionary
/// </summary>
/// <param name="keySelector">Selector function to create key from value</param>
public ObservableDictionary(Func<TValue, TKey> keySelector)
: base()
/// <param name="equalityComparer">The equality comparer to use when comparing keys, or null to use the default comparer.</param>
public ObservableDictionary(Func<TValue, TKey> keySelector, IEqualityComparer<TKey> equalityComparer = null)
{
if (keySelector == null) throw new ArgumentException("keySelector");
KeySelector = keySelector;
KeySelector = keySelector ?? throw new ArgumentException("keySelector");
Indecies = new Dictionary<TKey, int>(equalityComparer);
}
#region Protected Methods
protected override void InsertItem(int index, TValue item)
{
var key = KeySelector(item);
if (Indecies.ContainsKey(key))
throw new DuplicateKeyException(key.ToString());
if (index != this.Count)
if (index != Count)
{
foreach (var k in Indecies.Keys.Where(k => Indecies[k] >= index).ToList())
{
@@ -47,7 +48,6 @@ namespace Umbraco.Core.Collections
base.InsertItem(index, item);
Indecies[key] = index;
}
protected override void ClearItems()
@@ -56,7 +56,6 @@ namespace Umbraco.Core.Collections
Indecies.Clear();
}
protected override void RemoveItem(int index)
{
var item = this[index];
@@ -71,9 +70,10 @@ namespace Umbraco.Core.Collections
Indecies[k]--;
}
}
#endregion
public virtual bool ContainsKey(TKey key)
public bool ContainsKey(TKey key)
{
return Indecies.ContainsKey(key);
}
@@ -83,10 +83,10 @@ namespace Umbraco.Core.Collections
/// </summary>
/// <param name="key">Key of element to replace</param>
/// <returns></returns>
public virtual TValue this[TKey key]
public TValue this[TKey key]
{
get { return this[Indecies[key]]; }
get => this[Indecies[key]];
set
{
//confirm key matches
@@ -95,7 +95,7 @@ namespace Umbraco.Core.Collections
if (!Indecies.ContainsKey(key))
{
this.Add(value);
Add(value);
}
else
{
@@ -112,9 +112,10 @@ namespace Umbraco.Core.Collections
///
/// <exception cref="InvalidOperationException"></exception>
/// <returns>False if key not found</returns>
public virtual bool Replace(TKey key, TValue value)
public bool Replace(TKey key, TValue value)
{
if (!Indecies.ContainsKey(key)) return false;
//confirm key matches
if (!KeySelector(value).Equals(key))
throw new InvalidOperationException("Key of new value does not match");
@@ -124,11 +125,11 @@ namespace Umbraco.Core.Collections
}
public virtual bool Remove(TKey key)
public bool Remove(TKey key)
{
if (!Indecies.ContainsKey(key)) return false;
this.RemoveAt(Indecies[key]);
RemoveAt(Indecies[key]);
return true;
}
@@ -138,12 +139,13 @@ namespace Umbraco.Core.Collections
/// </summary>
/// <param name="currentKey"></param>
/// <param name="newKey"></param>
public virtual void ChangeKey(TKey currentKey, TKey newKey)
public void ChangeKey(TKey currentKey, TKey newKey)
{
if (!Indecies.ContainsKey(currentKey))
{
throw new InvalidOperationException("No item with the key " + currentKey + "was found in the collection");
}
if (ContainsKey(newKey))
{
throw new DuplicateKeyException(newKey.ToString());
@@ -155,16 +157,81 @@ namespace Umbraco.Core.Collections
Indecies.Add(newKey, currentIndex);
}
internal class DuplicateKeyException : Exception
{
#region IDictionary and IReadOnlyDictionary implementation
public string Key { get; private set; }
public DuplicateKeyException(string key)
: base("Attempted to insert duplicate key " + key + " in collection")
public bool TryGetValue(TKey key, out TValue val)
{
if (Indecies.TryGetValue(key, out var index))
{
Key = key;
val = this[index];
return true;
}
val = default;
return false;
}
/// <summary>
/// Returns all keys
/// </summary>
public IEnumerable<TKey> Keys => Indecies.Keys;
/// <summary>
/// Returns all values
/// </summary>
public IEnumerable<TValue> Values => base.Items;
ICollection<TKey> IDictionary<TKey, TValue>.Keys => Indecies.Keys;
//this will never be used
ICollection<TValue> IDictionary<TKey, TValue>.Values => Values.ToList();
bool ICollection<KeyValuePair<TKey, TValue>>.IsReadOnly => false;
IEnumerator<KeyValuePair<TKey, TValue>> IEnumerable<KeyValuePair<TKey, TValue>>.GetEnumerator()
{
foreach (var i in Values)
{
var key = KeySelector(i);
yield return new KeyValuePair<TKey, TValue>(key, i);
}
}
void IDictionary<TKey, TValue>.Add(TKey key, TValue value)
{
Add(value);
}
void ICollection<KeyValuePair<TKey, TValue>>.Add(KeyValuePair<TKey, TValue> item)
{
Add(item.Value);
}
bool ICollection<KeyValuePair<TKey, TValue>>.Contains(KeyValuePair<TKey, TValue> item)
{
return ContainsKey(item.Key);
}
void ICollection<KeyValuePair<TKey, TValue>>.CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex)
{
throw new NotImplementedException();
}
bool ICollection<KeyValuePair<TKey, TValue>>.Remove(KeyValuePair<TKey, TValue> item)
{
return Remove(item.Key);
}
#endregion
internal class DuplicateKeyException : Exception
{
public DuplicateKeyException(string key)
: base("Attempted to insert duplicate key \"" + key + "\" in collection.")
{
Key = key;
}
public string Key { get; }
}
}
}
@@ -3,7 +3,6 @@ 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;
@@ -11,7 +10,7 @@ using Umbraco.Core.Security;
using Umbraco.Core.Services;
using Umbraco.Core.Services.Implement;
namespace Umbraco.Core.Auditing
namespace Umbraco.Core.Components
{
public sealed class AuditEventsComponent : UmbracoComponentBase, IUmbracoCoreComponent
{
@@ -53,18 +52,6 @@ namespace Umbraco.Core.Auditing
_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;
@@ -255,64 +242,6 @@ namespace Umbraco.Core.Auditing
"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);
+3 -3
View File
@@ -111,15 +111,15 @@ namespace Umbraco.Core.Components
catch (Exception e)
{
// in case of an error, force-dump everything to log
_logger.Info<BootLoader>(() => GetComponentsReport(requirements));
_logger.Error<BootLoader>("Failed to sort components.", e);
_logger.Info<BootLoader>("Component Report:\r\n{ComponentReport}", GetComponentsReport(requirements));
_logger.Error<BootLoader>(e, "Failed to sort compontents.");
throw;
}
// bit verbose but should help for troubleshooting
var text = "Ordered Components: " + Environment.NewLine + string.Join(Environment.NewLine, sortedComponentTypes) + Environment.NewLine;
Console.WriteLine(text);
_logger.Debug<BootLoader>(text);
_logger.Debug<BootLoader>("Ordered Components: {SortedComponentTypes}", sortedComponentTypes);
return sortedComponentTypes;
}
@@ -1,11 +1,9 @@
using System.IO;
using Umbraco.Core.Components;
using Umbraco.Core.Composing;
using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using Umbraco.Core.Manifest;
namespace Umbraco.Core.Strategies
namespace Umbraco.Core.Components
{
[RuntimeLevel(MinLevel = RuntimeLevel.Run)]
public class ManifestWatcherComponent : UmbracoComponentBase, IUmbracoCoreComponent
@@ -1,11 +1,9 @@
using System;
using Umbraco.Core.Components;
using Umbraco.Core.Composing;
using Umbraco.Core.Composing;
using Umbraco.Core.Models;
using Umbraco.Core.Services;
using Umbraco.Core.Services.Implement;
namespace Umbraco.Core.Strategies
namespace Umbraco.Core.Components
{
//TODO: This should just exist in the content service/repo!
[RuntimeLevel(MinLevel = RuntimeLevel.Run)]
@@ -39,8 +37,9 @@ namespace Umbraco.Core.Strategies
Current.Services.AuditService.Add(
AuditType.Copy,
$"Copied content with Id: '{e.Copy.Id}' related to original content with Id: '{e.Original.Id}'",
e.Copy.WriterId, e.Copy.Id);
e.Copy.WriterId,
e.Copy.Id, ObjectTypes.GetName(UmbracoObjectTypes.Document),
$"Copied content with Id: '{e.Copy.Id}' related to original content with Id: '{e.Original.Id}'");
}
}
}
@@ -1,13 +1,11 @@
using System;
using System.Linq;
using Umbraco.Core.Components;
using System.Linq;
using Umbraco.Core.Composing;
using Umbraco.Core.Events;
using Umbraco.Core.Models;
using Umbraco.Core.Services;
using Umbraco.Core.Services.Implement;
namespace Umbraco.Core.Strategies
namespace Umbraco.Core.Components
{
[RuntimeLevel(MinLevel = RuntimeLevel.Run)]
public sealed class RelateOnTrashComponent : UmbracoComponentBase, IUmbracoCoreComponent
@@ -84,11 +82,12 @@ namespace Umbraco.Core.Strategies
relationService.Save(relation);
Current.Services.AuditService.Add(AuditType.Delete,
item.Entity.WriterId,
item.Entity.Id,
ObjectTypes.GetName(UmbracoObjectTypes.Document),
string.Format(textService.Localize(
"recycleBin/contentTrashed"),
item.Entity.Id, originalParentId),
item.Entity.WriterId,
item.Entity.Id);
item.Entity.Id, originalParentId));
}
}
}
@@ -122,11 +121,12 @@ namespace Umbraco.Core.Strategies
var relation = new Relation(originalParentId, item.Entity.Id, relationType);
relationService.Save(relation);
Current.Services.AuditService.Add(AuditType.Delete,
string.Format(textService.Localize(
item.Entity.CreatorId,
item.Entity.Id,
ObjectTypes.GetName(UmbracoObjectTypes.Media),
string.Format(textService.Localize(
"recycleBin/mediaTrashed"),
item.Entity.Id, originalParentId),
item.Entity.CreatorId,
item.Entity.Id);
item.Entity.Id, originalParentId));
}
}
}
@@ -63,8 +63,6 @@ namespace Umbraco.Core.Composing.CompositionRoots
container.RegisterSingleton<IRelationTypeRepository, RelationTypeRepository>();
container.RegisterSingleton<IServerRegistrationRepository, ServerRegistrationRepository>();
container.RegisterSingleton<ITagRepository, TagRepository>();
container.RegisterSingleton<ITaskRepository, TaskRepository>();
container.RegisterSingleton<ITaskTypeRepository, TaskTypeRepository>();
container.RegisterSingleton<ITemplateRepository, TemplateRepository>();
container.RegisterSingleton<IUserGroupRepository, UserGroupRepository>();
container.RegisterSingleton<IUserRepository, UserRepository>();
@@ -28,7 +28,6 @@ namespace Umbraco.Core.Composing.CompositionRoots
// register the services
container.RegisterSingleton<IKeyValueService, KeyValueService>();
container.RegisterSingleton<IPublicAccessService, PublicAccessService>();
container.RegisterSingleton<ITaskService, TaskService>();
container.RegisterSingleton<IDomainService, DomainService>();
container.RegisterSingleton<IAuditService, AuditService>();
container.RegisterSingleton<ITagService, TagService>();
+4
View File
@@ -58,6 +58,7 @@ namespace Umbraco.Core.Composing
// resets *everything* that is 'current'
internal static void Reset()
{
_container?.Dispose();
_container = null;
_shortStringHelper = null;
@@ -158,6 +159,9 @@ namespace Umbraco.Core.Composing
public static IPublishedValueFallback PublishedValueFallback
=> _publishedValueFallback ?? Container.GetInstance<IPublishedValueFallback>() ?? new NoopPublishedValueFallback();
public static IVariationContextAccessor VariationContextAccessor
=> Container.GetInstance<IVariationContextAccessor>();
#endregion
}
}
+4 -5
View File
@@ -148,7 +148,7 @@ namespace Umbraco.Core.Composing
catch (FileNotFoundException ex)
{
//this will occur if it cannot load the assembly
Current.Logger.Error(typeof(TypeFinder), "Could not load assembly App_Code", ex);
Current.Logger.Error(typeof(TypeFinder), ex, "Could not load assembly App_Code");
}
}
}
@@ -224,7 +224,6 @@ namespace Umbraco.Core.Composing
"Dynamic,",
"HtmlDiff,",
"Iesi.Collections,",
"log4net,",
"Microsoft.",
"Newtonsoft.",
"NHibernate.",
@@ -440,7 +439,7 @@ namespace Umbraco.Core.Composing
}
catch (TypeLoadException ex)
{
Current.Logger.Error(typeof(TypeFinder), $"Could not query types on {assembly} assembly, this is most likely due to this assembly not being compatible with the current Umbraco version", ex);
Current.Logger.Error(typeof(TypeFinder), ex, "Could not query types on {Assembly} assembly, this is most likely due to this assembly not being compatible with the current Umbraco version", assembly);
continue;
}
@@ -506,7 +505,7 @@ namespace Umbraco.Core.Composing
}
catch (TypeLoadException ex)
{
Current.Logger.Error(typeof(TypeFinder), $"Could not query types on {assembly} assembly, this is most likely due to this assembly not being compatible with the current Umbraco version", ex);
Current.Logger.Error(typeof(TypeFinder), ex, "Could not query types on {Assembly} assembly, this is most likely due to this assembly not being compatible with the current Umbraco version", assembly);
continue;
}
@@ -573,7 +572,7 @@ namespace Umbraco.Core.Composing
if (NotifiedLoadExceptionAssemblies.Contains(a.FullName) == false)
{
NotifiedLoadExceptionAssemblies.Add(a.FullName);
Current.Logger.Warn(typeof (TypeFinder), ex, $"Could not load all types from {a.GetName().Name}.");
Current.Logger.Warn(typeof (TypeFinder), ex, "Could not load all types from {TypeName}.", a.GetName().Name);
}
}
return rex.Types.WhereNotNull().ToArray();
+8 -8
View File
@@ -494,7 +494,7 @@ namespace Umbraco.Core.Composing
if (--attempts == 0)
throw;
_logger.Logger.Debug<TypeLoader>(() => $"Attempted to get filestream for file {path} failed, {attempts} attempts left, pausing for {pauseMilliseconds} milliseconds");
_logger.Logger.Debug<TypeLoader>("Attempted to get filestream for file {Path} failed, {NumberOfAttempts} attempts left, pausing for {PauseMilliseconds} milliseconds", path, attempts, pauseMilliseconds);
Thread.Sleep(pauseMilliseconds);
}
}
@@ -645,7 +645,7 @@ namespace Umbraco.Core.Composing
if (typeList != null)
{
// need to put some logging here to try to figure out why this is happening: http://issues.umbraco.org/issue/U4-3505
_logger.Logger.Debug<TypeLoader>(() => $"Getting {GetName(baseType, attributeType)}: found a cached type list.");
_logger.Logger.Debug<TypeLoader>("Getting {TypeName}: found a cached type list.", GetName(baseType, attributeType));
return typeList.Types;
}
@@ -676,7 +676,7 @@ namespace Umbraco.Core.Composing
// so in this instance there will never be a result.
if (cacheResult.Exception is CachedTypeNotFoundInFileException || cacheResult.Success == false)
{
_logger.Logger.Debug<TypeLoader>(() => $"Getting {GetName(baseType, attributeType)}: failed to load from cache file, must scan assemblies.");
_logger.Logger.Debug<TypeLoader>("Getting {TypeName}: failed to load from cache file, must scan assemblies.", GetName(baseType, attributeType));
scan = true;
}
else
@@ -695,7 +695,7 @@ namespace Umbraco.Core.Composing
catch (Exception ex)
{
// in case of any exception, we have to exit, and revert to scanning
_logger.Logger.Error<TypeLoader>("Getting " + GetName(baseType, attributeType) + ": failed to load cache file type " + type + ", reverting to scanning assemblies.", ex);
_logger.Logger.Error<TypeLoader>(ex, "Getting {TypeName}: failed to load cache file type {CacheType}, reverting to scanning assemblies.", GetName(baseType, attributeType), type);
scan = true;
break;
}
@@ -703,7 +703,7 @@ namespace Umbraco.Core.Composing
if (scan == false)
{
_logger.Logger.Debug<TypeLoader>(() => $"Getting {GetName(baseType, attributeType)}: loaded types from cache file.");
_logger.Logger.Debug<TypeLoader>("Getting {TypeName}: loaded types from cache file.", GetName(baseType, attributeType));
}
}
}
@@ -711,7 +711,7 @@ namespace Umbraco.Core.Composing
if (scan)
{
// either we had to scan, or we could not get the types from the cache file - scan now
_logger.Logger.Debug<TypeLoader>(() => $"Getting {GetName(baseType, attributeType)}: scanning assemblies.");
_logger.Logger.Debug<TypeLoader>("Getting {TypeName}: scanning assemblies.", GetName(baseType, attributeType));
foreach (var t in finder())
typeList.Add(t);
@@ -729,11 +729,11 @@ namespace Umbraco.Core.Composing
UpdateCache();
}
_logger.Logger.Debug<TypeLoader>(() => $"Got {GetName(baseType, attributeType)}, caching ({added.ToString().ToLowerInvariant()}).");
_logger.Logger.Debug<TypeLoader>("Got {TypeName}, caching ({CacheType}).", GetName(baseType, attributeType), added.ToString().ToLowerInvariant());
}
else
{
_logger.Logger.Debug<TypeLoader>(() => $"Got {GetName(baseType, attributeType)}.");
_logger.Logger.Debug<TypeLoader>("Got {TypeName}.", GetName(baseType, attributeType));
}
return typeList.Types;
@@ -61,7 +61,8 @@ namespace Umbraco.Core.Configuration
var config = WebConfigurationManager.OpenWebConfiguration(appPath);
var settings = (MailSettingsSectionGroup)config.GetSectionGroup("system.net/mailSettings");
if (settings == null || settings.Smtp == null) return false;
// note: "noreply@example.com" is/was the sample SMTP from email - we'll regard that as "not configured"
if (settings == null || settings.Smtp == null || "noreply@example.com".Equals(settings.Smtp.From, StringComparison.OrdinalIgnoreCase)) return false;
if (settings.Smtp.SpecifiedPickupDirectory != null && string.IsNullOrEmpty(settings.Smtp.SpecifiedPickupDirectory.PickupDirectoryLocation) == false)
return true;
if (settings.Smtp.Network != null && string.IsNullOrEmpty(settings.Smtp.Network.Host) == false)
@@ -40,13 +40,15 @@ namespace Umbraco.Core.Configuration.Grid
var gridConfig = Path.Combine(_configFolder.FullName, "grid.editors.config.js");
if (File.Exists(gridConfig))
{
var sourceString = File.ReadAllText(gridConfig);
try
{
editors.AddRange(parser.ParseGridEditors(File.ReadAllText(gridConfig)));
editors.AddRange(parser.ParseGridEditors(sourceString));
}
catch (Exception ex)
{
_logger.Error<GridEditorsConfig>("Could not parse the contents of grid.editors.config.js into a JSON array", ex);
_logger.Error<GridEditorsConfig>(ex, "Could not parse the contents of grid.editors.config.js into a JSON array '{Json}", sourceString);
}
}
@@ -88,7 +88,7 @@ namespace Umbraco.Core.Configuration
if (_healthChecks == null)
{
var ex = new ConfigurationErrorsException("Could not load the " + typeof(IHealthChecks) + " from config file, ensure the web.config and healthchecks.config files are formatted correctly");
Current.Logger.Error<UmbracoConfig>("Config error", ex);
Current.Logger.Error<UmbracoConfig>(ex, "Config error");
throw ex;
}
@@ -103,7 +103,7 @@ namespace Umbraco.Core.Configuration
if (_dashboardSection == null)
{
var ex = new ConfigurationErrorsException("Could not load the " + typeof(IDashboardSection) + " from config file, ensure the web.config and Dashboard.config files are formatted correctly");
Current.Logger.Error<UmbracoConfig>("Config error", ex);
Current.Logger.Error<UmbracoConfig>(ex, "Config error");
throw ex;
}
@@ -162,7 +162,7 @@ namespace Umbraco.Core.Configuration
if (_umbracoSettings == null)
{
var ex = new ConfigurationErrorsException("Could not load the " + typeof (IUmbracoSettingsSection) + " from config file, ensure the web.config and umbracoSettings.config files are formatted correctly");
Current.Logger.Error<UmbracoConfig>("Config error", ex);
Current.Logger.Error<UmbracoConfig>(ex, "Config error");
throw ex;
}
@@ -193,4 +193,4 @@ namespace Umbraco.Core.Configuration
//TODO: Add other configurations here !
}
}
}
@@ -136,6 +136,7 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
bool IContentSection.EnableInheritedMediaTypes => EnableInheritedMediaTypes;
string IContentSection.LoginBackgroundImage => LoginBackgroundImage;
}
}
@@ -1,9 +1,24 @@
using System.Linq;
using System;
using System.Linq;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public static class ContentSectionExtensions
{
/// <summary>
/// Gets a value indicating whether the file extension corresponds to an image.
/// </summary>
/// <param name="extension">The file extension.</param>
/// <param name="contentConfig"></param>
/// <returns>A value indicating whether the file extension corresponds to an image.</returns>
public static bool IsImageFile(this IContentSection contentConfig, string extension)
{
if (contentConfig == null) throw new ArgumentNullException(nameof(contentConfig));
if (extension == null) return false;
extension = extension.TrimStart('.');
return contentConfig.ImageFileTypes.InvariantContains(extension);
}
/// <summary>
/// Determines if file extension is allowed for upload based on (optional) white list and black list
/// held in settings.
@@ -15,5 +30,17 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
(contentSection.AllowedUploadFiles.Any() == false &&
contentSection.DisallowedUploadFiles.Any(x => x.InvariantEquals(extension)) == false);
}
/// <summary>
/// Gets the auto-fill configuration for a specified property alias.
/// </summary>
/// <param name="contentSection"></param>
/// <param name="propertyTypeAlias">The property type alias.</param>
/// <returns>The auto-fill configuration for the specified property alias, or null.</returns>
public static IImagingAutoFillUploadField GetConfig(this IContentSection contentSection, string propertyTypeAlias)
{
var autoFillConfigs = contentSection.ImageAutoFillProperties;
return autoFillConfigs?.FirstOrDefault(x => x.Alias == propertyTypeAlias);
}
}
}
@@ -14,7 +14,7 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
IEnumerable<string> ImageTagAllowedAttributes { get; }
IEnumerable<IImagingAutoFillUploadField> ImageAutoFillProperties { get; }
string ScriptFolderPath { get; }
IEnumerable<string> ScriptFileTypes { get; }
@@ -67,4 +67,4 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
string LoginBackgroundImage { get; }
}
}
}
@@ -8,6 +8,8 @@
bool DisableAlternativeTemplates { get; }
bool ValidateAlternativeTemplates { get; }
bool DisableFindContentByIdPath { get; }
bool DisableRedirectUrlTracking { get; }
@@ -16,5 +18,4 @@
string UmbracoApplicationUrl { get; }
}
}
@@ -5,44 +5,27 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
internal class WebRoutingElement : ConfigurationElement, IWebRoutingSection
{
[ConfigurationProperty("trySkipIisCustomErrors", DefaultValue = "false")]
public bool TrySkipIisCustomErrors
{
get { return (bool) base["trySkipIisCustomErrors"]; }
}
public bool TrySkipIisCustomErrors => (bool) base["trySkipIisCustomErrors"];
[ConfigurationProperty("internalRedirectPreservesTemplate", DefaultValue = "false")]
public bool InternalRedirectPreservesTemplate
{
get { return (bool) base["internalRedirectPreservesTemplate"]; }
}
public bool InternalRedirectPreservesTemplate => (bool) base["internalRedirectPreservesTemplate"];
[ConfigurationProperty("disableAlternativeTemplates", DefaultValue = "false")]
public bool DisableAlternativeTemplates
{
get { return (bool) base["disableAlternativeTemplates"]; }
}
public bool DisableAlternativeTemplates => (bool) base["disableAlternativeTemplates"];
[ConfigurationProperty("validateAlternativeTemplates", DefaultValue = "false")]
public bool ValidateAlternativeTemplates => (bool) base["validateAlternativeTemplates"];
[ConfigurationProperty("disableFindContentByIdPath", DefaultValue = "false")]
public bool DisableFindContentByIdPath
{
get { return (bool) base["disableFindContentByIdPath"]; }
}
public bool DisableFindContentByIdPath => (bool) base["disableFindContentByIdPath"];
[ConfigurationProperty("disableRedirectUrlTracking", DefaultValue = "false")]
public bool DisableRedirectUrlTracking
{
get { return (bool) base["disableRedirectUrlTracking"]; }
}
public bool DisableRedirectUrlTracking => (bool) base["disableRedirectUrlTracking"];
[ConfigurationProperty("urlProviderMode", DefaultValue = "AutoLegacy")]
public string UrlProviderMode
{
get { return (string) base["urlProviderMode"]; }
}
public string UrlProviderMode => (string) base["urlProviderMode"];
[ConfigurationProperty("umbracoApplicationUrl", DefaultValue = null)]
public string UmbracoApplicationUrl
{
get { return (string)base["umbracoApplicationUrl"]; }
}
public string UmbracoApplicationUrl => (string)base["umbracoApplicationUrl"];
}
}
@@ -22,7 +22,7 @@ namespace Umbraco.Core.Configuration
/// <summary>
/// Gets the version comment of the executing code (eg "beta").
/// </summary>
public static string CurrentComment => "alpha.44";
public static string CurrentComment => "alpha.52";
/// <summary>
/// Gets the assembly version of Umbraco.Code.dll.
+11 -2
View File
@@ -13,9 +13,9 @@
public const string Content = "content";
/// <summary>
/// Application alias for the developer section.
/// Application alias for the packages section.
/// </summary>
public const string Developer = "developer";
public const string Packages = "packages";
/// <summary>
/// Application alias for the media section.
@@ -145,6 +145,15 @@
public const string PartialViewMacros = "partialViewMacros";
public static class Groups
{
public const string Settings = "settingsGroup";
public const string Templating = "templatingGroup";
public const string ThirdParty = "thirdPartyGroup";
}
//TODO: Fill in the rest!
}
}
+5 -3
View File
@@ -23,9 +23,6 @@ namespace Umbraco.Core
{
public const string MemberUsernameRuleType = "MemberUsername";
public const string MemberRoleRuleType = "MemberRole";
[Obsolete("No longer supported, this is here for backwards compatibility only")]
public const string MemberIdRuleType = "MemberId";
}
@@ -94,6 +91,11 @@ namespace Umbraco.Core
/// Property alias for the Media's file extension.
/// </summary>
public const string Extension = "umbracoExtension";
/// <summary>
/// The default height/width of an image file if the size can't be determined from the metadata
/// </summary>
public const int DefaultSize = 200;
}
/// <summary>
+3 -1
View File
@@ -13,7 +13,9 @@
public const int Textbox = -88;
public const int Boolean = -49;
public const int Datetime = -36;
public const int DateTime = -36;
public const int DropDownSingle = -39;
public const int DropDownMultiple = -42;
public const int DefaultContentListView = -95;
public const int DefaultMediaListView = -96;
@@ -71,9 +71,6 @@ namespace Umbraco.Core
[Obsolete("This no longer exists in the database")]
internal const string Stylesheet = "9F68DA4F-A3A8-44C2-8226-DCBD125E4840";
[Obsolete("This no longer exists in the database")]
internal const string StylesheetProperty = "5555da4f-a123-42b2-4488-dcdfb25e4111";
// ReSharper restore MemberHidesStaticFromOuterClass
}
+1
View File
@@ -58,6 +58,7 @@
/// </remarks>
public const string RecycleBinMediaPathPrefix = "-1,-21,";
public const int DefaultLabelDataTypeId = -92;
public const string UmbracoConnectionName = "umbracoDbDSN";
public const string UmbracoUpgradePlanName = "Umbraco.Core";
}
@@ -7,12 +7,13 @@ using System.Web;
using System.Xml.Linq;
using Umbraco.Core.Composing;
using Umbraco.Core.IO;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Entities;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Services;
using Umbraco.Core.Services.Implement;
namespace Umbraco.Core.Models
namespace Umbraco.Core
{
public static class ContentExtensions
{
@@ -132,7 +133,7 @@ namespace Umbraco.Core.Models
}
#endregion
/// <summary>
/// Removes characters that are not valide XML characters from all entity properties
/// of type string. See: http://stackoverflow.com/a/961504/5018
@@ -241,31 +242,6 @@ namespace Umbraco.Core.Models
#region SetValue for setting file contents
/// <summary>
/// Sets the posted file value of a property.
/// </summary>
public static void SetValue(this IContentBase content, string propertyTypeAlias, HttpPostedFileBase value, string culture = null, string segment = null)
{
// ensure we get the filename without the path in IE in intranet mode
// http://stackoverflow.com/questions/382464/httppostedfile-filename-different-from-ie
var filename = value.FileName;
var pos = filename.LastIndexOf(@"\", StringComparison.InvariantCulture);
if (pos > 0)
filename = filename.Substring(pos + 1);
// strip any directory info
pos = filename.LastIndexOf(IOHelper.DirSepChar);
if (pos > 0)
filename = filename.Substring(pos + 1);
// get a safe & clean filename
filename = IOHelper.SafeFileName(filename);
if (string.IsNullOrWhiteSpace(filename)) return;
filename = filename.ToLower(); // fixme - er... why?
MediaFileSystem.SetUploadFile(content, propertyTypeAlias, filename, value.InputStream, culture, segment);
}
/// <summary>
/// Sets the posted file value of a property.
/// </summary>
@@ -281,7 +257,31 @@ namespace Umbraco.Core.Models
if (string.IsNullOrWhiteSpace(filename)) return;
filename = filename.ToLower(); // fixme - er... why?
MediaFileSystem.SetUploadFile(content, propertyTypeAlias, filename, filestream, culture, segment);
SetUploadFile(content, propertyTypeAlias, filename, filestream, culture, segment);
}
private static void SetUploadFile(this IContentBase content, string propertyTypeAlias, string filename, Stream filestream, string culture = null, string segment = null)
{
var property = GetProperty(content, propertyTypeAlias);
var oldpath = property.GetValue(culture, segment) is string svalue ? MediaFileSystem.GetRelativePath(svalue) : null;
var filepath = MediaFileSystem.StoreFile(content, property.PropertyType, filename, filestream, oldpath);
property.SetValue(MediaFileSystem.GetUrl(filepath), culture, segment);
}
// gets or creates a property for a content item.
private static Property GetProperty(IContentBase content, string propertyTypeAlias)
{
var property = content.Properties.FirstOrDefault(x => x.Alias.InvariantEquals(propertyTypeAlias));
if (property != null) return property;
var propertyType = content.GetContentType().CompositionPropertyTypes
.FirstOrDefault(x => x.Alias.InvariantEquals(propertyTypeAlias));
if (propertyType == null)
throw new Exception("No property type exists with alias " + propertyTypeAlias + ".");
property = new Property(propertyType);
content.Properties.Add(property);
return property;
}
/// <summary>
@@ -115,7 +115,7 @@ namespace Umbraco.Core
/// <summary>
/// Determines whether a variation varies by culture and segment.
/// </summary>
public static bool VariesByCultureAndSegment(this ContentVariation variation) => (variation & ContentVariation.CultureAndSegment) > 0;
public static bool VariesByCultureAndSegment(this ContentVariation variation) => (variation & ContentVariation.CultureAndSegment) == ContentVariation.CultureAndSegment;
/// <summary>
/// Validates that a combination of culture and segment is valid for the variation.
+1 -12
View File
@@ -92,18 +92,7 @@ namespace Umbraco.Core
}
}
/// <summary>The flatten list.</summary>
/// <param name="e">The items.</param>
/// <param name="f">The select child.</param>
/// <typeparam name="T">Item type</typeparam>
/// <returns>list of TItem</returns>
[EditorBrowsable(EditorBrowsableState.Never)]
[Obsolete("Do not use, use SelectRecursive instead which has far less potential of re-iterating an iterator which may cause significantly more SQL queries")]
public static IEnumerable<T> FlattenList<T>(this IEnumerable<T> e, Func<T, IEnumerable<T>> f)
{
return e.SelectMany(c => f(c).FlattenList(f)).Concat(e);
}
/// <summary>
/// Returns true if all items in the other collection exist in this collection
/// </summary>
+1 -4
View File
@@ -14,10 +14,7 @@ namespace Umbraco.Core.Events
_msgs.Add(msg);
}
public int Count
{
get { return _msgs.Count; }
}
public int Count => _msgs.Count;
public IEnumerable<EventMessage> GetAll()
{
@@ -307,7 +307,7 @@ namespace Umbraco.Core.Events
// fixme see notes above
// delete event args does NOT superceedes 'unpublished' event
if (argType.IsGenericType && argType.GetGenericTypeDefinition() == typeof(PublishEventArgs<>) && infos.EventDefinition.EventName == "UnPublished")
if (argType.IsGenericType && argType.GetGenericTypeDefinition() == typeof(PublishEventArgs<>) && infos.EventDefinition.EventName == "Unpublished")
return false;
// found occurences, need to determine if this event args is superceded
+13 -5
View File
@@ -24,11 +24,19 @@ namespace Umbraco.Core
{
return "Unknown, httpContext is null";
}
if (httpContext.Request == null)
HttpRequestBase request;
try
{
// is not null - throws
request = httpContext.Request;
}
catch
{
return "Unknown, httpContext.Request is null";
}
if (httpContext.Request.ServerVariables == null)
if (request.ServerVariables == null)
{
return "Unknown, httpContext.Request.ServerVariables is null";
}
@@ -37,16 +45,16 @@ namespace Umbraco.Core
try
{
var ipAddress = httpContext.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
var ipAddress = request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(ipAddress))
return httpContext.Request.UserHostAddress;
return request.UserHostAddress;
var addresses = ipAddress.Split(',');
if (addresses.Length != 0)
return addresses[0];
return httpContext.Request.UserHostAddress;
return request.UserHostAddress;
}
catch (System.Exception ex)
{
+5 -118
View File
@@ -1,20 +1,15 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using LightInject;
using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Composing;
using Umbraco.Core.Exceptions;
using Umbraco.Core.IO.MediaPathSchemes;
using Umbraco.Core.Logging;
using Umbraco.Core.Media;
using Umbraco.Core.Media.Exif;
using Umbraco.Core.Models;
namespace Umbraco.Core.IO
@@ -32,8 +27,6 @@ namespace Umbraco.Core.IO
// dependencies, so we have to rely on property injection for anything we might need
Current.Container.InjectProperties(this);
MediaPathScheme.Initialize(this);
UploadAutoFillProperties = new UploadAutoFillProperties(this, Logger, ContentConfig);
}
[Inject]
@@ -44,9 +37,7 @@ namespace Umbraco.Core.IO
[Inject]
internal ILogger Logger { get; set; }
internal UploadAutoFillProperties UploadAutoFillProperties { get; }
/// <summary>
/// Deletes all files passed in.
/// </summary>
@@ -111,7 +102,7 @@ namespace Umbraco.Core.IO
}
catch (Exception e)
{
Logger.Error<MediaFileSystem>("Failed to delete attached file \"" + file + "\".", e);
Logger.Error<MediaFileSystem>(e, "Failed to delete attached file '{File}'", file);
}
});
}
@@ -213,113 +204,9 @@ namespace Umbraco.Core.IO
return filepath;
}
// gets or creates a property for a content item.
private static Property GetProperty(IContentBase content, string propertyTypeAlias)
{
var property = content.Properties.FirstOrDefault(x => x.Alias.InvariantEquals(propertyTypeAlias));
if (property != null) return property;
var propertyType = content.GetContentType().CompositionPropertyTypes
.FirstOrDefault(x => x.Alias.InvariantEquals(propertyTypeAlias));
if (propertyType == null)
throw new Exception("No property type exists with alias " + propertyTypeAlias + ".");
property = new Property(propertyType);
content.Properties.Add(property);
return property;
}
// fixme - what's below belongs to the upload property editor, not the media filesystem!
public void SetUploadFile(IContentBase content, string propertyTypeAlias, string filename, Stream filestream, string culture = null, string segment = null)
{
var property = GetProperty(content, propertyTypeAlias);
var oldpath = property.GetValue(culture, segment) is string svalue ? GetRelativePath(svalue) : null;
var filepath = StoreFile(content, property.PropertyType, filename, filestream, oldpath);
property.SetValue(GetUrl(filepath), culture, segment);
SetUploadFile(content, property, filepath, filestream, culture, segment);
}
public void SetUploadFile(IContentBase content, string propertyTypeAlias, string filepath, string culture = null, string segment = null)
{
var property = GetProperty(content, propertyTypeAlias);
// fixme delete?
var oldpath = property.GetValue(culture, segment) is string svalue ? GetRelativePath(svalue) : null;
if (string.IsNullOrWhiteSpace(oldpath) == false && oldpath != filepath)
DeleteFile(oldpath);
property.SetValue(GetUrl(filepath), culture, segment);
using (var filestream = OpenFile(filepath))
{
SetUploadFile(content, property, filepath, filestream, culture, segment);
}
}
// sets a file for the FileUpload property editor
// ie generates thumbnails and populates autofill properties
private void SetUploadFile(IContentBase content, Property property, string filepath, Stream filestream, string culture = null, string segment = null)
{
// will use filepath for extension, and filestream for length
UploadAutoFillProperties.Populate(content, property.Alias, filepath, filestream, culture, segment);
}
#endregion
#region Image
/// <summary>
/// Gets a value indicating whether the file extension corresponds to an image.
/// </summary>
/// <param name="extension">The file extension.</param>
/// <returns>A value indicating whether the file extension corresponds to an image.</returns>
public bool IsImageFile(string extension)
{
if (extension == null) return false;
extension = extension.TrimStart('.');
return ContentConfig.ImageFileTypes.InvariantContains(extension);
}
/// <summary>
/// Gets the dimensions of an image.
/// </summary>
/// <param name="stream">A stream containing the image bytes.</param>
/// <returns>The dimension of the image.</returns>
/// <remarks>First try with EXIF as it is faster and does not load the entire image
/// in memory. Fallback to GDI which means loading the image in memory and thus
/// use potentially large amounts of memory.</remarks>
public Size GetDimensions(Stream stream)
{
//Try to load with exif
try
{
var jpgInfo = ImageFile.FromStream(stream);
if (jpgInfo.Format != ImageFileFormat.Unknown
&& jpgInfo.Properties.ContainsKey(ExifTag.PixelYDimension)
&& jpgInfo.Properties.ContainsKey(ExifTag.PixelXDimension))
{
var height = Convert.ToInt32(jpgInfo.Properties[ExifTag.PixelYDimension].Value);
var width = Convert.ToInt32(jpgInfo.Properties[ExifTag.PixelXDimension].Value);
if (height > 0 && width > 0)
{
return new Size(width, height);
}
}
}
catch (Exception)
{
//We will just swallow, just means we can't read exif data, we don't want to log an error either
}
//we have no choice but to try to read in via GDI
using (var image = Image.FromStream(stream))
{
var fileWidth = image.Width;
var fileHeight = image.Height;
return new Size(fileWidth, fileHeight);
}
}
#endregion
}
}
+6 -6
View File
@@ -73,11 +73,11 @@ namespace Umbraco.Core.IO
}
catch (UnauthorizedAccessException ex)
{
Current.Logger.Error<PhysicalFileSystem>("Not authorized to get directories", ex);
Current.Logger.Error<PhysicalFileSystem>(ex, "Not authorized to get directories for '{Path}'", fullPath);
}
catch (DirectoryNotFoundException ex)
{
Current.Logger.Error<PhysicalFileSystem>("Directory not found", ex);
Current.Logger.Error<PhysicalFileSystem>(ex, "Directory not found for '{Path}'", fullPath);
}
return Enumerable.Empty<string>();
@@ -109,7 +109,7 @@ namespace Umbraco.Core.IO
}
catch (DirectoryNotFoundException ex)
{
Current.Logger.Error<PhysicalFileSystem>("Directory not found", ex);
Current.Logger.Error<PhysicalFileSystem>(ex, "Directory not found for '{Path}'", fullPath);
}
}
@@ -189,11 +189,11 @@ namespace Umbraco.Core.IO
}
catch (UnauthorizedAccessException ex)
{
Current.Logger.Error<PhysicalFileSystem>("Not authorized to get directories", ex);
Current.Logger.Error<PhysicalFileSystem>(ex, "Not authorized to get directories for '{Path}'", fullPath);
}
catch (DirectoryNotFoundException ex)
{
Current.Logger.Error<PhysicalFileSystem>("Directory not found", ex);
Current.Logger.Error<PhysicalFileSystem>(ex, "Directory not found for '{FullPath}'", fullPath);
}
return Enumerable.Empty<string>();
@@ -226,7 +226,7 @@ namespace Umbraco.Core.IO
}
catch (FileNotFoundException ex)
{
Current.Logger.Info<PhysicalFileSystem>(() => $"DeleteFile failed with FileNotFoundException: {ex.InnerException}");
Current.Logger.Error<PhysicalFileSystem>(ex.InnerException, "DeleteFile failed with FileNotFoundException for '{Path}'", fullPath);
}
}
+2 -2
View File
@@ -54,7 +54,7 @@ namespace Umbraco.Core.IO
}
_logger = logger;
_logger.Debug<ShadowFileSystems>(() => "Shadow " + id + ".");
_logger.Debug<ShadowFileSystems>("Shadow '{ShadowId}'", id);
_id = id;
_wrappers = wrappers;
@@ -112,7 +112,7 @@ namespace Umbraco.Core.IO
{
lock (Locker)
{
_logger.Debug<ShadowFileSystems>(() => "UnShadow " + _id + " (" + (_completed ? "complete" : "abort") + ").");
_logger.Debug<ShadowFileSystems>("UnShadow '{ShadowId}' {Status}", _id, _completed ? "complete" : "abort");
var exceptions = new List<Exception>();
foreach (var wrapper in _wrappers)
+3 -6
View File
@@ -6,10 +6,7 @@ namespace Umbraco.Core.IO
//all paths has a starting but no trailing /
public class SystemDirectories
{
//TODO: Why on earth is this even configurable? You cannot change the /Bin folder in ASP.Net
public static string Bin => IOHelper.ReturnPath("umbracoBinDirectory", "~/bin");
public static string Base => IOHelper.ReturnPath("umbracoBaseDirectory", "~/base");
public static string Bin => "~/bin";
public static string Config => IOHelper.ReturnPath("umbracoConfigDirectory", "~/config");
@@ -19,6 +16,7 @@ namespace Umbraco.Core.IO
public static string Install => IOHelper.ReturnPath("umbracoInstallPath", "~/install");
//TODO: Consider removing this
public static string Masterpages => IOHelper.ReturnPath("umbracoMasterPagesPath", "~/masterpages");
//NOTE: this is not configurable and shouldn't need to be
@@ -40,8 +38,7 @@ namespace Umbraco.Core.IO
public static string Umbraco => IOHelper.ReturnPath("umbracoPath", "~/umbraco");
public static string UmbracoClient => IOHelper.ReturnPath("umbracoClientPath", "~/umbraco_client");
//TODO: Consider removing this
public static string UserControls => IOHelper.ReturnPath("umbracoUsercontrolsPath", "~/usercontrols");
public static string WebServices => IOHelper.ReturnPath("umbracoWebservicesPath", Umbraco.EnsureEndsWith("/") + "webservices");
@@ -1,21 +0,0 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
namespace Umbraco.Core.Logging
{
/// <summary>
/// Allows for outputting a normalized appdomainappid token in a log format
/// </summary>
public sealed class AppDomainTokenConverter : log4net.Util.PatternConverter
{
protected override void Convert(TextWriter writer, object state)
{
writer.Write(HttpRuntime.AppDomainAppId.ReplaceNonAlphanumericChars(string.Empty));
}
}
}
@@ -1,121 +0,0 @@
using log4net.Appender;
using log4net.Core;
using log4net.Util;
using System;
using System.Runtime.Remoting.Messaging;
namespace Umbraco.Core.Logging
{
/// <summary>
/// Borrowed from https://github.com/cjbhaines/Log4Net.Async - will reference Nuget packages directly in v8
/// </summary>
public abstract class AsyncForwardingAppenderBase : ForwardingAppender
{
#region Private Members
private const FixFlags DefaultFixFlags = FixFlags.Partial;
private FixFlags fixFlags = DefaultFixFlags;
private LoggingEventHelper loggingEventHelper;
#endregion Private Members
#region Properties
public FixFlags Fix
{
get { return fixFlags; }
set { SetFixFlags(value); }
}
/// <summary>
/// Returns HttpContext.Current
/// </summary>
protected internal object HttpContext
{
get
{
return CallContext.HostContext;
}
set
{
CallContext.HostContext = value;
}
}
/// <summary>
/// The logger name that will be used for logging internal errors.
/// </summary>
protected abstract string InternalLoggerName { get; }
public abstract int? BufferSize { get; set; }
#endregion Properties
public override void ActivateOptions()
{
base.ActivateOptions();
loggingEventHelper = new LoggingEventHelper(InternalLoggerName, DefaultFixFlags);
InitializeAppenders();
}
#region Appender Management
public override void AddAppender(IAppender newAppender)
{
base.AddAppender(newAppender);
SetAppenderFixFlags(newAppender);
}
private void SetFixFlags(FixFlags newFixFlags)
{
if (newFixFlags != fixFlags)
{
loggingEventHelper.Fix = newFixFlags;
fixFlags = newFixFlags;
InitializeAppenders();
}
}
private void InitializeAppenders()
{
foreach (var appender in Appenders)
{
SetAppenderFixFlags(appender);
}
}
private void SetAppenderFixFlags(IAppender appender)
{
var bufferingAppender = appender as BufferingAppenderSkeleton;
if (bufferingAppender != null)
{
bufferingAppender.Fix = Fix;
}
}
#endregion Appender Management
#region Forwarding
protected void ForwardInternalError(string message, Exception exception, Type thisType)
{
LogLog.Error(thisType, message, exception);
var loggingEvent = loggingEventHelper.CreateLoggingEvent(Level.Error, message, exception);
ForwardLoggingEvent(loggingEvent, thisType);
}
protected void ForwardLoggingEvent(LoggingEvent loggingEvent, Type thisType)
{
try
{
base.Append(loggingEvent);
}
catch (Exception exception)
{
LogLog.Error(thisType, "Unable to forward logging event", exception);
}
}
#endregion Forwarding
}
}
@@ -1,5 +1,4 @@
using System;
using System.Linq;
namespace Umbraco.Core.Logging
{
@@ -8,34 +7,79 @@ namespace Umbraco.Core.Logging
/// </summary>
public class DebugDiagnosticsLogger : ILogger
{
public bool IsEnabled(Type reporting, LogLevel level)
=> true;
/// <inheritdoc/>
public void Error(Type reporting, string message, Exception exception = null)
public void Fatal(Type reporting, Exception exception, string message)
{
System.Diagnostics.Debug.WriteLine(message + Environment.NewLine + exception, reporting.FullName);
}
/// <inheritdoc/>
public void Warn(Type reporting, string format)
public void Fatal(Type reporting, Exception exception)
{
System.Diagnostics.Debug.WriteLine(format, reporting.FullName);
System.Diagnostics.Debug.WriteLine(Environment.NewLine + exception, reporting.FullName);
}
/// <inheritdoc/>
public void Warn(Type reporting, Func<string> messageBuilder)
public void Fatal(Type reporting, string message)
{
System.Diagnostics.Debug.WriteLine(messageBuilder(), reporting.FullName);
System.Diagnostics.Debug.WriteLine(message);
}
/// <inheritdoc/>
public void Warn(Type reporting, string format, params object[] args)
public void Fatal(Type reporting, Exception exception, string messageTemplate, params object[] propertyValues)
{
System.Diagnostics.Debug.WriteLine(string.Format(format, args), reporting.FullName);
System.Diagnostics.Debug.WriteLine(MessageTemplates.Render(messageTemplate, propertyValues) + Environment.NewLine + exception, reporting.FullName);
}
/// <inheritdoc/>
public void Warn(Type reporting, string format, params Func<object>[] args)
public void Fatal(Type reporting, string messageTemplate, params object[] propertyValues)
{
System.Diagnostics.Debug.WriteLine(string.Format(format, args.Select(x => x()).ToArray()), reporting.FullName);
System.Diagnostics.Debug.WriteLine(messageTemplate, propertyValues);
}
/// <inheritdoc/>
public void Error(Type reporting, Exception exception, string message)
{
System.Diagnostics.Debug.WriteLine(message + Environment.NewLine + exception, reporting.FullName);
}
/// <inheritdoc/>
public void Error(Type reporting, Exception exception)
{
System.Diagnostics.Debug.WriteLine(Environment.NewLine + exception, reporting.FullName);
}
/// <inheritdoc/>
public void Error(Type reporting, string message)
{
System.Diagnostics.Debug.WriteLine(message);
}
/// <inheritdoc/>
public void Error(Type reporting, Exception exception, string messageTemplate, params object[] propertyValues)
{
System.Diagnostics.Debug.WriteLine(MessageTemplates.Render(messageTemplate, propertyValues) + Environment.NewLine + exception, reporting.FullName);
}
/// <inheritdoc/>
public void Error(Type reporting, string messageTemplate, params object[] propertyValues)
{
System.Diagnostics.Debug.WriteLine(messageTemplate, propertyValues);
}
/// <inheritdoc/>
public void Warn(Type reporting, string message)
{
System.Diagnostics.Debug.WriteLine(message, reporting.FullName);
}
/// <inheritdoc/>
public void Warn(Type reporting, string message, params object[] propertyValues)
{
System.Diagnostics.Debug.WriteLine(MessageTemplates.Render(message, propertyValues), reporting.FullName);
}
/// <inheritdoc/>
@@ -45,21 +89,9 @@ namespace Umbraco.Core.Logging
}
/// <inheritdoc/>
public void Warn(Type reporting, Exception exception, Func<string> messageBuilder)
public void Warn(Type reporting, Exception exception, string message, params object[] propertyValues)
{
System.Diagnostics.Debug.WriteLine(messageBuilder() + Environment.NewLine + exception, reporting.FullName);
}
/// <inheritdoc/>
public void Warn(Type reporting, Exception exception, string format, params object[] args)
{
System.Diagnostics.Debug.WriteLine(string.Format(format + Environment.NewLine + exception, args), reporting.FullName);
}
/// <inheritdoc/>
public void Warn(Type reporting, Exception exception, string format, params Func<object>[] args)
{
System.Diagnostics.Debug.WriteLine(string.Format(format + Environment.NewLine + exception, args.Select(x => x()).ToArray()), reporting.FullName);
System.Diagnostics.Debug.WriteLine(MessageTemplates.Render(message + Environment.NewLine + exception, propertyValues), reporting.FullName);
}
/// <inheritdoc/>
@@ -69,21 +101,9 @@ namespace Umbraco.Core.Logging
}
/// <inheritdoc/>
public void Info(Type reporting, Func<string> messageBuilder)
public void Info(Type reporting, string messageTemplate, params object[] propertyValues)
{
System.Diagnostics.Debug.WriteLine(messageBuilder(), reporting.FullName);
}
/// <inheritdoc/>
public void Info(Type reporting, string format, params object[] args)
{
System.Diagnostics.Debug.WriteLine(string.Format(format, args), reporting.FullName);
}
/// <inheritdoc/>
public void Info(Type reporting, string format, params Func<object>[] args)
{
System.Diagnostics.Debug.WriteLine(string.Format(format, args.Select(x => x()).ToArray()), reporting.FullName);
System.Diagnostics.Debug.WriteLine(MessageTemplates.Render(messageTemplate, propertyValues), reporting.FullName);
}
/// <inheritdoc/>
@@ -93,21 +113,21 @@ namespace Umbraco.Core.Logging
}
/// <inheritdoc/>
public void Debug(Type reporting, Func<string> messageBuilder)
public void Debug(Type reporting, string messageTemplate, params object[] propertyValues)
{
System.Diagnostics.Debug.WriteLine(messageBuilder(), reporting.FullName);
System.Diagnostics.Debug.WriteLine(MessageTemplates.Render(messageTemplate, propertyValues), reporting.FullName);
}
/// <inheritdoc/>
public void Debug(Type reporting, string format, params object[] args)
public void Verbose(Type reporting, string message)
{
System.Diagnostics.Debug.WriteLine(string.Format(format, args), reporting.FullName);
System.Diagnostics.Debug.WriteLine(message, reporting.FullName);
}
/// <inheritdoc/>
public void Debug(Type reporting, string format, params Func<object>[] args)
public void Verbose(Type reporting, string messageTemplate, params object[] propertyValues)
{
System.Diagnostics.Debug.WriteLine(string.Format(format, args.Select(x => x()).ToArray()), reporting.FullName);
System.Diagnostics.Debug.WriteLine(MessageTemplates.Render(messageTemplate, propertyValues), reporting.FullName);
}
}
}
@@ -1,8 +1,7 @@
using System;
using System.Diagnostics;
using Umbraco.Core.Logging;
namespace Umbraco.Core
namespace Umbraco.Core.Logging
{
/// <summary>
/// Starts the timer and invokes a callback upon disposal. Provides a simple way of timing an operation by wrapping it in a <code>using</code> (C#) statement.
@@ -10,7 +9,7 @@ namespace Umbraco.Core
public class DisposableTimer : DisposableObjectSlim
{
private readonly ILogger _logger;
private readonly LogType? _logType;
private readonly LogLevel _level;
private readonly Type _loggerType;
private readonly int _thresholdMilliseconds;
private readonly IDisposable _profilerStep;
@@ -18,39 +17,33 @@ namespace Umbraco.Core
private string _failMessage;
private Exception _failException;
private bool _failed;
internal enum LogType
{
Debug, Info
}
private readonly string _timingId;
// internal - created by profiling logger
internal DisposableTimer(ILogger logger, LogType logType, IProfiler profiler, Type loggerType,
internal DisposableTimer(ILogger logger, LogLevel level, IProfiler profiler, Type loggerType,
string startMessage, string endMessage, string failMessage = null,
int thresholdMilliseconds = 0)
{
if (logger == null) throw new ArgumentNullException(nameof(logger));
if (loggerType == null) throw new ArgumentNullException(nameof(loggerType));
_logger = logger;
_logType = logType;
_loggerType = loggerType;
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
_level = level;
_loggerType = loggerType ?? throw new ArgumentNullException(nameof(loggerType));
_endMessage = endMessage;
_failMessage = failMessage;
_thresholdMilliseconds = thresholdMilliseconds < 0 ? 0 : thresholdMilliseconds;
_timingId = Guid.NewGuid().ToString("N").Substring(0, 7); // keep it short-ish
if (thresholdMilliseconds == 0)
{
switch (logType)
switch (_level)
{
case LogType.Debug:
logger.Debug(loggerType, startMessage);
case LogLevel.Debug:
logger.Debug(loggerType, "{StartMessage} [Timing {TimingId}]", startMessage, _timingId);
break;
case LogType.Info:
logger.Info(loggerType, startMessage);
case LogLevel.Information:
logger.Info(loggerType, "{StartMessage} [Timing {TimingId}]", startMessage, _timingId);
break;
default:
throw new ArgumentOutOfRangeException(nameof(logType));
throw new ArgumentOutOfRangeException(nameof(level));
}
}
@@ -86,20 +79,20 @@ namespace Umbraco.Core
_profilerStep?.Dispose();
if ((Stopwatch.ElapsedMilliseconds >= _thresholdMilliseconds || _failed)
&& _logType.HasValue && _loggerType != null && _logger != null
&& _loggerType != null && _logger != null
&& (_endMessage.IsNullOrWhiteSpace() == false || _failed))
{
if (_failed)
{
_logger.Error(_loggerType, $"{_failMessage} ({Stopwatch.ElapsedMilliseconds}ms)", _failException);
_logger.Error(_loggerType, _failException, "{FailMessage} ({Duration}ms) [Timing {TimingId}]", _failMessage, Stopwatch.ElapsedMilliseconds, _timingId);
}
else switch (_logType)
else switch (_level)
{
case LogType.Debug:
_logger.Debug(_loggerType, () => $"{_endMessage} ({Stopwatch.ElapsedMilliseconds}ms)");
case LogLevel.Debug:
_logger.Debug(_loggerType, "{EndMessage} ({Duration}ms) [Timing {TimingId}]", _endMessage, Stopwatch.ElapsedMilliseconds, _timingId);
break;
case LogType.Info:
_logger.Info(_loggerType, () => $"{_endMessage} ({Stopwatch.ElapsedMilliseconds}ms)");
case LogLevel.Information:
_logger.Info(_loggerType, "{EndMessage} ({Duration}ms) [Timing {TimingId}]", _endMessage, Stopwatch.ElapsedMilliseconds, _timingId);
break;
// filtered in the ctor
//default:
+116 -14
View File
@@ -1,22 +1,105 @@
using System;
using System.ComponentModel;
namespace Umbraco.Core.Logging
{
/// <summary>
/// Defines the logging service.
/// </summary>
/// <remarks>
/// <para>Message templates in logging methods follow the Message Templates specification
/// available at https://messagetemplates.org/ in order to support structured logging.</para>
/// <para>Implementations must ensure that they support these templates. Note that the
/// specification includes support for traditional C# numeric placeholders.</para>
/// <para>For instance, "Processed {Input} in {Time}ms."</para>
/// </remarks>
public interface ILogger
{
/// <summary>
/// Determines if logging is enabled at a specified level, for a reporting type.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="level">The level.</param>
bool IsEnabled(Type reporting, LogLevel level);
/// <summary>
/// Logs a fatal message with an exception.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="exception">An exception.</param>
/// <param name="message">A message.</param>
void Fatal(Type reporting, Exception exception, string message);
/// <summary>
/// Logs a fatal exception.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="exception">An exception.</param>
/// <remarks>The message string is unspecified and is implementation-specific.</remarks>
void Fatal(Type reporting, Exception exception);
/// <summary>
/// Logs a fatal message.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="message">A message.</param>
void Fatal(Type reporting, string message);
/// <summary>
/// Logs a fatal message with an exception.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="exception">An exception.</param>
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
void Fatal(Type reporting, Exception exception, string messageTemplate, params object[] propertyValues);
/// <summary>
/// Logs a fatal message.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
void Fatal(Type reporting, string messageTemplate, params object[] propertyValues);
/// <summary>
/// Logs an error message with an exception.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="exception">An exception.</param>
/// <param name="message">A message.</param>
void Error(Type reporting, Exception exception, string message);
/// <summary>
/// Logs an error exception.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="exception">An exception.</param>
/// <remarks>The message string is unspecified and is implementation-specific.</remarks>
void Error(Type reporting, Exception exception);
/// <summary>
/// Logs an error message.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="message">A message.</param>
/// <param name="exception">An exception.</param>
void Error(Type reporting, string message, Exception exception = null);
void Error(Type reporting, string message);
// note: should we have more overloads for Error too?
/// <summary>
/// Logs an error message with an exception.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="exception">An exception.</param>
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
void Error(Type reporting, Exception exception, string messageTemplate, params object[] propertyValues);
/// <summary>
/// Logs an error message.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
void Error(Type reporting, string messageTemplate, params object[] propertyValues);
/// <summary>
/// Logs a warning message.
@@ -29,8 +112,9 @@ namespace Umbraco.Core.Logging
/// Logs a warning message.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="messageBuilder">A message builder.</param>
void Warn(Type reporting, Func<string> messageBuilder);
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
void Warn(Type reporting, string messageTemplate, params object[] propertyValues);
/// <summary>
/// Logs a warning message with an exception.
@@ -45,8 +129,9 @@ namespace Umbraco.Core.Logging
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="exception">An exception.</param>
/// <param name="messageBuilder">A message builder.</param>
void Warn(Type reporting, Exception exception, Func<string> messageBuilder);
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
void Warn(Type reporting, Exception exception, string messageTemplate, params object[] propertyValues);
/// <summary>
/// Logs an information message.
@@ -56,11 +141,12 @@ namespace Umbraco.Core.Logging
void Info(Type reporting, string message);
/// <summary>
/// Logs an information message.
/// Logs a info message.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="messageBuilder">A message builder.</param>
void Info(Type reporting, Func<string> messageBuilder);
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
void Info(Type reporting, string messageTemplate, params object[] propertyValues);
/// <summary>
/// Logs a debugging message.
@@ -70,10 +156,26 @@ namespace Umbraco.Core.Logging
void Debug(Type reporting, string message);
/// <summary>
/// Logs a debugging message.
/// Logs a debug message.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="messageBuilder">A message builder.</param>
void Debug(Type reporting, Func<string> messageBuilder);
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
void Debug(Type reporting, string messageTemplate, params object[] propertyValues);
/// <summary>
/// Logs a verbose message.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="message">A message.</param>
void Verbose(Type reporting, string message);
/// <summary>
/// Logs a verbose message.
/// </summary>
/// <param name="reporting">The reporting type.</param>
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
void Verbose(Type reporting, string messageTemplate, params object[] propertyValues);
}
}
-12
View File
@@ -1,12 +0,0 @@
namespace Umbraco.Core.Logging
{
/// <summary>
/// Borrowed from https://github.com/cjbhaines/Log4Net.Async - will reference Nuget packages directly in v8
/// </summary>
/// <typeparam name="T"></typeparam>
internal interface IQueue<T>
{
void Enqueue(T item);
bool TryDequeue(out T ret);
}
}
@@ -0,0 +1,32 @@
using System;
using System.Web;
namespace Umbraco.Core.Logging
{
public static class LogHttpRequest
{
static readonly string RequestIdItemName = typeof(LogHttpRequest).Name + "+RequestId";
/// <summary>
/// Retrieve the id assigned to the currently-executing HTTP request, if any.
/// </summary>
/// <param name="requestId">The request id.</param>
/// <returns><c>true</c> if there is a request in progress; <c>false</c> otherwise.</returns>
public static bool TryGetCurrentHttpRequestId(out Guid requestId)
{
if (HttpContext.Current == null)
{
requestId = default(Guid);
return false;
}
var requestIdItem = HttpContext.Current.Items[RequestIdItemName];
if (requestIdItem == null)
HttpContext.Current.Items[RequestIdItemName] = requestId = Guid.NewGuid();
else
requestId = (Guid)requestIdItem;
return true;
}
}
}
+15
View File
@@ -0,0 +1,15 @@
namespace Umbraco.Core.Logging
{
/// <summary>
/// Specifies the level of a log event.
/// </summary>
public enum LogLevel
{
Verbose,
Debug,
Information,
Warning,
Error,
Fatal
}
}
+2 -2
View File
@@ -24,8 +24,8 @@ namespace Umbraco.Core.Logging
/// <inheritdoc/>
public IDisposable Step(string name)
{
_logger.Debug<LogProfiler>(() => $"Begin: {name}.");
return new LightDisposableTimer(duration => _logger.Info<LogProfiler>(() => $"End {name}. ({duration}ms)"));
_logger.Debug<LogProfiler>("Begin: {ProfileName}", name);
return new LightDisposableTimer(duration => _logger.Info<LogProfiler>("End {ProfileName} ({ProfileDuration}ms)", name, duration));
}
/// <inheritdoc/>
-244
View File
@@ -1,244 +0,0 @@
using System;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Threading;
using log4net;
using log4net.Config;
using Umbraco.Core.Configuration;
using Umbraco.Core.Diagnostics;
using log4net.Util;
namespace Umbraco.Core.Logging
{
///<summary>
/// Implements <see cref="ILogger"/> on top of log4net.
///</summary>
public class Logger : ILogger
{
/// <summary>
/// Initialize a new instance of the <see cref="Logger"/> class with a log4net configuration file.
/// </summary>
/// <param name="log4NetConfigFile"></param>
public Logger(FileInfo log4NetConfigFile)
: this()
{
XmlConfigurator.Configure(log4NetConfigFile);
}
// private for CreateWithDefaultLog4NetConfiguration
private Logger()
{
// add custom global properties to the log4net context that we can use in our logging output
GlobalContext.Properties["processId"] = Process.GetCurrentProcess().Id;
GlobalContext.Properties["appDomainId"] = AppDomain.CurrentDomain.Id;
}
/// <summary>
/// Creates a logger with the default log4net configuration discovered (i.e. from the web.config).
/// </summary>
/// <remarks>Used by UmbracoApplicationBase to get its logger.</remarks>
public static Logger CreateWithDefaultLog4NetConfiguration()
{
return new Logger();
}
/// <inheritdoc/>
public void Error(Type reporting, string message, Exception exception = null)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null) return;
var dump = false;
if (IsTimeoutThreadAbortException(exception))
{
message += "\r\nThe thread has been aborted, because the request has timed out.";
// dump if configured, or if stacktrace contains Monitor.ReliableEnter
dump = UmbracoConfig.For.CoreDebug().DumpOnTimeoutThreadAbort || IsMonitorEnterThreadAbortException(exception);
// dump if it is ok to dump (might have a cap on number of dump...)
dump &= MiniDump.OkToDump();
}
if (dump)
{
try
{
var dumped = MiniDump.Dump(withException: true);
message += dumped
? "\r\nA minidump was created in App_Data/MiniDump"
: "\r\nFailed to create a minidump";
}
catch (Exception e)
{
message += string.Format("\r\nFailed to create a minidump ({0}: {1})", e.GetType().FullName, e.Message);
}
}
logger.Error(message, exception);
}
private static bool IsMonitorEnterThreadAbortException(Exception exception)
{
var abort = exception as ThreadAbortException;
if (abort == null) return false;
var stacktrace = abort.StackTrace;
return stacktrace.Contains("System.Threading.Monitor.ReliableEnter");
}
private static bool IsTimeoutThreadAbortException(Exception exception)
{
var abort = exception as ThreadAbortException;
if (abort == null) return false;
if (abort.ExceptionState == null) return false;
var stateType = abort.ExceptionState.GetType();
if (stateType.FullName != "System.Web.HttpApplication+CancelModuleException") return false;
var timeoutField = stateType.GetField("_timeout", BindingFlags.Instance | BindingFlags.NonPublic);
if (timeoutField == null) return false;
return (bool) timeoutField.GetValue(abort.ExceptionState);
}
/// <inheritdoc/>
public void Warn(Type reporting, string format)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsWarnEnabled == false) return;
logger.Warn(format);
}
/// <inheritdoc/>
public void Warn(Type reporting, Func<string> messageBuilder)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsWarnEnabled == false) return;
logger.Warn(messageBuilder());
}
/// <inheritdoc/>
public void Warn(Type reporting, string format, params object[] args)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsWarnEnabled == false) return;
logger.WarnFormat(format, args);
}
/// <inheritdoc/>
public void Warn(Type reporting, string format, params Func<object>[] args)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsWarnEnabled == false) return;
logger.WarnFormat(format, args.Select(x => x.Invoke()).ToArray());
}
/// <inheritdoc/>
public void Warn(Type reporting, Exception exception, string message)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsWarnEnabled == false) return;
logger.Warn(message, exception);
}
/// <inheritdoc/>
public void Warn(Type reporting, Exception exception, Func<string> messageBuilder)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsWarnEnabled == false) return;
logger.Warn(messageBuilder(), exception);
}
/// <inheritdoc/>
public void Warn(Type reporting, Exception exception, string format, params object[] args)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsWarnEnabled == false) return;
// there is no WarnFormat overload that accepts an exception
// format the message the way log4net would do it (see source code LogImpl.cs)
var message = new SystemStringFormat(CultureInfo.InvariantCulture, format, args);
logger.Warn(message, exception);
}
/// <inheritdoc/>
public void Warn(Type reporting, Exception exception, string format, params Func<object>[] args)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsWarnEnabled == false) return;
// there is no WarnFormat overload that accepts an exception
// format the message the way log4net would do it (see source code LogImpl.cs)
var message = new SystemStringFormat(CultureInfo.InvariantCulture, format, args.Select(x => x.Invoke()).ToArray());
logger.Warn(message, exception);
}
/// <inheritdoc/>
public void Info(Type reporting, string message)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsInfoEnabled == false) return;
logger.Info(message);
}
/// <inheritdoc/>
public void Info(Type reporting, Func<string> generateMessage)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsInfoEnabled == false) return;
logger.Info(generateMessage());
}
/// <inheritdoc/>
public void Info(Type reporting, string format, params object[] args)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsInfoEnabled == false) return;
logger.InfoFormat(format, args);
}
/// <inheritdoc/>
public void Info(Type reporting, string format, params Func<object>[] args)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsInfoEnabled == false) return;
logger.InfoFormat(format, args.Select(x => x.Invoke()).ToArray());
}
/// <inheritdoc/>
public void Debug(Type reporting, string message)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsDebugEnabled == false) return;
logger.Debug(message);
}
/// <inheritdoc/>
public void Debug(Type reporting, Func<string> messageBuilder)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsDebugEnabled == false) return;
logger.Debug(messageBuilder());
}
/// <inheritdoc/>
public void Debug(Type reporting, string format, params object[] args)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsDebugEnabled == false) return;
logger.DebugFormat(format, args);
}
/// <inheritdoc/>
public void Debug(Type reporting, string format, params Func<object>[] args)
{
var logger = LogManager.GetLogger(reporting);
if (logger == null || logger.IsDebugEnabled == false) return;
logger.DebugFormat(format, args.Select(x => x.Invoke()).ToArray());
}
}
}
+121 -48
View File
@@ -1,5 +1,4 @@
using System;
using System.Linq;
namespace Umbraco.Core.Logging
{
@@ -9,16 +8,62 @@ namespace Umbraco.Core.Logging
public static class LoggerExtensions
{
/// <summary>
/// Logs an error message.
/// Determines if logging is enabled at a specified level, for a reporting type.
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="level">The level.</param>
public static bool IsEnabled<T>(this ILogger logger, LogLevel level)
=> logger.IsEnabled(typeof(T), level);
/// <summary>
/// Logs an error message with an exception.
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="message">A message.</param>
/// <param name="exception">An exception.</param>
public static void Error<T>(this ILogger logger, string message, Exception exception = null)
{
logger.Error(typeof(T), message, exception);
}
public static void Error<T>(this ILogger logger, Exception exception, string message)
=> logger.Error(typeof(T), exception, message);
/// <summary>
/// Logs an error message with an exception.
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="exception">An exception.</param>
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
public static void Error<T>(this ILogger logger, Exception exception, string messageTemplate, params object[] propertyValues)
=> logger.Error(typeof(T), exception, messageTemplate, propertyValues);
/// <summary>
/// Logs an error exception.
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="exception">An exception.</param>
public static void Error<T>(this ILogger logger, Exception exception)
=> logger.Error(typeof(T), exception);
/// <summary>
/// Logs an error message.
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="message">A message.</param>
public static void Error<T>(this ILogger logger, string message)
=> logger.Error(typeof(T), message);
/// <summary>
/// Logs an error message.
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
public static void Error<T>(this ILogger logger, string messageTemplate, params object[] propertyValues)
=> logger.Error(typeof(T), messageTemplate, propertyValues);
/// <summary>
/// Logs a warning message.
@@ -27,44 +72,38 @@ namespace Umbraco.Core.Logging
/// <param name="logger">The logger.</param>
/// <param name="message">A message.</param>
public static void Warn<T>(this ILogger logger, string message)
{
logger.Warn(typeof(T), message);
}
=> logger.Warn(typeof(T), message);
/// <summary>
/// Logs a warning message.
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="messageBuilder">A message builder.</param>
public static void Warn<T>(this ILogger logger, Func<string> messageBuilder)
{
logger.Warn(typeof(T), messageBuilder);
}
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
public static void Warn<T>(this ILogger logger, string messageTemplate, params object[] propertyValues)
=> logger.Warn(typeof(T), messageTemplate, propertyValues);
/// <summary>
/// Logs a formatted warning message with an exception.
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="exception">An exception.</param>
/// <param name="messageBuilder">A message builder.</param>
public static void Warn<T>(this ILogger logger, Exception exception, Func<string> messageBuilder)
{
logger.Warn(typeof(T), exception, messageBuilder);
}
/// <summary>
/// Logs a formatted warning message with an exception.
/// Logs a warning message with an exception.
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="exception">An exception.</param>
/// <param name="message">A message.</param>
public static void Warn<T>(this ILogger logger, Exception exception, string message)
{
logger.Warn(typeof(T), exception, message);
}
=> logger.Warn(typeof(T), exception, message);
/// <summary>
/// Logs a warning message with an exception.
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="exception">An exception.</param>
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
public static void Warn<T>(this ILogger logger, Exception exception, string messageTemplate, params object[] propertyValues)
=> logger.Warn(typeof(T), exception, messageTemplate, propertyValues);
/// <summary>
/// Logs an information message.
@@ -73,20 +112,17 @@ namespace Umbraco.Core.Logging
/// <param name="logger">The logger.</param>
/// <param name="message">A message.</param>
public static void Info<T>(this ILogger logger, string message)
{
logger.Info(typeof(T), message);
}
=> logger.Info(typeof(T), message);
/// <summary>
/// Logs an information message.
/// Logs a information message.
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <typeparam name="T">The reporting type</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="messageBuilder">A message builder.</param>
public static void Info<T>(this ILogger logger, Func<string> messageBuilder)
{
logger.Info(typeof(T), messageBuilder);
}
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
public static void Info<T>(this ILogger logger, string messageTemplate, params object[] propertyValues)
=> logger.Info(typeof(T), messageTemplate, propertyValues);
/// <summary>
/// Logs a debugging message.
@@ -95,19 +131,56 @@ namespace Umbraco.Core.Logging
/// <param name="logger">The logger.</param>
/// <param name="message">A message.</param>
public static void Debug<T>(this ILogger logger, string message)
{
logger.Debug(typeof(T), message);
}
=> logger.Debug(typeof(T), message);
/// <summary>
/// Logs a debugging message.
/// </summary>
/// <typeparam name="T">The reporting type</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
public static void Debug<T>(this ILogger logger, string messageTemplate, params object[] propertyValues)
=> logger.Debug(typeof(T), messageTemplate, propertyValues);
/// <summary>
/// Logs a verbose message.
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="messageBuilder">A message builder.</param>
public static void Debug<T>(this ILogger logger, Func<string> messageBuilder)
{
logger.Debug(typeof(T), messageBuilder);
}
/// <param name="message">A message.</param>
public static void Verbose<T>(this ILogger logger, string message)
=> logger.Verbose(typeof(T), message);
/// <summary>
/// Logs a verbose message.
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
public static void Verbose<T>(this ILogger logger, string messageTemplate, params object[] propertyValues)
=> logger.Verbose(typeof(T), messageTemplate, propertyValues);
/// <summary>
/// Logs a fatal message.
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="exception">An exception.</param>
/// <param name="message">A message.</param>
public static void Fatal<T>(this ILogger logger, Exception exception, string message)
=> logger.Fatal(typeof(T), exception, message);
/// <summary>
/// Logs a fatal message.
/// </summary>
/// <typeparam name="T">The reporting type.</typeparam>
/// <param name="logger">The logger.</param>
/// <param name="exception">An exception.</param>
/// <param name="messageTemplate">A message template.</param>
/// <param name="propertyValues">Property values.</param>
public static void Fatal<T>(this ILogger logger, Exception exception, string messageTemplate, params object[] propertyValues)
=> logger.Fatal(typeof(T), exception, messageTemplate, propertyValues);
}
}
@@ -1,20 +0,0 @@
using log4net.Core;
namespace Umbraco.Core.Logging
{
/// <remarks>
/// Borrowed from https://github.com/cjbhaines/Log4Net.Async - will reference Nuget packages directly in v8
/// </remarks>
internal sealed class LoggingEventContext
{
public LoggingEventContext(LoggingEvent loggingEvent, object httpContext)
{
LoggingEvent = loggingEvent;
HttpContext = httpContext;
}
public LoggingEvent LoggingEvent { get; set; }
public object HttpContext { get; set; }
}
}
@@ -1,33 +0,0 @@
using System;
using log4net.Core;
namespace Umbraco.Core.Logging
{
/// <remarks>
/// Borrowed from https://github.com/cjbhaines/Log4Net.Async - will reference Nuget packages directly in v8
/// </remarks>
internal sealed class LoggingEventHelper
{
// needs to be a seperate class so that location is determined correctly by log4net when required
private static readonly Type HelperType = typeof(LoggingEventHelper);
private readonly string loggerName;
public FixFlags Fix { get; set; }
public LoggingEventHelper(string loggerName, FixFlags fix)
{
this.loggerName = loggerName;
Fix = fix;
}
public LoggingEvent CreateLoggingEvent(Level level, string message, Exception exception)
{
var loggingEvent = new LoggingEvent(HelperType, null, loggerName, level, message, exception)
{
Fix = Fix
};
return loggingEvent;
}
}
}
@@ -0,0 +1,35 @@
using System;
using System.Linq;
using Serilog;
namespace Umbraco.Core.Logging
{
/// <summary>
/// Provides tools to support message templates.
/// </summary>
public static class MessageTemplates
{
// Umbraco now uses Message Templates (https://messagetemplates.org/) for logging, which means
// we cannot plainly use string.Format() to format them. There is a work-in-progress C# lib,
// derived from Serilog, which should help (https://github.com/messagetemplates/messagetemplates-csharp)
// but it only has a pre-release NuGet package. So, we've got to use Serilog's code, which
// means we cannot get rid of Serilog entirely. We may want to revisit this at some point.
private static readonly Lazy<global::Serilog.ILogger> MinimalLogger = new Lazy<global::Serilog.ILogger>(() => new LoggerConfiguration().CreateLogger());
public static string Render(string messageTemplate, params object[] args)
{
// by default, unless initialized otherwise, Log.Logger is SilentLogger which cannot bind message
// templates. Log.Logger is set to a true Logger when initializing Umbraco's logger, but in case
// that has not been done already - use a temp minimal logger (eg for tests).
var logger = Log.Logger as global::Serilog.Core.Logger ?? MinimalLogger.Value;
var bound = logger.BindMessageTemplate(messageTemplate, args, out var parsedTemplate, out var boundProperties);
if (!bound)
throw new FormatException($"Could not format message \"{messageTemplate}\" with {args.Length} args.");
return parsedTemplate.Render(boundProperties.ToDictionary(x => x.Name, x => x.Value));
}
}
}
+10 -10
View File
@@ -26,34 +26,34 @@ namespace Umbraco.Core.Logging
switch (eventType)
{
case TraceEventType.Critical:
_logger.Error(_type.Value, string.Format("Event Id: {0}, state: {1}", eventId, state), exception ?? new Exception("Critical error"));
_logger.Fatal(_type.Value, exception, "[{EventType}] Event Id: {EventId}, State: {State}", eventType, eventId, state);
return true;
case TraceEventType.Error:
_logger.Error(_type.Value, string.Format("Event Id: {0}, state: {1}", eventId, state), exception ?? new Exception("Error"));
_logger.Error(_type.Value, exception, "[{EventType}] Event Id: {EventId}, State: {State}", eventType, eventId, state);
return true;
case TraceEventType.Warning:
_logger.Warn(_type.Value, string.Format("Event Id: {0}, state: {1}", eventId, state));
_logger.Warn(_type.Value, "[{EventType}] Event Id: {EventId}, State: {State}", eventType, eventId, state);
return true;
case TraceEventType.Information:
_logger.Info(_type.Value, string.Format("Event Id: {0}, state: {1}", eventId, state));
_logger.Info(_type.Value, "[{EventType}] Event Id: {EventId}, State: {State}", eventType, eventId, state);
return true;
case TraceEventType.Verbose:
_logger.Debug(_type.Value, string.Format("Event Id: {0}, state: {1}", eventId, state));
_logger.Debug(_type.Value, "[{EventType}] Event Id: {EventId}, State: {State}", eventType, eventId, state);
return true;
case TraceEventType.Start:
_logger.Debug(_type.Value, string.Format("Event Id: {0}, state: {1}", eventId, state));
_logger.Debug(_type.Value, "[{EventType}] Event Id: {EventId}, State: {State}", eventType, eventId, state);
return true;
case TraceEventType.Stop:
_logger.Debug(_type.Value, string.Format("Event Id: {0}, state: {1}", eventId, state));
_logger.Debug(_type.Value, "[{EventType}] Event Id: {EventId}, State: {State}", eventType, eventId, state);
return true;
case TraceEventType.Suspend:
_logger.Debug(_type.Value, string.Format("Event Id: {0}, state: {1}", eventId, state));
_logger.Debug(_type.Value, "[{EventType}] Event Id: {EventId}, State: {State}", eventType, eventId, state);
return true;
case TraceEventType.Resume:
_logger.Debug(_type.Value, string.Format("Event Id: {0}, state: {1}", eventId, state));
_logger.Debug(_type.Value, "[{EventType}] Event Id: {EventId}, State: {State}", eventType, eventId, state);
return true;
case TraceEventType.Transfer:
_logger.Debug(_type.Value, string.Format("Event Id: {0}, state: {1}", eventId, state));
_logger.Debug(_type.Value, "[{EventType}] Event Id: {EventId}, State: {State}", eventType, eventId, state);
return true;
default:
throw new ArgumentOutOfRangeException("eventType");
+13 -9
View File
@@ -13,10 +13,8 @@ namespace Umbraco.Core.Logging
public ProfilingLogger(ILogger logger, IProfiler profiler)
{
if (logger == null) throw new ArgumentNullException(nameof(logger));
if (profiler == null) throw new ArgumentNullException(nameof(profiler));
Logger = logger;
Profiler = profiler;
Logger = logger ?? throw new ArgumentNullException(nameof(logger));
Profiler = profiler ?? throw new ArgumentNullException(nameof(profiler));
}
public DisposableTimer TraceDuration<T>(string startMessage)
@@ -26,27 +24,33 @@ namespace Umbraco.Core.Logging
public DisposableTimer TraceDuration<T>(string startMessage, string completeMessage, string failMessage = null)
{
return new DisposableTimer(Logger, DisposableTimer.LogType.Info, Profiler, typeof(T), startMessage, completeMessage, failMessage);
return new DisposableTimer(Logger, LogLevel.Information, Profiler, typeof(T), startMessage, completeMessage, failMessage);
}
public DisposableTimer TraceDuration(Type loggerType, string startMessage, string completeMessage, string failMessage = null)
{
return new DisposableTimer(Logger, DisposableTimer.LogType.Info, Profiler, loggerType, startMessage, completeMessage, failMessage);
return new DisposableTimer(Logger, LogLevel.Information, Profiler, loggerType, startMessage, completeMessage, failMessage);
}
public DisposableTimer DebugDuration<T>(string startMessage)
{
return DebugDuration<T>(startMessage, "Completed.");
return Logger.IsEnabled<T>(LogLevel.Debug)
? DebugDuration<T>(startMessage, "Completed.")
: null;
}
public DisposableTimer DebugDuration<T>(string startMessage, string completeMessage, string failMessage = null, int thresholdMilliseconds = 0)
{
return new DisposableTimer(Logger, DisposableTimer.LogType.Debug, Profiler, typeof(T), startMessage, completeMessage, failMessage, thresholdMilliseconds);
return Logger.IsEnabled<T>(LogLevel.Debug)
? new DisposableTimer(Logger, LogLevel.Debug, Profiler, typeof(T), startMessage, completeMessage, failMessage, thresholdMilliseconds)
: null;
}
public DisposableTimer DebugDuration(Type loggerType, string startMessage, string completeMessage, string failMessage = null, int thresholdMilliseconds = 0)
{
return new DisposableTimer(Logger, DisposableTimer.LogType.Debug, Profiler, loggerType, startMessage, completeMessage, failMessage, thresholdMilliseconds);
return Logger.IsEnabled(loggerType, LogLevel.Debug)
? new DisposableTimer(Logger, LogLevel.Debug, Profiler, loggerType, startMessage, completeMessage, failMessage, thresholdMilliseconds)
: null;
}
}
}
-78
View File
@@ -1,78 +0,0 @@
using System;
namespace Umbraco.Core.Logging
{
/// <summary>
/// Borrowed from https://github.com/cjbhaines/Log4Net.Async - will reference Nuget packages directly in v8
/// </summary>
/// <typeparam name="T"></typeparam>
internal sealed class RingBuffer<T> : IQueue<T>
{
private readonly object lockObject = new object();
private readonly T[] buffer;
private readonly int size;
private int readIndex = 0;
private int writeIndex = 0;
private bool bufferFull = false;
public int Size { get { return size; } }
public event Action<object, EventArgs> BufferOverflow;
public RingBuffer(int size)
{
this.size = size;
buffer = new T[size];
}
public void Enqueue(T item)
{
var bufferWasFull = false;
lock (lockObject)
{
buffer[writeIndex] = item;
writeIndex = (++writeIndex) % size;
if (bufferFull)
{
bufferWasFull = true;
readIndex = writeIndex;
}
else if (writeIndex == readIndex)
{
bufferFull = true;
}
}
if (bufferWasFull)
{
if (BufferOverflow != null)
{
BufferOverflow(this, EventArgs.Empty);
}
}
}
public bool TryDequeue(out T ret)
{
if (readIndex == writeIndex && !bufferFull)
{
ret = default(T);
return false;
}
lock (lockObject)
{
if (readIndex == writeIndex && !bufferFull)
{
ret = default(T);
return false;
}
ret = buffer[readIndex];
buffer[readIndex] = default(T);
readIndex = (++readIndex) % size;
bufferFull = false;
return true;
}
}
}
}
@@ -1,95 +0,0 @@
using System;
using System.IO;
using log4net.Appender;
using log4net.Util;
namespace Umbraco.Core.Logging
{
/// <summary>
/// This class will do the exact same thing as the RollingFileAppender that comes from log4net
/// With the extension, that it is able to do automatic cleanup of the logfiles in the directory where logging happens
///
/// By specifying the properties MaxLogFileDays and BaseFilePattern, the files will automaticly get deleted when
/// the logger is configured(typically when the app starts). To utilize this appender swap out the type of the rollingFile appender
/// that ships with Umbraco, to be Umbraco.Core.Logging.RollingFileCleanupAppender, and add the maxLogFileDays and baseFilePattern elements
/// to the configuration i.e.:
///
/// <example>
/// <appender name="rollingFile" type="Log4netAwesomeness.CustomRollingFileAppender, Log4netAwesomeness">
/// <file type="log4net.Util.PatternString" value="App_Data\Logs\UmbracoTraceLog.%property{log4net:HostName}.txt" />
/// <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
/// <appendToFile value="true" />
/// <rollingStyle value="Date" />
/// <maximumFileSize value="5MB" />
/// <maxLogFileDays value="5"/>
/// <basefilePattern value="UmbracoTraceLog.*.txt.*"/>
/// <layout type="log4net.Layout.PatternLayout">
/// <conversionPattern value=" %date [P%property{processId}/D%property{appDomainId}/T%thread] %-5level %logger - %message%newline" />
/// </layout>
/// <layout type="log4net.Layout.PatternLayout">
/// <conversionPattern value=" %date [P%property{processId}/D%property{appDomainId}/T%thread] %-5level %logger - %message%newline" />
/// </layout>
/// <encoding value="utf-8" />
/// </appender>
/// </example>
/// </summary>
public class RollingFileCleanupAppender : RollingFileAppender
{
public int MaxLogFileDays { get; set; }
public string BaseFilePattern { get; set; }
/// <summary>
/// This override will delete logs older than the specified amount of days
/// </summary>
/// <param name="fileName"></param>
/// <param name="append"></param>
protected override void OpenFile(string fileName, bool append)
{
bool cleanup = true;
// Validate settings and input
if (MaxLogFileDays <= 0)
{
LogLog.Warn(typeof(RollingFileCleanupAppender), "Parameter 'MaxLogFileDays' needs to be a positive integer, aborting cleanup");
cleanup = false;
}
if (string.IsNullOrWhiteSpace(BaseFilePattern))
{
LogLog.Warn(typeof(RollingFileCleanupAppender), "Parameter 'BaseFilePattern' is empty, aborting cleanup");
cleanup = false;
}
// grab the directory we are logging to, as this is were we will search for older logfiles
var logFolder = Path.GetDirectoryName(fileName);
if (Directory.Exists(logFolder) == false)
{
LogLog.Warn(typeof(RollingFileCleanupAppender), string.Format("Directory '{0}' for logfiles does not exist, aborting cleanup", logFolder));
cleanup = false;
}
// If everything is validated, we can do the actual cleanup
if (cleanup)
{
Cleanup(logFolder);
}
base.OpenFile(fileName, append);
}
private void Cleanup(string directoryPath)
{
// only take files that matches the pattern we are using i.e. UmbracoTraceLog.*.txt.*
string[] logFiles = Directory.GetFiles(directoryPath, BaseFilePattern);
LogLog.Debug(typeof(RollingFileCleanupAppender), string.Format("Found {0} files that matches the baseFilePattern: '{1}'", logFiles.Length, BaseFilePattern));
foreach (var logFile in logFiles)
{
DateTime lastAccessTime = System.IO.File.GetLastWriteTimeUtc(logFile);
// take the value from the config file
if (lastAccessTime < DateTime.Now.AddDays(-MaxLogFileDays))
{
LogLog.Debug(typeof(RollingFileCleanupAppender), string.Format("Deleting file {0} as its lastAccessTime is older than {1} days speficied by MaxLogFileDays", logFile, MaxLogFileDays));
base.DeleteFile(logFile);
}
}
}
}
}
@@ -0,0 +1,36 @@
using System;
using Serilog.Core;
using Serilog.Events;
namespace Umbraco.Core.Logging.Serilog.Enrichers
{
/// <summary>
/// Enrich log events with a HttpRequestId GUID.
/// Original source - https://github.com/serilog-web/classic/blob/master/src/SerilogWeb.Classic/Classic/Enrichers/HttpRequestIdEnricher.cs
/// Nupkg: 'Serilog.Web.Classic' contains handlers & extra bits we do not want
/// </summary>
internal class HttpRequestIdEnricher : ILogEventEnricher
{
/// <summary>
/// The property name added to enriched log events.
/// </summary>
public const string HttpRequestIdPropertyName = "HttpRequestId";
/// <summary>
/// Enrich the log event with an id assigned to the currently-executing HTTP request, if any.
/// </summary>
/// <param name="logEvent">The log event to enrich.</param>
/// <param name="propertyFactory">Factory for creating new properties to add to the event.</param>
public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory)
{
if (logEvent == null) throw new ArgumentNullException("logEvent");
Guid requestId;
if (!LogHttpRequest.TryGetCurrentHttpRequestId(out requestId))
return;
var requestIdProperty = new LogEventProperty(HttpRequestIdPropertyName, new ScalarValue(requestId));
logEvent.AddPropertyIfAbsent(requestIdProperty);
}
}
}
@@ -0,0 +1,48 @@
using System;
using System.Threading;
using System.Web;
using Serilog.Core;
using Serilog.Events;
namespace Umbraco.Core.Logging.Serilog.Enrichers
{
/// <summary>
/// Enrich log events with a HttpRequestNumber unique within the current
/// logging session.
/// Original source - https://github.com/serilog-web/classic/blob/master/src/SerilogWeb.Classic/Classic/Enrichers/HttpRequestNumberEnricher.cs
/// Nupkg: 'Serilog.Web.Classic' contains handlers & extra bits we do not want
/// </summary>
internal class HttpRequestNumberEnricher : ILogEventEnricher
{
/// <summary>
/// The property name added to enriched log events.
/// </summary>
public const string HttpRequestNumberPropertyName = "HttpRequestNumber";
static int _lastRequestNumber;
static readonly string RequestNumberItemName = typeof(HttpRequestNumberEnricher).Name + "+RequestNumber";
/// <summary>
/// Enrich the log event with the number assigned to the currently-executing HTTP request, if any.
/// </summary>
/// <param name="logEvent">The log event to enrich.</param>
/// <param name="propertyFactory">Factory for creating new properties to add to the event.</param>
public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory)
{
if (logEvent == null) throw new ArgumentNullException("logEvent");
if (HttpContext.Current == null)
return;
int requestNumber;
var requestNumberItem = HttpContext.Current.Items[RequestNumberItemName];
if (requestNumberItem == null)
HttpContext.Current.Items[RequestNumberItemName] = requestNumber = Interlocked.Increment(ref _lastRequestNumber);
else
requestNumber = (int)requestNumberItem;
var requestNumberProperty = new LogEventProperty(HttpRequestNumberPropertyName, new ScalarValue(requestNumber));
logEvent.AddPropertyIfAbsent(requestNumberProperty);
}
}
}
@@ -0,0 +1,39 @@
using Serilog.Core;
using Serilog.Events;
using System;
using System.Web;
namespace Umbraco.Core.Logging.Serilog.Enrichers
{
/// <summary>
/// Enrich log events with the HttpSessionId property.
/// Original source - https://github.com/serilog-web/classic/blob/master/src/SerilogWeb.Classic/Classic/Enrichers/HttpSessionIdEnricher.cs
/// Nupkg: 'Serilog.Web.Classic' contains handlers & extra bits we do not want
/// </summary>
internal class HttpSessionIdEnricher : ILogEventEnricher
{
/// <summary>
/// The property name added to enriched log events.
/// </summary>
public const string HttpSessionIdPropertyName = "HttpSessionId";
/// <summary>
/// Enrich the log event with the current ASP.NET session id, if sessions are enabled.</summary>
/// <param name="logEvent">The log event to enrich.</param>
/// <param name="propertyFactory">Factory for creating new properties to add to the event.</param>
public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory)
{
if (logEvent == null) throw new ArgumentNullException("logEvent");
if (HttpContext.Current == null)
return;
if (HttpContext.Current.Session == null)
return;
var sessionId = HttpContext.Current.Session.SessionID;
var sessionIdProperty = new LogEventProperty(HttpSessionIdPropertyName, new ScalarValue(sessionId));
logEvent.AddPropertyIfAbsent(sessionIdProperty);
}
}
}
@@ -0,0 +1,49 @@
using Serilog.Core;
using Serilog.Events;
namespace Umbraco.Core.Logging.Serilog.Enrichers
{
/// <summary>
/// This is used to create a new property in Logs called 'Log4NetLevel'
/// So that we can map Serilog levels to Log4Net levels - so log files stay consistent
/// </summary>
internal class Log4NetLevelMapperEnricher : ILogEventEnricher
{
public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory)
{
var log4NetLevel = string.Empty;
switch (logEvent.Level)
{
case LogEventLevel.Debug:
log4NetLevel = "DEBUG";
break;
case LogEventLevel.Error:
log4NetLevel = "ERROR";
break;
case LogEventLevel.Fatal:
log4NetLevel = "FATAL";
break;
case LogEventLevel.Information:
log4NetLevel = "INFO";
break;
case LogEventLevel.Verbose:
log4NetLevel = "ALL";
break;
case LogEventLevel.Warning:
log4NetLevel = "WARN";
break;
}
//Pad string so that all log levels are 5 chars long (needed to keep the txt log file lined up nicely)
log4NetLevel = log4NetLevel.PadRight(5);
logEvent.AddPropertyIfAbsent(propertyFactory.CreateProperty("Log4NetLevel", log4NetLevel));
}
}
}
@@ -0,0 +1,107 @@
using System;
using System.Web;
using Serilog;
using Serilog.Events;
using Serilog.Formatting.Compact;
using Umbraco.Core.Logging.Serilog.Enrichers;
namespace Umbraco.Core.Logging.Serilog
{
public static class LoggerConfigExtensions
{
/// <summary>
/// This configures Serilog with some defaults
/// Such as adding ProcessID, Thread, AppDomain etc
/// It is highly recommended that you keep/use this default in your own logging config customizations
/// </summary>
/// <param name="logConfig">A Serilog LoggerConfiguration</param>
public static LoggerConfiguration MinimalConfiguration(this LoggerConfiguration logConfig)
{
global::Serilog.Debugging.SelfLog.Enable(msg => System.Diagnostics.Debug.WriteLine(msg));
//Set this environment variable - so that it can be used in external config file
//add key="serilog:write-to:RollingFile.pathFormat" value="%BASEDIR%\logs\log.txt" />
Environment.SetEnvironmentVariable("BASEDIR", AppDomain.CurrentDomain.BaseDirectory, EnvironmentVariableTarget.Process);
logConfig.MinimumLevel.Verbose() //Set to highest level of logging (as any sinks may want to restrict it to Errors only)
.Enrich.WithProcessId()
.Enrich.WithProcessName()
.Enrich.WithThreadId()
.Enrich.WithProperty("AppDomainId", AppDomain.CurrentDomain.Id)
.Enrich.WithProperty("AppDomainAppId", HttpRuntime.AppDomainAppId.ReplaceNonAlphanumericChars(string.Empty))
.Enrich.WithProperty("MachineName", Environment.MachineName)
.Enrich.With<Log4NetLevelMapperEnricher>()
.Enrich.With<HttpSessionIdEnricher>()
.Enrich.With<HttpRequestNumberEnricher>()
.Enrich.With<HttpRequestIdEnricher>();
return logConfig;
}
/// <summary>
/// Outputs a .txt format log at /App_Data/Logs/
/// </summary>
/// <param name="logConfig">A Serilog LoggerConfiguration</param>
/// <param name="minimumLevel">The log level you wish the JSON file to collect - default is Verbose (highest)</param>
/// <param name="retainedFileCount">The number of days to keep log files. Default is set to null which means all logs are kept</param>
public static LoggerConfiguration OutputDefaultTextFile(this LoggerConfiguration logConfig, LogEventLevel minimumLevel = LogEventLevel.Verbose, int? retainedFileCount = null)
{
//Main .txt logfile - in similar format to older Log4Net output
//Ends with ..txt as Date is inserted before file extension substring
logConfig.WriteTo.File($@"{AppDomain.CurrentDomain.BaseDirectory}\App_Data\Logs\UmbracoTraceLog.{Environment.MachineName}..txt",
shared: true,
rollingInterval: RollingInterval.Day,
restrictedToMinimumLevel: minimumLevel,
retainedFileCountLimit: null, //Setting to null means we keep all files - default is 31 days
outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss,fff} [P{ProcessId}/D{AppDomainId}/T{ThreadId}] {Log4NetLevel} {SourceContext} - {Message:lj}{NewLine}{Exception}");
return logConfig;
}
/// <summary>
/// Outputs a CLEF format JSON log at /App_Data/Logs/
/// </summary>
/// <param name="logConfig">A Serilog LoggerConfiguration</param>
/// <param name="minimumLevel">The log level you wish the JSON file to collect - default is Verbose (highest)</param>
/// <param name="retainedFileCount">The number of days to keep log files. Default is set to null which means all logs are kept</param>
public static LoggerConfiguration OutputDefaultJsonFile(this LoggerConfiguration logConfig, LogEventLevel minimumLevel = LogEventLevel.Verbose, int? retainedFileCount = null)
{
//.clef format (Compact log event format, that can be imported into local SEQ & will make searching/filtering logs easier)
//Ends with ..txt as Date is inserted before file extension substring
logConfig.WriteTo.File(new CompactJsonFormatter(), $@"{AppDomain.CurrentDomain.BaseDirectory}\App_Data\Logs\UmbracoTraceLog.{Environment.MachineName}..json",
shared: true,
rollingInterval: RollingInterval.Day, //Create a new JSON file every day
retainedFileCountLimit: retainedFileCount, //Setting to null means we keep all files - default is 31 days
restrictedToMinimumLevel: minimumLevel);
return logConfig;
}
/// <summary>
/// Reads settings from /config/serilog.config
/// That allows the main logging pipeline to be configured
/// </summary>
/// <param name="logConfig">A Serilog LoggerConfiguration</param>
public static LoggerConfiguration ReadFromConfigFile(this LoggerConfiguration logConfig)
{
//Read from main serilog.config file
logConfig.ReadFrom.AppSettings(filePath: AppDomain.CurrentDomain.BaseDirectory + @"\config\serilog.config");
return logConfig;
}
/// <summary>
/// Reads settings from /config/serilog.user.config
/// That allows a seperate logging pipeline to be configured that wil not affect the main Umbraco log
/// </summary>
/// <param name="logConfig">A Serilog LoggerConfiguration</param>
public static LoggerConfiguration ReadFromUserConfigFile(this LoggerConfiguration logConfig)
{
//A nested logger - where any user configured sinks via config can not effect the main 'umbraco' logger above
logConfig.WriteTo.Logger(cfg =>
cfg.ReadFrom.AppSettings(filePath: AppDomain.CurrentDomain.BaseDirectory + @"\config\serilog.user.config"));
return logConfig;
}
}
}
@@ -0,0 +1,277 @@
using System;
using System.IO;
using System.Reflection;
using System.Threading;
using Serilog;
using Serilog.Events;
using Umbraco.Core.Configuration;
using Umbraco.Core.Diagnostics;
namespace Umbraco.Core.Logging.Serilog
{
///<summary>
/// Implements <see cref="ILogger"/> on top of Serilog.
///</summary>
public class SerilogLogger : ILogger
{
/// <summary>
/// Initialize a new instance of the <see cref="SerilogLogger"/> class with a configuration file.
/// </summary>
/// <param name="logConfigFile"></param>
public SerilogLogger(FileInfo logConfigFile)
{
Log.Logger = new LoggerConfiguration()
.ReadFrom.AppSettings(filePath: AppDomain.CurrentDomain.BaseDirectory + logConfigFile)
.CreateLogger();
}
public SerilogLogger(LoggerConfiguration logConfig)
{
//Configure Serilog static global logger with config passed in
Log.Logger = logConfig.CreateLogger();
}
/// <summary>
/// Creates a logger with some pre-defined configuration and remainder from config file
/// </summary>
/// <remarks>Used by UmbracoApplicationBase to get its logger.</remarks>
public static SerilogLogger CreateWithDefaultConfiguration()
{
var loggerConfig = new LoggerConfiguration();
loggerConfig
.MinimalConfiguration()
.OutputDefaultTextFile(LogEventLevel.Debug)
.OutputDefaultJsonFile()
.ReadFromConfigFile()
.ReadFromUserConfigFile();
return new SerilogLogger(loggerConfig);
}
/// <summary>
/// Gets a contextualized logger.
/// </summary>
private global::Serilog.ILogger LoggerFor(Type reporting)
=> Log.Logger.ForContext(reporting);
/// <summary>
/// Maps Umbraco's log level to Serilog's.
/// </summary>
private LogEventLevel MapLevel(LogLevel level)
{
switch (level)
{
case LogLevel.Debug:
return LogEventLevel.Debug;
case LogLevel.Error:
return LogEventLevel.Error;
case LogLevel.Fatal:
return LogEventLevel.Fatal;
case LogLevel.Information:
return LogEventLevel.Information;
case LogLevel.Verbose:
return LogEventLevel.Verbose;
case LogLevel.Warning:
return LogEventLevel.Warning;
}
throw new NotSupportedException($"LogLevel \"{level}\" is not supported.");
}
/// <inheritdoc/>
public bool IsEnabled(Type reporting, LogLevel level)
=> LoggerFor(reporting).IsEnabled(MapLevel(level));
/// <inheritdoc/>
public void Fatal(Type reporting, Exception exception, string message)
{
var logger = LoggerFor(reporting);
DumpThreadAborts(logger, LogEventLevel.Fatal, exception, ref message);
logger.Fatal(exception, message);
}
/// <inheritdoc/>
public void Fatal(Type reporting, Exception exception)
{
var logger = LoggerFor(reporting);
var message = "Exception.";
DumpThreadAborts(logger, LogEventLevel.Fatal, exception, ref message);
logger.Fatal(exception, message);
}
/// <inheritdoc/>
public void Fatal(Type reporting, string message)
{
LoggerFor(reporting).Fatal(message);
}
/// <inheritdoc/>
public void Fatal(Type reporting, string messageTemplate, params object[] propertyValues)
{
LoggerFor(reporting).Fatal(messageTemplate, propertyValues);
}
/// <inheritdoc/>
public void Fatal(Type reporting, Exception exception, string messageTemplate, params object[] propertyValues)
{
var logger = LoggerFor(reporting);
DumpThreadAborts(logger, LogEventLevel.Fatal, exception, ref messageTemplate);
logger.Fatal(exception, messageTemplate, propertyValues);
}
/// <inheritdoc/>
public void Error(Type reporting, Exception exception, string message)
{
var logger = LoggerFor(reporting);
DumpThreadAborts(logger, LogEventLevel.Error, exception, ref message);
logger.Error(exception, message);
}
/// <inheritdoc/>
public void Error(Type reporting, Exception exception)
{
var logger = LoggerFor(reporting);
var message = "Exception";
DumpThreadAborts(logger, LogEventLevel.Error, exception, ref message);
logger.Error(exception, message);
}
/// <inheritdoc/>
public void Error(Type reporting, string message)
{
LoggerFor(reporting).Error(message);
}
/// <inheritdoc/>
public void Error(Type reporting, string messageTemplate, params object[] propertyValues)
{
LoggerFor(reporting).Error(messageTemplate, propertyValues);
}
/// <inheritdoc/>
public void Error(Type reporting, Exception exception, string messageTemplate, params object[] propertyValues)
{
var logger = LoggerFor(reporting);
DumpThreadAborts(logger, LogEventLevel.Error, exception, ref messageTemplate);
logger.Error(exception, messageTemplate, propertyValues);
}
private static void DumpThreadAborts(global::Serilog.ILogger logger, LogEventLevel level, Exception exception, ref string messageTemplate)
{
var dump = false;
if (IsTimeoutThreadAbortException(exception))
{
messageTemplate += "\r\nThe thread has been aborted, because the request has timed out.";
// dump if configured, or if stacktrace contains Monitor.ReliableEnter
dump = UmbracoConfig.For.CoreDebug().DumpOnTimeoutThreadAbort || IsMonitorEnterThreadAbortException(exception);
// dump if it is ok to dump (might have a cap on number of dump...)
dump &= MiniDump.OkToDump();
}
if (dump)
{
try
{
var dumped = MiniDump.Dump(withException: true);
messageTemplate += dumped
? "\r\nA minidump was created in App_Data/MiniDump"
: "\r\nFailed to create a minidump";
}
catch (Exception ex)
{
messageTemplate += "\r\nFailed to create a minidump";
//Log a new entry (as opposed to appending to same log entry)
logger.Write(level, ex, "Failed to create a minidump ({ExType}: {ExMessage})",
new object[]{ ex.GetType().FullName, ex.Message });
}
}
}
private static bool IsMonitorEnterThreadAbortException(Exception exception)
{
if (!(exception is ThreadAbortException abort)) return false;
var stacktrace = abort.StackTrace;
return stacktrace.Contains("System.Threading.Monitor.ReliableEnter");
}
private static bool IsTimeoutThreadAbortException(Exception exception)
{
if (!(exception is ThreadAbortException abort)) return false;
if (abort.ExceptionState == null) return false;
var stateType = abort.ExceptionState.GetType();
if (stateType.FullName != "System.Web.HttpApplication+CancelModuleException") return false;
var timeoutField = stateType.GetField("_timeout", BindingFlags.Instance | BindingFlags.NonPublic);
if (timeoutField == null) return false;
return (bool) timeoutField.GetValue(abort.ExceptionState);
}
/// <inheritdoc/>
public void Warn(Type reporting, string message)
{
LoggerFor(reporting).Warning(message);
}
/// <inheritdoc/>
public void Warn(Type reporting, string message, params object[] propertyValues)
{
LoggerFor(reporting).Warning(message, propertyValues);
}
/// <inheritdoc/>
public void Warn(Type reporting, Exception exception, string message)
{
LoggerFor(reporting).Warning(exception, message);
}
/// <inheritdoc/>
public void Warn(Type reporting, Exception exception, string messageTemplate, params object[] propertyValues)
{
LoggerFor(reporting).Warning(exception, messageTemplate, propertyValues);
}
/// <inheritdoc/>
public void Info(Type reporting, string message)
{
LoggerFor(reporting).Information(message);
}
/// <inheritdoc/>
public void Info(Type reporting, string messageTemplate, params object[] propertyValues)
{
LoggerFor(reporting).Information(messageTemplate, propertyValues);
}
/// <inheritdoc/>
public void Debug(Type reporting, string message)
{
LoggerFor(reporting).Debug(message);
}
/// <inheritdoc/>
public void Debug(Type reporting, string messageTemplate, params object[] propertyValues)
{
LoggerFor(reporting).Debug(messageTemplate, propertyValues);
}
/// <inheritdoc/>
public void Verbose(Type reporting, string message)
{
LoggerFor(reporting).Verbose(message);
}
/// <inheritdoc/>
public void Verbose(Type reporting, string messageTemplate, params object[] propertyValues)
{
LoggerFor(reporting).Verbose(messageTemplate, propertyValues);
}
}
}
+5 -5
View File
@@ -117,7 +117,7 @@ namespace Umbraco.Core
lock (_locko)
{
_logger.Debug<MainDom>(() => "Signaled" + (_signaled ? " (again)" : "") + " (" + source + ").");
_logger.Debug<MainDom>("Signaled {Signaled} ({SignalSource})", _signaled ? "(again)" : string.Empty, source);
if (_signaled) return;
if (_isMainDom == false) return; // probably not needed
_signaled = true;
@@ -125,7 +125,7 @@ namespace Umbraco.Core
try
{
_logger.Info<MainDom>("Stopping.");
_logger.Info<MainDom>("Stopping ({SignalSource})", source);
foreach (var callback in _callbacks.OrderBy(x => x.Key).Select(x => x.Value))
{
try
@@ -134,19 +134,19 @@ namespace Umbraco.Core
}
catch (Exception e)
{
_logger.Error<MainDom>("Error while running callback, remaining callbacks will not run.", e);
_logger.Error<MainDom>(e, "Error while running callback, remaining callbacks will not run.");
throw;
}
}
_logger.Debug<MainDom>("Stopped.");
_logger.Debug<MainDom>("Stopped ({SignalSource})", source);
}
finally
{
// in any case...
_isMainDom = false;
_asyncLocker.Dispose();
_logger.Info<MainDom>("Released.");
_logger.Info<MainDom>("Released ({SignalSource})", source);
}
}

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