updated transaction tables

This commit is contained in:
Čarodej
2021-12-10 11:00:30 +01:00
parent 78a6cf0c92
commit 26f367031e
10 changed files with 360 additions and 225 deletions

433
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -49,7 +49,7 @@
"/chunks/homepage.js": "/chunks/homepage.js?id=b89dd81804b8a0bd3f0b",
"/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=1579259e826aa89fb00a",
"/chunks/invitation.js": "/chunks/invitation.js?id=c9cd3541ee362ae8d5f7",
"/chunks/invoices.js": "/chunks/invoices.js?id=fc4f6dca544c45e0d25b",
"/chunks/invoices.js": "/chunks/invoices.js?id=ce6ca4639d16aa3b53d1",
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=ea129760157c8e44f324",
"/chunks/not-found.js": "/chunks/not-found.js?id=034287ee0ecb036320d3",
"/chunks/page-edit.js": "/chunks/page-edit.js?id=f400e4ff1d3c7e93117e",
@@ -58,7 +58,7 @@
"/chunks/plan-create.js": "/chunks/plan-create.js?id=356baaa5a3526092427f",
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=58b35ab28597da974535",
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=5cdc67d1d4fa3b9f2c1e",
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=a1dc7ebb7be368a2c4eb",
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=adbaf70d9060712110ab",
"/chunks/plans.js": "/chunks/plans.js?id=7f262c68655989372d3c",
"/chunks/platform.js": "/chunks/platform.js?id=6b779b37a3f6f6025425",
"/chunks/platform~chunks/shared.js": "/chunks/platform~chunks/shared.js?id=e64e3b67ccb89de9dd55",
@@ -67,9 +67,9 @@
"/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=c0dbc21fb8c789f0144a",
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=f8b2619e393a5823bf29",
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=22f629caf127051898e9",
"/chunks/settings.js": "/chunks/settings.js?id=e7d6eda3050a8d2fa027",
"/chunks/settings.js": "/chunks/settings.js?id=b3de06812be94b0106b4",
"/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=cef8e687b3c107706b7d",
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=f45142987316594ac799",
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=c29a32cbe845039e376f",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=fc95bc9d31d3e9ee0442",
"/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=3a88e55341d1f1ffe12d",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=4432e911b1e7a7415d4d",
@@ -89,7 +89,7 @@
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=cb0ce03d3cd0c8ca1164",
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=104e676d6994ebf3e96e",
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=8ac19b3fcfd57d79e5b1",
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=d8a62207fc690846038d",
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=73d92ef0a3f78ca3260e",
"/chunks/team-folders.js": "/chunks/team-folders.js?id=0e69f4432e968cc512f9",
"/chunks/trash.js": "/chunks/trash.js?id=5fe84aadd8729e68849e",
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=28dce4872f5b8c5e95f8",
@@ -99,7 +99,7 @@
"/chunks/user-create.js": "/chunks/user-create.js?id=1d58b3cf93c7b3b90d9d",
"/chunks/user-delete.js": "/chunks/user-delete.js?id=c0ea5194b4a4de8189dd",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=a55ae1a545a65b92511d",
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=31a38dc62d495f7ba4ed",
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=8813b138d1296673a27d",
"/chunks/user-password.js": "/chunks/user-password.js?id=ce6c12a5b038f5481bd1",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=a915de897147d9efde5b",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=82038ce92ca5e1c9ae05",
@@ -109,13 +109,48 @@
"/vendors~chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunk~40ccbae3.js": "/vendors~chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunk~40ccbae3.js?id=37ce1e1ab9968c100712",
"/vendors~chunks/admin~chunks/platform~chunks/settings~chunks/shared.js": "/vendors~chunks/admin~chunks/platform~chunks/settings~chunks/shared.js?id=a0fa80db175709ba340a",
"/vendors~chunks/settings.js": "/vendors~chunks/settings.js?id=0ad6bf4acae70c329adf",
"/chunks/settings-subscription.413c9c5556ceb807cb3c.hot-update.js": "/chunks/settings-subscription.413c9c5556ceb807cb3c.hot-update.js",
"/chunks/settings-subscription.d4280dc102601048e949.hot-update.js": "/chunks/settings-subscription.d4280dc102601048e949.hot-update.js",
"/chunks/settings-subscription.31fe57f784cc06765b06.hot-update.js": "/chunks/settings-subscription.31fe57f784cc06765b06.hot-update.js",
"/chunks/settings-subscription.ee04e44bbbe0defa3910.hot-update.js": "/chunks/settings-subscription.ee04e44bbbe0defa3910.hot-update.js",
"/chunks/settings-subscription.2ba1a1fe965f3c12e5ae.hot-update.js": "/chunks/settings-subscription.2ba1a1fe965f3c12e5ae.hot-update.js",
"/chunks/settings-subscription.343e4c3bf1f534d54f90.hot-update.js": "/chunks/settings-subscription.343e4c3bf1f534d54f90.hot-update.js",
"/chunks/settings-subscription.e419a9066899e834b8af.hot-update.js": "/chunks/settings-subscription.e419a9066899e834b8af.hot-update.js",
"/chunks/settings-subscription.2857dd0281ec461caa26.hot-update.js": "/chunks/settings-subscription.2857dd0281ec461caa26.hot-update.js",
"/chunks/settings-subscription.743f3c4fd296228d41e8.hot-update.js": "/chunks/settings-subscription.743f3c4fd296228d41e8.hot-update.js"
"/chunks/settings-invoices.e8073b78c0a86368c000.hot-update.js": "/chunks/settings-invoices.e8073b78c0a86368c000.hot-update.js",
"/chunks/settings-invoices.ff32ea1fb75b1eba7d79.hot-update.js": "/chunks/settings-invoices.ff32ea1fb75b1eba7d79.hot-update.js",
"/chunks/invoices.e2c672d3763d9ba9fc0a.hot-update.js": "/chunks/invoices.e2c672d3763d9ba9fc0a.hot-update.js",
"/chunks/settings-invoices.e2c672d3763d9ba9fc0a.hot-update.js": "/chunks/settings-invoices.e2c672d3763d9ba9fc0a.hot-update.js",
"/chunks/user-invoices.e2c672d3763d9ba9fc0a.hot-update.js": "/chunks/user-invoices.e2c672d3763d9ba9fc0a.hot-update.js",
"/chunks/settings-invoices.652c116a63086d21cd41.hot-update.js": "/chunks/settings-invoices.652c116a63086d21cd41.hot-update.js",
"/chunks/invoices.c441c126d72586353eee.hot-update.js": "/chunks/invoices.c441c126d72586353eee.hot-update.js",
"/chunks/user-invoices.c441c126d72586353eee.hot-update.js": "/chunks/user-invoices.c441c126d72586353eee.hot-update.js",
"/chunks/settings-invoices.ade5f8eedb48831e542e.hot-update.js": "/chunks/settings-invoices.ade5f8eedb48831e542e.hot-update.js",
"/js/main.6f4edd2630cc50693608.hot-update.js": "/js/main.6f4edd2630cc50693608.hot-update.js",
"/chunks/settings-invoices.c994d0d01cf2041a0e49.hot-update.js": "/chunks/settings-invoices.c994d0d01cf2041a0e49.hot-update.js",
"/js/main.07f6bde2effd5d500ec5.hot-update.js": "/js/main.07f6bde2effd5d500ec5.hot-update.js",
"/chunks/settings-invoices.4c9946c142e69a71a23f.hot-update.js": "/chunks/settings-invoices.4c9946c142e69a71a23f.hot-update.js",
"/chunks/settings-invoices.3665247eaf83e0250170.hot-update.js": "/chunks/settings-invoices.3665247eaf83e0250170.hot-update.js",
"/js/main.b6b22e39b06ae4f0bb30.hot-update.js": "/js/main.b6b22e39b06ae4f0bb30.hot-update.js",
"/chunks/settings-invoices.007566b2f5303b413778.hot-update.js": "/chunks/settings-invoices.007566b2f5303b413778.hot-update.js",
"/js/main.0175ccfa35a624c42f0b.hot-update.js": "/js/main.0175ccfa35a624c42f0b.hot-update.js",
"/js/main.5c552ebfc2f9f25052bf.hot-update.js": "/js/main.5c552ebfc2f9f25052bf.hot-update.js",
"/chunks/user-invoices.8e2265da8ba8b8d53666.hot-update.js": "/chunks/user-invoices.8e2265da8ba8b8d53666.hot-update.js",
"/chunks/invoices.259a7a3f7b5188752af2.hot-update.js": "/chunks/invoices.259a7a3f7b5188752af2.hot-update.js",
"/chunks/plan-subscribers.259a7a3f7b5188752af2.hot-update.js": "/chunks/plan-subscribers.259a7a3f7b5188752af2.hot-update.js",
"/chunks/settings-invoices.259a7a3f7b5188752af2.hot-update.js": "/chunks/settings-invoices.259a7a3f7b5188752af2.hot-update.js",
"/chunks/subscriptions.259a7a3f7b5188752af2.hot-update.js": "/chunks/subscriptions.259a7a3f7b5188752af2.hot-update.js",
"/chunks/invoices.f23f425cb71650e62d13.hot-update.js": "/chunks/invoices.f23f425cb71650e62d13.hot-update.js",
"/chunks/plan-subscribers.f23f425cb71650e62d13.hot-update.js": "/chunks/plan-subscribers.f23f425cb71650e62d13.hot-update.js",
"/chunks/settings-invoices.f23f425cb71650e62d13.hot-update.js": "/chunks/settings-invoices.f23f425cb71650e62d13.hot-update.js",
"/chunks/subscriptions.f23f425cb71650e62d13.hot-update.js": "/chunks/subscriptions.f23f425cb71650e62d13.hot-update.js",
"/chunks/user-invoices.f23f425cb71650e62d13.hot-update.js": "/chunks/user-invoices.f23f425cb71650e62d13.hot-update.js",
"/chunks/settings-invoices.93a32e1134d82657e072.hot-update.js": "/chunks/settings-invoices.93a32e1134d82657e072.hot-update.js",
"/chunks/settings-invoices.2b40a2db7ab892f82357.hot-update.js": "/chunks/settings-invoices.2b40a2db7ab892f82357.hot-update.js",
"/chunks/settings-invoices.97562cbd4d1fe73361e2.hot-update.js": "/chunks/settings-invoices.97562cbd4d1fe73361e2.hot-update.js",
"/chunks/settings-invoices.caf1866a84ad26b8d7fe.hot-update.js": "/chunks/settings-invoices.caf1866a84ad26b8d7fe.hot-update.js",
"/chunks/settings-invoices.34e668cba009bb85c047.hot-update.js": "/chunks/settings-invoices.34e668cba009bb85c047.hot-update.js",
"/chunks/invoices.0248a652f6d39dc0ae9a.hot-update.js": "/chunks/invoices.0248a652f6d39dc0ae9a.hot-update.js",
"/chunks/plan-subscribers.0248a652f6d39dc0ae9a.hot-update.js": "/chunks/plan-subscribers.0248a652f6d39dc0ae9a.hot-update.js",
"/chunks/subscriptions.0248a652f6d39dc0ae9a.hot-update.js": "/chunks/subscriptions.0248a652f6d39dc0ae9a.hot-update.js",
"/chunks/user-invoices.0248a652f6d39dc0ae9a.hot-update.js": "/chunks/user-invoices.0248a652f6d39dc0ae9a.hot-update.js",
"/chunks/settings-invoices.ed2002e84be44c0903ed.hot-update.js": "/chunks/settings-invoices.ed2002e84be44c0903ed.hot-update.js",
"/chunks/invoices.d9276f09eae14c6787f9.hot-update.js": "/chunks/invoices.d9276f09eae14c6787f9.hot-update.js",
"/chunks/plan-subscribers.d9276f09eae14c6787f9.hot-update.js": "/chunks/plan-subscribers.d9276f09eae14c6787f9.hot-update.js",
"/chunks/subscriptions.d9276f09eae14c6787f9.hot-update.js": "/chunks/subscriptions.d9276f09eae14c6787f9.hot-update.js",
"/chunks/user-invoices.d9276f09eae14c6787f9.hot-update.js": "/chunks/user-invoices.d9276f09eae14c6787f9.hot-update.js",
"/chunks/user-invoices.7e33076d486e54549c70.hot-update.js": "/chunks/user-invoices.7e33076d486e54549c70.hot-update.js",
"/chunks/invoices.0512cda7029d22b6ba0c.hot-update.js": "/chunks/invoices.0512cda7029d22b6ba0c.hot-update.js"
}

View File

@@ -197,17 +197,31 @@
const userId = this.user.data.id
const app = this
// Initialize paypal buttons
await paypal.Buttons({
// Initialize paypal buttons for subscription
/*await paypal.Buttons({
createSubscription: function(data, actions) {
return actions.subscription.create({
'plan_id': planId,
'custom_id': userId
plan_id: planId,
custom_id: userId
});
},
onApprove: function(data, actions) {
app.paymentSuccessful()
}
}).render('#paypal-button-container');*/
// Initialize paypal buttons for subscription
await paypal.Buttons({
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{
amount: {
value: '10.49',
},
custom_id: userId
}]
});
}
}).render('#paypal-button-container');
},
selectPlan(plan) {

View File

@@ -327,6 +327,7 @@ const FunctionHelpers = {
'paypal': '/assets/payments/paypal.svg',
'paystack': store.getters.isDarkMode ? '/assets/payments/paystack-dark.svg' : '/assets/payments/paystack.svg',
'stripe': '/assets/payments/stripe.svg',
'system': this.$getImage(store.getters.config.app_logo_horizontal),
}[driver]
}
@@ -348,6 +349,24 @@ const FunctionHelpers = {
}[status]
}
Vue.prototype.$getTransactionTypeTextColor = function (type) {
return {
'withdrawal': 'text-red-500',
'credit': 'text-green-500',
'charge': '',
}[type]
}
Vue.prototype.$getTransactionMark = function (type) {
return {
'withdrawal': '-',
'credit': '+',
'charge': '',
}[type]
}
Vue.prototype.$goToFileView = function (id) {
let locations = {

View File

@@ -12,7 +12,7 @@
<tr class="border-b dark:border-opacity-5 border-light border-dashed">
<td class="py-5">
<span class="text-sm font-bold">
{{ row.data.attributes.plan_name }}
{{ row.data.attributes.note }}
</span>
</td>
<td>
@@ -41,8 +41,8 @@
</ColorLabel>
</td>
<td>
<span class="text-sm font-bold">
{{ row.data.attributes.price }}
<span class="text-sm font-bold" :class="$getTransactionTypeTextColor(row.data.attributes.type)">
{{ $getTransactionMark(row.data.attributes.type) + row.data.attributes.price }}
</span>
</td>
<td>
@@ -51,7 +51,7 @@
</span>
</td>
<td class="text-right">
<img class="block max-h-5 m-auto" :src="$getPaymentLogo(row.data.attributes.driver)" :alt="row.data.attributes.driver">
<img class="inline-block max-h-5" :src="$getPaymentLogo(row.data.attributes.driver)" :alt="row.data.attributes.driver">
</td>
</tr>
</template>
@@ -133,8 +133,8 @@
invoices: [],
columns: [
{
label: this.$t('Plan'),
field: 'plan_name',
label: this.$t('Note'),
field: 'note',
sortable: true
},
{

View File

@@ -44,7 +44,7 @@
</span>
</td>
<td class="text-right">
<img class="block max-h-5 m-auto" :src="$getPaymentLogo(row.data.attributes.driver)" :alt="row.data.attributes.driver">
<img class="inline-block max-h-5" :src="$getPaymentLogo(row.data.attributes.driver)" :alt="row.data.attributes.driver">
</td>
</tr>
</template>
@@ -100,7 +100,7 @@
sortable: true
},
{
label: this.$t('Plan'),
label: this.$t('Note'),
field: 'plan.name',
sortable: true
},

View File

@@ -48,7 +48,7 @@
</span>
</td>
<td class="text-right">
<img class="block max-h-5 m-auto" :src="$getPaymentLogo(row.data.attributes.driver)" :alt="row.data.attributes.driver">
<img class="inline-block max-h-5" :src="$getPaymentLogo(row.data.attributes.driver)" :alt="row.data.attributes.driver">
</td>
</tr>
</template>
@@ -142,7 +142,7 @@
sortable: true
},
{
label: this.$t('Plan'),
label: this.$t('Note'),
field: 'plan.name',
sortable: true
},

View File

@@ -11,7 +11,7 @@
<tr class="border-b dark:border-opacity-5 border-light border-dashed">
<td class="py-4">
<span class="text-sm font-bold">
{{ row.data.attributes.plan_name }}
{{ row.data.attributes.note }}
</span>
</td>
<td>
@@ -20,8 +20,8 @@
</ColorLabel>
</td>
<td>
<span class="text-sm font-bold">
{{ row.data.attributes.price }}
<span class="text-sm font-bold" :class="$getTransactionTypeTextColor(row.data.attributes.type)">
{{ $getTransactionMark(row.data.attributes.type) + row.data.attributes.price }}
</span>
</td>
<td>
@@ -30,7 +30,7 @@
</span>
</td>
<td class="text-right">
<img class="block max-h-5 m-auto" :src="$getPaymentLogo(row.data.attributes.driver)" :alt="row.data.attributes.driver">
<img class="inline-block max-h-5" :src="$getPaymentLogo(row.data.attributes.driver)" :alt="row.data.attributes.driver">
</td>
</tr>
</template>
@@ -65,8 +65,8 @@
isLoading: true,
columns: [
{
label: this.$t('Plan'),
field: 'plan_name',
label: this.$t('Note'),
field: 'note',
sortable: true
},
{

View File

@@ -11,7 +11,7 @@
<tr class="border-b dark:border-opacity-5 border-light border-dashed">
<td class="py-4">
<span class="text-sm font-bold">
{{ row.data.attributes.plan_name }}
{{ row.data.attributes.note }}
</span>
</td>
<td>
@@ -20,8 +20,8 @@
</ColorLabel>
</td>
<td>
<span class="text-sm font-bold">
{{ row.data.attributes.price }}
<span class="text-sm font-bold" :class="$getTransactionTypeTextColor(row.data.attributes.type)">
{{ $getTransactionMark(row.data.attributes.type) + row.data.attributes.price }}
</span>
</td>
<td>
@@ -30,7 +30,7 @@
</span>
</td>
<td class="text-right">
<img class="block max-h-5 m-auto" :src="$getPaymentLogo(row.data.attributes.driver)" :alt="row.data.attributes.driver">
<img class="inline-block max-h-5" :src="$getPaymentLogo(row.data.attributes.driver)" :alt="row.data.attributes.driver">
</td>
</tr>
</template>
@@ -66,8 +66,8 @@
invoices: undefined,
columns: [
{
label: this.$t('Plan'),
field: 'plan_name',
label: this.$t('Note'),
field: 'note',
sortable: true
},
{

View File

@@ -23,6 +23,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use VueFileManager\Subscription\App\User\Traits\Billable;
use VueFileManager\Subscription\Domain\Credits\Traits\Credits;
/**
* @property string id
@@ -45,6 +46,7 @@ class User extends Authenticatable implements MustVerifyEmail
use HasFactory;
use Sortable;
use Billable;
use Credits;
protected $guarded = [
'id',