Changeset View
Changeset View
Standalone View
Standalone View
src/resources/vue/Admin/User.vue
<template> | <template> | ||||
<div class="container"> | <div class="container"> | ||||
<div class="card" id="user-info"> | <div class="card" id="user-info"> | ||||
<div class="card-body"> | <div class="card-body"> | ||||
<h1 class="card-title">{{ user.email }}</h1> | <h1 class="card-title">{{ user.email }}</h1> | ||||
<div class="card-text"> | <div class="card-text"> | ||||
<form class="read-only"> | <form class="read-only short"> | ||||
<div v-if="user.wallet.user_id != user.id" class="form-group row"> | <div v-if="user.wallet.user_id != user.id" class="form-group row plaintext"> | ||||
<label for="manager" class="col-sm-4 col-form-label">Managed by</label> | <label for="manager" class="col-sm-4 col-form-label">Managed by</label> | ||||
<div class="col-sm-8"> | <div class="col-sm-8"> | ||||
<span class="form-control-plaintext" id="manager"> | <span class="form-control-plaintext" id="manager"> | ||||
<router-link :to="{ path: '/user/' + user.wallet.user_id }">{{ user.wallet.user_email }}</router-link> | <router-link :to="{ path: '/user/' + user.wallet.user_id }">{{ user.wallet.user_email }}</router-link> | ||||
</span> | </span> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group row"> | <div class="form-group row plaintext"> | ||||
<label for="userid" class="col-sm-4 col-form-label">ID <span class="text-muted">(Created at)</span></label> | <label for="userid" class="col-sm-4 col-form-label">ID <span class="text-muted">(Created at)</span></label> | ||||
<div class="col-sm-8"> | <div class="col-sm-8"> | ||||
<span class="form-control-plaintext" id="userid"> | <span class="form-control-plaintext" id="userid"> | ||||
{{ user.id }} <span class="text-muted">({{ user.created_at }})</span> | {{ user.id }} <span class="text-muted">({{ user.created_at }})</span> | ||||
</span> | </span> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group row"> | <div class="form-group row plaintext"> | ||||
<label for="status" class="col-sm-4 col-form-label">Status</label> | <label for="status" class="col-sm-4 col-form-label">Status</label> | ||||
<div class="col-sm-8"> | <div class="col-sm-8"> | ||||
<span class="form-control-plaintext" id="status"> | <span class="form-control-plaintext" id="status"> | ||||
<span :class="$root.userStatusClass(user)">{{ $root.userStatusText(user) }}</span> | <span :class="$root.userStatusClass(user)">{{ $root.userStatusText(user) }}</span> | ||||
</span> | </span> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group row" v-if="user.first_name"> | <div class="form-group row plaintext" v-if="user.first_name"> | ||||
<label for="first_name" class="col-sm-4 col-form-label">First name</label> | <label for="first_name" class="col-sm-4 col-form-label">First name</label> | ||||
<div class="col-sm-8"> | <div class="col-sm-8"> | ||||
<span class="form-control-plaintext" id="first_name">{{ user.first_name }}</span> | <span class="form-control-plaintext" id="first_name">{{ user.first_name }}</span> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group row" v-if="user.last_name"> | <div class="form-group row plaintext" v-if="user.last_name"> | ||||
<label for="last_name" class="col-sm-4 col-form-label">Last name</label> | <label for="last_name" class="col-sm-4 col-form-label">Last name</label> | ||||
<div class="col-sm-8"> | <div class="col-sm-8"> | ||||
<span class="form-control-plaintext" id="last_name">{{ user.last_name }}</span> | <span class="form-control-plaintext" id="last_name">{{ user.last_name }}</span> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group row" v-if="user.organization"> | <div class="form-group row plaintext" v-if="user.organization"> | ||||
<label for="organization" class="col-sm-4 col-form-label">Organization</label> | <label for="organization" class="col-sm-4 col-form-label">Organization</label> | ||||
<div class="col-sm-8"> | <div class="col-sm-8"> | ||||
<span class="form-control-plaintext" id="organization">{{ user.organization }}</span> | <span class="form-control-plaintext" id="organization">{{ user.organization }}</span> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group row" v-if="user.phone"> | <div class="form-group row plaintext" v-if="user.phone"> | ||||
<label for="phone" class="col-sm-4 col-form-label">Phone</label> | <label for="phone" class="col-sm-4 col-form-label">Phone</label> | ||||
<div class="col-sm-8"> | <div class="col-sm-8"> | ||||
<span class="form-control-plaintext" id="phone">{{ user.phone }}</span> | <span class="form-control-plaintext" id="phone">{{ user.phone }}</span> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group row"> | <div class="form-group row plaintext"> | ||||
<label for="external_email" class="col-sm-4 col-form-label">External email</label> | <label for="external_email" class="col-sm-4 col-form-label">External email</label> | ||||
<div class="col-sm-8"> | <div class="col-sm-8"> | ||||
<span class="form-control-plaintext" id="external_email"> | <span class="form-control-plaintext" id="external_email"> | ||||
<a v-if="user.external_email" :href="'mailto:' + user.external_email">{{ user.external_email }}</a> | <a v-if="user.external_email" :href="'mailto:' + user.external_email">{{ user.external_email }}</a> | ||||
<button type="button" class="btn btn-secondary btn-sm" @click="emailEdit">Edit</button> | <button type="button" class="btn btn-secondary btn-sm" @click="emailEdit">Edit</button> | ||||
</span> | </span> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group row" v-if="user.billing_address"> | <div class="form-group row plaintext" v-if="user.billing_address"> | ||||
<label for="billing_address" class="col-sm-4 col-form-label">Address</label> | <label for="billing_address" class="col-sm-4 col-form-label">Address</label> | ||||
<div class="col-sm-8"> | <div class="col-sm-8"> | ||||
<span class="form-control-plaintext" style="white-space:pre" id="billing_address">{{ user.billing_address }}</span> | <span class="form-control-plaintext" style="white-space:pre" id="billing_address">{{ user.billing_address }}</span> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group row"> | <div class="form-group row plaintext"> | ||||
<label for="country" class="col-sm-4 col-form-label">Country</label> | <label for="country" class="col-sm-4 col-form-label">Country</label> | ||||
<div class="col-sm-8"> | <div class="col-sm-8"> | ||||
<span class="form-control-plaintext" id="country">{{ user.country }}</span> | <span class="form-control-plaintext" id="country">{{ user.country }}</span> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</form> | </form> | ||||
<div class="mt-2"> | <div class="mt-2"> | ||||
<button v-if="!user.isSuspended" id="button-suspend" class="btn btn-warning" type="button" @click="suspendUser">Suspend</button> | <button v-if="!user.isSuspended" id="button-suspend" class="btn btn-warning" type="button" @click="suspendUser">Suspend</button> | ||||
Show All 29 Lines | <div class="container"> | ||||
</a> | </a> | ||||
</li> | </li> | ||||
</ul> | </ul> | ||||
<div class="tab-content"> | <div class="tab-content"> | ||||
<div class="tab-pane show active" id="user-finances" role="tabpanel" aria-labelledby="tab-finances"> | <div class="tab-pane show active" id="user-finances" role="tabpanel" aria-labelledby="tab-finances"> | ||||
<div class="card-body"> | <div class="card-body"> | ||||
<h2 class="card-title">Account balance <span :class="wallet.balance < 0 ? 'text-danger' : 'text-success'"><strong>{{ $root.price(wallet.balance) }}</strong></span></h2> | <h2 class="card-title">Account balance <span :class="wallet.balance < 0 ? 'text-danger' : 'text-success'"><strong>{{ $root.price(wallet.balance) }}</strong></span></h2> | ||||
<div class="card-text"> | <div class="card-text"> | ||||
<form class="read-only"> | <form class="read-only short"> | ||||
<div class="form-group row"> | <div class="form-group row"> | ||||
<label class="col-sm-4 col-form-label">Discount</label> | <label class="col-sm-4 col-form-label">Discount</label> | ||||
<div class="col-sm-8"> | <div class="col-sm-8"> | ||||
<span class="form-control-plaintext" id="discount"> | <span class="form-control-plaintext" id="discount"> | ||||
<span>{{ wallet.discount ? (wallet.discount + '% - ' + wallet.discount_description) : 'none' }}</span> | <span>{{ wallet.discount ? (wallet.discount + '% - ' + wallet.discount_description) : 'none' }}</span> | ||||
<button type="button" class="btn btn-secondary btn-sm" @click="discountEdit">Edit</button> | <button type="button" class="btn btn-secondary btn-sm" @click="discountEdit">Edit</button> | ||||
</span> | </span> | ||||
</div> | </div> | ||||
▲ Show 20 Lines • Show All 81 Lines • ▼ Show 20 Lines | <div class="container"> | ||||
<div class="card-text"> | <div class="card-text"> | ||||
<table class="table table-sm table-hover"> | <table class="table table-sm table-hover"> | ||||
<thead class="thead-light"> | <thead class="thead-light"> | ||||
<tr> | <tr> | ||||
<th scope="col">Name</th> | <th scope="col">Name</th> | ||||
</tr> | </tr> | ||||
</thead> | </thead> | ||||
<tbody> | <tbody> | ||||
<tr v-for="domain in domains" :id="'domain' + domain.id" :key="domain.id"> | <tr v-for="domain in domains" :id="'domain' + domain.id" :key="domain.id" @click="$root.clickRecord"> | ||||
<td> | <td> | ||||
<svg-icon icon="globe" :class="$root.domainStatusClass(domain)" :title="$root.domainStatusText(domain)"></svg-icon> | <svg-icon icon="globe" :class="$root.domainStatusClass(domain)" :title="$root.domainStatusText(domain)"></svg-icon> | ||||
<router-link :to="{ path: '/domain/' + domain.id }">{{ domain.namespace }}</router-link> | <router-link :to="{ path: '/domain/' + domain.id }">{{ domain.namespace }}</router-link> | ||||
</td> | </td> | ||||
</tr> | </tr> | ||||
</tbody> | </tbody> | ||||
<tfoot class="table-fake-body"> | <tfoot class="table-fake-body"> | ||||
<tr> | <tr> | ||||
Show All 9 Lines | <div class="container"> | ||||
<div class="card-text"> | <div class="card-text"> | ||||
<table class="table table-sm table-hover"> | <table class="table table-sm table-hover"> | ||||
<thead class="thead-light"> | <thead class="thead-light"> | ||||
<tr> | <tr> | ||||
<th scope="col">Primary Email</th> | <th scope="col">Primary Email</th> | ||||
</tr> | </tr> | ||||
</thead> | </thead> | ||||
<tbody> | <tbody> | ||||
<tr v-for="item in users" :id="'user' + item.id" :key="item.id"> | <tr v-for="item in users" :id="'user' + item.id" :key="item.id" @click="$root.clickRecord"> | ||||
<td> | <td> | ||||
<svg-icon icon="user" :class="$root.userStatusClass(item)" :title="$root.userStatusText(item)"></svg-icon> | <svg-icon icon="user" :class="$root.userStatusClass(item)" :title="$root.userStatusText(item)"></svg-icon> | ||||
<router-link :to="{ path: '/user/' + item.id }">{{ item.email }}</router-link> | <router-link :to="{ path: '/user/' + item.id }">{{ item.email }}</router-link> | ||||
</td> | </td> | ||||
</tr> | </tr> | ||||
</tbody> | </tbody> | ||||
<tfoot class="table-fake-body"> | <tfoot class="table-fake-body"> | ||||
<tr> | <tr> | ||||
▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | <div class="container"> | ||||
<h5 class="modal-title">{{ oneoff_negative ? 'Add a penalty to the wallet' : 'Add a bonus to the wallet' }}</h5> | <h5 class="modal-title">{{ oneoff_negative ? 'Add a penalty to the wallet' : 'Add a bonus to the wallet' }}</h5> | ||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"> | <button type="button" class="close" data-dismiss="modal" aria-label="Close"> | ||||
<span aria-hidden="true">×</span> | <span aria-hidden="true">×</span> | ||||
</button> | </button> | ||||
</div> | </div> | ||||
<div class="modal-body"> | <div class="modal-body"> | ||||
<form data-validation-prefix="oneoff_"> | <form data-validation-prefix="oneoff_"> | ||||
<div class="form-group"> | <div class="form-group"> | ||||
<label for="oneoff_amount">Amount</label> | <label for="oneoff_amount" class="col-form-label">Amount</label> | ||||
<div class="input-group"> | <div class="input-group"> | ||||
<input type="text" class="form-control" id="oneoff_amount" v-model="oneoff_amount" required> | <input type="text" class="form-control" id="oneoff_amount" v-model="oneoff_amount" required> | ||||
<span class="input-group-append"> | <span class="input-group-append"> | ||||
<span class="input-group-text">{{ oneoff_currency }}</span> | <span class="input-group-text">{{ oneoff_currency }}</span> | ||||
</span> | </span> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group"> | <div class="form-group"> | ||||
<label for="oneoff_description">Description</label> | <label for="oneoff_description" class="col-form-label">Description</label> | ||||
<input class="form-control" id="oneoff_description" v-model="oneoff_description" required> | <input class="form-control" id="oneoff_description" v-model="oneoff_description" required> | ||||
</div> | </div> | ||||
</form> | </form> | ||||
</div> | </div> | ||||
<div class="modal-footer"> | <div class="modal-footer"> | ||||
<button type="button" class="btn btn-secondary modal-cancel" data-dismiss="modal">Cancel</button> | <button type="button" class="btn btn-secondary modal-cancel" data-dismiss="modal">Cancel</button> | ||||
<button type="button" class="btn btn-primary modal-action" @click="submitOneOff()"> | <button type="button" class="btn btn-primary modal-action" @click="submitOneOff()"> | ||||
<svg-icon icon="check"></svg-icon> Submit | <svg-icon icon="check"></svg-icon> Submit | ||||
▲ Show 20 Lines • Show All 258 Lines • Show Last 20 Lines |