Commit graph

84 commits

Author SHA1 Message Date
Jakob Meier
7174a03cf2
cache itemss for items list and edit item screen
BUG: when deleting an item the item list won't update
2024-02-23 20:44:42 +01:00
Jakob Meier
9ff6d97c90
cache products for item and product list and product view screen
BUG: when deleting a product the product list won't update
2024-02-23 20:06:49 +01:00
Jakob Meier
6cdfcdf85c
add cache to categories list & add autoupdate after editing / creating a
category
2024-02-23 16:13:15 +01:00
Jakob Meier
13c071b8ca
remove item&product confirmation dialog
Because there currently is no way to auto-refresh the lists it will
appear as if nothing changed.
Switching to a different tab and back again will update the list though
2024-02-23 10:16:57 +01:00
Jakob Meier
384fbb0573
separate new item screen
The edit item screen might be overwhelming at first,
and if you only want to add simple items (by name) to the list,
it is way easier to simply type the name and click create to create a
simple item.
After creating the item the user will be redirected (history
replacement) to the edit screen, but clicking back will bring them back
to the list.
This screen also makes linking products easier and allows the user to
create new products if they notice they are using the same item multiple
times or can't be bothered to switch to the products tab
2024-02-22 20:36:59 +01:00
Jakob Meier
b013964615
Fixed hooks 2024-02-22 15:32:55 +01:00
Jakob Meier
a897d4c4af
Added scrollbar to room info bottomsheet 2023-12-22 20:45:12 +01:00
Jakob Meier
2fa9486db3
Added pre-commit hooks 2023-12-22 20:45:12 +01:00
Jakob Meier
50b6d038c3
Updated yaml files 2023-12-22 20:45:12 +01:00
Jakob Meier
cdf32454e6
Moved to markdown-based README 2023-12-22 20:45:09 +01:00
Jakob Meier
b320d51fa1
Formatted files using dart format 2023-12-22 20:14:36 +01:00
Jakob Meier
1975d66419 Added basic web builder 2023-06-09 10:18:11 +02:00
Jakob Meier
192c5e3a8c
Added basic edit/create item screen
NOTE: The create screen needs more UX design,
at least some UI improvements to get it closer to the alpha2
screen.
IDEA: use Stepper to template item from product

NOTE: The delete item button is not implemented
2023-04-05 19:22:49 +02:00
Jakob Meier
456ed2836d
Added unit/value display to view-item and view-product.
NOTE: Whilst flutter supports plural-translations,
we are not using them for unitAmountDisplay,
because it is hard to choose the fitting one,
for doubles.
2023-04-05 10:22:43 +02:00
Jakob Meier
86dac312a5
Moved from category list to category map
This was done to make category selection easier

NOTE: this also fixes the bug, where the wrong category was selected,
or the category id returned out-of-bounds
2023-04-05 10:07:42 +02:00
Jakob Meier
eba0790f7c
More bug fixes (see description)
- Fixed bug where opening room would show null-error,
  for a couple of seconds.
  This was caused by the FAB not checking if widget.info!=null

- Added try&catch for item category,
  to prevent index-out-of-bounds when the item uses a category
  that no longer exists

- Renamed add/remove Articles to fit the new name: ShoppingListItem
2023-04-05 09:23:41 +02:00
Jakob Meier
5b398eb2ae
Bug fixes (see description)
- Fixed bug where switching room pages
  (list,products,categories,about),
  would result an unknown error,
  due to setState being called on a widget that isn't mounted.
  This was solved by surrounding the setState function,
  with a condition to check if the widget is mounted

- Fixed bug where room members weren't recognized as admins
  This was caused by a typedifference between the server and the app
  (The server now returns booleans,
  where as before a ==1 comparison was
  needed)
- Fixed bug where successfully closing the admin/kick member dialog,
  would crash the application.
  This was caused by popping the same context twice.
  We are now using two navigator (the outer and the inner one)
2023-04-05 08:54:48 +02:00
Jakob Meier
89c0b069e1
Formatted some files 2023-04-04 20:33:49 +02:00
Jakob Meier
5cd21c8adf
Added Combined new/edit and view product screen
Similarily to categories and rooms,
the edit product screen is reused as a new-room screen,
which is especially easy, because the user is unable to select
the product id themselves.
NOTE: the dynamic value-unit input is still missing some "subunits"

The view product screen has links to the edit product page,
the view parent page (if available) and a not yet functional
view children screen.
NOTE: The parent product display should be restricted in width,
and the screen is missing value/unit information.
2023-04-04 20:28:26 +02:00
Jakob Meier
47387bb395
Added basic Shopping List and Product list
including the ability to
add item into the shopping cart and remove them.

The click events have been implemented,
however the routes do not exist yet.

NOTE: The shopping list item info sheet is still missing
the unit type and value
and some more advanced options, like deleting the item
2023-04-04 10:29:29 +02:00
Jakob Meier
8706122590
Merged EditRoom and NewRoom page
and moved ChangeRoomIcon-Dialog into seperate file.

This was done in an attempt to remove redundancy
2023-04-02 13:19:24 +02:00
Jakob Meier
4cfa4c2ad0
Fixed bug where closing the icon selector would close the screen 2023-04-02 13:19:24 +02:00
Jakob Meier
1ba36ff9f0
Added option to delete, edit and reorder categories.
NOTE: The click action is removed, if the user doesn't
have the required permission and the drag-handle is not shown.

BUG: Editing the list (in any way, other than reordering it),
wont reload the list - hopefully this will be addressed later,
by caching the categories (or removing them from the cache)
and auto-rebuilding on cache-change
2023-04-02 13:19:23 +02:00
Jakob Meier
b73362c101
Replaced math based approach with bitwise operations 2023-04-02 13:19:23 +02:00
Jakob Meier
916ea41159
Updated room permission names
- Articles are now called items,
  in fact Articles only existed in alpha1 and 2
  And considered to be the room content
2023-04-02 13:18:59 +02:00
Jakob Meier
e02d45d77e
Reordered imports 2023-04-01 09:49:30 +02:00
Jakob Meier
3c5211bb5b
Moved about subscreens into about folder
This was done in an attempt to keep the folder structure
sorted and clean
2023-04-01 09:36:59 +02:00
Jakob Meier
661cfe2f2c
Added more specific error messages
This commit was created in reaction to the new error messages:
606709ae58/src/api/acts/roomContent.ts
(outbag/server@3686c354c8)
2023-03-31 21:59:27 +02:00
Jakob Meier
a40e3af3e5
Fixed bug where public rooms weren't filtered correctly
This was caused by doNetworkRequest
introduced in Commit 5d333522a5 (Simplified network requests & snackbars, 2023-03-23),
as it ran asynchronously and thus the blacklist wasn't filled in time.
2023-03-31 21:54:45 +02:00
Jakob Meier
99f0ed3558
Basic Categories Page layout
Planned Flow (unimplemented):
- create new category on /edit-category page using bottom-right fab
- sort categories using the two-line hamburger-style menu on each item
- click on a category to modify/delete it
  NOTE: maybe on a different screen or MBS?
2023-03-31 21:52:14 +02:00
Jakob Meier
cb232cf271
Updated room permissions 2023-03-29 18:47:45 +02:00
Jakob Meier
ecccec7950
Fixed bug where homescreen would load twice
Moved AccountMeta provider into <User> context
and migrated to using a FutureProvider to perform the network request

NOTE: Bug was caused by AccountMeta? being loaded late,
causing the root provider to be reloaded.
2023-03-29 18:27:05 +02:00
Jakob Meier
1af8d6f068
Migrated from localstore to shared preferences
(only for user, server and theme)

This was done, because localstore is somewhat inconsistent
in terms of events on different platforms.
Also storing user, server and theme using shared-preferences
should fit into flutters ecosystem a little better
2023-03-29 18:27:05 +02:00
Jakob Meier
e492a3f8ce
Added weblate stats
and updated translation instructions
2023-03-29 18:26:49 +02:00
Jakob Meier
3f32c78193
Added AGPL-3.0-or-later license
NOTE: same license as alpha webapp
2023-03-29 17:18:05 +02:00
Jakob Meier
8fffafde47
Added translations using l10n
Translations are provided in *.arb* format.
Some keys have descriptions
(indicated by leading @-symbol).
Descriptions should not be copied into the translation itself.

Currently only English is supported (app_en.arb),
but German is planned.

Apparently weblate merged .arb support at some time,
so it would be nice to enable community translations at some point.
2023-03-29 15:14:27 +02:00
Jakob Meier
90adcc6bb1
Fixed context bugs caused by moving to GoRouter
NOTE: Some bugs have not been fixed, and the member screen needs fixing,
but before that can happen, localstore has to be replaced,
because it causes loops on android and linux.
It also seems like it might lead to memory leaks
2023-03-28 17:21:35 +02:00
Jakob Meier
b0c1f782bd
Removed room provider
because I was unable to combine all routes
under one provider.
2023-03-28 16:14:38 +02:00
Jakob Meier
5b9b48cd24
Migrated to GoRouter
Reasons for migration:
- buggy behaviour from old router
- GoRouter is a recommended flutter plugin
- ShellRoutes allow exposing Providers
  to a limited scope of routes
- GoRoutes provides named routes,
  and the navigator allows us to provide parameters directly.
2023-03-28 14:54:39 +02:00
Jakob Meier
bb9a8621a0
Moved User into application wide conntext.
Every page (after login) has access
to the User object via context.read/watch<User>().

This reduces localstore and asnyc operations,
as the screens do not have to load the user every time.
Additionally this prevents anyone from
using the without a user object.
2023-03-25 17:18:46 +01:00
Jakob Meier
42b6da7461
Fixed password editor 2023-03-25 15:36:21 +01:00
Jakob Meier
67a5130ac0
Moved theme selector into dialog
FIXES: Bug where text would wrap
after a couple of characters on mobile,
because flutter keeps the SegmentedButton at full width
2023-03-25 15:24:12 +01:00
Jakob Meier
30a19fcc1e
Started working on settings screen
Added:
- changePassword to change the password
NOTE: this requires the old password,
just to prevent account hijacking.
- some basic user limit information
- theme selector
NOTE: the system theme is meant to function like auto-theme,
and is directly translated into a flutter ThemeMode,
however, this does not appear to be working on the web.

This commit also adds the logout and delete account buttons,
but they do not yet delete all rooms,
nor do they properly logout the user.
BUG: User is not logged out correctly,
reloading the page fixes this.
Maybe localstore.listen does not detect deletion?
2023-03-25 14:29:28 +01:00
Jakob Meier
569dda01fd
Moved hash function into seperate file.
NOTE: useful for changePassword,
which requires the hash password functionality as well.
2023-03-25 14:27:47 +01:00
Jakob Meier
e3ca4fafa6
Added room default permission editor screen
The screen allows the user to change the default permission set,
that applies to every member (but not the owner nor the admins).

This screen is only accessible by the owner,
admins or members with the changeAdmin permission.
2023-03-25 10:31:28 +01:00
Jakob Meier
6b98c696ea
Finishied room member screen
The screen allows every room member,
to view a list of other room members,
and their role (Owner, Admin or Member).

If the user is allowed
(Owner, Admin, changeAdmin/manageMembers),
to either kick or promote members to the admin role,
the list tile will have a tap event.
NOTE: This is why some members do not have a hover animation.
For example the owner cannot be kicked.
2023-03-25 10:31:14 +01:00
Jakob Meier
ecd87cf2cd
Made content scrollable
Added SingleChildScrollView to new-room, edit-room
and the about-room tab.
NOTE: Added a padding to the new and edit room pages,
to prevent widgets from touching the screen bottom
2023-03-24 18:21:23 +01:00
Jakob Meier
09f7e4fdd1
Added asset wrapper.
FIXES: Image paths on web
2023-03-24 17:47:47 +01:00
Jakob Meier
0235ec6a83
Fixed android-compilation
NOTE: permissions belong into root section
2023-03-24 17:22:00 +01:00
Jakob Meier
672892e21b
Removed Flexible widget.
FIXES: Bug where signup, signin,
edit room and new room screen would fail to open,
because the Flexible Widget cannot be nested in a
Centered Widget.

NOTE: Turns out the widget was not neccessary at all
2023-03-24 16:42:12 +01:00