Changeset View
Changeset View
Standalone View
Standalone View
src/resources/vue/Dashboard.vue
Show All 11 Lines | <div class="container" dusk="dashboard-component"> | ||||
<router-link v-if="status.enableUsers" class="card link-users" :to="{ name: 'users' }"> | <router-link v-if="status.enableUsers" class="card link-users" :to="{ name: 'users' }"> | ||||
<svg-icon icon="user-friends"></svg-icon><span class="name">{{ $t('dashboard.users') }}</span> | <svg-icon icon="user-friends"></svg-icon><span class="name">{{ $t('dashboard.users') }}</span> | ||||
</router-link> | </router-link> | ||||
<router-link v-if="status.enableDistlists" class="card link-distlists" :to="{ name: 'distlists' }"> | <router-link v-if="status.enableDistlists" class="card link-distlists" :to="{ name: 'distlists' }"> | ||||
<svg-icon icon="users"></svg-icon><span class="name">{{ $t('dashboard.distlists') }}</span> | <svg-icon icon="users"></svg-icon><span class="name">{{ $t('dashboard.distlists') }}</span> | ||||
</router-link> | </router-link> | ||||
<router-link v-if="status.enableWallets" class="card link-wallet" :to="{ name: 'wallet' }"> | <router-link v-if="status.enableWallets" class="card link-wallet" :to="{ name: 'wallet' }"> | ||||
<svg-icon icon="wallet"></svg-icon><span class="name">{{ $t('dashboard.wallet') }}</span> | <svg-icon icon="wallet"></svg-icon><span class="name">{{ $t('dashboard.wallet') }}</span> | ||||
<span v-if="balance < 0" class="badge badge-danger">{{ $root.price(balance) }}</span> | <span v-if="balance < 0" class="badge badge-danger">{{ $root.price(balance, currency) }}</span> | ||||
</router-link> | </router-link> | ||||
<router-link v-if="$root.hasSKU('meet')" class="card link-chat" :to="{ name: 'rooms' }"> | <router-link v-if="$root.hasSKU('meet')" class="card link-chat" :to="{ name: 'rooms' }"> | ||||
<svg-icon icon="comments"></svg-icon><span class="name">{{ $t('dashboard.chat') }}</span> | <svg-icon icon="comments"></svg-icon><span class="name">{{ $t('dashboard.chat') }}</span> | ||||
<span class="badge badge-primary">{{ $t('dashboard.beta') }}</span> | <span class="badge badge-primary">{{ $t('dashboard.beta') }}</span> | ||||
</router-link> | </router-link> | ||||
<a v-if="webmailURL" class="card link-webmail" :href="webmailURL"> | <a v-if="webmailURL" class="card link-webmail" :href="webmailURL"> | ||||
<svg-icon icon="envelope"></svg-icon><span class="name">{{ $t('dashboard.webmail') }}</span> | <svg-icon icon="envelope"></svg-icon><span class="name">{{ $t('dashboard.webmail') }}</span> | ||||
</a> | </a> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import StatusComponent from './Widgets/Status' | import StatusComponent from './Widgets/Status' | ||||
export default { | export default { | ||||
components: { | components: { | ||||
StatusComponent | StatusComponent | ||||
}, | }, | ||||
data() { | data() { | ||||
return { | return { | ||||
status: {}, | status: {}, | ||||
balance: 0, | balance: 0, | ||||
currency: '', | |||||
webmailURL: window.config['app.webmail_url'] | webmailURL: window.config['app.webmail_url'] | ||||
} | } | ||||
}, | }, | ||||
mounted() { | mounted() { | ||||
const authInfo = this.$store.state.authInfo | const authInfo = this.$store.state.authInfo | ||||
this.status = authInfo.statusInfo | this.status = authInfo.statusInfo | ||||
this.getBalance(authInfo) | this.getBalance(authInfo) | ||||
}, | }, | ||||
methods: { | methods: { | ||||
getBalance(authInfo) { | getBalance(authInfo) { | ||||
this.balance = 0; | this.balance = 0; | ||||
// TODO: currencies, multi-wallets, accounts | // TODO: currencies, multi-wallets, accounts | ||||
authInfo.wallets.forEach(wallet => { | authInfo.wallets.forEach(wallet => { | ||||
this.balance += wallet.balance | this.balance += wallet.balance | ||||
this.currency = wallet.currency | |||||
}) | }) | ||||
}, | }, | ||||
statusUpdate(user) { | statusUpdate(user) { | ||||
this.status = Object.assign({}, this.status, user) | this.status = Object.assign({}, this.status, user) | ||||
this.$store.state.authInfo.statusInfo = this.status | this.$store.state.authInfo.statusInfo = this.status | ||||
} | } | ||||
} | } | ||||
} | } | ||||
</script> | </script> |