44@using LearningHub .Nhs .WebUI .Models
55@using LearningHub .Nhs .WebUI .Models .Resource
66@{
7- var resourceItem = Model .ResourceItem ;
8- var canShowMoreDetails = User .Identity .IsAuthenticated ;
9- if (canShowMoreDetails && resourceItem .ResourceAccessibilityEnum == ResourceAccessibilityEnum .FullAccess )
10- {
11- canShowMoreDetails = ! User .IsInRole (" BasicUser" );
12- }
13-
14- string GetFileLink (string filePath , string fileName )
15- {
16- return $" /api/resource/DownloadResource?filePath={filePath }&fileName={Uri .EscapeDataString (fileName )}" ;
17- }
18-
19- string GetDownloadResourceLink (string filePath , string fileName )
20- {
21- return $" /api/resource/DownloadResourceAndRecordActivity?resourceVersionId={resourceItem .ResourceVersionId }&nodePathId={resourceItem .NodePathId }&filePath={filePath }&fileName={Uri .EscapeDataString (fileName )}" ;
22- }
23-
24- string GetWeblinkNavigateLink (string url )
25- {
26- return $" /api/resource/NavigateToWeblinkAndRecordActivity?resourceVersionId={resourceItem .ResourceVersionId }&nodePathId={resourceItem .NodePathId }&url={Uri .EscapeDataString (url )}" ;
27- }
28-
29- string GetFileExtension (string filename )
30- {
31- var extension = UtilityHelper .GetFileExtension (filename );
32-
33- if (string .IsNullOrEmpty (extension ))
7+ var resourceItem = Model .ResourceItem ;
8+ var canShowMoreDetails = User .Identity .IsAuthenticated ;
9+ if (canShowMoreDetails && resourceItem .ResourceAccessibilityEnum == ResourceAccessibilityEnum .FullAccess )
3410 {
35- return " - " ;
11+ canShowMoreDetails = ! User . IsInRole ( " BasicUser " ) ;
3612 }
3713
38- return extension .ToUpper ();
39- }
40-
41- string GetSensitiveContentUrl ()
42- {
43- if (this .ViewContext .HttpContext .Request .QueryString .Value == " " )
14+ string GetFileLink (string filePath , string fileName )
4415 {
45- return " ?acceptSensitiveContent=true " ;
16+ return $" /api/resource/DownloadResource?filePath={ filePath }&fileName={ Uri . EscapeDataString ( fileName )} " ;
4617 }
47- else
18+
19+ string GetDownloadResourceLink (string filePath , string fileName )
4820 {
49- return this . ViewContext . HttpContext . Request . QueryString . Value + " &acceptSensitiveContent=true " ;
21+ return $" /api/resource/DownloadResourceAndRecordActivity?resourceVersionId={ resourceItem . ResourceVersionId }&nodePathId={ resourceItem . NodePathId }&filePath={ filePath }&fileName={ Uri . EscapeDataString ( fileName )} " ;
5022 }
51- }
52- }
5323
54- <div >
55- <div class =" resource-main" >
56-
57- @if (canShowMoreDetails && resourceItem .SensitiveContent && Model .HasCatalogueAccess )
24+ string GetWeblinkNavigateLink (string url )
5825 {
59- <div class =" sensitive-content" >
60- <h2 >
61- Sensitive content
62- </h2 >
63- <p class =" nhsuk-body-l nhsuk-u-text-align-centre" >
64- This resource contains sensitive content which some people may find offensive or disturbing .
65- </p >
66- <div >
67- <a class =" nhsuk-button nhsuk-button--secondary" href =" @GetSensitiveContentUrl()" >Show content </a >
68- </div >
69- </div >
26+ return $" /api/resource/NavigateToWeblinkAndRecordActivity?resourceVersionId={resourceItem .ResourceVersionId }&nodePathId={resourceItem .NodePathId }&url={Uri .EscapeDataString (url )}" ;
7027 }
7128
72- <!-- Content Object -->
73- @if (Model .HasCatalogueAccess && ! resourceItem .SensitiveContent )
29+ string GetFileExtension (string filename )
7430 {
75- < div >
31+ var extension = UtilityHelper . GetFileExtension ( filename );
7632
77- @* Image *@
78- @if (canShowMoreDetails && resourceItem .ResourceTypeEnum == ResourceTypeEnum .Image )
33+ if (string .IsNullOrEmpty (extension ))
7934 {
80- <div class =" nhsuk-card nhsuk-bg-light-blue" >
81- <div class =" nhsuk-card__content nhsuk-u-padding-bottom-1" >
82- <div class =" image-container" >
83- <img class =" img-main" src =" @GetFileLink(resourceItem.ImageDetails.File.FilePath, resourceItem.ImageDetails.File.FileName)" alt =" @resourceItem.Title" />
84- </div >
85- <div >
86- <a class =" nhsuk-button nhsuk-u-margin-top-4" href =" @GetFileLink(resourceItem.ImageDetails.File.FilePath, resourceItem.ImageDetails.File.FileName)" >Download this image </a >
87- </div >
88- </div >
89- </div >
35+ return " -" ;
9036 }
9137
92- @* Weblink *@
93- @if (canShowMoreDetails && resourceItem .ResourceTypeEnum == ResourceTypeEnum .WebLink )
94- {
95- <div class =" nhsuk-card nhsuk-bg-light-blue" >
96- <div class =" nhsuk-card__content" >
97- <p class =" nhsuk-body-l nhsuk-u-margin-bottom-3" >Visit site : </p >
98- @{
99- string displayText = resourceItem .WebLinkDetails .DisplayText ;
38+ return extension .ToUpper ();
39+ }
10040
101- if (string .IsNullOrEmpty (displayText ))
102- {
103- displayText = resourceItem .WebLinkDetails .Url ;
104- }
105- }
106- <p class =" nhsuk-body-l word-break__break-word" ><a href =" @GetWeblinkNavigateLink(resourceItem.WebLinkDetails.Url)" target =" _blank" >@displayText </a ></p >
107- </div >
108- </div >
41+ string GetSensitiveContentUrl ()
42+ {
43+ if (this .ViewContext .HttpContext .Request .QueryString .Value == " " )
44+ {
45+ return " ?acceptSensitiveContent=true" ;
10946 }
47+ else
48+ {
49+ return this .ViewContext .HttpContext .Request .QueryString .Value + " &acceptSensitiveContent=true" ;
50+ }
51+ }
52+ }
53+
54+ <div >
55+ <div class =" resource-main" >
11056
111- @* Generic File *@
112- @if (canShowMoreDetails && resourceItem .ResourceTypeEnum == ResourceTypeEnum .GenericFile )
57+ @if (canShowMoreDetails && resourceItem .SensitiveContent && Model .HasCatalogueAccess )
11358 {
114- <div class =" resource-panel-container" >
115- <div class =" nhsuk-card nhsuk-bg-light-blue" >
116- <div class =" nhsuk-card__content" >
117- <p class =" nhsuk-body-l nhsuk-u-margin-bottom-3" >Download : </p >
118- <p class =" nhsuk-body-l word-break__break-word" >
119- <span class =" nhsuk-u-margin-right-4 pill @UtilityHelper.GetPillColour(resourceItem.GenericFileDetails.File.FileName)" >@GetFileExtension(resourceItem.GenericFileDetails.File.FileName) </span >
120- <a class =" nhsuk-u-margin-right-4" href =" @GetDownloadResourceLink(resourceItem.GenericFileDetails.File.FilePath, resourceItem.GenericFileDetails.File.FileName)" >@resourceItem.GenericFileDetails.File.FileName </a > (@resourceItem .GenericFileDetails .File .FileSizeKb KB )
59+ <div class =" sensitive-content" >
60+ <h2 >
61+ Sensitive content
62+ </h2 >
63+ <p class =" nhsuk-body-l nhsuk-u-text-align-centre" >
64+ This resource contains sensitive content which some people may find offensive or disturbing .
12165 </p >
122- </div >
66+ <div >
67+ <a class =" nhsuk-button nhsuk-button--secondary" href =" @GetSensitiveContentUrl()" >Show content </a >
68+ </div >
12369 </div >
124-
125- </div >
12670 }
12771
128- @* Article *@
129- @if (canShowMoreDetails && resourceItem .ResourceTypeEnum == ResourceTypeEnum . Article )
72+ <!-- Content Object -->
73+ @if (Model . HasCatalogueAccess && ! resourceItem .SensitiveContent )
13074 {
131- <div class =" nhsuk-u-margin-bottom-7" >@Html.Raw(resourceItem.ArticleDetails.Description) </div >
132-
133- @if (resourceItem .ArticleDetails .Files != null && resourceItem .ArticleDetails .Files .Count > 0 )
134- {
135- <div class =" nhsuk-card" >
136- <div class =" nhsuk-card__content" >
137- <h2 class =" nhsuk-card__heading" >Documents </h2 >
138- @foreach ( var file in resourceItem .ArticleDetails .Files )
75+ <div >
76+
77+ @* Image *@
78+ @if (canShowMoreDetails && resourceItem .ResourceTypeEnum == ResourceTypeEnum .Image )
13979 {
140- <p class =" nhsuk-u-margin-bottom-2 word-break__break-word" >
141- <span class =" nhsuk-u-margin-right-3 pill pill--small @UtilityHelper.GetPillColour(file.FileName)" >@GetFileExtension(file.FileName) </span >
142- <a class =" nhsuk-u-margin-right-3" href =" @GetFileLink(file.FilePath, file.FileName)" >@file.FileName </a > (@file .FileSizeKb KB )
143- </p >
80+ <div class =" nhsuk-card nhsuk-bg-light-blue" >
81+ <div class =" nhsuk-card__content nhsuk-u-padding-bottom-1" >
82+ <div class =" image-container" >
83+ <img class =" img-main" src =" @GetFileLink(resourceItem.ImageDetails.File.FilePath, resourceItem.ImageDetails.File.FileName)" alt =" @resourceItem.Title" />
84+ </div >
85+ <div >
86+ <a class =" nhsuk-button nhsuk-u-margin-top-4" href =" @GetFileLink(resourceItem.ImageDetails.File.FilePath, resourceItem.ImageDetails.File.FileName)" >Download this image </a >
87+ </div >
88+ </div >
89+ </div >
14490 }
145- </div >
146- </div >
147- }
148- }
14991
150- @if (canShowMoreDetails && resourceItem .ResourceTypeEnum == ResourceTypeEnum .Video || resourceItem .ResourceTypeEnum == ResourceTypeEnum .Audio || resourceItem .ResourceTypeEnum == ResourceTypeEnum .Scorm ||
151- resourceItem .ResourceTypeEnum == ResourceTypeEnum .Case || resourceItem .ResourceTypeEnum == ResourceTypeEnum .Assessment )
152- {
153- if (resourceItem .ResourceTypeEnum == ResourceTypeEnum .Case )
154- {
155- < hr / >
156- }
92+ @* Weblink *@
93+ @if (canShowMoreDetails && resourceItem .ResourceTypeEnum == ResourceTypeEnum .WebLink )
94+ {
95+ <div class =" nhsuk-card nhsuk-bg-light-blue" >
96+ <div class =" nhsuk-card__content" >
97+ <p class =" nhsuk-body-l nhsuk-u-margin-bottom-3" >Visit site : </p >
98+ @{
99+ string displayText = resourceItem .WebLinkDetails .DisplayText ;
100+
101+ if (string .IsNullOrEmpty (displayText ))
102+ {
103+ displayText = resourceItem .WebLinkDetails .Url ;
104+ }
105+ }
106+ <p class =" nhsuk-body-l word-break__break-word" ><a href =" @GetWeblinkNavigateLink(resourceItem.WebLinkDetails.Url)" target =" _blank" >@displayText </a ></p >
107+ </div >
108+ </div >
109+ }
157110
158- @* Video/Audio/Scorm/Case/Assessment require JavaScript - use Vue.js resource app. *@
111+ @* Generic File *@
112+ @if (canShowMoreDetails && resourceItem .ResourceTypeEnum == ResourceTypeEnum .GenericFile )
113+ {
114+ <div class =" resource-panel-container" >
115+ <div class =" nhsuk-card nhsuk-bg-light-blue" >
116+ <div class =" nhsuk-card__content" >
117+ <p class =" nhsuk-body-l nhsuk-u-margin-bottom-3" >Download : </p >
118+ <p class =" nhsuk-body-l word-break__break-word" >
119+ <span class =" nhsuk-u-margin-right-4 pill @UtilityHelper.GetPillColour(resourceItem.GenericFileDetails.File.FileName)" >@GetFileExtension(resourceItem.GenericFileDetails.File.FileName) </span >
120+ <a class =" nhsuk-u-margin-right-4" href =" @GetDownloadResourceLink(resourceItem.GenericFileDetails.File.FilePath, resourceItem.GenericFileDetails.File.FileName)" >@resourceItem.GenericFileDetails.File.FileName </a > (@resourceItem .GenericFileDetails .File .FileSizeKb KB )
121+ </p >
122+ </div >
123+ </div >
124+
125+ </div >
126+ }
159127
160- <div id =" resourcecontainer" >
161- <router-view user-authenticated =" @ViewBag.UserAuthenticated"
162- :media-activity-playing-event-interval-seconds =" @ViewBag.MediaActivityPlayingEventIntervalSeconds"
163- :keep-user-session-alive-interval-seconds =" @ViewBag.KeepUserSessionAliveIntervalSeconds" />
164- </div >
128+ @* Article *@
129+ @if (canShowMoreDetails && resourceItem .ResourceTypeEnum == ResourceTypeEnum .Article )
130+ {
131+ <div class =" nhsuk-u-margin-bottom-7" >@Html.Raw(resourceItem.ArticleDetails.Description) </div >
132+
133+ @if (resourceItem .ArticleDetails .Files != null && resourceItem .ArticleDetails .Files .Count > 0 )
134+ {
135+ <div class =" nhsuk-card" >
136+ <div class =" nhsuk-card__content" >
137+ <h2 class =" nhsuk-card__heading" >Documents </h2 >
138+ @foreach ( var file in resourceItem .ArticleDetails .Files )
139+ {
140+ <p class =" nhsuk-u-margin-bottom-2 word-break__break-word" >
141+ <span class =" nhsuk-u-margin-right-3 pill pill--small @UtilityHelper.GetPillColour(file.FileName)" >@GetFileExtension(file.FileName) </span >
142+ <a class =" nhsuk-u-margin-right-3" href =" @GetFileLink(file.FilePath, file.FileName)" >@file.FileName </a > (@file .FileSizeKb KB )
143+ </p >
144+ }
145+ </div >
146+ </div >
147+ }
148+ }
149+ @* Html Resource *@
150+ @if (canShowMoreDetails && resourceItem .ResourceTypeEnum == ResourceTypeEnum .Html )
151+ {
152+ <div id =" resourcePg" class =" nhsuk-card nhsuk-bg-light-blue" >
153+ <div class =" nhsuk-card__content" >
154+ <a v-on:click =checkUserCertificateAvailability(@resourceItem.Id) href =" @($" {Context.Request.Scheme}: //{Context.Request.Host} /resource /html /{resourceItem.Id} /index.html " )"
155+ onclick =" @($" window.open(this.href, ' scormDebugWindow' , ' status=no,location=no,toolbar=no,menubar=no,dependent=no,width={resourceItem.HtmlDetails.PopupWidth},height={resourceItem.HtmlDetails.PopupHeight}' ); return false; " )" >
156+ <button class =" nhsuk-button" >
157+ Launch HTML resource
158+ </button >
159+ </a >
160+ <p >This resource will launch in a new window </p >
161+ </div >
162+ </div >
163+ }
165164
166- <partial name =" _JavaScriptDisabled" />
167- }
168- </div >
169- }
170165
171- @* Description / Additional Information *@
172- @if (resourceItem .ResourceTypeEnum != ResourceTypeEnum .Case && resourceItem .ResourceTypeEnum != ResourceTypeEnum .Assessment )
173- {
174- <div class =" nhsuk-u-margin-bottom-7" >
175- @if (resourceItem .ResourceTypeEnum != ResourceTypeEnum .Article || (resourceItem .Catalogue .RestrictedAccess && ! Model .HasCatalogueAccess ))
176- {
177- <div >@Html.Raw(resourceItem.Description) </div >
166+ @if (canShowMoreDetails && resourceItem .ResourceTypeEnum == ResourceTypeEnum .Video || resourceItem .ResourceTypeEnum == ResourceTypeEnum .Audio || resourceItem .ResourceTypeEnum == ResourceTypeEnum .Scorm ||
167+ resourceItem .ResourceTypeEnum == ResourceTypeEnum .Case || resourceItem .ResourceTypeEnum == ResourceTypeEnum .Assessment )
168+ {
169+ if (resourceItem .ResourceTypeEnum == ResourceTypeEnum .Case )
170+ {
171+ < hr / >
172+ }
173+
174+ @* Video/Audio/Scorm/Case/Assessment require JavaScript - use Vue.js resource app. *@
175+
176+ <div id =" resourcecontainer" >
177+ <router-view user-authenticated =" @ViewBag.UserAuthenticated"
178+ :media-activity-playing-event-interval-seconds =" @ViewBag.MediaActivityPlayingEventIntervalSeconds"
179+ :keep-user-session-alive-interval-seconds =" @ViewBag.KeepUserSessionAliveIntervalSeconds" />
180+ </div >
181+
182+ <partial name =" _JavaScriptDisabled" />
183+ }
184+ </div >
178185 }
179186
180- @if (! string .IsNullOrEmpty (resourceItem .AdditionalInformation ) && Model .HasCatalogueAccess )
187+ @* Description / Additional Information *@
188+ @if (resourceItem .ResourceTypeEnum != ResourceTypeEnum .Case && resourceItem .ResourceTypeEnum != ResourceTypeEnum .Assessment && resourceItem .ResourceTypeEnum != ResourceTypeEnum .Html )
181189 {
182- <div class =" nhsuk-inset-text" >
183- <h2 >Additional information </h2 >
184- <p >@resourceItem.AdditionalInformation </p >
185- </div >
190+ <div class =" nhsuk-u-margin-bottom-7" >
191+ @if (resourceItem .ResourceTypeEnum != ResourceTypeEnum .Article || (resourceItem .Catalogue .RestrictedAccess && ! Model .HasCatalogueAccess ))
192+ {
193+ <div >@Html.Raw(resourceItem.Description) </div >
194+ }
195+
196+ @if (! string .IsNullOrEmpty (resourceItem .AdditionalInformation ) && Model .HasCatalogueAccess )
197+ {
198+ <div class =" nhsuk-inset-text" >
199+ <h2 >Additional information </h2 >
200+ <p >@resourceItem.AdditionalInformation </p >
201+ </div >
202+ }
203+ </div >
186204 }
187- </div >
188- }
189- </div >
205+ </div >
190206</div >
0 commit comments