diff --git a/app/src/App.js b/app/src/App.js
index 57df089c..9c58d903 100644
--- a/app/src/App.js
+++ b/app/src/App.js
@@ -12,7 +12,7 @@ import {AppsRoute} from "./components/Apps";
import {InventoryRoute} from "./components/Inventory";
import {ArchiveRoute, ArchivesList} from "./components/Archive";
import {Saver} from "./components/Upload";
-import {MoreButton, SearchInput} from "./components/Common";
+import {MoreButton, PageContainer, SearchInput} from "./components/Common";
import {FilesRoute} from "./components/Files";
import {useSearch, useVersion} from "./hooks/customHooks";
@@ -49,10 +49,10 @@ function Welcome() {
}
return (
-
+
{body}
-
+
)
}
@@ -78,7 +78,7 @@ export default function App() {
-
+ <>
@@ -91,7 +91,7 @@ export default function App() {
-
+ >
>
diff --git a/app/src/components/Admin.js b/app/src/components/Admin.js
index 04fe60dd..d1bf3371 100644
--- a/app/src/components/Admin.js
+++ b/app/src/components/Admin.js
@@ -23,7 +23,7 @@ import {
startDownloads
} from "../api";
import TimezoneSelect from 'react-timezone-select';
-import {secondsToDate, secondsToFrequency, TabLinks, textEllipsis, WROLModeMessage} from "./Common";
+import {PageContainer, secondsToDate, secondsToFrequency, TabLinks, textEllipsis, WROLModeMessage} from "./Common";
import {Route} from "react-router-dom";
class Settings extends React.Component {
@@ -450,12 +450,12 @@ export default function Admin(props) {
];
return (
- <>
+
- >
+
)
}
diff --git a/app/src/components/Apps.js b/app/src/components/Apps.js
index 994e8a4d..4eb7db15 100644
--- a/app/src/components/Apps.js
+++ b/app/src/components/Apps.js
@@ -4,6 +4,7 @@ import Container from "semantic-ui-react/dist/commonjs/elements/Container";
import {Route} from "react-router-dom";
import "../static/wrolpi.css";
import {decryptOTP, encryptOTP} from "../api";
+import {PageContainer} from "./Common";
class Encrypt extends React.Component {
constructor(props) {
@@ -145,10 +146,8 @@ class OTP extends React.Component {
export function AppsRoute(props) {
return (
- <>
-
-
-
- >
+
+
+
)
}
diff --git a/app/src/components/Archive.js b/app/src/components/Archive.js
index 62859f90..d283f455 100644
--- a/app/src/components/Archive.js
+++ b/app/src/components/Archive.js
@@ -3,6 +3,7 @@ import {Card, Confirm, Container, Icon, Image, Placeholder} from "semantic-ui-re
import Paginator, {
ClearButton,
ExternalLink,
+ PageContainer,
SearchInput,
TabLinks,
textEllipsis,
@@ -321,10 +322,10 @@ export function ArchiveRoute(props) {
{text: 'Domains', to: '/archive/domains'},
{text: 'Manage', to: '/archive/manage'},
];
- return <>
+ return
- >
+
}
diff --git a/app/src/components/Common.js b/app/src/components/Common.js
index da319da6..7aa63ba8 100644
--- a/app/src/components/Common.js
+++ b/app/src/components/Common.js
@@ -1,5 +1,5 @@
import React, {useEffect, useState} from "react";
-import {Card, Container, Form, Icon, Image, Input, Menu, Pagination, Progress} from 'semantic-ui-react';
+import {Card, Container, Form, Icon, Image, Input, Menu, Pagination, Progress, Responsive} from 'semantic-ui-react';
import {Link, NavLink} from "react-router-dom";
import Button from "semantic-ui-react/dist/commonjs/elements/Button";
import Grid from "semantic-ui-react/dist/commonjs/collections/Grid";
@@ -652,3 +652,20 @@ export function TabLinks({links}) {
)
}
+
+export function PageContainer(props) {
+ return (
+ <>
+
+
+ {props.children}
+
+
+
+
+ {props.children}
+
+
+ >
+ )
+}
diff --git a/app/src/components/Files.js b/app/src/components/Files.js
index 9a2345bf..149d8329 100644
--- a/app/src/components/Files.js
+++ b/app/src/components/Files.js
@@ -3,7 +3,7 @@ import FileBrowser from 'react-keyed-file-browser';
import {Button, Confirm, Header, Icon, Modal} from "semantic-ui-react";
import 'react-keyed-file-browser/dist/react-keyed-file-browser.css';
import {deleteFile, getFiles} from "../api";
-import {humanFileSize, secondsToDateTime} from "./Common";
+import {humanFileSize, PageContainer, secondsToDateTime} from "./Common";
const icons = {
File: ,
@@ -112,6 +112,8 @@ class Files extends React.Component {
export function FilesRoute(props) {
return (
-
+
+
+
);
}
diff --git a/app/src/components/Inventory.js b/app/src/components/Inventory.js
index 6ded9ded..a9039744 100644
--- a/app/src/components/Inventory.js
+++ b/app/src/components/Inventory.js
@@ -16,7 +16,7 @@ import {
import {Button, Checkbox, Dropdown, Form, Grid, Header, Portal, Segment, Table} from "semantic-ui-react";
import {Route} from "react-router-dom";
import {toast} from 'react-semantic-toasts';
-import {arraysEqual, enumerate, replaceNullValues, TabLinks} from './Common';
+import {arraysEqual, enumerate, PageContainer, replaceNullValues, TabLinks} from './Common';
import _ from 'lodash';
class InventorySummary extends React.Component {
@@ -1094,10 +1094,10 @@ export function InventoryRoute(props) {
{text: 'Summary', to: '/inventory/summary'},
];
return (
- <>
+
- >
+
)
}
diff --git a/app/src/components/VideoPlayer.js b/app/src/components/VideoPlayer.js
index 4c5857b0..e27be091 100644
--- a/app/src/components/VideoPlayer.js
+++ b/app/src/components/VideoPlayer.js
@@ -4,8 +4,9 @@ import {deleteVideo, favoriteVideo} from "../api";
import Button from "semantic-ui-react/dist/commonjs/elements/Button";
import {Link} from "react-router-dom";
import {humanFileSize, humanNumber, secondsToTimestamp, uploadDate, VideoCard} from "./Common";
-import {Confirm, Container, Segment, Tab} from "semantic-ui-react";
+import {Confirm, Segment, Tab} from "semantic-ui-react";
import Grid from "semantic-ui-react/dist/commonjs/collections/Grid";
+import Container from "semantic-ui-react/dist/commonjs/elements/Container";
const MEDIA_PATH = '/media';
@@ -106,70 +107,76 @@ function VideoPage(props) {
let tabPanes = [descriptionPane, statisticsPane, captionsPane];
return (
-
-
-
-
+
+ Back
+
+
-
{video.title || video.video_path}
- {video.upload_date && {uploadDate(video.upload_date)}
}
-
- {channel &&
- {channel.name}
- }
-
+
-
- {favorite_button}
-
-
-
-
- setDeleteOpen(false)}
- onConfirm={() => handleDeleteVideo(video.id)}
- />
-
-
+
+
-
+ {video.title || video.video_path}
+ {video.upload_date && {uploadDate(video.upload_date)}
}
+
+ {channel &&
+ {channel.name}
+ }
+
-
-
-
- {props.prev && <>Older
>}
-
-
- {props.next && <>Newer
>}
-
-
-
-
+
+ {favorite_button}
+
+
+
+
+ setDeleteOpen(false)}
+ onConfirm={() => handleDeleteVideo(video.id)}
+ />
+
+
+
+
+
+
+
+
+ {props.prev && <>Older
>}
+
+
+ {props.next && <>Newer
>}
+
+
+
+
+ >
)
}
diff --git a/app/src/components/Videos.js b/app/src/components/Videos.js
index dbd8bc6d..321ac9d3 100644
--- a/app/src/components/Videos.js
+++ b/app/src/components/Videos.js
@@ -5,7 +5,7 @@ import Paginator, {
DEFAULT_LIMIT,
defaultSearchOrder,
defaultVideoOrder,
- humanFileSize,
+ humanFileSize, PageContainer,
Progresses,
scrollToTop,
searchOrders,
@@ -512,7 +512,7 @@ export function VideosRoute(props) {
];
return (
- <>
+
- >
+
)
}