Client cards

This commit is contained in:
Peter Papp
2021-04-29 15:01:50 +02:00
parent 31dd782bae
commit aea4213ec2
11 changed files with 129 additions and 44 deletions

View File

@@ -3,6 +3,7 @@
namespace App\Http\Controllers\Oasis;
use App\Http\Requests\Oasis\StoreClientRequest;
use App\Http\Resources\Oasis\OasisInvoiceCollection;
use App\Http\Resources\Oasis\OasisViewClientCollection;
use App\Http\Controllers\Controller;
use App\Http\Resources\Oasis\OasisViewClientResource;
@@ -104,7 +105,7 @@ class ClientController extends Controller
*/
public function show_invoices(Client $client)
{
return response(new OasisViewInvoiceCollection($client->invoices), 200);
return response(new OasisInvoiceCollection($client->invoices), 200);
}
/**

View File

@@ -0,0 +1,23 @@
<?php
namespace App\Http\Resources\Oasis;
use Illuminate\Http\Resources\Json\ResourceCollection;
class OasisInvoiceCollection extends ResourceCollection
{
public $collects = OasisInvoiceResource::class;
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'data' => $this->collection,
];
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace App\Http\Resources\Oasis;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
class OasisInvoiceResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'data' => [
'id' => $this->id,
'type' => 'invoice',
'attributes' => [
'name' => $this->client['name'] . ' ' . format_to_currency($this->total_net, $this->currency),
'invoiceNumber' => $this->invoice_number,
'total' => format_to_currency($this->total_net, $this->currency),
'file_url' => "/oasis/invoice/$this->id",
'mimetype' => 'pdf',
'created_at' => format_date($this->created_at, '%d. %B. %Y'),
],
],
];
}
}

View File

@@ -52,8 +52,8 @@
"/chunks/invoices.js": "/chunks/invoices.js?id=1deb187f6d3eb1e81ad0",
"/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=7fc7f9b6f10bdfac770e",
"/chunks/oasis/homepage.js": "/chunks/oasis/homepage.js?id=a1885dd8814f9eb63a1c",
"/chunks/oasis/invoices.js": "/chunks/oasis/invoices.js?id=959a8324daa7af8a644e",
"/chunks/oasis/invoices/list.js": "/chunks/oasis/invoices/list.js?id=290b41f70e5205491b2d",
"/chunks/oasis/invoices.js": "/chunks/oasis/invoices.js?id=4d0836e46f76927fd0f2",
"/chunks/oasis/invoices/list.js": "/chunks/oasis/invoices/list.js?id=07d3d3555eb78e813c2d",
"/chunks/oasis/invoices~chunks/oasis/invoices/list.js": "/chunks/oasis/invoices~chunks/oasis/invoices/list.js?id=045d3dd7ce573cb7ed11",
"/chunks/oasis/invoices~chunks/oasis/invoices/list~chunks/platform~chunks/shared.js": "/chunks/oasis/invoices~chunks/oasis/invoices/list~chunks/platform~chunks/shared.js?id=c69c0503d09d1588f14a",
"/chunks/oasis/platba.js": "/chunks/oasis/platba.js?id=53d9f2a31b1dd5dad85e",
@@ -228,7 +228,7 @@
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.56333ed0db26ca1f2dde.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.56333ed0db26ca1f2dde.hot-update.js",
"/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/dashboard-oasis~chunks/invoices~chun~fab98574.js": "/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/dashboard-oasis~chunks/invoices~chun~fab98574.js?id=f019c9e6df2021c93987",
"/chunks/app-setup.56333ed0db26ca1f2dde.hot-update.js": "/chunks/app-setup.56333ed0db26ca1f2dde.hot-update.js",
"/chunks/oasis/invoices/create-client.js": "/chunks/oasis/invoices/create-client.js?id=f3104be79b261a8ec401",
"/chunks/oasis/invoices/create-client.js": "/chunks/oasis/invoices/create-client.js?id=4122a36778e8c8414349",
"/chunks/oasis/invoices/profile.56333ed0db26ca1f2dde.hot-update.js": "/chunks/oasis/invoices/profile.56333ed0db26ca1f2dde.hot-update.js",
"/chunks/oasis/user-create.56333ed0db26ca1f2dde.hot-update.js": "/chunks/oasis/user-create.56333ed0db26ca1f2dde.hot-update.js",
"/chunks/plan-create.56333ed0db26ca1f2dde.hot-update.js": "/chunks/plan-create.56333ed0db26ca1f2dde.hot-update.js",
@@ -351,7 +351,7 @@
"/js/main.2a5b52cd5a8d1d56d0d8.hot-update.js": "/js/main.2a5b52cd5a8d1d56d0d8.hot-update.js",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~dea0c278.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~dea0c278.js?id=a81252d0e451803fdcef",
"/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/dashboard-oasis~chunks/invoices~chun~e9fdda75.js": "/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/dashboard-oasis~chunks/invoices~chun~e9fdda75.js?id=62ce022b3544cd69a5bd",
"/chunks/oasis/invoices/client.js": "/chunks/oasis/invoices/client.js?id=09e5ec06d67a01b449cb",
"/chunks/oasis/invoices/client.js": "/chunks/oasis/invoices/client.js?id=63a83703890e6cf422f4",
"/chunks/oasis/invoices/client.c97bd30d932ea2b47e55.hot-update.js": "/chunks/oasis/invoices/client.c97bd30d932ea2b47e55.hot-update.js",
"/chunks/oasis/invoices/client.5ee30b20f1f55c124785.hot-update.js": "/chunks/oasis/invoices/client.5ee30b20f1f55c124785.hot-update.js",
"/chunks/oasis/invoices/client.773c1b1645b07a8396a3.hot-update.js": "/chunks/oasis/invoices/client.773c1b1645b07a8396a3.hot-update.js",
@@ -369,7 +369,7 @@
"/js/main.25bba30a1f5fedab17ba.hot-update.js": "/js/main.25bba30a1f5fedab17ba.hot-update.js",
"/js/main.325efc07b9e6afd90e4a.hot-update.js": "/js/main.325efc07b9e6afd90e4a.hot-update.js",
"/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~5bfd6db3.325efc07b9e6afd90e4a.hot-update.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~5bfd6db3.325efc07b9e6afd90e4a.hot-update.js",
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~b2b17caf.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~b2b17caf.js?id=1494622a41b03970582d",
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~b2b17caf.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~b2b17caf.js?id=55d2b5e5a0fdda04fe42",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~2e0b85bd.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~2e0b85bd.js?id=d4fb46f05374a298ac1b",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~656c73cf.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~656c73cf.js?id=b5367092d1c1415c1722",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~c329baf3.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~c329baf3.js?id=917423b1c6ec5a0c7435",
@@ -437,7 +437,7 @@
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~2e1d0044.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~2e1d0044.js?id=7c1507c48bdb1e99af77",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~477d1d8f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~477d1d8f.js?id=59621032c5dcceae7e47",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~a98b1a0e.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~a98b1a0e.js?id=6bf0e1b64f73e663a621",
"/chunks/oasis/invoices/client-invoices.js": "/chunks/oasis/invoices/client-invoices.js?id=67b0305dbf50ae099003",
"/chunks/oasis/invoices/client-invoices.js": "/chunks/oasis/invoices/client-invoices.js?id=64985b1d62caef8c4848",
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~3fc458f1.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~3fc458f1.js?id=fdbb65c6c6f217a4d5b8",
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~4ee7ad30.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~4ee7ad30.js?id=2e16bdf5ea299297e2ff",
"/js/main.7106615f8bf3723b0c18.hot-update.js": "/js/main.7106615f8bf3723b0c18.hot-update.js",
@@ -479,5 +479,34 @@
"/chunks/oasis/invoices/client-invoices.323f8d8e0a775c320522.hot-update.js": "/chunks/oasis/invoices/client-invoices.323f8d8e0a775c320522.hot-update.js",
"/chunks/oasis/invoices/client-invoices.4d6128bbc9738fa7a06a.hot-update.js": "/chunks/oasis/invoices/client-invoices.4d6128bbc9738fa7a06a.hot-update.js",
"/chunks/oasis/invoices/client-invoices.4d13629f9f2c3d4813ad.hot-update.js": "/chunks/oasis/invoices/client-invoices.4d13629f9f2c3d4813ad.hot-update.js",
"/chunks/oasis/invoices/client-invoices.ad5b0ca68d5f8fa58917.hot-update.js": "/chunks/oasis/invoices/client-invoices.ad5b0ca68d5f8fa58917.hot-update.js"
"/chunks/oasis/invoices/client-invoices.ad5b0ca68d5f8fa58917.hot-update.js": "/chunks/oasis/invoices/client-invoices.ad5b0ca68d5f8fa58917.hot-update.js",
"/chunks/oasis/invoices/client-invoices.7933228f591b9ec984f3.hot-update.js": "/chunks/oasis/invoices/client-invoices.7933228f591b9ec984f3.hot-update.js",
"/chunks/oasis/invoices/client-invoices.4d3ddf3e2f481c8cd332.hot-update.js": "/chunks/oasis/invoices/client-invoices.4d3ddf3e2f481c8cd332.hot-update.js",
"/chunks/oasis/invoices/client-invoices.454a6fa6efc99bcc4f22.hot-update.js": "/chunks/oasis/invoices/client-invoices.454a6fa6efc99bcc4f22.hot-update.js",
"/chunks/oasis/invoices/client-invoices.1162ebd6fe5a66ae6114.hot-update.js": "/chunks/oasis/invoices/client-invoices.1162ebd6fe5a66ae6114.hot-update.js",
"/chunks/oasis/invoices/client-invoices.25c1846710ad16ce1cc9.hot-update.js": "/chunks/oasis/invoices/client-invoices.25c1846710ad16ce1cc9.hot-update.js",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~2e1d0044.102b8a3dad61cacb8af6.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~2e1d0044.102b8a3dad61cacb8af6.hot-update.js",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~2e1d0044.47166e8bb53393a766ef.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~2e1d0044.47166e8bb53393a766ef.hot-update.js",
"/chunks/oasis/invoices/client-invoices.949e85e130317fe1e17e.hot-update.js": "/chunks/oasis/invoices/client-invoices.949e85e130317fe1e17e.hot-update.js",
"/chunks/oasis/invoices/client-invoices.916241f2214001f7f950.hot-update.js": "/chunks/oasis/invoices/client-invoices.916241f2214001f7f950.hot-update.js",
"/chunks/oasis/invoices/client-invoices.aed81c1fb2c98e6adda9.hot-update.js": "/chunks/oasis/invoices/client-invoices.aed81c1fb2c98e6adda9.hot-update.js",
"/chunks/oasis/invoices/client-invoices.f64fc6d1b1ec0c753c18.hot-update.js": "/chunks/oasis/invoices/client-invoices.f64fc6d1b1ec0c753c18.hot-update.js",
"/chunks/oasis/invoices/client-invoices.7ee34f5937d6b5cfd124.hot-update.js": "/chunks/oasis/invoices/client-invoices.7ee34f5937d6b5cfd124.hot-update.js",
"/chunks/oasis/invoices/client-invoices.de45b28a99a53bff3bb0.hot-update.js": "/chunks/oasis/invoices/client-invoices.de45b28a99a53bff3bb0.hot-update.js",
"/chunks/oasis/invoices/client-invoices.d01bc6185cd05219b4c1.hot-update.js": "/chunks/oasis/invoices/client-invoices.d01bc6185cd05219b4c1.hot-update.js",
"/chunks/oasis/invoices/client-invoices.16be7798d3e4013a8de2.hot-update.js": "/chunks/oasis/invoices/client-invoices.16be7798d3e4013a8de2.hot-update.js",
"/chunks/oasis/invoices/client-invoices.5500dc5d615acef205e7.hot-update.js": "/chunks/oasis/invoices/client-invoices.5500dc5d615acef205e7.hot-update.js",
"/chunks/oasis/invoices/client.3323a8efaa5112cbcc32.hot-update.js": "/chunks/oasis/invoices/client.3323a8efaa5112cbcc32.hot-update.js",
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~b2b17caf.2be2a7022f27577bbb37.hot-update.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~b2b17caf.2be2a7022f27577bbb37.hot-update.js",
"/chunks/oasis/invoices/client-invoices.4b06eb3509fc06217984.hot-update.js": "/chunks/oasis/invoices/client-invoices.4b06eb3509fc06217984.hot-update.js",
"/chunks/oasis/invoices/create-client.c6ad7812aa70dc5b1324.hot-update.js": "/chunks/oasis/invoices/create-client.c6ad7812aa70dc5b1324.hot-update.js",
"/chunks/oasis/invoices/create-client.cf1a2b1cf581534b466e.hot-update.js": "/chunks/oasis/invoices/create-client.cf1a2b1cf581534b466e.hot-update.js",
"/chunks/oasis/invoices/list.08af135f5df15336fc5c.hot-update.js": "/chunks/oasis/invoices/list.08af135f5df15336fc5c.hot-update.js",
"/chunks/oasis/invoices/list.b89b1c359f2677235515.hot-update.js": "/chunks/oasis/invoices/list.b89b1c359f2677235515.hot-update.js",
"/chunks/oasis/invoices/list.9bc74a8375b1a9152e45.hot-update.js": "/chunks/oasis/invoices/list.9bc74a8375b1a9152e45.hot-update.js",
"/chunks/oasis/invoices.36e6705ea9b81ba56c71.hot-update.js": "/chunks/oasis/invoices.36e6705ea9b81ba56c71.hot-update.js",
"/chunks/oasis/invoices.bdd28288f6ec48d16509.hot-update.js": "/chunks/oasis/invoices.bdd28288f6ec48d16509.hot-update.js",
"/chunks/oasis/invoices.f97b94d2d2511af5ebdb.hot-update.js": "/chunks/oasis/invoices.f97b94d2d2511af5ebdb.hot-update.js",
"/chunks/oasis/invoices.57867d7372f35cea6448.hot-update.js": "/chunks/oasis/invoices.57867d7372f35cea6448.hot-update.js",
"/chunks/oasis/invoices.48343b7abe9ced451cc7.hot-update.js": "/chunks/oasis/invoices.48343b7abe9ced451cc7.hot-update.js"
}

View File

@@ -34,15 +34,6 @@
<div class="label text-theme">
{{ $t('admin_page_user.tabs.invoices') }}
</div>
</router-link>
<router-link replace :to="{name: 'UserDelete'}" class="menu-list-item link border-bottom-theme">
<div class="icon text-theme">
<trash2-icon size="17" />
</div>
<div class="label text-theme">
Delete Client
</div>
</router-link>
</div>

View File

@@ -232,7 +232,7 @@
})
// Go to User page
//this.$router.push({name: 'UserDetail', params: {id: response.data.data.id}})
this.$router.push({name: 'ClientDetail', params: {id: response.data.id}})
})
.catch(error => {
this.isError = true

View File

@@ -12,26 +12,29 @@
<!--Table data content-->
<template slot-scope="{ row }">
<tr>
<td>
<a target="_blank" class="cell-item">
{{ row.invoiceNumber }}
</a>
</td>
<td>
<span class="cell-item">
{{ row.total }}
{{ row.data.attributes.invoiceNumber }}
</span>
</td>
<td>
<span class="cell-item">
{{ row.created_at }}
{{ row.data.attributes.total }}
</span>
</td>
<td>
<span class="cell-item">
{{ row.data.attributes.created_at }}
</span>
</td>
<td>
<div class="action-icons">
<a target="_blank">
<external-link-icon size="15" class="icon" />
</a>
<a @click="downloadItem(row)">
<DownloadCloudIcon size="15" class="icon" />
</a>
<router-link :to="{name: 'ClientDetail'}">
<edit2-icon size="15" class="icon" />
</router-link>
</div>
</td>
</tr>
@@ -54,15 +57,15 @@
import PageTabGroup from '@/components/Others/Layout/PageTabGroup'
import PageTab from '@/components/Others/Layout/PageTab'
import InfoBox from '@/components/Others/Forms/InfoBox'
import {ExternalLinkIcon} from "vue-feather-icons";
import axios from 'axios'
import {Edit2Icon, DownloadCloudIcon} from "vue-feather-icons";
export default {
name: 'UserInvoices',
components: {
EmptyPageContent,
DatatableWrapper,
ExternalLinkIcon,
DownloadCloudIcon,
Edit2Icon,
PageTabGroup,
InfoBox,
PageTab,
@@ -82,12 +85,7 @@
sortable: false
},
{
label: this.$t('admin_page_invoices.table.plan'),
field: 'data.attributes.bag.amount',
sortable: false
},
{
label: this.$t('admin_page_invoices.table.payed'),
label: 'Created At',
field: 'data.attributes.created_at',
sortable: false
},
@@ -98,6 +96,11 @@
],
}
},
methods: {
downloadItem(row) {
this.$downloadFile(row.data.attributes.file_url, row.data.attributes.name + '.pdf')
},
}
}
</script>

View File

@@ -56,7 +56,9 @@
</ContentGroup>
</ContentSidebar>
<router-view :class="{'is-scaled-down': isScaledDown}" />
<keep-alive>
<router-view :class="{'is-scaled-down': isScaledDown}" />
</keep-alive>
</div>
</div>
</template>

View File

@@ -124,8 +124,8 @@ export default {
}
if (!this.isMobileSelectMode && this.$isMobile()) {
events.$emit('file-preview:show')
}
this.$router.push({name: 'ClientDetail', params: {id: this.item.id}})
}
if (this.isMobileSelectMode && this.$isMobile()) {
if (this.clipboard.some(item => item.data.id === this.item.data.id)) {

View File

@@ -10,11 +10,11 @@
<MenuMobileGroup>
<OptionGroup class="menu-option-group">
<Option @click.native="" title="Edit" icon="rename" />
<Option @click.native="goToProfile" title="Edit" icon="rename" />
<Option @click.native="deleteItem" title="Delete" icon="trash" />
</OptionGroup>
<OptionGroup>
<Option @click.native="showDetail" :title="$t('context_menu.detail')" icon="detail" />
<Option @click.native="goToProfile" :title="$t('context_menu.detail')" icon="detail" />
</OptionGroup>
</MenuMobileGroup>
</MenuMobile>
@@ -51,7 +51,9 @@ export default {
}
},
methods: {
goToProfile() {
this.$router.push({name: 'ClientDetail', params: {id: this.clipboard[0].id}})
}
}
}
</script>

View File

@@ -215,7 +215,7 @@
}
.option-value {
@include font-size(14);
@include font-size(16);
font-weight: 700;
width: 100%;
vertical-align: middle;