diff --git a/AdminUI/LearningHub.Nhs.AdminUI/Scripts/vuesrc/content-structure/treeItem.vue b/AdminUI/LearningHub.Nhs.AdminUI/Scripts/vuesrc/content-structure/treeItem.vue index 7844cd81d..2070710d4 100644 --- a/AdminUI/LearningHub.Nhs.AdminUI/Scripts/vuesrc/content-structure/treeItem.vue +++ b/AdminUI/LearningHub.Nhs.AdminUI/Scripts/vuesrc/content-structure/treeItem.vue @@ -48,7 +48,7 @@ Create reference to this folder {{item.nodePathDisplayVersionId == 0 ? "Create" : "Edit"}} reference details Add a reference here - Remove this reference + Remove this reference @@ -166,7 +166,7 @@ Move Create reference to this resource {{item.resourceReferenceDisplayVersionId == 0 ? "Create" : "Edit"}} reference details - Remove this reference + Remove this reference @@ -253,6 +253,7 @@ canMoveResourceDown: false, canMoveResourceUp: false, canMoveResource: false, + canRemove: false, }; }, computed: { @@ -397,6 +398,7 @@ this.canEditNode = true; this.canMoveNode = this.item.parent != null; this.canEditFolderReference = this.item.nodePathDisplayVersionId > 0 || (this.item.nodePaths && this.item.nodePaths.length > 1); + this.canRemove = this.item.primaryCatalogueNodeId != this.$store.state.contentStructureState.rootNode.nodeId; }, recomputeResourceOptions: function () { this.canMoveResourceUp = this.item.displayOrder > 1; diff --git a/LearningHub.Nhs.WebUI/Scripts/vuesrc/content-structure-admin/treeItem.vue b/LearningHub.Nhs.WebUI/Scripts/vuesrc/content-structure-admin/treeItem.vue index fa8627433..5c5f8e014 100644 --- a/LearningHub.Nhs.WebUI/Scripts/vuesrc/content-structure-admin/treeItem.vue +++ b/LearningHub.Nhs.WebUI/Scripts/vuesrc/content-structure-admin/treeItem.vue @@ -48,7 +48,7 @@ Create reference to this folder {{item.nodePathDisplayVersionId == 0 ? "Create" : "Edit"}} reference details Add a reference here - Remove this reference + Remove this reference @@ -166,7 +166,7 @@ Move Create reference to this resource {{item.resourceReferenceDisplayVersionId == 0 ? "Create" : "Edit"}} reference details - Remove this reference + Remove this reference @@ -253,6 +253,7 @@ canMoveResourceDown: false, canMoveResourceUp: false, canMoveResource: false, + canRemove: false, }; }, computed: { @@ -397,6 +398,7 @@ this.canEditNode = true; this.canMoveNode = this.item.parent != null; this.canEditFolderReference = this.item.nodePathDisplayVersionId > 0 || (this.item.nodePaths && this.item.nodePaths.length > 1); + this.canRemove = this.item.primaryCatalogueNodeId != this.$store.state.contentStructureState.rootNode.nodeId; }, recomputeResourceOptions: function () { this.canMoveResourceUp = this.item.displayOrder > 1; diff --git a/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.sqlproj b/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.sqlproj index 80d3d47c4..c18fe1cae 100644 --- a/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.sqlproj +++ b/WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.sqlproj @@ -547,6 +547,7 @@ + diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Hierarchy/HierarchyEditPublish.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Hierarchy/HierarchyEditPublish.sql index 0afd0d97d..32c0f74e0 100644 --- a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Hierarchy/HierarchyEditPublish.sql +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Hierarchy/HierarchyEditPublish.sql @@ -589,6 +589,14 @@ BEGIN ---------------------------------------------------------- EXEC [hierarchy].[HierarchyNewNodePathForReferedCatalogue] @HierarchyEditId,@AmendUserId,@AmendDate + + ---------------------------------------------------------- + -- ResourceReference: generate new resource reference + ---------------------------------------------------------- + + EXEC [hierarchy].[HierarchyNewResourceReferenceForReferedCatalogue] @HierarchyEditId,@AmendUserId,@AmendDate + + ---------------------------------------------------------- -- NodePathNode ---------------------------------------------------------- diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Hierarchy/HierarchyNewResourceReferenceForReferedCatalogue.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Hierarchy/HierarchyNewResourceReferenceForReferedCatalogue.sql new file mode 100644 index 000000000..a5524d8ec --- /dev/null +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Hierarchy/HierarchyNewResourceReferenceForReferedCatalogue.sql @@ -0,0 +1,93 @@ +------------------------------------------------------------------------------- +-- Author Sarathlal +-- Created 11-09-2024 +-- Purpose Move resource in primary catalogue after external reference should reflect secondary catalogue +-- +-- Modification History +-- 11-09-2024 SS Initial version +------------------------------------------------------------------------------- +CREATE PROCEDURE [hierarchy].[HierarchyNewResourceReferenceForReferedCatalogue] +( + @HierarchyEditId INT, + @AmendUserId INT, + @AmendDate datetimeoffset(7) +) + +AS + +BEGIN + BEGIN TRY + + BEGIN TRAN + DECLARE @NodePathId int + DECLARE @ResourceId INT + DECLARE @PrimaryCatalogueNodeId int + DECLARE @NodeId int + DECLARE @ParentNodeId int + DECLARE @NewNodePath as NVARCHAR(256) + DECLARE @ResourceReferenceId INT + DECLARE @ResourceReferenceCursor as CURSOR + SET @ResourceReferenceCursor = CURSOR FORWARD_ONLY FOR + SELECT + ResourceId, + PrimaryCatalogueNodeId, + ParentNodeId, + NodeId, + hed.NewNodePath, + NodePathId, + ResourceReferenceId + FROM + hierarchy.HierarchyEditDetail hed + WHERE + HierarchyEditId = @HierarchyEditId + AND + ( + + HierarchyEditDetailTypeId = 5 -- Resource + ) + AND ( + HierarchyEditDetailOperationId = 1 -- Add + OR + HierarchyEditDetailOperationId = 2 -- Edit + ) + AND NodeLinkId IS NULL + AND [Deleted] = 0 + OPEN @ResourceReferenceCursor; + FETCH NEXT FROM @ResourceReferenceCursor INTO @ResourceId,@PrimaryCatalogueNodeId,@ParentNodeId,@NodeId,@NewNodePath,@NodePathId,@ResourceReferenceId; + WHILE @@FETCH_STATUS = 0 + BEGIN + + INSERT INTO [resources].[ResourceReference]([ResourceId],[NodePathId],[OriginalResourceReferenceId],[IsActive],[Deleted],[CreateUserId],[CreateDate],[AmendUserId],[AmendDate]) + SELECT @ResourceId,NP.Id,@ResourceReferenceId,1,0,@AmendUserId,@AmendDate,@AmendUserId,@AmendDate + FROM + hub.[fn_Split](@NewNodePath, '\') nodeInPath + INNER JOIN hierarchy.NodePath NP ON NP.NodeId=nodeInPath.value AND CatalogueNodeId!=@PrimaryCatalogueNodeId + WHERE nodeInPath.value=@ParentNodeId + + FETCH NEXT FROM @ResourceReferenceCursor INTO @ResourceId,@PrimaryCatalogueNodeId,@ParentNodeId,@NodeId,@NewNodePath,@NodePathId,@ResourceReferenceId; + + END + + CLOSE @ResourceReferenceCursor; + DEALLOCATE @ResourceReferenceCursor; + COMMIT + + END TRY + BEGIN CATCH + DECLARE @ErrorMessage NVARCHAR(4000); + DECLARE @ErrorSeverity INT; + DECLARE @ErrorState INT; + + SELECT + @ErrorMessage = ERROR_MESSAGE(), + @ErrorSeverity = ERROR_SEVERITY(), + @ErrorState = ERROR_STATE(); + + IF @@TRANCOUNT > 0 + ROLLBACK TRAN; + + RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState); + + END CATCH +END +GO \ No newline at end of file