mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-13 08:45:01 +00:00
i18n implementation into invoice module
This commit is contained in:
@@ -195,7 +195,7 @@ class InvoiceController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function destroy(Invoice $invoice)
|
public function destroy(Invoice $invoice)
|
||||||
{
|
{
|
||||||
//$invoice->delete();
|
$invoice->delete();
|
||||||
|
|
||||||
return response('Done', 204);
|
return response('Done', 204);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,9 +44,9 @@ class InvoiceDeliveryNotification extends Notification
|
|||||||
public function toMail($notifiable)
|
public function toMail($notifiable)
|
||||||
{
|
{
|
||||||
return (new MailMessage)
|
return (new MailMessage)
|
||||||
->subject('New invoice')
|
->subject(__t('in.notify.subject', ['company' => $this->user->invoiceProfile->company]))
|
||||||
->greeting(__t('mail_greeting'))
|
->greeting(__t('mail_greeting'))
|
||||||
->line($this->user->settings->name . ' sent you an invoice.')
|
->line(__t('in.notify.message', ['company' => $this->user->invoiceProfile->company]))
|
||||||
->salutation(__t('mail_salutation'))
|
->salutation(__t('mail_salutation'))
|
||||||
->attach(storage_path('app/' . invoice_path($this->invoice)), [
|
->attach(storage_path('app/' . invoice_path($this->invoice)), [
|
||||||
'as' => 'name.pdf',
|
'as' => 'name.pdf',
|
||||||
|
|||||||
@@ -86,7 +86,10 @@ return [
|
|||||||
'document_gdpr_policy' => 'Směrnice EU (GDPR)',
|
'document_gdpr_policy' => 'Směrnice EU (GDPR)',
|
||||||
|
|
||||||
// Invoice module
|
// Invoice module
|
||||||
|
'in.invoice' => 'Invoice',
|
||||||
'in_toaster.success_creation' => 'Invoice was created successfully',
|
'in_toaster.success_creation' => 'Invoice was created successfully',
|
||||||
|
'in_toaster.success_invoice_edition' => 'The invoice was successfully edited.',
|
||||||
|
'in_toaster.success_client_creation' => 'Client was created successfully',
|
||||||
|
|
||||||
'in_editor.page.create_regular_invoice' => 'Create Regular Invoice',
|
'in_editor.page.create_regular_invoice' => 'Create Regular Invoice',
|
||||||
'in_editor.page.create_advance_invoice' => 'Create Advance Invoice',
|
'in_editor.page.create_advance_invoice' => 'Create Advance Invoice',
|
||||||
@@ -108,7 +111,7 @@ return [
|
|||||||
'in_editor.others' => 'Others',
|
'in_editor.others' => 'Others',
|
||||||
'in_editor.summary' => 'Invoice Summary',
|
'in_editor.summary' => 'Invoice Summary',
|
||||||
|
|
||||||
'in_editor.lab_ico' => 'ICO',
|
'in_editor.ico' => 'ICO',
|
||||||
'in_editor.dic' => 'DIC',
|
'in_editor.dic' => 'DIC',
|
||||||
'in_editor.ic_dph' => 'IC DPH',
|
'in_editor.ic_dph' => 'IC DPH',
|
||||||
'in_editor.company_name' => 'Company name',
|
'in_editor.company_name' => 'Company name',
|
||||||
@@ -163,6 +166,115 @@ return [
|
|||||||
'in_editor.submit' => 'Store & Generate Invoice',
|
'in_editor.submit' => 'Store & Generate Invoice',
|
||||||
'in_editor.error' => 'There is probably an error, please check it and fix it.',
|
'in_editor.error' => 'There is probably an error, please check it and fix it.',
|
||||||
|
|
||||||
'inputs.placeholder_search_invoices' => 'Search invoices...',
|
'inputs.placeholder_search_invoices' => 'Search in invoices...',
|
||||||
'inputs.placeholder_search_clients' => 'Search clients...',
|
'inputs.placeholder_search_clients' => 'Search in clients...',
|
||||||
|
|
||||||
|
'in.nav.group.invoicing' => 'Invoicing',
|
||||||
|
'in.nav.group.settings' => 'Settings',
|
||||||
|
|
||||||
|
'in.nav.invoices' => 'Invoices',
|
||||||
|
'in.nav.advance_invoices' => 'Advance Invoices',
|
||||||
|
'in.nav.clients' => 'Clients',
|
||||||
|
'in.nav.my_bill_profile' => 'My Billing Profile',
|
||||||
|
|
||||||
|
'in.create.regular_invoice' => 'Create Invoice',
|
||||||
|
'in.create.advance_invoice' => 'Create Advance Invoice',
|
||||||
|
'in.create.client' => 'Create Client',
|
||||||
|
|
||||||
|
'in.button.setup_bill_profile' => 'Set up Billing Profile',
|
||||||
|
'in.button.store_bill_profile' => 'Store My Billing Profile',
|
||||||
|
|
||||||
|
'in.toaster.success_bill_profile' => 'Your billing profile was successfully stored',
|
||||||
|
|
||||||
|
'in.bill_profile_note' => 'Here you can set your <b class="text-theme">billing profile</b> which will be paste to your every newly generated invoice.',
|
||||||
|
|
||||||
|
'in.empty.bill_profile_title' => "You don't have billing profile",
|
||||||
|
'in.empty.bill_profile_description' => 'Before your first invoice, please set up your billing profile.',
|
||||||
|
'in.empty.clients_invoices' => "Client doesn't have any invoices yet.",
|
||||||
|
|
||||||
|
'in.empty.invoice_page_title' => "Create Your First Invoice",
|
||||||
|
'in.empty.invoice_page_description' => "It's very easy, just click on the button below.",
|
||||||
|
|
||||||
|
'in.empty.client_page_title' => "Create Your First Client",
|
||||||
|
|
||||||
|
'in.form.some_issues' => 'We found some issues in your form. Please check it out and submit again',
|
||||||
|
'in.form.create_client' => 'Create Client',
|
||||||
|
'in.form.delete_invoice' => 'Delete Invoice',
|
||||||
|
|
||||||
|
'in.form.stamp' => 'Stamp',
|
||||||
|
'in.form.author_name' => 'Author Name',
|
||||||
|
'in.form.swift_code' => 'BIC code/SWIFT',
|
||||||
|
'in.form.iban' => 'IBAN',
|
||||||
|
'in.form.bank_name' => 'Bank Name',
|
||||||
|
'in.form.reg_notes' => 'Registration Notes',
|
||||||
|
'in.form.company_name' => 'Company name',
|
||||||
|
'in.form.company_and_logo' => 'Company & Logo',
|
||||||
|
'in.form.company_details' => 'Company Details',
|
||||||
|
'in.form.company_address' => 'Company Address',
|
||||||
|
'in.form.contact_info' => 'Contact Information',
|
||||||
|
'in.form.bank_info' => 'Bank Info',
|
||||||
|
'in.form.author' => 'Author',
|
||||||
|
|
||||||
|
'in.menu.edit_invoice' => 'Edit Invoice',
|
||||||
|
'in.menu.send_invoice' => 'Send Invoice',
|
||||||
|
'in.menu.show_company' => 'Show Company',
|
||||||
|
'in.menu.edit' => 'Edit',
|
||||||
|
'in.menu.delete' => 'Delete',
|
||||||
|
|
||||||
|
'in.popup.delete_single_invoice.title' => 'Are you sure you want to delete this invoice?',
|
||||||
|
'in.popup.delete_single_invoice.message' => 'Your invoice will be permanently deleted.',
|
||||||
|
|
||||||
|
'in.popup.delete_invoice.title' => 'Are you sure you want to delete invoice number {number}?',
|
||||||
|
'in.popup.delete_invoice.message' => 'Your invoice will be permanently deleted.',
|
||||||
|
|
||||||
|
'in.popup.delete_client.title' => 'Are you sure you want to delete client {name}?',
|
||||||
|
'in.popup.delete_client.message' => 'Your client will be permanently deleted.',
|
||||||
|
|
||||||
|
'in.total_net' => 'Total Net',
|
||||||
|
'in.total_invoices' => 'Total Invoices',
|
||||||
|
'in.n-abbreviation' => 'n.',
|
||||||
|
|
||||||
|
'in.doc.taxable_doc' => 'taxable document',
|
||||||
|
'in.doc.advance_doc' => 'zálohový doklad',
|
||||||
|
|
||||||
|
'in.doc.number' => 'Číslo',
|
||||||
|
'in.doc.variable_symbol' => 'Variabilný symbol',
|
||||||
|
|
||||||
|
'in.doc.customer' => 'Customer',
|
||||||
|
'in.doc.supplier' => 'Supplier',
|
||||||
|
|
||||||
|
'in.doc.date_of_issue' => 'Dátum vystavenia',
|
||||||
|
'in.doc.date_of_delivery' => 'Dátum dodania',
|
||||||
|
'in.doc.due_date' => 'Dátum splatnosti',
|
||||||
|
|
||||||
|
'in.doc.headquarters' => 'Headquarters',
|
||||||
|
|
||||||
|
'in.doc.sum_to_pay' => 'Suma na úhradu',
|
||||||
|
'in.doc.bank_account_number' => 'Číslo účtu',
|
||||||
|
|
||||||
|
'in.doc.item.name' => 'Názov produktu',
|
||||||
|
'in.doc.item.amount' => 'Množstvo',
|
||||||
|
'in.doc.item.price_per_unit' => 'J. Cena',
|
||||||
|
'in.doc.item.total' => 'Celkom',
|
||||||
|
'in.doc.item.vat_rate' => 'Sadzba DPH',
|
||||||
|
'in.doc.item.vat' => 'DPH',
|
||||||
|
'in.doc.item.total_with_vat' => 'Celkom s DPH',
|
||||||
|
|
||||||
|
'in.doc.discount' => 'Zlava za doklad',
|
||||||
|
'in.doc.vat_base' => 'Základ DPH',
|
||||||
|
|
||||||
|
'in.doc.thanks' => 'Ďakujeme, že ste sa rozhodli pre naše služby.',
|
||||||
|
'in.doc.not_vat_payer' => 'Nie sme platci DPH',
|
||||||
|
|
||||||
|
'in.doc.creator' => 'Faktúru vystavil',
|
||||||
|
|
||||||
|
'in.doc.created_by_app' => 'Vygenerované aplikáciou <a href=":url">:app_name</a>',
|
||||||
|
|
||||||
|
'in.notify.subject' => 'You have new invoice from company :company',
|
||||||
|
'in.notify.message' => ':company send you invoice. You can find it in attachment of this email.',
|
||||||
|
|
||||||
|
'in.route_title.invoices' => 'Invoices',
|
||||||
|
'in.route_title.client' => 'Client',
|
||||||
|
'in.route_title.client_detail' => 'Client',
|
||||||
|
'in.route_title.client_invoices' => 'Client Invoices',
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ return [
|
|||||||
'admin_settings.payments.webhook_url' => 'Stripe webhook URL',
|
'admin_settings.payments.webhook_url' => 'Stripe webhook URL',
|
||||||
'admin_settings.tabs.billings' => 'Billings',
|
'admin_settings.tabs.billings' => 'Billings',
|
||||||
'admin_settings.tabs.payments' => 'Payments',
|
'admin_settings.tabs.payments' => 'Payments',
|
||||||
|
'global.pcs' => 'Pcs.',
|
||||||
'global.monthly_ac' => 'Mo.',
|
'global.monthly_ac' => 'Mo.',
|
||||||
'global.premium' => 'Premium',
|
'global.premium' => 'Premium',
|
||||||
'global.upgrade_plan' => 'Upgrade Plan',
|
'global.upgrade_plan' => 'Upgrade Plan',
|
||||||
@@ -675,5 +676,7 @@ return [
|
|||||||
'app_touch_icon' => 'App Touch Icon',
|
'app_touch_icon' => 'App Touch Icon',
|
||||||
'app_touch_icon_description' => 'If user store bookmark on his phone screen, this icon appear in app thumbnail. Preferred size is 156x156',
|
'app_touch_icon_description' => 'If user store bookmark on his phone screen, this icon appear in app thumbnail. Preferred size is 156x156',
|
||||||
'select_search_placeholder' => 'Search in list...',
|
'select_search_placeholder' => 'Search in list...',
|
||||||
|
'go_back_from' => 'Go back from',
|
||||||
|
'create' => 'Create',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
+69
-11
@@ -8,7 +8,7 @@
|
|||||||
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~56ae6336.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~56ae6336.js?id=3500df10c19053acd77b",
|
"/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~56ae6336.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~56ae6336.js?id=3500df10c19053acd77b",
|
||||||
"/chunks/admin~chunks/files~chunks/oasis/invoices~chunks/oasis/invoices/list~chunks/platform~chunks/sh~f205bd67.js": "/chunks/admin~chunks/files~chunks/oasis/invoices~chunks/oasis/invoices/list~chunks/platform~chunks/sh~f205bd67.js?id=94e67ef1eef94f3de4a7",
|
"/chunks/admin~chunks/files~chunks/oasis/invoices~chunks/oasis/invoices/list~chunks/platform~chunks/sh~f205bd67.js": "/chunks/admin~chunks/files~chunks/oasis/invoices~chunks/oasis/invoices/list~chunks/platform~chunks/sh~f205bd67.js?id=94e67ef1eef94f3de4a7",
|
||||||
"/chunks/admin~chunks/files~chunks/oasis/invoices~chunks/settings~chunks/shared-files~chunks/shared/fi~41abd910.js": "/chunks/admin~chunks/files~chunks/oasis/invoices~chunks/settings~chunks/shared-files~chunks/shared/fi~41abd910.js?id=c804f9bf9138c4da52e9",
|
"/chunks/admin~chunks/files~chunks/oasis/invoices~chunks/settings~chunks/shared-files~chunks/shared/fi~41abd910.js": "/chunks/admin~chunks/files~chunks/oasis/invoices~chunks/settings~chunks/shared-files~chunks/shared/fi~41abd910.js?id=c804f9bf9138c4da52e9",
|
||||||
"/chunks/admin~chunks/oasis/invoices~chunks/platform.js": "/chunks/admin~chunks/oasis/invoices~chunks/platform.js?id=9a37f956a7da0d6622b8",
|
"/chunks/admin~chunks/oasis/invoices~chunks/platform.js": "/chunks/admin~chunks/oasis/invoices~chunks/platform.js?id=5bbc9cca3bfcc01fdc87",
|
||||||
"/chunks/admin~chunks/oasis/invoices~chunks/platform~chunks/shared.js": "/chunks/admin~chunks/oasis/invoices~chunks/platform~chunks/shared.js?id=a7e1f2b5096c12b0d23a",
|
"/chunks/admin~chunks/oasis/invoices~chunks/platform~chunks/shared.js": "/chunks/admin~chunks/oasis/invoices~chunks/platform~chunks/shared.js?id=a7e1f2b5096c12b0d23a",
|
||||||
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=1c320a815afcc355bae7",
|
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=1c320a815afcc355bae7",
|
||||||
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~262a2a36.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~262a2a36.js?id=e6505b93727b56256f92",
|
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~262a2a36.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~262a2a36.js?id=e6505b93727b56256f92",
|
||||||
@@ -51,15 +51,15 @@
|
|||||||
"/chunks/invoices.js": "/chunks/invoices.js?id=733a4a9b02203923e96b",
|
"/chunks/invoices.js": "/chunks/invoices.js?id=733a4a9b02203923e96b",
|
||||||
"/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=7fc7f9b6f10bdfac770e",
|
"/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=7fc7f9b6f10bdfac770e",
|
||||||
"/chunks/oasis/homepage.js": "/chunks/oasis/homepage.js?id=a1885dd8814f9eb63a1c",
|
"/chunks/oasis/homepage.js": "/chunks/oasis/homepage.js?id=a1885dd8814f9eb63a1c",
|
||||||
"/chunks/oasis/invoices.js": "/chunks/oasis/invoices.js?id=06d1453fd55efa63bf5e",
|
"/chunks/oasis/invoices.js": "/chunks/oasis/invoices.js?id=08fff2ca0af3ec3804ab",
|
||||||
"/chunks/oasis/invoices/client.js": "/chunks/oasis/invoices/client.js?id=63a83703890e6cf422f4",
|
"/chunks/oasis/invoices/client.js": "/chunks/oasis/invoices/client.js?id=5278e4b3fec7c313b500",
|
||||||
"/chunks/oasis/invoices/client-detail.js": "/chunks/oasis/invoices/client-detail.js?id=3e0d61357a7462acefea",
|
"/chunks/oasis/invoices/client-detail.js": "/chunks/oasis/invoices/client-detail.js?id=f04d993baccf515554db",
|
||||||
"/chunks/oasis/invoices/client-invoices.js": "/chunks/oasis/invoices/client-invoices.js?id=042d5de572775669aca9",
|
"/chunks/oasis/invoices/client-invoices.js": "/chunks/oasis/invoices/client-invoices.js?id=6558d35b1bfe20e8ede6",
|
||||||
"/chunks/oasis/invoices/create-client.js": "/chunks/oasis/invoices/create-client.js?id=27de77b1f68c7d9792e4",
|
"/chunks/oasis/invoices/create-client.js": "/chunks/oasis/invoices/create-client.js?id=a27824905ee00e5b9d5e",
|
||||||
"/chunks/oasis/invoices/create-invoice.js": "/chunks/oasis/invoices/create-invoice.js?id=4905e6c122b979407d11",
|
"/chunks/oasis/invoices/create-invoice.js": "/chunks/oasis/invoices/create-invoice.js?id=da39947baccf666a1efc",
|
||||||
"/chunks/oasis/invoices/edit-invoice.js": "/chunks/oasis/invoices/edit-invoice.js?id=2bde69d33af5c2cd68d1",
|
"/chunks/oasis/invoices/edit-invoice.js": "/chunks/oasis/invoices/edit-invoice.js?id=b8776f1c1d5b8b0626da",
|
||||||
"/chunks/oasis/invoices/list.js": "/chunks/oasis/invoices/list.js?id=00d6327ea0c94d5f1b82",
|
"/chunks/oasis/invoices/list.js": "/chunks/oasis/invoices/list.js?id=9e2db158ac672e3ac001",
|
||||||
"/chunks/oasis/invoices/profile.js": "/chunks/oasis/invoices/profile.js?id=cddd3e4908fbb107c4c4",
|
"/chunks/oasis/invoices/profile.js": "/chunks/oasis/invoices/profile.js?id=cb529bbeb676d24b011e",
|
||||||
"/chunks/oasis/invoices~chunks/platform~chunks/shared.js": "/chunks/oasis/invoices~chunks/platform~chunks/shared.js?id=97e5f5edd037d0953341",
|
"/chunks/oasis/invoices~chunks/platform~chunks/shared.js": "/chunks/oasis/invoices~chunks/platform~chunks/shared.js?id=97e5f5edd037d0953341",
|
||||||
"/chunks/oasis/platba.js": "/chunks/oasis/platba.js?id=791bf891bb4a384c0890",
|
"/chunks/oasis/platba.js": "/chunks/oasis/platba.js?id=791bf891bb4a384c0890",
|
||||||
"/chunks/oasis/platba~chunks/oasis/upgrade-billing~chunks/oasis/upgrade-plan~chunks/upgrade-billing~ch~6880400b.js": "/chunks/oasis/platba~chunks/oasis/upgrade-billing~chunks/oasis/upgrade-plan~chunks/upgrade-billing~ch~6880400b.js?id=0c8d1c3cca084baa177f",
|
"/chunks/oasis/platba~chunks/oasis/upgrade-billing~chunks/oasis/upgrade-plan~chunks/upgrade-billing~ch~6880400b.js": "/chunks/oasis/platba~chunks/oasis/upgrade-billing~chunks/oasis/upgrade-plan~chunks/upgrade-billing~ch~6880400b.js?id=0c8d1c3cca084baa177f",
|
||||||
@@ -749,5 +749,63 @@
|
|||||||
"/chunks/oasis/invoices/list.84cf00e7e02db7f3de82.hot-update.js": "/chunks/oasis/invoices/list.84cf00e7e02db7f3de82.hot-update.js",
|
"/chunks/oasis/invoices/list.84cf00e7e02db7f3de82.hot-update.js": "/chunks/oasis/invoices/list.84cf00e7e02db7f3de82.hot-update.js",
|
||||||
"/chunks/oasis/invoices/list.bebd59b9b840791bd746.hot-update.js": "/chunks/oasis/invoices/list.bebd59b9b840791bd746.hot-update.js",
|
"/chunks/oasis/invoices/list.bebd59b9b840791bd746.hot-update.js": "/chunks/oasis/invoices/list.bebd59b9b840791bd746.hot-update.js",
|
||||||
"/chunks/admin~chunks/oasis/invoices~chunks/platform.eee64186bac8fb02574f.hot-update.js": "/chunks/admin~chunks/oasis/invoices~chunks/platform.eee64186bac8fb02574f.hot-update.js",
|
"/chunks/admin~chunks/oasis/invoices~chunks/platform.eee64186bac8fb02574f.hot-update.js": "/chunks/admin~chunks/oasis/invoices~chunks/platform.eee64186bac8fb02574f.hot-update.js",
|
||||||
"/chunks/admin~chunks/oasis/invoices~chunks/platform.0a64eca08691ac4eb973.hot-update.js": "/chunks/admin~chunks/oasis/invoices~chunks/platform.0a64eca08691ac4eb973.hot-update.js"
|
"/chunks/admin~chunks/oasis/invoices~chunks/platform.0a64eca08691ac4eb973.hot-update.js": "/chunks/admin~chunks/oasis/invoices~chunks/platform.0a64eca08691ac4eb973.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/profile.96ffb0a7a11e26366730.hot-update.js": "/chunks/oasis/invoices/profile.96ffb0a7a11e26366730.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/profile.904110dcdd49e9a3817d.hot-update.js": "/chunks/oasis/invoices/profile.904110dcdd49e9a3817d.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/profile.9a6ab2398a0d7918d9d5.hot-update.js": "/chunks/oasis/invoices/profile.9a6ab2398a0d7918d9d5.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/profile.cc5ef691318552bf0851.hot-update.js": "/chunks/oasis/invoices/profile.cc5ef691318552bf0851.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/client-detail.c5232ba8025e17646987.hot-update.js": "/chunks/oasis/invoices/client-detail.c5232ba8025e17646987.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/create-client.c5232ba8025e17646987.hot-update.js": "/chunks/oasis/invoices/create-client.c5232ba8025e17646987.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/profile.51e1aede5d42ff00b14c.hot-update.js": "/chunks/oasis/invoices/profile.51e1aede5d42ff00b14c.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/profile.67aac1f80309c5f25b76.hot-update.js": "/chunks/oasis/invoices/profile.67aac1f80309c5f25b76.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/profile.7dc468949d62eb113610.hot-update.js": "/chunks/oasis/invoices/profile.7dc468949d62eb113610.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/profile.148344dd12d569575b87.hot-update.js": "/chunks/oasis/invoices/profile.148344dd12d569575b87.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices.cef2442d71ca8bc8cd08.hot-update.js": "/chunks/oasis/invoices.cef2442d71ca8bc8cd08.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/profile.b9a81bc909e2b81a0d83.hot-update.js": "/chunks/oasis/invoices/profile.b9a81bc909e2b81a0d83.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices.930d69e9d60e328dbaba.hot-update.js": "/chunks/oasis/invoices.930d69e9d60e328dbaba.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices.62d783c40cf2abced9a6.hot-update.js": "/chunks/oasis/invoices.62d783c40cf2abced9a6.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices.a5ee15dc3b77b00d6175.hot-update.js": "/chunks/oasis/invoices.a5ee15dc3b77b00d6175.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices.d1dae29e37737aed48d3.hot-update.js": "/chunks/oasis/invoices.d1dae29e37737aed48d3.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/list.15dc72e67b2afaca7149.hot-update.js": "/chunks/oasis/invoices/list.15dc72e67b2afaca7149.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/list.75e2d1bf57a69145cae7.hot-update.js": "/chunks/oasis/invoices/list.75e2d1bf57a69145cae7.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices.8030356ba9573a8d7f19.hot-update.js": "/chunks/oasis/invoices.8030356ba9573a8d7f19.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/list.b2c206514ffb30eb72ed.hot-update.js": "/chunks/oasis/invoices/list.b2c206514ffb30eb72ed.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices.3c7bbf39732d5649a6c0.hot-update.js": "/chunks/oasis/invoices.3c7bbf39732d5649a6c0.hot-update.js",
|
||||||
|
"/chunks/admin~chunks/oasis/invoices~chunks/platform.bd8d9fe18b56fa068467.hot-update.js": "/chunks/admin~chunks/oasis/invoices~chunks/platform.bd8d9fe18b56fa068467.hot-update.js",
|
||||||
|
"/chunks/admin~chunks/oasis/invoices~chunks/platform.ba7cc80680ca89050004.hot-update.js": "/chunks/admin~chunks/oasis/invoices~chunks/platform.ba7cc80680ca89050004.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices.619abe341a1c6e7eab2f.hot-update.js": "/chunks/oasis/invoices.619abe341a1c6e7eab2f.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/create-client.4feafe88dc3a8870d612.hot-update.js": "/chunks/oasis/invoices/create-client.4feafe88dc3a8870d612.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/create-client.24ce0e223fe7cdc560dd.hot-update.js": "/chunks/oasis/invoices/create-client.24ce0e223fe7cdc560dd.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/client-invoices.b77a5f90dd56ce251c86.hot-update.js": "/chunks/oasis/invoices/client-invoices.b77a5f90dd56ce251c86.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/client-invoices.bfbe24cebcf79fbea3ac.hot-update.js": "/chunks/oasis/invoices/client-invoices.bfbe24cebcf79fbea3ac.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/edit-invoice.0c3ce55e34933f047e6b.hot-update.js": "/chunks/oasis/invoices/edit-invoice.0c3ce55e34933f047e6b.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/list.372d90370e5e08bea403.hot-update.js": "/chunks/oasis/invoices/list.372d90370e5e08bea403.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/edit-invoice.f26a26e894a70f5d0147.hot-update.js": "/chunks/oasis/invoices/edit-invoice.f26a26e894a70f5d0147.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/create-client.31c2154555298f592f5a.hot-update.js": "/chunks/oasis/invoices/create-client.31c2154555298f592f5a.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/list.31c2154555298f592f5a.hot-update.js": "/chunks/oasis/invoices/list.31c2154555298f592f5a.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/list.6d839181e39adb28a2f7.hot-update.js": "/chunks/oasis/invoices/list.6d839181e39adb28a2f7.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/list.9a33ea47cd211f2b8bc0.hot-update.js": "/chunks/oasis/invoices/list.9a33ea47cd211f2b8bc0.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/list.f707dd1d3a597fd9e35c.hot-update.js": "/chunks/oasis/invoices/list.f707dd1d3a597fd9e35c.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/list.a36f0b6064ee3db0cf2b.hot-update.js": "/chunks/oasis/invoices/list.a36f0b6064ee3db0cf2b.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/list.c3079f379f3fdbf2cfc9.hot-update.js": "/chunks/oasis/invoices/list.c3079f379f3fdbf2cfc9.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/list.1f976fd73c2fca0e70cd.hot-update.js": "/chunks/oasis/invoices/list.1f976fd73c2fca0e70cd.hot-update.js",
|
||||||
|
"/js/main.badf51bbb1545c8b824a.hot-update.js": "/js/main.badf51bbb1545c8b824a.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/client.badf51bbb1545c8b824a.hot-update.js": "/chunks/oasis/invoices/client.badf51bbb1545c8b824a.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/create-client.badf51bbb1545c8b824a.hot-update.js": "/chunks/oasis/invoices/create-client.badf51bbb1545c8b824a.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/profile.badf51bbb1545c8b824a.hot-update.js": "/chunks/oasis/invoices/profile.badf51bbb1545c8b824a.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/client-detail.4ec291207c667509254b.hot-update.js": "/chunks/oasis/invoices/client-detail.4ec291207c667509254b.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/client-detail.e90c627e88bd34c1e8f4.hot-update.js": "/chunks/oasis/invoices/client-detail.e90c627e88bd34c1e8f4.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/list.c3895a63f7047eb23b0b.hot-update.js": "/chunks/oasis/invoices/list.c3895a63f7047eb23b0b.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices.5d68643d35e622f33ac2.hot-update.js": "/chunks/oasis/invoices.5d68643d35e622f33ac2.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/list.5d68643d35e622f33ac2.hot-update.js": "/chunks/oasis/invoices/list.5d68643d35e622f33ac2.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/client-detail.e097bb88eebbe760feae.hot-update.js": "/chunks/oasis/invoices/client-detail.e097bb88eebbe760feae.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/profile.e097bb88eebbe760feae.hot-update.js": "/chunks/oasis/invoices/profile.e097bb88eebbe760feae.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/client-detail.30a95ddcf608945d80da.hot-update.js": "/chunks/oasis/invoices/client-detail.30a95ddcf608945d80da.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/create-client.30a95ddcf608945d80da.hot-update.js": "/chunks/oasis/invoices/create-client.30a95ddcf608945d80da.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/create-invoice.30a95ddcf608945d80da.hot-update.js": "/chunks/oasis/invoices/create-invoice.30a95ddcf608945d80da.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/profile.30a95ddcf608945d80da.hot-update.js": "/chunks/oasis/invoices/profile.30a95ddcf608945d80da.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/profile.6b7ff6b18fa602fe9e6a.hot-update.js": "/chunks/oasis/invoices/profile.6b7ff6b18fa602fe9e6a.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/profile.dac8786e1668e1a6d6a4.hot-update.js": "/chunks/oasis/invoices/profile.dac8786e1668e1a6d6a4.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/edit-invoice.2356d2f37bbf0d1195bc.hot-update.js": "/chunks/oasis/invoices/edit-invoice.2356d2f37bbf0d1195bc.hot-update.js",
|
||||||
|
"/chunks/oasis/invoices/create-client.38fb2cc49f41ce580fae.hot-update.js": "/chunks/oasis/invoices/create-client.38fb2cc49f41ce580fae.hot-update.js"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +1,27 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="single-page">
|
<div id="single-page">
|
||||||
<MobileHeader :title="$router.currentRoute.meta.title" />
|
<MobileHeader :title="$t($router.currentRoute.meta.title)" />
|
||||||
<PageHeader :title="$router.currentRoute.meta.title" />
|
<PageHeader :title="$t($router.currentRoute.meta.title)" />
|
||||||
|
|
||||||
<div v-if="!isLoading && !profileNotExist" id="page-content" class="medium-width">
|
<div v-if="!isLoading && !profileNotExist" id="page-content" class="medium-width">
|
||||||
<div class="content-page">
|
<div class="content-page">
|
||||||
<PageTab>
|
<PageTab>
|
||||||
<PageTabGroup>
|
<PageTabGroup>
|
||||||
<div class="form block-form">
|
<div class="form block-form">
|
||||||
<FormLabel>Company & Logo</FormLabel>
|
<FormLabel>{{ $t('in.form.company_and_logo') }}</FormLabel>
|
||||||
<InfoBox>
|
<InfoBox>
|
||||||
<p>Here you can set your <b class="text-theme">billing profile</b> which will be paste to your every newly generated invoice.</p>
|
<p v-html="$t('in.bill_profile_note')"></p>
|
||||||
</InfoBox>
|
</InfoBox>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Logo (optional):</label>
|
<label>{{ $t('in_editor.client_logo') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="logo" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="logo" v-slot="{ errors }">
|
||||||
<ImageInput @input="$updateImage('/oasis/invoices/profile', 'logo', profile.logo)" :image="$getImage(profile.logo)" v-model="profile.logo" :error="errors[0]" />
|
<ImageInput @input="$updateImage('/oasis/invoices/profile', 'logo', profile.logo)" :image="$getImage(profile.logo)" v-model="profile.logo" :error="errors[0]" />
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Company name:</label>
|
<label>{{ $t('in.form.company_name') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="company" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="company" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText('/oasis/invoices/profile', 'company', profile.company)" v-model="profile.company" placeholder="" type="text"
|
<input @input="$updateText('/oasis/invoices/profile', 'company', profile.company)" v-model="profile.company" placeholder="" type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Registration Notes (optional):</label>
|
<label>{{ $t('in.form.reg_notes') }} ({{ $t('global.optional') }}):</label>
|
||||||
<div class="input-wrapper">
|
<div class="input-wrapper">
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="registration_notes" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="registration_notes" rules="required" v-slot="{ errors }">
|
||||||
<textarea
|
<textarea
|
||||||
@@ -50,10 +50,10 @@
|
|||||||
</PageTabGroup>
|
</PageTabGroup>
|
||||||
<PageTabGroup>
|
<PageTabGroup>
|
||||||
<div class="form block-form">
|
<div class="form block-form">
|
||||||
<FormLabel>Company Details</FormLabel>
|
<FormLabel>{{ $t('in.form.company_details') }}</FormLabel>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>ICO:</label>
|
<label>{{ $t('in_editor.ico') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ico" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ico" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText('/oasis/invoices/profile', 'ico', profile.ico)" v-model="profile.ico" placeholder="" type="text"
|
<input @input="$updateText('/oasis/invoices/profile', 'ico', profile.ico)" v-model="profile.ico" placeholder="" type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>DIC:</label>
|
<label>{{ $t('in_editor.dic') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="dic" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="dic" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText('/oasis/invoices/profile', 'dic', profile.dic)" v-model="profile.dic" placeholder="" type="text"
|
<input @input="$updateText('/oasis/invoices/profile', 'dic', profile.dic)" v-model="profile.dic" placeholder="" type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>IC DPH (optional):</label>
|
<label>{{ $t('in_editor.ic_dph') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ic_dph" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ic_dph" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText('/oasis/invoices/profile', 'ic_dph', profile.ic_dph)" v-model="profile.ic_dph" placeholder="" type="text"
|
<input @input="$updateText('/oasis/invoices/profile', 'ic_dph', profile.ic_dph)" v-model="profile.ic_dph" placeholder="" type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -82,10 +82,10 @@
|
|||||||
</PageTabGroup>
|
</PageTabGroup>
|
||||||
<PageTabGroup>
|
<PageTabGroup>
|
||||||
<div class="form block-form">
|
<div class="form block-form">
|
||||||
<FormLabel>Company Address</FormLabel>
|
<FormLabel>{{ $t('in.form.company_address') }}</FormLabel>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Address:</label>
|
<label>{{ $t('in_editor.client_address') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="address" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="address" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText('/oasis/invoices/profile', 'address', profile.address)" v-model="profile.address" placeholder="" type="text"
|
<input @input="$updateText('/oasis/invoices/profile', 'address', profile.address)" v-model="profile.address" placeholder="" type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
|
|
||||||
<div class="wrapper-inline">
|
<div class="wrapper-inline">
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>City:</label>
|
<label>{{ $t('in_editor.client_city') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="city" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="city" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText('/oasis/invoices/profile', 'city', profile.city)" v-model="profile.city" placeholder="" type="text"
|
<input @input="$updateText('/oasis/invoices/profile', 'city', profile.city)" v-model="profile.city" placeholder="" type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Postal Code:</label>
|
<label>{{ $t('in_editor.client_postal_code') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="postal_code" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="postal_code" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText('/oasis/invoices/profile', 'postal_code', profile.postal_code)" v-model="profile.postal_code" placeholder="" type="text"
|
<input @input="$updateText('/oasis/invoices/profile', 'postal_code', profile.postal_code)" v-model="profile.postal_code" placeholder="" type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Country:</label>
|
<label>{{ $t('in_editor.client_country') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="country" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="country" rules="required" v-slot="{ errors }">
|
||||||
<SelectInput @input="$updateText('/oasis/invoices/profile', 'country', profile.country)" v-model="profile.country" :default="profile.country" :options="countries" placeholder="" :isError="errors[0]"/>
|
<SelectInput @input="$updateText('/oasis/invoices/profile', 'country', profile.country)" v-model="profile.country" :default="profile.country" :options="countries" placeholder="" :isError="errors[0]"/>
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
@@ -124,10 +124,10 @@
|
|||||||
</PageTabGroup>
|
</PageTabGroup>
|
||||||
<PageTabGroup>
|
<PageTabGroup>
|
||||||
<div class="form block-form">
|
<div class="form block-form">
|
||||||
<FormLabel>Bank Info</FormLabel>
|
<FormLabel>{{ $t('in.form.bank_info') }}</FormLabel>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Bank Name:</label>
|
<label>{{ $t('in.form.bank_name') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="bank" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="bank" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText('/oasis/invoices/profile', 'bank', profile.bank)" v-model="profile.bank" placeholder="" type="text"
|
<input @input="$updateText('/oasis/invoices/profile', 'bank', profile.bank)" v-model="profile.bank" placeholder="" type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -136,7 +136,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Iban:</label>
|
<label>{{ $t('in.form.iban') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="iban" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="iban" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText('/oasis/invoices/profile', 'iban', profile.iban)" v-model="profile.iban" placeholder="" type="text"
|
<input @input="$updateText('/oasis/invoices/profile', 'iban', profile.iban)" v-model="profile.iban" placeholder="" type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -145,7 +145,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Swift code:</label>
|
<label>{{ $t('in.form.swift_code') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="swift" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="swift" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText('/oasis/invoices/profile', 'swift', profile.swift)" v-model="profile.swift" placeholder="" type="text"
|
<input @input="$updateText('/oasis/invoices/profile', 'swift', profile.swift)" v-model="profile.swift" placeholder="" type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -156,10 +156,10 @@
|
|||||||
</PageTabGroup>
|
</PageTabGroup>
|
||||||
<PageTabGroup>
|
<PageTabGroup>
|
||||||
<div class="form block-form">
|
<div class="form block-form">
|
||||||
<FormLabel>Author</FormLabel>
|
<FormLabel>{{ $t('in.form.author') }}</FormLabel>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Phone (optional):</label>
|
<label>{{ $t('in_editor.client_phone') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="phone" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="phone" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText('/oasis/invoices/profile', 'phone', profile.phone)" v-model="profile.phone" placeholder="" type="text"
|
<input @input="$updateText('/oasis/invoices/profile', 'phone', profile.phone)" v-model="profile.phone" placeholder="" type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -168,7 +168,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Email (optional):</label>
|
<label>{{ $t('in_editor.client_email') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="email" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="email" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText('/oasis/invoices/profile', 'email', profile.email)" v-model="profile.email" placeholder="" type="email"
|
<input @input="$updateText('/oasis/invoices/profile', 'email', profile.email)" v-model="profile.email" placeholder="" type="email"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -177,7 +177,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Author name:</label>
|
<label>{{ $t('in.form.author_name') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="author" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="author" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText('/oasis/invoices/profile', 'author', profile.author)" v-model="profile.author" placeholder="" type="text"
|
<input @input="$updateText('/oasis/invoices/profile', 'author', profile.author)" v-model="profile.author" placeholder="" type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -186,7 +186,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Stamp:</label>
|
<label>{{ $t('in.form.stamp') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="stamp" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="stamp" v-slot="{ errors }">
|
||||||
<ImageInput @input="$updateImage('/oasis/invoices/profile', 'stamp', profile.stamp)" :image="$getImage(profile.stamp)" v-model="profile.stamp" :error="errors[0]" />
|
<ImageInput @input="$updateImage('/oasis/invoices/profile', 'stamp', profile.stamp)" :image="$getImage(profile.stamp)" v-model="profile.stamp" :error="errors[0]" />
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
@@ -200,12 +200,12 @@
|
|||||||
<EmptyPageContent
|
<EmptyPageContent
|
||||||
v-if="!isLoading && profileNotExist"
|
v-if="!isLoading && profileNotExist"
|
||||||
icon="edit"
|
icon="edit"
|
||||||
title="You don't have billing profile"
|
:title="$t('in.empty.bill_profile_title')"
|
||||||
description="Before your first invoice, please set up your billing profile."
|
:description="$t('in.empty.bill_profile_description')"
|
||||||
>
|
>
|
||||||
<router-link :to="{name: 'BillingProfileSetUp'}" tag="p">
|
<router-link :to="{name: 'BillingProfileSetUp'}" tag="p">
|
||||||
<ButtonBase button-style="theme">
|
<ButtonBase button-style="theme">
|
||||||
Set up Billing Profile
|
{{ $t('in.button.setup_bill_profile') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</router-link>
|
</router-link>
|
||||||
</EmptyPageContent>
|
</EmptyPageContent>
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="single-page">
|
<div id="single-page">
|
||||||
<MobileHeader :title="$router.currentRoute.meta.title" />
|
<MobileHeader :title="$t($router.currentRoute.meta.title)" />
|
||||||
<PageHeader :can-back="true" :title="$router.currentRoute.meta.title" />
|
<PageHeader :can-back="true" :title="$t($router.currentRoute.meta.title)" />
|
||||||
<div id="page-content" class="medium-width">
|
<div id="page-content" class="medium-width">
|
||||||
<ValidationObserver @submit.prevent="createBillingProfile" ref="createBillingProfile" v-slot="{ invalid }" tag="div" class="content-page form block-form">
|
<ValidationObserver @submit.prevent="createBillingProfile" ref="createBillingProfile" v-slot="{ invalid }" tag="div" class="content-page form block-form">
|
||||||
<FormLabel>Company & Logo</FormLabel>
|
<FormLabel>{{ $t('in.form.company_and_logo') }}</FormLabel>
|
||||||
<InfoBox>
|
<InfoBox>
|
||||||
<p>Here you can set your <b class="text-theme">billing profile</b> which will be paste to your every newly generated invoice.</p>
|
<p v-html="$t('in.bill_profile_note')"></p>
|
||||||
</InfoBox>
|
</InfoBox>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Logo (optional):</label>
|
<label>{{ $t('in_editor.client_logo') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="logo" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="logo" v-slot="{ errors }">
|
||||||
<ImageInput :image="$getImage(profile.logo)" v-model="profile.logo" :error="errors[0]" />
|
<ImageInput :image="$getImage(profile.logo)" v-model="profile.logo" :error="errors[0]" />
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Company name:</label>
|
<label>{{ $t('in.form.company_name') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="company" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="company" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="profile.company" placeholder="Type your company name..." type="text"
|
<input v-model="profile.company" placeholder="Type your company name..." type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Registration Notes (optional):</label>
|
<label>{{ $t('in.form.reg_notes') }} ({{ $t('global.optional') }}):</label>
|
||||||
<div class="input-wrapper">
|
<div class="input-wrapper">
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="registration_notes" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="registration_notes" v-slot="{ errors }">
|
||||||
<textarea
|
<textarea
|
||||||
@@ -37,9 +37,9 @@
|
|||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<FormLabel class="mt-70">Company Details</FormLabel>
|
<FormLabel class="mt-70">{{ $t('in.form.company_details') }}</FormLabel>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>ICO:</label>
|
<label>{{ $t('in_editor.ico') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ico" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ico" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="profile.ico" placeholder="Type your company ICO..." type="text"
|
<input v-model="profile.ico" placeholder="Type your company ICO..." type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>DIC:</label>
|
<label>{{ $t('in_editor.dic') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="dic" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="dic" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="profile.dic" placeholder="Type your company DIC..." type="text"
|
<input v-model="profile.dic" placeholder="Type your company DIC..." type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -55,16 +55,16 @@
|
|||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>IC DPH (optional):</label>
|
<label>{{ $t('in_editor.ic_dph') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ic_dph" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ic_dph" v-slot="{ errors }">
|
||||||
<input v-model="profile.ic_dph" placeholder="Type your company IC DPH..." type="text"
|
<input v-model="profile.ic_dph" placeholder="Type your company IC DPH..." type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<FormLabel class="mt-70">Company Address</FormLabel>
|
<FormLabel class="mt-70">{{ $t('in.form.company_address') }}</FormLabel>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Address:</label>
|
<label>{{ $t('in_editor.client_address') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="address" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="address" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="profile.address" placeholder="Type your company address..." type="text"
|
<input v-model="profile.address" placeholder="Type your company address..." type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="wrapper-inline">
|
<div class="wrapper-inline">
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>City:</label>
|
<label>{{ $t('in_editor.client_city') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="city" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="city" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="profile.city" placeholder="Type your company city..." type="text"
|
<input v-model="profile.city" placeholder="Type your company city..." type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Postal Code:</label>
|
<label>{{ $t('in_editor.client_postal_code') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="postal_code" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="postal_code" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="profile.postal_code" placeholder="Type your company postal code..." type="text"
|
<input v-model="profile.postal_code" placeholder="Type your company postal code..." type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -90,15 +90,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Country:</label>
|
<label>{{ $t('in_editor.client_country') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="country" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="country" rules="required" v-slot="{ errors }">
|
||||||
<SelectInput v-model="profile.country" :default="profile.country" :options="countries" placeholder="Select your company country" :isError="errors[0]" />
|
<SelectInput v-model="profile.country" :default="profile.country" :options="countries" placeholder="Select your company country" :isError="errors[0]" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<FormLabel class="mt-70">Bank Info</FormLabel>
|
<FormLabel class="mt-70">{{ $t('in.form.bank_info') }}</FormLabel>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Bank Name:</label>
|
<label>{{ $t('in.form.bank_name') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="bank" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="bank" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="profile.bank" placeholder="Type your bank name..." type="text"
|
<input v-model="profile.bank" placeholder="Type your bank name..." type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>IBAN:</label>
|
<label>{{ $t('in.form.iban') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="iban" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="iban" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="profile.iban" placeholder="Type your IBAN..." type="text"
|
<input v-model="profile.iban" placeholder="Type your IBAN..." type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -114,16 +114,16 @@
|
|||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Swift code:</label>
|
<label>{{ $t('in.form.swift_code') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="swift" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="swift" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="profile.swift" placeholder="Type your swift code..." type="text"
|
<input v-model="profile.swift" placeholder="Type your swift code..." type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<FormLabel class="mt-70">Author</FormLabel>
|
<FormLabel class="mt-70">{{ $t('in.form.author') }}</FormLabel>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Phone (optional):</label>
|
<label>{{ $t('in_editor.client_phone') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="phone" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="phone" v-slot="{ errors }">
|
||||||
<input v-model="profile.phone" placeholder="Type your phone number..." type="text"
|
<input v-model="profile.phone" placeholder="Type your phone number..." type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -131,7 +131,7 @@
|
|||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Email (optional):</label>
|
<label>{{ $t('in_editor.client_email') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="email" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="email" v-slot="{ errors }">
|
||||||
<input v-model="profile.email" placeholder="Type your email..." type="email"
|
<input v-model="profile.email" placeholder="Type your email..." type="email"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -139,7 +139,7 @@
|
|||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Author name:</label>
|
<label>{{ $t('in.form.author_name') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="author" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="author" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="profile.author" placeholder="Type the author invoice name..." type="text"
|
<input v-model="profile.author" placeholder="Type the author invoice name..." type="text"
|
||||||
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
:class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
@@ -147,17 +147,17 @@
|
|||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Stamp (optional):</label>
|
<label>{{ $t('in.form.stamp') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="stamp" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="stamp" v-slot="{ errors }">
|
||||||
<ImageInput v-model="profile.stamp" :error="errors[0]" />
|
<ImageInput v-model="profile.stamp" :error="errors[0]" />
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<InfoBox v-if="isError" type="error">
|
<InfoBox v-if="isError" type="error">
|
||||||
<p>We found some issues in your form. Please check it out and submit again</p>
|
<p>{{ $t('in.form.some_issues') }}</p>
|
||||||
</InfoBox>
|
</InfoBox>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<ButtonBase @click.native="createBillingProfile" :disabled="isLoading" :loading="isLoading" button-style="theme" type="submit" style="margin-bottom: 35px">
|
<ButtonBase @click.native="createBillingProfile" :disabled="isLoading" :loading="isLoading" button-style="theme" type="submit" style="margin-bottom: 35px">
|
||||||
Store My Billing Profile
|
{{ $t('in.button.store_bill_profile') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</div>
|
</div>
|
||||||
</ValidationObserver>
|
</ValidationObserver>
|
||||||
@@ -269,7 +269,7 @@
|
|||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: 'Your billing profile was successfully stored',
|
message: this.$t('in.toaster.success_bill_profile'),
|
||||||
})
|
})
|
||||||
|
|
||||||
this.$store.dispatch('getAppData')
|
this.$store.dispatch('getAppData')
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="single-page">
|
<div id="single-page">
|
||||||
<div id="page-content" v-if="! isLoading">
|
<div id="page-content" v-if="! isLoading">
|
||||||
<MobileHeader :title="$router.currentRoute.meta.title" />
|
<MobileHeader :title="$t($router.currentRoute.meta.title)" />
|
||||||
<PageHeader :can-back="true" :title="$router.currentRoute.meta.title" />
|
<PageHeader :can-back="true" :title="$t($router.currentRoute.meta.title)" />
|
||||||
<div class="content-page">
|
<div class="content-page">
|
||||||
|
|
||||||
<!--Client thumbnail-->
|
<!--Client thumbnail-->
|
||||||
|
|||||||
@@ -1,122 +1,122 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="single-page">
|
<div id="single-page">
|
||||||
<MobileHeader :title="$router.currentRoute.meta.title" />
|
<MobileHeader :title="$t($router.currentRoute.meta.title)" />
|
||||||
<PageHeader :title="$router.currentRoute.meta.title" :can-back="true" />
|
<PageHeader :title="$t($router.currentRoute.meta.title)" :can-back="true" />
|
||||||
|
|
||||||
<div id="page-content" class="medium-width">
|
<div id="page-content" class="medium-width">
|
||||||
<div class="content-page">
|
<div class="content-page">
|
||||||
<ValidationObserver @submit.prevent="createClient" ref="createClient" v-slot="{ invalid }" tag="form" class="form block-form">
|
<ValidationObserver @submit.prevent="createClient" ref="createClient" v-slot="{ invalid }" tag="form" class="form block-form">
|
||||||
<PageTab>
|
<PageTab>
|
||||||
<PageTabGroup>
|
<PageTabGroup>
|
||||||
<FormLabel>Company & Logo</FormLabel>
|
<FormLabel>{{ $t('in.form.company_and_logo') }}</FormLabel>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Logo (optional):</label>
|
<label>{{ $t('in_editor.client_logo') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="avatar" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="avatar" v-slot="{ errors }">
|
||||||
<ImageInput v-model="client.avatar" :error="errors[0]" />
|
<ImageInput v-model="client.avatar" :error="errors[0]" />
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Company name:</label>
|
<label>{{ $t('in_editor.company_name') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="name" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="name" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="client.name" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input v-model="client.name" :placeholder="$t('in_editor.plac.client_company')" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
</PageTabGroup>
|
</PageTabGroup>
|
||||||
<PageTabGroup>
|
<PageTabGroup>
|
||||||
<FormLabel>Company Details</FormLabel>
|
<FormLabel>{{ $t('in.form.company_details') }}</FormLabel>
|
||||||
|
|
||||||
<div class="wrapper-inline">
|
<div class="wrapper-inline">
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>ICO:</label>
|
<label>{{ $t('in_editor.ico') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ico" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ico" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="client.ico" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input v-model="client.ico" :placeholder="$t('in_editor.plac.client_ico')" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>DIC (optional):</label>
|
<label>{{ $t('in_editor.dic') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="dic" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="dic" v-slot="{ errors }">
|
||||||
<input v-model="client.dic" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input v-model="client.dic" :placeholder="$t('in_editor.plac.client_dic')" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>IC DPH (optional):</label>
|
<label>{{ $t('in_editor.ic_dph') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ic_dph" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ic_dph" v-slot="{ errors }">
|
||||||
<input v-model="client.ic_dph" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input v-model="client.ic_dph" :placeholder="$t('in_editor.plac.client_ic_dph')" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
</PageTabGroup>
|
</PageTabGroup>
|
||||||
<PageTabGroup>
|
<PageTabGroup>
|
||||||
<FormLabel>Company Address</FormLabel>
|
<FormLabel>{{ $t('in.form.company_address') }}</FormLabel>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Address:</label>
|
<label>{{ $t('in_editor.client_address') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="address" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="address" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="client.address" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input v-model="client.address" :placeholder="$t('in_editor.plac.client_address')" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="wrapper-inline">
|
<div class="wrapper-inline">
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>City:</label>
|
<label>{{ $t('in_editor.client_city') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="city" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="city" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="client.city" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input v-model="client.city" :placeholder="$t('in_editor.plac.client_city')" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Postal Code:</label>
|
<label>{{ $t('in_editor.client_postal_code') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="postal_code" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="postal_code" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="client.postal_code" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input v-model="client.postal_code" :placeholder="$t('in_editor.plac.client_postal_code')" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Country:</label>
|
<label>{{ $t('in_editor.client_country') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="country" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="country" rules="required" v-slot="{ errors }">
|
||||||
<SelectInput v-model="client.country" :default="client.country" :options="countries" placeholder="" :isError="errors[0]" />
|
<SelectInput v-model="client.country" :default="client.country" :options="countries" :placeholder="$t('in_editor.plac.client_country')" :isError="errors[0]" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
</PageTabGroup>
|
</PageTabGroup>
|
||||||
<PageTabGroup>
|
<PageTabGroup>
|
||||||
<FormLabel>Contact Informations</FormLabel>
|
<FormLabel>{{ $t('in.form.contact_info') }}</FormLabel>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Phone (optional):</label>
|
<label>{{ $t('in_editor.client_phone') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="phone_number" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="phone_number" v-slot="{ errors }">
|
||||||
<input v-model="client.phone_number" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input v-model="client.phone_number" :placeholder="$t('in_editor.plac.client_phone')" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Email (optional):</label>
|
<label>{{ $t('in_editor.client_email') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="email" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="email" v-slot="{ errors }">
|
||||||
<input v-model="client.email" placeholder="" type="email" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input v-model="client.email" :placeholder="$t('in_editor.plac.client_email')" type="email" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<InfoBox v-if="isError" type="error">
|
<InfoBox v-if="isError" type="error">
|
||||||
<p>We found some issues in your form. Please check it out and submit again</p>
|
<p>{{ $t('in.form.some_issues') }}</p>
|
||||||
</InfoBox>
|
</InfoBox>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<ButtonBase :disabled="isLoading" :loading="isLoading" button-style="theme" type="submit" class="submit-button">
|
<ButtonBase :disabled="isLoading" :loading="isLoading" button-style="theme" type="submit" class="submit-button">
|
||||||
Create Client
|
{{ $t('in.form.create_client') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</div>
|
</div>
|
||||||
</PageTabGroup>
|
</PageTabGroup>
|
||||||
@@ -170,7 +170,7 @@
|
|||||||
return {
|
return {
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
isError: false,
|
isError: false,
|
||||||
_client: {
|
client: {
|
||||||
avatar: undefined,
|
avatar: undefined,
|
||||||
name: undefined,
|
name: undefined,
|
||||||
email: undefined,
|
email: undefined,
|
||||||
@@ -183,19 +183,6 @@
|
|||||||
dic: undefined,
|
dic: undefined,
|
||||||
ic_dph: undefined,
|
ic_dph: undefined,
|
||||||
},
|
},
|
||||||
client: {
|
|
||||||
avatar: undefined,
|
|
||||||
name: 'MakingCG s.r.o.',
|
|
||||||
email: 'info@makingcg.com',
|
|
||||||
phone_number: '+421950123456',
|
|
||||||
address: 'Karpatske namestie',
|
|
||||||
city: 'Bratislava',
|
|
||||||
postal_code: '04001',
|
|
||||||
country: 'SK',
|
|
||||||
ico: '4153514345',
|
|
||||||
dic: '5346542865',
|
|
||||||
ic_dph: 'SK200543253553',
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -231,7 +218,7 @@
|
|||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: 'Client was created successfully',
|
message: this.$t('in_toaster.success_client_creation'),
|
||||||
})
|
})
|
||||||
|
|
||||||
// Go to User page
|
// Go to User page
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<PageTab class="form-fixed-width">
|
<PageTab class="form-fixed-width">
|
||||||
<PageTabGroup class="form block-form">
|
<PageTabGroup class="form block-form">
|
||||||
<FormLabel>Company & Logo</FormLabel>
|
<FormLabel>{{ $t('in.form.company_and_logo') }}</FormLabel>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Logo (optional):</label>
|
<label>{{ $t('in_editor.client_logo') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="avatar" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="avatar" v-slot="{ errors }">
|
||||||
<ImageInput @input="$updateImage(`/oasis/clients/${client.id}`, 'avatar', client.avatar)" v-model="client.avatar" :image="client.avatar" :error="errors[0]" />
|
<ImageInput @input="$updateImage(`/oasis/clients/${client.id}`, 'avatar', client.avatar)" v-model="client.avatar" :image="client.avatar" :error="errors[0]" />
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Company name:</label>
|
<label>{{ $t('in_editor.company_name') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="name" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="name" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText(`/oasis/clients/${client.id}`, 'name', client.name)" v-model="client.name" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input @input="$updateText(`/oasis/clients/${client.id}`, 'name', client.name)" v-model="client.name" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
@@ -17,23 +17,23 @@
|
|||||||
</div>
|
</div>
|
||||||
</PageTabGroup>
|
</PageTabGroup>
|
||||||
<PageTabGroup class="form block-form">
|
<PageTabGroup class="form block-form">
|
||||||
<FormLabel>Company Details</FormLabel>
|
<FormLabel>{{ $t('in.form.company_details') }}</FormLabel>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>ICO:</label>
|
<label>{{ $t('in_editor.ico') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ico" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ico" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText(`/oasis/clients/${client.id}`, 'ico', client.ico)" v-model="client.ico" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input @input="$updateText(`/oasis/clients/${client.id}`, 'ico', client.ico)" v-model="client.ico" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>DIC (optional):</label>
|
<label>{{ $t('in_editor.dic') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="dic" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="dic" v-slot="{ errors }">
|
||||||
<input @input="$updateText(`/oasis/clients/${client.id}`, 'dic', client.dic)" v-model="client.dic" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input @input="$updateText(`/oasis/clients/${client.id}`, 'dic', client.dic)" v-model="client.dic" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>IC DPH (optional):</label>
|
<label>{{ $t('in_editor.ic_dph') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ic_dph" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="ic_dph" v-slot="{ errors }">
|
||||||
<input @input="$updateText(`/oasis/clients/${client.id}`, 'ic_dph', client.ic_dph)" v-model="client.ic_dph" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input @input="$updateText(`/oasis/clients/${client.id}`, 'ic_dph', client.ic_dph)" v-model="client.ic_dph" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
@@ -41,30 +41,30 @@
|
|||||||
</div>
|
</div>
|
||||||
</PageTabGroup>
|
</PageTabGroup>
|
||||||
<PageTabGroup class="form block-form">
|
<PageTabGroup class="form block-form">
|
||||||
<FormLabel>Company Address</FormLabel>
|
<FormLabel>{{ $t('in.form.company_address') }}</FormLabel>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Address:</label>
|
<label>{{ $t('in_editor.client_address') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="address" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="address" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText(`/oasis/clients/${client.id}`, 'address', client.address)" v-model="client.address" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input @input="$updateText(`/oasis/clients/${client.id}`, 'address', client.address)" v-model="client.address" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>City:</label>
|
<label>{{ $t('in_editor.client_city') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="city" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="city" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText(`/oasis/clients/${client.id}`, 'city', client.city)" v-model="client.city" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input @input="$updateText(`/oasis/clients/${client.id}`, 'city', client.city)" v-model="client.city" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Postal Code:</label>
|
<label>{{ $t('in_editor.client_postal_code') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="postal_code" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="postal_code" rules="required" v-slot="{ errors }">
|
||||||
<input @input="$updateText(`/oasis/clients/${client.id}`, 'postal_code', client.postal_code)" v-model="client.postal_code" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input @input="$updateText(`/oasis/clients/${client.id}`, 'postal_code', client.postal_code)" v-model="client.postal_code" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Country:</label>
|
<label>{{ $t('in_editor.client_country') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="country" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="country" rules="required" v-slot="{ errors }">
|
||||||
<SelectInput @input="$updateText(`/oasis/clients/${client.id}`, 'country', client.country)" v-model="client.country" :default="client.country" :options="countries" placeholder="" :isError="errors[0]" />
|
<SelectInput @input="$updateText(`/oasis/clients/${client.id}`, 'country', client.country)" v-model="client.country" :default="client.country" :options="countries" placeholder="" :isError="errors[0]" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
@@ -72,16 +72,16 @@
|
|||||||
</div>
|
</div>
|
||||||
</PageTabGroup>
|
</PageTabGroup>
|
||||||
<PageTabGroup class="form block-form">
|
<PageTabGroup class="form block-form">
|
||||||
<FormLabel>Contact Informations</FormLabel>
|
<FormLabel>{{ $t('in.form.contact_info') }}</FormLabel>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Phone (optional):</label>
|
<label>{{ $t('in_editor.client_phone') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="phone_number" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="phone_number" v-slot="{ errors }">
|
||||||
<input @input="$updateText(`/oasis/clients/${client.id}`, 'phone_number', client.phone_number)" v-model="client.phone_number" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input @input="$updateText(`/oasis/clients/${client.id}`, 'phone_number', client.phone_number)" v-model="client.phone_number" placeholder="" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</div>
|
</div>
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<label>Email (optional):</label>
|
<label>{{ $t('in_editor.client_email') }} ({{ $t('global.optional') }}):</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="email" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="email" v-slot="{ errors }">
|
||||||
<input @input="$updateText(`/oasis/clients/${client.id}`, 'email', client.email)" v-model="client.email" placeholder="" type="email" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input @input="$updateText(`/oasis/clients/${client.id}`, 'email', client.email)" v-model="client.email" placeholder="" type="email" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
import {mapGetters} from "vuex";
|
import {mapGetters} from "vuex";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'UserDetail',
|
name: 'ClientDetail',
|
||||||
props: [
|
props: [
|
||||||
'client'
|
'client'
|
||||||
],
|
],
|
||||||
@@ -134,9 +134,6 @@
|
|||||||
isLoading: false,
|
isLoading: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
|
||||||
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
<!--Empty page-->
|
<!--Empty page-->
|
||||||
<template v-slot:empty-page>
|
<template v-slot:empty-page>
|
||||||
<InfoBox class="form-fixed-width">
|
<InfoBox class="form-fixed-width">
|
||||||
<p>Client doesn't have any invoices yet.</p>
|
<p>{{ $t('in.empty.clients_invoices') }}</p>
|
||||||
</InfoBox>
|
</InfoBox>
|
||||||
</template>
|
</template>
|
||||||
</DatatableWrapper>
|
</DatatableWrapper>
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
import {Edit2Icon, DownloadCloudIcon} from "vue-feather-icons";
|
import {Edit2Icon, DownloadCloudIcon} from "vue-feather-icons";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'UserInvoices',
|
name: 'ClientInvoices',
|
||||||
components: {
|
components: {
|
||||||
EmptyPageContent,
|
EmptyPageContent,
|
||||||
DatatableWrapper,
|
DatatableWrapper,
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
sortable: false
|
sortable: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Created At',
|
label: this.$t('file_detail.created_at'),
|
||||||
field: 'data.attributes.created_at',
|
field: 'data.attributes.created_at',
|
||||||
sortable: false
|
sortable: false
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -21,13 +21,13 @@
|
|||||||
|
|
||||||
<!--Sidebar navigation-->
|
<!--Sidebar navigation-->
|
||||||
<ContentSidebar>
|
<ContentSidebar>
|
||||||
<ContentGroup title="Invoicing" class="navigator menu-list-wrapper vertical">
|
<ContentGroup :title="$t('in.nav.group.invoicing')" class="navigator menu-list-wrapper vertical">
|
||||||
<a @click="goTo('regular-invoice')" :class="{'is-active': $isThisLocation(['regular-invoice']) && $route.name === 'InvoicesList'}" class="menu-list-item link">
|
<a @click="goTo('regular-invoice')" :class="{'is-active': $isThisLocation(['regular-invoice']) && $route.name === 'InvoicesList'}" class="menu-list-item link">
|
||||||
<div class="icon text-theme">
|
<div class="icon text-theme">
|
||||||
<file-text-icon size="17" />
|
<file-text-icon size="17" />
|
||||||
</div>
|
</div>
|
||||||
<div class="label text-theme">
|
<div class="label text-theme">
|
||||||
Invoices
|
{{ $t('in.nav.invoices') }}
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<a @click="goTo('advance-invoice')" :class="{'is-active': $isThisLocation(['advance-invoice']) && $route.name === 'InvoicesList'}" class="menu-list-item link">
|
<a @click="goTo('advance-invoice')" :class="{'is-active': $isThisLocation(['advance-invoice']) && $route.name === 'InvoicesList'}" class="menu-list-item link">
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
<clock-icon size="17" />
|
<clock-icon size="17" />
|
||||||
</div>
|
</div>
|
||||||
<div class="label text-theme">
|
<div class="label text-theme">
|
||||||
Advance Invoices
|
{{ $t('in.nav.advance_invoices') }}
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<a @click="goTo('clients')" :class="{'is-active': $isThisLocation(['clients']) && $route.name === 'InvoicesList'}" class="menu-list-item link">
|
<a @click="goTo('clients')" :class="{'is-active': $isThisLocation(['clients']) && $route.name === 'InvoicesList'}" class="menu-list-item link">
|
||||||
@@ -43,17 +43,17 @@
|
|||||||
<users-icon size="17" />
|
<users-icon size="17" />
|
||||||
</div>
|
</div>
|
||||||
<div class="label text-theme">
|
<div class="label text-theme">
|
||||||
Clients
|
{{ $t('in.nav.clients') }}
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</ContentGroup>
|
</ContentGroup>
|
||||||
<ContentGroup title="Settings" class="navigator menu-list-wrapper vertical">
|
<ContentGroup :title="$t('in.nav.group.settings')" class="navigator menu-list-wrapper vertical">
|
||||||
<router-link :to="{name: 'BillingProfile'}" class="menu-list-item link">
|
<router-link :to="{name: 'BillingProfile'}" class="menu-list-item link">
|
||||||
<div class="icon text-theme">
|
<div class="icon text-theme">
|
||||||
<edit2-icon size="17" />
|
<edit2-icon size="17" />
|
||||||
</div>
|
</div>
|
||||||
<div class="label text-theme">
|
<div class="label text-theme">
|
||||||
My Billing Profile
|
{{ $t('in.nav.my_bill_profile') }}
|
||||||
</div>
|
</div>
|
||||||
</router-link>
|
</router-link>
|
||||||
</ContentGroup>
|
</ContentGroup>
|
||||||
@@ -131,7 +131,7 @@
|
|||||||
if (! this.currentFolder) {
|
if (! this.currentFolder) {
|
||||||
|
|
||||||
this.$store.commit('STORE_CURRENT_FOLDER', {
|
this.$store.commit('STORE_CURRENT_FOLDER', {
|
||||||
name: 'Invoices',
|
name: this.$t('in.nav.invoices'),
|
||||||
id: undefined,
|
id: undefined,
|
||||||
location: 'regular-invoice',
|
location: 'regular-invoice',
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -56,7 +56,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="isNewClient" class="block-wrapper">
|
<div v-if="isNewClient" class="block-wrapper">
|
||||||
<label>{{ $t('in_editor.lab_ico') }}:</label>
|
<label>{{ $t('in_editor.ico') }}:</label>
|
||||||
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="client_ico" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="client_ico" rules="required" v-slot="{ errors }">
|
||||||
<input v-model="invoice.client_ico" :placeholder="$t('in_editor.plac.client_ico')" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
<input v-model="invoice.client_ico" :placeholder="$t('in_editor.plac.client_ico')" type="text" :class="{'is-error': errors[0]}" class="focus-border-theme" />
|
||||||
<small v-if="fullDetails" class="input-help">
|
<small v-if="fullDetails" class="input-help">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="single-page">
|
<div id="single-page">
|
||||||
<MobileHeader :title="pageTitle" />
|
<MobileHeader :title="pageTitle" />
|
||||||
<PageHeader :title="pageTitle" />
|
<PageHeader :can-back="true" :title="pageTitle" />
|
||||||
|
|
||||||
<div id="page-content">
|
<div id="page-content">
|
||||||
<div class="content-page" v-if="! isLoadingPage">
|
<div class="content-page" v-if="! isLoadingPage">
|
||||||
@@ -216,11 +216,11 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ButtonBase :disabled="isLoading" @click.native="deleteInvoice" button-style="secondary" class="next-submit">
|
<ButtonBase :disabled="isLoading" @click.native="deleteInvoice" button-style="secondary" class="next-submit">
|
||||||
Delete Invoice
|
{{ $t('in.form.delete_invoice') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
|
|
||||||
<ButtonBase :disabled="isLoading" :loading="isLoading" @click.native="updateInvoice" button-style="theme-solid" class="next-submit" style="margin-top: 15px">
|
<ButtonBase :disabled="isLoading" :loading="isLoading" @click.native="updateInvoice" button-style="theme-solid" class="next-submit" style="margin-top: 15px">
|
||||||
Save Changes
|
{{ $t('popup_share_edit.save') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
<p class="error-message" v-if="isError">
|
<p class="error-message" v-if="isError">
|
||||||
{{ errorMessage }}
|
{{ errorMessage }}
|
||||||
@@ -472,8 +472,8 @@
|
|||||||
},
|
},
|
||||||
deleteInvoice() {
|
deleteInvoice() {
|
||||||
events.$emit('confirm:open', {
|
events.$emit('confirm:open', {
|
||||||
title: `Are you sure you want to delete this invoice?`,
|
title: this.$t('in.popup.delete_single_invoice.title'),
|
||||||
message: 'Your invoice will be permanently deleted.',
|
message: this.$t('in.popup.delete_single_invoice.message'),
|
||||||
buttonColor: 'danger-solid',
|
buttonColor: 'danger-solid',
|
||||||
action: {
|
action: {
|
||||||
id: this.$route.params.id,
|
id: this.$route.params.id,
|
||||||
@@ -514,7 +514,7 @@
|
|||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: 'The invoice was successfully edited.',
|
message: this.$t('in_toaster.success_invoice_edition'),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
|||||||
@@ -23,9 +23,6 @@
|
|||||||
contextMenu(event, item) {
|
contextMenu(event, item) {
|
||||||
events.$emit('contextMenu:show', event, item)
|
events.$emit('contextMenu:show', event, item)
|
||||||
},
|
},
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
<div class="item-info">
|
<div class="item-info">
|
||||||
<span class="item-size">
|
<span class="item-size">
|
||||||
Created at: {{ item.created_at }}, Total: {{ item.totalNet }}
|
{{ $t('file_detail.created_at') }}: {{ item.created_at }}, {{ $t('global.total') }}: {{ item.totalNet }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -50,7 +50,7 @@ import {mapGetters} from 'vuex'
|
|||||||
import {events} from '@/bus'
|
import {events} from '@/bus'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'InvoiceItem',
|
name: 'ClientItem',
|
||||||
props: [
|
props: [
|
||||||
'item'
|
'item'
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -7,11 +7,10 @@
|
|||||||
:title="clipboard[0].name"
|
:title="clipboard[0].name"
|
||||||
:subtitle="clipboard[0].email"
|
:subtitle="clipboard[0].email"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<MenuMobileGroup>
|
<MenuMobileGroup>
|
||||||
<OptionGroup class="menu-option-group">
|
<OptionGroup class="menu-option-group">
|
||||||
<Option @click.native="goToProfile" title="Edit" icon="rename" />
|
<Option @click.native="goToProfile" :title="$t('in.menu.edit')" icon="rename" />
|
||||||
<Option @click.native="deleteItem" title="Delete" icon="trash" />
|
<Option @click.native="deleteItem" :title="$t('in.menu.delete')" icon="trash" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
<OptionGroup>
|
<OptionGroup>
|
||||||
<Option @click.native="goToProfile" :title="$t('context_menu.detail')" icon="detail" />
|
<Option @click.native="goToProfile" :title="$t('context_menu.detail')" icon="detail" />
|
||||||
@@ -57,8 +56,8 @@ export default {
|
|||||||
},
|
},
|
||||||
deleteItem() {
|
deleteItem() {
|
||||||
events.$emit('confirm:open', {
|
events.$emit('confirm:open', {
|
||||||
title: `Are you sure you want to delete client ${this.clipboard[0].name}?`,
|
title: this.$t('in.popup.delete_client.title', {name: this.clipboard[0].name}),
|
||||||
message: 'Your client will be permanently deleted.',
|
message: this.$t('in.popup.delete_client.message'),
|
||||||
buttonColor: 'danger-solid',
|
buttonColor: 'danger-solid',
|
||||||
action: {
|
action: {
|
||||||
id: this.clipboard[0].id,
|
id: this.clipboard[0].id,
|
||||||
|
|||||||
@@ -5,11 +5,11 @@
|
|||||||
<!--Invoice message-->
|
<!--Invoice message-->
|
||||||
<div class="text-content" v-if="hasBillingProfile && $isThisLocation(['regular-invoice', 'advance-invoice']) && !isLoading">
|
<div class="text-content" v-if="hasBillingProfile && $isThisLocation(['regular-invoice', 'advance-invoice']) && !isLoading">
|
||||||
<h1 class="title">
|
<h1 class="title">
|
||||||
Create Your First Invoice
|
{{ $t('in.empty.invoice_page_title') }}
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<p class="description">
|
<p class="description">
|
||||||
It's very easy, just click on the button below.
|
{{ $t('in.empty.invoice_page_description') }}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ButtonBase @click.native="createInvoice" button-style="theme" class="button">
|
<ButtonBase @click.native="createInvoice" button-style="theme" class="button">
|
||||||
@@ -20,30 +20,30 @@
|
|||||||
<!--Client Message-->
|
<!--Client Message-->
|
||||||
<div class="text-content" v-if="hasBillingProfile && $isThisLocation('clients') && !isLoading">
|
<div class="text-content" v-if="hasBillingProfile && $isThisLocation('clients') && !isLoading">
|
||||||
<h1 class="title">
|
<h1 class="title">
|
||||||
Create Your First Client
|
{{ $t('in.empty.client_page_title') }}
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<p class="description">
|
<p class="description">
|
||||||
It's very easy, just click on the button below.
|
{{ $t('in.empty.invoice_page_description') }}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ButtonBase @click.native="createClient" button-style="theme" class="button">
|
<ButtonBase @click.native="createClient" button-style="theme" class="button">
|
||||||
Create Client
|
{{ $t('in.form.create_client') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--Billing Profile Message-->
|
<!--Billing Profile Message-->
|
||||||
<div class="text-content" v-if="! hasBillingProfile">
|
<div class="text-content" v-if="! hasBillingProfile">
|
||||||
<h1 class="title">
|
<h1 class="title">
|
||||||
You don't have billing profile
|
{{ $t('in.empty.bill_profile_title') }}
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<p class="description">
|
<p class="description">
|
||||||
Before your first invoice, please set up your billing profile.
|
{{ $t('in.empty.bill_profile_description') }}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ButtonBase @click.native="createBillingProfile" button-style="theme" class="button">
|
<ButtonBase @click.native="createBillingProfile" button-style="theme" class="button">
|
||||||
Set up Billing Profile
|
{{ $t('in.button.setup_bill_profile') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
return this.entries && this.entries.length == 0
|
return this.entries && this.entries.length == 0
|
||||||
},
|
},
|
||||||
buttonTitle() {
|
buttonTitle() {
|
||||||
return this.$isThisLocation('regular-invoice') ? 'Create Regular Invoice' : 'Create Advance Invoice'
|
return this.$isThisLocation('regular-invoice') ? this.$t('in_editor.page.create_regular_invoice') : this.$t('in_editor.page.create_advance_invoice')
|
||||||
},
|
},
|
||||||
hasBillingProfile() {
|
hasBillingProfile() {
|
||||||
return this.user && this.user.data.attributes.has_billing_profile
|
return this.user && this.user.data.attributes.has_billing_profile
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
{{ directoryName }}
|
{{ directoryName }}
|
||||||
</MobileActionButton>
|
</MobileActionButton>
|
||||||
<MobileActionButton @click.native="createButton" icon="file-plus">
|
<MobileActionButton @click.native="createButton" icon="file-plus">
|
||||||
Create
|
{{ $t('create') }}
|
||||||
</MobileActionButton>
|
</MobileActionButton>
|
||||||
<MobileActionButton @click.native="showViewOptions" icon="th-list">
|
<MobileActionButton @click.native="showViewOptions" icon="th-list">
|
||||||
{{ $t('preview_sorting.preview_sorting_button') }}
|
{{ $t('preview_sorting.preview_sorting_button') }}
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
import {events} from '@/bus'
|
import {events} from '@/bus'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'FileActionsMobile',
|
name: 'InvoiceActionsMobile',
|
||||||
components: {
|
components: {
|
||||||
MobileActionButtonUpload,
|
MobileActionButtonUpload,
|
||||||
MobileActionButton,
|
MobileActionButton,
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
directoryName() {
|
directoryName() {
|
||||||
return this.currentFolder
|
return this.currentFolder
|
||||||
? this.currentFolder.name
|
? this.currentFolder.name
|
||||||
: 'Invoices'
|
: this.$t('in.nav.invoices')
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
<!--Invoice-->
|
<!--Invoice-->
|
||||||
<div v-show="isInvoice" class="menu-options" id="menu-list">
|
<div v-show="isInvoice" class="menu-options" id="menu-list">
|
||||||
<OptionGroup class="menu-option-group">
|
<OptionGroup class="menu-option-group">
|
||||||
<Option @click.native="editItem" title="Edit Invoice" icon="rename" />
|
<Option @click.native="editItem" :title="$t('in.menu.edit_invoice')" icon="rename" />
|
||||||
<Option @click.native="" title="Send Invoice" icon="send" />
|
<Option @click.native="" :title="$t('in.menu.send_invoice')" icon="send" />
|
||||||
<Option @click.native="goToCompany" title="Go to Company" icon="user" />
|
<Option @click.native="goToCompany" :title="$t('in.menu.show_company')" icon="user" />
|
||||||
<Option @click.native="deleteInvoice" :title="$t('context_menu.delete')" icon="trash" />
|
<Option @click.native="deleteInvoice" :title="$t('context_menu.delete')" icon="trash" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
|
|
||||||
@@ -19,11 +19,11 @@
|
|||||||
<!--Client-->
|
<!--Client-->
|
||||||
<div v-show="isClient" class="menu-options" id="menu-list">
|
<div v-show="isClient" class="menu-options" id="menu-list">
|
||||||
<OptionGroup class="menu-option-group">
|
<OptionGroup class="menu-option-group">
|
||||||
<Option @click.native="goToCompany" title="Edit" icon="rename" />
|
<Option @click.native="goToCompany" :title="$t('in.menu.edit')" icon="rename" />
|
||||||
<Option @click.native="deleteClient" title="Delete" icon="trash" />
|
<Option @click.native="deleteClient" :title="$t('context_menu.delete')" icon="trash" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
<OptionGroup>
|
<OptionGroup>
|
||||||
<Option @click.native="goToCompany" title="Go to Profile" icon="user" />
|
<Option @click.native="goToCompany" :title="$t('in.menu.show_company')" icon="user" />
|
||||||
<Option @click.native="showDetail" :title="$t('context_menu.detail')" icon="detail" />
|
<Option @click.native="showDetail" :title="$t('context_menu.detail')" icon="detail" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
</div>
|
</div>
|
||||||
@@ -100,8 +100,8 @@ export default {
|
|||||||
},
|
},
|
||||||
deleteInvoice() {
|
deleteInvoice() {
|
||||||
events.$emit('confirm:open', {
|
events.$emit('confirm:open', {
|
||||||
title: `Are you sure you want to delete invoice number ${this.item.invoice_number}?`,
|
title: this.$t('in.popup.delete_invoice.title', {number: this.item.invoice_number}),
|
||||||
message: 'Your invoice will be permanently deleted.',
|
message: this.$t('in.popup.delete_invoice.message'),
|
||||||
buttonColor: 'danger-solid',
|
buttonColor: 'danger-solid',
|
||||||
action: {
|
action: {
|
||||||
id: this.item.id,
|
id: this.item.id,
|
||||||
@@ -111,8 +111,8 @@ export default {
|
|||||||
},
|
},
|
||||||
deleteClient() {
|
deleteClient() {
|
||||||
events.$emit('confirm:open', {
|
events.$emit('confirm:open', {
|
||||||
title: `Are you sure you want to delete client ${this.item.name}?`,
|
title: this.$t('in.popup.delete_client.title', {name: this.item.name}),
|
||||||
message: 'Your client will be permanently deleted.',
|
message: this.$t('in.popup.delete_client.message'),
|
||||||
buttonColor: 'danger-solid',
|
buttonColor: 'danger-solid',
|
||||||
action: {
|
action: {
|
||||||
id: this.item.id,
|
id: this.item.id,
|
||||||
|
|||||||
@@ -2,11 +2,11 @@
|
|||||||
<MenuMobile name="invoice-create">
|
<MenuMobile name="invoice-create">
|
||||||
<MenuMobileGroup>
|
<MenuMobileGroup>
|
||||||
<OptionGroup>
|
<OptionGroup>
|
||||||
<Option @click.native="createInvoice('regular-invoice')" title="Create Invoice" icon="file-plus" is-hover-disabled="true" />
|
<Option @click.native="createInvoice('regular-invoice')" :title="$t('in.create.regular_invoice')" icon="file-plus" is-hover-disabled="true" />
|
||||||
<Option @click.native="createInvoice('advance-invoice')" title="Create Advance Invoice" icon="clock" is-hover-disabled="true" />
|
<Option @click.native="createInvoice('advance-invoice')" :title="$t('in.create.advance_invoice')" icon="clock" is-hover-disabled="true" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
<OptionGroup>
|
<OptionGroup>
|
||||||
<Option @click.native="createClient" title="Create Client" icon="user-plus" is-hover-disabled="true" />
|
<Option @click.native="createClient" :title="$t('in.create.client')" icon="user-plus" is-hover-disabled="true" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
</MenuMobileGroup>
|
</MenuMobileGroup>
|
||||||
</MenuMobile>
|
</MenuMobile>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
<!--Search bar-->
|
<!--Search bar-->
|
||||||
<ToolbarGroup style="margin-left: 0">
|
<ToolbarGroup style="margin-left: 0">
|
||||||
<SearchBar v-model="query" @reset-query="query = ''" placeholder="Search your invoices..." />
|
<SearchBar v-model="query" @reset-query="query = ''" :placeholder="searchPlaceholder" />
|
||||||
</ToolbarGroup>
|
</ToolbarGroup>
|
||||||
|
|
||||||
<!--Creating controls-->
|
<!--Creating controls-->
|
||||||
@@ -23,11 +23,11 @@
|
|||||||
<ToolbarButton @click.stop.native="createCreateMenu" source="plus" :action="$t('actions.create_folder')" />
|
<ToolbarButton @click.stop.native="createCreateMenu" source="plus" :action="$t('actions.create_folder')" />
|
||||||
<PopoverItem name="desktop-create-invoices">
|
<PopoverItem name="desktop-create-invoices">
|
||||||
<OptionGroup>
|
<OptionGroup>
|
||||||
<Option @click.stop.native="createInvoice('regular-invoice')" title="Create Regular Invoice" icon="file-plus" />
|
<Option @click.stop.native="createInvoice('regular-invoice')" :title="$t('in_editor.page.create_regular_invoice')" icon="file-plus" />
|
||||||
<Option @click.stop.native="createInvoice('advance-invoice')" title="Create Advance Invoice" icon="clock" />
|
<Option @click.stop.native="createInvoice('advance-invoice')" :title="$t('in_editor.page.create_advance_invoice')" icon="clock" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
<OptionGroup>
|
<OptionGroup>
|
||||||
<Option @click.native="createClient" title="Create Client" icon="user-plus" />
|
<Option @click.native="createClient" :title="$t('in.create.client')" icon="user-plus" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
</PopoverItem>
|
</PopoverItem>
|
||||||
</PopoverWrapper>
|
</PopoverWrapper>
|
||||||
@@ -94,7 +94,7 @@
|
|||||||
'clipboard',
|
'clipboard',
|
||||||
]),
|
]),
|
||||||
directoryName() {
|
directoryName() {
|
||||||
return this.currentFolder ? this.currentFolder.name : 'Invoices'
|
return this.currentFolder ? this.currentFolder.name : this.$t('in.nav.invoices')
|
||||||
},
|
},
|
||||||
canActiveInView() {
|
canActiveInView() {
|
||||||
let locations = [
|
let locations = [
|
||||||
@@ -104,6 +104,11 @@
|
|||||||
]
|
]
|
||||||
return !this.$isThisLocation(locations) || this.clipboard.length === 0
|
return !this.$isThisLocation(locations) || this.clipboard.length === 0
|
||||||
},
|
},
|
||||||
|
searchPlaceholder() {
|
||||||
|
return this.currentFolder && ['regular-invoice', 'advance-invoice'].includes(this.currentFolder.location)
|
||||||
|
? this.$t('inputs.placeholder_search_invoices')
|
||||||
|
: this.$t('inputs.placeholder_search_clients')
|
||||||
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -133,8 +138,8 @@
|
|||||||
if (this.$isThisLocation(['regular-invoice', 'advance-invoice']) && this.clipboard.length > 0) {
|
if (this.$isThisLocation(['regular-invoice', 'advance-invoice']) && this.clipboard.length > 0) {
|
||||||
|
|
||||||
events.$emit('confirm:open', {
|
events.$emit('confirm:open', {
|
||||||
title: `Are you sure you want to delete invoice number ${this.clipboard[0].invoice_number}?`,
|
title: this.$t('in.popup.delete_invoice.title', {number: this.clipboard[0].invoice_number}),
|
||||||
message: 'Your invoice will be permanently deleted.',
|
message: this.$t('in.popup.delete_invoice.message'),
|
||||||
buttonColor: 'danger-solid',
|
buttonColor: 'danger-solid',
|
||||||
action: {
|
action: {
|
||||||
id: this.clipboard[0].id,
|
id: this.clipboard[0].id,
|
||||||
@@ -145,8 +150,8 @@
|
|||||||
|
|
||||||
if (this.$isThisLocation('clients') && this.clipboard.length > 0) {
|
if (this.$isThisLocation('clients') && this.clipboard.length > 0) {
|
||||||
events.$emit('confirm:open', {
|
events.$emit('confirm:open', {
|
||||||
title: `Are you sure you want to delete client ${this.clipboard[0].name}?`,
|
title: this.$t('in.popup.delete_client.title', {name: this.clipboard[0].name}),
|
||||||
message: 'Your client will be permanently deleted.',
|
message: this.$t('in.popup.delete_client.message'),
|
||||||
buttonColor: 'danger-solid',
|
buttonColor: 'danger-solid',
|
||||||
action: {
|
action: {
|
||||||
id: this.clipboard[0].id,
|
id: this.clipboard[0].id,
|
||||||
|
|||||||
@@ -2,11 +2,11 @@
|
|||||||
<MenuMobile name="invoice-filter">
|
<MenuMobile name="invoice-filter">
|
||||||
<MenuMobileGroup>
|
<MenuMobileGroup>
|
||||||
<OptionGroup>
|
<OptionGroup>
|
||||||
<Option @click.native="showLocation('regular-invoice')" :is-active="$isThisLocation('regular-invoice')" title="Invoices" icon="file-text" is-hover-disabled="true" />
|
<Option @click.native="showLocation('regular-invoice')" :is-active="$isThisLocation('regular-invoice')" :title="$t('in.nav.invoices')" icon="file-text" is-hover-disabled="true" />
|
||||||
<Option @click.native="showLocation('advance-invoice')" :is-active="$isThisLocation('advance-invoice')" title="Advance Invoices" icon="clock" is-hover-disabled="true" />
|
<Option @click.native="showLocation('advance-invoice')" :is-active="$isThisLocation('advance-invoice')" :title="$t('in.nav.advance_invoices')" icon="clock" is-hover-disabled="true" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
<OptionGroup>
|
<OptionGroup>
|
||||||
<Option @click.native="showLocation('clients')" :is-active="$isThisLocation('clients')" title="Clients" icon="users" is-hover-disabled="true" />
|
<Option @click.native="showLocation('clients')" :is-active="$isThisLocation('clients')" :title="$t('in.nav.clients')" icon="users" is-hover-disabled="true" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
</MenuMobileGroup>
|
</MenuMobileGroup>
|
||||||
</MenuMobile>
|
</MenuMobile>
|
||||||
|
|||||||
@@ -23,18 +23,18 @@
|
|||||||
<ListInfo v-if="isSingleFile && !isEmpty">
|
<ListInfo v-if="isSingleFile && !isEmpty">
|
||||||
|
|
||||||
<ListInfoItem
|
<ListInfoItem
|
||||||
title="Email"
|
:title="$t('in_editor.client_email')"
|
||||||
:content="singleFile.email"
|
:content="singleFile.email"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<ListInfoItem
|
<ListInfoItem
|
||||||
title="Total Net"
|
:title="$t('in.total_net')"
|
||||||
:content="singleFile.totalNet"
|
:content="singleFile.totalNet"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<ListInfoItem
|
<ListInfoItem
|
||||||
title="Total Invoices"
|
:title="$t('in.total_invoices')"
|
||||||
:content="singleFile.totalInvoices + ' Pcs.'"
|
:content="singleFile.totalInvoices + ' ' + $t('global.pcs')"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!--Created At-->
|
<!--Created At-->
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
<TitlePreview
|
<TitlePreview
|
||||||
icon="file-text"
|
icon="file-text"
|
||||||
:title="singleFile.client_name"
|
:title="singleFile.client_name"
|
||||||
:subtitle="'Invoice - ' + singleFile.invoice_number"
|
:subtitle="$t('invoice_title') + ' - ' + singleFile.invoice_number"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -69,17 +69,17 @@
|
|||||||
<ListInfo v-if="isSingleFile && !isEmpty">
|
<ListInfo v-if="isSingleFile && !isEmpty">
|
||||||
|
|
||||||
<ListInfoItem
|
<ListInfoItem
|
||||||
title="Invoice Number"
|
:title="$t('invoice_number')"
|
||||||
:content="singleFile.invoice_number"
|
:content="singleFile.invoice_number"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<ListInfoItem
|
<ListInfoItem
|
||||||
title="Total"
|
:title="$t('total')"
|
||||||
:content="singleFile.total"
|
:content="singleFile.total"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<ListInfoItem
|
<ListInfoItem
|
||||||
title="Client"
|
:title="$t('client')"
|
||||||
:content="singleFile.client_name"
|
:content="singleFile.client_name"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
import {events} from "@/bus"
|
import {events} from "@/bus"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'InfoSidebar',
|
name: 'InvoiceInfoSidebar',
|
||||||
components: {
|
components: {
|
||||||
FilePreviewDetail,
|
FilePreviewDetail,
|
||||||
ImageMetaData,
|
ImageMetaData,
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
<div class="item-info">
|
<div class="item-info">
|
||||||
<span class="item-size">
|
<span class="item-size">
|
||||||
{{ item.created_at }}, n. {{ item.invoice_number }}
|
{{ item.created_at }}, {{ $t('in.n-abbreviation') }} {{ item.invoice_number }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,18 +5,17 @@
|
|||||||
class="headline"
|
class="headline"
|
||||||
icon="file-text"
|
icon="file-text"
|
||||||
:title="clipboard[0].name"
|
:title="clipboard[0].name"
|
||||||
:subtitle="'Invoice - ' + clipboard[0].invoice_number"
|
:subtitle="$t('in.invoice') + ' - ' + clipboard[0].invoice_number"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!--Trash location-->
|
<!--Trash location-->
|
||||||
<MenuMobileGroup>
|
<MenuMobileGroup>
|
||||||
<OptionGroup class="menu-option-group">
|
<OptionGroup class="menu-option-group">
|
||||||
<Option @click.native="editInvoice" title="Edit Invoice" icon="rename" />
|
<Option @click.native="editInvoice" :title="$t('in.menu.edit_invoice')" icon="rename" />
|
||||||
<Option @click.native="" title="Send Invoice" icon="send" />
|
<Option @click.native="" :title="$t('in.menu.send_invoice')" icon="send" />
|
||||||
<Option @click.native="goToCompany" title="Go to Company" icon="user" />
|
<Option @click.native="goToCompany" :title="$t('in.menu.show_company')" icon="user" />
|
||||||
<Option @click.native="deleteInvoice" :title="$t('context_menu.delete')" icon="trash" />
|
<Option @click.native="deleteInvoice" :title="$t('context_menu.delete')" icon="trash" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
|
|
||||||
<OptionGroup>
|
<OptionGroup>
|
||||||
<Option @click.native="downloadInvoice" :title="$t('context_menu.download')" icon="download" />
|
<Option @click.native="downloadInvoice" :title="$t('context_menu.download')" icon="download" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
@@ -35,7 +34,7 @@ import {mapGetters} from 'vuex'
|
|||||||
import {events} from '@/bus'
|
import {events} from '@/bus'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'FileMenuMobile',
|
name: 'InvoiceMobileMenu',
|
||||||
components: {
|
components: {
|
||||||
MenuMobileGroup,
|
MenuMobileGroup,
|
||||||
ThumbnailItem,
|
ThumbnailItem,
|
||||||
@@ -67,8 +66,8 @@ export default {
|
|||||||
},
|
},
|
||||||
deleteInvoice() {
|
deleteInvoice() {
|
||||||
events.$emit('confirm:open', {
|
events.$emit('confirm:open', {
|
||||||
title: `Are you sure you want to delete invoice number ${this.clipboard[0].invoice_number}?`,
|
title: this.$t('in.popup.delete_invoice.title', {number: this.clipboard[0].invoice_number}),
|
||||||
message: 'Your invoice will be permanently deleted.',
|
message: this.$t('in.popup.delete_invoice.message'),
|
||||||
buttonColor: 'danger-solid',
|
buttonColor: 'danger-solid',
|
||||||
action: {
|
action: {
|
||||||
id: this.clipboard[0].id,
|
id: this.clipboard[0].id,
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import Option from '@/components/FilesView/Option'
|
|||||||
import {mapGetters} from 'vuex'
|
import {mapGetters} from 'vuex'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'InvoiceFilterMobile',
|
name: 'InvoiceSortingMobile',
|
||||||
components: {
|
components: {
|
||||||
MenuMobileGroup,
|
MenuMobileGroup,
|
||||||
OptionGroup,
|
OptionGroup,
|
||||||
@@ -30,32 +30,7 @@ export default {
|
|||||||
]),
|
]),
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
showLocation(location) {
|
|
||||||
|
|
||||||
},
|
|
||||||
flushBrowseHistory() {
|
|
||||||
this.$store.commit('FLUSH_FOLDER_HISTORY')
|
|
||||||
},
|
|
||||||
goToFiles() {
|
|
||||||
this.$store.dispatch('getFolder', [{folder: this.homeDirectory, back: false, init: true}])
|
|
||||||
this.flushBrowseHistory()
|
|
||||||
},
|
|
||||||
goToLatest() {
|
|
||||||
this.$store.dispatch('getLatest')
|
|
||||||
this.flushBrowseHistory()
|
|
||||||
},
|
|
||||||
goToTrash() {
|
|
||||||
this.$store.dispatch('getTrash')
|
|
||||||
this.flushBrowseHistory()
|
|
||||||
},
|
|
||||||
goToShared() {
|
|
||||||
this.$store.dispatch('getShared', [{back: false, init: false}])
|
|
||||||
this.flushBrowseHistory()
|
|
||||||
},
|
|
||||||
goToParticipantUploads() {
|
|
||||||
this.$store.dispatch('getParticipantUploads')
|
|
||||||
this.flushBrowseHistory()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<!--Main navigation-->
|
<!--Main navigation-->
|
||||||
<OptionGroup v-if="!clickedSubmenu">
|
<OptionGroup v-if="!clickedSubmenu">
|
||||||
<Option @click.native="goToFiles" :title="$t('menu.files')" icon="hard-drive" is-hover-disabled="true" />
|
<Option @click.native="goToFiles" :title="$t('menu.files')" icon="hard-drive" is-hover-disabled="true" />
|
||||||
<Option @click.native="goToInvoices" title="Invoices" icon="file-text" is-hover-disabled="true" />
|
<Option @click.native="goToInvoices" :title="$t('in.nav.invoices')" icon="file-text" is-hover-disabled="true" />
|
||||||
<Option @click.native.stop="showSubmenu('settings')" :title="$t('menu.settings')" icon="user" :is-arrow-right="true" is-hover-disabled="true" />
|
<Option @click.native.stop="showSubmenu('settings')" :title="$t('menu.settings')" icon="user" :is-arrow-right="true" is-hover-disabled="true" />
|
||||||
<Option v-if="isAdmin" @click.native.stop="showSubmenu('admin')" :title="$t('menu.admin')" icon="settings" :is-arrow-right="true" is-hover-disabled="true" />
|
<Option v-if="isAdmin" @click.native.stop="showSubmenu('admin')" :title="$t('menu.admin')" icon="settings" :is-arrow-right="true" is-hover-disabled="true" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
'admin': this.$t('menu.admin')
|
'admin': this.$t('menu.admin')
|
||||||
}
|
}
|
||||||
|
|
||||||
return 'Go back from ' + location[this.clickedSubmenu]
|
return this.$t('go_back_from') + ' ' + location[this.clickedSubmenu]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|||||||
@@ -10,11 +10,11 @@
|
|||||||
|
|
||||||
<router-link :to="{name: 'Files'}" :title="$t('locations.home')" class="icon-navigation-item home">
|
<router-link :to="{name: 'Files'}" :title="$t('locations.home')" class="icon-navigation-item home">
|
||||||
<div class="button-icon text-theme">
|
<div class="button-icon text-theme">
|
||||||
<hard-drive-icon size="19" class="text-theme"></hard-drive-icon>
|
<hard-drive-icon size="19" class="text-theme" />
|
||||||
</div>
|
</div>
|
||||||
</router-link>
|
</router-link>
|
||||||
|
|
||||||
<a @click="goToInvoice" title="Invoices" :class="{'is-active': $isThisRoute($route, invoiceRoutes)}" class="icon-navigation-item invoice">
|
<a @click="goToInvoice" :title="$t('in.nav.invoices')" :class="{'is-active': $isThisRoute($route, invoiceRoutes)}" class="icon-navigation-item invoice">
|
||||||
<div class="button-icon">
|
<div class="button-icon">
|
||||||
<file-text-icon size="19" />
|
<file-text-icon size="19" />
|
||||||
</div>
|
</div>
|
||||||
@@ -22,13 +22,13 @@
|
|||||||
|
|
||||||
<router-link :to="{name: 'Profile'}" :class="{'is-active': isUserProfileRoute}" :title="$t('locations.profile')" class="icon-navigation-item settings">
|
<router-link :to="{name: 'Profile'}" :class="{'is-active': isUserProfileRoute}" :title="$t('locations.profile')" class="icon-navigation-item settings">
|
||||||
<div class="button-icon">
|
<div class="button-icon">
|
||||||
<user-icon size="19"></user-icon>
|
<user-icon size="19" />
|
||||||
</div>
|
</div>
|
||||||
</router-link>
|
</router-link>
|
||||||
|
|
||||||
<router-link v-if="user.data.attributes.role === 'admin'" :to="{name: 'Dashboard'}" :class="{'is-active': $isThisRoute($route, adminRoutes)}" :title="$t('locations.settings')" class="icon-navigation-item users">
|
<router-link v-if="user.data.attributes.role === 'admin'" :to="{name: 'Dashboard'}" :class="{'is-active': $isThisRoute($route, adminRoutes)}" :title="$t('locations.settings')" class="icon-navigation-item users">
|
||||||
<div class="button-icon">
|
<div class="button-icon">
|
||||||
<settings-icon size="19"></settings-icon>
|
<settings-icon size="19" />
|
||||||
</div>
|
</div>
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
<ul class="icon-navigation logout">
|
<ul class="icon-navigation logout">
|
||||||
<li @click="$store.dispatch('logOut')" :title="$t('locations.logout')" class="icon-navigation-item">
|
<li @click="$store.dispatch('logOut')" :title="$t('locations.logout')" class="icon-navigation-item">
|
||||||
<div class="button-icon">
|
<div class="button-icon">
|
||||||
<power-icon size="19"></power-icon>
|
<power-icon size="19" />
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
Vendored
+8
-8
@@ -79,7 +79,7 @@ const routesOasis = [
|
|||||||
import(/* webpackChunkName: "chunks/oasis/invoices" */ './Oasis/Invoices/Invoice'),
|
import(/* webpackChunkName: "chunks/oasis/invoices" */ './Oasis/Invoices/Invoice'),
|
||||||
meta: {
|
meta: {
|
||||||
requiresAuth: true,
|
requiresAuth: true,
|
||||||
title: 'Faktúry'
|
title: 'in.route_title.invoices'
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
@@ -89,7 +89,7 @@ const routesOasis = [
|
|||||||
import(/* webpackChunkName: "chunks/oasis/invoices/list" */ './Oasis/Invoices/InvoicesView'),
|
import(/* webpackChunkName: "chunks/oasis/invoices/list" */ './Oasis/Invoices/InvoicesView'),
|
||||||
meta: {
|
meta: {
|
||||||
requiresAuth: true,
|
requiresAuth: true,
|
||||||
title: 'Invoices'
|
title: 'in.route_title.invoices'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -99,7 +99,7 @@ const routesOasis = [
|
|||||||
import(/* webpackChunkName: "chunks/oasis/invoices/profile" */ './Oasis/Invoices/BillingProfile'),
|
import(/* webpackChunkName: "chunks/oasis/invoices/profile" */ './Oasis/Invoices/BillingProfile'),
|
||||||
meta: {
|
meta: {
|
||||||
requiresAuth: true,
|
requiresAuth: true,
|
||||||
title: 'My Billing Profile'
|
title: 'in.nav.my_bill_profile'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -109,7 +109,7 @@ const routesOasis = [
|
|||||||
import(/* webpackChunkName: "chunks/oasis/invoices/profile" */ './Oasis/Invoices/BillingProfileSetUp'),
|
import(/* webpackChunkName: "chunks/oasis/invoices/profile" */ './Oasis/Invoices/BillingProfileSetUp'),
|
||||||
meta: {
|
meta: {
|
||||||
requiresAuth: true,
|
requiresAuth: true,
|
||||||
title: 'Set My Billing Profile'
|
title: 'in.button.setup_bill_profile'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -119,7 +119,7 @@ const routesOasis = [
|
|||||||
import(/* webpackChunkName: "chunks/oasis/invoices/create-client" */ './Oasis/Invoices/Clients/CreateClient'),
|
import(/* webpackChunkName: "chunks/oasis/invoices/create-client" */ './Oasis/Invoices/Clients/CreateClient'),
|
||||||
meta: {
|
meta: {
|
||||||
requiresAuth: true,
|
requiresAuth: true,
|
||||||
title: 'Create Client'
|
title: 'in.create.client'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -147,7 +147,7 @@ const routesOasis = [
|
|||||||
import(/* webpackChunkName: "chunks/oasis/invoices/client" */ './Oasis/Invoices/Clients/Client'),
|
import(/* webpackChunkName: "chunks/oasis/invoices/client" */ './Oasis/Invoices/Clients/Client'),
|
||||||
meta: {
|
meta: {
|
||||||
requiresAuth: true,
|
requiresAuth: true,
|
||||||
title: 'Client'
|
title: 'in.route_title.client'
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
@@ -157,7 +157,7 @@ const routesOasis = [
|
|||||||
import(/* webpackChunkName: "chunks/oasis/invoices/client-detail" */ './Oasis/Invoices/Clients/Tabs/ClientDetail'),
|
import(/* webpackChunkName: "chunks/oasis/invoices/client-detail" */ './Oasis/Invoices/Clients/Tabs/ClientDetail'),
|
||||||
meta: {
|
meta: {
|
||||||
requiresAuth: true,
|
requiresAuth: true,
|
||||||
title: 'Client Detail'
|
title: 'in.route_title.client_detail'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -167,7 +167,7 @@ const routesOasis = [
|
|||||||
import(/* webpackChunkName: "chunks/oasis/invoices/client-invoices" */ './Oasis/Invoices/Clients/Tabs/ClientInvoices'),
|
import(/* webpackChunkName: "chunks/oasis/invoices/client-invoices" */ './Oasis/Invoices/Clients/Tabs/ClientInvoices'),
|
||||||
meta: {
|
meta: {
|
||||||
requiresAuth: true,
|
requiresAuth: true,
|
||||||
title: 'Client Invoices'
|
title: 'in.route_title.client_invoices'
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
</style>
|
</style>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<title>Invoice</title>
|
<title>{{ __t('in.invoice') }}</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
@@ -47,13 +47,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-right align-right">
|
<div class="col-right align-right">
|
||||||
@if($invoice->invoice_type === 'regular-invoice')
|
@if($invoice->invoice_type === 'regular-invoice')
|
||||||
<h1>Faktúra - daňový doklad</h1>
|
<h1>{{ __t('in.invoice') }} - {{ __t('in.doc.taxable_doc') }}</h1>
|
||||||
@endif
|
@endif
|
||||||
@if($invoice->invoice_type === 'advance-invoice')
|
@if($invoice->invoice_type === 'advance-invoice')
|
||||||
<h1>Faktúra - zálohový doklad</h1>
|
<h1>{{ __t('in.invoice') }} - {{ __t('in.doc.advance_doc') }}</h1>
|
||||||
@endif
|
@endif
|
||||||
<h2>Číslo: {{ $invoice->invoice_number }}</h2>
|
<h2>{{ __t('in.doc.number') }}: {{ $invoice->invoice_number }}</h2>
|
||||||
<h4>Variabilný symbol: {{ $invoice->variable_number }}</h4>
|
<h4>{{ __t('in.doc.variable_symbol') }}: {{ $invoice->variable_number }}</h4>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
<section>
|
<section>
|
||||||
<div class="supplier">
|
<div class="supplier">
|
||||||
<div class="box" style="width: 500px;">
|
<div class="box" style="width: 500px;">
|
||||||
<h3>Odberateľ:</h3>
|
<h3>{{ __t('in.doc.customer') }}:</h3>
|
||||||
<p>{{ $invoice->client['name'] }}</p>
|
<p>{{ $invoice->client['name'] }}</p>
|
||||||
<p>{{ $invoice->client['address'] }}, {{ $invoice->client['city'] }}</p>
|
<p>{{ $invoice->client['address'] }}, {{ $invoice->client['city'] }}</p>
|
||||||
<p>{{ $invoice->client['postal_code'] }} {{ $invoice->client['country'] }}</p>
|
<p>{{ $invoice->client['postal_code'] }} {{ $invoice->client['country'] }}</p>
|
||||||
@@ -70,51 +70,51 @@
|
|||||||
<div class="single-row">
|
<div class="single-row">
|
||||||
<span>
|
<span>
|
||||||
@isset($invoice->client['ico'])
|
@isset($invoice->client['ico'])
|
||||||
<span class="highlight">IČO</span>: {{ $invoice->client['ico'] }}
|
<span class="highlight">{{ __t('in_editor.ico') }}</span>: {{ $invoice->client['ico'] }}
|
||||||
@endisset
|
@endisset
|
||||||
@isset($invoice->client['dic'])
|
@isset($invoice->client['dic'])
|
||||||
<span class="highlight">DIČ</span>: {{ $invoice->client['dic'] }}
|
<span class="highlight">{{ __t('in_editor.dic') }}</span>: {{ $invoice->client['dic'] }}
|
||||||
@endisset
|
@endisset
|
||||||
@isset($invoice->client['ic_dph'])
|
@isset($invoice->client['ic_dph'])
|
||||||
<span class="highlight">IC DPH</span>: {{ $invoice->client['ic_dph'] }}
|
<span class="highlight">{{ __t('in_editor.ic_dph') }}</span>: {{ $invoice->client['ic_dph'] }}
|
||||||
@endisset
|
@endisset
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="dates">
|
<div class="dates">
|
||||||
<p>Dátum vystavenia: {{ format_date($invoice->created_at, '%d. %B %Y') }}</p>
|
<p>{{ __t('in.doc.date_of_issue') }}: {{ format_date($invoice->created_at, '%d. %B %Y') }}</p>
|
||||||
<p>Dátum dodania: {{ format_date($invoice->delivery_at, '%d. %B %Y') }}</p>
|
<p>{{ __t('in.doc.date_of_delivery') }}: {{ format_date($invoice->delivery_at, '%d. %B %Y') }}</p>
|
||||||
<p>Dátum splatnosti: {{ format_date($invoice->due_at, '%d. %B %Y') }}</p>
|
<p>{{ __t('in.doc.due_date') }}: {{ format_date($invoice->due_at, '%d. %B %Y') }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="content-box">
|
<div class="content-box">
|
||||||
<h3>Dodávateľ:</h3>
|
<h3>{{ __t('in.doc.supplier') }}:</h3>
|
||||||
<p style="padding-bottom: 0">{{ $invoice->user['company'] }}</p>
|
<p style="padding-bottom: 0">{{ $invoice->user['company'] }}</p>
|
||||||
<small>{{ $invoice->user['registration_notes'] }}</small>
|
<small>{{ $invoice->user['registration_notes'] }}</small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="content-box">
|
<div class="content-box">
|
||||||
<h3>Sídlo:</h3>
|
<h3>{{ __t('in.doc.headquarters') }}:</h3>
|
||||||
<p>{{ $invoice->user['address'] }} {{ $invoice->user['city'] }}</p>
|
<p>{{ $invoice->user['address'] }} {{ $invoice->user['city'] }}</p>
|
||||||
<p>{{ $invoice->user['postal_code'] }}, {{ $invoice->user['country'] }}</p>
|
<p>{{ $invoice->user['postal_code'] }}, {{ $invoice->user['country'] }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="content-box" style="padding-bottom: 0px">
|
<div class="content-box" style="padding-bottom: 0px">
|
||||||
<h3>Faktúračné údaje:</h3>
|
<h3>{{ __t('user_settings.title_billing') }}:</h3>
|
||||||
|
|
||||||
@isset($invoice->user['ico'])
|
@isset($invoice->user['ico'])
|
||||||
<p>IČO: {{ $invoice->user['ico'] }}</p>
|
<p>{{ __t('in_editor.ico') }}: {{ $invoice->user['ico'] }}</p>
|
||||||
@endisset
|
@endisset
|
||||||
@isset($invoice->user['dic'])
|
@isset($invoice->user['dic'])
|
||||||
<p>DIČ: {{ $invoice->user['dic'] }}</p>
|
<p>{{ __t('in_editor.dic') }}: {{ $invoice->user['dic'] }}</p>
|
||||||
@endisset
|
@endisset
|
||||||
@isset($invoice->user['ic_dph'])
|
@isset($invoice->user['ic_dph'])
|
||||||
<p>IČ DPH: {{ $invoice->user['ic_dph'] }}</p>
|
<p>{{ __t('in_editor.ic_dph') }}: {{ $invoice->user['ic_dph'] }}</p>
|
||||||
@endisset
|
@endisset
|
||||||
|
|
||||||
<p>{{ $invoice->user['bank'] }}</p>
|
<p>{{ $invoice->user['bank'] }}</p>
|
||||||
<p>IBAN: {{ $invoice->user['iban'] }}, BIC kód/SWIFT: {{ $invoice->user['swift'] }}</p>
|
<p>{{ __t('in.form.iban') }}: {{ $invoice->user['iban'] }}, {{ __t('in.form.swift_code') }}: {{ $invoice->user['swift'] }}</p>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -122,25 +122,25 @@
|
|||||||
<div class="special-wrapper">
|
<div class="special-wrapper">
|
||||||
<div class="special-item">
|
<div class="special-item">
|
||||||
<div class="padding">
|
<div class="padding">
|
||||||
<b>Číslo účtu:</b>
|
<b>{{ __t('in.doc.bank_account_number') }}:</b>
|
||||||
<span>{{ $invoice->user['iban'] }}</span>
|
<span>{{ $invoice->user['iban'] }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="special-item">
|
<div class="special-item">
|
||||||
<div class="padding">
|
<div class="padding">
|
||||||
<b>Variabilný symbol:</b>
|
<b>{{ __t('in.doc.variable_symbol') }}:</b>
|
||||||
<span>{{ $invoice->variable_number }}</span>
|
<span>{{ $invoice->variable_number }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="special-item">
|
<div class="special-item">
|
||||||
<div class="padding">
|
<div class="padding">
|
||||||
<b>Dátum splatnosti:</b>
|
<b>{{ __t('in.doc.due_date') }}:</b>
|
||||||
<span>{{ format_date($invoice->due_at, '%d. %h. %Y') }}</span>
|
<span>{{ format_date($invoice->due_at, '%d. %h. %Y') }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="special-item">
|
<div class="special-item">
|
||||||
<div class="padding">
|
<div class="padding">
|
||||||
<b>Suma na úhradu:</b>
|
<b>{{ __t('in.doc.sum_to_pay') }}:</b>
|
||||||
<span>{{ format_to_currency($invoice->total_net) }}</span>
|
<span>{{ format_to_currency($invoice->total_net) }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -151,26 +151,26 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr class="table-row">
|
<tr class="table-row">
|
||||||
<td class="table-cell">
|
<td class="table-cell">
|
||||||
<span>Názov produktu</span>
|
<span>{{ __t('in.doc.item.name') }}</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="table-cell">
|
<td class="table-cell">
|
||||||
<span>Množstvo</span>
|
<span>{{ __t('in.doc.item.amount') }}</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="table-cell">
|
<td class="table-cell">
|
||||||
<span>J. Cena</span>
|
<span>{{ __t('in.doc.item.price_per_unit') }}</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="table-cell">
|
<td class="table-cell">
|
||||||
<span>Celkom</span>
|
<span>{{ __t('in.doc.item.total') }}</span>
|
||||||
</td>
|
</td>
|
||||||
@if($invoice->user['ic_dph'])
|
@if($invoice->user['ic_dph'])
|
||||||
<td class="table-cell">
|
<td class="table-cell">
|
||||||
<span>Sadzba DPH</span>
|
<span>{{ __t('in.doc.item.vat_rate') }}</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="table-cell">
|
<td class="table-cell">
|
||||||
<span>DPH</span>
|
<span>{{ __t('in.doc.item.vat') }}</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="table-cell">
|
<td class="table-cell">
|
||||||
<span>Celkom s DPH</span>
|
<span>{{ __t('in.doc.item.total_with_vat') }}</span>
|
||||||
</td>
|
</td>
|
||||||
@endif
|
@endif
|
||||||
</tr>
|
</tr>
|
||||||
@@ -219,7 +219,7 @@
|
|||||||
|
|
||||||
@if($invoice->discount_type)
|
@if($invoice->discount_type)
|
||||||
<li class="row" style="padding-bottom: 8px">
|
<li class="row" style="padding-bottom: 8px">
|
||||||
<span>Zlava za doklad:</span>
|
<span>{{ __t('in.doc.discount') }}:</span>
|
||||||
<span>-{{ $invoice->discount_type === 'percent' ? $invoice->discount_rate . '%' : format_to_currency($invoice->discount_rate) }}</span>
|
<span>-{{ $invoice->discount_type === 'percent' ? $invoice->discount_rate . '%' : format_to_currency($invoice->discount_rate) }}</span>
|
||||||
</li>
|
</li>
|
||||||
@endif
|
@endif
|
||||||
@@ -229,7 +229,7 @@
|
|||||||
<div style="padding-bottom: 8px">
|
<div style="padding-bottom: 8px">
|
||||||
@foreach(invoice_tax_base($invoice) as $item)
|
@foreach(invoice_tax_base($invoice) as $item)
|
||||||
<li class="row">
|
<li class="row">
|
||||||
<span>Základ DPH {{ $item['rate'] }}%: </span>
|
<span>{{ __t('in.doc.vat_base') }} {{ $item['rate'] }}%: </span>
|
||||||
<span>{{ format_to_currency($item['total']) }}</span>
|
<span>{{ format_to_currency($item['total']) }}</span>
|
||||||
</li>
|
</li>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -241,7 +241,7 @@
|
|||||||
<div style="padding-bottom: 8px">
|
<div style="padding-bottom: 8px">
|
||||||
@foreach(invoice_tax_summary($invoice) as $item)
|
@foreach(invoice_tax_summary($invoice) as $item)
|
||||||
<li class="row">
|
<li class="row">
|
||||||
<span>DPH {{ $item['rate'] }}%: </span>
|
<span>{{ __t('in.doc.item.vat') }} {{ $item['rate'] }}%: </span>
|
||||||
<span>{{ format_to_currency($item['total']) }}</span>
|
<span>{{ format_to_currency($item['total']) }}</span>
|
||||||
</li>
|
</li>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -249,21 +249,21 @@
|
|||||||
@endif
|
@endif
|
||||||
|
|
||||||
<li class="row">
|
<li class="row">
|
||||||
<b>Spolu k úhrade:</b>
|
<b>{{ __t('in.doc.sum_to_pay') }}:</b>
|
||||||
<b>{{ format_to_currency(invoice_total($invoice)) }}</b>
|
<b>{{ format_to_currency(invoice_total($invoice)) }}</b>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<!--Notes-->
|
<!--Notes-->
|
||||||
<div class="notes">
|
<div class="notes">
|
||||||
<p>Ďakujeme, že ste sa rozhodli pre naše služby.</p>
|
<p>{{ __t('in.doc.thanks') }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{--Invoice author--}}
|
{{--Invoice author--}}
|
||||||
<div class="invoice-author">
|
<div class="invoice-author">
|
||||||
<div class="tax-note">
|
<div class="tax-note">
|
||||||
@if(! $invoice->user['ic_dph'])
|
@if(! $invoice->user['ic_dph'])
|
||||||
<p>Nie sme platci DPH</p>
|
<p>{{ __t('in.doc.not_vat_payer') }}</p>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
<div class="sign">
|
<div class="sign">
|
||||||
@@ -275,13 +275,13 @@
|
|||||||
<img src="{{ base64_from_storage_image($user->invoiceProfile->stamp) }}">
|
<img src="{{ base64_from_storage_image($user->invoiceProfile->stamp) }}">
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<span class="highlight">Faktúru vystavil:</span> {{ $invoice->user['author'] }}
|
<span class="highlight">{{ __t('in.doc.creator') }}:</span> {{ $invoice->user['author'] }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{--Invoice Footer--}}
|
{{--Invoice Footer--}}
|
||||||
<footer class="invoice-footer">
|
<footer class="invoice-footer">
|
||||||
<p>Vygenerované aplikáciou <a href="https://oasisdrive.cz">OasisDrive.cz</a></p>
|
<p>{!! __t('in.doc.created_by_app', ['app_name' => 'OasisDrive.cz', 'url' => 'https://oasisdrive.cz']) !!}</p>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
Reference in New Issue
Block a user