Closed mariocarabotta closed 1 month ago
This looks great!Until we have the Epic broken down into stories, some quick feedback on the designs here:
Overall: Reminder that an additional column for Unit Prices is needed on product list page
Creating variants: To me the "New Variant" looks not intuitive enough for a (first-time) user to add new product variants → what about adding a "+" icon in front of New Variant and possible make it a clearer Call-to-Action, like the "+New Product" button ?
Thanks @jaycmb for the feedback!
Unit price - Yes, it was still kind of in progress while I was designing this, so I did not include it. Do you think it would need its own column? otherwise we could make the price field open a small overlay window (like unit) and display actual price and unit price fields
New variant button - I played around in previous iteration with the idea of having a plus icon next to it. I removed it because it made it a bit too noisy, but we can definitely re-assess this as we build and find lighter icons or use a different colour
I agree on the On Hand copy. I've always been a bit confused about that too, and I wonder if we could just move to a Stock labeling convention here. I'd be curious to know what name is used in other languages too!
Cheers
with @kirstenalarsen @RachL @Erioldoesdesign & Hernan (OFN Colombia)
Further details on the points discussed here in Notion
High Level Summary on open questions discussed:
1. Tech-Related Issues
Decisions on the following topics postponed, until devs/teach lead join the discussion:
2. Product-Related Issues
[ ] Sync existing feedback / information (across Notion Pages, Discourse Posts, Inception Pipe..)
[ ] Product & Design Discussion documented here in Inception Pipe, Community feedback gathered in Discourse
[ ] Discuss Tech-Related Topics (see above)
Mock up requests
[ ] Prototype an example product with on demand stock info
[ ] Include "display as" (example of milk bottle @Erioldoesdesign ;))
[ ] Include Unit Prices
[ ] Remove the 'total' stock number from the 'original product' (on hand)
[ ] Propose an alternative for "On Hand" that´s more intuitive
[x] Prototype an example product with on demand stock info I actually don't think this is needed, it already existed.
[x] Include "display as" (example of milk bottle @Erioldoesdesign ;)) Done across all the prototypes on the existing link on milk bottle examples and also the jar of marmalade example Something to consider is how it's then displayed in the UI which is a bit odd:
You get a little bit of text underneath each drop down stating the changed display name:
[x] Include Unit Prices Done:
[x] Remove the 'total' stock number from the 'original product' (on hand) Done!
[x] Propose an alternative for "On Hand" thats more intuitive
One demand was tricky, I don't have any better ideas only this alternative which isn't better, just different:
Responsive is proving to be trickier than i'd hoped but I'm glad I've investigated it. I explored some ideas where even though we have 9 columns max that are available to display horizontally, we limit the max amount to 4 or 5 across the width and find a way to display some functions vertically, or collapse columns (kind of like how zenhub does this) but it looks like there's already a part of the design where the product image and name is 'sticky' to the left hand of the screen and then the remaining columns are horizontally scrollable. I also started to think what if some columns are traded out for others. So you get a max of 5 columns seen at once. This is all speculation on what would be useful so I don't think it should go in any of the UI uplift work. But I have big critical questions as to whether the optimum workflow for users making edits to products in the product list is to jump around edits that chaotically. I'm not saying it's impossible or doesn't happen, but is it the behaviour we want to encourage?
To be honest I don't think there's a particularly good way to get multiple, functional (as in editable) columns across a smaller screen. I've looked around at complex dashboard and even google analytics pretty much just makes users deal with a horizontal scroll but it's worth looking at GA's mobile app for a more 'streamlined' workflow. I worked on products like this twice, that are basically spreadsheets in mobile app form and it was essentially an exercise in compartmentalising certain operations into forms in individual pages and menus.
Do we still think that the column 'on hand' needs a tool tip?
Design next up for UI Uplift
Unit Display I find not understandable without the explanation text -> better: “Displayed as” or “Shown as”, to make it consistent with the phrasing in the variant overview
One idea that came to me when looking at the new designs related to Unit Prices: what about having a “shown as 5€/kg” description text underneath the Unit price, same style as the “shown as 1 small bottle” underneath the Unit?
I agree on the On Hand copy. I've always been a bit confused about that too, and I wonder if we could just move to a Stock labeling convention here. I'd be curious to know what name is used in other languages too!
So, to your question: the column does not necessarily need a tool tip, but clearer phrasing. Maybe simply: “In Stock”?
But yes, the "On Demand" is a separate thing and I personally find "Unlimited" slightly easier to understand than On Demand (not intuitive!) but also not optimal, because it´s technically not unlimited supply. I think that would be a case for User Testing :)
Agree on it´s certainly a challenge “to get multiple, functional (as in editable) columns across a smaller screen” 😅
That again brings up the question of: How likely is a user going to edit columns from mobile? Which columns are essential for these use cases and even which functionalities do they need? Considering Jen´s research insight that farmers wanted tech that they could manage on their phones because for many standing at a market stall in the city is the only time they have great internet connection. maybe more users than we would expect?
Yes, we decided that´s out of scope for the V1, but still I feel put effort in setting up a flexible system from the start that allows users to easyly(ish) manage the columns they want to see (and possibly edit) across different screensizes is well invested.
But I have big critical questions as to whether the optimum workflow for users making edits to products in the product list is to jump around edits that chaotically.
-> You mean by displaying only 5 (or x) columns max, user would have to jump around different views if they d like to edit one of the non-visible? If yes, I agree that this is not desired behaviour and can easily lead to more frustration.
Is this still Blocked by "Product Input needed"? Or currently Tech & Community?
@jaycmb we need @kirstenalarsen 's input on scope to have final community approval. Then a lot of question are remaining for the new dev that will pick this up with the nex tech stack.
Only additionl comment I have here I think is that @mariocarabotta did do a lot of thinking about positioning and selection of columns. This included lots of looking at other ecommerce and food / product / inventory systems and shaped his suggestions as to which ones should be left, prominent, sticky I think. Not sure how this plays into responsive, but might suggest that the five suggested by default were considere as the most important.
For my 2c, on mobile i'd be inclined to suggest that bulk edit isn't really needed as much. I we had great display of search and filter, display of the key info and a nice big edit button that opened a nice modal to easily change stock, price, upload new photo or edit descrition that might deal with most of the needs. with ability to go deeper if they need
re. scope
Any settings page changes that are affected by product list changes? (e.g. tags in settings) I don't think so. as discussed on slack the tags in product page are not goin to be connected to tag rules in this iteration and perhaps not even soon
Connection between product and BOM (and other areas) for table style changes? this is broaer UX strategy that is more a question for you than for me @Erioldoesdesign - how do we want to go about applyin new admin styling across admin? Nothing is yet prioritised or proposed. The orders page would defnitely be a contender, but that might be uite a thorough redesign and I doubt it wll be prioritised above network, aPI, reports etc
Tool tips needed? I don't know
Multiple shops mock up / Filter by producer mock up are these kind of the same thing? but anyway YES I think this is a priority. I think it did appear in earlier versions but then disappeared. It definitely needs to be understood how this will work and ieally before we start builng in case it has any significant implications
Is the cards and non-cards visual hard on eyes? Test out all card design. not sure what this means
There's some further questions that came up from my conversation with Theresa and Laurie last week that I've briefly spoken to Jana about but need some organisational PM input.
Both the notion document, Figma designs and the discourse post have now been updated!
This moving into the dev pipe?
CSS Framework: Use of UI component framework vs utility-based framework?
There's no clear plans on this yet, right?
CSS Framework: Use of UI component framework vs utility-based framework?
There's no clear plans on this yet, right?
Hmm I think @jibees would be the best person to answer that, we're building a 'pattern library' and I assume that it's compatible with Reactive Rails but unsure if that means we can use Tailwind CSS et.c or not.
Some of what was designed for UI Uplift followed some of the Material UI which is something I'd like to understand more as far as potential restrictions or not
I think we need a bit of discussion and a really clear picture of exactly what we're doing in regards to those tech choices before we move this into dev ready :+1:
Some of what was designed for UI Uplift followed some of the Material UI which is something I'd like to understand more as far as potential restrictions or not
Material-UI is specifically a React component framework, right? I don't think it's an option.
So the question is; what are we going to use? There's MaterializeCSS, which might have a similar feel?
Tailwind
Oh god... :see_no_evil:
There's a Material Design Bootstrap package that looks pretty good: https://mdbootstrap.com/
@Matt-Yorkley What's the problem with Tailwind or any utility first CSS framework? I would be in favor of going on this (and not something like MaterialUI or Bootstrap which is good to create a POC and bootstrap, but a hell to customize as it's not designed for this)
Tailwind
The creator of Tailwind themselves says: "If you can suppress the urge to retch long enough to give it a chance, I really think you'll wonder how you ever worked with CSS any other way". I guess I'm still in the retching phase :joy:
Don't get me wrong, I'm all for utility-based CSS classes, composition over sub-components, and content-agnostic component naming. I'm also not a fan of the BEM approach to solving the traditional problems with inheritance in CSS.
I'm a big fan of Bulma, mainly because the utility classes are actually human-readable.
Bootstrap 4 is not great, but Bootstrap 5 has basically been heavily rewritten to focus on utility classes. It's also highly customisable via SASS variables. MDBootstrap combines Bootstrap 5 and Material Design 2.0 (if that's the aesthetic we're going for?).
If we go with Tailwind we'd be styling every single element from scratch, right? As opposed to having 99% of the styling handled already by a library that already has the look we want?
I don't like the overall results of Tailwind's approach of condensing absolutely everything into tiny utility classes and applying all styling by adding an ever-increasing list of non-human-readable classes-with-modifiers onto each element. eg:
Dumping 100% of the styling into the markup doesn't seem like a big leap forward to me... :man_shrugging:
If we go with Tailwind we'd be styling every single element from scratch, right? As opposed to having 99% of the styling handled already by a library that already has the look we want?
I think it's the main point here, driving all the decision we should take in a near future concerning any CSS framework. I personally think that believing in: 99% of the styling is already handled by a library is mostly true for a POC driven by developers, but, over time, mostly false for an application driven by a UX/UI team.
I don't like the overall results of Tailwind's approach of condensing absolutely everything into tiny utility classes and applying all styling by adding an ever-increasing list of non-human-readable classes-with-modifiers onto each element.
Yes, it should be ugly, and maybe it's not perfect. But as we want to work more in a component driven development way, once a component is customized, you don't have to edit any of the classes just use the component. Thus, code is written once.
To be clear: I originally used to develop buttons like this:
<a class="button">
Button
</a>
and yes, I really enjoyed CSS framework that gives me this button
class.
But now, in a component driven development way, we use:
<Button>Button</Button>
and I really enjoy writting highly customizables components like this:
const Button = (label) => (
<button type="button" class="focus:outline-none text-white text-sm py-2.5 px-5 rounded-md bg-blue-500 hover:bg-blue-600 hover:shadow-lg">{label}</button>
)
once a component is customized, you don't have to edit any of the classes just use the component.
That would be equally true if we leant on an existing library whilst making components, right?
99% of the styling is already handled by a library...
If we're working towards designs based on Material Design and we can either a) import something that's already done 99% of the work (and includes utility classes and SASS variables), or b) painstakingly build everything from scratch (starting from zero)... that's not a trivial thing, right?
Thus, code is written once
Is it though? I was chatting to someone recently who worked with Tailwind and they ran into a conundrum of how to refactor their code. It looked like this: they had a set of styling applied to all H1 elements in the codebase. Every time they wanted to use a H1 title in a page, they had to replicate it, and ultimately it looked a bit like your button example, with a huge string of classes.
class="focus:outline-none text-white text-sm py-2.5 px-5 rounded-md bg-blue-500 hover:bg-blue-600 hover:shadow-lg"
They had three options for how to deal with this:
@apply
function to wrap that long list of classes into another class. This is a bit of an antipattern, it goes in a big circle and ends up back at the beginning with the exact same problems of specificity and inheritance that Tailwind is supposed to fix. It also requires a bunch of additional tooling added into the stack (which I think Tailwind requires in general, and that's another issue).In the immortal words of Gwen Stefani; this shit is bananas! :banana::banana::joy:
By "going round in a big circle and ending up at the beginning" I mean Tailwind essentially starts by saying this is bad:
<button class="btn btn-green">Click me!</button>
and this is good:
<button class="py-2 px-4 font-semibold rounded-lg shadow-md text-white bg-green-500 hover:bg-green-700">Click me!</button>
But then when it comes to the issue of DRYing code, dealing with all that mess, making it re-usable etc, Tailwind ultimately suggests doing this:
.btn {
@apply py-2 px-4 font-semibold rounded-lg shadow-md;
}
.btn-green {
@apply text-white bg-green-500 hover:bg-green-700;
}
and then doing this (wait, isn't this bad?!):
<button class="btn btn-green">Click me!</button>
What? :joy: We're back to arbitrarily-named classes that encapsulate a whole bunch of styling and are thrown on to elements in whatever way we feel like, right?
This is the main solution proposed by Tailwind in the docs, but even Tailwind's creator has stated multiple times that it's an antipattern...
@Matt-Yorkley
That would be equally true if we leant on an existing library whilst making components, right?
Yes, if the existing library handles the customization of its components (for Bootstrap, the class btn
for example). As you said, seems to be done by MDBootstrap.
Thus, code is written once Is it though?
At least, it's an objective. I know this can't be 100% applicable, but it's great to have such a thing in mind (and I know you have).
I don't know if we can reach an agreement if we both discuss and exchange arguments / counter-argument.
To step further, maybe we could:
What do you think?
We are wondering if @openfoodfoundation/core-devs and @Erioldoesdesign (and others designers, UI/UX owners?) can add some thoughts about the Tailwind or not (or CSS utility first framework vs. I don't exactly know how can i call them framework, but Material Design for Bootstrap seems to be the perfect example) debate.
Thanks! 🙏
I learned a lot just by reading your posts and following a few links. And my conclusion is that you two know a lot more about CSS frameworks than me. :stuck_out_tongue:
I'm not sure if the question here really is Tailwind vs MDBootstrap. Taking a step back, you expressed several needs:
What else do we need?
Once we know the needs, we can rate different options accordingly:
Using all the little classes can become messy. We can create new classes for our components. Why is that bad?
There may be a Tailwind theme that suits us so that we don't have to build everything from scratch.
The tailwindcss-rails gem needs Rails 6. dhh created that gem. He's creating lots of good things.
My understanding is that Tailwind provides a large set of potentially useful building blocks and a framework to serve only the classes required. It seems flexible enough that we don't have to use it in a way that we don't like. Could it make our work more efficient?
I'm out of the loop with Bootstrap. It seems to have become a lot better and Matt says that it's a lot more customisable now.
I had a similar conclusion as @mkllnk :)
I read a little about tailwind, and also had the urge to throw up a little bit when I saw all the tiny classes adding up on elements. But reading some other posts about it all follow the same pattern - there's a phase of disgust followed by enlightenment. So I wouldn't be terribly upset if we went with it. Plus if dhh is creating things for it... that's a pretty good indicator that there's something there that's pretty good.
Seriously, I :heart: TAILWIND :joy: you got to use it to understand it, and indeed you have an "aha! this makes total sense!" moment. It basically brings encapsulation and composition into the world of CSS.
However, it's also true that it favors full flexibility as opposed to having a set of components ready to be used (as most frameworks aim to provide). Nonetheless, I've been following the project and they've tried to overcome that drawback with things like https://tailwindui.com/ and https://headlessui.dev/ but still, we would still be on our own (these target JS frameworks) building our own ViewComponents
. I understand our needs may require already made components. Is that it @Erioldoesdesign ?
Many of the UI Uplift designs take inspiration from Material design or may even be exactly as material design describes but my concern, which I've said before is that restricting ourselves to a framework that encourages or forces you to use their vanilla components means that we'll end up building custom components anyway or designs will be restricted when designing new features and improving older one to a sort of 'pain by numbers' or 'here are your building blocks' process.
For example, Mario used Material design chips in the new 'tagging list' UI: https://material.io/components/chips#usage
I mean he's changed the colour etc. but that's not hard to change in Material design so no biggie:
So if we have a framework that allows us to use some material design elements we like, great! but what if Mario had a design idea for this tagging list that wasn't the material design 'chip' but a component not currently described in material design?
He had two options either:
I think the decision is ultimately up to whoever will be maintaining the FE and working on the FE to choose what is the best choice of time and effort. I'm happy as long as design (and therefore the users experience) is restricted by us not being able to build custom components easily and pushing design to 'pick from the framework shelf' OFN is too much of a complex and detailed tool to get by on a 'simple' framework UI.
Does the Uplift take into account this one? https://community.openfoodnetwork.org/t/quantities-on-hand-adaptating-when-variants-are-a-sub-product-of-the-main-product/480/4
I remember it being discussed but can´t recall anymore if that´s part of V1
@jaycmb Yes it was handled and changed to a different kind of UI and function when you click on the drop-down that is under the 'on hand' column heading:
Wow! I always thought UI wasn't introducing any new features! And this particular one was always defined as complex, glad we could find an easy way to do it :muscle: :tada:
@Matt-Yorkley @lin-d-hop @filipefurtad0 and myself sat down in Portugal to refresh our memories on this feature and bring us up-to-date. While going through the issues, we reach agreements on some ideas that we are proposing here:
While we rewrite issues, we need to keep in mind that some of them should be pick-up by back-end devs. So we need to make that more clear.
We should be careful about how the pagination works: infinite scroll or what we have now?
How do filters behave : use one and get instant results ?
Apparently we are introducing autosave! This should be shown to the user in some ways. Maybe a message at the top of the page? "All changes saved" ?
So it's linked to 1. but design decisions are needed.
The first release should only focus on:
This means that we propose to do a first release without tags (which are not intended to work with existing tags in this project, so difficult to explain to user in the first release) and bulk actions on products. To be clear: we are not saying we want to remove these features from the project, just not targeting to have them in the first release / reveal of the new page to users.
Any thoughts @openfoodfoundation/core-devs @openfoodfoundation/train-drivers-product-owners @openfoodfoundation/testers ?
Sounds great - let's get this show on the road!!
On Tue, 21 Dec 2021 at 02:23, Rachel Arnould @.***> wrote:
@Matt-Yorkley https://github.com/Matt-Yorkley @lin-d-hop https://github.com/lin-d-hop @filipefurtad0 https://github.com/filipefurtad0 and myself sat down in Portugal to refresh our memories on this feature and bring us up-to-date. While going through the issues, we reach agreements on some ideas that we are proposing here:
- Issues were made with components in mind, which is interesting but very difficult to pick up to understand what to deliver in the end. We would like to propose to rewrite issues in terms of user stories, with components as acceptance criteria. Rachel would be available to take on the creation of issues but would need to team up with a dev for the acceptance criteria.
While we rewrite issues, we need to keep in mind that some of them should be pick-up by back-end devs. So we need to make that more clear.
We need to be more clear on what are the expected results in terms of experience for the user. Some example of questions we had :
-
We should be careful about how the pagination works: infinite scroll or what we have now?
How do filters behave : use one and get instant results ?
Apparently we are introducing autosave! This should be shown to the user in some ways. Maybe a message at the top of the page? "All changes saved" ?
So it's linked to 1. but design decisions are needed.
- The scope of the project is really wide, so we started to look at what would be the first minimal bits we want to ship in production. The proposal is the following :
The first release should only focus on:
- removing Angular / introducing Tailwind (or whatever we choose)
- improving the current experience of the product page by introducing the new design. But the scope of features remains the same.
This means that we propose to do a first release without tags (which are not intended to work with existing tags in this project, so difficult to explain to user in the first release) and bulk actions on products. To be clear: we are not saying we want to remove these features from the project, just not targeting to have them in the first release / reveal of the new page to users.
Any thoughts @openfoodfoundation/core-devs https://github.com/orgs/openfoodfoundation/teams/core-devs @openfoodfoundation/train-drivers-product-owners https://github.com/orgs/openfoodfoundation/teams/train-drivers-product-owners @openfoodfoundation/testers https://github.com/orgs/openfoodfoundation/teams/testers ?
— Reply to this email directly, view it on GitHub https://github.com/openfoodfoundation/openfoodnetwork/issues/7198#issuecomment-998021633, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAWGXSE6M6NKFL7FU7WDDPDUR5C55ANCNFSM4ZXDBRUQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID: @.***>
We had a little chat about the project today with @jibees
Summary:
We are still discovering new features hidden in the design! So again, for the purpose of scoping the first release to the bear minimum and ease dev work, the following changes will be made on the designs (I'm including stuff mentioned in my previous post + new stuff we discovered this morning):
Actions:
I tried to :
Would it be scope creep with the pagination to have the option to ‘show X results’ that defaults to smaller number but lets them change it? Seems that’s pretty standard and if we’re setting precedent for admin pagination handling here would be good to include?
I am sad to see tags go but I understand. I hope we can have them back soon because they are critical step towards removing Inventory
On 26 Jan 2022, at 8:45 pm, jibees @.***> wrote:
I tried to :
add pagination remove all references to tags remove all references to bulk actions (including checkbox then) add a "Filter Results" button It's not perfect, but it's a first iteration that can be improve https://user-images.githubusercontent.com/296452/151140176-f88633ae-807f-405f-8b3c-fab1d8849a5e.png — Reply to this email directly, view it on GitHub https://github.com/openfoodfoundation/openfoodnetwork/issues/7198#issuecomment-1022030680, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAWGXSCPFOO63LFEJDS3BLLUX67C5ANCNFSM4ZXDBRUQ. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you were mentioned.
Would it be scope creep with the pagination to have the option to ‘show X results’ that defaults to smaller number but lets them change it? Seems that’s pretty standard and if we’re setting precedent for admin pagination handling here would be good to include?
Right, we mention that during the chat we had, but I forgot to add in the design. Will do.
Thanks! Would it usually be down in the footer with the page numbers? I guess if setting it where you have it is more intuitive for them to be setting something that is saved as their default? (Like columns?)
On 27 Jan 2022, at 8:22 pm, jibees @.***> wrote:
https://user-images.githubusercontent.com/296452/151329704-86ff125e-942c-4b4c-8f84-5c409c8678dc.png — Reply to this email directly, view it on GitHub https://github.com/openfoodfoundation/openfoodnetwork/issues/7198#issuecomment-1023005426, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAWGXSBSLXWJMQO6OZWRW4TUYEFFLANCNFSM4ZXDBRUQ. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you were mentioned.
Currently we have them on the top left of the table. They are not triggered by the "filter results" button. So what's the easiest on the dev side @jibees ? To make them work with the filter button or outside the button?
I am sad to see tags go but I understand. I hope we can have them back soon because they are critical step towards removing Inventory
@kirstenalarsen Yep. It's because we agree on that that we've removed them actually. The way they were thought until now was just to add a new tag field NOT linked with the other tags in the system. Which - when discussing with the team - felt very weird for the user / difficult to explain. So the idea is to introduce them, but with a link with the existing tag system. I think that when we do this FR will not have any inventory user anymore :D
@jibees just noticing that your design is missing the action button per product, see: https://github.com/openfoodfoundation/openfoodnetwork/issues/8931
Also can we go up to 100 results per page? Or at least 50. 10 could be just one product and its variants, so it's tiny.
More generally: Now that have read every comments possible. I've found out that autosave wasn't planned at first. Here are the designs for the bottom button :
When a user saves the bottom bar displays a 'saving message' or if the user cancels the product list page refreshes.
Aaaaaaand do you need an issue for this bad boy?:
Let's have a call when you're back :)
hi! I hope it's not too late to comment. First I really like the new UI, very nice, more intuitive, and the fact that all the variants are unfolded will be really precious for users!
The only thing that bothers me is that the "edit", "duplicate" or "delete" buttons will now be hidden under an "Actions" button.
I think it is very nice to have them "outside", as you have direct access to it, it's more visible and it spares one more click. And for the "duplicate" button, it is very useful as you can stay on the button and click several times on it and it will create several new products.
As the process of creating or editing products is already long, I really think it's a good think to have them outside, and keep the "Actions" button only for bulk actions.
But maybe there's good reasons for this choice?
Before a full rollout, we should ensure that server monitoring is fully configured, so we can measure any impacts:
( I wasn't able to add this to the milestone because it's in a different repo)
I don't think we need this epic anymore :tada: (yes there is still work to do but we are managing it with BUU2 milestone now)
It caused me to look back at the original goal of this epic, which was to encourage Inventory users to use the Bulk Products screen. It seems like tagging is intended to do that, and maybe scrolling laterally (side-scrolling).
Hopefully we get to do that one day :)
@dacook yes we've never updated the epic content, but tagging will be on of the next priorities ;) Regarding side scrolling, do you think you could do a rough estimate? I wonder if we could fund this, I think it would be very helpful.
We can do a 1hr spike, but I think it will require a few rounds to get right. It might require some re-structuring of the code too. Also it's worth noting, it's probably not possible/practical for it to adapt to content (for example, if I have very long product names, the product column won't automatically expand). Maybe we would like to add column resizing but that's another story.
A very quick roundup of requirements:
When the viewport width is smaller, or a large number of columns is selected, And the columns reach a minimum width (to be experimented) and no longer fit on the screen, The remainder of the columns can be visible by horizontal scrolling to the right.
Considering:
I guess it depends how much we want to polish it.
Also, there's another enhancement we can do separately which will help for large screens. The Admin interface has a maximum width, but we can allow the table to break out of this:
Notion has a really cool way of incorporating this with side scrolling, but I'm not sure we need to try that: https://www.youtube.com/watch?v=TZ85oNlV7XA
What is the problem we are solving
As part of the network inception work, it's been highlighted several times that there's an internal interest to move away from the Inventory functionality altogether. It’s hard to understand for some users, it has been adopted from others when it’s not actually needed, and it also present some technical challenges that we want to minimize in the future.
We’ve also run interviews with producers and hub contributors, asking open ended questions and showing some digital prototypes. Some of the positive feedback we got was around a cleaner user interface for the product list, and consolidating the functionality available in the product list with what’s in inventory.
Slack channel
backoffice-ui-uplift
Discourse MAIN Backoffice Product List table uplift: https://community.openfoodnetwork.org/t/backoffice-product-list-table-user-interface-uplift/2098 Network Inception: https://community.openfoodnetwork.org/t/network-phase-1/1906 A new admin interface for OFN: https://community.openfoodnetwork.org/t/a-new-admin-interface-for-ofn/1784
Objectives and key metrics
Product: Reduce the number of people that use inventory just for ease of use Experience: Provide a better interface for all of OFN enterprises Technology: Move to a more modern system for the backoffice that might also attract new contributors Design: Build the foundations for a backoffice design system
We would measure the success of these objectives by looking at
How this could look like
Explanatory videos have been posted in the main Discourse thread for community feedback. The main prototypes are:
Create first product
Columns selection and table scrolling
Edit fields inline and add tags
Filter by categories and tags, sort
On demand and unit display fields
Figma files
Project specific: https://www.figma.com/file/kBvKYXnaNU0thSnKJUoyup/Product-List-UI-uplift Library: https://www.figma.com/file/A1RDmHC9dMxhjF7JTtiMuB/Components-library
Note: these mockups are based on the Material-UI react library. Icons are part of the Community Material Design Icons.
Milestones
This project is divided into 2 main milestones:
The first milestone replicates all of the existing functionality of the product list. The second milestone introduces a few new features that ideally would encourage the users above to migrate from inventory back to product list, specifically:
After milestone 1, the improvements could potentially be released to the public, hence splitting this into 2 chunks of work.