Skip to content

Commit 8e6fc6c

Browse files
committed
Refactored webUI
1 parent 96417d6 commit 8e6fc6c

File tree

11 files changed

+78
-21
lines changed

11 files changed

+78
-21
lines changed

LearningHub.Nhs.WebUI/Controllers/ResourceController.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,8 @@ public async Task<IActionResult> Index(int resourceReferenceId, bool? acceptSens
119119
this.ViewBag.MediaActivityPlayingEventIntervalSeconds = this.Settings.MediaActivityPlayingEventIntervalSeconds;
120120
this.ViewBag.KeepUserSessionAliveIntervalSeconds = Convert.ToInt32(this.Settings.KeepUserSessionAliveIntervalMins) * 60000;
121121
this.ViewBag.SupportUrl = this.Settings.SupportUrls.SupportForm;
122-
var learnResourceAVFlag = Task.Run(() => this.featureManager.IsEnabledAsync(FeatureFlags.LearnAudioVideoResource)).Result;
123-
this.ViewBag.LearnResourceAVFlag = learnResourceAVFlag;
122+
var displayAVResourceFlag = Task.Run(() => this.featureManager.IsEnabledAsync(FeatureFlags.DisplayAudioVideoResource)).Result;
123+
this.ViewBag.DisplayAVResourceFlag = displayAVResourceFlag;
124124

125125
if (resourceReferenceId == 0)
126126
{
@@ -532,11 +532,11 @@ public IActionResult GetAVUnavailableView()
532532
public bool GetContributeResourceAVFlag() => this.featureManager.IsEnabledAsync(FeatureFlags.ContributeAudioVideoResource).Result;
533533

534534
/// <summary>
535-
/// The GetLearnAVResourceFlag.
535+
/// The GetDisplayAVResourceFlag.
536536
/// </summary>
537-
/// <returns> Return Learn AV Resource Flag.</returns>
538-
[Route("Resource/GetLearnAVResourceFlag")]
539-
[HttpGet("GetLearnAVResourceFlag")]
540-
public bool GetLearnAVResourceFlag() => this.featureManager.IsEnabledAsync(FeatureFlags.LearnAudioVideoResource).Result;
537+
/// <returns> Return Display AV Resource Flag.</returns>
538+
[Route("Resource/GetDisplayAVResourceFlag")]
539+
[HttpGet("GetDisplayAVResourceFlag")]
540+
public bool GetDisplayAVResourceFlag() => this.featureManager.IsEnabledAsync(FeatureFlags.DisplayAudioVideoResource).Result;
541541
}
542542
}

LearningHub.Nhs.WebUI/Helpers/FeatureFlags.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ public static class FeatureFlags
1515
public const string ContributeAudioVideoResource = "ContributeAudioVideoResource";
1616

1717
/// <summary>
18-
/// The LearnAudioVideoResource.
18+
/// The DisplayAudioVideoResource.
1919
/// </summary>
20-
public const string LearnAudioVideoResource = "LearnAudioVideoResource";
20+
public const string DisplayAudioVideoResource = "DisplayAudioVideoResource";
2121
}
2222
}

LearningHub.Nhs.WebUI/Scripts/vuesrc/contribute-resource/SelectResourceType.vue

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@
6767
getContributeResAVResourceFlag() {
6868
resourceData.getContributeAVResourceFlag().then(response => {
6969
this.contributeResourceAVFlag = response;
70-
debugger;
7170
});
7271
},
7372
getResourceTypeDescription(resourceType: ResourceType): string {
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
import Vue from 'vue';
22
import Vuelidate from 'vuelidate';
33
import { ContributeResourceRouter } from './contributeResourceRouter';
4+
import store from '../contribute/contributeState';
45

56
Vue.use(Vuelidate as any);
67

78
new Vue({
89
el: '#contributecontainer',
910
router: ContributeResourceRouter,
11+
store,
12+
created() {
13+
this.$store.commit('populateContributeAVResourceFlag');
14+
this.$store.commit('populateAVUnavailableView');
15+
}
1016
});

LearningHub.Nhs.WebUI/Scripts/vuesrc/contribute/Content.vue

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,23 @@
295295
</transition>
296296
</div>
297297

298+
<div v-if="avUnavailableMessage">
299+
<transition name="modal">
300+
<div class="modal-mask">
301+
<div class="modal-wrapper">
302+
<div class="modal-dialog">
303+
<div class="modal-content">
304+
<div v-html="audioVideoUnavailableView"></div>
305+
<div class="modal-footer modal-footer--buttons">
306+
<button type="button" class="nhsuk-button nhsuk-button--secondary" @click="cancelAVUnavailModal">Cancel</button>
307+
</div>
308+
</div>
309+
</div>
310+
</div>
311+
</div>
312+
</transition>
313+
</div>
314+
298315
<div v-if="invalidFileTypeError">
299316
<transition name="modal">
300317
<div class="modal-mask">
@@ -472,6 +489,7 @@
472489
flags: [] as FlagModel[],
473490
displayType: '' as string,
474491
commonContentKey: 0,
492+
avUnavailableMessage: false,
475493
// Some of the Content components have local state
476494
// which isn't in the vuex store.
477495
// This means those fields are validated using an
@@ -589,7 +607,13 @@
589607
},
590608
hierarchyEditLoaded(): boolean {
591609
return this.$store.state.hierarchyEditLoaded;
592-
}
610+
},
611+
contributeResourceAVFlag(): boolean {
612+
return this.$store.state.contributeAVResourceFlag;
613+
},
614+
audioVideoUnavailableView(): string {
615+
return this.$store.state.getAVUnavailableView;
616+
},
593617
},
594618
async created() {
595619
if (this.$store.state.currentUserName == '') {
@@ -779,6 +803,9 @@
779803
cancelChangeFile() {
780804
this.fileTypeChangeWarning = false;
781805
},
806+
cancelAVUnavailModal() {
807+
this.avUnavailableMessage = false;
808+
},
782809
processChangeFile() {
783810
this.fileTypeChangeWarning = false;
784811
this.acceptUploadedFile();
@@ -879,7 +906,7 @@
879906
if (this.selectedResourceType != ResourceType.UNDEFINED) {
880907
let fileExtension = this.uploadingFile.name.split(".").pop();
881908
let resourceType: ResourceType = ResourceType.GENERICFILE;
882-
if (fileExtension.toLowerCase() == 'zip' && this.selectedResourceType == ResourceType.SCORM) {
909+
if (fileExtension.toLowerCase() == 'zip' && this.selectedResourceType == ResourceType.SCORM) {
883910
resourceType = ResourceType.SCORM;
884911
} else if (fileExtension.toLowerCase() == 'zip' && this.selectedResourceType == ResourceType.HTML) {
885912
resourceType = ResourceType.HTML;
@@ -890,6 +917,10 @@
890917
resourceType = fileType.defaultResourceTypeId;
891918
}
892919
}
920+
if ((resourceType == 2 || resourceType == 7) && !this.contributeResourceAVFlag) {
921+
this.avUnavailableMessage = true;
922+
return;
923+
}
893924
if (resourceType != this.selectedResourceType && this.isFileAlreadyUploaded) {
894925
if (this.previousVersionExists) {
895926
this.invalidFileTypeError = true;

LearningHub.Nhs.WebUI/Scripts/vuesrc/contribute/ContentVideo.vue

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
<h3>Uploaded file</h3>
66
</div>
77
</div>
8-
<div class="row">
8+
<div v-if="!contributeResourceAVFlag">
9+
<div v-html="audioVideoUnavailableView"></div>
10+
</div>
11+
<div v-else class="row">
912
<file-panel :file-id="localVideoDetail.file.fileId" :file-description="localVideoDetail.file.fileName" :file-size="localVideoDetail.file.fileSizeKb" @changefile="changeFile"></file-panel>
1013
</div>
1114

@@ -116,7 +119,13 @@
116119
},
117120
fileUpdated(): ResourceFileModel {
118121
return this.$store.state.fileUpdated;
119-
}
122+
},
123+
contributeResourceAVFlag(): boolean {
124+
return this.$store.state.contributeAVResourceFlag;
125+
},
126+
audioVideoUnavailableView(): string {
127+
return this.$store.state.getAVUnavailableView;
128+
},
120129
},
121130
created() {
122131
this.setInitialValues();

LearningHub.Nhs.WebUI/Scripts/vuesrc/contribute/GenericFileUploader.vue

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
You can upload a file from your computer or other storage drive you are connected to.
66
Maximum file size {{ contributeSettings.fileUploadSettings.fileUploadSizeLimitText }}
77
</p>
8+
<div v-if="!contributeResourceAVFlag">
9+
<div v-html="audioVideoUnavailableView"></div>
10+
</div>
11+
812
<div class="p-4 uploadInnerBox">
913
<div class="upload-btn-wrapper nhsuk-u-font-size-16">
1014
<label for="fileUpload" class="nhsuk-button nhsuk-button--secondary">Choose file</label> No file chosen
@@ -38,6 +42,12 @@
3842
fileAccept(): string {
3943
return this.$store.state.resourceDetail.resourceType == ResourceType.HTML ? '.zip,.rar,.7zip' : ''
4044
},
45+
contributeResourceAVFlag(): boolean {
46+
return this.$store.state.contributeAVResourceFlag;
47+
},
48+
audioVideoUnavailableView(): string {
49+
return this.$store.state.getAVUnavailableView;
50+
},
4151
},
4252
});
4353
</script>

LearningHub.Nhs.WebUI/Scripts/vuesrc/contribute/contributeState.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,8 +248,8 @@ const mutations = {
248248
async populateContributeAVResourceFlag(state: State) {
249249
state.contributeAVResourceFlag = await resourceData.getContributeAVResourceFlag();
250250
},
251-
async populatLearnResourceAVFlag(state: State) {
252-
state.learnAVResourceFlag = await resourceData.getLearnAVResourceFlag();
251+
async populateDisplayAVResourceFlag(state: State) {
252+
state.learnAVResourceFlag = await resourceData.getDisplayAVResourceFlag();
253253
},
254254
async populateAVUnavailableView(state: State) {
255255
state.getAVUnavailableView = await resourceData.getAVUnavailableView();

LearningHub.Nhs.WebUI/Scripts/vuesrc/contribute/contributecontainer.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ new Vue({
2323
},
2424
created() {
2525
this.$store.commit('populateContributeSettings');
26+
this.$store.commit('populateContributeAVResourceFlag');
27+
this.$store.commit('populateAVUnavailableView');
2628
if (this.$route.params.rvId) {
2729
this.$store.commit('populateResource', this.$route.params.rvId);
2830
}

LearningHub.Nhs.WebUI/Scripts/vuesrc/data/resource.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -513,13 +513,13 @@ const getContributeAVResourceFlag = async function (): Promise<boolean> {
513513
});
514514
};
515515

516-
const getLearnAVResourceFlag = async function (): Promise<boolean> {
517-
return await AxiosWrapper.axios.get<boolean>('/Resource/GetLearnAVResourceFlag')
516+
const getDisplayAVResourceFlag = async function (): Promise<boolean> {
517+
return await AxiosWrapper.axios.get<boolean>('/Resource/GetDisplayAVResourceFlag')
518518
.then(response => {
519519
return response.data;
520520
})
521521
.catch(e => {
522-
console.log('GetLearnAVResourceFlag:' + e);
522+
console.log('GetDisplayAVResourceFlag:' + e);
523523
throw e;
524524
});
525525
};
@@ -574,6 +574,6 @@ export const resourceData = {
574574
duplicateBlocks,
575575
getMyContributions,
576576
getContributeAVResourceFlag,
577-
getLearnAVResourceFlag,
577+
getDisplayAVResourceFlag,
578578
getAVUnavailableView
579579
};

0 commit comments

Comments
 (0)