This *absolute commit monster* does the following things:
- Introduce gulp to build javascript and css files.
This includes moving node_modules out of the public/ folder.
Use `gulp --tasks` to get a list of all tasks; however some
of them are automatically generated.
Use `gulp live` to watch for changes and automatically recompile
what's needed.
- Upgrade to yarn2
- Upgrade FullCalendar to 4.4.2
I know that 5.x is the current version, but two major version upgrades
are too much right now. Also v5 would break any custom css as they
renamed a bunch of classes.
- Move Styles to sass
(Most) global styles are now included in one sass file. This also
means that we now compile our own bootstrap.
- Javascript is now in strict mode
Because everything is a module now, `use strict` is now in effect
for all javascript files. There are probably still some parts left
where implicit variable declarations were used.
- grocy*.js were split up in modules.
`window.Grocy` is now an instance of GrocyClass. API-wise nothing
has changed (albeit some functions were added regarding Undo actions)
At the Moment, this leaks a whole bunch of functions into window
(that was easier than tracking those down).
- FindObjectIn... style functions were removed.
Array.prototype.find and Array.prototype.filter suffice.
- Use babel to preprocess javascript.
- Use rollup to bundle javascript.
rollup bundles and tree-shakes es6 javascript bundles.
It also allows to "import" css files and generate css
files specific to this javascript file. This is used
in viewjs scripts, for example when importing FullCalendar,
to generate an associated viewcss file.
- Use postcss to post-process css files.
postcss uses autoprefixer to handle browser compatiblity.
Internally this uses the package `browserslist`; and is currently
configured to the default setting.
- Minify assets when building in production
`gulp publish` builds all assets in production mode, that is,
the assets get minified. This includes javascript as well as
css files.
- css bundling
concatCss is used to pull @imports of non-sass-files into one
grocy.css
- animate.css is now in the main bundle
animate.css was used in so many places that it is now located
in the main style bundle.
* Simplified stock overview on mobile.
* Stock table horizontally scrollable
* Use the new mobile views for all pages (except the shopping list page, use the existing special handling there for now)
And add a clear filter button to all pages
Co-authored-by: Bernd Bestel <bernd@berrnd.de>
* Add FilteredApiResponse
* Use FilteredApiResponse for Generic-Entity-Search
* Use FilteredApiResponse for Recipe-Fullfillment
* Use FilteredApiResponse for GetUsers
* Use FilteredApiResponse for current Tasks
* Use FilteredApiResponse for ProductStockEntries & ProductStockLocations
* Use FilteredApiResponse for current chores
* Use FilteredApiResponse for batteries-current
* Fix missing highlighting of "< X days"
* Keep to use existing views
Co-authored-by: Bernd Bestel <bernd@berrnd.de>
This is a workaround for now. The tables are still DOM sourced because of too big dependencies between server side rendering and frontend JS code. The tables are initially load while tbody is hidden, this results in a speedup by around 65 %.
Show the cursor as pointer on stock overview page while hovering the product name cell to highlight that the productcard can be opened
Show a waiting cursor and disable all form inputs while doing background XHR calls to highlight that the user should wait
Place the search field (to search a table) on all pages to the left most place