Commit Graph

330 Commits

Author SHA1 Message Date
Stephan 3121ea6111 Merge branch 'dev-v7.6' into temp-u4-9462 2017-03-15 13:48:27 +01:00
Shannon df04100ff6 Merge remote-tracking branch 'refs/remotes/origin/dev-v7' into dev-v7.6
# Conflicts:
#	build/UmbracoVersion.txt
#	src/SolutionInfo.cs
#	src/Umbraco.Core/Configuration/UmbracoVersion.cs
#	src/Umbraco.Core/Persistence/Querying/ExpressionVisitorBase.cs
#	src/Umbraco.Core/Persistence/Querying/SqlExpressionExtensions.cs
#	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
#	src/Umbraco.Core/Persistence/Repositories/EntityRepository.cs
#	src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs
#	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
#	src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs
#	src/Umbraco.Core/Services/ContentService.cs
#	src/Umbraco.Core/Services/MediaService.cs
#	src/Umbraco.Core/Umbraco.Core.csproj
#	src/Umbraco.Tests/Persistence/DatabaseContextTests.cs
#	src/Umbraco.Tests/Umbraco.Tests.csproj
#	src/Umbraco.Web.UI.Client/src/less/tree.less
#	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
#	src/Umbraco.Web/Editors/EntityController.cs
#	src/Umbraco.Web/Editors/MediaController.cs
2017-03-10 10:40:28 +01:00
Stephan 6439e2fdd0 Merge dev-v7.6 into temp-u4-9462 2017-03-09 15:29:26 +01:00
Emil Wangaa 0f535f233e ContentService.GetPagedChildren should also only get children 2017-03-03 14:15:04 +01:00
Shannon 6c271e7af9 Fixes issue with U4-9456 when we use the withCache flag we do not add that to the defs collection so an error would occur if one was resolved from cache. 2017-03-02 16:54:25 +01:00
Stephan 4d24e7bef8 U4-9462 - more units of work cleanup 2017-02-21 13:19:58 +01:00
Stephan 08c8b84a10 U4-9462 - cleanup units of work, code, fixmes 2017-02-21 13:19:58 +01:00
Stephan 507d7dd4f0 Scope - forgot to complete some scopes 2017-02-14 11:11:40 +01:00
Stephan 67fc8b6215 Scope - fix media files deletion 2017-02-11 09:55:32 +01:00
Shannon b7578e2b98 fixes tests 2017-02-09 12:07:16 +11:00
Shannon 97e8973cbd Ensures that the RelateOnTrashHandler doesn't attempt to create a relationship for an item that doesn't exist 2017-02-09 11:40:13 +11:00
Shannon 2dc45c3b9f Tons of code duplication removed, streamlines the content, media and member repositories to use the same paged methods and filtering mechanism (much bettter), adds some tests, creates a marker interface for IContentServiceBase so we can use extension methods for now to de-duplicate some of the code between media and content services 2017-02-09 10:34:40 +11:00
Shannon 4feb876463 Fixes issues of deleting a content item and the trashing events raised for content/media that is going to be deleted anyways, adds tests to support. Fixes MediaService to not delete the xml directly and instead rely on it's repository to do that (which is the correct way), streamlines both content/media service logic to be the same (need to start sharing code!) 2017-02-09 01:47:04 +11:00
Shannon fb02a5b06d Fixes issue of removing content types in bulk (like when removing a package) and having the trashed event being raised for what will end up being a deleted node, Fixes a bug with the (very silly) extension methods for content types, removes singleton accessors from these (very silly) extension methods - which actually never worked for media types! 2017-02-08 21:59:16 +11:00
Shannon e58d9a9535 Fixing tests, fixes PublishingStrategy to hvae the scope provider passed in 2017-02-07 14:40:45 +11:00
Shannon 3fa7c4d7ef Removes POC class, fixes content service trash/move events so there's not ambiguous 2017-02-07 14:08:55 +11:00
Shannon 8ae700eedf code formatting and merge fixing 2017-02-03 12:23:32 +11:00
Shannon 411bbcc192 Merge branch 'refs/heads/dev-v7.6' into temp-u4-9322
# Conflicts:
#	build/UmbracoVersion.txt
#	src/SolutionInfo.cs
#	src/Umbraco.Core/Configuration/UmbracoVersion.cs
#	src/Umbraco.Core/Services/ContentService.cs
#	src/Umbraco.Core/Services/ContentTypeService.cs
#	src/Umbraco.Core/Services/DataTypeService.cs
#	src/Umbraco.Core/Services/MacroService.cs
#	src/Umbraco.Core/Services/MediaService.cs
#	src/Umbraco.Core/Services/MemberService.cs
#	src/Umbraco.Core/Services/MemberTypeService.cs
#	src/Umbraco.Core/Services/UserService.cs
#	src/Umbraco.Web/Umbraco.Web.csproj
2017-02-03 12:14:38 +11:00
Stephan 6dc34e1167 U4-9322 - cleanup EventExtensions 2017-01-31 10:37:37 +01:00
Stephan 798105998e U4-9322 - begin refactoring and fixing events 2017-01-27 18:17:21 +01:00
Stephan f4994a5133 Merge temp-u4-9322 (Shan Events) into temp-u4-9322a (Steph) - builds 2017-01-27 11:42:54 +01:00
Stephan 6bbfb65100 Merge temp-u4-9322 (Shan Events) into temp-u4-9322a (Steph) 2017-01-26 18:30:00 +01:00
Stephan 4fc3398e49 U4-9322 - refactor UnitOfWork pattern 2017-01-25 13:34:41 +01:00
Shannon c5033710ca Updates all ambigous event raising when the event finder cannot determine the name based on the args, all tests pass apart from 3 now 2017-01-25 18:44:29 +11:00
Shannon ac54affa57 Refactor IPublishingStrategy, create IPublishingStrategy2 as a work around, adds EventMessages to IScopeUnitOfWork, ensures all events raised with IPublishingStrategy are done with uow 2017-01-25 16:49:44 +11:00
Shannon f7d7a43720 Fixes BulkInsertRecords to not require a trans , removes inner trans from PermissionRepository, fixes up events in PermissionRepository and MemberGroupRepository, fixes up uow in UserService 2017-01-25 15:15:28 +11:00
Shannon 44fc8be49e Changes back to "path" default sorting but updates the UmbracoContentIndexer to ensure it's sorted by umbracoNode.id 2017-01-24 00:35:17 +11:00
Shannon 55eb996c19 Adds a couple needed hack methods, updates ContentService to have the proper event emmitting without any nested uow's and ensuring that readonly uow's are committed. 2017-01-23 22:16:27 +11:00
Shannon ac4de99f30 Initial commit of changing all IsRaisedEventCancelled to use the event manager and inside of a uow 2017-01-23 20:48:51 +11:00
Shannon 2a4e73c650 Reduced allocations for the Media/Content/Property Factories since we don't need to create new objects every time we want to map values.
Changes default sort order for paging from Path to umbracoNode.id since we have no index on Path and it doesn't make a lot of sense.
Fixes obsolete warnings for various Sql usages.
Reduces the amount of DeepClone calls required when looking up a content type for a content item, even though these are cached they are still deep cloned out of the cache.
Fixes the main issue of having nearly 100,000 rows of unsorted property data and then having to query those rows for every document being built, the re-iteration of these rows causes a lot of overhead and is unecessary, instead we ensure the property data set and the document data set is sorted by node id, then use a stored index to continue looking up the property data for the next content item found.
2017-01-23 00:40:24 +11:00
Shannon 9965aa461a Updates ContentService to raise events all with the EventManager 2017-01-19 17:18:06 +11:00
Shannon 994f91e496 Creates IScopeUnitOfWork and IScopeUnitOfWorkProvider as internal along with ScopeRepositoryService which all services inherit from, this is maintaining backwards compat too 2017-01-19 15:37:17 +11:00
Shannon db414e8045 Fixes issue with implicitly non-published items getting into the index, fixes issue with sql syntax columns (i.e for mysql) for queries that query the cmsContentXml table 2017-01-19 12:51:56 +11:00
Shannon 24c7dee5d0 U4-9395 When rebuilding content indexes that don't support unpublished content and member indexes, use the cmsContentXml table as the data source 2017-01-17 17:57:49 +11:00
Claus 7d4a9998ca U4-9377 It is possible to create/save entities with a blank names by using the services directly
ensuring that when trying to save an entity with an empty name, directly through a service, an exception will be thrown.
2017-01-13 11:45:49 +01:00
Shannon 8be0f68390 Adds logic to validate an entity's path when it is used to GetDescendants, adds logic to fix an entity's path when it's state is going to be persisted when GetDescendants is used (i.e. MoveToRecycleBin), added this logic to Media too, adds unit tests to support 2017-01-05 10:29:03 +11:00
Shannon b413b7b5af Lazily creates the static queries instead of eagerly, this fixes an issue of if these services are accessed before Umbraco has booted 2016-12-08 12:48:44 +11:00
Shannon 3f609fdf90 Moves a few queries to re-used query instances 2016-10-27 18:03:13 +02:00
Shannon 2cd6427958 Fixes more issues with notifications which weren't sending properly do to a i++ instead of a ++1, have refactored that to read better. Also fixes up performance issues since we were returning every single fully resolved IContent for all versions when all we need is the top 2 version ids, have added methods to do that plus a unit test. Have tested the emails and the diffs and they all work. 2016-10-05 18:30:03 +02:00
Shannon 876f61ac27 U4-8788 ContentService.GetByIds() returns items in different order
U4-8937 ContentController.PostSort is not honouring the passed sorted ids.
2016-10-05 11:20:48 +02:00
Shannon 42666403a6 Fixes regression issue with building the xml cache file, moves the logic to query and build the xml document for the cache to the repository level. 2016-08-05 17:41:00 +02:00
Shannon 628ce5ea1f Backports some changes from v8 so that we can perform a nice strongly typed query with paging - this is then used for the content indexer to index content via the db for published content instead of the xml cache system. This was already done in v8 but have no backported the logic and fixed up the unit tests. When merging with v8 we will most likely just keep all v8 stuff and discard these changes, but we'll need to compare just in case. All tests pass and re-indexing is working as expected. Also updated the paging count from 1000 to 5000 for reindexing. 2016-05-26 15:30:40 +02:00
Shannon e2954fbf39 refactors interface methods so they are not breaking existing signatures and not overlapping based on optional parameters 2016-04-06 13:23:39 +02:00
Shannon c20984dca7 Merge branch 'dev-v7' of https://github.com/aadfPT/Umbraco-CMS into aadfPT-dev-v7
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs
	src/Umbraco.Core/Services/ContentService.cs
	src/Umbraco.Core/Services/IContentService.cs
	src/Umbraco.Core/Services/IMediaService.cs
	src/Umbraco.Core/Services/IMemberService.cs
	src/Umbraco.Core/Services/MediaService.cs
	src/Umbraco.Core/Services/MemberService.cs
	src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs
	src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs
	src/Umbraco.Web.UI.Client/src/common/resources/content.resource.js
	src/Umbraco.Web.UI.Client/src/common/resources/media.resource.js
	src/Umbraco.Web.UI.Client/src/common/resources/member.resource.js
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/layouts/list/list.listviewlayout.controller.js
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js
	src/Umbraco.Web/Editors/ContentController.cs
	src/Umbraco.Web/Editors/MediaController.cs
	src/Umbraco.Web/Editors/MemberController.cs
	src/Umbraco.Web/WebApi/Filters/DisableBrowserCacheAttribute.cs
	src/UmbracoExamine/UmbracoMemberIndexer.cs
2016-04-05 16:20:39 +02:00
Shannon 80d7443bd3 fix build 2016-04-05 16:00:49 +02:00
Shannon ef3f15ec9b Merge branch 'u4-6003b' of https://github.com/AndyButland/Umbraco-CMS into AndyButland-u4-6003b
Conflicts:
	src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IContentRepository.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IMediaRepository.cs
	src/Umbraco.Core/Persistence/Repositories/Interfaces/IMemberRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Services/ContentService.cs
	src/Umbraco.Core/Services/IContentService.cs
	src/Umbraco.Core/Services/IMediaService.cs
	src/Umbraco.Core/Services/IMemberService.cs
	src/Umbraco.Core/Services/MediaService.cs
	src/Umbraco.Core/Services/MemberService.cs
	src/Umbraco.Tests/Persistence/Repositories/ContentRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs
	src/Umbraco.Tests/UmbracoExamine/IndexInitializer.cs
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js
	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html
	src/Umbraco.Web/Editors/MemberController.cs
	src/UmbracoExamine/UmbracoMemberIndexer.cs
2016-04-05 15:31:33 +02:00
André Ferreira bd2a40d214 U4-6003 List View - Order By Custom Property Fix
Original work done on https://github.com/umbraco/Umbraco-CMS/pull/711 but ported to the latest version

Content below for reference
With the current implementation of the list view you can only sort by system columns (Name, SortOrder etc.) and not custom columns you have added to your document types. This PR allows that.

The crux of it is a sub-query added to the ORDER BY clause when we are ordering by a custom field. This looks up the field's value from the most recent content version.

Provided here and not in the previous pull request is:

MySQL support
Have done some performance testing. On a local laptop with 1000 nodes in a list view, it's sorting in around 220-250ms. It's a little slower that sorting on native properties like node name, but still perfectly usable - there's no significant delay you see in use.
Please note also:

GetPagedResultsByQuery() in VersionableRepositoryBase was previously doing an ORDER BY in SQL and then repeating this via LINQ to Objects. I couldn't see that this second ordering was necessary so removed it, but wanted to flag here in case I've missed something around why this was necessary.
The PR also includes small amends to fix or hide sorting on a couple of the default columns for the member amd media list views.
2016-04-01 11:28:51 +01:00
Shannon e423864781 Merge remote-tracking branch 'origin/master-v7' into dev-v7
Conflicts:
	build/UmbracoVersion.txt
	src/SolutionInfo.cs
	src/Umbraco.Core/Cache/FullDataSetRepositoryCachePolicy.cs
	src/Umbraco.Core/Cache/FullDataSetRepositoryCachePolicyFactory.cs
	src/Umbraco.Core/Configuration/UmbracoVersion.cs
	src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs
	src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/DomainRepository.cs
	src/Umbraco.Core/Persistence/Repositories/LanguageRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs
	src/Umbraco.Core/Persistence/Repositories/PublicAccessRepository.cs
	src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs
	src/Umbraco.Core/Umbraco.Core.csproj
	src/Umbraco.Tests/Cache/FullDataSetCachePolicyTests.cs
	src/Umbraco.Web.UI.Client/src/common/directives/components/grid/grid.rte.directive.js
	src/Umbraco.Web.UI.Client/src/less/hacks.less
	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
	src/Umbraco.Web/WebBootManager.cs
2016-02-03 12:30:11 +01:00
Shannon a6093f41bd Fixes installer login for user and adds notes 2016-01-28 18:02:22 +01:00
Shannon dbb7e3825d Fixes events for containers 2016-01-27 15:22:58 +01:00