akaunting 3.0 (the last dance)
This commit is contained in:
@ -1,91 +1,72 @@
|
||||
<template>
|
||||
<div class="card">
|
||||
<div class="card-header wizard-header p-3">
|
||||
<el-steps :active="active" finish-status="success" align-center>
|
||||
<el-step title="Language"></el-step>
|
||||
<el-step title="Database"></el-step>
|
||||
<el-step title="Admin"></el-step>
|
||||
</el-steps>
|
||||
</div>
|
||||
<div>
|
||||
<InstallSteps :active_state="active"></InstallSteps>
|
||||
|
||||
<div class="card-body">
|
||||
<div role="alert" class="alert alert-danger d-none" :class="(form.response.error) ? 'show' : ''" v-if="form.response.error" v-html="form.response.message"></div>
|
||||
<div role="alert" class="alert alert-danger d-none" :class="(form.response.error) ? 'show' : ''" v-if="form.response.error" v-html="form.response.message"></div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12 form-group required" :class="[{'has-error': form.errors.get('hostname')}]">
|
||||
<label for="hostname" class="form-control-label">Hostname</label>
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5 mt-0">
|
||||
<div class="sm:col-span-6 form-group required" :class="[{'has-error': form.errors.get('hostname')}]">
|
||||
<label for="hostname" class="form-control-label">Hostname</label>
|
||||
|
||||
<div class="input-group input-group-merge">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fa fa-server"></i>
|
||||
</span>
|
||||
<div class="input-group input-group-merge">
|
||||
<input
|
||||
class="form-element"
|
||||
data-name="hostname"
|
||||
data-value="localhost"
|
||||
@keydown="form.errors.clear('hostname')"
|
||||
v-model="form.hostname"
|
||||
required="required"
|
||||
name="hostname"
|
||||
type="text"
|
||||
value="localhost"
|
||||
id="hostname"
|
||||
/>
|
||||
</div>
|
||||
<input class="form-control" data-name="hostname" data-value="localhost" @keydown="form.errors.clear('hostname')" v-model="form.hostname" required="required" name="hostname" type="text" value="localhost" id="hostname">
|
||||
|
||||
<div class="text-red text-sm mt-1 block" v-if="form.errors.has('hostname')" v-html="form.errors.get('hostname')"></div>
|
||||
</div>
|
||||
|
||||
<div class="invalid-feedback d-block" v-if="form.errors.has('hostname')" v-html="form.errors.get('hostname')"></div>
|
||||
</div>
|
||||
<div class="sm:col-span-6 form-group required" :class="[{'has-error': form.errors.get('username')}]">
|
||||
<label for="username" class="form-control-label">Username</label>
|
||||
|
||||
<div class="col-md-12 form-group required" :class="[{'has-error': form.errors.get('username')}]">
|
||||
<label for="username" class="form-control-label">Username</label>
|
||||
|
||||
<div class="input-group input-group-merge">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fa fa-user"></i>
|
||||
</span>
|
||||
<div class="input-group input-group-merge">
|
||||
<input class="form-element" data-name="username" @keydown="form.errors.clear('username')" v-model="form.username" required="required" name="username" type="text" id="username" />
|
||||
</div>
|
||||
<input class="form-control" data-name="username" @keydown="form.errors.clear('username')" v-model="form.username" required="required" name="username" type="text" id="username">
|
||||
|
||||
<div class="text-red text-sm mt-1 block" v-if="form.errors.has('username')" v-html="form.errors.get('username')"></div>
|
||||
</div>
|
||||
|
||||
<div class="invalid-feedback d-block" v-if="form.errors.has('username')" v-html="form.errors.get('username')"></div>
|
||||
</div>
|
||||
<div class="sm:col-span-6 form-group" :class="[{'has-error': form.errors.get('password')}]">
|
||||
<label for="password" class="form-control-label">Password</label>
|
||||
|
||||
<div class="col-md-12 form-group" :class="[{'has-error': form.errors.get('password')}]">
|
||||
<label for="password" class="form-control-label">Password</label>
|
||||
|
||||
<div class="input-group input-group-merge ">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fa fa-key"></i>
|
||||
</span>
|
||||
<div class="input-group input-group-merge">
|
||||
<input class="form-element" data-name="password" v-model="form.password" name="password" type="password" value="" id="password" />
|
||||
</div>
|
||||
<input class="form-control" data-name="password" v-model="form.password" name="password" type="password" value="" id="password">
|
||||
|
||||
<div class="text-red text-sm mt-1 block" v-if="form.errors.has('password')" v-html="form.errors.get('password')"></div>
|
||||
</div>
|
||||
|
||||
<div class="invalid-feedback d-block" v-if="form.errors.has('password')" v-html="form.errors.get('password')"></div>
|
||||
</div>
|
||||
<div class="sm:col-span-6 form-group mb--2 required" :class="[{'has-error': form.errors.get('database')}]">
|
||||
<label for="database" class="form-control-label">Database</label>
|
||||
|
||||
<div class="col-md-12 form-group mb--2 required" :class="[{'has-error': form.errors.get('database')}]">
|
||||
<label for="database" class="form-control-label">Database</label>
|
||||
|
||||
<div class="input-group input-group-merge">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fa fa-database"></i>
|
||||
</span>
|
||||
<div class="input-group input-group-merge">
|
||||
<input class="form-element" data-name="database" @keydown="form.errors.clear('database')" v-model="form.database" required="required" name="database" type="text" id="database" />
|
||||
</div>
|
||||
<input class="form-control" data-name="database" @keydown="form.errors.clear('database')" v-model="form.database" required="required" name="database" type="text" id="database">
|
||||
</div>
|
||||
|
||||
<div class="invalid-feedback d-block" v-if="form.errors.has('database')" v-html="form.errors.get('database')"></div>
|
||||
<div class="text-red text-sm mt-1 block" v-if="form.errors.has('database')" v-html="form.errors.get('database')"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-footer">
|
||||
<div class="row save-buttons">
|
||||
<div class="col-md-12">
|
||||
<button type="submit" @click="onSubmit" :disabled="form.loading" id="next-button" class="btn btn-icon btn-success button-submit header-button-top">
|
||||
<div v-if="form.loading" class="aka-loader-frame">
|
||||
<div class="aka-loader"></div>
|
||||
</div>
|
||||
<span v-if="!form.loading" class="btn-inner--text">
|
||||
Next
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="relative__footer">
|
||||
<div class="sm:col-span-6 flex items-center justify-end mt-3.5">
|
||||
<button type="submit" @click="onSubmit" :disabled="form.loading" id="next-button" class="relative flex items-center justify-center bg-green hover:bg-green-700 text-white px-6 py-1.5 text-base rounded-lg disabled:bg-green-100">
|
||||
<i v-if="form.loading" class="animate-submit delay-[0.28s] absolute w-2 h-2 rounded-full left-0 right-0 -top-3.5 m-auto before:absolute before:w-2 before:h-2 before:rounded-full before:animate-submit before:delay-[0.14s] after:absolute after:w-2 after:h-2 after:rounded-full after:animate-submit before:-left-3.5 after:-right-3.5 after:delay-[0.42s]"></i>
|
||||
<span :class="[{'opacity-0': form.loading}]">
|
||||
Next
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -93,22 +74,24 @@
|
||||
|
||||
<script>
|
||||
import axios from "axios";
|
||||
import Form from './../../plugins/form';
|
||||
import {Step, Steps} from 'element-ui';
|
||||
import Form from "./../../plugins/form";
|
||||
import { Step, Steps } from "element-ui";
|
||||
import InstallSteps from "./Steps.vue";
|
||||
|
||||
export default {
|
||||
name: 'database',
|
||||
name: "database",
|
||||
|
||||
components: {
|
||||
[Step.name]: Step,
|
||||
[Steps.name]: Steps
|
||||
[Steps.name]: Steps,
|
||||
InstallSteps,
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
form: new Form('form-install'),
|
||||
active: 1
|
||||
}
|
||||
form: new Form("form-install"),
|
||||
active: 1,
|
||||
};
|
||||
},
|
||||
|
||||
methods: {
|
||||
@ -119,7 +102,7 @@
|
||||
|
||||
next() {
|
||||
if (this.active++ > 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
@ -1,39 +1,23 @@
|
||||
<template>
|
||||
<div class="card">
|
||||
<div class="card-header wizard-header p-3">
|
||||
<el-steps :active="active" finish-status="success" align-center>
|
||||
<el-step title="Language"></el-step>
|
||||
<el-step title="Database"></el-step>
|
||||
<el-step title="Admin"></el-step>
|
||||
</el-steps>
|
||||
<div>
|
||||
<InstallSteps :active_state="active"></InstallSteps>
|
||||
|
||||
<div class="form-group mb-0">
|
||||
<select v-model="form.lang" name="lang" id="lang" size="13" class="w-full form-control-label">
|
||||
<option v-for="(name, code) in languages" :value="code">
|
||||
{{ name }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group mb-0">
|
||||
<select v-model="form.lang" name="lang" id="lang" size="13" class="col-xl-12 form-control-label">
|
||||
<option v-for="(name, code) in languages" :value="code">
|
||||
{{ name }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-footer">
|
||||
<div class="row save-buttons">
|
||||
<div class="col-md-12">
|
||||
<button type="submit" @click="onSubmit" :disabled="form.loading" id="next-button" class="btn btn-icon btn-success button-submit header-button-top">
|
||||
<div v-if="form.loading" class="aka-loader-frame">
|
||||
<div class="aka-loader"></div>
|
||||
</div>
|
||||
<span v-if="!form.loading" class="btn-inner--text">
|
||||
Next
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="relative__footer">
|
||||
<div class="sm:col-span-6 flex items-center justify-end mt-3.5">
|
||||
<button type="submit" @click="onSubmit" :disabled="form.loading" id="next-button" class="relative flex items-center justify-center bg-green hover:bg-green-700 text-white px-6 py-1.5 text-base rounded-lg disabled:bg-green-100">
|
||||
<i v-if="form.loading" class="animate-submit delay-[0.28s] absolute w-2 h-2 rounded-full left-0 right-0 -top-3.5 m-auto before:absolute before:w-2 before:h-2 before:rounded-full before:animate-submit before:delay-[0.14s] after:absolute after:w-2 after:h-2 after:rounded-full after:animate-submit before:-left-3.5 after:-right-3.5 after:delay-[0.42s]"></i>
|
||||
<span :class="[{'opacity-0': form.loading}]">
|
||||
Next
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -41,34 +25,36 @@
|
||||
|
||||
<script>
|
||||
import axios from "axios";
|
||||
import Form from './../../plugins/form';
|
||||
import {Step, Steps} from 'element-ui';
|
||||
import Form from "./../../plugins/form";
|
||||
import { Step, Steps } from "element-ui";
|
||||
import InstallSteps from "./Steps.vue";
|
||||
|
||||
var base_path = url.replace(window.location.origin, '');
|
||||
var base_path = url.replace(window.location.origin, "");
|
||||
|
||||
export default {
|
||||
name: 'language',
|
||||
name: "language",
|
||||
|
||||
components: {
|
||||
[Step.name]: Step,
|
||||
[Steps.name]: Steps
|
||||
[Steps.name]: Steps,
|
||||
InstallSteps,
|
||||
},
|
||||
|
||||
mounted() {
|
||||
axios.get(base_path + '/install/language/getLanguages')
|
||||
.then(response => {
|
||||
this.languages = response.data.languages;
|
||||
this.form.lang = 'en-GB';
|
||||
})
|
||||
.catch(error => {
|
||||
});
|
||||
axios
|
||||
.get(base_path + "/install/language/getLanguages")
|
||||
.then((response) => {
|
||||
this.languages = response.data.languages;
|
||||
this.form.lang = "en-GB";
|
||||
})
|
||||
.catch((error) => {});
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
form: new Form('form-install'),
|
||||
form: new Form("form-install"),
|
||||
languages: [],
|
||||
active: 0
|
||||
}
|
||||
active: 0,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
// Form Submit
|
||||
@ -78,7 +64,13 @@
|
||||
|
||||
next() {
|
||||
if (this.active++ > 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
select {
|
||||
background-image: none;
|
||||
}
|
||||
</style>
|
||||
|
@ -1,33 +1,19 @@
|
||||
<template>
|
||||
<div class="card">
|
||||
<div class="card-header wizard-header p-3">
|
||||
<el-steps finish-status="success" align-center>
|
||||
<el-step title="Language"></el-step>
|
||||
<el-step title="Database"></el-step>
|
||||
<el-step title="Admin"></el-step>
|
||||
</el-steps>
|
||||
</div>
|
||||
<div>
|
||||
<InstallSteps :active_state="active"></InstallSteps>
|
||||
|
||||
<div class="card-body">
|
||||
<el-alert
|
||||
v-for="requirement in requirements"
|
||||
:key="requirement"
|
||||
:title="requirement"
|
||||
:closable="false"
|
||||
type="error"
|
||||
effect="dark">
|
||||
</el-alert>
|
||||
<el-alert v-for="requirement in requirements" :key="requirement" :title="requirement" :closable="false" type="error" effect="dark"> </el-alert>
|
||||
</div>
|
||||
|
||||
<div class="card-footer">
|
||||
<div class="row save-buttons">
|
||||
<div class="col-md-12">
|
||||
<button type="button" @click="onRefresh" class="btn btn-icon btn-success button-submit header-button-top">
|
||||
<span class="btn-inner--text">
|
||||
Refresh
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="relative__footer">
|
||||
<div class="sm:col-span-6 flex items-center justify-end mt-3.5">
|
||||
<button type="button" @click="onRefresh" :disabled="button_loading" class="relative flex items-center justify-center bg-green hover:bg-green-700 text-white px-6 py-1.5 text-base rounded-lg disabled:bg-green-100">
|
||||
<i v-if="button_loading" class="animate-submit delay-[0.28s] absolute w-2 h-2 rounded-full left-0 right-0 -top-3.5 m-auto before:absolute before:w-2 before:h-2 before:rounded-full before:animate-submit before:delay-[0.14s] after:absolute after:w-2 after:h-2 after:rounded-full after:animate-submit before:-left-3.5 after:-right-3.5 after:delay-[0.42s]"></i>
|
||||
<span :class="[{'opacity-0': button_loading}]">
|
||||
Refresh
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -35,27 +21,32 @@
|
||||
|
||||
<script>
|
||||
import axios from "axios";
|
||||
import {Step, Steps, Alert} from 'element-ui';
|
||||
import { Step, Steps, Alert } from "element-ui";
|
||||
import InstallSteps from "./Steps.vue";
|
||||
|
||||
export default {
|
||||
name: 'requirements',
|
||||
name: "requirements",
|
||||
|
||||
components: {
|
||||
[Step.name]: Step,
|
||||
[Steps.name]: Steps,
|
||||
[Alert.name]: Alert,
|
||||
InstallSteps
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
requirements: flash_requirements,
|
||||
}
|
||||
button_loading: false,
|
||||
active:null
|
||||
};
|
||||
},
|
||||
|
||||
methods: {
|
||||
onRefresh() {
|
||||
this.button_loading = true;
|
||||
window.location.reload();
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
@ -1,89 +1,57 @@
|
||||
<template>
|
||||
<div class="card">
|
||||
<div class="card-header wizard-header p-3">
|
||||
<el-steps :active="active" finish-status="success" align-center>
|
||||
<el-step title="Language"></el-step>
|
||||
<el-step title="Database"></el-step>
|
||||
<el-step title="Admin"></el-step>
|
||||
</el-steps>
|
||||
</div>
|
||||
<div>
|
||||
<InstallSteps :active_state="active"></InstallSteps>
|
||||
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12 form-group required" :class="[{'has-error': form.errors.get('company_name')}]">
|
||||
<label for="company_name" class="form-control-label">Company Name</label>
|
||||
<div class="grid sm:grid-cols-6 gap-x-8 gap-y-6 my-3.5 mt-0">
|
||||
<div class="sm:col-span-6 required" :class="[{'has-error': form.errors.get('company_name')}]">
|
||||
<label for="company_name" class="form-control-label">Company Name</label>
|
||||
|
||||
<div class="input-group input-group-merge">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fa fa-building"></i>
|
||||
</span>
|
||||
</div>
|
||||
<input class="form-control" data-name="company_name" @keydown="form.errors.clear('company_name')" v-model="form.company_name" required="required" name="company_name" type="text" id="company_name">
|
||||
</div>
|
||||
|
||||
<div class="invalid-feedback d-block" v-if="form.errors.has('company_name')" v-html="form.errors.get('company_name')"></div>
|
||||
<div class="input-group input-group-merge">
|
||||
<input class="form-element" data-name="company_name" @keydown="form.errors.clear('company_name')" v-model="form.company_name" required="required" name="company_name" type="text" id="company_name" />
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 form-group required" :class="[{'has-error': form.errors.get('company_email')}]">
|
||||
<label for="company_email" class="form-control-label">Company Email</label>
|
||||
<div class="text-red text-sm mt-1 block" v-if="form.errors.has('company_name')" v-html="form.errors.get('company_name')"></div>
|
||||
</div>
|
||||
|
||||
<div class="input-group input-group-merge">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fa fa-envelope"></i>
|
||||
</span>
|
||||
</div>
|
||||
<input class="form-control" data-name="company_email" @keydown="form.errors.clear('company_email')" v-model="form.company_email" required="required" name="company_email" type="text" id="company_email">
|
||||
</div>
|
||||
<div class="sm:col-span-6 required" :class="[{'has-error': form.errors.get('company_email')}]">
|
||||
<label for="company_email" class="form-control-label">Company Email</label>
|
||||
|
||||
<div class="invalid-feedback d-block" v-if="form.errors.has('company_email')" v-html="form.errors.get('company_email')"></div>
|
||||
<div class="input-group input-group-merge">
|
||||
<input class="form-element" data-name="company_email" @keydown="form.errors.clear('company_email')" v-model="form.company_email" required="required" name="company_email" type="text" id="company_email" />
|
||||
</div>
|
||||
|
||||
<div class=" col-md-12 form-group required" :class="[{'has-error': form.errors.get('user_email')}]">
|
||||
<label for="user_email" class="form-control-label">Admin Email</label>
|
||||
<div class="text-red text-sm mt-1 block" v-if="form.errors.has('company_email')" v-html="form.errors.get('company_email')"></div>
|
||||
</div>
|
||||
|
||||
<div class="input-group input-group-merge">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fa fa-envelope"></i>
|
||||
</span>
|
||||
</div>
|
||||
<input class="form-control" data-name="user_email" @keydown="form.errors.clear('user_email')" v-model="form.user_email" required="required" name="user_email" type="text" id="user_email">
|
||||
</div>
|
||||
<div class="sm:col-span-6 required" :class="[{'has-error': form.errors.get('user_email')}]">
|
||||
<label for="user_email" class="form-control-label">Admin Email</label>
|
||||
|
||||
<div class="invalid-feedback d-block" v-if="form.errors.has('user_email')" v-html="form.errors.get('user_email')"></div>
|
||||
<div class="input-group input-group-merge">
|
||||
<input class="form-element" data-name="user_email" @keydown="form.errors.clear('user_email')" v-model="form.user_email" required="required" name="user_email" type="text" id="user_email" />
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 form-group mb--2 required" :class="[{'has-error': form.errors.get('user_password')}]">
|
||||
<label for="user_password" class="form-control-label">Admin Password</label>
|
||||
<div class="text-red text-sm mt-1 block" v-if="form.errors.has('user_email')" v-html="form.errors.get('user_email')"></div>
|
||||
</div>
|
||||
|
||||
<div class="input-group input-group-merge ">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fa fa-key"></i>
|
||||
</span>
|
||||
</div>
|
||||
<input class="form-control" data-name="user_password" @keydown="form.errors.clear('user_password')" v-model="form.user_password" required="required" name="user_password" type="password" value="" id="user_password">
|
||||
</div>
|
||||
<div class="sm:col-span-6 required" :class="[{'has-error': form.errors.get('user_password')}]">
|
||||
<label for="user_password" class="form-control-label">Admin Password</label>
|
||||
|
||||
<div class="invalid-feedback d-block" v-if="form.errors.has('user_password')" v-html="form.errors.get('user_password')"></div>
|
||||
<div class="input-group input-group-merge">
|
||||
<input class="form-element" data-name="user_password" @keydown="form.errors.clear('user_password')" v-model="form.user_password" required="required" name="user_password" type="password" value="" id="user_password" />
|
||||
</div>
|
||||
|
||||
<div class="text-red text-sm mt-1 block" v-if="form.errors.has('user_password')" v-html="form.errors.get('user_password')"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-footer">
|
||||
<div class="row save-buttons">
|
||||
<div class="col-md-12">
|
||||
<button type="submit" @click="onSubmit" :disabled="form.loading" id="next-button" class="btn btn-icon btn-success button-submit header-button-top">
|
||||
<div v-if="form.loading" class="aka-loader-frame">
|
||||
<div class="aka-loader"></div>
|
||||
</div>
|
||||
<span v-if="!form.loading" class="btn-inner--text">
|
||||
Next
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="relative__footer">
|
||||
<div class="sm:col-span-6 flex items-center justify-end mt-3.5">
|
||||
<button type="submit" @click="onSubmit" :disabled="form.loading" id="next-button" class="relative flex items-center justify-center bg-green hover:bg-green-700 text-white px-6 py-1.5 text-base rounded-lg disabled:bg-green-100">
|
||||
<i v-if="form.loading" class="animate-submit delay-[0.28s] absolute w-2 h-2 rounded-full left-0 right-0 -top-3.5 m-auto before:absolute before:w-2 before:h-2 before:rounded-full before:animate-submit before:delay-[0.14s] after:absolute after:w-2 after:h-2 after:rounded-full after:animate-submit before:-left-3.5 after:-right-3.5 after:delay-[0.42s]"></i>
|
||||
<span :class="[{'opacity-0': form.loading}]">
|
||||
Next
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -91,23 +59,25 @@
|
||||
|
||||
<script>
|
||||
import axios from "axios";
|
||||
import Form from './../../plugins/form';
|
||||
import {Step, Steps} from 'element-ui';
|
||||
import Form from "./../../plugins/form";
|
||||
import { Step, Steps } from "element-ui";
|
||||
import InstallSteps from "./Steps.vue";
|
||||
|
||||
export default {
|
||||
name: 'settings',
|
||||
name: "settings",
|
||||
|
||||
components: {
|
||||
[Step.name]: Step,
|
||||
[Steps.name]: Steps
|
||||
[Steps.name]: Steps,
|
||||
InstallSteps,
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
form: new Form('form-install'),
|
||||
form: new Form("form-install"),
|
||||
languages: [],
|
||||
active: 2
|
||||
}
|
||||
active: 2,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
// Form Submit
|
||||
@ -117,7 +87,7 @@
|
||||
|
||||
next() {
|
||||
if (this.active++ > 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
48
resources/assets/js/views/install/Steps.vue
Normal file
48
resources/assets/js/views/install/Steps.vue
Normal file
@ -0,0 +1,48 @@
|
||||
<template>
|
||||
<div>
|
||||
<nav aria-label="Progress">
|
||||
<ol role="list" class="flex mb-10">
|
||||
<li class="w-1/3">
|
||||
<span class="pr-6 flex flex-col">
|
||||
<span
|
||||
:class="[{'bg-purple': active_state > 0}, {'bg-purple': active_state == 0}]"
|
||||
class="w-full h-1 bg-gray-300 rounded-xl text-transparent">Text</span>
|
||||
<span :class="[{'font-bold': active_state == 0}, {'font-bold': active_state > 0}]" class="text-sm font-normal mt-2">Language</span>
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<li class="w-1/3">
|
||||
<span class="px-3 flex flex-col">
|
||||
<span
|
||||
:class="[{'bg-purple': active_state > 1}, {'bg-purple': active_state == 1}]"
|
||||
class="w-full h-1 bg-gray-300 rounded-xl text-transparent">Text</span>
|
||||
<span :class="[{'font-bold': active_state == 1}, {'font-bold': active_state > 1}]" class="text-sm font-normal mt-2">Database</span>
|
||||
</span>
|
||||
</li>
|
||||
|
||||
<li class="w-1/3">
|
||||
<span class="px-3 flex flex-col">
|
||||
<span
|
||||
:class="[{'bg-purple': active_state > 2}, {'bg-purple': active_state == 2}]"
|
||||
class="w-full h-1 bg-gray-300 rounded-xl text-transparent">Text</span>
|
||||
<span :class="[{'font-bold': active_state == 2}, {'font-bold': active_state > 2}]" class="text-sm font-normal mt-2">Admin</span>
|
||||
</span>
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "Steps",
|
||||
|
||||
components: {},
|
||||
|
||||
props: {
|
||||
active_state: {
|
||||
type: [Boolean, String, Number],
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
4
resources/assets/js/views/install/update.js
vendored
4
resources/assets/js/views/install/update.js
vendored
@ -110,7 +110,7 @@ const app = new Vue({
|
||||
if (data) {
|
||||
this.update.total = parseInt((100 - ((this.update.steps.length / this.update.steps_total) * 100)).toFixed(0));
|
||||
|
||||
this.update.html = '<span class="text-default"><i class="fa fa-spinner fa-spin update-spin"></i> ' + data['text'] + '</span> </br>';
|
||||
this.update.html = '<span class="text-default"><i class=""></i> ' + data['text'] + '</span> </br>';
|
||||
|
||||
let step_promise = Promise.resolve(axios.post(data.url, {
|
||||
name: name,
|
||||
@ -123,7 +123,7 @@ const app = new Vue({
|
||||
step_promise.then(response => {
|
||||
if (response.data.error) {
|
||||
this.update.status = 'exception';
|
||||
this.update.html = '<div class="text-danger"><i class="fa fa-times update-error"></i> ' + response.data.message + '</div>';
|
||||
this.update.html = '<div class="text-danger"><i class="submit-spin absolute w-2 h-2 rounded-full left-0 right-0 -top-3.5 m-auto"></i> ' + response.data.message + '</div>';
|
||||
}
|
||||
|
||||
if (response.data.success) {
|
||||
|
Reference in New Issue
Block a user