aboutsummaryrefslogtreecommitdiff
path: root/modern/src/login
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2022-07-02 16:54:42 -0700
committerAnton Tananaev <anton@traccar.org>2022-07-02 16:54:42 -0700
commit44fd230a4c0043a6e89a793bcf333072a01441a6 (patch)
treec4681bf322e2d4e5cf1c7258ada2b3c985468471 /modern/src/login
parent8f3b27e86ac9b9a94bdd5319501ecb7e056ec595 (diff)
downloadtrackermap-web-44fd230a4c0043a6e89a793bcf333072a01441a6.tar.gz
trackermap-web-44fd230a4c0043a6e89a793bcf333072a01441a6.tar.bz2
trackermap-web-44fd230a4c0043a6e89a793bcf333072a01441a6.zip
Option to hide login language (fix #654)
Diffstat (limited to 'modern/src/login')
-rw-r--r--modern/src/login/LoginLayout.js38
-rw-r--r--modern/src/login/LoginPage.js25
2 files changed, 28 insertions, 35 deletions
diff --git a/modern/src/login/LoginLayout.js b/modern/src/login/LoginLayout.js
index dff187c4..83a87500 100644
--- a/modern/src/login/LoginLayout.js
+++ b/modern/src/login/LoginLayout.js
@@ -40,12 +40,6 @@ const useStyles = makeStyles((theme) => ({
padding: theme.spacing(5),
width: '100%',
},
- attribution: {
- position: 'fixed',
- bottom: theme.spacing(1),
- right: theme.spacing(1.5),
- fontSize: 'x-small',
- },
}));
const LoginLayout = ({ children }) => {
@@ -53,26 +47,20 @@ const LoginLayout = ({ children }) => {
const theme = useTheme();
return (
- <>
- <main className={classes.root}>
- <div className={classes.sidebar}>
- {!useMediaQuery(theme.breakpoints.down('lg')) && (
- <svg height="64" width="240">
- <use xlinkHref={`${logoSvg}#img`} />
- </svg>
- )}
- </div>
- <Paper className={classes.paper}>
- <form className={classes.form}>
- {children}
- </form>
- </Paper>
- </main>
- <div className={classes.attribution}>
- Powered by&nbsp;
- <a href="https://www.traccar.org/">Traccar GPS Tracking System</a>
+ <main className={classes.root}>
+ <div className={classes.sidebar}>
+ {!useMediaQuery(theme.breakpoints.down('lg')) && (
+ <svg height="64" width="240">
+ <use xlinkHref={`${logoSvg}#img`} />
+ </svg>
+ )}
</div>
- </>
+ <Paper className={classes.paper}>
+ <form className={classes.form}>
+ {children}
+ </form>
+ </Paper>
+ </main>
);
};
diff --git a/modern/src/login/LoginPage.js b/modern/src/login/LoginPage.js
index 88a25d9d..c108f739 100644
--- a/modern/src/login/LoginPage.js
+++ b/modern/src/login/LoginPage.js
@@ -40,7 +40,8 @@ const useStyles = makeStyles((theme) => ({
},
resetPassword: {
cursor: 'pointer',
- textAlign: 'right',
+ textAlign: 'center',
+ marginTop: theme.spacing(2),
},
}));
@@ -59,11 +60,12 @@ const LoginPage = () => {
const [email, setEmail] = usePersistedState('loginEmail', '');
const [password, setPassword] = useState('');
- const registrationEnabled = useSelector((state) => state.session.server?.registration);
- const emailEnabled = useSelector((state) => state.session.server?.emailEnabled);
+ const registrationEnabled = useSelector((state) => state.session.server.registration);
+ const languageEnabled = useSelector((state) => !state.session.server.attributes['ui.disableLoginLanguage']);
+ const emailEnabled = useSelector((state) => state.session.server.emailEnabled);
const [announcementShown, setAnnouncementShown] = useState(false);
- const announcement = useSelector((state) => state.session.server?.announcement);
+ const announcement = useSelector((state) => state.session.server.announcement);
const handleSubmit = async (event) => {
event.preventDefault();
@@ -158,18 +160,21 @@ const LoginPage = () => {
>
{t('loginRegister')}
</Button>
- <FormControl fullWidth>
- <InputLabel>{t('loginLanguage')}</InputLabel>
- <Select label={t('loginLanguage')} value={language} onChange={(e) => setLanguage(e.target.value)}>
- {languageList.map((it) => <MenuItem key={it.code} value={it.code}>{it.name}</MenuItem>)}
- </Select>
- </FormControl>
+ {languageEnabled && (
+ <FormControl fullWidth>
+ <InputLabel>{t('loginLanguage')}</InputLabel>
+ <Select label={t('loginLanguage')} value={language} onChange={(e) => setLanguage(e.target.value)}>
+ {languageList.map((it) => <MenuItem key={it.code} value={it.code}>{it.name}</MenuItem>)}
+ </Select>
+ </FormControl>
+ )}
</div>
{emailEnabled && (
<Link
onClick={() => navigate('/reset-password')}
className={classes.resetPassword}
underline="none"
+ variant="caption"
>
{t('loginReset')}
</Link>