diff --git a/src/Umbraco.Core/Constants-Conventions.cs b/src/Umbraco.Core/Constants-Conventions.cs
index 9c069c4c2f..b22f6e2ef3 100644
--- a/src/Umbraco.Core/Constants-Conventions.cs
+++ b/src/Umbraco.Core/Constants-Conventions.cs
@@ -11,6 +11,16 @@ namespace Umbraco.Core
///
public static class Conventions
{
+ public static class PropertyTypes
+ {
+ public const string ListViewPropertyAlias = Constants.PropertyEditors.InternalGenericPropertiesPrefix + "containerView";
+ }
+
+ public static class PropertyGroups
+ {
+ public const string ListViewGroupName = "umbContainerView";
+ }
+
///
/// Constants for Umbraco Content property aliases.
///
diff --git a/src/Umbraco.Core/Models/MemberType.cs b/src/Umbraco.Core/Models/MemberType.cs
index 527e379d17..6620843ab5 100644
--- a/src/Umbraco.Core/Models/MemberType.cs
+++ b/src/Umbraco.Core/Models/MemberType.cs
@@ -42,6 +42,10 @@ namespace Umbraco.Core.Models
// leading underscores which we don't want in this case.
// see : http://issues.umbraco.org/issue/U4-3968
+ //TODO: BUT, I'm pretty sure we could do this with regards to underscores now:
+ // .ToCleanString(CleanStringType.Alias | CleanStringType.UmbracoCase)
+ // Need to ask Stephen
+
SetPropertyValueAndDetectChanges(o =>
{
_alias = value == "_umbracoSystemDefaultProtectType"
diff --git a/src/Umbraco.Core/Models/PropertyType.cs b/src/Umbraco.Core/Models/PropertyType.cs
index 28a34f0e5e..fb7e82b27e 100644
--- a/src/Umbraco.Core/Models/PropertyType.cs
+++ b/src/Umbraco.Core/Models/PropertyType.cs
@@ -95,9 +95,15 @@ namespace Umbraco.Core.Models
get { return _alias; }
set
{
+ //NOTE: WE are doing this because we don't want to do a ToSafeAlias when the alias is the special case of
+ // being prefixed with Constants.PropertyEditors.InternalGenericPropertiesPrefix
+ // which is used internally
+
SetPropertyValueAndDetectChanges(o =>
{
- _alias = value.ToCleanString(CleanStringType.Alias | CleanStringType.UmbracoCase);
+ _alias = value.StartsWith(Constants.PropertyEditors.InternalGenericPropertiesPrefix)
+ ? value
+ : value.ToCleanString(CleanStringType.Alias | CleanStringType.UmbracoCase);
return _alias;
}, _alias, AliasSelector);
}
diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
index ebf7fd1646..e3f6a2a7e5 100644
--- a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs
@@ -663,7 +663,7 @@ namespace Umbraco.Core.Persistence.Repositories
.AsQueryable();
// Now we need to ensure this result is also ordered by the same order by clause
- var orderByProperty = GetIContentPropertyNameForOrderBy(orderBy);
+ var orderByProperty = GetEntityPropertyNameForOrderBy(orderBy);
if (orderDirection == Direction.Ascending)
{
result = content.OrderBy(orderByProperty);
@@ -685,28 +685,32 @@ namespace Umbraco.Core.Persistence.Repositories
{
// Translate the passed order by field (which were originally defined for in-memory object sorting
// of ContentItemBasic instances) to the database field names.
- switch (orderBy)
+ switch (orderBy.ToUpperInvariant())
{
- case "Name":
+ case "NAME":
return "cmsDocument.text";
- case "Owner":
+ case "OWNER":
+ //TODO: This isn't going to work very nicely because it's going to order by ID, not by letter
return "umbracoNode.nodeUser";
- case "Updater":
+ case "UPDATER":
+ //TODO: This isn't going to work very nicely because it's going to order by ID, not by letter
return "cmsDocument.documentUser";
default:
return orderBy;
}
}
- private string GetIContentPropertyNameForOrderBy(string orderBy)
+ private string GetEntityPropertyNameForOrderBy(string orderBy)
{
// Translate the passed order by field (which were originally defined for in-memory object sorting
// of ContentItemBasic instances) to the IContent property names.
- switch (orderBy)
+ switch (orderBy.ToUpperInvariant())
{
- case "Owner":
+ case "OWNER":
+ //TODO: This isn't going to work very nicely because it's going to order by ID, not by letter
return "CreatorId";
- case "Updater":
+ case "UPDATER":
+ //TODO: This isn't going to work very nicely because it's going to order by ID, not by letter
return "WriterId";
default:
return orderBy;
diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/includeproperties.prevalues.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/includeproperties.prevalues.controller.js
index 8b5ad33082..d2dea98f2d 100644
--- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/includeproperties.prevalues.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/includeproperties.prevalues.controller.js
@@ -10,7 +10,7 @@ function includePropsPreValsController($rootScope, $scope, localizationService,
{ value: "updateDate", name: "Last edited" },
{ value: "updater", name: "Updated by" },
{ value: "createDate", name: "Created" },
- { value: "creator", name: "Created by" }
+ { value: "owner", name: "Created by" }
];
$scope.getLocalizedKey = function(alias) {
@@ -21,7 +21,7 @@ function includePropsPreValsController($rootScope, $scope, localizationService,
return "content_updatedBy";
case "createDate":
return "content_createDate";
- case "creator":
+ case "owner":
return "content_createBy";
}
return alias;
diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js
index 84117c5b23..4267f30a9e 100644
--- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js
@@ -28,7 +28,7 @@ function listViewController($rootScope, $scope, $routeParams, $injector, notific
totalPages: 0,
items: []
};
-
+
$scope.options = {
pageSize: $scope.model.config.pageSize ? $scope.model.config.pageSize : 10,
pageNumber: 1,
@@ -56,34 +56,6 @@ function listViewController($rootScope, $scope, $routeParams, $injector, notific
}
});
- //// Retrieve the container configuration for the content type and set options before presenting initial view
- //contentTypeResource.getContainerConfig($routeParams.id)
- // .then(function(config) {
- // if (typeof config.pageSize !== 'undefined') {
- // $scope.options.pageSize = config.pageSize;
- // }
- // if (typeof config.additionalColumns !== 'undefined') {
- // $scope.options.additionalColumns = config.additionalColumns;
- // }
- // if (typeof config.orderBy !== 'undefined') {
- // $scope.options.orderBy = config.orderBy;
- // }
- // if (typeof config.orderDirection !== 'undefined') {
- // $scope.options.orderDirection = config.orderDirection;
- // }
- // if (typeof config.allowBulkPublish !== 'undefined') {
- // $scope.options.allowBulkPublish = config.allowBulkPublish;
- // }
- // if (typeof config.allowBulkUnpublish !== 'undefined') {
- // $scope.options.allowBulkUnpublish = config.allowBulkUnpublish;
- // }
- // if (typeof config.allowBulkDelete !== 'undefined') {
- // $scope.options.allowBulkDelete = config.allowBulkDelete;
- // }
-
- // $scope.initView();
- // });
-
$scope.next = function() {
if ($scope.options.pageNumber < $scope.listViewResultSet.totalPages) {
$scope.options.pageNumber++;
@@ -313,18 +285,6 @@ function listViewController($rootScope, $scope, $routeParams, $injector, notific
}
};
- $scope.includeProperties = $scope.model.config.includeProperties ? _.map($scope.model.config.includeProperties, function(i) {
- if (!i.label)
- i.label = i.value.replace(/([A-Z]?[a-z]+)/g, '$1 ').trim(' ');
- if (typeof (i.isProperty) == "undefined")
- i.isProperty = !i.value.match("contentTypeAlias|createDate|icon|owner|published|sortOrder|updateDate|updater");
- if (!i.isProperty && !i.sortBy)
- i.sortBy = i.value.substring(0, 1).toUpperCase() + i.value.slice(1);
- // TODO: Add sort logic for custom properties.
- //else if (!i.sortBy)
- // ;
- return i;
- }) : {};
/** This ensures that the correct value is set for each item in a row, we don't want to call a function during interpolation or ng-bind as performance is really bad that way */
function setPropertyValues(result) {
@@ -400,7 +360,7 @@ function listViewController($rootScope, $scope, $routeParams, $injector, notific
return "content_updatedBy";
case "createDate":
return "content_createDate";
- case "creator":
+ case "owner":
return "content_createBy";
}
return alias;
diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html
index d80a587aca..99818bae63 100644
--- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html
+++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html
@@ -61,13 +61,6 @@
-
-
|