diff --git a/src/Umbraco.Core/Models/Rdbms/ContentVersionDto.cs b/src/Umbraco.Core/Models/Rdbms/ContentVersionDto.cs index e63d4e27da..1181f7d70d 100644 --- a/src/Umbraco.Core/Models/Rdbms/ContentVersionDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/ContentVersionDto.cs @@ -15,6 +15,7 @@ namespace Umbraco.Core.Models.Rdbms [Column("ContentId")] [ForeignKey(typeof(ContentDto), Column = "nodeId")] + [Index(IndexTypes.NonClustered, Name = "IX_cmsContentVersion_ContentId")] public int NodeId { get; set; } [Column("VersionId")] diff --git a/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs b/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs index 612084812e..c510fce210 100644 --- a/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/DocumentDto.cs @@ -16,6 +16,7 @@ namespace Umbraco.Core.Models.Rdbms public int NodeId { get; set; } [Column("published")] + [Index(IndexTypes.NonClustered, Name = "IX_cmsDocument_published")] public bool Published { get; set; } [Column("documentUser")] @@ -51,6 +52,7 @@ namespace Umbraco.Core.Models.Rdbms [Column("newest")] [Constraint(Default = "0")] + [Index(IndexTypes.NonClustered, Name = "IX_cmsDocument_newest")] public bool Newest { get; set; } [ResultColumn] diff --git a/src/Umbraco.Core/Models/Rdbms/NodeDto.cs b/src/Umbraco.Core/Models/Rdbms/NodeDto.cs index abf1f01ca1..ccbe9a1639 100644 --- a/src/Umbraco.Core/Models/Rdbms/NodeDto.cs +++ b/src/Umbraco.Core/Models/Rdbms/NodeDto.cs @@ -15,11 +15,12 @@ namespace Umbraco.Core.Models.Rdbms [Column("trashed")] [Constraint(Default = "0")] + [Index(IndexTypes.NonClustered, Name = "IX_umbracoNodeTrashed")] public bool Trashed { get; set; } [Column("parentID")] [ForeignKey(typeof(NodeDto))] - [IndexAttribute(IndexTypes.NonClustered, Name = "IX_umbracoNodeParentId")] + [Index(IndexTypes.NonClustered, Name = "IX_umbracoNodeParentId")] public int ParentId { get; set; } [Column("nodeUser")] @@ -46,7 +47,7 @@ namespace Umbraco.Core.Models.Rdbms [Column("nodeObjectType")] [NullSetting(NullSetting = NullSettings.Null)] - [IndexAttribute(IndexTypes.NonClustered, Name = "IX_umbracoNodeObjectType")] + [Index(IndexTypes.NonClustered, Name = "IX_umbracoNodeObjectType")] public Guid? NodeObjectType { get; set; } [Column("createDate")] diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AlterTagRelationsTable.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AlterTagRelationsTable.cs index 7dffece05a..35b28c577d 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AlterTagRelationsTable.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AlterTagRelationsTable.cs @@ -7,7 +7,7 @@ using Umbraco.Core.Models.Rdbms; namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSeven { - [Migration("7.0.0", 9, GlobalSettings.UmbracoMigrationName)] + [Migration("7.0.0", 8, GlobalSettings.UmbracoMigrationName)] public class AlterTagRelationsTable : MigrationBase { public override void Up() diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AlterTagsTable.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AlterTagsTable.cs index b42d983483..61747d03c7 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AlterTagsTable.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/AlterTagsTable.cs @@ -4,7 +4,7 @@ using Umbraco.Core.Configuration; namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSeven { - [Migration("7.0.0", 10, GlobalSettings.UmbracoMigrationName)] + [Migration("7.0.0", 9, GlobalSettings.UmbracoMigrationName)] public class AlterTagsTable : MigrationBase { public override void Up() diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/RemoveCmsMacroPropertyTypeTable.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/RemoveCmsMacroPropertyTypeTable.cs index cccce32ae7..5405724458 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/RemoveCmsMacroPropertyTypeTable.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSeven/RemoveCmsMacroPropertyTypeTable.cs @@ -3,7 +3,7 @@ using Umbraco.Core.Configuration; namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSeven { - [Migration("7.0.0", 8, GlobalSettings.UmbracoMigrationName)] + [Migration("7.0.0", 7, GlobalSettings.UmbracoMigrationName)] public class RemoveCmsMacroPropertyTypeTable : MigrationBase { public override void Up() diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AddChangeDocumentTypePermission.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AddChangeDocumentTypePermission.cs index d00336bf26..fa1b24d1f6 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AddChangeDocumentTypePermission.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AddChangeDocumentTypePermission.cs @@ -4,7 +4,7 @@ using Umbraco.Core.Models.Rdbms; namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSixTwoZero { - [Migration("6.2.0", 0, GlobalSettings.UmbracoMigrationName)] + [Migration("6.2.0", 1, GlobalSettings.UmbracoMigrationName)] public class AddChangeDocumentTypePermission : MigrationBase { public override void Up() diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AdditionalIndexesAndKeys.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AdditionalIndexesAndKeys.cs new file mode 100644 index 0000000000..8d93c341ca --- /dev/null +++ b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSixTwoZero/AdditionalIndexesAndKeys.cs @@ -0,0 +1,22 @@ +using System; +using Umbraco.Core.Configuration; + +namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSixTwoZero +{ + [Migration("6.2.0", 0, GlobalSettings.UmbracoMigrationName)] + public class AdditionalIndexesAndKeys : MigrationBase + { + public override void Up() + { + Create.Index("IX_umbracoNodeTrashed").OnTable("umbracoNode").OnColumn("trashed").Ascending().WithOptions().NonClustered(); + Create.Index("IX_cmsContentVersion_ContentId").OnTable("cmsContentVersion").OnColumn("ContentId").Ascending().WithOptions().NonClustered(); + Create.Index("IX_cmsDocument_published").OnTable("cmsDocument").OnColumn("published").Ascending().WithOptions().NonClustered(); + Create.Index("IX_cmsDocument_newest").OnTable("cmsDocument").OnColumn("newest").Ascending().WithOptions().NonClustered(); + } + + public override void Down() + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index a0758e19ea..9953265185 100644 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -433,6 +433,7 @@ + diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/relatedlinks/relatedlinks.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/relatedlinks/relatedlinks.controller.js index 383d000f45..845b620b94 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/relatedlinks/relatedlinks.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/relatedlinks/relatedlinks.controller.js @@ -2,6 +2,10 @@ .controller("Umbraco.PropertyEditors.RelatedLinksController", function ($rootScope, $scope, dialogService) { + if (!$scope.model.value) { + $scope.model.value = []; + } + $scope.newCaption = ''; $scope.newLink = 'http://'; $scope.newNewWindow = false; @@ -9,11 +13,11 @@ $scope.newInternalName = ''; $scope.addExternal = true; - $scope.relatedLinks = [ - { caption: 'Google', link: "http://google.com", newWindow: false, edit:false }, - { caption: 'Umbraco', link: "http://umbraco.com", newWindow: false, edit: false }, - { caption: 'Nibble', link: "http://nibble.be", newWindow: false, edit: false } - ]; + //$scope.relatedLinks = [ + // { caption: 'Google', link: "http://google.com", newWindow: false, edit:false }, + // { caption: 'Umbraco', link: "http://umbraco.com", newWindow: false, edit: false }, + // { caption: 'Nibble', link: "http://nibble.be", newWindow: false, edit: false } + //]; $scope.internal = function ($event) { var d = dialogService.contentPicker({ scope: $scope, multipicker: false, callback: select }); @@ -22,19 +26,19 @@ }; $scope.edit = function (idx) { - for (var i = 0; i < $scope.relatedLinks.length; i++) { - $scope.relatedLinks[i].edit = false; + for (var i = 0; i < $scope.model.value.length; i++) { + $scope.model.value[i].edit = false; } - $scope.relatedLinks[idx].edit = true; + $scope.model.value[idx].edit = true; }; $scope.cancelEdit = function(idx) { - $scope.relatedLinks[idx].edit = false; + $scope.model.value[idx].edit = false; }; $scope.delete = function (idx) { - $scope.relatedLinks.splice($scope.relatedLinks[idx], 1); + $scope.model.value.splice($scope.model.value[idx], 1); }; @@ -45,16 +49,18 @@ this.caption = $scope.newCaption; this.link = $scope.newLink; this.newWindow = $scope.newNewWindow; + this.edit = false; }; - $scope.relatedLinks.push(newExtLink); + $scope.model.value.push(newExtLink); } else { var newIntLink = new function () { this.caption = $scope.newCaption; this.link = $scope.newLink; this.newWindow = $scope.newNewWindow; this.internal = $scope.newInternal; + this.edit = false; }; - $scope.relatedLinks.push(newIntLink); + $scope.model.value.push(newIntLink); } $scope.newCaption = ''; $scope.newLink = 'http://'; diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/relatedlinks/relatedlinks.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/relatedlinks/relatedlinks.html index 0be042777a..c067f8f38b 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/relatedlinks/relatedlinks.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/relatedlinks/relatedlinks.html @@ -10,7 +10,7 @@ - + {{link.caption}}