Commit Graph

150 Commits

Author SHA1 Message Date
David Bomba 6f491dfb92 Update Copyright text 2022-04-27 13:20:41 +10:00
David Bomba 654bf7a23f Disable gateway refund options for GoCardless 2022-04-27 09:05:16 +10:00
David Bomba 98012e0ef3 Fixes for purge API docs 2022-04-20 08:28:25 +10:00
David Bomba 5a4614da1f Fixes for api docs 2022-04-01 13:46:55 +11:00
= dbbd86063d Purge clients - password protected route 2022-01-31 11:03:01 +11:00
David Bomba 263bcd8126 Add ability to purge clients 2022-01-30 10:46:39 +11:00
David Bomba c77720672b Fixes for atomic operations 2021-12-17 22:11:36 +11:00
David Bomba 605c88a31e user agents 2021-09-15 15:58:02 +10:00
David Bomba aa0f1b3bdf Client Statements 2021-08-25 12:03:58 +10:00
Benjamin Beganović 6d1916ea5c Remove `statement` method from `ClientController` 2021-08-24 12:43:06 +02:00
David Bomba 4086203a81 Minor fixes for product and client bulk actions 2021-07-13 19:26:59 +10:00
David Bomba 36f6cbbcc9 Update license in codebase 2021-06-16 16:58:16 +10:00
= 769ab49458 Force client country if none set 2021-06-10 20:18:01 +10:00
David Bomba 829b069063 Fixes for custom translations 2021-05-31 20:40:34 +10:00
David Bomba b9191bf67a Company Ledger Adjustment 2021-05-31 15:27:26 +10:00
David Bomba 85c05f7c30 Fixes for VarEvents 2021-05-07 07:12:07 +10:00
David Bomba 7e3a9205b9 Add event listeners for Subscriptions + fix user actioning the event() 2021-04-13 09:52:17 +10:00
David Bomba e39ce7491b Feature permissions for hosted 2021-03-08 08:32:38 +11:00
David Bomba 7bf6d7c48a Document route for clients / company 2021-02-15 21:52:50 +11:00
David Bomba c4bfb33dbf Add destroy() methods in all controllers 2021-01-17 15:28:03 +11:00
David Bomba 934610a01c Update copyright + version bump + set canadian dollar symbol to $ 2021-01-04 08:54:54 +11:00
Benjamin Beganović ae88d5e08e php-cs-fixer format 2020-11-25 15:19:52 +01:00
David Bomba 6eb9f0f6a6 Event testing 2020-11-03 21:04:15 +11:00
David Bomba 9aeb2d7a5b Psalm cleanup 2020-10-28 21:10:49 +11:00
David Bomba ba75a44eb8
Laravel 7.x Shift (#40)
* Adopt Laravel coding style

The Laravel framework adopts the PSR-2 coding style with some additions.
Laravel apps *should* adopt this coding style as well.

However, Shift allows you to customize the adopted coding style by
adding your own [PHP CS Fixer][1] `.php_cs` config to your project.

You may use [Shift's .php_cs][2] file as a base.

[1]: https://github.com/FriendsOfPHP/PHP-CS-Fixer
[2]: https://gist.github.com/laravel-shift/cab527923ed2a109dda047b97d53c200

* Shift bindings

PHP 5.5.9+ adds the new static `class` property which provides the fully qualified class name. This is preferred over using class name strings as these references are checked by the parser.

* Shift core files

* Shift to Throwable

* Add laravel/ui dependency

* Unindent vendor mail templates

* Shift config files

* Default config files

In an effort to make upgrading the constantly changing config files
easier, Shift defaulted them so you can review the commit diff for
changes. Moving forward, you should use ENV variables or create a
separate config file to allow the core config files to remain
automatically upgradeable.

* Shift Laravel dependencies

* Shift cleanup

* Upgrade to Laravel 7

Co-authored-by: Laravel Shift <shift@laravelshift.com>
2020-09-06 19:38:10 +10:00
David Bomba f3572a5d11 Refactor for events 2020-07-08 22:02:16 +10:00
David Bomba dbff1ab6ab remove x-api-version and replace with x-minimum-client-version 2020-06-22 07:30:25 +10:00
David Bomba 43e57d0117
Fixes for self-update (#3514)
* minor fix for payment notifications

* styleci

* Limit Self updating to self hosters only
:

* Fixes for designs

* Minor fixes for self-update
2020-03-21 16:37:30 +11:00
David Bomba 957ac9f5d8
Fix for password protected authorization (#3198)
* Remove unnecessary save() on invoice

* Update copyright

* Working on Credit Repository

* Implement credits as a paymentable entity

* Add credit_id to transformer

* fix rules for update payment

* Fix random deleted_at keys in transformers

* Fix for password_protect check
2020-01-07 11:13:47 +11:00
David Bomba f712b789ca
Fixes for tests (#3184)
* fix typo

* php-cs traits

* CS fixer pass

* Password protect User routes

* Implement checks to prevent editing a deleted record

* Clean up payment flows

* Fixes for tests
2019-12-31 08:59:12 +11:00
David Bomba 54fc78a88b
Refactor jobs to be MultiDB aware (#3174) 2019-12-27 11:28:36 +11:00
Benjamin Beganović da49880733 Massively creating resources (#3152)
* Bulk storing request & accesing policy service

* Transform hardcoded action to self-property

* Testing, support for multiple resources

* Uncomment, response(200)

* Change authorize to isAdmin() property
2019-12-17 21:58:23 +11:00
David Bomba d07c11ef62
Add fields to company transformer (#3132)
* Minor fixes for OpenAPI docs for clients

* Add fields to company transformer
2019-12-06 07:41:13 +11:00
David Bomba 01173c66d8
Fixes for validation. (#3130)
* Fixes for OpenAPI Documentation + fix support for docs for PHP 7.4

* Minor fixes for GMail API

* Add fix for 2 contacts with no email addresses failing validation, emails are optional! but cannot be duplicated if a value is set

* Return template as a object with subject and body components

* Fixes for OpenAPI Schema

* Stubs for payment edge cases

* payment tests
2019-12-05 17:22:20 +11:00
David Bomba 4391ad087c
Fixes for client contacts updating (#3104) 2019-11-29 21:41:07 +11:00
David Bomba 2ce89e5f48
Fixes for actions (#3056)
* Update API docs

* cleaning up migrations

* Fixes for tests

* fixes for tests

* Delete client contacts when soft deleting a client

* Fixes for actions
2019-11-12 15:41:02 +11:00
David Bomba cc85746af0 Upload company logo to group settings 2019-10-08 07:17:55 +10:00
David Bomba b8515e26b0 Upload company logo to client settings 2019-10-07 22:05:06 +11:00
David Bomba 5bbc274a48 Fixes for api-headeR 2019-10-07 17:31:26 +11:00
David Bomba a54b6c3055 Finalized OpenAPI 2019-10-07 15:57:14 +11:00
David Bomba e784705aaf Clients and Companies OpenAPI 2019-10-07 15:03:01 +11:00
David Bomba 24714dc9f4 Clients OpenAPI 2019-10-07 10:32:36 +11:00
David Bomba 79907e6206 Refactor the way we harvest the company entity 2019-06-12 09:15:17 +10:00
David Bomba 9b86780fa3 Update copyright 2019-05-11 13:32:07 +10:00
David Bomba 3fde744d77 Working on client saves 2019-05-10 16:08:33 +10:00
David Bomba f496949008 Refactor bulk actions 2019-04-23 16:19:45 +10:00
David Bomba 82d573d759 Invoice API tests scaffolding 2019-04-16 15:28:30 +10:00
David Bomba cb7eea0e7b Refactor invoice calculations class, use FormRequests on destroy() 2019-04-16 13:28:05 +10:00
David Bomba ae57c05659 Working on tests for invoice items 2019-04-04 20:28:53 +11:00
David Bomba 39617644ad Save a product 2019-04-03 13:34:28 +11:00
David Bomba 08c4579464 Working on Products 2019-04-03 12:17:21 +11:00
David Bomba 0f19056b8f Obfuscate primary ID 2019-04-03 11:09:22 +11:00
David Bomba ef08afc240 Catch Model Not Found and return JSON 2019-04-02 17:36:49 +11:00
David Bomba e95558334e Add fallback route to catch all non existant routes 2019-03-30 20:30:41 +11:00
David Bomba 8ae8300785 Implement Fractal API output 2019-03-29 08:34:58 +11:00
David Bomba fd8c19d911 implement filterable query models 2019-03-28 21:07:45 +11:00
David Bomba 7d86c8306a Clean up for tests 2019-03-28 20:05:13 +11:00
David Bomba 25b26a2e5d Working on determining the current company the best way using the API 2019-03-28 16:03:18 +11:00
David Bomba 1c3f0c590c More tests for Client REST api endpoints 2019-03-28 08:32:50 +11:00
David Bomba 74a01f8731 move away from session variables 2019-03-27 20:38:28 +11:00
David Bomba 08e4f9724f Client Tests 2019-03-27 17:22:27 +11:00
David Bomba ebddf93353 Test for API 2019-03-27 15:50:13 +11:00
David Bomba ea5f045509 Setting up for tests 2019-03-26 15:46:08 +11:00
David Bomba 9ff835a52e V2 First Push 2019-03-26 14:08:19 +11:00
David Bomba 0d508d67f1
Client Settings (#2711)
* Fixes for travis

* Additional settings variables at the company and client level

* Implement accessor for client settings

* Currency symbol or code setter

* Implement custom JS number and currency formatter

* Implement VueX state management for client settings

* Move settings logic into its own class

* Working on client settings

* client settings

* Move Client Settings helper into PHP

* Move translation helper into its own class

* Working on Client Settings

* fixes for client settings

* Client setting defaults

* fixes for .env

* Fixes for Travis
2019-03-03 08:44:08 +11:00
David Bomba 7b5028820d
Fixes for travis (#2669) 2019-02-17 22:07:58 +11:00
David Bomba eddb9adc73
Client Settings (#2668)
* Clean up Client Show

* Working on Show Client menu action

* working on client view permissions

* Finishing up Client Statement View

* Workig on client settings

* add mix manifest

* css for client settings

* Client Settings

* Working on Client Settings

* Implement StartupCheck and static seeders

* Implement cached statics in view composers

* Working on client settings

* Payment Terms

* Working on Payment Terms View Composer

* Payment Terms builder

* Client Settings

* refactor companies table

* Refactor for company settings, move settings to json

* Set object cast on settings column of Company table

* Fixes for refactor of companies and clients table

* Test

* Client Settings Datamapper

* Client Settings

* Default client language

* Client Settings

* Working on client settings options

* Client Settings

* Settings Json serialization/deserialization handling
2019-02-17 21:34:46 +11:00
David Bomba 1ad19734e3
Stubs for Client Settings (#2655)
* Clean up Client Show

* Working on Show Client menu action

* working on client view permissions

* Finishing up Client Statement View

* Workig on client settings

* add mix manifest
2019-02-04 23:06:19 +11:00
David Bomba 49e4ae134b force collection on nested view model 2019-01-28 11:19:29 +11:00
David Bomba ce16c4d4c0 Use factories to create default models 2019-01-28 09:13:12 +11:00
David Bomba f345986157 Working on google maps implementation 2019-01-28 08:34:57 +11:00
David Bomba 545a8df362 DocBlocks 2019-01-27 10:22:57 +11:00
David Bomba 64d3ca0474 Added docs 2019-01-27 08:24:16 +11:00
David Bomba e3fc50ebdb Working on Show Client 2019-01-26 20:34:38 +11:00
David Bomba cf1e65f1c0
ctrans() translator helper (#2621)
* Refactor  pivot table accessors

* Add select2 for client - country selector

* Fixes for client contact update

* implement ctrans() function across application

* Increase custom fields to 4 across the application

* Refactor: remove repos calling other repos, implement 4 custom values across application

* include querying the custom values in the client list

* Fix null custom value labels

* Scaffold for client - show view

* Working on Client Show
2019-01-25 21:47:23 +11:00
David Bomba 37e4b67ab9
V5.0 (#2617)
* Add URL link directly to client view in list view

* Implement Form requests for all client routes

* Refactor how permissions are implemented on Datatable row action menus

* fixes for tests

* bug fix

* Add ctrans global function for custom translations. Reduced DB queries for Client List. Added Debugbar for dev environments

* ctrans
2019-01-22 20:47:26 +11:00
David Bomba da325e1797
Refactor permissions for datatables. (#2615)
* Add URL link directly to client view in list view

* Implement Form requests for all client routes

* Refactor how permissions are implemented on Datatable row action menus

* fixes for tests
2019-01-22 01:06:49 +11:00
David Bomba 0c1fc0d904
List views (#2609)
* Wire up Create Entity Button to create route

* Refactor permissions, we must also ensure the user company id and entity id matches at the Gate::

* Add translations for Status filters

* Bug fix for initial list view not displaying

* Apply actions to menu for list items

* Wire up list view actions, individual

* Place permission filters on datatable lists
2019-01-20 16:00:50 +11:00
David Bomba cc53d08b4d
Bulk Actions (#2606)
* Wired up Bulk Archive / Delete / Restore button with reactivity on checkbox actions

* Working on POSTing bulk actions

* Working on Filtering by status

* Add Action Entity

* Implement Vuex for state management

* Implement Vuex storage & list view bulk actions

* Clean up console logs

* Configure entity list views server side
2019-01-19 21:35:21 +11:00
David Bomba 77969243fa
Revert "Implement Bulk Actions (#2605)" (#2607)
This reverts commit b635f3b32e.
2019-01-19 21:34:58 +11:00
David Bomba b635f3b32e
Implement Bulk Actions (#2605)
* Wired up Bulk Archive / Delete / Restore button with reactivity on checkbox actions

* Working on POSTing bulk actions

* Working on Filtering by status

* Add Action Entity

* Implement Vuex for state management

* Implement Vuex storage & list view bulk actions

* Clean up console logs
2019-01-19 17:21:34 +11:00
David Bomba 64a0248f50
Scaffold Laravel permissions (Client - Entity) (#2602)
* Wired up Bulk Archive / Delete / Restore button with reactivity on checkbox actions

* Scaffold Laravel permissions (Client - Entity)
2019-01-16 20:28:06 +11:00
David Bomba 9204510193
Vue Datatables (#2597)
* Adding Vue components for Charts and Multi Select

* List Views


* Improve UI of datatable

* Refactor Vue Datatable for reusability
2019-01-13 12:42:03 +02:00
David Bomba 0faf91dd5d
Generated Datatable Action Menus (#2590)
* Style Datatable

* Component Actions

* Harvest user permissions from Pivot table

* Pad out permissions

* Client actions

* Fixes for travis

* Client Datatables

* Menu permissions

* Tests for menu permissions

* Action menu

* Implement query builder filter

* Flatten user permissions

* Implement rendering of client action dropdowns

* Generated Action Menus
2019-01-07 22:30:28 +11:00
David Bomba 43342fb98b
Datatables using Vue (#2568)
* Vue DataTables

* Vue Datatables - Pagination

* Sort Vue Tables

* Working on Vue Datatables

* Apply filter to vue table

* Search implementation for vue datatables

* Clean up
2018-12-24 08:45:55 +08:00
David Bomba bdb0f43d33
Modules, VueJS (#2552)
* Fix for comparing delete contacts change diffKeys to diff()

* Client create

* Client Settings

* Working on localization

* Refactor DataTables

* protyping blade vs pure vue

* Rebuild test module

* Generic notes module

* Small Client Notes Module

* Tests for TabMenu Trait

* implements tab pills in client screen

* Integrate Modules
2018-12-13 10:23:21 +11:00
David Bomba 17a7f0564e
Create client (#2543)
* Fix for comparing delete contacts change diffKeys to diff()

* Client create

* Create client

* Create client
2018-12-07 21:57:20 +11:00
David Bomba c72e1f0139
Client Creation (#2533)
* Working on Oauth

* splitting out JS files

* Working on oAuth

*  working on oAuth

* minor fixes

* create client

* create client

* create client

* Working on adding a client
2018-12-02 21:42:06 +11:00
David Bomba 348890e8fa
Save Client / Contacts (#2523)
* View composers

* Saving client and contacts

*  saving client and contacts

* update client job

* unique emails
2018-11-27 17:59:16 +11:00
David Bomba cdb98ce528
View Composers + JS testing framework (#2521)
* Add Jest testing to travis

* View Composers

* Composers
2018-11-26 15:15:08 +11:00
David Bomba fa83ce10a3
Implement Typescript (#2514)
* Add contact

* Saving client and contacts

* working on ts implementation

* Need to pass  into TS

* client_edit.ts

* Need to pass  into TS

* declare variables
2018-11-22 22:12:41 +11:00
David Bomba 0f66625cdf
Refactor clients (#2513)
* attempting to bind vue to blade partials

* typo for vue

* working on client contact page

* refactor shipping-billing addresses back to client model

* clean up
2018-11-21 19:28:07 +11:00
David Bomba 6769ade16f
Explicit route model binding (#2498)
* Switch to explicit route model binding
2018-11-12 18:52:20 +11:00
David Bomba b989cf82b7
Client CRUD with VueJS (#2497)
*  working on js localizations

* remove dependencies

* Pad Hashes to at least 10 characters in length

* Inject JS translations into front end dynamically

* Implement VueJS for Client Edit Page with reactivity

* Conditionally hide rows if not enabled (custom_value)

* Split client template into smaller components

* implementing ui buttons

* CRUD cycles of a client

* Working on Client CRUD - Integrity constraint issues
2018-11-11 00:24:36 +11:00
David Bomba 1ad857bac9
Vue JS Scaffolding (#2493)
* client ui

* Paddin out client detail view

* Padding out clients

* Padding out clients

* show maps

* Padding out clients

* fixes for migrations

* client padding

* Working on different Client UX

* more client ux

* New Client UI

* Vue Scaffolding
2018-11-07 16:22:36 +11:00
David Bomba 3b0cda1502
Set default company on account creation (#2487)
* Fixes for tests

* fixes for permissions

* Set default company on account creation

* Ensure default company ID is registered in session variables

* Implement a generic resolver to harvest an entity from encoded value

* Laravel Telescope
2018-11-03 12:01:40 +11:00
David Bomba d430600e1e
Datatables, Base Model, Base Presenter (#2484)
* Fixes for datatables

* Implement a BaseModel

* Working on reusable header data model

* Working on adding session variables

* Clean up header data

* Random Data Seeder

* working on searching datatables across relationships.

* Working on transforming primary keys between client and server facinglogic

* Updated assets
2018-11-02 21:54:46 +11:00
David Bomba ede0668caf
Update ClientController.php 2018-10-29 14:17:40 +11:00
David Bomba dde1cd6cfb
Confirmation Emails, Datatables (#2473)
* Fixes for MakesHash trait

* Client List DataTables

* Data table dependencies

* Confirmation URLs

* Wire up firing events for notification emails
2018-10-29 14:16:17 +11:00
David Bomba 62e2444a2c
Sign Up Scaffolding (#2453)
* Fix js dependencies

* Breadcrumb implementation

* Test for UniqueEmailRule Validation

* reduce length of account_key to prevent key too long error

* Fixes for travis - reduce user email length

* Reduce all unique field lengths to 100 to prevent key overflow

* Fix for Bank Model

* Prevent a user from registering multiple account with one email address when using multiple databases
2018-10-17 23:26:27 +11:00