Compare commits

...

1173 Commits

Author SHA1 Message Date
Sebastiaan Janssen e12f24af94 Merge branch '7.1.2' of https://github.com/umbraco/Umbraco-CMS into 7.1.2 2014-05-09 13:31:41 +02:00
Sebastiaan Janssen cbad216387 Update the install ps to do logging of copies and to actually copy the /umbraco folder properly 2014-05-09 13:07:41 +02:00
Sebastiaan Janssen 00880fcbfa I was confused, these files exist just fine :) 2014-05-09 13:07:03 +02:00
Stephan 080ed612e8 U4-4837 - bugfix Umbraco.Core.EnumerableExtensions.InGroupsOf 2014-05-09 10:22:23 +02:00
Stephan 5661a34e00 Bugfix media cache property alias case sensitivity 2014-05-09 10:21:31 +02:00
Sebastiaan Janssen 85012ee82a Renaming files that don't exist led to the NuGet package not being created correctly somehow 2014-05-09 09:16:51 +02:00
Shannon 53a9cdb7a0 fixes a couple tests 2014-05-09 17:10:56 +10:00
Shannon 6b6ca615ba Updates build to ignore bower and commits typeahead. 2014-05-09 17:02:14 +10:00
Shannon 2eef061c42 attempting to add the default git path to the path variable - hopefully the server has the same one 2014-05-09 15:58:09 +10:00
Shannon 70f65583d7 Fixes: U4-4546 Error: Failed to retreive data for media ids 2014-05-09 15:50:07 +10:00
Shannon 0d37a1f6e8 Fixes: U4-4849 Cannot change a users language/sections in the back office 2014-05-09 15:19:00 +10:00
Shannon 389724cba5 Re-fixes: U4-4211 User without media section permission will be logged out immediately when accessing a document type using a media picker datatype (u7.0.3) 2014-05-09 14:06:15 +10:00
Shannon 0382902984 Fixes user cloning issues with allowed sections 2014-05-09 14:01:20 +10:00
Shannon e0a0216b2d Fixes build in unit tests with ctor for service context 2014-05-09 13:28:03 +10:00
Shannon b02f7e0d3a ensure properties reset on deep clone of ContentType (this is just a fail safe check) 2014-05-09 13:26:50 +10:00
Shannon 9d96a4411f Fixes deep clone of macro object 2014-05-09 13:26:16 +10:00
Shannon 8e9a9dc996 Fixes deep clone of User object 2014-05-09 13:25:18 +10:00
Shannon b1603a21a2 Fixes up strange culture issue with thread switching with the update to the AngularJsonMediaTypeFormatter. 2014-05-09 10:46:15 +10:00
Sebastiaan Janssen 59cb1ad31e Revert "Fixes: U4-4211 User without media section permission will be logged out immediately when accessing a document type using a media picker datatype (u7.0.3) - this is done by using the entityResource in the mediaPicker but to do this we need to return a cut down version of the media properties in the additionalData which is tricky because the cropper stores json which is ntext and the existing sql didn't cater for this. This also cleans up the entity service and we no longer have this internal collection of properties, everything is just added to additionalData, then had to add mediaHelper method to deal with getting urls from a media 'entity' not just a media object."
This reverts commit c38c2ede11.
2014-05-08 16:08:16 +02:00
Sebastiaan Janssen 215ebb78ca Oops, this really needs to be Release mode 2014-05-08 13:56:19 +02:00
Sebastiaan Janssen c1796dd5ac Update ImageProcessor dependency to latest version 2014-05-08 13:28:46 +02:00
Sebastiaan Janssen 28550e3bb7 Require a recent version of NuGet in order to install Umbraco. 2014-05-08 13:28:32 +02:00
Sebastiaan Janssen bc59ff2e8c Clarified /base obsoletion to point out UmbracoApiController 2014-05-08 11:14:00 +02:00
Shannon 614327a273 Merge branch '7.1.2' of https://github.com/umbraco/Umbraco-CMS into 7.1.2 2014-05-08 19:03:58 +10:00
Shannon ed292d34db oops fixed build 2014-05-08 19:03:40 +10:00
Shandem 5ac3eb7fef Merge pull request #364 from tomfulton/patch-1
Fix U4-4779: Media Picker not working as single picker
2014-05-08 18:49:36 +10:00
Shannon 94732cff00 Renames GetCurrent to GetCurrentMember to be inline with GetCurrentMemberId 2014-05-08 18:13:59 +10:00
Shandem 7947682cf0 Merge pull request #373 from sniffdk/patch-1
Fix for issue U4-4826
2014-05-08 18:13:23 +10:00
Shannon 6506768f10 Adds GetCurrentMemberId as a method to MembershipHelper 2014-05-08 18:12:28 +10:00
Shannon 9e0d10d0a3 Adds Logout as a wrapper to formsauth in membershiphelper 2014-05-08 18:10:01 +10:00
Shannon 392b18f4dd Adds GetCurrent() to MembershipHelper 2014-05-08 18:08:06 +10:00
Shannon c3ecc9e942 Fixes: U4-4505 Add obsolete messages to /base restextentions methods ( i think i got them all ) 2014-05-08 17:25:06 +10:00
Shannon c47f9ae26d Fixes: U4-4835 If you've changed data on a content item and then attempt to logout, the 'discard changes' dialog pops up however the logout continues but the URL and view remains 2014-05-08 16:57:29 +10:00
Shannon 22b506e2fb Fixes: U4-4827 The new speechbubble container is placed over the save and publish buttons 2014-05-08 12:26:59 +10:00
Shannon 516723d31d Merge branch '7.1.2' of https://github.com/umbraco/Umbraco-CMS into 7.1.2 2014-05-08 11:38:38 +10:00
Shannon 7c30f26505 Fixes: U4-4845 Publicize INotificationService 2014-05-08 11:38:05 +10:00
Shandem 6b84a6adec Merge pull request #374 from sniffdk/patch-2
Fix for issue U4-4827
2014-05-08 11:31:22 +10:00
Shannon 6e2493854a makes Reset protected internal on ResolverBase 2014-05-08 11:22:44 +10:00
Shandem 1e13746cd0 Merge pull request #375 from rustyswayne/7.1.2
Makes HasCurrent property protected on ResolverBase.  #U4-4829
2014-05-08 11:11:12 +10:00
Shannon 8c7adf80b2 Fixes: U4-4573 7.0.4 Save and Send For Approval button not sending notification email 2014-05-08 00:45:54 +10:00
Shannon c38c2ede11 Fixes: U4-4211 User without media section permission will be logged out immediately when accessing a document type using a media picker datatype (u7.0.3) - this is done by using the entityResource in the mediaPicker but to do this we need to return a cut down version of the media properties in the additionalData which is tricky because the cropper stores json which is ntext and the existing sql didn't cater for this. This also cleans up the entity service and we no longer have this internal collection of properties, everything is just added to additionalData, then had to add mediaHelper method to deal with getting urls from a media 'entity' not just a media object. 2014-05-07 23:55:20 +10:00
Shannon a6cd2b9e18 Fixes: U4-4420 TagQuery / TagService missing method to get content with tag. 2014-05-07 14:27:10 +10:00
Rusty Swayne 5fa128697b Makes HasCurrent property protected on ResolverBase. #U4-4829 2014-05-06 10:04:14 -07:00
Mads Krohn 62c3bf6afe Fix for issue U4-4827
I simply placed the container a little higher up, just above the Save and Publish buttons.
2014-05-06 13:39:11 +02:00
Mads Krohn aec862a9de Fix for issue U4-4826
When editing an existing link in tinymce the following error is thrown:
Could not find the tree content, activeTree has not been set 

This is caused by passing a wrong value as parameter to the doLoad method in the loadActiveTree function.
2014-05-06 13:02:47 +02:00
Shannon cfd21bc924 Got this working: U4-4420 TagQuery / TagService missing method to get content with tag - just need to add some unit tests. 2014-05-06 19:04:49 +10:00
Shannon d264792e18 Fixes: U4-4819 Publicize AuthenticationExtensions 2014-05-06 18:15:38 +10:00
Shannon af732955fb Fixes up a bit more with tags look ahead, fixes up rte to show a loading... text so the UI is handled much better 2014-05-06 18:06:41 +10:00
Shannon a846ba64eb Fixes: U4-4799 Ensure image logic found in the ContentService is duplicated for the new cropper 2014-05-06 15:27:53 +10:00
Shannon d3e925add9 Fixes: U4-4803 Need to expose CurrentUser on WebSecurity as public since IUser is now public 2014-05-06 14:49:43 +10:00
Shannon 683f0c5725 Fixes: U4-4503 Tags datatype does not autocomplete 2014-05-06 14:44:24 +10:00
Shannon 6827def8ba Merge branch '7.1.2' of https://github.com/umbraco/Umbraco-CMS into 7.1.2 2014-05-06 10:41:10 +10:00
per ploug dbbe3fe5fb Removes remaining yepnop dependencies 2014-05-05 12:59:34 +02:00
Shannon d2a20b10aa nearly got tag typeahead working 2014-05-05 19:07:57 +10:00
Shannon 27e6b8c80c Adds bower to node dependencies, uses bower to get the typeahead dependency, gets bower dependencies on npm install 2014-05-05 15:55:48 +10:00
Shannon 956a92f5b4 removes unused moment.js from core/release 2014-05-05 13:35:20 +10:00
Shannon 36c7fd53cb Fixes merge issues with left over IPublishedContentProperty 2014-05-05 13:21:18 +10:00
Shannon 3df2d03fc8 Merge remote-tracking branch 'origin/6.2.0' into 7.1.2
Conflicts:
	build/Build.bat
	build/NuSpecs/UmbracoCms.Core.nuspec
	build/NuSpecs/build/UmbracoCms.targets
	src/Umbraco.Core/Models/IPublishedContentProperty.cs
	src/Umbraco.Core/Models/PublishedContent/IPublishedContentExtended.cs
	src/Umbraco.Core/Models/PublishedContent/PublishedContentExtended.cs
	src/Umbraco.Core/Models/PublishedContent/PublishedContentWrapped.cs
	src/Umbraco.Core/Models/PublishedContent/PublishedPropertyBase.cs
	src/Umbraco.Core/Models/PublishedContent/PublishedPropertyType.cs
	src/Umbraco.Core/Models/Template.cs
	src/Umbraco.Core/Persistence/Migrations/MigrationRunner.cs
	src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/RecycleBinRepository.cs
	src/Umbraco.Core/Services/PackagingService.cs
	src/Umbraco.Tests/PublishedContent/PublishedContentMoreTests.cs
	src/Umbraco.Tests/PublishedContent/PublishedContentTestElements.cs
	src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedFragment.cs
	src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs
	src/Umbraco.Web/PublishedCache/XmlPublishedCache/XmlPublishedContent.cs
	src/Umbraco.Web/PublishedContentPropertyExtension.cs
	src/Umbraco.Web/Search/ExamineEvents.cs
	src/Umbraco.Web/UmbracoHelper.cs
	src/Umbraco.Web/umbraco.presentation/CompatibilityHelper.cs
	src/Umbraco.Web/umbraco.presentation/macro.cs
	src/umbraco.cms/businesslogic/template/Template.cs
2014-05-05 12:49:06 +10:00
Sebastiaan Janssen 16c360de88 Merge pull request #363 from aweber1/patch-1
Update ImageCropMode.cs
2014-05-02 10:43:59 +02:00
Sebastiaan Janssen c661fc6537 Merge pull request #370 from BatJan/patch-5
Fix of spelling mistake in "minumum".
2014-05-01 16:44:44 +02:00
BatJan c2c5098045 Fix of spelling mistake in "minumum".
Corrected "minumum" to "minimum" according to http://issues.umbraco.org/issue/U4-4804
2014-05-01 16:35:22 +02:00
Sebastiaan Janssen 16d98488e4 Losen up the requirement for json.net dependency 2014-05-01 14:06:28 +02:00
Morten Christensen 5a862f5c64 Fixes import of nested dictionary items #U4-4663 2014-05-01 13:51:33 +02:00
Sebastiaan Janssen caf41b74b8 Add failing test - dictionary items don't get properly nested 2014-05-01 12:26:18 +02:00
Sebastiaan Janssen e858f4ff1e U4-4775 creating new member group shows error message in dialog... 2014-05-01 11:45:14 +02:00
Sebastiaan Janssen 851961ef2b U4-4775 creating new member group shows error message in dialog... 2014-05-01 10:48:27 +02:00
Sebastiaan Janssen c139c5d93e U4-3925 Cancel Document_BeforePublish event gives YSOD 2014-05-01 09:55:14 +02:00
Shannon c4603ee5cd Fixes: U4-4798 When new property types are added, the internal Examine index isn't notified and will ignore them 2014-05-01 12:43:40 +10:00
Shannon 1e9d1007b6 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2014-05-01 11:36:33 +10:00
Shannon f23af85253 Fixes: U4-4624 Media cache hits the DB on every empty property, U4-4338 Umbraco fails to enumerate TypedMedia 2014-05-01 11:36:17 +10:00
Sebastiaan Janssen b0c5d16ba7 U4-4127 Turkish culture prevents Macros embedded 2014-04-30 19:29:32 +02:00
Stephan cd5581bef6 Back to IPublishedContentProperty (for 6 only) 2014-04-30 16:53:14 +02:00
Stephan 7d8da56dcb Revert "Reintroduce IPublishedContentProperty"
This reverts commit d33cc29f98.
2014-04-30 16:39:51 +02:00
Stephan 0501b181ce Refactor template aliases to strict aliases 2014-04-30 15:46:26 +02:00
Stephan 6d076a09e4 Refactor template aliases to strict aliases (cont) 2014-04-30 15:44:29 +02:00
Stephan 3cd3230b55 Refactor template aliases to strict aliases 2014-04-30 15:38:47 +02:00
Sebastiaan Janssen 3134668cec Bump version number 2014-04-30 12:00:19 +02:00
Shannon a8cc8fa688 Fixes case sensitivity with MySQL 2014-04-30 19:58:59 +10:00
Shannon cf2217cfe1 Fixes MySQL upgrades from < 6.0 2014-04-30 19:41:40 +10:00
Shannon e88e809e29 Use new YouTube oembed https end-point (old http one redirects) and make sure videos are embedded over https to allow for https Umbraco sites. 2014-04-30 17:39:13 +10:00
Shandem b404f3b56b Merge pull request #368 from uber-rob/u4-4785
Use new YouTube oembed https end-point (old http one redirects) and make...
2014-04-30 17:31:43 +10:00
Shannon c5559d7721 Specifying assembly for membership/user provider
Addresses http://issues.umbraco.org/issue/U4-4781
2014-04-30 11:27:47 +10:00
Shandem e9da4121bd Merge pull request #365 from aaronpowell/patch-2
Specifying assembly for membership/user provider
2014-04-30 11:24:08 +10:00
Shannon 771e216813 U4-2635 Skip past replaced word when checking
Avoids infinite loop if search and replacement are equal
2014-04-30 11:21:12 +10:00
Shannon 877ae6e026 Merge remote-tracking branch 'origin/7.1.1' into 7.1.2 2014-04-30 11:16:33 +10:00
Shandem e1d99855f6 Merge pull request #367 from lctjohn/7.1.1-U4-2635
fix for: U4-2635 Replace [...] method only replaces first ocurrence of oldString
2014-04-30 11:10:28 +10:00
Rob Church 9d9db577b4 Use new YouTube oembed https end-point (old http one redirects) and make sure videos are embedded over https to allow for https Umbraco sites. 2014-04-29 19:09:45 +01:00
John b4127294e5 U4-2635 Skip past replaced word when checking
Avoids infinite loop if search and replacement are equal
2014-04-29 14:06:05 +02:00
Aaron Powell d369af5fe0 Specifying assembly for membership/user provider
Addresses http://issues.umbraco.org/issue/U4-4781
2014-04-29 21:49:56 +10:00
John 74dd1f9181 U4-2635 Skip already-checked part of source input 2014-04-29 13:33:48 +02:00
John 86f7d79e7a Fixes: U4-2635 Umbraco.Core.Strings string Rep...
...lace(this string source, string oldString, string newString,
StringComparison stringComparison) method only replaces first ocurrence
of oldString
2014-04-29 13:24:54 +02:00
John c1781c2f4b U4-2635 add failing test
Only first occurrence of oldString is replaced.
2014-04-29 12:54:51 +02:00
per ploug d0dae43dd1 Merge branch '7.1.2' of https://github.com/umbraco/Umbraco-CMS into 7.1.2 2014-04-29 11:38:29 +02:00
per ploug 90bf600378 Replaces yepnope.js with lazyload.js
Solves the caching and multi-load of the same file problems - adds a bit
of promise-based loading logic ontop of ll.js to ensure order and count
2014-04-29 11:38:13 +02:00
Stephan d33cc29f98 Reintroduce IPublishedContentProperty 2014-04-29 09:47:30 +02:00
Tom Fulton 472c9d3a88 Fix U4-4779: Media Picker not working as single picker 2014-04-29 01:00:36 -06:00
Shannon e23d7d1af3 Fixes: U4-3404 Pressing preview should save the changes and then open preview window 2014-04-29 15:09:01 +10:00
Shandem 4b97eb2a9a Merge pull request #354 from JackieNagel/link-picker-issue
fix for issue U4-4707 - When a mediaitem is selected in the linkpicker, the id is not returned
2014-04-29 14:03:48 +10:00
Shannon dadf063ad5 Fixes: U4-4777 Preview with related links property editor doesn't work - this is just a temp fix, ensures that the YSOD is not created but doesn't fix the way preview pages are created. 2014-04-29 13:46:32 +10:00
Shannon 86e18ef89d Fixes merge issues 2014-04-29 13:36:21 +10:00
Shannon e0c3eda675 Merge remote-tracking branch 'origin/6.2.0' into 7.1.2
Conflicts:
	src/Umbraco.Core/Configuration/UmbracoSettings.cs
	src/Umbraco.Core/Models/PropertyExtensions.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Security/MembershipProviderBase.cs
	src/Umbraco.Core/Services/ContentService.cs
	src/Umbraco.Core/Services/MediaService.cs
	src/Umbraco.Core/Services/PackagingService.cs
	src/Umbraco.Tests/Models/DataValueSetterTests.cs
	src/Umbraco.Web.UI/web.Template.config
	src/umbraco.cms/businesslogic/media/Media.cs
	src/umbraco.cms/businesslogic/member/Member.cs
2014-04-29 13:06:10 +10:00
Shannon b98fbbc75d Fixes: U4-4770 Preview XML is not generated for many operations in the ContentService, also moves some more CRUD logic in the content service to the content repo. 2014-04-29 11:11:48 +10:00
Shannon aba1862811 Fixes: U4-4754 Member and Media repositories need to generate preview xml when EnableGlobalPreviewStorage is true 2014-04-29 09:58:38 +10:00
Adam Weber 470913f796 Update ImageCropMode.cs
Fixed spelling error in ImageCropMode.Stretch
2014-04-28 10:17:41 -05:00
Shannon 2f53698bc5 Fixes: U4-4766 UmbracoMembershipProvider.ChangePassword() is seal, what might be a breaking change? 2014-04-28 19:19:48 +10:00
Shannon e0e12d5773 Moves content xml crud logic for member service to member repo 2014-04-28 19:04:53 +10:00
Shannon 2e96de5449 Moves the CRUD logic from the media service to the media repo for dealing with content xml items and ensures it's done in the same transaction, streamlines how this process is done between the content, media, member services, adds test for it. 2014-04-28 18:53:21 +10:00
Shannon c5bce3b8cc completes: U4-4769 Remove the circular references from services for calls like ToXml which then calls into the PackagingService 2014-04-28 17:46:05 +10:00
Shannon b4286a7d4e works on U4-4769 - removing circular refs from media service 2014-04-28 17:38:24 +10:00
Shannon 31e018c045 Moves XML serialization for content/media/members to a resusable class: EntityXmlSerializer to remove the circular references we have by using the ToXml extension methods from directly in the services. This has been completed for the ContentService, next is Media and Member services. Updates the ContentService to not perform CUD operations for preview or published xml, this is now done at the repository level and now done in a single transaction for the saving and publishing events. Still need to do that for the member and media services too and the remaining methods in the content service 2014-04-28 17:28:40 +10:00
Shannon e964d52548 Merge branch 'U4-898' of https://github.com/leekelleher/Umbraco-CMS into leekelleher-U4-898 2014-04-28 12:49:28 +10:00
Shannon 50b71faff9 Adds .woff mime type 2014-04-28 12:45:12 +10:00
Shannon d7bd38386e Merge branch '7.1.2' of https://github.com/umbraco/Umbraco-CMS into 7.1.2 2014-04-28 12:40:01 +10:00
Shannon 1f581c1fcb Merge branch 'patch-1' of https://github.com/aaronpowell/Umbraco-CMS into aaronpowell-patch-1 2014-04-28 12:39:20 +10:00
Shandem 475e6970f9 Merge pull request #356 from mattbrailsford/7.1.2-rtetinymcecheck
Added check to rte controller so as not to reload tinymce script
2014-04-28 12:32:15 +10:00
Shandem 32c8a83449 Merge pull request #360 from Jwheuvel/7.1.2
Update web.config with .woff mime support
2014-04-28 12:28:31 +10:00
Shandem 33ee2a4e48 Merge pull request #362 from Jeavon/U4-4767
Fixes U4 4767 and adds 2 Tests
2014-04-28 12:26:36 +10:00
Shannon b420941ff4 Merge remote-tracking branch 'origin/6.2.0' into 7.1.2
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
2014-04-28 12:26:21 +10:00
Shannon 033fd1b7ff Fixes: U4-4765 backoffice user section does not save password changes in v6.2 2014-04-28 12:24:39 +10:00
Jeavon Leopold 5f0b09544a Added Test for getting a crop on a Upload property type instead of a Cropper 2014-04-27 22:17:24 +01:00
Jeavon Leopold 7aa618cbfb Fixes U4-4767 and adds a Test for it 2014-04-27 22:06:48 +01:00
Jwheuvel 44fbc29541 Update web.config with .woff mime support
Bootstrap icons aren't visible on Windows Phone because it uses the .woff variant but the mimetype isn't available. Updated the web.config and added .woff to the staticContent section of system.webServer.
2014-04-24 20:34:57 +02:00
Sebastiaan Janssen e3162d223d Tiny update 2014-04-24 17:37:15 +02:00
Sebastiaan Janssen 6e53e19e60 Adding an Allbinaries NuSpec for use on UaaS 2014-04-24 14:03:28 +02:00
Shannon d9ac529e7e Merge remote-tracking branch 'origin/6.2.0' into 7.1.2
Conflicts:
	src/Umbraco.Core/Models/PropertyType.cs
	src/Umbraco.Web.UI/umbraco_client/GenericProperty/genericProperty.js
	src/Umbraco.Web/WebServices/CoreStringsController.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/create/nodetypeTasks.cs
	src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-04-24 16:33:04 +10:00
Shannon 2621b25fd3 Ensures that member saving events don't get raised for normal member operations like validating and getting a user and flagging them as online. This fixes: U4-3451 Cache on Partial View refreshed, after member execute login 2014-04-24 16:28:37 +10:00
Shannon 61055380c5 Ensures that member saving events don't get raised for normal member operations like validating and getting a user and flagging them as online. This fixes: U4-3451 Cache on Partial View refreshed, after member execute login 2014-04-24 16:26:21 +10:00
Shannon adf09d925f adds a comment 2014-04-24 14:51:41 +10:00
Shannon 12170fd787 fixes ysod overlay for ajax errors 2014-04-24 14:23:17 +10:00
Shannon c32cae16db Fixes: U4-4696 Macro personalized cache with custom membership provider not working - for any membership provider regardless of provider user key type 2014-04-24 12:14:06 +10:00
Shannon 437d1b759b fix for: U4-4696. Macro personalized cache with custom membership provider not working 2014-04-24 12:13:50 +10:00
Shannon e10e04aabf Fixes: U4-4696 Macro personalized cache with custom membership provider not working - for any membership provider regardless of provider user key type 2014-04-24 12:12:06 +10:00
Shannon 2c1807bb37 Merge branch '7.1.2' of https://github.com/umbraco/Umbraco-CMS into 7.1.2 2014-04-24 11:58:31 +10:00
Shannon c6e3340be1 Updates an error msg for media resource, performs a null check 2014-04-24 11:58:18 +10:00
Shandem 3bac4877eb Merge pull request #353 from eerrecart/fix-U4-4696
fix for: U4-4696. Macro personalized cache with custom membership provider not working
2014-04-24 11:54:54 +10:00
Stephan f46811ff67 U4-3027 - fix content & property types alias casing 2014-04-24 00:18:24 +02:00
Stephan ee210ae5d8 U4-3027 - fix content & property types alias casing 2014-04-24 00:17:21 +02:00
Stephan 6d50b46bd8 U4-4747,3027... - bugfix content type editor / aliases 2014-04-23 19:28:04 +02:00
Stephan 0810e90478 U4-4747,3027... - bugfix content type editor / aliases 2014-04-23 19:26:48 +02:00
Shannon e8989de82e Merge remote-tracking branch 'origin/6.2.0' into 7.1.2 2014-04-23 22:29:54 +10:00
Shannon a51bf232ec Fixes issue with data type pre-values and using PreValueAsArray when they are dictionary formatted. 2014-04-23 22:24:16 +10:00
Shannon cefc319bfb Fixes issue with data type pre-values and using PreValueAsArray when they are dictionary formatted. 2014-04-23 22:15:33 +10:00
Shannon b60ee9944d fix merge issues 2014-04-23 20:54:31 +10:00
Shannon 0d8ffc0e67 Merge remote-tracking branch 'origin/6.2.0' into 7.1.2
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/RecycleBinRepository.cs
	src/Umbraco.Core/Services/ContentService.cs
	src/Umbraco.Core/Services/ServiceContext.cs
	src/Umbraco.Tests/MockTests.cs
	src/Umbraco.Web/Cache/DistributedCacheExtensions.cs
	src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs
2014-04-23 20:45:02 +10:00
Shannon fd19411e65 Fixes: U4-4743 Add IMemberService and IUserService to ServiceContext ctor 2014-04-23 20:41:03 +10:00
Shannon 7ac7bb9714 Fixes: U4-4746 Examine does not index updated paths/levels for moved/trashed media, U4-4744 Examine events do not listen for recycle bin emptying 2014-04-23 20:28:09 +10:00
Shandem 95cd32ad8c Merge pull request #359 from Jeavon/7.1.2-ImageCropper
Adding support for Image Crop Ratio Dimension Support & UpScale to GetCropUrl & More Tests
2014-04-23 20:20:09 +10:00
Shannon 021cac9ca5 Fixes: U4-4746 Examine does not index updated paths/levels for moved/trashed media, U4-4744 Examine events do not listen for recycle bin emptying 2014-04-23 20:19:36 +10:00
Stephan aaa56002a9 Merge remote-tracking branch 'origin/7.1.2' into 7.1.2 2014-04-23 11:23:39 +02:00
Stephan c00c59af1d U4-4676 - fix property alias corruption issue 2014-04-23 11:22:47 +02:00
Sebastiaan Janssen 56d949ab9d Correcting some more paths, come on, work! 2014-04-23 11:22:45 +02:00
Sebastiaan Janssen 65ecff4248 D'oh, automated builds make obj folders, not bin folders 2014-04-23 10:57:21 +02:00
Sebastiaan Janssen 9c82e8bc8c Build needs to be in debug mode to get all the pdb files 2014-04-23 10:42:38 +02:00
Sebastiaan Janssen 421162d809 Bump version + Attempt at U4-4742 Publish debugging symbols for NuGet package 2014-04-23 10:11:36 +02:00
Shannon 360c324511 updates examine events for media to update media if it is moved to recycle bin 2014-04-23 16:11:12 +10:00
Shannon 949447c25f Fixes examine lookup for children to ignore recycled media 2014-04-23 13:40:11 +10:00
Shannon 99d7bf91b7 Fixes null check in recycle bin repo
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/RecycleBinRepository.cs
2014-04-23 13:39:34 +10:00
Shannon cc3a6f8c7a Fixes examine lookup for children to ignore recycled media 2014-04-23 13:34:57 +10:00
Shannon 9bbe8e7a93 Fixes null check in recycle bin repo 2014-04-23 13:34:25 +10:00
Shannon 508a40cd50 Merge remote-tracking branch 'origin/6.2.0' into 7.1.2
Conflicts:
	src/Umbraco.Web/Controllers/UmbRegisterController.cs
	src/Umbraco.Web/Models/RegisterModel.cs
2014-04-23 12:00:32 +10:00
Shannon a92c232178 Fixes: U4-4653 MembershipHelper RegisterMember does not set password and ignores logMemberIn, adds a new flag to the model as to whether or not to have the cookie set as a persistent cookie (default is true) 2014-04-22 19:03:43 +10:00
Shannon 30901446e1 Fixes: U4-1853 Tinymce with the format dropdown added as soon as you interact with it the content tree stops working [Uncaught TypeError: Cannot set property 'href' of undefined (anonymous function) DependencyHandler.axd:57] Chrome Only.. 2014-04-22 18:17:28 +10:00
Stephan e42149e8d9 Detached PublishedProperty remains internal for now 2014-04-22 10:13:39 +02:00
Shannon a4949a1132 Merge remote-tracking branch 'origin/6.2.0' into 7.1.2 2014-04-22 17:49:01 +10:00
Shannon 0725d95941 fixes merge 2014-04-22 17:48:36 +10:00
Shannon d772336c0f Fixes: U4-4695 Copy document type to new parent seems to lose some data, U4-4535 Create Copy method on the content type Service 2014-04-22 17:48:08 +10:00
Shannon 4f8485e7d9 Merge remote-tracking branch 'origin/6.2.0' into 7.1.2 2014-04-22 14:00:28 +10:00
Shannon f673cb024a Adds unit test for ensuring reset identities on cloning a content type 2014-04-22 14:00:03 +10:00
Shannon c4046ecb32 Fixes 'Clone' methods to ensure a Deep clone is used 2014-04-22 13:48:51 +10:00
Shannon b978582675 Merge remote-tracking branch 'origin/6.2.0' into 7.1.2
Conflicts:
	src/Umbraco.Web/Mvc/RenderViewEngine.cs
2014-04-22 13:05:30 +10:00
Shannon 7823609500 Fixes: U4-4682 Get EditorTemplates and DisplayTemplates working with RenderViewEngine 2014-04-22 13:03:47 +10:00
Shannon 069ae9930a Fixes: U4-3425 App_Code XSLT Extensions aren't recognized 2014-04-22 12:20:35 +10:00
Shannon 509d3f2647 Merge remote-tracking branch 'origin/6.2.0' into 7.1.2
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
2014-04-22 12:01:59 +10:00
Shannon a88cb3f724 Fixes: U4-3425 App_Code XSLT Extensions aren't recognized 2014-04-22 11:59:21 +10:00
Sebastiaan Janssen 2881118a02 Fixes U4-4026 Inline styling on container affect header text - properly 2014-04-21 16:37:20 +02:00
Sebastiaan Janssen 464cfb34f2 Merge pull request #358 from nabbed/patch-1
Update README.md
2014-04-21 13:25:03 +02:00
Sebastiaan Janssen 7a04881428 Fixes U4-4728 Public Access Error Page Choose link not selectable 2014-04-21 11:42:53 +02:00
Ben Norman 8556cf5702 Update README.md 2014-04-21 19:32:36 +10:00
Sebastiaan Janssen 1c0038ead3 Fixes U4-4726 Image Cropper Listed Dimensions Inversed From Settings 2014-04-21 10:58:15 +02:00
Jeavon Leopold ef787fc769 Adding upScale parameter to GetCropUrl 2014-04-21 09:45:05 +01:00
Jeavon Leopold ec04469b16 If only one dimension specified with Ratio mode then assume a square 2014-04-21 09:27:53 +01:00
Jeavon Leopold 80db81a7c5 Adding GetCropUrl ratio mode tests 2014-04-21 08:53:40 +01:00
Jeavon Leopold 7787c51156 Creating the internal GetBaseCropUrl method and moving the logic from the Model GetCropUrl method to ImageCropperBaseExtensions so that it can be used by both the Model method and the template extensions
Also added some new tests
2014-04-21 08:38:53 +01:00
Stephan 1a02e6be97 Detached PublishedProperty 2014-04-19 18:39:11 +02:00
Stephan 536b8ee921 U4-3425 - TypeHelper referenced assemblies issue 2014-04-19 17:44:52 +02:00
Stephan 12acdd8122 U4-3425 - TypeHelper referenced assemblies issue 2014-04-19 16:48:08 +02:00
Stephan 3bf1041041 U4-3787 - Ensure we republish published descendants when republishing 2014-04-19 14:31:36 +02:00
Stephan cd459e8b7d Merge remote-tracking branch 'origin/7.1.2' into 7.1.2 2014-04-19 14:21:24 +02:00
Stephan 7ae522b511 U4-3787 - Ensure we republish published descendants when republishing 2014-04-19 14:20:26 +02:00
Jeavon Leopold 1cf20597a4 Getting Ratio mode to work with Crop dimensions and also moving cache buster to always being the last variable 2014-04-19 11:04:32 +01:00
Jeavon Leopold e8d41a1b5e Adding Ratio Mode parameter to GetCropUrl helper 2014-04-18 22:04:23 +01:00
Jeavon Leopold 9a14a29a53 Updating ImageProcessor to v1.8.8 and ImageProcessor.Web to v3.2.2 2014-04-18 20:39:38 +01:00
mattbrailsford d66998a3e3 A better test (checks to see if it's even defined) 2014-04-18 15:52:26 +01:00
mattbrailsford fe4da60b15 Added check to rte controller so as not to reload tinymce script if it's already loaded (we don't check the CSS, but I figure this is ok) [This is temp bandaid for #U4-4724] 2014-04-18 15:43:36 +01:00
Shannon 52186f5cb2 Merge remote-tracking branch 'origin/6.2.0' into 7.1.2
Conflicts:
	src/Umbraco.Core/Models/Member.cs
2014-04-17 20:08:07 +10:00
Shannon b13251778e Fixes: U4-4713 Provider Name not set when using Custom Connection String from the Installer 2014-04-17 20:05:55 +10:00
Shannon 51309e62ec Fixes: U4-4714 Sql Azure no longer a database option in 7.1 2014-04-17 19:55:17 +10:00
Shannon fee23fac0a updates deep clone to have the false flag for resetting properties (we don't want to remember them when cloning)
Conflicts:
	src/Umbraco.Core/Models/Member.cs
2014-04-17 18:54:55 +10:00
Shannon 15f4de4ed0 fixes build issues 2014-04-17 18:52:07 +10:00
Shannon 8c303893d2 updates deep clone to have the false flag for resetting properties (we don't want to remember them when cloning) 2014-04-17 18:46:37 +10:00
Shannon 7d556a0318 Merge remote-tracking branch 'origin/6.2.0' into 7.1.2
Conflicts:
	src/Umbraco.Core/Cache/CacheProviderExtensions.cs
	src/Umbraco.Core/Cache/DictionaryCacheProviderBase.cs
	src/Umbraco.Core/Cache/ICacheProvider.cs
	src/Umbraco.Core/Cache/ObjectCacheRuntimeCacheProvider.cs
	src/Umbraco.Core/Models/Member.cs
	src/Umbraco.Core/Models/PreValue.cs
	src/Umbraco.Core/Models/PropertyType.cs
	src/Umbraco.Core/Services/DataTypeService.cs
	src/Umbraco.Tests/Models/Collections/PropertyCollectionTests.cs
	src/Umbraco.Tests/Umbraco.Tests.csproj
	src/Umbraco.Web/Models/PublishedProperty.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/webservices/MediaUploader.ashx.cs
2014-04-17 18:10:42 +10:00
Shannon cf6775ec31 moves an internal class 2014-04-17 18:05:12 +10:00
Shannon 1a13366cc9 Working on U4-4701 Fixup DataTypeService and repository with cache - the deletion logic all now happens in the transaction before it was done quite poorly for updating content types :( 2014-04-17 18:03:34 +10:00
Shannon 595b039ebe Working on U4-4701 Fixup DataTypeService and repository with cache, pre-values are now persisted properly using units of work with it's own mini internal repo. 2014-04-17 17:41:08 +10:00
Shannon e6406e9757 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2014-04-17 14:23:52 +10:00
Shannon bf65bf5bab Got pre-values caching properly and data types using the runtime cache provider correctly + unit tests. 2014-04-17 14:23:37 +10:00
Stephan a39a659858 Bugfix published content extension .Next() 2014-04-16 19:10:50 +02:00
Stephan 306d83cbd6 Bugfix published content extension .Next() 2014-04-16 19:04:49 +02:00
Stephan a4eedb9f8b U4-4575 - refactor 2014-04-16 18:51:12 +02:00
Stephan 1da901be96 U4-4575 - refactor prop. conversion logic 2014-04-16 18:25:41 +02:00
Shannon d953966248 Completes: U4-4670 Add .ContainsAny string extension to Umbraco.Core.StringExtensions 2014-04-16 17:01:26 +10:00
Shannon 2f679a52f4 fix build 2014-04-16 16:52:45 +10:00
Shannon ad8ab9f46e Fixes media uploader issue to ensure non-approved file types are not saved 2014-04-16 16:48:52 +10:00
Shannon 9b344a5a69 Added tests for member groups and member cloning. Added tests to verify that all entities can be serialized without issue. 2014-04-16 16:44:08 +10:00
Shannon 0a28bdafc2 Merge remote-tracking branch 'origin/6.2.0' into 6.2-cachefixing 2014-04-16 15:54:37 +10:00
Shannon a3a0f1a0bf adds some logging 2014-04-16 15:38:16 +10:00
Shannon f69527eac1 Fixes media uploader issue to ensure non-approved file types are not saved 2014-04-16 15:38:01 +10:00
Shannon 7aa1f480c9 Fixes up some cloning with value types and collections 2014-04-16 15:33:21 +10:00
Shannon 998f031877 Merge branch '6.2.0' into 6.2-cachefixing 2014-04-16 14:01:38 +10:00
Shannon ac7cb8febe Fixes cache providers to ensure it stores and resolves clones 2014-04-16 14:01:26 +10:00
Shannon 6e166bdba7 publicizes DeepCloneHelper 2014-04-16 13:40:20 +10:00
Shannon 1f2e46a195 Simplifies much of the deep cloning with the DeepCloneHelper and adds tests 2014-04-16 13:39:42 +10:00
Shannon bb22f5a283 More code and tests written for deep cloning. 2014-04-16 11:23:00 +10:00
Jackie Nagel 4890e97168 Added removal of isMedia whenever a contentnode is selected 2014-04-15 19:59:31 +02:00
Jackie Nagel e4f63c0576 Now inserting mediaId in the link picker and setting the isMedia flag so that you can get mediaId's from the linkPicker dialogservice 2014-04-15 18:07:40 +02:00
Shannon dcac5d4709 More code and tests written for deep cloning. 2014-04-15 20:31:32 +10:00
Shannon 0e4e12d0ba More code and tests written for deep cloning. 2014-04-15 19:12:42 +10:00
Shannon 9118701669 More test written for deep cloning. 2014-04-15 14:53:19 +10:00
Shannon 58758e7a41 More work on deep cloning, have test passing for IContent 2014-04-15 13:52:49 +10:00
curiosoelbicho 1eaf02b221 fix for: U4-4696. Macro personalized cache with custom membership provider not working 2014-04-14 21:39:31 -03:00
Shannon 5697809ce9 Merge branch '7.1.2' of https://github.com/umbraco/Umbraco-CMS into 7.1.2 2014-04-14 18:33:04 +10:00
Shannon 4f5cae55c2 Fixes: U4-4654 7.1.1 InsertMacroController unescapes objects to string 2014-04-14 18:32:28 +10:00
Sebastiaan Janssen e5b4769109 Remove test code 2014-04-14 09:27:25 +02:00
Shannon 5990a95d13 Fixes: U4-4610 Unmapped members in Automapper 2014-04-14 15:20:02 +10:00
per ploug e3c4ed5bf7 Changes grunt to accept a buildversion param
use grunt build --buildversion=7.1.2 to set it in all client files
2014-04-10 14:25:26 +02:00
Sebastiaan Janssen 02a4c2f4fc Update for WebPI 2014-04-09 09:35:02 +02:00
Sebastiaan Janssen b60aa3031c Post.cshtml shouldn't be there 2014-04-08 12:03:55 +02:00
Sebastiaan Janssen 2a0e3d803f Merge branch '7.1.1' of https://github.com/umbraco/Umbraco-CMS into 7.1.1 2014-04-08 11:37:50 +02:00
Sebastiaan Janssen 670a67225a Upgrade to Json.Net 6.0.2 2014-04-08 11:37:40 +02:00
perploug 0bedf09f48 Fixes: U4-4609 v7.1 Media Picker datatype only allows selection of images not PDFs 2014-04-08 11:34:42 +02:00
perploug 41ad18deef Removes autocomplete from installer password field 2014-04-08 11:07:23 +02:00
perploug 4745be4765 Fixes missing listview icons 2014-04-08 11:07:02 +02:00
perploug 13891bb033 Merge branch '7.1.1' of https://github.com/umbraco/Umbraco-CMS into 7.1.1 2014-04-07 16:08:45 +02:00
perploug a2efd7ab53 Fixes: U4-4619 Make sure installer pings stats 2014-04-07 16:08:34 +02:00
Sebastiaan Janssen 3c204da150 Spelling error 2014-04-07 16:05:21 +02:00
Sebastiaan Janssen ab7371e146 Bump version number 2014-04-07 14:29:59 +02:00
Sebastiaan Janssen 0f5c79afbc Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.1 2014-04-07 13:02:56 +02:00
Sebastiaan Janssen 4a516f7da9 Manually applying PR #347 2014-04-07 13:01:43 +02:00
Sebastiaan Janssen fcb080658d Reverting 221bfa5f3d so that views are found in partials again
Tested creating/editing members with custom properties in combination with our snippets and
that seems to work fine now, so not sure what this was supposed to fix.
Fixes U4-4604 Surface Controller functionality changed in 7.1 breaking site
2014-04-07 12:16:45 +02:00
Aaron Powell f45edbe2fe U4-4629 - Detecting existing macros
By setting the ID of the macro the repository layer will update the existing instance rather than trying to create a new one, which would result in a duplicate alias and that violates a table index.
2014-04-07 18:10:09 +10:00
perploug 08d74e3320 Tiny tweak more 2014-04-03 14:01:25 +02:00
perploug 98fd75b55d Updating user screen on the installer 2014-04-03 13:52:18 +02:00
perploug e7da70e076 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-04-03 11:52:01 +02:00
perploug 200cec0e23 Hardcodes starterkit guid into the installer
This way we can change it remotely to another package instead of relying
on just getting the first guid in the collection of kits
2014-04-03 11:51:51 +02:00
perploug 807778a737 Fixes: U4-4592 U7.1 - You can trigger a lot "Unsaved changes" bars 2014-04-03 11:50:50 +02:00
Sebastiaan Janssen 66d61c9d20 One more ImageProcessor update 2014-04-03 11:29:13 +02:00
Sebastiaan Janssen ecae5a856a Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0
Conflicts:
	src/Umbraco.Core/Services/IRelationService.cs
	src/Umbraco.Web/Models/PublishedProperty.cs
	src/Umbraco.Web/PublishedCache/MemberPublishedContent.cs
2014-04-03 11:13:13 +02:00
Sebastiaan Janssen bf8add4f8d Manually picked up PR #343 2014-04-03 11:10:43 +02:00
perploug 256fa3385a Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-04-03 09:31:47 +02:00
perploug ebaa46b2fc Fixes: U4-4212 Insert Image in RTE not resizing image 2014-04-03 09:31:32 +02:00
Sebastiaan Janssen e207185d51 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-04-03 09:30:12 +02:00
Sebastiaan Janssen 5efc45a7dd Bump version number 2014-04-03 09:29:52 +02:00
Sebastiaan Janssen c3fc27565d Update version of ImageProcessor and refer to NuGet in the csproj instead of the bin (!) 2014-04-03 09:26:51 +02:00
Sebastiaan Janssen 0af3f9dce0 Fixes U4-4278 Multiple RadioButtonList on one Document
Manually applying pull request as it's a bit faster to copy&paste instead of resolve merge conflicts
2014-04-03 08:55:19 +02:00
perploug 426b02b08a Sets zoom throttle to 100 instead of 300
To limit the number of re-calculations, but still keep it somewhat
fluent
2014-04-03 00:41:27 +02:00
perploug a4e23ef82b Missing files in last commit 2014-04-03 00:40:36 +02:00
perploug d0c6c4aafa Fixes: U4-4332 MediaPicker - Typealias is hardcode several places 2014-04-03 00:37:59 +02:00
perploug 3ea7e6fb8a Partially fixes: U4-4479 Cropper preview in backoffice is a bit off from the actual crop
Makes the cropper card UI reset on save, ensuring changes populate
2014-04-02 23:04:37 +02:00
Stephan 9940b78a57 U4-4575 - fix 8371105 2014-04-02 17:00:24 +02:00
Stephan 8371105c10 U4-4575 - property converters use wrong source value 2014-04-02 16:00:46 +02:00
perploug d4b0f3c570 Resizing safeguards to ensure we only return positive 2014-04-02 14:21:40 +02:00
perploug 29416320d2 Fixes failing macrospec tests
doooh, it referenced marcoParamsDictionary - instead of
macroParamsDictionary - whats up with that Marco guy?
2014-04-02 13:43:03 +02:00
perploug d11eb485e1 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-04-02 13:19:41 +02:00
perploug 300bd3bed4 Fixes: U4-4558 U7 Macro Parameter Editors needs some love!
Adds some config to the media picker and fixes thumbnail issues
2014-04-02 13:19:26 +02:00
Sebastiaan Janssen 3ca5443350 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-04-02 12:02:29 +02:00
Sebastiaan Janssen f6d56f51d4 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0
Conflicts:
	src/Umbraco.Core/Services/IRelationService.cs
	src/Umbraco.Web/Controllers/UmbRegisterController.cs
2014-04-02 12:01:55 +02:00
Sebastiaan Janssen 53c0bd6938 Fixes: Password is not saved when using the Register snippet 2014-04-02 11:59:16 +02:00
perploug 174aa9f4ad Fixes: U4-4581 Hotkey - Click on disabled element 2014-04-02 11:51:56 +02:00
Sebastiaan Janssen a768fe5bb3 Ports behaviour from membershiphelper from v7 to 6 to make them the same 2014-04-02 11:42:48 +02:00
Sebastiaan Janssen d9c66cd4b3 Adds AddRelation and missing events in RelationService from v7 into v6 2014-04-02 11:41:59 +02:00
Stephan 6d3e8e1f6d U4-4559 - tests 2014-04-02 11:40:05 +02:00
Stephan b6185b847f U4-4575 - property converters use wrong source value 2014-04-02 11:39:53 +02:00
perploug c8877d0a2c Fixes failing dropdown prop editor tests 2014-04-02 11:35:23 +02:00
perploug 891810b045 Adds newsletter to installer
With the good ol' V6 installer code, ahhh the smell of code patina
2014-04-02 11:20:35 +02:00
Sebastiaan Janssen 77d910b6b6 We don't really need to scream greetings to people who try to use the member picker 2014-04-01 19:14:42 +02:00
Sebastiaan Janssen 47044b3a77 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-04-01 16:46:43 +02:00
Sebastiaan Janssen 5b693f9310 Adds ability to add/remove a single role to/from a single member, which is much nicer than having to instantiate arrays 2014-04-01 16:43:11 +02:00
Sebastiaan Janssen 40ebc1295c Fixes error thrown when saving password and actually using the Umbraco membership provider 2014-04-01 15:30:42 +02:00
Sebastiaan Janssen b769b224c2 Fixes error thrown when saving password and actually using the Umbraco membership provider 2014-04-01 15:29:16 +02:00
Sebastiaan Janssen 89efe40f41 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-04-01 14:27:47 +02:00
Sebastiaan Janssen 51660d918c Assembly redirect seems to help a lot installing NuGet pkg, should finally be able to close U4-4510 nuget targets file creates an invalid path in the property group 2014-04-01 14:22:13 +02:00
Sebastiaan Janssen ea7b053106 Merge pull request #340 from leekelleher/U4-4550
Fixes: U4-4550 Media Picker preview with transparent images
2014-04-01 13:06:58 +02:00
Sebastiaan Janssen 3e17201ce7 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-04-01 11:59:26 +02:00
Sebastiaan Janssen 1f03983628 Clean up belle/build folder when building with build.bat to make sure it's pristine 2014-04-01 11:54:25 +02:00
Sebastiaan Janssen 15aa6fc4b8 Fixed U4-4576 7.0.4 : InternalMemberSearcher config incorrectly uses 'enableLeadingWildcards', should be 'enableLeadingWildcard' 2014-04-01 11:53:56 +02:00
Sebastiaan Janssen 41e8a9ef2d Fixed U4-4576 7.0.4 : InternalMemberSearcher config incorrectly uses 'enableLeadingWildcards', should be 'enableLeadingWildcard' 2014-04-01 11:51:51 +02:00
perploug a492976a32 Fixes: U4-4557 Color Picker - default is black, but it can't be added without choosing another color first
Sets color to be black by default, so will be added if you click add
without setting anything, so its consistent with the default swatch
2014-04-01 10:08:50 +02:00
perploug 88e09f9077 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-04-01 10:02:23 +02:00
perploug 65a1709bd3 Fixes: U4-4537 Macro Textbox parameter in RTE Encoding issue 2014-04-01 10:02:10 +02:00
Sebastiaan Janssen 6478a8424a Fixes test, additional Tag mapper requires count to be updated 2014-04-01 09:11:07 +02:00
leekelleher 55ade4e491 Replaced solid/semi-transparent background, with a checkered background image. 2014-03-31 22:45:35 +01:00
Stephan a767aa9f3a Merge pull request #342 from kipusoep/7.1.0
Changed $('#form1') usage to $('form')
2014-03-31 18:19:29 +02:00
Sebastiaan Janssen 50321e5936 Merge pull request #336 from bjarnef/7.1.0_-_U4-4026
Fix for U4-4026 Inline styling affect header text
2014-03-31 17:32:50 +02:00
perploug 1321702d19 Fixes: U4-3649 Bottom button bar gradient overlaps last field
Temp fix, as we will likely refactor or editor directives before
building more core editors
2014-03-31 13:24:30 +02:00
perploug 005ff2f830 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-31 13:17:27 +02:00
perploug dff3fde840 Fixes: U4-4553 7.1 Template drop down has values but is blank
patches the it on the clientside for now, longerterm solution is to have
templates being returned as prevalues, but will leave that to shannon as
there could be other things accidentally being poked doing that.
2014-03-31 13:17:15 +02:00
Sebastiaan Janssen 44504ff6af Fixes summary for the TagMapper 2014-03-31 12:59:28 +02:00
Sebastiaan Janssen 25d3389759 Merge pull request #341 from robertjf/7.1.0
Fixes #U4-4544 Issue: TagService.GetAllTags(group) throws Exception in MappingResolver
2014-03-31 12:57:51 +02:00
Robert Foster 3f97c74712 removed commented out code 2014-03-31 22:00:54 +11:00
perploug 1152b61fb0 7.1 login greetings update 2014-03-31 12:43:05 +02:00
perploug b1842de045 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-31 12:37:26 +02:00
perploug 750a2862ee Fixes: U4-4562 Images and markdown editor 2014-03-31 12:37:08 +02:00
perploug 7632075df4 Fixes: U4-4536 Tree points to wrong views after install 2014-03-31 12:29:44 +02:00
perploug aa75cd4ea8 Fixes: U4-4549 Related Links "New Window" checkbox has css "display: none" 2014-03-31 12:28:56 +02:00
Sebastiaan Janssen 06827bd7a5 Merge pull request #338 from vnbaaij/7.1.0
Solution for  U4-4548
2014-03-31 11:57:13 +02:00
Stefan Kip 9a82ab7d4a Changed $('#form1') usage to $('form')
I'm having an issue with v6.1.6 where the form's id is 'aspnetForm' instead of 'form1', I don't know why.
Using $('form') is much safer than using $('#form1').
2014-03-31 09:56:16 +02:00
Robert Foster b1037d1936 Added a TagMapper class to resolve ITag back to TagDto. 2014-03-30 19:07:35 +11:00
leekelleher ccdc3a1eab Fixes: U4-4550 Media Picker preview with transparent images 2014-03-28 16:59:34 +00:00
leekelleher 655d629621 Rebased web.Template.config - reapplied the whitespace fixes. 2014-03-28 16:31:03 +00:00
leekelleher c8e0fedce4 Made the whitespace consistent in config files.
This may ease the frustration of web-developers doing upgrades.
2014-03-28 16:25:01 +00:00
Vincent Baaij a47387fec0 Solution for U4-4548 2014-03-28 16:03:51 +01:00
perploug c29d08c915 Fixes: U4-4489 7.1 RC, warn about changes partially overlays breadcrumb 2014-03-28 11:00:29 +01:00
perploug b8f796eb2c Fixes: U4-4532 Unable to insert Image in TinyMCE when Image property 'umbracoFile' is changed from type 'Upload' to the new 'Image Cropper' 2014-03-28 10:39:24 +01:00
Shannon b9088c9ac0 fixes build 2014-03-28 08:51:25 +11:00
Shannon 7a8f8ac0fe Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-03-28 08:31:52 +11:00
Shannon 49cf0f98ce U4-1752 - Add GetPreValueAsString(id) method to the @Umbraco helper 2014-03-28 08:31:21 +11:00
Shandem 22ffa86e18 Merge pull request #301 from Jeavon/U4-1752
U4-1752 - Add GetPreValueAsString(id) method to the @Umbraco helper
2014-03-28 08:21:32 +11:00
perploug c4e2d98138 U4-4532 Unable to insert Image in TinyMCE when Image property 'umbracoFile' is changed from type 'Upload' to the new 'Image Cropper'
Replaces the old media api with the resolveFile helper methods
2014-03-27 02:46:32 -07:00
Shannon c01211c62d Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/moveOrCopy.aspx.cs
2014-03-27 17:28:46 +11:00
Shannon d8a3e00440 Fixes: U4-2843 Copying Document Type when Selecting Master Doesn't Work (Master ignored), U4-3552 Copy nested document type is failing 2014-03-27 17:26:55 +11:00
Shannon 264c537b50 Fixes: U4-4530 Edit Profile Snippet: Check for null before loop 2014-03-27 16:52:43 +11:00
Shannon f26c61d736 renames file 2014-03-27 16:43:34 +11:00
Shannon 43f647fd94 Fixes U4-4531 dialogService.macroPicker callback wrong property name 2014-03-27 16:43:20 +11:00
Shannon cc0bcc2d59 Fixes unit tests 2014-03-27 16:27:57 +11:00
Shannon 1b23540b87 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Web/Cache/DistributedCache.cs
2014-03-27 16:12:37 +11:00
Shannon c309e18f13 Fixes: U4-459 Public Access permissions not set on distributed servers 2014-03-27 16:11:34 +11:00
Shannon dec60885b4 Fixes more thread safety issues with Access.cs 2014-03-27 15:50:56 +11:00
Shannon eee09ec45b Completes: U4-459 Public Access permissions not set on distributed servers 2014-03-27 14:43:07 +11:00
Shannon b4daab2856 started fixing: U4-459 Public Access permissions not set on distributed servers but have commented that code out for now because it will cause problem in some LB scenarios. 2014-03-27 14:28:45 +11:00
Shannon fdfbad254d Fixes some very badly handled threading issues with the Access (public access) class 2014-03-27 14:28:12 +11:00
bjarnef 0c6e766030 Fix for U4-4026 Inline styling affect header text
Inline styling on container affect header text and dropdown with
text-align:center on language in settings section.
2014-03-27 02:42:21 +01:00
Shannon 7444363cef adds another null check to the other TranslateItem method 2014-03-27 08:13:05 +11:00
Shandem a82097b92b Merge pull request #334 from Jeavon/U4-4527
Fix for U4-4527 U7 - Creating initial Folder in media section causes exc...
2014-03-27 08:05:56 +11:00
Jeavon Leopold 07934161a4 Fix for U4-4527 U7 - Creating initial Folder in media section causes exception 2014-03-26 10:07:20 +00:00
Shandem 9194030a9a Merge pull request #333 from Nicholas-Westby/7.1.0
Replaced "retreive" with "retrieve".
2014-03-26 17:45:03 +11:00
Shannon 1cbaace777 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	build/Build.proj
	build/NuSpecs/UmbracoCms.Core.nuspec
	build/NuSpecs/build/UmbracoCms.targets
	build/NuSpecs/tools/install.ps1
	src/Umbraco.Web.UI/umbraco_client/Editors/EditScript.js
2014-03-26 15:06:03 +11:00
Nicholas-Westby ef5052324b Replaced "retreive" with "retrieve". 2014-03-25 20:49:52 -07:00
Nicholas-Westby 204a8d813c Replaced "retreive" with "retrieve". 2014-03-25 20:48:05 -07:00
Nicholas-Westby 8009cb3892 Replaced "retreive" with "retrieve". 2014-03-25 20:46:23 -07:00
Nicholas-Westby 284d168cd7 Replaced "retreive" with "retrieve". 2014-03-25 20:45:28 -07:00
Nicholas-Westby fdd025aefd Replaced "retreive" with "retrieve". 2014-03-25 20:44:47 -07:00
Nicholas-Westby e36d4768e1 Replaced "retreive" with "retrieve". 2014-03-25 20:44:08 -07:00
Nicholas-Westby df2047e8f8 Replaced "retreive" with "retrieve". 2014-03-25 20:43:32 -07:00
Nicholas-Westby d9280d5238 Replaced "retreive" with "retrieve". 2014-03-25 20:42:29 -07:00
Nicholas-Westby 388249f500 Replaced "retreive" with "retrieve". 2014-03-25 20:41:32 -07:00
Nicholas-Westby a08b75592e Replaced "retreive" with "retrieve". 2014-03-25 20:40:44 -07:00
Nicholas-Westby 38ea6dfbfe Replaced "retreive" with "retrieve". 2014-03-25 20:39:45 -07:00
Nicholas-Westby 39ccde221a Replaced "retreive" with "retrieve". 2014-03-25 20:38:58 -07:00
Nicholas-Westby 17b6366ea3 Replaced "retreive" with "retrieve". 2014-03-25 20:37:20 -07:00
Nicholas-Westby 3d6a608b12 Replaced "retreive" with "retrieve". 2014-03-25 20:36:46 -07:00
Nicholas-Westby 851f58df9c Replaced "retreive" with "retrieve". 2014-03-25 20:35:36 -07:00
Nicholas-Westby 0ff0cc6366 Replaced "retreive" with "retrieve". 2014-03-25 20:34:44 -07:00
Nicholas-Westby 08004ecc68 Replaced "retreive" with "retrieve". 2014-03-25 20:33:59 -07:00
Nicholas-Westby 4a2544d0e6 Replaced "retreive" with "retrieve". 2014-03-25 20:32:39 -07:00
Nicholas-Westby bace1cce74 Replaced "retreive" with "retrieve". 2014-03-25 20:31:31 -07:00
Nicholas-Westby acc88e25d8 Replaced "retreive" with "retrieve". 2014-03-25 20:30:17 -07:00
Nicholas-Westby 2a1a16d478 Replaced "retreive" with "retrieve". 2014-03-25 20:28:47 -07:00
Nicholas-Westby a5afb8ed19 Replaced "retreive" with "retrieve". 2014-03-25 20:27:57 -07:00
Nicholas-Westby d02678e05c Replaced "retreive" with "retrieve". 2014-03-25 20:26:58 -07:00
Nicholas-Westby 9e0bbd3c99 Replaced "retreive" with "retrieve". 2014-03-25 20:26:06 -07:00
Nicholas-Westby 539efcc669 Replaced "retreive" with "retrieve". 2014-03-25 20:25:24 -07:00
Nicholas-Westby d0d9d85151 Replaced "retreive" with "retrieve". 2014-03-25 20:24:27 -07:00
Nicholas-Westby ffa307613c Replaced "retreive" with "retrieve". 2014-03-25 20:23:36 -07:00
Nicholas-Westby 19ea6d6005 Replaced "retreive" with "retrieve". 2014-03-25 20:22:34 -07:00
Nicholas-Westby 155b1737d3 Replaced "retreive" with "retrieve". 2014-03-25 20:20:51 -07:00
Nicholas-Westby b66253f33e Replaced "retreive" with "retrieve". 2014-03-25 20:19:50 -07:00
Nicholas-Westby bcbadfe648 Replaced "retreive" with "retrieve". 2014-03-25 20:19:12 -07:00
Nicholas-Westby 3325b06873 Replaced "retreive" with "retrieve". 2014-03-25 20:18:30 -07:00
Nicholas-Westby 852914bf6b Replaced "retreive" with "retrieve". 2014-03-25 20:17:55 -07:00
Nicholas-Westby 3e14807370 Replaced "retreive" with "retrieve". 2014-03-25 20:17:18 -07:00
Nicholas-Westby e44cb6708d Replaced "retreive" with "retrieve". 2014-03-25 20:16:31 -07:00
Nicholas-Westby fd43b27d00 Replaced "retreive" with "retrieve". 2014-03-25 20:15:34 -07:00
Nicholas-Westby 524f113611 Replaced "retreive" with "retrieve". 2014-03-25 20:14:54 -07:00
Nicholas-Westby 04dcf50218 Replaced "retreive" with "retrieve". 2014-03-25 20:14:23 -07:00
Nicholas-Westby 2b497deaa3 Replaced "retreive" with "retrieve". 2014-03-25 20:13:30 -07:00
Nicholas-Westby dbe2f8ea37 Replaced "retreive" with "retrieve". 2014-03-25 20:12:50 -07:00
Nicholas-Westby 7dc0239ad1 Replaced "retreive" with "retrieve". 2014-03-25 20:11:46 -07:00
Nicholas-Westby 72fdc5f472 Replaced "retreive" with "retrieve". 2014-03-25 20:10:34 -07:00
Shannon cde3c42cec Fixes: U4-4455 Javascript error with single quotes in literals
Conflicts:
	src/Umbraco.Web.UI/umbraco_client/Editors/EditScript.js
2014-03-26 13:34:26 +11:00
Shannon 10b544abb9 Fixes: U4-4455 Javascript error with single quotes in literals 2014-03-26 13:31:15 +11:00
Shannon 88aecdf672 fixes U4-4517 Color picker not showing colors 2014-03-26 13:07:07 +11:00
Shannon ad95736eaa Fixes issues relating to adding ability to sort pre-values, had to update all property editors that use the shared sortable pre-values, ensure the list items are an array and then sorted. 2014-03-26 13:01:53 +11:00
Shannon 34a21a78a0 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-26 11:23:58 +11:00
Shannon 1e01c2669f fixes missing semi-colon 2014-03-26 11:23:48 +11:00
Shandem d3a7389b89 Fixes file name casing 2014-03-26 11:21:31 +11:00
Shandem bc8b6c4bea Fixes file name casing 2014-03-26 11:21:08 +11:00
Shandem 3953a48a3b Merge pull request #332 from arknu/7.1_U4-3744
U4-3744: Make it possible to make individual selections while still selecting the entire text on first click
2014-03-26 11:08:50 +11:00
Shannon 2f44e94bd0 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-26 11:00:46 +11:00
Shannon 5eeb8d7df6 Fixes: U4-4520 Issue: MultipleTextStringValueConverter returns an empty string array due to mismatched XML value format 2014-03-26 11:00:32 +11:00
arknu 231f23cc6e Cleaned up the code a bit 2014-03-25 22:26:05 +01:00
Sebastiaan Janssen 3235678d29 U4-4510 nuget targets file creates an invalid path in the property group
That should fix this one properly now
2014-03-25 20:40:44 +01:00
Sebastiaan Janssen f13ddddc16 U4-4510 nuget targets file creates an invalid path in the property group
That should fix this one properly now
2014-03-25 20:39:46 +01:00
arknu 490c346fcf U4-3744: Make it possible to make individual selections while still selecting the entire text on first click 2014-03-25 19:34:19 +01:00
Shannon 8f1d8419a0 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	build/NuSpecs/build/net40/UmbracoCms.targets
	build/NuSpecs/build/net45/UmbracoCms.targets
	build/NuSpecs/build/net451/UmbracoCms.targets
	src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
2014-03-25 15:47:57 +11:00
Shannon be8320bb4b fixes some compatibility issues with PR for sortable pre-vals 2014-03-25 14:14:09 +11:00
Shannon 1d4b6178e5 Merge branch 'wip-u4-3951' of https://github.com/AndyButland/Umbraco-CMS into AndyButland-wip-u4-3951
Conflicts:
	src/Umbraco.Web.UI.Client/src/views/prevalueeditors/multivalues.html
2014-03-25 13:31:21 +11:00
Shannon 3427f596e3 fixes up a few notes. 2014-03-25 13:07:16 +11:00
Shannon c31ea7409f Merge branch 'fix-u4-3839' of https://github.com/lars-erik/Umbraco-CMS into lars-erik-fix-u4-3839 2014-03-25 12:47:26 +11:00
Shannon f88e60bcb5 Fixes: U4-3481 Adding Scripting Files and Partial View Macro File with the same name and 'create macro' selected fails. 2014-03-25 12:16:27 +11:00
Shannon c81919e269 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-25 11:45:57 +11:00
Shannon c936aaa517 Fixes: U4-3845 v7.0.0 keepUserLoggedIn issue 2014-03-25 11:45:38 +11:00
Shandem b8f88e0459 Merge pull request #330 from Jeavon/7.1.0-ImageCropper-JeavonWIP
7.1.0 image cropper - removal of lots of duplicated code, fixes for various param options and some further unit tests
2014-03-25 10:47:09 +11:00
Shannon 1628ac917c Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-25 10:45:14 +11:00
Shannon ab586a49ce Fixes: U4-4508 Save causes content to vanish in IE 2014-03-25 10:44:55 +11:00
Jeavon Leopold ff2ee540e2 Fixing the CacheBusting on GetCropUrl as it was totally random which meant the server cache was creating a new cache file for every request. Now changed it to use item updateDate.ToFileTimeUtc as the cache busting value so it will change only when the item is updated in Umbraco. 2014-03-24 19:27:00 +00:00
Jeavon Leopold b450299d45 GetCropUrl - moved propertyAlias and cropAlias to after width and height so that GetCropUrl(100,100,"myProperty") is possible and renamed useFocalPoint to preferFocalPoint 2014-03-24 18:37:15 +00:00
Jeavon Leopold 0ebe535922 ImageCropDataSet - a little bit of Stylecop 2014-03-24 17:58:12 +00:00
Jeavon Leopold f5f8fe7b42 GetCropUrl - Stylecop and an additional test 2014-03-24 17:51:52 +00:00
Jeavon Leopold f51a66b728 GetCropUrl - further code duplication removal and 2 new unit tests 2014-03-24 16:32:50 +00:00
Sebastiaan Janssen f8a7b453c7 Sync the en and en_us translations 2014-03-24 17:26:04 +01:00
Sebastiaan Janssen 89235f707c Sync the en and en_us translations 2014-03-24 17:25:31 +01:00
Jeavon Leopold 550166c41b Removing HasPropertyAndValueAndCrop method as it's no longer needed 2014-03-24 15:49:04 +00:00
Jeavon Leopold 40be3957f6 GetCropUrl - ensuring that GetCropUrl(width,height) works and also adding the useFocalPoint parameter 2014-03-24 15:44:04 +00:00
Sebastiaan Janssen 6ccce4d914 U4-4515 GenericProperty.ascx.cs references non-existent lblAlias control, causing YSOD of death when editing certain document types
Whoops, missed some references
2014-03-24 16:01:47 +01:00
Sebastiaan Janssen 14ea374b24 Also removing stray semicolons here for U4-4510 nuget targets file creates an invalid path in the property group 2014-03-24 15:44:09 +01:00
Sebastiaan Janssen 4d49268c47 U4-4515 GenericProperty.ascx.cs references non-existent lblAlias control, causing YSOD of death when editing certain document types
Codebehind file somehow got out of sync
2014-03-24 15:16:57 +01:00
Sebastiaan Janssen a569796adb Removes stray semicolons from the nuget targets files 2014-03-24 14:00:12 +01:00
Jeavon Leopold 59de0613f5 GetCropUrl - Removing duplicate code 2014-03-24 11:43:55 +00:00
Sebastiaan Janssen 8391c32886 Fix whitespace 2014-03-24 09:34:48 +01:00
Sebastiaan Janssen bf2efd30e9 U4-4073 Audit Trail is missing from action menu
Removed the icons for now as they are missing and should be new style icons anyway
2014-03-24 09:34:47 +01:00
Shannon 187373132f Completes: U4-4154 convert existing property data from XML to JSON during upgrade v6 - 7 2014-03-24 18:44:18 +11:00
Shannon 79584a9cf9 Fixes thread safety issue with RichTextPreValueController 2014-03-24 16:32:42 +11:00
Shannon 96fa8c7dc9 Publicizes a few things, including the fix for U4-3981 Make Umbraco.Web.WebApi.Filters.UmbracoApplicationAuthorizeAttribute public 2014-03-24 15:41:46 +11:00
Shannon 5e43ddc13c Fixes: U4-4502 Umbraco7.0.4 media picker shows uploaded images minus 1 2014-03-24 13:43:20 +11:00
Shannon 98f76a989f Adds better error handling for the media picker - we were not detecting image types before and were getting loads of server errors. Fixes up some method return calls 2014-03-24 12:38:49 +11:00
Shannon 2e8993adb8 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	build/NuSpecs/build/net40/UmbracoCms.targets
	build/NuSpecs/build/net45/UmbracoCms.targets
	build/NuSpecs/build/net451/UmbracoCms.targets
	build/NuSpecs/tools/Readme.txt
	build/NuSpecs/tools/install.ps1
	src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
2014-03-24 11:31:52 +11:00
Shannon 81600f0f3c Merge branch 'patch-2' of https://github.com/designagencytom/Umbraco-CMS into designagencytom-patch-2
Conflicts:
	src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
2014-03-24 11:18:11 +11:00
Shannon 74ccd79408 Merge branch 'patch-1' of https://github.com/designagencytom/Umbraco-CMS into designagencytom-patch-1 2014-03-24 11:13:07 +11:00
Shandem 3e0a754dc0 Merge pull request #328 from arjanpot/7.1.0
CropUrl should be formatted with InvariantCulture.
2014-03-24 11:04:59 +11:00
Sebastiaan Janssen 006a89e136 U4-4498 Doc & Media Type, Server Error when upgrade, 7.0.4 to 7.1.0 RC via Nuget
Have to copy in the Umbraco and Umbraco_Client folder during NuGet updates as well.
2014-03-23 16:10:58 +01:00
Sebastiaan Janssen 29dbbee173 Imageprocessor config files are no longer required and shouldn't ship with Umbraco 2014-03-23 15:02:54 +01:00
arjanpot cd31637371 CropUrl should be formatted with InvariantCulture. 2014-03-22 11:22:01 +01:00
perploug ab70c98d4c Ensures the config is cleared properly every time 2014-03-20 09:41:30 -07:00
Sebastiaan Janssen 424ff02734 Forgot a few includes, fixed! 2014-03-20 17:29:16 +01:00
Sebastiaan Janssen 80bd8d962b Make sure the App_Plugins folder is there 2014-03-20 16:58:35 +01:00
Sebastiaan Janssen 4b4efde490 Make sure the App_Plugins folder is there 2014-03-20 16:57:53 +01:00
Sebastiaan Janssen 956364decd v7 NuGet changes also apply to v6 2014-03-20 16:02:24 +01:00
Sebastiaan Janssen 7bc2bdae75 Merge pull request #327 from Jeavon/7.1.0-ImageCropper-JeavonWIP
7.1.0 image cropper - GetCropUrl not using .Url anymore
2014-03-20 15:45:24 +01:00
Sebastiaan Janssen c43ab7942a Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-20 15:38:52 +01:00
Morten Christensen 166f9b939c Moving the sqlce dlls to UmbracoFile in the nuspec 2014-03-20 15:37:41 +01:00
Morten Christensen ede9e00a7f Updating the targets to include a few more folders 2014-03-20 15:37:21 +01:00
Sebastiaan Janssen 0bfbacfd66 No need to back up the config files, they don't get overwritten if you answer "No"
Updated the readme.
2014-03-20 15:33:41 +01:00
Jeavon Leopold 5c5827e319 If cropper property editor not in use on umbracoFile then we can use mediaItem.Url 2014-03-20 14:31:21 +00:00
Sebastiaan Janssen 05ca98219d Also copy the new config files over 2014-03-20 14:57:07 +01:00
Sebastiaan Janssen a83a0f1e25 Fix merge conflict 2014-03-20 14:27:39 +01:00
Sebastiaan Janssen ea7d476559 Backup config files properly 2014-03-20 14:26:11 +01:00
Jeavon Leopold 2d2f57a71b GetCropUrl - needed to get the url from within the json within the check for a crop otherwise a exception can occur 2014-03-20 13:22:45 +00:00
designagencytom 6133e8f8c2 Update loadMemberGroups.cs
Sort the roles alphabetically to make it easier to manage the list when it becomes very large.
2014-03-20 13:02:25 +00:00
Morten Christensen bfaace373c Updating the install ps1 to only copy over the web.config on initial install to ensure that the web.config is correct. 2014-03-20 14:00:43 +01:00
Morten Christensen a6d24fce93 Updating the targets files to copy in umbraco backoffice client dependencies AfterBuild with condition !Exists. 2014-03-20 14:00:42 +01:00
Jeavon Leopold 7e8aaebfce Merge remote-tracking branch 'origin/HEAD' into 7.1.0-ImageCropper-JeavonWIP 2014-03-20 12:42:14 +00:00
Jeavon Leopold 6a3fb87499 GetCropUrl to not use .Url property but get directly from cropper JSON 2014-03-20 12:42:05 +00:00
Sebastiaan Janssen 74cad56a6b Merge pull request #324 from Jeavon/7.1.0-ImageCropper-JeavonWIP
7.1.0 image cropper - fix and basic unit test and new overload GetCropUrl(cropAlias)
2014-03-20 13:30:09 +01:00
Jeavon Leopold 9b02457f7a Adding a basic unit test for GetCropUrl - more to come 2014-03-20 12:22:50 +00:00
Jeavon Leopold 6077e24685 Add GetCropUrl(string cropAlias) overload and fix mediaItem.Url 2014-03-20 11:23:17 +00:00
Sebastiaan Janssen 39a3a9dc56 Reference the correct ImageProcessor version to get it included in the build 2014-03-20 09:42:06 +01:00
Shannon 801a3731a2 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-03-20 17:55:03 +11:00
Shannon bcb7561e74 fixes unit test 2014-03-20 17:44:13 +11:00
Shannon f077520781 Fixes: U4-4154 convert existing property data from XML to JSON during upgrade v6 - 7 to ensure that other data types that have this property editor are upgraded as well. Fixes some of the installer bits so that the steps are not marked as completed if they have problems. 2014-03-20 17:35:51 +11:00
Shannon 61ec1e4c35 Fixes the Url property to work with the image cropper to be consistent with the upload field. 2014-03-20 14:58:18 +11:00
Shannon 3710c0916c Fixes up the Image cropper extensions, ensures that we don't recursively call Url (this is a special property). 2014-03-20 14:57:48 +11:00
Shannon 863667f5bd Moves the image crop enums to their correct location and renames them to be more descriptive (less generic). 2014-03-20 14:27:58 +11:00
Shannon 7475851bb5 Ensures that we log exceptions instead of completely ignoring them 2014-03-20 14:17:00 +11:00
Shannon a721ed5e0f Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Web/Cache/UserPermissionsCacheRefresher.cs
2014-03-20 13:19:50 +11:00
Shannon 0bc621c40f Merge branch 'Jeavon-7.1.0-ImageCropper-JeavonWIP' into 7.1.0 2014-03-20 13:19:26 +11:00
Shannon 620fbde1db Merge branch '7.1.0-ImageCropper-JeavonWIP' of https://github.com/Jeavon/Umbraco-CMS into Jeavon-7.1.0-ImageCropper-JeavonWIP
Conflicts:
	src/Umbraco.Web/ImageCropperBaseExtensions.cs
2014-03-20 13:18:57 +11:00
Shannon 39e7947435 fixes merge issues 2014-03-20 13:15:53 +11:00
Shannon 2792937b17 Merge branch '7.1_U4-4447' of https://github.com/arknu/Umbraco-CMS into arknu-7.1_U4-4447
Conflicts:
	src/Umbraco.Web/PropertyEditors/FileUploadPropertyEditor.cs
	src/Umbraco.Web/PropertyEditors/ImageCropperPropertyEditor.cs
2014-03-20 13:10:39 +11:00
Shannon af9a9a9a7a Fixes: U4-4481 Image cropper pre value editor doesn't validate properly 2014-03-20 13:03:30 +11:00
Shannon 83f4c0262e Fixes: U4-4475 Creating new member doesn't put it in examine. Fixes up some cache refreshers to ensure they are calling the base method so that events fire consistently.
Conflicts:
	src/Umbraco.Web/Cache/UserPermissionsCacheRefresher.cs
2014-03-20 12:38:19 +11:00
Shannon 08d4ce7667 Fixes: U4-4475 Creating new member doesn't put it in examine. Fixes up some cache refreshers to ensure they are calling the base method so that events fire consistently. 2014-03-20 12:36:13 +11:00
Shannon 2340adbe94 Fixes: U4-4425 Umbraco Macros break on quote, U4-4290 RTE changes Macro parameter values containing right angle brackets, U4-4442 Line break in macro text area breaks the Macro 2014-03-20 12:21:40 +11:00
Shannon fb6b234491 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-03-20 10:38:40 +11:00
Shannon 15222e176e Fixes: U4-4474 YSOD when expanding Members tree 2014-03-20 10:37:54 +11:00
Shannon 63b92eaee5 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Models/MemberType.cs
	src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs
	src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs
2014-03-20 09:54:13 +11:00
Shannon 84dd7dc61a Fixes: U4-4466 6.2-beta - Creating Member Type without Alias results in no viewable Member Types in back office 2014-03-20 09:52:31 +11:00
Sebastiaan Janssen 5a4b09f9d1 Make sure we use the latest ImageProcessor version in VS as well, not just in the nuget package. 2014-03-19 19:56:48 +01:00
perploug bbbd03f001 Final tweak to the U4-4477 - media items could not be retreived on refreshing the editor 2014-03-19 19:14:39 +01:00
perploug 4a721ddf34 Fixes: U4-4477 Single Media picker doesn't show thumbnail any more 2014-03-19 18:44:46 +01:00
Jeavon Leopold d88745bf49 Adding ToLowerInvariant to compares and also removing a redundant method copied in from my cropper package but not needed 2014-03-19 16:53:13 +00:00
perploug 3543204794 Revert "Merge"
This reverts commit 1573eb2f74.
2014-03-19 09:51:07 -07:00
arknu c565744a9b Fix drag-and-drop upload 2014-03-19 17:46:04 +01:00
perploug 2470ec3ded Minor addition to the U4-4477 fix 2014-03-19 09:38:27 -07:00
perploug 7b4f7abbcd Fixes: U4-4477 Media picker doesn't show thumbnail any more 2014-03-19 09:38:24 -07:00
perploug 1573eb2f74 Merge 2014-03-19 09:38:22 -07:00
Jeavon Leopold e8e8b536f1 Fix for GetCropUrl method when mediaItem.Url has JSON data 2014-03-19 16:12:30 +00:00
Sebastiaan Janssen 704c3df597 No more need for imageprocessor configs in web.config, yay! 2014-03-19 16:59:06 +01:00
Sebastiaan Janssen 36c107c0ef Quick fix for U4-4206 - not the absolute correct fix, but it'll get rid of that horrible null reference error 2014-03-19 14:30:53 +01:00
Sebastiaan Janssen 70f5641b83 Change to overflow:auto so there's no horizontal scroll bar when not necessary 2014-03-19 13:28:28 +01:00
Sebastiaan Janssen bbb5fe728a Better styling of ChangeDocType dialog 2014-03-19 13:25:16 +01:00
Sebastiaan Janssen 307ea6bd74 Fixes last error in U4-3470 Errors in console window are failed to load resource at
/umbraco/%7B%7Bcmd.icon%7D%7D
2014-03-19 11:48:46 +01:00
Sebastiaan Janssen 76eb06784d Don't try to access model.value when model.value might be empty. Fixes broken prevalue editor for RTE. 2014-03-19 11:19:34 +01:00
Jeavon Leopold c6e1235ac4 Fixing GetCropUrl overload 2014-03-19 09:52:53 +00:00
Sebastiaan Janssen 6ac2cc9f8b Not sure how the logout button ended up in the help dialog, sorry! :) 2014-03-19 10:38:43 +01:00
Shannon 9d5c8e5aed Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-03-19 19:45:39 +11:00
Shannon 56001a8ccb Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Services/PackagingService.cs
2014-03-19 18:55:20 +11:00
Shannon ff5dadde53 Fixes unit test and another potential migration problem using an old alias for foreign key 2014-03-19 18:43:10 +11:00
Shannon 6d92393f08 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-19 17:56:45 +11:00
Shannon 6169d13eb5 fixes the config issue with unit tests 2014-03-19 17:56:30 +11:00
perploug 361c382a2e Makes cropper components size-able
So all UI components can be given a max-size so they can scale image and
ui up accordingly
2014-03-18 23:49:09 -07:00
perploug 375b3948e0 Fixes: U4-4177 U7 - Add Startnode Picker to Multiple Media Picker 2014-03-18 23:49:05 -07:00
perploug 6453a82717 Allow cropper thumbnails to downscale 2014-03-18 23:49:02 -07:00
perploug a4c9fae05c Fixes: U4-4461: Case sensitive crop alias's 2014-03-18 23:49:01 -07:00
perploug 29edbb90a6 Fixes: Image grid using fullsize images instead of thumbs 2014-03-18 23:49:00 -07:00
Shannon 71201970e9 Gets the new color spectrum pre-value editor working. 2014-03-19 17:45:21 +11:00
Shannon 992727821b Merge branch 'robertjf-7.0.2' into 7.1.0 2014-03-19 15:43:46 +11:00
Shannon 67fd3cc234 Merge branch 'moppa-7.0.2' into 7.1.0 2014-03-19 15:41:06 +11:00
Shannon f70717985c Cleans up a little bit of code and adds some null checks. 2014-03-19 15:32:31 +11:00
Shannon ded82611a7 Finalizes: U4-4472 Image cropper should use IFileSystem - currently uses standard IO 2014-03-19 15:09:50 +11:00
Shandem 6a8cb5e123 Merge pull request #270 from stefana99/6.2.0-imagecropper
Changes to imageCropper, supports new mediafilesystem
2014-03-19 14:48:38 +11:00
Shandem 09428d703c Merge pull request #298 from KevinJump/6.2.0--PackageServiceFixes
6.2.0  package service fixes
2014-03-19 14:43:19 +11:00
Shannon 2b6b8e9e8c Fixes: U4-4470 New Installer doesn't deal with 500 errors, also fixes a tree init problem causing this particular ysod 2014-03-19 13:28:23 +11:00
Shannon a46c088d0c Ensures correct exceptions are thrown when configurations cannot be loaded, before was just null ref exception which was not good. 2014-03-19 11:00:32 +11:00
Shannon 65e591501c Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Tests/Migrations/Stubs/AlterUserTableMigrationStub.cs
2014-03-19 10:35:46 +11:00
Shannon a0541b000e Fixes: U4-4463 Upgrade 6.2.0 > 7.1.0 fails - due to incorrect formatting of foreign keys for sql servers
Conflicts:
	src/Umbraco.Tests/Migrations/AlterMigrationTests.cs
	src/Umbraco.Tests/Migrations/Stubs/AlterUserTableMigrationStub.cs
2014-03-19 10:33:37 +11:00
Shannon 1f6b139cde Fixes: U4-4463 Upgrade 6.2.0 > 7.1.0 fails - due to incorrect formatting of foreign keys for sql servers 2014-03-19 10:31:19 +11:00
Shannon 17893715fc Fixes the CDF nuget reference since we need the latest version and it is marked as visible now (this just undoes our old workaround) 2014-03-19 09:38:41 +11:00
Shannon a25e6e0d2c Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	build/Build.bat
	build/NuSpecs/UmbracoCms.Core.nuspec
	build/NuSpecs/build/net40/UmbracoCms.targets
	build/NuSpecs/build/net45/UmbracoCms.targets
	build/NuSpecs/build/net451/UmbracoCms.targets
	src/Umbraco.Core/Persistence/Querying/BaseExpressionHelper.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
2014-03-19 09:34:37 +11:00
Shannon 668935548d Fixes: U4-4394 7.0.4: Inconsistency in member tree listings
Conflicts:
	src/Umbraco.Core/Persistence/Querying/BaseExpressionHelper.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Web/Trees/MemberTreeController.cs
2014-03-19 09:28:13 +11:00
Shannon 14141fcaa5 Fixes the dictionary query syntax properly for all db's 2014-03-19 09:24:57 +11:00
arknu 1948fe12b3 U4-4447: Make image properties populate when uploading from ImageCropper 2014-03-18 22:31:05 +01:00
Sebastiaan Janssen 4bcf3983c5 Update readme and remove non-functioning backups from install.ps1 2014-03-18 18:41:05 +01:00
Sebastiaan Janssen 7c5942b05f Updating minimum required versions of dependencies to be the same as v7. 2014-03-18 18:40:20 +01:00
Sebastiaan Janssen 8b4d4e3189 Update readme and remove non-functioning backups from install.ps1 2014-03-18 18:38:16 +01:00
Sebastiaan Janssen 4f008f5848 Bump version to RC 2014-03-18 18:37:42 +01:00
Sebastiaan Janssen 1a40ccc838 Updating nuget targets files, like on v7. Also updates nuget author name. 2014-03-18 17:51:33 +01:00
Sebastiaan Janssen 0bf43da825 Time to finally update the author name as well 2014-03-18 17:49:53 +01:00
Sebastiaan Janssen c83db52bd7 Update database type wording and dropdown width 2014-03-18 17:45:26 +01:00
Sebastiaan Janssen 00e1556504 Update to the correct minimum requirements for ImageProcessor 2014-03-18 17:26:09 +01:00
Jeavon Leopold 5c8440a7d6 ImageCropper helpers WIP 2014-03-18 15:20:48 +00:00
Sebastiaan Janssen 3e86fb6298 ImageProcessor.Web only has a v3 for some reason 2014-03-18 15:54:10 +01:00
Sebastiaan Janssen 9b0895c5b0 People tend to forget to deploy global.asax A LOT, doesn't hurt to have it as content and
included in the VS project, this should help a bit as it's no longer a hidden file
2014-03-18 15:48:41 +01:00
Sebastiaan Janssen 4ad9ea1537 Bump the version to RC 2014-03-18 15:40:09 +01:00
Sebastiaan Janssen 0b08f19f53 U4-4174 Umbraco Nuget Install by Visual Studio 2013 failed
Should be fixed by referencing this version of WebApi. ImageProcessor is also required
2014-03-18 15:39:54 +01:00
Sebastiaan Janssen 527402a6d8 The Overflow starter kit adds App_Code and needs this reference to be able
to use HttpResponseMessage
2014-03-18 15:35:07 +01:00
Sebastiaan Janssen 9eea8c85e0 Include global.asax and Config\splashes folder while publishing with msdeploy 2014-03-18 15:32:39 +01:00
Stephan e80963093d Fix MySql dictionary issue
Conflicts:
	src/umbraco.cms/businesslogic/language/Item.cs
2014-03-18 12:44:32 +01:00
Shannon 6f586c7eeb Ensures we are not directly referencing Membership.Provider and instead targetting our provider by alias. 2014-03-18 20:36:02 +11:00
Shannon ff3b5baf06 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
2014-03-18 20:12:03 +11:00
Shannon 0749124f45 fixes bug with col name 2014-03-18 20:11:22 +11:00
Shannon 549aeecf31 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Models/Member.cs
2014-03-18 19:40:41 +11:00
Shannon bef970437a doh, fix for new ctor 2014-03-18 19:39:17 +11:00
Shannon 0898b13072 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Models/Member.cs
2014-03-18 19:31:26 +11:00
Shannon dda36f0147 added additional ctor for member to create an empty one 2014-03-18 19:30:54 +11:00
Shannon 9d3f362029 fixes minor issue with the backing up of the install folder 2014-03-18 19:27:58 +11:00
Shannon 4d13925e3b Fixes merge issues 2014-03-18 19:05:07 +11:00
Shannon 02481dcfba Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Configuration/UmbracoSettings.cs
2014-03-18 18:53:04 +11:00
Shannon caad775399 Removes the User membership provider name constant - it is not a constant, this value is configurable! 2014-03-18 18:52:17 +11:00
Shannon fd14065f14 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Models/Member.cs
	src/Umbraco.Core/Models/Membership/MembershipUserExtensions.cs
	src/Umbraco.Core/Persistence/Factories/MemberFactory.cs
	src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs
	src/Umbraco.Core/Persistence/Mappers/MemberMapper.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Services/IMembershipUserService.cs
	src/Umbraco.Core/Services/UserService.cs
	src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs
	src/Umbraco.Tests/Services/ContentServiceTests.cs
	src/Umbraco.Tests/TestHelpers/Entities/MockedMember.cs
	src/Umbraco.Tests/TestHelpers/Entities/MockedUser.cs
	src/Umbraco.Web.UI/install/steps/DefaultUser.ascx.cs
	src/Umbraco.Web/Controllers/UmbProfileController.cs
	src/Umbraco.Web/Routing/PublishedContentRequestEngine.cs
	src/Umbraco.Web/Security/WebSecurity.cs
	src/Umbraco.Web/umbraco.presentation/LegacyClasses.cs
	src/Umbraco.Web/umbraco.presentation/install/steps/LegacyClasses.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/channels/UmbracoMetaWeblogAPI.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/create/member.ascx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/create/memberTasks.cs
	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/login.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/webservices/MediaUploader.ashx.cs
2014-03-18 18:47:49 +11:00
Shannon 7a7720c460 Gets #U4-4454 Can't log in a new member created through memberservice completed 2014-03-18 18:41:18 +11:00
Shannon b2aeb835d5 Implements the SavePassword method of the MemberService 2014-03-18 17:45:11 +11:00
Shannon 8dd950bd52 Ensures all access to the users membership provider is done with our extension method 2014-03-18 17:22:25 +11:00
Shannon e2881e07d1 Ensures that all calls to the members membership provider are done so explicitly with the membership provider alias - this decouples the need to have the umbraco membership provider declared as the default, we were doing both before. 2014-03-18 17:08:21 +11:00
Shannon e0e0076a7a allows for client side validation on the text box and date picker controls and updates the models to allow support for this for any prop editor. 2014-03-18 15:29:14 +11:00
Shannon 00a96a4888 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-18 14:51:43 +11:00
Shandem b16cf375b9 Merge pull request #320 from imulus/u4-4432
U4-4432 - Expose Mandatory setting in ContentProperty
2014-03-18 14:48:53 +11:00
Shannon a3b433c73c Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-03-18 14:39:58 +11:00
Shandem 855a4961dd Merge pull request #321 from robbaman/7.1.0
Added datepicker support for IsRequired
2014-03-18 14:37:56 +11:00
Shannon 71de4dc7de Fixes: U4-3675 [NonAction] attribute should be ignored by Umbraco RenderActionInvoker 2014-03-18 14:28:05 +11:00
Shannon 19d3c06470 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Tests/TestHelpers/BaseUmbracoApplicationTest.cs
2014-03-18 14:20:45 +11:00
Shannon e22476f54a fixes some test logic 2014-03-18 14:19:26 +11:00
Shannon 20ae16b2d7 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2014-03-18 14:18:50 +11:00
Shannon 9e466971af fixes some test logic 2014-03-18 14:18:34 +11:00
Shannon 7017d8094d Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-18 13:08:39 +11:00
Shannon 0e40971178 Fixes remaining tests 2014-03-18 13:08:24 +11:00
perploug 1ae9816c28 Updates grunt file to work with latest jshint cfg format 2014-03-18 02:24:38 +01:00
Shannon e40cf3b8fc fixes js unit tests 2014-03-18 12:23:10 +11:00
Shannon 09ea82b37f fixes last unit tests 2014-03-18 11:57:53 +11:00
Shannon c44918f830 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-18 11:40:32 +11:00
Shannon 760dd42c43 Optimizes integration test performance and fixes failing unit tests. 2014-03-18 11:40:20 +11:00
perploug 0409192892 Fixes: U4-4449 Issue: Discard Changes popup inconsistency 2014-03-18 01:09:50 +01:00
Shannon d575eaa9c1 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/TypeFinder.cs
	src/Umbraco.Tests/Services/PackagingServiceTests.cs
	src/Umbraco.Tests/TreesAndSections/ApplicationTreeTest.cs
	src/Umbraco.Web/umbraco.presentation/CompatibilityHelper.cs
2014-03-18 09:46:43 +11:00
Shannon 373e9755ed Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-18 09:22:08 +11:00
perploug d6f00d9367 Fixes: U4-4405 List view icons are broken in firefox 2014-03-17 20:53:19 +01:00
perploug 3cabec84d4 Fixes broken IE11 slider in ImageCropper 2014-03-17 20:01:39 +01:00
perploug c9d12f7dc5 WIP on seperating logic from the content editor into smaller units 2014-03-17 19:40:52 +01:00
perploug 9e97b84fb8 Fixes issues with crop sizes prevalues 2014-03-17 19:40:52 +01:00
perploug f4fa090857 Removes dog with glasses + fixes unit tests 2014-03-17 19:40:51 +01:00
perploug 0e22a2bb5a Fixes installer progress bar 2014-03-17 19:40:50 +01:00
Stephan 36b10e71d7 U4-4373, U4-4374 - finalize fixes
Conflicts:
	src/Umbraco.Web/umbraco.presentation/CompatibilityHelper.cs
2014-03-17 15:44:16 +01:00
Stephan 3c6029c969 Merge remote-tracking branch 'origin/6.2.0' into 6.2.0 2014-03-17 15:27:25 +01:00
Stephan a4a0de3503 U4-4373, U4-4374 - finalize fixes 2014-03-17 15:25:25 +01:00
Shannon 217267bf94 Supercharges integration tests - now running at a great speed. 2014-03-17 22:22:44 +11:00
Shannon 4748366766 Fixes up some more test attributes 2014-03-17 20:59:31 +11:00
Shannon de15dc36e7 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Tests/TreesAndSections/ApplicationTreeTest.cs
2014-03-17 20:54:48 +11:00
Shannon ab00782d84 Fixes potential issue with why test were failing 2014-03-17 20:33:30 +11:00
Shannon 2d6d95a63e Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Tests/Persistence/Auditing/AuditTests.cs
	src/Umbraco.Tests/Persistence/PetaPocoExtensionsTest.cs
	src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/UserTypeRepositoryTest.cs
	src/Umbraco.Tests/PublishedContent/DynamicDocumentTestsBase.cs
	src/Umbraco.Tests/PublishedContent/PublishedContentExtensionTests.cs
	src/Umbraco.Tests/Routing/NiceUrlsProviderWithDomainsTests.cs
	src/Umbraco.Tests/Services/LocalizationServiceTests.cs
	src/Umbraco.Tests/Services/PackagingServiceTests.cs
	src/Umbraco.Tests/Services/PerformanceTests.cs
	src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs
	src/Umbraco.Tests/Umbraco.Tests.csproj
2014-03-17 19:44:34 +11:00
Shannon d19d1b3a18 Changes database behavior in integration tests to be opt-in, removes the db behavior to have a new schema per fixture, now we only deal in new files + schema per fixture/tests as it was taking longer to uninstall the db tables than just delete the file. 2014-03-17 19:38:29 +11:00
Shannon 5a779c24d0 Fixes: U4-4428 Upload field on members fails on resizing 2014-03-17 18:39:53 +11:00
Shannon c669a2702b Fixes: U4-4210 MNTP not working with Member and ensures the content picker has real validation built into it. Fixes up the EntityController switching out the global action selector. 2014-03-17 18:34:41 +11:00
Shannon f777f1b3d6 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-03-17 16:23:49 +11:00
Shannon 3e8ada24e4 reverts sebastian's commit as this will cause unwanted other side affects 2014-03-17 16:08:06 +11:00
Shannon fe884b2070 Fixes: U4-4426 Upload field on Member Type doesn't work 2014-03-17 16:01:09 +11:00
Shannon 30cfa4c0ae moves MemberCountType to correct namespace 2014-03-17 14:18:38 +11:00
Shannon 66aa3084f9 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Web.UI/packages.config
	src/Umbraco.Web/packages.config
	src/umbraco.cms/packages.config
	src/umbraco.cms/umbraco.cms.csproj
	src/umbraco.controls/packages.config
	src/umbraco.editorControls/packages.config
	src/umbraco.macroRenderings/packages.config
	src/umbraco.macroRenderings/umbraco.macroRenderings.csproj
2014-03-17 14:15:14 +11:00
Shannon d028ee2c3e Completes: U4-4457 Upgrade to latest CDF 2014-03-17 14:08:07 +11:00
Shannon 2bd5e908db Fixes merge issues 2014-03-17 14:01:42 +11:00
Shannon 154652c896 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Persistence/Migrations/MigrationRunner.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AddChangeDocumentTypePermission.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AdditionalIndexesAndKeys.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AssignMissingPrimaryForMySqlKeys.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/UpdateToNewMemberPropertyAliases.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Tests/Umbraco.Tests.csproj
	src/umbraco.controls/TreePicker/SimpleContentPicker.cs
2014-03-17 13:39:49 +11:00
Shannon a60e2318ad Fix Null Prevalue Values on Export of DataTypes
Exporting a DataType that has a Numeric pre-value that has no value
causes an Exception - added null checking to pre value.value
2014-03-17 13:23:26 +11:00
Shannon f642a7fd63 Fixes: U4-4368 Cannot insert the value NULL into column 'name' when creating new relation type from API 2014-03-17 13:21:17 +11:00
Shandem b4cce4860f Merge pull request #313 from KevinJump/7.1.0---Null-DataType-PropertyValue-Fix
Fix Null Prevalue Values on Export of DataTypes
2014-03-17 13:20:24 +11:00
Shannon d1d54d8e84 Fixes: U4-4427 Exception with selecting content start node in Multi-node tree picker 6.2.0 2014-03-17 13:12:08 +11:00
Shannon bbeedb6c1b Fixes: U4-4373 @Library.NodeById(-1).Id returns "0" instead of "-1"(6.2.0 beta) & U4-4374 @Model.NodeById(-1).DescendantsOrSelf().First().Id results in Excecption (6.2.0 beta) 2014-03-17 12:27:37 +11:00
Shannon 4745995f92 Fixes: U4-4373 @Library.NodeById(-1).Id returns "0" instead of "-1"(6.2.0 beta) 2014-03-17 11:45:42 +11:00
Shannon c66aca2d41 Adds migration to rename the index umbracoUserLogins_Index to IX_umbracoUserLogins_Index so that it follows standards, fixes unit test 2014-03-17 11:24:01 +11:00
Shannon af148a4544 reverts the notion of shema migration - we will run migrations normally as we've been doing, this fixes a couple of unit tests too. 2014-03-17 10:48:56 +11:00
Shannon d7ea8e02d6 fixes unit test 2014-03-17 09:40:28 +11:00
Shannon 3acec1dd65 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-17 09:38:46 +11:00
Sebastiaan Janssen e52f8dcbc9 Update wording on upgrades 2014-03-16 19:37:08 +01:00
Sebastiaan Janssen 60edf7d3b9 Pointing to the typical error log folder 2014-03-16 12:00:36 +01:00
Sebastiaan Janssen f626738174 DoResize(-1,-1) - I don't know why you'd ever want to attempt to resize to -1,-1.
Also removed the else clause as it hides the error until later, now size will be null at the appropriate time.
2014-03-16 11:46:49 +01:00
Shannon ad3c004d95 Added another property to a migration to specify a minimum current version - needed for specifically targeting a migration 'from' a version. Finally got mysql upgrading from 6.1 to 7.1 without issue, had to re-order a few things and ensure some migrations don't execute based on the 'from' version. 2014-03-15 20:15:01 +11:00
Shannon 58814d4ac2 updates the migration order 2014-03-15 20:11:42 +11:00
Shannon c29dbf444a Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AdditionalIndexesAndKeys.cs
	src/Umbraco.Core/Services/PackagingService.cs
	src/Umbraco.Core/Umbraco.Core.csproj
2014-03-15 19:02:59 +11:00
Shannon bd06729619 oops, fixes some logic with a closing bracket in the wrong place 2014-03-15 18:54:08 +11:00
Shannon bd1dc4f88d Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2014-03-15 18:53:25 +11:00
Shannon 67c1cc44c5 oops, fixes some logic with a closing bracket in the wrong place 2014-03-15 18:53:03 +11:00
Morten Christensen b680f87c12 Adding a note about the usage of the PackageInstallation class in the PackagingService 2014-03-14 12:14:43 +01:00
Morten Christensen 8db6633c91 Initial implementation of a new package installation approach based on PR-297. Everything is left internal as we don't know when something like this can be introduced.
Idea is to be able to install a complete package using the PackagingService, so that we eventually can obsolete the old Packager/Installer-code.
2014-03-14 12:11:38 +01:00
Robert Mulder 8843f6c02c Added datepicker support for IsRequired
Added support for the model.config.IsRequired flag to the datepicker property editor.
2014-03-14 10:15:48 +01:00
Shannon 6561a79b5c Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Tests/Migrations/AlterMigrationTests.cs
2014-03-14 19:35:11 +11:00
Shannon 3e5128147c fixes typo 2014-03-14 19:34:09 +11:00
Shannon 64c126ea61 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Configuration/GlobalSettings.cs
	src/Umbraco.Core/Persistence/Migrations/Initial/DatabaseSchemaResult.cs
	src/Umbraco.Tests/Umbraco.Tests.csproj
	src/Umbraco.Web/Security/Providers/UsersMembershipProvider.cs
	src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-03-14 19:33:53 +11:00
Shannon 3dcbcba9cf Updates the required migrations to be Schema migrations, ensures the foreign key deletion occurs with the correct supported syntax across db types. Ensures we don't try to drop a pk in mysql when it never existed. 2014-03-14 19:24:45 +11:00
Shannon b5329ace3b Backports fixes for legacy encoding checks and to not do any db lookups for the new membership providers and also ensures the legacy membership provider doesn't do any db lookups on init. 2014-03-14 18:38:57 +11:00
Shannon e1a134f587 Fixes: U4-4430 MySql primary key issues 2014-03-14 17:11:21 +11:00
Tom Fulton 1ec2901762 Expose Mandatory setting in ContentProperty
This allows a PropertyEditor to be aware of whether it's required or not, via: `$scope.model.mandatory` (along with `$scope.model.alias`, etc)
2014-03-13 23:32:12 -06:00
Robert Foster 58bfb6999d Merge remote-tracking branch 'upstream/7.0.2' into 7.0.2 2014-03-14 13:45:40 +11:00
Shannon e8056de589 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Persistence/Migrations/Initial/DatabaseSchemaResult.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AdditionalIndexesAndKeys.cs
	src/Umbraco.Web.UI/install/Default.aspx.cs
2014-03-14 13:06:45 +11:00
Shannon bbe6194b06 Exception is thrown if trying to run mysql in med trust. Migrations arranged to execute schema migrations first and then data migrations. If a schema migration fails it will attempt to run the downgrade scripts of the migrations if running mysql since schema changes aren't supported in transactions. Updated all sql syntax providers to try to return only the column indexes, not key indexes. Updates the db version checker to include errors for all missing columns, indexes and constraints in the db and vice versa in the schema. 2014-03-14 13:04:20 +11:00
Shandem 06a08be6de Merge pull request #317 from BatJan/patch-1
Fix of U4-4414 UX: Replace Change placeholder text in new installer
2014-03-14 11:35:10 +11:00
Shandem f1e8e845a2 Merge pull request #319 from BatJan/7.1.0_-_U4-4378
Fix of U4-4378 Label needed under button graphics for videos
2014-03-14 11:33:57 +11:00
Jan Skovgaard 20c5be0a8e Fix of U4-4378 Label needed under button graphics for videos 2014-03-13 13:32:35 +01:00
Shannon 6990c46262 Fixes installer when it fails on the db install or upgrades, fixes some upgrade queries with mysql, fixes ignoring case check for checking version 2014-03-13 21:47:08 +11:00
Shannon 099c558797 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-03-13 20:46:06 +11:00
Shannon d76fd7d25e updates schema result to have case ignored. 2014-03-13 20:45:07 +11:00
Shannon e020989577 Give some love to mysql with regards to schema validation and the syntax provider - need ignore case comparisons. 2014-03-13 20:42:57 +11:00
Shannon f2541cae86 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Web.UI/web.Template.Debug.config
2014-03-13 20:16:08 +11:00
Shannon a907b5bdcd Fixes up the dbconnection checker to work with all supported db types. 2014-03-13 20:14:56 +11:00
Shannon 7258964bb7 Ensures version specific db providers are not referenced in the web.config 2014-03-13 20:14:11 +11:00
Shannon d290ffa306 Fixes: U4-4392 Umbraco 7 delete member from others 2014-03-13 18:47:36 +11:00
Shannon 75bc3e09c6 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-03-13 18:43:40 +11:00
Shannon bcc2424577 fixes issue with getting 'other' 'members 2014-03-13 18:43:16 +11:00
Shannon 67f8b8f88b Fixes: U4-3606 Handle caching issues from server requests correctly 2014-03-13 18:24:37 +11:00
BatJan 2d44650139 Fix of U4-4414 UX: Replace Change placeholder text in new installer
Changed "First Last" in the name placeholder to "Full name".
2014-03-13 07:27:08 +01:00
Shannon 8eaea3fb54 fixes: U4-4285 Expose/Publicize (3rd party) PropertyEditors 2014-03-13 16:34:54 +11:00
Shannon 2166a4a5ac Fixes: U4-4394 7.0.4: Inconsistency in member tree listings 2014-03-13 15:25:30 +11:00
Shannon 3ba6391dda Ensures that 6.2 migrations are run for 7.1 as well. 2014-03-13 14:23:32 +11:00
Shannon 8574c6b7d0 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml
	src/Umbraco.Web/Models/ProfileModel.cs
	src/Umbraco.Web/Models/RegisterModel.cs
	src/Umbraco.Web/Models/UmbracoProperty.cs
2014-03-13 14:12:45 +11:00
Shannon b533a9f690 Merge commit '85a74e4fa700c83bab4bf3436f69f045029932cd' into 7.1.0
Conflicts:
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Web/Controllers/UmbLoginController.cs
	src/Umbraco.Web/Controllers/UmbLoginStatusController.cs
	src/Umbraco.Web/Controllers/UmbProfileController.cs
	src/Umbraco.Web/Controllers/UmbRegisterController.cs
2014-03-13 14:12:02 +11:00
Shannon 221bfa5f3d Fixes up issues with editing the member profile and registering a member with our snippets including specifying a custom member type. 2014-03-13 14:10:05 +11:00
Shannon 85a74e4fa7 Fixes: U4-4419 TempData is not being cleared on RedirectToCurrentUmbracoPage - it actually shouldn't be cleared but we need to handle how we add it properly as tempdata only clears when it is read 2014-03-13 12:21:31 +11:00
Shannon 62d4bff8aa Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Web.UI/config/ClientDependency.config
2014-03-13 11:11:51 +11:00
Shannon 095be823c6 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-13 11:11:10 +11:00
Shannon a8858ecfdd fixes unit tests 2014-03-13 11:10:29 +11:00
Shandem 9c48330aae Merge pull request #314 from esn303/7.1.0
fix typos, thousands separator and casing of installer facts
2014-03-13 11:03:59 +11:00
Marc 22792a2f8e fix typos, thousands separator and casing of installer facts 2014-03-12 11:05:50 +01:00
Shannon 0dc00a62e2 Adds ability to have proxy migrations so there is no duplication of declaring migrations and no duplication of executing already executed migrations. Would have been a bit nicer to have 2014-03-12 20:36:40 +11:00
Shannon 0c4e442578 Checks for index existence before trying to add 2014-03-12 18:52:05 +11:00
Shannon 9d7d866467 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/CoreBootManager.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AdditionalIndexesAndKeys.cs
	src/Umbraco.Core/Umbraco.Core.csproj
2014-03-12 18:44:54 +11:00
Shannon 3b26834484 updates migration to make it a little faster 2014-03-12 18:40:39 +11:00
Shannon aee10348e5 Ensures not to add new indexes if they already exist 2014-03-12 18:37:22 +11:00
Shannon d0fc3ddba5 ensures applicationeventsresolver is disposed of in the correct place. 2014-03-12 18:11:05 +11:00
Shannon 3aadca167f oops, updated the reset to resetcollections for clearing collections for resolvers. 2014-03-12 18:00:00 +11:00
Shannon 3a92c26a7f Adds ability to extract index details from databases using sql syntax provider. 2014-03-12 17:17:52 +11:00
Shannon 6a4ea56dc5 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/CoreBootManager.cs
	src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AdditionalIndexesAndKeys.cs
2014-03-12 17:17:05 +11:00
Shannon cdd6768966 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-12 15:09:48 +11:00
Shannon d89205abaf Fixes: U4-4395 YSOD when creating membergroup 2014-03-12 15:08:55 +11:00
Shannon ff21379547 Makes ApplicationEventsResolver IDisposable so we can clear resources after startup. 2014-03-12 14:16:52 +11:00
Sebastiaan Janssen 74f00a9f89 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-12 00:33:03 +01:00
Sebastiaan Janssen 3912300f83 Really... nobody noticed "MEH"? 2014-03-12 00:30:25 +01:00
Shannon c8ff708a43 adds null check to MemberGroupCacheRefresher 2014-03-12 10:04:33 +11:00
Sebastiaan Janssen 693899935b For absolute clarity added the fact that this is the current Umbraco version. 2014-03-11 19:09:17 +01:00
Sebastiaan Janssen 1a87d96f77 Temporary fix to at least have a scrollbar when protecting a page (only added inline style, and
removed an unopened </div>, the rest is just formatting)
2014-03-11 18:47:50 +01:00
Sebastiaan Janssen 0a959b5b84 Thought I'd moved the version up a already but looks like I forgot to commit. Also made it
have a bit more contrast with it's background.
2014-03-11 17:39:11 +01:00
Sebastiaan Janssen f2202eb337 Removing 503 header as Azure Websites would just stop doing anything after seeing this, so
the rewrite to noNodes.aspx would never happen and you'd get a blank screen with:
Service Unavailable HTTP Error 503. The service is unavailable.
2014-03-11 17:28:55 +01:00
Shannon 19b7a9dfff Completes: U4-4369 Remove the need for an Areas folder for the installer 2014-03-11 18:09:54 +11:00
Shannon f432e23a47 Removes files that should never have been committed 2014-03-11 18:07:07 +11:00
Kevin Jump 20d92432b2 Fix Null Prevalue Values on Export of DataTypes
Exporting a DataType that has a Numeric pre-value that has no value
causes an Exception - added null checking to pre value.value
2014-03-11 06:55:59 +00:00
Shannon 59cdb8a6fe Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-03-11 17:27:30 +11:00
Shannon aed4c1faed minor code cleanup and a null check. 2014-03-11 17:26:14 +11:00
Shannon 2ecab70772 Fixes: U4-4182 Exception during plugins loading 2014-03-11 17:00:35 +11:00
Shannon 894a649574 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-03-11 15:02:48 +11:00
Shannon 48bbf1ecb2 Fixes unit tests 2014-03-11 15:02:23 +11:00
Shannon 5dc44ca612 fixes some merge issues 2014-03-11 15:02:14 +11:00
Shannon 3c771648e3 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Models/Member.cs
	src/Umbraco.Core/Models/PublishedContent/PublishedContentType.cs
	src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs
	src/Umbraco.Tests/Umbraco.Tests.csproj
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml
	src/Umbraco.Web/Models/ProfileModel.cs
	src/Umbraco.Web/Models/UmbracoProperty.cs
	src/Umbraco.Web/Security/MembershipHelper.cs
	src/Umbraco.Web/UmbracoHelper.cs
2014-03-11 14:47:00 +11:00
Shannon c500d29029 adds some exceptions 2014-03-11 14:44:18 +11:00
Shannon 2c8fe5a130 fixes a few issues 2014-03-11 14:35:49 +11:00
Shannon d737afa327 Working on 2014-03-11 14:23:51 +11:00
Shannon 2db1c1bb40 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-11 10:39:55 +11:00
Shannon d95ca7bc6f updates naming from CreateProfileModel to GetCurrentMemberProfile 2014-03-11 10:39:19 +11:00
Sebastiaan Janssen 6b491ac6cd Merge pull request #312 from vnbaaij/patch-1
Update en_us.xml
2014-03-10 10:13:58 +01:00
vnbaaij 278b681501 Update en_us.xml
header was incorrect:
<language alias="en" intName="English (GB)" localName="English (GB)" lcid="" culture="en-GB">
2014-03-10 10:07:30 +01:00
Shannon abd72e7676 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-03-10 18:09:20 +11:00
Shannon ec6cb4520c Fixes: U4-3835 U7(nightly214) - Umbraco.Field not working 2014-03-10 17:44:40 +11:00
Shannon 2dfa85c9b4 Fixes merge issues 2014-03-10 17:35:28 +11:00
Shannon 921a5963e2 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Web.UI/umbraco/create/simple.ascx
	src/Umbraco.Web.UI/umbraco/developer/DataTypes/editDatatype.aspx
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/umbraco.presentation/umbraco/create/nodeType.ascx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/developer/DataTypes/editDatatype.aspx.cs
	src/umbraco.cms/businesslogic/datatype/DataTypeDefinition.cs
2014-03-10 17:30:46 +11:00
Shannon 3626d5b79d fixes unit tests 2014-03-10 17:27:22 +11:00
Shannon 980e8e84a6 Fixes: U4-4353 You are able to create duplicate content/media/member type's with the same alias 2014-03-10 17:26:04 +11:00
Shannon 4070669e7d Completes: U4-4335 It's Possible to Create Duplicate Data Types 2014-03-10 16:00:53 +11:00
Shannon b20e61d316 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	build/Build.bat
	src/Umbraco.Web.UI/umbraco/create/simple.ascx
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/umbraco.presentation/umbraco/create/simple.ascx
	src/Umbraco.Web/umbraco.presentation/umbraco/create/simple.ascx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/create/simple.ascx.designer.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/developer/Macros/assemblyBrowser.aspx.cs
	src/umbraco.cms/businesslogic/datatype/DataTypeDefinition.cs
2014-03-10 15:27:09 +11:00
Shannon fb764641c5 Fixes: U4-4335 It's Possible to Create Duplicate Data Types 2014-03-10 15:16:17 +11:00
Shannon 405727f1ac Completes: U4-3919 Get google spellchecker working in new RTE editor in a much better way that requires no server side implementations - it enables spell checking by the browser in the RTE which is heaps better and less code for us 2014-03-10 14:36:20 +11:00
Shannon 6446f63dcb Fixes: U4-4366 Lots of js errors in RteController when editing the rte data type 2014-03-10 14:16:24 +11:00
Shannon f1963fb404 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-10 12:56:01 +11:00
Shannon c26b72bd10 fixes a locking issue and exception logging 2014-03-10 12:55:45 +11:00
Shannon b94cee68e7 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2014-03-10 11:23:06 +11:00
Shannon b67fbbcbd8 Fixes: U4-4015 Usercontrol Browse Properties error 2014-03-10 11:22:49 +11:00
perploug 71fcc77e9b merge 2014-03-09 22:24:04 +01:00
perploug 38509f9d5a Adds details view to media picker to edit alt text 2014-03-09 22:21:55 +01:00
perploug 3ff04f585c Fixes issue with late-loaded file resolvers 2014-03-09 22:21:36 +01:00
Sebastiaan Janssen 3de8f9bd18 Merge pull request #311 from arknu/71-issue3691
U4-3691: Use empty alt text instead of 'Some description'
2014-03-08 14:05:52 +01:00
arknu c95e7c245e U4-3691: Use empty alt text instead of 'Some description' 2014-03-07 22:24:28 +01:00
perploug fce31a2e02 7.1 beta 2014-03-07 15:26:28 +01:00
Sebastiaan Janssen 4d3eef1124 Update version 2014-03-07 15:25:10 +01:00
perploug b816e7f4db Fixes: sites cannot run the new installer if they have /install directory 2014-03-07 12:10:04 +01:00
perploug 45f6d4f911 ensures the installer clears angular cache 2014-03-07 12:10:00 +01:00
Shannon 6a9a1d1547 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-07 20:26:57 +11:00
perploug 391eb99e10 Installer facts typo 2014-03-07 10:18:36 +01:00
perploug 3b4487c836 Fixes: Weird merge issue with dashboard.config 2014-03-07 10:18:30 +01:00
perploug 46461c7c5d Fixes installer breaks with missing app_data/temp/installer folder 2014-03-07 10:18:08 +01:00
perploug 7104629ffd Fixes installer database dropdown default value 2014-03-07 10:17:46 +01:00
Shannon b46abecde5 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/ListChildPagesOrderedByDate.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/ListChildPagesOrderedByName.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/ListChildPagesOrderedByProperty.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/ListChildPagesWithDoctype.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Login.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/LoginStatus.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Navigation.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/SiteMap.cshtml
	src/Umbraco.Web.UI/umbraco/scripting/templates/cshtml/Navigation.cshtml
	src/Umbraco.Web.UI/umbraco/scripting/templates/cshtml/SiteMap.cshtml
2014-03-07 20:10:33 +11:00
Shannon e82795f798 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-07 20:09:32 +11:00
Shannon a6faf5b757 fixes build issue 2014-03-07 20:09:22 +11:00
Shannon 3e6e6faf03 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2014-03-07 20:08:22 +11:00
Shannon b3f18bc677 fixed an issue with setting password with legacy api 2014-03-07 20:08:10 +11:00
Sebastiaan Janssen a48fe40675 Also clean up v6 snippets 2014-03-07 09:46:45 +01:00
Shannon 74c777b1ae Ensures the built-in member controllers have the correct logic - somehow got reverted and then not merged. 2014-03-07 19:39:31 +11:00
perploug 1e955fa813 Tweaks startkits usercontrol style 2014-03-07 09:34:25 +01:00
Shannon bc371e69a3 Completes: U4-4227 Rename default member property aliases 2014-03-07 19:30:54 +11:00
Shannon 9a97b636eb Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-03-07 19:15:38 +11:00
Shannon 878156e21e putting back what the UmbLoginController should be ... where in the hell has this been overwritten from??! 2014-03-07 19:13:25 +11:00
Sebastiaan Janssen af376d2837 Fix failing nuget build (now that \install is removed) 2014-03-07 09:06:06 +01:00
Shannon 9dd5f250c7 Fixes up the GetUrlWithTimeStamp to be called GetUrlWithCacheBust and another extension method to actually generate the hash which will be umb version + cdf version hashed or datetime.ticks if in debug mode. Updates the main view to use CDF to render the CSS which ensures compression/minification/combination + cache busting. 2014-03-07 11:03:13 +11:00
Shannon bb527996b9 Moves the JsNoCache to a real readable file instead of an embedded string (now an embedded file resource), updates it's logic to not append the hash to any dependencyhandler.axd request, fixes case sensitivity checking on the URLs, changes the cdf + umb version to be a nice shorter hash of the two. 2014-03-07 10:40:27 +11:00
Shannon 1a171161cd Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-03-07 10:11:36 +11:00
perploug d410663a68 Updates ImageProcessor 2014-03-06 22:54:51 +01:00
perploug 9e332ca0a4 Fixes: media unit test merge issue 2014-03-06 22:54:23 +01:00
perploug 02388a33ba Tweaks fileupload view 2014-03-06 22:54:05 +01:00
perploug 3f52364308 Fixes: FixNumber directive always dirtied the model 2014-03-06 22:53:51 +01:00
perploug e157837e0e Fixes merge issue in valformmanager 2014-03-06 22:53:13 +01:00
perploug c2318349e5 merge 2014-03-06 20:11:37 +01:00
perploug c540c74a04 merge 2014-03-06 20:10:17 +01:00
perploug e5b1271ce1 Fixes: U4-4205 Add item to multi node tree picker - Min/Max Items Issue 2014-03-06 14:38:03 +01:00
perploug dfaa15c6e7 Directive cleanup + button event js errors fix 2014-03-06 12:28:36 +01:00
perploug 4aa3e1368a Fixes scrollbar and database val msg 2014-03-06 12:27:46 +01:00
Shannon 25f10011fc Fixes merge issues 2014-03-06 20:38:23 +11:00
perploug d08f08ffaf Umbraco facts 2014-03-06 10:30:41 +01:00
Shannon 9a9237e78e Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Services/IMembershipUserService.cs
	src/Umbraco.Tests/PublishedContent/PublishedContentTestElements.cs
	src/Umbraco.Web.UI/config/trees.config
	src/Umbraco.Web.UI/config/umbracoSettings.config
	src/Umbraco.Web.UI/umbraco/controls/ContentTypeControlNew.ascx
	src/Umbraco.Web.UI/umbraco/developer/DataTypes/editDatatype.aspx
	src/Umbraco.Web.UI/umbraco/plugins/uGoLive/Dashboard.ascx
	src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs
	src/Umbraco.Web/Search/ExamineEvents.cs
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/umbraco.presentation/content.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/cache/LegacyClasses.cs
2014-03-06 20:22:32 +11:00
Shannon 1511ad58b2 oops, put back the defaults for umbracoSettings 2014-03-06 20:16:55 +11:00
Shannon 2e9b751174 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2014-03-06 20:12:21 +11:00
Shannon d61ab97be3 Fixes: U4-4217 Ensure that the cmsTask data is cleared for any entity that uses umbracoNode table 2014-03-06 20:12:05 +11:00
Stephan dd40d73b71 Merge remote-tracking branch 'origin/6.2.0' into 6.2.0 2014-03-06 10:06:50 +01:00
Shannon 068bca84b7 Fixes: U4-156 Drag / drop support 2014-03-06 20:05:13 +11:00
Shannon 0fda528b94 Fixes: U4-1550 Publish notifications on a load balanced environment 2014-03-06 19:47:23 +11:00
Shannon 3552f63d87 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2014-03-06 19:29:35 +11:00
Shannon 01d04fde37 Fixes: U4-4060 Rollback feature does not show differences 2014-03-06 19:29:09 +11:00
Stephan 7f8c526136 Fix TryConvertTo handling of number decimal separator 2014-03-06 09:14:05 +01:00
Stephan ea4be14f0c Fix 026d040 - keep Standalone stuff internal 2014-03-06 09:10:14 +01:00
Stephan 20df48e2f0 Merge remote-tracking branch 'origin/6.2.0' into 6.2.0 2014-03-06 08:49:38 +01:00
Stephan 2c0f6f975c Bugfix UmbracoEntity ctor test 2014-03-06 08:42:41 +01:00
Shannon fa7f91b39d Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2014-03-06 18:26:10 +11:00
Shannon 72c5853fb1 Completes: U4-3937 Ensure media is indexed across all servers in LB environment with Distributed Cache calls
for members
2014-03-06 18:25:38 +11:00
Stephan f03b1a22f9 Merge remote-tracking branch 'origin/6.2.0' into 6.2.0 2014-03-06 08:12:51 +01:00
Shannon e7fb6e5beb Streamlines member and user services CreateMemberWithIdentity to be similar to media/content and not have a raise events flag. Also implements the CreateWithIdentity explicitly 2014-03-06 18:07:02 +11:00
Shannon d0cc93d6a2 Fixes: U4-3937 Ensure media is indexed across all servers in LB environment with Distributed Cache calls
This fix is for media indexes to be distributed properly and for unpublished content to be distributed properly, now to get members to do the same.
2014-03-06 17:50:08 +11:00
Shannon 4adc2562b1 Fixes issue with ugolive dashboard trying to load in knockout from a bundle which causes the examine mgr to fail 2014-03-06 17:49:09 +11:00
Shannon ba6878666c Fixes pretty ugly issue of the Saving/Saved events not being raised when using CreateWithIdentity 2014-03-06 17:35:47 +11:00
Shannon 30da7fb801 Merge branch '7.1.0-installer' into 7.1.0
Conflicts:
	src/Umbraco.Web.UI.Client/src/common/mocks/resources/entity.mocks.js
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/fileupload/fileupload.controller.js
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/imagecropper/imagecropper.controller.js
	src/Umbraco.Web.UI.Client/test/unit/app/media/edit-media-controller.spec.js
2014-03-06 12:28:50 +11:00
Shannon 7086a5153a Fixes js errors with apply since a digest is already in operation. 2014-03-06 12:25:45 +11:00
Shannon 37937e2c8e Fixes the user password validation to ensure it obeys what the membership provider's are configured for. 2014-03-06 12:11:14 +11:00
Shannon 7676099f2e small styling fix on db err msg 2014-03-06 11:14:41 +11:00
perploug 0d1bb355b5 merge 2014-03-05 20:12:45 +01:00
perploug 3276b8a4d8 Latest visual changes to installer + db validator 2014-03-05 20:03:45 +01:00
Stephan 792ab8d088 Introduce support for content fragments 2014-03-05 15:46:37 +01:00
Stephan 3d4409e52a Refactor CacheRefreshersResolver.CacheResolvers into .CacheRefreshers 2014-03-05 15:46:35 +01:00
Stephan acd377956f Improve how DomainHelper determines domain 2014-03-05 15:46:34 +01:00
Stephan 3b6dcc3421 Factor Dictionary.ReplaceKey method 2014-03-05 15:46:33 +01:00
Stephan cec4d41df7 Add comments to UmbracoViewPageOfTModel 2014-03-05 15:46:32 +01:00
Stephan ff0bcffefa Implement DefaultShortStringHelper.PostFilter to cut url segments at 240 chars 2014-03-05 15:46:31 +01:00
Stephan 5dbc72897a Add method to reset PublishedContentRequest template 2014-03-05 15:46:30 +01:00
Stephan 83736bec01 U4-4190 - enable retrieval of wildcard domains 2014-03-05 15:46:29 +01:00
Stephan 2f953c3819 Fix a38e0dc - use UInt64 instead of int 2014-03-05 15:46:28 +01:00
Stephan 026d040a62 Enable StandaloneApplication to work with Powershell 2014-03-05 15:39:16 +01:00
Stephan 7747b8f64f U4-3579 - support chars such as <, > or & in prevalues 2014-03-05 15:33:15 +01:00
Shannon feab2de260 Fixes up the starter kit installer in the back office with it's legacy implementation. Adds some handy methods for webapi routing for areas. 2014-03-05 22:42:51 +11:00
Shannon 24cc417395 Removed all the legacy files that we don't need - need to test the starter kit installation process in the back office though as some old files are still used there. 2014-03-05 19:47:00 +11:00
Shannon 56e1fc07e4 adds some notes on testing db connectivity. 2014-03-05 19:42:24 +11:00
Shannon fbd2b3a1e1 Gets the v7 upgrade report working on the new installer. 2014-03-05 18:23:50 +11:00
Shannon 8f7f761bb3 implements the file permissions report correctly and tests it. 2014-03-05 17:44:13 +11:00
Shannon a40ba2f27e Updates the RequiresExecution logic so we can skip steps based on some user input (i.e. skip the starter kit installation). Fixes the start kit js stuff to update the model correctly and continue. Fixes the error view to restart - it cannot just go back because there might not be a view there. 2014-03-05 14:30:17 +11:00
Shannon 893f86d34c Fixes installer service so that when forward is called and there are no more views to show the installer will automatically start. This will occur in cases where we are customizing the install but we don't want a starter kit installed since the server has detected that one has already been installed. This also prevents some JS errors and will improve the installer in the future if there might be more views. 2014-03-05 12:57:44 +11:00
Shannon ddd2ab463e Ensures that the starter kit view is not returned if there is one already installed 2014-03-05 12:44:38 +11:00
Shannon cbced2caed fixes db upgrade step to check for correct previous step 2014-03-05 12:21:49 +11:00
Shannon ce068a60d5 Removes default instructions from the installer service, passing in empty instructions is ok now and the server will assign defaults if they are empty. 2014-03-05 12:08:35 +11:00
Shannon 7f7f3202d2 fixes issue with checking starter kit steps, fixes issue with installer service code with the method param name being the same as the variable name and fixes the _find lookups to ensure a value is returned from the iteration. 2014-03-05 11:49:07 +11:00
Shannon 0227b800a0 Gets the installer steps working nicely and returning the next step to execute which now displays the current step details correctly and dequeues steps that are not required after the previous one has executed. 2014-03-05 11:34:42 +11:00
Shannon 8e89aa233c Merge branch '7.1.0-installer' of https://github.com/umbraco/Umbraco-CMS into 7.1.0-installer
Conflicts:
	src/Umbraco.Web.UI.Client/src/installer/installer.service.js
	src/Umbraco.Web/Install/Controllers/InstallApiController.cs
2014-03-05 10:34:27 +11:00
Shannon 24ceb5ce2d Updates to include returning the next step in sequence 2014-03-05 10:32:59 +11:00
perploug 923eb300e5 Updates grunt file to run vs file copy 2014-03-04 19:11:27 +01:00
Shannon 0d93db5f1f Fixes the order that descriptions are listed during install 2014-03-04 19:28:57 +11:00
Shannon d2aecd12eb Updates more installer logic, getting into the nitty gritty details with upgrades, etc... 2014-03-04 19:20:36 +11:00
Shannon 1e99c466ee Updates some tests and fixes a couple things 2014-03-04 16:40:23 +11:00
Shannon 71a9fb4f68 Updated more installer logic 2014-03-04 16:21:45 +11:00
Shannon 0497771750 fixed merge issues 2014-03-04 11:42:11 +11:00
Shannon 000b2b639f Merge branch '7.1.0-installer' of https://github.com/umbraco/Umbraco-CMS into 7.1.0-installer
Conflicts:
	src/Umbraco.Web/Install/Controllers/InstallApiController.cs
	src/Umbraco.Web/Install/InstallSteps/DatabaseConfigureStep.cs
	src/Umbraco.Web/Install/InstallSteps/DatabaseInstallStep.cs
	src/Umbraco.Web/Install/InstallSteps/DatabaseUpgradeStep.cs
	src/Umbraco.Web/Install/InstallSteps/FilePermissionsStep.cs
	src/Umbraco.Web/Install/InstallSteps/SetUmbracoVersionStep.cs
	src/Umbraco.Web/Install/InstallSteps/StarterKitCleanupStep.cs
	src/Umbraco.Web/Install/InstallSteps/StarterKitDownloadStep.cs
	src/Umbraco.Web/Install/InstallSteps/StarterKitInstallStep.cs
	src/Umbraco.Web/Install/InstallSteps/UserStep.cs
	src/Umbraco.Web/Install/Models/InstallSetupStep.cs
	src/Umbraco.Web/Install/Models/InstallSetupStepAttribute.cs
2014-03-04 11:20:52 +11:00
Shannon 885f691c0e Updated install steps, classes and logic 2014-03-04 11:16:42 +11:00
perploug 92f6b5564d Fixes failing js unit tests 2014-03-03 13:21:30 +01:00
perploug ce65ae8742 Updates to the installer UI
Adds database and packages step
2014-03-03 08:57:57 +01:00
Shannon 57c9d9ca7b Merge remote-tracking branch 'origin/6.2.0' into 7.1.0-installer
Conflicts:
	src/Umbraco.Tests/MockTests.cs
	src/Umbraco.Web/UmbracoContext.cs
2014-03-03 04:17:40 +01:00
Shannon feb9f40237 updates some ctors on umbraco context and routing context to have lazy overloads which allows us to more easily create/mock the umbraco context. 2014-03-03 04:16:09 +01:00
Shannon 3fc96a45a6 Merge branch '7.1.0-installer' of https://github.com/umbraco/Umbraco-CMS into 7.1.0-installer 2014-02-27 10:16:45 +01:00
Shannon 3b71a6c3a5 asfsafd 2014-02-27 10:16:30 +01:00
perploug 9c4212703b umbraco base url 2014-02-27 10:00:38 +01:00
Sebastiaan Janssen a20c11d438 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-02-26 22:52:38 +01:00
Sebastiaan Janssen 89b8d056a2 Fixes #U4-4310 Missing Curly Brace in Boolean Property Editor 2014-02-26 22:52:13 +01:00
Sebastiaan Janssen 8707348215 Merge pull request #307 from BatJan/7.1.0
U4-4295 typo on front of admin
2014-02-26 22:42:00 +01:00
Jan Skovgaard 70ba0cd592 U4-4295 typo on front of admin 2014-02-26 19:51:56 +01:00
Shannon 429b5f7c01 Updates the completion stage of the installer 2014-02-26 16:49:35 +01:00
Shannon db4a547801 Fixes build issues 2014-02-26 16:39:40 +01:00
Shannon a9916fc415 Installer logic working for a new installer on sqlce 2014-02-26 16:30:25 +01:00
Shannon 64a37209b8 Merge branch '7.1.0-installer' of https://github.com/umbraco/Umbraco-CMS into 7.1.0-installer 2014-02-26 16:01:48 +01:00
Shannon f9304d7f04 Gets lots of the new installer logic working 2014-02-26 16:01:31 +01:00
perploug 24ae424207 Fixed: U4-3851 More specific error when saving a user with no Section checkbox selected 2014-02-26 15:53:16 +01:00
Per Ploug Krogslund b86ef0d7ac Adds WIP installer files 2014-02-26 15:51:09 +01:00
Per Ploug Krogslund de97d8849a Fixes broken unit tests 2014-02-26 15:51:09 +01:00
Per Ploug Krogslund a3576d8564 Moves app controllers into seperate folder 2014-02-26 15:51:08 +01:00
Sebastiaan Janssen ffdf4e7256 Merge pull request #306 from coolmikkel/7.1.0
Name of Media items easyer to read
2014-02-26 09:46:19 +01:00
Shannon f9475305bb more install bits 2014-02-26 18:25:59 +11:00
coolmikkel 0a6208f3ef Name of Media items easyer to read
The contrast between the text color and background was to low. The text
color has to be darker - black would be the right one.
2014-02-25 22:11:38 +01:00
Shannon 00f2afe454 Creates Install MVC Area, creates new installer api controllers, moves old installer files to the new Area folder so that the /install path can route properly. 2014-02-26 04:15:14 +11:00
Shannon 3800ffc11c Fixes new membership providers to ensure no sql is run on init. Fixes the installer useLegacyEncoding setup to not attempt to set this when the legacy provider is enabled. 2014-02-26 02:57:05 +11:00
Shannon 2a9b1cb246 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Web/Strategies/Migrations/ClearMediaXmlCacheForDeletedItemsAfterUpgrade.cs
2014-02-25 03:30:32 +11:00
Shannon 651182f5de Fixes sql statement - to be like we have in v7 that supports all sql servers 2014-02-25 02:37:48 +11:00
Shannon 784f873777 updated to use constant 2014-02-25 02:36:25 +11:00
Shannon a938605461 fixes merge issue 2014-02-25 02:33:48 +11:00
Shannon bb9c968d3a fixes merge issues 2014-02-25 02:30:05 +11:00
Shannon b8fe5df3c9 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Configuration/GlobalSettings.cs
	src/Umbraco.Core/Configuration/UmbracoSettings.cs
	src/Umbraco.Core/Models/Member.cs
	src/Umbraco.Core/Services/ContentService.cs
	src/Umbraco.Core/Services/MediaService.cs
	src/Umbraco.Core/Services/MemberService.cs
	src/Umbraco.Web.UI/config/ClientDependency.config
	src/Umbraco.Web.UI/config/Dashboard.Release.config
	src/Umbraco.Web.UI/config/feedProxy.config
	src/Umbraco.Web.UI/config/tinyMceConfig.config
	src/Umbraco.Web.UI/config/trees.config
	src/Umbraco.Web.UI/config/umbracoSettings.Release.config
	src/Umbraco.Web.UI/config/umbracoSettings.config
	src/Umbraco.Web.UI/config/xsltExtensions.config
	src/Umbraco.Web.UI/umbraco/config/create/UI.Release.xml
	src/Umbraco.Web/Strategies/Migrations/ClearMediaXmlCacheForDeletedItemsAfterUpgrade.cs
	src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-02-25 02:24:45 +11:00
Shannon 22b15a06f6 Fixes how member is approved is set by defaut and adds unit test for it. Also ensures that it returns true if the property value is invalid for whatever odd reason. 2014-02-25 02:10:25 +11:00
Shannon cb09795280 Removes new member service Creating event, as only Created makes sense. Deprecates the other 'Creating' events with a note to just use the Created event. 2014-02-25 01:45:41 +11:00
perploug 81dfd0c6bc #U4-3649 Fixed 2014-02-24 15:35:25 +01:00
perploug 9f028e6d61 Replace Crop() with GetCropUrl() 2014-02-24 15:35:24 +01:00
Sebastiaan Janssen ac57ec2211 Fixed U4-3648 v7, User without access to "Users" section can't change password
Added change password dashboard back
2014-02-24 13:15:45 +01:00
Sebastiaan Janssen 218bb28440 #U4-4245 Umbraco version number is really hard to see
Moved the version to the top when clicking "help", moved the css into main.less and made the text a little bit darker for contrast
2014-02-24 12:49:07 +01:00
Sebastiaan Janssen d02b230f71 Fixes #U4-4195 7.0.X PropertyValueEditor.GetDatabaseType FormatException on different regional settings 2014-02-24 12:08:33 +01:00
Sebastiaan Janssen 289361c02f Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-02-24 11:59:05 +01:00
Sebastiaan Janssen fc3020ffa4 #U4-4153 Fixed Macro snippets refer to 'MediaCurrent' and 'Show', also polishes other snippets a bit 2014-02-24 11:58:25 +01:00
perploug 7c4c44cf7e Enables the breadcrumb nav on media edit 2014-02-24 11:55:54 +01:00
perploug 458c51a955 Implements IHtmlString on imagecropdataset 2014-02-24 10:42:29 +01:00
perploug f3d64bb85d Fixes broken file resolver due to wrong alias 2014-02-24 10:30:35 +01:00
perploug 8261a2b69b Fixes U4-4271 U7.1 Nightly build 16 YSOD when editing doc type 2014-02-24 09:36:10 +01:00
Sebastiaan Janssen a5637af2d8 Adding missing CreateMember method that also as a convenience allows you to pass in the member type alias instead of a whole membertype 2014-02-22 18:32:26 +01:00
Sebastiaan Janssen ac59c5deb0 Fixing some potential upgrade issues and two issues found with the legacy member API
- For legacy API we never had and "approved" checkbox, so the assumption is that members are always approved
- The RequiresUniqueEmail check was wrong, previously the assumption was: if there's no e-mail then don't check for uniqueness
2014-02-22 16:44:02 +01:00
Sebastiaan Janssen 683ddf6d34 Apparently we rely on <error404>1</error404> to be in umbracoSettings.config 2014-02-22 16:03:59 +01:00
Sebastiaan Janssen eda33b1ac4 Update incorrect summary 2014-02-22 14:47:59 +01:00
Sebastiaan Janssen ed0f884348 Been a while: properly syncing /config/*.config with /config/*.Release.config 2014-02-21 17:50:58 +01:00
Sebastiaan Janssen b561351340 Update UI.Release.xml with the correct Partial View references 2014-02-21 17:33:19 +01:00
Sebastiaan Janssen 690ab29863 Use the database "agnostic" query for this (see U4-3876) 2014-02-21 17:01:59 +01:00
Jeavon Leopold b048ae4d36 U4-1752 - Add GetPreValueAsString(id) method to the @Umbraco helper 2014-02-21 10:17:29 +00:00
Shannon a1b3345671 fixes last unit test 2014-02-21 18:09:46 +11:00
Shannon e1022bd5a1 fixes another test 2014-02-21 18:04:15 +11:00
Shannon 1f2c00e3be fixes another test 2014-02-21 18:03:26 +11:00
Shannon bf4c58a6f4 fixed some config unit tests 2014-02-21 18:01:23 +11:00
Shannon 9de0a62cff Fixes merge issues 2014-02-21 16:43:49 +11:00
Shannon 3c3f2d7c8d Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Constants-Conventions.cs
	src/Umbraco.Core/DateTimeExtensions.cs
	src/Umbraco.Core/Models/PropertyType.cs
	src/Umbraco.Core/Persistence/Factories/MemberTypeReadOnlyFactory.cs
	src/Umbraco.Core/Persistence/Factories/PropertyGroupFactory.cs
	src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs
	src/Umbraco.Tests/App.config
	src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs
	src/Umbraco.Tests/UmbracoExamine/ExamineBaseTest.cs
	src/Umbraco.Tests/packages.config
	src/Umbraco.Web.UI/packages.config
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/app.config
	src/Umbraco.Web/umbraco.presentation/umbraco/developer/Xslt/xsltInsertValueOf.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
	src/umbraco.MacroEngines/App.Config
	src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-02-21 16:32:53 +11:00
Shannon 27cb1d5223 completes: U4-4275 Hide built-in member type properties from the insert umbraco field list 2014-02-21 16:20:07 +11:00
Shannon c677f36f08 Changes some of the naming conventions for the underlying membership provider services bits. 2014-02-21 16:03:32 +11:00
Shannon 750f7a6b33 Updates some method names to be less confusing regarding permissions 2014-02-21 15:55:56 +11:00
Shannon dea804b402 fixes some permission logic and a unit test 2014-02-21 15:46:39 +11:00
Shannon 3803d1d7da fixes reflected property on dynamicnode and unit test 2014-02-21 15:22:02 +11:00
Shannon 3e67b3034d Added the ability to specify explicit db type's for a property type using an overloaded ctor argument. This allows us to specify explicit db types for properties without having them get overwritten during the repository saving logic which will always reset it to be the db type of the underlying property editor. In the case of our built-in membership properties we do not want this to happen. Fixes some unit tests. Removes built-in props from being included in the property types on the profile model on the front-end. 2014-02-21 12:56:00 +11:00
Shannon 1ada5210ad updated to latest examine 2014-02-21 09:54:53 +11:00
Shannon 92e1db1667 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-02-20 23:14:45 +11:00
Shannon f0258b2bce fixes merge issue 2014-02-20 23:14:39 +11:00
Shannon 9a608674eb fixes another test 2014-02-20 23:11:27 +11:00
Shannon 0fc5af5e17 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Persistence/Factories/MemberTypeReadOnlyFactory.cs
	src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs
	src/Umbraco.Core/Persistence/RepositoryFactory.cs
	src/Umbraco.Tests/packages.config
	src/Umbraco.Web.UI/packages.config
2014-02-20 23:06:13 +11:00
Shannon 7dae412a29 fixes most of the newly failing unit tests and adds better null checking 2014-02-20 23:00:04 +11:00
perploug c3471ffbc3 Cropsizes config and upload compatible
Refactors imagecropper and fileupload to use the samen metadata setting
extensions
2014-02-20 12:59:15 +01:00
perploug f8baf343bf Fixing totally broken merge 2014-02-20 12:59:11 +01:00
Shannon b7f7775b89 adds initial commit of entity cloning 2014-02-20 22:34:54 +11:00
Shannon a1067e676f publicizes some repository factory methods and interfaces 2014-02-20 21:56:58 +11:00
Shannon ce649f54d7 Upgraded to latest examine, completes: U4-4240 Update with new examine version 0.1.53 2014-02-20 15:01:47 +11:00
Shannon 09b9056fb0 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-02-20 14:39:23 +11:00
Shannon 8da2c22a4e removes special default password check, this is no longer necessary. 2014-02-20 14:38:56 +11:00
Shannon d159792256 Updates last step of installer logic, we don't care about other providers as that would never have worked anyways 2014-02-20 14:38:00 +11:00
Shannon d08712306c updates logic for v7 new cols 2014-02-20 14:03:51 +11:00
Shannon 5e30fd4ced Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-02-20 13:56:37 +11:00
Shannon 314abde9ac fixes merge 2014-02-20 13:56:18 +11:00
Shannon 606b5aa60a fixes logic in membershiphelper updatemember 2014-02-20 13:55:56 +11:00
Shannon 5441c30780 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/UriExtensions.cs
	src/Umbraco.Web.UI/install/Default.aspx.cs
	src/Umbraco.Web/UmbracoModule.cs
2014-02-20 13:42:02 +11:00
Shannon 2c563168e7 Merge remote-tracking branch 'origin/7.1.0' into 7.1.0 2014-02-20 13:40:56 +11:00
Shannon 59f8508332 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Attempt{T}.cs
	src/Umbraco.Core/Persistence/Factories/MemberTypeReadOnlyFactory.cs
	src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
2014-02-20 13:40:17 +11:00
Shannon a206652a0d updates login redirect logic to be more inline with v7, less greedy which is better. 2014-02-20 13:37:12 +11:00
Shannon 545040fdf0 Fixes installer upgrade 2014-02-20 13:09:54 +11:00
Sebastiaan Janssen 2954b31435 Enables change content type action for v7 as well (see issue 1468) 2014-02-19 21:48:17 +01:00
Shannon 40d1a09609 Updates the membership helper in how it updates the membership provider data, updates the editMember page to update the membership provider properties all via the membership provider 2014-02-19 23:49:53 +11:00
Shannon 2e25bc8fdb Moves all FindCOntrolRecursive calls to an extension method 2014-02-19 23:49:08 +11:00
Shannon 1618ac86b8 Adds implicit bool operator for Attempt, makes things nicer to check for success :) 2014-02-19 22:45:22 +11:00
Shannon a4adbca12c Removes the ability to edit the data type for a built-in membership property. Ensures that even if a data type is attempted to be changed with the API that the built-in properties are always persisted with the data type that we have defined by convention. 2014-02-19 21:56:33 +11:00
Shannon 8728e2f918 Fixes: U4-4260 When changing sort order on member type and saving, this doesn't get reflected on the member 2014-02-19 20:17:21 +11:00
Shannon d6b55c54e6 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-02-19 17:54:07 +11:00
Shannon cd53682ddb removes ability to configure custom fields for the new membership provider 2014-02-19 17:52:45 +11:00
Shannon d000b67703 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-02-19 17:27:42 +11:00
Shannon e2d5fbf545 Fixes issue with ensuring properties on entities when a new property type has been created - but if the property type doesn't have an id, we should ignore it. 2014-02-19 17:27:08 +11:00
Shannon a6c4ce3a31 fixes some merge issues 2014-02-19 17:26:19 +11:00
Shannon 64246b4eef fixes build 2014-02-19 17:08:55 +11:00
Shannon fe8098adac Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Web.UI/umbraco/controls/GenericProperties/GenericProperty.ascx
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/GenericProperties/GenericProperty.ascx.cs
2014-02-19 17:02:25 +11:00
Shannon d339e7c814 updates the property type editability for built in member types 2014-02-19 16:57:33 +11:00
Shannon 9860ffc3bf Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Constants-Conventions.cs
	src/Umbraco.Core/Models/Member.cs
	src/Umbraco.Core/Models/MemberType.cs
	src/Umbraco.Core/Persistence/Factories/MemberTypeReadOnlyFactory.cs
	src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Web.UI/umbraco/controls/GenericProperties/GenericProperty.ascx
	src/Umbraco.Web/Models/ProfileModel.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/GenericProperties/GenericProperty.ascx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
2014-02-19 16:55:56 +11:00
Shannon 7db829b2a3 updates convention data types 2014-02-19 16:50:45 +11:00
Shannon 10759773ca Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-02-19 16:36:28 +11:00
Shannon 078deb704b Completes: U4-4255 Add readonly membership provider properties to the profile model 2014-02-19 16:27:14 +11:00
Shannon 6858eb3330 Fixes: U4-4257 Fix member type editor to not have to re-call 'Save' so many times,
streamlines how the show property and editable property on member type's are dealt with (removes tuples)
2014-02-19 16:14:34 +11:00
Shandem 16e16f9578 Merge pull request #299 from kgiszewski/feature-slider-fix
Fix broken path
2014-02-19 15:35:30 +11:00
Shannon e267b7700a Ensures that member properties are created when member type property type's are added (same as U4-1407), streamlines how this occurs on the base class. Streamlines how empty aliases are validated at the repo level for members, media, content. Makes built-in member property type's non-editable 2014-02-19 14:23:48 +11:00
perploug f780c21ef0 Removed crops from umbracoSettings.cfg 2014-02-19 00:19:18 +01:00
perploug 84e7396729 Ensure that umbracoFile doesnt try to process json as a filepath 2014-02-19 00:19:17 +01:00
perploug 7ed11c04c5 Updates yepnope cache in jsinit.cs to append correct rnd value 2014-02-19 00:19:16 +01:00
perploug 81305173ca Changes imagecropper to store config in its property data 2014-02-19 00:19:15 +01:00
perploug 6637ceaf41 Add support for looking up 3rd party editor file paths
Adds a file resolver on the mediaHelper, property editors can then
register a resolver to return file paths from whatever format
2014-02-19 00:19:13 +01:00
perploug 82d5f7b72b Adjusted assetsService to deal with weird yepnope behaivior 2014-02-19 00:19:12 +01:00
perploug e69dea26a5 Adds extra null checking when looking up active tree 2014-02-19 00:19:11 +01:00
Kevin Giszewski 85d6f1d54a Fix broken path 2014-02-18 11:07:14 -05:00
Kevin Jump 366697f4eb PackageService: Fixes Single import for DataTypes
Importing a file with a single data type failed, because the DataType
element is at the root when exported.
2014-02-18 15:10:11 +00:00
Kevin Jump 987644379e Fix U4-4119 - Export Fails for Generic Properties
Adds null checking for PropertyGroupID on export so that properties with
no group (tab) don't throw an exception.
2014-02-18 15:07:47 +00:00
Shannon f168093b92 Merge commit 'f06c9e823545d8e86309bb751e63b99a2a3b1a18' into 7.1.0
Conflicts:
	src/Umbraco.Core/Models/Member.cs
	src/Umbraco.Core/Persistence/Querying/BaseExpressionHelper.cs
	src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Core/packages.config
	src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
	src/Umbraco.Web.UI/config/ClientDependency.config
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/passwordChanger.ascx.cs
2014-02-18 18:03:29 +11:00
Shannon 1e45abe71e oops, changes the failedpassattempts back to noedit 2014-02-18 17:58:57 +11:00
Shannon a556b4ed21 Logs warnings if accessing built-in properties on the member model but the underlying property type is missing. 2014-02-18 17:53:02 +11:00
Shannon 953c711ca4 Updates the default member type property types to use "Labels", then needed to update the member type repo and membertypereadonlyfactory to ensure that even though the underlying data type for the property exposes a different Db Type that we 'reset' that Db Type to what it always should be. This means that no matter what underlying data type a developer changes a property to, if it is a built-in membership property, the Db Type will always stay consistent and save in the correct column. Of course if someone enters some invalid data, then the data will not be saved. 2014-02-18 17:19:38 +11:00
Shannon f06c9e8235 Ensures the default member type properties are put on a custom tab 2014-02-18 15:39:00 +11:00
Shannon f1a439e851 removes version specific references to mysql in the proj files and web.config
ensures that escaping in the sql expression classes is done correctly without any double escaping. Also ensures that escaping is happening using the equals operator, not just the Equals() method and adds unit tests for them.
Fixes: U4-4232 Umbraco.Core.Persistence.Querying issue with backslashes
2014-02-18 14:57:03 +11:00
Shannon 20c2574f94 Merge remote-tracking branch 'origin/7.0.4' into 7.1.0
Conflicts:
	build/Build.bat
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs
	src/umbraco.providers/UsersMembershipProvider.cs
2014-02-18 11:11:57 +11:00
Shannon ab4c58b3a3 restores BuildBelle 2014-02-18 11:11:06 +11:00
Shannon cb63642ce9 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-02-18 10:48:51 +11:00
perploug 3fb756939e ImageProcessor config files 2014-02-17 16:17:18 +01:00
perploug ec14a16aec ImageCropper Razor models + helpers 2014-02-17 16:17:17 +01:00
perploug 6944f25c9f Fixes Assets.Service callback not firering 2014-02-17 16:17:16 +01:00
perploug 45c7699a33 Footer breadcrumb navigation 2014-02-17 16:17:09 +01:00
perploug 2bd2f12831 ImageCropper Upload enabled
The cropper can now fully replace the upload datatype
2014-02-17 16:17:02 +01:00
Shannon a0e496e589 Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2014-02-17 21:38:38 +11:00
Shannon e0dcc3afbc Streamlines how strings are escaped with the sql expression helpers and syntax providers. Fixes: U4-4232 Umbraco.Core.Persistence.Querying issue with backslashes 2014-02-17 21:38:13 +11:00
Stephan a4b1b31a24 U4-4241 - UrlAbsolute() returns relative urls 2014-02-17 10:49:26 +01:00
Stephan 3634a77d61 U4-4241 - UrlAbsolute() returns relative urls 2014-02-17 10:47:51 +01:00
Shannon 13f76f7922 Updates version
Signed-off-by: Shannon <sdeminick@gmail.com>
2014-02-17 20:41:53 +11:00
Shannon d12a9e046f Fixes: U4-4172 Change password in users section not working (u7.0.3)
Signed-off-by: Shannon <sdeminick@gmail.com>
2014-02-17 20:41:30 +11:00
Shannon 846f4b5b6c Removes the various old hacks for the legacy user's membership provider, now that we have the AllowManuallyChangingPassword flag, these hacks are not required. 2014-02-17 19:32:04 +11:00
Shannon 2869f17eff ensures the default property aliases are set during ctor 2014-02-17 18:02:29 +11:00
Shannon b73c39b4e9 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	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/UserService.cs
	src/Umbraco.Tests/Services/PerformanceTests.cs
	src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs
2014-02-17 17:48:16 +11:00
Shannon feefb052fd Updates the BulkInsertRecords method to optionally close the trans - shouldn't by default. Updates how permissions are handled in the new services and exposes another method, ensures it's all wrapped in trans and ensures that cache is cleared properly. Fixes: U4-4213 "Replace child node permissions" does not work if all permissions cleared 2014-02-17 17:45:59 +11:00
Shannon 87f93be6ba updates version 2014-02-17 16:06:46 +11:00
Shannon 7e7c4b52b6 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/PluginManager.cs
2014-02-17 15:59:43 +11:00
Shannon 4d2d9156ba updates more plugin manager defs 2014-02-17 15:58:57 +11:00
Shannon a1603c3cbd Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Models/Membership/EntityPermission.cs
	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs
	src/Umbraco.Core/PluginManager.cs
	src/Umbraco.Web.UI/config/trees.config
	src/Umbraco.Web/Search/ExamineEvents.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/Trees/TreeDefinitionCollection.cs
2014-02-17 15:56:48 +11:00
Shannon 82ba1a24a3 Ensures we perform null checks in both GetAll and GetByQuery as we never want to include a null item in the resultant collection - which could happen depending on what the sub class repository is doing.
Fixes: U4-3145 Cache file periodically becomes corrupted: "Oops: this document is published but is not in the cache (internal error)"
2014-02-17 15:45:36 +11:00
Shannon 357db9d0b6 completes: U4-3282 Expose permission assignment methods at the service layer 2014-02-17 15:33:17 +11:00
Shannon 61766287bc Cleans up some more of the old 'object' User Id references. 2014-02-17 15:26:38 +11:00
Shannon ffbf8b2fd6 completes: U4-4103 Publicize PluginManager for devs to use to create their own plugins 2014-02-17 15:08:27 +11:00
Shannon e8c25283b0 Fixes: U4-2876 Ensure runtime cache is cleared with ICacheRefreshers when macro's change since they use the RuntimeCacheProvider 2014-02-17 15:03:49 +11:00
Shannon f7a703195c Fixes: U4-4215 Tree.config registeres tree inconsistently 2014-02-17 14:56:12 +11:00
Shannon 848e8b5722 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-02-17 14:15:54 +11:00
Shannon 4d316c9671 fixing some casting 2014-02-17 14:15:40 +11:00
Shannon 509be9b431 Updates the underlying UmbracoServiceMembershipProvider to deal with 'object' for provider key, this then lets us deal with either guid or int for the new membership provider, just like the old one does. 2014-02-17 14:14:17 +11:00
Shannon 8154382fb1 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-02-17 13:17:19 +11:00
Shannon 10ef5eb7bc adds new interface for members' membership providers to implement so we know what aliases to store data against. 2014-02-17 13:16:28 +11:00
Shannon f4c1c4578f adds some null checking 2014-02-17 12:56:37 +11:00
Shannon 6f15949af7 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-02-17 12:24:37 +11:00
Shannon 2849ecadb7 fix legacy member wrapping new api and mixing email/login name 2014-02-17 12:24:11 +11:00
Shannon 778c698ef7 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-02-17 12:10:12 +11:00
Shannon 697f93c3ce removes null check for LoginName, since it gets set to the name passed in if it is empty 2014-02-17 12:09:27 +11:00
Shannon e6c2f0ad70 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-02-17 11:50:39 +11:00
Shannon 13976559a8 Created a EntityNotFoundException to use when we are expecting an umbraco entity found. Updates some code to use this exception. 2014-02-17 11:50:13 +11:00
Shannon 18121e8726 Enxures user start node's are -1 by default when creating the model. 2014-02-17 11:48:32 +11:00
Shannon 8b6583b554 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-02-17 11:23:24 +11:00
Shannon 234d4cf427 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0
Conflicts:
	src/Umbraco.Core/Models/Template.cs
2014-02-17 11:23:02 +11:00
Shannon 81cdc71145 Ensures new user objects are approved by default. 2014-02-17 11:17:15 +11:00
Sebastiaan Janssen f822400036 Fix broken build 2014-02-15 14:24:40 +01:00
Shannon 2aae108cb4 Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Web/Security/WebSecurity.cs
2014-02-13 17:21:30 +11:00
Shannon 4069fc8d1f fixes issue with legacy user.Password property and fixes comparison of sections 2014-02-13 17:19:28 +11:00
Shannon 643f05d949 fixes some more merge issues 2014-02-13 16:56:23 +11:00
Shannon d36cd035e9 Fixes merge issues 2014-02-13 16:46:52 +11:00
Shannon c4acbf0dbc Merge remote-tracking branch 'origin/6.2.0' into 7.1.0
Conflicts:
	src/Umbraco.Core/Configuration/ClientDependencyConfiguration.cs
	src/Umbraco.Core/Constants-Conventions.cs
	src/Umbraco.Core/Models/Member.cs
	src/Umbraco.Core/Models/Membership/IUser.cs
	src/Umbraco.Core/Models/Template.cs
	src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs
	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberGroupRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs
	src/Umbraco.Core/Persistence/RepositoryFactory.cs
	src/Umbraco.Core/Services/ContentService.cs
	src/Umbraco.Core/Services/IMemberTypeService.cs
	src/Umbraco.Core/Services/IMembershipUserService.cs
	src/Umbraco.Core/Services/IUserService.cs
	src/Umbraco.Core/Services/MemberService.cs
	src/Umbraco.Core/Services/MemberTypeService.cs
	src/Umbraco.Core/Services/ServiceContext.cs
	src/Umbraco.Core/Services/UserService.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Tests/MockTests.cs
	src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Login.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/LoginStatus.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Breadcrumb.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/EditProfile.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListAncestorsFromCurrentPage.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesFromCurrentPage.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByDate.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesOrderedByName.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListChildPagesWithDoctype.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/ListDescendantsFromCurrentPage.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Login.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/LoginStatus.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/MultinodeTree-picker.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/Navigation.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/RegisterMember.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViews/Templates/SiteMap.cshtml
	src/Umbraco.Web.UI/Umbraco/create/PartialView.ascx.cs
	src/Umbraco.Web.UI/config/umbracoSettings.config
	src/Umbraco.Web/Cache/CacheRefresherEventHandler.cs
	src/Umbraco.Web/Controllers/UmbLoginController.cs
	src/Umbraco.Web/Controllers/UmbLoginStatusController.cs
	src/Umbraco.Web/Controllers/UmbProfileController.cs
	src/Umbraco.Web/Controllers/UmbRegisterController.cs
	src/Umbraco.Web/Models/LoginModel.cs
	src/Umbraco.Web/Models/LoginStatusModel.cs
	src/Umbraco.Web/Models/ProfileModel.cs
	src/Umbraco.Web/Models/RegisterModel.cs
	src/Umbraco.Web/Models/UmbracoProperty.cs
	src/Umbraco.Web/Mvc/UmbracoViewPageOfTModel.cs
	src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs
	src/Umbraco.Web/Security/WebSecurity.cs
	src/Umbraco.Web/Umbraco.Web.csproj
	src/Umbraco.Web/UmbracoModule.cs
	src/Umbraco.Web/WebApi/UmbracoApiController.cs
	src/Umbraco.Web/umbraco.presentation/library.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasks.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbracobase/baseLibrary.cs
	src/Umbraco.Web/umbraco.presentation/umbracobase/restExtension.cs
	src/umbraco.businesslogic/User.cs
	src/umbraco.providers/UsersMembershipProvider.cs
	src/umbraco.providers/members/UmbracoMembershipProvider.cs
2014-02-13 16:22:51 +11:00
Shannon 0a80c39962 Fixes merge 2014-02-13 15:25:57 +11:00
Florian Verdonck edee8134c2 Updated request after feedback 2014-02-13 15:21:40 +11:00
Shannon 2f66303b38 Merge branch 'KevinJump-7.0.2' into 7.1.0 2014-02-13 15:12:02 +11:00
Shannon 7102ed49ec Merge branch '7.0.3' of https://github.com/stevetemple/Umbraco-CMS into stevetemple-7.0.3
Conflicts:
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.controller.js
2014-02-13 15:00:42 +11:00
Shandem f5d94c3a05 Merge pull request #294 from nojaf/patch-1
Changing MasterTemplateId to public
2014-02-13 14:48:24 +11:00
Shannon 92502f946b Merge branch '7.0.3' into 7.1.0 2014-02-13 14:49:00 +11:00
Shannon 30a73c0886 updated web.config template to use new role provider. 2014-02-13 14:45:24 +11:00
Shannon f5ee02a3e9 Updates the membership partial view templates to redirect to current page by default but allows this to be overridden. Creates a new RedirectToCurrentUmbracoUrl method which is slightly diff from RedirectToCurrentUmbracoPage since it doesn't care about the actual page item rendering, just the currently rendered URL which is useful if coming from a rewritten URL (which is what happens with public access rewrites) 2014-02-13 13:30:32 +11:00
Shannon 9827b40bea Fixes: U4-4223 MVC based forms with SurfaceControllers don't work when rendered in Webforms mode.
This slightly changes how the routing works in the module, now we always send the request to the RenderRouteHandler, this will first process the logic for route hijacking, then it will determine if the request was found to be a WebForms template, if so then we'll return the webforms handler. This also now allows us to have POSTed values to SurfaceController's from forms that have been rendered in Webforms whilst maintaining all viewdata, tempdata and model state on postback even when rendering in webforms!
2014-02-13 13:19:51 +11:00
Shannon 2de6f09634 Adds configuration section classes for the image cropping + unit tests. 2014-02-13 11:01:37 +11:00
Sebastiaan Janssen df16a69582 Merge pull request #295 from loedeman/patch-1
Update nl.xml
2014-02-12 13:37:09 +01:00
Stephan f9323c85e4 Fix issue with 9d7b3b96 in .designer.cs file 2014-02-12 13:22:35 +01:00
Stephan 2677672e50 Merge remote-tracking branch 'origin/6.2.0' into 6.2.0 2014-02-12 13:22:30 +01:00
Morten Christensen a38e0dcf86 Adding integer overload for UmbracoEntity so it can be used with a dynamic object containing either a boolean or integer retrieved from the database to initialize the UmbracoEntity object. 2014-02-12 12:47:47 +01:00
Stephan fdd7227494 Fix DynamicPublishedContent to use CleanStringType.ConvertCase 2014-02-12 10:46:57 +01:00
Stephan 6b74e14cdd Backport DefaultShortStringHelper from 7.1 2014-02-12 10:40:00 +01:00
Stephan db528d8d7a U4-4199 - undef debug code in release 2014-02-12 10:23:59 +01:00
Shannon 9d7b3b965a fixes some issues with new bundles. 2014-02-12 18:19:20 +11:00
Shannon 806008a7e9 Fixes issue with @ symbols in login name and a member group query 2014-02-12 18:02:00 +11:00
Shannon 45fa192c95 Fixes some unit tests 2014-02-12 17:25:45 +11:00
Shannon 92235128f1 Got new MemberGroupService done, completed the MemberService for role based stuff, created a member group cache refresher since we are caching member groups by name (probably should cache others too). Public access stuff changes if a name of a member group is changed which is now done with an event instead of coded into the biz logic. 2014-02-12 17:14:16 +11:00
loedeman 06cb7a529e Update nl.xml
I've updated the Dutch translation based on the current 7.0.2 English translation (en.xml) since I would rather not start liking the placeholders ;) ...
2014-02-11 19:56:08 +01:00
perploug fa4e9d0cd1 Merge remote-tracking branch 'origin/7.1.0-ImageCropper-WIP' into 7.1.0 2014-02-11 14:56:41 +01:00
perploug 764644fc5d Merge 2014-02-11 14:55:22 +01:00
perploug 0bf27f4371 Make sure the formcontroller reset dirty state on save 2014-02-11 14:48:06 +01:00
Shannon 7622937cfd implemented remaining methods for member groups/roles + unit tests 2014-02-11 20:38:48 +11:00
Shannon bf41694572 Fixed up some more of the member group + member stuff with more unit tests 2014-02-11 19:21:36 +11:00
Shannon 7b897ce64c Member group repo updated along with the member service to support roles, etc... got first of many unit tests passing. 2014-02-11 12:43:55 +11:00
perploug 36a8599e62 Adds cache bursting to production mode
Package installer bumps CDF version, we make sure to purge the angular
cache
initial js loader gets a cache burst as well
2014-02-10 13:02:16 +01:00
Shannon 1ca950f721 Starts creating the IMemberGroupService and supporting classes. 2014-02-10 19:48:16 +11:00
Shannon ffba271fd0 Creates the MemberGroupRepository and supporting models. 2014-02-10 19:35:32 +11:00
Shannon ec08d3e910 Updates MembershipHelper to not change the email/name if the value has not changed. Updates the templates to show only validation summaries for their own values/prefixes. Fixes some underlying MVC methods that merge view state to ensure the prefixes work with validation summaries properly when not showing property level errors. Updates the Umb controllers to add model level validation msgs when failed. 2014-02-10 18:34:12 +11:00
Shannon 0bfd032fad Obsoletes the RedirectOnSucces on the RegisterModel as it is not needed. Adds RedirectUrl to the ProfileModel and updates the controller to redirect properly (ensures it doesn't just redirect to home!) 2014-02-10 16:46:45 +11:00
Shannon 2bb58b6fca Updates MembershipHelper to ensure that the membership provider is used when updating a profile, specifically to deal with unique emails. Updates the profile edit template to have correct validation procedures. 2014-02-10 16:22:15 +11:00
Shannon 4d2d656b3d Moved ChangePassword method to MembershipHelper and makes it public, adds an overload. 2014-02-10 14:29:29 +11:00
Shannon fa625d72f9 updates some comments 2014-02-10 14:12:44 +11:00
Shannon 1991380e02 Changes CDF version to be the hash code of UTC now 2014-02-10 13:53:12 +11:00
Shannon 3b8d6dc2c7 Merge remote-tracking branch 'origin/6.2.0' into 6.2.0 2014-02-10 13:50:43 +11:00
Shannon 1faeb76c27 Removes the need for duplicate templates for partial views. Of course we can have partial view only templates if necessary but currently we just borrow them from the partial view macros and update the header 2014-02-10 13:50:31 +11:00
Florian Verdonck a064903e90 Updated request after feedback 2014-02-08 00:28:52 +01:00
perploug 2850c3c3de Improved caching in debug mode by adding global yepnope filter 2014-02-07 15:45:52 +01:00
Florian Verdonck 1fa7cd234d Changing MasterTemplateId to public
When you create a Template in code, I think there is no way to define a masterTemplate. If MasterTempateId were to be public it could be done.
2014-02-07 09:39:10 +01:00
perploug cec8001c38 Fixes issue with MediaHelper and complex property values 2014-02-07 09:16:05 +01:00
perploug 7dbd21a854 ImageCropper Added as a real property editor + polish
Polishing the UI, it can now edit actual image data and store crop
points / center point as json, next add configuration service
2014-02-07 09:15:44 +01:00
Sebastiaan Janssen 3a513668fd U4-4185 Log fails to show unicode (cyrillic) characters 2014-02-05 15:52:20 +01:00
perploug 9ff82f3a00 Removes unneeded loging in umbpanel.directive 2014-02-04 13:58:13 +01:00
perploug 25999be0c9 Improves sticky footer button detection
Refactored the event hooks, added a watch on the buttons position
2014-02-04 12:53:09 +01:00
perploug 853baf9462 Final tweaks to the unsaved changes dialog 2014-02-04 11:40:16 +01:00
Per Ploug Krogslund 6f36384a35 Merge branch '7.1.0-LocationChangeNotificatiion' into 7.1.0 2014-02-04 09:46:54 +01:00
Per Ploug Krogslund d55e492d17 Route change confirm notification dialog 2014-02-04 09:46:14 +01:00
Per Ploug Krogslund fcbdf6c635 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-02-03 21:50:30 +01:00
Per Ploug Krogslund 1fda22a4e0 Merge branch '7.1.0-LocationChangeNotificatiion' into 7.1.0 2014-02-03 21:48:23 +01:00
Per Ploug Krogslund deeaf724bd Fixes missing dependencies 2014-02-03 21:04:11 +01:00
Per Ploug Krogslund 34824ffbb0 Confirm navigating away from unsaved content 2014-02-03 21:03:43 +01:00
Per Ploug Krogslund 6f28a0a686 Updates NotificationService to support custom views
This allows us to inject small UI components as overlays ontop of
editors
2014-02-03 21:03:24 +01:00
Sebastiaan Janssen b3f6a8c71b Merge branch '7.0.3' into 7.1.0
Conflicts:
	.gitignore
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js
2014-02-03 11:52:36 +01:00
Sebastiaan Janssen 98684e6292 Add 100 to the ClientDependency.config version to avoid conflicts with older caches 2014-02-03 10:23:13 +01:00
Steve Temple aad0e73fea Add customConfig back into rte 2014-01-31 23:18:49 +00: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
Per Ploug Krogslund 7d7fcd2093 Wip on dropper and gravity editor directives 2014-01-30 22:28:50 +01:00
Stephan 2ab1cf59a6 U4-2317 - issue with domains & languages management 2014-01-30 16:19:09 +01:00
Stephan 3ef51d7357 U4-2317 - issue with domains & languages management 2014-01-30 16:18:06 +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
Stephan 8b553dd067 U4-4144 - work around media cache exceptions on invalid properties 2014-01-29 19:30:17 +01:00
perploug c52123e878 adds mock cropper data for WIP prototype 2014-01-29 14:30:51 +01:00
perploug 4e6ca57f7a Chore: seperate media + image helpers into 2 files 2014-01-29 14:30:35 +01:00
perploug ce9cfbf071 Chore: update media+mediahelper mocks 2014-01-29 14:30:17 +01:00
perploug 8024bde429 Imaging directives (crop, gravity and preview) 2014-01-29 13:44:34 +01:00
perploug 9ce79e98a3 Final tweaks to TreeSource picker
Better help text, polish icons and margins, made sure it toggles UI
correctly for each type of tree
2014-01-29 11:21:54 +01:00
perploug 3e5553d9b0 Fixes weird issue with user language dropdown 2014-01-29 09:50: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 ccaf82d797 Fixes object extensions for dates with a 'kind' specified. 2014-01-29 11:21:35 +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
perploug 5047c7bbe7 Fixes: U4-4155 Backend CSS Rich Text Editor Path Issue 2014-01-29 00:28:56 +01:00
perploug 0c45fb1b97 Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-01-28 23:50:58 +01:00
perploug 7bd745a870 WIP: Tree icon colors 2014-01-28 23:50:25 +01: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
Tim Geyssens 93a4e8f426 Removes hard coded api url from rte embed 2014-01-28 16:18:30 +01:00
Tim Geyssens fcc115004e Updates server vars with embedApiBaseUrl 2014-01-28 16:11:57 +01:00
perploug 24062c0061 Rolls back listview items in dialog trees 2014-01-28 15:49:04 +01:00
perploug 06cbdc37b4 Fixes: U4-4143 In rich text editor, non ASCII characters in source code window are encoded
Also at the same time fixes missing config import from serverside config
2014-01-28 15:45:14 +01:00
Shannon f28ae52ae3 moved logic to update a profile to MembershipHelper. 2014-01-28 21:57:00 +11:00
Shannon cfd0973f00 Moves the registration logic to the MembershipHelper, fixes up the views to keep the indexes so props save. 2014-01-28 21:42:30 +11:00
Shannon 1bfdd83ba7 Cleans up more of the membership controllers and snippets to be using the membership helper and fixes up a few issues 2014-01-28 19:41:21 +11:00
Shannon 6fefcacc61 Adds more methods to the MembershipHelper, updates the RegisterModel and obsoletes the standard ctor so biz logic is not happening in the model, updates the snippets to use the correct way. Fixes an issue in the membership repo for persisting new members when the member type doesn't contain all the built-in props. 2014-01-28 18:59:27 +11:00
Shannon 3b639e61b2 Exposes MembershipHelper onthe UmbracoViewPage so people can use it directly in views. 2014-01-28 17:02:20 +11:00
Shannon 9959ff667e publicizes MembershipHelper and exposes it on the various base classes: SurfaceController, UmbracoApiController and UmbracoUserControl as the property "Members", will add more helper methods. 2014-01-28 16:58:55 +11:00
Shannon de1f86c7a1 adds logic to the membership helper to create a new LoginStatusModel with the values filled in, obsoletes the empty ctor on LoginStatusModel since that does some biz logic lookups, instead replaces it with a static method to create an empty one. 2014-01-28 16:30:58 +11:00
Shannon 28d8fd0531 Changes LoginStatusModel to use the correct api and updates the new membership provider stuff to ensure that the provideruserkey is the int id of the model for backwards compatibility. 2014-01-28 16:13:05 +11:00
Shannon e4e76eb0bf Backports commit: Prefixed built in controllers to better avoid conflicts with people's custom code
Conflicts:
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/EditProfile.cshtml
	src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Login.cshtml
	src/Umbraco.Web/Controllers/UmbLoginController.cs
	src/Umbraco.Web/Controllers/UmbLoginStatusController.cs
	src/Umbraco.Web/Controllers/UmbProfileController.cs
	src/Umbraco.Web/Controllers/UmbRegisterController.cs
	src/Umbraco.Web/Umbraco.Web.csproj
2014-01-28 13:47:16 +11:00
Shannon 677cc8c8fd Fixes ProfileController to use normal .Net APIs and the new members service - also removes the Response.Redirect that was in there, why was it like that? 2014-01-28 13:35:43 +11:00
Shannon 3fa5c4e0b2 Updates RegisterController with the standard ASP.Net APIs to create and login a member. 2014-01-28 13:21:30 +11:00
Shannon 360393c464 Fixes LoginStatusController to use the standard ASP.Net APIs 2014-01-28 13:07:25 +11:00
Shannon d3daf88a8d Fixes the LoginController to use the correct APIs 2014-01-28 12:58:22 +11:00
Shannon 7a99ebd6d9 Starts the implementation of the new role provider. 2014-01-28 12:48:41 +11:00
Shannon a7298e2e5a Completes: U4-4148 Anytime RuntimeCacheProvider or InMemoryCacheProvider is used, a cache refresher will need to handle it's distribution! 2014-01-28 12:20:10 +11:00
Shannon 15d7443c61 Streamlines the content type cache refreshing, leaving some of the legacy cache clearing but that shouldn't really have an effect, with these new changes it should be guaranteed that the distributed cache is executed always for Doc, media and member types. 2014-01-28 12:13:27 +11:00
Shannon f2b7e27b34 Fixes: U4-2721 RuntimeCacheProvider is not cleared when data type changes and updates the repo factory to not use the InMemory cache provider since we should only ever use that for very very specific reasons since the memory can never auto-clear with that provider. 2014-01-28 11:30:02 +11:00
Shannon 690d08aa8c Completes wrapping the new IUserService from the legacy User object. Ensures User cache is handled correctly and distributed cache is updated for Users. 2014-01-28 10:46:59 +11:00
Shannon 6719d70cc0 Updates UserTypeCacheRefresher to clear the runtime cache accordingly. 2014-01-28 09:22:01 +11:00
Shannon 3cdcf513ec removes ancient test project 2014-01-28 09:00:17 +11:00
Shannon 23d9944a61 Merge branch '7.0.2' of https://github.com/kalletoxic/Umbraco-CMS into kalletoxic-7.0.2 2014-01-28 08:47:09 +11:00
perploug 31429ad9c8 Fixes treenodes with very long names breaking the tree 2014-01-27 22:09:16 +01:00
perploug 05a8d80284 Fixes broken refresh action
Refresh action referenced the tree, not its root node
2014-01-27 22:08:40 +01:00
perploug c2d978a0db Enables listview children in dialog trees
By default trees doesnt show children of listview nodes, this enables
them in dialog trees, otherwise content pickers cannot select childrens
of a listview node
2014-01-27 22:03:52 +01:00
perploug e17b32c6e5 Removes option to query media with Xpath on mntp
Only content can be queried with Xpath in a reasonable performant manner
as its the only type of data that is cached as xml
2014-01-27 13:49:09 +01:00
perploug de79512dd4 Adds overloads to relationService.AreRelated
Allows to lookup relations based on type and alias of type when doing
"AreReleated()" checks
2014-01-27 13:45:54 +01:00
Mårten Palm 4a095184bb Prevent NullReferenceException
The variable val was not referenced later in the function and caused a
NullReferenceException.
2014-01-27 10:54:41 +01: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
perploug 2a81162756 Fixes inconsistently named private method
Replaces delegates with lambdas
2014-01-27 08:27:31 +01:00
perploug 0a7526601c Merge branch '7.1.0' of https://github.com/umbraco/Umbraco-CMS into 7.1.0 2014-01-24 18:41:46 +01:00
perploug 3e22598f4a fixes mntp filtering 2014-01-24 18:38:47 +01:00
perploug d842f0f5b7 Adds support for xpath root node selection on mntp 2014-01-24 18:38:39 +01:00
perploug 8258619055 adds getByQuery to entityService 2014-01-24 18:38:08 +01:00
perploug 7d2f6c13c3 Addss template clearing when in debugmode 2014-01-24 17:20:34 +01:00
Shannon b314bff127 Creates powershell file to do the build, this detects if you have sandcastle installed first, also overwrites the default TOC.css file with a custom slightly nicer version for the output. 2014-01-24 18:23:37 +11:00
Shannon d66e2e52e9 adds additional bat files to the sln files for editing, adds the sandcastle help file config file that can be used to build the docs when sandcastle is installed. 2014-01-24 16:31:49 +11:00
Shannon 43c426b46c 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-24 12:36:02 +11:00
Shannon 0714aaa457 Merge remote-tracking branch 'origin/7.0.2' into 7.1.0 2014-01-24 12:34:40 +11:00
Shandem 81dac97917 Merge pull request #284 from markvantilburg/patch-1
Update booting.aspx
2014-01-23 17:33:22 -08:00
Shannon de6e0dc8d7 Merge branch '7.0.2' into 7.1.0 2014-01-24 12:32:07 +11:00
Kevin Jump 57c68daf38 Fix Template Import when template has no master
Importing a template with no master template (i.e when it's at the root)
caused an error. Added check for MasterTemplateId != null - (tried
.IsValueCreated but that generated a object not set exception)
2014-01-23 16:07:07 +00:00
Kevin Jump a705561a51 Fix Importing Macro when macro already exists
ParseMacroElement called by ImportMacro was no checking for to see if
the macro or properties already exists - caused SQL errors on import of
macro. Added check to look for existing macro, and only add new
properties on import (in line with other import methods)
2014-01-23 16:05:08 +00:00
Kevin Jump a7107f01e8 Single DataType import Fix
Importing a file with a single data type failed, because the DataType
element is at the root when exported.
2014-01-23 15:57:50 +00:00
Shannon e2ac82abca Gets most of the User and UserType legacy objects wrapping the new services, yay! Now just need to sort out all the caching stuff which I have tasks for. 2014-01-23 18:44:41 +11:00
Shannon 64d1a484bd Fixes User Id issues with HasIdentity, wraps legacy UserType to the new service, fixes the uninstalling db schema to not throw exceptions and clog up the unit test log. 2014-01-23 17:11:58 +11:00
Shannon 585b42af48 More Save()'s missing and removes the extra calls to XmlGenerate - should save some processing time. 2014-01-23 16:13:29 +11:00
Shannon 7c4412fc4b Ensures that Save() is called wherever member data is saved 2014-01-23 16:09:59 +11:00
Shannon 0be8039c8f Changes how IProfile works which is now just exposed by the IUser instead of implemented, this cleans up the Id situation. 2014-01-23 15:31:49 +11:00
Shannon 668265f1ac Allows forcing pass change with new provider, updates conventions to not allow editing of question/answer - unfortunately cannot make the other ones readonly because noEdit data type is the wrong clr type. 2014-01-23 15:11:54 +11:00
Shannon 4735f27a66 Fixes more naming conventions with CreateMemberWithIdentity, fixes memberTasks to ensure the name is set, fixes new membership providers which had the name/email call reversed. Updates the cache refresher event handler to listen to MemberService events instead of the old legacy API events. 2014-01-23 14:55:41 +11:00
Shannon 6377b9aa50 Fixes some underlying type conversions, fixes more of the member type wrapping, updates contenttypecontrolnew to work with member types properly, ensures the property type cache is cleared when member types change. 2014-01-23 13:33:58 +11:00
Shannon 011be60205 Finishes wrapping the member service and fixes a few bugs - ensures the RepositoryBase doesn't keep enumerating when getting all 2014-01-23 12:30:28 +11:00
Shannon a272675ed8 Wraps the MemberService from the legacy Member object 2014-01-23 11:41:01 +11:00
Shannon 80697cf9ca MemberType fully wraps new MemberTypeService 2014-01-23 10:57:24 +11:00
Shannon f4534aa94c adds unit tests for member type can view/can edit properties 2014-01-23 10:55:22 +11:00
Shannon 56dec485a5 Starts wrapping MemberTypeService from the legacy MemberType object. Changes the User.Id to an int - no more casting. Changes CreateMember to CreateMemberWithIdentity for consistency. Adds raiseEvent params to the create/save methods. Updates the MemberTypeService to have consistent naming conventions. Starts wrapping more of the MemberService from the legacy Member object. 2014-01-23 10:41:57 +11:00
Shannon ffde0f48cf Starts wrapping MemberTypeService from the legacy MemberType object. Changes the User.Id to an int - no more casting. Changes CreateMember to CreateMemberWithIdentity for consistency. Adds raiseEvent params to the create/save methods. Updates the MemberTypeService to have consistent naming conventions. Starts wrapping more of the MemberService from the legacy Member object. 2014-01-23 10:35:30 +11:00
Kevin Jump 5663b6890f Revert "Export Template fails when template has no master value"
This reverts commit a2905c13f6.
2014-01-22 21:35:16 +00:00
Kevin Jump a2905c13f6 Export Template fails when template has no master value 2014-01-22 21:29:49 +00:00
Kevin Jump e8f7a83f68 Fixed: U4-4119 - Export ContentType fails for Generic Properties
Adds Null checking for PropertyGroupID so that an exception is avoided
when the propertyType is in the Generic Properties group (and has no ID
assigned)
2014-01-22 19:50:21 +00:00
Shannon 2956aee4e3 Fixes: U4-4108 The backoffice should not be accessible when the app is not configured, it should redirect to the installer and U4-4106 Set the new membership providers to be shipped as default. 2014-01-22 15:26:45 +11:00
Shannon 9bd8d729fa publicizes user stuff, changes the IUser.Id to an int - no need for it to be an object and casted everywhere. Updates the login logic to perform the mapping logic for custom membership providers with an extension method. 2014-01-22 14:07:18 +11:00
Shannon fb9569d914 Fixes user membership providers to throw exceptions on duplicate emails when the provider is configured to not allow duplicates. 2014-01-22 13:20:00 +11:00
Shannon 47974d49fe obsoletes old providers, creates new membership role provider stub 2014-01-22 12:16:47 +11:00
Shannon 3f8b3031c2 completes: U4-3996 Fix EditUser to use the membership provider properly, U4-3997 Fix EditMember to use the membership provider properly 2014-01-22 11:57:33 +11:00
Shannon 7da41594fd re-publicizes member services, fixes: U4-4102 Un-obsolete ContentService.Publish 2014-01-22 11:27:44 +11:00
Shannon 9796b30bbb Fixes: U4-4104 Using strongly typed Html.Action<T> with a PluginController causes exception 2014-01-22 11:02:24 +11:00
Sebastiaan Janssen ead837f654 U4-4095 Missing Keys in English US Language File 2014-01-20 19:15:50 +01:00
Shannon 88182edf8f Merge remote-tracking branch 'origin/6.2.0' into 7.1.0 2014-01-20 18:34:11 +11:00
Shannon e456dd3886 Merge branch '7.0.2' into 7.1.0 2014-01-20 18:33:54 +11:00
Shannon c2c4763faa Ensures username is escaped in user service 2014-01-20 16:11:38 +11:00
Shannon c062d3b71b Merge branch '6.2.0' of https://github.com/umbraco/Umbraco-CMS into 6.2.0 2014-01-20 16:01:53 +11:00
Shannon ed83fb8216 updates user task creation for release 2014-01-20 16:00:19 +11:00
Shandem 80601abb27 Rename umbImageGravity.directive.js to umbimagegravity.directive.js
Changed file name to be consistent with the rest of our file names
2014-01-15 11:11:31 +11:00
Shandem 79384d8a0a Rename umbImageCrop.directive.js to umbimagecrop.directive.js
changed file name to be consistent with the rest of our file names
2014-01-15 11:11:02 +11:00
Shannon 793a1a9aa8 Adds comments to EntityController code to use UmbracoHelper 2014-01-15 11:08:02 +11:00
Shannon e3da493345 Re-adds all updates for the WIP for xpath/css filtering and the cropper. 2014-01-15 11:06:20 +11: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
Robert Foster f674fdf014 Implemented spectrum for picking colors for the color picker pre-value editor and added broader bgColor directive 2014-01-13 03:26:55 +11:00
Lars-Erik Aabech 6eeb9d6af4 Forgot document type on general properties tab 2014-01-07 18:53:47 +01:00
Lars-Erik Aabech cbefabb724 Changed TabsAndPropertyResolver's translation mechanism to use CultureDictionaryFactory. Also added translation to ContentTypeController.GetAllowedChildren. Localization "complete" and working for content editing. 2014-01-07 17:44:01 +01:00
Lars-Erik Aabech f7f6cc64ce More or less fixes content localization. Must do more tests and fix create dialog. Only tested manually on my box. 2014-01-07 16:43:03 +01:00
Lars-Erik Aabech 1408e4f64e DictionaryRepository now excludes translations with missing language. Should've committed a test to prove that TabsAndPropertiesResolver.TranslateTab uncommented fails, but can't find a nice existing fixture, so just debugging to see if it works now. 2014-01-07 16:15:59 +01:00
Lars-Erik Aabech 0a68d2f4ee Language repo now returns null for non-existing ids, making Get_WhenIdDoesntExist_ReturnsNull pass. 2014-01-07 16:03:26 +01:00
Lars-Erik Aabech 11a4a0436d Proves LanguageRepository lines 37-38 to be useless, but probably intended 2014-01-07 15:55:49 +01:00
Lars-Erik Aabech 2583800b2c Proves dictionary repository fails to get when weird 0 languageid dictionary item exists. 2014-01-07 15:53:17 +01:00
stefana99 067268a96e Changes to imageCropper, supports new mediafilesystem 2013-12-16 13:35:18 +00:00
1159 changed files with 35738 additions and 25996 deletions
+3
View File
@@ -107,3 +107,6 @@ src/Umbraco.Web.UI/[Cc]onfig/appSettings.config
src/Umbraco.Web.UI/[Cc]onfig/connectionStrings.config
src/Umbraco.Web.UI/umbraco/plugins/*
src/Umbraco.Web.UI/umbraco/js/init.js
build/ApiDocs/*
build/ApiDocs/Output/*
src/Umbraco.Web.UI.Client/bower_components/*
+170
View File
@@ -0,0 +1,170 @@
/* File : TOC.css
// Author : Eric Woodruff (Eric@EWoodruff.us)
// Updated : 09/07/2007
//
// Stylesheet for the table of content
*/
*
{
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
}
body
{
font-family: Segoe UI, Arial, Verdana, Helvetica, sans-serif;
font-size: 0.9em;
background-color: white;
color: White;
overflow: hidden;
}
input
{
padding:5px;
margin: 3px 0px 3px 0px
}
img
{
border: 0;
margin-left: 5px;
margin-right: 2px;
}
img.TreeNodeImg
{
cursor: pointer;
}
img.TOCLink
{
cursor: pointer;
margin-left: 0;
margin-right: 0;
}
a.SelectedNode, a.UnselectedNode
{
color: #333;
text-decoration: none;
padding: 1px 3px 1px 3px;
white-space: nowrap;
}
a.SelectedNode
{
background-color: #ffffff;
border: solid 1px #999999;
padding: 0px 2px 0px 2px;
}
a.UnselectedNode:hover, a.SelectedNode:hover
{
background-color: #cccccc;
border: solid 1px #999999;
padding: 0px 2px 0px 2px;
}
.Visible
{
display: block;
margin-left: 2em;
}
.Hidden
{
display: none;
}
.Tree
{
background-color: #fff;
color: #333;
width: 300px;
overflow: auto;
}
.TreeNode, .TreeItem
{
white-space: nowrap;
margin: 2px 2px 2px 2px;
}
.TOCDiv
{
position: relative;
float: left;
width: 300px;
height: 100%;
}
.TOCSizer
{
clear: none;
float: left;
width: 10px;
height: 100%;
background-image: url("Splitter.gif");
background-position:center center;
background-repeat:no-repeat;
position: relative;
cursor: w-resize;
border-left: solid 1px #CCC;
}
.TopicContent
{
position: relative;
float: right;
background-color: white;
height: 100%;
}
.SearchOpts
{
padding: 5px 5px 10px 5px;
color: black;
width: 300px;
border-bottom: solid lightgrey 1px;
height: 110px !important;
}
.NavOpts
{
padding: 5px 5px 6px 5px;
color: black;
width: 300px;
border-bottom: solid lightgrey 1px;
}
.NavOpts img {
display:inline-block;
margin: 0px 5px 0px 5px;
}
.IndexOpts
{
padding: 5px 5px 6px 5px;
color: black;
width: 300px;
border-bottom: solid lightgrey 1px;
}
.IndexItem
{
white-space: nowrap;
margin: 2px 2px 2px 2px;
}
.IndexSubItem
{
white-space: nowrap;
margin: 2px 2px 2px 12px;
}
.PaddedText
{
margin: 10px 10px 10px 10px;
}
+172
View File
@@ -0,0 +1,172 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<!-- The configuration and platform will be used to determine which
assemblies to include from solution and project documentation
sources -->
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{cb4d85f1-7390-40ee-b41f-a724bb8fddea}</ProjectGuid>
<SHFBSchemaVersion>1.9.5.0</SHFBSchemaVersion>
<!-- AssemblyName, Name, and RootNamespace are not used by SHFB but Visual
Studio adds them anyway -->
<AssemblyName>Documentation</AssemblyName>
<RootNamespace>Documentation</RootNamespace>
<Name>Documentation</Name>
<!-- SHFB properties -->
<FrameworkVersion>.NET Framework 4.5</FrameworkVersion>
<OutputPath>.\Output\</OutputPath>
<HtmlHelpName>UmbracoClassLibrary</HtmlHelpName>
<Language>en-US</Language>
<BuildAssemblerVerbosity>OnlyErrors</BuildAssemblerVerbosity>
<BuildLogFile>csharp-api-docs.log</BuildLogFile>
<HelpFileFormat>Website</HelpFileFormat>
<IndentHtml>True</IndentHtml>
<KeepLogFile>False</KeepLogFile>
<DisableCodeBlockComponent>False</DisableCodeBlockComponent>
<CppCommentsFixup>False</CppCommentsFixup>
<CleanIntermediates>True</CleanIntermediates>
<SyntaxFilters>CSharp</SyntaxFilters>
<SdkLinkTarget>Blank</SdkLinkTarget>
<RootNamespaceContainer>False</RootNamespaceContainer>
<PresentationStyle>VS2010</PresentationStyle>
<Preliminary>False</Preliminary>
<NamingMethod>Guid</NamingMethod>
<HelpTitle>Umbraco .Net Class Library</HelpTitle>
<ContentPlacement>AboveNamespaces</ContentPlacement>
<VisibleItems>Attributes, InheritedMembers, InheritedFrameworkMembers, Protected, SealedProtected</VisibleItems>
<ComponentConfigurations />
<DocumentationSources>
<DocumentationSource sourceFile="..\..\src\Umbraco.Core\Umbraco.Core.csproj" />
<DocumentationSource sourceFile="..\..\src\Umbraco.Core\bin\Release\Umbraco.Core.xml" />
<DocumentationSource sourceFile="..\..\src\Umbraco.Web\Umbraco.Web.csproj" />
<DocumentationSource sourceFile="..\..\src\Umbraco.Web\bin\Release\umbraco.xml" /></DocumentationSources>
<WebsiteSdkLinkType>None</WebsiteSdkLinkType>
<HtmlSdkLinkType>None</HtmlSdkLinkType>
<IncludeFavorites>False</IncludeFavorites>
<BinaryTOC>True</BinaryTOC>
<MissingTags>Summary, AutoDocumentCtors, AutoDocumentDispose</MissingTags>
<TransformComponentArguments>
<Argument Key="logoFile" Value="" />
<Argument Key="logoHeight" Value="" />
<Argument Key="logoWidth" Value="" />
<Argument Key="logoAltText" Value="" />
<Argument Key="logoPlacement" Value="left" />
<Argument Key="logoAlignment" Value="left" />
</TransformComponentArguments>
<ApiFilter>
<Filter entryType="Namespace" fullName="CookComputing.Blogger" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="CookComputing.MetaWeblog" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="dashboardUtilities" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="presentation.umbraco.webservices" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco" isExposed="False" xmlns="">
<Filter entryType="Class" fullName="umbraco.content" filterName="content" isExposed="True" />
<Filter entryType="Delegate" fullName="umbraco.content.ContentCacheDatabaseLoadXmlStringEventHandler" filterName="content.ContentCacheDatabaseLoadXmlStringEventHandler" isExposed="False" />
<Filter entryType="Delegate" fullName="umbraco.content.ContentCacheLoadNodeEventHandler" filterName="content.ContentCacheLoadNodeEventHandler" isExposed="False" />
<Filter entryType="Delegate" fullName="umbraco.content.DocumentCacheEventHandler" filterName="content.DocumentCacheEventHandler" isExposed="False" />
<Filter entryType="Delegate" fullName="umbraco.content.RefreshContentEventHandler" filterName="content.RefreshContentEventHandler" isExposed="False" />
<Filter entryType="Class" fullName="umbraco.ContentExtensions" filterName="ContentExtensions" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.ContentTypeExtensions" filterName="ContentTypeExtensions" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.item" filterName="item" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.library" filterName="library" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.macro" filterName="macro" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.MacroCacheContent" filterName="MacroCacheContent" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.MacroRenderingEventArgs" filterName="MacroRenderingEventArgs" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.MediaExtensions" filterName="MediaExtensions" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.MemberExtensions" filterName="MemberExtensions" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.page" filterName="page" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.PreValueExtensions" filterName="PreValueExtensions" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.RelationTypeExtensions" filterName="RelationTypeExtensions" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.template" filterName="template" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.UmbracoObjectTypeExtensions" filterName="UmbracoObjectTypeExtensions" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.uQuery" filterName="uQuery" isExposed="True" />
<Filter entryType="Interface" fullName="umbraco.uQuery.IGetProperty" filterName="uQuery.IGetProperty" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.uQuery.Members" filterName="uQuery.Members" isExposed="True" />
<Filter entryType="Enumeration" fullName="umbraco.uQuery.UmbracoObjectType" filterName="uQuery.UmbracoObjectType" isExposed="True" />
</Filter>
<Filter entryType="Namespace" fullName="umbraco.cms.presentation" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.cms.presentation.create.controls" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.cms.presentation.developer" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.cms.presentation.developer.RelationTypes" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.cms.presentation.developer.RelationTypes.TreeMenu" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.cms.presentation.members" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.cms.presentation.settings" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.cms.presentation.settings.modal" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.cms.presentation.settings.scripts" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.cms.presentation.settings.stylesheet" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.cms.presentation.user" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.controls" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.controls.GenericProperties" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.controls.Images" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.controls.Tree" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.developer" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.dialogs" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.js" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.layoutControls" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.NodeFactory" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.actions" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.channels" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.channels.businesslogic" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.create" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.developer.packages" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.dialogs" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.masterpages" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.members" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.nodeFactory" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.org.umbraco.update" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.plugins.tinymce3" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.preview" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.Search" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.settings" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.templateControls" isExposed="False" xmlns="">
<Filter entryType="Class" fullName="umbraco.presentation.templateControls.Item" filterName="Item" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.presentation.templateControls.ItemRenderer" filterName="ItemRenderer" isExposed="True" />
<Filter entryType="Class" fullName="umbraco.presentation.templateControls.Macro" filterName="Macro" isExposed="True" />
<Filter entryType="Enumeration" fullName="umbraco.presentation.templateControls.Macro.RenderEvents" filterName="Macro.RenderEvents" isExposed="False" />
</Filter>
<Filter entryType="Namespace" fullName="umbraco.presentation.tinymce3" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.translation" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.umbraco" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.umbraco.channels" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.umbraco.controls" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.umbraco.create" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.umbraco.developer.Xslt" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.umbraco.dialogs" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.umbraco.masterpages" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.umbraco.members" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.umbraco.plugins.tinymce3" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.umbraco.Search" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.umbraco.translation" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.umbraco.webservices" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.umbraco_client.tinymce3.plugins.spellchecker" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.urlRewriter" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.Web.UI" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.presentation.webservices" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.scripting" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.settings" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="Umbraco.Web.org.umbraco.our" isExposed="False" xmlns="" />
<Filter entryType="Namespace" fullName="umbraco.webservices" isExposed="False" xmlns="" /></ApiFilter>
</PropertyGroup>
<!-- There are no properties for these groups. AnyCPU needs to appear in
order for Visual Studio to perform the build. The others are optional
common platform types that may appear. -->
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|Win32' ">
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Win32' ">
</PropertyGroup>
<!-- Import the SHFB build targets -->
<Import Project="$(SHFBROOT)\SandcastleHelpFileBuilder.targets" />
</Project>
+8 -4
View File
@@ -1,5 +1,5 @@
@ECHO OFF
SET release=7.0.2
SET release=7.1.2
SET comment=
SET version=%release%
@@ -12,6 +12,9 @@ ECHO Installing the Microsoft.Bcl.Build package before anything else, otherwise
SET nuGetFolder=%CD%\..\src\packages\
..\src\.nuget\NuGet.exe install ..\src\Umbraco.Web.UI\packages.config -OutputDirectory %nuGetFolder%
ECHO Removing the belle build folder to make sure everything is clean as a whistle
RD ..\src\Umbraco.Web.UI.Client\build /Q /S
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%
@@ -30,11 +33,12 @@ echo This file is only here so that the containing folder will be included in th
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
ren .\_BuildOutput\WebApp\Xslt\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%
..\src\.nuget\NuGet.exe Pack NuSpecs\UmbracoCms.Core.nuspec -Version %version%
..\src\.nuget\NuGet.exe Pack NuSpecs\UmbracoCms.nuspec -Version %version%
IF ERRORLEVEL 1 GOTO :showerror
GOTO :EOF
+11 -1
View File
@@ -310,7 +310,12 @@
</Target>
<Target Name="SetVersionNumber" Condition="'$(BUILD_RELEASE)'!=''">
<!-- Match & replace 3 and 4 digit version numbers and -beta (if it's there) -->
<PropertyGroup>
<NewVersion>$(BUILD_RELEASE)</NewVersion>
<NewVersion Condition="'$(BUILD_COMMENT)'!=''">$(BUILD_RELEASE)-$(BUILD_COMMENT)</NewVersion>
</PropertyGroup>
<!-- Match & replace 3 and 4 digit version numbers and -beta (if it's there) -->
<FileUpdate
Files="..\src\Umbraco.Core\Configuration\UmbracoVersion.cs"
Regex="(\d+)\.(\d+)\.(\d+)(.(\d+))?"
@@ -319,5 +324,10 @@
<FileUpdate Files="..\src\Umbraco.Core\Configuration\UmbracoVersion.cs"
Regex="CurrentComment { get { return &quot;([a-zA-Z]+)?&quot;"
ReplacementText="CurrentComment { get { return &quot;$(BUILD_COMMENT)&quot;"/>
<XmlPoke XmlInputPath=".\NuSpecs\build\UmbracoCms.targets"
Namespaces="&lt;Namespace Prefix='x' Uri='http://schemas.microsoft.com/developer/msbuild/2003' /&gt;"
Query="//x:UmbracoVersion"
Value="$(NewVersion)" />
</Target>
</Project>
+4 -1
View File
@@ -15,6 +15,8 @@ SET oldPath=%PATH%
path=%npmPath%;%nodePath%;%PATH%
ECHO %path%
SET buildFolder=%CD%
ECHO Change directory to %CD%\..\src\Umbraco.Web.UI.Client\
@@ -23,7 +25,8 @@ 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
call npm install -g bower
call grunt build --buildversion=7.1.2
ECHO Reset path to what it was before
path=%oldPath%
+27
View File
@@ -0,0 +1,27 @@
##We cannot continue if sandcastle is not installed determined by env variable: SHFBROOT
if (-not (Test-Path Env:\SHFBROOT))
{
throw "The docs cannot be build, install Sandcastle help file builder"
}
$PSScriptFilePath = (Get-Item $MyInvocation.MyCommand.Path).FullName
$BuildRoot = Split-Path -Path $PSScriptFilePath -Parent
$OutputPath = Join-Path -Path $BuildRoot -ChildPath "ApiDocs\Output"
$ProjFile = Join-Path -Path $BuildRoot -ChildPath "ApiDocs\csharp-api-docs.shfbproj"
"Building docs with project file: $ProjFile"
$MSBuild = "$Env:SYSTEMROOT\Microsoft.NET\Framework\v4.0.30319\msbuild.exe"
# build it!
& $MSBuild "$ProjFile"
# remove files left over
Remove-Item $BuildRoot\* -include csharp-api-docs.shfbproj_*
# copy our custom styles in
Copy-Item $BuildRoot\ApiDocs\TOC.css $OutputPath\TOC.css
""
"Done!"
@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>UmbracoCms.Core.AllBinaries</id>
<version>6.1.2</version>
<title>Umbraco Cms Core All Binaries</title>
<authors>Morten Christensen</authors>
<owners>Umbraco HQ</owners>
<licenseUrl>http://umbraco.codeplex.com/license</licenseUrl>
<projectUrl>http://umbraco.com/</projectUrl>
<iconUrl>http://umbraco.com/media/357769/100px_transparent.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Contains the core assemblies and all of the dependant assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms-package to setup Umbraco in Visual Studio as an ASP.NET project.</description>
<summary>Contains the core assemblies and all of the dependant assemblies needed to run Umbraco Cms</summary>
<language>en-US</language>
<tags>umbraco</tags>
</metadata>
<files>
<file src="..\_BuildOutput\bin\businesslogic.dll" target="lib\businesslogic.dll" />
<file src="..\_BuildOutput\bin\AutoMapper.dll" target="lib\AutoMapper.dll" />
<file src="..\_BuildOutput\bin\AutoMapper.Net4.dll" target="lib\AutoMapper.Net4.dll" />
<file src="..\_BuildOutput\bin\businesslogic.dll" target="lib\businesslogic.dll" />
<file src="..\_BuildOutput\bin\ClientDependency.Core.dll" target="lib\ClientDependency.Core.dll" />
<file src="..\_BuildOutput\bin\ClientDependency.Core.Mvc.dll" target="lib\ClientDependency.Core.Mvc.dll" />
<file src="..\_BuildOutput\bin\cms.dll" target="lib\cms.dll" />
<file src="..\_BuildOutput\bin\controls.dll" target="lib\controls.dll" />
<file src="..\_BuildOutput\bin\CookComputing.XmlRpcV2.dll" target="lib\CookComputing.XmlRpcV2.dll" />
<file src="..\_BuildOutput\bin\Examine.dll" target="lib\Examine.dll" />
<file src="..\_BuildOutput\bin\HtmlAgilityPack.dll" target="lib\HtmlAgilityPack.dll" />
<file src="..\_BuildOutput\bin\ICSharpCode.SharpZipLib.dll" target="lib\ICSharpCode.SharpZipLib.dll" />
<file src="..\_BuildOutput\bin\ImageProcessor.dll" target="lib\ImageProcessor.dll" />
<file src="..\_BuildOutput\bin\ImageProcessor.Web.dll" target="lib\ImageProcessor.Web.dll" />
<file src="..\_BuildOutput\bin\interfaces.dll" target="lib\interfaces.dll" />
<file src="..\_BuildOutput\bin\log4net.dll" target="lib\log4net.dll" />
<file src="..\_BuildOutput\bin\Lucene.Net.dll" target="lib\Lucene.Net.dll" />
<file src="..\_BuildOutput\bin\Microsoft.ApplicationBlocks.Data.dll" target="lib\Microsoft.ApplicationBlocks.Data.dll" />
<file src="..\_BuildOutput\bin\Microsoft.Threading.Tasks.dll" target="lib\Microsoft.Threading.Tasks.dll" />
<file src="..\_BuildOutput\bin\Microsoft.Threading.Tasks.Extensions.dll" target="lib\Microsoft.Threading.Tasks.Extensions.dll" />
<file src="..\_BuildOutput\bin\Microsoft.Web.Helpers.dll" target="lib\Microsoft.Web.Helpers.dll" />
<file src="..\_BuildOutput\bin\Microsoft.Web.Infrastructure.dll" target="lib\Microsoft.Web.Infrastructure.dll" />
<file src="..\_BuildOutput\bin\Microsoft.Web.Mvc.FixedDisplayModes.dll" target="lib\Microsoft.Web.Mvc.FixedDisplayModes.dll" />
<file src="..\_BuildOutput\bin\MiniProfiler.dll" target="lib\MiniProfiler.dll" />
<file src="..\_BuildOutput\bin\MySql.Data.dll" target="lib\MySql.Data.dll" />
<file src="..\_BuildOutput\bin\Newtonsoft.Json.dll" target="lib\Newtonsoft.Json.dll" />
<file src="..\_BuildOutput\bin\NuGet.Core.dll" target="lib\NuGet.Core.dll" />
<file src="..\_BuildOutput\bin\SQLCE4Umbraco.dll" target="lib\SQLCE4Umbraco.dll" />
<file src="..\_BuildOutput\bin\System.Data.SqlServerCe.dll" target="lib\System.Data.SqlServerCe.dll" />
<file src="..\_BuildOutput\bin\System.Data.SqlServerCe.Entity.dll" target="lib\System.Data.SqlServerCe.Entity.dll" />
<file src="..\_BuildOutput\bin\System.Net.Http.dll" target="lib\System.Net.Http.dll" />
<file src="..\_BuildOutput\bin\System.Net.Http.Extensions.dll" target="lib\System.Net.Http.Extensions.dll" />
<file src="..\_BuildOutput\bin\System.Net.Http.Formatting.dll" target="lib\System.Net.Http.Formatting.dll" />
<file src="..\_BuildOutput\bin\System.Net.Http.Primitives.dll" target="lib\System.Net.Http.Primitives.dll" />
<file src="..\_BuildOutput\bin\System.Net.Http.WebRequest.dll" target="lib\System.Net.Http.WebRequest.dll" />
<file src="..\_BuildOutput\bin\System.Web.Helpers.dll" target="lib\System.Web.Helpers.dll" />
<file src="..\_BuildOutput\bin\System.Web.Http.dll" target="lib\System.Web.Http.dll" />
<file src="..\_BuildOutput\bin\System.Web.Http.WebHost.dll" target="lib\System.Web.Http.WebHost.dll" />
<file src="..\_BuildOutput\bin\System.Web.Mvc.dll" target="lib\System.Web.Mvc.dll" />
<file src="..\_BuildOutput\bin\System.Web.Razor.dll" target="lib\System.Web.Razor.dll" />
<file src="..\_BuildOutput\bin\System.Web.WebPages.Administration.dll" target="lib\System.Web.WebPages.Administration.dll" />
<file src="..\_BuildOutput\bin\System.Web.WebPages.Deployment.dll" target="lib\System.Web.WebPages.Deployment.dll" />
<file src="..\_BuildOutput\bin\System.Web.WebPages.dll" target="lib\System.Web.WebPages.dll" />
<file src="..\_BuildOutput\bin\System.Web.WebPages.Razor.dll" target="lib\System.Web.WebPages.Razor.dll" />
<file src="..\_BuildOutput\bin\TidyNet.dll" target="lib\TidyNet.dll" />
<file src="..\_BuildOutput\bin\Umbraco.Core.dll" target="lib\Umbraco.Core.dll" />
<file src="..\_BuildOutput\bin\umbraco.DataLayer.dll" target="lib\umbraco.DataLayer.dll" />
<file src="..\_BuildOutput\bin\umbraco.dll" target="lib\umbraco.dll" />
<file src="..\_BuildOutput\bin\umbraco.editorControls.dll" target="lib\umbraco.editorControls.dll" />
<file src="..\_BuildOutput\bin\umbraco.MacroEngines.dll" target="lib\umbraco.MacroEngines.dll" />
<file src="..\_BuildOutput\bin\umbraco.providers.dll" target="lib\umbraco.providers.dll" />
<file src="..\_BuildOutput\bin\Umbraco.Web.UI.dll" target="lib\Umbraco.Web.UI.dll" />
<file src="..\_BuildOutput\bin\UmbracoExamine.dll" target="lib\UmbracoExamine.dll" />
<file src="..\_BuildOutput\bin\UrlRewritingNet.UrlRewriter.dll" target="lib\UrlRewritingNet.UrlRewriter.dll" />
</files>
</package>
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>UmbracoCms.Core</id>
<version>7.0.0</version>
<title>Umbraco Cms Core Binaries</title>
<authors>Umbraco HQ</authors>
<owners>Umbraco HQ</owners>
<licenseUrl>http://umbraco.codeplex.com/license</licenseUrl>
<projectUrl>http://umbraco.com/</projectUrl>
<iconUrl>http://umbraco.com/media/357769/100px_transparent.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Contains the core assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms-package to setup Umbraco in Visual Studio as an ASP.NET project.</description>
<summary>Contains the core assemblies needed to run Umbraco Cms</summary>
<language>en-US</language>
<tags>umbraco</tags>
</metadata>
<files>
<file src="..\..\src\SQLCE4Umbraco\obj\Debug\SQLCE4Umbraco.dll" target="lib" />
<file src="..\..\src\SQLCE4Umbraco\obj\Debug\SQLCE4Umbraco.pdb" target="lib" />
<file src="..\..\src\SQLCE4Umbraco\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\SQLCE4Umbraco" />
<file src="..\..\src\umbraco.businesslogic\obj\Debug\businesslogic.dll" target="lib" />
<file src="..\..\src\umbraco.businesslogic\obj\Debug\businesslogic.pdb" target="lib" />
<file src="..\..\src\umbraco.businesslogic\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.businesslogic" />
<file src="..\..\src\umbraco.cms\obj\Debug\cms.dll" target="lib" />
<file src="..\..\src\umbraco.cms\obj\Debug\cms.pdb" target="lib" />
<file src="..\..\src\umbraco.cms\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.cms" />
<file src="..\..\src\umbraco.controls\obj\Debug\controls.dll" target="lib" />
<file src="..\..\src\umbraco.controls\obj\Debug\controls.pdb" target="lib" />
<file src="..\..\src\umbraco.controls\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.controls" />
<file src="..\..\src\umbraco.interfaces\obj\Debug\interfaces.dll" target="lib" />
<file src="..\..\src\umbraco.interfaces\obj\Debug\interfaces.pdb" target="lib" />
<file src="..\..\src\umbraco.interfaces\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.interfaces" />
<file src="..\..\src\Umbraco.Core\obj\Debug\Umbraco.Core.dll" target="lib" />
<file src="..\..\src\Umbraco.Core\obj\Debug\Umbraco.Core.pdb" target="lib" />
<file src="..\..\src\Umbraco.Core\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Core" />
<file src="..\..\src\umbraco.datalayer\obj\Debug\umbraco.DataLayer.dll" target="lib" />
<file src="..\..\src\umbraco.datalayer\obj\Debug\umbraco.DataLayer.pdb" target="lib" />
<file src="..\..\src\umbraco.datalayer\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.datalayer" />
<file src="..\..\src\umbraco.editorControls\obj\Debug\umbraco.editorControls.dll" target="lib" />
<file src="..\..\src\umbraco.editorControls\obj\Debug\umbraco.editorControls.pdb" target="lib" />
<file src="..\..\src\umbraco.editorControls\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.editorControls" />
<file src="..\..\src\umbraco.MacroEngines\obj\Debug\umbraco.MacroEngines.dll" target="lib" />
<file src="..\..\src\umbraco.MacroEngines\obj\Debug\umbraco.MacroEngines.pdb" target="lib" />
<file src="..\..\src\umbraco.MacroEngines\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.MacroEngines" />
<file src="..\..\src\umbraco.providers\obj\Debug\umbraco.providers.dll" target="lib" />
<file src="..\..\src\umbraco.providers\obj\Debug\umbraco.providers.pdb" target="lib" />
<file src="..\..\src\umbraco.providers\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\umbraco.providers" />
<file src="..\..\src\Umbraco.Web\obj\Debug\umbraco.dll" target="lib" />
<file src="..\..\src\Umbraco.Web\obj\Debug\umbraco.pdb" target="lib" />
<file src="..\..\src\Umbraco.Web\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Web" />
<file src="..\..\src\bin\Debug\Umbraco.Web.UI.dll" target="lib" />
<file src="..\..\src\bin\Debug\Umbraco.Web.UI.pdb" target="lib" />
<file src="..\..\src\Umbraco.Web.UI\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\Umbraco.Web.UI" />
<file src="..\..\src\UmbracoExamine\obj\Debug\UmbracoExamine.dll" target="lib" />
<file src="..\..\src\UmbracoExamine\obj\Debug\UmbracoExamine.pdb" target="lib" />
<file src="..\..\src\UmbracoExamine\**\*.cs" exclude="..\..\src\**\TemporaryGeneratedFile*.cs" target="src\UmbracoExamine" />
</files>
</package>
+8 -7
View File
@@ -4,7 +4,7 @@
<id>UmbracoCms.Core</id>
<version>7.0.0</version>
<title>Umbraco Cms Core Binaries</title>
<authors>Morten Christensen</authors>
<authors>Umbraco HQ</authors>
<owners>Umbraco HQ</owners>
<licenseUrl>http://umbraco.codeplex.com/license</licenseUrl>
<projectUrl>http://umbraco.com/</projectUrl>
@@ -16,8 +16,8 @@
<tags>umbraco</tags>
<dependencies>
<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.WebApi" version="[4.0.30506,5.0.0)" />
<dependency id="Microsoft.AspNet.WebApi.Client" version="[4.0.30506, 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)" />
@@ -26,16 +26,17 @@
<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-Mvc" version="[1.7.0, 2.0.0)" />
<dependency id="ClientDependency" version="[1.7.1.2, 2.0.0)" />
<dependency id="ClientDependency-Mvc" version="[1.7.0.4, 2.0.0)" />
<dependency id="AutoMapper" version="[3.0.0, 4.0.0)" />
<dependency id="Newtonsoft.Json" version="[4.5.11, 5.0.0)" />
<dependency id="Newtonsoft.Json" version="[6.0.2, 7.0.0)" />
<dependency id="ImageProcessor" version="[1.9.0, 2.0.0)" />
<dependency id="ImageProcessor.Web" version="[3.2.3, 4.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" />
+6 -9
View File
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<metadata minClientVersion="2.8">
<id>UmbracoCms</id>
<version>7.0.0</version>
<title>Umbraco Cms</title>
<authors>Morten Christensen</authors>
<authors>Umbraco HQ</authors>
<owners>Umbraco HQ</owners>
<licenseUrl>http://umbraco.codeplex.com/license</licenseUrl>
<projectUrl>http://umbraco.com/</projectUrl>
@@ -19,8 +19,6 @@
</dependencies>
</metadata>
<files>
<file src="..\_BuildOutput\WebApp\bin\amd64\**" target="Content\bin\amd64" />
<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" exclude="..\_BuildOutput\WebApp\macroScripts\Web.config" />
@@ -32,15 +30,14 @@
<file src="..\_BuildOutput\WebApp\xslt\**" target="Content\xslt" />
<file src="..\_BuildOutput\WebApp\default.aspx" target="Content\default.aspx" />
<file src="..\_BuildOutput\WebApp\Web.config" target="Content\Web.config" />
<file src="..\_BuildOutput\WebApp\Global.asax" target="Content\Global.asax" />
<file src="..\_BuildOutput\WebApp\App_Browsers\**" target="UmbracoFiles\App_Browsers" />
<file src="..\_BuildOutput\WebApp\App_Code\**" target="UmbracoFiles\App_Code" />
<file src="..\_BuildOutput\WebApp\App_Data\**" target="UmbracoFiles\App_Data" />
<file src="..\_BuildOutput\WebApp\App_Plugins\**" target="UmbracoFiles\App_Plugins" />
<file src="..\_BuildOutput\WebApp\App_Plugins\**" target="UmbracoFiles\App_Plugins" />
<file src="..\_BuildOutput\WebApp\bin\amd64\**" target="UmbracoFiles\bin\amd64" />
<file src="..\_BuildOutput\WebApp\bin\x86\**" target="UmbracoFiles\bin\x86" />
<file src="..\_BuildOutput\WebApp\config\splashes\**" target="UmbracoFiles\config\splashes" />
<file src="..\_BuildOutput\WebApp\install\**" target="UmbracoFiles\install" />
<file src="..\_BuildOutput\WebApp\umbraco\**" target="UmbracoFiles\umbraco" />
<file src="..\_BuildOutput\WebApp\umbraco_client\**" target="UmbracoFiles\umbraco_client" />
<file src="..\_BuildOutput\WebApp\Global.asax" target="UmbracoFiles\Global.asax" />
<file src="..\_BuildOutput\WebApp\Web.config" target="UmbracoFiles\Web.config" />
<file src="tools\install.ps1" target="tools\install.ps1" />
<file src="tools\Readme.txt" target="tools\Readme.txt" />
@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
AddUmbracoFilesToOutput;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
<CopyAllFilesToSingleFolderForMsdeployDependsOn>
AddUmbracoFilesToOutput;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
AddUmbracoFilesToOutput;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
<CopyAllFilesToSingleFolderForMsdeployDependsOn>
AddUmbracoFilesToOutput;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>
</Project>
+50
View File
@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<UmbracoVersion>7.1.2</UmbracoVersion>
</PropertyGroup>
<Target Name="CopyUmbracoFilesToWebRoot" BeforeTargets="AfterBuild">
<PropertyGroup>
<UmbracoFilesFolder>..\packages\UmbracoCms.$(UmbracoVersion)\UmbracoFiles\</UmbracoFilesFolder>
</PropertyGroup>
<ItemGroup>
<UmbracoFiles Include="$(UmbracoFilesFolder)**\*" />
</ItemGroup>
<Copy SourceFiles="%(UmbracoFiles.FullPath)" DestinationFiles="%(RecursiveDir)%(Filename)%(Extension)" Condition="!Exists('%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
<Target Name="AddUmbracoFilesToOutput">
<!-- With help from: http://blog.samstephens.co.nz/2010-10-18/msbuild-including-extra-files-multiple-builds/ -->
<ItemGroup>
<CustomFilesToInclude Include=".\App_Browsers\**\*">
<Dir>App_Browsers</Dir>
</CustomFilesToInclude>
<CustomFilesToInclude Include=".\App_Code\**\*">
<Dir>App_Code</Dir>
</CustomFilesToInclude>
<CustomFilesToInclude Include=".\App_Plugins\**\*">
<Dir>App_Plugins</Dir>
</CustomFilesToInclude>
<CustomFilesToInclude Include=".\bin\amd64\**\*">
<Dir>bin\amd64</Dir>
</CustomFilesToInclude>
<CustomFilesToInclude Include=".\bin\x86\**\*">
<Dir>bin\x86</Dir>
</CustomFilesToInclude>
<CustomFilesToInclude Include=".\Config\Splashes\**\*">
<Dir>Config\Splashes</Dir>
</CustomFilesToInclude>
<CustomFilesToInclude Include=".\umbraco\**\*">
<Dir>umbraco</Dir>
</CustomFilesToInclude>
<CustomFilesToInclude Include=".\umbraco_client\**\*">
<Dir>umbraco_client</Dir>
</CustomFilesToInclude>
<CustomFilesToInclude Include=".\Global.asax">
<Dir>.</Dir>
</CustomFilesToInclude>
<FilesForPackagingFromProject Include="@(CustomFilesToInclude)">
<DestinationRelativePath>%(CustomFilesToInclude.Dir)\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
</Project>
@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="AddUmbracoFilesToOutput">
<ItemGroup>
<UmbracoFiles Include=".\umbraco\**\*;" />
<UmbracoClientFiles Include=".\umbraco_client\**\*;" />
<AppBrowsersFiles Include=".\App_Browsers\**\*" />
<FilesForPackagingFromProject Include="%(UmbracoFiles.Identity)">
<DestinationRelativePath>umbraco\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
<FilesForPackagingFromProject Include="%(UmbracoClientFiles.Identity)">
<DestinationRelativePath>umbraco_client\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
<FilesForPackagingFromProject Include="%(AppBrowsersFiles.Identity)">
<DestinationRelativePath>App_Browsers\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
</Project>
@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
AddUmbracoFilesToOutput;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
<CopyAllFilesToSingleFolderForMsdeployDependsOn>
AddUmbracoFilesToOutput;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>
</Project>
@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="AddUmbracoFilesToOutput">
<ItemGroup>
<UmbracoFiles Include=".\umbraco\**\*;" />
<UmbracoClientFiles Include=".\umbraco_client\**\*;" />
<AppBrowsersFiles Include=".\App_Browsers\**\*" />
<FilesForPackagingFromProject Include="%(UmbracoFiles.Identity)">
<DestinationRelativePath>umbraco\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
<FilesForPackagingFromProject Include="%(UmbracoClientFiles.Identity)">
<DestinationRelativePath>umbraco_client\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
<FilesForPackagingFromProject Include="%(AppBrowsersFiles.Identity)">
<DestinationRelativePath>App_Browsers\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
</Project>
@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
AddUmbracoFilesToOutput;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
<CopyAllFilesToSingleFolderForMsdeployDependsOn>
AddUmbracoFilesToOutput;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>
</Project>
@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="AddUmbracoFilesToOutput">
<ItemGroup>
<UmbracoFiles Include=".\umbraco\**\*;" />
<UmbracoClientFiles Include=".\umbraco_client\**\*;" />
<AppBrowsersFiles Include=".\App_Browsers\**\*" />
<FilesForPackagingFromProject Include="%(UmbracoFiles.Identity)">
<DestinationRelativePath>umbraco\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
<FilesForPackagingFromProject Include="%(UmbracoClientFiles.Identity)">
<DestinationRelativePath>umbraco_client\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
<FilesForPackagingFromProject Include="%(AppBrowsersFiles.Identity)">
<DestinationRelativePath>App_Browsers\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
</Project>
+14 -5
View File
@@ -1,8 +1,17 @@
A note about running Umbraco from Visual Studio.
When upgrading your website using nuget a backup of config files and web.config will be created. Only the web.config will
be overwritten by default to ensure that it has the necessary settings from the current release. This means that you'll
have to merge the files if you made any changes to the previous config files.
When upgrading your website using NuGet you should answer "No" to the questions to overwrite the Web.config
file (and config files in the config folder).
We will overwrite Web.config anyway but we keep a backup in the App_Data\NuGetBackup folder. There you'll
find a folder with the current date and time in which the backup has been placed. Make sure to merge the
new file with the old backup files before you proceed.
The web.config will be overwritten by default to ensure that it has the necessary settings from the current release.
We've also overwritten all the files in the Umbraco and Umbraco_Client folder, these have also been backed up in
App_Data\NuGetBackup. We didn't overwrite the UI.xml file nor did we remove any files or folders that you or a package
might have added. Only the existing files were overwritten. If you customized anything then make sure to do a compare
and merge with the NuGetBackup folder.
The config files found in the config folder will usually not be changed for patch releases, so they can usually be skipped,
but the web.config will have to have its previous "umbracoConfigurationStatus"-appsetting and "umbracoDbDSN" connection string
copied over (as a minimum).
@@ -10,8 +19,8 @@ copied over (as a minimum).
This nuget package includes build targets that extends the creation of a deploy package, which is generated by
Publishing from Visual Studio. The targets will only work once Publishing is configured, so if you don't use
Publish this won't affect you.
These folders will now be automatically included when creating a deploy package or publishing to the file system:
umbraco and umbraco_client.
These things will now be automatically included when creating a deploy package or publishing to the file system:
umbraco, umbraco_client, config\splashes and global.asax.
Please read the release notes on our.umbraco.org:
http://our.umbraco.org/contribute/releases
+39 -18
View File
@@ -1,27 +1,48 @@
param($rootPath, $toolsPath, $package, $project)
if ($project) {
# Create a backup of extisting umbraco config files
$configPath = Join-Path (Split-Path $project.FullName -Parent) "\config"
$backupPath = Join-Path $configPath "\backup"
Get-ChildItem -path $configPath |
Where -filterscript {($_.Name.EndsWith("config"))} | Foreach-Object {
$newFileName = Join-Path $backupPath $_.Name.replace(".config",".config.backup")
New-Item -ItemType File -Path $newFileName -Force
Copy-Item $_.FullName $newFileName -Force
}
if ($project) {
$dateTime = Get-Date -Format yyyyMMdd-HHmmss
$backupPath = Join-Path (Split-Path $project.FullName -Parent) "\App_Data\NuGetBackup\$dateTime"
$copyLogsPath = Join-Path $backupPath "CopyLogs"
# Create backup folder and logs folder if it doesn't exist yet
New-Item -ItemType Directory -Force -Path $backupPath
New-Item -ItemType Directory -Force -Path $copyLogsPath
# Create a backup of original web.config
$projectDestinationPath = Split-Path $project.FullName -Parent
$webConfigSource = Join-Path $projectDestinationPath "web.config"
$webConfigDestination = Join-Path $projectDestinationPath "web.config.backup"
Copy-Item $webConfigSource $webConfigDestination
$webConfigSource = Join-Path $projectDestinationPath "Web.config"
Copy-Item $webConfigSource $backupPath -Force
# Copy umbraco files from package to project folder
$projectDestinationPath = Split-Path $project.FullName -Parent
$umbracoFilesPath = Join-Path $rootPath "UmbracoFiles\*"
Copy-Item $umbracoFilesPath $projectDestinationPath -recurse -force
# Copy Web.config from package to project folder
$umbracoFilesPath = Join-Path $rootPath "UmbracoFiles\Web.config"
Copy-Item $umbracoFilesPath $projectDestinationPath -Force
# Copy umbraco and umbraco_files from package to project folder
# This is only done when these folders already exist because we
# only want to do this for upgrades
$umbracoFolder = Join-Path $projectDestinationPath "Umbraco"
if(Test-Path $umbracoFolder) {
$umbracoFolderSource = Join-Path $rootPath "UmbracoFiles\Umbraco"
$umbracoBackupPath = Join-Path $backupPath "Umbraco"
New-Item -ItemType Directory -Force -Path $umbracoBackupPath
robocopy $umbracoFolder $umbracoBackupPath /e /LOG:$copyLogsPath\UmbracoBackup.log
robocopy $umbracoFolderSource $umbracoFolder /is /it /e /xf UI.xml /LOG:$copyLogsPath\UmbracoCopy.log
}
$umbracoClientFolder = Join-Path $projectDestinationPath "Umbraco_Client"
if(Test-Path $umbracoClientFolder) {
$umbracoClientFolderSource = Join-Path $rootPath "UmbracoFiles\Umbraco_Client"
$umbracoClientBackupPath = Join-Path $backupPath "Umbraco_Client"
New-Item -ItemType Directory -Force -Path $umbracoClientBackupPath
robocopy $umbracoClientFolder $umbracoClientBackupPath /e /LOG:$copyLogsPath\UmbracoClientBackup.log
robocopy $umbracoClientFolderSource $umbracoClientFolder /is /it /e /LOG:$copyLogsPath\UmbracoClientCopy.log
}
# Open readme.txt file
$DTE.ItemOperations.OpenFile($toolsPath + '\Readme.txt')
}
Binary file not shown.
+7
View File
@@ -42,6 +42,13 @@ namespace SqlCE4Umbraco
{
var sqlCeEngine = new SqlCeEngine(ConnectionString);
sqlCeEngine.CreateDatabase();
// SD: Pretty sure this should be in a using clause but i don't want to cause unknown side-effects here
// since it's been like this for quite some time
//using (var sqlCeEngine = new SqlCeEngine(ConnectionString))
//{
// sqlCeEngine.CreateDatabase();
//}
}
}
+3
View File
@@ -165,6 +165,9 @@ namespace Umbraco.Core
/// </remarks>
internal string OriginalRequestUrl { get; set; }
/// <summary>
/// Checks if the version configured matches the assembly version
/// </summary>
private bool Configured
{
get
+2
View File
@@ -1,5 +1,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
namespace Umbraco.Core
+10
View File
@@ -160,5 +160,15 @@ namespace Umbraco.Core
{
return new Attempt<T>(condition, result, null);
}
/// <summary>
/// Implicity operator to check if the attempt was successful without having to access the 'success' property
/// </summary>
/// <param name="a"></param>
/// <returns></returns>
public static implicit operator bool(Attempt<T> a)
{
return a.Success;
}
}
}
+8 -1
View File
@@ -1,3 +1,5 @@
using System;
namespace Umbraco.Core.Cache
{
@@ -9,6 +11,7 @@ namespace Umbraco.Core.Cache
public const string ApplicationTreeCacheKey = "ApplicationTreeCache";
public const string ApplicationsCacheKey = "ApplicationCache";
[Obsolete("This is no longer used and will be removed from the codebase in the future")]
public const string UserTypeCacheKey = "UserTypeCache";
public const string ContentItemCacheKey = "contentItem";
@@ -24,13 +27,16 @@ namespace Umbraco.Core.Cache
public const string MemberLibraryCacheKey = "UL_GetMember";
public const string MemberBusinessLogicCacheKey = "MemberCacheItem_";
public const string TemplateFrontEndCacheKey = "template";
public const string TemplateBusinessLogicCacheKey = "UmbracoTemplateCache";
public const string UserContextCacheKey = "UmbracoUserContext";
public const string UserContextTimeoutCacheKey = "UmbracoUserContextTimeout";
[Obsolete("This is no longer used and will be removed from the codebase in the future")]
public const string UserCacheKey = "UmbracoUser";
public const string UserPermissionsCacheKey = "UmbracoUserPermissions";
public const string ContentTypeCacheKey = "UmbracoContentType";
@@ -47,5 +53,6 @@ namespace Umbraco.Core.Cache
public const string StylesheetPropertyCacheKey = "UmbracoStylesheetProperty";
public const string DataTypeCacheKey = "UmbracoDataTypeDefinition";
public const string DataTypePreValuesCacheKey = "UmbracoPreVal";
}
}
@@ -41,6 +41,12 @@ namespace Umbraco.Core.Cache
return result.Select(x => x.TryConvertTo<T>().Result);
}
public static IEnumerable<T> GetCacheItemsByKeyExpression<T>(this ICacheProvider provider, string regexString)
{
var result = provider.GetCacheItemsByKeyExpression(regexString);
return result.Select(x => x.TryConvertTo<T>().Result);
}
public static T GetCacheItem<T>(this ICacheProvider provider, string cacheKey)
{
var result = provider.GetCacheItem(cacheKey);
@@ -171,6 +171,26 @@ namespace Umbraco.Core.Cache
select c.Value).ToList();
}
public IEnumerable<object> GetCacheItemsByKeyExpression(string regexString)
{
var found = new List<object>();
foreach (var item in DictionaryCache)
{
var c = new DictionaryItemWrapper(item);
var s = c.Key as string;
if (s != null)
{
var withoutPrefix = s.TrimStart(string.Format("{0}-", CacheItemPrefix));
if (Regex.IsMatch(withoutPrefix, regexString))
{
found.Add(c.Value);
}
}
}
return found;
}
/// <summary>
/// Returns a cache item by key, does not update the cache if it isn't there.
/// </summary>
+8
View File
@@ -16,7 +16,15 @@ namespace Umbraco.Core.Cache
void ClearCacheByKeySearch(string keyStartsWith);
void ClearCacheByKeyExpression(string regexString);
IEnumerable<object> GetCacheItemsByKeySearch(string keyStartsWith);
IEnumerable<object> GetCacheItemsByKeyExpression(string regexString);
/// <summary>
/// Returns an item with a given key
/// </summary>
/// <param name="cacheKey"></param>
/// <returns></returns>
object GetCacheItem(string cacheKey);
object GetCacheItem(string cacheKey, Func<object> getCacheItem);
}
}
@@ -43,6 +43,11 @@ namespace Umbraco.Core.Cache
return Enumerable.Empty<object>();
}
public IEnumerable<object> GetCacheItemsByKeyExpression(string regexString)
{
return Enumerable.Empty<object>();
}
public virtual object GetCacheItem(string cacheKey)
{
return default(object);
@@ -114,6 +114,13 @@ namespace Umbraco.Core.Cache
select c.Value).ToList();
}
public IEnumerable<object> GetCacheItemsByKeyExpression(string regexString)
{
return (from c in MemoryCache
where Regex.IsMatch(c.Key, regexString)
select c.Value).ToList();
}
public virtual object GetCacheItem(string cacheKey)
{
var result = MemoryCache.Get(cacheKey);
@@ -59,6 +59,13 @@ namespace Umbraco.Core.Cache
select c.Value).ToList();
}
public IEnumerable<object> GetCacheItemsByKeyExpression(string regexString)
{
return (from KeyValuePair<string, object> c in StaticCache
where Regex.IsMatch(c.Key, regexString)
select c.Value).ToList();
}
public virtual object GetCacheItem(string cacheKey)
{
var result = StaticCache[cacheKey];
+1 -1
View File
@@ -27,7 +27,7 @@ namespace Umbraco.Core
/// <summary>
/// Gets the <see cref="ICacheRefresher"/> implementations.
/// </summary>
public IEnumerable<ICacheRefresher> CacheResolvers
public IEnumerable<ICacheRefresher> CacheRefreshers
{
get
{
@@ -16,7 +16,7 @@ namespace Umbraco.Core.Configuration
}
/// <summary>
/// Increases the version number in ClientDependency.config by 1
/// Changes the version number in ClientDependency.config to a random value to avoid stale caches
/// </summary>
internal bool IncreaseVersionNumber()
{
@@ -28,9 +28,9 @@ namespace Umbraco.Core.Configuration
var versionAttribute = clientDependencyConfigXml.Root.Attribute("version");
int oldVersion;
int.TryParse(versionAttribute.Value, out oldVersion);
var newVersion = oldVersion + 1;
//Set the new version to the hashcode of now
var oldVersion = versionAttribute.Value;
var newVersion = Math.Abs(DateTime.UtcNow.GetHashCode());
versionAttribute.SetValue(newVersion);
clientDependencyConfigXml.Save(_fileName, SaveOptions.DisableFormatting);
@@ -6,10 +6,13 @@ using System.Web;
using System.Web.Configuration;
using System.Web.Hosting;
using System.Web.Routing;
using System.Web.Security;
using System.Xml;
using System.Xml.Linq;
using System.Xml.XPath;
using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using Umbraco.Core.Security;
namespace Umbraco.Core.Configuration
{
@@ -38,7 +41,7 @@ namespace Umbraco.Core.Configuration
private static string _reservedUrls;
//ensure the built on (non-changeable) reserved paths are there at all times
private const string StaticReservedPaths = "~/app_plugins/,~/install/,";
private const string StaticReservedUrls = "~/config/splashes/booting.aspx,~/install/default.aspx,~/config/splashes/noNodes.aspx,~/VSEnterpriseHelper.axd,";
private const string StaticReservedUrls = "~/config/splashes/booting.aspx,~/config/splashes/noNodes.aspx,~/VSEnterpriseHelper.axd,";
#endregion
@@ -259,7 +262,38 @@ namespace Umbraco.Core.Configuration
SaveSetting("umbracoConfigurationStatus", value);
}
}
/// <summary>
/// Gets or sets the Umbraco members membership providers' useLegacyEncoding state. This will return a boolean
/// </summary>
/// <value>The useLegacyEncoding status.</value>
public static bool UmbracoMembershipProviderLegacyEncoding
{
get
{
return IsConfiguredMembershipProviderUsingLegacyEncoding(Constants.Conventions.Member.UmbracoMemberProviderName);
}
set
{
SetMembershipProvidersLegacyEncoding(Constants.Conventions.Member.UmbracoMemberProviderName, value);
}
}
/// <summary>
/// Gets or sets the Umbraco users membership providers' useLegacyEncoding state. This will return a boolean
/// </summary>
/// <value>The useLegacyEncoding status.</value>
public static bool UmbracoUsersMembershipProviderLegacyEncoding
{
get
{
return IsConfiguredMembershipProviderUsingLegacyEncoding(UmbracoConfig.For.UmbracoSettings().Providers.DefaultBackOfficeUserProvider);
}
set
{
SetMembershipProvidersLegacyEncoding(UmbracoConfig.For.UmbracoSettings().Providers.DefaultBackOfficeUserProvider, value);
}
}
/// <summary>
/// Saves a setting into the configuration file.
@@ -301,7 +335,51 @@ namespace Umbraco.Core.Configuration
setting.Remove();
xml.Save(fileName, SaveOptions.DisableFormatting);
ConfigurationManager.RefreshSection("appSettings");
}
}
private static void SetMembershipProvidersLegacyEncoding(string providerName, bool useLegacyEncoding)
{
//check if this can even be configured.
var membershipProvider = Membership.Providers[providerName] as MembershipProviderBase;
if (membershipProvider == null)
{
return;
}
if (membershipProvider.GetType().Namespace == "umbraco.providers.members")
{
//its the legacy one, this cannot be changed
return;
}
var webConfigFilename = IOHelper.MapPath(string.Format("{0}/web.config", SystemDirectories.Root));
var webConfigXml = XDocument.Load(webConfigFilename, LoadOptions.PreserveWhitespace);
var membershipConfigs = webConfigXml.XPathSelectElements("configuration/system.web/membership/providers/add").ToList();
if (membershipConfigs.Any() == false)
return;
var provider = membershipConfigs.SingleOrDefault(c => c.Attribute("name") != null && c.Attribute("name").Value == providerName);
if (provider == null)
return;
provider.SetAttributeValue("useLegacyEncoding", useLegacyEncoding);
webConfigXml.Save(webConfigFilename, SaveOptions.DisableFormatting);
}
private static bool IsConfiguredMembershipProviderUsingLegacyEncoding(string providerName)
{
//check if this can even be configured.
var membershipProvider = Membership.Providers[providerName] as MembershipProviderBase;
if (membershipProvider == null)
{
return false;
}
return membershipProvider.UseLegacyEncoding;
}
/// <summary>
+24 -15
View File
@@ -34,31 +34,19 @@ namespace Umbraco.Core.Configuration
{
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!");
}
var umbracoSettings = ConfigurationManager.GetSection("umbracoConfiguration/settings") as IUmbracoSettingsSection;
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!");
}
var baseRestExtensions = ConfigurationManager.GetSection("umbracoConfiguration/BaseRestExtensions") as IBaseRestSection;
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!");
}
var dashboardConfig = ConfigurationManager.GetSection("umbracoConfiguration/dashBoard") as IDashboardSection;
SetDashboardSettings(dashboardConfig);
}
}
@@ -85,6 +73,13 @@ namespace Umbraco.Core.Configuration
/// </summary>
public IDashboardSection DashboardSettings()
{
if (_dashboardSection == null)
{
var ex = new ConfigurationErrorsException("Could not load the " + typeof(IDashboardSection) + " from config file, ensure the web.config and Dashboard.config files are formatted correctly");
LogHelper.Error<UmbracoConfig>("Config error", ex);
throw ex;
}
return _dashboardSection;
}
@@ -105,6 +100,13 @@ namespace Umbraco.Core.Configuration
/// </summary>
public IUmbracoSettingsSection UmbracoSettings()
{
if (_umbracoSettings == null)
{
var ex = new ConfigurationErrorsException("Could not load the " + typeof (IUmbracoSettingsSection) + " from config file, ensure the web.config and umbracoSettings.config files are formatted correctly");
LogHelper.Error<UmbracoConfig>("Config error", ex);
throw ex;
}
return _umbracoSettings;
}
@@ -119,6 +121,13 @@ namespace Umbraco.Core.Configuration
/// </summary>
public IBaseRestSection BaseRestExtensions()
{
if (_baseRestExtensions == null)
{
var ex = new ConfigurationErrorsException("Could not load the " + typeof(IBaseRestSection) + " from config file, ensure the web.config and BaseRestExtensions.config files are formatted correctly");
LogHelper.Error<UmbracoConfig>("Config error", ex);
throw ex;
}
return _baseRestExtensions;
}
@@ -1,10 +1,10 @@
using System.Collections.Generic;
using System.Configuration;
using System.Configuration;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
internal class ContentImagingElement : ConfigurationElement
{
[ConfigurationProperty("imageFileTypes")]
internal CommaDelimitedConfigurationElement ImageFileTypes
{
@@ -11,7 +11,7 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
{
return new OptionalInnerTextConfigurationElement<string>(
(InnerTextConfigurationElement<string>)this["DefaultBackofficeProvider"],
//set the default
//set the default
"UsersMembershipProvider");
}
}
@@ -5,7 +5,7 @@ namespace Umbraco.Core.Configuration
{
public class UmbracoVersion
{
private static readonly Version Version = new Version("7.0.2");
private static readonly Version Version = new Version("7.1.2");
/// <summary>
/// Gets the current version of Umbraco.
+31 -26
View File
@@ -85,7 +85,7 @@ namespace Umbraco.Core
/// <summary>
/// MediaType alias for a folder.
/// </summary>
/// </summary>
public const string Folder = "Folder";
/// <summary>
@@ -93,10 +93,10 @@ namespace Umbraco.Core
/// </summary>
public const string Image = "Image";
}
/// <summary>
/// Constants for Umbraco Member property aliases.
/// </summary>
/// </summary>
public static class Member
{
/// <summary>
@@ -111,73 +111,78 @@ namespace Umbraco.Core
/// <summary>
/// Property alias for a Members Password Question
/// </summary>
public const string PasswordQuestion = "umbracoPasswordRetrievalQuestionPropertyTypeAlias";
public const string PasswordQuestion = "umbracoMemberPasswordRetrievalQuestion";
public const string PasswordQuestionLabel = "Password Question";
/// <summary>
/// Property alias for Members Password Answer
/// </summary>
public const string PasswordAnswer = "umbracoPasswordRetrievalAnswerPropertyTypeAlias";
public const string PasswordAnswer = "umbracoMemberPasswordRetrievalAnswer";
public const string PasswordAnswerLabel = "Password Answer";
/// <summary>
/// Property alias for the Comments on a Member
/// </summary>
public const string Comments = "umbracoCommentPropertyTypeAlias";
public const string Comments = "umbracoMemberComments";
public const string CommentsLabel = "Comments";
public const string CommentsLabel = "Comments";
/// <summary>
/// Property alias for the Approved boolean of a Member
/// </summary>
public const string IsApproved = "umbracoApprovePropertyTypeAlias";
public const string IsApproved = "umbracoMemberApproved";
public const string IsApprovedLabel = "Is Approved";
public const string IsApprovedLabel = "Is Approved";
/// <summary>
/// Property alias for the Locked out boolean of a Member
/// </summary>
public const string IsLockedOut = "umbracoLockPropertyTypeAlias";
public const string IsLockedOut = "umbracoMemberLockedOut";
public const string IsLockedOutLabel = "Is Locked Out";
public const string IsLockedOutLabel = "Is Locked Out";
/// <summary>
/// Property alias for the last date the Member logged in
/// </summary>
public const string LastLoginDate = "umbracoLastLoginPropertyTypeAlias";
public const string LastLoginDate = "umbracoMemberLastLogin";
public const string LastLoginDateLabel = "Last Login Date";
public const string LastLoginDateLabel = "Last Login Date";
/// <summary>
/// Property alias for the last date a Member changed its password
/// </summary>
public const string LastPasswordChangeDate = "umbracoMemberLastPasswordChange";
public const string LastPasswordChangeDate = "umbracoMemberLastPasswordChangeDate";
public const string LastPasswordChangeDateLabel = "Last Password Change Date";
/// <summary>
/// Property alias for the last date a Member was locked out
/// </summary>
public const string LastLockoutDate = "umbracoMemberLastLockout";
public const string LastLockoutDate = "umbracoMemberLastLockoutDate";
public const string LastLockoutDateLabel = "Last Lockout Date";
/// <summary>
/// Property alias for the number of failed login attemps
/// </summary>
public const string FailedPasswordAttempts = "umbracoFailedPasswordAttemptsPropertyTypeAlias";
public const string FailedPasswordAttempts = "umbracoMemberFailedPasswordAttempts";
public const string FailedPasswordAttemptsLabel = "Failed Password Attempts";
/// <summary>
/// Group name to put the membership properties on
/// </summary>
internal const string StandardPropertiesGroupName = "Membership";
internal static Dictionary<string, PropertyType> GetStandardPropertyTypeStubs()
{
return new Dictionary<string, PropertyType>
{
{
Comments,
new PropertyType(PropertyEditors.TextboxMultipleAlias, DataTypeDatabaseType.Ntext)
new PropertyType(PropertyEditors.TextboxMultipleAlias, DataTypeDatabaseType.Ntext, true)
{
Alias = Comments,
Name = CommentsLabel
@@ -185,7 +190,7 @@ namespace Umbraco.Core
},
{
FailedPasswordAttempts,
new PropertyType(PropertyEditors.IntegerAlias, DataTypeDatabaseType.Integer)
new PropertyType(PropertyEditors.NoEditAlias, DataTypeDatabaseType.Integer, true)
{
Alias = FailedPasswordAttempts,
Name = FailedPasswordAttemptsLabel
@@ -193,7 +198,7 @@ namespace Umbraco.Core
},
{
IsApproved,
new PropertyType(PropertyEditors.TrueFalseAlias, DataTypeDatabaseType.Integer)
new PropertyType(PropertyEditors.TrueFalseAlias, DataTypeDatabaseType.Integer, true)
{
Alias = IsApproved,
Name = IsApprovedLabel
@@ -201,7 +206,7 @@ namespace Umbraco.Core
},
{
IsLockedOut,
new PropertyType(PropertyEditors.TrueFalseAlias, DataTypeDatabaseType.Integer)
new PropertyType(PropertyEditors.TrueFalseAlias, DataTypeDatabaseType.Integer, true)
{
Alias = IsLockedOut,
Name = IsLockedOutLabel
@@ -209,7 +214,7 @@ namespace Umbraco.Core
},
{
LastLockoutDate,
new PropertyType(PropertyEditors.DateAlias, DataTypeDatabaseType.Date)
new PropertyType(PropertyEditors.NoEditAlias, DataTypeDatabaseType.Date, true)
{
Alias = LastLockoutDate,
Name = LastLockoutDateLabel
@@ -217,7 +222,7 @@ namespace Umbraco.Core
},
{
LastLoginDate,
new PropertyType(PropertyEditors.DateAlias, DataTypeDatabaseType.Date)
new PropertyType(PropertyEditors.NoEditAlias, DataTypeDatabaseType.Date, true)
{
Alias = LastLoginDate,
Name = LastLoginDateLabel
@@ -225,7 +230,7 @@ namespace Umbraco.Core
},
{
LastPasswordChangeDate,
new PropertyType(PropertyEditors.DateAlias, DataTypeDatabaseType.Date)
new PropertyType(PropertyEditors.NoEditAlias, DataTypeDatabaseType.Date, true)
{
Alias = LastPasswordChangeDate,
Name = LastPasswordChangeDateLabel
@@ -233,7 +238,7 @@ namespace Umbraco.Core
},
{
PasswordAnswer,
new PropertyType(PropertyEditors.TextboxAlias, DataTypeDatabaseType.Nvarchar)
new PropertyType(PropertyEditors.NoEditAlias, DataTypeDatabaseType.Nvarchar, true)
{
Alias = PasswordAnswer,
Name = PasswordAnswerLabel
@@ -241,7 +246,7 @@ namespace Umbraco.Core
},
{
PasswordQuestion,
new PropertyType(PropertyEditors.TextboxAlias, DataTypeDatabaseType.Nvarchar)
new PropertyType(PropertyEditors.NoEditAlias, DataTypeDatabaseType.Nvarchar, true)
{
Alias = PasswordQuestion,
Name = PasswordQuestionLabel
@@ -259,7 +264,7 @@ namespace Umbraco.Core
/// <summary>
/// MemberType alias for default member type.
/// </summary>
public const string Member = "Member";
public const string DefaultAlias = "Member";
public const string SystemDefaultProtectType = "_umbracoSystemDefaultProtectType";
}
+51
View File
@@ -0,0 +1,51 @@
namespace Umbraco.Core
{
public static partial class Constants
{
/// <summary>
/// Defines the constants used for Umbraco packages in the package.config xml
/// </summary>
public static class Packaging
{
public const string UmbPackageNodeName = "umbPackage";
public const string DataTypesNodeName = "DataTypes";
public const string PackageXmlFileName = "package.xml";
public const string UmbracoPackageExtention = ".umb";
public const string DataTypeNodeName = "DataType";
public const string LanguagesNodeName = "Languages";
public const string FilesNodeName = "Files";
public const string StylesheetsNodeName = "Stylesheets";
public const string TemplatesNodeName = "Templates";
public const string OrgnameNodeName = "orgName";
public const string NameNodeName = "Name";
public const string TemplateNodeName = "Template";
public const string AliasNodeName = "Alias";
public const string DictionaryitemsNodeName = "DictionaryItems";
public const string MacrosNodeName = "macros";
public const string DocumentSetNodeName = "DocumentSet";
public const string DocumentTypesNodeName = "DocumentTypes";
public const string DocumentTypeNodeName = "DocumentType";
public const string FileNodeName = "file";
public const string OrgPathNodeName = "orgPath";
public const string GuidNodeName = "guid";
public const string StylesheetNodeName = "styleSheet";
public const string MacroNodeName = "macro";
public const string InfoNodeName = "info";
public const string PackageRequirementsMajorXpath = "/package/requirements/major";
public const string PackageRequirementsMinorXpath = "/package/requirements/minor";
public const string PackageRequirementsPatchXpath = "/package/requirements/patch";
public const string PackageNameXpath = "/package/name";
public const string PackageVersionXpath = "/package/version";
public const string PackageUrlXpath = "/package/url";
public const string PackageLicenseXpath = "/package/license";
public const string AuthorNameXpath = "/author/name";
public const string AuthorWebsiteXpath = "/author/website";
public const string ReadmeXpath = "/readme";
public const string ControlNodeName = "control";
public const string ActionNodeName = "Action";
public const string ActionsNodeName = "Actions";
public const string UndoNodeAttribute = "undo";
public const string RunatNodeAttribute = "runat";
}
}
}
@@ -139,7 +139,7 @@ namespace Umbraco.Core
///// <summary>
///// Alias for the Image Cropper datatype.
///// </summary>
//public const string ImageCropperAlias = "Umbraco.ImageCropper";
public const string ImageCropperAlias = "Umbraco.ImageCropper";
/// <summary>
/// Guid for the Integer datatype.
+46
View File
@@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI;
namespace Umbraco.Core
{
internal static class ControlExtensions
{
/// <summary>
/// Recursively finds a control with the specified identifier.
/// </summary>
/// <typeparam name="T">
/// The type of control to be found.
/// </typeparam>
/// <param name="parent">
/// The parent control from which the search will start.
/// </param>
/// <param name="id">
/// The identifier of the control to be found.
/// </param>
/// <returns>
/// The control with the specified identifier, otherwise <see langword="null"/> if the control
/// is not found.
/// </returns>
public static T FindControlRecursive<T>(this Control parent, string id) where T : Control
{
if ((parent is T) && (parent.ID == id))
{
return (T)parent;
}
foreach (Control control in parent.Controls)
{
var foundControl = FindControlRecursive<T>(control, id);
if (foundControl != null)
{
return foundControl;
}
}
return default(T);
}
}
}
+5 -8
View File
@@ -243,7 +243,6 @@ namespace Umbraco.Core
//stop the timer and log the output
_timer.Dispose();
return this;
}
@@ -287,7 +286,7 @@ namespace Umbraco.Core
() => PluginManager.Current.ResolveAssignedMapperTypes());
RepositoryResolver.Current = new RepositoryResolver(
new RepositoryFactory());
new RepositoryFactory(ApplicationCache));
SqlSyntaxProvidersResolver.Current = new SqlSyntaxProvidersResolver(
new[] { typeof(MySqlSyntaxProvider), typeof(SqlCeSyntaxProvider), typeof(SqlServerSyntaxProvider) })
@@ -312,17 +311,15 @@ namespace Umbraco.Core
//the database migration objects
MigrationResolver.Current = new MigrationResolver(
() => PluginManager.Current.ResolveMigrationTypes());
() => PluginManager.Current.ResolveTypes<IMigration>());
// todo: remove once we drop IPropertyEditorValueConverter support.
PropertyEditorValueConvertersResolver.Current = new PropertyEditorValueConvertersResolver(
PluginManager.Current.ResolvePropertyEditorValueConverters());
//add the internal ones, these are not public currently so need to add them manually
PropertyValueConvertersResolver.Current = new PropertyValueConvertersResolver(
PluginManager.Current.ResolvePropertyValueConverters());
// fixme - why not use the following syntax?
//PluginManager.Current.ResolveTypes<IPropertyValueConverter>());
// need to filter out the ones we dont want!!
PropertyValueConvertersResolver.Current = new PropertyValueConvertersResolver(
PluginManager.Current.ResolveTypes<IPropertyValueConverter>());
// use the new DefaultShortStringHelper
ShortStringHelperResolver.Current = new ShortStringHelperResolver(
+132 -40
View File
@@ -3,6 +3,7 @@ using System.Configuration;
using System.Data.SqlServerCe;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Configuration;
using System.Xml.Linq;
using Umbraco.Core.Configuration;
@@ -113,8 +114,8 @@ namespace Umbraco.Core
public void ConfigureEmbeddedDatabaseConnection()
{
const string providerName = "System.Data.SqlServerCe.4.0";
const string connectionString = @"Data Source=|DataDirectory|\Umbraco.sdf;Flush Interval=1;";
var connectionString = GetEmbeddedDatabaseConnectionString();
SaveConnectionString(connectionString, providerName);
var path = Path.Combine(GlobalSettings.FullpathToRoot, "App_Data", "Umbraco.sdf");
@@ -122,11 +123,23 @@ namespace Umbraco.Core
{
var engine = new SqlCeEngine(connectionString);
engine.CreateDatabase();
// SD: Pretty sure this should be in a using clause but i don't want to cause unknown side-effects here
// since it's been like this for quite some time
//using (var engine = new SqlCeEngine(connectionString))
//{
// engine.CreateDatabase();
//}
}
Initialize(providerName);
}
public string GetEmbeddedDatabaseConnectionString()
{
return @"Data Source=|DataDirectory|\Umbraco.sdf;Flush Interval=1;";
}
/// <summary>
/// Configure a ConnectionString that has been entered manually.
/// </summary>
@@ -136,7 +149,14 @@ namespace Umbraco.Core
/// <param name="connectionString"></param>
public void ConfigureDatabaseConnection(string connectionString)
{
SaveConnectionString(connectionString, string.Empty);
var provider = DbConnectionExtensions.DetectProviderFromConnectionString(connectionString);
var databaseProvider = provider.ToString();
var providerName = "System.Data.SqlClient";
if (databaseProvider.ToLower().Contains("mysql"))
{
providerName = "MySql.Data.MySqlClient";
}
SaveConnectionString(connectionString, providerName);
Initialize(string.Empty);
}
@@ -149,26 +169,28 @@ namespace Umbraco.Core
/// <param name="password">Database Password</param>
/// <param name="databaseProvider">Type of the provider to be used (Sql, Sql Azure, Sql Ce, MySql)</param>
public void ConfigureDatabaseConnection(string server, string databaseName, string user, string password, string databaseProvider)
{
string connectionString;
string providerName = "System.Data.SqlClient";
if (databaseProvider.ToLower().Contains("mysql"))
{
providerName = "MySql.Data.MySqlClient";
connectionString = string.Format("Server={0}; Database={1};Uid={2};Pwd={3}", server, databaseName, user, password);
}
else if (databaseProvider.ToLower().Contains("azure"))
{
connectionString = BuildAzureConnectionString(server, databaseName, user, password);
}
else
{
connectionString = string.Format("server={0};database={1};user id={2};password={3}", server, databaseName, user, password);
}
{
string providerName;
var connectionString = GetDatabaseConnectionString(server, databaseName, user, password, databaseProvider, out providerName);
SaveConnectionString(connectionString, providerName);
Initialize(providerName);
}
public string GetDatabaseConnectionString(string server, string databaseName, string user, string password, string databaseProvider, out string providerName)
{
providerName = "System.Data.SqlClient";
if (databaseProvider.ToLower().Contains("mysql"))
{
providerName = "MySql.Data.MySqlClient";
return string.Format("Server={0}; Database={1};Uid={2};Pwd={3}", server, databaseName, user, password);
}
if (databaseProvider.ToLower().Contains("azure"))
{
return BuildAzureConnectionString(server, databaseName, user, password);
}
return string.Format("server={0};database={1};user id={2};password={3}", server, databaseName, user, password);
}
/// <summary>
/// Configures a ConnectionString for the Umbraco database that uses Microsoft SQL Server integrated security.
@@ -178,12 +200,16 @@ namespace Umbraco.Core
public void ConfigureIntegratedSecurityDatabaseConnection(string server, string databaseName)
{
const string providerName = "System.Data.SqlClient";
string connectionString = String.Format("Server={0};Database={1};Integrated Security=true", server, databaseName);
var connectionString = GetIntegratedSecurityDatabaseConnectionString(server, databaseName);
SaveConnectionString(connectionString, providerName);
Initialize(providerName);
}
public string GetIntegratedSecurityDatabaseConnectionString(string server, string databaseName)
{
return String.Format("Server={0};Database={1};Integrated Security=true", server, databaseName);
}
internal string BuildAzureConnectionString(string server, string databaseName, string user, string password)
{
if (server.Contains(".") && ServerStartsWithTcp(server) == false)
@@ -417,6 +443,13 @@ namespace Umbraco.Core
if (_result == null)
{
if (SystemUtilities.GetCurrentTrustLevel() != AspNetHostingPermissionLevel.Unrestricted
&& ProviderName == "MySql.Data.MySqlClient")
{
throw new InvalidOperationException("Cannot use MySql in Medium Trust configuration");
}
var database = new UmbracoDatabase(_connectionString, ProviderName);
var dbSchema = new DatabaseSchemaCreation(database);
_result = dbSchema.ValidateSchema();
@@ -425,20 +458,25 @@ namespace Umbraco.Core
}
internal Result CreateDatabaseSchemaAndData()
{
var readyForInstall = CheckReadyForInstall();
if (readyForInstall.Success == false)
{
return readyForInstall.Result;
}
{
try
{
var readyForInstall = CheckReadyForInstall();
if (readyForInstall.Success == false)
{
return readyForInstall.Result;
}
LogHelper.Info<DatabaseContext>("Database configuration status: Started");
string message;
var database = new UmbracoDatabase(_connectionString, ProviderName);
// If MySQL, we're going to ensure that database calls are maintaining proper casing as to remove the necessity for checks
// for case insensitive queries. In an ideal situation (which is what we're striving for), all calls would be case sensitive.
/*
var supportsCaseInsensitiveQueries = SqlSyntaxContext.SqlSyntaxProvider.SupportsCaseInsensitiveQueries(database);
if (supportsCaseInsensitiveQueries == false)
{
@@ -451,8 +489,9 @@ namespace Umbraco.Core
return new Result { Message = message, Success = false, Percentage = "15" };
}
*/
message = GetResultMessageForMySql(supportsCaseInsensitiveQueries);
message = GetResultMessageForMySql();
var schemaResult = ValidateDatabaseSchema();
var installedVersion = schemaResult.DetermineInstalledVersion();
@@ -491,31 +530,32 @@ namespace Umbraco.Core
/// <returns></returns>
internal Result UpgradeSchemaAndData()
{
var readyForInstall = CheckReadyForInstall();
if (readyForInstall.Success == false)
{
return readyForInstall.Result;
}
try
{
var readyForInstall = CheckReadyForInstall();
if (readyForInstall.Success == false)
{
return readyForInstall.Result;
}
LogHelper.Info<DatabaseContext>("Database upgrade started");
var database = new UmbracoDatabase(_connectionString, ProviderName);
var supportsCaseInsensitiveQueries = SqlSyntaxContext.SqlSyntaxProvider.SupportsCaseInsensitiveQueries(database);
//var supportsCaseInsensitiveQueries = SqlSyntaxContext.SqlSyntaxProvider.SupportsCaseInsensitiveQueries(database);
var message = GetResultMessageForMySql(supportsCaseInsensitiveQueries);
var message = GetResultMessageForMySql();
var schemaResult = ValidateDatabaseSchema();
var installedVersion = schemaResult.DetermineInstalledVersion();
//DO the upgrade!
var configuredVersion = string.IsNullOrEmpty(GlobalSettings.ConfigurationStatus)
var currentVersion = string.IsNullOrEmpty(GlobalSettings.ConfigurationStatus)
? installedVersion
: new Version(GlobalSettings.ConfigurationStatus);
var targetVersion = UmbracoVersion.Current;
var runner = new MigrationRunner(configuredVersion, targetVersion, GlobalSettings.UmbracoMigrationName);
var runner = new MigrationRunner(currentVersion, targetVersion, GlobalSettings.UmbracoMigrationName);
var upgraded = runner.Execute(database, true);
message = message + "<p>Upgrade completed!</p>";
@@ -531,6 +571,23 @@ namespace Umbraco.Core
}
}
private string GetResultMessageForMySql()
{
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 string GetResultMessageForMySql(bool? supportsCaseInsensitiveQueries)
{
if (supportsCaseInsensitiveQueries == null)
@@ -554,10 +611,16 @@ namespace Umbraco.Core
"<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 (SystemUtilities.GetCurrentTrustLevel() != AspNetHostingPermissionLevel.Unrestricted
&& ProviderName == "MySql.Data.MySqlClient")
{
throw new InvalidOperationException("Cannot use MySql in Medium Trust configuration");
}
if (_configured == false || (string.IsNullOrEmpty(_connectionString) || string.IsNullOrEmpty(ProviderName)))
{
return Attempt.Fail(new Result
@@ -573,7 +636,7 @@ namespace Umbraco.Core
private Result HandleInstallException(Exception ex)
{
LogHelper.Info<DatabaseContext>("Database configuration failed with the following error and stack trace: " + ex.Message + "\n" + ex.StackTrace);
LogHelper.Error<DatabaseContext>("Database configuration failed", ex);
if (_result != null)
{
@@ -597,5 +660,34 @@ namespace Umbraco.Core
public bool Success { get; set; }
public string Percentage { get; set; }
}
internal bool IsConnectionStringConfigured(ConnectionStringSettings databaseSettings)
{
var dbIsSqlCe = false;
if (databaseSettings != null && databaseSettings.ProviderName != null)
dbIsSqlCe = databaseSettings.ProviderName == "System.Data.SqlServerCe.4.0";
var sqlCeDatabaseExists = false;
if (dbIsSqlCe)
{
var parts = databaseSettings.ConnectionString.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
var dataSourcePart = parts.FirstOrDefault(x => x.InvariantStartsWith("Data Source="));
if (dataSourcePart != null)
{
var datasource = dataSourcePart.Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString());
var filePath = datasource.Replace("Data Source=", string.Empty);
sqlCeDatabaseExists = File.Exists(filePath);
}
}
// Either the connection details are not fully specified or it's a SQL CE database that doesn't exist yet
if (databaseSettings == null
|| string.IsNullOrWhiteSpace(databaseSettings.ConnectionString) || string.IsNullOrWhiteSpace(databaseSettings.ProviderName)
|| (dbIsSqlCe && sqlCeDatabaseExists == false))
{
return false;
}
return true;
}
}
}
+25
View File
@@ -18,5 +18,30 @@ namespace Umbraco.Core
return dt.ToString("yyyy-MM-dd HH:mm:ss");
}
public static DateTime TruncateTo(this DateTime dt, DateTruncate truncateTo)
{
if (truncateTo == DateTruncate.Year)
return new DateTime(dt.Year, 0, 0);
if (truncateTo == DateTruncate.Month)
return new DateTime(dt.Year, dt.Month, 0);
if (truncateTo == DateTruncate.Day)
return new DateTime(dt.Year, dt.Month, dt.Day);
if (truncateTo == DateTruncate.Hour)
return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, 0, 0);
if (truncateTo == DateTruncate.Minute)
return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, 0);
return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second);
}
public enum DateTruncate
{
Year,
Month,
Day,
Hour,
Minute,
Second
}
}
}
+19
View File
@@ -15,6 +15,25 @@ namespace Umbraco.Core
///</summary>
internal static class DictionaryExtensions
{
/// <summary>
/// Method to Get a value by the key. If the key doesn't exist it will create a new TVal object for the key and return it.
/// </summary>
/// <typeparam name="TKey"></typeparam>
/// <typeparam name="TVal"></typeparam>
/// <param name="dict"></param>
/// <param name="key"></param>
/// <returns></returns>
public static TVal GetOrCreate<TKey, TVal>(this IDictionary<TKey, TVal> dict, TKey key)
where TVal : class, new()
{
if (dict.ContainsKey(key) == false)
{
dict.Add(key, new TVal());
}
return dict[key];
}
/// <summary>
/// Updates an item with the specified key with the specified value
/// </summary>
+4 -24
View File
@@ -36,42 +36,22 @@ namespace Umbraco.Core.Dynamics
[Obsolete("This method should not be used and will be removed in the future")]
public static bool ContainsAny(this string haystack, IEnumerable<string> needles)
{
if (haystack == null) throw new ArgumentNullException("haystack");
if (!string.IsNullOrEmpty(haystack) || needles.Any())
{
return needles.Any(haystack.Contains);
}
return false;
return StringExtensions.ContainsAny(haystack, needles);
}
[Obsolete("This method should not be used and will be removed in the future")]
public static bool ContainsAny(this string haystack, params string[] needles)
{
if (haystack == null) throw new ArgumentNullException("haystack");
if (!string.IsNullOrEmpty(haystack) || needles.Length > 0)
{
return needles.Any(haystack.Contains);
}
return false;
return StringExtensions.ContainsAny(haystack, needles);
}
[Obsolete("This method should not be used and will be removed in the future")]
public static bool ContainsAny(this string haystack, StringComparison comparison, IEnumerable<string> needles)
{
if (haystack == null) throw new ArgumentNullException("haystack");
if (!string.IsNullOrEmpty(haystack) || needles.Any())
{
return needles.Any(value => haystack.IndexOf(value, comparison) >= 0);
}
return false;
return StringExtensions.ContainsAny(haystack, needles, comparison);
}
[Obsolete("This method should not be used and will be removed in the future")]
public static bool ContainsAny(this string haystack, StringComparison comparison, params string[] needles)
{
if (haystack == null) throw new ArgumentNullException("haystack");
if (!string.IsNullOrEmpty(haystack) || needles.Length > 0)
{
return needles.Any(value => haystack.IndexOf(value, comparison) >= 0);
}
return false;
return StringExtensions.ContainsAny(haystack, needles, comparison);
}
[Obsolete("This method should not be used and will be removed in the future")]
public static bool ContainsInsensitive(this string haystack, string needle)
+2 -2
View File
@@ -6,12 +6,12 @@ namespace Umbraco.Core.Dynamics
{
internal class PropertyResult : IPublishedProperty, IHtmlString
{
private readonly IPublishedProperty _source;
private readonly IPublishedProperty _source;
private readonly string _alias;
private readonly object _value;
private readonly PropertyResultType _type;
internal PropertyResult(IPublishedProperty source, PropertyResultType type)
internal PropertyResult(IPublishedProperty source, PropertyResultType type)
{
if (source == null) throw new ArgumentNullException("source");
+12 -51
View File
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Text;
using Umbraco.Core.Logging;
namespace Umbraco.Core
{
@@ -14,43 +15,13 @@ namespace Umbraco.Core
public static IEnumerable<IEnumerable<T>> InGroupsOf<T>(this IEnumerable<T> source, int groupSize)
{
if (source == null)
throw new NullReferenceException("source");
throw new ArgumentNullException("source");
if (groupSize <= 0)
throw new ArgumentException("Must be greater than zero.", "groupSize");
// enumerate the source only once!
return new InGroupsEnumerator<T>(source, groupSize).Groups();
}
// this class makes sure that the source is enumerated only ONCE
// which means that when it is enumerated, the actual groups content
// has to be evaluated at the same time, and stored in an array.
private class InGroupsEnumerator<T>
{
private readonly IEnumerator<T> _source;
private readonly int _count;
private bool _mightHaveNext;
public InGroupsEnumerator(IEnumerable<T> source, int count)
{
_source = source.GetEnumerator();
_count = count;
_mightHaveNext = true;
}
public IEnumerable<IEnumerable<T>> Groups()
{
while (_mightHaveNext && _source.MoveNext())
yield return Group().ToArray(); // see note above
}
private IEnumerable<T> Group()
{
var c = 0;
do
{
yield return _source.Current;
} while (++c < _count && _source.MoveNext());
_mightHaveNext = c == _count;
}
return source
.Select((x, i) => Tuple.Create(i / groupSize, x))
.GroupBy(t => t.Item1, t => t.Item2);
}
/// <summary>The distinct by.</summary>
@@ -125,23 +96,13 @@ namespace Umbraco.Core
}
/// <summary>The flatten list.</summary>
/// <param name="items">The items.</param>
/// <param name="selectChild">The select child.</param>
/// <typeparam name="TItem">Item type</typeparam>
/// <param name="e">The items.</param>
/// <param name="f">The select child.</param>
/// <typeparam name="T">Item type</typeparam>
/// <returns>list of TItem</returns>
[SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Justification = "By design")]
public static IEnumerable<TItem> FlattenList<TItem>(this IEnumerable<TItem> items, Func<TItem, IEnumerable<TItem>> selectChild)
public static IEnumerable<T> FlattenList<T>(this IEnumerable<T> e, Func<T, IEnumerable<T>> f)
{
IEnumerable<TItem> children = items != null && items.Any()
? items.SelectMany(selectChild).FlattenList(selectChild)
: Enumerable.Empty<TItem>();
if (items != null)
{
return items.Concat(children);
}
return null;
return e.SelectMany(c => f(c).FlattenList(f)).Concat(e);
}
/// <summary>
@@ -29,7 +29,7 @@ namespace Umbraco.Core.Events
/// <remarks>
/// This is protected so that inheritors can expose it with their own name
/// </remarks>
protected T EventObject { get; private set; }
protected T EventObject { get; set; }
}
}
+92 -22
View File
@@ -1,28 +1,98 @@
using System;
using System.Collections.Generic;
using System.Linq;
namespace Umbraco.Core.Events
{
public class MoveEventArgs<TEntity> : CancellableObjectEventArgs<TEntity>
{
public MoveEventArgs(TEntity eventObject, bool canCancel, int parentId) : base(eventObject, canCancel)
{
ParentId = parentId;
}
public class MoveEventInfo<TEntity>
{
public MoveEventInfo(TEntity entity, string originalPath, int newParentId)
{
Entity = entity;
OriginalPath = originalPath;
NewParentId = newParentId;
}
public MoveEventArgs(TEntity eventObject, int parentId) : base(eventObject)
{
ParentId = parentId;
}
public TEntity Entity { get; set; }
public string OriginalPath { get; set; }
public int NewParentId { get; set; }
}
/// <summary>
/// The entity being moved
/// </summary>
public TEntity Entity
{
get { return EventObject; }
}
public class MoveEventArgs<TEntity> : CancellableObjectEventArgs<TEntity>
{
/// <summary>
/// Constructor accepting a collection of MoveEventInfo objects
/// </summary>
/// <param name="canCancel"></param>
/// <param name="moveInfo">
/// A colleciton of MoveEventInfo objects that exposes all entities that have been moved during a single move operation
/// </param>
public MoveEventArgs(bool canCancel, params MoveEventInfo<TEntity>[] moveInfo)
: base(default(TEntity), canCancel)
{
if (moveInfo.FirstOrDefault() == null)
{
throw new ArgumentException("moveInfo argument must contain at least one item");
}
/// <summary>
/// Gets or Sets the Id of the objects new parent.
/// </summary>
public int ParentId { get; private set; }
}
MoveInfoCollection = moveInfo;
//assign the legacy props
EventObject = moveInfo.First().Entity;
ParentId = moveInfo.First().NewParentId;
}
/// <summary>
/// Constructor accepting a collection of MoveEventInfo objects
/// </summary>
/// <param name="moveInfo">
/// A colleciton of MoveEventInfo objects that exposes all entities that have been moved during a single move operation
/// </param>
public MoveEventArgs(params MoveEventInfo<TEntity>[] moveInfo)
: base(default(TEntity))
{
if (moveInfo.FirstOrDefault() == null)
{
throw new ArgumentException("moveInfo argument must contain at least one item");
}
MoveInfoCollection = moveInfo;
//assign the legacy props
EventObject = moveInfo.First().Entity;
ParentId = moveInfo.First().NewParentId;
}
[Obsolete("Use the overload that specifies the MoveEventInfo object")]
public MoveEventArgs(TEntity eventObject, bool canCancel, int parentId)
: base(eventObject, canCancel)
{
ParentId = parentId;
}
[Obsolete("Use the overload that specifies the MoveEventInfo object")]
public MoveEventArgs(TEntity eventObject, int parentId)
: base(eventObject)
{
ParentId = parentId;
}
/// <summary>
/// Gets all MoveEventInfo objects used to create the object
/// </summary>
public IEnumerable<MoveEventInfo<TEntity>> MoveInfoCollection { get; private set; }
/// <summary>
/// The entity being moved
/// </summary>
[Obsolete("Retrieve the entity object from the MoveInfoCollection property instead")]
public TEntity Entity
{
get { return EventObject; }
}
/// <summary>
/// Gets the Id of the object's new parent
/// </summary>
[Obsolete("Retrieve the ParentId from the MoveInfoCollection property instead")]
public int ParentId { get; private set; }
}
}
@@ -0,0 +1,13 @@
using System;
namespace Umbraco.Core
{
/// <summary>
/// Used to notify the TypeFinder to ignore any class attributed with this during it's discovery
/// </summary>
[AttributeUsage(AttributeTargets.Class)]
public sealed class HideFromTypeFinderAttribute : Attribute
{
}
}
+4 -5
View File
@@ -206,11 +206,10 @@ namespace Umbraco.Core.IO
var fileNameThumb = string.IsNullOrWhiteSpace(fileNameAddition)
? string.Format("{0}_UMBRACOSYSTHUMBNAIL.jpg", Path.Substring(0, Path.LastIndexOf(".", StringComparison.Ordinal)))
: string.Format("{0}_{1}.jpg", Path.Substring(0, Path.LastIndexOf(".", StringComparison.Ordinal)), fileNameAddition);
var thumbnail = maxWidthHeight == -1
?ImageHelper.GenerateThumbnail(image, maxWidthHeight, fileNameThumb, Extension, _fs)
: ImageHelper.GenerateThumbnail(image, width, height, fileNameThumb, Extension, _fs);
var thumbnail = maxWidthHeight == -1
? ImageHelper.GenerateThumbnail(image, width, height, fileNameThumb, Extension, _fs)
: ImageHelper.GenerateThumbnail(image, maxWidthHeight, fileNameThumb, Extension, _fs);
return thumbnail.FileName;
}
+1 -1
View File
@@ -1,7 +1,7 @@
namespace Umbraco.Core.Media
{
//NOTE: Could definitely have done with a better name
//TODO: Could definitely have done with a better name
public class Result
{
public Status Status { get; set; }
+45 -20
View File
@@ -232,6 +232,7 @@ namespace Umbraco.Core.Models
/// <remarks>
/// This Property is kept internal until localization is introduced.
/// </remarks>
[DataMember]
internal string NodeName
{
get { return _nodeName; }
@@ -248,6 +249,7 @@ namespace Umbraco.Core.Models
/// <summary>
/// Used internally to track if permissions have been changed during the saving process for this entity
/// </summary>
[IgnoreDataMember]
internal bool PermissionsChanged
{
get { return _permissionsChanged; }
@@ -314,6 +316,7 @@ namespace Umbraco.Core.Models
PublishedState = state;
}
[DataMember]
internal PublishedState PublishedState { get; set; }
/// <summary>
@@ -333,26 +336,6 @@ namespace Umbraco.Core.Models
}
}
/// <summary>
/// Creates a clone of the current entity
/// </summary>
/// <returns></returns>
public IContent Clone()
{
var clone = (Content)this.MemberwiseClone();
clone.Key = Guid.Empty;
clone.Version = Guid.NewGuid();
clone.ResetIdentity();
foreach (var property in clone.Properties)
{
property.ResetIdentity();
property.Version = clone.Version;
}
return clone;
}
/// <summary>
/// Indicates whether a specific property on the current <see cref="IContent"/> entity is dirty.
/// </summary>
@@ -432,5 +415,47 @@ namespace Umbraco.Core.Models
base.UpdatingEntity();
Version = Guid.NewGuid();
}
/// <summary>
/// Creates a deep clone of the current entity with its identity and it's property identities reset
/// </summary>
/// <returns></returns>
[Obsolete("Use DeepCloneWithResetIdentities instead")]
public IContent Clone()
{
return DeepCloneWithResetIdentities();
}
/// <summary>
/// Creates a deep clone of the current entity with its identity and it's property identities reset
/// </summary>
/// <returns></returns>
public IContent DeepCloneWithResetIdentities()
{
var clone = (Content)DeepClone();
clone.Key = Guid.Empty;
clone.Version = Guid.NewGuid();
clone.ResetIdentity();
foreach (var property in clone.Properties)
{
property.ResetIdentity();
property.Version = clone.Version;
}
return clone;
}
public override object DeepClone()
{
var clone = (Content)base.DeepClone();
//need to manually clone this since it's not settable
clone._contentType = (IContentType)ContentType.DeepClone();
clone.ResetDirtyProperties(false);
return clone;
}
}
}
+8 -4
View File
@@ -15,10 +15,13 @@ namespace Umbraco.Core.Models
/// <summary>
/// Represents an abstract class for base Content properties and methods
/// </summary>
[Serializable]
[DataContract(IsReference = true)]
[DebuggerDisplay("Id: {Id}, Name: {Name}, ContentType: {ContentTypeBase.Alias}")]
public abstract class ContentBase : Entity, IContentBase
{
protected IContentTypeComposition ContentTypeBase;
private Lazy<int> _parentId;
private string _name;//NOTE Once localization is introduced this will be the localized Name of the Content/Media.
private int _sortOrder;
@@ -257,6 +260,7 @@ namespace Umbraco.Core.Models
}
private readonly IDictionary<string, object> _additionalData;
/// <summary>
/// Some entities may expose additional data that other's might not, this custom data will be available in this collection
/// </summary>
@@ -306,10 +310,8 @@ namespace Umbraco.Core.Models
/// <returns><see cref="Property"/> Value as a <see cref="TPassType"/></returns>
public virtual TPassType GetValue<TPassType>(string propertyTypeAlias)
{
if (Properties[propertyTypeAlias].Value is TPassType)
return (TPassType)Properties[propertyTypeAlias].Value;
return (TPassType)Convert.ChangeType(Properties[propertyTypeAlias].Value, typeof(TPassType));
var convertAttempt = Properties[propertyTypeAlias].Value.TryConvertTo<TPassType>();
return convertAttempt.Success ? convertAttempt.Result : default(TPassType);
}
/// <summary>
@@ -447,6 +449,7 @@ namespace Umbraco.Core.Models
/// <summary>
/// Returns a collection of the result of the last validation process, this collection contains all invalid properties.
/// </summary>
[IgnoreDataMember]
internal IEnumerable<Property> LastInvalidProperties
{
get { return _lastInvalidProperties; }
@@ -468,5 +471,6 @@ namespace Umbraco.Core.Models
prop.ResetDirtyProperties(rememberPreviouslyChangedProperties);
}
}
}
}
@@ -26,6 +26,20 @@ namespace Umbraco.Core.Models
{
#region IContent
/// <summary>
/// Returns true if this entity was just published as part of a recent save operation (i.e. it wasn't previously published)
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
/// <remarks>
/// This is helpful for determining if the published event will execute during the saved event for a content item.
/// </remarks>
internal static bool JustPublished(this IContent entity)
{
var dirty = (IRememberBeingDirty)entity;
return dirty.WasPropertyDirty("Published") && entity.Published;
}
/// <summary>
/// Determines if a new version should be created
/// </summary>
@@ -0,0 +1,21 @@
using System;
using System.Xml.Linq;
namespace Umbraco.Core.Models
{
/// <summary>
/// Used content repository in order to add an entity to the persisted collection to be saved
/// in a single transaction during saving an entity
/// </summary>
internal class ContentPreviewEntity<TContent> : ContentXmlEntity<TContent>
where TContent : IContentBase
{
public ContentPreviewEntity(bool previewExists, TContent content, Func<TContent, XElement> xml)
: base(previewExists, content, xml)
{
Version = content.Version;
}
public Guid Version { get; private set; }
}
}
+51 -32
View File
@@ -120,38 +120,6 @@ namespace Umbraco.Core.Models
return result;
}
/// <summary>
/// Creates a clone of the current entity
/// </summary>
/// <returns></returns>
public IContentType Clone(string alias)
{
var clone = (ContentType)this.MemberwiseClone();
clone.Alias = alias;
clone.Key = Guid.Empty;
var propertyGroups = this.PropertyGroups.Select(x => x.Clone()).ToList();
clone.PropertyGroups = new PropertyGroupCollection(propertyGroups);
clone.PropertyTypes = this.PropertyTypeCollection.Select(x => x.Clone()).ToList();
clone.ResetIdentity();
clone.ResetDirtyProperties(false);
foreach (var propertyGroup in clone.PropertyGroups)
{
propertyGroup.ResetIdentity();
foreach (var propertyType in propertyGroup.PropertyTypes)
{
propertyType.ResetIdentity();
}
}
foreach (var propertyType in clone.PropertyTypes.Where(x => x.HasIdentity))
{
propertyType.ResetIdentity();
}
return clone;
}
/// <summary>
/// Method to call when Entity is being saved
@@ -173,5 +141,56 @@ namespace Umbraco.Core.Models
{
base.UpdatingEntity();
}
public override object DeepClone()
{
var clone = (ContentType)base.DeepClone();
var propertyGroups = PropertyGroups.Select(x => (PropertyGroup)x.DeepClone()).ToList();
clone.PropertyGroups = new PropertyGroupCollection(propertyGroups);
//set the property types that are not part of a group
clone.PropertyTypes = PropertyTypeCollection
.Where(x => x.PropertyGroupId == null)
.Select(x => (PropertyType)x.DeepClone()).ToList();
clone.ResetDirtyProperties(false);
return clone;
}
/// <summary>
/// Creates a deep clone of the current entity with its identity/alias and it's property identities reset
/// </summary>
/// <returns></returns>
[Obsolete("Use DeepCloneWithResetIdentities instead")]
public IContentType Clone(string alias)
{
return DeepCloneWithResetIdentities(alias);
}
/// <summary>
/// Creates a deep clone of the current entity with its identity/alias and it's property identities reset
/// </summary>
/// <returns></returns>
public IContentType DeepCloneWithResetIdentities(string alias)
{
var clone = (ContentType)DeepClone();
clone.Alias = alias;
clone.Key = Guid.Empty;
foreach (var propertyGroup in clone.PropertyGroups)
{
propertyGroup.ResetIdentity();
propertyGroup.ResetDirtyProperties(false);
}
foreach (var propertyType in clone.PropertyTypes)
{
propertyType.ResetIdentity();
propertyType.ResetDirtyProperties(false);
}
clone.ResetIdentity();
clone.ResetDirtyProperties(false);
return clone;
}
}
}
+4 -2
View File
@@ -6,6 +6,7 @@ using System.Linq;
using System.Reflection;
using System.Runtime.Serialization;
using Umbraco.Core.Models.EntityBase;
using Umbraco.Core.Strings;
namespace Umbraco.Core.Models
{
@@ -173,7 +174,8 @@ namespace Umbraco.Core.Models
{
SetPropertyValueAndDetectChanges(o =>
{
_alias = value.ToSafeAlias();
//_alias = value.ToSafeAlias();
_alias = value.ToCleanString(CleanStringType.Alias | CleanStringType.UmbracoCase);
return _alias;
}, _alias, AliasSelector);
}
@@ -319,7 +321,7 @@ namespace Umbraco.Core.Models
}
}
private readonly IDictionary<string, object> _additionalData;
private IDictionary<string, object> _additionalData;
/// <summary>
/// Some entities may expose additional data that other's might not, this custom data will be available in this collection
/// </summary>
@@ -13,7 +13,7 @@ namespace Umbraco.Core.Models
[DataContract(IsReference = true)]
public abstract class ContentTypeCompositionBase : ContentTypeBase, IContentTypeComposition
{
private readonly List<IContentTypeComposition> _contentTypeComposition = new List<IContentTypeComposition>();
private List<IContentTypeComposition> _contentTypeComposition = new List<IContentTypeComposition>();
internal List<int> RemovedContentTypeKeyTracker = new List<int>();
protected ContentTypeCompositionBase(int parentId) : base(parentId)
@@ -217,5 +217,17 @@ namespace Umbraco.Core.Models
.Select(x => x.Id)
.Union(ContentTypeComposition.SelectMany(x => x.CompositionIds()));
}
public override object DeepClone()
{
var clone = (ContentTypeCompositionBase)base.DeepClone();
//need to manually assign since this is an internal field and will not be automatically mapped
clone.RemovedContentTypeKeyTracker = new List<int>();
clone._contentTypeComposition = ContentTypeComposition.Select(x => (IContentTypeComposition)x.DeepClone()).ToList();
clone.ResetDirtyProperties(false);
return clone;
}
}
}
+32 -1
View File
@@ -6,7 +6,7 @@ namespace Umbraco.Core.Models
/// <summary>
/// Represents a POCO for setting sort order on a ContentType reference
/// </summary>
public class ContentTypeSort : IValueObject
public class ContentTypeSort : IValueObject, IDeepCloneable
{
public ContentTypeSort()
{
@@ -33,5 +33,36 @@ namespace Umbraco.Core.Models
/// Gets or sets the Alias of the ContentType
/// </summary>
public string Alias { get; set; }
public object DeepClone()
{
var clone = (ContentTypeSort)MemberwiseClone();
var id = Id.Value;
clone.Id = new Lazy<int>(() => id);
return clone;
}
protected bool Equals(ContentTypeSort other)
{
return Id.Value.Equals(other.Id.Value) && string.Equals(Alias, other.Alias);
}
public override bool Equals(object obj)
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
if (obj.GetType() != this.GetType()) return false;
return Equals((ContentTypeSort) obj);
}
public override int GetHashCode()
{
unchecked
{
return (Id.GetHashCode()*397) ^ Alias.GetHashCode();
}
}
}
}
@@ -0,0 +1,60 @@
using System;
using System.Xml.Linq;
using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Models
{
/// <summary>
/// Used in content/media/member repositories in order to add this type of entity to the persisted collection to be saved
/// in a single transaction during saving an entity
/// </summary>
internal class ContentXmlEntity<TContent> : IAggregateRoot
where TContent : IContentBase
{
private readonly bool _entityExists;
private readonly Func<TContent, XElement> _xml;
public ContentXmlEntity(bool entityExists, TContent content, Func<TContent, XElement> xml)
{
if (content == null) throw new ArgumentNullException("content");
_entityExists = entityExists;
_xml = xml;
Content = content;
}
public ContentXmlEntity(TContent content)
{
if (content == null) throw new ArgumentNullException("content");
Content = content;
}
public XElement Xml
{
get { return _xml(Content); }
}
public TContent Content { get; private set; }
public int Id
{
get { return Content.Id; }
set { throw new NotSupportedException(); }
}
public Guid Key { get; set; }
public DateTime CreateDate { get; set; }
public DateTime UpdateDate { get; set; }
public bool HasIdentity
{
get { return _entityExists; }
}
public object DeepClone()
{
var clone = (ContentXmlEntity<TContent>)MemberwiseClone();
//Automatically deep clone ref properties that are IDeepCloneable
DeepCloneHelper.DeepCloneRefProperties(this, clone);
return clone;
}
}
}
+144
View File
@@ -0,0 +1,144 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace Umbraco.Core.Models
{
public static class DeepCloneHelper
{
/// <summary>
/// Used to deep clone any reference properties on the object (should be done after a MemberwiseClone for which the outcome is 'output')
/// </summary>
/// <param name="input"></param>
/// <param name="output"></param>
/// <returns></returns>
public static void DeepCloneRefProperties(IDeepCloneable input, IDeepCloneable output)
{
var inputType = input.GetType();
var outputType = output.GetType();
if (inputType != outputType)
{
throw new InvalidOperationException("Both the input and output types must be the same");
}
var refProperties = inputType.GetProperties()
.Where(x =>
//reference type but not string
x.PropertyType.IsValueType == false && x.PropertyType != typeof (string)
//settable
&& x.CanWrite
//non-indexed
&& x.GetIndexParameters().Any() == false);
foreach (var propertyInfo in refProperties)
{
if (TypeHelper.IsTypeAssignableFrom<IDeepCloneable>(propertyInfo.PropertyType))
{
//this ref property is also deep cloneable so clone it
var result = (IDeepCloneable)propertyInfo.GetValue(input, null);
if (result != null)
{
//set the cloned value to the property
propertyInfo.SetValue(output, result.DeepClone(), null);
}
}
else if (TypeHelper.IsTypeAssignableFrom<IEnumerable>(propertyInfo.PropertyType)
&& TypeHelper.IsTypeAssignableFrom<string>(propertyInfo.PropertyType) == false)
{
IList newList;
if (propertyInfo.PropertyType.IsGenericType
&& (propertyInfo.PropertyType.GetGenericTypeDefinition() == typeof(IEnumerable<>)
|| propertyInfo.PropertyType.GetGenericTypeDefinition() == typeof(ICollection<>)
|| propertyInfo.PropertyType.GetGenericTypeDefinition() == typeof(IList<>)))
{
//if it is a IEnumerable<>, IList<T> or ICollection<> we'll use a List<>
var genericType = typeof(List<>).MakeGenericType(propertyInfo.PropertyType.GetGenericArguments());
newList = (IList)Activator.CreateInstance(genericType);
}
else if (propertyInfo.PropertyType.IsArray
|| (propertyInfo.PropertyType.IsInterface && propertyInfo.PropertyType.IsGenericType == false))
{
//if its an array, we'll create a list to work with first and then convert to array later
//otherwise if its just a regular derivitave of IEnumerable, we can use a list too
newList = new List<object>();
}
else
{
//its a custom IEnumerable, we'll try to create it
try
{
var custom = Activator.CreateInstance(propertyInfo.PropertyType);
//if it's an IList we can work with it, otherwise we cannot
newList = custom as IList;
if (newList == null)
{
continue;
}
}
catch (Exception)
{
//could not create this type so we'll skip it
continue;
}
}
var enumerable = (IEnumerable)propertyInfo.GetValue(input, null);
if (enumerable == null) continue;
var isUsableType = true;
//now clone each item
foreach (var o in enumerable)
{
//first check if the item is deep cloneable and copy that way
var dc = o as IDeepCloneable;
if (dc != null)
{
newList.Add(dc.DeepClone());
}
else if (o is string || o.GetType().IsValueType)
{
//check if the item is a value type or a string, then we can just use it
newList.Add(o);
}
else
{
//this will occur if the item is not a string or value type or IDeepCloneable, in this case we cannot
// clone each element, we'll need to skip this property, people will have to manually clone this list
isUsableType = false;
break;
}
}
//if this was not usable, skip this property
if (isUsableType == false)
{
continue;
}
if (propertyInfo.PropertyType.IsArray)
{
//need to convert to array
var arr = (object[])Activator.CreateInstance(propertyInfo.PropertyType, newList.Count);
for (int i = 0; i < newList.Count; i++)
{
arr[i] = newList[i];
}
//set the cloned collection
propertyInfo.SetValue(output, arr, null);
}
else
{
//set the cloned collection
propertyInfo.SetValue(output, newList, null);
}
}
}
}
}
}
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Runtime.Serialization;
using Umbraco.Core.Models.EntityBase;
@@ -96,5 +97,6 @@ namespace Umbraco.Core.Models
if(ParentId == Guid.Empty)
_parentId = new Guid("41c7638d-f529-4bff-853e-59a0c2fb1bde");
}
}
}
@@ -65,5 +65,6 @@ namespace Umbraco.Core.Models
}, _value, ValueSelector);
}
}
}
}
+62 -1
View File
@@ -1,7 +1,10 @@
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
namespace Umbraco.Core.Models.EntityBase
{
@@ -93,7 +96,7 @@ namespace Umbraco.Core.Models.EntityBase
}
/// <summary>
/// /// Gets or sets the WasCancelled flag, which is used to track
/// Gets or sets the WasCancelled flag, which is used to track
/// whether some action against an entity was cancelled through some event.
/// This only exists so we have a way to check if an event was cancelled through
/// the new api, which also needs to take effect in the legacy api.
@@ -155,6 +158,7 @@ namespace Umbraco.Core.Models.EntityBase
/// <summary>
/// Indicates whether the current entity has an identity, eg. Id.
/// </summary>
[DataMember]
public virtual bool HasIdentity
{
get
@@ -226,5 +230,62 @@ namespace Umbraco.Core.Models.EntityBase
_hash = !HasIdentity ? new int?(base.GetHashCode()) : new int?(Id.GetHashCode() * 397 ^ GetType().GetHashCode());
return _hash.Value;
}
public virtual object DeepClone()
{
//Memberwise clone on Entity will work since it doesn't have any deep elements
// for any sub class this will work for standard properties as well that aren't complex object's themselves.
var clone = (Entity)MemberwiseClone();
//Automatically deep clone ref properties that are IDeepCloneable
DeepCloneHelper.DeepCloneRefProperties(this, clone);
clone.ResetDirtyProperties(false);
return clone;
//Using data contract serializer - has issues
//var s = Serialize(this);
//var d = Deserialize(s, this.GetType());
//return d;
//Using binary serializer - has issues
//using (var memoryStream = new MemoryStream(10))
//{
//IFormatter formatter = new BinaryFormatter();
//formatter.Serialize(memoryStream, this);
//memoryStream.Seek(0, SeekOrigin.Begin);
//return formatter.Deserialize(memoryStream);
//}
}
// serialize/deserialize with data contracts:
//public static string Serialize(object obj)
//{
// using (var memoryStream = new MemoryStream())
// using (var reader = new StreamReader(memoryStream))
// {
// var serializer = new DataContractSerializer(obj.GetType());
// serializer.WriteObject(memoryStream, obj);
// memoryStream.Position = 0;
// return reader.ReadToEnd();
// }
//}
//public static object Deserialize(string xml, Type toType)
//{
// using (Stream stream = new MemoryStream())
// {
// using (var writer = new StreamWriter(stream, Encoding.UTF8))
// {
// writer.Write(xml);
// //byte[] data = Encoding.UTF8.GetBytes(xml);
// //stream.Write(data, 0, data.Length);
// stream.Position = 0;
// var deserializer = new DataContractSerializer(toType);
// return deserializer.ReadObject(stream);
// }
// }
//}
}
}
@@ -9,7 +9,7 @@ namespace Umbraco.Core.Models.EntityBase
/// </summary>
/// <remarks>The current database schema doesn't provide a modified date
/// for all entities, so this will have to be changed at a later stage.</remarks>
public interface IEntity
public interface IEntity : IDeepCloneable
{
/// <summary>
/// The Id of the entity
@@ -3,18 +3,21 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Runtime.Serialization;
namespace Umbraco.Core.Models.EntityBase
{
/// <summary>
/// A base class for use to implement IRememberBeingDirty/ICanBeDirty
/// </summary>
[Serializable]
[DataContract(IsReference = true)]
public abstract class TracksChangesEntityBase : IRememberBeingDirty
{
/// <summary>
/// Tracks the properties that have changed
/// </summary>
private readonly IDictionary<string, bool> _propertyChangedInfo = new Dictionary<string, bool>();
private IDictionary<string, bool> _propertyChangedInfo = new Dictionary<string, bool>();
/// <summary>
/// Tracks the properties that we're changed before the last commit (or last call to ResetDirtyProperties)
@@ -83,7 +86,9 @@ namespace Umbraco.Core.Models.EntityBase
/// </summary>
public void ForgetPreviouslyDirtyProperties()
{
_lastPropertyChangedInfo.Clear();
//NOTE: We cannot .Clear() because when we memberwise clone this will be the SAME
// instance as the one on the clone, so we need to create a new instance.
_lastPropertyChangedInfo = new Dictionary<string, bool>();
}
/// <summary>
@@ -116,7 +121,9 @@ namespace Umbraco.Core.Models.EntityBase
_lastPropertyChangedInfo = _propertyChangedInfo.ToDictionary(v => v.Key, v => v.Value);
}
_propertyChangedInfo.Clear();
//NOTE: We cannot .Clear() because when we memberwise clone this will be the SAME
// instance as the one on the clone, so we need to create a new instance.
_propertyChangedInfo = new Dictionary<string, bool>();
}
/// <summary>
@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Models
{
public static class EntityExtensions
{
/// <summary>
/// Returns true if this entity has just been created and persisted to the data store
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
/// <remarks>
/// This is useful when handling events to determine if an entity is a brand new entity or was
/// already existing.
/// </remarks>
public static bool IsNewEntity(this IEntity entity)
{
var dirty = (IRememberBeingDirty)entity;
return dirty.WasPropertyDirty("Id");
}
}
}
+13 -10
View File
@@ -6,16 +6,6 @@ using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Models
{
internal sealed class Folder : Entity
{
public Folder(string folderPath)
{
Path = folderPath;
}
public string Path { get; set; }
}
/// <summary>
/// Represents an abstract file which provides basic functionality for a File with an Alias and Name
/// </summary>
@@ -114,5 +104,18 @@ namespace Umbraco.Core.Models
/// </summary>
/// <returns>True if file is valid, otherwise false</returns>
public abstract bool IsValid();
public override object DeepClone()
{
var clone = (File)base.DeepClone();
//need to manually assign since they are readonly properties
clone._alias = Alias;
clone._name = Name;
clone.ResetDirtyProperties(false);
return clone;
}
}
}
+14
View File
@@ -0,0 +1,14 @@
using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Models
{
internal sealed class Folder : Entity
{
public Folder(string folderPath)
{
Path = folderPath;
}
public string Path { get; set; }
}
}
+6
View File
@@ -72,5 +72,11 @@ namespace Umbraco.Core.Models
/// Changes the Published state of the content object
/// </summary>
void ChangePublishedState(PublishedState state);
/// <summary>
/// Creates a deep clone of the current entity with its identity/alias and it's property identities reset
/// </summary>
/// <returns></returns>
IContent DeepCloneWithResetIdentities();
}
}
+7
View File
@@ -29,5 +29,12 @@ namespace Umbraco.Core.Models
/// <param name="template"><see cref="ITemplate"/> to remove</param>
/// <returns>True if template was removed, otherwise False</returns>
bool RemoveTemplate(ITemplate template);
/// <summary>
/// Creates a deep clone of the current entity with its identity/alias and it's property identities reset
/// </summary>
/// <param name="newAlias"></param>
/// <returns></returns>
IContentType DeepCloneWithResetIdentities(string newAlias);
}
}
@@ -0,0 +1,9 @@
using System.Reflection;
namespace Umbraco.Core.Models
{
public interface IDeepCloneable
{
object DeepClone();
}
}
+26
View File
@@ -0,0 +1,26 @@
using System.Collections.Generic;
using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Models
{
/// <summary>
/// Represents a member type
/// </summary>
public interface IMemberGroup : IAggregateRoot
{
/// <summary>
/// The name of the member group
/// </summary>
string Name { get; set; }
/// <summary>
/// Profile of the user who created this Entity
/// </summary>
int CreatorId { get; set; }
/// <summary>
/// Some entities may expose additional data that other's might not, this custom data will be available in this collection
/// </summary>
IDictionary<string, object> AdditionalData { get; }
}
}
+6
View File
@@ -10,5 +10,11 @@
/// </summary>
/// <returns><see cref="RenderingEngine"/></returns>
RenderingEngine GetTypeOfRenderingEngine();
/// <summary>
/// Set the mastertemplate
/// </summary>
/// <param name="masterTemplate"></param>
void SetMasterTemplate(ITemplate masterTemplate);
}
}
+17 -5
View File
@@ -109,9 +109,9 @@ namespace Umbraco.Core.Models
private string _scriptAssembly;
private string _scriptPath;
private string _xslt;
private readonly MacroPropertyCollection _properties;
private readonly List<string> _addedProperties;
private readonly List<string> _removedProperties;
private MacroPropertyCollection _properties;
private List<string> _addedProperties;
private List<string> _removedProperties;
private static readonly PropertyInfo AliasSelector = ExpressionHelper.GetPropertyInfo<Macro, string>(x => x.Alias);
private static readonly PropertyInfo NameSelector = ExpressionHelper.GetPropertyInfo<Macro, string>(x => x.Name);
@@ -397,7 +397,19 @@ namespace Umbraco.Core.Models
{
get { return _properties; }
}
public override object DeepClone()
{
var clone = (Macro)base.DeepClone();
clone._addedProperties = new List<string>();
clone._removedProperties = new List<string>();
clone._properties = new MacroPropertyCollection();
clone._properties.CollectionChanged += clone.PropertiesChanged;
clone.ResetDirtyProperties(false);
return clone;
}
}
}
+286 -102
View File
@@ -1,7 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Runtime.Serialization;
using Umbraco.Core.Logging;
namespace Umbraco.Core.Models
{
@@ -12,62 +14,105 @@ namespace Umbraco.Core.Models
[DataContract(IsReference = true)]
public class Member : ContentBase, IMember
{
private readonly IMemberType _contentType;
private string _contentTypeAlias;
private IMemberType _contentType;
private readonly string _contentTypeAlias;
private string _username;
private string _email;
private string _password;
private string _rawPasswordValue;
private object _providerUserKey;
private Type _userTypeKey;
/// <summary>
/// Constructor for creating an empty Member object
/// </summary>
/// <param name="contentType">ContentType for the current Content object</param>
public Member(IMemberType contentType)
: base("", -1, contentType, new PropertyCollection())
{
Mandate.ParameterNotNull(contentType, "contentType");
_contentTypeAlias = contentType.Alias;
_contentType = contentType;
IsApproved = true;
//this cannot be null but can be empty
_rawPasswordValue = "";
_email = "";
_username = "";
}
/// <summary>
/// Constructor for creating a Member object
/// </summary>
/// <param name="name">Name of the content</param>
/// <param name="contentType">ContentType for the current Content object</param>
public Member(string name, IMemberType contentType)
: this(contentType)
{
Mandate.ParameterNotNull(contentType, "contentType");
Mandate.ParameterNotNullOrEmpty(name, "name");
_contentTypeAlias = contentType.Alias;
_contentType = contentType;
IsApproved = true;
//this cannot be null but can be empty
_rawPasswordValue = "";
_email = "";
_username = "";
}
/// <summary>
/// Constructor for creating a Member object
/// </summary>
/// <param name="name"></param>
/// <param name="email"></param>
/// <param name="username"></param>
/// <param name="contentType"></param>
public Member(string name, string email, string username, IMemberType contentType)
: base(name, -1, contentType, new PropertyCollection())
{
_contentType = contentType;
}
internal Member(string name, string email, string username, string password, int parentId, IMemberType contentType)
: base(name, parentId, contentType, new PropertyCollection())
{
Mandate.ParameterNotNull(contentType, "contentType");
Mandate.ParameterNotNullOrEmpty(name, "name");
Mandate.ParameterNotNullOrEmpty(email, "email");
Mandate.ParameterNotNullOrEmpty(username, "username");
_contentTypeAlias = contentType.Alias;
_contentType = contentType;
_email = email;
_username = username;
_password = password;
IsApproved = true;
//this cannot be null but can be empty
_rawPasswordValue = "";
}
public Member(string name, string email, string username, string password, IMemberType contentType)
: this(name, email, username, password, -1, contentType)
/// <summary>
/// Constructor for creating a Member object
/// </summary>
/// <param name="name"></param>
/// <param name="email"></param>
/// <param name="username"></param>
/// <param name="rawPasswordValue">
/// The password value passed in to this parameter should be the encoded/encrypted/hashed format of the member's password
/// </param>
/// <param name="contentType"></param>
public Member(string name, string email, string username, string rawPasswordValue, IMemberType contentType)
: base(name, -1, contentType, new PropertyCollection())
{
Mandate.ParameterNotNull(contentType, "contentType");
_contentTypeAlias = contentType.Alias;
_contentType = contentType;
_email = email;
_username = username;
_password = password;
_rawPasswordValue = rawPasswordValue;
IsApproved = true;
}
//public Member(string name, string email, string username, string password, IContentBase parent, IMemberType contentType)
// : base(name, parent, contentType, new PropertyCollection())
//{
// Mandate.ParameterNotNull(contentType, "contentType");
// _contentType = contentType;
// _email = email;
// _username = username;
// _password = password;
//}
private static readonly PropertyInfo DefaultContentTypeAliasSelector = ExpressionHelper.GetPropertyInfo<Member, string>(x => x.ContentTypeAlias);
private static readonly PropertyInfo UsernameSelector = ExpressionHelper.GetPropertyInfo<Member, string>(x => x.Username);
private static readonly PropertyInfo EmailSelector = ExpressionHelper.GetPropertyInfo<Member, string>(x => x.Email);
private static readonly PropertyInfo PasswordSelector = ExpressionHelper.GetPropertyInfo<Member, string>(x => x.Password);
private static readonly PropertyInfo PasswordSelector = ExpressionHelper.GetPropertyInfo<Member, string>(x => x.RawPasswordValue);
private static readonly PropertyInfo ProviderUserKeySelector = ExpressionHelper.GetPropertyInfo<Member, object>(x => x.ProviderUserKey);
private static readonly PropertyInfo UserTypeKeySelector = ExpressionHelper.GetPropertyInfo<Member, Type>(x => x.ProviderUserKeyType);
@@ -106,19 +151,19 @@ namespace Umbraco.Core.Models
}
/// <summary>
/// Gets or sets the Password
/// Gets or sets the raw password value
/// </summary>
[DataMember]
public string Password
[IgnoreDataMember]
public string RawPasswordValue
{
get { return _password; }
get { return _rawPasswordValue; }
set
{
SetPropertyValueAndDetectChanges(o =>
{
_password = value;
return _password;
}, _password, PasswordSelector);
_rawPasswordValue = value;
return _rawPasswordValue;
}, _rawPasswordValue, PasswordSelector);
}
}
@@ -136,42 +181,58 @@ namespace Umbraco.Core.Models
/// Gets or sets the Password Question
/// </summary>
/// <remarks>
/// Alias: umbracoPasswordRetrievalQuestionPropertyTypeAlias
/// Alias: umbracoMemberPasswordRetrievalQuestion
/// Part of the standard properties collection.
/// </remarks>
[IgnoreDataMember]
[DataMember]
public string PasswordQuestion
{
get
{
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.PasswordQuestion, "PasswordQuestion", default(string));
if (a.Success == false) return a.Result;
return Properties[Constants.Conventions.Member.PasswordQuestion].Value == null
? string.Empty
: Properties[Constants.Conventions.Member.PasswordQuestion].Value.ToString();
}
set
{
if (WarnIfPropertyTypeNotFoundOnSet(
Constants.Conventions.Member.PasswordQuestion,
"PasswordQuestion") == false) return;
Properties[Constants.Conventions.Member.PasswordQuestion].Value = value;
}
}
/// <summary>
/// Gets or sets the Password Answer
/// Gets or sets the raw password answer value
/// </summary>
/// <remarks>
/// Alias: umbracoPasswordRetrievalAnswerPropertyTypeAlias
/// For security reasons this value should be encrypted, the encryption process is handled by the memberhip provider
/// Alias: umbracoMemberPasswordRetrievalAnswer
///
/// Part of the standard properties collection.
/// </remarks>
[IgnoreDataMember]
public string PasswordAnswer
public string RawPasswordAnswerValue
{
get
{
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.PasswordAnswer, "PasswordAnswer", default(string));
if (a.Success == false) return a.Result;
return Properties[Constants.Conventions.Member.PasswordAnswer].Value == null
? string.Empty
: Properties[Constants.Conventions.Member.PasswordAnswer].Value.ToString();
}
set
{
if (WarnIfPropertyTypeNotFoundOnSet(
Constants.Conventions.Member.PasswordAnswer,
"PasswordAnswer") == false) return;
Properties[Constants.Conventions.Member.PasswordAnswer].Value = value;
}
}
@@ -180,20 +241,27 @@ namespace Umbraco.Core.Models
/// Gets or set the comments for the member
/// </summary>
/// <remarks>
/// Alias: umbracoCommentPropertyTypeAlias
/// Alias: umbracoMemberComments
/// Part of the standard properties collection.
/// </remarks>
[IgnoreDataMember]
[DataMember]
public string Comments
{
get
{
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.Comments, "Comments", default(string));
if (a.Success == false) return a.Result;
return Properties[Constants.Conventions.Member.Comments].Value == null
? string.Empty
: Properties[Constants.Conventions.Member.Comments].Value.ToString();
}
set
{
if (WarnIfPropertyTypeNotFoundOnSet(
Constants.Conventions.Member.Comments,
"Comments") == false) return;
Properties[Constants.Conventions.Member.Comments].Value = value;
}
}
@@ -202,25 +270,33 @@ namespace Umbraco.Core.Models
/// Gets or sets a boolean indicating whether the Member is approved
/// </summary>
/// <remarks>
/// Alias: umbracoApprovePropertyTypeAlias
/// Alias: umbracoMemberApproved
/// Part of the standard properties collection.
/// </remarks>
[IgnoreDataMember]
[DataMember]
public bool IsApproved
{
get
{
if (Properties[Constants.Conventions.Member.IsApproved].Value == null)
return default(bool);
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.IsApproved, "IsApproved",
//This is the default value if the prop is not found
true);
if (a.Success == false) return a.Result;
if (Properties[Constants.Conventions.Member.IsApproved].Value is bool)
return (bool)Properties[Constants.Conventions.Member.IsApproved].Value;
//TODO: Use TryConvertTo<T> instead
return (bool)Convert.ChangeType(Properties[Constants.Conventions.Member.IsApproved].Value, typeof(bool));
var tryConvert = Properties[Constants.Conventions.Member.IsApproved].Value.TryConvertTo<bool>();
if (tryConvert.Success)
{
return tryConvert.Result;
}
//if the property exists but it cannot be converted, we will assume true
return true;
}
set
{
if (WarnIfPropertyTypeNotFoundOnSet(
Constants.Conventions.Member.IsApproved,
"IsApproved") == false) return;
Properties[Constants.Conventions.Member.IsApproved].Value = value;
}
}
@@ -229,25 +305,31 @@ namespace Umbraco.Core.Models
/// Gets or sets a boolean indicating whether the Member is locked out
/// </summary>
/// <remarks>
/// Alias: umbracoLockPropertyTypeAlias
/// Alias: umbracoMemberLockedOut
/// Part of the standard properties collection.
/// </remarks>
[IgnoreDataMember]
[DataMember]
public bool IsLockedOut
{
get
{
if (Properties[Constants.Conventions.Member.IsLockedOut].Value == null)
return default(bool);
if (Properties[Constants.Conventions.Member.IsLockedOut].Value is bool)
return (bool)Properties[Constants.Conventions.Member.IsLockedOut].Value;
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.IsLockedOut, "IsLockedOut", false);
if (a.Success == false) return a.Result;
var tryConvert = Properties[Constants.Conventions.Member.IsLockedOut].Value.TryConvertTo<bool>();
if (tryConvert.Success)
{
return tryConvert.Result;
}
return false;
//TODO: Use TryConvertTo<T> instead
return (bool)Convert.ChangeType(Properties[Constants.Conventions.Member.IsLockedOut].Value, typeof(bool));
}
set
{
if (WarnIfPropertyTypeNotFoundOnSet(
Constants.Conventions.Member.IsLockedOut,
"IsLockedOut") == false) return;
Properties[Constants.Conventions.Member.IsLockedOut].Value = value;
}
}
@@ -256,25 +338,31 @@ namespace Umbraco.Core.Models
/// Gets or sets the date for last login
/// </summary>
/// <remarks>
/// Alias: umbracoLastLoginPropertyTypeAlias
/// Alias: umbracoMemberLastLogin
/// Part of the standard properties collection.
/// </remarks>
[IgnoreDataMember]
[DataMember]
public DateTime LastLoginDate
{
get
{
if (Properties[Constants.Conventions.Member.LastLoginDate].Value == null)
return default(DateTime);
if (Properties[Constants.Conventions.Member.LastLoginDate].Value is DateTime)
return (DateTime)Properties[Constants.Conventions.Member.LastLoginDate].Value;
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.LastLoginDate, "LastLoginDate", default(DateTime));
if (a.Success == false) return a.Result;
var tryConvert = Properties[Constants.Conventions.Member.LastLoginDate].Value.TryConvertTo<DateTime>();
if (tryConvert.Success)
{
return tryConvert.Result;
}
return default(DateTime);
//TODO: Use TryConvertTo<T> instead
return (DateTime)Convert.ChangeType(Properties[Constants.Conventions.Member.LastLoginDate].Value, typeof(DateTime));
}
set
{
if (WarnIfPropertyTypeNotFoundOnSet(
Constants.Conventions.Member.LastLoginDate,
"LastLoginDate") == false) return;
Properties[Constants.Conventions.Member.LastLoginDate].Value = value;
}
}
@@ -283,25 +371,31 @@ namespace Umbraco.Core.Models
/// Gest or sets the date for last password change
/// </summary>
/// <remarks>
/// Alias: umbracoMemberLastPasswordChange
/// Alias: umbracoMemberLastPasswordChangeDate
/// Part of the standard properties collection.
/// </remarks>
[IgnoreDataMember]
[DataMember]
public DateTime LastPasswordChangeDate
{
get
{
if (Properties[Constants.Conventions.Member.LastPasswordChangeDate].Value == null)
return default(DateTime);
if (Properties[Constants.Conventions.Member.LastPasswordChangeDate].Value is DateTime)
return (DateTime)Properties[Constants.Conventions.Member.LastPasswordChangeDate].Value;
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.LastPasswordChangeDate, "LastPasswordChangeDate", default(DateTime));
if (a.Success == false) return a.Result;
var tryConvert = Properties[Constants.Conventions.Member.LastPasswordChangeDate].Value.TryConvertTo<DateTime>();
if (tryConvert.Success)
{
return tryConvert.Result;
}
return default(DateTime);
//TODO: Use TryConvertTo<T> instead
return (DateTime)Convert.ChangeType(Properties[Constants.Conventions.Member.LastPasswordChangeDate].Value, typeof(DateTime));
}
set
{
if (WarnIfPropertyTypeNotFoundOnSet(
Constants.Conventions.Member.LastPasswordChangeDate,
"LastPasswordChangeDate") == false) return;
Properties[Constants.Conventions.Member.LastPasswordChangeDate].Value = value;
}
}
@@ -310,25 +404,31 @@ namespace Umbraco.Core.Models
/// Gets or sets the date for when Member was locked out
/// </summary>
/// <remarks>
/// Alias: umbracoMemberLastLockout
/// Alias: umbracoMemberLastLockoutDate
/// Part of the standard properties collection.
/// </remarks>
[IgnoreDataMember]
[DataMember]
public DateTime LastLockoutDate
{
get
{
if (Properties[Constants.Conventions.Member.LastLockoutDate].Value == null)
return default(DateTime);
if (Properties[Constants.Conventions.Member.LastLockoutDate].Value is DateTime)
return (DateTime)Properties[Constants.Conventions.Member.LastLockoutDate].Value;
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.LastLockoutDate, "LastLockoutDate", default(DateTime));
if (a.Success == false) return a.Result;
var tryConvert = Properties[Constants.Conventions.Member.LastLockoutDate].Value.TryConvertTo<DateTime>();
if (tryConvert.Success)
{
return tryConvert.Result;
}
return default(DateTime);
//TODO: Use TryConvertTo<T> instead
return (DateTime)Convert.ChangeType(Properties[Constants.Conventions.Member.LastLockoutDate].Value, typeof(DateTime));
}
set
{
if (WarnIfPropertyTypeNotFoundOnSet(
Constants.Conventions.Member.LastLockoutDate,
"LastLockoutDate") == false) return;
Properties[Constants.Conventions.Member.LastLockoutDate].Value = value;
}
}
@@ -338,26 +438,32 @@ namespace Umbraco.Core.Models
/// This is the number of times the password was entered incorrectly upon login.
/// </summary>
/// <remarks>
/// Alias: umbracoFailedPasswordAttemptsPropertyTypeAlias
/// Alias: umbracoMemberFailedPasswordAttempts
/// Part of the standard properties collection.
/// </remarks>
[IgnoreDataMember]
[DataMember]
public int FailedPasswordAttempts
{
get
{
if (Properties[Constants.Conventions.Member.FailedPasswordAttempts].Value == null)
return default(int);
if (Properties[Constants.Conventions.Member.FailedPasswordAttempts].Value is int)
return (int)Properties[Constants.Conventions.Member.FailedPasswordAttempts].Value;
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.FailedPasswordAttempts, "FailedPasswordAttempts", 0);
if (a.Success == false) return a.Result;
var tryConvert = Properties[Constants.Conventions.Member.FailedPasswordAttempts].Value.TryConvertTo<int>();
if (tryConvert.Success)
{
return tryConvert.Result;
}
return default(int);
//TODO: Use TryConvertTo<T> instead
return (int)Convert.ChangeType(Properties[Constants.Conventions.Member.FailedPasswordAttempts].Value, typeof(int));
}
set
{
Properties[Constants.Conventions.Member.LastLockoutDate].Value = value;
if (WarnIfPropertyTypeNotFoundOnSet(
Constants.Conventions.Member.FailedPasswordAttempts,
"FailedPasswordAttempts") == false) return;
Properties[Constants.Conventions.Member.FailedPasswordAttempts].Value = value;
}
}
@@ -368,14 +474,6 @@ namespace Umbraco.Core.Models
public virtual string ContentTypeAlias
{
get { return _contentTypeAlias; }
internal set
{
SetPropertyValueAndDetectChanges(o =>
{
_contentTypeAlias = value;
return _contentTypeAlias;
}, _contentTypeAlias, DefaultContentTypeAliasSelector);
}
}
/// <summary>
@@ -465,11 +563,97 @@ namespace Umbraco.Core.Models
/* Internal experiment - only used for mapping queries.
* Adding these to have first level properties instead of the Properties collection.
*/
[IgnoreDataMember]
internal string LongStringPropertyValue { get; set; }
[IgnoreDataMember]
internal string ShortStringPropertyValue { get; set; }
[IgnoreDataMember]
internal int IntegerropertyValue { get; set; }
[IgnoreDataMember]
internal bool BoolPropertyValue { get; set; }
[IgnoreDataMember]
internal DateTime DateTimePropertyValue { get; set; }
[IgnoreDataMember]
internal string PropertyTypeAlias { get; set; }
private Attempt<T> WarnIfPropertyTypeNotFoundOnGet<T>(string propertyAlias, string propertyName, T defaultVal)
{
Action doLog = () => LogHelper.Warn<Member>(
"Trying to access the '"
+ propertyName
+ "' property on "
+ typeof(Member)
+ " but the "
+ propertyAlias
+ " property does not exist on the member type so a default value is returned. Ensure that you have a property type with alias: "
+ propertyAlias
+ " configured on your member type in order to use the '"
+ propertyName
+ "' property on the model correctly.");
//if the property doesn't exist, then do the logging and return a failure
if (Properties.Contains(propertyAlias) == false)
{
//we'll put a warn in the log if this entity has been persisted
if (HasIdentity)
{
doLog();
}
return Attempt<T>.Fail(defaultVal);
}
//if the property doesn't have an identity but we do, then do logging and return failure
var prop = Properties.Single(x => x.Alias == propertyAlias);
if (prop.HasIdentity == false && HasIdentity)
{
doLog();
return Attempt<T>.Fail(defaultVal);
}
return Attempt<T>.Succeed();
}
private bool WarnIfPropertyTypeNotFoundOnSet(string propertyAlias, string propertyname)
{
Action doLog = () => LogHelper.Warn<Member>("An attempt was made to set a value on the property '"
+ propertyname
+ "' on type "
+ typeof(Member)
+ " but the property type "
+ propertyAlias
+ " does not exist on the member type, ensure that this property type exists so that setting this property works correctly.");
//if the property doesn't exist, then do the logging and return a failure
if (Properties.Contains(propertyAlias) == false)
{
if (HasIdentity)
{
doLog();
}
return false;
}
//if the property doesn't have an identity but we do, then do logging and return failure
var prop = Properties.Single(x => x.Alias == propertyAlias);
if (prop.HasIdentity == false && HasIdentity)
{
doLog();
return false;
}
return true;
}
public override object DeepClone()
{
var clone = (Member)base.DeepClone();
//need to manually clone this since it's not settable
clone._contentType = (IMemberType)ContentType.DeepClone();
clone.ResetDirtyProperties(false);
return clone;
}
}
}
+76
View File
@@ -0,0 +1,76 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Runtime.Serialization;
using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Models
{
/// <summary>
/// Represents a member type
/// </summary>
[Serializable]
[DataContract(IsReference = true)]
public class MemberGroup : Entity, IMemberGroup
{
public MemberGroup()
{
AdditionalData = new Dictionary<string, object>();
}
private string _name;
private int _creatorId;
private static readonly PropertyInfo NameSelector = ExpressionHelper.GetPropertyInfo<MemberGroup, string>(x => x.Name);
private static readonly PropertyInfo CreatorIdSelector = ExpressionHelper.GetPropertyInfo<MemberGroup, int>(x => x.CreatorId);
[DataMember]
public string Name
{
get { return _name; }
set
{
SetPropertyValueAndDetectChanges(o =>
{
if (_name != value)
{
//if the name has changed, add the value to the additional data,
//this is required purely for event handlers to know the previous name of the group
//so we can keep the public access up to date.
AdditionalData["previousName"] = _name;
}
_name = value;
return _name;
}, _name, NameSelector);
}
}
public int CreatorId
{
get { return _creatorId; }
set
{
SetPropertyValueAndDetectChanges(o =>
{
_creatorId = value;
return _creatorId;
}, _creatorId, CreatorIdSelector);
}
}
public IDictionary<string, object> AdditionalData { get; private set; }
/// <summary>
/// Method to call when Entity is being saved
/// </summary>
/// <remarks>Created date is set and a Unique key is assigned</remarks>
internal override void AddingEntity()
{
base.AddingEntity();
if (Key == Guid.Empty)
Key = Guid.NewGuid();
}
}
}
+13 -28
View File
@@ -14,20 +14,18 @@ namespace Umbraco.Core.Models
public class MemberType : ContentTypeCompositionBase, IMemberType
{
//Dictionary is divided into string: PropertyTypeAlias, Tuple: MemberCanEdit, VisibleOnProfile, PropertyTypeId
private IDictionary<string, Tuple<bool, bool, int>> _memberTypePropertyTypes;
private string _alias;
public MemberType(int parentId) : base(parentId)
{
_memberTypePropertyTypes = new Dictionary<string, Tuple<bool, bool, int>>();
MemberTypePropertyTypes = new Dictionary<string, MemberTypePropertyProfileAccess>();
}
public MemberType(IContentTypeComposition parent) : base(parent)
{
_memberTypePropertyTypes = new Dictionary<string, Tuple<bool, bool, int>>();
MemberTypePropertyTypes = new Dictionary<string, MemberTypePropertyProfileAccess>();
}
private static readonly PropertyInfo MemberTypePropertyTypesSelector = ExpressionHelper.GetPropertyInfo<MemberType, IDictionary<string, Tuple<bool, bool, int>>>(x => x.MemberTypePropertyTypes);
private static readonly PropertyInfo AliasSelector = ExpressionHelper.GetPropertyInfo<MemberType, string>(x => x.Alias);
/// <summary>
@@ -46,28 +44,19 @@ namespace Umbraco.Core.Models
SetPropertyValueAndDetectChanges(o =>
{
_alias = value == "_umbracoSystemDefaultProtectType" ? value : value.ToSafeAlias();
_alias = value == "_umbracoSystemDefaultProtectType"
? value
: (value == null ? string.Empty : value.ToSafeAlias() );
return _alias;
}, _alias, AliasSelector);
}
}
/// <summary>
/// Gets or Sets a Dictionary of Tuples (MemberCanEdit, VisibleOnProfile, PropertyTypeId) by the PropertyTypes' alias.
/// Gets or Sets a Dictionary of Tuples (MemberCanEdit, VisibleOnProfile) by the PropertyTypes' alias.
/// </summary>
[DataMember]
internal IDictionary<string, Tuple<bool, bool, int>> MemberTypePropertyTypes
{
get { return _memberTypePropertyTypes; }
set
{
SetPropertyValueAndDetectChanges(o =>
{
_memberTypePropertyTypes = value;
return _memberTypePropertyTypes;
}, _memberTypePropertyTypes, MemberTypePropertyTypesSelector);
}
}
internal IDictionary<string, MemberTypePropertyProfileAccess> MemberTypePropertyTypes { get; private set; }
/// <summary>
/// Gets a boolean indicating whether a Property is editable by the Member.
@@ -78,7 +67,7 @@ namespace Umbraco.Core.Models
{
if (MemberTypePropertyTypes.ContainsKey(propertyTypeAlias))
{
return MemberTypePropertyTypes[propertyTypeAlias].Item1;
return MemberTypePropertyTypes[propertyTypeAlias].IsEditable;
}
return false;
@@ -93,7 +82,7 @@ namespace Umbraco.Core.Models
{
if (MemberTypePropertyTypes.ContainsKey(propertyTypeAlias))
{
return MemberTypePropertyTypes[propertyTypeAlias].Item2;
return MemberTypePropertyTypes[propertyTypeAlias].IsVisible;
}
return false;
@@ -108,13 +97,11 @@ namespace Umbraco.Core.Models
{
if (MemberTypePropertyTypes.ContainsKey(propertyTypeAlias))
{
var tuple = MemberTypePropertyTypes[propertyTypeAlias];
MemberTypePropertyTypes[propertyTypeAlias] = new Tuple<bool, bool, int>(value, tuple.Item2, tuple.Item3);
MemberTypePropertyTypes[propertyTypeAlias].IsEditable = value;
}
else
{
var propertyType = PropertyTypes.First(x => x.Alias.Equals(propertyTypeAlias));
var tuple = new Tuple<bool, bool, int>(value, false, propertyType.Id);
var tuple = new MemberTypePropertyProfileAccess(false, value);
MemberTypePropertyTypes.Add(propertyTypeAlias, tuple);
}
}
@@ -128,13 +115,11 @@ namespace Umbraco.Core.Models
{
if (MemberTypePropertyTypes.ContainsKey(propertyTypeAlias))
{
var tuple = MemberTypePropertyTypes[propertyTypeAlias];
MemberTypePropertyTypes[propertyTypeAlias] = new Tuple<bool, bool, int>(tuple.Item1, value, tuple.Item3);
MemberTypePropertyTypes[propertyTypeAlias].IsVisible = value;
}
else
{
var propertyType = PropertyTypes.First(x => x.Alias.Equals(propertyTypeAlias));
var tuple = new Tuple<bool, bool, int>(false, value, propertyType.Id);
var tuple = new MemberTypePropertyProfileAccess(value, false);
MemberTypePropertyTypes.Add(propertyTypeAlias, tuple);
}
}
@@ -0,0 +1,17 @@
namespace Umbraco.Core.Models
{
/// <summary>
/// Used to track the property types that are visible/editable on member profiles
/// </summary>
internal class MemberTypePropertyProfileAccess
{
public MemberTypePropertyProfileAccess(bool isVisible, bool isEditable)
{
IsVisible = isVisible;
IsEditable = isEditable;
}
public bool IsVisible { get; set; }
public bool IsEditable { get; set; }
}
}
@@ -5,14 +5,14 @@
/// </summary>
public class EntityPermission
{
public EntityPermission(object userId, int entityId, string[] assignedPermissions)
public EntityPermission(int userId, int entityId, string[] assignedPermissions)
{
UserId = userId;
EntityId = entityId;
AssignedPermissions = assignedPermissions;
}
public object UserId { get; private set; }
public int UserId { get; private set; }
public int EntityId { get; private set; }
/// <summary>
@@ -9,9 +9,19 @@ namespace Umbraco.Core.Models.Membership
object ProviderUserKey { get; set; }
string Username { get; set; }
string Email { get; set; }
string Password { get; set; }
/// <summary>
/// Gets or sets the raw password value
/// </summary>
string RawPasswordValue { get; set; }
string PasswordQuestion { get; set; }
string PasswordAnswer { get; set; }
/// <summary>
/// Gets or sets the raw password answer value
/// </summary>
string RawPasswordAnswerValue { get; set; }
string Comments { get; set; }
bool IsApproved { get; set; }
bool IsLockedOut { get; set; }
@@ -24,7 +34,7 @@ namespace Umbraco.Core.Models.Membership
/// This is the number of times the password was entered incorrectly upon login.
/// </summary>
/// <remarks>
/// Alias: umbracoFailedPasswordAttemptsPropertyTypeAlias
/// Alias: umbracoMemberFailedPasswordAttempts
/// Part of the standard properties collection.
/// </remarks>
int FailedPasswordAttempts { get; set; }
@@ -3,6 +3,10 @@
/// <summary>
/// Defines the the Profile interface
/// </summary>
/// <remarks>
/// This interface is pretty useless but has been exposed publicly from 6.x so we're stuck with it. It would make more sense
/// if the Id was an int but since it's not people have to cast it to int all of the time!
/// </remarks>
public interface IProfile
{
object Id { get; set; }
+11 -7
View File
@@ -7,19 +7,18 @@ namespace Umbraco.Core.Models.Membership
/// Defines the interface for a <see cref="User"/>
/// </summary>
/// <remarks>Will be left internal until a proper Membership implementation is part of the roadmap</remarks>
internal interface IUser : IMembershipUser, IProfile
public interface IUser : IMembershipUser
{
new object Id { get; set; }
string Name { get; set; }
int SessionTimeout { get; set; }
int StartContentId { get; set; }
int StartMediaId { get; set; }
string Language { get; set; }
//NOTE: I have removed this because it is obsolete in v7 and we are basically removing live editing for now
//bool DefaultToLiveEditing { get; set; }
IUserType UserType { get; }
/// <summary>
/// Gets/sets the user type for the user
/// </summary>
IUserType UserType { get; set; }
/// <summary>
/// The default permission set for the user
@@ -32,5 +31,10 @@ namespace Umbraco.Core.Models.Membership
IEnumerable<string> AllowedSections { get; }
void RemoveAllowedSection(string sectionAlias);
void AddAllowedSection(string sectionAlias);
/// <summary>
/// Exposes the basic profile data
/// </summary>
IProfile ProfileData { get; }
}
}
@@ -5,7 +5,7 @@ using Umbraco.Core.Persistence.Mappers;
namespace Umbraco.Core.Models.Membership
{
internal interface IUserType : IAggregateRoot
public interface IUserType : IAggregateRoot
{
/// <summary>
/// The user type alias
@@ -1,4 +1,4 @@
namespace Umbraco.Core.Services
namespace Umbraco.Core.Models.Membership
{
/// <summary>
/// The types of members to count
@@ -1,10 +1,11 @@
using System;
using System.Web.Security;
using Umbraco.Core.Security;
using Umbraco.Core.Services;
namespace Umbraco.Core.Models.Membership
{
internal static class MembershipExtensions
internal static class MembershipUserExtensions
{
internal static UmbracoMembershipMember AsConcreteMembershipUser(this IMembershipUser member, string providerName)
{
@@ -32,11 +33,12 @@ namespace Umbraco.Core.Models.Membership
{
if (_scenario.HasValue == false)
{
if (System.Web.Security.Membership.Provider.Name == Constants.Conventions.Member.UmbracoMemberProviderName)
var provider = MembershipProviderExtensions.GetMembersMembershipProvider();
if (provider.IsUmbracoMembershipProvider())
{
return MembershipScenario.NativeUmbraco;
}
var memberType = ApplicationContext.Current.Services.MemberTypeService.GetMemberType(Constants.Conventions.MemberTypes.Member);
var memberType = ApplicationContext.Current.Services.MemberTypeService.Get(Constants.Conventions.MemberTypes.DefaultAlias);
return memberType != null
? MembershipScenario.CustomProviderWithUmbracoLink
: MembershipScenario.StandaloneCustomProvider;
+130 -86
View File
@@ -5,8 +5,9 @@ using System.Collections.Specialized;
using System.Linq;
using System.Reflection;
using System.Runtime.Serialization;
using Umbraco.Core.Configuration;
using Umbraco.Core.Models.EntityBase;
using Umbraco.Core.Persistence.Mappers;
namespace Umbraco.Core.Models.Membership
{
@@ -19,46 +20,55 @@ namespace Umbraco.Core.Models.Membership
/// </remarks>
[Serializable]
[DataContract(IsReference = true)]
internal class User : TracksChangesEntityBase, IUser
public class User : Entity, IUser
{
public User(IUserType userType)
{
if (userType == null) throw new ArgumentNullException("userType");
_userType = userType;
_defaultPermissions = _userType.Permissions;
//Groups = new List<object> { userType };
SessionTimeout = 60;
_sectionCollection = new ObservableCollection<string>();
_addedSections = new List<string>();
_removedSections = new List<string>();
_language = GlobalSettings.DefaultUILanguage;
_sectionCollection.CollectionChanged += SectionCollectionChanged;
_isApproved = true;
_isLockedOut = false;
_startContentId = -1;
_startMediaId = -1;
//cannot be null
_rawPasswordValue = "";
}
public User(string name, string email, string username, string password, IUserType userType)
public User(string name, string email, string username, string rawPasswordValue, IUserType userType)
: this(userType)
{
_name = name;
_email = email;
_username = username;
_password = password;
_rawPasswordValue = rawPasswordValue;
_isApproved = true;
_isLockedOut = false;
_startContentId = -1;
_startMediaId = -1;
}
private readonly IUserType _userType;
private bool _hasIdentity;
private object _id;
private IUserType _userType;
private string _name;
private Type _userTypeKey;
private readonly List<string> _addedSections;
private readonly List<string> _removedSections;
private readonly ObservableCollection<string> _sectionCollection;
private List<string> _addedSections;
private List<string> _removedSections;
private ObservableCollection<string> _sectionCollection;
private int _sessionTimeout;
private int _startContentId;
private int _startMediaId;
private string _username;
private string _email;
private string _password;
private Guid _key;
private string _rawPasswordValue;
private bool _isApproved;
private bool _isLockedOut;
private string _language;
@@ -69,44 +79,19 @@ namespace Umbraco.Core.Models.Membership
private static readonly PropertyInfo StartContentIdSelector = ExpressionHelper.GetPropertyInfo<User, int>(x => x.StartContentId);
private static readonly PropertyInfo StartMediaIdSelector = ExpressionHelper.GetPropertyInfo<User, int>(x => x.StartMediaId);
private static readonly PropertyInfo AllowedSectionsSelector = ExpressionHelper.GetPropertyInfo<User, IEnumerable<string>>(x => x.AllowedSections);
private static readonly PropertyInfo IdSelector = ExpressionHelper.GetPropertyInfo<User, object>(x => x.Id);
private static readonly PropertyInfo NameSelector = ExpressionHelper.GetPropertyInfo<User, string>(x => x.Name);
private static readonly PropertyInfo UserTypeKeySelector = ExpressionHelper.GetPropertyInfo<User, Type>(x => x.ProviderUserKeyType);
private static readonly PropertyInfo UsernameSelector = ExpressionHelper.GetPropertyInfo<User, string>(x => x.Username);
private static readonly PropertyInfo EmailSelector = ExpressionHelper.GetPropertyInfo<User, string>(x => x.Email);
private static readonly PropertyInfo PasswordSelector = ExpressionHelper.GetPropertyInfo<User, string>(x => x.Password);
private static readonly PropertyInfo PasswordSelector = ExpressionHelper.GetPropertyInfo<User, string>(x => x.RawPasswordValue);
private static readonly PropertyInfo IsLockedOutSelector = ExpressionHelper.GetPropertyInfo<User, bool>(x => x.IsLockedOut);
private static readonly PropertyInfo IsApprovedSelector = ExpressionHelper.GetPropertyInfo<User, bool>(x => x.IsApproved);
private static readonly PropertyInfo LanguageSelector = ExpressionHelper.GetPropertyInfo<User, string>(x => x.Language);
private static readonly PropertyInfo DefaultPermissionsSelector = ExpressionHelper.GetPropertyInfo<User, IEnumerable<string>>(x => x.DefaultPermissions);
private static readonly PropertyInfo DefaultToLiveEditingSelector = ExpressionHelper.GetPropertyInfo<User, bool>(x => x.DefaultToLiveEditing);
#region Implementation of IEntity
[IgnoreDataMember]
public bool HasIdentity { get { return Id != null || _hasIdentity; } }
[IgnoreDataMember]
int IEntity.Id
{
get
{
return int.Parse(Id.ToString());
}
set
{
Id = value;
_hasIdentity = true;
}
}
//this doesn't get used
[IgnoreDataMember]
public Guid Key { get; set; }
#endregion
private static readonly PropertyInfo UserTypeSelector = ExpressionHelper.GetPropertyInfo<User, IUserType>(x => x.UserType);
#region Implementation of IMembershipUser
[IgnoreDataMember]
@@ -175,16 +160,16 @@ namespace Umbraco.Core.Models.Membership
}
}
[DataMember]
public string Password
public string RawPasswordValue
{
get { return _password; }
get { return _rawPasswordValue; }
set
{
SetPropertyValueAndDetectChanges(o =>
{
_password = value;
return _password;
}, _password, PasswordSelector);
_rawPasswordValue = value;
return _rawPasswordValue;
}, _rawPasswordValue, PasswordSelector);
}
}
@@ -222,13 +207,9 @@ namespace Umbraco.Core.Models.Membership
[IgnoreDataMember]
public string PasswordQuestion { get; set; }
[IgnoreDataMember]
public string PasswordAnswer { get; set; }
public string RawPasswordAnswerValue { get; set; }
[IgnoreDataMember]
public string Comments { get; set; }
[IgnoreDataMember]
public DateTime CreateDate { get; set; }
[IgnoreDataMember]
public DateTime UpdateDate { get; set; }
public string Comments { get; set; }
[IgnoreDataMember]
public DateTime LastLoginDate { get; set; }
[IgnoreDataMember]
@@ -239,8 +220,8 @@ namespace Umbraco.Core.Models.Membership
public int FailedPasswordAttempts { get; set; }
#endregion
#region Implementation of IProfile
#region Implementation of IUser
[DataMember]
public string Name
@@ -249,17 +230,13 @@ namespace Umbraco.Core.Models.Membership
set
{
SetPropertyValueAndDetectChanges(o =>
{
_name = value;
return _name;
}, _name, NameSelector);
{
_name = value;
return _name;
}, _name, NameSelector);
}
}
#endregion
#region Implementation of IUser
public IEnumerable<string> AllowedSections
{
get { return _sectionCollection; }
@@ -267,7 +244,10 @@ namespace Umbraco.Core.Models.Membership
public void RemoveAllowedSection(string sectionAlias)
{
_sectionCollection.Remove(sectionAlias);
if (_sectionCollection.Contains(sectionAlias))
{
_sectionCollection.Remove(sectionAlias);
}
}
public void AddAllowedSection(string sectionAlias)
@@ -278,6 +258,11 @@ namespace Umbraco.Core.Models.Membership
}
}
public IProfile ProfileData
{
get { return new UserProfile(this); }
}
/// <summary>
/// Used internally to check if we need to add a section in the repository to the db
/// </summary>
@@ -354,20 +339,6 @@ namespace Umbraco.Core.Models.Membership
}
}
[DataMember]
public object Id
{
get { return _id; }
set
{
SetPropertyValueAndDetectChanges(o =>
{
_id = value;
return _id;
}, _id, IdSelector);
}
}
[DataMember]
public string Language
{
@@ -414,6 +385,19 @@ namespace Umbraco.Core.Models.Membership
public IUserType UserType
{
get { return _userType; }
set
{
if (value.HasIdentity == false)
{
throw new InvalidOperationException("Cannot assign a User Type that has not been persisted");
}
SetPropertyValueAndDetectChanges(o =>
{
_userType = value;
return _userType;
}, _userType, UserTypeSelector);
}
}
#endregion
@@ -442,21 +426,81 @@ namespace Umbraco.Core.Models.Membership
if (e.Action == NotifyCollectionChangedAction.Add)
{
//remove from the removed/added sections (since people could add/remove all they want in one request)
_removedSections.RemoveAll(s => s == e.NewItems.Cast<string>().First());
_addedSections.RemoveAll(s => s == e.NewItems.Cast<string>().First());
var item = e.NewItems.Cast<string>().First();
//add to the added sections
_addedSections.Add(e.NewItems.Cast<string>().First());
if (_addedSections.Contains(item) == false)
{
_addedSections.Add(item);
}
}
else if (e.Action == NotifyCollectionChangedAction.Remove)
{
//remove from the removed/added sections (since people could add/remove all they want in one request)
_removedSections.RemoveAll(s => s == e.OldItems.Cast<string>().First());
_addedSections.RemoveAll(s => s == e.OldItems.Cast<string>().First());
var item = e.OldItems.Cast<string>().First();
//add to the added sections
_removedSections.Add(e.OldItems.Cast<string>().First());
if (_removedSections.Contains(item) == false)
{
_removedSections.Add(item);
}
}
}
public override object DeepClone()
{
var clone = (User)base.DeepClone();
//need to create new collections otherwise they'll get copied by ref
clone._addedSections = new List<string>();
clone._removedSections = new List<string>();
clone._sectionCollection = new ObservableCollection<string>(_sectionCollection.ToList());
//re-create the event handler
clone._sectionCollection.CollectionChanged += clone.SectionCollectionChanged;
clone.ResetDirtyProperties(false);
return clone;
}
/// <summary>
/// Internal class used to wrap the user in a profile
/// </summary>
private class UserProfile : IProfile
{
private readonly IUser _user;
public UserProfile(IUser user)
{
_user = user;
}
public object Id
{
get { return _user.Id; }
set { _user.Id = (int)value; }
}
public string Name
{
get { return _user.Name; }
set { _user.Name = value; }
}
protected bool Equals(UserProfile other)
{
return _user.Equals(other._user);
}
public override bool Equals(object obj)
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
if (obj.GetType() != this.GetType()) return false;
return Equals((UserProfile) obj);
}
public override int GetHashCode()
{
return _user.GetHashCode();
}
}
}
+1 -1
View File
@@ -5,7 +5,7 @@ using System.Text;
namespace Umbraco.Core.Models
{
internal class Notification
public class Notification
{
public Notification(int entityId, int userId, string action, Guid entityType)
{
+15 -3
View File
@@ -5,10 +5,17 @@
/// </summary>
public class PreValue
{
public PreValue(int id, string value, int sortOrder)
{
Id = id;
Value = value;
SortOrder = sortOrder;
}
public PreValue(int id, string value)
{
Value = value;
Id = id;
Id = id;
Value = value;
}
public PreValue(string value)
@@ -19,11 +26,16 @@
/// <summary>
/// The value stored for the pre-value field
/// </summary>
public string Value { get; private set; }
public string Value { get; set; }
/// <summary>
/// The database id for the pre-value field value
/// </summary>
public int Id { get; private set; }
/// <summary>
/// The sort order stored for the pre-value field value
/// </summary>
public int SortOrder { get; private set; }
}
}
+20 -4
View File
@@ -13,7 +13,7 @@ namespace Umbraco.Core.Models
[DataContract(IsReference = true)]
public class Property : Entity
{
private readonly PropertyType _propertyType;
private PropertyType _propertyType;
private Guid _version;
private object _value;
private readonly PropertyTags _tagSupport = new PropertyTags();
@@ -44,7 +44,7 @@ namespace Umbraco.Core.Models
private static readonly PropertyInfo ValueSelector = ExpressionHelper.GetPropertyInfo<Property, object>(x => x.Value);
private static readonly PropertyInfo VersionSelector = ExpressionHelper.GetPropertyInfo<Property, Guid>(x => x.Version);
/// <summary>
/// Returns the instance of the tag support, by default tags are not enabled
/// </summary>
@@ -68,9 +68,14 @@ namespace Umbraco.Core.Models
/// <summary>
/// Returns the DatabaseType that the underlaying DataType is using to store its values
/// </summary>
/// <remarks>Only used internally when saving the property value</remarks>
/// <remarks>
/// Only used internally when saving the property value.
/// </remarks>
[IgnoreDataMember]
internal DataTypeDatabaseType DataTypeDatabaseType { get { return _propertyType.DataTypeDatabaseType; } }
internal DataTypeDatabaseType DataTypeDatabaseType
{
get { return _propertyType.DataTypeDatabaseType; }
}
/// <summary>
/// Returns the PropertyType, which this Property is based on
@@ -151,5 +156,16 @@ namespace Umbraco.Core.Models
{
return _propertyType.IsPropertyValueValid(value);
}
public override object DeepClone()
{
var clone = (Property)base.DeepClone();
//need to manually assign since this is a readonly property
clone._propertyType = (PropertyType)PropertyType.DeepClone();
clone.ResetDirtyProperties(false);
return clone;
}
}
}
+16 -1
View File
@@ -5,6 +5,7 @@ using System.Collections.Specialized;
using System.Linq;
using System.Runtime.Serialization;
using System.Threading;
using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Models
{
@@ -13,7 +14,7 @@ namespace Umbraco.Core.Models
/// </summary>
[Serializable]
[DataContract(IsReference = true)]
public class PropertyCollection : KeyedCollection<string, Property>, INotifyCollectionChanged
public class PropertyCollection : KeyedCollection<string, Property>, INotifyCollectionChanged, IDeepCloneable
{
private readonly ReaderWriterLockSlim _addLocker = new ReaderWriterLockSlim();
internal Action OnAdd;
@@ -195,5 +196,19 @@ namespace Umbraco.Core.Models
}
}
}
/// <summary>
/// Create a deep clone of this property collection
/// </summary>
/// <returns></returns>
public object DeepClone()
{
var newList = new PropertyCollection();
foreach (var p in this)
{
newList.Add((Property)p.DeepClone());
}
return newList;
}
}
}
+3 -32
View File
@@ -17,38 +17,9 @@ namespace Umbraco.Core.Models
/// <returns>Xml of the property and its value</returns>
public static XElement ToXml(this Property property)
{
return property.ToXml(property.PropertyType, ApplicationContext.Current.Services.DataTypeService);
}
/// <summary>
/// Creates the xml representation for the <see cref="Property"/> object
/// </summary>
/// <param name="property"><see cref="Property"/> to generate xml for</param>
/// <param name="propertyType"></param>
/// <param name="dataTypeService"></param>
/// <returns>Xml of the property and its value</returns>
internal static XElement ToXml(this Property property, PropertyType propertyType, IDataTypeService dataTypeService)
{
var nodeName = UmbracoConfig.For.UmbracoSettings().Content.UseLegacyXmlSchema ? "data" : property.Alias.ToSafeAlias();
var xElement = new XElement(nodeName);
//Add the property alias to the legacy schema
if (UmbracoConfig.For.UmbracoSettings().Content.UseLegacyXmlSchema)
{
var a = new XAttribute("alias", property.Alias.ToSafeAlias());
xElement.Add(a);
}
//Get the property editor for thsi property and let it convert it to the xml structure
var propertyEditor = PropertyEditorResolver.Current.GetByAlias(property.PropertyType.PropertyEditorAlias);
if (propertyEditor != null)
{
var xmlValue = propertyEditor.ValueEditor.ConvertDbToXml(property, propertyType, dataTypeService);
xElement.Add(xmlValue);
}
return xElement;
var xmlSerializer = new EntityXmlSerializer();
return xmlSerializer.Serialize(ApplicationContext.Current.Services.DataTypeService, property);
}
}
}
+1 -17
View File
@@ -109,23 +109,6 @@ namespace Umbraco.Core.Models
}
}
internal PropertyGroup Clone()
{
var clone = (PropertyGroup) this.MemberwiseClone();
var collection = new PropertyTypeCollection();
foreach (var propertyType in this.PropertyTypes)
{
var property = propertyType.Clone();
property.ResetIdentity();
property.ResetDirtyProperties(false);
collection.Add(property);
}
clone.PropertyTypes = collection;
clone.ResetIdentity();
clone.ResetDirtyProperties(false);
return clone;
}
/// <summary>
/// Sets the ParentId from the lazy integer id
/// </summary>
@@ -159,5 +142,6 @@ namespace Umbraco.Core.Models
//Calculate the hash code for the product.
return hashName ^ hashId;
}
}
}
@@ -5,6 +5,7 @@ using System.Collections.Specialized;
using System.Linq;
using System.Runtime.Serialization;
using System.Threading;
using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Models
{
@@ -13,9 +14,10 @@ namespace Umbraco.Core.Models
/// </summary>
[Serializable]
[DataContract]
public class PropertyGroupCollection : KeyedCollection<string, PropertyGroup>, INotifyCollectionChanged
public class PropertyGroupCollection : KeyedCollection<string, PropertyGroup>, INotifyCollectionChanged, IDeepCloneable
{
private readonly ReaderWriterLockSlim _addLocker = new ReaderWriterLockSlim();
internal Action OnAdd;
internal PropertyGroupCollection()
@@ -131,5 +133,15 @@ namespace Umbraco.Core.Models
CollectionChanged(this, args);
}
}
public object DeepClone()
{
var newGroup = new PropertyGroupCollection();
foreach (var p in this)
{
newGroup.Add((PropertyGroup)p.DeepClone());
}
return newGroup;
}
}
}
+41 -14
View File
@@ -5,6 +5,7 @@ using System.Text.RegularExpressions;
using Umbraco.Core.Models.EntityBase;
using Umbraco.Core.Persistence;
using Umbraco.Core.PropertyEditors;
using Umbraco.Core.Strings;
namespace Umbraco.Core.Models
{
@@ -15,6 +16,7 @@ namespace Umbraco.Core.Models
[DataContract(IsReference = true)]
public class PropertyType : Entity, IEquatable<PropertyType>
{
private readonly bool _isExplicitDbType;
private string _name;
private string _alias;
private string _description;
@@ -30,16 +32,29 @@ namespace Umbraco.Core.Models
public PropertyType(IDataTypeDefinition dataTypeDefinition)
{
if(dataTypeDefinition.HasIdentity)
DataTypeDefinitionId = dataTypeDefinition.Id;
_dataTypeDefinitionId = dataTypeDefinition.Id;
PropertyEditorAlias = dataTypeDefinition.PropertyEditorAlias;
DataTypeDatabaseType = dataTypeDefinition.DatabaseType;
_propertyEditorAlias = dataTypeDefinition.PropertyEditorAlias;
_dataTypeDatabaseType = dataTypeDefinition.DatabaseType;
}
internal PropertyType(string propertyEditorAlias, DataTypeDatabaseType dataTypeDatabaseType)
: this(propertyEditorAlias, dataTypeDatabaseType, false)
{
PropertyEditorAlias = propertyEditorAlias;
DataTypeDatabaseType = dataTypeDatabaseType;
}
/// <summary>
/// Used internally to assign an explicity database type for this property type regardless of what the underlying data type/property editor is.
/// </summary>
/// <param name="propertyEditorAlias"></param>
/// <param name="dataTypeDatabaseType"></param>
/// <param name="isExplicitDbType"></param>
internal PropertyType(string propertyEditorAlias, DataTypeDatabaseType dataTypeDatabaseType, bool isExplicitDbType)
{
_isExplicitDbType = isExplicitDbType;
_propertyEditorAlias = propertyEditorAlias;
_dataTypeDatabaseType = dataTypeDatabaseType;
}
private static readonly PropertyInfo NameSelector = ExpressionHelper.GetPropertyInfo<PropertyType, string>(x => x.Name);
@@ -82,7 +97,7 @@ namespace Umbraco.Core.Models
{
SetPropertyValueAndDetectChanges(o =>
{
_alias = value;
_alias = value.ToCleanString(CleanStringType.Alias | CleanStringType.UmbracoCase);
return _alias;
}, _alias, AliasSelector);
}
@@ -165,6 +180,9 @@ namespace Umbraco.Core.Models
get { return _dataTypeDatabaseType; }
set
{
//don't allow setting this if an explicit declaration has been made in the ctor
if (_isExplicitDbType) return;
SetPropertyValueAndDetectChanges(o =>
{
_dataTypeDatabaseType = value;
@@ -388,7 +406,9 @@ namespace Umbraco.Core.Models
}
}
//TODO: We must ensure that the property value can actually be saved based on the specified database type
//TODO Add PropertyEditor validation when its relevant to introduce
/*if (value is IEditorModel && DataTypeControlId != Guid.Empty)
{
@@ -402,14 +422,6 @@ namespace Umbraco.Core.Models
return true;
}
internal PropertyType Clone()
{
var clone = (PropertyType) MemberwiseClone();
clone.ResetIdentity();
clone.ResetDirtyProperties(false);
return clone;
}
public bool Equals(PropertyType other)
{
//Check whether the compared object is null.
@@ -433,5 +445,20 @@ namespace Umbraco.Core.Models
//Calculate the hash code for the product.
return hashName ^ hashAlias;
}
public override object DeepClone()
{
var clone = (PropertyType)base.DeepClone();
//need to manually assign the Lazy value as it will not be automatically mapped
if (PropertyGroupId != null)
{
clone._propertyGroupId = new Lazy<int>(() => PropertyGroupId.Value);
}
clone.ResetDirtyProperties(false);
return clone;
}
}
}
@@ -5,6 +5,7 @@ using System.Collections.Specialized;
using System.Linq;
using System.Runtime.Serialization;
using System.Threading;
using Umbraco.Core.Models.EntityBase;
namespace Umbraco.Core.Models
{
@@ -13,9 +14,12 @@ namespace Umbraco.Core.Models
/// </summary>
[Serializable]
[DataContract]
public class PropertyTypeCollection : KeyedCollection<string, PropertyType>, INotifyCollectionChanged
public class PropertyTypeCollection : KeyedCollection<string, PropertyType>, INotifyCollectionChanged, IDeepCloneable
{
[IgnoreDataMember]
private readonly ReaderWriterLockSlim _addLocker = new ReaderWriterLockSlim();
[IgnoreDataMember]
internal Action OnAdd;
internal PropertyTypeCollection()
@@ -131,5 +135,15 @@ namespace Umbraco.Core.Models
CollectionChanged(this, args);
}
}
public object DeepClone()
{
var newGroup = new PropertyTypeCollection();
foreach (var p in this)
{
newGroup.Add((PropertyType)p.DeepClone());
}
return newGroup;
}
}
}

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