Page MenuHomePhorge

D3722.1775186872.diff
No OneTemporary

Authored By
Unknown
Size
2 KB
Referenced Files
None
Subscribers
None

D3722.1775186872.diff

diff --git a/src/resources/lang/en/ui.php b/src/resources/lang/en/ui.php
--- a/src/resources/lang/en/ui.php
+++ b/src/resources/lang/en/ui.php
@@ -215,6 +215,7 @@
'forgot_password' => "Forgot password?",
'header' => "Please sign in",
'sign_in' => "Sign in",
+ 'signing_in' => "Signing in...",
'webmail' => "Webmail"
],
diff --git a/src/resources/vue/Login.vue b/src/resources/vue/Login.vue
--- a/src/resources/vue/Login.vue
+++ b/src/resources/vue/Login.vue
@@ -28,7 +28,9 @@
<small class="text-muted mt-2">{{ $t('login.2fa_desc') }}</small>
</div>
<div class="text-center">
- <btn class="btn-primary" type="submit" icon="right-to-bracket">{{ $t('login.sign_in') }}</btn>
+ <btn class="btn-primary" type="submit" icon="right-to-bracket" :is-loading="loading">
+ {{ $t(loading ? 'login.signing_in' : 'login.sign_in') }}
+ </btn>
</div>
</form>
</div>
@@ -59,7 +61,8 @@
email: '',
password: '',
secondfactor: '',
- webmailURL: window.config['app.webmail_url']
+ webmailURL: window.config['app.webmail_url'],
+ loading: false
}
},
methods: {
@@ -68,13 +71,18 @@
const post = this.$root.pick(this, ['email', 'password', 'secondfactor'])
+ this.loading = true
+
axios.post('/api/auth/login', post)
.then(response => {
// login user and redirect to dashboard
this.$root.loginUser(response.data, this.dashboard)
this.$emit('success')
})
- .catch(e => {})
+ .catch(() => {})
+ .finally(() => {
+ this.loading = false
+ })
}
}
}
diff --git a/src/resources/vue/Widgets/Btn.vue b/src/resources/vue/Widgets/Btn.vue
--- a/src/resources/vue/Widgets/Btn.vue
+++ b/src/resources/vue/Widgets/Btn.vue
@@ -1,6 +1,7 @@
<template>
- <button class="btn" :type="type" @click="$emit('click', $event)">
- <svg-icon v-if="icon" :icon="icon"></svg-icon> <slot></slot>
+ <button class="btn" :type="type" @click="$emit('click', $event)" :disabled="isLoading">
+ <span v-if="isLoading" class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
+ <svg-icon v-else-if="icon" :icon="icon"></svg-icon> <slot></slot>
</button>
</template>
@@ -9,6 +10,7 @@
props: {
type: { type: String, default: 'button' },
icon: { type: [ Array, String ], default: '' },
+ isLoading: { type: Boolean, default: false }
}
}
</script>

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 3, 3:27 AM (13 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18822412
Default Alt Text
D3722.1775186872.diff (2 KB)

Event Timeline