From 6de4b120b30fcf2c0c42a5fab90d929717d5c8ed Mon Sep 17 00:00:00 2001 From: Bernd Bestel Date: Sat, 9 Mar 2019 15:54:16 +0100 Subject: [PATCH] Include changelog as markdown files and show it in the about dialog --- changelog/10_1.4.0_2017-06-04.md | 1 + changelog/11_1.5.0_2017-07-25.md | 2 + changelog/12_1.6.0_2017-11-06.md | 2 + changelog/13_1.6.1_2017-11-09.md | 1 + changelog/14_1.7.0_2018-04-15.md | 2 + changelog/15_1.8.0_2018-04-16.md | 1 + changelog/16_1.8.1_2018-04-18.md | 2 + changelog/17_1.8.2_2018-04-18.md | 1 + changelog/18_1.9.0_2018-04-21.md | 1 + changelog/19_1.9.1_2018-04-22.md | 1 + changelog/1_0.1.0_2017-04-15.md | 1 + changelog/20_1.9.2_2018-04-22.md | 1 + changelog/21_1.10.0_2018-05-12.md | 4 ++ changelog/22_1.11.0_2018-06-15.md | 1 + changelog/23_1.12.0_2018-07-08.md | 2 + changelog/24_1.12.1_2018-07-08.md | 1 + changelog/25_1.13.0_2018-07-12.md | 3 ++ changelog/26_1.13.1_2018-07-12.md | 5 +++ changelog/27_1.14.0_2018-07-15.md | 13 ++++++ changelog/28_1.15.0_2018-07-22.md | 9 ++++ changelog/29_1.16.0_2018-07-25.md | 8 ++++ changelog/2_0.2.0_2017-04-16.md | 1 + changelog/30_1.17.0_2018-08-04.md | 4 ++ changelog/31_1.18.0_2018-08-11.md | 5 +++ changelog/32_1.18.1_2018-09-08.md | 1 + changelog/33_1.19.0_2018-09-24.md | 6 +++ changelog/34_1.19.1_2018-09-27.md | 2 + changelog/35_1.19.2_2018-09-29.md | 2 + changelog/36_1.20.0_2018-09-30.md | 3 ++ changelog/37_1.21.0_2018-10-06.md | 6 +++ changelog/38_1.22.0_2018-10-27.md | 14 ++++++ changelog/39_1.23.0_2018-11-24.md | 18 ++++++++ changelog/3_0.3.0_2017-04-17.md | 1 + changelog/40_1.23.1_2018-11-27.md | 2 + changelog/41_1.24.0_2018-12-30.md | 1 + changelog/42_1.24.1_2019-01-10.md | 5 +++ changelog/43_2.0.0_2019-03-06.md | 23 ++++++++++ changelog/44_UNRELEASED_0000-00-00.md | 6 +++ changelog/4_0.4.0_2017-04-18.md | 1 + changelog/5_1.0.0_2017-04-20.md | 1 + changelog/6_1.0.1_2017-04-20.md | 1 + changelog/7_1.1.0_2017-04-21.md | 2 + changelog/8_1.2.0_2017-04-21.md | 1 + changelog/9_1.3.0_2017-04-22.md | 1 + composer.json | 3 +- composer.lock | 48 +++++++++++++++++++- controllers/SystemController.php | 3 +- localization/en/strings.php | 12 ++--- public/js/grocy.js | 3 +- public/viewjs/about.js | 5 +++ services/ApplicationService.php | 38 ++++++++++++++++ views/about.blade.php | 65 ++++++++++++++++++++------- 52 files changed, 321 insertions(+), 25 deletions(-) create mode 100644 changelog/10_1.4.0_2017-06-04.md create mode 100644 changelog/11_1.5.0_2017-07-25.md create mode 100644 changelog/12_1.6.0_2017-11-06.md create mode 100644 changelog/13_1.6.1_2017-11-09.md create mode 100644 changelog/14_1.7.0_2018-04-15.md create mode 100644 changelog/15_1.8.0_2018-04-16.md create mode 100644 changelog/16_1.8.1_2018-04-18.md create mode 100644 changelog/17_1.8.2_2018-04-18.md create mode 100644 changelog/18_1.9.0_2018-04-21.md create mode 100644 changelog/19_1.9.1_2018-04-22.md create mode 100644 changelog/1_0.1.0_2017-04-15.md create mode 100644 changelog/20_1.9.2_2018-04-22.md create mode 100644 changelog/21_1.10.0_2018-05-12.md create mode 100644 changelog/22_1.11.0_2018-06-15.md create mode 100644 changelog/23_1.12.0_2018-07-08.md create mode 100644 changelog/24_1.12.1_2018-07-08.md create mode 100644 changelog/25_1.13.0_2018-07-12.md create mode 100644 changelog/26_1.13.1_2018-07-12.md create mode 100644 changelog/27_1.14.0_2018-07-15.md create mode 100644 changelog/28_1.15.0_2018-07-22.md create mode 100644 changelog/29_1.16.0_2018-07-25.md create mode 100644 changelog/2_0.2.0_2017-04-16.md create mode 100644 changelog/30_1.17.0_2018-08-04.md create mode 100644 changelog/31_1.18.0_2018-08-11.md create mode 100644 changelog/32_1.18.1_2018-09-08.md create mode 100644 changelog/33_1.19.0_2018-09-24.md create mode 100644 changelog/34_1.19.1_2018-09-27.md create mode 100644 changelog/35_1.19.2_2018-09-29.md create mode 100644 changelog/36_1.20.0_2018-09-30.md create mode 100644 changelog/37_1.21.0_2018-10-06.md create mode 100644 changelog/38_1.22.0_2018-10-27.md create mode 100644 changelog/39_1.23.0_2018-11-24.md create mode 100644 changelog/3_0.3.0_2017-04-17.md create mode 100644 changelog/40_1.23.1_2018-11-27.md create mode 100644 changelog/41_1.24.0_2018-12-30.md create mode 100644 changelog/42_1.24.1_2019-01-10.md create mode 100644 changelog/43_2.0.0_2019-03-06.md create mode 100644 changelog/44_UNRELEASED_0000-00-00.md create mode 100644 changelog/4_0.4.0_2017-04-18.md create mode 100644 changelog/5_1.0.0_2017-04-20.md create mode 100644 changelog/6_1.0.1_2017-04-20.md create mode 100644 changelog/7_1.1.0_2017-04-21.md create mode 100644 changelog/8_1.2.0_2017-04-21.md create mode 100644 changelog/9_1.3.0_2017-04-22.md create mode 100644 public/viewjs/about.js diff --git a/changelog/10_1.4.0_2017-06-04.md b/changelog/10_1.4.0_2017-06-04.md new file mode 100644 index 00000000..6fa6e880 --- /dev/null +++ b/changelog/10_1.4.0_2017-06-04.md @@ -0,0 +1 @@ +- Added a login screen and switched to cookie/session based authentication instead of HTTP-basic-auth diff --git a/changelog/11_1.5.0_2017-07-25.md b/changelog/11_1.5.0_2017-07-25.md new file mode 100644 index 00000000..d6becbd7 --- /dev/null +++ b/changelog/11_1.5.0_2017-07-25.md @@ -0,0 +1,2 @@ +- New feature: Habit tracking +- Fixed an issue which prevented that the databse is correctly created on unix systems diff --git a/changelog/12_1.6.0_2017-11-06.md b/changelog/12_1.6.0_2017-11-06.md new file mode 100644 index 00000000..78fb2d5d --- /dev/null +++ b/changelog/12_1.6.0_2017-11-06.md @@ -0,0 +1,2 @@ +- New feature: Rechargeable battery management +- Improved productivity of input forms diff --git a/changelog/13_1.6.1_2017-11-09.md b/changelog/13_1.6.1_2017-11-09.md new file mode 100644 index 00000000..62ee2894 --- /dev/null +++ b/changelog/13_1.6.1_2017-11-09.md @@ -0,0 +1 @@ +- Improved sidebar responsiveness diff --git a/changelog/14_1.7.0_2018-04-15.md b/changelog/14_1.7.0_2018-04-15.md new file mode 100644 index 00000000..234d70c2 --- /dev/null +++ b/changelog/14_1.7.0_2018-04-15.md @@ -0,0 +1,2 @@ +- Allow to add anything to the shopping list, not only products +- Major project refactoring diff --git a/changelog/15_1.8.0_2018-04-16.md b/changelog/15_1.8.0_2018-04-16.md new file mode 100644 index 00000000..27fc90bd --- /dev/null +++ b/changelog/15_1.8.0_2018-04-16.md @@ -0,0 +1 @@ +- grocy is now fully localizable and ships by default with English and German translations diff --git a/changelog/16_1.8.1_2018-04-18.md b/changelog/16_1.8.1_2018-04-18.md new file mode 100644 index 00000000..a06b2aef --- /dev/null +++ b/changelog/16_1.8.1_2018-04-18.md @@ -0,0 +1,2 @@ +- New configuration option "BASE_URL" to define base installation URL (should make subdirectory installations possible, see #3) +- Added some missing translations diff --git a/changelog/17_1.8.2_2018-04-18.md b/changelog/17_1.8.2_2018-04-18.md new file mode 100644 index 00000000..1614e8c4 --- /dev/null +++ b/changelog/17_1.8.2_2018-04-18.md @@ -0,0 +1 @@ +- Fixed login form didn't respect the configured BASE_URL diff --git a/changelog/18_1.9.0_2018-04-21.md b/changelog/18_1.9.0_2018-04-21.md new file mode 100644 index 00000000..71efa0e5 --- /dev/null +++ b/changelog/18_1.9.0_2018-04-21.md @@ -0,0 +1 @@ +- Documented the REST API and data model, see the integrated instance of Swagger UI at [/api](https://demo-en.grocy.info/api) diff --git a/changelog/19_1.9.1_2018-04-22.md b/changelog/19_1.9.1_2018-04-22.md new file mode 100644 index 00000000..650448dc --- /dev/null +++ b/changelog/19_1.9.1_2018-04-22.md @@ -0,0 +1 @@ +- Added validation of all API requests and improved Swagger/OpenAPI description diff --git a/changelog/1_0.1.0_2017-04-15.md b/changelog/1_0.1.0_2017-04-15.md new file mode 100644 index 00000000..d0814a3b --- /dev/null +++ b/changelog/1_0.1.0_2017-04-15.md @@ -0,0 +1 @@ +- Basic features, mainly about a interface to record grocery purchases and consumptions diff --git a/changelog/20_1.9.2_2018-04-22.md b/changelog/20_1.9.2_2018-04-22.md new file mode 100644 index 00000000..e5718f3e --- /dev/null +++ b/changelog/20_1.9.2_2018-04-22.md @@ -0,0 +1 @@ +- Added a plugin system for looking up products against external services by barcode, see #6 for reference diff --git a/changelog/21_1.10.0_2018-05-12.md b/changelog/21_1.10.0_2018-05-12.md new file mode 100644 index 00000000..a07e7436 --- /dev/null +++ b/changelog/21_1.10.0_2018-05-12.md @@ -0,0 +1,4 @@ +- It's now possible to consume products directly from stock overview with one click +- Added due/overdue info on bateries- and habits overview (like on stock overview) +- Reworked general page layout and improved responsiveness (see #9 and thanks @d-Rickyy-b) +- Translations fixes diff --git a/changelog/22_1.11.0_2018-06-15.md b/changelog/22_1.11.0_2018-06-15.md new file mode 100644 index 00000000..a8d9155b --- /dev/null +++ b/changelog/22_1.11.0_2018-06-15.md @@ -0,0 +1 @@ +- Added an option to not use URL rewriting (for webservers which, however, don't support URL rewriting) diff --git a/changelog/23_1.12.0_2018-07-08.md b/changelog/23_1.12.0_2018-07-08.md new file mode 100644 index 00000000..886f48b2 --- /dev/null +++ b/changelog/23_1.12.0_2018-07-08.md @@ -0,0 +1,2 @@ +- On the stockoverview it's now possible to filter the products by location +- All dropdowns are now sorted alphabetically diff --git a/changelog/24_1.12.1_2018-07-08.md b/changelog/24_1.12.1_2018-07-08.md new file mode 100644 index 00000000..a8e85230 --- /dev/null +++ b/changelog/24_1.12.1_2018-07-08.md @@ -0,0 +1 @@ +- Bug fix for location filtering on stock overview page did not work in all browsers diff --git a/changelog/25_1.13.0_2018-07-12.md b/changelog/25_1.13.0_2018-07-12.md new file mode 100644 index 00000000..138ae890 --- /dev/null +++ b/changelog/25_1.13.0_2018-07-12.md @@ -0,0 +1,3 @@ +- Upgraded Bootstrap and some other dependencies (grocy now looks even better!) +- Added Italian translation (thanks @davidoskky) + - => Demo for this language available at: https://demo-it.grocy.info diff --git a/changelog/26_1.13.1_2018-07-12.md b/changelog/26_1.13.1_2018-07-12.md new file mode 100644 index 00000000..cd851961 --- /dev/null +++ b/changelog/26_1.13.1_2018-07-12.md @@ -0,0 +1,5 @@ +This was released shortly after the last release to fix a small regression bug, original changes from Version 1.13.0: + +- Upgraded Bootstrap and some other dependencies (grocy now looks even better!) +- Added Italian translation (thanks @davidoskky) + - => Demo for this language available at: https://demo-it.grocy.info diff --git a/changelog/27_1.14.0_2018-07-15.md b/changelog/27_1.14.0_2018-07-15.md new file mode 100644 index 00000000..3cab46a4 --- /dev/null +++ b/changelog/27_1.14.0_2018-07-15.md @@ -0,0 +1,13 @@ +- New feature: **Recipes** + - Organize a list of products, amounts and a description into recipes and see at a glance if everything needed is in stock or put the missing things with one click on the shopping list + - Try it live on the demo page: => https://demo-en.grocy.info/recipes +- Added norwegian translation (thanks @BlizzWave) + - Demo available at: => https://demo-no.grocy.info +- A lot of small UI improvements + - Columns in tables can now be reordered + - Show a calendar on the shopping list page (useful, at least for me) + - Table column ordering and sorting is now remembered + - Sidebar collapse state is now remembered + - Fixed datetimepicker border + - Keep the parent sidebar menu item expanded if the active page is a sub menu item +- Custom JS/CSS file names have changed [see README](https://github.com/berrnd/grocy#adding-your-own-css-or-js-without-to-have-to-modify-the-application-itself) diff --git a/changelog/28_1.15.0_2018-07-22.md b/changelog/28_1.15.0_2018-07-22.md new file mode 100644 index 00000000..f31b3193 --- /dev/null +++ b/changelog/28_1.15.0_2018-07-22.md @@ -0,0 +1,9 @@ +- New related project: **grocy-desktop** + - => https://github.com/berrnd/grocy-desktop + - Run grocy without a webserver just like a normal (windows) desktop application + - New "embedded mode" for grocy to help running in "desktop application mode" [see README](https://github.com/berrnd/grocy#embedded-mode) +- New datepicker shorthands and improvements + - `YYYYMMe` or `YYYYMM+` gets expanded to the end of the given month in the given year in proper notation + - Changed: `MMDD` will be expanded to the given day next year if > today + - [see README](https://github.com/berrnd/grocy#input-shorthands-for-date-fields) +- Some other small bug fixes diff --git a/changelog/29_1.16.0_2018-07-25.md b/changelog/29_1.16.0_2018-07-25.md new file mode 100644 index 00000000..eb6022f3 --- /dev/null +++ b/changelog/29_1.16.0_2018-07-25.md @@ -0,0 +1,8 @@ +- Replaced the single user (so far defined in `/data/config.php`) with a multi-user management + - The currently defined user will automatically be migrated, please remove `HTTP_USER` and `HTTP_PASSWORD` from your config file afterwards + - For this it was necessary to delete all sessions and API keys during the migration +- Added an update script (`/update.sh`) to make updates (on Linux machines) easier + - See also ["How to update" in README](https://github.com/berrnd/grocy#how-to-update) +- Added the possibility to track who did a habit +- Added a rudimentary habit analysis possibility +- Different small UI, code and translation improvements diff --git a/changelog/2_0.2.0_2017-04-16.md b/changelog/2_0.2.0_2017-04-16.md new file mode 100644 index 00000000..d735fc43 --- /dev/null +++ b/changelog/2_0.2.0_2017-04-16.md @@ -0,0 +1 @@ +- General improvements, the work goes on... diff --git a/changelog/30_1.17.0_2018-08-04.md b/changelog/30_1.17.0_2018-08-04.md new file mode 100644 index 00000000..3cfff05a --- /dev/null +++ b/changelog/30_1.17.0_2018-08-04.md @@ -0,0 +1,4 @@ +- Basic product price tracking (can be entered on purchase, a little price history chart is shown in the product card - right side on purchase/consume/etc. pages) +- Proper pluralization of everything (for quantity units you can enter the plural form in master data) +- On all overview pages the statistics shown in the header are now updated when doing changes directly on the page (e. g. consuming a product) +- Lots of small fixes and improvements (form validation, translations - thanks for keeping the norwegian translation always updated @BlizzWave, other small bugs) diff --git a/changelog/31_1.18.0_2018-08-11.md b/changelog/31_1.18.0_2018-08-11.md new file mode 100644 index 00000000..c3394af1 --- /dev/null +++ b/changelog/31_1.18.0_2018-08-11.md @@ -0,0 +1,5 @@ +- The complete row is now refreshed on changes on all overview pages +- Added a checkbox to set the "never expires date" in best before date inputs (alternative to shortcut "x") +- Recipes can now have arbitrary quantity units and stock is only checked for one unit then (imagine you have sugar in "Packs" in stock but your recipe "Pancakes" needs 200 grams) +- Added a "consume this recipe button" to remove all ingredients of a recipe from stock with one click +- Other small UI changes/improvements diff --git a/changelog/32_1.18.1_2018-09-08.md b/changelog/32_1.18.1_2018-09-08.md new file mode 100644 index 00000000..15f97808 --- /dev/null +++ b/changelog/32_1.18.1_2018-09-08.md @@ -0,0 +1 @@ +- Some smaller UI bug fixes and enhancements (thanks again for all the testing @BlizzWave) diff --git a/changelog/33_1.19.0_2018-09-24.md b/changelog/33_1.19.0_2018-09-24.md new file mode 100644 index 00000000..21e9d1ca --- /dev/null +++ b/changelog/33_1.19.0_2018-09-24.md @@ -0,0 +1,6 @@ +- New feature: Tasks / To-do list +- Renamed habits to chores as this is more what it is about +- Products can now be organized in product groups, this group is also used to group the items on the shopping list (you can use this to optimize your way in the supermarket for example) +- Added an option to stay logged in permanently (checkbox on the login page) +- When the database was changed externally, the current page is automatically reloaded when there was no input for at least 50 seconds +- Fixed some minor UI bugs diff --git a/changelog/34_1.19.1_2018-09-27.md b/changelog/34_1.19.1_2018-09-27.md new file mode 100644 index 00000000..308c4ca4 --- /dev/null +++ b/changelog/34_1.19.1_2018-09-27.md @@ -0,0 +1,2 @@ +- The colored info bars on top of all (overview)pages can now be clicked to filter the table accordingly +- Fixed some minor mostly UI related bugs diff --git a/changelog/35_1.19.2_2018-09-29.md b/changelog/35_1.19.2_2018-09-29.md new file mode 100644 index 00000000..e5547b1e --- /dev/null +++ b/changelog/35_1.19.2_2018-09-29.md @@ -0,0 +1,2 @@ +- Important bug fix: All forms were submitted twice when using ENTER instead of the OK/Save button +- Norwegian translation updates (thanks @BlizzWave ) diff --git a/changelog/36_1.20.0_2018-09-30.md b/changelog/36_1.20.0_2018-09-30.md new file mode 100644 index 00000000..f83c03ac --- /dev/null +++ b/changelog/36_1.20.0_2018-09-30.md @@ -0,0 +1,3 @@ +- New optional "Night Mode" (thanks a lot @BlizzWave, can also be activated automatically by a time range - see the new dropdown menu next to the user menu) +- Docker support (thanks @talmai) +- Fixed some minor UI bugs diff --git a/changelog/37_1.21.0_2018-10-06.md b/changelog/37_1.21.0_2018-10-06.md new file mode 100644 index 00000000..ef35f657 --- /dev/null +++ b/changelog/37_1.21.0_2018-10-06.md @@ -0,0 +1,6 @@ +- New feature: Equipment + - Manage all your household equipment/devices in one place and have the information/instruction manual at hand when needed +- New feature: Products can now have pictures + - Add them in the product edit page + - Will be shown in the productcard (purchase/consume/etc. pages) and when you click the product name on the stock overview page (a little image icon next to the product name indicates if the product has an image) +- Recipes and the new equipment edit page now have a little editor with text formatting capabilities diff --git a/changelog/38_1.22.0_2018-10-27.md b/changelog/38_1.22.0_2018-10-27.md new file mode 100644 index 00000000..6bfc119b --- /dev/null +++ b/changelog/38_1.22.0_2018-10-27.md @@ -0,0 +1,14 @@ +- Added a journal for stock bookings, chore executions and battery charge cycles + - => Button in each line on the overview pages or the "Journal" button next to the headline on every overview page +- Added the possibility to undo any stock booking, chore execution and battery charge cycle + - => Button in the success popup while booking a purchase/consume/etc. or on the new journal pages (see above) +- Presets for new products are now configurable + - => "Presets for new products" button next to the headline on the products list page +- Recipes can now be nested (include a recipe into another one) +- Recipe ingredients can now be grouped together which will result in headlines per group in the rendered recipe + - => Group can be set on the recipe position edit page, demo recipe is "Pizza") +- On the stock overview page, the product card is now shown when clicking the product name +- Added option to filter by product group on stock overview page +- When auto reloading on external changes is enabled, the page is not reloaded when there is a fullscreen card active (recipe/equipment instruction manual) +- On the product-/chore-/batterycard there is now a link to the edit page of the corresponding item +- Some other minor bug fixes diff --git a/changelog/39_1.23.0_2018-11-24.md b/changelog/39_1.23.0_2018-11-24.md new file mode 100644 index 00000000..b442385d --- /dev/null +++ b/changelog/39_1.23.0_2018-11-24.md @@ -0,0 +1,18 @@ +- New feature: "Shopping list to stock workflow" + - Add a single shopping list item or all at once to stock directly from the shopping list + - There are new "stock settings" under settings menu in the top right corner + - You can enable there, that all products which have "Default best before days" set, are added without confirmation in this workflow + - => This means, you can add the whole shopping list to stock with one click, if you want +- Improved stock handling + - On consume, a specific stock item can now be picked + - A stock item can now be marked as "opened" (on the consume page or directly from stock overview, visible in the product card and on the stock overview page) +- New feature: Calendar + - Shows all upcoming product expirations, due chores, due tasks and due battery charge cycles +- New translation: French (thanks all the translators) + - As for all languages, a demo is available at: https://demo-fr.grocy.info +- Small other improvements + - Allow fraction numbers for recipe ingredients when not checked against stock and add an option to not check stock for a recipe position + - The current time can now be shown in the header (see the settings menu next to the user icon) +- Changed: Docker related things are now in a separate repository: https://github.com/grocy/grocy-docker +- Changed: Translations are now managed with Transifex: https://www.transifex.com/grocy/grocy + diff --git a/changelog/3_0.3.0_2017-04-17.md b/changelog/3_0.3.0_2017-04-17.md new file mode 100644 index 00000000..2dffaf9a --- /dev/null +++ b/changelog/3_0.3.0_2017-04-17.md @@ -0,0 +1 @@ +- Form validation and barcode input handling improvements diff --git a/changelog/40_1.23.1_2018-11-27.md b/changelog/40_1.23.1_2018-11-27.md new file mode 100644 index 00000000..a5069394 --- /dev/null +++ b/changelog/40_1.23.1_2018-11-27.md @@ -0,0 +1,2 @@ +- Added a skip button when adding all shopping list items in "Shopping list to stock workflow" +- Fixed some minor UI related bugs diff --git a/changelog/41_1.24.0_2018-12-30.md b/changelog/41_1.24.0_2018-12-30.md new file mode 100644 index 00000000..afc2e69d --- /dev/null +++ b/changelog/41_1.24.0_2018-12-30.md @@ -0,0 +1 @@ +- All `config.php` settings can now also be set via environment variables (for [grocy-docker](https://github.com/grocy/grocy-docker)) diff --git a/changelog/42_1.24.1_2019-01-10.md b/changelog/42_1.24.1_2019-01-10.md new file mode 100644 index 00000000..24ef9cc8 --- /dev/null +++ b/changelog/42_1.24.1_2019-01-10.md @@ -0,0 +1,5 @@ +- Fixed a SQL error during database migration when using SQLite >= 3.25.2 +- Improved data tables loading time +- Location edit form did not work (master data) +- Quantity unit "purchase to stock factor" was not respected when putting a recipe on the shopping list or when comparing the already on the shopping list amount +- Better API response for POST routes when there is no or invalid JSON request body content diff --git a/changelog/43_2.0.0_2019-03-06.md b/changelog/43_2.0.0_2019-03-06.md new file mode 100644 index 00000000..eb3fc7d4 --- /dev/null +++ b/changelog/43_2.0.0_2019-03-06.md @@ -0,0 +1,23 @@ +- Breaking change: The API has been completely reworked, please review [the documentation](https://demo-en.grocy.info/api) before updating when you are using the API +- New feature: Tare weight handling + - An option per product + - Imagine this: You have flour in jars, the jar weighs 500 grams, currently there are 1000 grams in stock, the new weight including the jar is 1100 grams - grocy can now calculate the used amount on consume/purchase/inventory automatically, you only have to enter the weighed amount including the jar (demo product to showcase this "Flour") +- Recipe improvements + - Recipes are now scalable - define per recipe for how much servings it is, change the desired servings on the fly when the recipe is displayed, ingredient amounts are scaled accordingly + - The cost of a recipe is now displayed based on the last purchase price per ingredient (recipe scaling also applies) + - When putting all missing recipe ingredients on the shopping list, it is now possible to ignore certain ingredients (in the popup when clicking the "Put missing items on shopping list" button) + - A new option per recipe to not check against the amount already on the shopping list when putting all missing ingredients on it (by default, only the amount not already on the shopping list is added, when this is enabled, always the whole missing amount will be put on the shopping list) + - On consume, there can now be tracked for which recipe it was, this is also tracked automatically when using the "Consume all ingredients needed by this recipe" button (for future statistical purposes) + - Recipes can now have pictures + - New "gallery view" for recipes (demo available at https://demo-en.grocy.info/recipes?tab=gallery) +- Stock improvements + - It is now optionally possible to have partial units in stock (option per product) + - On purchase, a different location can now be assigned (imagine you have two freezers, by default you store your pizza there, but sometimes there) +- New translations: (thanks all the translators) + - Spanish (demo available at https://demo-es.grocy.info) + - Turkish (demo available at https://demo-tr.grocy.info) +- Other improvements + - The calendar can now be shared/integrated in iCal format (button in the header on the calendar page) + - Added feature flags to hide/disable certain parts of grocy when you don't use them (for example hide "Chores" and all related UI elements, when you don't use it, see `config-dist.php`) + - Added a "Apple Touch Icon" and a "Web App Manifest" which should improve grocy on mobile devices and also enables "Add to Home screen" on major mobile browsers + - A lot of other minor small and bigger UI improvements diff --git a/changelog/44_UNRELEASED_0000-00-00.md b/changelog/44_UNRELEASED_0000-00-00.md new file mode 100644 index 00000000..b12c253b --- /dev/null +++ b/changelog/44_UNRELEASED_0000-00-00.md @@ -0,0 +1,6 @@ +- Some small UI fixes & improvements + - Recipe ingredient notes were not displayed + - Edit/delete buttons on equipment page had no icons + - Improved the overview pages "button column" (e. g. hide more rarely used options behind a context/dropdown menu) + - Some JS files were not loaded correctly on case sensitive file systems + - The changelog is now included as markdown files (in `/changelog` directory, one file per release with a filename in format `__.md`) and shown in the about dialog diff --git a/changelog/4_0.4.0_2017-04-18.md b/changelog/4_0.4.0_2017-04-18.md new file mode 100644 index 00000000..ce42ca59 --- /dev/null +++ b/changelog/4_0.4.0_2017-04-18.md @@ -0,0 +1 @@ +- Add possibility to have multiple barcodes per product diff --git a/changelog/5_1.0.0_2017-04-20.md b/changelog/5_1.0.0_2017-04-20.md new file mode 100644 index 00000000..a729de51 --- /dev/null +++ b/changelog/5_1.0.0_2017-04-20.md @@ -0,0 +1 @@ +- Ready to ERP your fridge! diff --git a/changelog/6_1.0.1_2017-04-20.md b/changelog/6_1.0.1_2017-04-20.md new file mode 100644 index 00000000..237de16b --- /dev/null +++ b/changelog/6_1.0.1_2017-04-20.md @@ -0,0 +1 @@ +- Added flow to directly add products and barcodes from purchase and inventory view diff --git a/changelog/7_1.1.0_2017-04-21.md b/changelog/7_1.1.0_2017-04-21.md new file mode 100644 index 00000000..32ce1953 --- /dev/null +++ b/changelog/7_1.1.0_2017-04-21.md @@ -0,0 +1,2 @@ +* New feature: Shopping list (which is also automatically filled based on defined min. stock amount) +* Small UI changes for better productivity diff --git a/changelog/8_1.2.0_2017-04-21.md b/changelog/8_1.2.0_2017-04-21.md new file mode 100644 index 00000000..b2dcf2a4 --- /dev/null +++ b/changelog/8_1.2.0_2017-04-21.md @@ -0,0 +1 @@ +- Added a flow to add a new product with prefilled barcode diff --git a/changelog/9_1.3.0_2017-04-22.md b/changelog/9_1.3.0_2017-04-22.md new file mode 100644 index 00000000..31dadd40 --- /dev/null +++ b/changelog/9_1.3.0_2017-04-22.md @@ -0,0 +1 @@ +- Added a favicon and more productivity improvements diff --git a/composer.json b/composer.json index 26810ee4..49d3ad4a 100644 --- a/composer.json +++ b/composer.json @@ -5,7 +5,8 @@ "morris/lessql": "^0.3.4", "rubellum/slim-blade-view": "^0.1.1", "tuupola/cors-middleware": "^0.7.0", - "eluceo/ical": "^0.15.0" + "eluceo/ical": "^0.15.0", + "erusev/parsedown": "^1.7.1" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index ce8a164b..bc58b3a0 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "0b203f875499dfeaa61890cdec018a2d", + "content-hash": "d11fedeb82f88d3996984cca43395a08", "packages": [ { "name": "container-interop/container-interop", @@ -155,6 +155,52 @@ ], "time": "2019-01-13T22:00:58+00:00" }, + { + "name": "erusev/parsedown", + "version": "1.7.1", + "source": { + "type": "git", + "url": "https://github.com/erusev/parsedown.git", + "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/erusev/parsedown/zipball/92e9c27ba0e74b8b028b111d1b6f956a15c01fc1", + "reference": "92e9c27ba0e74b8b028b111d1b6f956a15c01fc1", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35" + }, + "type": "library", + "autoload": { + "psr-0": { + "Parsedown": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Emanuil Rusev", + "email": "hello@erusev.com", + "homepage": "http://erusev.com" + } + ], + "description": "Parser for Markdown.", + "homepage": "http://parsedown.org", + "keywords": [ + "markdown", + "parser" + ], + "time": "2018-03-08T01:11:30+00:00" + }, { "name": "http-interop/http-factory", "version": "0.3.0", diff --git a/controllers/SystemController.php b/controllers/SystemController.php index 22fe2cf5..318e9b3b 100644 --- a/controllers/SystemController.php +++ b/controllers/SystemController.php @@ -34,7 +34,8 @@ class SystemController extends BaseController public function About(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args) { return $this->AppContainer->view->render($response, 'about', [ - 'system_info' => $this->ApplicationService->GetSystemInfo() + 'system_info' => $this->ApplicationService->GetSystemInfo(), + 'changelog' => $this->ApplicationService->GetChangelog() ]); } } diff --git a/localization/en/strings.php b/localization/en/strings.php index 12749926..3ee5041c 100644 --- a/localization/en/strings.php +++ b/localization/en/strings.php @@ -347,9 +347,11 @@ return array( 'Gallery' => 'Gallery', 'The current picture will be deleted when you save the recipe' => 'The current picture will be deleted when you save the recipe', 'Show product details' => 'Show product details', - 'Stock journal for this product' => 'Stock journal for this product', - 'Show chore details' => 'Show chore details', - 'Journal for this chore' => 'Journal for this chore', - 'Show battery details' => 'Show battery details', - 'Journal for this battery' => 'Journal for this battery' + 'Stock journal for this product' => 'Stock journal for this product', + 'Show chore details' => 'Show chore details', + 'Journal for this chore' => 'Journal for this chore', + 'Show battery details' => 'Show battery details', + 'Journal for this battery' => 'Journal for this battery', + 'System info' => 'System info', + 'Changelog' => 'Changelog' ); diff --git a/public/js/grocy.js b/public/js/grocy.js index ea2ad46b..4feabde9 100644 --- a/public/js/grocy.js +++ b/public/js/grocy.js @@ -497,7 +497,8 @@ $("#about-dialog-link").on("click", function() { bootbox.alert({ message: '', - closeButton: false + closeButton: false, + size: "large" }); }); diff --git a/public/viewjs/about.js b/public/viewjs/about.js new file mode 100644 index 00000000..b5c31b28 --- /dev/null +++ b/public/viewjs/about.js @@ -0,0 +1,5 @@ +$('[data-toggle="collapse-next"]').on("click", function(e) +{ + e.preventDefault(); + $(this).parent().next().collapse("toggle"); +}); diff --git a/services/ApplicationService.php b/services/ApplicationService.php index 4869a2d7..361d676a 100644 --- a/services/ApplicationService.php +++ b/services/ApplicationService.php @@ -27,4 +27,42 @@ class ApplicationService extends BaseService 'sqlite_version' => $sqliteVersion ); } + + public function GetChangelog() + { + $changelogItems = array(); + foreach(glob(__DIR__ . '/../changelog/*.md') as $file) + { + $fileName = basename($file); + $fileNameParts = explode('_', $fileName); + + $fileContent = file_get_contents($file); + $version = $fileNameParts[1]; + $releaseDate = explode('.', $fileNameParts[2])[0]; + $releaseNumber = intval($fileNameParts[0]); + + $changelogItems[] = array( + 'version' => $version, + 'release_date' => $releaseDate, + 'body' => $fileContent, + 'release_number' => $releaseNumber + ); + } + + // Sort changelog items to have the changelog descending by newest version + usort($changelogItems, function($a, $b) + { + if ($a['release_number'] == $b['release_number']) + { + return 0; + } + + return ($a['release_number'] < $b['release_number']) ? 1 : -1; + }); + + return array( + 'changelog_items' => $changelogItems, + 'newest_release_number' => $changelogItems[0]['release_number'] + ); + } } diff --git a/views/about.blade.php b/views/about.blade.php index 780d56d3..22a74577 100644 --- a/views/about.blade.php +++ b/views/about.blade.php @@ -1,31 +1,64 @@ @extends('layout.default') @section('title', $L('About grocy')) +@section('viewJsName', 'about') @section('content')
-
+

@yield('title')

-

- grocy is a project by - Bernd Bestel
- Created with passion since 2017 -

+ -

- Version {{ $version }}
- {{ $L('Released on') }} {{ $releaseDate }} -

+
+ +
+

+ Version {{ $version }}
+ {{ $L('Released on') }} {{ $releaseDate }} +

+ +

+ PHP Version {{ $system_info['php_version'] }}
+ SQLite Version {{ $system_info['sqlite_version'] }} +

+
+ +
+ @php $Parsedown = new Parsedown(); @endphp + @foreach($changelog['changelog_items'] as $changelogItem) + + @endforeach +
+ +
-

- PHP Version {{ $system_info['php_version'] }}
- SQLite Version {{ $system_info['sqlite_version'] }} -

-

+ grocy is a project by + Bernd Bestel
+ Created with passion since 2017
Life runs on code
- +