diff --git a/src/components/pages/ModuleOverview/index.tsx b/src/components/pages/ModuleOverview/index.tsx index d8283b20b584f8804df321e6dc65465a26fed41b..5864e95da39db874f446d87cb05c387fe44a48bb 100644 --- a/src/components/pages/ModuleOverview/index.tsx +++ b/src/components/pages/ModuleOverview/index.tsx @@ -7,6 +7,7 @@ import { api, methods } from "../../../constants/routes"; import Accordion from "react-bootstrap/Accordion"; import Card from "react-bootstrap/Card"; import MyBreadcrumbs from "components/atoms/MyBreadcrumbs"; +import queryString from "query-string"; import FileListItem from "components/atoms/FileListItem"; import { resourceTypeToIcon, @@ -53,9 +54,24 @@ class ModuleOverview extends React.Component< data.json().then((json) => { for (const key in json) { let resource = json[key]; + + let resourceURL = queryString.parseUrl(resource.path); + let extension = resource.path.substr( + resource.path.lastIndexOf(".") + 1 + ); + let altType = undefined; + if ( + resourceURL.url === + "https://imperial.cloud.panopto.eu/Panopto/Pages/Viewer.aspx" + ) { + altType = "video"; + } else if (extension === "pdf") { + altType = "pdf"; + } + resourceArr.push({ title: resource.title, - type: resource.type, + type: altType || resource.type, tags: resource.tags, folder: resource.category, id: resource.id, diff --git a/src/components/pages/ModuleResources/index.tsx b/src/components/pages/ModuleResources/index.tsx index 6bf5b8dc86c9ea88a6a1f9221f2e55a6dcec4687..882d1c5e436995446a6a8b1cb331dae1ee05b73e 100644 --- a/src/components/pages/ModuleResources/index.tsx +++ b/src/components/pages/ModuleResources/index.tsx @@ -42,7 +42,6 @@ class ModuleResources extends React.Component<ResourcesProps, ResourceState> { isLoaded: false, resources: [], searchText: "", - // change this value to switch between staff and student for testing isStaff: false, }; } @@ -57,6 +56,9 @@ class ModuleResources extends React.Component<ResourcesProps, ResourceState> { let resource = json[key]; let resourceURL = queryString.parseUrl(resource.path); + let extension = resource.path.substr( + resource.path.lastIndexOf(".") + 1 + ); let thumbnail = undefined; let altType = undefined; if ( @@ -65,6 +67,8 @@ class ModuleResources extends React.Component<ResourcesProps, ResourceState> { ) { altType = "video"; thumbnail = `https://imperial.cloud.panopto.eu/Panopto/Services/FrameGrabber.svc/FrameRedirect?objectId=${resourceURL.query.id}&mode=Delivery`; + } else if (extension === "pdf") { + altType = "pdf"; } resourceArr.push({ title: resource.title, @@ -138,7 +142,7 @@ class ModuleResources extends React.Component<ResourcesProps, ResourceState> { } includeInSearchResult(item: Resource, searchText: string) { - let rx = /([a-z]+)\(([^)]+)\)/gi; + const rx = /([a-z]+)\(([^)]+)\)/gi; let match: RegExpExecArray | null; let title = item.title.toLowerCase(); let tags = item.tags.map((tag) => tag.toLowerCase());