Skip to content

Commit ea298ef

Browse files
authored
Merge pull request #405 from laravel-enso/release/v4.8.2
upgrades enso to 4.8.2
2 parents 419b538 + d2fb519 commit ea298ef

25 files changed

+2907
-2090
lines changed

CHANGELOG.md

Lines changed: 385 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,390 @@
11
# Laravel Enso's Changelog
22

3+
## 4.8.2
4+
This aims to be the last minor release before upgrading to Vue 3 and includes many improvements, bug fixes and also several new features.
5+
6+
### Front-end
7+
8+
#### addresses
9+
- implemented google package
10+
11+
#### algolia (new)
12+
- implemented settings package for Algolia
13+
14+
#### bulma
15+
- added toggle filters
16+
- added users as dependency
17+
18+
#### charts
19+
- updated `Chart.vue`
20+
- updated dependencies
21+
- fixed chart instance usage
22+
- brings back default options
23+
- added `shortNumber` filter
24+
25+
#### data-import
26+
- improved UX for disabled exports
27+
28+
#### emails
29+
- updated syntax and eslint config
30+
31+
#### enums
32+
- updated dependencies and `.eslintrc.js`
33+
34+
#### files
35+
- small refactor in index
36+
- removed redundant chart option
37+
38+
#### filters
39+
- added toggle filters
40+
- added dirty to filter-state
41+
- improved dirty watcher in filter state
42+
43+
#### forms
44+
- added the ability to reload based on a be flag
45+
- exposed `undo()`
46+
47+
#### google
48+
- fixed missing icon import
49+
50+
#### meili-search (new)
51+
- implemented settings package for MeiliSearch
52+
53+
#### mixins
54+
- fixed edge case with re-rendering login form after logging in
55+
56+
#### mobile-app
57+
- added `.eslintrc.js`
58+
- updated `.gitignore` and dependencies
59+
60+
#### range-slider (new)
61+
- Vue Range Slider based on `noUiSlider`
62+
63+
#### route-mapper
64+
- updated dependencies
65+
- updated `.eslintrc.js`
66+
- refactored the mapper class; fixed bug related to optional params; improved logic/flow
67+
68+
#### scroll-to-top
69+
- fixed bottom margin
70+
71+
#### search-mode
72+
- renamed `algolia` to `searchProvider`
73+
74+
#### select
75+
- fixed multiple select value mutations when using state options
76+
77+
#### sentry
78+
- updated dependencies and `.eslintrc.js`
79+
80+
#### strings
81+
- fixed slug generation issue to handle cases when `regEx` matching had no actual matches
82+
83+
#### tables
84+
- improved key in table header
85+
- reflected filtered state
86+
- added missing `mr-1` in controls
87+
- added `danger` on filter flag
88+
- added support for dropdown actions
89+
- added debounce for filters
90+
91+
#### themes
92+
- added `has-margin-auto`
93+
- removed `bulma-checkradio`
94+
- updated `bulma-extensions` dependency
95+
- imported minimized css from `bulma-extensions`
96+
97+
#### typesense (new)
98+
- typesense integration for laravel-enso
99+
100+
#### ui
101+
- added `integrations.js`
102+
- improved app update notification
103+
- updated `AppUpdate.vue`
104+
- fixed app update `v-if`
105+
- made app update dropdown always visible
106+
- improved internal `AppUpdate` flow; fixed issue with showing the modal
107+
- updated bulma-extensions dependency
108+
109+
#### users
110+
- fixed user profile level margin
111+
112+
### back-end
113+
114+
#### activity-log
115+
- updated for php 8
116+
- updated `.styleci.yml`
117+
118+
#### addresses
119+
- deprecated google config key, uses settings from google package
120+
- improved validation for case when postcode exists in the DB, but for a different country
121+
- improved postcode validation
122+
- added GBR addresses
123+
- added `Geocoding` service; updated `Coordinates` to use the new service
124+
125+
#### algolia (new)
126+
- implemented settings package for Algolia
127+
128+
#### api
129+
- implemented custom headers
130+
- added a throttle helper
131+
- added `toJson` method to the api resource
132+
- improved adding headers to the request
133+
- added request duration logging
134+
- updated api logger
135+
- decreased duration column size
136+
- removed nullable from duration
137+
- added public `apiEnabled: bool` on Action
138+
- improved exception message
139+
- updated method visibility
140+
141+
#### avatars
142+
- made the avatars generators configurable
143+
144+
#### categories
145+
- added options endpoint
146+
- removed unneeded attribute
147+
- added categories import
148+
- added sync queue for the categories import; if needed, template can be locally customized
149+
150+
#### charts
151+
- refactored to `chartjs 3`
152+
- fixes default tooltip config
153+
- implemented backend `shortNumbers`
154+
- fixed horizontal chart
155+
156+
#### cnp-validator
157+
- updated `CnpValidator.php`
158+
- required php 8
159+
- updated `strlen` usage to `mb_strlen`
160+
161+
#### companies
162+
- fixed company fiscal code in factory
163+
- added queue sync for the companies import; if needed, template can be locally customized
164+
- updated import, added new attributes
165+
- added fiscal code to rememberable keys
166+
167+
#### control-panel-api
168+
- fixed stat class
169+
170+
#### core
171+
- added structure for integrations
172+
- improved app update event
173+
- added a `Login` trait to work with the latest changes in laravel-ui
174+
- fixed login test for the new guard config attribute in `sanctum.php`
175+
176+
#### countries
177+
- updated eea for United Kingdom
178+
179+
#### data-import
180+
- fixed the Template's notifies method
181+
182+
#### documentation
183+
- added route mapper docs stub & mention about transpiling
184+
185+
#### filters
186+
- renamed `algolia` to `searchProvider`; improves searchProvider results
187+
188+
#### google (new)
189+
- implemented settings package for Google
190+
191+
#### helpers
192+
- updated searchable trait
193+
- added production check
194+
- configured styleci for php8
195+
- updated Searchable trait due to new Algolia package
196+
- updated price computor constructor and vatPercent use
197+
- fixed searchable for extended / binded models
198+
- added support for meilisearch in searchable
199+
- removed deprecated searchable trait
200+
- fixed `Obj casts:` set method now performs json encode
201+
- fixed `Cash` label
202+
- updated `codesize/phpmd` config rules for constant naming
203+
- removed `Sleep`
204+
- added new min max utility methods to Decimals
205+
206+
#### localisation
207+
- updated texts, added new keys & translations
208+
- added missing cleanup for the language update test
209+
- added missing php dependency
210+
- made seeder reusable in local projects
211+
212+
#### logs
213+
- improved logs collection to handle archives
214+
- fixed tests
215+
216+
#### meili-search (new)
217+
- implemented settings package for MeiliSearch
218+
219+
#### phpunit-pretty-print
220+
- updated strlen usage to `Str::length`
221+
222+
#### select
223+
- opened up flexibility on Options Service instantiation from `OptionsBuilder`
224+
225+
#### tables
226+
- added support for dropdown actions
227+
- resolved resources from service container
228+
- updated template
229+
230+
#### tasks
231+
- fixed export error
232+
233+
#### typesense (new)
234+
- new typesense integration for Laravel Enso
235+
236+
#### unit-conversion (new)
237+
- new unit converter utility classes for Laravel Enso.
238+
239+
#### upgrade
240+
- added `getLength` in `Column`
241+
- added `exists()` helper for table
242+
- updated upgrade status to address change in `Symphony` console table
243+
- ignored upgrades from namespaces that are not within autoload
244+
245+
### Private packages
246+
247+
#### webshop-commercial
248+
- added webshop searchable array
249+
- maked default ranking 0 in search provider data
250+
- replaced the product dynamic method `WebshopSearchableArray` with a simple service
251+
- updated flow for `webshopDiscount`; now we no longer fall through to general supplier discount but use webshop company if no specific cliend discount exits
252+
- used float casts for searchable attributes
253+
- updated webshop order implementation
254+
- fixed class path and deprecated `Online`
255+
256+
#### webshop
257+
- moved search provider product index to webshop from algolia
258+
- hides price and discount when no stock available
259+
- removed `webshop-shadow` role
260+
- added `isActive` to the `BaseFilters@facets` array (excluded facets)
261+
- moved searchable attributes to webshop from webshop commercial
262+
- updated contract & account order actions
263+
- updated `BaseFilters.php`
264+
- added availability filters
265+
- updated discount observer
266+
- hides empty filters
267+
- added price filter
268+
- added `priceFiltered()` getter
269+
- added services for search providers
270+
- removed `PaymentMethods` enum;
271+
- added payment config
272+
- added default sorting to newest
273+
- builded the new price filter
274+
- implemented most popular sort
275+
- various fixes, improvements and refactors
276+
277+
#### emag
278+
- refactored add invoice -> upload invoice
279+
- refactored product index use
280+
- removed `ValidateStoreRequest` request, `MissingOffer` notification, deprecated `parents()` setter call, measurment units implementation, checker scopes & methods, recheck & cleanup flows and `notSyncedYet` scenarios branch
281+
- offer download throws exception on error; categories sync service deletes any old emag categories
282+
- updated order flow: now stopping before generating awb if not fully reserved
283+
- emag categories now have parent id
284+
- implemented awb schedule
285+
- added vat id to the offer update resource and conversionable unit Enums
286+
- updated `CreateCategoryEmagCategoryPivotTable` and `CreateEmagOffersTable` migration
287+
- now an offer is made inactive when we do not have stock
288+
- removed deprecated `NullableCategoryId` upgrade
289+
- added `emagDiscount()` dynamic for services, new headers to all emag requests and check for sync / when not empty
290+
- log now also sends email notification; added checker jobs failure handling
291+
- made the buy button rank array key `optional`
292+
- set number of offers & best offer sale price as nullable
293+
- renamed `last_checked_at` to `checked_at`
294+
- added check for the presence of the emag settings table for further scheduling
295+
- refactors `fetchPicture(s)` to `downloadPictures`
296+
- added new emag status
297+
- added upgrade to drop offers `discount_percent`
298+
- removed `auto_pricing` from the `Offer` table resource and urls from the settings form and migration
299+
- removed download after each operation; updated offer fill, using DI resource, new genius column
300+
- added upgrade for removal of old settings url columns
301+
- added commands for activation/deactivation of the emag api
302+
- various fixes and improvements
303+
304+
#### commercial
305+
- enabled cancel
306+
- removed sort by `created_by/updated_by`
307+
- removed By columns from being searchable
308+
- added limit for product labels
309+
- updated products template
310+
- refactored `grn` to `goodsReceivedNote`
311+
- added `bulkStockRemoval`
312+
- added limit and ordering for bulk stock removal;
313+
- updated sale cancellation policy to exclude invoiced sales
314+
- added locks
315+
- updated limit to cover all cases
316+
- allowed sale fulfill, on default channel & internal warehouses when missing address
317+
- renamed `externallyFullfilled`
318+
- added quick fix for sales payment form
319+
- added awb schedule validation and internal code to typeahead controller
320+
- added serializeDate to models and cast to settings
321+
- reverted schema check
322+
- made settings `warehouse_id` nullable to avoid seed / provider / schedule issues
323+
- updated awb generation schedule to 06:00
324+
- various fixes, refactors and improvements
325+
326+
#### financials
327+
- date is now required for client payments
328+
- fixed payment due date logic; updated tests
329+
- fixed case when no serial is given
330+
- refactored code
331+
- due date fixes
332+
- added date serialization customization for all relevant models
333+
- updated client invoice form
334+
335+
336+
#### inventory
337+
- removed manual upgrade from the `INsLot` upgrade
338+
- fixed reservations count for `Reservations.vue` update
339+
- added `inventoryIn` locks as required to avoid over-reserving
340+
- extracted to services
341+
- added `is_bundle` check
342+
- removed App make from the Inventory interface
343+
- fixed update available emitting
344+
345+
#### discounts
346+
- refactor for import
347+
- added reset
348+
- improved client product discount importer
349+
- fixed missing param
350+
351+
#### frisbo
352+
- converted eav grams to kg when publishing product
353+
- updated resource to use the new unit conversion package; added validation
354+
- updated product bundle resource to correctly use bundled quantity
355+
356+
#### eav
357+
- added a public `searchableKey` method on the attribute
358+
- improved `eav` filterable searchable key
359+
- small `Attribute` factory fix
360+
361+
#### product-eav
362+
- replaced the `EavSearchableArray` dynamic product method with a simple service class
363+
- updated searchable array
364+
- improved facets
365+
- added search provider integration
366+
- fixed import
367+
368+
### Upgrade steps
369+
370+
* update the Enso version to `4.8.2` in `config/enso/config.php`
371+
* run `composer update` in the project's root
372+
* remove the `bulma-extensions` patch
373+
* run `yarn`, `yarn upgrade && yarn` in `/client` to ensure you have the latest versions and patches are applied. If necessary, update your patches
374+
* after `yarn upgrade`, update `vue.config.js` by adding `@enso-ui/route-mapper` package under `transpileDependencies` key
375+
* `php artisan enso:upgrade --before-migration`
376+
* `php artisan migrate`
377+
* `php artisan enso:upgrade`
378+
* as per every release, delete any local, deprecated upgrades
379+
* update all models having forms with date fields, by adding the following method:
380+
```
381+
protected function serializeDate(DateTimeInterface $date)
382+
{
383+
return $date->format('Y-m-d H:i:s');
384+
}
385+
```
386+
Make sure you have set the `$dates` property.
387+
3388
## 4.8.1
4389
### Front-end
5390
For most of our frontend packages we've added router error handling.

0 commit comments

Comments
 (0)