Release notes
All notable changes to Qore
will be documented in this file alongside upgrade guides
Back-end ➜ composer update qore/system
Front-end ➜ cd frontend/src/qore && git pull origin develop
Or check out specific front-end tag ➜ git checkout <tag>
To see all tags run git fetch && git tag -l
1.7.1 (Nov 13, 2024)
- Twig / VariableList
- Fixed issue with resource relation field models not being casted to array
- Mailing
- Models are not allowed in the
QoreMail::send()
args
array anymore, instead use a model ID- The reason for this is that it's better to pass on less (and better serializable) data to jobs
- The args have the least priority (in terms of merging variables) now (was most before) so it does not override MailVariable variables
- Models are not allowed in the
- Twig
- When rendering twig, if an error occurs it will now always throw an exception
- It used to fail silently
- When an error handler is supplied, it will still fail silently, but log a critical error
- When rendering twig, if an error occurs it will now always throw an exception
- Preferences
- Added retrieval of Tenant Preferences Fields & Tab Layout via Qore Actions to allow for hooking and overriding
- Similar principle for the Auth preferences
- Added retrieval of Tenant Preferences Fields & Tab Layout via Qore Actions to allow for hooking and overriding
- Front-end helpers
- Added
$formatRelativeTime
helper for dates
- Added
1.7.0 (Nov 06, 2024)
- Forms
- Removed "debounce" functionality to add a required (red asterisk *) when fields are conditionally required
- This caused unexpected unwanted requests / side effects and should be fixed in a better way
- Removed "debounce" functionality to add a required (red asterisk *) when fields are conditionally required
- MorphTo field
- Added the ability to filter
morphTo
relations by only thetype
in index tables
- Added the ability to filter
- Job middleware
- Fixed issue with
userId
not being nullable
- Fixed issue with
- Field
- Added support for a leading text for each field (See documentation)
Every field is wrapped within a <div class="base-field"></div>
now in the front-end
- Modules & Plugins
- Extensions can now be hidden on the index page (See documentation)
- 2FA (see upgrade guide)
- Fixed issue with 2fa not always being verified in the back-end
- Whether 2fa is verified, will now be saved on the session:
2fa_verified
Upgrade guide
- If you have a local
qore.php
config file, please merge it with the latest one - Make sure to update the session in
app/Http/Controllers/Components/TwoFactorAuthenticationController.php@verify
after validating, e.g.:
$user = Auth()->user();
$secret = $request->input('secret');
$recovery = new Recovery();
$recovery_codes = $recovery->toArray();
$request->session()->put('2fa_verified', true); // Add this
// ..
1.6.18 (Oct 29, 2024)
- Updated
maatwebsite/excel
to^3.1.58
to solve XSS issue - Added the ability to hide the reset button in forms
- Mailing
- Fixed index tabs (number indicators) on the overview table
- Added better display for error (status) message
- Added (re-)send ability for mail messages (e.g. when a mail failed to send)
- Added the ability to use a
reply_to
address - Added the ability to set custom headers
- VariableValue field
- Options in forms are now sorted alphabetically based on (translated) label
- Added missing indices to database columns that are queried often in where clauses
- For reference: #562
- FilePicker & Image field
- Added fix for input width on smaller screens
- The field now validates (total) file size limit in the frontend, and shows validation errors
- BaseTable
- Fixed issue with table columns sometimes snapping back when resizing
- Fixed error that occurred after calling related resource actions when table actions were present
- Slider field
- Add missing required asterisk inside field
- Resource Tabs & Cards
- Added getters for Resource, Model, and Field in Card and Tab class
- Button field
- Added the ability to not show a notification after clicking a Button field
- Changed the styling of the Button field to exist in field meta allowing style changes during runtime
- Code type hinting
- The QoreResource now implement a docblock template for the Eloquent Model for type hinting
- For more info, visit: https://gitlab.qlic.nl/qore/qore-backend/-/merge_requests/575
- Tenant model
- Added
users
relation
- Added
- Modules & Plugins
- Form now uses POST instead of GET method for fields endpoint
- Added the ability to use
onFormReady
closure
- Resource
- Fixed 404 notification after deleting a resource
- SimpleEditor field
- Fixed a bug that would accept input when it was disabled or set to readonly.
Upgrade guide
- Publish migrations and migrate central/tenant
php artisan vendor:publish --tag=qore.system.db && php artisan migrate && php artisan tenants:migrate
1.6.17 (Aug 27, 2024)
-
Added MaterialIconSelect Field
-
Added MailReceiver Field
-
Added method to the SerialNumber Model to get a regex pattern.
-
Added the
logDescription
method to theRunsAction
trait. -
Updated
PermissionCreator::cruda
to return a collection with the created permissions -
Updated TenantVariable(Values) Resources fields
-
Updated kvk related code to support api/v2
-
Updated the docblock of
QoreResource::model
with return typeclass-string<Model>
-
Updated the return types of
RunsAction::redirectTo
to includearray
Upgrade guide
qore/kvk:^1.0
is deprecated.
1.6.16 (Jul 24, 2024)
- Dependencies
- Updated a few dependencies (see upgrade table below)
- Relation fields
- Filter options in tables are limited to records that are used / relevant based on the table query
- This prevents the filter options to be flooded with many (unused) relationships
- You can also manually mutate the filter options if necessary (See documentation)
- Repeater field
- Fixed issue with state being empty/null
- Forms
- Added fix for loader not going away when an error (or
dd()
) occurs in the back-end
- Added fix for loader not going away when an error (or
- Wysiwyg
- Fixed issue with firefox adding space before content
Upgrade guide
- Ensure server compatibility with PHP 8.1 (Skeleton already requires ^8.1)
- If you require
laravel/scout
orteamtnt/laravel-scout-tntsearch-driver
you have to upgrade (or remove it since it will be added by qore/system)
Upgrade route:
composer require qore/system teamtnt/laravel-scout-tntsearch-driver:^14.0 laravel/scout:^10 && composer require --dev phpunit/phpunit:^10 squizlabs/php_codesniffer:^3.0 && composer require --dev phpro/grumphp:^2 -W
Remove route:
composer remove laravel/scout teamtnt/laravel-scout-tntsearch-driver && composer uptdate qore/system && composer require --dev phpunit/phpunit:^10 squizlabs/php_codesniffer:^3.0 && composer require --dev phpro/grumphp:^2 -W
Dependencies table
Dependency | Old requirement | New requirement | Upgrade Guide/Warning |
---|---|---|---|
laravel/scout | ^9.4 | ^10.10 | Probably no changes necessary [Upgrade guide]. Make sure to composer require laravel/scout:^10 in root composer.json (or remove it since it will be added by qore/system) |
teamtnt/laravel-scout-tntsearch-driver | ^12.4 | ^14.0 | No changes necessary. Make sure to composer require teamtnt/laravel-scout-tntsearch-driver:^14 in root composer.json (or remove it since it will be added by qore/system). |
devDependencies table
devDependency | Old requirement | New requirement | Upgrade Guide/Warning |
---|---|---|---|
phpro/grumphp | ^1.3 | ^2 | No changes necessary. Make sure to composer require --dev phpro/grumphp:^2.0 -W (the first time it will fail, so run it twice) |
phpunit/phpunit | ^9.5 | ^10 | Probably no changes necessary. Check PHPUnit 10 migration guide |
squizlabs/php_codesniffer | 3.6.0 | ^3.0 | None |
1.6.15 (Jul 18, 2024)
- Resource actions
- Added the ability to optionally hide the eligible and denied model lists in resource actions (See documentation)
- Mailing
- Added
replyTo
method toSingleMessageMailer
- Added
1.6.14 (Jul 15, 2024)
- Roles & Permissions
- Added feature to apply direct permissions to users
- This way you can give a user permissions without applying a role
- Added feature to apply direct permissions to users
- Translations
- Qore front-end has its own translation files now
- Skeleton front-end translations have been moved to the Qore front-end
- Qore front-end has its own translation files now
- FilePicker field
- Fixed issue with smaller screen sizes
- PDF downloads
- PDF files will not open in new tabs anymore (due to file name reasons)
- Code field
- Fixed visual bug when editing inline
- Select field
- Fixed visual bug when options are added dynamically
- Resource duplication
- The
duplicateEnabled
method expects a?Model
instance now as single parameter
- The
- Menu
- Added the Laravel
Conditional
trait to the menu item- This way you can conditionally show/hide menu items
- Added the Laravel
- VariableCreator
- Added
updateOrCreate
method- Devs no longer have to check whether a tenant variable exists in for example the
onEnable
function of a Qore extension
- Devs no longer have to check whether a tenant variable exists in for example the
- Added
- TenantVariable
- Added
translate_description
(defaulttrue
) toTenantVariable
model- Prevents having localised descriptions in the database
- Added
- Repeater field
- Fixed issue with not being able to submit 0 items
- Modules/Plugins
- Extension index pages are now sorted by their localised display name
Upgrade guide
- Publish migrations & migrate
php artisan vendor:publish --tag=qore.system.db && php artisan tenants:migrate
1.6.13 (Jun 24, 2024)
- Repeater field
- Allowed to set a maximum number of repetitions for the repeater field with
->max
method - Added the
deletable
method to allow for disabling the delete button
- Allowed to set a maximum number of repetitions for the repeater field with
- Slider field
- Added new field
Slider
(See documentation)
- Added new field
- Field layout
- Fixed issue where
toggled
boolean was not respected for cards
- Fixed issue where
- Resource creation
- Added event method for when a resource is created from duplication (
createdFromDuplicate
)
- Added event method for when a resource is created from duplication (
- Resource components
- Added support for upcoming
dashboards
andmetrics
modules - You can now define which components to show on
index
anddetails
on a resource (indexComponents
anddetailComponents
methods)- Default Qore components are now defined in the
qore.php
config
- Default Qore components are now defined in the
- Added support for upcoming
Upgrade guide
- When you have a local
config/qore.php
, make sure to add the following:
'resource' => [
// ...
/**
* The default vue components that are shown on a resource index and detail page.
*/
'system_components' => [
'resource-alerts',
'resource-index-table',
'resource-block-buttons',
'resource-detail'
]
],
1.6.12 (Jun 05, 2024)
- Upload fields (e.g.
FilePicker
)- Added support for setting a different file disk (such as S3) (See documentation)
- qore/frontend cleanup
- Removed
@sentry
from the qore/frontendpackage.json
- Removed unused
vue-query-builder
from the qore/frontendpackage.json
- Removed
npm
from the qore/frontendpackage.json
- This allows for easier and on-demand updating
- Removed
- Resource actions
- Fixed issue with models not being found when soft deleted
Upgrade guide
- When
boot/sentry.js
is still present in your app, add it back in your own frontendpackage.json
:"@sentry/tracing": "^7.91.0",
"@sentry/vue": "^7.91.0",
1.6.11 (May 26, 2024)
- Resource duplication
- Added
duplicateInitialState
function to resources (See documentation)
- Added
- Relational fields
- Fixed issue that caused empty array to not be respected
- The
->filterOptions
will also accept aClosure
that will only get called when the column is filtered- This is only supported for relational fields on resources (not custom tables or non-relational fields)
- Phone fields
- Added missing validation for metadata fields
- Preferences
- Users can now override the primary and tint colors
- Table sticky columns
- Fixed issue with styler background color not being respected
- Table
- Fixed table row cmd+click / ctrl+click issue for Firefox Developer Edition
1.6.10 (May 22, 2024)
- Field dependency
- Fixed issues with field visibility when using
->dependsOn
- Fixed issues with field visibility when using
- Wysiwyig field
- Removed throwing exceptions when a warning occured in logging
- Twig
- TwigRenderer will use the
sandbox
mode now by default - The
config/qore.php
will have atwig
section now where tags and filters can be configured- If you have a published
qore.php
file, make sure to add thetwig
section
- If you have a published
- TwigRenderer will use the
- MailMessageResource
- Added
indexQuery
support when there is no authenticated users (system calls)
- Added
- Price field
- Added better support for setting currency (symbol)
- FormState
- Added the
->getField
and->getFields
helper methods
- Added the
- Wysiwyg
- Fix configuration issue with Tinymce not allowing inserting links to current host
1.6.9 (Apr 29, 2024)
- Tables
- Disabled virtual scroll because filters lose focus while typing
- This issue will be addressed in the future
- Disabled virtual scroll because filters lose focus while typing
- Button field
- The
onClick
closure is not required anymore- E.g. when you only want the button to redirect
- The
1.6.8 (Apr 18, 2024)
- Field
dependsOn
- The
dependsOn
closure will now be called on initial request instead of separate ajax call- This reduces a lot of unnecessary requests
- The
- Field
onInitialFormRequest
- Each field can override the new
onInitialFormRequest
method (See documentation)- This method will be called when the field is loaded for the first time in the request
- Each field can override the new
- Helpers
- The front-end global
$log(..)
helper accepts more than 1 argument now
- The front-end global
- Wysiwyg (and similar fields)
- You can now customize how data should be purified using
->purifyUsing
(See documentation)- In some cases you might not want to purify data
- You can now customize how data should be purified using
- Resource options query
- Resources can override the new method
optionsQuery
which will be used for relational select fields (See documentation)- This way you can customize and optimize the query when fetching options for a field
- The
indexQuery
will still be used as a default
- The
- This way you can customize and optimize the query when fetching options for a field
- Resources can override the new method
- Resource table
- Fixed issue that caused the table to load all fields instead of only index fields
- qore/crm
- Fixed N+1 query issues
Upgrade guide
- Make sure to add the changes as seen in this MR
- Fixed N+1 query for
preferences
andpublicSettings
on active tenant
- Fixed N+1 query for
1.6.7 (Apr 11, 2024)
- Checkbox field
- Fixed styling issue for tooltips
- Resources
- Added
onFormReady
method which can be overridden for create and edit forms (See documentation)- This will be called on every lifecycle in the form
- Added
- Resource table
- Expanded rows will now show the
ResourceShow
component when editing is not enabled
- Expanded rows will now show the
- qore/crm
- Added
mail_cc
andmail_bcc
to the organization resource
- Added
- qore/invoicing
- Multiple changes added
1.6.6 (Apr 02, 2024)
- Price field
- Added missing
FieldIsRepeatable
import
- Added missing
- Repeater field
- Repeated fields can now be marked disabled or readonly
1.6.5 (Mar 27, 2024)
- Activity logs
- Improved the way how activity is loaded in the
ActivityLogTable
- Two logs with the same
created_at
date will now be sorted by ID afterwards
- Two logs with the same
- Improved the way how activity is loaded in the
- Code field
- Is now repeatable
- Added
json
as allowed language
- Tables
- Fixed issue with
Button
fieldclick
event not preventing parentclick
event
- Fixed issue with
- Repeater Field
- Add
draggable
method to allow setting a sort order for the rows (See documentation)
- Add
- qore/frequency
- Added new plugin which exposes a new field
Frequency
- This field can be used to set up a cron job frequency
- Added new plugin which exposes a new field
- qore/invoicing
- Added new feature: invoice merging
- Added banners from CRM to detail page if CRM is enabled
- Added feature to schedule automatic bookings (which can be configured in the module settings)
1.6.4 (Mar 13, 2024)
- Checkbox field
- Removed the unexpected
accepted
rule if therequired
rule is added - Added asterisk (*) only when the
accepted
rule is included - The field will take less vertical spacing now in forms
- Removed the unexpected
- RelationTableField
- A closure expecting a model can now be used in the
query
function (See documentation)
- A closure expecting a model can now be used in the
- Alerts
- Method
setModel
can now be called without Qore overwriting the model you set - Fixed visual bug that was introduced by 1.6.3 release
- Method
- Select / Relation fields
- Select fields are now filterable on description as well
1.6.3 (Feb 29, 2024)
- RepeaterField field
- Added support for field metadata for the inner fields (See documentation)
- This meta will be the same for each row
- Added support for field metadata for the inner fields (See documentation)
- Number field
- Is now repeatable
- BetterTime field
- Is now repeatable
- Added fix for the required asterisk always showing in front-end
- SerialNumber field
- The name of the field is now the column for saving the generated number
- Before, it was always hardcoded serial_number
- The name of the field is now the column for saving the generated number
- Resource Chips
- Added (missing) chip validation errors in the front-end
- Authentication settings
- Fixed issue that caused the
2fa_required
setting to not be public when saving the settings
- Fixed issue that caused the
- Roles
- Fixed bug that caused
2fa_required
to not be saved on a created Role - The
RoleCreator:create
method now accepts an optional$twoFactorAuthRequired
boolean parameter
- Fixed bug that caused
- Resource Alerts
- Resource alerts will use the
resource-alert
component now instead ofbase-message
- Added buttons (simple actions) support (See documentation)
- Resource alerts will use the
- qore/invoicing
- Added info about overdue days in tooltip on payment due at
- Added payment info on Quick Action & Payment progress improvements
1.6.2 (Feb 19, 2024)
- Phone & PhoneNumbers fields
- Fixed display format for non-NL phone numbers
- MailMessageResource
- Fixed bug which caused errors when there was a mail message not attached to a resource
- This bug was introduced in last patch (1.6.1)
- Fixed bug which caused errors when there was a mail message not attached to a resource
- Removed unnecessary caching from
get_central_database_name
- This caused issues when switching between projects/databases
- qore/invoicing
- Added the description field to the invoice template resource.
- Refactored detail page into multiple components
- Added the ability to set the payment date in the invoice payment builder
- Make sure to publish migrations & front-end (forced)
Upgrade guide
- Make sure to add the changes as seen in this MR
- Fixed issue that was caused when the password is made empty
1.6.1 (Feb 12, 2024)
- Mailing
- Mail messages will have a
resource_name
column now- This is required for permission checking
- Mail messages will have a
- Mail messages
- Messages are now protected behind 3 new permission scopes
ViewAllSentMails
-> View all mail messagesViewResourceSentMails
-> View messages linked to resources that the user canviewAny
ViewOwnSentMails
-> View messages that the user has sent- Both
MailMessagePolicy
andMailTemplatePolicy
now exists inside Qore
- Both
- Added missing
morphTo
relationship for instigator on theMailMessage
model
- Messages are now protected behind 3 new permission scopes
- Permissions
- The
RoleCreator
class create method will now usefirstOrNew
instead of always creating- This now aligns with the
PermissionCreator
and will be more friendly for re-running seeders
- This now aligns with the
- The
- Resource permissions
- The
getPermissionNames()
method supports an array of permissions now for every policy method
- The
- BaseDialog (front-end)
- BaseDialog accepts a
title
slot now
- BaseDialog accepts a
- Field Layouts
- Fields that are shown next to each other in a row (as columns), will now have the option to have a custom
class
andmin-width
- This is applied to every existing FieldLayout (See documentation)
- This class was always
col
and the min-width was always150
, meaning if you had 2Button
fields next to each other, there would be a lot of space between them
- This class was always
- Fields that are shown next to each other in a row (as columns), will now have the option to have a custom
- StepsLayout
- Improved styling by making the tabs more condensed and removed unnecessary margin in between fields
- qore/crm
- Mail messages card table will now also show messages where the organization is the instigator
- qore/invoicing
- Mail messages will now save the receiver (organization) after sending
- Fixed issue with detail page when user had no permissions to see mail messages
- qore/address
- Added missing model relationships for
entity
- Added missing model relationships for
Upgrade guide
- Make sure to run:
php artisan vendor:publish --tag=qore.system.db
andphp artisan tenants:migrate
- This migration will also try to set the
resource_name
for each existing mail message
- This migration will also try to set the
- Make sure to add the changes as seen in this MR
- To re-seed permissions:
php artisan tenants:seed --class=Database\\Seeders\\Tenant\\PermissionsSeeder
- Please note after re-seeding only admins will be able to view messages, you will still need to update the roles
- To re-seed permissions:
1.6.0 (Feb 05, 2024)
- Table exports
- Fixed
table-export.blade.php
trying to call non existingformat_text()
helper when rendering totals
- Fixed
- Resource tabs & cards
- A
boolean
value can now be optionally passed into the->asTab
and->asCard
functions- Note: if you have overwritten these class functions before, make sure to add the corresponding parameters
- A
- Resource Table
- Added method
postProcessTableRow
on resources to apply styling on table rows without depending on fields- See also Table row styling for more information
- Added method
- The
QoreMail::send
helper will now use a stringcode_name
instead of thename
of the mail template- This change is necessary because end-users could potentially change the name of the mail template
- qore/invoicing
- The invoice lines default mapped line config can now accept a
FormState
in the closure - Updated mail template seeder for above
code_name
addition
- The invoice lines default mapped line config can now accept a
Upgrade guide
- Make sure to update your mail template seeders as seen in this MR
- Make sure to run:
php artisan vendor:publish --tag=qore.system.db
andphp artisan tenants:migrate
to add and seed thecode_name
in themail_templates
table- The migration makes sure that the new
code_name
will be set to the currentname
- The migration makes sure that the new
1.5.9 (Jan 31, 2024)
- Image field
- Fixed issue which made it impossible for multiple Image fields to upload the same image
- BaseForm
- Fixed issue that caused back-end
dd()
to cause endless loading spinner on submit button
- Fixed issue that caused back-end
- Activity logs
- The activity log is now scoped to logs in the
default
log
- The activity log is now scoped to logs in the
- Wysiwyg Field
- Added 9, 10, and 11 as default available font sizes
- Fixed issue with
blur
event not updating the template preview
- Twig templating
- Added support for Wysiwyg editors that converted characters like
<
and>
- Added support for Wysiwyg editors that converted characters like
- Front-end Resource Permissions
- Reduced default cache duration from 30 min to 5 min (on production)
- Sentry (front-end)
- Updated Sentry dependencies in
package.json
- Updated Sentry dependencies in
Upgrade guide
- Make sure to make the following skeleton error corrections
- Make sure to correct and add robots.txt files
1.5.8 (Jan 26, 2024)
- qore/kanban
- Add support for qore/kanban v1.0.0
1.5.7 (Jan 24, 2024)
- Mailing
- Fixed issue which caused mails to not be sent when multiple receivers were selected
- Resource Alerts
- Alerts can now be shown on create and index as well
- Just make sure to add:
->hideOnIndex(false)
or->hideOnCreate(false)
because it is only shown on detail by default - The
model
property on Alerts are now marked nullable (see upgrade guide)
- Just make sure to add:
- Alerts can now be shown on create and index as well
- Number formatting
- Fixed issues with inconsistent number formatting in front-end. It will now use an equivalent of PHP's number_format function
- Also added
$isNumber
helper in front-end
- Also added
- Fixed issues with inconsistent number formatting in front-end. It will now use an equivalent of PHP's number_format function
- Mail footers
- Mail footer index table has tabs now (for users and tenants)
- Mail footers can now be attached (to user or tenant) in the form
- Mail footer field is removed from TenantResource
- MailMessageResource
- Removed hardcoded references to this resource class
- qore/invoicing
- Added
->getPdfFileAsBase64()
method to the invoice model - Added module setting which will optionally update the invoice date & payment due date when sending the invoice
- Upgrade guide is mandatory to follow, even when not using this feature
- Added
- qore/mailgun
- Updated message external id to have surrounding
<
and>
- Updated message external id to have surrounding
Upgrade guide
- Alerts
- If you have custom resource Alerts, make sure you mark your
$model
property as nullable (if you have overridden it)- The type should be:
protected ?Model $model = null;
- The type should be:
- If you have custom resource Alerts, make sure you mark your
- qore/invoicing
- Make sure you add the following event & listener to
config/invoicing.php
in theevent_listeners
array:- This will make sure the status and dates will be updated before an invoice is sent
- Make sure you add the following event & listener to
InvoiceBeforeSending::class => [
UpdateInvoiceBeforeSending::class
],
1.5.6 (Jan 22, 2024)
- BaseForm
- The
fields-endpoint
route will now also supportPOST
routes - The reason why this is implemented, is because server configurations may deny
GET
requests with a lot of data, this way you can usePOST
if necessary- See also Why is form URL so long? for more information
- Resource create and edit endpoints will now use
POST
by default- The following prop should be added on
<base-form>
when you want to supportPOST
in custom forms:use-post-for-fields-endpoint
- The following prop should be added on
- The
1.5.5 (Jan 17, 2024)
- Form interceptor
- Fixed issue with forms loading indefinitely when intercepted
- Code field
- Fixed issue that caused the form to submit when pressing enter inside dialogs
- Fixed issue with preview not working when the code had a lot of characters
- Phone field
- Changed phone
href
to align with actual number instead of display value
- Changed phone
- Color field
- Added color display for index and detail
- Disabled index filter
- Relation fields
- Added
ResourceRelationAttached
event for when an external resource model is attached - Added
ResourceRelationDetached
event for when an external resource model is detached
- Added
- Date & DateTime filter
- Added checkbox to enable dynamic range filtering
- This way you can save a filter (e.g.
last 7 days
) without having "hard" dates
- qore/address
- Updated PhoneNumbers field for change above (make sure to force publish)
- qore/invoicing
- Downloading PDF will not conflict with browser extensions anymore
- Fixed issue with PDF not being re-generated when sending a concept invoice
Upgrade guide
- Add missing translations as seen here, here and here
- Also make sure to add
TINY_API_KEY
to your.env
so it does not get overridden when seeding
- Also make sure to add
- When using
qore/address
and/orqore/invoicing
make sure to force publish front-end
1.5.4 (Jan 10, 2024)
- Number field
- Fixed value to not be casted properly to a number in some cases
- Relation (field) tables
- Added bulk action checkboxes support for these tables
- Actions can be defined on the field using:
->withTableActions(...)
(See documentation)
- Actions can be defined on the field using:
- Added bulk action checkboxes support for these tables
- Place field
- Fixed missing validation error when country was empty
- RelatedToMany field
- Added missing default
withRelationalDisplay
call- The other resource
modelTitle(...)
will now be used by default
- The other resource
- Added missing default
- BaseTable exports
- Added support for exporting custom base tables
- Selecting records and async (via job) exporting is not supported yet
- More information can be found here (See documentation)
- Added support for exporting custom base tables
- Field Macros
- Added
Macroable
trait to fields to allow custom methods to be appended- E.g.:
Text::macro('enableKanban', function() { ... } )
- E.g.:
- Added
- Front-end
- Added support for turning Kanban on/off for relational fields
- qore/crm
- Fixed issue with wrong model being used in global search result
- qore/layout
- Marked relation buttons as disabled when users have no permission to attach
- Force publishing required (
php artisan vendor:publish --tag=qore.layout.frontend --force
)
- Force publishing required (
- Marked relation buttons as disabled when users have no permission to attach
1.5.3 (Jan 09, 2024)
- Select / Relational fields
- Added better searching in dropdowns for special characters
- E.g.: knäckebröd > kna"ckebro"d > knackebrod
- Added better searching in dropdowns for special characters
- Resource create
- Added checkbox that allows for creating another resource record so the user will not be redirected to the detail page
- This is disabled by default, but can be enabled for all resources by overriding qore.php config file
- You can also enable it per resource by overriding (See documentation)
- BaseForm
- Keep submit button disabled shortly after success event to prevent users from clicking it again
- Events
- Added multiple event calls in system which can be used for debugging/listeners
- E.g. when a field renders or when a plugin has booted
- Added multiple event calls in system which can be used for debugging/listeners
- qore/kvk
- Allowed users to also search for KVK number alongside name and place
- qore/ckeditor
- Added numerical font size support
- Added config overriding support (See documentation)
- Force publishing required (
php artisan vendor:publish --tag=qore.ck.frontend --force
)
- Force publishing required (
- qore/crm
- Multiple small hotfixes
- Fixed issues with module settings page that were introduced in prior patch
- Salutations for contacts are now defined in text fields, please read the upgrade guide
Upgrade guide
- Add missing translations as seen here
- If you have a local
qore.php
config file, make sure to add the following:
/**
* General resource configs
*/
'resource' => [
/**
* Whether to add the `add another one` front-end checkbox when creating a resource
* Can be overridden on a resource via `isCreateAnotherOneAllowed(): bool` method
*/
'allow_create_another_one' => false
],
- qore/crm
- Salutations are now managed in text fields, if you have a custom
SalutationSeeder
, make sure to respect the original one - You have to disable en re-enable this module to seed the new salutations
- Salutations are now managed in text fields, if you have a custom
1.5.2 (Jan 04, 2024)
- Choice Field
- Removed unnecessary debouncing
- MorphTo Field
- Fixed issue wich caused an error when resource could not be found when displaying
- Resource show
- Removed checks for which attachableFields are available (used for
qore/layout
module)
- Removed checks for which attachableFields are available (used for
- Kanban
- Implemented
hasKanban
method on resources (used forqore/kanban
module) - Fixed issues with Kanban Module not switching in Relational tables
- Implemented
- Rating Field
- Added the ability to use
displayUsing
for the index value. - Fixed issue with rating input event
- Added the ability to use
- Responsiveness
- Fixed console error on resource index
- Fixed full-width display on resource detail
- Roles and permissions
- Checkbox is now hidden in role edit table if the ability does not exist
- MainMenu
- Make icons less wide so there is more space for menu items
- QN2
- Added multiple features/bugfixes to extensions:
Agency Projects
,Kanban
,Tickets
,Products
,Employee
,Nmbrs
,Time Registration
,Login branding
,Exact Online
- Added multiple features/bugfixes to extensions:
- qore/crm
- Fixed mutiple small issues and inconsistencies. Only major changes are described below.
- Added
editableLogoField
to make editing logo possible via upload (only on edit) - The
icon
andlogo
field names were reversed which is fixed now- Resetting the index table might be necessary
- Brandfetch will no longer autofill the description
- Added default labels to address related fields
- qore/address
- Added ability to set default label for mobile
- Added support to overwrite the default label for phone and mail addresses
- Change mailto to
tel
in PhoneNumbers index
- qore/layout
- Added multiple small features and bugfixes in the front-end files
- qore/invoicing
- Multiple changes and features have been implemented for QN2. Below are the major ones.
- Marked invoice as credited when total amount is negative
- Added Word module support as a choice for templating
- Forced default invoice line quantity as int
- Added support for decimal invoice line quantities in backend
- Implemented additional invoice line fields
- qore/adversus
- Removed accidental test code which was still present
- qore/graph
- Test mails from the settings page will now be saved in the outbox in Outlook
Upgrade guide
- Please make the same Skeleton changes as the merge requests below
- If using any of the modules/plugins as mentioned above (
qore/crm
,qore/addresses
,qore/layout
etc.) make sure to:- Publish latest front-end files --forced
- Publish latest migrations
- Other updates if necessary
1.4.8 (Dec 04, 2023)
- Resource validation
- Added the ability to append validation messages and attributes on the resource (See documentation)
- This way you can edit the validation message, without creating a new field class that extends Field
- Added the ability to append validation messages and attributes on the resource (See documentation)
- Form fields
- Added debounce value to every Qore field by default
- This exists to make sure
->onUpdate
will not be called multiple times - Front-end fields don't need to make use of debouncing anymore, unless for heavy javascript operations
- The debounce value can be set in the backend (Debounce value)
- This exists to make sure
- Fields will now display a loader when busy (was accidentally removed in previous updates)
- Added debounce value to every Qore field by default
- Stateless API integration
- Qore can now be accessed through authorization tokens (Bearer token) (See documentation)
- This will make it possible for apps to connect to Qore without needing a session, domain etc.
- Qore can now be accessed through authorization tokens (Bearer token) (See documentation)
- Wysiwyg, CKEditor and BetterTime Fields
- Submitting right after filling these fields will now have the most recent value
- Database sessions
- Prevent every request from doing an update query
- It will now only update current session if it wasn't updated in the last 30 seconds
- Prevent every request from doing an update query
- qore/ckeditor
- Added support debounce (no publishing necessary)
Upgrade guide
- To support API integration, make sure to make the following changes:
- Make sure your password reset table is correct
1.4.7 (Nov 29, 2023)
- Auth
- Users will now be redirected to, if given, the intended URL after logging in (See upgrade guide)
- Before this, users would always be redirected to
/home
- Before this, users would always be redirected to
- Users will now be redirected to, if given, the intended URL after logging in (See upgrade guide)
- Forms
- Submit button will now show a loader when the form is busy
- Pressing enter in relation create dialog will now submit the form
- Resource index fields
- The method
->deselectByDefault(bool $value)
is now marked as deprecated - Instead, use
->deselectOnIndexByDefault()
- The inverse of this method is
selectOnIndexByDefault()
- The inverse of this method is
- The method
- MorphToMany & BelongsToMany Fields
- Added
->fillPivotUsing
support to update pivot columns (See documentation)
- Added
- HasMany & MorphMany Fields
- Fixed issue which caused unnecessary activity logs to be created when saving
- Documentation
- Expanded documentation for relation fields and moved them to a separate page (Relation fields)
- Added Relationship cheat sheet for example migrations & relationships to get started
- Expanded documentation for relation fields and moved them to a separate page (Relation fields)
- qore/invoicing
- Added
fillable
toGeneralLedger
model and minor fixes
- Added
Upgrade guide
- Make the following change.
- This will add the redirect after a user logs in
1.4.6 (Nov 27, 2023)
- Encrypted Text Field
- Added various bug fixes
- CardsLayout
- Fixed issue that caused the first field to not get autofocused
- Tenant Variable Values
- Fixed issue which caused the delete and submit buttons to show before the form was loaded
- Price & Number fields
- The
withCurrencySymbol
method does not require an argument anymore- When no argument or null is given, it will get the preferred currency by default
- Price field will now show the currency symbol by default in forms
- The
- qore/ckeditor
- Added fix for
autofocus
not working
- Added fix for
- qore/invoicing
- Added checkbox for displaying detailed description on invoice PDF
- Switched TinyMCE with CKEditor (
qore/ckeditor
is now mandatory plugin) - Added support for variables inside detailed description
- Add
sync
icon when a payment has an external ID
Upgrade guide
- qore/invoicing
qore/ckeditor
plugin now required- Following commands required:
php artisan vendor:publish --tag=qore.invoicing.db
php artisan vendor:publish --tag=qore.invoicing.frontend --force
php artisan vendor:publish --tag=qore.invoicing.views --force
php artisan tenants:migrate
1.4.5 (Nov 21, 2023)
- Added the new Rating field
- Wysiwyg field
- The Wysiwyg field supports the
->withTwig()
method now, which adds functionality fromTwigTemplate
- The Wysiwyg field can have a label now
- The TwigTemplate field is now marked deprecated (will be removed in future update)
- The Wysiwyg field supports the
- CK Editor
- The CKEditor field also supports the
->withTwig()
method - The CKEditor field can have a label now
- The CKEditor field also supports the
1.4.4 (Nov 15, 2023)
- Mailing
- Added command that allows for sending test e-mails:
php artisan qore:send-test-mail
- This command has no arguments, and will ask for input
- Added command that allows for sending test e-mails:
- Field detail
- Added backwards incompatibility fix (legacy projects errored on
tooltips
prop)
- Added backwards incompatibility fix (legacy projects errored on
- Guidelines
- Added Guidelines documentation page
- This document is incomplete, but will be expanded over time
1.4.3 (Nov 14, 2023)
- ColumnCardLayout
- Implemented card toggling
- CSS helpers
- Added support for
gap-${size}
classes similar toq-col-gutter
andq-m/p
- See more info here
- Added support for
- Preferences
- Added 2 preferences which determines how the resource table pagination and resource detail page looks
- These preferences will both be available as fields on the tenant and auth preferences page
- Accessibility
- Forms can now be submitted with key press:
CMD (or ctrl for windows) + Enter
- Forms can now be submitted with key press:
- Repeater field
- Fixed issue that caused a compile error for some developers
- Legacy support (only relevant for old qore project(s))
- Add
DISABLE_INLINE_EDITING=TRUE
to your.env
if you want to disable inline field editing
- Add
Upgrade guide
- CSS
- To allow for Sass/SCSS variables, please add the following change
- Qore config file
- If you have a published
config/qore.php
, make sure to add the following (belowmenu_size
):
- If you have a published
'page_detail_size' => [
'default' => 'default',
'items' => [
[
'id' => 'default',
'label' => 'Default'
],
[
'id' => 'roomy',
'label' => 'qore::system.Roomy'
]
]
],
'table_pagination_display' => [
'default' => 'footer',
'items' => [
[
'id' => 'footer',
'label' => 'qore::system.In footer'
],
[
'id' => 'below_table',
'label' => 'qore::system.Below table'
]
]
],
1.4.2 (Nov 02, 2023)
- Resource table
- Pagination
- Pagination is now a custom component and is being displayed inside sticky bottom bar
- Tables can expect a
sticky-bottom
(bool
) prop now
- Tables can expect a
- Pagination is now a custom component and is being displayed inside sticky bottom bar
- Summary columns
- Calculate and show column summaries based on which rows are selected via checkboxes
- Fixed minor issue in price formatting for summaries
- Browser history
- Remember search columns when going back in browser history when a tab is selected
- Fixed issue which didn't restore table page number when going back when a tab was selected
- Styling
- Fixed background color always being white when table styling is defined
- Pagination
- Resource table filters
- Table filters can now be marked as tabs, which will add tabs above the resource table
- Table filters can now be edited
- Resource detail
- Fixed issue that caused some fields to not have full width on detail
- Performance
- Added boolean for
request_cache
helper whether to ignore tenant id for cache key - Removed a few duplicated query calls
- Added boolean for
Upgrade guide
- Table filters
- Publish & Migrate latest system migration:
php artisan vendor:publish --tag=qore.system.db
andphp artisan migrate
- Publish & Migrate latest system migration:
1.4.1 (Oct 31, 2023)
- Qore Form
- While a field is busy, the submit button will now be disabled in forms until no field is busy anymore
- Resource detail component
- The resource detail page can be included as a component (e.g. in a dialog) now:
<resource-show :resource="resource" :modelId="modelId" />
- Form State
- Made sure that the initial state is respected before each field gets an
runUpdateOnInit
call
- Made sure that the initial state is respected before each field gets an
- Reverted
BelongsTo
field to have a component name- Fields that extend other fields should add their own
component
method - See more info here
- Fields that extend other fields should add their own
- CSS
- Fixed issue with resource detail styling which was introduced in 1.3.8
- qore/invoicing
- Added multiple fixes for issues that were introduced by older Qore versions
- Added fix for price column always showing vat included value
- Re-publishing of front-end files is required
- Module settings should be saved or seeded once manually to make sure some settings are made public for the front-end
1.4.0 (Oct 24, 2023)
- Added the
prepend
slot to theBelongsTo Field
- Fixed item allignment in the summary row on index tables.
- Applied various styling fixes in the front-end.
- Revert the
BelongsTo
hotfix in 1.3.9
1.3.9 (Oct 19, 2023)
- Hotfix
BelongsTo
field (No upgrade needed)- Fix issues with BelongsTo not having a default component
- Add support for extending preference fields from outside the AuthPreferenceController
Upgrade guide
- Make the following change
1.3.8 (Oct 13, 2023)
- Tooltips
- Added tooltips to fields in the detail and index pages. (See documentation)
- BetterTime field
- Added function
withoutDropdown
- Added function
- Field detail display
- Added word breaking & overflow-x-hidden to prevent long words causing a scroll bar
- Table select filters
- Added functionality to "select all" options in the dropdown filter
- Applies to all relational fields and the Select field
- Added functionality to "select all" options in the dropdown filter
- Qore CSS file
- Qore has a
scss
file now that should be included in skeleton (see upgrade guide)
- Qore has a
Upgrade guide
- Make the following change
- This will make sure the
qore.scss
will be loaded
- This will make sure the
1.3.7 (Oct 05, 2023)
- Duration field
- Added new field which allows to fill a duration (See documentation)
- Tenant Variable & Tenant Variable Value
- Variables and values will now be cached to prevent unnecessary queries
- The styling for variable values are now editable even when the variable is locked
- Tables
- Added search icon in the search header row
- Repeater field
- Added missing display value for Date & DateTime fields
- Fixed visual issue with validation errors
- Date & DateTime fields
- Fixed issue which caused
onUpdate
to be called immediately (when it shouldn't)
- Fixed issue which caused
- Module:
qore/layout
- Fixed issue with tabs not rendering properly
- Re-publishing required (
php artisan vendor:publish --tag=qore.notes.frontend --force
)
Upgrade guide
- Make the following change.
- This will make sure tabs have counts on resource detail pages
1.3.6 (Oct 02, 2023)
- Repeater Field
- Fixed issue that caused the field to add a default row when cleared/made empty
- Added method to preserve the old functionality (See documentation)
- Wysiwyg/TwigTemplate fields
- Fixed issue which caused the content to be cleared when user quickly clicked away before debounce fired
- Removed margin at the bottom of the field
- Added support for hiding the extra label above the field
- Image field
- Added feature to upload an image by pasting an external image url (See documentation)
- BetterTime Field
- Fixed issue that caused errors in logging
- Choice field
- Removed bottom margin
- Select field
- Added better contrast styling for options that are marked as groups
- Relation fields
- Fixed issue that caused
withAttachButton()
to not respect visibility (e.g. make it hidden on show)
- Fixed issue that caused
- Field DependsOn
- Calling
->dependsOn
will now automatically update the options based on the query scope (See documentation)
- Calling
- Date & DateTime fields
- Added feature to disable certain dates in the datepicker (See documentation)
- Both fields are now supported in
Repeater
field (See documentation)
- Tabs Field Layout
- Added better support for when tabs are not the first element in a form, e.g.:
(new FieldLayout)
->column('field_1')
->tabs(...) // Now adds margin on top and selects first tab by default
- Resource permission caching
- You can now enable front-end permission caching (See documentation)
- This will be enabled by default on Production to reduce full page reload times
- Mailing
- Added API to customize a mail right before sending (See documentation)
- Tenant variables
- Removed wrapping from display values with icons
- qore/mailing-extended
- Added possibility to customize an e-mail when sending it manually and other small changes
- Publishing front-end is required to update
1.3.5 (Sept 21, 2023)
- Image field
- Added support for
maxIndexWidth
&maxDetailWidth
to the Image Field (See documentation)
- Added support for
- Repeater Field
- Added new field:
Repeater
which allows fields to be repeated vertically or horizontally (See documentation)
- Added new field:
- BetterTime field
- Converted
data
properties tometa
as they should not be mutable - The clear button can now be hidden
- Converted
- Add relation dialog form
- Added fix for submit button (
disabled
,label
) not properly updating based on the state of the form - Also added
formDataUpdated
event toBaseForm
(See documentation)
- Added fix for submit button (
- Field state
- Added new method
disableStateTransferring()
on fields (See documentation)
- Added new method
1.3.4 (Sept 14, 2023)
- Button field
- Added new field
Button
(See documentation) - This field makes it easy to run PHP code when a button is clicked. Also includes a dialog with fields
- Added new field
- Tenant Variables
- Fixed issue that caused the
used_for
column to throw an error when filtered (on the/company-variables
page)
- Fixed issue that caused the
- Form State
- Added method
setSubmitButtonLabel(string)
to set the label for the submit button in Qore forms (See all methods)
- Added method
- Roles & Permissions
- Significantly reduced execution time (improved performance) when saving or applying roles & permissions
- Resource name is now aligned at the top of each table row
1.3.3 (Sept 7, 2023)
- Field hooks
- Added the
onBeforeRenderIndexFilter
method (See documentation) - This could be used to alter the
componentProperties
before rendering the Filter front-end component
- Added the
- Date & DateTime fields
- Added methods for developers to set future/history quickfilters on date(time) fields using
setHistoryFilterButtons
andsetFutureFilterButtons
- Added methods for developers to set future/history quickfilters on date(time) fields using
- Date rendering
- Date and Datetime presenters will now translate Carbon dates (was always English before)
- Added an optional new date format in
qore.php
(l j M Y
) that is more user-friendly for Dutch users
- Config
- The
qore.php
config file is now publishable viaphp artisan vendor:publish --tag="qore.system.config"
- The
- Image field
- Fixed issue that caused some images (like
svg
) to not display in tooltips
- Fixed issue that caused some images (like
- Form state
- Fixed issue that caused
getState()
to not have the updated state ifsetState()
was called before - Fixed issue that caused
getRelatedModel()
to returnnull
in some cases when it shouldn't
- Fixed issue that caused
- Field validation
- Fixed issue that only validated the first value in the
required_unless
rule
- Fixed issue that only validated the first value in the
1.3.2 (Aug 24, 2023)
- StepsLayout
- Added feature to StepsLayout which allows for disabling and enabling steps (See documentation)
- Resource actions (bulk)
- The denied and eligible lists will now both be collapsable and are collapsed by default
- If the resource for the action has a detail page, the user can now click on the list item to navigate to the resource
- Resource actions
- Added property
$autofocusEnabled
which defaults totrue
- This determines if the first field should be autofocused
- Added property
- Select field (Enum)
- Fixed issue which caused Enum casts to error in tables
- Field display
- Fixed issue that caused an error when returning a
JsonResource
class in thedisplayUsing
closure
- Fixed issue that caused an error when returning a
- Settings (See upgrade guide)
- Added
is_public
to Tenant Settings, which defaults tofalse
- Public setting will be available in the front-end, so be wary of what you store as public
- Added
Upgrade guide
- Tenant settings
- Publish & Migrate latest system migration:
php artisan vendor:publish --tag=qore.system.db
andphp artisan migrate
- Make the following change
- If you have settings that need to be publicly available aside from
authentication->2fa_required
, please add a Seeder
- Publish & Migrate latest system migration:
1.3.1 (Aug 14, 2023)
- BeterTime field
- Added field which is an alternative for the
Time
field that includes more functionalities
- Added field which is an alternative for the
- Field hints
- Fixed issue which caused hints to not be visible on
FilePicker
andCode
fields
- Fixed issue which caused hints to not be visible on
- Custom Forms
- Fixed issue that caused error messages to not be shown in some cases
- Fixed issue which caused cards to not be toggable
- FilePicker Field
- Added limit for amount of files you can upload when there is a configured limit
- Fixed issue that caused the hint to be incorrect if
max_files
was passed as validation rule
- Country fields
- Fixed issue in fields that have a country select to not override the default selected country anymore if a new default value is set
- Resource actions
- Made sure that action buttons will always be shown without having to scroll vertically
- MailTemplate field preview
- Fixed small issue which caused the preview to not be scrollable / clickable
Upgrade guide
- Run
cd frontend && yarn upgrade qore-frontend
to make sure thevue2-timepicker
dependency will be installed
1.3.0 (July 31, 2023)
- Form fields
- Field data now persists in the front-end when subsequent requests are done.
- Before this change, all field data would be cleared when a field interacted with the back-end. This made it uneasy for developers to work with, as they needed to re-set the data on every field that has back-end interaction.
- Mailing
- The QoreMailChannel has been updated to align more closely with the Laravel approach to Notification channels (see more here)
1.2.9 (July 26, 2023)
- Relational fields
- Added methods to
FormState
which makes it possible to get thestate
andmeta
of the parent form (See documentation) - The
->getState()
method can now be called without passing a field name to get the full state
- Added methods to
- User fields
- Added 2 new fields:
BelongsToUser
andBelongsToManyUsers
which makes it easier to link resources to users (Docs: BelongsToUser), (Docs: BelongsToManyUsers)
- Added 2 new fields:
- Time field
- Added the ability to use a 24h format using
->use24hFormat()
(See documentation)
- Added the ability to use a 24h format using
- Tenant Variable Value
- Description is now required when creating values via
app(TenantVariableCreator::class)
- Description is now required when creating values via
- SimpleEditor field
- Added missing filter for tables
- Helper functions
- Added the following helper functions:
get_central_database_name
,get_tenant_database_name
(See documentation)
- Added the following helper functions:
- Roles and permissions
- Changed role tabs to have an uppercase as their first letter (e.g.
admin
becomesAdmin
)
- Changed role tabs to have an uppercase as their first letter (e.g.
- Validation
- Fixed visual bug where a required asterisk would only be shown for the first value in the
required_if
rule
- Fixed visual bug where a required asterisk would only be shown for the first value in the
- Column card Field layout
- Fixed issue with elements still showing when there were no fields inside
- DependsOn
- Fixed issue which caused options to not properly reload when creating a new resource when the field depended on another field
- Select field
- Fixed issue that caused
->searchable()
to display 2 labels in the front-end
- Fixed issue that caused
- qore/ckeditor: Added styling improvements for detail page (publishing required)
Upgrade guide
- User model
- Make the following change. This will make sure avatars use the correct directory.
- Tenant Variable Value
- Make sure you fill the
description
on every tenant variable value in your database as description is required now (you might have to update your seeders)
- Make sure you fill the
1.2.8 (July 04, 2023)
- Resource Detail Sidebar
- Added new feature that adds an (optional) sidebar on the Resource Detail page that a developer can customize
- Currently, the sidebar can have options, fields and actions (See documentation)
- Fields
- Added optional
fullWidthOnDetail
method on every field (See documentation)
- Added optional
- Field inline editing
- Fixed issue that caused the menu to sometimes be out of the screen bounds
- Field layout
- Added missing vertical padding to cards layout
- Improved cardColumns layout look for detail page
- Code field
- Fixed issue that caused the detail preview to have a very small width
- Tenant variable values
- Removed unneeded hint on
description
field
- Removed unneeded hint on
- Textarea Field
- Added missing implementation for
->rows
method on Textarea field
- Added missing implementation for
- MorphToMany field
- Fixed issue that in some cases caused an error when attaching records
- BelongsToMany field
- Add missing description support for resource options in the front-end
- qore/addresses: Fixed bug which caused the fields to sometimes not be clickable on detail page (publishing required)
- qore/crm: Minor tweaks in Organization resource
1.2.7 (June 27, 2023)
- Fields
- Added possible Field call
->allowStateWhileHidden()
which will allow hidden fields to still transfer and submit their states in a form (See documentation)
- Added possible Field call
- Skeleton (See upgrade guide)
- Fixed issue that caused password reset to redirect to login
- Fixed inconsistencies in route naming for 2fa routes
- Changed throttling for logging in because it got throttled quite fast when resetting password
- Resource Detail
- Fixed issue that caused tabs to not be clickable by global events
- Time field
- Fixed issue that caused Time field to not respect setState when called from other fields
- Removed spacing on bottom of the field when there is no validation error
- Resource Index tabs
- Fixed issue that caused index tab to not be selected when going back in (browser) history
- VariableValue field
- Fixed issue that caused an empty option when adding a new variable via the "+" button
- qore/forms: Added support for tab count (publishing required), requires qore/system >= 1.2.6
- qore/microsoft-graph: Added support for optional headers inside request & improve documentation
Upgrade guide
- Skeleton introduced some authentication issues
1.2.6 (June 26, 2023)
- Field actions
- It is now possible to return data from a field action closure (See documentation)
- This can also be used in order to check if an action has ran before
- Resource actions
- Added
headerComponent
andbodyComponent
methods to Resource Actions - It is now possible to create a custom Vue component if overriding is necessary (See documentation)
- Added fix for 404 error that was shown if a record was soft deleted
- Added
- Tenant Variable Values
- Variables can now be shown as Text, a Filled Pill or Outlined Pill
- The
VariableValue
field will now display the styling of the variable value (optional icon, color, etc.)- Fixed minor issue with sorting on the
VariableValue
field
- Fixed minor issue with sorting on the
- Resource Index page
- Removed 404 response when retrieving data from a resource that has its index page disabled
- Disabled index page url in breadcrumbs when resource index page is disabled
- File downloads
- Only file downloads of mimetype:
txt
,pdf
,jpg
,jpeg
,png
andgif
will optionally be opened in a new browser tab. Other files will be downloaded directly. - Added fix for validation messages not being shown when a file was downloaded from a Resource Action
- Only file downloads of mimetype:
- Color picker
- Color picker opens now too when clicked on the color preview on the left of the field
- Resource detail
- Added a counter to every (card) tab that shows the amount of records that contain in the table within
- Relation fields will have that counter added automatically
- You can override the count if necessary (See documentation)
- Fixed issue that caused fields to not be shown in full width when the label is disabled
- Fixed issue that caused the label to still be visible on smaller screens when disabled
- Added a counter to every (card) tab that shows the amount of records that contain in the table within
- Forms
- Added toggable cards to CardsLayout (was only working on Detail before)
- Added autofocus to the first field in a form
- qore/attribute: Added small styling improvement (publishing required)
- qore/mailing-extended: Added button that shows the receivers of the mail that is sent via a mail list (publishing required)
- qore/crm: Added support for tab count (publishing required), requires qore/system >= 1.2.6
- qore/notes: Added support for tab count (publishing required), requires qore/system >= 1.2.6
Upgrade guide
- Publish & Migrate latest system migration:
php artisan vendor:publish --tag=qore.system.db
andphp artisan tenants:migrate
- Required for tenant variable value changes
1.2.5 (June 19, 2023)
- When executing Resource actions (in bulk) the query will use the Resource
indexQuery
now instead of using theModel::query()
- Added the missing
impersonator_id
to the activity log table in the tenant database. - Added Label & Highlighting for fields that use TinyMCE editor
- Added small improvements to
IconSelect
field and added missing Detail & Index components - Added the method
toggleFields(...$fields)
andsetVisibilityForFields($bool, ...$fields)
to the ManagesForm contract. - Updated
prism
code editor front-end dependency (See upgrade guide)- The language
php
was not supported before
- The language
- qore/ckeditor: Fixed issue that caused error when the field was left empty
- qore/layout: Added 2 minor bugfixes in the front-end
Upgrade guide
- Publish & Migrate latest system migration:
php artisan vendor:publish --tag=qore.system.db && php artisan tenants:migrate
- Run
cd frontend && yarn upgrade qore-frontend
to make sureprism
dependency will be updated to the correct version - If you happen to extend the
ManagesForm
contract make sure to implementtoggleFields
setVisibilityForFields
this change.
1.2.4 (June 12, 2023)
Notable changes:
- Affixing numeric fields
- Added the functions
withSuffix(string $suffix)
andwithPrefix(string $prefix)
to Price and Number.- Used to affix a form value with text.
- Added the function
withCurrencySymbol(string $symbol)
to Price and Number.- In the background
app()->getLocale()
is used to determine if the value should be prefixed or suffixed.
- In the background
- Fixed a bug inside the Price field. The keypad comma now gets replaced by a period and no longer adds a comma to the form value.
- Added the functions
- Color Field
- Capitalised hex values (#FFF) will now pass as valid input.
- Currency
- Added the helper function
preferred_currency
which will return the currency set in the company’s preference.
- Added the helper function
- qore/crm: Added features that are necessary for upcoming projects module.
Upgrade guide
1.2.2 (May 25, 2023)
Notable changes:
- Moved Tenant Variables & Values to Qore system (See upgrade guide)
- Added (optional) icon, color, and whether to translate the value description by default
- The
withTranslations
method on theVariableValue
field is now deprecated
- Added proper (regex) validation to the
Color
field - Added more support for working with (uploaded) files (See documentation)
- Added a route which allows for files to be uploaded to make (roaming) public links to the file
- Added a route which allows for roaming files to be deleted
- Added a route which creates a table for all stored media (only if authorized)
- Added new field:
MediaSelect
which allows users to either upload or select existing (media) files (See documentation) - Added new plugin which allows for the
CKEditor
Wysiwyg to be added as field (See documentation) - Added small accessibility improvement to
SimpleEditor
to focus the editor input when clicked - Removed unused
wysiwyg
tenant preference - Fixed issue which caused inline editing to not work when a field had the
withoutLabel
property - Fixed issue which caused the global search to open when you would type
/
in a (wysiwyg) editor - qore/address: Fix small margin error (publishing required)
- qore/crm: Added features that are necessary for upcoming projects module
- qore/layout: Added many new features to allow for more customization (publishing required)
Upgrade guide
- Tenant variables & Tenant variables are now moved to Qore system.
- Make the changes that can be found in this MR
- Publish & Migrate latest system migration:
php artisan vendor:publish --tag=qore.system.db
andphp artisan tenants:migrate
1.2.1 (May 11, 2023)
Notable changes:
- When using a relational field, you now have the option to override columns on the relation table that is shown on the detail page (See documentation)
- Added functions to the Number field (See documentation)
- min: Applies validation rule
min:$min
and adds the max attribute to the<input />
element. https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/min - max: Applies validation rule
max:$min
and adds the max attribute to the<input />
element. https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/max - between: Applies validation rules
min:$min
andmax:$max and
adds the min and max attributes to the<input />
element. - step - Adds the step attribute to the
<input />
element. https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/step
- min: Applies validation rule
- Added caching to Resource fields to avoid re-making fields unnecessarily to increase performance
- Added method to many-relation fields to override the relation table query (See documentation)
- Added support for
pivotFields
onMorphToMany
andBelongsToMany
fields (See documentation) - Added support for many-relation fields to run Qore actions inside the relation table (See documentation)
- Added missing form interceptor when updating a resource via a
Chip
that is based on aSelect
orBelongsTo
field - Removed spacing below every Qore field when there are no validation errors to make forms more compact (See upgrade guide)
- Fixed bug in
BelongsToMany
field that caused relationship records to not be attachable - Fixed issue which caused
VariableValue
to use the wrong translation key - Fixed a bug that was caused by the
Select
field using the wrongvalue
key to auto create anIn
validation rule - Fixed issue which caused active table filter to be not in sync or deselected after a user logs out
- Fixed issue which caused
dependsOn
to be called more times than necessary - qore/addresses: Added less spacing to fields to be consistent with Qore fields
- qore/forms: Added correct gutter to fields to be consistent with Qore fields
- qore/crm: Added fix for NameSuggestionField showing while it should be hidden
- qore/invoicing: Added fix for incorrect class call which caused MailTemplateResource to error
Upgrade guide
- Add fix for migrate:rollback erroring (See changes)
- (Optional) Spacing below Qore fields are removed when there are no validation errors, however this does not apply to your custom fields. See changes to see how to add this yourself if necessary.
- (Optional) (Experimental) Add loader to your app so when a session expires you will not see the app shortly before abruptly getting redirected to login page (See changes)
1.2.0 (Apr 25, 2023)
Notable changes:
- Added the ability to have multiple menu items for 1 resource
- These menu items require a
tableScope
which optionally applies filters/sorting etc. (See documentation)
- These menu items require a
- Added more customization support to
MenuItem
- You can now define when the item gets the
active
state in the menu (See documentation)
- You can now define when the item gets the
- Added
Enum
support forSelect
field (See documentation)- The
Select
field also adds thenew In(...)
rule now by default, which includes all option values (See documentation)
- The
- Added
array
support to multiple methods, e.g.->hideFields(['name', 'category'])
, so you can either supply an array or spread - Added support to inline field editing to have other field(s) at the top (See documentation)
- Before this change, the inline editable field was always the first one in the form. This would be confusing if you were to edit fields like
start_date
andend_date
whereend_date
would be the first field.
- Before this change, the inline editable field was always the first one in the form. This would be confusing if you were to edit fields like
- Added
diff for humans
support to date & time presenter helpers (See documentation)- Added
displayUsingDiffForHumans
toDate
&DateTime
fields (See documentation)
- Added
- Added
sticky
(scrolls alongside the table) to the role & permissions table header to make it more user-friendly - Added missing support for setting dynamic paragraph on
Heading
field (See documentation) - Added Vue slot to
Select
&BelongsToMany
fields so options can optionally be overridden (See documentation) - Renamed
Fields
toTags
forTwigTemplate
field - Fixed issue that caused the Delete resource action to be hidden when not having
deleteAny
permission - Fixed issue that caused the
Logs
button on resource detail to be hidden when there were 0 callable actions - Fixed issue that cased
null
value inSelect
and relation fields to not be filterable in tables - Fixed issue in
EncryptedText
which caused thecopy to clipboard
to always be visible - Fixed issue that cased relational fields to execute queries when not necessary
- Options were retrieved on the resource detail page
- Fixed issue in
Image
field that caused long file names to overflow BackgroundProcessResource
now exists in qore/system (See upgrade guide)- qore/attribute: Translate labels, tooltips, hints and select options by default
- qore/crm: Added missing social icons & fix duplicated fields
- qore/address: Added better import support
- qore/layout: Add multiple improvements & bugfixes
- qore/excel-import: Added multiple improvements & bugfixes
- qore/invoicing: Patched new options method to match
Select
options - qore/mailgun: Added support for multiple domains
- Added module to upload & export Word templates (See documentation)
Upgrade guide
BackgroundProcessResource
and its fields have moved to qore/system. Make sure to apply the following changes
If you have custom fields that extend the Select
field, and has its own options
method, make sure
you update your options
method to match Qore arguments
1.1.7 (Apr 06, 2023)
Notable changes:
- Added route that will allow media (files) to be streamed (See documentation)
- It was only possible to download media before
- Resource actions that download a file (that does not open in a new tab), will now have a proper file name instead of uuid
- Fixed issue that caused modules & plugins to still be active when switching tenants
Upgrade guide
- Update your config/cors.php so that axios will now have more file information when downloading
1.1.6 (Apr 01, 2023)
Notable changes:
- Upgraded Laravel 9 to Laravel 10 (See upgrade guide)
- Added better support for
onUpdate
when file inputs are updated- E.g.
FilePicker
fieldonUpdate
will now show the filename
,size
,last_modified
instead of__key
only
- E.g.
- Fixed issue in
FormState
that in rare cases could throw an error when a field had updated - qore/invoicing: Added support for Laravel 10 & upgraded Wysiwyg dependency
- qore/forms: Added support for Laravel 10
- qore/crm: Added support for Laravel 10 &
addresses
field is not hidden on index anymore - qore/address: Added minor style improvements
Note: the following dependencies have updated (some including publishable front-end): qore/crm
, qore/address
, qore/invoicing
, qore/forms
Upgrade guide
- To upgrade to Laravel 10, make the following changes to your
composer.json
1.1.5 (Mar 29, 2023)
Notable changes:
- Updated
Wysiwyg
field front-end dependencies and allow font size to be set (See documentation) - Added ability to copy encrypted text value and disabling the visibility button for the
EncryptedText
field (See documentation) - Added ability to override the
ResourceTable
class on resources (See documentation)
1.1.4 (Mar 28, 2023)
Notable changes:
- Roles & Permission management now exists inside Qore instead of Skeleton (See upgrade guide)
- If you need to override default behaviour, then (See documentation)
- Added support for Permission Scope groups, which allows
ScopedPermission
classes to have configurable groups (See documentation) - Fixed issue that could cause a wrong table row to be highlighted after editing a resource inline
Upgrade guide
- Everything related to role & permission management can be removed from your project. See the following changes.
- Make sure to also make the following change because there is only 1 component.
- If you have a local
config/components.php
(which is unlikely), make sure to re-publish:php artisan vendor:publish --tag=qore.system.config --force
1.1.3 (Mar 22, 2023)
Notable changes:
- Added 3 new relation fields (
HasOneThrough
,HasManyThrough
,MorphToMany
) and improved sorting support for multiple relation fields (See documentation)- Every relation fields now implements the interface
IsRelationField
- Information on how to sort on a custom column is now added to the documentation (See documentation)
- Every relation fields now implements the interface
- Added (optional) icon to relation field links on index tables (See upgrade guide)
- It is now visually more clear whether a link relates to an external resource
- Added support for
disable
,description
andgroup
insideSelect
field options (See documentation) - Added support to make
tabsForModel
,cardsForModel
,cardTabsForModel
methods overridable on Resources in order to define a custom order for these elements- For example, you might want to override
cardTabsForModel
with a custom sort order:
- For example, you might want to override
public function cardTabsForModel(Model $model): TabCollection
{
return parent::cardTabsForModel($model)->sort(function (Tab|Card $item) {
return $item->title() === __('Highest priority tab');
});
}
- Added (optional)
instigator
to mail_messages table in order to track which model relates to a mail that has been sent (See documentation) - Added support for supplying a custom global search result order for Resources (See documentation)
- Added support for full-page refreshes when editing a field inline (See documentation)
- Added support for a
Closure
whether a field should be able to be edited inline (See documentation) - Added styling improvements to
ColumnCardLayout
- Added adjustment to global search result that when current page is clicked, the page will be refreshed
- Added property to
BaseForm
to support a reload after form is submitted (See documentation)- This is now being used (set to
true
) for the modules & plugin settings page
- This is now being used (set to
- Modified minimal width of fields from
200px
to150px
to match thesize_to_pixels
function - Modified size of
Image
detail to be a bit smaller - Modified the shared
settings
table to have a nullabletarget
- You can now have settings which are not related to a Tenant
- Fixed responsiveness for
Settings
button inside table settings - Fixed inconsistencies in some relational fields (
<a>
tags) having no underline when hovering (See upgrade guide) - Fixed issue that caused the
Time
field to not properly validate its format - Fixed issue that caused Paragraph field to throw an error in some cases
- qore/crm: Modified organization logo, social media links and minor adjustments to fields
- qore/attribute: Added support for
Image
field- The
config/attribute.php
should be updated if you need this new field
- The
- qore/address: Added multiple small styling improvements to the fields
Note: the following dependencies have updated (including publishable front-end): qore/crm
, qore/address
, qore/attribute
Upgrade guide
- A migration has been added that updates a current table. For that reason, run:
composer require doctrine/dbal
- Make sure to publish migrations & run them:
php artisan vendor:publish --tag=qore.system.db
php artisan migrate
php artisan tenants:migrate
- To fix underline on
<a>
links make sure yourcss/link.scss
looks like:
a {
color: var(--q-color-primary);
text-decoration: none;
}
.underline:hover {
text-decoration: underline;
}
- If you have a published
qore.php
, make sure to make the following change
1.1.2 (Mar 14, 2023)
Notable changes:
- Added feature to also show
Alert
on resource edit forms instead of only on detail (See documentation) - Added ability to set default font for
Wysiwyg
field (See documentation) - Added field for encrypted Text (See documentation)
- Added support for toggable cards inside
ColumnCardLayout
- Removed
User
field fromTwigTemplate
resource - qore/address: fixed issue with
stdClass
being used instead ofarray
- qore/crm: fixed issue with address
onUpdate
usingstdClass
- qore/mailing-extended: Removed
inlineEditable
fromMailListResource
->MailListFilter
field
Note: the following dependencies have updated (including some publishable front-end): qore/crm
, qore/address
, qore/mailing-extended
1.1.1 (Mar 06, 2023)
Notable changes:
- Fixed issue that
onUpdate
in fields would sometimes receive astdClass
as value (see danger note below) - Fixed issue which caused
->disable
on fields to not disable editing inline - Fixed issue which caused
composer outdated
to be executed daily which slowed down development - Added small change to
Date
andDateTime
front-end fields to improve accessibility - Fixed issue in
ColumnCard
layout that prevented output on the detail page - Fixed issue in
qore/crm
that madeContactFullName
cause problems in forms - Fixed issue in
qore/addresses
which prevented sorting in tables - Removed outdated dependencies from
composer.json
- Added plugin that adds
DrawnSignature
field (See documentation) - Added module to create custom forms (See documentation)
Upgrade guide
The state of every form inside Qore relied on a stdClass
before. It has now been refactored to use an array
.
In some cases, you might have an onUpdate
on one of your fields, where the $value
would be an stdClass
.
Below is an example of what your old code may look like, and how you should refactor it.
->onUpdate(function (FormState $state, $value) {
if ($value) {
foreach ($value as $key => $address) {
if (strtoupper($address->country_code) === 'NL' &&
preg_match('/^(?:\d{4} ?[A-Z]{2})$/i', $address->zipcode)) {
$values = $state->getState($this->name);
$values[$key]->zipcode = chunk_split($values[$key]->zipcode, 4, ' ');
;
$state->setState($this->name, $values);
}
}
}
})
->onUpdate(function (FormState $state, $value) {
if ($value) {
foreach ($value as $key => $address) {
if (strtoupper($address['country_code']) === 'NL' &&
preg_match('/^(?:\d{4} ?[A-Z]{2})$/i', $address['zipcode'])) {
$values = $state->getState($this->name);
$values[$key]['zipcode'] = chunk_split($values[$key]['zipcode'], 4, ' ');
$state->setState($this->name, $values);
}
}
}
})
- (Optional) There existed outdated packages in skeleton. Make sure make the following changes
- (Optional) The following dependencies have updated (no publishing required):
qore/crm
,qore/address
,qore/attribute
1.1.0 (Feb 28, 2023)
Note: qore/system and qore front-end tags will always be in sync now
Notable changes:
- Fixed issue in QoreResource permissions that caused Telescope to throw an exception in jobs
- Allow fields to specify custom validation rules for the importing module
- Added missing debounce to
Code
field - Added minor improvements to
TemplatePReview
field - Added proper
Too many attempts
response handler inside Skeleton
Upgrade guide
- (Optional) Add the following changes to have a proper 429-Too many attempts response handler
1.0.9 (Feb 15, 2023)
Front-end tag: 1.0.9
Notable changes:
- Converted User & Tenant mailFooter field to
MorphOne
because it would cause issues when switching tenants
Upgrade guide
Note: the following migrations will remove the mail_footer_id
column from the tenants
and users
tables
- Run
php artisan vendor:publish --tag=qore.system.db
- Run
php artisan migrate
&&php artisan tenants:migrate
- Update the
TenantResource
and theUserResource
as done here, and scope fixes here
1.0.8 (Feb 14, 2023)
Front-end tag: 1.0.8
Notable changes:
- Added command
php artisan qore:publish
to make it easier to deal with updated Qore module/extension assets - Added missing Index component for the SimpleEditor field
- Added feature to allow for different address types for the Address field (See documentation)
- Added change that makes dangerous resource actions to always be shown at the bottom of the list
- Changed the Address/Place maps icon to match the Google maps icon
- Changed MailFooter content field from
Wysiwyg
toCode
to allow for more freedom inside its content - Added debounce to
Code
field
Note: the following dependencies have updated (including their publishable front-end): qore/crm
, qore/address
, qore/attribute
1.0.7 (Feb 07, 2023)
Front-end tag: 1.0.7
Notable changes:
- Added support for resource Block buttons (See documentation)
- Fixed issue that caused empty card column to be shown
- Fixed issue that caused hover style to show on not-editable inline fields
- Added visual improvements to
qore/address
fields
Note: the following dependencies have updated (including their publishable front-end): qore/layout
, qore/crm
, qore/address
, qore/notes
, qore/brandfetch
Upgrade guide
- (Optional) to show if modules/plugins are outdated, add the following changes
- (Optional) to show a dropdown icon for user profile menu in top right, add the following changes
1.0.6 (Feb 02, 2023)
Front-end tag: 1.0.6
Notable changes:
- Switched
vue-fragment
tovue-frag
dependency in front-end (see upgrade guide) to prevent unexpected bugs to occur - Added new plugin: Brandfetch (See documentation)
- Added possibility to hide field label on detail page (See documentation)
- Fixed few small issues caused by inline editing
Upgrade guide
- To switch to
vue-frag
and allow for font-awesome icons make these changes and runyarn install —force
- Note: the following dependencies have updated:
qore/layout
,qore/crm
,qore/address
,qore/geocoding
1.0.5 (Jan 31, 2023)
Front-end tag: 1.0.5
Notable changes:
- Added feature that enables inline editing of fields (See documentation)
- Added SimpleEditor (simple wysiwyg) field (See documentation)
- Fixed bug that caused the
asHtml
method to not work in tables
Upgrade guide
- To allow for editing UserResource inline, please make the following change in your project
1.0.4 (Jan 24, 2023)
Front-end tag: 1.0.4
Notable changes:
- Added feature to
chips
to act as a Select field (See documentation) - Added few style changes to resource detail page
- Added possibility to add
dense
class to cardcard-header
class
Upgrade guide
- To allow for dense card headers, please make the following change in your project
1.0.3 (Jan 23, 2023)
Front-end tag: 1.0.3
Notable changes:
- Fix issue in qore.php that caused seeders to fail because it had no
default
wrapper
Upgrade guide
- If you have a published
qore.php
, make sure add the following change (notice thedefault
key):
'attach_button' => [
'default' => [
'outlined' => false,
'stacked' => true,
]
],
1.0.2 (Jan 18, 2023)
Front-end tag: 1.0.2
Notable changes:
- Added improved look for detaching relations inside tables. Relation fields will no longer append an
Actions
column, instead a context menu will appear now. - Added feature to relation fields to define which columns should be shown in the table by default (See documentation)
- Added config to
qore.php
to be able to customize the (relation) attach buttons (block buttons at the top of the page). (See documentation)
Upgrade guide
- If you have a published
qore.php
, make sure to add the following:
'attach_button' => [
'outlined' => false,
'stacked' => true,
]
1.0.1 (Jan 12, 2023)
Front-end tag: 1.0.1
Notable changes:
- Added option to Modules & Plugins to prevent users from disabling it (Module documentation, Plugin documentation)
1.0.0 (Jan 10, 2023)
Front-end tag: 1.0.0
Notable changes:
- Added upgrade to Laravel 9.0 (including all extensions)
- Added change to currencies so that they do not rely on front-end anymore
- Added impersonation support
- Added support for column cards (with optional tabs) Field Layout (See documentation)
- Added better authentication support for IP whitelisting
- Added small button to sidebar (main menu) to collapse it
- Fixed issue in
TemplatePreviewField
that caused click events to not close other menus/dropdowns - Fixed issue that caused tables to only use column/row styles on the first page
- Fixed issue (in all extensions) that caused an error when running
php artisan config:cache
- Fixed issues in VATNumber field that caused it to display errors on valid numbers
Upgrade guide
✨ The full upgrade guide can be found here
0.9.88 (Jan 03, 2023)
Front-end tag: 0.9.57
Notable changes:
- Added support for
min
andmax
attributes for Number field - Added caching to
CurrencySelect
field to prevent multiple queries being executed
0.9.87 (Dec 19, 2022)
Front-end tag: 0.9.56
Notable changes:
- Added change to
Website
field to not check if a website is online by default (See documentation) - Added feature to mailing that allows for (optional) metadata to be passed and saved on mail messages, which then can be used by mail drivers
Upgrade guide
- Publish the latest migrations and run them
- If you are using the
qore/mailgun
plugin, make sure to update that plugin
php artisan vendor:publish --tag=qore.system.db
php artisan tenants:migrate
# If used:
composer update qore/mailgun
0.9.85 (Dec 14, 2022)
Front-end tag: 0.9.56
Notable changes:
- Added overridable method
getEmailAddress
toVariableList
to determine the e-mail address for a model (See documentation) - Added feature to
Paragraph
field that allows other fields to change the message dynamically (See documentation) - Fixed issue in
Select
field that caused other fields not to be able to set options dynamically if the select field was not visible yet - Fixed issue that caused the
disableTabs
prop to be not properly working inside Resource tables - Fixed issue that caused resource table exports (when queued) to not initialize tenant and boot extensions
- Added documentation page for Queues & Jobs (See documentation)
0.9.84 (Dec 08, 2022)
Front-end tag: 0.9.55
Notable changes:
- Added support for Excel importing module (See documentation)
- Added change to
Place
andAddresses
fields to make it more compact - Added change to Resource detail page that replaces the Log table tab to a hamburger menu in the top right (see upgrade guide for more)
- Fixed issue that caused VatNumber field to fail on validation if a mismatching company name was given, now it gives a warning instead
Upgrade guide
- If you have a custom resource detail component for any of your resources, make sure you also add the following changes to add Logs in the button dropdown
- Added minor upgrades to Addresses, Attribute, Invoicing, CRM, Layout and Excel Importing modules. Make sure to upgrade (and override published files) where needed.
0.9.82 (Nov 23, 2022)
Front-end tag: 0.9.53
Notable changes:
- Fixed issue that caused mail template variables to allow for recursion in resource relation fields
- Fixed issue that prevented the same media file to be uploaded twice & errored when deleting a file
- Fixed issue that sometimes caused an error when sending a test e-mail from an email template
- Refactored auto-filling (testing module) of fields so that it now properly respects onUpdate hooks
- Fixed several small issues with Image and Filepicker fields (overflowing text, unresponsiveness and more)
- Fixed issue that caused relational fields to sometimes not be readonly when attaching/creating
- Added QoreMail channel that can be used for Laravel notifications (See documentation)
- Removed auto-focus from Wysiwyg field (an issue which also caused the page to be scrolled to the editor on page load)
- Fixed issue that caused Wysiwyg to not be unloaded/loaded correctly inside tabs
- Added feature to trigger
onUpdate
on other fields (like a chain reaction) when you set the state (Documentation here and here) - Changed
MorphTo
field to have the same visuals as other relational fields by default (it is not displayed as a pill anymore, and in dropdowns it will also show a description) - Added feature to resource actions that allows for a custom redirect on detail pages (See documentation)
- Fixed issue in
MorphTo
field that caused it to reload multiple times when it has aonUpdate
callback - Added feature that allows for
max_files:3
andmin_files:1
rules to be added to FilePicker and Image field when it has multiple (See documentation) - Added change to tables that makes tabs disabled while the table is loading
Upgrade guide
- Remove
Faker
dependency for generating passwords, otherwise it will error in production: (See changes) - The
$shouldRedirect
property on resource Action class will not be used anymore. Instead, use the following code, or supply a custom redirect url (See documentation).
public bool $shouldRedirectToIndex = true;
- (Optional) to make links feel more response inside tables, change your
frontend/src/css/link.scss
:
a {
color: var(--q-color-primary);
text-decoration: none;
}
table.q-table tbody a:hover,
.detail-row a:hover {
text-decoration: underline !important;
}
0.9.76 (Nov 01, 2022)
Front-end tag: 0.9.52
Notable changes:
- Fixed issue that caused mail layouts (blade files) to not be publishable/overridden from the correct directory. See upgrade guide below.
Upgrade guide
- Make sure to move the following directory:
resources/views/mailing/layouts/
toresources/views/vendor/qore/mailing/layouts/
- Remove
/qore
andqore
from your.gitignore
(the one in the root of your project). This was causing theresources/views/vendor/qore
to be ignored.
0.9.75 (Oct 31, 2022)
Front-end tag: 0.9.51
Notable changes:
- Added feature to set width, submit button color and reject button color on form interception dialog (See documentation)
- Fixed issue that caused
attachOnField
to not work properly when referencing aMorphTo
field - Added change to
VariableValue
field to make the category field readonly by default when attaching - Fixed issue that caused
Image
field to prevent detaching an image and show a console error in the front-end when creating a resource
0.9.74 (Oct 27, 2022)
Front-end tag: 0.9.50
Notable changes:
- Added feature to have (status) chips on resource detail page (See documentation)
- Fixed issue inside
QoreResource
that causedgetPermissionNames
to not checked bycanUpdateAny
andcanDeleteAny
by default - Fixed issue in permission checking for Mailing related resources
- Fixed issue that caused
initFormValueUsing
closure on fields to be ignored when the closure returnsnull
inside tables - Fixed issue that caused setting max width on
FilePicker
field to be ignored - Fixed issue that caused MariaDB to throw errors when searching on
Place
andPhone
fields inside tables - Fixed issue that caused
required
validation rule onFilePicker
to trigger on edit forms (when a file already existed) - Fixed issue that caused planned mailing messages to not be queued and placed inside the wrong IndexTab inside the table
- Added description in options (when set) when filtering on a
Select
field inside tables - Fixed issue that caused relationship fields (e.g.
BelongsTo
) to not work properly (option label was incorrect) in combination withdependsOn
- Removed extra padding that was set on checkbox fields
- Fixed issue that caused header attach buttons on Resource detail pages to not work on mobile
- Fixed issue that caused downloading files from inside tables to redirect the user to the detail page
- Fixed issue that caused
withRelationalMeta
to not be triggered sometimes on relationship fields - The
CompanyName
field will now also fill address province and municipality (if address field is supplied) - Added functionality to retrieve related model within relation fields (See documentation)
Upgrade guide
- If you are using
qore/notes
module, you should now add a Policy class (See updated documentation)
These changes are optional:
- When a session expires, the user will be logged out, but it does not give feedback to the user. This change will show a notification.
- Mailing related permissions were hidden inside the permissions table inside skeleton. See changes here to show them.
- There is now the possibility to copy 2FA secret. If you need this functionality, see: changes here.
0.9.68 (Sept 15, 2022)
Front-end tag: 0.9.48
Notable changes:
- Fixed issue in Checkbox field that caused problems with margin/padding (causing a scrollbar inside tabs)
- Added
asHtml
support forParagraph
field - Added request queue (to every form that has fields) in order to prevent unexpected race conditions which can happen on unstable or slow servers
- Fixed issue that causes custom arguments not to be merged properly when sending e-mails
- Added improved permission check for showing resources in the main menu (it will now check for:
$resource->getPermissionNames()['viewAny']
instead of letting front-end handle it) - Fixed display issue when filtering in Date or DateTime columns
- Add field
DetailButton
which shows an information dialog in index tables (See documentation)
Upgrade guide
There were a few minor issues with the user password reset functionality. Make sure you make the following changes:
- Change 1: PasswordController.php (add proper token error response)
- Change 2: CheckedPassword/Field.vue (add bigger debounce to reduce amount of requests done)
0.9.66 (Sept 06, 2022)
Front-end tag: 0.9.46
Notable changes:
- Added support for having a custom
createPageTitle
andeditPageTitle
on resources - Added missing support for
FieldLayout
on Plugin settings page - Fixed issue where a
setting(...)
would return an array instead ofnull
(when the value wasnull
) - Fixed issue that caused variables to not be merged correctly when sending an e-mail
- Added optional argument
$fromTenant = false
to formatting helper functions in order to always use the tenant preference - Cleaned up form & detail layouts for resources to have more consistency in spacing and look
- Added debounce to
Wysiwyg
field to prevent a lot of events firing - Added feature to have toggling cards (See docs)
Upgrade guide
- In order to keep cards toggled when the user reloads a page, make sure to go to
store/index.js
and add'globals.toggledCards'
to thecreatePersistedState
0.9.64 (Aug 30, 2022)
Front-end tag: 0.9.44
Notable changes:
- Added option to disable specific resource pages (See documentation)
- Added option to set a custom redirect url when creating & editing resources (See documentation)
- Relation fields will display normal
<a>
links by default now instead of pills (See documentation) and will also be used on many-relation fields - Fixed alignment issue in excel exports
- Added field
RelationTableField
to support having a custom table inside a field without needing another Resource class (See documentation) - Added option to create a relation inside a new page instead of a modal dialog (See documentation)
- Fixed issue that caused the left menu to overlap the buttons on the bottom if there were too many menu items
- Fixed issue that caused
Addresses
field to not be validated properly - Added minor improvement to the design of
Addresses
field - Added minor change to the default resource
name
method to check forResource
suffix and ignore it - Added change to
Number
andPrice
fields to sendNULL
when input is left empty - Modified
Select
field method call in order to set options dynamically (See documentation). See also FAQ for more information. - Added option to always show the submit button for
StepsLayout
(See documentation)
Upgrade guide
- If you set
Select
options dynamically via another field somewhere, make sure you change$form->setFieldMeta(...)
to$form->setFieldData(...)
- The module
qore/addresses
should be updated via composer and published (php artisan vendor:publish --tag=address --force
) - The vuex store has changed slightly. Make sure you update your following Vue files to look like store, main layout and main header
- Fixed an issue that caused the download button to be hidden (on the downloads page). Update your following file to look like this
- In
RoleAndPermissionController
this->withoutAttaching()
should be called on thecopy_from
BelongsTo Field to prevent opening an empty form. See: change - If you have a published
qore.php
config file, you need to add the following (in order to show relational fields as links):
// ...
'preferences' => [
// ...
'display_as_href' => [
'default' => true
]
]
- (Optional) it is good practise to rename your resource classes to
{$ResourceName}Resource
since this will ensure it does not conflict with the related model name and will be more consistent with other laravel class names.
0.9.63 (Aug 10, 2022)
Front-end tag: 0.9.43
Notable changes:
- Added option to add an optional note to logs (See documentation)
- Fixed issue that caused the export button to be hidden inside tables
- Fixed issue that caused
hideOnShow
closure not working when chaining->asTab()
or->asCard()
on the relational fields - Refactored
<a>
links to not do a full page refresh for the relational fields - Fixed issue in
Addresses
that ignored the default address type and would always fall back tovisit
- Added method to customise default value of a field when editing a resource (See documentation)
Upgrade guide
- The module
qore/addresses
should be updated via composer and published (php artisan vendor:publish --tag=address --force
)
0.9.61 (Aug 03, 2022)
Front-end tag: 0.9.42
Notable changes:
- Fixed bug that caused Date & Datetime filter not working in some cases
- Added option to make
BelongsTo
to behave like a normal<a>
and optionally open the link in a new tab (See documentation) - Added feature to download files via resource actions (See documentation)
- Improved the
Choice
field and added option to make it dense (See documentation) - Added better price formatting to
Price
field and added currency symbols to helper function (See documentation) - Added option to select another address in
Place
field (See documentation) - Improved
VatNumber
field so it doesn't do multiple requests - Added layout option to have tabs inside cards (See documentation)
- Added options to
Actions
to have custom response message, width and more (See documentation) - Add functionality to duplicate a resource (See documentation)
- Added option to have a field layout for module/plugin settings (See documentation)
- Added
ActionButton
field (See documentation) - Added
CurrencySelect
field (See documentation) - Added
tenant_variable_value
helper function (See documentation) - Added method
customFill
to resources (See documentation) - Added option to have custom show response parameters for resources (See documentation)
- Added
modelDescription
to resources (See documentation) - Added methods
isCreating
andisUpdating
to form interceptor (See documentation) - Added option to generate new serial number without saving (See documentation)
- Fixed bug that caused
Checkbox
not to validate properly - Added caching to permission scopes
- Added separate field methods that are called before rendering forms/details (replaced
prepare
) (See documentation) - Added alternative way to show attach buttons (as block buttons via
->withAttachButton()
) for relation fields (See documentation) - Added few styling improvements, missing loaders, performance improvements etc.
Upgrade guide
- On the field
VatNumber
The methodcompanyField
should be refactored tosetCompanyField
(See documentation) - The modules
qore/crm
andqore/addresses
should be updated via composer and (forcefully) published (e.g.:php artisan vendor:publish --tag=crm --force
). TheOrganization
andContact
resources have been renamed toOrganizationResource
andContactResource
. You should add thename
method on any resource that extends these recourses to supply a correct name. - The
prepare
method on fields is marked deprecated (but will still work for a while) (See documentation for replacements) - The
default
method which you can call on each field now expects either a value, or a Closure where the first argument is theManagesForm
(instead of?Model
) (See documentation)
0.9.56 (Jun 08, 2022)
Front-end tag: 0.9.39
Notable changes:
- Added new field: Time (view documentation)
- Fixed bug that caused Date and DateTime fields not to clear properly
- Dropdown carets will now be hidden when the field is hidden or disabled
- Added better validation for email fields (domain/dns will also be checked now)
- Filterable & Sortable are enabled by default now on fields instead of having to chain these methods
- Added validation for
Website
field to check if the site exists uuid_create
function calls are replaced byStr::uuid()
- Added improved display for validation errors in
StepsLayout
- Added support for
StepsLayout
in resource actions - Added support for hiding or disabling the submit button inside forms (view available methods)
- Added support for more customization in resource actions ( view documentation)
- Updated
Number
field to show no decimals by default (you can use->allowDecimals
to use them) - Added support for chaining
->autoFillUsing
on fields (you will get aFaker
instance in the closure) - Updated autofill for
Website
andAddress
fields so it will not fail on validation - Added
mailto
andtel
toEmailAddresses
andPhoneNumbers
fields inside tables - Fixed a few issues that was caused by empty fields in the addresses module (see upgrade guide below)
Upgrade guide
The qore/address
should be updated:
composer update qore/address && php artisan vendor:publish --tag=address --force
0.9.51 (May 25, 2022)
Front-end tag: 0.9.34
Notable changes:
- Fixed issue in address module that sometimes prevented data to be saved
- Run
composer update qore/address
to resolve this - Added sticky columns functionality for resource index tables
- Documentation can be found here
- Added a
width
property to the resourceAction
class - Documentation can be found here
- Added delete button to the resource inline edit form on the index page
- Added argument to the date presenter helper functions to optionally disable applying timezone
- For example if you only want to format a date:
date_presenter($myDate, false)
0.9.49 (May 11, 2022)
Front-end tag: 0.9.32
Notable changes:
- Fixed issue with row onClick event for small screens
- Added tooltip to Place & Checkbox fields in front-end
- Added label to Place field in front-end
- Added more functionalities (like delete and detail button) to resource index tables
- Documentation can be found here
0.9.48 (May 11, 2022)
Front-end tag: 0.9.29
Notable changes:
- The asterisk (*) that will be shown if a field is required has been refactored
- If fields have rules like
required_with
or similar rules, the asterisks will be added dynamically - Fields will no longer have a
is_required
property, insteadformData.meta
has this information now
Upgrade guide
Every field (in the front-end) required an additional property required
now in the field-label
component.
Make sure you update your custom fields, and the following fields:
frontend/src/components/fields/CheckedPassword/Field.vue:
<field-label
:field="field"
:required="required"
/>
frontend/src/components/permission/ManageRole.vue:
<field-label
:required="true"
:field="{ label: $t('Name') }"
/>
The qore/address
should be updated:
composer update qore/address && php artisan vendor:publish --tag=address --force
0.9.47 (May 10, 2022)
Front-end tag: 0.9.28
Notable changes:
- Code base for checking permissions for resources has been refactored and will use Policies as much as possible
- The
getPermissions
method has been removed for every resource - New documentation can be found here
- There is now (better) support for the rules: required_if, required_unless, required_with and required_without
- Fields like
Place
andAddress
fields were ignoring these rules - Properly showing a red asterisk (*) on conditional requirements is still in development
Upgrade guide
Because the getPermissions
method has been removed, you should update your resources accordingly:
See changes here
The qore/address
needs to be updated too:
composer update qore/address && php artisan vendor:publish --tag=address --force
0.9.46 (May 06, 2022)
Notable changes:
- There is now support for editing resources within tables (from the index page)
- See documentation here
- Add minor bugfix for
->displayUsing
inside a column for falsy values - The
hideOnShow
for theResouceLogsTab
will now be checked alongsideview
permission - Before only the
view
permission was checked
0.9.43 (May 04, 2022)
Notable changes:
- There is now support for form submit interceptions inside resource forms
- See documentation here
- Fixed minor issue with auto filling Place field
- Removed hideOnIndex from
HasMany
field - Added Qore action to post process place & address fields to append lat & lng
- Make sure to update
qore/address
andqore/geocoding
- Added correct urls to google map and embedded map in address fields (
\n
inside address used to break them) - Added dropdown for US states inside address fields
0.9.39 (Apr 25, 2022)
Notable changes:
- The menu has been refactored to
Menu::make()
, and requires manual updates (see upgrade guide below) - The menu doesn't force group items to be below normal menu items anymore, and now supports menu sections
- The Place and Addresses fields (from
qore/addresses
) now add lat & lng when filling a non-Dutch address
Upgrade guide
Your GlobalsController
should now return an instance of Qore\Menu\Menu
. Make sure you update the following:
- Update your
MainLayout.vue
to look like this - Update your
GlobalsController
to look something like to look like this
The documentation can be found here: here
You can delete your MakesMenu
trait after.
Make sure to upgrade the qore/addresses
module if you use it.
0.9.37 (Apr 21, 2022)
Notable changes:
- Tabs and cards on detail pages will now be invisible if the user has no
view any
permissions for the related resource - Resource actions can only be executed now when the user has
update
permissions now on the related resource - Added the
formatLogDetails
method on theQoreResource
class to enable customizing log details if needed - Updated permission check in
qore/crm
module to hide thecontact
column for the notes card - Added bugfix that prevented a user to have no roles
- Added comma-seperated display for relation fields in the front-end (if related resource is inactive)
Upgrade guide
Make sure to upgrade the qore/crm
module if you use it.
To fix the roles issue for users, add the following to the TenantRoles
class (in the constructor):
$this->fillMissing(function (Model $model) {
$sync = $model->roles()->sync([]);
$this->logSync($model, $sync);
});
0.9.35 (Apr 20, 2022)
Notable changes:
- There is now support for adding styles and classes conditionally to table rows and columns
- The
->setColumnStyle
method on field always expects aClosure
now - See documentation here
0.9.34 (Apr 19, 2022)
Notable changes:
- It is now possible to deselect relational table columns by default
- See documentation here
0.9.33 (Apr 19, 2022)
Notable changes:
- Fixed bug that caused wrong step to be active after form validation (in StepsLayout)
- Added lat & lng to Place field & addresses module, see upgrade guide below
- Fixed few issues with user form, see upgrade guide below
Upgrade guide
Latitude and longitude is now saved for addresses.
Make sure you upgrade qore/addresses
and run:
php artisan vendor:publish --tag="address"
php artisan tenants:migrate
User password field validation checkmarks were not updating when generating a password.
You can add the following change to CheckedPassword
:
->addAction('generateRandomPassword', function (ManagesForm $form) {
$generatedPassword = $this->generatePassword();
$form->setState('checked_password', $generatedPassword);
$form->setFieldMeta(
'checked_password',
'password_validation',
(new Password())->getInformation($generatedPassword)
);
})
0.9.31 (Apr 19, 2022)
Notable changes:
- With relational fields you can now have more control over create forms (hide fields etc.). See info here
- Soft deleted records will still be visible now (if policies / permission checks / IndexTab allow it)
- For the Resource index tables the query used in
IndexTab
will now be executed instead of only be used for numeric value above tab. - Add small hotfix for Month field
0.9.29 (Apr 13, 2022)
Notable changes:
- There is now support for marking fields visually as
disabled
andreadonly
- See usage here and conditional/meta usage here
- Empty field values on detail pages will now be displayed as
—
- Styling for
belongsToMany
field when other resource is not active is improved (used to be large pill) - Relation attach modal now properly works with the
StepsLayout
Upgrade guide
- Make sure you update
qore-frontend
. - If you are using
qore/addresses
orqore/crm
, make sure you upgradeqore/addresses
and force publish the vue files. - This will allow for
readonly
anddisable
to work with the fields in this module.
0.9.27 (Apr 12, 2022)
Notable changes:
- Month (picker) field added (see documentation for more information)
- Week numbers added to datepickers
- Props added to BaseTable (see documentation for more information)
0.9.26 (Mar 30, 2022)
Notable changes:
- Documentation has been updated quite a lot
0.9.24 (Mar 29, 2022)
Notable changes:
- You can now add IP whitelisting, see upgrade guide below
- Fixes several bugs & small improvements
Upgrade guide
If you would like to use IP white listing:
First, update your AuthenticationSettingsController
to look something like this:
class AuthenticationSettingsController extends Controller
{
use HasFields;
use HandleAuthenticationSettings;
/**
* @return JsonResponse
*/
public function form(): JsonResponse
{
$this->checkPermission();
return $this->fieldsResponse($this->fields());
}
/**
* @return void
*/
private function checkPermission()
{
abort_unless(auth()->user()->hasPermissionScope(SettingsManagement::class), 403);
}
}
Next, add the following back-end translations:
"You are not allowed to access this site": "U bent niet gemachtigd om de applicatie te gebruiken",
"Field contains duplicate values": "Veld bevat duplicate waardes",
"At least one IP address is required": "Tenminste 1 IP adres is verplicht",
":value is not valid": ":value is niet geldig",
"Block all IP addresses except": "Blokkeer alle IP-adressen behalve",
Finally, make sure you handle the ipblock response in axios.js
.
Note: The handleUnknownResponse
function had a typo in its name, you should fix it too
// ..
const handledCodes = [401, 403, 419, 422, 428, 599]
// ..
if (error.response.status === 403) {
handle403Response(error)
}
// ..
// Handle 403 Response
function handle403Response (error) {
if ('response' in error && 'data' in error.response) {
if ('code' in error.response.data) {
if (error.response.data.code === 'ipblock') {
if (router.currentRoute.name !== 'login') {
router.push({ name: 'logout' })
Notify.create({
message: error.response.data.message,
type: 'negative',
position: 'top'
})
}
return
}
}
}
handleUnkownResponse(error)
}
Now you can append IP adresses in the application authentication settings
0.9.17 (Mar 24, 2022)
Notable changes:
- There is now support for auto-filling forms when including the
qore/testing
module
Upgrade guide
If you would like to use the qore/testing
module see https://qore.qlic.nl/modules/testing.
If you're using the qore/addresses
module, make sure you upgrade this module too.
0.9.16 (Mar 22, 2022)
Notable changes:
- The
TenantVariable
will no longer do permission checks in order to be visible - Roles can be used to make 2FA required for users within the role, see upgrade guide below
Upgrade guide
Make sure you apply the upgrade guide from 0.9.14
first, this will allow the name to be edited for roles.
After, apply the following changes manually:
https://gitlab.qlic.nl/qore/skeleton-v2/-/commit/9ac2c7458e8e820aff52f3f4ea61d2af7f69e24a
0.9.14 (Mar 21, 2022)
Notable changes:
- A few bugs and issues have been resolved, make sure to upgrade qore-frontend to 0.9.2
- Role names can be edited now, see upgrade guide on how to do this
Upgrade guide
Because roles & permissions is a part of skeleton you will need to apply these changes manually:
https://gitlab.qlic.nl/qore/skeleton-v2/-/commit/9d35396f18f8f93979a5dd1403cedb2c6ef1dd1d
0.9.10 (Mar 14, 2022)
Notable changes:
- Table columns can now be saved as "default for everyone"
- Table filters now save column properties as well
- Layout builder now includes button support
Upgrade guide
- To save table columns as default, you will need a permission scope. Add the following to your
PermissionSeeder
:
$creator->create('set default table settings',
'tables',
false,
false,
false,
false,
false,
SetDefaultTableSettings::class
);
- Clear your
user_table_filters
anduser_table_columns
tables - Make sure to publish and override the
layout
module vendor files
0.9.8 (Mar 03, 2022)
Notable changes:
- Table columns can now be resized and renamed
Upgrade guide
- The data (json) structure for user table columns has changed. You should clear the rows in your
user_table_columns
table. - Text fields will now be truncated in tables (ellipsis). Update your
AvatarName
field:
/**
* @var bool
*/
public bool $rendersTextOnIndex = false;
Features
- Add button to clear table settings
Bugfixes
- Fix date & datetime filter inputs not working correctly
0.9.5 (Feb 23, 2022)
Notable changes:
- More skeleton files have been transferred to qore-frontend, see upgrade guide below
Upgrade guide
- The boot file
app.js
should no longer use local dialogs and more. It should look something like this:
import Vue from 'vue'
import Helpers from 'qore/mixins/Helpers'
import Avatar from 'components/user/Avatar'
import AvatarIcon from 'components/user/AvatarIcon'
import {api} from 'boot/axios'
import Fragment from 'vue-fragment'
import DownloadMenu from 'components/layout/DownloadMenu'
import PortalVue from 'portal-vue'
const app = {
api_url: process.env.API_URL,
debug: !process.env.PROD,
timeout: process.env.TIMEOUT
}
Vue.prototype.$app = app
Vue.prototype.$api = api
Vue.use(Fragment.Plugin)
Vue.use(PortalVue)
Vue.mixin(Helpers)
// Global registration
Vue.component('Avatar', Avatar)
Vue.component('AvatarIcon', AvatarIcon)
Vue.component('DownloadMenu', DownloadMenu)
// Register Qore
require('../qore')
export default app
- Session(management) related vue components now exists in qore-frontend. Make sure you update all import instances:
// Old:
import SessionManagement from 'src/components/tabs/session_management/SessionManagement.vue'
// New:
import SessionManagement from 'src/qore/components/elements/tabs/log/session/SessionManagement.vue'
- To prevent awkward refreshes on the login page after a session has expired (
axios.js
):
// Handle Not Authenticated "401, 419" error
function handleNotAuthenticatedResponse() {
if (router.currentRoute.name === 'login') {
return
}
router.push({name: 'logout'})
}
Features
- Add header buttons to attach relational (
->withAttachButtonInHeader()
) fields more easily - Mark all required fields pointer red (labels)
- Addresses (module), place, phone number and email address fields updated and improved
- Advanced export options when exporting resources
Bugfixes
- Fix for spamming login route when session expired
- Fix for company name field not properly emitting update
- Lots of stability bugfixes
0.8.10 (Feb 14, 2022)
Notable changes:
- Layout builder safari hotfix
- Main layout now in Qore source
Upgrade guide
- The
MainLayout.js
mixin now exists in Qore-frontend. You should remove your local one, and include the new one:
// Old:
import MainLayout from 'mixins/layout/MainLayout'
// New:
import MainLayout from 'qore/mixins/globals/MainLayout'
- The
ReloadsGlobals
mixin also exists in Qore-frontend now. Replace all following occurences:
// Old:
import ReloadsGlobals from 'mixins/globals/ReloadsGlobals'
// New:
import ReloadsGlobals from 'qore/mixins/globals/ReloadsGlobals'
- There are some issues with scroll behaviour in tables. This seems to have fixed it:
// router/index.js
scrollBehavior(to, from, savedPosition)
{
return new Promise((resolve, reject) => {
setTimeout(() => {
if (savedPosition) {
resolve(savedPosition)
} else {
// resolve({ x: 0, y: 0 })
}
}, 50)
})
}
- If you're using Layout builder, a fix is now made to make it work on safari. See upgrade guide here: https://qore.qlic.nl/modules/layout
Features
- Add improvements to mailing (confidential tags and more)
- Make sure countries are active when searching in google places
Bugfixes
- Fix for safari (caused by layout builder)
0.8.6 (Feb 08, 2022)
Notable changes:
- Some skeleton files have been transfered to the qore-frontend source.
- Mailing is now a default (optional) feature of Qore.
- Global search is now a default (optional) feature of Qore.
Upgrade guide
- Make sure you run
composer update
andyarn
. - Make sure you run
php artisan vendor:publish --tag=qore
and migrate - Update your
quasar.config.js
boot array:
boot: [
'app',
'i18n',
'axios',
'fields',
'sentry',
'../qore/boot/extensions'
],
- Include
qore
routes in yourrouter/routes.js
:
import qoreRoutes from 'qore/routes'
Then within the require-confirmed
middleware:
...
middleware('require-confirmed', [
{
path: '/',
component: () => import('layouts/MainLayout.vue'),
children: [
// ..
]
},
...qoreRoutes
])
- If you already have mailing functionality, make sure to add the following to your local
User
model:
public function sendPasswordResetNotification($token)
{
$this->notify(new ResetPasswordInstructions($token));
}
- In
store/index.js
make sure you include the qore modules, and delete your local modules:
import auth from 'qore/store/modules/auth'
import globals from 'qore/store//modules/globals'
import table from 'qore/store/modules/table'
In the plugins section, make sure you include:
plugins: [createPersistedState({
paths: [
'auth.status',
'auth.twoFactorAuthStatus',
'auth.user',
'globals.menu',
'globals.resources',
'globals.tenants',
'globals.modules',
'globals.completedProcesses',
'globals.downloading',
'table.tableFilters',
'table.tableSearches',
'table.tableTabs'
]
})]
- If you like to include global search, find the installation guide here: https://qore.qlic.nl/docs/global-search
- If you like to include mailing, find the installation guide here: https://qore.qlic.nl/docs/mailing
Features
- Add field data alongside component properties and meta
- Allow onUpdate on fields to be called when initialized
- Add mailing as a default part of Qore
- Add global search as a default part of Qore
Bugfixes
- Fix issue for datepicker blur event
- Fix issue for datepicker inside modals not displaying correctly
- Fix large quantity of small bugs
0.7.4 (Nov 10, 2021)
Features
- Add lots of small style improvements
- Add skeleton as publishable group
- Add arguments to the fieldLayout method to be more dynamic
- Add RelatedToMany field
- Add caching for performance (request caching)
Bugfixes
- Fix issue where sub-header would be hidden in modals
- Fix several scroll issues
- Fix a lot of stability issues
0.5.7 (Oct 04, 2021)
Features
- Add
qore/system
as composer package - Add modules & plugins as composer packages
- Add functionality to create related resources in forms
- Extend modules & plugin pages to be activated per tenant
- Add functionality to attach and detach relations
- Add search for place field and extend US place layout
- Add page component with a fixed scrolling header
- Add better functionality to log and display wysiwyg logs
- Add sentry integration
- Add Qore CLI tool to create, update and serve Qore apps
Bugfixes
- Fix issue where images were logged and displayed multiple times
- Fix issue where relational tables were not exporting correctly