]> git.localhorst.tv Git - alttp.git/blobdiff - resources/js/components/tournament/SettingsDialog.js
option to hide round numbers
[alttp.git] / resources / js / components / tournament / SettingsDialog.js
index af4d664efe0d2f60c435e169c9a000a395b39bd6..46fbfd87ecae299ec5aef94bddebbf71c691af9b 100644 (file)
@@ -9,6 +9,7 @@ import DiscordForm from './DiscordForm';
 import DiscordSelect from '../common/DiscordSelect';
 import Icon from '../common/Icon';
 import ToggleSwitch from '../common/ToggleSwitch';
+import Tournament from '../../helpers/Tournament';
 import i18n from '../../i18n';
 
 const open = async tournament => {
@@ -56,6 +57,15 @@ const setDiscord = async (tournament, guild_id) => {
        }
 };
 
+const settings = async (tournament, params) => {
+       try {
+               await axios.post(`/api/tournaments/${tournament.id}/settings`, params);
+               toastr.success(i18n.t('tournaments.settingsSuccess'));
+       } catch (e) {
+               toastr.error(i18n.t('tournaments.settingsError'));
+       }
+};
+
 const inviteUrl = 'https://discordapp.com/oauth2/authorize?client_id=951113702839549982&scope=bot';
 
 const SettingsDialog = ({
@@ -77,20 +87,30 @@ const SettingsDialog = ({
        <Modal.Body>
                <Row>
                        <Col sm={tournament.discord ? 6 : 12}>
+                               {Tournament.hasSignup(tournament) ?
+                                       <div className="d-flex align-items-center justify-content-between mb-3">
+                                               <span>{i18n.t('tournaments.open')}</span>
+                                               <ToggleSwitch
+                                                       onChange={({ target: { value } }) => value
+                                                               ? open(tournament) : close(tournament)}
+                                                       value={tournament.accept_applications}
+                                               />
+                                       </div>
+                               : null}
                                <div className="d-flex align-items-center justify-content-between mb-3">
-                                       <span>{i18n.t('tournaments.open')}</span>
+                                       <span>{i18n.t('tournaments.locked')}</span>
                                        <ToggleSwitch
                                                onChange={({ target: { value } }) => value
-                                                       ? open(tournament) : close(tournament)}
-                                               value={tournament.accept_applications}
+                                                       ? lock(tournament) : unlock(tournament)}
+                                               value={tournament.locked}
                                        />
                                </div>
                                <div className="d-flex align-items-center justify-content-between mb-3">
-                                       <span>{i18n.t('tournaments.locked')}</span>
+                                       <span>{i18n.t('tournaments.showNumbers')}</span>
                                        <ToggleSwitch
-                                               onChange={({ target: { value } }) => value
-                                                       ? lock(tournament) : unlock(tournament)}
-                                               value={tournament.locked}
+                                               onChange={({ target: { value } }) =>
+                                                       settings(tournament, { show_numbers: value })}
+                                               value={tournament.show_numbers}
                                        />
                                </div>
                                <div className="d-flex align-items-center justify-content-between">
@@ -137,6 +157,7 @@ SettingsDialog.propTypes = {
                accept_applications: PropTypes.bool,
                discord: PropTypes.string,
                locked: PropTypes.bool,
+               show_numbers: PropTypes.bool,
        }),
 };