This commit is contained in:
Jannis Mattheis 2021-12-04 20:43:17 +01:00
parent e272343deb
commit 6b3467b1d7
19 changed files with 88 additions and 44 deletions

View File

@ -34,7 +34,8 @@ export default class AddDialog extends Component<IProps, IState> {
open={true} open={true}
onClose={fClose} onClose={fClose}
aria-labelledby="form-dialog-title" aria-labelledby="form-dialog-title"
id="app-dialog"> id="app-dialog"
>
<DialogTitle id="form-dialog-title">Create an application</DialogTitle> <DialogTitle id="form-dialog-title">Create an application</DialogTitle>
<DialogContent> <DialogContent>
<DialogContentText> <DialogContentText>
@ -69,7 +70,8 @@ export default class AddDialog extends Component<IProps, IState> {
disabled={!submitEnabled} disabled={!submitEnabled}
onClick={submitAndClose} onClick={submitAndClose}
color="primary" color="primary"
variant="contained"> variant="contained"
>
Create Create
</Button> </Button>
</div> </div>

View File

@ -53,11 +53,13 @@ class Applications extends Component<Stores<'appStore'>> {
id="create-app" id="create-app"
variant="contained" variant="contained"
color="primary" color="primary"
onClick={() => (this.createDialog = true)}> onClick={() => (this.createDialog = true)}
>
Create Application Create Application
</Button> </Button>
} }
maxWidth={1000}> maxWidth={1000}
>
<Grid item xs={12}> <Grid item xs={12}>
<Paper elevation={6}> <Paper elevation={6}>
<Table id="app-table"> <Table id="app-table">

View File

@ -44,7 +44,8 @@ export default class UpdateDialog extends Component<IProps, IState> {
open={true} open={true}
onClose={fClose} onClose={fClose}
aria-labelledby="form-dialog-title" aria-labelledby="form-dialog-title"
id="app-dialog"> id="app-dialog"
>
<DialogTitle id="form-dialog-title">Update an application</DialogTitle> <DialogTitle id="form-dialog-title">Update an application</DialogTitle>
<DialogContent> <DialogContent>
<DialogContentText> <DialogContentText>
@ -79,7 +80,8 @@ export default class UpdateDialog extends Component<IProps, IState> {
disabled={!submitEnabled} disabled={!submitEnabled}
onClick={submitAndClose} onClick={submitAndClose}
color="primary" color="primary"
variant="contained"> variant="contained"
>
Update Update
</Button> </Button>
</div> </div>

View File

@ -28,7 +28,8 @@ export default class AddDialog extends Component<IProps, {name: string}> {
open={true} open={true}
onClose={fClose} onClose={fClose}
aria-labelledby="form-dialog-title" aria-labelledby="form-dialog-title"
id="client-dialog"> id="client-dialog"
>
<DialogTitle id="form-dialog-title">Create a client</DialogTitle> <DialogTitle id="form-dialog-title">Create a client</DialogTitle>
<DialogContent> <DialogContent>
<TextField <TextField
@ -46,14 +47,16 @@ export default class AddDialog extends Component<IProps, {name: string}> {
<Button onClick={fClose}>Cancel</Button> <Button onClick={fClose}>Cancel</Button>
<Tooltip <Tooltip
placement={'bottom-start'} placement={'bottom-start'}
title={submitEnabled ? '' : 'name is required'}> title={submitEnabled ? '' : 'name is required'}
>
<div> <div>
<Button <Button
className="create" className="create"
disabled={!submitEnabled} disabled={!submitEnabled}
onClick={submitAndClose} onClick={submitAndClose}
color="primary" color="primary"
variant="contained"> variant="contained"
>
Create Create
</Button> </Button>
</div> </div>

View File

@ -48,10 +48,12 @@ class Clients extends Component<Stores<'clientStore'>> {
id="create-client" id="create-client"
variant="contained" variant="contained"
color="primary" color="primary"
onClick={() => (this.showDialog = true)}> onClick={() => (this.showDialog = true)}
>
Create Client Create Client
</Button> </Button>
}> }
>
<Grid item xs={12}> <Grid item xs={12}>
<Paper elevation={6}> <Paper elevation={6}>
<Table id="client-table"> <Table id="client-table">

View File

@ -41,7 +41,8 @@ export default class UpdateDialog extends Component<IProps, IState> {
open={true} open={true}
onClose={fClose} onClose={fClose}
aria-labelledby="form-dialog-title" aria-labelledby="form-dialog-title"
id="client-dialog"> id="client-dialog"
>
<DialogTitle id="form-dialog-title">Update a Client</DialogTitle> <DialogTitle id="form-dialog-title">Update a Client</DialogTitle>
<DialogContent> <DialogContent>
<DialogContentText> <DialogContentText>
@ -68,7 +69,8 @@ export default class UpdateDialog extends Component<IProps, IState> {
disabled={!submitEnabled} disabled={!submitEnabled}
onClick={submitAndClose} onClick={submitAndClose}
color="primary" color="primary"
variant="contained"> variant="contained"
>
Update Update
</Button> </Button>
</div> </div>

View File

@ -23,7 +23,8 @@ export default function ConfirmDialog({title, text, fClose, fOnSubmit}: IProps)
open={true} open={true}
onClose={fClose} onClose={fClose}
aria-labelledby="form-dialog-title" aria-labelledby="form-dialog-title"
className="confirm-dialog"> className="confirm-dialog"
>
<DialogTitle id="form-dialog-title">{title}</DialogTitle> <DialogTitle id="form-dialog-title">{title}</DialogTitle>
<DialogContent> <DialogContent>
<DialogContentText>{text}</DialogContentText> <DialogContentText>{text}</DialogContentText>
@ -37,7 +38,8 @@ export default function ConfirmDialog({title, text, fClose, fOnSubmit}: IProps)
autoFocus autoFocus
color="primary" color="primary"
variant="contained" variant="contained"
className="confirm"> className="confirm"
>
Yes Yes
</Button> </Button>
</DialogActions> </DialogActions>

View File

@ -16,7 +16,8 @@ export const ConnectionErrorBanner = ({height, retry, message}: ConnectionErrorB
width: '100%', width: '100%',
zIndex: 1300, zIndex: 1300,
position: 'relative', position: 'relative',
}}> }}
>
<Typography align="center" variant="h6" style={{lineHeight: `${height}px`}}> <Typography align="center" variant="h6" style={{lineHeight: `${height}px`}}>
{message}{' '} {message}{' '}
<Button variant="outlined" onClick={retry}> <Button variant="outlined" onClick={retry}>

View File

@ -36,7 +36,8 @@ class ScrollUpButton extends Component {
display: this.state.display, display: this.state.display,
opacity: this.state.opacity, opacity: this.state.opacity,
}} }}
onClick={this.scrollUp}> onClick={this.scrollUp}
>
<KeyboardArrowUp /> <KeyboardArrowUp />
</Fab> </Fab>
); );

View File

@ -31,7 +31,8 @@ class SettingsDialog extends Component<IProps & Stores<'currentUser'>> {
open={true} open={true}
onClose={fClose} onClose={fClose}
aria-labelledby="form-dialog-title" aria-labelledby="form-dialog-title"
id="changepw-dialog"> id="changepw-dialog"
>
<DialogTitle id="form-dialog-title">Change Password</DialogTitle> <DialogTitle id="form-dialog-title">Change Password</DialogTitle>
<DialogContent> <DialogContent>
<TextField <TextField
@ -54,7 +55,8 @@ class SettingsDialog extends Component<IProps & Stores<'currentUser'>> {
disabled={pass.length === 0} disabled={pass.length === 0}
onClick={submitAndClose} onClick={submitAndClose}
color="primary" color="primary"
variant="contained"> variant="contained"
>
Change Change
</Button> </Button>
</div> </div>

View File

@ -106,7 +106,8 @@ class Header extends Component<IProps> {
</Link> </Link>
<a <a
href={'https://github.com/gotify/server/releases/tag/v' + version} href={'https://github.com/gotify/server/releases/tag/v' + version}
className={classes.link}> className={classes.link}
>
<Typography variant="button" color="inherit"> <Typography variant="button" color="inherit">
@{version} @{version}
</Typography> </Typography>
@ -122,7 +123,8 @@ class Header extends Component<IProps> {
href="https://github.com/gotify/server" href="https://github.com/gotify/server"
className={classes.link} className={classes.link}
target="_blank" target="_blank"
rel="noopener noreferrer"> rel="noopener noreferrer"
>
<IconButton color="inherit"> <IconButton color="inherit">
<GitHubIcon /> <GitHubIcon />
</IconButton> </IconButton>

View File

@ -57,7 +57,8 @@ class Navigation extends Component<
onClick={() => setNavOpen(false)} onClick={() => setNavOpen(false)}
className={`${classes.link} item`} className={`${classes.link} item`}
to={'/messages/' + app.id} to={'/messages/' + app.id}
key={app.id}> key={app.id}
>
<ListItem button> <ListItem button>
<ListItemText primary={app.name} /> <ListItemText primary={app.name} />
</ListItem> </ListItem>
@ -78,7 +79,8 @@ class Navigation extends Component<
classes={{root: classes.root, paper: classes.drawerPaper}} classes={{root: classes.root, paper: classes.drawerPaper}}
navOpen={navOpen} navOpen={navOpen}
setNavOpen={setNavOpen} setNavOpen={setNavOpen}
id="message-navigation"> id="message-navigation"
>
<div className={classes.toolbar} /> <div className={classes.toolbar} />
<Link className={classes.link} to="/" onClick={() => setNavOpen(false)}> <Link className={classes.link} to="/" onClick={() => setNavOpen(false)}>
<ListItem button disabled={!loggedIn} className="all"> <ListItem button disabled={!loggedIn} className="all">
@ -94,7 +96,8 @@ class Navigation extends Component<
onClick={() => { onClick={() => {
requestPermission(); requestPermission();
this.setState({showRequestNotification: false}); this.setState({showRequestNotification: false});
}}> }}
>
Enable Notifications Enable Notifications
</Button> </Button>
) : null} ) : null}

View File

@ -70,7 +70,8 @@ class Messages extends Component<IProps & Stores<'messagesStore' | 'appStore'>,
disabled={!hasMessages} disabled={!hasMessages}
color="primary" color="primary"
onClick={() => messagesStore.refreshByApp(appId)} onClick={() => messagesStore.refreshByApp(appId)}
style={{marginRight: 5}}> style={{marginRight: 5}}
>
Refresh Refresh
</Button> </Button>
<Button <Button
@ -78,18 +79,21 @@ class Messages extends Component<IProps & Stores<'messagesStore' | 'appStore'>,
variant="contained" variant="contained"
disabled={!hasMessages} disabled={!hasMessages}
color="primary" color="primary"
onClick={() => messagesStore.removeByApp(appId)}> onClick={() => messagesStore.removeByApp(appId)}
>
Delete All Delete All
</Button> </Button>
</div> </div>
}> }
>
{hasMessages ? ( {hasMessages ? (
<div style={{width: '100%'}} id="messages"> <div style={{width: '100%'}} id="messages">
<ReactInfinite <ReactInfinite
key={appId} key={appId}
useWindowAsScrollContainer useWindowAsScrollContainer
preloadBatchSize={window.innerHeight * 3} preloadBatchSize={window.innerHeight * 3}
elementHeight={messages.map((m) => this.heights[m.id] || 1)}> elementHeight={messages.map((m) => this.heights[m.id] || 1)}
>
{messages.map(this.renderMessage)} {messages.map(this.renderMessage)}
</ReactInfinite> </ReactInfinite>

View File

@ -79,7 +79,8 @@ class PluginDetailView extends Component<IProps & Stores<'pluginStore'>, IState>
name={'Configurer'} name={'Configurer'}
description={'This is the configuration panel for this plugin.'} description={'This is the configuration panel for this plugin.'}
icon={Build} icon={Build}
refresh={this.refreshConfigurer.bind(this)}> refresh={this.refreshConfigurer.bind(this)}
>
<ConfigurerPanel <ConfigurerPanel
pluginInfo={pluginInfo} pluginInfo={pluginInfo}
initialConfig={ initialConfig={
@ -99,7 +100,8 @@ class PluginDetailView extends Component<IProps & Stores<'pluginStore'>, IState>
name={'Displayer'} name={'Displayer'}
description={'This is the information generated by the plugin.'} description={'This is the information generated by the plugin.'}
refresh={this.refreshDisplayer.bind(this)} refresh={this.refreshDisplayer.bind(this)}
icon={Subject}> icon={Subject}
>
<DisplayerPanel <DisplayerPanel
pluginInfo={pluginInfo} pluginInfo={pluginInfo}
displayText={ displayText={
@ -145,7 +147,8 @@ const PanelWrapper: React.FC<IPanelWrapperProps> = ({
style={{float: 'right'}} style={{float: 'right'}}
onClick={() => { onClick={() => {
refresh(); refresh();
}}> }}
>
<Refresh /> <Refresh />
</Button> </Button>
) : null} ) : null}
@ -199,7 +202,8 @@ class ConfigurerPanel extends Component<IConfigurerPanelProps, {unsavedChanges:
this.props.save(newConfig!).then(() => { this.props.save(newConfig!).then(() => {
this.setState({unsavedChanges: null}); this.setState({unsavedChanges: null});
}); });
}}> }}
>
<Typography variant="button">Save</Typography> <Typography variant="button">Save</Typography>
</Button> </Button>
</div> </div>
@ -260,7 +264,8 @@ class PluginInfo extends Component<{pluginInfo: IPlugin}> {
href={url} href={url}
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
className="custom-route"> className="custom-route"
>
{url} {url}
</a> </a>
))(`${config.get('url')}plugin/${id}/custom/${token}/`)} ))(`${config.get('url')}plugin/${id}/custom/${token}/`)}

View File

@ -42,7 +42,8 @@ class SnackBarHandler extends Component<Stores<'snackManager'>> {
key="close" key="close"
aria-label="Close" aria-label="Close"
color="inherit" color="inherit"
onClick={this.closeCurrentSnack}> onClick={this.closeCurrentSnack}
>
<Close /> <Close />
</IconButton> </IconButton>
} }

View File

@ -44,7 +44,8 @@ export default class AddEditDialog extends Component<IProps, IState> {
open={true} open={true}
onClose={fClose} onClose={fClose}
aria-labelledby="form-dialog-title" aria-labelledby="form-dialog-title"
id="add-edit-user-dialog"> id="add-edit-user-dialog"
>
<DialogTitle id="form-dialog-title"> <DialogTitle id="form-dialog-title">
{isEdit ? 'Edit ' + this.props.name : 'Add a user'} {isEdit ? 'Edit ' + this.props.name : 'Add a user'}
</DialogTitle> </DialogTitle>
@ -90,14 +91,16 @@ export default class AddEditDialog extends Component<IProps, IState> {
? '' ? ''
: 'password is required' : 'password is required'
: 'name is required' : 'name is required'
}> }
>
<div> <div>
<Button <Button
className="save-create" className="save-create"
disabled={!passPresent || !namePresent} disabled={!passPresent || !namePresent}
onClick={submitAndClose} onClick={submitAndClose}
color="primary" color="primary"
variant="contained"> variant="contained"
>
{isEdit ? 'Save' : 'Create'} {isEdit ? 'Save' : 'Create'}
</Button> </Button>
</div> </div>

View File

@ -50,7 +50,8 @@ class Login extends Component<Stores<'currentUser'>> {
color="primary" color="primary"
disabled={!!this.props.currentUser.connectionErrorMessage} disabled={!!this.props.currentUser.connectionErrorMessage}
style={{marginTop: 15, marginBottom: 5}} style={{marginTop: 15, marginBottom: 5}}
onClick={this.login}> onClick={this.login}
>
Login Login
</Button> </Button>
</form> </form>
@ -78,7 +79,8 @@ class Login extends Component<Stores<'currentUser'>> {
id="register" id="register"
variant="contained" variant="contained"
color="primary" color="primary"
onClick={() => (this.registerDialog = true)}> onClick={() => (this.registerDialog = true)}
>
Register Register
</Button> </Button>
); );

View File

@ -41,7 +41,8 @@ export default class RegistrationDialog extends Component<IProps, IState> {
open={true} open={true}
onClose={fClose} onClose={fClose}
aria-labelledby="form-dialog-title" aria-labelledby="form-dialog-title"
id="add-edit-user-dialog"> id="add-edit-user-dialog"
>
<DialogTitle id="form-dialog-title">Registration</DialogTitle> <DialogTitle id="form-dialog-title">Registration</DialogTitle>
<DialogContent> <DialogContent>
<TextField <TextField
@ -74,14 +75,16 @@ export default class RegistrationDialog extends Component<IProps, IState> {
? '' ? ''
: 'password is required' : 'password is required'
: 'name is required' : 'name is required'
}> }
>
<div> <div>
<Button <Button
className="save-create" className="save-create"
disabled={!passPresent || !namePresent} disabled={!passPresent || !namePresent}
onClick={submitAndClose} onClick={submitAndClose}
color="primary" color="primary"
variant="contained"> variant="contained"
>
Register Register
</Button> </Button>
</div> </div>

View File

@ -75,10 +75,12 @@ class Users extends Component<WithStyles<'wrapper'> & Stores<'userStore'>> {
id="create-user" id="create-user"
variant="contained" variant="contained"
color="primary" color="primary"
onClick={() => (this.createDialog = true)}> onClick={() => (this.createDialog = true)}
>
Create User Create User
</Button> </Button>
}> }
>
<Grid item xs={12}> <Grid item xs={12}>
<Paper elevation={6}> <Paper elevation={6}>
<Table id="user-table"> <Table id="user-table">