Compare commits

...

1065 Commits

Author SHA1 Message Date
Sebastiaan Janssen 98684e6292 Add 100 to the ClientDependency.config version to avoid conflicts with older caches 2014-02-03 10:23:13 +01:00
perploug 9687b2abee Special rule for installer password change 2014-01-31 13:03:46 +01:00
perploug 4ea589e954 Missing changes on ContentPickerControler re-added 2014-01-31 11:38:24 +01:00
perploug 621a19d4bd Final tweaks to TreeSource picker
Better help text, polish icons and margins, made sure it toggles UI
correctly for each type of tree

(cherry picked from commit 9ce79e98a3)

Conflicts:
	src/Umbraco.Web.UI.Client/src/views/prevalueeditors/treesource.html
2014-01-31 11:38:23 +01:00
perploug 5821444678 Fixes inconsistently named private method
Replaces delegates with lambdas

(cherry picked from commit 2a81162756)
2014-01-31 11:38:22 +01:00
perploug 7533baf368 fixes mntp filtering
(cherry picked from commit 3e22598f4a)
2014-01-31 11:38:21 +01:00
perploug d691e525b3 Adds support for xpath root node selection on mntp
(cherry picked from commit d842f0f5b7)

Conflicts:
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js
2014-01-31 11:38:20 +01:00
perploug 02d9d42ae2 adds getByQuery to entityService
(cherry picked from commit 8258619055)

Conflicts:
	src/Umbraco.Web.UI.Client/src/common/resources/entity.resource.js
	src/Umbraco.Web/Editors/EntityController.cs
2014-01-31 11:38:19 +01:00
perploug 17838e044c Addss template clearing when in debugmode
(cherry picked from commit 7d2f6c13c3)
2014-01-31 11:38:18 +01:00
Stephan 73173f92d6 U4-4144 - fix 2014-01-31 10:33:23 +01:00
Stephan 2ab1cf59a6 U4-2317 - issue with domains & languages management 2014-01-30 16:19:09 +01:00
Stephan 56cd1cee81 U4-4160 - make sure string properties are returned as strings 2014-01-30 15:08:13 +01:00
Stephan 002988ce86 U4-4144 - Media Cache dies due to new 'key' property in XML 2014-01-30 08:48:35 +01:00
perploug 81c32716fe Removes pre-checkpassword check 2014-01-29 22:04:37 +01:00
Shannon c2f34cefb5 Merge branch '7.0.2' of https://github.com/rsoeteman/Umbraco-CMS into rsoeteman-7.0.2 2014-01-29 11:26:05 +11:00
Shannon 2f7727af68 Fixes: U4-3894 Date picker with time resets to "måndag januari 1, 0001" on Republish entire site 2014-01-29 11:20:25 +11:00
Shannon 5a9874bfad Fixes U4-3894 Date picker with time resets to "måndag januari 1, 0001" on Republish entire site 2014-01-29 11:19:59 +11:00
Shannon 68b4a493c6 updates versions and port 2014-01-29 09:46:25 +11:00
Shannon 6338d57959 Cherry picked - Removes hard coded api url from rte embed 2014-01-29 09:34:07 +11:00
Shannon 7de1b2d09d Fixes ServerVariablesParser to have a proper event declared! :P 2014-01-29 09:33:14 +11:00
Richard Soeteman 06ae6ad15e Fix media.save throws an error in Umbraco 7.0.x
See http://issues.umbraco.org/issue/U4-3928 width and Height properties
are assigned on the file media types.  This was because of always
assigning a value to
content.getProperty(uploadFieldConfigNode.WidthFieldAlias).Value

Added an if statement to make sure the media item is an image when
assigning those values.
2014-01-27 10:15:14 +01:00
Shandem 81dac97917 Merge pull request #284 from markvantilburg/patch-1
Update booting.aspx
2014-01-23 17:33:22 -08:00
Sebastiaan Janssen 10a4eb3ddc Fix Duplicate attribute YSOD (key was already added in the base class) 2014-01-20 12:02:52 +01:00
Morten Christensen 51f46cf871 Not raising export events for content/media ToXml extension for the time being 2014-01-20 10:37:46 +01:00
Shannon 697548d1c7 Fixes: U4-3897 Copy contents relations not created 2014-01-20 18:01:19 +11:00
Shannon f717628322 Ensures username is escaped in user service 2014-01-20 16:13:41 +11:00
Shannon e91b297cc2 updates user task creation for release 2014-01-20 16:04:49 +11:00
Shannon c92441e544 Ensures user name is escaped in member service query. 2014-01-20 14:37:26 +11:00
Shannon f0573fc68c Fixes: U4-4084 Macro's with non alphanumeric chars in their aliases cannot render in the rich text editor 2014-01-20 13:59:25 +11:00
Shannon eb44480fdf fixes package installer path redirect when installing from the repo 2014-01-20 11:58:52 +11:00
Shannon 1ad05fbfc9 Clears the auth cookie after install if there is one which forces the login screen to display so that the csrf tokens are created - this is required if you are upgrading from a previous version and are logged in but don't have a version with csrf tokens. 2014-01-20 10:53:14 +11:00
Shannon 673e24a2ea Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2014-01-20 10:37:36 +11:00
Shannon 4842be01cd Ensures app domain restarted after db upgrade to clear PetaPoco's mapping cache. 2014-01-20 10:36:37 +11:00
Morten Christensen dddb38d4ee Adding comment to private method for clarity 2014-01-19 15:23:05 +01:00
Morten Christensen 727ce0f795 Additional tests for Macro import and export 2014-01-19 15:23:04 +01:00
Morten Christensen ba27acead9 Adding unique key to xml for contentbase exports 2014-01-19 15:23:04 +01:00
Morten Christensen a026a81a8a Adding test for import of Macros from uBlogsy package xml 2014-01-19 15:23:03 +01:00
Morten Christensen 5e7ee0c236 Adding ImportMacros to PackagingService interface 2014-01-19 15:23:03 +01:00
Morten Christensen bb30d5ebd2 Refactoring Macro import method in PackagingService 2014-01-19 15:23:02 +01:00
Morten Christensen 2ae3b09b8c Updating PackagingService to use the newly added event args 2014-01-19 15:23:02 +01:00
Morten Christensen 473d76f1b7 Adding Event Args for import and export 2014-01-19 15:23:01 +01:00
Sebastiaan Janssen 918e454c42 Make sure the build does a complete rebuild so that the Belle build gets triggered 2014-01-19 15:21:47 +01:00
Shannon 7e32fdb682 changed buildbelle to do a grunt build instead of running the default grunt build. 2014-01-19 13:11:23 +11:00
Sebastiaan Janssen 171a472966 Split out the Belle build and integrate it in the build of the Web.UI project 2014-01-17 18:56:04 +01:00
Sebastiaan Janssen 8194655ad1 Update the readme file with a pointer to the build.bat file to get started quickly 2014-01-17 16:07:29 +01:00
Sebastiaan Janssen 80c1812bc8 Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2014-01-17 15:51:01 +01:00
Morten Christensen 6c37b33509 Adding export method for macros in the PackagingService and changing the ctor to accept the MacroService, so we can also add an import method. 2014-01-17 15:29:51 +01:00
Morten Christensen 509bcee540 Changing the name of the private field to be more inline with the Property 2014-01-17 15:28:53 +01:00
Morten Christensen 3dec881848 Removing extra line spaces 2014-01-17 15:28:12 +01:00
Sebastiaan Janssen 65b522a0a0 Automatically build Belle from build.bat without having to install Node.js on local machine 2014-01-17 14:52:42 +01:00
Morten Christensen 9164567abe Adding export of templates to PackagingService 2014-01-17 13:55:34 +01:00
Stephan 12314f16a2 U4-4056 - fixing 2014-01-17 10:27:09 +01:00
Shannon 1621d01992 fixes some unit tests 2014-01-17 13:18:49 +11:00
Shannon ae05bfd350 Fixes: U4-4055 List View document types still display children in content tree 2014-01-17 13:00:11 +11:00
Shannon 79567d4e8f Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2014-01-17 12:26:02 +11:00
Shannon 334a56ce5c Fixes: U4-3765 v7 MultiNode Treepicker Sort not working 2014-01-17 12:25:34 +11:00
Sebastiaan Janssen c2ee3303a5 U4-4059 Update MNTP snippets for string of id's rather than old xml fragment 2014-01-16 19:49:57 +01:00
Stephan bfc89a7247 merge branch 'origin/6.2.0' into 7.0.2 + fix 2014-01-16 19:40:29 +01:00
Stephan 326309e61e U4-4056 - better unicode/ascii support for urls 2014-01-16 17:09:21 +01:00
Shannon 8926e8c7d9 ensures preview cookie is gone on logout. 2014-01-16 20:56:34 +11:00
Shannon ee7ee81098 fixes merge issue 2014-01-16 20:51:23 +11:00
Shannon f4b707e928 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Configuration/UmbracoSettings.cs
	src/Umbraco.Core/Security/AuthenticationExtensions.cs
	src/umbraco.businesslogic/StateHelper.cs
2014-01-16 20:49:19 +11:00
Shannon c38030def2 Fixes: U4-3855 Preview cookie should be a session cookie not persisted 2014-01-16 20:47:13 +11:00
Shannon 43a61d8a06 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-01-16 20:15:35 +11:00
Shannon 4fd3725c51 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/Umbraco/create/PartialView.ascx.cs
	src/Umbraco.Web.UI/umbraco/create/PartialViewMacro.ascx
	src/Umbraco.Web.UI/umbraco/create/PartialViewMacro.ascx.cs
2014-01-16 20:09:18 +11:00
Shannon 949861a890 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2014-01-16 20:03:52 +11:00
Shannon 122069752a fixes legacy validate member logic 2014-01-16 20:03:29 +11:00
Shannon c288734877 Fixes: U4-4054 Multinode Treepicker datatype - selecting a start node sends to content section 2014-01-16 19:47:27 +11:00
Shannon 4b22ff3a75 Completes: U4-4011 Package installation will require either a full app refresh or we will need to re-lazy load in all of the assets 2014-01-16 19:11:03 +11:00
Shannon 2b1a43b40a Finally got somewhere with U4-4011 Package installation will require either a full app refresh or we will need to re-lazy load in all of the assets - took ages to get this going, now to get it working when packages have custom screens. 2014-01-16 18:33:31 +11:00
Shannon 076d90ddc4 Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2014-01-16 12:31:54 +11:00
Shannon 1e2e26d898 publicizes server vars parser and event 2014-01-16 12:31:29 +11:00
Sebastiaan Janssen f56cb2c3ac Hardcoded empty snippets need to be updated as well.. 2014-01-15 21:11:35 +01:00
Sebastiaan Janssen ae83b0fbaf Hardcoded empty snippets need to be updated as well.. 2014-01-15 21:07:24 +01:00
Sebastiaan Janssen fb7b65cf3b Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2014-01-15 20:57:42 +01:00
Sebastiaan Janssen 168abddacf U4-2737 Snippets that are available when creating new MacroScripts should also be available for Partial Views 2014-01-15 20:57:27 +01:00
Sebastiaan Janssen 99e91a1053 U4-2737 Snippets that are available when creating new MacroScripts should also be available for Partial Views 2014-01-15 20:55:17 +01:00
Sebastiaan Janssen bad118ac6b U4-4046 Rename "empty template" to "empty" 2014-01-15 10:17:46 +01:00
Shannon f334c3d74a playing a bit more with re-initializing the app, but think we're def gonna have to do a full browser refresh. To do that we'll have to figure out how to gen a deep link url to the installer complete screen which could include a custom screen from a package. 2014-01-15 17:47:46 +11:00
Shannon 0e6c199a7e working on U4-4011 Package installation will require either a full app refresh or we will need to re-lazy load in all of the assets but unfortunately we cannot lazy load in things like directives as angular doesn't like that, we have to re-load the browser. 2014-01-15 17:18:23 +11:00
Shannon 0bc39afdab fixes language drop down styles - was too big to fit 2014-01-15 15:39:35 +11:00
Shannon cf3de52249 removes the old language.ascx webforms files 2014-01-15 15:36:28 +11:00
Shandem 3f0569af41 Merge pull request #285 from mrdrbob/U4-3831
Fix for U4-3831.
2014-01-14 20:17:32 -08:00
Shannon 9f078357a7 Fixes: U4-4030 RelatedLinksEditorValueConvertor can't be overruled and internal links are wrong 2014-01-15 15:17:03 +11:00
Shannon bb837232ba Allows DefaultPropertyValueConverters to shadow other default converters, this allows us to have a hierarchy of default converters. This also fixes part of this issue: U4-4030 RelatedLinksEditorValueConvertor can't be overruled and internal links are wrong 2014-01-15 14:45:33 +11:00
Shannon 6d57afc71a ensures auth controller has IsBackOffice specified 2014-01-15 13:49:37 +11:00
Shannon fd682efdb1 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2 2014-01-15 13:37:46 +11:00
Shannon 5c614a88a2 ensures webapi plugincontrollers are routed to /backoffice if [IsBackOffice] is specified 2014-01-15 13:29:17 +11:00
Shannon f27a0c0461 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/EmptyTemplate.cshtml
	src/Umbraco.Web.UI/umbraco/dialogs/protectPage.aspx
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/UmbracoModule.cs
	src/Umbraco.Web/WebApi/UmbracoAuthorizedApiController.cs
2014-01-15 13:28:41 +11:00
Shannon 3ef9635406 Fixes: U4-4010 Member and user session gets mixed - fixes how we detect a back office request + unit tests and added new IsBackOffice attribute 2014-01-15 13:17:38 +11:00
Shannon c527833081 Revert "adds editing function to media picker controller"
This reverts commit 7d051dffbb.
This will only be contained in 7.1
2014-01-15 10:59:05 +11:00
Shannon 5caf091406 Revert "WIP: adds cropper directive"
This reverts commit c5a7eab1d5.
new cropper is only contained in 7.1 branch
2014-01-15 10:55:22 +11:00
Shannon 5a29441640 Reverts GetByQuery and MNTP Xpath query WIP - is contained only in 7.1 2014-01-15 10:53:14 +11:00
Shannon 75a42fd0d6 fixes the protect page logic 2014-01-15 10:42:01 +11:00
Shannon 84da5f43a2 U4-4045 The "Empty" partial view snippet should have @inherits 2014-01-15 10:41:37 +11:00
Bob Davidson 0da7ed8d93 Fix for U4-3831. Removes form, adds ng-click with $event.preventDefault() to prevent premature saving. 2014-01-14 15:40:22 -06:00
Sebastiaan Janssen 0aa72e5026 Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2014-01-14 15:21:38 +01:00
Sebastiaan Janssen 14cfd2a8df D'oh .. now properly renamed, in the csproj as well - U4-4046 Rename "empty template" to "empty" 2014-01-14 15:21:20 +01:00
Morten Christensen d6b3d115b0 Correcting the naming of events in the PackagingService 2014-01-14 15:09:21 +01:00
Morten Christensen 7b1fd5378f Correcting the naming of events in the RelationService 2014-01-14 15:09:20 +01:00
Morten Christensen 9e9b94b1d5 Correcting raiseEvents parameter for dictionary items 2014-01-14 15:09:20 +01:00
perploug cf837d783d Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2014-01-14 15:00:05 +01:00
perploug 3df44e2990 treesource editor changes to remove the search field 2014-01-14 14:59:55 +01:00
perploug 0c5ebb2674 Fixes umbPhotoGrid Filtering 2014-01-14 14:40:00 +01:00
perploug ba2fa2bff4 Legacy dialogs missing conversion, language + partial view 2014-01-14 14:33:11 +01:00
Sebastiaan Janssen 03090e85fd U4-4046 Rename "empty template" to "empty" 2014-01-14 13:51:08 +01:00
Sebastiaan Janssen 5c55d6a6e3 U4-4045 The "Empty" partial view snippet should have @inherits 2014-01-14 13:49:20 +01:00
Shannon 0632d73e32 fixes view state and err styling for protect page 2014-01-14 16:56:38 +11:00
Shannon 000c2637d6 fixes view state and err msg 2014-01-14 16:54:32 +11:00
Shannon bf24e101d3 fixes some logic with the protect page if it's already protected 2014-01-14 16:53:32 +11:00
Shannon 08c837602f Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Models/MemberType.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/create/memberTasks.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
2014-01-14 16:28:48 +11:00
Shannon 563867cd8b Temp fix for: U4-3968 Umbraco 7.01 - Membership - Public Access - Add Single User protection - crash, fixes protectPage so that it uses the membership provider to make changes, updates the UI logic so that if you choose an existing user it will you about it, fixes it so you cannot arbitrarily change a member's password. 2014-01-14 16:21:00 +11:00
Shannon 86c66511dd changes all calls from Member.InUmbracoMemberMode() to Membership.Provider.IsUmbracoMembershipProvider() and obsoletes the InUmbracoMemberMode 2014-01-14 14:17:28 +11:00
Shannon eedd109332 Temp fix for: U4-3968 Umbraco 7.01 - Membership - Public Access - Add Single User protection - crash 2014-01-14 12:38:48 +11:00
Shannon 7d57521ad8 Fixes some thread safety issues with old membership API 2014-01-14 11:53:41 +11:00
Shannon d5fc18dc95 Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2014-01-14 11:44:11 +11:00
Shannon e36b3d46e8 Fixes: U4-4039 @Umbraco.Field("writerName") etc. don't work any more 2014-01-14 11:43:56 +11:00
Sebastiaan Janssen d8aa98e60c Temporary workaround for the ClientDependency dependency 2014-01-13 11:50:13 +01:00
markvantilburg 4a8a09c78a Update booting.aspx
Throw the exception immediately if the parameter is not there or empty.

If the parameter is not there it's defaulted to the current url, and this will redirect to itself and create an endless loop here.
2014-01-13 11:33:24 +01:00
perploug 8a8899397e Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2014-01-13 10:17:27 +01:00
perploug dc69b5a825 WIP: cropper and gravity editors 2014-01-13 10:17:16 +01:00
perploug df7691ada3 Adds missing mocks 2014-01-13 10:14:30 +01:00
perploug 1048df7e63 Fixes broken assembly browser for usercontrols 2014-01-13 10:14:09 +01:00
Shannon 457560920d Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
2014-01-13 19:15:16 +11:00
Shannon e79c0ae2b5 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Services/NotificationService.cs
2014-01-13 19:11:39 +11:00
Shannon e74e8f9d73 Fixes: U4-4005 Member custom properties not saving from code, only from backend, wraps more of the getter functions in legacy member class with new member service methods, fixes paged result method when there are no results. 2014-01-13 18:36:08 +11:00
Shannon 23b0c89848 ensures the mail usage is disposed. 2014-01-13 17:28:49 +11:00
Shannon 285989e737 updated notification email links to only have edit since we currently don't support deep linking to dialogs. 2014-01-13 16:34:42 +11:00
Shannon 2c580d0b20 updates email notification link address 2014-01-13 16:21:46 +11:00
Shannon 3c1f6abd0d Fixes: U4-3830 Unable to get email notifications working in version 7 2014-01-13 16:13:53 +11:00
Shannon 4eb1ef3444 fixed up merge issues 2014-01-13 14:54:15 +11:00
Shannon 0f503fc320 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Services/PackagingService.cs
	src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs
	src/Umbraco.Tests/Services/Importing/ImportResources.resx
	src/Umbraco.Tests/Services/Importing/PackageImportTests.cs
	src/Umbraco.Tests/Services/PackagingServiceTests.cs
	src/Umbraco.Tests/Umbraco.Tests.csproj
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/config/ClientDependency.config
	src/Umbraco.Web/Umbraco.Web.csproj
	src/umbraco.cms/businesslogic/Packager/Installer.cs
	src/umbraco.cms/businesslogic/workflow/Notification.cs
	src/umbraco.macroRenderings/umbraco.macroRenderings.csproj
2014-01-13 14:08:23 +11:00
Shannon aebc30c7a3 Removes the version specific info from the CDF and Examine references in all proj files. 2014-01-13 14:02:50 +11:00
Shannon 44bc365fdd Moves all notification sending logic to the notification service, improves performance during any action when notifications are to be sent, ensures emails are sent out async to not block up the current request. 2014-01-13 13:50:30 +11:00
Shannon 06defee410 Completed new NotificationService, moved Diff to Core 2014-01-13 13:05:25 +11:00
Morten Christensen d5d4dc9561 Adding event handlers to new import and export methods in the PackagingService 2014-01-10 16:24:20 +01:00
Morten Christensen be2c72f8b4 Adding new methods to the IPackagingService interface 2014-01-10 16:05:19 +01:00
Morten Christensen 62f46d531f Fixing merge issue 2014-01-10 16:04:50 +01:00
Morten Christensen 6bfdbe3e8a Updating the legacy Installer class to use the new methods in the PackagingService
Conflicts:
	src/Umbraco.Core/Services/PackagingService.cs
	src/umbraco.cms/businesslogic/Packager/Installer.cs
2014-01-10 15:42:43 +01:00
Morten Christensen 7095b21eb4 Removing some internal experimental stuff that isnt used 2014-01-10 15:40:41 +01:00
Morten Christensen efce912332 Adds import and export of languages along with tests
Conflicts:
	src/Umbraco.Tests/Services/PackagingServiceTests.cs
2014-01-10 15:40:28 +01:00
Morten Christensen b33a265ea4 Moving events out of the repository scope.
Adding Get Language by Iso Code method
2014-01-10 15:39:15 +01:00
Morten Christensen db849c1e36 Adding languages xml to existing xml file for testing purposes 2014-01-10 15:38:57 +01:00
Morten Christensen b01721c2a9 Adding Export of DictionaryItems including test
Conflicts:
	src/Umbraco.Core/Services/PackagingService.cs
	src/Umbraco.Tests/Services/PackagingServiceTests.cs
2014-01-10 15:38:43 +01:00
Morten Christensen 4f2a807327 Updates from PR#127 from Lars-Erik. Had to manually copy in the changes because the PR was closed.
Adds Import of Dictionary Items to the PackagingService along with tests and a fix for the DictionaryRepository.

Conflicts:
	src/Umbraco.Tests/Services/Importing/ImportResources.resx
	src/Umbraco.Tests/Services/Importing/PackageImportTests.cs
	src/umbraco.cms/businesslogic/Packager/Installer.cs
2014-01-10 15:37:44 +01:00
Morten Christensen 955573256d Updating the legacy Installer class to use the new methods in the PackagingService 2014-01-10 15:11:07 +01:00
Morten Christensen d963f5cd7d Updating a few methods that are made public in 7.0.2 2014-01-10 14:57:27 +01:00
Morten Christensen 2467b5ee3b Removing some internal experimental stuff that isnt used 2014-01-10 14:53:27 +01:00
Morten Christensen f86eb4b741 Adds import and export of languages along with tests 2014-01-10 14:48:55 +01:00
Morten Christensen 33b99073f0 Moving events out of the repository scope.
Adding Get Language by Iso Code method
2014-01-10 14:48:31 +01:00
Morten Christensen 880636c5a6 Adding languages xml to existing xml file for testing purposes 2014-01-10 14:47:31 +01:00
Morten Christensen 6e344f335e Adding Export of DictionaryItems including test 2014-01-10 13:08:33 +01:00
Morten Christensen 6b205bd725 Updates from PR#127 from Lars-Erik. Had to manually copy in the changes because the PR was closed.
Adds Import of Dictionary Items to the PackagingService along with tests and a fix for the DictionaryRepository.
2014-01-10 11:45:41 +01:00
perploug d97a0f5b6c Adds missing PluginController Attribute to updatecheckercontroller 2014-01-10 11:21:55 +01:00
Shannon a510396a57 fix merge issue 2014-01-10 17:07:28 +11:00
Shannon 297d54ec98 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Tests/Umbraco.Tests.csproj
	src/umbraco.cms/businesslogic/CMSNode.cs
2014-01-10 17:05:23 +11:00
Shannon 531306a091 Created notifications repository and service with unit tests, then need to start integrating that so notifications are properly sent. 2014-01-10 17:03:00 +11:00
Shannon 4346f73159 Fixes naming conventions from old Notification class 2014-01-10 15:13:25 +11:00
Shannon 3cb5754ff2 Fixed some null checks 2014-01-10 12:20:49 +11:00
Shannon bf5bb8bc70 obsoletes imageHelper in favor of the new mediaHelper, updates the link picker to fix: U4-3882 Can't Link to Non-Image Media in 7.0.1 2014-01-10 12:11:52 +11:00
Shannon 7b7ad4d350 completes: U4-3991 Ensure macroservice events are public 2014-01-10 11:20:37 +11:00
Shannon 544a0756f3 Fixes: U4-3995 Remove Contour language keys from deployed language files 2014-01-10 00:43:53 +11:00
Shannon 934215307d Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2014-01-10 00:22:09 +11:00
Shannon 349825b4f8 Fixes merge issues 2014-01-10 00:21:58 +11:00
Morten Christensen f3f1a161e4 Adding AreRelated method to the RelationService 2014-01-09 14:12:58 +01:00
Shannon c088187a13 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Persistence/SqlSyntax/SqlSyntaxContext.cs
	src/Umbraco.Core/Persistence/SqlSyntax/SqlSyntaxProviderExtensions.cs
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/packages.config
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/packages.config
	src/Umbraco.Web/umbraco.presentation/umbraco/create/ScriptTasks.cs
	src/umbraco.cms/packages.config
	src/umbraco.controls/packages.config
	src/umbraco.editorControls/packages.config
	src/umbraco.macroRenderings/packages.config
	src/umbraco.macroRenderings/umbraco.macroRenderings.csproj
2014-01-10 00:09:38 +11:00
Shannon 4db6ce4b22 Fixes various issues relating to File Repositories and Services: U4-4014 FileRepositories offer no way to create folders, U4-4013 The models that the FileService produces causes security exceptions, U4-3993 Replace system.io calls in umbraco.scriptTasks legacy task
updates to latest CDF
2014-01-09 18:08:13 +11:00
Shannon 72a366d0dc Fixes: U4-4012 When loading in a lot of separate assets in a manifest CDF is throwing exceptions with a 'too long query string' - updates to latest CDF 2014-01-09 15:58:06 +11:00
Shannon fc18189fc8 fixes a null check on membership provider, completes: U4-3962 publicize IMapperConfiguration 2014-01-09 13:32:39 +11:00
Shannon 49cfeee5b0 Fixes: U4-3880 Custom parameter editor with JSON valueType 2014-01-09 12:49:33 +11:00
Shannon 01d09548aa fixed merge issues 2014-01-09 10:54:02 +11:00
Shannon 1ff049a063 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Services/ContentService.cs
	src/Umbraco.Core/Services/MediaService.cs
	src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs
2014-01-09 10:38:31 +11:00
Shannon 7c720460f5 Fixes: U4-3876 MySQL cmsContentXml Migration Error on 7.0.1 Upgrade 2014-01-09 10:33:35 +11:00
Morten Christensen d0c0ec56a4 Adding event handlers to the PackagingService 2014-01-08 14:13:16 +01:00
Morten Christensen 3c965e8c32 Updating relation event handlers 2014-01-08 14:13:15 +01:00
Morten Christensen 5bcd6a9982 Adding interface to PackagingService 2014-01-08 14:13:15 +01:00
perploug 525477f84f Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2014-01-08 13:27:42 +01:00
perploug 7d051dffbb adds editing function to media picker controller 2014-01-08 13:27:34 +01:00
perploug c5a7eab1d5 WIP: adds cropper directive 2014-01-08 13:27:04 +01:00
perploug 115c8b15fd updates jquery ui to 1.10.3 2014-01-08 13:26:34 +01:00
Morten Christensen 29c8f065f7 Implementing Saving/Saved and Deleting/Deleted events for Relations and RelationTypes.
Fixes U4-3992 RelationService doesnt have any events.
2014-01-08 12:52:55 +01:00
Shannon 961755336a adds another test for #U4-3876 2014-01-08 20:34:20 +11:00
Shannon e0aff8a1e4 adds a unit test 2014-01-08 20:25:35 +11:00
Shannon 6fa0c627a5 working on #U4-3876 2014-01-08 20:19:08 +11:00
Shannon b3c2574aac working on #U4-3876 2014-01-08 20:04:26 +11:00
Shannon 98b2320421 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Tests/TreesAndSections/SectionTests.cs
2014-01-08 18:41:01 +11:00
Shannon 66a63b3cbb ignores these tests for now, they are successful when running isolated but as a whole they don't pass because of something with the legacy data layer. 2014-01-08 18:39:37 +11:00
Shannon 077f3468b9 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2 2014-01-08 18:20:49 +11:00
Shannon 21c5b6fe02 fixes user lookup on legacy provider 2014-01-08 18:20:18 +11:00
Shannon 3274d873a9 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Models/Membership/UmbracoMembershipMember.cs
2014-01-08 18:13:35 +11:00
Shannon ffed85640d fixes provider user key issue 2014-01-08 18:12:07 +11:00
Shannon 250f082346 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Security/MembershipProviderBase.cs
	src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs
	src/Umbraco.Tests/TreesAndSections/SectionTests.cs
2014-01-08 17:12:06 +11:00
Shannon cdbf89ee57 Fixes up the unit tests 2014-01-08 17:08:13 +11:00
Shannon 056b13eb98 fixes up the double member creation in the createuser method 2014-01-08 16:29:09 +11:00
Shannon e2a395e245 Fixes merge issues 2014-01-08 16:09:35 +11:00
Shannon 6b760dcfe8 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Models/Membership/EntityPermission.cs
	src/Umbraco.Core/Persistence/Factories/UserFactory.cs
	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs
	src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs
	src/Umbraco.Core/Services/ContentService.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Tests/Services/UserServiceTests.cs
2014-01-08 15:47:53 +11:00
Shannon 5ded732188 fixing some merge issues 2014-01-08 15:43:58 +11:00
Shannon 9467a67661 Backports the permissions repo updates, permissions on user/content repo updates and default permissions for users 2014-01-08 15:42:49 +11:00
Shannon d6a83d9887 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Models/IMember.cs
	src/Umbraco.Core/Models/Member.cs
	src/Umbraco.Core/Models/Membership/IUser.cs
	src/Umbraco.Core/Models/Membership/MembershipExtensions.cs
	src/Umbraco.Core/Models/Membership/UmbracoMembershipMember.cs
	src/Umbraco.Core/Models/Membership/User.cs
	src/Umbraco.Core/Models/Membership/UserProfile.cs
	src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs
	src/Umbraco.Core/Persistence/Factories/UserFactory.cs
	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs
	src/Umbraco.Core/Persistence/Repositories/UserRepository.cs
	src/Umbraco.Core/Services/IMembershipUserService.cs
	src/Umbraco.Core/Services/MemberService.cs
	src/Umbraco.Core/Services/UserService.cs
	src/Umbraco.Tests/Persistence/Querying/PetaPocoSqlTests.cs
	src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/UserTypeRepositoryTest.cs
	src/Umbraco.Tests/Services/ContentServiceTests.cs
	src/Umbraco.Tests/Services/UserServiceTests.cs
	src/Umbraco.Tests/TestHelpers/Entities/MockedUser.cs
	src/Umbraco.Tests/TestHelpers/Entities/MockedUserType.cs
	src/Umbraco.Web.UI/umbraco/controls/PasswordChanger.ascx.cs
	src/Umbraco.Web.UI/umbraco/dashboard/ChangePassword.ascx
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/umbraco.presentation/umbraco/create/userTasks.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/dashboard/ChangePassword.ascx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs
	src/umbraco.businesslogic/User.cs
	src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-01-08 14:32:38 +11:00
Shannon 96e00bc1eb moves classes to sep files 2014-01-08 14:04:30 +11:00
Shannon 0f9f11bbcf re-internalizes some classes for now 2014-01-08 14:03:10 +11:00
Shannon 5b6cc51516 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2014-01-08 13:04:01 +11:00
Shannon 80b83ab64b Fixes up password changer on postback, fixes up more of the edit user and edit member pages. 2014-01-08 13:03:33 +11:00
Shandem 326d81286a Merge pull request #281 from Jeavon/U4-3987
Fixes U4-3987- Related Links
2014-01-07 15:47:16 -08:00
Jeavon Leopold 13641473d0 Fixes U4-3987- Related Links 2014-01-07 14:40:45 +00:00
Morten Christensen c6751f0374 Correcting the legacy template MakeNew private method so the OnNew event is fired after the design is added and file is created. 2014-01-07 13:24:05 +01:00
Morten Christensen d71c686aea Typo or missing update in legacy User class 2014-01-07 13:23:03 +01:00
Morten Christensen 4c5dfb42d5 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2014-01-07 13:13:38 +01:00
Shannon 0245efe3cb Fixes the change password dashboard to work properly. Fixes the EditUser to property save the member and the user. Adds new (probably temporary) MembershipHelper which is used to update a MembershipUser. Updates the User model to ignore the membership properties that we currently cannot persist. Ensures the legacy User membership provider still looks for a typed membership user (which should never have happened). Fixes small issue with underlying membership provider trying to encrypt an empty string. 2014-01-07 17:01:22 +11:00
Shandem b3151ca788 Merge pull request #280 from AndyButland/wip-u4-3980
Fix to SQL on inserting tags to handle tag with apostrophe (U4-3980)
2014-01-06 15:59:09 -08:00
AndyButland aa1edb6e69 Fix to SQL on inserting tags to handle tag with apostrophe 2014-01-06 21:56:10 +01:00
Shannon 0b4ddf82aa Adds more user service tests 2014-01-06 17:43:29 +11:00
Shannon 3ff173732b implements the remaining incomplete parts of the UserService, adds more unit tests 2014-01-06 17:30:08 +11:00
Shannon f3f7aa70d1 Ensures a default member/user type is assigned on membership provider initialize, adds more unit tests 2014-01-06 16:18:25 +11:00
Shannon cd82bc6d21 streamlined the new membership provider classes so now they all share the same logic and use IMembershipMemberService<T> which is used by both IMember and IUser services 2014-01-06 15:38:34 +11:00
Shannon c3a6c7c473 fixes up more of the legacy user membership provider 2014-01-06 14:02:09 +11:00
Shannon 5538a2e793 fixed up the failing unit tests for member service counts, added more unit tests for UserService and implemented more of the required methods. 2014-01-06 12:25:14 +11:00
Shannon 1b7dc76df2 Updated much more of the UserService + some unit tests 2014-01-06 11:56:53 +11:00
Shannon 85c85cd1eb Simplifies and streamlines the models used between IMember and IUser along with the services used for both of these entities.
Updates the model used to store and retreive permissions, instead of a single string it is an Enumerable<string> which gives us some flexibility in the future and since this was not public (yet) it's the perfect time to do this.
Removes the base Profile classes from User since these are not required, since we cannot share base classes between Member and User, these weren't necessary.
2014-01-06 11:04:26 +11:00
Shannon ba5f2bc69d Ensure the old membership provider's count online members is implemented 2014-01-02 15:57:27 +11:00
Shannon 3fcdbe85b5 Fixes merge and build issues 2014-01-02 15:41:00 +11:00
Shannon 78336181ea Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Models/Membership/MembershipExtensions.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Security/MembershipProviderBase.cs
	src/Umbraco.Core/Services/IMemberService.cs
	src/Umbraco.Tests/App.config
	src/Umbraco.Tests/Membership/MembershipProviderBaseTests.cs
	src/Umbraco.Tests/TestHelpers/Entities/MockedMember.cs
	src/Umbraco.Tests/Umbraco.Tests.csproj
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/config/tinyMceConfig.Release.config
	src/Umbraco.Web.UI/config/tinyMceConfig.config
	src/Umbraco.Web.UI/umbraco_client/Application/UmbracoApplicationActions.js
	src/Umbraco.Web/Security/Providers/MembersMembershipProvider.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentControl.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/create/member.ascx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/create/userTasks.cs
	src/umbraco.controls/TabView.cs
	src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-01-02 15:28:42 +11:00
Shannon 17883358b6 Fixes some issues with the User membership provider, updates user create dialog to also have an email address (which is required by membership), adds validation to the member and user create dialogs to ensure that the email address is validated to be a correcty formatted address. 2014-01-02 14:13:43 +11:00
Shannon fc0c6a1cd8 fixes stored password check with legacy encoding. 2013-12-31 13:27:47 +11:00
Sebastiaan Janssen 934d4020b2 Merge pull request #224 from Attackmonkey/Hackathon-2760
Fixes issue U4-2760, sorting installed packages
2013-12-29 06:30:09 -08:00
Sebastiaan Janssen 8b03ba4f42 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2013-12-29 15:26:44 +01:00
Sebastiaan Janssen 3caf84c63c Merge branch 'Hackathon-U4-3063' of https://github.com/Attackmonkey/Umbraco-CMS into Attackmonkey-Hackathon-U4-3063 2013-12-29 15:24:47 +01:00
Sebastiaan Janssen aae16f227e Merge pull request #227 from mattbrailsford/6.2.0-3454
Maintains tab sort order for doc type imports/exports.
2013-12-29 06:20:09 -08:00
Sebastiaan Janssen 443002cdde Merge pull request #273 from esunxray/patch-2
Update zh.xml
2013-12-29 06:19:30 -08:00
Sebastiaan Janssen 75150f0bfa Merge pull request #223 from Attackmonkey/Hackathon-2757
Fixes issue U4-2757 where generic properties are not ordered correctly.
2013-12-29 06:18:19 -08:00
Sebastiaan Janssen af73fd8b68 Merge pull request #218 from dipunm/U4-2551
Missing languages in RTE insert link dialog.
2013-12-29 06:11:53 -08:00
Sebastiaan Janssen 139df63ddf Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2013-12-29 15:08:10 +01:00
Sebastiaan Janssen a49058fe00 Fixes U4-510 Copy node makes multiple copies 2013-12-29 15:07:28 +01:00
Sebastiaan Janssen dcde00cec1 Merge pull request #213 from leekelleher/U4-3452
Fixes: U4-3452 Update the MIT License URL (Packager)
2013-12-29 05:58:02 -08:00
Sebastiaan Janssen bcc70f7a1e Merge pull request #197 from mkariti/u4-415
U4-415
2013-12-29 05:39:30 -08:00
Sebastiaan Janssen 32bc2f1d69 merge ismailmayat-UK-Festival 2013-12-29 14:34:54 +01:00
Sebastiaan Janssen 4d3f67885a Fixes U4-1076 Apostrophes in document type description are shown preceded/escaped by a slash in the Create Node dialog 2013-12-29 14:12:23 +01:00
Sebastiaan Janssen a269e9d426 Merge branch 'BatJan-master' into 6.2.0 2013-12-29 13:51:54 +01:00
Sebastiaan Janssen af5a382f93 Merge branch 'master' of https://github.com/BatJan/Umbraco-CMS into BatJan-master 2013-12-29 13:51:18 +01:00
Sebastiaan Janssen 90174a39e3 Merge branch 'enkelmedia-patch-2' into 7.0.2 2013-12-29 12:41:12 +01:00
Sebastiaan Janssen 4d9f9c890d Merge branch 'patch-2' of https://github.com/enkelmedia/Umbraco-CMS into enkelmedia-patch-2 2013-12-29 12:40:46 +01:00
Sebastiaan Janssen dad910b8ab Merge pull request #212 from mattbrailsford/6.2.0-1004
Added ValidateRequest="false" on package installer page to allow user co...
2013-12-28 03:50:10 -08:00
Shannon 8a70c440f2 Added many more unit tests for the membership provider base class and fixed some logic inconsistencies. 2013-12-28 18:55:43 +11:00
Shannon 07f3de8b67 updates port number 2013-12-28 14:42:34 +11:00
Shannon 0955b0c474 fixes proj ref 2013-12-28 14:37:53 +11:00
Shannon 57d1ff20fd Improves test suite performance - this should shed a few minutes off of the test runs. 2013-12-28 14:35:43 +11:00
Shannon fbdb1d5d6c Fixes: U4-3942 Cannot configure the request if there is not content assigned - exception
Conflicts:
	src/Umbraco.Tests/Umbraco.Tests.csproj
2013-12-28 14:01:08 +11:00
Shannon b924b06062 Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2013-12-28 13:57:53 +11:00
Shannon fb029861cf Fixes: U4-3942 Cannot configure the request if there is not content assigned - exception 2013-12-28 13:57:20 +11:00
perploug 4eb19bd26c Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2013-12-27 22:03:30 +01:00
perploug 71a07060a9 removes debugging output from treesource preval editor 2013-12-27 21:55:59 +01:00
Shannon edaa5ebd43 Lots more unit tests for the membership providers and some other fixups - have a new failing test as i need to sort out salting issue with encrypted passwords. 2013-12-24 14:03:18 +11:00
Shandem c12b270511 Merge pull request #268 from james-melville/6.2.0
Fixes: U4-3814 - 6.1.6 XSS vulnerability in backoffice
2013-12-23 16:14:52 -08:00
Shannon c8fa2b3880 Merge branch 'abjerner-patch-1' into 6.2.0
Conflicts:
	src/Umbraco.Web/PublishedContentExtensions.cs
2013-12-24 11:08:48 +11:00
Shannon d474481cba publicizes MemberService so that devs can use the events on nightly builds for now. 2013-12-24 11:03:20 +11:00
Shannon 62e3ab27fe Adds comments to EntityController code to use UmbracoHelper 2013-12-24 10:58:11 +11:00
Shannon 86c008fc8c Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2013-12-24 10:49:01 +11:00
Shannon 154ee39755 Fixes: U4-3907 Token cookie issues in 7.0.1 2013-12-24 10:48:32 +11:00
Shannon 63ca9f210b updates version # 2013-12-24 10:48:14 +11:00
Shannon 1c139b685a updates legacy membership provider to use efficient paging. 2013-12-20 18:12:54 +11:00
Shannon 7a8b3dc9bc Updated the member service/repo to have paged queries and results which use db paging for maximum efficiency (of course only works for things like email, username but those are 2 specific things that are needed by the membership provider) 2013-12-20 18:11:12 +11:00
Shannon a4dde1948f Implements the member count methods on the member service and adds unit tests. 2013-12-20 16:20:32 +11:00
Shannon 0f68818a19 Updated member service with the newer property value queries and added unit tests for all of them 2013-12-20 15:44:53 +11:00
Shannon 414b65b269 More WIP on the membership providers - both new and old. They are now both working with the same up-to-date logic and base classes. Updated the interface definitions on the member services to support the membership provider queries - now to implement the logic. 2013-12-20 14:01:10 +11:00
perploug 28c2aa1195 Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2013-12-19 11:32:17 +01:00
perploug 391c778b80 Minor refactor of treesource internal model 2013-12-19 11:32:09 +01:00
perploug f2c2b7590b Get Entity by Query WIP 2013-12-19 11:31:55 +01:00
perploug 22d6981ab0 Fixes small issue with language loading 2013-12-19 11:06:10 +01:00
Stephan 4dbe317c03 Merge pull request #274 from esn303/U4-3908
Fix for U4-3908 YSOD on frontend after being logged out
2013-12-19 01:54:24 -08:00
Marc dc727ba0de Fix for U4-3908 YSOD on frontend after being logged out 2013-12-19 10:41:44 +01:00
Shannon 2dd04799b2 WIP membership provider updates 2013-12-19 18:33:25 +11:00
esunxray 1c901e00cc Update zh.xml
add line <key alias="resetPassword">重设密码</key>
2013-12-19 14:53:50 +08:00
Shannon d7207f7c2a Fixes some merge issues 2013-12-19 16:09:33 +11:00
Shannon a5828a2c3e Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Web.UI/umbraco/controls/GenericProperties/GenericProperty.ascx
2013-12-19 15:59:50 +11:00
Shandem c589c741e8 Merge pull request #220 from leekelleher/U4-2006
Fixes: U4-2006 Domain.GetDomain(string DomainName) is case-sensitive
2013-12-18 20:56:03 -08:00
Shandem c8923cbc27 Merge pull request #221 from AnthonyCogworks/U4-2272
Replaced HttpContext.Current.Cache with HttpRuntime.Cache
2013-12-18 20:54:57 -08:00
Shandem 063f405a06 Merge pull request #230 from Yawka/U4-2772
U4 2772
2013-12-18 20:51:17 -08:00
Shannon 68a25bb5b1 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2 2013-12-19 15:50:03 +11:00
Shandem addfbcf2a7 Merge pull request #232 from Yawka/U4-2034
U4 2034
2013-12-18 20:48:52 -08:00
Shandem 8ee133bb75 Merge pull request #239 from OptimisticCoder/U4-451
U4-451 Inconsistent line endings in template files created by Umbraco
2013-12-18 20:46:46 -08:00
Shandem fa1185cbd8 Merge pull request #241 from OptimisticCoder/U4-3039
U4-3039 Import Document Type leaves files in App_Data
2013-12-18 20:43:15 -08:00
Shandem 68e0a414a0 Merge pull request #245 from esn303/patch-1
Fixed minor typos
2013-12-18 20:39:43 -08:00
Shannon 6ddef7df27 Merge branch 'esn303-patch-2' into 7.0.2 2013-12-19 15:36:59 +11:00
Shannon 66f572b642 Merge branch 'patch-2' of https://github.com/esn303/Umbraco-CMS into esn303-patch-2 2013-12-19 15:36:44 +11:00
Shannon a7a1730898 Merge branch 'kalletoxic-7.0.0' into 7.0.2 2013-12-19 15:31:26 +11:00
Shannon 155e7338cf Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Web.UI/umbraco/masterpages/umbracoDialog.Master
	src/Umbraco.Web.UI/umbraco_client/tinymce3/plugins/autolink/editor_plugin_src.js
	src/Umbraco.Web.UI/umbraco_client/tinymce3/plugins/table/editor_plugin_src.js
	src/Umbraco.Web.UI/umbraco_client/tinymce3/tiny_mce_popup.js
2013-12-19 15:30:17 +11:00
Shandem 89860bd786 Merge pull request #261 from esunxray/patch-1
Update zh.xml
2013-12-18 20:26:48 -08:00
Shandem b5cfefa052 Merge pull request #265 from Jeavon/U4-3247
Fixes U4-3247 - TinyMce v3 doesn't work with IE11
2013-12-18 20:22:19 -08:00
Shannon b2c0f3c35a some file formatting 2013-12-19 15:21:02 +11:00
Shannon d5e0c6ff68 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	.gitignore
	src/Umbraco.Tests/PublishedContent/PublishedContentExtensionTests.cs
	src/Umbraco.Web.UI/config/ClientDependency.config
	src/Umbraco.Web.UI/umbraco/Umbraco.aspx.designer.cs
	src/Umbraco.Web.UI/umbraco/editContent.aspx
	src/Umbraco.Web.UI/umbraco/login.aspx
	src/Umbraco.Web.UI/umbraco/masterpages/umbracoDialog.Master
	src/Umbraco.Web.UI/umbraco/masterpages/umbracoPage.Master
	src/Umbraco.Web.UI/umbraco/umbraco.aspx
2013-12-19 15:08:19 +11:00
Shannon a43f4b7b7f Completes: U4-1521 Updated back office to use ClientDependency bundles for common files 2013-12-19 15:05:05 +11:00
Shandem 7ce3949852 Merge pull request #209 from ProNotion/U4-1521
U4 1521
2013-12-18 18:37:02 -08:00
Shandem 4862419744 Merge pull request #198 from craigacronin/U4-1891
Fixed as per issue comments, but also implemented for another 3 overload...
2013-12-18 18:33:57 -08:00
Shannon 6b810c89f6 un-ignores PublishedContentExtensionTests 2013-12-19 13:28:17 +11:00
Shandem 89b0a2fd89 Merge pull request #170 from lars-erik/6.2.0_fix_publishedcontentextensiontests_sidebysidefriendly
Should make the PublishedContentExtensionTests green when ran together w...
2013-12-18 18:25:38 -08:00
Shannon 73c479c843 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2 2013-12-19 13:23:22 +11:00
Shannon 8aceae9880 re-formats some code, simplifies calls using InvariantEquals extension method 2013-12-19 13:22:33 +11:00
Shandem 384d4d60f1 Merge pull request #168 from stevetemple/6.1.6-multiple-action-route-issue
Fix error when multiple routes have the same controller
2013-12-18 18:18:44 -08:00
Shannon 67caf81a74 adds a couple of null checks. 2013-12-19 13:14:38 +11:00
Shannon 763ab26446 Updates packaging service to not export empty properties. 2013-12-19 13:13:13 +11:00
Shannon 67a8fa5f07 Merge branch 'wtct-U4-3091' into 6.2.0 2013-12-19 13:05:27 +11:00
Shannon f7b61d09e2 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Profiling/ProfilingViewEngine.cs
2013-12-19 12:53:32 +11:00
Shannon 5c59317bf8 changes casing of col names 2013-12-19 12:52:37 +11:00
Shannon a2ec53dd4f Merge branch 'wtct-U4-3071' into 6.2.0 2013-12-19 12:50:42 +11:00
Shannon db78c78df2 fixes some merge issues with view engine wrapping PR. 2013-12-19 12:45:46 +11:00
Shannon 4558549d5a Fixes appendformat issue 2013-12-19 12:40:41 +11:00
Shannon d98801d5d1 Merge branch '6.2.0' of https://github.com/mortenbock/Umbraco-CMS into mortenbock-6.2.0
Conflicts:
	src/Umbraco.Web/WebBootManager.cs
2013-12-19 12:35:33 +11:00
Shandem de9ecf6afc Merge pull request #143 from IDisposable/patch-1
Added contextualKeyBuilder optional argument to allow the key used for cachin...
2013-12-18 17:32:26 -08:00
Shandem 702790bf77 Merge pull request #144 from IDisposable/patch-2
Make CacheHelperExtensions public so we can call CachedPartialView and C...
2013-12-18 17:30:01 -08:00
Shannon 3a1dbc778b Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
2013-12-19 12:29:02 +11:00
Shannon c912e80134 modified media service tests to not have to create data in teh base tests 2013-12-19 12:27:21 +11:00
Shannon 098c856138 Merge branch '6.2.0' of https://github.com/sniffdk/Umbraco-CMS into sniffdk-6.2.0
Conflicts:
	src/Umbraco.Tests/Umbraco.Tests.csproj
2013-12-19 12:11:33 +11:00
Shannon b45306e1ff Merge branch '6.2.0' of https://github.com/dprothero/Umbraco-CMS into dprothero-6.2.0
Conflicts:
	src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
2013-12-19 11:59:22 +11:00
Shannon 3499f39970 Merge branch 'kipusoep-patch-1' into 6.2.0 2013-12-19 11:49:30 +11:00
Shannon 4fb61be092 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2 2013-12-19 11:46:59 +11:00
Shannon 9115aa1a6d merge issue with proj file 2013-12-19 11:46:31 +11:00
Shannon f98b81116c Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Web/Umbraco.Web.csproj
2013-12-19 11:45:24 +11:00
Shannon 904cbbb906 missing proj file update 2013-12-19 11:41:26 +11:00
Shannon c0380e491b Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Web.UI/umbraco/controls/Tree/TreeControl.ascx
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/Tree/TreeControl.ascx.cs
	src/umbraco.controls/TreePicker/SimpleContentPicker.cs
2013-12-19 11:41:03 +11:00
Shannon 8656d3e4b9 adds some null checks, removes old unused webforms files for tree control 2013-12-19 11:35:53 +11:00
Shannon 40988b4655 Merge branch 'select-parent-on-movecopy' of https://github.com/pynej/Umbraco-CMS into pynej-select-parent-on-movecopy
Completes: U4-3920 Move/Copy/Content-Picker time saver - pre-selects current node
2013-12-19 11:25:54 +11:00
Shannon 8a8b69a442 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/umbraco.presentation/umbraco/plugins/tinymce3/GoogleSpellChecker.cs
2013-12-19 11:14:06 +11:00
Shannon 06dbea84d8 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2013-12-19 11:06:11 +11:00
Shannon f54cf32057 Converted spell checker deserialization to json.net and changed the deserialized object to internal with correct naming conventions. 2013-12-19 11:06:00 +11:00
Shannon 64dbf0207b Merge branch 'DougMac-6.1.4' into 6.2.0 2013-12-19 10:38:56 +11:00
Shannon f743830167 Fixes: U4-3911 Datatypes changes their uniqueID on first save 2013-12-19 10:27:18 +11:00
Stephan 206c88105e Left some Console.WriteLine statements uncommented 2013-12-18 17:50:47 +01:00
Morten Christensen 3177b979d3 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2013-12-18 10:00:47 +01:00
Shannon 0addd719d3 fixed merge issues 2013-12-18 18:14:37 +11:00
Shannon 662dfb37d3 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Persistence/Querying/BaseExpressionHelper.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Services/IMemberService.cs
	src/Umbraco.Core/Services/MemberService.cs
	src/Umbraco.Core/Umbraco.Core.csproj
2013-12-18 18:11:56 +11:00
Shannon 4ab32dd270 moves classes into sep files 2013-12-18 18:09:54 +11:00
Shannon fec55e9d1c Updates IMemberService with methods to search on string properties with an option to define how to match the string property, adds all supporting unit tests. 2013-12-18 17:37:46 +11:00
Shannon a21aa079ff Adds ability to use the query builder with string matches based on an NText column 2013-12-18 17:22:00 +11:00
Shannon ef4246478d Fixes: U4-2294 6.1.0: umbracoServer table can't be created on MySQL <5.6.5 2013-12-18 15:30:40 +11:00
Shannon dda538d1fc Merge remote-tracking branch 'origin/6.2.0' into 7.0.2 2013-12-17 16:14:33 +11:00
Shannon 137d859532 backports missing logic and tests from 7 that I overlooked. 2013-12-17 16:13:38 +11:00
Shannon d6d80ae037 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Constants-Conventions.cs
	src/Umbraco.Core/Models/ContentExtensions.cs
	src/Umbraco.Core/Persistence/Factories/MemberTypeReadOnlyFactory.cs
	src/Umbraco.Core/Persistence/Relators/PropertyDataRelator.cs
	src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs
	src/Umbraco.Core/Services/IMemberService.cs
	src/Umbraco.Core/Services/IMemberTypeService.cs
	src/Umbraco.Core/Services/MemberService.cs
	src/Umbraco.Core/Services/MemberTypeService.cs
	src/Umbraco.Core/Services/ServiceContext.cs
	src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs
	src/Umbraco.Tests/TestHelpers/Entities/MockedContentTypes.cs
	src/Umbraco.Tests/TestHelpers/Entities/MockedMember.cs
	src/Umbraco.Tests/Umbraco.Tests.csproj
2013-12-17 16:03:27 +11:00
Shannon 82b2821e27 Gets the members services ensuring members xml is being handled correctly, fixes issue with the static variable holding the default member type properties (this was then persisted in mem and then reused across all member types). Added more unit tests to verify all. 2013-12-17 15:40:47 +11:00
Shannon b270cefacc Upgrading member repositories and services with tests 2013-12-17 14:53:21 +11:00
Shannon 8b064fc2ec Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/Models/Member.cs
	src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs
	src/Umbraco.Tests/TestHelpers/Entities/MockedMember.cs
2013-12-17 12:39:45 +11:00
Shannon b4e984fe6a adds/updates unit tests for member and member type repository 2013-12-17 12:38:11 +11:00
Shannon 1a3339d485 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs
2013-12-17 11:42:50 +11:00
Shannon f62e4fa973 adds/updates member type repo tests 2013-12-17 11:42:03 +11:00
Shannon ee8050f38f Fixes ContentTypeBase event assignment issue - an event handler was added for every property type added - that was not correct. 2013-12-17 11:35:56 +11:00
Stephan 8cb0f5762c Merge remote-tracking branch 'origin/6.2.0' into 7.0.2 2013-12-16 17:11:15 +01:00
Stephan 287596220a Merge remote-tracking branch 'origin/7.0.2' into 7.0.2 2013-12-16 17:10:42 +01:00
Stephan f870ee18d4 U4-3710 - fix merge 2013-12-16 17:10:30 +01:00
Stephan b506b5c8e9 U4-3710 - bugfix 2013-12-16 17:01:35 +01:00
Morten Christensen d9e843f0ba Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2013-12-16 09:48:18 +01:00
Shannon 805c1dfb5b Merge remote-tracking branch 'origin/6.2.0' into 7.0.2 2013-12-16 19:05:44 +11:00
Shannon 66dd0d073c backports the member type service updates 2013-12-16 19:05:03 +11:00
Shannon f269b1931d Merge remote-tracking branch 'origin/6.2.0' into 7.0.2 2013-12-16 19:03:29 +11:00
Shannon 29c22cc4b5 exposes repository service 2013-12-16 19:02:53 +11:00
Shannon 76695fc7b2 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2 2013-12-16 18:44:52 +11:00
Shannon e29031a2c4 Back ported relationship repo/service updates 2013-12-16 18:44:11 +11:00
Shannon 9b2b8e8166 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2 2013-12-16 18:24:12 +11:00
Shannon 3ff0cca033 back ports entity service updates 2013-12-16 18:23:40 +11:00
Shannon aa398b4f36 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2 2013-12-16 18:18:23 +11:00
Shannon fe16cc91fa back ports packaging service updates 2013-12-16 18:17:30 +11:00
Shannon 7e6fdcb05e back ported template repo and file service updates 2013-12-16 18:10:44 +11:00
Shannon ae54f34bcf Merge remote-tracking branch 'origin/6.2.0' into 7.0.2 2013-12-16 17:48:01 +11:00
Shannon d1e071b9cb adds additional unit tests for the data type service to include pre-value handling. 2013-12-16 17:47:40 +11:00
Shannon 3e253f9c19 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2 2013-12-16 17:18:15 +11:00
Shannon 2ce952bdbb backports data type service updates and fixes unit tests with correct seeding value. 2013-12-16 17:17:23 +11:00
Shannon b8f5d1c42c Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/umbraco.editorControls/MultiNodeTreePicker/MNTP_DataEditor.cs
2013-12-16 16:29:28 +11:00
Shannon 6a9b8d5540 Fixes a unit test issue with the mntp editor initialization. 2013-12-16 16:27:59 +11:00
Shannon fdc9261399 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2 2013-12-16 16:21:47 +11:00
Shannon 64b247157c Merge commit '0f25029ff6531095782a567bf054d6bc209e2a56' into 7.0.2
Conflicts:
	src/Umbraco.Core/Cache/DictionaryCacheProviderBase.cs
	src/Umbraco.Core/Cache/HttpRequestCacheProvider.cs
2013-12-16 16:21:38 +11:00
Shannon fcacc1bd71 Merge commit '060e584503039ac020f79602ae9565d7ee0531bb' into 7.0.2 2013-12-16 16:21:06 +11:00
Shannon 68d581ac82 fixes build (merge issue) 2013-12-16 16:18:44 +11:00
Shannon af86a5d7b1 backporting imediaservice changes 2013-12-16 16:04:37 +11:00
Shannon 0f25029ff6 Fixed typo 2013-12-16 16:02:34 +11:00
Shannon 060e584503 backported IContentService updates 2013-12-16 15:57:59 +11:00
Shannon 743c0bb31c Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2013-12-16 14:19:10 +11:00
Shannon 4bac3e19fe Fixes up webbootmanager with new cachehelper updates. 2013-12-16 14:18:58 +11:00
Shannon b86cddda94 fixes up unit tests 2013-12-16 13:55:46 +11:00
Shannon 11103c0bc5 proj file 2013-12-16 13:23:07 +11:00
Shannon 8210702474 removes the xquery tests - we don't need these and r# keeps wanting to run them 2013-12-16 13:22:52 +11:00
Shannon a42b660648 Backporting the cachehelper and associated cache classes. 2013-12-16 13:19:10 +11:00
Shannon f11d4fbedd Worked on the application cache, added request cache, changed some stuff over to be interfaces, added unit tests suite (need mroe) to test all caching providers.
Conflicts:
	src/Umbraco.Core/Cache/CacheProviderBase.cs
	src/Umbraco.Core/Cache/HttpRuntimeCacheProvider.cs
	src/Umbraco.Core/Cache/NullCacheProvider.cs
	src/Umbraco.Core/Cache/StaticCacheProvider.cs
2013-12-16 12:51:02 +11:00
Shannon 9105c08a4c getting membership provider to the same state as v7 2013-12-16 12:20:38 +11:00
Shannon 71b3ea2e56 Merge branch '7.0.2' of https://github.com/umbraco/Umbraco-CMS into 7.0.2 2013-12-16 11:19:57 +11:00
perploug 33b3032b30 Merge pull request #269 from hartvig/7.0.1
Fixes links in help
2013-12-14 03:02:28 -08:00
Niels Hartvig 31e5ed7b1b Fixes links in help 2013-12-14 11:48:08 +01:00
Stephan 98c8d637f4 Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts:
	src/Umbraco.Core/DatabaseContext.cs
	src/Umbraco.Core/Strings/DefaultShortStringHelper.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/umbraco.presentation/install/utills/LegacyClasses.cs
2013-12-13 13:05:10 +01:00
Stephan 8a3eae9ea6 Merge remote-tracking branch 'origin/7.0.1' into 7.0.2 2013-12-13 12:55:46 +01:00
Stephan 5aec753859 U4-3710, -3732 - Fix default ShortStringHelper 2013-12-13 12:20:57 +01:00
james-melville eeaa9166ac Fixes: U4-3814 - 6.1.6 XSS vulnerability in backoffice 2013-12-13 10:25:32 +00:00
Shannon 751ace1168 Merge branch '6.2.0-membershipprovider' into 6.2.0
Conflicts:
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
2013-12-13 17:17:24 +11:00
Shannon 51da5343ea Fixes installation issue with rebuilding media cache
Conflicts:
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Web.UI/config/trees.config
	src/Umbraco.Web/Umbraco.Web.csproj
2013-12-13 17:07:29 +11:00
Shannon 34df5009e0 Upgraded installer to do a two part install - first install then if an upgrade is required do the upgrade in a second call - this way we can have the progress bar update since the media xml installer can take some time. 2013-12-13 16:58:21 +11:00
Shannon d4db7d9523 Merge branch '7.0.1' into 7.0.2 2013-12-13 16:54:39 +11:00
Shannon 6a5a320a22 doh, didn't mean to commit this config change 2013-12-13 16:54:16 +11:00
Shannon 62cf1cd87d Fixes: U4-3844 U7 - System.OutOfMemoryException: Out of memory - uploading 11Mb image 2013-12-13 16:50:11 +11:00
Shannon ebf22d155e Updated the migration to just remove the data it needs instead of rebuilding as that would take a very long time for some installs. 2013-12-13 12:53:02 +11:00
Shannon 01644e8f6c Upgraded installer to do a two part install - first install then if an upgrade is required do the upgrade in a second call - this way we can have the progress bar update since the media xml installer can take some time. 2013-12-13 12:34:57 +11:00
Shannon f2be1669bf Fixes installation issue with rebuilding media cache 2013-12-13 12:02:32 +11:00
Anders Bjerner e17b5e6a7b Update PublishedContentExtensions.cs
Added overloaded extension methods for Next() and Previous() to take a delegate (eg. lambda expression) as a second parameter. The methods are based on this thread by Jeavon Leopold: http://our.umbraco.org/forum/developers/razor/46832-Filtered-Next()-and-Previous()-v7-UmbracoHelperMVC

The code is tested in 7.0.0, but since it only relies on the existing Next() and Previous() methods, it should work in 6.1.x and 7.1.1 as well.
2013-12-12 15:32:52 +01:00
perploug 24911bffe2 adds version number to help dialog 2013-12-12 12:28:43 +01:00
perploug d343340f56 Adds missing language keys 2013-12-12 12:28:25 +01:00
perploug 0c82f78c43 Upgrades tinymce lib to support IE11 2013-12-12 12:27:49 +01:00
perploug 5cf3a619f7 Fixes: U4-3841 sorting picked media items with the multiple media picker clears the selection 2013-12-12 09:16:02 +01:00
Shannon 49550b410a Ensures Integer and Email validators are added on startup as manifest validators. 2013-12-12 18:28:45 +11:00
Shannon b9df55ef98 fixing more tests 2013-12-12 18:09:48 +11:00
Shannon e456c44b46 Fixing some unit tests 2013-12-12 17:57:50 +11:00
Shannon 61315a8d83 Merge remote-tracking branch 'origin/6.2.0' into 7.0.1
Conflicts:
	src/Umbraco.Tests/ObjectExtensionsTests.cs
2013-12-12 17:53:27 +11:00
Shannon a1c65f0518 Gets that naggy unit test passing 2013-12-12 17:52:03 +11:00
Shannon 49c8313c9e Fixes: U4-3638 - U7 - Preview mode seems permanent and shows incorrect content on front of website, when using same browser as admin login 2013-12-12 17:30:27 +11:00
Shannon 141f9b6ea1 ensures the cssclass is set for selecting media items (oops, had removed that before) 2013-12-12 16:23:33 +11:00
Shannon d223ee97cd Fixes: U4-3840 MediaPicker doesn't show images when there are also folders inside of the folder being viewed
and moves some of the util classes into their own files, adjusted media picker's icon sizes too to make it more readable.
2013-12-12 16:16:59 +11:00
Shannon a098e49840 Fixes: U4-3835 U7(nightly214) - Umbraco.Field not working 2013-12-12 14:41:01 +11:00
Shannon 8785239964 Finalizes the implementation of getting the menu items rendering for child of listview items for both content and media. 2013-12-12 14:10:03 +11:00
Shannon 74a691ac3a Removes all the console.log calls 2013-12-12 14:09:03 +11:00
Shannon 38c1669e57 Gets content items that are children of listviews to query for their affiliated tree-node and display the action menu. 2013-12-12 13:27:33 +11:00
Shannon 58f0d1a464 fixes null check on HttpQueryStringFilterAttribute and adds ability to specify parameters in the GetUmbracoApiService urlhelper extensions. 2013-12-12 13:26:53 +11:00
Shannon f30740bd49 grid is working nicely now with a couple tests 2013-12-12 11:38:34 +11:00
perploug 3de3ccad00 Fixes related links word-breaking 2013-12-11 13:32:17 +01:00
perploug 75502ca18c Compact form less adjustments 2013-12-11 13:09:45 +01:00
perploug c531c36cab adds target to RTE link picker 2013-12-11 13:09:25 +01:00
perploug 387e64acac Fixes wrong app_plugin dialog path
Changes /app_plugin/folder/umbraco to /app_plugins/folder/backoffice
which the way we documented it
2013-12-11 09:47:56 +01:00
perploug 91a5d55183 Merge branch '7.0.1' of https://github.com/umbraco/Umbraco-CMS into 7.0.1 2013-12-11 09:44:37 +01:00
Shannon 9819318060 Fixes up the auth http post 2013-12-11 18:53:00 +11:00
Shannon 2e990a7869 All working now, Fixes: U4-3722 Images in Media folder are huge 2013-12-11 18:05:04 +11:00
Shannon ed7175192b images that are smaller than the min display size will now just be centered in the square and are no longer scaled up. 2013-12-11 17:53:19 +11:00
Shannon 4e63bb38f3 margins are now working nicely. 2013-12-11 16:44:20 +11:00
Shannon d61b9bfdd7 Awesome progress on the photo folder changes to have correctly calculated images sizes - now just need to get margins going and centering of images that are smaller than the min. 2013-12-11 14:34:04 +11:00
Shannon 0de53308f5 Fixes some issues with app startup/authentication and when events fire 2013-12-11 12:01:22 +11:00
Shannon 85bf47df82 Fixes FileUploadPropertyEditor and IFileSystem usage 2013-12-11 09:05:38 +11:00
Shannon 791c3f5208 added missing view file 2013-12-11 08:51:07 +11:00
perploug bc7876681b docs: dialogservice 2013-12-10 15:31:08 +01:00
perploug 68aa3f7b1b broke touch detection, reverting 2013-12-10 12:15:40 +01:00
perploug 976531fe7e Removes missing file from web.ui.csproj 2013-12-10 12:08:13 +01:00
perploug ded7350d74 Docs: util.service.js 2013-12-10 11:23:54 +01:00
perploug e3594bf6fc Fixes: U4-3723 Only possible to link to content (not media) in Richtext editor
Adds file link button to link dialog, that proxies through the standard
media dialog
2013-12-10 11:20:00 +01:00
Shannon 6a6d9ec7b0 Updates the image helper and imagescontroller to never scale images larger than what they are. 2013-12-10 18:24:20 +11:00
Shannon 200a400fc5 put the row style on to the photo folder, without it the image widths are not calculated correctly and span over a row (depending on your current screen size). Since the currently implementation isn't really responsive anyways this at least makes it look better. We can later detect size changes and re-calc how they should be laid out. Updates the JS code to be more readable by humans. 2013-12-10 18:23:45 +11:00
Shannon 76c807a4e7 Fixes latest IFileSystem fix for image uploading 2013-12-10 16:48:57 +11:00
Shannon 985db6d2e3 div tag not closed on umb-photo-folder 2013-12-10 16:20:22 +11:00
Shannon 7894fcfc91 Fixes: U4-3714 Media tree doesn't get refreshed after upload 2013-12-10 15:10:11 +11:00
Shannon f41b0ff4b5 removes some debug logging 2013-12-10 14:15:23 +11:00
Shannon d0a5892f9f Fixes: U4-3796 No media macro parameter in v7 2013-12-10 14:13:56 +11:00
Shannon c0f4950270 Fixes: U4-3826 It is possible in some cases to insert a macro inside a macro inside the rte 2013-12-10 14:11:36 +11:00
Shannon 1d9c3b1a79 Merge remote-tracking branch 'origin/6.2.0' into 7.0.1
Conflicts:
	src/Umbraco.Core/Services/ContentService.cs
	src/Umbraco.Web/umbraco.presentation/library.cs
2013-12-10 12:59:29 +11:00
Shannon c5047148b3 Fixes legacy media business logic to return null when calling ToXml if the media item is trashed - this makes it consistent with how content works and also prevents being able to show the media on the front-end when it is trashed. Fixes up how the MediaService rebuilds the XML to make sure it's transactional based. Fixes: U4-3820 cached media xml is not cleared from the cmsContentXml table when recycled
Conflicts:
	src/Umbraco.Web/umbraco.presentation/library.cs
2013-12-10 12:56:31 +11:00
Shannon a6b3233c10 Fixes legacy media business logic to return null when calling ToXml if the media item is trashed - this makes it consistent with how content works and also prevents being able to show the media on the front-end when it is trashed. Fixes up how the MediaService rebuilds the XML to make sure it's transactional based. Fixes: U4-3820 cached media xml is not cleared from the cmsContentXml table when recycled 2013-12-10 12:53:33 +11:00
Shannon 9ec1f9b3f9 Merge remote-tracking branch 'origin/6.2.0' into 7.0.1
Conflicts:
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Web.UI/install/Default.aspx.cs
2013-12-10 11:55:32 +11:00
Shannon ed2126eef9 ensures media xml cache is rebuilt on upgrade 2013-12-10 11:54:18 +11:00
Shannon ce4b56895e fixes installer login check 2013-12-10 11:51:41 +11:00
Shannon eaac76cdc1 Fixes: U4-3821 Infinite redirect loop when upgrading from 7.0.0 to 7.0.1 and ensures media cache is rebuilt on upgrade 2013-12-10 11:51:03 +11:00
Shannon bffe52e060 Merge remote-tracking branch 'origin/6.2.0' into 7.0.1
Conflicts:
	src/Umbraco.Tests/PluginManagerTests.cs
2013-12-10 10:00:37 +11:00
Shannon 94db371234 Ensures macro and urls are not parsed in the ItemRenderer when a content item is assigned since that parsing will occur with the value converters 2013-12-10 09:59:13 +11:00
Shandem b12cd81c01 Merge pull request #264 from mvanhelmont/patch-1
fix /{localLink:ID}
2013-12-09 14:53:48 -08:00
Sebastiaan Janssen 103e226b51 Merge pull request #215 from dipeshhirani/U4-752
U4-752 Add culture invariant languages to create language dialog
2013-12-09 13:40:21 -08:00
Sebastiaan Janssen 208cf8a01d Bump version and try to make the buildserver happy 2013-12-09 17:55:37 +01:00
perploug 1f81107485 Fixes: U4-3653 Bottom "Action" links inaccessible 2013-12-09 15:24:38 +01:00
perploug bf5042e3d0 fixes: U4-3718 Sorting a list view by "Updated by" throws an exception
It tries to sort the result on UserBasic, made userbasic implement
ICompareble
2013-12-09 14:32:16 +01:00
perploug 15b55f2b36 Fixes: U4-3631 Disable preview button when there is no template assigned, since there is nothing to preview then... 2013-12-09 14:17:51 +01:00
Shannon 57f2250f13 Fixes: U4-3820 cached media xml is not cleared from the cmsContentXml table when recycled 2013-12-09 16:56:02 +11:00
Shannon f15682ef60 Fixes: U4-3820 cached media xml is not cleared from the cmsContentXml table when recycled 2013-12-09 16:35:12 +11:00
Shannon 1b1ec04e7c Ensures macro and urls are not parsed in the ItemRenderer when a content item is assigned since that parsing will occur with the value converters 2013-12-09 15:42:38 +11:00
Shannon 049c65a2c7 Fixes: U4-3799 @Umbraco.Field("bodyText") returns {LocalLink:xxx} 2013-12-09 15:20:11 +11:00
Shannon d50aa38c31 Ooops fixes the rte macro parser to not return empty when no macros are found 2013-12-09 14:01:34 +11:00
Shannon 1531f979a2 fixes: U4-3816 Creating member with @ in login results in SQL parameter error 2013-12-09 13:19:59 +11:00
Shannon 69ffecd686 Fixes: U4-3741 GetMemberFromLoginNameAndPassword Always Return Null 2013-12-09 13:08:06 +11:00
Shannon 6ec297aaaf Merge remote-tracking branch 'origin/6.2.0' into 7.0.1 2013-12-09 12:49:13 +11:00
dipeshhirani bb1edd2051 remove commented line 2013-12-08 16:23:03 +00:00
Sebastiaan Janssen 14790559cb Merge pull request #140 from pynej/search-node-type
Add node type to search results
2013-12-08 07:56:50 -08:00
Sebastiaan Janssen 97457087c7 Merge pull request #266 from greystate/patch-1
Fix a typo/grammar error in da.xml
2013-12-08 06:21:31 -08:00
perploug 8469d18a0e fixes search keyboard support 2013-12-06 15:09:39 +01:00
perploug da3269e970 Fixes: U4-3426 Can't delete any contentnode, media, document type or template from back end, Umbraco 7.0.0-RC
Replaces $http.delete with $http.post enables httppost on the
server-side, its not the best solution, but has way fewer unknowns then
adding extensive VERB and origin support in the web.config
2013-12-06 13:12:18 +01:00
perploug b2b0afde4b Fixes broken copy/move dialog 2013-12-06 12:17:12 +01:00
perploug ff849ab912 Sets umbracoVersion to 7.0.1 2013-12-06 12:17:01 +01:00
perploug 97b8a5000a Fixes broken installer due to moving app-settings back into web.config 2013-12-06 12:16:36 +01:00
perploug f59489a5cb Merge branch '7.0.1' of https://github.com/umbraco/Umbraco-CMS into 7.0.1 2013-12-06 10:07:29 +01:00
perploug b03427cabc Fixes: U4-3806 Prevalue validation run all field validators against all fields 2013-12-06 10:07:04 +01:00
Shannon 2eb5c08825 Fixing: U4-3686 Umbraco 7 - Rich Text Editor and Macro Issues + fixed up the per-controller webapi configuration and more fixes to loading propertyeditors/param editors, this saves a assembly scan. 2013-12-06 15:01:58 +11:00
Shannon 37eb66510f Fixes: U4-3505 Sometimes macro parameter types are not resolved during startup 2013-12-06 14:07:29 +11:00
Shannon dc7c7304ad Fixes: U4-3505 Sometimes macro parameter types are not resolved during startup 2013-12-06 14:06:53 +11:00
Shannon 8327b8aa0e Completes: U4-3792 Move appSettings, connectionStrings back to web.config 2013-12-06 11:52:47 +11:00
Shannon 7759249963 Fixes: U4-2967 Inline macros error out when trying to access the Model 2013-12-06 11:22:16 +11:00
Shannon 9d9070c979 fixes user service query to work with mssql and mysql 2013-12-06 10:56:49 +11:00
Shannon feb1a14650 Merge remote-tracking branch 'origin/6.2.0' into 7.0.1 2013-12-06 10:27:40 +11:00
Shannon 4cb4ff0617 Fix MySQL migrations.
Conflicts:
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AlterTagRelationsTable.cs
2013-12-06 10:26:32 +11:00
Shannon 9e1d6dbf9b Merge branch 'Bitmapped-7.0.0' into 7.0.1 2013-12-06 10:22:07 +11:00
perploug 82ec2d28ef WIP on media upload tree refresh 2013-12-05 15:28:32 +01:00
perploug 66383c6f16 merge 2013-12-05 13:11:17 +01:00
Chriztian Steinmeier dc60eb8383 Fix a typo/grammar error in da.xml 2013-12-05 13:06:24 +01:00
perploug 9733c5c031 Folderbrowser tree sync 2013-12-05 13:04:28 +01:00
Shannon 0c0c08ec98 Changes how we set the csrf header for jquery, changed to global and ensures that it is lazily resolved to always ensure it has the newest value 2013-12-05 22:18:07 +11:00
Shannon d7d800331b Merge branch '7.0.1' of https://github.com/umbraco/Umbraco-CMS into 7.0.1 2013-12-05 22:07:19 +11:00
Shannon 4346578160 Ensures csrf token is set for PostFile on the media controller for bulk file uploads 2013-12-05 22:06:57 +11:00
perploug cfe0b2f9e5 fixes failing eventsService tests 2013-12-05 11:30:08 +01:00
Shannon d7d7d88ecc Merge branch '7.0.1' of https://github.com/umbraco/Umbraco-CMS into 7.0.1 2013-12-05 21:23:53 +11:00
Shannon fd34a9cd29 fixes demo app loader to load the correct bootstrap 2013-12-05 21:23:31 +11:00
Jeavon Leopold 3f1b057f45 Fixes U4-3247 - v6.1.6 RTE view/edit HTML doesn't work with IE 11 by upgrading TinyMce to v3.5.10 2013-12-05 09:06:01 +00:00
perploug 6da1a5adb3 Fixes: U4-3405 Umbraco 7 RC admin login - remember password 2013-12-05 09:22:32 +01:00
Shannon 23cf5b544a Moved image handling to diff controller since it doesn't support the csrf header, need to test more in an hour (WIP) 2013-12-05 19:06:55 +11:00
Shannon b0cde715da fixes merge issue 2013-12-05 18:51:05 +11:00
Shannon 366ca11490 Merge branch 'lars-erik-7.0.azurestorage' into 7.0.1 2013-12-05 18:45:21 +11:00
Shannon a1a985e4a8 Merge branch '7.0.1' of https://github.com/umbraco/Umbraco-CMS into 7.0.1 2013-12-05 18:34:05 +11:00
Shannon 3384634033 Fixes: U4-3795 Cannot create content with a tag editor when the tag property belongs to an inherited doc type & U4-3786 Multi-level document types fail 2013-12-05 18:33:51 +11:00
perploug b6bcdcb351 fixes: U4-3728 Non-Mandatory Numeric property gives error when left blank
also fixes dimming on buttons fails when validation fails
2013-12-05 08:32:53 +01:00
Shannon db5b99dbf1 adds failsafe database lookup to BackwardsCompatibleData even though it shouldn't even get used. 2013-12-05 16:30:14 +11:00
Shannon a64dbb172e undo my custom test change to login controller 2013-12-05 16:20:02 +11:00
Shannon b1913c9a07 puts IDataValueSetter back in so it can be used by backwards compatible data 2013-12-05 16:18:45 +11:00
Shannon 11fc06d75d Merge remote-tracking branch 'origin/6.2.0' into 7.0.1 2013-12-05 16:12:32 +11:00
Shannon f6179ff813 Strange, somehow these updates got overwritten 2013-12-05 16:11:15 +11:00
Shannon 186e664894 Merge remote-tracking branch 'origin/6.2.0' into 7.0.1
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Services/MemberService.cs
	src/umbraco.cms/businesslogic/member/Member.cs
2013-12-05 16:09:34 +11:00
Shannon 1735c5adca adds Exists(string username) to member service and wraps IsMember with that call. 2013-12-05 16:04:53 +11:00
Shannon 31e715e146 Updates legacy Member class to setupNode based on the new IMember object (just like we do with media/content) - this will speed up data retrieval and is the start of wrapping the new API from the old one. 2013-12-05 15:51:38 +11:00
Shannon 4a7f7813e7 Updates legacy Member class to setupNode based on the new IMember object (just like we do with media/content) - this will speed up data retrieval and is the start of wrapping the new API from the old one. 2013-12-05 15:30:22 +11:00
Shannon 5f50bae65c Cleaning up a bit of the legacy member class
Conflicts:
	src/umbraco.cms/businesslogic/member/Member.cs
2013-12-05 14:48:30 +11:00
Shannon 996d74b1d3 Cleaning up a bit of the legacy member class 2013-12-05 14:45:28 +11:00
Shannon e6d8a83519 Ensures that the ContentBase item is set on Document/Media and that the property value is set based on the already loaded value in the model if IData implements IDataValueSetter (which DefaultData does). This streamlines how properties get their data and will save on a ton of queries when using the legacy API. 2013-12-05 14:26:18 +11:00
Shannon d3aa1b3d7e Ensures that the ContentBase item is set on Document/Media and that the property value is set based on the already loaded value in the model if IData implements IDataValueSetter (which DefaultData does). This streamlines how properties get their data and will save on a ton of queries when using the legacy API. 2013-12-05 14:24:26 +11:00
Shannon 3effe6b96d updates manifest docs to be correct 2013-12-05 12:38:39 +11:00
mvanhelmont 0b2428e9a3 fix /{localLink:ID}
ensures it set the href to /{localLink:ID} instead of /umbraco/{localLink:ID}
2013-12-04 21:01:10 +01:00
Lars-Erik Aabech 6458c223b8 Cleaned it up a bit. Now just using media file system provider.
It needs a bit of convesion rules though, need getfullpath(getrelativepath(path)) to be compatible with package & physical.
2013-12-04 19:47:54 +01:00
Brian Powell d36fc65baa Fixed MySQL issue. 2013-12-04 10:50:38 -05:00
Lars-Erik Aabech a511c84b4d Messy fix to support images on other domain. (Read: Azure Storage)
Added GetResized to replace usage of third party packages for simple resizing.

This PR should probably not be pulled, but I make a PR to show you what must be done.
Surely this is considered for UAAS?
2013-12-04 16:12:27 +01:00
perploug ff34024f39 fixes: U4-3717 List view doesn't honor the sort order 2013-12-04 13:17:55 +01:00
perploug bdc0ae7e2f fixes: U4-3707 Change password under users is not translated
translated, and added missing danish keys
2013-12-04 12:55:23 +01:00
perploug 60965ecd92 fixes: U4-3738 macro container, editing doesn't seem to work, just adds a new one
adds fallback on the parser object
2013-12-04 10:56:46 +01:00
Sebastiaan Janssen 708b49ca13 Reference the Microsoft.AspNet.WebApi.Client NuGet instead of local MVC4 install 2013-12-04 10:47:59 +01:00
perploug b6baa9af3d removes webdavModule from web.config 2013-12-04 09:24:04 +01:00
Shannon 8c7db9e846 Fixes: U4-3742 Umbraco 7 and umbraco/channels.aspx 2013-12-04 17:45:47 +11:00
Shannon 176ec0edc0 Fixes: U4-3651 What is the "Pick multiple items" prevalue on MNTP for? and removes the remaining uGoLive references. 2013-12-04 17:13:26 +11:00
Shannon 0d1cf872d3 Fixes WebApi issue with creating HttpResponseMessage manually - this shouldn't be done and we'll end up with very strange YSODs 2013-12-04 17:05:05 +11:00
Shannon 13b6318ad2 Fixes: U4-3776 v7 - MNTP value type changes between int and string 2013-12-04 15:57:55 +11:00
Shannon 18352f8a4d Fixes null check with filtered content/media attribute, fixes issue with container types and rendering tree nodes. 2013-12-04 15:54:50 +11:00
Shannon ad52b86336 Fixes scrollbar issue with directory/file browser and xslt visualize 2013-12-04 15:29:51 +11:00
Shannon 38df2017de Fixes issue with deleting content types that have content 2013-12-04 15:01:27 +11:00
Shannon 210f66cc4a Fixes issue with deleting content types that have content 2013-12-04 15:00:49 +11:00
Shannon e7e209280c Fixes issue with replacing webapi formatter 2013-12-04 14:47:19 +11:00
Shannon 5b7e9c712e Merge remote-tracking branch 'origin/6.2.0' into 7.0.1
Conflicts:
	src/Umbraco.Web.UI/umbraco/LiveEditing/Modules/SkinModule/ModuleInjector.aspx
	src/Umbraco.Web.UI/umbraco/Umbraco.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/LiveEditing/Modules/SkinModule/ImageUploader.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/dashboard.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/developer/Cache/viewCacheItem.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/developer/Macros/assemblyBrowser.aspx.cs
2013-12-04 13:50:55 +11:00
Shannon 33aa4e2062 Fixes potential xss 2013-12-04 13:33:24 +11:00
Shannon 1efa75c891 Fixes potential xss 2013-12-04 12:42:40 +11:00
Brian Powell f48fb5c499 Fix MySQL migrations. 2013-12-03 15:44:34 -05:00
perploug cb13b4a0e0 Merge branch '7.0.1' of https://github.com/umbraco/Umbraco-CMS into 7.0.1 2013-12-03 13:44:53 +01:00
Shannon cb8dbf9da5 fixes up some merge issues 2013-12-03 18:14:04 +11:00
Shannon 2a05687c8b Merge remote-tracking branch 'origin/6.2.0' into 7.0.1
Conflicts:
	src/Umbraco.Core/Persistence/Relators/PropertyTypePropertyGroupRelator.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/PluginManager.cs
	src/Umbraco.Tests/Services/ContentServiceTests.cs
	src/Umbraco.Web.UI/install/Default.aspx.cs
	src/Umbraco.Web.UI/umbraco/LiveEditing/Modules/SkinModule/ModuleInjector.aspx
	src/Umbraco.Web.UI/umbraco/Umbraco.aspx.cs
	src/Umbraco.Web.UI/umbraco/dashboard.aspx
	src/Umbraco.Web.UI/umbraco/dialogs/sort.aspx
	src/Umbraco.Web.UI/umbraco/dialogs/umbracoField.aspx
	src/Umbraco.Web.UI/umbraco/logout.aspx
	src/Umbraco.Web.UI/umbraco/umbraco.aspx
	src/Umbraco.Web/UI/Pages/UmbracoEnsuredPage.cs
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/umbraco.presentation/install/LegacyClasses.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/dashboard.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/logout.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/umbraco.aspx.cs
	src/umbraco.cms/businesslogic/Packager/Installer.cs
	src/umbraco.providers/members/MembersMembershipProvider.cs
2013-12-03 18:10:00 +11:00
Shannon d4514844f8 Fixes a few other potential xss entry points 2013-12-03 17:58:42 +11:00
Shannon 6b7a495d19 Fixes a few other potential xss entry points and cleans up some legacy webforms files 2013-12-03 16:38:58 +11:00
Shannon 601eb0bf38 Fixes a few other potential xss entry points and cleans up some legacy webforms files 2013-12-03 16:28:51 +11:00
Shannon 037e7e0797 Fixes remaining xslt injection U4-3175 2013-12-03 15:56:50 +11:00
Shannon a7e32e97e3 Fixes xss issue 2013-12-03 15:40:12 +11:00
Shannon 9d90506265 Fixes issue with authcookie on renew - need to ensure its http only and persited for a day remains, ensures the csrf cookies are set when getting the user since that is called before logging in. 2013-12-03 11:57:41 +11:00
Shannon 08100793af completed csrf protection 2013-12-03 11:36:17 +11:00
perploug a265424b3f Replaces all rootScope.broadcast with eventsService
Broadcast is inefficient and eventsService gives us extra options for
funneling all app events through one pipeline.

For now it just replicates rootScope on/emit, but longer term we can get
this to handle async UI events
2013-12-02 13:51:03 +01:00
perploug bb87fa7fa8 removes outcommented code 2013-12-02 12:24:36 +01:00
perploug 16cf64866a default tinymce config to have default height and width 2013-12-02 12:21:39 +01:00
perploug 11da6d5be7 Merge branch '7.0.1' of https://github.com/umbraco/Umbraco-CMS into 7.0.1 2013-12-02 09:42:53 +01:00
Shannon ea35ea1af5 getting csrf stuff coded up, it's pretty much done just need to write a couple tests and add the filter to the necessary controller/actions 2013-12-02 17:20:50 +11:00
Shannon 33c32579c8 Adds AngularJsonMediaTypeFormatter and ensures our controllers all use this formatter in order to enable angular's JSON Vulnerability protection. 2013-12-02 13:31:44 +11:00
Shannon 1ac6f6db50 publicizes macroproperty 2013-12-02 13:30:08 +11:00
esunxray cacf87be2d Update zh.xml
update Chinese file for 6.2, this can be merged into V7.
2013-11-29 21:26:16 +08:00
perploug 7baa81c2df missing en translation for login dialog 2013-11-29 12:00:03 +01:00
perploug a0e88a297d Blocks search box from loading untill after login 2013-11-29 11:59:44 +01:00
perploug 8d2b52a5b0 fixes: U4-3749 Login page is not translated 2013-11-29 11:58:58 +01:00
perploug 81389ce435 Fixes: U4-3685 Richtext Editor - Custom toolbars and dimensions ignored 2013-11-29 11:56:52 +01:00
Shannon e981776e6d Created new EnsurePublishedContentRequestAttribute for custom routing to still be able to render macros. 2013-11-29 17:41:38 +11:00
Shannon 48b3806129 adds umbraco session id to UserData so we can use for csrf 2013-11-29 12:42:50 +11:00
Shannon 9fc8e18881 Fixes csrf issue
Conflicts:
	src/Umbraco.Web.UI/config/ClientDependency.config
	src/Umbraco.Web.UI/umbraco/logout.aspx
	src/Umbraco.Web.UI/umbraco/umbraco.aspx
	src/Umbraco.Web/umbraco.presentation/install/LegacyClasses.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/logout.aspx.cs
2013-11-29 12:17:58 +11:00
Shannon 250276bbd4 Merge branch '6.1.6-U4-3619' into 6.2.0 2013-11-29 11:26:01 +11:00
Shannon af29f61478 Fixes csrf issue 2013-11-29 11:10:25 +11:00
perploug cdfebe705d Merge branch '7.0.1' of https://github.com/umbraco/Umbraco-CMS into 7.0.1 2013-11-28 15:35:34 +01:00
perploug e6714ae829 Ensure refresh node action is translated 2013-11-28 15:35:23 +01:00
perploug a0dead872b DA lang file updates 2013-11-28 15:35:06 +01:00
perploug b6ebc34199 ensure create dialogs can reopen the menu 2013-11-28 15:34:56 +01:00
perploug 49e7ace2d9 tree menu should not be selectable 2013-11-28 15:34:39 +01:00
perploug d140eab12d Ensures dialogs doesnt reopen the menu 2013-11-28 15:34:24 +01:00
Kalle Ekstrand 24fcfd9fcb Minor changes 2013-11-28 15:07:33 +01:00
perploug 83e05a4f84 Merge pull request #259 from nilzen/U4-3683
Fixed: U4-3683 Icon selector problem (Chrome)
2013-11-28 05:43:08 -08:00
Kalle Ekstrand 48dd619899 Minor changes 2013-11-28 14:34:22 +01:00
perploug ff52755636 Media and content tree root node translation 2013-11-28 13:26:05 +01:00
perploug a7cd18c3d2 The section mapping was reversed, so werent translated 2013-11-28 13:20:52 +01:00
perploug 98a0208b47 Removes button icon from script editor 2013-11-28 13:08:54 +01:00
perploug b923305527 adds pointer cursor to help 2013-11-28 13:06:28 +01:00
perploug 04ccbdde4d Dims buttons during action to prevent multiple saves 2013-11-28 13:06:19 +01:00
perploug de1e3d150f Missing script translation 2013-11-28 13:05:36 +01:00
perploug 07182529f4 replace $element with $scope.$on($destroy)
We should never access dom element from controllers
2013-11-28 12:32:03 +01:00
perploug e076b687c6 added rte and assets service mocks 2013-11-28 12:32:02 +01:00
Shannon 7f305db637 Fixing: U4-3687 Umbraco 7 Packaging Issues - have fixed the data type package issues, cleaned up some code and fixed a different underlying pre-val issue for empty legacy aliases 2013-11-28 16:57:05 +11:00
Shannon 50e10155e7 Completes: U4-3712 Allow c# property editors to have custom js injected into the js initialization block so they can load in angular controllers 2013-11-28 14:27:58 +11:00
Shannon 478b7cde42 Removes uGoLive from the core (for now until it is rebuilt against v7 ) 2013-11-28 10:51:54 +11:00
Shannon c86f52d5ea Completes: U4-3230 Combine/Minify manifest files to one request with CDF 2013-11-28 10:37:08 +11:00
Shannon 58fc51ae93 Fixes: U4-3736 Unit test Can_Get_File_Dates() now testing correctly, disregarding local (nont-UTC) time. 2013-11-28 09:30:50 +11:00
Shandem 413248a126 Merge pull request #260 from AndersKroghDk/7.0.1
Fixes: U4-3736 Unit test Can_Get_File_Dates() now testing correctly.
2013-11-27 14:25:11 -08:00
Anders f114f94740 Fixes: U4-3736 Unit test Can_Get_File_Dates() now testing correctly, disregarding local (nont-UTC) time. 2013-11-28 00:09:09 +01:00
Shannon ce162e2657 Gets the JS done for: U4-3230 Combine/Minify manifest files to one request with CDF - now loading incredibly fast. 2013-11-27 18:42:35 +11:00
Shannon 00518f8451 improves security and ensures the server vars cannot be loaded without authentication, they will get lazy loaded once authenticated and changed the controllers to listen for the 'ready' event instead. 2013-11-27 17:38:59 +11:00
Shannon ba3c1f9d21 minifies and outputcaches the server vars 2013-11-27 14:52:54 +11:00
Shannon 7535585b63 Fixes: U4-3720 Color picker prevalues isn't saved as an array and therefore "model.config.items.length === 0" doesn't work 2013-11-27 10:22:45 +11:00
nilzen bf288c0502 Fixed: U4-3683 Icon selector problem (Chrome) 2013-11-26 13:25:23 +01:00
Kalle Ekstrand f8375857c2 Updates to the swedish language file for v7 2013-11-26 11:08:55 +01:00
Shannon 2391ee1368 Changes the web.config template to use a linked resources (one file) 2013-11-26 20:03:13 +11:00
Shannon 327d17c90e obsoleted some un-used/legacy code. IMediaFactory it is no longer used and is contained in an old assembly. If we want to re-support this (which i don't think we do), it needs to be manually re-created and implemented, i don't think its been used for quite some time. 2013-11-26 17:52:53 +11:00
Shannon d6b4c47cd9 fixed gen'd mvc web.config template. 2013-11-26 17:14:58 +11:00
Shannon a052fc42b1 Fixes: U4-3682 Can not create new documents (javascript error) 2013-11-26 14:03:00 +11:00
Shannon c89fb0a0be Fixes: U4-3688 Unable to delete a property of type "Tags" from a Document Type 2013-11-26 13:58:49 +11:00
Shannon 03a606432a Fixes: U4-3695 Events does not fire 2013-11-26 13:34:51 +11:00
Shannon 54e826bc96 Fixes: U4-3696 Upload datatype only updates on first save 2013-11-26 13:13:43 +11:00
Shannon 6c57222a2e removes committed file that shouldn't have been there. 2013-11-26 13:12:59 +11:00
Shannon 97e8573dff removes debugging output 2013-11-26 12:46:16 +11:00
Shannon 683862932b Fixes: U4-3679 Using two data types with the Media Picker data editor multiple/not multiple 2013-11-25 19:38:56 +11:00
Shannon 9a856df8bc Fixes: U4-3644 Multiple Textstring DataType not displaying in DocType (vs. 7.0.0 build 183) 2013-11-25 17:36:56 +11:00
Shannon e1ef2e8700 Fixes: U4-3677 Multinode tree picker does not save content when node type is set to Media 2013-11-25 16:58:47 +11:00
Shannon 59599efab6 Fixes: U4-3655 Clicking on recycle bin in media section redirects you back to the content tree 2013-11-25 14:45:14 +11:00
Shannon 20813ef207 Fixes: U4-3673 Creating content with Services API always sets created by to admin
Conflicts:
	src/Umbraco.Tests/Services/ContentServiceTests.cs
2013-11-25 13:25:01 +11:00
Shannon 99e0a1f11b Fixes: U4-3673 Creating content with Services API always sets created by to admin 2013-11-25 13:22:35 +11:00
Shannon 9bf2819ac6 Fixes: U4-3661 Unable to Create Color Picker DataType & U4-3645 Media Picker Umbraco 7 can select multiple 2013-11-25 12:02:25 +11:00
Shannon cafeb6d8c6 Fixes: U4-3661 Unable to Create Color Picker DataType & U4-3645 Media Picker Umbraco 7 can select multiple 2013-11-25 11:58:01 +11:00
perploug f916a6bc18 fixes datepicker css ref issue 2013-11-21 12:15:20 +01:00
perploug 8865f798a6 fixes media dialog sync issues 2013-11-21 12:15:03 +01:00
Tim Geyssens 362bb593f1 Adds value convertor for rel links 2013-11-21 11:48:07 +01:00
Tim Geyssens 4dc7b185aa another update to rel links data migration 2013-11-21 11:27:34 +01:00
Tim Geyssens d0d1b2675d Some changes to related links to make sure peoples front end code will still work 2013-11-21 11:24:46 +01:00
Tim Geyssens b624d87a59 make sure related links datatype value type is set to JSON 2013-11-21 11:17:43 +01:00
perploug aa75a6bf9f Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-21 11:14:25 +01:00
perploug 14a0efde01 Minor width adjustment 2013-11-21 11:13:53 +01:00
Tim Geyssens 1c20496974 removes cs from rel links data upgrader, was getting lock issues 2013-11-21 11:13:21 +01:00
perploug 309dd5d4a2 content dashboard 2013-11-21 11:09:20 +01:00
Tim Geyssens 92c28de028 Final touches to rel links data upgrader 2013-11-21 10:41:42 +01:00
Tim Geyssens 16ea928c75 rel links data upgrader, migration is working :) 2013-11-21 10:30:27 +01:00
Tim Geyssens 31f67eac6c uses newtonsoft json serializer on rel link data upgrader 2013-11-21 10:20:18 +01:00
Sebastiaan Janssen a04aef9b98 U4-3623 Text corrections in install wizard 2013-11-21 10:17:52 +01:00
Niels Hartvig 9f046f9945 Updates default dashboards 2013-11-21 09:58:27 +01:00
Tim Geyssens 64cae76dca And yet another small update to rel links data upgrader 2013-11-21 09:57:18 +01:00
Tim Geyssens b6e4a96e3b Another small update to rel links data upgrader 2013-11-21 09:35:20 +01:00
Tim Geyssens 82154ee660 Small update to rel links data upgrader 2013-11-21 09:23:41 +01:00
Sebastiaan Janssen 655075aabe Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-21 08:53:56 +01:00
Sebastiaan Janssen 3773cac232 Limit MVC and WebAPI to version 4 for now until we can test 5. 2013-11-21 08:53:40 +01:00
Tim Geyssens 05cd6500ba Adds some exception handling to the rel links data upgrader, always nice not to blow up the upgrader 2013-11-21 08:53:13 +01:00
Tim Geyssens 345340b957 Adds rel links data upgrader 2013-11-21 08:45:46 +01:00
Shannon 22be517daf publicizes the legacy parameter editor alias map, ensures that a YSOD is not shown when a legacy parameter editor is trying to be rendered, we just render a text box in its place 2013-11-21 18:10:47 +11:00
Shannon d04f2a98b9 Fixes tests 2013-11-21 17:47:57 +11:00
Shannon 8860e77468 Fixes tests 2013-11-21 17:47:23 +11:00
Shannon ffeed58f5d Fixes: U4-3576 When editing file based items and changing the file name - we need to change the route location 2013-11-21 17:23:48 +11:00
Shannon 6fd5eee4f6 Fixes: U4-3591 Creating PropertyValueConverter for a v7 prop editor (created with manifest) ends up with YSOD when outputting value on frontend 2013-11-21 16:39:21 +11:00
Shannon 4354840674 Fixes an issue with member search 2013-11-21 15:57:53 +11:00
Shannon 6d1ba5a823 Fixes: U4-3625 List view filtering is not enabled on media and adds debounce 2013-11-21 15:52:40 +11:00
Shannon eee63e3a48 Fixes: U4-3626 List view filtering needs to be applied using debounce 2013-11-21 15:04:10 +11:00
Shannon f41f82adc5 Changes locker to be static 2013-11-21 14:46:18 +11:00
Shannon e6ae88c016 Fixes hash generation and checking with the trees.config file - since this is changed during startup our plugin cache was never active :( 2013-11-21 14:45:52 +11:00
Shannon abd1c89660 Changes locker to be static 2013-11-21 14:42:35 +11:00
Shannon 9acaa82d4b Fixes hash generation and checking with the trees.config file - since this is changed during startup our plugin cache was never active :( 2013-11-21 14:01:54 +11:00
Shannon d5dc5127ae Ensures the approved check box is checked when creating a new member. 2013-11-21 12:17:07 +11:00
Shannon d8862c85bf Fixes tags property editor to not submit the html form when pressing enter. 2013-11-21 12:16:26 +11:00
Shannon 874c7977c2 updates typefinder assembly ignore list - ensures that we scan the providers dll and ignores some other new ones (should slightly speed up startup) 2013-11-21 12:15:59 +11:00
Shannon fa34652cf1 Fixes: U4-3588 Value cannot be null. Parameter name: child error when using the Login Macro 2013-11-21 11:08:33 +11:00
Shannon 22c615a641 fixes filtering issue 2013-11-21 10:39:10 +11:00
perploug 2ffc64b965 Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-21 00:15:31 +01:00
perploug 4c932f013a fixes delete dialog missing spacing 2013-11-21 00:15:08 +01:00
perploug 52b40ac514 fixes tree item style reload 2013-11-21 00:14:51 +01:00
perploug 631710222f fixes media picker single-item mode 2013-11-21 00:14:37 +01:00
perploug 2824a2ca8b fixes simple create tree reload 2013-11-21 00:14:10 +01:00
Shandem c90af1df39 Merge pull request #253 from greystate/7.0.0__U4-3581
Returning root element instead of document node from JsonToXml()
2013-11-20 15:08:51 -08:00
perploug c679e00b81 minor change in iframe offloading 2013-11-20 20:14:58 +01:00
perploug c6caa6aae7 Missing dictionary items 2013-11-20 15:59:25 +01:00
perploug 1b1642ce46 fixes broken script dialog and tree sync 2013-11-20 15:33:24 +01:00
perploug 31d0450d6c fixes broke xslt visualizer 2013-11-20 15:08:04 +01:00
perploug a71d18f352 Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-20 14:55:09 +01:00
perploug 12c982f170 ups, forgot an alert() 2013-11-20 14:54:27 +01:00
Sebastiaan Janssen 35af370f70 Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-20 14:51:50 +01:00
Sebastiaan Janssen bbee0a81c9 Undo "fix" for starter kit installer, we'll fix properly later 2013-11-20 14:51:35 +01:00
Sebastiaan Janssen 2beb3c5b4c Merge branch 'master' of https://github.com/umbraco/Umbraco-CMS into 7.0.0
Conflicts:
	.gitignore
2013-11-20 14:50:57 +01:00
perploug f7d407e9fd various dialogs fixes 2013-11-20 14:37:46 +01:00
perploug d67db8a90a Fixes ctrl+s hotkeys in legacy editors 2013-11-20 14:37:28 +01:00
Chriztian Steinmeier 98e7ee90f4 Minor pedantic casing change 2013-11-20 14:20:22 +01:00
Chriztian Steinmeier 90c4358844 Return the root element instead of document node 2013-11-20 14:19:39 +01:00
perploug 2cb4b207dc fixes broken merge 2013-11-20 13:41:31 +01:00
perploug b80b2475e0 Merge 2013-11-20 13:34:42 +01:00
perploug 94bbcb98a6 adds filter to getChildren 2013-11-20 10:24:45 +01:00
perploug 26f79e1010 Fixed attribute filtering when no items should be filtered 2013-11-20 10:24:35 +01:00
Stephan a626eeff7d U4-3591 - more explicit exception when two IPropertyValueConverter collides 2013-11-20 09:58:28 +01:00
Shannon 474dcd0754 Fixes: U4-3587 Can't delete a member when there is a group assigned
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
2013-11-20 18:24:44 +11:00
Shannon 84353d1e77 Fixes: U4-3587 Can't delete a member when there is a group assigned 2013-11-20 18:23:23 +11:00
Shannon 369f6ac935 fixes merge issue 2013-11-20 18:15:11 +11:00
Shannon 39aa100490 Fixes: U4-3572 CSS class changes are not applied to tree nodes after resync 2013-11-20 18:10:54 +11:00
Shannon 5a928aa459 FIxes installer when duplicate conflicts: U4-3612 Cannot install Txt starter kit in the back office
Conflicts:
	src/umbraco.cms/businesslogic/Packager/Installer.cs
2013-11-20 17:28:33 +11:00
Shannon d1a656b3cd FIxes installer when duplicate conflicts: U4-3612 Cannot install Txt starter kit in the back office 2013-11-20 17:25:25 +11:00
Shannon d87db5b338 Shows an error notification if there is a ysod when not in debug mode so the user at least knows something has gone wrong. 2013-11-20 17:24:45 +11:00
Shannon 416a9ed064 Comments out backported code - need to wait till we merge in the custom membership branch. 2013-11-20 17:10:15 +11:00
Shannon b13c3aa3b9 Fixes: U4-3610 When adding another tab to a member type no members will load and result in a YSOD
Conflicts:
	src/Umbraco.Core/Persistence/Relators/PropertyTypePropertyGroupRelator.cs
2013-11-20 16:59:41 +11:00
Shannon 0a11f31754 Fixes: U4-3610 When adding another tab to a member type no members will load and result in a YSOD 2013-11-20 16:58:25 +11:00
Shannon 99ae94a82f Ensures that members are auto-approved if creating a member via the legacy members API. 2013-11-20 16:40:30 +11:00
Shannon 0c226d1a2c Fixes: U4-3581 Make sure advanced v7 prop editors can also be used from xslt 2013-11-20 15:54:50 +11:00
Shannon 596cf2a9e1 Ensures that members are auto-approved if creating a member via the legacy members API. 2013-11-20 15:11:08 +11:00
Shannon 2f089128d7 Fixes: U4-3608 When logged in as a user with a custom start node the media thumbs do not display on a folder 2013-11-20 14:48:11 +11:00
Shannon b52b649548 Fixes: U4-3209 Ensure user is validated for PostAddFile on MediaController 2013-11-20 14:41:05 +11:00
Shannon 7e4739956a Ensures that tree requests have section security applied, though it's not perfect until we have security by tree and section it ensures that a user cannot list out tree data when they don't have access to a section in which that tree's data is required. Now the root node requests via the application tree controller have their auth filters applied (that took quite a lot of zany work). Gets AD login working nicely too. 2013-11-20 14:18:03 +11:00
Shannon e040fc8819 Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-20 08:55:38 +11:00
Shannon c2a858b903 Ensures approval status is checked when validating a member 2013-11-20 08:55:09 +11:00
perploug e1108ce65b Removes extra line on datatype editor 2013-11-19 22:35:41 +01:00
perploug a6e93879c2 Adds overload to file system tree to allow multiple file extensions filter 2013-11-19 21:57:07 +01:00
perploug 56e9d0a602 Adds documentation for missing resource methods 2013-11-19 21:56:35 +01:00
perploug 23d5d117e7 Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-19 20:38:00 +01:00
perploug daa4ff28e7 Fixes missing section state indicator 2013-11-19 20:37:39 +01:00
Sebastiaan Janssen 291fcb043c Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-19 20:30:45 +01:00
Sebastiaan Janssen dea1e9e541 Whoops, my last fix was a bit too broad 2013-11-19 20:30:28 +01:00
perploug ca8b6cac7a updated testrunner config 2013-11-19 20:24:29 +01:00
perploug 6cf9312d1a editorState docs 2013-11-19 20:24:19 +01:00
perploug 45868d3fec Fixes repo browser 404 issue 2013-11-19 20:23:56 +01:00
Sebastiaan Janssen 3d90e66d36 Bump version number 2013-11-19 19:20:07 +01:00
Sebastiaan Janssen 836177a90f Fixes issue where media cache is not properly populated with isDoc and image propertyTypes 2013-11-19 19:11:48 +01:00
Sebastiaan Janssen 14bb0ce4d8 At least a temporary fix of the starter kit installer 2013-11-19 18:01:09 +01:00
perploug c6720ff42c Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-19 16:26:54 +01:00
perploug 863c7d11b7 Moves the folder selector on the mediapicker
To the item itself, instead of external button
2013-11-19 16:26:07 +01:00
Sebastiaan Janssen 53c043d22e Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-19 16:06:26 +01:00
Sebastiaan Janssen 7e70253e1c U4-3340 Installer: Make SQL CE Default option 2013-11-19 16:06:14 +01:00
perploug b6bca084c5 Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-19 15:46:04 +01:00
perploug 0a7e09b3dd revert logo to good ol' orange 2013-11-19 15:45:53 +01:00
Sebastiaan Janssen 313b831559 Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-19 15:13:18 +01:00
Sebastiaan Janssen 355137f982 U4-3469 Umbraco 7 + MVC 4 + nuget, web.config error 2013-11-19 15:12:47 +01:00
perploug 6cd09e7b86 minor css tweaks 2013-11-19 14:33:00 +01:00
perploug e80023bcff Adjusts the media picker to display folders properly 2013-11-19 14:21:38 +01:00
perploug d1c7a3764f enables the media picker to select current folder 2013-11-19 14:21:17 +01:00
perploug 806596f04d Disables the tree header when it has a alt start node 2013-11-19 14:20:51 +01:00
perploug 77889f968b turns off imagecropper toxml which has caused issues 2013-11-19 14:19:41 +01:00
perploug 7cb496ee3c WIP on better mediapicker view 2013-11-19 11:10:58 +01:00
perploug fb1d6436b7 wrap rules request in a $q.all() to await response 2013-11-19 11:10:01 +01:00
perploug f749886bf4 disable caching on style rules resource 2013-11-19 11:08:51 +01:00
perploug 11c35977d3 fixes broken legacy pickers 2013-11-19 11:06:09 +01:00
perploug 66119ba3d8 fixes linkpicker broken due to new NiceUrl format 2013-11-19 09:06:43 +01:00
Shannon 31ab56a3c1 Got AD members listed in the tree but we won't be able to edit them till 7.1, now to get login going. 2013-11-19 18:31:15 +11:00
Shannon 640967666f fixes issue with the guid converter 2013-11-19 18:09:23 +11:00
Shannon e2890d4186 reverts the installer to ensure media picker is included along with multiple media picker - people will want both and this fixes a failing test. 2013-11-19 17:52:20 +11:00
Shannon 1e2688b14d fixes some more unit tests 2013-11-19 17:41:48 +11:00
Shannon 5fc82fef18 Fixes: U4-3440 Tempates (MVC Views) tree sync doesn't work correctly 2013-11-19 17:17:39 +11:00
Shannon d3b8ac31c7 Fixes up a bunch of failing tests with hard coded ids. Still need to fix a few more 2013-11-19 15:36:30 +11:00
Shannon a11b326c22 Fixes: U4-3574 right click menu options for trees emit events for all nested nodes involved 2013-11-19 14:12:33 +11:00
Shannon 7f012de43e renames utill to have one "l" (utility) 2013-11-19 14:08:51 +11:00
Shannon 7752aaabfe Updates tree/resource/service so that devs can provider their own custom query string data to load trees/dialogs if required. 2013-11-19 14:05:14 +11:00
Shannon f7e86f6b09 Fixes: U4-3555 Membership tree letters should not contain the 'delete' action 2013-11-19 13:18:33 +11:00
Shannon e502579319 Fixes up security check for start node for mntp 2013-11-19 12:28:50 +11:00
Shannon 2f42fc61bf Changed method signatures of some of the conversion methods on the PropertyValueEditor to make it more flexible for developers to do what they want. 2013-11-19 11:51:01 +11:00
Shannon ac2009e4ae Fixes up CData issues - true/false editor had incorrect value type - changed to INT, drop down had incorrect value type - changed to STRING, changed logic to check for empty/null values, if so never return CData as this just takes up more un-needed space 2013-11-19 10:54:28 +11:00
Shannon 44404b70e1 fixes up protected field - changes to private 2013-11-19 10:40:21 +11:00
Shannon 5bb68f32bf Fixes up editorState - ensures that it is set in all of the correct places (removes appState editingEntity and references), ensures that setting 'current' is not possible, ensures that editorState is reset on all route changes, adds unit tests for getting/setting editorState. 2013-11-19 10:39:18 +11:00
Shannon 89b20a2e77 Updates installer to not install the legacy 'Media Picker' by default and instead install the newer "Multiple Media Picker" which has been given new ids. 2013-11-19 10:11:39 +11:00
Marc Stöcker 997e0e5492 Initial German v7 translation/localization
Should cover all of the already localized strings for v7 (as well as 6.x - no obsolete items removed for now).
2013-11-18 23:39:20 +01:00
Shannon d2a00f5c18 media folders are not containers by default: U4-3566 Don't make Media Folders "Listviews" by default 2013-11-19 09:39:14 +11:00
perploug 91bcb656ec adds basic media controller mocks and tests 2013-11-18 22:29:38 +01:00
perploug 4fea694c6a Loads content and media trees with a custom root 2013-11-18 22:29:19 +01:00
perploug abce483d0e Fixes right-click on li in the tree 2013-11-18 21:07:17 +01:00
perploug 8d0603b11c fixes mntp startnode issue 2013-11-18 20:44:12 +01:00
perploug 6d516212eb Changes the default media picker to a multiple-node one 2013-11-18 20:43:42 +01:00
perploug c3fd4bd685 Adds editorState to media, datatype, content, and member editors 2013-11-18 20:43:21 +01:00
Sebastiaan Janssen e922ca88f2 U4-3553 Settings - Document Type - Tabs do not work 2013-11-18 18:54:55 +01:00
Sebastiaan Janssen 64d5533274 Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-18 18:11:46 +01:00
Sebastiaan Janssen 734895c90c U4-3328 404 on zoom-in.png during install 2013-11-18 18:11:26 +01:00
Sebastiaan Janssen a009cad200 Wrong bootstrap file reference, error was hidden by Client Dependency framework 2013-11-18 18:08:38 +01:00
perploug b743ea4fb8 Changes treepicker to tree source on the mntp settings 2013-11-18 16:14:49 +01:00
perploug ed54b55965 Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-18 14:59:30 +01:00
perploug 82e9ab1825 Adds multipicking as a setting on media picker 2013-11-18 14:59:02 +01:00
perploug da2f3aefe6 Improves media drag n drop sorting 2013-11-18 14:58:29 +01:00
Sebastiaan Janssen 17db60c34a Fixes U4-3399 - Adds some nuget dependencies and we don't need the dummy in macroscripts
any more nor do we need to preventatively delete json.net any more.
2013-11-18 14:51:12 +01:00
perploug 9ae9a4e52d fixes serverside part of legacy pickers 2013-11-18 11:49:11 +01:00
perploug 4dbd1d3ca7 adds section to page title 2013-11-18 11:48:58 +01:00
perploug f758634a90 lofgin autofocus 2013-11-18 11:01:13 +01:00
perploug c302de6bdf adds link to upload property editor 2013-11-18 11:01:05 +01:00
perploug e3ec0c1019 fixes missing tinymce buttons 2013-11-18 10:48:46 +01:00
perploug a9dd33908c Fixes missing header validation 2013-11-18 10:48:33 +01:00
Shannon 21e3893528 Fixes: U4-3558 members tree syncing is a bit strange and not showing the selected member 2013-11-18 15:58:53 +11:00
Shannon f8e17b711e custom membership providers now working in the back office. 2013-11-18 15:29:53 +11:00
Shannon 4d31512ef0 Custom membership provider's now working in the back office UI - have created intial functionality to allow custom properties with custom membership providers (the creation already performs the link if the Member member type is available). Updating also works too, need to clean up some code though as it's fairly messy. 2013-11-18 14:25:08 +11:00
Shannon 1707e6b18f Added ability for a menu item to simply navigate to a route, adding functoinality for us to create/edit/delete members based on a generic membership provider. 2013-11-17 13:43:04 +11:00
perploug 9212033858 Allows people to click tree to close dialogs 2013-11-16 10:38:14 +01:00
perploug 6effcf82ac Fixes legacy dialog .destroy issues 2013-11-16 10:38:02 +01:00
perploug 71a0c45889 Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-15 08:35:53 +01:00
Shannon febe81105b starts fixing custom membership provider problems with the member editor/tree - this now at least loads in the members section. 2013-11-15 18:26:40 +11:00
Shannon 830d6d914f puts the test init code back in that shouldn't need to be there but the server is failing now for some reason. 2013-11-15 18:21:55 +11:00
Shannon 259d8e03db completes: U4-3300 Need to test content service copy API with tags - since there's 'special' code in there to handle it that's not been tested with the new changes - with test 2013-11-15 17:54:01 +11:00
Shannon 2784e2a22d removes ref to missing file 2013-11-15 17:30:26 +11:00
Shannon 94cc49e67e Fixed the model mapping tests 2013-11-15 17:15:59 +11:00
Shannon 2bd91d619d fixes failing unit test due to default value change for keep user logged in 2013-11-15 17:04:45 +11:00
Shannon d446d84cf5 fixes failing unit test due to default package url change 2013-11-15 17:03:29 +11:00
Shannon 5244f75d0d Merge remote-tracking branch 'origin/6.2.0' into 7.0.0 2013-11-15 17:01:13 +11:00
Shandem 96440c9ee5 Merge pull request #248 from lars-erik/6.2.0-fix-sqlsyntaxprovider-indexclustring
6.2.0 fix sqlsyntaxprovider indexclustring
2013-11-14 22:00:31 -08:00
Shannon 4545af0a21 Boom! container nodes work for both media and content, fixes:
U4-3540 When creating a Container type node - the list view shows all children of the item it's being created underneath
U4-3541 media tree is not catering for container types
2013-11-15 16:56:51 +11:00
Shannon 0878de4a8b Fixes tree service from showing that there is children when there isn't, fixes container node issues:
U4-3540 When creating a Container type node - the list view shows all children of the item it's being created underneath
U4-3541 media tree is not catering for container types
Adds container style
2013-11-15 16:19:46 +11:00
Shannon 9774744991 should knock off a few minutes for running tests. 2013-11-15 16:00:48 +11:00
Shannon 4a6103ba94 Fixes some merge issues, tries to speed up unit tests a little. 2013-11-15 15:10:02 +11:00
Shannon 8bbe6675db Merge remote-tracking branch 'origin/6.2.0' into 7.0.0
Conflicts:
	src/Umbraco.Core/Persistence/Factories/UmbracoEntityFactory.cs
	src/Umbraco.Core/Persistence/Repositories/EntityRepository.cs
2013-11-15 15:00:44 +11:00
Shannon b4c005c140 Fixes up the EntityRepository to use dynamics for media as well so that *all* fields in the main table are returned so we can store this information in AdditionalData, now that this is working nicely we should make the entity repo lookup the properties for content too just like we're doing for media since these get put into AdditionalData as well and there's really not much overhead to do that.
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/EntityRepository.cs
2013-11-15 14:53:26 +11:00
Shannon 34cebe989f Fixes up the EntityRepository to use dynamics for media as well so that *all* fields in the main table are returned so we can store this information in AdditionalData, now that this is working nicely we should make the entity repo lookup the properties for content too just like we're doing for media since these get put into AdditionalData as well and there's really not much overhead to do that. 2013-11-15 14:29:34 +11:00
Shannon eca823ea90 Fix for U4-3529 Ysod editing Partial View 2013-11-15 13:49:20 +11:00
Shannon 89481405b5 Fixes: U4-3534 Sorting content items 2013-11-15 12:57:28 +11:00
Shannon f1d837dfd1 fixes: U4-3539 Cannot set a scheduled publish at date/time gives a warning message 2013-11-15 12:46:55 +11:00
Shannon c61fd1ec27 Fixes datetimepicker once and for all, fixes user model to return the culture not just the language, adds ability to localize the datetimepicker - will default to english but is easy to add other versions, currently the only custom one in there is brazilian (since it was already made).
fixes: U4-2863 Date picker-textbox jumps between 12 and 24 hours clock
U4-3537 Cannot clear date/time value, still have problems with it's null validation not clearing from the server
2013-11-15 12:26:29 +11:00
Shannon 5314afb51a Changed editorContext to use appState instead for content/media/member editors - the appState saved is the basic entity, this means that if property editors resolve this value they do not have access to actually change the real content model which we don't want to allow (or changing other property's values).
Fixed up some inconsistencies between all of these editors and the content editor helper, fixed up tree syncing with the members editor.
2013-11-15 10:38:36 +11:00
Shannon 1c742db414 Cleans up a bit more code - no longer passing in nav controller scope, removes zany args.scope assignment back to the nav ctrl via the nav service, this is not necessary at all and doesn't make any sense. 2013-11-15 09:43:21 +11:00
Shandem f8b2fcaa2b Merge pull request #249 from rsoeteman/7.0.0
Fix for  U4-3529  Ysod editing Partial View
2013-11-14 14:00:09 -08:00
Marc Stöcker 376fe0bf55 changed wording to correct one in context of content
wording was wrong until today, needed a completely different meaning in the context of the content section; ironically it's just "Alias" now ;)
2013-11-14 22:22:25 +01:00
perploug 684c99b532 removes css that conflicts with firefox selects state 2013-11-14 22:17:18 +01:00
perploug 28ec40e1ae modifies angular-mobile to fix firefox glitch 2013-11-14 22:05:51 +01:00
perploug cadf1fe9bb removes old bootstrap files 2013-11-14 22:03:51 +01:00
Richard Soeteman 393c365b6e Fix for U4-3529 Ysod editing Partial View 2013-11-14 14:48:04 +01:00
perploug a657e10545 Consolidates contextmenu action handling
Moves umbOptionsMenu and umbContext menu exection into navigationService
2013-11-14 14:13:39 +01:00
perploug d6f9d23626 merge 2013-11-14 14:12:49 +01:00
perploug 7e0eefc18a adds editor context value 2013-11-14 13:12:08 +01:00
perploug 9bcd276073 fixes sir trevor manifest 2013-11-14 13:11:58 +01:00
perploug d0fd7523c2 fixes media move to root 2013-11-14 13:11:45 +01:00
perploug 0a6826c62a adds manifest documentation 2013-11-14 13:11:20 +01:00
perploug 132b1f305a moves context action execute to navigationService 2013-11-14 13:11:03 +01:00
Shannon 7dfd684cd8 Fixes: U4-3504 Sorting media doesn't work, always defaults to sorting the root 2013-11-14 22:25:08 +11:00
Shannon 4ce5e67116 Fixes: U4-3517 Package tree doesnt load 2013-11-14 22:01:26 +11:00
Shannon 6d2caaa723 Fixes: U4-3430 Save Properties not working for usercontrol macro 2013-11-14 21:56:01 +11:00
Lars-Erik Aabech e3cd85a6a2 Made CreateIndexBuilder set IndexType in Clustered(), NonClustered() and Unique(). 2013-11-14 10:55:35 +01:00
Lars-Erik Aabech 69f805ecca Proof that CreateIndexBuilder.NonClustered() does not affect index creation statement on SQL Server.
CreateIndexBuilder_SqlServer_NonClustered_CreatesNonClusteredIndex() fails expecting NONCLUSTERED but getting CLUSTERED.
CreateIndexBuilder_SqlServer_Unique_CreatesUniqueNonClusteredIndex() fails expecting UNIQUE NONCLUSTERED but getting CLUSTERED.
2013-11-14 10:53:58 +01:00
Shannon 10e65e8027 Adds new Multiple Media picker property editor 2013-11-14 20:36:06 +11:00
Shannon d79110aee6 Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-14 20:32:26 +11:00
Shannon 9eb9b8df92 Fixes: U4-3501 Error when selecting multiple items with the media picker in v7 - ensures the standard media picker cannot multi-select, hides the add button when multi select is disabled and there's a value. 2013-11-14 20:32:11 +11:00
Shandem fc8496dd95 Merge pull request #247 from rsoeteman/7.0.0
Fixed Dashboard Controller is only looking for one section
2013-11-14 01:30:22 -08:00
Richard Soeteman 21334bd282 Fixed Dashboard Controller is only looking for one section 2013-11-14 10:23:21 +01:00
Shannon 367bbd7eff Fixes: U4-3518 'Start Node in content' property of user does not work. 2013-11-14 19:58:55 +11:00
Shannon 2f62c58055 Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-14 19:35:13 +11:00
Shannon 47f7d0d8df no more nav.ui. removes exposing the userDialog, moves enter/leave tree to the navigation controller since it doesn't belong on the service, cleans up more of the nav ctrl and we have no more globals :) now to look at changing the object that is passed to dialogs (i.e. not the navigation controller scope) 2013-11-14 19:34:47 +11:00
perploug f4861fb344 fixes broken font on icon picker on windows 2013-11-14 09:16:46 +01:00
perploug 378fc2c655 fixes datatype editor buttons not snapping to buttom 2013-11-14 09:16:35 +01:00
perploug 202ae1eafe removes overflown tabs collection 2013-11-14 09:16:05 +01:00
Shannon 77cb86f74b fixes: U4-3429 After sorting the tree doesn't get refreshed (for content) 2013-11-14 19:14:52 +11:00
Shannon 4281610bc1 fixes tree sync with move media/content 2013-11-14 19:09:13 +11:00
perploug f11aca53e4 added icon picker loader 2013-11-14 09:08:26 +01:00
perploug 87fc9c3ee7 removed filter that didnt work anyway 2013-11-14 09:08:13 +01:00
perploug 4f27fd6d40 better caching of icons for icon picker 2013-11-14 09:07:54 +01:00
perploug 85155175cb fixes broken dialogs in firefox 2013-11-14 09:07:40 +01:00
perploug 6cddd55065 fixes issues with overflown tabs 2013-11-14 09:07:30 +01:00
perploug bf93d773a8 redirects all repo requests to our instead of packages 2013-11-14 09:04:10 +01:00
Shannon 20f1a308a8 fixes tree sync on move 2013-11-14 19:01:41 +11:00
Shannon b6dcbc83e4 Nearly got the whole nav.ui stuff taken care of, have most of the correct objects in appState, fixed up tree syncing with move dialog, fixed up state handling of the currently selected node, removed setting the navigationController's scope from within the navigationService (?), still some more stuff to clean up. 2013-11-14 18:50:31 +11:00
Shannon 6967027e41 remove sort controller's and views - when we put these back we can restore. 2013-11-14 17:05:14 +11:00
Shannon 87309a1ef3 fixes merge 2013-11-14 17:03:53 +11:00
Shannon 9027b41ded made syncTree method on handler return a promise so we can do somethnig with it after (it still raises an event). Updates all editors to assign a currentNode to their scope when syncTree is complete, now that gets assigned to the umboptions which is now decoupled from nav.ui. 2013-11-14 16:59:08 +11:00
Shannon 43f001280e slowly getting the tree node model decoupled from being passed in to menu actions, updated more of the appState and clarified a few things, created a new umboptionsmenu directive to be used for the options drop down on editors 2013-11-14 16:09:53 +11:00
Shannon 8dab2148f1 changes TinyMCEv3Alias to just TinyMCEAlias but unfortunatey we cannot change the actual alias stored in the db because we're already in RC - that means that people will forever see TinyMCEv3 as the property editor alias :( even though it is already v4 2013-11-14 13:39:03 +11:00
Shannon 6474b2b045 Updates eventsService to actually be able to handle async callbacks with promises - though i'm really not sure when this will effectively be used. It no longer returns a promise - since that was a 'false promise' anyways . lol. 2013-11-14 13:27:53 +11:00
Shannon 0b1eb4b42c Created events test and POC 2013-11-14 12:17:20 +11:00
Shannon 86c996efb8 Merge remote-tracking branch 'origin/6.2.0' into 7.0.0 2013-11-14 10:51:52 +11:00
Shandem c037e2e09f Merge pull request #246 from lars-erik/6.2.0-fix-U4-3508
Fixes Template.ToXml() (U4-3508) and refactored Template.Import to use P...
2013-11-13 15:51:29 -08:00
lars-erik d8debf6789 Fixes Template.ToXml() (U4-3508) and refactored Template.Import to use PackagingService.ImportTemplates.
Fixed nullreference bug in ImportTemplates when used with XElement("Template"). (Added test for case with one template only)
2013-11-13 14:27:05 +01:00
perploug b02b45c815 datepicker adds current user language 2013-11-13 13:46:04 +01:00
perploug 05cbccec5c adds hotkeys to search, dialogs and help 2013-11-13 13:45:46 +01:00
Marc Stöcker 282da69d61 Fixed minor typos 2013-11-13 13:27:56 +01:00
perploug 238bc58234 Revert to old datepicker 2013-11-13 11:33:39 +01:00
Shannon dd22377b9b Removes the need for activeTree/currentTree on the nav ctrl, fixes the section animation on first load, 2013-11-13 20:35:53 +11:00
Shannon 01589f0a35 Cleans up some more tree code that is not used or required, moves the ui.treeEventHandler to a local var in the nav service since it doesn't need to be exposed, fixes main controller redirecting due to an undefined check. 2013-11-13 20:14:33 +11:00
Shannon b9d22b2577 Fixes: U4-3506 Linkpicker in RTE doesn't expand tree to last selected link - missing GetPath parameter - which lead to lots of other cleanup, removes auth listening on the section and tree directives since that doesn't belong there, now the navigation controller determines what to render depending on authorization. Removes the path parameter on the umbTree and umbTreeItem since this didn't work and syncTree should be used instead. Fixed up some more tree sync logic as well. 2013-11-13 19:57:34 +11:00
Shannon 36c21ca322 refactors out ui.tablet into private variable - only navigationService needs to know about this, otherwise if everything does it needs to go into appState and the listener needs to go elsewhere (a directive) 2013-11-13 18:44:44 +11:00
Shannon 4fe6da9118 refactored out the dialogTitle, currentDialog, actions ui object to use appState, updated the context menu directive to not rely on globals, instead it gets passed the values it needs from the navigation controller. 2013-11-13 18:40:30 +11:00
Shannon b4f8e6c93d refactors out the usage of 'ui.stickyNavigation' to use appState 2013-11-13 16:43:40 +11:00
Shannon 886d146595 refactored out the usage of ui.showTray to use appState 2013-11-13 16:35:23 +11:00
Shannon 2aaf3d06fa missing adding touchDevice to the local scope 2013-11-13 16:25:25 +11:00
Shannon 35315e0331 Removes touchDevice from rootScope and navigationService, now we detect this on app startup and add to the globalState which can be retrieved whenever. 2013-11-13 16:22:47 +11:00
Shannon ba72991929 refactored out the usage of "ui.showContextMenu" with the usage of appState. Added a new init.js instead of having the startup scripts embedded in the routes file (we should make a 'startup' naming convention like we have for 'controllers' to combine into one file) 2013-11-13 16:16:11 +11:00
Shannon ad7edf0d52 refactors out the usage of 'ui.showNavigation' and replaces with using appState. Adds unit tests for appState. 2013-11-13 15:51:59 +11:00
Shannon ac15e84324 refactored out the global 'ui.currentSection' to use the appState service. 2013-11-13 15:20:13 +11:00
Shannon 5d49dfbe28 refactors showSearchResults to be part of appState 2013-11-13 14:25:07 +11:00
Shannon 5889140386 Created the new appState service - this will be used to control all of the tracked back office state and used used explicitly by getting/setting values by key - cannot be mutable without defining properties first, then other controllers/services can listen for changes to state and act accordingly. Theoretically the navigationService 'should' be the only thing setting any of the state. Have started refactoring out the easy wins to move away from the dreaded ui object. 2013-11-13 13:50:36 +11:00
Shannon fd91340e75 Updates DefaultShortStringHelperTests to ensure that umb config is mocked. 2013-11-13 12:41:02 +11:00
Shannon 8dbdd67c98 Reverted CleanStringForSafeFileName to the original name that doesn't strip unnecessary characters. 2013-11-13 12:33:03 +11:00
Shannon d0c5dd208f Reverted to Newtonsoft.Json 4.5.11 2013-11-13 11:28:14 +11:00
Shannon d46486d3db Fixes: U4-3493 Cannot delete a template with children 2013-11-13 11:09:11 +11:00
Shannon c52e0cbb65 Added GetTemplateNode and FindTemplateInTree to the IFileService 2013-11-13 11:05:08 +11:00
Shannon 6224d02989 Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-13 11:00:06 +11:00
Shannon 9e8286bda9 Adds ability to query the template tree (hierarchy) with the template repository + unit tests. 2013-11-13 10:59:36 +11:00
Shandem e9ed1bf17a Merge pull request #244 from leekelleher/U4-3051
Fixes: U4-3051 GetAncestorOrSelfDocuments gets stuck in infinite loop
2013-11-12 14:11:05 -08:00
leekelleher cfcfb75dcc Fixes: U4-3051 GetAncestorOrSelfDocuments gets stuck in infinite loop 2013-11-12 21:26:21 +00:00
perploug 9ad869d367 merge 2013-11-12 19:29:15 +01:00
perploug acbde943b0 replaces the datepicker with a native angular picker 2013-11-12 19:01:48 +01:00
perploug c4a0e1e923 changes options to actions 2013-11-12 19:01:24 +01:00
perploug 8465b3465b ensures history is reset on login 2013-11-12 19:00:51 +01:00
perploug 8666ae0540 sections css tweak 2013-11-12 19:00:37 +01:00
perploug 9c8e156768 fixes dublicate help and user dialogs 2013-11-12 19:00:25 +01:00
perploug 9efe68724d Fixes dublicate key bindings for hotkeys 2013-11-12 19:00:08 +01:00
Shannon 2129ac8241 Adds template repository tests, updates template repo business logic to be able to delete the whole template tree, updates some script repo tests too. 2013-11-12 22:28:43 +11:00
Shannon 6bab9500c1 Merge remote-tracking branch 'origin/6.2.0' into 7.0.0 2013-11-12 20:54:56 +11:00
Shannon bb4a7ef21f Merge remote-tracking branch 'origin/7.0.0' into 7.0.0 2013-11-12 20:53:06 +11:00
Shannon abb6b6519f Fixes gravatar JS issue if user times out 2013-11-12 20:52:55 +11:00
Shannon e94ca7513b Fixes: U4-3473 Cannot edit Partial views - getting YSOD data reader error - PetaPoco error will backport to 6.2 2013-11-12 20:50:17 +11:00
perploug ad9fa736f4 Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-12 10:05:46 +01:00
perploug cad0f8bb2a WIP on photo folderresiizng on IE 2013-11-12 10:05:26 +01:00
perploug 289caa791a moves touch device prop to rootscope 2013-11-12 10:04:40 +01:00
perploug bfa325163d adds fall-back icon to content types 2013-11-12 10:03:59 +01:00
perploug f03e9ecebe adds check to dialog swiping 2013-11-12 10:03:34 +01:00
perploug 0ab2b74004 fixes missing legacy icons in IE 2013-11-12 10:03:19 +01:00
perploug fe40288514 fixes dublicate hotkey in legacy editors 2013-11-12 10:02:59 +01:00
Shannon df867af900 Fixes: U4-3329 Link to "Edit Profile" errors if you don't have access to Users 2013-11-12 18:13:00 +11:00
Shannon 5f5f535f05 Changes UserController to be CurrentUserController - and removes the other methods in there since that was an overlooked security issue. This controller is responsible solely for dealing with the currently logged in user. Changes over to be currentuser.resource as well. 2013-11-12 18:07:10 +11:00
Shannon a532b49485 Fixes: U4-3482 keepUserLoggedIn setting ignored? and streamlines some of the auth methods. 2013-11-12 17:38:32 +11:00
Shannon c28f800fe6 Removes the re-committed app plugins property editor that shouldn't be there 2013-11-12 17:38:09 +11:00
Shannon e7201b6a69 Fixes: U4-3485 Can't use membership provider functions with a membertype that contains a "Belle" property editor 2013-11-12 16:07:53 +11:00
Shannon 1f538d1bd5 Fixes: U4-3489 Member tree items should not have refresh node as an action 2013-11-12 15:24:08 +11:00
Shannon a9ffa3f1b7 his reverts commit c2fca795e6 to use the normal tree cache 2013-11-12 15:06:47 +11:00
Shannon c2fca795e6 This is an attempt to put the tree cache into sessionStorage - I'm creating this revision in case we want to re-visit this but unfortunately it is much more difficult because the cache is serialized/deserialized which means only the first level will be cached automatically since the loadNodeChildren would have to update the cache too but it doesn't know what a cache key is.
I've then done it the other way which is that we cache the tree sections when changing sections, this works great but poses other issues due to the serialized nature of the tree nodes. Spending too much time here, will revisit some other day. will revert after this is committed.
2013-11-12 15:02:02 +11:00
Shannon 72b08f4029 Fixes an issue if the upgrade check server is not responding. 2013-11-12 13:28:13 +11:00
Shannon c4bfeeb321 Changes the CreateTreeNode to ensure that a parentId is always passed in - now all tree node models have a parentId property based on the server side data. Changes the JS tree node model to not have a 'parent' property and instead changes this to a parent() method - this allows us to serialize the tree model because otherwise it has cyclical references. 2013-11-12 13:09:24 +11:00
Shannon acd52d42f4 Refactoring TreeNode to inherit from EntityBasic = makes much more sense and makes our models more consistent. 2013-11-12 12:30:10 +11:00
Shannon 635ccc444d Adds another childrenOf option to clearing tree cache to clear a cached branch, this is used to fix U4-3465 Media tree not updating when creating folders and can be used elsewhere where modifying trees outside of it's context. 2013-11-12 12:01:16 +11:00
Shannon 6dcfbaee7f Adds a new filter arg to remove tree cache - we will use this in order to clear specific items from tree cache (like when we are creating folders for media in the media picker) 2013-11-12 11:09:30 +11:00
Anders Stentebjerg 6fb6aa397f Styling
- Logo size login screen
- H1 in panel
2013-11-11 15:34:49 +01:00
Morten Christensen 181593f5ea Merge pull request #234 from saciervo/fix/petapoco-fetch
SqlHelper Refactoring
2013-11-11 02:59:49 -08:00
Shannon c0037a40c6 Fixes a unit test - before if the packager could not resolve a legacy data type because the ids were not valid, it would just ignore that properly, now it logs warnings and just converts to a label property. 2013-11-11 18:17:49 +11:00
Shannon 57e98fda97 Fixes setting the 'section' on a tree node, fixes the editors syncTree call to not force reload when routing to the editor - this will still load in the data for the tree if it is missing, just won't force reload the individual tree node loading. 2013-11-11 17:54:42 +11:00
Shannon 3111a2d22f Missing file 2013-11-11 17:12:35 +11:00
Shannon f123c58c79 Fixes up some more tree sync, streamlines naming conventions, adds more doc/comments to the code and specifies what is internal (only to be used by legacy code). syncTree method now takes an object to sync and both sets the active tree and the path at the same time and fixes setting the active tree to search the root node and children because content/media trees are single section trees. 2013-11-11 17:12:09 +11:00
Shannon 9f613c04f3 Fixes more tree syncing - setActiveTreeType should *not* perform any tree loading, it should just set the active root tree node. syncTree is always used in conjunction with that call in the legacy API which means we get 2 tree queries loading at once and syncing ends up not working. We'll create a nicer method for our angular views to use to sync the tree, setActiveTreeType will typically only be used by the legacy umbraco wrapper. 2013-11-11 16:15:09 +11:00
Shannon 0be60a5c88 Fixes: U4-3466 Deleting Document Type with children fails 2013-11-11 15:09:26 +11:00
Shannon 8fc82476a6 Fixes some tree syncing with legacy trees - now need to cleanup the delete animation stuff. 2013-11-11 14:36:45 +11:00
Shannon 6fe647146c Fixes: U4-3431 Macro property not passed to ASCX usercontrol 2013-11-11 12:23:46 +11:00
Shannon dd80b41735 Merge remote-tracking branch 'origin/6.2.0' into 7.0.0
Conflicts:
	src/Umbraco.Tests/Macros/MacroTests.cs
2013-11-11 12:23:27 +11:00
Shannon a311a54d3d Hugely simplifies setting properties from macro parameters on user control macros with tests. 2013-11-11 12:22:29 +11:00
Shannon 330732323f Hugely simplifies setting properties from macro parameters on user control macros with tests. 2013-11-11 12:16:30 +11:00
Shannon ad0b7e4259 Changed default (development) macro error handling to throw. 2013-11-11 10:16:25 +11:00
OptimisticCoder c83844468d U4-3039 Import Document Type leaves files in App_Data
Added File.Delete to clean up temp files.
Added try/catch round it and logging if it fails for any reason.
2013-11-09 15:18:43 +00:00
OptimisticCoder 80b5cfbb07 U4-451 Inconsistent line endings in template files created by Umbraco
Changed all "\n"'s to Environment.NewLine
Changed a string that was being appended in that method to a StringBuilder to be more efficient.
Cleaned up old commented out code from the method.
2013-11-09 14:37:22 +00:00
Shannon 0d42f721db fixed more tree sync 2013-11-08 12:35:42 +11:00
Shannon 7664cec0d3 Fixes: U4-3442 tree sync doesn't work for nodes that are not loaded - tree sync is now working properly and loads in any nodes that are missing. Have removed the dependency on navigationService from umbTree directive since it should not have that dependency. navigationService now sets it's global current node after treeSync based on an event. Moved the treeSync logic to the treeService so it can be unit tested (now to write the unit tests). Added another method to treeService to reload a single node - this is now used by treeSync when the current node is being synced - much nicer than reloading all the children. Updates the treeService to always add the current section to each tree node, this will make it much easier to know the treenode section - and in theory should mean we might be able to remove the ui global currentSection var. 2013-11-08 11:48:04 +11:00
Shannon ef40c76363 Re-formats the code structure of nav service and umbtree to be easier to read, adds better error checking to treeservice 2013-11-08 09:07:28 +11:00
Shannon 367cdde35e Merge remote-tracking branch 'origin/6.2.0' into 7.0.0
Conflicts:
	src/umbraco.cms/businesslogic/workflow/Notification.cs
2013-11-08 08:55:22 +11:00
Shannon 590b7f2289 Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-08 08:49:07 +11:00
Sandro Ciervo 9911f03745 Fixed potential DbReaderException
- Use Fetch<T> instead of Query<T> because we create another DbReader inside the loop with DoesMacroHaveParameters().
2013-11-07 20:09:06 +01:00
Anders Stentebjerg 2d09785753 Search form 1px up 2013-11-07 17:15:41 +00:00
perploug 7a31ba0de7 merge 2013-11-07 18:14:53 +01:00
Anders Stentebjerg 1cfb79788a Align header 2013-11-07 17:11:35 +00:00
yawka aacb86bf92 Add trim to all urls 2013-11-07 19:09:50 +02:00
yawka 59391f58ec Remove previous fix, and move it to IsReservedPathOrUrl 2013-11-07 19:06:25 +02:00
yawka 0debf9c34f Add check is path is whitespace 2013-11-07 19:05:50 +02:00
Morten Christensen 9fa17ef6cb Initial datalayer refactoring work on the legacy User class 2013-11-07 17:56:38 +01:00
Morten Christensen d227aa19b8 Leaving the original internal method intact 2013-11-07 17:56:12 +01:00
Anders Stentebjerg 641d0c737f Styling
- Retina optimized gravatar
- White Umbraco logo
2013-11-07 16:51:25 +00:00
perploug 242b755b1a Tabs overflow 2013-11-07 17:48:54 +01:00
Sebastiaan Janssen d76336cd39 Merge pull request #194 from Attackmonkey/Hackathon-U4-3228
Fixes issue U4-3228, where dictionary item names are not trimmed.
2013-11-07 08:45:21 -08:00
yawka e0a10080b1 Add UI validation for regular expression property 2013-11-07 18:39:27 +02:00
yawka 807df434f6 Add validation for regular expression property 2013-11-07 18:39:02 +02:00
Sebastiaan Janssen 0dc3920309 Merge pull request #191 from dipeshhirani/U4-2756
Fixed the issue below: U4-2756
2013-11-07 08:38:44 -08:00
Sebastiaan Janssen 98d1aafb75 Merge pull request #187 from wpyz/6.2.0
Fixes issue with opening VS solution when only Visual Studio 2013 is installed (fixes U4-3445)
2013-11-07 08:36:40 -08:00
mattbrailsford d963917556 Added SortOrder to XML for document types (used by export)
Added ability for doctype importer to set the sort order if a sort order element is available
2013-11-07 16:30:23 +00:00
Anders Stentebjerg fa0b3ddab9 Set focus on pageName 2013-11-07 16:30:14 +00:00
Per Ploug Krogslund 7440855c72 merge 2013-11-07 17:16:22 +01:00
perploug 937bda9c16 select on focus directive 2013-11-07 17:11:32 +01:00
Tim Payne 347d41c841 Fixes issue U4-2760, and makes the installed packages list by name in alphabetical order to make it easier to see what's installed. 2013-11-07 16:06:16 +00:00
Anders Stentebjerg 2b3a9a0b8f U4-3449 Polish UX so it matches grid 2013-11-07 16:04:07 +00:00
Tim Payne f16aa38fff Fixes issue U4-2757 where generic properties are not ordered correctly. 2013-11-07 15:51:58 +00:00
Sebastiaan Janssen 6a0d7ec8d6 Merge pull request #183 from mkariti/U4-1477
fix U4-1477
2013-11-07 07:49:27 -08:00
adang@thecogworks.co.uk 62a7e0acd0 Replaced HttpContext.Current.Cache with HttpRuntime.Cache 2013-11-07 15:44:55 +00:00
leekelleher 8e89d13142 Fixes: U4-2006 Domain.GetDomain(string DomainName) is case-sensitive 2013-11-07 15:41:34 +00:00
perploug 8b879183ba Merge branch '7.0.0' of https://github.com/umbraco/Umbraco-CMS into 7.0.0 2013-11-07 16:05:43 +01:00
perploug 0f424d314f Changes editor header editor to input:text 2013-11-07 16:05:22 +01:00
dipunm a5782a40af Missing languages in RTE insert link dialog.
Also included files in csproj file to ensure proper build.
2013-11-07 14:59:00 +00:00
dipeshhirani c6af319805 commented out the line that checked if the language is neutral. 2013-11-07 14:56:00 +00:00
leekelleher 516beedbbb Fixes: U4-3452 Update the MIT License URL (Packager) 2013-11-07 14:48:20 +00:00
mattbrailsford 7cd01fc50b Added ValidateRequest="false" on package installer page to allow user controls which postback html / code. 2013-11-07 14:35:44 +00:00
Simon Dingley e9d12ae0d8 Revert "Group jQueryTree script files"
This reverts commit baed01518c.
2013-11-07 14:23:53 +00:00
Tim Payne 02e167c1f6 Fixes issue U4-3063 where copying a document type uses the rename for the node alias, but not the title, resulting in two Doctypes with the same name, but different aliases, rather than different names AND aliases. 2013-11-07 14:20:47 +00:00
Simon Dingley baed01518c Group jQueryTree script files 2013-11-07 13:21:01 +00:00
Morten Christensen f9a86385b5 Rearranging the create schema extensions methods to provide a bit more flexibility for external usage. 2013-11-07 14:03:34 +01:00
Craig Cronin a0106ff811 Fixed as per issue comments, but also implemented for another 3 overloads 2013-11-07 12:50:26 +00:00
Simon Dingley e0da5a9cb2 Groups jQuery dependencies using the ClientDependency Group property 2013-11-07 12:45:35 +00:00
mkariti 451d5eb484 U4-415 2013-11-07 14:40:26 +02:00
Morten Christensen b8f7df1a96 Fixing the broken stylesheetrepository test and ignoring the StylesheetRepository in the RepositoryResolverTest for the time being as it takes two different UOWs as opposed to other repositories. 2013-11-07 13:33:49 +01:00
Tim Payne 425fd80e65 Fixes issue U4-3228, where dictionary item names are not trimmed. 2013-11-07 12:28:43 +00:00
Morten Christensen 04bb778dc1 Fix StylesheetRepositoryTest which broke as a result of PR #176 2013-11-07 12:52:25 +01:00
dipeshhirani 3f2be3342a Fixed the issue below:
The "Unpublish" button (under Properties tab) is bad translated to Italian.
The used word is "Non pubblicato". This phrase is mean "It is not published".
A best translation is "Non pubblicare" (unpublish).

Did not do any of the others as they are either already done or the requesters change seems incorrect/irrelevent
2013-11-07 11:42:08 +00:00
Morten Christensen 3ba50e7bae Merge pull request #176 from pynej/add-stylesheet-ids
Fix for missing Id's on FileService.GetStylesheets() call.  This is need...
2013-11-07 03:41:33 -08:00
Morten Christensen 7306ddef14 Merge pull request #182 from stocksr/6.2.0-petapoco-refactor
6.2.0 petapoco refactor - umbraco.cms.businesslogic.language.Item
2013-11-07 03:37:37 -08:00
Morten Christensen 17bb29eb66 Merge pull request #185 from saciervo/6.2.0
Use PetaPoco instead of SqlHelper
2013-11-07 03:35:49 -08:00
Morten Christensen 8bf3de738f Merge pull request #188 from stocksr/6.2.0-petapoco-refactor-umbraco.cms.businesslogic.language.Language
Refactoring umbraco.cms.businesslogic.language.Language class
2013-11-07 03:34:08 -08:00
Robert Stocks 2d37502a44 Refactoring umbraco.cms.businesslogic.language.Language class 2013-11-07 11:28:00 +00:00
Ryan Lewis d5c485205a Whitespace 2013-11-07 11:24:40 +00:00
Ryan Lewis 9533198365 Can open VS solution with only Visual Studio 2013 installed (fixes U4-3445) 2013-11-07 11:23:41 +00:00
Morten Christensen 66f20e3800 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2013-11-07 12:19:27 +01:00
Sandro Ciervo 9269a98806 Refactored Umbraco.Web.UI.Controls.InsertMacroSplitButton
- CreateChildControls()
- DoesMacroHaveParameters (Int32)
2013-11-07 12:15:03 +01:00
mkariti 7c97fddec5 fix U4-1477 2013-11-07 13:08:56 +02:00
Morten Christensen a567cf2a87 Minor update to the DefaultData so the used PetaPoco db object is consistent 2013-11-07 12:00:45 +01:00
Morten Christensen 1e319d667b Updating the remaining methods in the Notification class so it no longer uses the legacy SqlHelper. 2013-11-07 11:59:59 +01:00
Sebastiaan Janssen cc039e365d Merge pull request #181 from Attackmonkey/Tim-Payne-Hackathon-U4-2708
Fixes issue U4-2708
2013-11-07 02:55:03 -08:00
Morten Christensen f91ff5dc31 Special commit for a special Lars-Erik 2013-11-07 11:48:25 +01:00
Robert Stocks 9347a2edbb Refactoring umbraco.cms.businesslogic.language.Item class - Fix Update and Delete calls 2013-11-07 10:40:23 +00:00
yawka 1923b68594 Fix 2034, add check for whitespaces 2013-11-07 12:36:35 +02:00
Robert Stocks 64a73ef528 Refactoring umbraco.cms.businesslogic.language.Item class 2013-11-07 10:20:55 +00:00
Tim Payne 4ea04f5ffe Fixes issue U4-2708 2013-11-07 10:08:11 +00:00
Morten Christensen 6b006e6fd7 Refactoring GetUserNotifications method in the Notification class 2013-11-07 11:00:19 +01:00
Shannon 30fe174601 working on U4-3442 tree sync doesn't work for nodes that are not loaded 2013-11-07 17:53:46 +11:00
Shannon 31448eb987 Fixes: U4-3427 Tree persistence not working 2013-11-07 17:41:44 +11:00
Shannon 29cf9ae46a Changes all references of navigationService.ui.currentTreeNode to be navigationService.ui.currentNode since that was what has existed previously, now suddenly we have 2 references to current tree node - I'm 99% sure that we only want one reference and currentTreeNode seems to have been added later and isn't declared properly on the nav service. 2013-11-07 17:32:06 +11:00
Shannon 01eb7157bd Adds missing moveNode from the legacy tree api 2013-11-07 17:20:01 +11:00
Shannon bacdcb7abf updates some more logic when saving macro properties to always try to map to the new ones if legacy aliases are used. 2013-11-07 16:07:08 +11:00
Shannon 164b630d5e Fixes: U4-3428 Macro Parameter Types aren't set correctly when a (legacy) package installs them 2013-11-07 16:00:58 +11:00
Shannon d9abbd4232 Fixes: U4-3437 Deleting a macro with parameters causes YSOD 2013-11-07 15:16:18 +11:00
Shannon 3d6eea9470 Fixes: U4-3350 Content Validation: Can't get rid of DateTime error 2013-11-07 14:58:41 +11:00
Shannon 345b96e253 Moves TreeControllerBase to separate file and moves the CreateTreeNode methods to that controller so they can be used in events handlers. 2013-11-07 13:52:06 +11:00
Shannon 546788761f Fixes merge issue 2013-11-07 12:33:06 +11:00
Shannon fad84ac0bb Merge remote-tracking branch 'origin/6.2.0' into 7.0.0
Conflicts:
	src/Umbraco.Web.UI/umbraco/members/EditMember.aspx
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
2013-11-07 12:30:28 +11:00
Shannon fc0654a80f Fixes: U4-2241 Native Multi-node tree picker in Member Types: Saving clears selected items 2013-11-07 12:02:41 +11:00
Sebastiaan Janssen 4717faaf1b Merge pull request #180 from Jeavon/U4-3432
Fix for U4-3432Rollback Dialog - CreateDate/Creator formatting tweaks
2013-11-06 09:48:08 -08:00
Jeavon Leopold e7d587f776 Fix for U4-3432Rollback Dialog - CreateDate/Creator formatting tweaks required 2013-11-06 17:19:18 +00:00
Stephan dca0c85db5 Merge remote-tracking branch 'origin/6.2.0' into 6.2.0 2013-11-04 12:54:07 +01:00
Shannon 5006115b2d Fixes object extensions and tests
Conflicts:
	src/Umbraco.Core/ObjectExtensions.cs
	src/Umbraco.Tests/ObjectExtensionsTests.cs
2013-11-02 15:20:04 +11:00
Stephan 058cec7551 Cache AspNet hosting permission level 2013-11-01 16:57:31 +01:00
Jeremy Pyne 6451f6ad68 Fix sql errors in prev change. 2013-10-29 10:00:25 -04:00
Jeremy Pyne 7cd6882f28 Removed dependence in Stylesheet repository on Entity Service. 2013-10-29 09:24:05 -04:00
Jeremy Pyne dc336728b5 Fix for missing Id's on FileService.GetStylesheets() call. This is needed as sytlesheets can only be loaded in the editor via their Id so listing stylesheets needs to list there Id as well for custom plugins to render the build in editor. 2013-10-28 14:32:18 -04:00
Jan Skovgaard 3abd4df8bd Enabled lists plugin in tinymce by default
Fixes http://issues.umbraco.org/issue/U4-3023
2013-10-16 16:01:17 +02:00
Jan Skovgaard ea239e6122 Missing languages in RTE insert link dialogue
Fixes this issue: http://issues.umbraco.org/issue/U4-2551
2013-10-16 15:53:56 +02:00
Lars-Erik Aabech 3fe99a402e Should make the PublishedContentExtensionTests green when ran together with everything else in TeamCity 2013-10-16 15:45:39 +02:00
Steve Temple e738738e54 Only check actions if more than 1 route matches & ignore case when comparing controller names 2013-10-16 12:02:20 +01:00
Steve Temple f502912225 Updated to use invariant culture 2013-10-15 23:51:39 +01:00
Steve Temple c8a26bf6a3 Merge branch '6.1.6-multiple-action-route-issue' of github.com:stevetemple/Umbraco-CMS into 6.1.6-multiple-action-route-issue 2013-10-15 17:18:46 +01:00
Steve Temple e06e50c4fc Tidied up tabs to match Umbraco standard and nicer string comparison 2013-10-15 17:18:12 +01:00
Steve Temple 4236473b14 Tidied up tabs to match Umbraco standard 2013-10-15 17:15:53 +01:00
Steve Temple 3285e161c0 Fix issue with error http://our.umbraco.org/forum/developers/api-questions/41483-Umbraco-6-MVC-RenderRouteHandlerHandlePostedValues-Sequence-contains-more-than-one-matching-element when multiple routes share the same controller 2013-10-15 17:09:51 +01:00
wtct b5c3fb1728 FFROM to FROM 2013-10-11 09:16:18 +02:00
wtct e1caf3a470 U4-3091 2013-10-10 14:45:18 +02:00
wtct b6cf182341 Affect the order of domains 2013-10-09 17:52:05 +02:00
Sebastiaan Janssen 4935525591 Merge pull request #147 from AndyButland/u4-2958
Fix for issue U4-2958 Member can edit & Show on profile do not persist on Member Type editor
2013-10-05 10:04:08 -07:00
mortenbock c74cdb28d6 Testing the wrapping of view engines 2013-10-03 11:01:37 +02:00
Andy Butland 693778fe74 Fixed issue where member type properties would not persist after first save without reloading page 2013-10-02 21:20:05 +02:00
Marc Brooks b200cb463e Make CacheHelperExtensions public so we can call CachedPartialView and ClearPartialViewCache
In order to allow extensions to the logic and usage of the CachedPartial HtmlHelper, expose CachedPartialView and ClearPartialViewCache by making the wrapping static class public.
2013-09-30 18:28:45 -05:00
Marc Brooks cdf5ddf539 Added cacheKeyBuilder optional argument to allow the key used for caching to be contextual.
when building cached partials that work with many different instances of the same  partial view (e.g. using the same partial more than once on a page with different ViewDataDictionary or different model), it is necessary to either name each instance differently (ugh), or not cache.

By adding an optional argument to the CachedPartial Html helper method, we can vary the cache-key depending on the context of insertion. For maximum flexibility, pass the model and the viewData to the function so it can use that data to format a cacheKey suffix.

A typical use would be something like:

@Html.CachedPartial(
"EventListings"
, FeedRepository.getFeed(new CalendarEventsModel
  {
     StartingDate = DateTime.UtcNow.Date
     , Count = 10
  })
, 0
, contextualKeyBuilder: (model, viewData) =>
  {
     return (model as CalendarEventsModel).StartingDate.ToString();
  }
)
2013-09-30 18:23:56 -05:00
Sebastiaan Janssen 8eee7cae2f Merge branch '6.1.6' 2013-09-30 16:10:14 +02:00
Jeremy Pyne 5716edcf80 Added node type to quick search(as a toooltip).
Added node type to search results.
2013-09-23 16:19:05 -04:00
Mads Krohn 0fe33c120b Removing unwanted ToList() 2013-09-13 10:42:08 +02:00
Mads Krohn 10ea234dbf Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2013-09-13 10:29:12 +02:00
Mads Krohn 31f146fc6f Updates to the media trashed state handling
Tweaked the logic for determining when a media item is trashed or not.
Added unit tests. Removed unnecessary comments.
2013-09-13 10:29:03 +02:00
Shandem a353f6fb74 Merge pull request #135 from Myster/master
Fix multiple words in search U4-2509
2013-09-11 19:33:47 -07:00
Murray Roke a64efb93b3 Improved search with "and", partial match U4-2509
- added partial matching on each word.
- fixed bug so 'all' words match rather than 'any' words.
2013-09-12 14:30:42 +12:00
Murray Roke cf9f11ff45 Improved admin search splitting query U4-2509 2013-09-12 13:22:14 +12:00
Murray Roke d7481b5ca4 Fix multiple words in search U4-2509
When multiple words are entered in the search field no results are
returned.
This pull req. contains the fix suggested by Tony.
2013-09-12 10:22:59 +12:00
Mads Krohn 0af73b0290 Fixed U4-2842 Umb 6.1.5 - moving a media item from recycle bin / trash 2013-09-12 00:14:44 +02:00
dprothero 6675bac1dc Fix #U4-2796 - fixed copy/paste error (does not affect functionality) 2013-09-05 15:23:25 -07:00
dprothero 0d49a59cfe Fix #U4-2796 Possible to have duplicate Login Name (Member.LoginName) for Umbraco Members 2013-09-05 15:15:40 -07:00
Stefan Kip baa22301e9 Added Exception which tells you which datatype is unable to load 2013-09-05 11:31:06 +02:00
Niels Hartvig 2fb55cb831 Enhanced permission checking on views and snippets
Thanks to Richard Turnbull from NGS Secure Research who discovered a
minor issue that made it possible for authenticated Umbraco Users to
view files beyond their permissions
2013-09-02 14:23:27 +02:00
Sebastiaan Janssen 0e6a926a3f Merge branch '6.1.5' 2013-09-02 12:24:26 +02:00
enkelmedia fdfb6187e9 Removing SVG from staticContent before addings it. 2013-09-01 16:51:00 +02:00
enkelmedia 69830f28c2 Added SVG as static content so SVG-icons in the backoffice will be served by IIS 2013-09-01 14:05:54 +02:00
Jeremy Pyne e65a71a05a Added code to pre-select the current node in content tree pickers based on the location of the document in the tree.
This is a HUGE time saver with an even moderately complex site hierarchy.
2013-08-29 11:14:51 -04:00
Jeremy Pyne 7a2a444579 Fix for select parent o move or copy in 6.1.3. 2013-08-29 11:14:35 -04:00
Jeremy Pyne e16ebecda4 Merge branch '6.1.3-clean' into select-parent-on-movecopy 2013-08-29 11:09:20 -04:00
DougMac 0218e39664 Fixes: U4-2060 Spell Checker Broke After Google Update 2013-08-26 22:50:53 +01:00
Sebastiaan Janssen 1e76cf67d3 Fix merge problem 2013-08-23 08:57:02 +02:00
Sebastiaan Janssen 61149f8112 Merge branch '6.1.4'
Conflicts:
	.gitignore
	src/Umbraco.Web.UI/install/steps/database.ascx
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/Images/ImageViewer.ascx.cs
	src/umbraco.editorControls/mediapicker/mediaChooser.cs
2013-08-22 14:46:11 +02:00
DougMac 7e645f9a6a Fixes: U4-2060 Spell Checker Broke After Google Update
The Google spell check at https://www.google.com/tbproxy/spell no longer
works. This updates to a newer Google Api (again undocumented)
2013-08-17 10:50:26 +01:00
Sebastiaan Janssen b5494546c7 defaultDocumentTypeProperty is no longer case-sensitive. Added to the Release config as well so it makes it into the umbraco downloadable package. 2013-07-19 15:40:12 +02:00
Sebastiaan Janssen 7bac1ef1cd Merge branch 'wip-u4-1949' of https://github.com/AndyButland/Umbraco-CMS into AndyButland-wip-u4-1949 2013-07-19 15:22:05 +02:00
Sebastiaan Janssen da15d40b04 Merge pull request #51 from kipusoep/master
Updated the download link
2013-07-19 06:18:13 -07:00
Sebastiaan Janssen 67bd303173 Merge pull request #46 from michielvoo/u4-2417
U4-2417 Could the preview thumbnail link to the full image
2013-07-19 06:02:51 -07:00
Sebastiaan Janssen 20e6843bf0 Merge pull request #32 from AndyButland/wip-u4-1285
Fix for U4-1285: Apostrophes in member groups cause exceptions
2013-07-19 05:39:38 -07:00
Sebastiaan Janssen 85c80b07f9 Merge pull request #42 from michielvoo/u4-232
Enabled support for integrated security for SQL Server to the installer.
2013-07-19 04:26:50 -07:00
Sebastiaan Janssen 557dccd88b Merge pull request #41 from michielvoo/u4-667
U4-667
2013-07-19 04:18:29 -07:00
Sebastiaan Janssen 334f0bfd2b Merge pull request #40 from michielvoo/u4-663
U4-663
2013-07-19 03:53:15 -07:00
AndyButland 986d37afd6 Removed debugging console.log reference 2013-07-18 21:23:05 +02:00
Stefan Kip 63ea79a4d6 Updated the download link 2013-07-11 10:03:25 +02:00
Michiel van Oosterhout e4df176a37 U4-2417: show media picker image as link to the original image.
Order of the views in the markup did not match the order of the Style enum.
ImageViewer control now selects the view by matching the ViewerStyle enum to a View ID. This way the order of the views in the markup is no longer important.

Also:
Removed user control from Umbraco.Web project, moved designer code and added code behind class for user control to Umbraco.Web.UI
Refactored code to use Umbraco.Core.IO
Removed some code that was commented out
2013-07-03 17:36:28 +02:00
Michiel van Oosterhout d926180e3a Added special overload for creating a connection string with integrated security.
Actually disable checkbox is the selected database type is not Microsoft SQL Server.
Refactored saveDBConfig for readability.
2013-06-28 16:40:23 +02:00
Michiel van Oosterhout 72bb1b3583 U4-667
Added a script to make the checkbox "Render content in editor" dependent on the "Use in editor" checkbox.
Also refactored the create.aspx code-behind so it's easier to see what control is loaded in the dialog when debugging.
2013-06-28 10:44:24 +02:00
Michiel van Oosterhout 240e58e061 U4-663
Do not overwrite existing files when creating a new template.
2013-06-28 10:42:51 +02:00
Michiel van Oosterhout e980296d6d Enabled support for integrated security for SQL Server to the installer. 2013-06-28 10:39:48 +02:00
AndyButland d23482b7a6 Moved setting for DefaultDocumentTypeProperty from GlobalSettings to UmbracoSettings 2013-06-27 16:00:49 +02:00
AndyButland 212800f706 Added config setting for default document type property; used setting to set default new property type 2013-06-26 17:25:44 +02:00
AndyButland d47ff4005c Support for deleting member groups with apostrophes 2013-06-26 06:16:39 +02:00
AndyButland dfeb1c7a0b Support for displaying and editing member groups with apostrophes 2013-06-26 06:16:23 +02:00
Jeremy Pyne fe23502e67 Added code to actually pre-select the parent node instead of just locating it in the tree. This seams keeps the Ui in a sane state.
Updated control code in Umbraco.Web.Ui from Umbraco.Web.
2013-06-25 15:48:16 -04:00
Jeremy Pyne ad2764e3ac Added code to select the parent node when doing Move/Copy operations. This will save lots of time for users.
This code can also be added to other places that use the TreeControl to pre-select the currently selected item(media pickers for example) so that changing content will be quicker.
2013-06-24 14:51:52 -04:00
1422 changed files with 80178 additions and 63145 deletions
+2
View File
@@ -106,3 +106,5 @@ src/Umbraco.Web.UI/[Uu]mbraco/[Vv]iews/**/*.js
src/Umbraco.Web.UI/[Cc]onfig/appSettings.config
src/Umbraco.Web.UI/[Cc]onfig/connectionStrings.config
src/Umbraco.Web.UI/umbraco/plugins/*
src/Umbraco.Web.UI/umbraco/js/init.js
build/ApiDocs/*
+6 -2
View File
@@ -1,7 +1,11 @@
Umbraco CMS
===========
##Note: Building version 7 from source##
If you're interested in using the source code and building version 7, make sure to read the [Belle ReadMe file](src/Umbraco.Web.UI.Client/README.md). Note that you can always [download a nightly build](http://nightly.umbraco.org/umbraco%207.0.0/) so you don't have to build the code yourself.
Umbraco is a free open source Content Management System built on the ASP.NET platform.
## Building Umbraco from source ##
The easiest way to get started is to run `build/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 `grunt dev` in `src\Umbraco.Web.UI.Client`.
If you're interested in making changes to Belle make sure to read the [Belle ReadMe file](src/Umbraco.Web.UI.Client/README.md). Note that you can always [download a nightly build](http://nightly.umbraco.org/umbraco%207.0.0/) so you don't have to build the code yourself.
## Watch a five minute introduction video ##
+14 -3
View File
@@ -1,19 +1,25 @@
@ECHO OFF
SET release=7.0.0
SET comment=RC
SET release=7.0.3
SET comment=
SET version=%release%
IF [%comment%] EQU [] (SET version=%release%) ELSE (SET version=%release%-%comment%)
ECHO Building Umbraco %version%
ReplaceIISExpressPortNumber.exe ..\src\Umbraco.Web.UI\Umbraco.Web.UI.csproj %release%
ECHO Installing the Microsoft.Bcl.Build package before anything else, otherwise you'd have to run build.cmd twice
SET nuGetFolder=%CD%\..\src\packages\
..\src\.nuget\NuGet.exe install ..\src\Umbraco.Web.UI\packages.config -OutputDirectory %nuGetFolder%
ECHO Performing MSBuild and producing Umbraco binaries zip files
%windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe "Build.proj" /p:BUILD_RELEASE=%release% /p:BUILD_COMMENT=%comment%
ECHO Adding dummy files to include in the NuGet package so that empty folders actually get created
echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\App_Code\dummy.txt
echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\App_Data\dummy.txt
echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\App_Plugins\dummy.txt
echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\css\dummy.txt
echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\macroScripts\dummy.txt
echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\masterpages\dummy.txt
echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\media\dummy.txt
echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\scripts\dummy.txt
@@ -21,6 +27,11 @@ echo This file is only here so that the containing folder will be included in th
echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\Views\Partials\dummy.txt
echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\Views\MacroPartials\dummy.txt
ECHO Adding Web.config transform files to the NuGet package
ren .\_BuildOutput\WebApp\MacroScripts\Web.config Web.config.transform
ren .\_BuildOutput\WebApp\Views\Web.config Web.config.transform
ECHO Packing the NuGet release files
..\src\.nuget\NuGet.exe pack NuSpecs\UmbracoCms.Core.nuspec -Version %version%
..\src\.nuget\NuGet.exe pack NuSpecs\UmbracoCms.nuspec -Version %version%
+1 -1
View File
@@ -267,7 +267,7 @@
<Message Text="Compiling web project to build\$(BuildFolder)" Importance="high" />
<!-- For UseWPP_CopyWebApplication=True see http://stackoverflow.com/questions/1983575/copywebapplication-with-web-config-transformations -->
<!-- Build the Umbraco.Web.UI project -->
<MSBuild Projects="..\src\Umbraco.Web.UI\Umbraco.Web.UI.csproj" Properties="WarningLevel=0;Configuration=$(BuildConfiguration);UseWPP_CopyWebApplication=True;PipelineDependsOnBuild=False;OutDir=$(SolutionBinFolderAbsolutePath);WebProjectOutputDir=$(WebAppFolderAbsolutePath)" Targets="Clean;Build;" BuildInParallel="False" ToolsVersion="4.0" UnloadProjectsOnCompletion="False">
<MSBuild Projects="..\src\Umbraco.Web.UI\Umbraco.Web.UI.csproj" Properties="WarningLevel=0;Configuration=$(BuildConfiguration);UseWPP_CopyWebApplication=True;PipelineDependsOnBuild=False;OutDir=$(SolutionBinFolderAbsolutePath);WebProjectOutputDir=$(WebAppFolderAbsolutePath)" Targets="Clean;Rebuild;" BuildInParallel="False" ToolsVersion="4.0" UnloadProjectsOnCompletion="False">
</MSBuild>
<!-- DONE -->
+32
View File
@@ -0,0 +1,32 @@
@ECHO OFF
ECHO Installing Npm NuGet Package
SET nuGetFolder=%CD%\..\src\packages\
ECHO Configured packages folder: %nuGetFolder%
ECHO Current folder: %CD%
%CD%\..\src\.nuget\NuGet.exe install Npm.js -OutputDirectory %nuGetFolder%
for /f "delims=" %%A in ('dir %nuGetFolder%node.js.* /b') do set "nodePath=%nuGetFolder%%%A\"
for /f "delims=" %%A in ('dir %nuGetFolder%npm.js.* /b') do set "npmPath=%nuGetFolder%%%A\tools\"
ECHO Temporarily adding Npm and Node to path
SET oldPath=%PATH%
path=%npmPath%;%nodePath%;%PATH%
SET buildFolder=%CD%
ECHO Change directory to %CD%\..\src\Umbraco.Web.UI.Client\
CD %CD%\..\src\Umbraco.Web.UI.Client\
ECHO Do npm install and the grunt build of Belle
call npm install
call npm install -g grunt-cli
call grunt build
ECHO Reset path to what it was before
path=%oldPath%
ECHO Move back to the build folder
CD %buildFolder%
+7 -7
View File
@@ -15,24 +15,27 @@
<language>en-US</language>
<tags>umbraco</tags>
<dependencies>
<dependency id="Microsoft.AspNet.Mvc" version="4.0" />
<dependency id="Microsoft.AspNet.WebApi" version="4.0" />
<dependency id="Microsoft.AspNet.Mvc" version="[4.0.0,5.0.0)" />
<dependency id="Microsoft.AspNet.WebApi" version="[4.0.0,5.0.0)" />
<dependency id="Microsoft.AspNet.WebApi.Client" version="[4.0.0, 5.0.0)" />
<dependency id="Microsoft.AspNet.Mvc.FixedDisplayModes" version="1.0.0" />
<dependency id="Microsoft.Net.Http" version="[2.0.0, 3.0.0)" />
<dependency id="MiniProfiler" version="[2.1.0, 3.0.0)" />
<dependency id="HtmlAgilityPack" version="[1.4.6, 2.0.0)" />
<dependency id="Lucene.Net" version="[2.9.4.1, 3.0.0.0)" />
<dependency id="SharpZipLib" version="[0.86.0, 1.0.0)" />
<dependency id="MySql.Data" version="[6.6.5]" />
<dependency id="xmlrpcnet" version="[2.5.0, 3.0.0)" />
<dependency id="ClientDependency" version="[1.7.0, 2.0.0)" />
<!--<dependency id="ClientDependency" version="[1.7.0, 2.0.0)" />-->
<dependency id="ClientDependency-Mvc" version="[1.7.0, 2.0.0)" />
<dependency id="AutoMapper" version="[3.0.0, 4.0.0)" />
<dependency id="Newtonsoft.Json" version="[5.0.0, 6.0.0)" />
<dependency id="Newtonsoft.Json" version="[4.5.11, 5.0.0)" />
</dependencies>
</metadata>
<files>
<file src="..\_BuildOutput\WebApp\bin\businesslogic.dll" target="lib\businesslogic.dll" />
<file src="..\_BuildOutput\WebApp\bin\businesslogic.xml" target="lib\businesslogic.xml" />
<file src="..\_BuildOutput\WebApp\bin\ClientDependency.Core.dll" target="lib\ClientDependency.Core.dll" />
<file src="..\_BuildOutput\WebApp\bin\cms.dll" target="lib\cms.dll" />
<file src="..\_BuildOutput\WebApp\bin\cms.xml" target="lib\cms.xml" />
<file src="..\_BuildOutput\WebApp\bin\controls.dll" target="lib\controls.dll" />
@@ -43,9 +46,6 @@
<file src="..\_BuildOutput\WebApp\bin\log4net.dll" target="lib\log4net.dll" />
<file src="..\_BuildOutput\WebApp\bin\Microsoft.ApplicationBlocks.Data.dll" target="lib\Microsoft.ApplicationBlocks.Data.dll" />
<file src="..\_BuildOutput\WebApp\bin\Microsoft.Web.Helpers.dll" target="lib\Microsoft.Web.Helpers.dll" />
<file src="..\_BuildOutput\WebApp\bin\Our.Umbraco.uGoLive.47x.dll" target="lib\Our.Umbraco.uGoLive.47x.dll" />
<file src="..\_BuildOutput\WebApp\bin\Our.Umbraco.uGoLive.Checks.dll" target="lib\Our.Umbraco.uGoLive.Checks.dll" />
<file src="..\_BuildOutput\WebApp\bin\Our.Umbraco.uGoLive.dll" target="lib\Our.Umbraco.uGoLive.dll" />
<file src="..\_BuildOutput\WebApp\bin\SQLCE4Umbraco.dll" target="lib\SQLCE4Umbraco.dll" />
<file src="..\_BuildOutput\WebApp\bin\System.Data.SqlServerCe.dll" target="lib\System.Data.SqlServerCe.dll" />
<file src="..\_BuildOutput\WebApp\bin\System.Data.SqlServerCe.Entity.dll" target="lib\System.Data.SqlServerCe.Entity.dll" />
+1 -1
View File
@@ -23,7 +23,7 @@
<file src="..\_BuildOutput\WebApp\bin\x86\**" target="Content\bin\x86" />
<file src="..\_BuildOutput\Configs\**" target="Content\config" exclude="..\_BuildOutput\Configs\Web.config.transform" />
<file src="..\_BuildOutput\WebApp\css\**" target="Content\css" />
<file src="..\_BuildOutput\WebApp\macroScripts\**" target="Content\macroScripts" />
<file src="..\_BuildOutput\WebApp\macroScripts\**" target="Content\macroScripts" exclude="..\_BuildOutput\WebApp\macroScripts\Web.config" />
<file src="..\_BuildOutput\WebApp\masterpages\**" target="Content\masterpages" />
<file src="..\_BuildOutput\WebApp\media\**" target="Content\media" />
<file src="..\_BuildOutput\WebApp\scripts\**" target="Content\scripts" />
+1 -7
View File
@@ -21,13 +21,7 @@ if ($project) {
$projectDestinationPath = Split-Path $project.FullName -Parent
$umbracoFilesPath = Join-Path $rootPath "UmbracoFiles\*"
Copy-Item $umbracoFilesPath $projectDestinationPath -recurse -force
# Remove Newtonsoft.Json if present in the bin folder
# If we don't do this, the correct version never gets copied in
$projectDestinationPath = Split-Path $project.FullName -Parent
$jsonDllFile = Join-Path $projectDestinationPath "bin\Newtonsoft.Json.dll"
Remove-Item $jsonDllFile -Confirm:$false
# Open readme.txt file
$DTE.ItemOperations.OpenFile($toolsPath + '\Readme.txt')
}
Binary file not shown.
+12 -27
View File
@@ -18,13 +18,13 @@
<ItemGroup Condition=" '$(PackageSources)' == '' ">
<!-- Package sources used to restore packages. By default, registered sources under %APPDATA%\NuGet\NuGet.Config will be used -->
<!-- The official NuGet package source (https://nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list -->
<!-- The official NuGet package source (https://www.nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list -->
<!--
<PackageSource Include="https://nuget.org/api/v2/" />
<PackageSource Include="https://www.nuget.org/api/v2/" />
<PackageSource Include="https://my-nuget-source/nuget/" />
-->
<PackageSource Include="https://nuget.org/api/v2/" />
<PackageSource Include="http://www.myget.org/F/umbracocore/" />
<PackageSource Include="http://www.myget.org/F/umbracocore/" />
</ItemGroup>
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT'">
@@ -41,7 +41,7 @@
<PropertyGroup>
<!-- NuGet command -->
<NuGetExePath Condition=" '$(NuGetExePath)' == '' ">$(NuGetToolsPath)\nuget.exe</NuGetExePath>
<NuGetExePath Condition=" '$(NuGetExePath)' == '' ">$(NuGetToolsPath)\NuGet.exe</NuGetExePath>
<PackageSources Condition=" $(PackageSources) == '' ">@(PackageSource)</PackageSources>
<NuGetCommand Condition=" '$(OS)' == 'Windows_NT'">"$(NuGetExePath)"</NuGetCommand>
@@ -50,9 +50,14 @@
<PackageOutputDir Condition="$(PackageOutputDir) == ''">$(TargetDir.Trim('\\'))</PackageOutputDir>
<RequireConsentSwitch Condition=" $(RequireRestoreConsent) == 'true' ">-RequireConsent</RequireConsentSwitch>
<NonInteractiveSwitch Condition=" '$(VisualStudioVersion)' != '' AND '$(OS)' == 'Windows_NT' ">-NonInteractive</NonInteractiveSwitch>
<PaddedSolutionDir Condition=" '$(OS)' == 'Windows_NT'">"$(SolutionDir) "</PaddedSolutionDir>
<PaddedSolutionDir Condition=" '$(OS)' != 'Windows_NT' ">"$(SolutionDir)"</PaddedSolutionDir>
<!-- Commands -->
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -solutionDir "$(SolutionDir) "</RestoreCommand>
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols</BuildCommand>
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir)</RestoreCommand>
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols</BuildCommand>
<!-- We need to ensure packages are restored prior to assembly resolve -->
<BuildDependsOn Condition="$(RestorePackages) == 'true'">
@@ -70,7 +75,6 @@
<Target Name="CheckPrerequisites">
<!-- Raise an error if we're unable to locate nuget.exe -->
<Error Condition="'$(DownloadNuGetExe)' != 'true' AND !Exists('$(NuGetExePath)')" Text="Unable to locate '$(NuGetExePath)'" />
<SetEnvironmentVariable EnvKey="VisualStudioVersion" EnvValue="$(VisualStudioVersion)" Condition=" '$(VisualStudioVersion)' != '' AND '$(OS)' == 'Windows_NT' " />
<!--
Take advantage of MsBuild's build dependency tracking to make sure that we only ever download nuget.exe once.
This effectively acts as a lock that makes sure that the download operation will only happen once and all
@@ -119,7 +123,7 @@
Log.LogMessage("Downloading latest version of NuGet.exe...");
WebClient webClient = new WebClient();
webClient.DownloadFile("https://nuget.org/nuget.exe", OutputFilename);
webClient.DownloadFile("https://www.nuget.org/nuget.exe", OutputFilename);
return true;
}
@@ -131,23 +135,4 @@
</Code>
</Task>
</UsingTask>
<UsingTask TaskName="SetEnvironmentVariable" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<EnvKey ParameterType="System.String" Required="true" />
<EnvValue ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Using Namespace="System" />
<Code Type="Fragment" Language="cs">
<![CDATA[
try {
Environment.SetEnvironmentVariable(EnvKey, EnvValue, System.EnvironmentVariableTarget.Process);
}
catch {
}
]]>
</Code>
</Task>
</UsingTask>
</Project>
+163 -163
View File
@@ -1,164 +1,164 @@
using System;
using Umbraco.Core.Dynamics;
namespace Umbraco.Core
{
/// <summary>
/// Represents the result of an operation attempt.
/// </summary>
/// <typeparam name="T">The type of the attempted operation result.</typeparam>
[Serializable]
public struct Attempt<T>
{
private readonly bool _success;
private readonly T _result;
private readonly Exception _exception;
/// <summary>
/// Gets a value indicating whether this <see cref="Attempt{T}"/> was successful.
/// </summary>
public bool Success
{
get { return _success; }
}
/// <summary>
/// Gets the exception associated with an unsuccessful attempt.
/// </summary>
public Exception Exception { get { return _exception; } }
/// <summary>
/// Gets the exception associated with an unsuccessful attempt.
/// </summary>
/// <remarks>Keep it for backward compatibility sake.</remarks>
[Obsolete(".Error is obsolete, you should use .Exception instead.", false)]
public Exception Error { get { return _exception; } }
/// <summary>
/// Gets the attempt result.
/// </summary>
public T Result
{
get { return _result; }
}
// optimize, use a singleton failed attempt
private static readonly Attempt<T> Failed = new Attempt<T>(false, default(T), null);
/// <summary>
/// Represents an unsuccessful attempt.
/// </summary>
/// <remarks>Keep it for backward compatibility sake.</remarks>
[Obsolete(".Failed is obsolete, you should use Attempt<T>.Fail() instead.", false)]
public static readonly Attempt<T> False = Failed;
// private - use Succeed() or Fail() methods to create attempts
private Attempt(bool success, T result, Exception exception)
{
_success = success;
_result = result;
_exception = exception;
}
/// <summary>
/// Initialize a new instance of the <see cref="Attempt{T}"/> struct with a result.
/// </summary>
/// <param name="success">A value indicating whether the attempt is successful.</param>
/// <param name="result">The result of the attempt.</param>
/// <remarks>Keep it for backward compatibility sake.</remarks>
[Obsolete("Attempt ctors are obsolete, you should use Attempt<T>.Succeed(), Attempt<T>.Fail() or Attempt<T>.If() instead.", false)]
public Attempt(bool success, T result)
: this(success, result, null)
{ }
/// <summary>
/// Initialize a new instance of the <see cref="Attempt{T}"/> struct representing a failed attempt, with an exception.
/// </summary>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <remarks>Keep it for backward compatibility sake.</remarks>
[Obsolete("Attempt ctors are obsolete, you should use Attempt<T>.Succeed(), Attempt<T>.Fail() or Attempt<T>.If() instead.", false)]
public Attempt(Exception exception)
: this(false, default(T), exception)
{ }
/// <summary>
/// Creates a successful attempt.
/// </summary>
/// <returns>The successful attempt.</returns>
public static Attempt<T> Succeed()
{
return new Attempt<T>(true, default(T), null);
}
/// <summary>
/// Creates a successful attempt with a result.
/// </summary>
/// <param name="result">The result of the attempt.</param>
/// <returns>The successful attempt.</returns>
public static Attempt<T> Succeed(T result)
{
return new Attempt<T>(true, result, null);
}
/// <summary>
/// Creates a failed attempt.
/// </summary>
/// <returns>The failed attempt.</returns>
public static Attempt<T> Fail()
{
return Failed;
}
/// <summary>
/// Creates a failed attempt with an exception.
/// </summary>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<T> Fail(Exception exception)
{
return new Attempt<T>(false, default(T), exception);
}
/// <summary>
/// Creates a failed attempt with a result.
/// </summary>
/// <param name="result">The result of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<T> Fail(T result)
{
return new Attempt<T>(false, result, null);
}
/// <summary>
/// Creates a failed attempt with a result and an exception.
/// </summary>
/// <param name="result">The result of the attempt.</param>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<T> Fail(T result, Exception exception)
{
return new Attempt<T>(false, result, exception);
}
/// <summary>
/// Creates a successful or a failed attempt.
/// </summary>
/// <param name="condition">A value indicating whether the attempt is successful.</param>
/// <returns>The attempt.</returns>
public static Attempt<T> SucceedIf(bool condition)
{
return condition ? new Attempt<T>(true, default(T), null) : Failed;
}
/// <summary>
/// Creates a successful or a failed attempt, with a result.
/// </summary>
/// <param name="condition">A value indicating whether the attempt is successful.</param>
/// <param name="result">The result of the attempt.</param>
/// <returns>The attempt.</returns>
public static Attempt<T> SucceedIf(bool condition, T result)
{
return new Attempt<T>(condition, result, null);
}
}
using System;
using Umbraco.Core.Dynamics;
namespace Umbraco.Core
{
/// <summary>
/// Represents the result of an operation attempt.
/// </summary>
/// <typeparam name="T">The type of the attempted operation result.</typeparam>
[Serializable]
public struct Attempt<T>
{
private readonly bool _success;
private readonly T _result;
private readonly Exception _exception;
/// <summary>
/// Gets a value indicating whether this <see cref="Attempt{T}"/> was successful.
/// </summary>
public bool Success
{
get { return _success; }
}
/// <summary>
/// Gets the exception associated with an unsuccessful attempt.
/// </summary>
public Exception Exception { get { return _exception; } }
/// <summary>
/// Gets the exception associated with an unsuccessful attempt.
/// </summary>
/// <remarks>Keep it for backward compatibility sake.</remarks>
[Obsolete(".Error is obsolete, you should use .Exception instead.", false)]
public Exception Error { get { return _exception; } }
/// <summary>
/// Gets the attempt result.
/// </summary>
public T Result
{
get { return _result; }
}
// optimize, use a singleton failed attempt
private static readonly Attempt<T> Failed = new Attempt<T>(false, default(T), null);
/// <summary>
/// Represents an unsuccessful attempt.
/// </summary>
/// <remarks>Keep it for backward compatibility sake.</remarks>
[Obsolete(".Failed is obsolete, you should use Attempt<T>.Fail() instead.", false)]
public static readonly Attempt<T> False = Failed;
// private - use Succeed() or Fail() methods to create attempts
private Attempt(bool success, T result, Exception exception)
{
_success = success;
_result = result;
_exception = exception;
}
/// <summary>
/// Initialize a new instance of the <see cref="Attempt{T}"/> struct with a result.
/// </summary>
/// <param name="success">A value indicating whether the attempt is successful.</param>
/// <param name="result">The result of the attempt.</param>
/// <remarks>Keep it for backward compatibility sake.</remarks>
[Obsolete("Attempt ctors are obsolete, you should use Attempt<T>.Succeed(), Attempt<T>.Fail() or Attempt<T>.If() instead.", false)]
public Attempt(bool success, T result)
: this(success, result, null)
{ }
/// <summary>
/// Initialize a new instance of the <see cref="Attempt{T}"/> struct representing a failed attempt, with an exception.
/// </summary>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <remarks>Keep it for backward compatibility sake.</remarks>
[Obsolete("Attempt ctors are obsolete, you should use Attempt<T>.Succeed(), Attempt<T>.Fail() or Attempt<T>.If() instead.", false)]
public Attempt(Exception exception)
: this(false, default(T), exception)
{ }
/// <summary>
/// Creates a successful attempt.
/// </summary>
/// <returns>The successful attempt.</returns>
public static Attempt<T> Succeed()
{
return new Attempt<T>(true, default(T), null);
}
/// <summary>
/// Creates a successful attempt with a result.
/// </summary>
/// <param name="result">The result of the attempt.</param>
/// <returns>The successful attempt.</returns>
public static Attempt<T> Succeed(T result)
{
return new Attempt<T>(true, result, null);
}
/// <summary>
/// Creates a failed attempt.
/// </summary>
/// <returns>The failed attempt.</returns>
public static Attempt<T> Fail()
{
return Failed;
}
/// <summary>
/// Creates a failed attempt with an exception.
/// </summary>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<T> Fail(Exception exception)
{
return new Attempt<T>(false, default(T), exception);
}
/// <summary>
/// Creates a failed attempt with a result.
/// </summary>
/// <param name="result">The result of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<T> Fail(T result)
{
return new Attempt<T>(false, result, null);
}
/// <summary>
/// Creates a failed attempt with a result and an exception.
/// </summary>
/// <param name="result">The result of the attempt.</param>
/// <param name="exception">The exception causing the failure of the attempt.</param>
/// <returns>The failed attempt.</returns>
public static Attempt<T> Fail(T result, Exception exception)
{
return new Attempt<T>(false, result, exception);
}
/// <summary>
/// Creates a successful or a failed attempt.
/// </summary>
/// <param name="condition">A value indicating whether the attempt is successful.</param>
/// <returns>The attempt.</returns>
public static Attempt<T> SucceedIf(bool condition)
{
return condition ? new Attempt<T>(true, default(T), null) : Failed;
}
/// <summary>
/// Creates a successful or a failed attempt, with a result.
/// </summary>
/// <param name="condition">A value indicating whether the attempt is successful.</param>
/// <param name="result">The result of the attempt.</param>
/// <returns>The attempt.</returns>
public static Attempt<T> SucceedIf(bool condition, T result)
{
return new Attempt<T>(condition, result, null);
}
}
}
@@ -6,7 +6,7 @@ using System.Threading;
namespace Umbraco.Core.Cache
{
internal abstract class DictionaryCacheProdiverBase : ICacheProvider
internal abstract class DictionaryCacheProviderBase : ICacheProvider
{
protected static readonly ReaderWriterLockSlim Locker = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
protected abstract DictionaryCacheWrapper DictionaryCache { get; }
@@ -10,7 +10,7 @@ namespace Umbraco.Core.Cache
/// <summary>
/// A cache provider that caches items in the HttpContext.Items
/// </summary>
internal class HttpRequestCacheProvider : DictionaryCacheProdiverBase
internal class HttpRequestCacheProvider : DictionaryCacheProviderBase
{
private readonly Func<HttpContextBase> _context;
@@ -12,7 +12,7 @@ namespace Umbraco.Core.Cache
/// <summary>
/// A CacheProvider that wraps the logic of the HttpRuntime.Cache
/// </summary>
internal class HttpRuntimeCacheProvider : DictionaryCacheProdiverBase, IRuntimeCacheProvider
internal class HttpRuntimeCacheProvider : DictionaryCacheProviderBase, IRuntimeCacheProvider
{
private readonly System.Web.Caching.Cache _cache;
private readonly DictionaryCacheWrapper _wrapper;
@@ -1,38 +1,38 @@
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.BaseRest
{
internal class BaseRestSection : UmbracoConfigurationSection, IBaseRestSection
{
private const string KeyEnabled = "enabled";
private bool? _enabled;
[ConfigurationProperty("", IsKey = false, IsRequired = false, IsDefaultCollection = true)]
public ExtensionElementCollection Items
{
get { return (ExtensionElementCollection)base[""]; }
}
/// <summary>
/// Gets or sets a value indicating whether base rest extensions are enabled.
/// </summary>
[ConfigurationProperty(KeyEnabled, DefaultValue = true, IsRequired = false)]
public bool Enabled
{
get
{
return _enabled ?? (IsPresent == false || (bool)this[KeyEnabled]);
}
internal set { _enabled = value; }
}
IExtensionsCollection IBaseRestSection.Items
{
get { return Items; }
}
}
}
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.BaseRest
{
internal class BaseRestSection : UmbracoConfigurationSection, IBaseRestSection
{
private const string KeyEnabled = "enabled";
private bool? _enabled;
[ConfigurationProperty("", IsKey = false, IsRequired = false, IsDefaultCollection = true)]
public ExtensionElementCollection Items
{
get { return (ExtensionElementCollection)base[""]; }
}
/// <summary>
/// Gets or sets a value indicating whether base rest extensions are enabled.
/// </summary>
[ConfigurationProperty(KeyEnabled, DefaultValue = true, IsRequired = false)]
public bool Enabled
{
get
{
return _enabled ?? (IsPresent == false || (bool)this[KeyEnabled]);
}
internal set { _enabled = value; }
}
IExtensionsCollection IBaseRestSection.Items
{
get { return Items; }
}
}
}
@@ -1,81 +1,81 @@
using System;
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.BaseRest
{
[ConfigurationCollection(typeof(ExtensionElement), CollectionType = ConfigurationElementCollectionType.BasicMapAlternate)]
internal class ExtensionElement : ConfigurationElementCollection, IEnumerable<IMethodSection>, IExtension
{
const string KeyAlias = "alias";
const string KeyType = "type";
const string KeyMethod = "method";
[ConfigurationProperty(KeyAlias, IsKey = true, IsRequired = true)]
public string Alias
{
get { return (string)base[KeyAlias]; }
}
[ConfigurationProperty(KeyType, IsKey = false, IsRequired = true)]
public string Type
{
get { return (string)base[KeyType]; }
}
public override ConfigurationElementCollectionType CollectionType
{
get { return ConfigurationElementCollectionType.BasicMapAlternate; }
}
protected override string ElementName
{
get { return KeyMethod; }
}
protected override bool IsElementName(string elementName)
{
return elementName.Equals(KeyMethod, StringComparison.InvariantCultureIgnoreCase);
}
protected override ConfigurationElement CreateNewElement()
{
return new MethodElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((MethodElement)element).Name;
}
public override bool IsReadOnly()
{
return false;
}
new public MethodElement this[string index]
{
get { return (MethodElement)BaseGet(index); }
}
IEnumerator<IMethodSection> IEnumerable<IMethodSection>.GetEnumerator()
{
for (var i = 0; i < Count; i++)
{
yield return BaseGet(i) as IMethodSection;
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
IMethodSection IExtension.this[string index]
{
get { return this[index]; }
}
}
}
using System;
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.BaseRest
{
[ConfigurationCollection(typeof(ExtensionElement), CollectionType = ConfigurationElementCollectionType.BasicMapAlternate)]
internal class ExtensionElement : ConfigurationElementCollection, IEnumerable<IMethodSection>, IExtension
{
const string KeyAlias = "alias";
const string KeyType = "type";
const string KeyMethod = "method";
[ConfigurationProperty(KeyAlias, IsKey = true, IsRequired = true)]
public string Alias
{
get { return (string)base[KeyAlias]; }
}
[ConfigurationProperty(KeyType, IsKey = false, IsRequired = true)]
public string Type
{
get { return (string)base[KeyType]; }
}
public override ConfigurationElementCollectionType CollectionType
{
get { return ConfigurationElementCollectionType.BasicMapAlternate; }
}
protected override string ElementName
{
get { return KeyMethod; }
}
protected override bool IsElementName(string elementName)
{
return elementName.Equals(KeyMethod, StringComparison.InvariantCultureIgnoreCase);
}
protected override ConfigurationElement CreateNewElement()
{
return new MethodElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((MethodElement)element).Name;
}
public override bool IsReadOnly()
{
return false;
}
new public MethodElement this[string index]
{
get { return (MethodElement)BaseGet(index); }
}
IEnumerator<IMethodSection> IEnumerable<IMethodSection>.GetEnumerator()
{
for (var i = 0; i < Count; i++)
{
yield return BaseGet(i) as IMethodSection;
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
IMethodSection IExtension.this[string index]
{
get { return this[index]; }
}
}
}
@@ -1,70 +1,70 @@
using System;
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.BaseRest
{
public interface IExtensionsCollection : IEnumerable<IExtension>
{
IExtension this[string index] { get; }
}
[ConfigurationCollection(typeof(ExtensionElement), CollectionType = ConfigurationElementCollectionType.BasicMapAlternate)]
internal class ExtensionElementCollection : ConfigurationElementCollection, IExtensionsCollection
{
const string KeyExtension = "extension";
public override ConfigurationElementCollectionType CollectionType
{
get { return ConfigurationElementCollectionType.BasicMapAlternate; }
}
protected override string ElementName
{
get { return KeyExtension; }
}
protected override bool IsElementName(string elementName)
{
return elementName.Equals(KeyExtension, StringComparison.InvariantCultureIgnoreCase);
}
protected override ConfigurationElement CreateNewElement()
{
return new ExtensionElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((ExtensionElement)element).Alias;
}
public override bool IsReadOnly()
{
return false;
}
new public ExtensionElement this[string index]
{
get { return (ExtensionElement)BaseGet(index); }
}
IEnumerator<IExtension> IEnumerable<IExtension>.GetEnumerator()
{
for (var i = 0; i < Count; i++)
{
yield return BaseGet(i) as IExtension;
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
IExtension IExtensionsCollection.this[string index]
{
get { return this[index]; }
}
}
}
using System;
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.BaseRest
{
public interface IExtensionsCollection : IEnumerable<IExtension>
{
IExtension this[string index] { get; }
}
[ConfigurationCollection(typeof(ExtensionElement), CollectionType = ConfigurationElementCollectionType.BasicMapAlternate)]
internal class ExtensionElementCollection : ConfigurationElementCollection, IExtensionsCollection
{
const string KeyExtension = "extension";
public override ConfigurationElementCollectionType CollectionType
{
get { return ConfigurationElementCollectionType.BasicMapAlternate; }
}
protected override string ElementName
{
get { return KeyExtension; }
}
protected override bool IsElementName(string elementName)
{
return elementName.Equals(KeyExtension, StringComparison.InvariantCultureIgnoreCase);
}
protected override ConfigurationElement CreateNewElement()
{
return new ExtensionElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((ExtensionElement)element).Alias;
}
public override bool IsReadOnly()
{
return false;
}
new public ExtensionElement this[string index]
{
get { return (ExtensionElement)BaseGet(index); }
}
IEnumerator<IExtension> IEnumerable<IExtension>.GetEnumerator()
{
for (var i = 0; i < Count; i++)
{
yield return BaseGet(i) as IExtension;
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
IExtension IExtensionsCollection.this[string index]
{
get { return this[index]; }
}
}
}
@@ -1,14 +1,14 @@
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.BaseRest
{
public interface IBaseRestSection
{
IExtensionsCollection Items { get; }
/// <summary>
/// Gets a value indicating whether base rest extensions are enabled.
/// </summary>
bool Enabled { get; }
}
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.BaseRest
{
public interface IBaseRestSection
{
IExtensionsCollection Items { get; }
/// <summary>
/// Gets a value indicating whether base rest extensions are enabled.
/// </summary>
bool Enabled { get; }
}
}
@@ -1,11 +1,11 @@
namespace Umbraco.Core.Configuration.BaseRest
{
public interface IExtension
{
string Alias { get; }
string Type { get; }
IMethodSection this[string index] { get; }
}
namespace Umbraco.Core.Configuration.BaseRest
{
public interface IExtension
{
string Alias { get; }
string Type { get; }
IMethodSection this[string index] { get; }
}
}
@@ -1,17 +1,17 @@
namespace Umbraco.Core.Configuration.BaseRest
{
public interface IMethodSection
{
string Name { get; }
bool AllowAll { get; }
string AllowGroup { get; }
string AllowType { get; }
string AllowMember { get; }
bool ReturnXml { get; }
}
namespace Umbraco.Core.Configuration.BaseRest
{
public interface IMethodSection
{
string Name { get; }
bool AllowAll { get; }
string AllowGroup { get; }
string AllowType { get; }
string AllowMember { get; }
bool ReturnXml { get; }
}
}
@@ -1,50 +1,50 @@
using System.Configuration;
namespace Umbraco.Core.Configuration.BaseRest
{
internal class MethodElement : ConfigurationElement, IMethodSection
{
const string KeyName = "name";
const string KeyAllowAll = "allowAll";
const string KeyAllowGroup = "allowGroup";
const string KeyAllowType = "allowType";
const string KeyAllowMember = "allowMember";
const string KeyReturnXml = "returnXml";
[ConfigurationProperty(KeyName, IsKey = true, IsRequired = true)]
public string Name
{
get { return (string)base[KeyName]; }
}
[ConfigurationProperty(KeyAllowAll, IsKey = false, IsRequired = false, DefaultValue = false)]
public bool AllowAll
{
get { return (bool)base[KeyAllowAll]; }
}
[ConfigurationProperty(KeyAllowGroup, IsKey = false, IsRequired = false, DefaultValue = null)]
public string AllowGroup
{
get { return (string)base[KeyAllowGroup]; }
}
[ConfigurationProperty(KeyAllowType, IsKey = false, IsRequired = false, DefaultValue = null)]
public string AllowType
{
get { return (string)base[KeyAllowType]; }
}
[ConfigurationProperty(KeyAllowMember, IsKey = false, IsRequired = false, DefaultValue = null)]
public string AllowMember
{
get { return (string)base[KeyAllowMember]; }
}
[ConfigurationProperty(KeyReturnXml, IsKey = false, IsRequired = false, DefaultValue = true)]
public bool ReturnXml
{
get { return (bool)base[KeyReturnXml]; }
}
}
}
using System.Configuration;
namespace Umbraco.Core.Configuration.BaseRest
{
internal class MethodElement : ConfigurationElement, IMethodSection
{
const string KeyName = "name";
const string KeyAllowAll = "allowAll";
const string KeyAllowGroup = "allowGroup";
const string KeyAllowType = "allowType";
const string KeyAllowMember = "allowMember";
const string KeyReturnXml = "returnXml";
[ConfigurationProperty(KeyName, IsKey = true, IsRequired = true)]
public string Name
{
get { return (string)base[KeyName]; }
}
[ConfigurationProperty(KeyAllowAll, IsKey = false, IsRequired = false, DefaultValue = false)]
public bool AllowAll
{
get { return (bool)base[KeyAllowAll]; }
}
[ConfigurationProperty(KeyAllowGroup, IsKey = false, IsRequired = false, DefaultValue = null)]
public string AllowGroup
{
get { return (string)base[KeyAllowGroup]; }
}
[ConfigurationProperty(KeyAllowType, IsKey = false, IsRequired = false, DefaultValue = null)]
public string AllowType
{
get { return (string)base[KeyAllowType]; }
}
[ConfigurationProperty(KeyAllowMember, IsKey = false, IsRequired = false, DefaultValue = null)]
public string AllowMember
{
get { return (string)base[KeyAllowMember]; }
}
[ConfigurationProperty(KeyReturnXml, IsKey = false, IsRequired = false, DefaultValue = true)]
public bool ReturnXml
{
get { return (bool)base[KeyReturnXml]; }
}
}
}
@@ -30,7 +30,7 @@ namespace Umbraco.Core.Configuration
int oldVersion;
int.TryParse(versionAttribute.Value, out oldVersion);
var newVersion = oldVersion + 1;
var newVersion = oldVersion + 100;
versionAttribute.SetValue(newVersion);
clientDependencyConfigXml.Save(_fileName, SaveOptions.DisableFormatting);
@@ -1,70 +1,70 @@
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Configuration;
namespace Umbraco.Core.Configuration
{
/// <summary>
/// Defines a configuration section that contains inner text that is comma delimited
/// </summary>
internal class CommaDelimitedConfigurationElement : InnerTextConfigurationElement<CommaDelimitedStringCollection>, IEnumerable<string>
{
public override CommaDelimitedStringCollection Value
{
get
{
var converter = new CommaDelimitedStringCollectionConverter();
return (CommaDelimitedStringCollection) converter.ConvertFrom(RawValue);
}
}
IEnumerator<string> IEnumerable<string>.GetEnumerator()
{
return new InnerEnumerator(Value.GetEnumerator());
}
IEnumerator IEnumerable.GetEnumerator()
{
return new InnerEnumerator(Value.GetEnumerator());
}
/// <summary>
/// A wrapper for StringEnumerator since it doesn't explicitly implement IEnumerable
/// </summary>
private class InnerEnumerator : IEnumerator<string>
{
private readonly StringEnumerator _stringEnumerator;
public InnerEnumerator(StringEnumerator stringEnumerator)
{
_stringEnumerator = stringEnumerator;
}
public bool MoveNext()
{
return _stringEnumerator.MoveNext();
}
public void Reset()
{
_stringEnumerator.Reset();
}
string IEnumerator<string>.Current
{
get { return _stringEnumerator.Current; }
}
public object Current
{
get { return _stringEnumerator.Current; }
}
public void Dispose()
{
ObjectExtensions.DisposeIfDisposable(_stringEnumerator);
}
}
}
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Configuration;
namespace Umbraco.Core.Configuration
{
/// <summary>
/// Defines a configuration section that contains inner text that is comma delimited
/// </summary>
internal class CommaDelimitedConfigurationElement : InnerTextConfigurationElement<CommaDelimitedStringCollection>, IEnumerable<string>
{
public override CommaDelimitedStringCollection Value
{
get
{
var converter = new CommaDelimitedStringCollectionConverter();
return (CommaDelimitedStringCollection) converter.ConvertFrom(RawValue);
}
}
IEnumerator<string> IEnumerable<string>.GetEnumerator()
{
return new InnerEnumerator(Value.GetEnumerator());
}
IEnumerator IEnumerable.GetEnumerator()
{
return new InnerEnumerator(Value.GetEnumerator());
}
/// <summary>
/// A wrapper for StringEnumerator since it doesn't explicitly implement IEnumerable
/// </summary>
private class InnerEnumerator : IEnumerator<string>
{
private readonly StringEnumerator _stringEnumerator;
public InnerEnumerator(StringEnumerator stringEnumerator)
{
_stringEnumerator = stringEnumerator;
}
public bool MoveNext()
{
return _stringEnumerator.MoveNext();
}
public void Reset()
{
_stringEnumerator.Reset();
}
string IEnumerator<string>.Current
{
get { return _stringEnumerator.Current; }
}
public object Current
{
get { return _stringEnumerator.Current; }
}
public void Dispose()
{
ObjectExtensions.DisposeIfDisposable(_stringEnumerator);
}
}
}
}
@@ -1,34 +1,34 @@
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class AccessElement : RawXmlConfigurationElement, IAccess
{
public AccessElement()
{
}
public AccessElement(XElement rawXml)
:base(rawXml)
{
}
public IEnumerable<IAccessItem> Rules
{
get
{
var result = new List<AccessItem>();
if (RawXml != null)
{
result.AddRange(RawXml.Elements("deny").Select(x => new AccessItem {Action = AccessType.Deny, Value = x.Value }));
result.AddRange(RawXml.Elements("grant").Select(x => new AccessItem { Action = AccessType.Grant, Value = x.Value }));
result.AddRange(RawXml.Elements("grantBySection").Select(x => new AccessItem { Action = AccessType.GrantBySection, Value = x.Value }));
}
return result;
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class AccessElement : RawXmlConfigurationElement, IAccess
{
public AccessElement()
{
}
public AccessElement(XElement rawXml)
:base(rawXml)
{
}
public IEnumerable<IAccessItem> Rules
{
get
{
var result = new List<AccessItem>();
if (RawXml != null)
{
result.AddRange(RawXml.Elements("deny").Select(x => new AccessItem {Action = AccessType.Deny, Value = x.Value }));
result.AddRange(RawXml.Elements("grant").Select(x => new AccessItem { Action = AccessType.Grant, Value = x.Value }));
result.AddRange(RawXml.Elements("grantBySection").Select(x => new AccessItem { Action = AccessType.GrantBySection, Value = x.Value }));
}
return result;
}
}
}
}
@@ -1,15 +1,15 @@
namespace Umbraco.Core.Configuration.Dashboard
{
internal class AccessItem : IAccessItem
{
/// <summary>
/// This can be grant, deny or grantBySection
/// </summary>
public AccessType Action { get; set; }
/// <summary>
/// The value of the action
/// </summary>
public string Value { get; set; }
}
namespace Umbraco.Core.Configuration.Dashboard
{
internal class AccessItem : IAccessItem
{
/// <summary>
/// This can be grant, deny or grantBySection
/// </summary>
public AccessType Action { get; set; }
/// <summary>
/// The value of the action
/// </summary>
public string Value { get; set; }
}
}
@@ -1,9 +1,9 @@
namespace Umbraco.Core.Configuration.Dashboard
{
public enum AccessType
{
Grant,
Deny,
GrantBySection
}
namespace Umbraco.Core.Configuration.Dashboard
{
public enum AccessType
{
Grant,
Deny,
GrantBySection
}
}
@@ -1,32 +1,32 @@
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class AreaCollection : ConfigurationElementCollection, IEnumerable<IArea>
{
protected override ConfigurationElement CreateNewElement()
{
return new AreaElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((AreaElement) element).Value;
}
IEnumerator<IArea> IEnumerable<IArea>.GetEnumerator()
{
for (var i = 0; i < Count; i++)
{
yield return BaseGet(i) as IArea;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class AreaCollection : ConfigurationElementCollection, IEnumerable<IArea>
{
protected override ConfigurationElement CreateNewElement()
{
return new AreaElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((AreaElement) element).Value;
}
IEnumerator<IArea> IEnumerable<IArea>.GetEnumerator()
{
for (var i = 0; i < Count; i++)
{
yield return BaseGet(i) as IArea;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
}
@@ -1,12 +1,12 @@
using System.Configuration;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class AreaElement : InnerTextConfigurationElement<string>, IArea
{
string IArea.AreaName
{
get { return Value; }
}
}
using System.Configuration;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class AreaElement : InnerTextConfigurationElement<string>, IArea
{
string IArea.AreaName
{
get { return Value; }
}
}
}
@@ -1,15 +1,15 @@
using System.Configuration;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class AreasElement : ConfigurationElement
{
[ConfigurationCollection(typeof(SectionCollection), AddItemName = "area")]
[ConfigurationProperty("", IsDefaultCollection = true)]
public AreaCollection AreaCollection
{
get { return (AreaCollection)base[""]; }
set { base[""] = value; }
}
}
using System.Configuration;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class AreasElement : ConfigurationElement
{
[ConfigurationCollection(typeof(SectionCollection), AddItemName = "area")]
[ConfigurationProperty("", IsDefaultCollection = true)]
public AreaCollection AreaCollection
{
get { return (AreaCollection)base[""]; }
set { base[""] = value; }
}
}
}
@@ -1,37 +1,37 @@
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class ControlCollection : ConfigurationElementCollection, IEnumerable<IDashboardControl>
{
internal void Add(ControlElement c)
{
BaseAdd(c);
}
protected override ConfigurationElement CreateNewElement()
{
return new ControlElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((ControlElement)element).ControlPath;
}
IEnumerator<IDashboardControl> IEnumerable<IDashboardControl>.GetEnumerator()
{
for (var i = 0; i < Count; i++)
{
yield return BaseGet(i) as IDashboardControl;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class ControlCollection : ConfigurationElementCollection, IEnumerable<IDashboardControl>
{
internal void Add(ControlElement c)
{
BaseAdd(c);
}
protected override ConfigurationElement CreateNewElement()
{
return new ControlElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((ControlElement)element).ControlPath;
}
IEnumerator<IDashboardControl> IEnumerable<IDashboardControl>.GetEnumerator()
{
for (var i = 0; i < Count; i++)
{
yield return BaseGet(i) as IDashboardControl;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
}
@@ -1,74 +1,74 @@
using System;
using System.Configuration;
using System.Linq;
using System.Xml.Linq;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class ControlElement : RawXmlConfigurationElement, IDashboardControl
{
public bool ShowOnce
{
get
{
return RawXml.Attribute("showOnce") == null
? false
: bool.Parse(RawXml.Attribute("showOnce").Value);
}
}
public bool AddPanel
{
get
{
return RawXml.Attribute("addPanel") == null
? true
: bool.Parse(RawXml.Attribute("addPanel").Value);
}
}
public string PanelCaption
{
get
{
return RawXml.Attribute("panelCaption") == null
? ""
: RawXml.Attribute("panelCaption").Value;
}
}
public AccessElement Access
{
get
{
var access = RawXml.Element("access");
if (access == null)
{
return new AccessElement();
}
return new AccessElement(access);
}
}
public string ControlPath
{
get
{
//we need to return the first (and only) text element of the children (wtf... who designed this configuration ! :P )
var txt = RawXml.Nodes().OfType<XText>().FirstOrDefault();
if (txt == null)
{
throw new ConfigurationErrorsException("The control element must contain a text node indicating the control path");
}
return txt.Value.Trim();
}
}
IAccess IDashboardControl.AccessRights
{
get { return Access; }
}
}
using System;
using System.Configuration;
using System.Linq;
using System.Xml.Linq;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class ControlElement : RawXmlConfigurationElement, IDashboardControl
{
public bool ShowOnce
{
get
{
return RawXml.Attribute("showOnce") == null
? false
: bool.Parse(RawXml.Attribute("showOnce").Value);
}
}
public bool AddPanel
{
get
{
return RawXml.Attribute("addPanel") == null
? true
: bool.Parse(RawXml.Attribute("addPanel").Value);
}
}
public string PanelCaption
{
get
{
return RawXml.Attribute("panelCaption") == null
? ""
: RawXml.Attribute("panelCaption").Value;
}
}
public AccessElement Access
{
get
{
var access = RawXml.Element("access");
if (access == null)
{
return new AccessElement();
}
return new AccessElement(access);
}
}
public string ControlPath
{
get
{
//we need to return the first (and only) text element of the children (wtf... who designed this configuration ! :P )
var txt = RawXml.Nodes().OfType<XText>().FirstOrDefault();
if (txt == null)
{
throw new ConfigurationErrorsException("The control element must contain a text node indicating the control path");
}
return txt.Value.Trim();
}
}
IAccess IDashboardControl.AccessRights
{
get { return Access; }
}
}
}
@@ -1,24 +1,24 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Text;
using System.Threading.Tasks;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class DashboardSection : ConfigurationSection, IDashboardSection
{
[ConfigurationCollection(typeof(SectionCollection), AddItemName = "section")]
[ConfigurationProperty("", IsDefaultCollection = true)]
public SectionCollection SectionCollection
{
get { return (SectionCollection)base[""]; }
set { base[""] = value; }
}
IEnumerable<ISection> IDashboardSection.Sections
{
get { return SectionCollection; }
}
}
}
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Text;
using System.Threading.Tasks;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class DashboardSection : ConfigurationSection, IDashboardSection
{
[ConfigurationCollection(typeof(SectionCollection), AddItemName = "section")]
[ConfigurationProperty("", IsDefaultCollection = true)]
public SectionCollection SectionCollection
{
get { return (SectionCollection)base[""]; }
set { base[""] = value; }
}
IEnumerable<ISection> IDashboardSection.Sections
{
get { return SectionCollection; }
}
}
}
@@ -1,9 +1,9 @@
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.Dashboard
{
public interface IAccess
{
IEnumerable<IAccessItem> Rules { get; }
}
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.Dashboard
{
public interface IAccess
{
IEnumerable<IAccessItem> Rules { get; }
}
}
@@ -1,15 +1,15 @@
namespace Umbraco.Core.Configuration.Dashboard
{
public interface IAccessItem
{
/// <summary>
/// This can be grant, deny or grantBySection
/// </summary>
AccessType Action { get; set; }
/// <summary>
/// The value of the action
/// </summary>
string Value { get; set; }
}
namespace Umbraco.Core.Configuration.Dashboard
{
public interface IAccessItem
{
/// <summary>
/// This can be grant, deny or grantBySection
/// </summary>
AccessType Action { get; set; }
/// <summary>
/// The value of the action
/// </summary>
string Value { get; set; }
}
}
@@ -1,7 +1,7 @@
namespace Umbraco.Core.Configuration.Dashboard
{
public interface IArea
{
string AreaName { get; }
}
namespace Umbraco.Core.Configuration.Dashboard
{
public interface IArea
{
string AreaName { get; }
}
}
@@ -1,15 +1,15 @@
namespace Umbraco.Core.Configuration.Dashboard
{
public interface IDashboardControl
{
bool ShowOnce { get; }
bool AddPanel { get; }
string PanelCaption { get; }
string ControlPath { get; }
IAccess AccessRights { get; }
}
namespace Umbraco.Core.Configuration.Dashboard
{
public interface IDashboardControl
{
bool ShowOnce { get; }
bool AddPanel { get; }
string PanelCaption { get; }
string ControlPath { get; }
IAccess AccessRights { get; }
}
}
@@ -1,9 +1,9 @@
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.Dashboard
{
public interface IDashboardSection
{
IEnumerable<ISection> Sections { get; }
}
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.Dashboard
{
public interface IDashboardSection
{
IEnumerable<ISection> Sections { get; }
}
}
@@ -1,13 +1,13 @@
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.Dashboard
{
public interface IDashboardTab
{
string Caption { get; }
IEnumerable<IDashboardControl> Controls { get; }
IAccess AccessRights { get; }
}
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.Dashboard
{
public interface IDashboardTab
{
string Caption { get; }
IEnumerable<IDashboardControl> Controls { get; }
IAccess AccessRights { get; }
}
}
@@ -1,15 +1,15 @@
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.Dashboard
{
public interface ISection
{
string Alias { get; }
IEnumerable<string> Areas { get; }
IEnumerable<IDashboardTab> Tabs { get; }
IAccess AccessRights { get; }
}
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.Dashboard
{
public interface ISection
{
string Alias { get; }
IEnumerable<string> Areas { get; }
IEnumerable<IDashboardTab> Tabs { get; }
IAccess AccessRights { get; }
}
}
@@ -1,37 +1,37 @@
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class SectionCollection : ConfigurationElementCollection, IEnumerable<ISection>
{
internal void Add(SectionElement c)
{
BaseAdd(c);
}
protected override ConfigurationElement CreateNewElement()
{
return new SectionElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((SectionElement)element).Alias;
}
IEnumerator<ISection> IEnumerable<ISection>.GetEnumerator()
{
for (var i = 0; i < Count; i++)
{
yield return BaseGet(i) as ISection;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class SectionCollection : ConfigurationElementCollection, IEnumerable<ISection>
{
internal void Add(SectionElement c)
{
BaseAdd(c);
}
protected override ConfigurationElement CreateNewElement()
{
return new SectionElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((SectionElement)element).Alias;
}
IEnumerator<ISection> IEnumerable<ISection>.GetEnumerator()
{
for (var i = 0; i < Count; i++)
{
yield return BaseGet(i) as ISection;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
}
@@ -1,50 +1,50 @@
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class SectionElement : ConfigurationElement, ISection
{
[ConfigurationProperty("alias", IsRequired = true)]
public string Alias
{
get { return (string) this["alias"]; }
}
[ConfigurationProperty("areas", IsRequired = true)]
public AreasElement Areas
{
get { return (AreasElement)this["areas"]; }
}
[ConfigurationProperty("access")]
public AccessElement Access
{
get { return (AccessElement)this["access"]; }
}
[ConfigurationCollection(typeof(SectionCollection), AddItemName = "tab")]
[ConfigurationProperty("", IsDefaultCollection = true)]
public TabCollection TabCollection
{
get { return (TabCollection)base[""]; }
set { base[""] = value; }
}
IEnumerable<IDashboardTab> ISection.Tabs
{
get { return TabCollection; }
}
IEnumerable<string> ISection.Areas
{
get { return Areas.AreaCollection.Cast<AreaElement>().Select(x => x.Value); }
}
IAccess ISection.AccessRights
{
get { return Access; }
}
}
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class SectionElement : ConfigurationElement, ISection
{
[ConfigurationProperty("alias", IsRequired = true)]
public string Alias
{
get { return (string) this["alias"]; }
}
[ConfigurationProperty("areas", IsRequired = true)]
public AreasElement Areas
{
get { return (AreasElement)this["areas"]; }
}
[ConfigurationProperty("access")]
public AccessElement Access
{
get { return (AccessElement)this["access"]; }
}
[ConfigurationCollection(typeof(SectionCollection), AddItemName = "tab")]
[ConfigurationProperty("", IsDefaultCollection = true)]
public TabCollection TabCollection
{
get { return (TabCollection)base[""]; }
set { base[""] = value; }
}
IEnumerable<IDashboardTab> ISection.Tabs
{
get { return TabCollection; }
}
IEnumerable<string> ISection.Areas
{
get { return Areas.AreaCollection.Cast<AreaElement>().Select(x => x.Value); }
}
IAccess ISection.AccessRights
{
get { return Access; }
}
}
}
@@ -1,37 +1,37 @@
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class TabCollection : ConfigurationElementCollection, IEnumerable<IDashboardTab>
{
internal void Add(TabElement c)
{
BaseAdd(c);
}
protected override ConfigurationElement CreateNewElement()
{
return new TabElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((TabElement)element).Caption;
}
IEnumerator<IDashboardTab> IEnumerable<IDashboardTab>.GetEnumerator()
{
for (var i = 0; i < Count; i++)
{
yield return BaseGet(i) as IDashboardTab;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class TabCollection : ConfigurationElementCollection, IEnumerable<IDashboardTab>
{
internal void Add(TabElement c)
{
BaseAdd(c);
}
protected override ConfigurationElement CreateNewElement()
{
return new TabElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((TabElement)element).Caption;
}
IEnumerator<IDashboardTab> IEnumerable<IDashboardTab>.GetEnumerator()
{
for (var i = 0; i < Count; i++)
{
yield return BaseGet(i) as IDashboardTab;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
}
@@ -1,38 +1,38 @@
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class TabElement : ConfigurationElement, IDashboardTab
{
[ConfigurationProperty("caption", IsRequired = true)]
public string Caption
{
get { return (string)this["caption"]; }
}
[ConfigurationProperty("access")]
public AccessElement Access
{
get { return (AccessElement)this["access"]; }
}
[ConfigurationCollection(typeof(ControlCollection), AddItemName = "control")]
[ConfigurationProperty("", IsDefaultCollection = true)]
public ControlCollection ControlCollection
{
get { return (ControlCollection)base[""]; }
set { base[""] = value; }
}
IEnumerable<IDashboardControl> IDashboardTab.Controls
{
get { return ControlCollection; }
}
IAccess IDashboardTab.AccessRights
{
get { return Access; }
}
}
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.Dashboard
{
internal class TabElement : ConfigurationElement, IDashboardTab
{
[ConfigurationProperty("caption", IsRequired = true)]
public string Caption
{
get { return (string)this["caption"]; }
}
[ConfigurationProperty("access")]
public AccessElement Access
{
get { return (AccessElement)this["access"]; }
}
[ConfigurationCollection(typeof(ControlCollection), AddItemName = "control")]
[ConfigurationProperty("", IsDefaultCollection = true)]
public ControlCollection ControlCollection
{
get { return (ControlCollection)base[""]; }
set { base[""] = value; }
}
IEnumerable<IDashboardControl> IDashboardTab.Controls
{
get { return ControlCollection; }
}
IAccess IDashboardTab.AccessRights
{
get { return Access; }
}
}
}
@@ -268,7 +268,7 @@ namespace Umbraco.Core.Configuration
/// <param name="value">Value of the setting to be saved.</param>
internal static void SaveSetting(string key, string value)
{
var fileName = IOHelper.MapPath(string.Format("{0}/appSettings.config", SystemDirectories.Config));
var fileName = IOHelper.MapPath(string.Format("{0}/web.config", SystemDirectories.Root));
var xml = XDocument.Load(fileName, LoadOptions.PreserveWhitespace);
var appSettings = xml.Root.DescendantsAndSelf("appSettings").Single();
@@ -290,7 +290,7 @@ namespace Umbraco.Core.Configuration
/// <param name="key">Key of the setting to be removed.</param>
internal static void RemoveSetting(string key)
{
var fileName = IOHelper.MapPath(string.Format("{0}/appSettings.config", SystemDirectories.Config));
var fileName = IOHelper.MapPath(string.Format("{0}/web.config", SystemDirectories.Root));
var xml = XDocument.Load(fileName, LoadOptions.PreserveWhitespace);
var appSettings = xml.Root.DescendantsAndSelf("appSettings").Single();
@@ -697,8 +697,12 @@ namespace Umbraco.Core.Configuration
StartsWithContainer _newReservedList = new StartsWithContainer();
foreach (string reservedUrl in _reservedUrlsCache.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries))
{
if (string.IsNullOrWhiteSpace(reservedUrl))
continue;
//resolves the url to support tilde chars
string reservedUrlTrimmed = IOHelper.ResolveUrl(reservedUrl).Trim().ToLower();
string reservedUrlTrimmed = IOHelper.ResolveUrl(reservedUrl.Trim()).Trim().ToLower();
if (reservedUrlTrimmed.Length > 0)
_newReservedList.Add(reservedUrlTrimmed);
}
@@ -706,8 +710,11 @@ namespace Umbraco.Core.Configuration
foreach (string reservedPath in _reservedPathsCache.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries))
{
bool trimEnd = !reservedPath.EndsWith("/");
if (string.IsNullOrWhiteSpace(reservedPath))
continue;
//resolves the url to support tilde chars
string reservedPathTrimmed = IOHelper.ResolveUrl(reservedPath).Trim().ToLower();
string reservedPathTrimmed = IOHelper.ResolveUrl(reservedPath.Trim()).Trim().ToLower();
if (reservedPathTrimmed.Length > 0)
_newReservedList.Add(reservedPathTrimmed + (reservedPathTrimmed.EndsWith("/") ? "" : "/"));
@@ -1,69 +1,69 @@
using System;
using System.Xml;
using System.Xml.Linq;
namespace Umbraco.Core.Configuration
{
/// <summary>
/// A full config section is required for any full element and we have some elements that are defined like this:
/// {element}MyValue{/element} instead of as attribute values.
/// </summary>
/// <typeparam name="T"></typeparam>
internal class InnerTextConfigurationElement<T> : RawXmlConfigurationElement
{
public InnerTextConfigurationElement()
{
}
public InnerTextConfigurationElement(XElement rawXml) : base(rawXml)
{
}
protected override void DeserializeElement(XmlReader reader, bool serializeCollectionKey)
{
base.DeserializeElement(reader, serializeCollectionKey);
//now validate and set the raw value
if (RawXml.HasElements)
throw new InvalidOperationException("An InnerTextConfigurationElement cannot contain any child elements, only attributes and a value");
RawValue = RawXml.Value.Trim();
//RawValue = reader.ReadElementContentAsString();
}
public virtual T Value
{
get
{
var converted = ObjectExtensions.TryConvertTo<T>(RawValue);
if (converted.Success == false)
throw new InvalidCastException("Could not convert value " + RawValue + " to type " + typeof(T));
return converted.Result;
}
}
/// <summary>
/// Exposes the raw string value
/// </summary>
internal string RawValue { get; set; }
/// <summary>
/// Implicit operator so we don't need to use the 'Value' property explicitly
/// </summary>
/// <param name="m"></param>
/// <returns></returns>
public static implicit operator T(InnerTextConfigurationElement<T> m)
{
return m.Value;
}
/// <summary>
/// Return the string value of Value
/// </summary>
/// <returns></returns>
public override string ToString()
{
return string.Format("{0}", Value);
}
}
using System;
using System.Xml;
using System.Xml.Linq;
namespace Umbraco.Core.Configuration
{
/// <summary>
/// A full config section is required for any full element and we have some elements that are defined like this:
/// {element}MyValue{/element} instead of as attribute values.
/// </summary>
/// <typeparam name="T"></typeparam>
internal class InnerTextConfigurationElement<T> : RawXmlConfigurationElement
{
public InnerTextConfigurationElement()
{
}
public InnerTextConfigurationElement(XElement rawXml) : base(rawXml)
{
}
protected override void DeserializeElement(XmlReader reader, bool serializeCollectionKey)
{
base.DeserializeElement(reader, serializeCollectionKey);
//now validate and set the raw value
if (RawXml.HasElements)
throw new InvalidOperationException("An InnerTextConfigurationElement cannot contain any child elements, only attributes and a value");
RawValue = RawXml.Value.Trim();
//RawValue = reader.ReadElementContentAsString();
}
public virtual T Value
{
get
{
var converted = ObjectExtensions.TryConvertTo<T>(RawValue);
if (converted.Success == false)
throw new InvalidCastException("Could not convert value " + RawValue + " to type " + typeof(T));
return converted.Result;
}
}
/// <summary>
/// Exposes the raw string value
/// </summary>
internal string RawValue { get; set; }
/// <summary>
/// Implicit operator so we don't need to use the 'Value' property explicitly
/// </summary>
/// <param name="m"></param>
/// <returns></returns>
public static implicit operator T(InnerTextConfigurationElement<T> m)
{
return m.Value;
}
/// <summary>
/// Return the string value of Value
/// </summary>
/// <returns></returns>
public override string ToString()
{
return string.Format("{0}", Value);
}
}
}
@@ -1,43 +1,43 @@
using System.Configuration;
using Umbraco.Core.Configuration.UmbracoSettings;
namespace Umbraco.Core.Configuration
{
/// <summary>
/// Used for specifying default values for comma delimited config
/// </summary>
internal class OptionalCommaDelimitedConfigurationElement : CommaDelimitedConfigurationElement
{
private readonly CommaDelimitedConfigurationElement _wrapped;
private readonly string[] _defaultValue;
public OptionalCommaDelimitedConfigurationElement()
{
}
public OptionalCommaDelimitedConfigurationElement(CommaDelimitedConfigurationElement wrapped, string[] defaultValue)
{
_wrapped = wrapped;
_defaultValue = defaultValue;
}
public override CommaDelimitedStringCollection Value
{
get
{
if (_wrapped == null)
{
return base.Value;
}
if (string.IsNullOrEmpty(_wrapped.RawValue))
{
var val = new CommaDelimitedStringCollection();
val.AddRange(_defaultValue);
return val;
}
return _wrapped.Value;
}
}
}
using System.Configuration;
using Umbraco.Core.Configuration.UmbracoSettings;
namespace Umbraco.Core.Configuration
{
/// <summary>
/// Used for specifying default values for comma delimited config
/// </summary>
internal class OptionalCommaDelimitedConfigurationElement : CommaDelimitedConfigurationElement
{
private readonly CommaDelimitedConfigurationElement _wrapped;
private readonly string[] _defaultValue;
public OptionalCommaDelimitedConfigurationElement()
{
}
public OptionalCommaDelimitedConfigurationElement(CommaDelimitedConfigurationElement wrapped, string[] defaultValue)
{
_wrapped = wrapped;
_defaultValue = defaultValue;
}
public override CommaDelimitedStringCollection Value
{
get
{
if (_wrapped == null)
{
return base.Value;
}
if (string.IsNullOrEmpty(_wrapped.RawValue))
{
var val = new CommaDelimitedStringCollection();
val.AddRange(_defaultValue);
return val;
}
return _wrapped.Value;
}
}
}
}
@@ -1,23 +1,23 @@
namespace Umbraco.Core.Configuration
{
/// <summary>
/// This is used to supply optional/default values when using InnerTextConfigurationElement
/// </summary>
/// <typeparam name="T"></typeparam>
internal class OptionalInnerTextConfigurationElement<T> : InnerTextConfigurationElement<T>
{
private readonly InnerTextConfigurationElement<T> _wrapped;
private readonly T _defaultValue;
public OptionalInnerTextConfigurationElement(InnerTextConfigurationElement<T> wrapped, T defaultValue)
{
_wrapped = wrapped;
_defaultValue = defaultValue;
}
public override T Value
{
get { return string.IsNullOrEmpty(_wrapped.RawValue) ? _defaultValue : _wrapped.Value; }
}
}
namespace Umbraco.Core.Configuration
{
/// <summary>
/// This is used to supply optional/default values when using InnerTextConfigurationElement
/// </summary>
/// <typeparam name="T"></typeparam>
internal class OptionalInnerTextConfigurationElement<T> : InnerTextConfigurationElement<T>
{
private readonly InnerTextConfigurationElement<T> _wrapped;
private readonly T _defaultValue;
public OptionalInnerTextConfigurationElement(InnerTextConfigurationElement<T> wrapped, T defaultValue)
{
_wrapped = wrapped;
_defaultValue = defaultValue;
}
public override T Value
{
get { return string.IsNullOrEmpty(_wrapped.RawValue) ? _defaultValue : _wrapped.Value; }
}
}
}
@@ -1,30 +1,30 @@
using System.Configuration;
using System.Xml;
using System.Xml.Linq;
namespace Umbraco.Core.Configuration
{
/// <summary>
/// A configuration section that simply exposes the entire raw xml of the section itself which inheritors can use
/// to do with as they please.
/// </summary>
internal abstract class RawXmlConfigurationElement : ConfigurationElement
{
protected RawXmlConfigurationElement()
{
}
protected RawXmlConfigurationElement(XElement rawXml)
{
RawXml = rawXml;
}
protected override void DeserializeElement(XmlReader reader, bool serializeCollectionKey)
{
RawXml = (XElement)XNode.ReadFrom(reader);
}
protected XElement RawXml { get; private set; }
}
using System.Configuration;
using System.Xml;
using System.Xml.Linq;
namespace Umbraco.Core.Configuration
{
/// <summary>
/// A configuration section that simply exposes the entire raw xml of the section itself which inheritors can use
/// to do with as they please.
/// </summary>
internal abstract class RawXmlConfigurationElement : ConfigurationElement
{
protected RawXmlConfigurationElement()
{
}
protected RawXmlConfigurationElement(XElement rawXml)
{
RawXml = rawXml;
}
protected override void DeserializeElement(XmlReader reader, bool serializeCollectionKey)
{
RawXml = (XElement)XNode.ReadFrom(reader);
}
protected XElement RawXml { get; private set; }
}
}
+126 -126
View File
@@ -1,127 +1,127 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Threading;
using Umbraco.Core.Configuration.BaseRest;
using Umbraco.Core.Configuration.Dashboard;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Logging;
namespace Umbraco.Core.Configuration
{
/// <summary>
/// The gateway to all umbraco configuration
/// </summary>
public class UmbracoConfig
{
#region Singleton
private static readonly Lazy<UmbracoConfig> Lazy = new Lazy<UmbracoConfig>(() => new UmbracoConfig());
public static UmbracoConfig For
{
get { return Lazy.Value; }
}
#endregion
/// <summary>
/// Default constructor
/// </summary>
private UmbracoConfig()
{
if (_umbracoSettings == null)
{
var umbracoSettings = ConfigurationManager.GetSection("umbracoConfiguration/settings") as IUmbracoSettingsSection;
if (umbracoSettings == null)
{
LogHelper.Warn<UmbracoConfig>("Could not load the " + typeof(IUmbracoSettingsSection) + " from config file!");
}
SetUmbracoSettings(umbracoSettings);
}
if (_baseRestExtensions == null)
{
var baseRestExtensions = ConfigurationManager.GetSection("umbracoConfiguration/BaseRestExtensions") as IBaseRestSection;
if (baseRestExtensions == null)
{
LogHelper.Warn<UmbracoConfig>("Could not load the " + typeof(IBaseRestSection) + " from config file!");
}
SetBaseRestExtensions(baseRestExtensions);
}
if (_dashboardSection == null)
{
var dashboardConfig = ConfigurationManager.GetSection("umbracoConfiguration/dashBoard") as IDashboardSection;
if (dashboardConfig == null)
{
LogHelper.Warn<UmbracoConfig>("Could not load the " + typeof(IDashboardSection) + " from config file!");
}
SetDashboardSettings(dashboardConfig);
}
}
/// <summary>
/// Constructor - can be used for testing
/// </summary>
/// <param name="umbracoSettings"></param>
/// <param name="baseRestSettings"></param>
/// <param name="dashboardSettings"></param>
public UmbracoConfig(IUmbracoSettingsSection umbracoSettings, IBaseRestSection baseRestSettings, IDashboardSection dashboardSettings)
{
SetUmbracoSettings(umbracoSettings);
SetBaseRestExtensions(baseRestSettings);
SetDashboardSettings(dashboardSettings);
}
private IDashboardSection _dashboardSection;
private IUmbracoSettingsSection _umbracoSettings;
private IBaseRestSection _baseRestExtensions;
/// <summary>
/// Gets the IDashboardSection
/// </summary>
public IDashboardSection DashboardSettings()
{
return _dashboardSection;
}
//ONLY for unit testing
internal void SetDashboardSettings(IDashboardSection value)
{
_dashboardSection = value;
}
//ONLY for unit testing
internal void SetUmbracoSettings(IUmbracoSettingsSection value)
{
_umbracoSettings = value;
}
/// <summary>
/// Gets the IUmbracoSettings
/// </summary>
public IUmbracoSettingsSection UmbracoSettings()
{
return _umbracoSettings;
}
//ONLY for unit testing
public void SetBaseRestExtensions(IBaseRestSection value)
{
_baseRestExtensions = value;
}
/// <summary>
/// Gets the IBaseRestSection
/// </summary>
public IBaseRestSection BaseRestExtensions()
{
return _baseRestExtensions;
}
//TODO: Add other configurations here !
}
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Threading;
using Umbraco.Core.Configuration.BaseRest;
using Umbraco.Core.Configuration.Dashboard;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Logging;
namespace Umbraco.Core.Configuration
{
/// <summary>
/// The gateway to all umbraco configuration
/// </summary>
public class UmbracoConfig
{
#region Singleton
private static readonly Lazy<UmbracoConfig> Lazy = new Lazy<UmbracoConfig>(() => new UmbracoConfig());
public static UmbracoConfig For
{
get { return Lazy.Value; }
}
#endregion
/// <summary>
/// Default constructor
/// </summary>
private UmbracoConfig()
{
if (_umbracoSettings == null)
{
var umbracoSettings = ConfigurationManager.GetSection("umbracoConfiguration/settings") as IUmbracoSettingsSection;
if (umbracoSettings == null)
{
LogHelper.Warn<UmbracoConfig>("Could not load the " + typeof(IUmbracoSettingsSection) + " from config file!");
}
SetUmbracoSettings(umbracoSettings);
}
if (_baseRestExtensions == null)
{
var baseRestExtensions = ConfigurationManager.GetSection("umbracoConfiguration/BaseRestExtensions") as IBaseRestSection;
if (baseRestExtensions == null)
{
LogHelper.Warn<UmbracoConfig>("Could not load the " + typeof(IBaseRestSection) + " from config file!");
}
SetBaseRestExtensions(baseRestExtensions);
}
if (_dashboardSection == null)
{
var dashboardConfig = ConfigurationManager.GetSection("umbracoConfiguration/dashBoard") as IDashboardSection;
if (dashboardConfig == null)
{
LogHelper.Warn<UmbracoConfig>("Could not load the " + typeof(IDashboardSection) + " from config file!");
}
SetDashboardSettings(dashboardConfig);
}
}
/// <summary>
/// Constructor - can be used for testing
/// </summary>
/// <param name="umbracoSettings"></param>
/// <param name="baseRestSettings"></param>
/// <param name="dashboardSettings"></param>
public UmbracoConfig(IUmbracoSettingsSection umbracoSettings, IBaseRestSection baseRestSettings, IDashboardSection dashboardSettings)
{
SetUmbracoSettings(umbracoSettings);
SetBaseRestExtensions(baseRestSettings);
SetDashboardSettings(dashboardSettings);
}
private IDashboardSection _dashboardSection;
private IUmbracoSettingsSection _umbracoSettings;
private IBaseRestSection _baseRestExtensions;
/// <summary>
/// Gets the IDashboardSection
/// </summary>
public IDashboardSection DashboardSettings()
{
return _dashboardSection;
}
//ONLY for unit testing
internal void SetDashboardSettings(IDashboardSection value)
{
_dashboardSection = value;
}
//ONLY for unit testing
internal void SetUmbracoSettings(IUmbracoSettingsSection value)
{
_umbracoSettings = value;
}
/// <summary>
/// Gets the IUmbracoSettings
/// </summary>
public IUmbracoSettingsSection UmbracoSettings()
{
return _umbracoSettings;
}
//ONLY for unit testing
public void SetBaseRestExtensions(IBaseRestSection value)
{
_baseRestExtensions = value;
}
/// <summary>
/// Gets the IBaseRestSection
/// </summary>
public IBaseRestSection BaseRestExtensions()
{
return _baseRestExtensions;
}
//TODO: Add other configurations here !
}
}
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.UmbracoSettings
@@ -26,7 +27,7 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
return new OptionalInnerTextConfigurationElement<bool>(
(InnerTextConfigurationElement<bool>)this["ResolveUrlsFromTextString"],
//set the default
true);
false);
}
}
@@ -217,6 +218,19 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
}
}
[Obsolete("This is here so that if this config element exists we won't get a YSOD, it is not used whatsoever and will be removed in future versions")]
[ConfigurationProperty("DocumentTypeIconList")]
internal InnerTextConfigurationElement<IconPickerBehaviour> DocumentTypeIconList
{
get
{
return new OptionalInnerTextConfigurationElement<IconPickerBehaviour>(
(InnerTextConfigurationElement<IconPickerBehaviour>)this["DocumentTypeIconList"],
//set the default
IconPickerBehaviour.HideFileDuplicates);
}
}
[ConfigurationProperty("disallowedUploadFiles")]
internal CommaDelimitedConfigurationElement DisallowedUploadFiles
{
@@ -380,7 +394,7 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
{
get { return MacroErrors; }
}
IEnumerable<string> IContentSection.DisallowedUploadFiles
{
get { return DisallowedUploadFiles; }
@@ -1,8 +1,8 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IChar
{
string Char { get; }
string Replacement { get; }
}
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IChar
{
string Char { get; }
string Replacement { get; }
}
}
@@ -1,8 +1,8 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IContentErrorPage
{
int ContentId { get; }
string Culture { get; set; }
}
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IContentErrorPage
{
int ContentId { get; }
string Culture { get; set; }
}
}
@@ -1,63 +1,63 @@
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IContentSection : IUmbracoConfigurationSection
{
string NotificationEmailAddress { get; }
bool DisableHtmlEmail { get; }
IEnumerable<string> ImageFileTypes { get; }
IEnumerable<string> ImageTagAllowedAttributes { get; }
IEnumerable<IImagingAutoFillUploadField> ImageAutoFillProperties { get; }
string ScriptFolderPath { get; }
IEnumerable<string> ScriptFileTypes { get; }
bool ScriptEditorDisable { get; }
bool ResolveUrlsFromTextString { get; }
bool UploadAllowDirectories { get; }
IEnumerable<IContentErrorPage> Error404Collection { get; }
bool EnsureUniqueNaming { get; }
bool TidyEditorContent { get; }
string TidyCharEncoding { get; }
bool XmlCacheEnabled { get; }
bool ContinouslyUpdateXmlDiskCache { get; }
bool XmlContentCheckForDiskChanges { get; }
bool EnableSplashWhileLoading { get; }
string PropertyContextHelpOption { get; }
bool UseLegacyXmlSchema { get; }
bool ForceSafeAliases { get; }
string PreviewBadge { get; }
int UmbracoLibraryCacheDuration { get; }
MacroErrorBehaviour MacroErrorBehaviour { get; }
IEnumerable<string> DisallowedUploadFiles { get; }
bool CloneXmlContent { get; }
bool GlobalPreviewStorageEnabled { get; }
string DefaultDocumentTypeProperty { get; }
}
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IContentSection : IUmbracoConfigurationSection
{
string NotificationEmailAddress { get; }
bool DisableHtmlEmail { get; }
IEnumerable<string> ImageFileTypes { get; }
IEnumerable<string> ImageTagAllowedAttributes { get; }
IEnumerable<IImagingAutoFillUploadField> ImageAutoFillProperties { get; }
string ScriptFolderPath { get; }
IEnumerable<string> ScriptFileTypes { get; }
bool ScriptEditorDisable { get; }
bool ResolveUrlsFromTextString { get; }
bool UploadAllowDirectories { get; }
IEnumerable<IContentErrorPage> Error404Collection { get; }
bool EnsureUniqueNaming { get; }
bool TidyEditorContent { get; }
string TidyCharEncoding { get; }
bool XmlCacheEnabled { get; }
bool ContinouslyUpdateXmlDiskCache { get; }
bool XmlContentCheckForDiskChanges { get; }
bool EnableSplashWhileLoading { get; }
string PropertyContextHelpOption { get; }
bool UseLegacyXmlSchema { get; }
bool ForceSafeAliases { get; }
string PreviewBadge { get; }
int UmbracoLibraryCacheDuration { get; }
MacroErrorBehaviour MacroErrorBehaviour { get; }
IEnumerable<string> DisallowedUploadFiles { get; }
bool CloneXmlContent { get; }
bool GlobalPreviewStorageEnabled { get; }
string DefaultDocumentTypeProperty { get; }
}
}
@@ -1,9 +1,9 @@
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IDeveloperSection : IUmbracoConfigurationSection
{
IEnumerable<IFileExtension> AppCodeFileExtensions { get; }
}
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IDeveloperSection : IUmbracoConfigurationSection
{
IEnumerable<IFileExtension> AppCodeFileExtensions { get; }
}
}
@@ -1,13 +1,13 @@
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IDistributedCallSection : IUmbracoConfigurationSection
{
bool Enabled { get; }
int UserId { get; }
IEnumerable<IServer> Servers { get; }
}
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IDistributedCallSection : IUmbracoConfigurationSection
{
bool Enabled { get; }
int UserId { get; }
IEnumerable<IServer> Servers { get; }
}
}
@@ -1,7 +1,7 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IFileExtension
{
string Extension { get; }
}
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IFileExtension
{
string Extension { get; }
}
}
@@ -1,11 +1,11 @@
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IHelpSection : IUmbracoConfigurationSection
{
string DefaultUrl { get; }
IEnumerable<ILink> Links { get; }
}
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IHelpSection : IUmbracoConfigurationSection
{
string DefaultUrl { get; }
IEnumerable<ILink> Links { get; }
}
}
@@ -1,18 +1,18 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IImagingAutoFillUploadField
{
/// <summary>
/// Allow setting internally so we can create a default
/// </summary>
string Alias { get; }
string WidthFieldAlias { get; }
string HeightFieldAlias { get; }
string LengthFieldAlias { get; }
string ExtensionFieldAlias { get; }
}
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IImagingAutoFillUploadField
{
/// <summary>
/// Allow setting internally so we can create a default
/// </summary>
string Alias { get; }
string WidthFieldAlias { get; }
string HeightFieldAlias { get; }
string LengthFieldAlias { get; }
string ExtensionFieldAlias { get; }
}
}
@@ -1,15 +1,15 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface ILink
{
string Application { get; }
string ApplicationUrl { get; }
string Language { get; }
string UserType { get; }
string HelpUrl { get; }
}
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface ILink
{
string Application { get; }
string ApplicationUrl { get; }
string Language { get; }
string UserType { get; }
string HelpUrl { get; }
}
}
@@ -1,7 +1,7 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface ILogType
{
string LogTypeAlias { get; }
}
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface ILogType
{
string LogTypeAlias { get; }
}
}
@@ -1,27 +1,27 @@
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface ILoggingSection : IUmbracoConfigurationSection
{
bool AutoCleanLogs { get; }
bool EnableLogging { get; }
bool EnableAsyncLogging { get; }
int CleaningMiliseconds { get; }
int MaxLogAge { get; }
IEnumerable<ILogType> DisabledLogTypes { get; }
string ExternalLoggerAssembly { get; }
string ExternalLoggerType { get; }
bool ExternalLoggerEnableAuditTrail { get; }
bool ExternalLoggerIsConfigured { get; }
}
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface ILoggingSection : IUmbracoConfigurationSection
{
bool AutoCleanLogs { get; }
bool EnableLogging { get; }
bool EnableAsyncLogging { get; }
int CleaningMiliseconds { get; }
int MaxLogAge { get; }
IEnumerable<ILogType> DisabledLogTypes { get; }
string ExternalLoggerAssembly { get; }
string ExternalLoggerType { get; }
bool ExternalLoggerEnableAuditTrail { get; }
bool ExternalLoggerIsConfigured { get; }
}
}
@@ -1,7 +1,7 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface INotDynamicXmlDocument
{
string Element { get; }
}
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface INotDynamicXmlDocument
{
string Element { get; }
}
}
@@ -1,9 +1,9 @@
using System.Configuration;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IProvidersSection : IUmbracoConfigurationSection
{
string DefaultBackOfficeUserProvider { get; }
}
using System.Configuration;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IProvidersSection : IUmbracoConfigurationSection
{
string DefaultBackOfficeUserProvider { get; }
}
}
@@ -1,12 +1,12 @@
using System;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IRazorStaticMapping
{
Guid DataTypeGuid { get; }
string NodeTypeAlias { get; }
string PropertyTypeAlias { get; }
string MappingName { get; }
}
using System;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IRazorStaticMapping
{
Guid DataTypeGuid { get; }
string NodeTypeAlias { get; }
string PropertyTypeAlias { get; }
string MappingName { get; }
}
}
@@ -1,10 +1,10 @@
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IRepositoriesSection : IUmbracoConfigurationSection
{
IEnumerable<IRepository> Repositories { get; }
}
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IRepositoriesSection : IUmbracoConfigurationSection
{
IEnumerable<IRepository> Repositories { get; }
}
}
@@ -1,13 +1,13 @@
using System;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IRepository
{
string Name { get; }
Guid Id { get; }
string RepositoryUrl { get; }
string WebServiceUrl { get; }
bool HasCustomWebServiceUrl { get; }
}
using System;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IRepository
{
string Name { get; }
Guid Id { get; }
string RepositoryUrl { get; }
string WebServiceUrl { get; }
bool HasCustomWebServiceUrl { get; }
}
}
@@ -1,15 +1,17 @@
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IRequestHandlerSection : IUmbracoConfigurationSection
{
bool UseDomainPrefixes { get; }
bool AddTrailingSlash { get; }
bool RemoveDoubleDashes { get; }
IEnumerable<IChar> CharCollection { get; }
}
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IRequestHandlerSection : IUmbracoConfigurationSection
{
bool UseDomainPrefixes { get; }
bool AddTrailingSlash { get; }
bool RemoveDoubleDashes { get; }
bool ConvertUrlsToAscii { get; }
IEnumerable<IChar> CharCollection { get; }
}
}
@@ -1,13 +1,13 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IScheduledTask
{
string Alias { get; }
bool Log { get; }
int Interval { get; }
string Url { get; }
}
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IScheduledTask
{
string Alias { get; }
bool Log { get; }
int Interval { get; }
string Url { get; }
}
}
@@ -1,9 +1,9 @@
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IScheduledTasksSection : IUmbracoConfigurationSection
{
IEnumerable<IScheduledTask> Tasks { get; }
}
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IScheduledTasksSection : IUmbracoConfigurationSection
{
IEnumerable<IScheduledTask> Tasks { get; }
}
}
@@ -1,11 +1,11 @@
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IScriptingSection : IUmbracoConfigurationSection
{
IEnumerable<INotDynamicXmlDocument> NotDynamicXmlDocumentElements { get; }
IEnumerable<IRazorStaticMapping> DataTypeModelStaticMappings { get; }
}
using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IScriptingSection : IUmbracoConfigurationSection
{
IEnumerable<INotDynamicXmlDocument> NotDynamicXmlDocumentElements { get; }
IEnumerable<IRazorStaticMapping> DataTypeModelStaticMappings { get; }
}
}
@@ -1,13 +1,13 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface ISecuritySection : IUmbracoConfigurationSection
{
bool KeepUserLoggedIn { get; }
bool HideDisabledUsersInBackoffice { get; }
string AuthCookieName { get; }
string AuthCookieDomain { get; }
}
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface ISecuritySection : IUmbracoConfigurationSection
{
bool KeepUserLoggedIn { get; }
bool HideDisabledUsersInBackoffice { get; }
string AuthCookieName { get; }
string AuthCookieDomain { get; }
}
}
@@ -1,9 +1,9 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IServer
{
string ForcePortnumber { get; }
string ForceProtocol { get; }
string ServerAddress { get; }
}
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IServer
{
string ForcePortnumber { get; }
string ForceProtocol { get; }
string ServerAddress { get; }
}
}
@@ -1,13 +1,13 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface ITemplatesSection : IUmbracoConfigurationSection
{
bool UseAspNetMasterPages { get; }
bool EnableSkinSupport { get; }
RenderingEngine DefaultRenderingEngine { get; }
bool EnableTemplateFolders { get; }
}
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface ITemplatesSection : IUmbracoConfigurationSection
{
bool UseAspNetMasterPages { get; }
bool EnableSkinSupport { get; }
RenderingEngine DefaultRenderingEngine { get; }
bool EnableTemplateFolders { get; }
}
}
@@ -1,33 +1,33 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IUmbracoSettingsSection : IUmbracoConfigurationSection
{
IContentSection Content { get; }
ISecuritySection Security { get; }
IRequestHandlerSection RequestHandler { get; }
ITemplatesSection Templates { get; }
IDeveloperSection Developer { get; }
IViewStateMoverModuleSection ViewStateMoverModule { get; }
ILoggingSection Logging { get; }
IScheduledTasksSection ScheduledTasks { get; }
IDistributedCallSection DistributedCall { get; }
IRepositoriesSection PackageRepositories { get; }
IProvidersSection Providers { get; }
IHelpSection Help { get; }
IWebRoutingSection WebRouting { get; }
IScriptingSection Scripting { get; }
}
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IUmbracoSettingsSection : IUmbracoConfigurationSection
{
IContentSection Content { get; }
ISecuritySection Security { get; }
IRequestHandlerSection RequestHandler { get; }
ITemplatesSection Templates { get; }
IDeveloperSection Developer { get; }
IViewStateMoverModuleSection ViewStateMoverModule { get; }
ILoggingSection Logging { get; }
IScheduledTasksSection ScheduledTasks { get; }
IDistributedCallSection DistributedCall { get; }
IRepositoriesSection PackageRepositories { get; }
IProvidersSection Providers { get; }
IHelpSection Help { get; }
IWebRoutingSection WebRouting { get; }
IScriptingSection Scripting { get; }
}
}
@@ -1,7 +1,7 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IViewStateMoverModuleSection : IUmbracoConfigurationSection
{
bool Enable { get; }
}
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IViewStateMoverModuleSection : IUmbracoConfigurationSection
{
bool Enable { get; }
}
}
@@ -1,12 +1,12 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IWebRoutingSection : IUmbracoConfigurationSection
{
bool TrySkipIisCustomErrors { get; }
bool InternalRedirectPreservesTemplate { get; }
string UrlProviderMode { get; }
}
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IWebRoutingSection : IUmbracoConfigurationSection
{
bool TrySkipIisCustomErrors { get; }
bool InternalRedirectPreservesTemplate { get; }
string UrlProviderMode { get; }
}
}
@@ -1,37 +1,37 @@
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
internal class ImagingAutoFillPropertiesCollection : ConfigurationElementCollection, IEnumerable<IImagingAutoFillUploadField>
{
protected override ConfigurationElement CreateNewElement()
{
return new ImagingAutoFillUploadFieldElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((ImagingAutoFillUploadFieldElement)element).Alias;
}
internal void Add(ImagingAutoFillUploadFieldElement item)
{
BaseAdd(item);
}
IEnumerator<IImagingAutoFillUploadField> IEnumerable<IImagingAutoFillUploadField>.GetEnumerator()
{
for (var i = 0; i < Count; i++)
{
yield return BaseGet(i) as IImagingAutoFillUploadField;
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
using System.Collections.Generic;
using System.Configuration;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
internal class ImagingAutoFillPropertiesCollection : ConfigurationElementCollection, IEnumerable<IImagingAutoFillUploadField>
{
protected override ConfigurationElement CreateNewElement()
{
return new ImagingAutoFillUploadFieldElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((ImagingAutoFillUploadFieldElement)element).Alias;
}
internal void Add(ImagingAutoFillUploadFieldElement item)
{
BaseAdd(item);
}
IEnumerator<IImagingAutoFillUploadField> IEnumerable<IImagingAutoFillUploadField>.GetEnumerator()
{
for (var i = 0; i < Count; i++)
{
yield return BaseGet(i) as IImagingAutoFillUploadField;
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
}
@@ -1,91 +1,91 @@
using System.Configuration;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
internal class ImagingAutoFillUploadFieldElement : ConfigurationElement, IImagingAutoFillUploadField
{
/// <summary>
/// Allow setting internally so we can create a default
/// </summary>
[ConfigurationProperty("alias", IsKey = true, IsRequired = true)]
public string Alias
{
get { return (string)this["alias"]; }
set { this["alias"] = value; }
}
[ConfigurationProperty("widthFieldAlias")]
internal InnerTextConfigurationElement<string> WidthFieldAlias
{
get
{
return new OptionalInnerTextConfigurationElement<string>(
(InnerTextConfigurationElement<string>)this["widthFieldAlias"],
//set the default
"umbracoWidth");
}
}
[ConfigurationProperty("heightFieldAlias")]
internal InnerTextConfigurationElement<string> HeightFieldAlias
{
get
{
return new OptionalInnerTextConfigurationElement<string>(
(InnerTextConfigurationElement<string>)this["heightFieldAlias"],
//set the default
"umbracoHeight");
}
}
[ConfigurationProperty("lengthFieldAlias")]
internal InnerTextConfigurationElement<string> LengthFieldAlias
{
get
{
return new OptionalInnerTextConfigurationElement<string>(
(InnerTextConfigurationElement<string>)this["lengthFieldAlias"],
//set the default
"umbracoBytes");
}
}
[ConfigurationProperty("extensionFieldAlias")]
internal InnerTextConfigurationElement<string> ExtensionFieldAlias
{
get
{
return new OptionalInnerTextConfigurationElement<string>(
(InnerTextConfigurationElement<string>)this["extensionFieldAlias"],
//set the default
"umbracoExtension");
}
}
string IImagingAutoFillUploadField.Alias
{
get { return Alias; }
}
string IImagingAutoFillUploadField.WidthFieldAlias
{
get { return WidthFieldAlias; }
}
string IImagingAutoFillUploadField.HeightFieldAlias
{
get { return HeightFieldAlias; }
}
string IImagingAutoFillUploadField.LengthFieldAlias
{
get { return LengthFieldAlias; }
}
string IImagingAutoFillUploadField.ExtensionFieldAlias
{
get { return ExtensionFieldAlias; }
}
}
using System.Configuration;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
internal class ImagingAutoFillUploadFieldElement : ConfigurationElement, IImagingAutoFillUploadField
{
/// <summary>
/// Allow setting internally so we can create a default
/// </summary>
[ConfigurationProperty("alias", IsKey = true, IsRequired = true)]
public string Alias
{
get { return (string)this["alias"]; }
set { this["alias"] = value; }
}
[ConfigurationProperty("widthFieldAlias")]
internal InnerTextConfigurationElement<string> WidthFieldAlias
{
get
{
return new OptionalInnerTextConfigurationElement<string>(
(InnerTextConfigurationElement<string>)this["widthFieldAlias"],
//set the default
"umbracoWidth");
}
}
[ConfigurationProperty("heightFieldAlias")]
internal InnerTextConfigurationElement<string> HeightFieldAlias
{
get
{
return new OptionalInnerTextConfigurationElement<string>(
(InnerTextConfigurationElement<string>)this["heightFieldAlias"],
//set the default
"umbracoHeight");
}
}
[ConfigurationProperty("lengthFieldAlias")]
internal InnerTextConfigurationElement<string> LengthFieldAlias
{
get
{
return new OptionalInnerTextConfigurationElement<string>(
(InnerTextConfigurationElement<string>)this["lengthFieldAlias"],
//set the default
"umbracoBytes");
}
}
[ConfigurationProperty("extensionFieldAlias")]
internal InnerTextConfigurationElement<string> ExtensionFieldAlias
{
get
{
return new OptionalInnerTextConfigurationElement<string>(
(InnerTextConfigurationElement<string>)this["extensionFieldAlias"],
//set the default
"umbracoExtension");
}
}
string IImagingAutoFillUploadField.Alias
{
get { return Alias; }
}
string IImagingAutoFillUploadField.WidthFieldAlias
{
get { return WidthFieldAlias; }
}
string IImagingAutoFillUploadField.HeightFieldAlias
{
get { return HeightFieldAlias; }
}
string IImagingAutoFillUploadField.LengthFieldAlias
{
get { return LengthFieldAlias; }
}
string IImagingAutoFillUploadField.ExtensionFieldAlias
{
get { return ExtensionFieldAlias; }
}
}
}
@@ -121,6 +121,11 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
get { return UrlReplacing.RemoveDoubleDashes; }
}
bool IRequestHandlerSection.ConvertUrlsToAscii
{
get { return UrlReplacing.ConvertUrlsToAscii; }
}
IEnumerable<IChar> IRequestHandlerSection.CharCollection
{
get { return UrlReplacing.CharCollection; }
@@ -36,7 +36,7 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
return new OptionalInnerTextConfigurationElement<string>(
(InnerTextConfigurationElement<string>)this["authCookieName"],
//set the default
"UMB_UCONTEXT");
Constants.Web.AuthCookieName);
}
}
@@ -11,6 +11,12 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
get { return (bool) base["removeDoubleDashes"]; }
}
[ConfigurationProperty("toAscii", DefaultValue = false)]
internal bool ConvertUrlsToAscii
{
get { return (bool)base["toAscii"]; }
}
[ConfigurationCollection(typeof(CharCollection), AddItemName = "char")]
[ConfigurationProperty("", IsDefaultCollection = true)]
internal CharCollection CharCollection
@@ -5,7 +5,7 @@ namespace Umbraco.Core.Configuration
{
public class UmbracoVersion
{
private static readonly Version Version = new Version("7.0.0");
private static readonly Version Version = new Version("7.0.3");
/// <summary>
/// Gets the current version of Umbraco.
@@ -23,7 +23,7 @@ namespace Umbraco.Core.Configuration
/// Gets the version comment (like beta or RC).
/// </summary>
/// <value>The version comment.</value>
public static string CurrentComment { get { return "RC"; } }
public static string CurrentComment { get { return ""; } }
// Get the version of the umbraco.dll by looking at a class in that dll
// Had to do it like this due to medium trust issues, see: http://haacked.com/archive/2010/11/04/assembly-location-and-medium-trust.aspx
+80 -125
View File
@@ -171,131 +171,84 @@ namespace Umbraco.Core
public const string FailedPasswordAttemptsLabel = "Failed Password Attempts";
internal static Dictionary<string, PropertyType>
StandardPropertyTypeStubs = new Dictionary<string, PropertyType>
{
{
Comments,
new PropertyType(
PropertyEditors
.TextboxMultipleAlias,
DataTypeDatabaseType
.Ntext)
{
Alias = Comments,
Name =
CommentsLabel
}
},
{
FailedPasswordAttempts,
new PropertyType(
PropertyEditors
.IntegerAlias,
DataTypeDatabaseType
.Integer)
{
Alias =
FailedPasswordAttempts,
Name =
FailedPasswordAttemptsLabel
}
},
{
IsApproved,
new PropertyType(
PropertyEditors
.TrueFalseAlias,
DataTypeDatabaseType
.Integer)
{
Alias = IsApproved,
Name =
IsApprovedLabel
}
},
{
IsLockedOut,
new PropertyType(
PropertyEditors
.TrueFalseAlias,
DataTypeDatabaseType
.Integer)
{
Alias =
IsLockedOut,
Name =
IsLockedOutLabel
}
},
{
LastLockoutDate,
new PropertyType(
PropertyEditors.DateAlias,
DataTypeDatabaseType
.Date)
{
Alias =
LastLockoutDate,
Name =
LastLockoutDateLabel
}
},
{
LastLoginDate,
new PropertyType(
PropertyEditors.DateAlias,
DataTypeDatabaseType
.Date)
{
Alias =
LastLoginDate,
Name =
LastLoginDateLabel
}
},
{
LastPasswordChangeDate,
new PropertyType(
PropertyEditors.DateAlias,
DataTypeDatabaseType
.Date)
{
Alias =
LastPasswordChangeDate,
Name =
LastPasswordChangeDateLabel
}
},
{
PasswordAnswer,
new PropertyType(
PropertyEditors
.TextboxAlias,
DataTypeDatabaseType
.Nvarchar)
{
Alias =
PasswordAnswer,
Name =
PasswordAnswerLabel
}
},
{
PasswordQuestion,
new PropertyType(
PropertyEditors
.TextboxAlias,
DataTypeDatabaseType
.Nvarchar)
{
Alias =
PasswordQuestion,
Name =
PasswordQuestionLabel
}
}
};
internal static Dictionary<string, PropertyType> GetStandardPropertyTypeStubs()
{
return new Dictionary<string, PropertyType>
{
{
Comments,
new PropertyType(PropertyEditors.TextboxMultipleAlias, DataTypeDatabaseType.Ntext)
{
Alias = Comments,
Name = CommentsLabel
}
},
{
FailedPasswordAttempts,
new PropertyType(PropertyEditors.IntegerAlias, DataTypeDatabaseType.Integer)
{
Alias = FailedPasswordAttempts,
Name = FailedPasswordAttemptsLabel
}
},
{
IsApproved,
new PropertyType(PropertyEditors.TrueFalseAlias, DataTypeDatabaseType.Integer)
{
Alias = IsApproved,
Name = IsApprovedLabel
}
},
{
IsLockedOut,
new PropertyType(PropertyEditors.TrueFalseAlias, DataTypeDatabaseType.Integer)
{
Alias = IsLockedOut,
Name = IsLockedOutLabel
}
},
{
LastLockoutDate,
new PropertyType(PropertyEditors.DateAlias, DataTypeDatabaseType.Date)
{
Alias = LastLockoutDate,
Name = LastLockoutDateLabel
}
},
{
LastLoginDate,
new PropertyType(PropertyEditors.DateAlias, DataTypeDatabaseType.Date)
{
Alias = LastLoginDate,
Name = LastLoginDateLabel
}
},
{
LastPasswordChangeDate,
new PropertyType(PropertyEditors.DateAlias, DataTypeDatabaseType.Date)
{
Alias = LastPasswordChangeDate,
Name = LastPasswordChangeDateLabel
}
},
{
PasswordAnswer,
new PropertyType(PropertyEditors.TextboxAlias, DataTypeDatabaseType.Nvarchar)
{
Alias = PasswordAnswer,
Name = PasswordAnswerLabel
}
},
{
PasswordQuestion,
new PropertyType(PropertyEditors.TextboxAlias, DataTypeDatabaseType.Nvarchar)
{
Alias = PasswordQuestion,
Name = PasswordQuestionLabel
}
}
};
}
}
/// <summary>
@@ -307,6 +260,8 @@ namespace Umbraco.Core
/// MemberType alias for default member type.
/// </summary>
public const string Member = "Member";
public const string SystemDefaultProtectType = "_umbracoSystemDefaultProtectType";
}
/// <summary>
+24 -24
View File
@@ -1,24 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Umbraco.Core
{
public static partial class Constants
{
public static class Examine
{
/// <summary>
/// The alias of the internal member searcher
/// </summary>
public const string InternalMemberSearcher = "InternalMemberSearcher";
/// <summary>
/// The alias of the internal content searcher
/// </summary>
public const string InternalSearcher = "InternalSearcher";
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Umbraco.Core
{
public static partial class Constants
{
public static class Examine
{
/// <summary>
/// The alias of the internal member searcher
/// </summary>
public const string InternalMemberSearcher = "InternalMemberSearcher";
/// <summary>
/// The alias of the internal content searcher
/// </summary>
public const string InternalSearcher = "InternalSearcher";
}
}
}
@@ -186,6 +186,8 @@ namespace Umbraco.Core
/// </summary>
public const string MediaPickerAlias = "Umbraco.MediaPicker";
public const string MultipleMediaPickerAlias = "Umbraco.MultipleMediaPicker";
/// <summary>
/// Guid for the Member Picker datatype.
/// </summary>
@@ -319,9 +321,9 @@ namespace Umbraco.Core
public const string TinyMCEv3 = "5E9B75AE-FACE-41C8-B47E-5F4B0FD82F83";
/// <summary>
/// Alias for the TinyMCE v3 wysiwyg datatype.
/// Alias for the TinyMCE wysiwyg datatype.
/// </summary>
public const string TinyMCEv3Alias = "Umbraco.TinyMCEv3";
public const string TinyMCEAlias = "Umbraco.TinyMCEv3";
/// <summary>
/// Guid for the True/False (Ja/Nej) datatype.
+22
View File
@@ -0,0 +1,22 @@
namespace Umbraco.Core
{
public static partial class Constants
{
/// <summary>
/// Defines the identifiers for Umbraco system nodes.
/// </summary>
public static class Web
{
/// <summary>
/// The preview cookie name
/// </summary>
public const string PreviewCookieName = "UMB_PREVIEW";
/// <summary>
/// The auth cookie name
/// </summary>
public const string AuthCookieName = "UMB_UCONTEXT";
}
}
}
+11 -16
View File
@@ -64,7 +64,7 @@ namespace Umbraco.Core
InitializeProfilerResolver();
_timer = DisposableTimer.DebugDuration<CoreBootManager>("Umbraco application starting", "Umbraco application startup complete");
CreateApplicationCache();
//Create the legacy prop-eds mapping
@@ -223,10 +223,7 @@ namespace Umbraco.Core
throw new InvalidOperationException("The boot manager has already been completed");
FreezeResolution();
//stop the timer and log the output
_timer.Dispose();
//call OnApplicationStarting of each application events handler
ApplicationEventsResolver.Current.ApplicationEventHandlers
.ForEach(x => x.OnApplicationStarted(UmbracoApplication, ApplicationContext));
@@ -244,6 +241,9 @@ namespace Umbraco.Core
// we're ready to serve content!
ApplicationContext.IsReady = true;
//stop the timer and log the output
_timer.Dispose();
return this;
}
@@ -268,7 +268,9 @@ namespace Umbraco.Core
{
new Lazy<Type>(() => typeof (RequiredManifestValueValidator)),
new Lazy<Type>(() => typeof (RegexValidator)),
new Lazy<Type>(() => typeof (DelimitedManifestValueValidator))
new Lazy<Type>(() => typeof (DelimitedManifestValueValidator)),
new Lazy<Type>(() => typeof (EmailValidator)),
new Lazy<Type>(() => typeof (IntegerValidator)),
});
//by default we'll use the standard configuration based sync
@@ -322,17 +324,10 @@ namespace Umbraco.Core
// fixme - why not use the following syntax?
//PluginManager.Current.ResolveTypes<IPropertyValueConverter>());
// use the new DefaultShortStringHelper but sort-of remain compatible
// - use UmbracoSettings UrlReplaceCharacters
// - allow underscores in terms, allow leading digits
// use the new DefaultShortStringHelper
ShortStringHelperResolver.Current = new ShortStringHelperResolver(
new DefaultShortStringHelper()
.WithConfig(CleanStringType.Url, DefaultShortStringHelper.ApplyUrlReplaceCharacters,
allowUnderscoreInTerm: true, allowLeadingDigits: true));
// that was the old one
//ShortStringHelperResolver.Current = new ShortStringHelperResolver(
// new LegacyShortStringHelper());
//new LegacyShortStringHelper());
new DefaultShortStringHelper().WithDefaultConfig());
UrlSegmentProviderResolver.Current = new UrlSegmentProviderResolver(
typeof (DefaultUrlSegmentProvider));
+123 -59
View File
@@ -250,7 +250,7 @@ namespace Umbraco.Core
_connectionString = connectionString;
_providerName = providerName;
var fileName = IOHelper.MapPath(string.Format("{0}/connectionStrings.config", SystemDirectories.Config));
var fileName = IOHelper.MapPath(string.Format("{0}/web.config", SystemDirectories.Root));
var xml = XDocument.Load(fileName, LoadOptions.PreserveWhitespace);
var connectionstrings = xml.Root.DescendantsAndSelf("connectionStrings").Single();
@@ -424,24 +424,19 @@ namespace Umbraco.Core
return _result;
}
internal Result CreateDatabaseSchemaAndDataOrUpgrade()
internal Result CreateDatabaseSchemaAndData()
{
if (_configured == false || (string.IsNullOrEmpty(_connectionString) || string.IsNullOrEmpty(ProviderName)))
var readyForInstall = CheckReadyForInstall();
if (readyForInstall.Success == false)
{
return new Result
{
Message =
"Database configuration is invalid. Please check that the entered database exists and that the provided username and password has write access to the database.",
Success = false,
Percentage = "10"
};
return readyForInstall.Result;
}
try
{
LogHelper.Info<DatabaseContext>("Database configuration status: Started");
var message = string.Empty;
string message;
var database = new UmbracoDatabase(_connectionString, ProviderName);
var supportsCaseInsensitiveQueries = SqlSyntaxContext.SqlSyntaxProvider.SupportsCaseInsensitiveQueries(database);
@@ -456,50 +451,73 @@ namespace Umbraco.Core
return new Result { Message = message, Success = false, Percentage = "15" };
}
else if (supportsCaseInsensitiveQueries == null)
{
message = "<p>&nbsp;</p><p>Warning! Could not check if your database type supports case insensitive queries. <br />We currently do not support these databases that do not support case insensitive queries.</p>" +
"<p>You can check this by looking for the following setting in your my.ini file in your MySQL installation directory:</p>" +
"<pre>lower_case_table_names=1</pre><br />" +
"<p>Note: Make sure to check with your hosting provider if they support case insensitive queries as well.</p>" +
"<p>For more technical information on case sensitivity in MySQL, have a look at " +
"<a href='http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html'>the documentation on the subject</a></p>";
}
else
{
if (SqlSyntaxContext.SqlSyntaxProvider.GetType() == typeof(MySqlSyntaxProvider))
{
message = "<p>&nbsp;</p><p>Congratulations, the database step ran successfully!</p>" +
"<p>Note: You're using MySQL and the database instance you're connecting to seems to support case insensitive queries.</p>" +
"<p>However, your hosting provider may not support this option. Umbraco does not currently support MySQL installs that do not support case insensitive queries</p>" +
"<p>Make sure to check with your hosting provider if they support case insensitive queries as well.</p>" +
"<p>They can check this by looking for the following setting in the my.ini file in their MySQL installation directory:</p>" +
"<pre>lower_case_table_names=1</pre><br />" +
"<p>For more technical information on case sensitivity in MySQL, have a look at " +
"<a href='http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html'>the documentation on the subject</a></p>";
}
}
message = GetResultMessageForMySql(supportsCaseInsensitiveQueries);
var schemaResult = ValidateDatabaseSchema();
var installedVersion = schemaResult.DetermineInstalledVersion();
//If Configuration Status is empty and the determined version is "empty" its a new install - otherwise upgrade the existing
if (string.IsNullOrEmpty(GlobalSettings.ConfigurationStatus) && installedVersion.Equals(new Version(0, 0, 0)))
{
database.CreateDatabaseSchema();
message = message + "<p>Installation completed!</p>";
//now that everything is done, we need to determine the version of SQL server that is executing
LogHelper.Info<DatabaseContext>("Database configuration status: " + message);
return new Result { Message = message, Success = true, Percentage = "100" };
}
else
{
var configuredVersion = string.IsNullOrEmpty(GlobalSettings.ConfigurationStatus)
//we need to do an upgrade so return a new status message and it will need to be done during the next step
LogHelper.Info<DatabaseContext>("Database requires upgrade");
message = "<p>Upgrading database, this may take some time...</p>";
return new Result
{
RequiresUpgrade = true,
Message = message,
Success = true,
Percentage = "30"
};
}
catch (Exception ex)
{
return HandleInstallException(ex);
}
}
/// <summary>
/// This assumes all of the previous checks are done!
/// </summary>
/// <returns></returns>
internal Result UpgradeSchemaAndData()
{
var readyForInstall = CheckReadyForInstall();
if (readyForInstall.Success == false)
{
return readyForInstall.Result;
}
try
{
LogHelper.Info<DatabaseContext>("Database upgrade started");
var database = new UmbracoDatabase(_connectionString, ProviderName);
var supportsCaseInsensitiveQueries = SqlSyntaxContext.SqlSyntaxProvider.SupportsCaseInsensitiveQueries(database);
var message = GetResultMessageForMySql(supportsCaseInsensitiveQueries);
var schemaResult = ValidateDatabaseSchema();
var installedVersion = schemaResult.DetermineInstalledVersion();
//DO the upgrade!
var configuredVersion = string.IsNullOrEmpty(GlobalSettings.ConfigurationStatus)
? installedVersion
: new Version(GlobalSettings.ConfigurationStatus);
var targetVersion = UmbracoVersion.Current;
var runner = new MigrationRunner(configuredVersion, targetVersion, GlobalSettings.UmbracoMigrationName);
var upgraded = runner.Execute(database, true);
message = message + "<p>Upgrade completed!</p>";
}
var targetVersion = UmbracoVersion.Current;
var runner = new MigrationRunner(configuredVersion, targetVersion, GlobalSettings.UmbracoMigrationName);
var upgraded = runner.Execute(database, true);
message = message + "<p>Upgrade completed!</p>";
//now that everything is done, we need to determine the version of SQL server that is executing
@@ -509,26 +527,72 @@ namespace Umbraco.Core
}
catch (Exception ex)
{
LogHelper.Info<DatabaseContext>("Database configuration failed with the following error and stack trace: " + ex.Message + "\n" + ex.StackTrace);
if (_result != null)
{
LogHelper.Info<DatabaseContext>("The database schema validation produced the following summary: \n" + _result.GetSummary());
}
return new Result
{
Message =
"The database configuration failed with the following message: " + ex.Message +
"\n Please check log file for additional information (can be found in '/App_Data/Logs/UmbracoTraceLog.txt')",
Success = false,
Percentage = "90"
};
return HandleInstallException(ex);
}
}
private string GetResultMessageForMySql(bool? supportsCaseInsensitiveQueries)
{
if (supportsCaseInsensitiveQueries == null)
{
return "<p>&nbsp;</p><p>Warning! Could not check if your database type supports case insensitive queries. <br />We currently do not support these databases that do not support case insensitive queries.</p>" +
"<p>You can check this by looking for the following setting in your my.ini file in your MySQL installation directory:</p>" +
"<pre>lower_case_table_names=1</pre><br />" +
"<p>Note: Make sure to check with your hosting provider if they support case insensitive queries as well.</p>" +
"<p>For more technical information on case sensitivity in MySQL, have a look at " +
"<a href='http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html'>the documentation on the subject</a></p>";
}
if (SqlSyntaxContext.SqlSyntaxProvider.GetType() == typeof(MySqlSyntaxProvider))
{
return "<p>&nbsp;</p><p>Congratulations, the database step ran successfully!</p>" +
"<p>Note: You're using MySQL and the database instance you're connecting to seems to support case insensitive queries.</p>" +
"<p>However, your hosting provider may not support this option. Umbraco does not currently support MySQL installs that do not support case insensitive queries</p>" +
"<p>Make sure to check with your hosting provider if they support case insensitive queries as well.</p>" +
"<p>They can check this by looking for the following setting in the my.ini file in their MySQL installation directory:</p>" +
"<pre>lower_case_table_names=1</pre><br />" +
"<p>For more technical information on case sensitivity in MySQL, have a look at " +
"<a href='http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html'>the documentation on the subject</a></p>";
}
return string.Empty;
}
private Attempt<Result> CheckReadyForInstall()
{
if (_configured == false || (string.IsNullOrEmpty(_connectionString) || string.IsNullOrEmpty(ProviderName)))
{
return Attempt.Fail(new Result
{
Message =
"Database configuration is invalid. Please check that the entered database exists and that the provided username and password has write access to the database.",
Success = false,
Percentage = "10"
});
}
return Attempt<Result>.Succeed();
}
private Result HandleInstallException(Exception ex)
{
LogHelper.Info<DatabaseContext>("Database configuration failed with the following error and stack trace: " + ex.Message + "\n" + ex.StackTrace);
if (_result != null)
{
LogHelper.Info<DatabaseContext>("The database schema validation produced the following summary: \n" + _result.GetSummary());
}
return new Result
{
Message =
"The database configuration failed with the following message: " + ex.Message +
"\n Please check log file for additional information (can be found in '/App_Data/Logs/UmbracoTraceLog.txt')",
Success = false,
Percentage = "90"
};
}
internal class Result
{
public bool RequiresUpgrade { get; set; }
public string Message { get; set; }
public bool Success { get; set; }
public string Percentage { get; set; }
+6 -6
View File
@@ -231,7 +231,7 @@ namespace Umbraco.Core
/// <returns>The contains key ignore case.</returns>
public static bool ContainsKeyIgnoreCase<TValue>(this IDictionary<string, TValue> dictionary, string key)
{
return dictionary.Keys.Any(i => i.Equals(key, StringComparison.CurrentCultureIgnoreCase));
return dictionary.Keys.InvariantContains(key);
}
/// <summary>
@@ -257,9 +257,9 @@ namespace Umbraco.Core
/// <param name="key">The key.</param>
/// <typeparam name="TValue">The type</typeparam>
/// <returns>The entry</returns>
public static TValue GetEntryIgnoreCase<TValue>(this IDictionary<string, TValue> dictionary, string key)
public static TValue GetValueIgnoreCase<TValue>(this IDictionary<string, TValue> dictionary, string key)
{
return dictionary.GetEntryIgnoreCase(key, default(TValue));
return dictionary.GetValueIgnoreCase(key, default(TValue));
}
/// <summary>The get entry ignore case.</summary>
@@ -268,11 +268,11 @@ namespace Umbraco.Core
/// <param name="defaultValue">The default value.</param>
/// <typeparam name="TValue">The type</typeparam>
/// <returns>The entry</returns>
public static TValue GetEntryIgnoreCase<TValue>(this IDictionary<string, TValue> dictionary, string key, TValue defaultValue)
public static TValue GetValueIgnoreCase<TValue>(this IDictionary<string, TValue> dictionary, string key, TValue defaultValue)
{
key = dictionary.Keys.Where(i => i.Equals(key, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();
key = dictionary.Keys.FirstOrDefault(i => i.InvariantEquals(key));
return !key.IsNullOrWhiteSpace()
return key.IsNullOrWhiteSpace() == false
? dictionary[key]
: defaultValue;
}
@@ -0,0 +1,52 @@
using System.Collections.Generic;
using System.Xml.Linq;
namespace Umbraco.Core.Events
{
public class ExportEventArgs<TEntity> : CancellableObjectEventArgs<IEnumerable<TEntity>>
{
/// <summary>
/// Constructor accepting a single entity instance
/// </summary>
/// <param name="eventObject"></param>
/// <param name="xml"></param>
/// <param name="canCancel"></param>
public ExportEventArgs(TEntity eventObject, XElement xml, bool canCancel)
: base(new List<TEntity> { eventObject }, canCancel)
{
Xml = xml;
}
/// <summary>
/// Constructor accepting a single entity instance
/// and cancellable by default
/// </summary>
/// <param name="eventObject"></param>
/// <param name="elementName"></param>
public ExportEventArgs(TEntity eventObject, string elementName) : base(new List<TEntity> {eventObject}, true)
{
Xml = new XElement(elementName);
}
protected ExportEventArgs(IEnumerable<TEntity> eventObject, bool canCancel) : base(eventObject, canCancel)
{
}
protected ExportEventArgs(IEnumerable<TEntity> eventObject) : base(eventObject)
{
}
/// <summary>
/// Returns all entities that were exported during the operation
/// </summary>
public IEnumerable<TEntity> ExportedEntities
{
get { return EventObject; }
}
/// <summary>
/// Returns the xml relating to the export event
/// </summary>
public XElement Xml { get; private set; }
}
}
@@ -0,0 +1,50 @@
using System.Collections.Generic;
using System.Xml.Linq;
namespace Umbraco.Core.Events
{
public class ImportEventArgs<TEntity> : CancellableObjectEventArgs<IEnumerable<TEntity>>
{
/// <summary>
/// Constructor accepting an XElement with the xml being imported
/// </summary>
/// <param name="xml"></param>
public ImportEventArgs(XElement xml) : base(new List<TEntity>(), true)
{
Xml = xml;
}
/// <summary>
/// Constructor accepting a list of entities and an XElement with the imported xml
/// </summary>
/// <param name="eventObject"></param>
/// <param name="xml"></param>
/// <param name="canCancel"></param>
public ImportEventArgs(IEnumerable<TEntity> eventObject, XElement xml, bool canCancel)
: base(eventObject, canCancel)
{
Xml = xml;
}
protected ImportEventArgs(IEnumerable<TEntity> eventObject, bool canCancel) : base(eventObject, canCancel)
{
}
protected ImportEventArgs(IEnumerable<TEntity> eventObject) : base(eventObject)
{
}
/// <summary>
/// Returns all entities that were imported during the operation
/// </summary>
public IEnumerable<TEntity> ImportedEntities
{
get { return EventObject; }
}
/// <summary>
/// Returns the xml relating to the import event
/// </summary>
public XElement Xml { get; private set; }
}
}
-3
View File
@@ -49,8 +49,5 @@ namespace Umbraco.Core.Events
{
get { return EventObject; }
}
}
}
+14 -14
View File
@@ -1,14 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Umbraco.Core
{
/// <summary>
/// Any class implementing this interface that is added to the httpcontext.items keys or values will be disposed of at the end of the request.
/// </summary>
public interface IDisposeOnRequestEnd : IDisposable
{
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Umbraco.Core
{
/// <summary>
/// Any class implementing this interface that is added to the httpcontext.items keys or values will be disposed of at the end of the request.
/// </summary>
public interface IDisposeOnRequestEnd : IDisposable
{
}
}
+14 -1
View File
@@ -1,4 +1,5 @@
using System.IO;
using System;
using System.IO;
using Umbraco.Core.CodeAnnotations;
namespace Umbraco.Core.IO
@@ -30,5 +31,17 @@ namespace Umbraco.Core.IO
{
return Path.GetFileName(fs.GetFullPath(path));
}
//TODO: Currently this is the only way to do this
internal static void CreateFolder(this IFileSystem fs, string folderPath)
{
var path = fs.GetRelativePath(folderPath);
var tempFile = Path.Combine(path, Guid.NewGuid().ToString("N") + ".tmp");
using (var s = new MemoryStream())
{
fs.AddFile(tempFile, s);
}
fs.DeleteFile(tempFile);
}
}
}
+2
View File
@@ -5,6 +5,8 @@ using Umbraco.Core.CodeAnnotations;
namespace Umbraco.Core.IO
{
//TODO: There is no way to create a directory here without creating a file in a directory and then deleting it
public interface IFileSystem
{
IEnumerable<string> GetDirectories(string path);
+1 -1
View File
@@ -43,7 +43,7 @@ namespace Umbraco.Core.IO
//Replaces tildes with the root dir
public static string ResolveUrl(string virtualPath)
{
if (virtualPath.StartsWith("~"))
if (virtualPath.StartsWith("~"))
return virtualPath.Replace("~", SystemDirectories.Root).Replace("//", "/");
else if (Uri.IsWellFormedUriString(virtualPath, UriKind.Absolute))
return virtualPath;
+34 -6
View File
@@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using HtmlAgilityPack;
namespace Umbraco.Core.Macros
{
@@ -10,8 +11,8 @@ namespace Umbraco.Core.Macros
/// </summary>
internal class MacroTagParser
{
private static readonly Regex MacroRteContent = new Regex(@"(<div.*?>.*?<!--\s*?)(<\?UMBRACO_MACRO.*?/>)(.*?</div>)", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
private static readonly Regex MacroPersistedFormat = new Regex(@"(<\?UMBRACO_MACRO macroAlias=[""'](\w+?)[""'].+?)(?:/>|>.*?</\?UMBRACO_MACRO>)", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
private static readonly Regex MacroRteContent = new Regex(@"(<!--\s*?)(<\?UMBRACO_MACRO.*?/>)(\s*?-->)", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
private static readonly Regex MacroPersistedFormat = new Regex(@"(<\?UMBRACO_MACRO macroAlias=[""']([\w\.]+?)[""'].+?)(?:/>|>.*?</\?UMBRACO_MACRO>)", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
/// <summary>
/// This formats the persisted string to something useful for the rte so that the macro renders properly since we
@@ -38,8 +39,8 @@ namespace Umbraco.Core.Macros
//<div class="umb-macro-holder myMacro mceNonEditable">
var alias = match.Groups[2].Value;
var sb = new StringBuilder("<div class=\"umb-macro-holder ");
sb.Append(alias);
sb.Append(" mceNonEditable\"");
//sb.Append(alias.ToSafeAlias());
sb.Append("mceNonEditable\"");
foreach (var htmlAttribute in htmlAttributes)
{
sb.Append(" ");
@@ -88,7 +89,34 @@ namespace Umbraco.Core.Macros
/// </remarks>
internal static string FormatRichTextContentForPersistence(string rteContent)
{
return MacroRteContent.Replace(rteContent, match =>
if (string.IsNullOrEmpty(rteContent))
{
return string.Empty;
}
var html = new HtmlDocument();
html.LoadHtml(rteContent);
//get all the comment nodes we want
var commentNodes = html.DocumentNode.SelectNodes("//comment()[contains(., '<?UMBRACO_MACRO')]");
if (commentNodes == null)
{
//There are no macros found, just return the normal content
return rteContent;
}
//replace each containing parent <div> with the comment node itself.
foreach (var c in commentNodes)
{
var div = c.ParentNode;
var divContainer = div.ParentNode;
divContainer.ReplaceChild(c, div);
}
var parsed = html.DocumentNode.OuterHtml;
//now replace all the <!-- and --> with nothing
return MacroRteContent.Replace(parsed, match =>
{
if (match.Groups.Count >= 3)
{
@@ -96,7 +124,7 @@ namespace Umbraco.Core.Macros
return match.Groups[2].Value;
}
//replace with nothing if we couldn't find the syntax for whatever reason
return "";
return string.Empty;
});
}
@@ -1,31 +1,31 @@
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Umbraco.Core.PropertyEditors;
using Umbraco.Core.Serialization;
namespace Umbraco.Core.Manifest
{
/// <summary>
/// Used to convert a parameter editor manifest to a property editor object
/// </summary>
internal class ParameterEditorConverter : JsonCreationConverter<ParameterEditor>
{
protected override ParameterEditor Create(Type objectType, JObject jObject)
{
return new ParameterEditor();
}
protected override void Deserialize(JObject jObject, ParameterEditor target, JsonSerializer serializer)
{
//since it's a manifest editor, we need to create it's instance.
//we need to specify the view value for the editor here otherwise we'll get an exception.
target.ManifestDefinedParameterValueEditor = new ParameterValueEditor
{
View = jObject["view"].ToString()
};
base.Deserialize(jObject, target, serializer);
}
}
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Umbraco.Core.PropertyEditors;
using Umbraco.Core.Serialization;
namespace Umbraco.Core.Manifest
{
/// <summary>
/// Used to convert a parameter editor manifest to a property editor object
/// </summary>
internal class ParameterEditorConverter : JsonCreationConverter<ParameterEditor>
{
protected override ParameterEditor Create(Type objectType, JObject jObject)
{
return new ParameterEditor();
}
protected override void Deserialize(JObject jObject, ParameterEditor target, JsonSerializer serializer)
{
//since it's a manifest editor, we need to create it's instance.
//we need to specify the view value for the editor here otherwise we'll get an exception.
target.ManifestDefinedParameterValueEditor = new ParameterValueEditor
{
View = jObject["view"].ToString()
};
base.Deserialize(jObject, target, serializer);
}
}
}
+179 -144
View File
@@ -1,144 +1,179 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Umbraco.Core.Configuration;
using Umbraco.Core.IO;
namespace Umbraco.Core.Media
{
/// <summary>
/// A helper class used for imaging
/// </summary>
internal static class ImageHelper
{
public static string GetMimeType(this Image image)
{
var format = image.RawFormat;
var codec = ImageCodecInfo.GetImageDecoders().First(c => c.FormatID == format.Guid);
return codec.MimeType;
}
internal static IEnumerable<ResizedImage> GenerateMediaThumbnails(
IFileSystem fs,
string fileName,
string extension,
Image originalImage,
IEnumerable<int> additionalThumbSizes)
{
// Make default thumbnails
var thumbs = new List<ResizedImage>
{
Resize(fs, fileName, extension, 100, "thumb", originalImage),
Resize(fs, fileName, extension, 500, "big-thumb", originalImage)
};
//make custom ones
foreach (var thumb in additionalThumbSizes.Where(x => x > 0).Distinct())
{
thumbs.Add(Resize(fs, fileName, extension, thumb, string.Format("thumb_{0}", thumb), originalImage));
}
return thumbs;
}
private static ResizedImage Resize(IFileSystem fileSystem, string path, string extension, int maxWidthHeight, string fileNameAddition, Image originalImage)
{
var fileNameThumb = String.IsNullOrEmpty(fileNameAddition)
? string.Format("{0}_UMBRACOSYSTHUMBNAIL.jpg", path.Substring(0, path.LastIndexOf(".")))
: string.Format("{0}_{1}.jpg", path.Substring(0, path.LastIndexOf(".")), fileNameAddition);
var thumb = GenerateThumbnail(
originalImage,
maxWidthHeight,
fileNameThumb,
extension,
fileSystem);
return thumb;
}
internal static ResizedImage GenerateThumbnail(Image image, int maxWidthHeight, string thumbnailFileName, string extension, IFileSystem fs)
{
return GenerateThumbnail(image, maxWidthHeight, -1, -1, thumbnailFileName, extension, fs);
}
internal static ResizedImage GenerateThumbnail(Image image, int fixedWidth, int fixedHeight, string thumbnailFileName, string extension, IFileSystem fs)
{
return GenerateThumbnail(image, -1, fixedWidth, fixedHeight, thumbnailFileName, extension, fs);
}
private static ResizedImage GenerateThumbnail(Image image, int maxWidthHeight, int fixedWidth, int fixedHeight, string thumbnailFileName, string extension, IFileSystem fs)
{
// Generate thumbnail
float f = 1;
if (maxWidthHeight >= 0)
{
var fx = (float)image.Size.Width / maxWidthHeight;
var fy = (float)image.Size.Height / maxWidthHeight;
// must fit in thumbnail size
f = Math.Max(fx, fy);
}
//depending on if we are doing fixed width resizing or not.
fixedWidth = (maxWidthHeight > 0) ? image.Width : fixedWidth;
fixedHeight = (maxWidthHeight > 0) ? image.Height : fixedHeight;
var widthTh = (int)Math.Round(fixedWidth / f);
var heightTh = (int)Math.Round(fixedHeight / f);
// fixes for empty width or height
if (widthTh == 0)
widthTh = 1;
if (heightTh == 0)
heightTh = 1;
// Create new image with best quality settings
using (var bp = new Bitmap(widthTh, heightTh))
{
using (var g = Graphics.FromImage(bp))
{
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.CompositingQuality = CompositingQuality.HighQuality;
// Copy the old image to the new and resized
var rect = new Rectangle(0, 0, widthTh, heightTh);
g.DrawImage(image, rect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
// Copy metadata
var imageEncoders = ImageCodecInfo.GetImageEncoders();
var codec = extension.ToLower() == "png" || extension.ToLower() == "gif"
? imageEncoders.Single(t => t.MimeType.Equals("image/png"))
: imageEncoders.Single(t => t.MimeType.Equals("image/jpeg"));
// Set compresion ratio to 90%
var ep = new EncoderParameters();
ep.Param[0] = new EncoderParameter(Encoder.Quality, 90L);
// Save the new image using the dimensions of the image
var newFileName = thumbnailFileName.Replace("UMBRACOSYSTHUMBNAIL", string.Format("{0}x{1}", widthTh, heightTh));
using (var ms = new MemoryStream())
{
bp.Save(ms, codec, ep);
ms.Seek(0, 0);
fs.AddFile(newFileName, ms);
}
return new ResizedImage(widthTh, heightTh, newFileName);
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Umbraco.Core.Configuration;
using Umbraco.Core.IO;
namespace Umbraco.Core.Media
{
/// <summary>
/// A helper class used for imaging
/// </summary>
internal static class ImageHelper
{
public static string GetMimeType(this Image image)
{
var format = image.RawFormat;
var codec = ImageCodecInfo.GetImageDecoders().First(c => c.FormatID == format.Guid);
return codec.MimeType;
}
/// <summary>
/// Creates the thumbnails if the image is larger than all of the specified ones.
/// </summary>
/// <param name="fs"></param>
/// <param name="fileName"></param>
/// <param name="extension"></param>
/// <param name="originalImage"></param>
/// <param name="additionalThumbSizes"></param>
/// <returns></returns>
internal static IEnumerable<ResizedImage> GenerateMediaThumbnails(
IFileSystem fs,
string fileName,
string extension,
Image originalImage,
IEnumerable<int> additionalThumbSizes)
{
var result = new List<ResizedImage>();
var allSizes = new List<int> {100, 500};
allSizes.AddRange(additionalThumbSizes.Where(x => x > 0).Distinct());
foreach (var s in allSizes)
{
if (originalImage.Width >= s && originalImage.Height >= s)
{
result.Add(Resize(fs, fileName, extension, s, "thumb", originalImage));
}
}
return result;
}
/// <summary>
/// Performs an image resize
/// </summary>
/// <param name="fileSystem"></param>
/// <param name="path"></param>
/// <param name="extension"></param>
/// <param name="maxWidthHeight"></param>
/// <param name="fileNameAddition"></param>
/// <param name="originalImage"></param>
/// <returns></returns>
private static ResizedImage Resize(IFileSystem fileSystem, string path, string extension, int maxWidthHeight, string fileNameAddition, Image originalImage)
{
var fileNameThumb = String.IsNullOrEmpty(fileNameAddition)
? string.Format("{0}_UMBRACOSYSTHUMBNAIL.jpg", path.Substring(0, path.LastIndexOf(".")))
: string.Format("{0}_{1}.jpg", path.Substring(0, path.LastIndexOf(".")), fileNameAddition);
var thumb = GenerateThumbnail(
originalImage,
maxWidthHeight,
fileNameThumb,
extension,
fileSystem);
return thumb;
}
internal static ResizedImage GenerateThumbnail(Image image, int maxWidthHeight, string thumbnailFileName, string extension, IFileSystem fs)
{
return GenerateThumbnail(image, maxWidthHeight, -1, -1, thumbnailFileName, extension, fs);
}
internal static ResizedImage GenerateThumbnail(Image image, int fixedWidth, int fixedHeight, string thumbnailFileName, string extension, IFileSystem fs)
{
return GenerateThumbnail(image, -1, fixedWidth, fixedHeight, thumbnailFileName, extension, fs);
}
private static ResizedImage GenerateThumbnail(Image image, int maxWidthHeight, int fixedWidth, int fixedHeight, string thumbnailFileName, string extension, IFileSystem fs)
{
// Generate thumbnail
float f = 1;
if (maxWidthHeight >= 0)
{
var fx = (float)image.Size.Width / maxWidthHeight;
var fy = (float)image.Size.Height / maxWidthHeight;
// must fit in thumbnail size
f = Math.Max(fx, fy);
}
//depending on if we are doing fixed width resizing or not.
fixedWidth = (maxWidthHeight > 0) ? image.Width : fixedWidth;
fixedHeight = (maxWidthHeight > 0) ? image.Height : fixedHeight;
var widthTh = (int)Math.Round(fixedWidth / f);
var heightTh = (int)Math.Round(fixedHeight / f);
// fixes for empty width or height
if (widthTh == 0)
widthTh = 1;
if (heightTh == 0)
heightTh = 1;
// Create new image with best quality settings
using (var bp = new Bitmap(widthTh, heightTh))
{
using (var g = Graphics.FromImage(bp))
{
//if the image size is rather large we cannot use the best quality interpolation mode
// because we'll get out of mem exceptions. So we'll detect how big the image is and use
// the mid quality interpolation mode when the image size exceeds our max limit.
if (image.Width > 5000 || image.Height > 5000)
{
//use mid quality
g.InterpolationMode = InterpolationMode.Bilinear;
}
else
{
//use best quality
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
}
g.SmoothingMode = SmoothingMode.HighQuality;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.CompositingQuality = CompositingQuality.HighQuality;
// Copy the old image to the new and resized
var rect = new Rectangle(0, 0, widthTh, heightTh);
g.DrawImage(image, rect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
// Copy metadata
var imageEncoders = ImageCodecInfo.GetImageEncoders();
var codec = extension.ToLower() == "png" || extension.ToLower() == "gif"
? imageEncoders.Single(t => t.MimeType.Equals("image/png"))
: imageEncoders.Single(t => t.MimeType.Equals("image/jpeg"));
// Set compresion ratio to 90%
var ep = new EncoderParameters();
ep.Param[0] = new EncoderParameter(Encoder.Quality, 90L);
// Save the new image using the dimensions of the image
var newFileName = thumbnailFileName.Replace("UMBRACOSYSTHUMBNAIL", string.Format("{0}x{1}", widthTh, heightTh));
using (var ms = new MemoryStream())
{
bp.Save(ms, codec, ep);
ms.Seek(0, 0);
fs.AddFile(newFileName, ms);
}
return new ResizedImage(widthTh, heightTh, newFileName);
}
}
}
}
}
+19 -14
View File
@@ -618,7 +618,7 @@ namespace Umbraco.Core.Models
/// <returns>Xml representation of the passed in <see cref="IContent"/></returns>
internal static XElement ToDeepXml(this IContent content)
{
return ApplicationContext.Current.Services.PackagingService.Export(content, true);
return ApplicationContext.Current.Services.PackagingService.Export(content, true, raiseEvents: false);
}
/// <summary>
@@ -628,7 +628,7 @@ namespace Umbraco.Core.Models
/// <returns>Xml representation of the passed in <see cref="IContent"/></returns>
public static XElement ToXml(this IContent content)
{
return ApplicationContext.Current.Services.PackagingService.Export(content);
return ApplicationContext.Current.Services.PackagingService.Export(content, raiseEvents: false);
}
/// <summary>
@@ -638,24 +638,19 @@ namespace Umbraco.Core.Models
/// <returns>Xml representation of the passed in <see cref="IContent"/></returns>
public static XElement ToXml(this IMedia media)
{
return ApplicationContext.Current.Services.PackagingService.Export(media);
}
internal static XElement ToDeepXml(this IMedia media)
{
return ApplicationContext.Current.Services.PackagingService.Export(media, true);
return ApplicationContext.Current.Services.PackagingService.Export(media, raiseEvents: false);
}
/// <summary>
/// Creates the xml representation for the <see cref="IMedia"/> object
/// Creates the full xml representation for the <see cref="IMedia"/> object and all of it's descendants
/// </summary>
/// <param name="member"><see cref="IContent"/> to generate xml for</param>
/// <returns>Xml representation of the passed in <see cref="IContent"/></returns>
public static XElement ToXml(this IMember member)
/// <param name="media"><see cref="IMedia"/> to generate xml for</param>
/// <returns>Xml representation of the passed in <see cref="IMedia"/></returns>
internal static XElement ToDeepXml(this IMedia media)
{
return ApplicationContext.Current.Services.PackagingService.Export(member);
return ApplicationContext.Current.Services.PackagingService.Export(media, true, raiseEvents: false);
}
/// <summary>
/// Creates the xml representation for the <see cref="IContent"/> object
/// </summary>
@@ -668,6 +663,16 @@ namespace Umbraco.Core.Models
//If current IContent is published we should get latest unpublished version
return content.ToXml();
}
/// <summary>
/// Creates the xml representation for the <see cref="IMember"/> object
/// </summary>
/// <param name="member"><see cref="IMember"/> to generate xml for</param>
/// <returns>Xml representation of the passed in <see cref="IContent"/></returns>
public static XElement ToXml(this IMember member)
{
return ((PackagingService)(ApplicationContext.Current.Services.PackagingService)).Export(member);
}
#endregion
}

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