diff --git a/LearningHub.Nhs.WebUI/Scripts/vuesrc/mkiomediaplayer.ts b/LearningHub.Nhs.WebUI/Scripts/vuesrc/mkiomediaplayer.ts
index 17c48d8fb..f5b76ec6d 100644
--- a/LearningHub.Nhs.WebUI/Scripts/vuesrc/mkiomediaplayer.ts
+++ b/LearningHub.Nhs.WebUI/Scripts/vuesrc/mkiomediaplayer.ts
@@ -24,6 +24,7 @@ interface PlayerConfig {
}
interface SourceConfig {
+ enableLowLatency: boolean;
hls: string;
drm: {
clearkey: ClearKeyConfig;
@@ -64,6 +65,7 @@ function getPlayerConfig(mkioKey: string, onPlayerReady: () => void, onSubtitleA
function initializePlayer(videoContainer: HTMLElement, playerConfig: MKPlayerConfig, playBackUrl: string): any {
const player = new MKPlayer(videoContainer, playerConfig);
const sourceConfig: SourceConfig = {
+ enableLowLatency: true,
hls: playBackUrl,
drm: {
clearkey: getClearKeyConfig()
diff --git a/LearningHub.Nhs.WebUI/Scripts/vuesrc/notification/notifications.vue b/LearningHub.Nhs.WebUI/Scripts/vuesrc/notification/notifications.vue
index e35ee3089..2c3b9b0b1 100644
--- a/LearningHub.Nhs.WebUI/Scripts/vuesrc/notification/notifications.vue
+++ b/LearningHub.Nhs.WebUI/Scripts/vuesrc/notification/notifications.vue
@@ -152,7 +152,7 @@
showNotification(notification: NotificationModel) {
this.selectedNotification = notification;
this.showMessage = true;
- setTimeout(() => { $('html,body').scrollTop($("#backToList").offset().top); }, 100);
+ setTimeout(() => { $('html,body').scrollTop($(".nhsuk-back-link").offset().top); }, 100);
},
showNotificationList(event: any) {
diff --git a/LearningHub.Nhs.WebUI/Views/Shared/_LoginBanner.cshtml b/LearningHub.Nhs.WebUI/Views/Shared/_LoginBanner.cshtml
index 91a06a32d..e87879ce7 100644
--- a/LearningHub.Nhs.WebUI/Views/Shared/_LoginBanner.cshtml
+++ b/LearningHub.Nhs.WebUI/Views/Shared/_LoginBanner.cshtml
@@ -15,7 +15,7 @@
class="nhsuk-button nhsuk-button--secondary">OpenAthens Log in
- Forgotten username or password
+ Forgotten username or password
Create new account
diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Repositories/ResourceRepository.cs b/OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Repositories/ResourceRepository.cs
index 35547fd4f..deef84ccb 100644
--- a/OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Repositories/ResourceRepository.cs
+++ b/OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Repositories/ResourceRepository.cs
@@ -16,7 +16,6 @@ namespace LearningHub.Nhs.OpenApi.Repositories.Repositories
///
public class ResourceRepository : GenericRepository, IResourceRepository
{
- private LearningHubDbContext dbContext;
///
/// Initializes a new instance of the class.
@@ -31,7 +30,7 @@ public ResourceRepository(LearningHubDbContext dbContext, ITimezoneOffsetManager
///
public async Task> GetResourcesFromIds(IEnumerable resourceIds)
{
- var resources = await this.dbContext.Resource
+ var resources = await this.DbContext.Resource
.Where(r => resourceIds.Contains(r.Id))
.Where(r => !r.Deleted)
.Include(r => r.ResourceReference)
@@ -62,7 +61,7 @@ public async Task> GetResourcesFromIds(IEnumerable re
public async Task> GetResourceReferencesByOriginalResourceReferenceIds(
IEnumerable originalResourceReferenceIds)
{
- return await this.dbContext.ResourceReference
+ return await this.DbContext.ResourceReference
.Where(rr => originalResourceReferenceIds.Contains(rr.OriginalResourceReferenceId))
.Where(rr => !rr.Deleted)
.Where(rr => (int)rr.NodePath.Node.NodeTypeEnum != 4)
@@ -83,7 +82,7 @@ public async Task> GetAchievedCertificatedResourceIds(int currentUserI
var param0 = new SqlParameter("@userId", SqlDbType.Int) { Value = currentUserId };
var param4 = new SqlParameter("@TotalRecords", SqlDbType.Int) { Direction = ParameterDirection.Output };
- var result = this.dbContext.DashboardResourceDto.FromSqlRaw("resources.GetAchievedCertificatedResourcesWithOptionalPagination @userId = @userId, @TotalRecords = @TotalRecords output", param0, param4).ToList();
+ var result = this.DbContext.DashboardResourceDto.FromSqlRaw("resources.GetAchievedCertificatedResourcesWithOptionalPagination @userId = @userId, @TotalRecords = @TotalRecords output", param0, param4).ToList();
List achievedCertificatedResourceIds = result.Select(drd => drd.ResourceId).Distinct().ToList();
return achievedCertificatedResourceIds;
@@ -108,7 +107,7 @@ public async Task> GetResourceActivityPerResour
var resourceIdsParameter = new SqlParameter("@p0", resourceIdsParam ?? (object)DBNull.Value);
var userIdsParameter = new SqlParameter("@p1", userIdsParam ?? (object)DBNull.Value);
- List resourceActivityDTOs = await dbContext.ResourceActivityDTO
+ List resourceActivityDTOs = await this.DbContext.ResourceActivityDTO
.FromSqlRaw(
"[activity].[GetResourceActivityPerResourceMajorVersion] @p0, @p1",
resourceIdsParameter,
@@ -126,7 +125,7 @@ public async Task> GetResourceActivityPerResour
/// The .
public async Task GetByIdAsync(int id)
{
- return await this.dbContext.Resource.AsNoTracking().FirstOrDefaultAsync(r => r.Id == id && !r.Deleted);
+ return await this.DbContext.Resource.AsNoTracking().FirstOrDefaultAsync(r => r.Id == id && !r.Deleted);
}
///
@@ -136,7 +135,7 @@ public async Task GetByIdAsync(int id)
/// If the user has any resources published.
public async Task UserHasPublishedResourcesAsync(int userId)
{
- return await this.dbContext.Resource.AsNoTracking()
+ return await this.DbContext.Resource.AsNoTracking()
.Where(r => r.CreateUserId == userId && !r.Deleted)
.AnyAsync();
}
@@ -161,7 +160,7 @@ public async Task CreateResourceAsync(ResourceTypeEnum resourceType, string
var param4 = new SqlParameter("@p4", SqlDbType.Int) { Value = this.TimezoneOffsetManager.UserTimezoneOffset ?? (object)DBNull.Value };
var param5 = new SqlParameter("@p5", SqlDbType.Int) { Direction = ParameterDirection.Output };
- await this.dbContext.Database.ExecuteSqlRawAsync("resources.ResourceCreate @p0, @p1, @p2, @p3, @p4, @p5 output", param0, param1, param2, param3, param4, param5);
+ await this.DbContext.Database.ExecuteSqlRawAsync("resources.ResourceCreate @p0, @p1, @p2, @p3, @p4, @p5 output", param0, param1, param2, param3, param4, param5);
int resourceVersionId = (int)param5.Value;
diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Repositories/RoleUserGroupRepository.cs b/OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Repositories/RoleUserGroupRepository.cs
index cd0b14d4b..db6e62141 100644
--- a/OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Repositories/RoleUserGroupRepository.cs
+++ b/OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Repositories/RoleUserGroupRepository.cs
@@ -33,7 +33,7 @@ public RoleUserGroupRepository(LearningHubDbContext dbContext, ITimezoneOffsetMa
/// The .
public async Task GetByIdAsync(int id)
{
- return await DbContext.RoleUserGroup
+ return await this.DbContext.RoleUserGroup
.Include(n => n.UserGroup).ThenInclude(u => u.UserGroupAttribute)
.Include(n => n.Role)
.Include(n => n.Scope).AsNoTracking().FirstOrDefaultAsync(n => n.Id == id);
@@ -48,7 +48,7 @@ public async Task GetByIdAsync(int id)
/// The .
public async Task GetByRoleIdUserGroupIdScopeIdAsync(int roleId, int userGroupId, int scopeId)
{
- return await DbContext.RoleUserGroup.AsNoTracking().FirstOrDefaultAsync(n => n.RoleId == roleId && n.UserGroupId == userGroupId && n.ScopeId == scopeId);
+ return await this.DbContext.RoleUserGroup.AsNoTracking().FirstOrDefaultAsync(n => n.RoleId == roleId && n.UserGroupId == userGroupId && n.ScopeId == scopeId);
}
///
@@ -57,7 +57,7 @@ public async Task GetByRoleIdUserGroupIdScopeIdAsync(int roleId,
/// The .
public new IQueryable GetAll()
{
- return DbContext.Set()
+ return this.DbContext.Set()
.Include(n => n.UserGroup).ThenInclude(u => u.UserGroupAttribute)
.Include(n => n.Role)
.Include(n => n.Scope)
@@ -72,7 +72,7 @@ public async Task GetByRoleIdUserGroupIdScopeIdAsync(int roleId,
/// The .
public async Task> GetAllforSearch(int catalogueNodeId, int userId)
{
- return await DbContext.RoleUserGroup.Where(rug => rug.Scope.CatalogueNodeId == catalogueNodeId)
+ return await this.DbContext.RoleUserGroup.Where(rug => rug.Scope.CatalogueNodeId == catalogueNodeId)
.Include(n => n.UserGroup).ThenInclude(u => u.UserUserGroup.Where(p => p.UserId == userId))
.Include(n => n.Scope).AsNoTracking()
.ToListAsync();
@@ -86,7 +86,7 @@ public async Task> GetAllforSearch(int catalogueNodeId, int
/// The .
public async Task> GetByRoleIdCatalogueId(int roleId, int catalogueNodeId)
{
- return await DbContext.RoleUserGroup.Where(rug => rug.RoleId == roleId && rug.Scope.CatalogueNodeId == catalogueNodeId)
+ return await this.DbContext.RoleUserGroup.Where(rug => rug.RoleId == roleId && rug.Scope.CatalogueNodeId == catalogueNodeId)
.Include(n => n.UserGroup).ThenInclude(u => u.UserGroupAttribute)
.Include(n => n.Role)
.Include(n => n.Scope).AsNoTracking().OrderByDescending(rug => rug.RoleId).ToListAsync();
@@ -100,7 +100,7 @@ public async Task> GetByRoleIdCatalogueId(int roleId, int ca
/// The .
public async Task> GetByRoleIdCatalogueIdWithUsers(int roleId, int catalogueNodeId)
{
- return await DbContext.RoleUserGroup.Where(rug => rug.RoleId == roleId && rug.Scope.CatalogueNodeId == catalogueNodeId)
+ return await this.DbContext.RoleUserGroup.Where(rug => rug.RoleId == roleId && rug.Scope.CatalogueNodeId == catalogueNodeId)
.Include(n => n.UserGroup).ThenInclude(u => u.UserUserGroup).Where(u => u.UserGroup != null && u.UserGroup.UserUserGroup.Count() > 0)
.Include(n => n.Role)
.Include(n => n.Scope).AsNoTracking().ToListAsync();
@@ -115,7 +115,7 @@ public async Task> GetRoleUserGroupViewModelsByUser
{
var param0 = new SqlParameter("@userGroupId", SqlDbType.Int) { Value = userGroupId };
- var vm = await DbContext.RoleUserGroupViewModel.FromSqlRaw("hub.RoleUserGroupGetByUserGroupId @userGroupId", param0).AsNoTracking().ToListAsync();
+ var vm = await this.DbContext.RoleUserGroupViewModel.FromSqlRaw("hub.RoleUserGroupGetByUserGroupId @userGroupId", param0).AsNoTracking().ToListAsync();
return vm;
}
@@ -128,7 +128,7 @@ public async Task> GetRoleUserGroupViewModelsByUser
{
var param0 = new SqlParameter("@userId", SqlDbType.Int) { Value = userId };
- var vm = await DbContext.RoleUserGroupViewModel.FromSqlRaw("hub.RoleUserGroupGetByUserId @userId", param0).AsNoTracking().ToListAsync();
+ var vm = await this.DbContext.RoleUserGroupViewModel.FromSqlRaw("hub.RoleUserGroupGetByUserId @userId", param0).AsNoTracking().ToListAsync();
return vm;
}
}
diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/SearchService.cs b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/SearchService.cs
index 027c574f3..09ecc7ac2 100644
--- a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/SearchService.cs
+++ b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/SearchService.cs
@@ -133,7 +133,7 @@ public async Task GetAllCatalogueSearchResultsAsy
var offset = catalogSearchRequestModel.PageIndex * catalogSearchRequestModel.PageSize;
var client = await this.findwiseClient.GetClient(this.findwiseConfig.SearchBaseUrl);
var request = string.Format(
- this.findwiseConfig.SearchEndpointPath + "?offset={1}&hits={2}&q={3}&token={4}",
+ this.findwiseConfig.SearchEndpointPath + "{0}?offset={1}&hits={2}&q={3}&token={4}",
this.findwiseConfig.CollectionIds.Catalogue,
offset,
catalogSearchRequestModel.PageSize,
@@ -180,7 +180,7 @@ public async Task GetAutoSuggestionResultsAsync(string term
{
var client = await this.findwiseClient.GetClient(this.findwiseConfig.SearchBaseUrl);
var request = string.Format(
- this.findwiseConfig.SearchEndpointPath + "?q={1}&token={2}",
+ this.findwiseConfig.SearchEndpointPath + "{0}?q={1}&token={2}",
this.findwiseConfig.CollectionIds.AutoSuggestion,
this.EncodeSearchText(term),
this.findwiseConfig.Token);
diff --git a/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/ResourceController.cs b/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/ResourceController.cs
index 9efd333aa..242c5be57 100644
--- a/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/ResourceController.cs
+++ b/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/ResourceController.cs
@@ -121,7 +121,7 @@ await this.searchService.Search(
///
/// id.
/// Resource data.
- [HttpGet("{originalResourceReferenceId}")]
+ [HttpGet("GetResourceReferenceByOriginalId/{originalResourceReferenceId}")]
public async Task GetResourceReferenceByOriginalId(int originalResourceReferenceId)
{
return await this.resourceService.GetResourceReferenceByOriginalId(originalResourceReferenceId, this.CurrentUserId.GetValueOrDefault());
diff --git a/WebAPI/LearningHub.Nhs.API/appsettings.json b/WebAPI/LearningHub.Nhs.API/appsettings.json
index 6e5e930ef..b35cc9fe6 100644
--- a/WebAPI/LearningHub.Nhs.API/appsettings.json
+++ b/WebAPI/LearningHub.Nhs.API/appsettings.json
@@ -110,7 +110,7 @@
"ResourceReadonlyAccess": "You can continue to search for and access resources in the Learning Hub, however you cannot contribute to it.
If you have any questions about this, please contact the support team.
",
"ResourceContributeAccess": "You can now contribute to the Learning Hub and continue to search for and access resources.
If you have any questions about this, please contact the support team.
"
},
- "SupportContact": "https://support.learninghub.nhs.uk/conversation/new/2",
+ "SupportContact": "https://support.learninghub.nhs.uk/support/tickets/new",
"SpecialSearchCharacters": "#:&()/-[]%^{}~\"",
"ElfhCacheSettings": {
"ElfhRedisKeyPrefix": "",