Follow upstream recommendation to have html templates below script in .vue files

This commit is contained in:
Johannes Zellner
2025-01-19 12:00:22 +01:00
parent 0280059c13
commit dfb3285e18
21 changed files with 1008 additions and 1021 deletions
+69 -70
View File
@@ -1,73 +1,3 @@
<template>
<div class="layout-root">
<div class="layout-left">
<img width="128" height="128" class="icon" :src="'/api/v1/cloudron/avatar'"/>
</div>
<div class="layout-right">
<div v-show="mode === 'passwordReset'">
<h2>{{ $t('passwordReset.title') }}</h2>
<form name="passwordResetForm" @submit.prevent="onPasswordReset()">
<input type="submit" style="display: none;"/>
<div class="form-element">
<label for="inputPasswordResetIdentifier">{{ $t('passwordReset.usernameOrEmail') }}</label>
<TextInput id="inputPasswordResetIdentifier" name="passwordResetIdentifier" v-model="passwordResetIdentifier" :disabled="busy" autofocus required />
</div>
<Button style="margin-top: 12px" @click="onPasswordReset()" :disabled="busy || !passwordResetIdentifier" :loading="busy">{{ $t('passwordReset.resetAction') }}</Button>
<a href="/" style="margin-left: 10px;">{{ $t('passwordReset.backToLoginAction') }}</a>
</form>
</div>
<div v-show="mode === 'passwordResetDone'">
<h2 v-show="!error">{{ $t('passwordReset.emailSent.title') }}</h2>
<h4 v-show="error" class="has-error">{{ error }}</h4>
<Button href="/">{{ $t('passwordReset.backToLoginAction') }}</Button>
</div>
<div v-show="mode === 'newPassword'">
<h2>{{ $t('passwordReset.newPassword.title') }}</h2>
<p class="has-error" v-show="error">{{ error }}</p>
<form name="newPasswordForm" @submit.prevent="onNewPassword()">
<input type="submit" style="display: none;"/>
<input type="password" style="display: none;"/>
<div class="form-element" :class="{'has-error': newPasswordRepeat && newPassword !== newPasswordRepeat}">
<label for="inputNewPassword">{{ $t('passwordReset.newPassword.password') }}</label>
<PasswordInput id="inputNewPassword" v-model="newPassword" autofocus required />
</div>
<div class="form-element" :class="{'has-error': newPasswordRepeat && newPassword !== newPasswordRepeat}">
<label for="inputNewPasswordRepeat">{{ $t('passwordReset.newPassword.passwordRepeat') }}</label>
<PasswordInput id="inputNewPasswordRepeat" v-model="newPasswordRepeat" required />
</div>
<div class="form-element">
<label for="inputPasswordResetTotpToken">{{ $t('login.2faToken') }}</label>
<TextInput id="inputPasswordResetTotpToken" v-model="totpToken" :disabled="busy" />
</div>
<Button style="margin-top: 12px" @click="onNewPassword()" :disabled="busy || !newPassword || newPassword !== newPasswordRepeat" :loading="busy">{{ $t('passwordReset.passwordChanged.submitAction') }}</Button>
<a href="/" style="margin-left: 10px;">{{ $t('passwordReset.backToLoginAction') }}</a>
</form>
</div>
<div v-show="mode === 'newPasswordDone'">
<h2>{{ $t('passwordReset.success.title') }}</h2>
<Button href="/">{{ $t('passwordReset.success.openDashboardAction') }}</Button>
</div>
</div>
</div>
<footer v-show="footer" v-html="footer"></footer>
</template>
<script>
const API_ORIGIN = import.meta.env.VITE_API_ORIGIN ? import.meta.env.VITE_API_ORIGIN : window.location.origin;
@@ -169,6 +99,75 @@ export default {
</script>
<template>
<div class="layout-root">
<div class="layout-left">
<img width="128" height="128" class="icon" :src="'/api/v1/cloudron/avatar'"/>
</div>
<div class="layout-right">
<div v-show="mode === 'passwordReset'">
<h2>{{ $t('passwordReset.title') }}</h2>
<form name="passwordResetForm" @submit.prevent="onPasswordReset()">
<input type="submit" style="display: none;"/>
<div class="form-element">
<label for="inputPasswordResetIdentifier">{{ $t('passwordReset.usernameOrEmail') }}</label>
<TextInput id="inputPasswordResetIdentifier" name="passwordResetIdentifier" v-model="passwordResetIdentifier" :disabled="busy" autofocus required />
</div>
<Button style="margin-top: 12px" @click="onPasswordReset()" :disabled="busy || !passwordResetIdentifier" :loading="busy">{{ $t('passwordReset.resetAction') }}</Button>
<a href="/" style="margin-left: 10px;">{{ $t('passwordReset.backToLoginAction') }}</a>
</form>
</div>
<div v-show="mode === 'passwordResetDone'">
<h2 v-show="!error">{{ $t('passwordReset.emailSent.title') }}</h2>
<h4 v-show="error" class="has-error">{{ error }}</h4>
<Button href="/">{{ $t('passwordReset.backToLoginAction') }}</Button>
</div>
<div v-show="mode === 'newPassword'">
<h2>{{ $t('passwordReset.newPassword.title') }}</h2>
<p class="has-error" v-show="error">{{ error }}</p>
<form name="newPasswordForm" @submit.prevent="onNewPassword()">
<input type="submit" style="display: none;"/>
<input type="password" style="display: none;"/>
<div class="form-element" :class="{'has-error': newPasswordRepeat && newPassword !== newPasswordRepeat}">
<label for="inputNewPassword">{{ $t('passwordReset.newPassword.password') }}</label>
<PasswordInput id="inputNewPassword" v-model="newPassword" autofocus required />
</div>
<div class="form-element" :class="{'has-error': newPasswordRepeat && newPassword !== newPasswordRepeat}">
<label for="inputNewPasswordRepeat">{{ $t('passwordReset.newPassword.passwordRepeat') }}</label>
<PasswordInput id="inputNewPasswordRepeat" v-model="newPasswordRepeat" required />
</div>
<div class="form-element">
<label for="inputPasswordResetTotpToken">{{ $t('login.2faToken') }}</label>
<TextInput id="inputPasswordResetTotpToken" v-model="totpToken" :disabled="busy" />
</div>
<Button style="margin-top: 12px" @click="onNewPassword()" :disabled="busy || !newPassword || newPassword !== newPasswordRepeat" :loading="busy">{{ $t('passwordReset.passwordChanged.submitAction') }}</Button>
<a href="/" style="margin-left: 10px;">{{ $t('passwordReset.backToLoginAction') }}</a>
</form>
</div>
<div v-show="mode === 'newPasswordDone'">
<h2>{{ $t('passwordReset.success.title') }}</h2>
<Button href="/">{{ $t('passwordReset.success.openDashboardAction') }}</Button>
</div>
</div>
</div>
<footer v-show="footer" v-html="footer"></footer>
</template>
<style>
.icon {