Added installation password field show/hide password
This commit is contained in:
parent
2954f3bfc7
commit
afd980e37e
|
|
@ -3,12 +3,20 @@
|
|||
<InstallSteps :active_state="active"></InstallSteps>
|
||||
|
||||
<div class="card-body">
|
||||
<div class="w-full bg-red-100 text-red-600 p-3 rounded-sm font-semibold text-xs" :class="(form.response.error) ? 'block' : 'hidden'" v-if="form.response.error" v-html="form.response.message"></div>
|
||||
<div
|
||||
class="w-full bg-red-100 text-red-600 p-3 rounded-sm font-semibold text-xs"
|
||||
:class="(form.response.error) ? 'block' : 'hidden'"
|
||||
v-if="form.response.error"
|
||||
v-html="form.response.message"
|
||||
></div>
|
||||
|
||||
<form>
|
||||
<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('hostname')}]">
|
||||
<label for="hostname" class="text-black text-sm font-medium">Hostname</label>
|
||||
<label for="hostname" class="text-black text-sm font-medium">
|
||||
Hostname
|
||||
</label>
|
||||
|
||||
<span class="text-red ltr:ml-1 rtl:mr-1">*</span>
|
||||
|
||||
<div class="input-group input-group-merge">
|
||||
|
|
@ -31,38 +39,93 @@
|
|||
</div>
|
||||
|
||||
<div class="sm:col-span-6 required">
|
||||
<label for="username" class="text-black text-sm font-medium">Username</label>
|
||||
<label for="username" class="text-black text-sm font-medium">
|
||||
Username
|
||||
</label>
|
||||
|
||||
<span class="text-red ltr:ml-1 rtl:mr-1">*</span>
|
||||
|
||||
<div class="input-group input-group-merge">
|
||||
<input
|
||||
:class="[{'border-red': form.errors.get('username')}, {'border-light-gray': !form.errors.get('username')}]"
|
||||
class="w-full text-sm px-3 py-2.5 mt-1 rounded-lg border text-black placeholder-light-gray bg-white disabled:bg-gray-200 focus:outline-none focus:ring-transparent focus:border-purple" data-name="username" @keydown="form.errors.clear('username')" v-model="form.username" required="required" name="username" type="text" id="username" />
|
||||
:class="[{'border-red': form.errors.get('username')}, {'border-light-gray': !form.errors.get('username')}]"
|
||||
class="w-full text-sm px-3 py-2.5 mt-1 rounded-lg border text-black placeholder-light-gray bg-white disabled:bg-gray-200 focus:outline-none focus:ring-transparent focus:border-purple"
|
||||
data-name="username"
|
||||
@keydown="form.errors.clear('username')"
|
||||
v-model="form.username"
|
||||
required="required"
|
||||
name="username"
|
||||
type="text"
|
||||
id="username"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<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="sm:col-span-6">
|
||||
<label for="password" class="text-black text-sm font-medium">Password</label>
|
||||
<label for="password" class="text-black text-sm font-medium">
|
||||
Password
|
||||
</label>
|
||||
|
||||
<div class="input-group input-group-merge">
|
||||
<input
|
||||
:class="[{'border-red': form.errors.get('password')}, {'border-light-gray': !form.errors.get('password')}]"
|
||||
class="w-full text-sm px-3 py-2.5 mt-1 rounded-lg border text-black placeholder-light-gray bg-white disabled:bg-gray-200 focus:outline-none focus:ring-transparent focus:border-purple" data-name="password" v-model="form.password" name="password" type="password" value="" id="password" />
|
||||
<div class="relative">
|
||||
<input
|
||||
:class="[
|
||||
{
|
||||
'border-red': form.errors.get('password')
|
||||
},
|
||||
{
|
||||
'border-light-gray': !form.errors.get('password')
|
||||
},
|
||||
{
|
||||
'pr-9': form.password
|
||||
},
|
||||
{
|
||||
'pr-0': ! form.password
|
||||
},
|
||||
]"
|
||||
class="relative w-full text-sm px-3 py-2.5 mt-1 rounded-lg border border-light-gray text-black placeholder-light-gray bg-white disabled:bg-gray-200 focus:outline-none focus:ring-transparent focus:border-purple"
|
||||
data-name="password"
|
||||
v-model="form.password"
|
||||
name="password"
|
||||
value=""
|
||||
id="password"
|
||||
:type="showPassword ? 'text' : 'password'"
|
||||
/>
|
||||
|
||||
<button
|
||||
type="button"
|
||||
class="absolute inset-y-0 top-2 right-0 flex items-center pr-3 text-gray-400"
|
||||
@click="showPassword = ! showPassword" v-show="form.password"
|
||||
>
|
||||
<span v-show="! showPassword" class="material-icons-outlined text-gray-500 text-lg">visibility_off</span>
|
||||
<span v-show="showPassword" class="material-icons-outlined text-gray-500 text-lg">visibility</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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="sm:col-span-6 required">
|
||||
<label for="database" class="text-black text-sm font-medium">Database</label>
|
||||
<label for="database" class="text-black text-sm font-medium">
|
||||
Database
|
||||
</label>
|
||||
|
||||
<span class="text-red ltr:ml-1 rtl:mr-1">*</span>
|
||||
|
||||
<div class="input-group input-group-merge">
|
||||
<input
|
||||
:class="[{'border-red': form.errors.get('database')}, {'border-light-gray': !form.errors.get('database')}]"
|
||||
class="w-full text-sm px-3 py-2.5 mt-1 rounded-lg border text-black placeholder-light-gray bg-white disabled:bg-gray-200 focus:outline-none focus:ring-transparent focus:border-purple" data-name="database" @keydown="form.errors.clear('database')" v-model="form.database" required="required" name="database" type="text" id="database" />
|
||||
:class="[{'border-red': form.errors.get('database')}, {'border-light-gray': !form.errors.get('database')}]"
|
||||
class="w-full text-sm px-3 py-2.5 mt-1 rounded-lg border text-black placeholder-light-gray bg-white disabled:bg-gray-200 focus:outline-none focus:ring-transparent focus:border-purple"
|
||||
data-name="database"
|
||||
@keydown="form.errors.clear('database')"
|
||||
v-model="form.database"
|
||||
required="required"
|
||||
name="database"
|
||||
type="text"
|
||||
id="database"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="text-red text-sm mt-1 block" v-if="form.errors.has('database')" v-html="form.errors.get('database')"></div>
|
||||
|
|
@ -70,8 +133,15 @@
|
|||
</div>
|
||||
|
||||
<div class="sm:col-span-6 flex items-center justify-end mt-3.5">
|
||||
<button type="submit" @click="onSubmit($event)" :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">
|
||||
<button
|
||||
type="submit"
|
||||
@click="onSubmit($event)"
|
||||
: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>
|
||||
|
|
@ -101,6 +171,7 @@
|
|||
return {
|
||||
form: new Form("form-install"),
|
||||
active: 1,
|
||||
showPassword: false,
|
||||
};
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -5,44 +5,128 @@
|
|||
<form>
|
||||
<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">
|
||||
<label for="company_name" class="text-black text-sm font-medium">Company Name</label>
|
||||
<label for="company_name" class="text-black text-sm font-medium">
|
||||
Company Name
|
||||
</label>
|
||||
|
||||
<span class="text-red ltr:ml-1 rtl:mr-1">*</span>
|
||||
|
||||
<div class="input-group input-group-merge">
|
||||
<input :class="[{'border-red': form.errors.get('company_name')}, {'border-light-gray': !form.errors.get('company_name')}]" class="w-full text-sm px-3 py-2.5 mt-1 rounded-lg border text-black placeholder-light-gray bg-white disabled:bg-gray-200 focus:outline-none focus:ring-transparent focus:border-purple" 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" />
|
||||
<input
|
||||
:class="[{'border-red': form.errors.get('company_name')}, {'border-light-gray': !form.errors.get('company_name')}]"
|
||||
class="w-full text-sm px-3 py-2.5 mt-1 rounded-lg border text-black placeholder-light-gray bg-white disabled:bg-gray-200 focus:outline-none focus:ring-transparent focus:border-purple"
|
||||
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>
|
||||
|
||||
<div class="sm:col-span-6 required">
|
||||
<label for="company_email" class="text-black text-sm font-medium">Company Email</label>
|
||||
<label for="company_email" class="text-black text-sm font-medium">
|
||||
Company Email
|
||||
</label>
|
||||
|
||||
<span class="text-red ltr:ml-1 rtl:mr-1">*</span>
|
||||
|
||||
<div class="input-group input-group-merge">
|
||||
<input :class="[{'border-red': form.errors.get('company_email')}, {'border-light-gray': !form.errors.get('company_email')}]" class="w-full text-sm px-3 py-2.5 mt-1 rounded-lg border text-black placeholder-light-gray bg-white disabled:bg-gray-200 focus:outline-none focus:ring-transparent focus:border-purple" 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" />
|
||||
<input
|
||||
:class="[{'border-red': form.errors.get('company_email')}, {'border-light-gray': !form.errors.get('company_email')}]"
|
||||
class="w-full text-sm px-3 py-2.5 mt-1 rounded-lg border text-black placeholder-light-gray bg-white disabled:bg-gray-200 focus:outline-none focus:ring-transparent focus:border-purple"
|
||||
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>
|
||||
|
||||
<div class="sm:col-span-6 required">
|
||||
<label for="user_email" class="text-black text-sm font-medium">Admin Email</label>
|
||||
<label for="user_email" class="text-black text-sm font-medium">
|
||||
Admin Email
|
||||
</label>
|
||||
|
||||
<span class="text-red ltr:ml-1 rtl:mr-1">*</span>
|
||||
|
||||
<div class="input-group input-group-merge">
|
||||
<input :class="[{'border-red': form.errors.get('user_email')}, {'border-light-gray': !form.errors.get('user_email')}]" class="w-full text-sm px-3 py-2.5 mt-1 rounded-lg border text-black placeholder-light-gray bg-white disabled:bg-gray-200 focus:outline-none focus:ring-transparent focus:border-purple" 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" />
|
||||
<input
|
||||
:class="[{'border-red': form.errors.get('user_email')}, {'border-light-gray': !form.errors.get('user_email')}]"
|
||||
class="w-full text-sm px-3 py-2.5 mt-1 rounded-lg border text-black placeholder-light-gray bg-white disabled:bg-gray-200 focus:outline-none focus:ring-transparent focus:border-purple"
|
||||
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>
|
||||
|
||||
<div class="sm:col-span-6 required">
|
||||
<label for="user_password" class="text-black text-sm font-medium">Admin Password</label>
|
||||
<label for="user_password" class="text-black text-sm font-medium">
|
||||
Admin Password
|
||||
</label>
|
||||
|
||||
<span class="text-red ltr:ml-1 rtl:mr-1">*</span>
|
||||
|
||||
<div class="input-group input-group-merge">
|
||||
<input :class="[{'border-red': form.errors.get('user_password')}, {'border-light-gray': !form.errors.get('user_password')}]" class="w-full text-sm px-3 py-2.5 mt-1 rounded-lg borde text-black placeholder-light-gray bg-white disabled:bg-gray-200 focus:outline-none focus:ring-transparent focus:border-purple" 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 class="relative">
|
||||
<input
|
||||
:class="[
|
||||
{
|
||||
'border-red': form.errors.get('user_password')
|
||||
},
|
||||
{
|
||||
'border-light-gray': !form.errors.get('user_password')
|
||||
},
|
||||
{
|
||||
'pr-9': form.user_password
|
||||
},
|
||||
{
|
||||
'pr-0': ! form.user_password
|
||||
},
|
||||
]"
|
||||
class="relative w-full text-sm px-3 py-2.5 mt-1 rounded-lg border border-light-gray text-black placeholder-light-gray bg-white disabled:bg-gray-200 focus:outline-none focus:ring-transparent focus:border-purple"
|
||||
data-name="user_password"
|
||||
@keydown="form.errors.clear('user_password')"
|
||||
v-model="form.user_password"
|
||||
required="required"
|
||||
name="user_password"
|
||||
value=""
|
||||
id="user_password"
|
||||
:type="showPassword ? 'text' : 'password'"
|
||||
/>
|
||||
|
||||
<button
|
||||
type="button"
|
||||
class="absolute inset-y-0 top-2 right-0 flex items-center pr-3 text-gray-400"
|
||||
@click="showPassword = ! showPassword" v-show="form.user_password"
|
||||
>
|
||||
<span v-show="! showPassword" class="material-icons-outlined text-gray-500 text-lg">visibility_off</span>
|
||||
<span v-show="showPassword" class="material-icons-outlined text-gray-500 text-lg">visibility</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sm:col-span-6 flex items-center justify-end mt-3.5">
|
||||
<button type="submit" @click="onSubmit($event)" :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">
|
||||
<button
|
||||
type="submit"
|
||||
@click="onSubmit($event)"
|
||||
: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>
|
||||
|
|
@ -73,6 +157,7 @@
|
|||
form: new Form("form-install"),
|
||||
languages: [],
|
||||
active: 2,
|
||||
showPassword: false,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
|
|
|
|||
Loading…
Reference in New Issue