admin -> src

This commit is contained in:
Roman Hergenreder 2020-06-18 15:20:50 +02:00
parent 63fcba9dd9
commit f91567186e
23 changed files with 35 additions and 17 deletions

8
js/admin.min.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -10,7 +10,7 @@ export default function Icon(props) {
classes.push(type); classes.push(type);
classes.push("fa-" + icon); classes.push("fa-" + icon);
if (icon === "spinner") { if (icon === "spinner" || icon === "circle-notch") {
classes.push("fa-spin"); classes.push("fa-spin");
} }

@ -21,7 +21,8 @@ export default class CreateUser extends React.Component {
username: "", username: "",
email: "", email: "",
password: "", password: "",
confirmPassword: "" confirmPassword: "",
isSubmitting: false
} }
} }
@ -107,7 +108,10 @@ export default class CreateUser extends React.Component {
<Icon icon={"arrow-left"}/> <Icon icon={"arrow-left"}/>
&nbsp;Back &nbsp;Back
</Link> </Link>
<button type={"submit"} className={"btn btn-primary mt-2"}>Submit</button> { this.state.isSubmitting
? <button type={"submit"} className={"btn btn-primary mt-2"} disabled>Loading&nbsp;<Icon icon={"circle-notch"} /></button>
: <button type={"submit"} className={"btn btn-primary mt-2"}>Submit</button>
}
</form> </form>
</div> </div>
</div> </div>
@ -119,6 +123,10 @@ export default class CreateUser extends React.Component {
submitForm(e) { submitForm(e) {
e.preventDefault(); e.preventDefault();
if (this.state.isSubmitting) {
return;
}
const requiredFields = (this.state.sendInvite ? const requiredFields = (this.state.sendInvite ?
["username", "email"] : ["username", "email"] :
["username", "password", "confirmPassword"]); ["username", "password", "confirmPassword"]);
@ -137,6 +145,7 @@ export default class CreateUser extends React.Component {
return; return;
} }
this.setState({ ...this.state, isSubmitting: true });
const username = this.state.username; const username = this.state.username;
const email = this.state.email || ""; const email = this.state.email || "";
const password = this.state.password; const password = this.state.password;
@ -147,21 +156,29 @@ export default class CreateUser extends React.Component {
let errors = this.state.errors.slice(); let errors = this.state.errors.slice();
if (!res.success) { if (!res.success) {
errors.push({ title: "Error inviting User", message: res.msg, type: "danger" }); errors.push({ title: "Error inviting User", message: res.msg, type: "danger" });
this.setState({ ...this.state, errors: errors }); this.setState({ ...this.state, errors: errors, isSubmitting: false });
} else { } else {
errors.push({ title: "Success", message: "The invitation was successfully sent.", type: "success" }); errors.push({ title: "Success", message: "The invitation was successfully sent.", type: "success" });
this.setState({ ...this.state, errors: errors, username: "", email: "" }); this.setState({ ...this.state, errors: errors, username: "", email: "", isSubmitting: false });
} }
}); });
} else { } else {
if (this.state.password !== this.state.confirmPassword) {
let errors = this.state.errors.slice();
errors.push({ title: "Error creating User", message: "The given passwords do not match", type: "danger" });
this.setState({ ...this.state, errors: errors, password: "", confirmPassword: "", isSubmitting: false });
return;
}
this.parent.api.createUser(username, email, password, confirmPassword).then((res) => { this.parent.api.createUser(username, email, password, confirmPassword).then((res) => {
let errors = this.state.errors.slice(); let errors = this.state.errors.slice();
if (!res.success) { if (!res.success) {
errors.push({ title: "Error creating User", message: res.msg, type: "danger" }); errors.push({ title: "Error creating User", message: res.msg, type: "danger" });
this.setState({ ...this.state, errors: errors, password: "", confirmPassword: "" }); this.setState({ ...this.state, errors: errors, password: "", confirmPassword: "", isSubmitting: false });
} else { } else {
errors.push({ title: "Success", message: "The user was successfully created.", type: "success" }); errors.push({ title: "Success", message: "The user was successfully created.", type: "success" });
this.setState({ ...this.state, errors: errors, username: "", email: "", password: "", confirmPassword: "" }); this.setState({ ...this.state, errors: errors, username: "", email: "", password: "", confirmPassword: "", isSubmitting: false });
} }
}); });
} }

@ -63,8 +63,9 @@ export default class Overview extends React.Component {
for (let date in this.state.visitors) { for (let date in this.state.visitors) {
let month = parseInt(date) % 100 - 1; let month = parseInt(date) % 100 - 1;
if (month >= 0 && month < 12) { if (month >= 0 && month < 12) {
data[month] = this.state.visitors[date]; let count = parseInt(this.state.visitors[date]);
visitorCount += this.state.visitors[date]; data[month] = count;
visitorCount += count;
} }
} }