mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-10 13:12:50 +01:00
84 lines
2.9 KiB
JavaScript
84 lines
2.9 KiB
JavaScript
|
/**
|
||
|
* Invoice Ninja (https://invoiceninja.com)
|
||
|
*
|
||
|
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||
|
*
|
||
|
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
|
||
|
*
|
||
|
* @license https://opensource.org/licenses/AAL
|
||
|
*/
|
||
|
|
||
|
import Axios from "axios";
|
||
|
|
||
|
class Setup {
|
||
|
constructor() {
|
||
|
this.checkDbButton = document.getElementById("test-db-connection");
|
||
|
this.checkDbAlert = document.getElementById("database-response");
|
||
|
this.checkDbEndpoint = document.querySelector(
|
||
|
'meta[name="test-db-endpoint"]'
|
||
|
).content;
|
||
|
|
||
|
this.checkSmtpButton = document.getElementById("test-smtp-connection");
|
||
|
this.checkSmtpAlert = document.getElementById("smtp-response");
|
||
|
this.checkSmtpEndpoint = document.querySelector(
|
||
|
'meta[name="test-smtp-endpoint"]'
|
||
|
).content;
|
||
|
}
|
||
|
|
||
|
handleDatabaseCheck() {
|
||
|
|
||
|
let data = {
|
||
|
host: document.querySelector('input[name="host"]').value,
|
||
|
database: document.querySelector('input[name="database"]').value,
|
||
|
username: document.querySelector('input[name="db_username"]').value,
|
||
|
password: document.querySelector('input[name="db_password"]').value,
|
||
|
}
|
||
|
|
||
|
Axios.post(this.checkDbEndpoint, data)
|
||
|
.then(response => this.handleSuccess(this.checkDbAlert))
|
||
|
.catch(e => this.handleFailure(this.checkDbAlert));
|
||
|
}
|
||
|
|
||
|
handleSmtpCheck() {
|
||
|
|
||
|
let data = {
|
||
|
driver: document.querySelector('select[name="mail_driver"]').value,
|
||
|
from_name: document.querySelector('input[name="mail_name"]').value,
|
||
|
from_address: document.querySelector('input[name="mail_address"]').value,
|
||
|
username: document.querySelector('input[name="mail_username"]').value,
|
||
|
host: document.querySelector('input[name="mail_host"]').value,
|
||
|
port: document.querySelector('input[name="mail_port"]').value,
|
||
|
encryption: document.querySelector('select[name="encryption"]').value,
|
||
|
password: document.querySelector('input[name="mail_password"]').value,
|
||
|
}
|
||
|
|
||
|
Axios.post(this.checkSmtpEndpoint, data)
|
||
|
.then(response => this.handleSuccess(this.checkSmtpAlert))
|
||
|
.catch(e => this.handleFailure(this.checkSmtpAlert));
|
||
|
}
|
||
|
|
||
|
handleSuccess(element) {
|
||
|
element.classList.remove("alert-failure");
|
||
|
element.innerText = "Success!";
|
||
|
element.classList.add("alert-success");
|
||
|
}
|
||
|
|
||
|
handleFailure(element) {
|
||
|
element.classList.remove("alert-success");
|
||
|
element.innerText = "Oops, looks like something isn't correct!";
|
||
|
element.classList.add("alert-failure");
|
||
|
}
|
||
|
|
||
|
handle() {
|
||
|
this.checkDbButton.addEventListener("click", () =>
|
||
|
this.handleDatabaseCheck()
|
||
|
);
|
||
|
|
||
|
this.checkSmtpButton.addEventListener("click", () =>
|
||
|
this.handleSmtpCheck()
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
new Setup().handle();
|