Skip to content

Commit b3b7a77

Browse files
Merge pull request #579 from TechnologyEnhancedLearning/Develop/Fixes/TD-4650-Remove-this-reference-option-should-not-be-available-in-Primary-catalogue-after-adding-external-reference
TD-4650: Remove this reference" option should not be available in Primary catalogue after adding external reference
2 parents 198126e + 38bf544 commit b3b7a77

File tree

5 files changed

+110
-4
lines changed

5 files changed

+110
-4
lines changed

AdminUI/LearningHub.Nhs.AdminUI/Scripts/vuesrc/content-structure/treeItem.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
<a class="dropdown-item" v-if="!isExternalCatalogue" @click="onInitiateReferenceNode">Create reference to this folder</a>
4949
<a class="dropdown-item" v-if="canEditFolderReference" @click="onEditFolderReference">{{item.nodePathDisplayVersionId == 0 ? "Create" : "Edit"}} reference details</a>
5050
<a class="dropdown-item" v-if="!isExternalCatalogue" @click="addReference">Add a reference here</a>
51-
<a class="dropdown-item" v-if="item.isReference && !item.parent.isReference" @click="removeReference">Remove this reference</a>
51+
<a class="dropdown-item" v-if="item.isReference && !item.parent.isReference && canRemove" @click="removeReference">Remove this reference</a>
5252
</div>
5353
</div>
5454
</div>
@@ -166,7 +166,7 @@
166166
<a class="dropdown-item" v-if="canMoveResource && !isExternalCatalogue" @click="onInitiateMoveResource">Move</a>
167167
<a class="dropdown-item" v-if="!isExternalCatalogue" @click="onInitiateReferenceResource">Create reference to this resource</a>
168168
<a class="dropdown-item" v-if="canEditResourceReference" @click="onEditResourceReference">{{item.resourceReferenceDisplayVersionId == 0 ? "Create" : "Edit"}} reference details</a>
169-
<a class="dropdown-item" v-if="item.isReference && !item.parent.isReference" @click="removeReference">Remove this reference</a>
169+
<a class="dropdown-item" v-if="item.isReference && !item.parent.isReference && canRemove" @click="removeReference">Remove this reference</a>
170170
</div>
171171
</div>
172172
</div>
@@ -253,6 +253,7 @@
253253
canMoveResourceDown: false,
254254
canMoveResourceUp: false,
255255
canMoveResource: false,
256+
canRemove: false,
256257
};
257258
},
258259
computed: {
@@ -397,6 +398,7 @@
397398
this.canEditNode = true;
398399
this.canMoveNode = this.item.parent != null;
399400
this.canEditFolderReference = this.item.nodePathDisplayVersionId > 0 || (this.item.nodePaths && this.item.nodePaths.length > 1);
401+
this.canRemove = this.item.primaryCatalogueNodeId != this.$store.state.contentStructureState.rootNode.nodeId;
400402
},
401403
recomputeResourceOptions: function () {
402404
this.canMoveResourceUp = this.item.displayOrder > 1;

LearningHub.Nhs.WebUI/Scripts/vuesrc/content-structure-admin/treeItem.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
<a class="dropdown-item" v-if="!isExternalCatalogue" @click="onInitiateReferenceNode">Create reference to this folder</a>
4949
<a class="dropdown-item" v-if="canEditFolderReference" @click="onEditFolderReference">{{item.nodePathDisplayVersionId == 0 ? "Create" : "Edit"}} reference details</a>
5050
<a class="dropdown-item" v-if="!isExternalCatalogue" @click="addReference">Add a reference here</a>
51-
<a class="dropdown-item" v-if="item.isReference && !item.parent.isReference" @click="removeReference">Remove this reference</a>
51+
<a class="dropdown-item" v-if="item.isReference && !item.parent.isReference && canRemove" @click="removeReference">Remove this reference</a>
5252
</div>
5353
</div>
5454
</div>
@@ -166,7 +166,7 @@
166166
<a class="dropdown-item" v-if="canMoveResource && !isExternalCatalogue" @click="onInitiateMoveResource">Move</a>
167167
<a class="dropdown-item" v-if="!isExternalCatalogue" @click="onInitiateReferenceResource">Create reference to this resource</a>
168168
<a class="dropdown-item" v-if="canEditResourceReference" @click="onEditResourceReference">{{item.resourceReferenceDisplayVersionId == 0 ? "Create" : "Edit"}} reference details</a>
169-
<a class="dropdown-item" v-if="item.isReference && !item.parent.isReference" @click="removeReference">Remove this reference</a>
169+
<a class="dropdown-item" v-if="item.isReference && !item.parent.isReference && canRemove" @click="removeReference">Remove this reference</a>
170170
</div>
171171
</div>
172172
</div>
@@ -253,6 +253,7 @@
253253
canMoveResourceDown: false,
254254
canMoveResourceUp: false,
255255
canMoveResource: false,
256+
canRemove: false,
256257
};
257258
},
258259
computed: {
@@ -397,6 +398,7 @@
397398
this.canEditNode = true;
398399
this.canMoveNode = this.item.parent != null;
399400
this.canEditFolderReference = this.item.nodePathDisplayVersionId > 0 || (this.item.nodePaths && this.item.nodePaths.length > 1);
401+
this.canRemove = this.item.primaryCatalogueNodeId != this.$store.state.contentStructureState.rootNode.nodeId;
400402
},
401403
recomputeResourceOptions: function () {
402404
this.canMoveResourceUp = this.item.displayOrder > 1;

WebAPI/LearningHub.Nhs.Database/LearningHub.Nhs.Database.sqlproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,7 @@
547547
<Build Include="Stored Procedures\Hierarchy\CheckCatalogueHasExternalReference.sql" />
548548
<Build Include="Stored Procedures\Hierarchy\HierarchyEditDeleteNodeReferenceDetails.sql" />
549549
<Build Include="Stored Procedures\Hierarchy\HierarchyEditDeleteResourceReferenceDetails.sql" />
550+
<Build Include="Stored Procedures\Hierarchy\HierarchyNewResourceReferenceForReferedCatalogue.sql" />
550551
</ItemGroup>
551552
<ItemGroup>
552553
<None Include="Scripts\Pre-Deploy\Scripts\Card5766_AuthorTableChanges.PreDeployment.sql" />

WebAPI/LearningHub.Nhs.Database/Stored Procedures/Hierarchy/HierarchyEditPublish.sql

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -589,6 +589,14 @@ BEGIN
589589
----------------------------------------------------------
590590

591591
EXEC [hierarchy].[HierarchyNewNodePathForReferedCatalogue] @HierarchyEditId,@AmendUserId,@AmendDate
592+
593+
----------------------------------------------------------
594+
-- ResourceReference: generate new resource reference
595+
----------------------------------------------------------
596+
597+
EXEC [hierarchy].[HierarchyNewResourceReferenceForReferedCatalogue] @HierarchyEditId,@AmendUserId,@AmendDate
598+
599+
592600
----------------------------------------------------------
593601
-- NodePathNode
594602
----------------------------------------------------------
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
-------------------------------------------------------------------------------
2+
-- Author Sarathlal
3+
-- Created 11-09-2024
4+
-- Purpose Move resource in primary catalogue after external reference should reflect secondary catalogue
5+
--
6+
-- Modification History
7+
-- 11-09-2024 SS Initial version
8+
-------------------------------------------------------------------------------
9+
CREATE PROCEDURE [hierarchy].[HierarchyNewResourceReferenceForReferedCatalogue]
10+
(
11+
@HierarchyEditId INT,
12+
@AmendUserId INT,
13+
@AmendDate datetimeoffset(7)
14+
)
15+
16+
AS
17+
18+
BEGIN
19+
BEGIN TRY
20+
21+
BEGIN TRAN
22+
DECLARE @NodePathId int
23+
DECLARE @ResourceId INT
24+
DECLARE @PrimaryCatalogueNodeId int
25+
DECLARE @NodeId int
26+
DECLARE @ParentNodeId int
27+
DECLARE @NewNodePath as NVARCHAR(256)
28+
DECLARE @ResourceReferenceId INT
29+
DECLARE @ResourceReferenceCursor as CURSOR
30+
SET @ResourceReferenceCursor = CURSOR FORWARD_ONLY FOR
31+
SELECT
32+
ResourceId,
33+
PrimaryCatalogueNodeId,
34+
ParentNodeId,
35+
NodeId,
36+
hed.NewNodePath,
37+
NodePathId,
38+
ResourceReferenceId
39+
FROM
40+
hierarchy.HierarchyEditDetail hed
41+
WHERE
42+
HierarchyEditId = @HierarchyEditId
43+
AND
44+
(
45+
46+
HierarchyEditDetailTypeId = 5 -- Resource
47+
)
48+
AND (
49+
HierarchyEditDetailOperationId = 1 -- Add
50+
OR
51+
HierarchyEditDetailOperationId = 2 -- Edit
52+
)
53+
AND NodeLinkId IS NULL
54+
AND [Deleted] = 0
55+
OPEN @ResourceReferenceCursor;
56+
FETCH NEXT FROM @ResourceReferenceCursor INTO @ResourceId,@PrimaryCatalogueNodeId,@ParentNodeId,@NodeId,@NewNodePath,@NodePathId,@ResourceReferenceId;
57+
WHILE @@FETCH_STATUS = 0
58+
BEGIN
59+
60+
INSERT INTO [resources].[ResourceReference]([ResourceId],[NodePathId],[OriginalResourceReferenceId],[IsActive],[Deleted],[CreateUserId],[CreateDate],[AmendUserId],[AmendDate])
61+
SELECT @ResourceId,NP.Id,@ResourceReferenceId,1,0,@AmendUserId,@AmendDate,@AmendUserId,@AmendDate
62+
FROM
63+
hub.[fn_Split](@NewNodePath, '\') nodeInPath
64+
INNER JOIN hierarchy.NodePath NP ON NP.NodeId=nodeInPath.value AND CatalogueNodeId!=@PrimaryCatalogueNodeId
65+
WHERE nodeInPath.value=@ParentNodeId
66+
67+
FETCH NEXT FROM @ResourceReferenceCursor INTO @ResourceId,@PrimaryCatalogueNodeId,@ParentNodeId,@NodeId,@NewNodePath,@NodePathId,@ResourceReferenceId;
68+
69+
END
70+
71+
CLOSE @ResourceReferenceCursor;
72+
DEALLOCATE @ResourceReferenceCursor;
73+
COMMIT
74+
75+
END TRY
76+
BEGIN CATCH
77+
DECLARE @ErrorMessage NVARCHAR(4000);
78+
DECLARE @ErrorSeverity INT;
79+
DECLARE @ErrorState INT;
80+
81+
SELECT
82+
@ErrorMessage = ERROR_MESSAGE(),
83+
@ErrorSeverity = ERROR_SEVERITY(),
84+
@ErrorState = ERROR_STATE();
85+
86+
IF @@TRANCOUNT > 0
87+
ROLLBACK TRAN;
88+
89+
RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState);
90+
91+
END CATCH
92+
END
93+
GO

0 commit comments

Comments
 (0)