1
0
Fork 0
mirror of https://github.com/xevidos/codiad.git synced 2025-03-17 05:48:09 +01:00
codiad/install/install.js

207 lines
4 KiB
JavaScript
Raw Normal View History

( function( global, $ ) {
// Define core
let codiad = global.codiad,
scripts = document.getElementsByTagName( 'script' ),
path = scripts[scripts.length-1].src.split( '?' )[0],
curpath = path.split( '/' ).slice( 0, -1 ).join( '/' ) + '/';
$( document ).ready( function() {
codiad.install.init();
});
codiad.install = {
dbconditions: {
storage: {
values: [
{
action: "hide",
value: "filesystem",
},
{
action: "show",
value: "mysql",
},
{
action: "show",
value: "pgsql",
}
],
},
},
d: {},
form: null,
init: function() {
let _ = this;
this.d = {
storage: {
default: "",
element: $( '<select></select>' ),
label: "Data Storage Method: ",
name: "storage",
options: {
"Filesystem": "filesystem",
"MySQL": "mysql",
"PostgreSQL": "pgsql",
},
required: true,
type: "select",
},
dbhost: {
conditions: $.extend( true, {}, _.dbconditions ),
default: "localhost",
label: "Database Host: ",
type: "text",
},
dbname: {
conditions: $.extend( true, {}, _.dbconditions ),
default: "",
label: "Database Name: ",
type: "text",
},
dbuser: {
conditions: $.extend( true, {}, _.dbconditions ),
default: "",
label: "Database User: ",
type: "text",
},
dbpass: {
conditions: $.extend( true, {}, _.dbconditions ),
default: "",
label: "Database Password: ",
type: "text",
},
dbpass1: {
conditions: $.extend( true, {}, _.dbconditions ),
default: "",
label: "Repeat Password: ",
type: "text",
},
};
this.form = new codiad.forms({
data: _.d,
container: $( "#installation" ),
submit_label: "Check Data Storage Method",
});
this.form.submit = async function() {
let _this = this;
let invalid_values;
if( _this.saving ) {
return;
}
_this.saving = true;
let data = await _this.m.get_values();
let submit = _this.v.controls.find( `[type="submit"]` );
submit.attr( "disabled", true );
submit.text( "Submitting ..." );
let response = await codiad.common.ajax( "./index.php", "POST", data );
console.log( response );
let r = JSON.parse( response );
if( r.status == "error" ) {
codiad.message.error( r.message );
$( "#data_status" ).html( "<br><br>Data Status:<br>" + r.value );
} else {
_.user_setup();
}
submit.text( _this.submit_label );
submit.attr( "disabled", false );
_this.saving = false;
}
},
user_setup: function() {
let _this = this;
this.d = {
username: {
default: "",
label: "Username: ",
type: "text",
},
email: {
default: "",
label: "Email: ",
type: "email",
},
password: {
default: "",
label: "Password: ",
type: "text",
},
password: {
default: "",
label: "Repeat Password: ",
type: "text",
},
};
this.form = new codiad.forms({
data: _this.d,
container: $( "#installation" ),
submit_label: "Create User",
});
this.form.submit = async function() {
let _this = this;
let invalid_values;
if( _this.saving ) {
return;
}
_this.saving = true;
let data = await _this.m.get_values();
let submit = _this.v.controls.find( `[type="submit"]` );
submit.attr( "disabled", true );
submit.text( "Submitting ..." );
let response = await codiad.common.ajax( "./index.php", "POST", data );
console.log( response );
let r = JSON.parse( response );
if( r.status == "error" ) {
codiad.message.error( r.message );
$( "#data_status" ).html( "<br><br>Data Status:<br>" + r.value );
}
submit.text( _this.submit_label );
submit.attr( "disabled", false );
_this.saving = false;
}
},
};
})( this, jQuery );