new database entry for theme
new settings switcher
This commit is contained in:
parent
0ec4954ec5
commit
8c4b1a836a
@ -59,6 +59,8 @@ if (isset($_POST['action'])) {
|
|||||||
$r['passwordEnabled'] = false;
|
$r['passwordEnabled'] = false;
|
||||||
}
|
}
|
||||||
unset($r['password']);
|
unset($r['password']);
|
||||||
|
|
||||||
|
$r['DarkMode'] = ($r['DarkMode'] != '0');
|
||||||
echo json_encode($r);
|
echo json_encode($r);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,8 @@ create table settings
|
|||||||
episode_path varchar(255) null,
|
episode_path varchar(255) null,
|
||||||
password varchar(32) default '-1' null,
|
password varchar(32) default '-1' null,
|
||||||
mediacenter_name varchar(32) default 'OpenMediaCenter' null,
|
mediacenter_name varchar(32) default 'OpenMediaCenter' null,
|
||||||
|
TMDB_grabbing tinyint null,
|
||||||
|
DarkMode tinyint default 0 null
|
||||||
PRIMARY KEY (id)
|
PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -34,13 +34,14 @@ class App extends React.Component {
|
|||||||
fetch('/api/Settings.php', {method: 'POST', body: updateRequest})
|
fetch('/api/Settings.php', {method: 'POST', body: updateRequest})
|
||||||
.then((response) => response.json()
|
.then((response) => response.json()
|
||||||
.then((result) => {
|
.then((result) => {
|
||||||
console.log(result);
|
// set theme
|
||||||
|
StaticInfos.enableDarkTheme(result.DarkMode);
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
generalSettingsLoaded: true,
|
generalSettingsLoaded: true,
|
||||||
passwordsupport: result.passwordEnabled,
|
passwordsupport: result.passwordEnabled,
|
||||||
mediacentername: result.mediacenter_name
|
mediacentername: result.mediacenter_name
|
||||||
});
|
});
|
||||||
console.log(this.state);
|
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,7 +85,7 @@ class App extends React.Component {
|
|||||||
render() {
|
render() {
|
||||||
const themeStyle = StaticInfos.isDarkTheme() ? darktheme : lighttheme;
|
const themeStyle = StaticInfos.isDarkTheme() ? darktheme : lighttheme;
|
||||||
// add the main theme to the page body
|
// add the main theme to the page body
|
||||||
document.body.className += ' ' + themeStyle.backgroundcolor;
|
document.body.className = themeStyle.backgroundcolor;
|
||||||
return (
|
return (
|
||||||
<div className="App">
|
<div className="App">
|
||||||
<div className={[style.navcontainer, themeStyle.backgroundcolor, themeStyle.textcolor, themeStyle.hrcolor].join(' ')}>
|
<div className={[style.navcontainer, themeStyle.backgroundcolor, themeStyle.textcolor, themeStyle.hrcolor].join(' ')}>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
class GlobalInfos {
|
class GlobalInfos {
|
||||||
#darktheme = false;
|
#darktheme = true;
|
||||||
|
|
||||||
isDarkTheme() {
|
isDarkTheme() {
|
||||||
return this.#darktheme;
|
return this.#darktheme;
|
||||||
@ -11,6 +11,6 @@ class GlobalInfos {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const StaticInfos = new GlobalInfos();
|
const StaticInfos = new GlobalInfos();
|
||||||
Object.freeze(StaticInfos);
|
//Object.freeze(StaticInfos);
|
||||||
|
|
||||||
export default StaticInfos;
|
export default StaticInfos;
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
body {
|
|
||||||
margin: 0;
|
|
||||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
|
|
||||||
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
|
|
||||||
sans-serif;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
}
|
|
@ -13,7 +13,7 @@
|
|||||||
display: block;
|
display: block;
|
||||||
float: left;
|
float: left;
|
||||||
width: 60%;
|
width: 60%;
|
||||||
margin-top: 25px;
|
margin-top: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.videoactions {
|
.videoactions {
|
||||||
|
@ -74,6 +74,14 @@ class GeneralSettings extends React.Component {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
{this.state.passwordsupport ?
|
||||||
|
<Form.Group data-testid="passwordfield">
|
||||||
|
<Form.Label>Password</Form.Label>
|
||||||
|
<Form.Control type="password" placeholder="**********" value={this.state.password}
|
||||||
|
onChange={(e) => this.setState({password: e.target.value})}/>
|
||||||
|
</Form.Group> : null
|
||||||
|
}
|
||||||
|
|
||||||
<Form.Check
|
<Form.Check
|
||||||
type="switch"
|
type="switch"
|
||||||
id="custom-switch-2"
|
id="custom-switch-2"
|
||||||
@ -85,13 +93,18 @@ class GeneralSettings extends React.Component {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{this.state.passwordsupport ?
|
<Form.Check
|
||||||
<Form.Group data-testid="passwordfield">
|
type="switch"
|
||||||
<Form.Label>Password</Form.Label>
|
id="custom-switch-3"
|
||||||
<Form.Control type="password" placeholder="**********" value={this.state.password}
|
data-testid='darktheme-switch'
|
||||||
onChange={(e) => this.setState({password: e.target.value})}/>
|
label="Enable Dark-Theme"
|
||||||
</Form.Group> : null
|
checked={StaticInfos.isDarkTheme()}
|
||||||
}
|
onChange={() => {
|
||||||
|
StaticInfos.enableDarkTheme(!StaticInfos.isDarkTheme());
|
||||||
|
this.forceUpdate();
|
||||||
|
// todo initiate rerender
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
|
||||||
<Form.Group className={style.mediacenternameform} data-testid="nameform">
|
<Form.Group className={style.mediacenternameform} data-testid="nameform">
|
||||||
<Form.Label>The name of the Mediacenter</Form.Label>
|
<Form.Label>The name of the Mediacenter</Form.Label>
|
||||||
|
Loading…
Reference in New Issue
Block a user