Skip to content

Commit b29603b

Browse files
authored
Merge pull request #1068 from TechnologyEnhancedLearning/RC
Merge RC changes to flaxlily
2 parents 2d79c68 + 31e6f4f commit b29603b

File tree

10 files changed

+32
-23
lines changed

10 files changed

+32
-23
lines changed

AdminUI/LearningHub.Nhs.AdminUI/Scripts/vuesrc/mkiomediaplayer.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ interface PlayerConfig {
2222
}
2323

2424
interface SourceConfig {
25+
enableLowLatency: boolean;
2526
hls: string;
2627
drm: {
2728
clearkey: ClearKeyConfig;
@@ -57,6 +58,7 @@ function getSourceConfig(
5758
authenticationToken: string
5859
): SourceConfig {
5960
return {
61+
enableLowLatency: true,
6062
hls: locatorUri,
6163
drm: {
6264
clearkey: {
@@ -81,6 +83,7 @@ function initializePlayer(videoContainer: HTMLElement, playerConfig: MKPlayerCon
8183
};
8284

8385
const sourceConfig: SourceConfig = {
86+
enableLowLatency: true,
8487
hls: playBackUrl,
8588
drm: {
8689
clearkey: clearKeyConfig

LearningHub.Nhs.WebUI/Controllers/HomeController.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ namespace LearningHub.Nhs.WebUI.Controllers
66
using System.Linq;
77
using System.Net.Http;
88
using System.Threading.Tasks;
9+
using elfhHub.Nhs.Models.Common;
910
using LearningHub.Nhs.Models.Content;
1011
using LearningHub.Nhs.Models.Enums.Content;
1112
using LearningHub.Nhs.Models.Extensions;
@@ -20,6 +21,7 @@ namespace LearningHub.Nhs.WebUI.Controllers
2021
using Microsoft.AspNetCore.Diagnostics;
2122
using Microsoft.AspNetCore.Hosting;
2223
using Microsoft.AspNetCore.Mvc;
24+
using Microsoft.Extensions.Configuration;
2325
using Microsoft.Extensions.Logging;
2426
using Microsoft.Extensions.Options;
2527
using Microsoft.FeatureManagement;
@@ -52,6 +54,7 @@ public class HomeController : BaseController
5254
/// <param name="dashboardService">Dashboard service.</param>
5355
/// <param name="contentService">Content service.</param>
5456
/// <param name="featureManager"> featureManager.</param>
57+
/// <param name="configuration"> config.</param>
5558
public HomeController(
5659
IHttpClientFactory httpClientFactory,
5760
IWebHostEnvironment hostingEnvironment,
@@ -62,7 +65,8 @@ public HomeController(
6265
LearningHubAuthServiceConfig authConfig,
6366
IDashboardService dashboardService,
6467
IContentService contentService,
65-
IFeatureManager featureManager)
68+
IFeatureManager featureManager,
69+
Microsoft.Extensions.Configuration.IConfiguration configuration)
6670
: base(hostingEnvironment, httpClientFactory, logger, settings.Value)
6771
{
6872
this.authConfig = authConfig;
@@ -71,6 +75,7 @@ public HomeController(
7175
this.dashboardService = dashboardService;
7276
this.contentService = contentService;
7377
this.featureManager = featureManager;
78+
this.configuration = configuration;
7479
}
7580

7681
/// <summary>

LearningHub.Nhs.WebUI/Scripts/vuesrc/mkiomediaplayer.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ interface PlayerConfig {
2424
}
2525

2626
interface SourceConfig {
27+
enableLowLatency: boolean;
2728
hls: string;
2829
drm: {
2930
clearkey: ClearKeyConfig;
@@ -64,6 +65,7 @@ function getPlayerConfig(mkioKey: string, onPlayerReady: () => void, onSubtitleA
6465
function initializePlayer(videoContainer: HTMLElement, playerConfig: MKPlayerConfig, playBackUrl: string): any {
6566
const player = new MKPlayer(videoContainer, playerConfig);
6667
const sourceConfig: SourceConfig = {
68+
enableLowLatency: true,
6769
hls: playBackUrl,
6870
drm: {
6971
clearkey: getClearKeyConfig()

LearningHub.Nhs.WebUI/Scripts/vuesrc/notification/notifications.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@
152152
showNotification(notification: NotificationModel) {
153153
this.selectedNotification = notification;
154154
this.showMessage = true;
155-
setTimeout(() => { $('html,body').scrollTop($("#backToList").offset().top); }, 100);
155+
setTimeout(() => { $('html,body').scrollTop($(".nhsuk-back-link").offset().top); }, 100);
156156
157157
},
158158
showNotificationList(event: any) {

LearningHub.Nhs.WebUI/Views/Shared/_LoginBanner.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
class="nhsuk-button nhsuk-button--secondary">OpenAthens Log in</a>
1616
</div>
1717
<p class="nhsuk-u-margin-bottom-2">
18-
<a asp-controller="Account" asp-action="ForgotPassword" class="">Forgotten username or password</a>
18+
<a asp-controller="Account" asp-action="ForgotUserPassword" class="">Forgotten username or password</a>
1919
</p>
2020
<p>
2121
<a asp-controller="Account" asp-action="CreateAnAccount">Create new account</a>

OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Repositories/ResourceRepository.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ namespace LearningHub.Nhs.OpenApi.Repositories.Repositories
1616
/// <inheritdoc />
1717
public class ResourceRepository : GenericRepository<Resource>, IResourceRepository
1818
{
19-
private LearningHubDbContext dbContext;
2019

2120
/// <summary>
2221
/// Initializes a new instance of the <see cref="ResourceRepository"/> class.
@@ -31,7 +30,7 @@ public ResourceRepository(LearningHubDbContext dbContext, ITimezoneOffsetManager
3130
/// <inheritdoc />
3231
public async Task<IEnumerable<Resource>> GetResourcesFromIds(IEnumerable<int> resourceIds)
3332
{
34-
var resources = await this.dbContext.Resource
33+
var resources = await this.DbContext.Resource
3534
.Where(r => resourceIds.Contains(r.Id))
3635
.Where(r => !r.Deleted)
3736
.Include(r => r.ResourceReference)
@@ -62,7 +61,7 @@ public async Task<IEnumerable<Resource>> GetResourcesFromIds(IEnumerable<int> re
6261
public async Task<IEnumerable<ResourceReference>> GetResourceReferencesByOriginalResourceReferenceIds(
6362
IEnumerable<int> originalResourceReferenceIds)
6463
{
65-
return await this.dbContext.ResourceReference
64+
return await this.DbContext.ResourceReference
6665
.Where(rr => originalResourceReferenceIds.Contains(rr.OriginalResourceReferenceId))
6766
.Where(rr => !rr.Deleted)
6867
.Where(rr => (int)rr.NodePath.Node.NodeTypeEnum != 4)
@@ -83,7 +82,7 @@ public async Task<List<int>> GetAchievedCertificatedResourceIds(int currentUserI
8382
var param0 = new SqlParameter("@userId", SqlDbType.Int) { Value = currentUserId };
8483
var param4 = new SqlParameter("@TotalRecords", SqlDbType.Int) { Direction = ParameterDirection.Output };
8584

86-
var result = this.dbContext.DashboardResourceDto.FromSqlRaw("resources.GetAchievedCertificatedResourcesWithOptionalPagination @userId = @userId, @TotalRecords = @TotalRecords output", param0, param4).ToList();
85+
var result = this.DbContext.DashboardResourceDto.FromSqlRaw("resources.GetAchievedCertificatedResourcesWithOptionalPagination @userId = @userId, @TotalRecords = @TotalRecords output", param0, param4).ToList();
8786
List<int> achievedCertificatedResourceIds = result.Select(drd => drd.ResourceId).Distinct().ToList<int>();
8887

8988
return achievedCertificatedResourceIds;
@@ -108,7 +107,7 @@ public async Task<IEnumerable<ResourceActivityDTO>> GetResourceActivityPerResour
108107
var resourceIdsParameter = new SqlParameter("@p0", resourceIdsParam ?? (object)DBNull.Value);
109108
var userIdsParameter = new SqlParameter("@p1", userIdsParam ?? (object)DBNull.Value);
110109

111-
List<ResourceActivityDTO> resourceActivityDTOs = await dbContext.ResourceActivityDTO
110+
List<ResourceActivityDTO> resourceActivityDTOs = await this.DbContext.ResourceActivityDTO
112111
.FromSqlRaw(
113112
"[activity].[GetResourceActivityPerResourceMajorVersion] @p0, @p1",
114113
resourceIdsParameter,
@@ -126,7 +125,7 @@ public async Task<IEnumerable<ResourceActivityDTO>> GetResourceActivityPerResour
126125
/// <returns>The <see cref="Task"/>.</returns>
127126
public async Task<Resource> GetByIdAsync(int id)
128127
{
129-
return await this.dbContext.Resource.AsNoTracking().FirstOrDefaultAsync(r => r.Id == id && !r.Deleted);
128+
return await this.DbContext.Resource.AsNoTracking().FirstOrDefaultAsync(r => r.Id == id && !r.Deleted);
130129
}
131130

132131
/// <summary>
@@ -136,7 +135,7 @@ public async Task<Resource> GetByIdAsync(int id)
136135
/// <returns>If the user has any resources published.</returns>
137136
public async Task<bool> UserHasPublishedResourcesAsync(int userId)
138137
{
139-
return await this.dbContext.Resource.AsNoTracking()
138+
return await this.DbContext.Resource.AsNoTracking()
140139
.Where(r => r.CreateUserId == userId && !r.Deleted)
141140
.AnyAsync();
142141
}
@@ -161,7 +160,7 @@ public async Task<int> CreateResourceAsync(ResourceTypeEnum resourceType, string
161160
var param4 = new SqlParameter("@p4", SqlDbType.Int) { Value = this.TimezoneOffsetManager.UserTimezoneOffset ?? (object)DBNull.Value };
162161
var param5 = new SqlParameter("@p5", SqlDbType.Int) { Direction = ParameterDirection.Output };
163162

164-
await this.dbContext.Database.ExecuteSqlRawAsync("resources.ResourceCreate @p0, @p1, @p2, @p3, @p4, @p5 output", param0, param1, param2, param3, param4, param5);
163+
await this.DbContext.Database.ExecuteSqlRawAsync("resources.ResourceCreate @p0, @p1, @p2, @p3, @p4, @p5 output", param0, param1, param2, param3, param4, param5);
165164

166165
int resourceVersionId = (int)param5.Value;
167166

OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Repositories/RoleUserGroupRepository.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public RoleUserGroupRepository(LearningHubDbContext dbContext, ITimezoneOffsetMa
3333
/// <returns>The <see cref="Task"/>.</returns>
3434
public async Task<RoleUserGroup> GetByIdAsync(int id)
3535
{
36-
return await DbContext.RoleUserGroup
36+
return await this.DbContext.RoleUserGroup
3737
.Include(n => n.UserGroup).ThenInclude(u => u.UserGroupAttribute)
3838
.Include(n => n.Role)
3939
.Include(n => n.Scope).AsNoTracking().FirstOrDefaultAsync(n => n.Id == id);
@@ -48,7 +48,7 @@ public async Task<RoleUserGroup> GetByIdAsync(int id)
4848
/// <returns>The <see cref="Task"/>.</returns>
4949
public async Task<RoleUserGroup> GetByRoleIdUserGroupIdScopeIdAsync(int roleId, int userGroupId, int scopeId)
5050
{
51-
return await DbContext.RoleUserGroup.AsNoTracking().FirstOrDefaultAsync(n => n.RoleId == roleId && n.UserGroupId == userGroupId && n.ScopeId == scopeId);
51+
return await this.DbContext.RoleUserGroup.AsNoTracking().FirstOrDefaultAsync(n => n.RoleId == roleId && n.UserGroupId == userGroupId && n.ScopeId == scopeId);
5252
}
5353

5454
/// <summary>
@@ -57,7 +57,7 @@ public async Task<RoleUserGroup> GetByRoleIdUserGroupIdScopeIdAsync(int roleId,
5757
/// <returns>The <see cref="Task"/>.</returns>
5858
public new IQueryable<RoleUserGroup> GetAll()
5959
{
60-
return DbContext.Set<RoleUserGroup>()
60+
return this.DbContext.Set<RoleUserGroup>()
6161
.Include(n => n.UserGroup).ThenInclude(u => u.UserGroupAttribute)
6262
.Include(n => n.Role)
6363
.Include(n => n.Scope)
@@ -72,7 +72,7 @@ public async Task<RoleUserGroup> GetByRoleIdUserGroupIdScopeIdAsync(int roleId,
7272
/// <returns>The <see cref="Task"/>.</returns>
7373
public async Task<List<RoleUserGroup>> GetAllforSearch(int catalogueNodeId, int userId)
7474
{
75-
return await DbContext.RoleUserGroup.Where(rug => rug.Scope.CatalogueNodeId == catalogueNodeId)
75+
return await this.DbContext.RoleUserGroup.Where(rug => rug.Scope.CatalogueNodeId == catalogueNodeId)
7676
.Include(n => n.UserGroup).ThenInclude(u => u.UserUserGroup.Where(p => p.UserId == userId))
7777
.Include(n => n.Scope).AsNoTracking()
7878
.ToListAsync();
@@ -86,7 +86,7 @@ public async Task<List<RoleUserGroup>> GetAllforSearch(int catalogueNodeId, int
8686
/// <returns>The <see cref="Task"/>.</returns>
8787
public async Task<List<RoleUserGroup>> GetByRoleIdCatalogueId(int roleId, int catalogueNodeId)
8888
{
89-
return await DbContext.RoleUserGroup.Where(rug => rug.RoleId == roleId && rug.Scope.CatalogueNodeId == catalogueNodeId)
89+
return await this.DbContext.RoleUserGroup.Where(rug => rug.RoleId == roleId && rug.Scope.CatalogueNodeId == catalogueNodeId)
9090
.Include(n => n.UserGroup).ThenInclude(u => u.UserGroupAttribute)
9191
.Include(n => n.Role)
9292
.Include(n => n.Scope).AsNoTracking().OrderByDescending(rug => rug.RoleId).ToListAsync();
@@ -100,7 +100,7 @@ public async Task<List<RoleUserGroup>> GetByRoleIdCatalogueId(int roleId, int ca
100100
/// <returns>The <see cref="Task"/>.</returns>
101101
public async Task<List<RoleUserGroup>> GetByRoleIdCatalogueIdWithUsers(int roleId, int catalogueNodeId)
102102
{
103-
return await DbContext.RoleUserGroup.Where(rug => rug.RoleId == roleId && rug.Scope.CatalogueNodeId == catalogueNodeId)
103+
return await this.DbContext.RoleUserGroup.Where(rug => rug.RoleId == roleId && rug.Scope.CatalogueNodeId == catalogueNodeId)
104104
.Include(n => n.UserGroup).ThenInclude(u => u.UserUserGroup).Where(u => u.UserGroup != null && u.UserGroup.UserUserGroup.Count() > 0)
105105
.Include(n => n.Role)
106106
.Include(n => n.Scope).AsNoTracking().ToListAsync();
@@ -115,7 +115,7 @@ public async Task<List<RoleUserGroupViewModel>> GetRoleUserGroupViewModelsByUser
115115
{
116116
var param0 = new SqlParameter("@userGroupId", SqlDbType.Int) { Value = userGroupId };
117117

118-
var vm = await DbContext.RoleUserGroupViewModel.FromSqlRaw("hub.RoleUserGroupGetByUserGroupId @userGroupId", param0).AsNoTracking().ToListAsync();
118+
var vm = await this.DbContext.RoleUserGroupViewModel.FromSqlRaw("hub.RoleUserGroupGetByUserGroupId @userGroupId", param0).AsNoTracking().ToListAsync();
119119
return vm;
120120
}
121121

@@ -128,7 +128,7 @@ public async Task<List<RoleUserGroupViewModel>> GetRoleUserGroupViewModelsByUser
128128
{
129129
var param0 = new SqlParameter("@userId", SqlDbType.Int) { Value = userId };
130130

131-
var vm = await DbContext.RoleUserGroupViewModel.FromSqlRaw("hub.RoleUserGroupGetByUserId @userId", param0).AsNoTracking().ToListAsync();
131+
var vm = await this.DbContext.RoleUserGroupViewModel.FromSqlRaw("hub.RoleUserGroupGetByUserId @userId", param0).AsNoTracking().ToListAsync();
132132
return vm;
133133
}
134134
}

OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/SearchService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public async Task<SearchAllCatalogueResultModel> GetAllCatalogueSearchResultsAsy
133133
var offset = catalogSearchRequestModel.PageIndex * catalogSearchRequestModel.PageSize;
134134
var client = await this.findwiseClient.GetClient(this.findwiseConfig.SearchBaseUrl);
135135
var request = string.Format(
136-
this.findwiseConfig.SearchEndpointPath + "?offset={1}&hits={2}&q={3}&token={4}",
136+
this.findwiseConfig.SearchEndpointPath + "{0}?offset={1}&hits={2}&q={3}&token={4}",
137137
this.findwiseConfig.CollectionIds.Catalogue,
138138
offset,
139139
catalogSearchRequestModel.PageSize,
@@ -180,7 +180,7 @@ public async Task<AutoSuggestionModel> GetAutoSuggestionResultsAsync(string term
180180
{
181181
var client = await this.findwiseClient.GetClient(this.findwiseConfig.SearchBaseUrl);
182182
var request = string.Format(
183-
this.findwiseConfig.SearchEndpointPath + "?q={1}&token={2}",
183+
this.findwiseConfig.SearchEndpointPath + "{0}?q={1}&token={2}",
184184
this.findwiseConfig.CollectionIds.AutoSuggestion,
185185
this.EncodeSearchText(term),
186186
this.findwiseConfig.Token);

OpenAPI/LearningHub.Nhs.OpenApi/Controllers/ResourceController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ await this.searchService.Search(
121121
/// </summary>
122122
/// <param name="originalResourceReferenceId">id.</param>
123123
/// <returns>Resource data.</returns>
124-
[HttpGet("{originalResourceReferenceId}")]
124+
[HttpGet("GetResourceReferenceByOriginalId/{originalResourceReferenceId}")]
125125
public async Task<ResourceReferenceWithResourceDetailsViewModel> GetResourceReferenceByOriginalId(int originalResourceReferenceId)
126126
{
127127
return await this.resourceService.GetResourceReferenceByOriginalId(originalResourceReferenceId, this.CurrentUserId.GetValueOrDefault());

WebAPI/LearningHub.Nhs.API/appsettings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@
110110
"ResourceReadonlyAccess": "<p>You can continue to search for and access resources in the Learning Hub, however you cannot contribute to it.</p><p class='pt-4'>If you have any questions about this, please contact the <a href='[SupportContact]' target='_blank'>support team.</a></p>",
111111
"ResourceContributeAccess": "<p>You can now contribute to the Learning Hub and continue to search for and access resources.</p><p class='pt-4'>If you have any questions about this, please contact the <a href='[SupportContact]' target='_blank'>support team.</a></p>"
112112
},
113-
"SupportContact": "https://support.learninghub.nhs.uk/conversation/new/2",
113+
"SupportContact": "https://support.learninghub.nhs.uk/support/tickets/new",
114114
"SpecialSearchCharacters": "#:&()/-[]%^{}~\"",
115115
"ElfhCacheSettings": {
116116
"ElfhRedisKeyPrefix": "",

0 commit comments

Comments
 (0)