mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-10 01:43:43 +00:00
small refinment
This commit is contained in:
@@ -2,6 +2,8 @@ import { ChangeEvent, useEffect, useRef, useState } from 'react';
|
||||
import {
|
||||
Button,
|
||||
Input,
|
||||
InputGroup,
|
||||
InputRightAddon,
|
||||
Modal,
|
||||
ModalBody,
|
||||
ModalCloseButton,
|
||||
@@ -193,53 +195,64 @@ export default function SheetsModal(props: SheetsModalProps) {
|
||||
{sheetState.auth ? <div>You are authenticated</div> : <div>You are not authenticated</div>}
|
||||
<div>
|
||||
<label htmlFor='sheetid'>Sheet ID </label>
|
||||
<Input
|
||||
type='text'
|
||||
ref={sheetid}
|
||||
id='sheetid'
|
||||
width='240px'
|
||||
size='sm'
|
||||
textAlign='right'
|
||||
variant='ontime-filled-on-light'
|
||||
/>
|
||||
{sheetState.id ? <IoCheckmarkCircleOutline /> : <IoCloseCircleOutline />}
|
||||
<InputGroup size='sm'>
|
||||
<Input
|
||||
type='text'
|
||||
ref={sheetid}
|
||||
id='sheetid'
|
||||
width='240px'
|
||||
textAlign='right'
|
||||
variant='ontime-filled-on-light'
|
||||
/>
|
||||
<InputRightAddon>
|
||||
{sheetState.id ? <IoCheckmarkCircleOutline color='green' /> : <IoCloseCircleOutline color='red' />}
|
||||
</InputRightAddon>
|
||||
</InputGroup>
|
||||
<br />
|
||||
<label htmlFor='worksheet'>Worksheet </label>
|
||||
<Input
|
||||
type='text'
|
||||
ref={worksheet}
|
||||
id='worksheet'
|
||||
width='240px'
|
||||
size='sm'
|
||||
textAlign='right'
|
||||
variant='ontime-filled-on-light'
|
||||
/>
|
||||
{sheetState.worksheet ? <IoCheckmarkCircleOutline /> : <IoCloseCircleOutline />}
|
||||
<InputGroup size='sm'>
|
||||
<Input
|
||||
type='text'
|
||||
ref={worksheet}
|
||||
id='worksheet'
|
||||
width='240px'
|
||||
textAlign='right'
|
||||
variant='ontime-filled-on-light'
|
||||
/>
|
||||
<InputRightAddon>
|
||||
{sheetState.worksheet ? (
|
||||
<IoCheckmarkCircleOutline color='green' />
|
||||
) : (
|
||||
<IoCloseCircleOutline color='red' />
|
||||
)}
|
||||
</InputRightAddon>
|
||||
</InputGroup>
|
||||
</div>
|
||||
<br />
|
||||
<div>
|
||||
<Button
|
||||
disabled={!sheetState.worksheet}
|
||||
variant='ontime-subtle-on-light'
|
||||
padding='0 2em'
|
||||
onClick={handlePullData}
|
||||
rightIcon={<IoArrowDownCircleOutline />}
|
||||
>
|
||||
Pull Rundown
|
||||
</Button>
|
||||
<Button
|
||||
disabled={!sheetState.worksheet}
|
||||
variant='ontime-subtle-on-light'
|
||||
padding='0 2em'
|
||||
onClick={handlePushData}
|
||||
rightIcon={<IoArrowUpCircleOutline />}
|
||||
>
|
||||
Push Rundown
|
||||
</Button>
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
</ModalBody>
|
||||
<ModalFooter>
|
||||
{!rundown && (
|
||||
<div>
|
||||
<Button
|
||||
variant='ontime-subtle-on-light'
|
||||
padding='0 2em'
|
||||
onClick={handlePullData}
|
||||
rightIcon={<IoArrowDownCircleOutline />}
|
||||
>
|
||||
Pull data
|
||||
</Button>
|
||||
<Button
|
||||
variant='ontime-subtle-on-light'
|
||||
padding='0 2em'
|
||||
onClick={handlePushData}
|
||||
rightIcon={<IoArrowUpCircleOutline />}
|
||||
>
|
||||
Push data
|
||||
</Button>
|
||||
</div>
|
||||
)}
|
||||
<Button variant='ontime-ghost-on-light'>Reset</Button>
|
||||
{!rundown && (
|
||||
<Button variant='ontime-filled' padding='0 2em' onClick={handelSave}>
|
||||
|
||||
@@ -508,13 +508,14 @@ export async function uploadGoogleSheetClientFile(req, res) {
|
||||
|
||||
/**
|
||||
* @returns link to sheet auth url
|
||||
* @method GET
|
||||
*/
|
||||
export async function sheetAuthUrl(req, res) {
|
||||
const successful = await Sheet.openAuthServer();
|
||||
if (successful === false) {
|
||||
res.status(500).send('bad');
|
||||
const authUrl = await Sheet.openAuthServer();
|
||||
if (!authUrl) {
|
||||
res.status(500).send('Unable to start auth server');
|
||||
} else {
|
||||
res.status(200).send(successful);
|
||||
res.status(200).send(authUrl);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -261,7 +261,7 @@ class sheet {
|
||||
* @returns {Promise<string | false>} - returns url to serve on success
|
||||
* @throws
|
||||
*/
|
||||
public async openAuthServer(): Promise<string | false> {
|
||||
public async openAuthServer(): Promise<string | null> {
|
||||
//TODO: this only works on local networks
|
||||
if (sheet.authUrl) {
|
||||
clearTimeout(this.authServerTimeout);
|
||||
@@ -278,13 +278,13 @@ class sheet {
|
||||
logger.error(LogOrigin.Server, `${err}`),
|
||||
);
|
||||
if (!creadFile) {
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
const keyFile = JSON.parse(creadFile);
|
||||
const keys = keyFile.installed || keyFile.web;
|
||||
if (!keys.redirect_uris || keys.redirect_uris.length === 0) {
|
||||
logger.error(LogOrigin.Server, `${invalidRedirectUri}`);
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
|
||||
// create an oAuth client to authorize the API call
|
||||
|
||||
@@ -7,4 +7,4 @@ export type GoogleSheetState = {
|
||||
auth: boolean;
|
||||
id: boolean;
|
||||
worksheet: boolean;
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user