-
-
Notifications
You must be signed in to change notification settings - Fork 737
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Shopping list UI overhaul #4077
Conversation
modified: frontend/pages/group/data/labels.vue modified: frontend/pages/shopping-lists/_id.vue modified: mealie/schema/labels/multi_purpose_label.py
modified: docs/docs/documentation/community-guide/home-assistant.md
I agree especially with the divider per label |
FYI @Wetzel402, this is failing CI, which is the reason I haven't spent any time to review it (and I imagine similar might be true for others). Oh, and it's marked as a draft. |
I removed the unused variable. The PR is in draft due to the major UI changes. @Kuchenpirat was reviewing the changes and we may still make changes to the PR before it is incorporated fully into |
Ah sorry was not aware this was blocked by me. Will review tomorrow during the day👍 |
I wouldn't say blocked. I just know you were looking at the UX changes based on our discord discussion. Thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking at all my comments i really suggest just sliming down this PR, focusing on the key elements while addressing the rest in separate PRs. This way, you'll have something merged quickly and can build on it, allowing us to review and discuss specific items more effectively instead of tackling such a broad PR.
I really like the general idea of cleaning up the shopping list interface, but some aspects still need work.
What is ready to go:
- The visual change of having labels over each category
- Wake lock
I'm happy to merge a PR with these updates, and we can address the rest in future PRs. 👍
@@ -140,7 +140,7 @@ export default defineComponent({ | |||
setup(props, context) { | |||
const { i18n } = useContext(); | |||
const displayRecipeRefs = ref(false); | |||
const itemLabelCols = ref<string>(props.value.checked ? "auto" : props.showLabel ? "4" : "6"); | |||
const itemLabelCols = ref<string>(props.value.checked ? "auto" : props.showLabel ? "8" : "9"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This makes a lot more sense for long list items 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR for this change...
#4237
@@ -231,7 +231,7 @@ export default defineComponent({ | |||
editLabel.value = item; | |||
|
|||
if (!editLabel.value.color) { | |||
editLabel.value.color = "#E0E0E0"; | |||
editLabel.value.color = "#757575"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any particular reason you changed this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<v-col cols="3" class="text-right"> | ||
<BaseButtonGroup | ||
:buttons="[ | ||
{ | ||
icon: $globals.icons.dotsVertical, | ||
text: '', | ||
event: 'edit', | ||
children: [ | ||
{ | ||
icon: $globals.icons.contentCopy, | ||
text: $tc('shopping-list.copy-as-text'), | ||
event: 'copy-plain', | ||
}, | ||
{ | ||
icon: $globals.icons.contentCopy, | ||
text: $tc('shopping-list.copy-as-markdown'), | ||
event: 'copy-markdown', | ||
}, | ||
{ | ||
icon: $globals.icons.checkboxOutline, | ||
text: $tc('shopping-list.check-all-items'), | ||
event: 'check', | ||
}, | ||
{ | ||
icon: $globals.icons.checkboxBlankOutline, | ||
text: $tc('shopping-list.uncheck-all-items'), | ||
event: 'uncheck', | ||
}, | ||
{ | ||
icon: $globals.icons.cog, | ||
text: $tc('general.menu'), | ||
event: 'menu', | ||
color: 'info', | ||
}, | ||
{ | ||
icon: $globals.icons.delete, | ||
text: $tc('shopping-list.delete-checked'), | ||
event: 'delete', | ||
color: 'error', | ||
}, | ||
], | ||
}, | ||
]" | ||
@edit="edit = true" | ||
@delete="openDeleteChecked" | ||
@uncheck="openUncheckAll" | ||
@check="openCheckAll" | ||
@copy-plain="copyListItems('plain')" | ||
@copy-markdown="copyListItems('markdown')" | ||
@menu="toggleMenuDialog()" | ||
/> | ||
</v-col> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this needs some more work.
It might be ok to hide a few things behind the three dot menue, but for some things it gets a bit to much.
E.g. the Owner Settings are now: Three Dot ➡️ Menu ➡️ Settings
My suggestion would be to have that in a later PR, this needs to be a bit more fleshed out.
The thing i am sure that makes sense to put in a three dot menu would be the owner settings menu. Im not too sure about the rest
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will try to separate out the changes as you suggest and we can look at the three dot menu separately.
</v-icon> | ||
</span> | ||
{{ key }} | ||
<!-- Create Item --> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i think it is clear that this needs to be polished quite a bit, but i really like the concept and think that this creation flow is the way to go 👍
@@ -101,6 +164,45 @@ | |||
</v-card> | |||
</BaseDialog> | |||
|
|||
<!-- Menu dialog --> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs still some work. Having a button in a three dot menue that leads to a modal with further menue options is not the way to do it.
v-if="wakeIsSupported" | ||
class="d-print-none d-flex px-2" | ||
:class="$vuetify.breakpoint.smAndDown ? 'justify-center' : 'justify-end'" | ||
> | ||
<v-switch v-model="wakeLock" small :label="$t('recipe.screen-awake')" /> | ||
</div> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Having the options for wake lock in the shoping list makes absolutely sense 👍😍
|
PR for defaulting to the label sorted view... |
Will close this as this has been divided up on the following PRs:
The remaining features are not production ready yet. We are happy to get them in potential future PRs 👍 |
What type of PR is this?
What this PR does / why we need it:
The shopping list UI seemed a bit complex. This PR's goal is to...
List items are in v-card now to help with readabilityScreenshots
Which issue(s) this PR fixes:
None
Testing
Tested in dev container