freegle / iznik-nuxt Goto Github PK
View Code? Open in Web Editor NEWFreegle's web client
Home Page: https://www.ilovefreegle.org
License: GNU General Public License v2.0
Freegle's web client
Home Page: https://www.ilovefreegle.org
License: GNU General Public License v2.0
test
I'm always so relieved to have got photo upload working that I don't think much about whether it looks ok.
But filepond still looks quite busy. For example, you could have a thumbnail with a shading that progresses from left to right as a progress bar. The drop area doesn't need to show, especially on mobile.
In the old code we popped up confirm modals when the event/op was submitted. We should do the same.
<p>One of our volunteers will check over your opportunity, and then we'll publicise it to other freeglers.</p>
<p>Hope you find someone! Please make sure you get back to everyone who replies, so that they feel good about your organisation
(and Freegle!).</p>
<p>Freegle is free to use, but not free to run. If you can, <b>please donate £1</b> to keep us running - but anything you can give is very welcome.</p>
<a target="_blank" rel="noopener" data-realurl="true" href="https://freegle.in/paypalfundraiser">
<span class="btn btn-primary btn-lg">
<img alt="PayPal" class="img-thumbnail" src="https://www.paypalobjects.com/webstatic/mktg/logo/pp_cc_mark_37x23.jpg" />
Donate
</span>
</a>
and
<p>One of our volunteers will check over your event, and then we'll publicise it to other freeglers. Hope it goes well!</p>
<p>Freegle is free to use, but not free to run. If you can, <b>please donate £1</b> to keep us
running - but anything you can give is very welcome.</p>
<a target="_blank" rel="noopener" data-realurl="true" href="https://freegle.in/paypalfundraiser">
<span class="btn btn-primary btn-lg">
<img alt="PayPal" class="img-thumbnail" src="https://www.paypalobjects.com/webstatic/mktg/logo/pp_cc_mark_37x23.jpg" />
Donate
</span>
</a>
You can prompt users to install your mobile app if they're on mobile - we used to do this in the old client.
We might also want to suppress the nuxt PWA nudge to add to the home screen. We'd rather they installed the app.
We should update the way we are overriding the bootstrap variables. If we would like to continue with the same style then we should follow the directions in "Using custom Bootstrap SCSS" in this doc https://bootstrap-vue.js.org/docs/. We could then override variables like $success in _variables.scss. This could be used for background colours, foreground colours, border colours, breakpoints etc.
The other option would be to not use the bootstrap default colours and just use regular classes.
At least these places should use vuelidate:
There may be others - have a brief think.
Stop laughing, at the back. But specifically:
The way we ask people to specify their availabilty is clunky.
We display in slots; these don't work for everyone, but no slots will, and most people won't want to fill out lots of detail. If we could work out a good UX, we would allow something which allowed the user to expand to fill out more detail (hours, 15 minute segments) if they wanted. We'd need to also update the chat and email code which matches up when someone is available, so this is a substantial change.
@edwh is discussing this with UX volunteers.
If you search messages by keyword in ModTools, they'll show up in Freegle Direct in My Posts. They shouldn't.
This is currently coded to use group ids, which has the effect that the URLs have numbers in them. They would look better if they used group.nameshort, which is unique. It's possible to fetch a group using name as well as id.
The store is persisted asynchronously - which means that there may be issues where we make a store change then lose it. This is probably ok now:
The store is loaded asynchronously - which means that there may be issues where it has not been loaded before the rest of the code kicks in. Ideally we would be confident that it has been loaded on the client. @nicksellen did earlier work that means this may now be true, but needs review. Specific cases to consider:
help.vue contains hard links (not nuxt-link) which don't work in mobile app and cause a page load on the web
test
This is neater than redefining them. It applies in quite a few places.
In the old client, there was a lot of fade in/out.
I don't know whether this was a good idea or a bad idea overall. Discuss.
There is a fade-enter transition in global.scss, but when I used it for messages the computed emessage property didn't appear for some reason I don't understand.
@JayyajGH spotted this:
https://vuejs.org/v2/api/#name
Presumably pages too, since they're components really.
It's quite tedious to add them manually into each component, though. And they are all going to be the same as the filename.
Is there any magic we can do to automatically get a name property added based on the filename? @nicksellen , this is your kind of build area.
Currently the site has a number of different major page layouts but this is dealt with on a page by page basis. I propose that we should deal with it using different nuxt page layouts.
For example:
Layout1
<template>
<div>
<site-header></site-header>
<nuxt />
<site-footer></site-footer>
</div>
</template>
Layout2
<template>
<div>
<site-header></site-header>
<sidebar option1>
<nuxt />
<sidebar option1 option2>
<site-footer></site-footer>
</div>
</template>
This would also involve refactoring the header and footer styles and logic out into separate components.
Little bits and pieces which could be slightly prettier, all fairly quick.
Are we okay to create a central stylesheet / sass file to run all the styles from, rather than inline to the vue-components?
I don't seem to be able to edit my availability on Freegle. Clicking the checkmarks doesn't seem to do anything (see below).
Just getting my version up to date and I get the above error. Did you kill something @edwh
NewUser is basically the intro for new users. Should it be like this? A multi-step modal? Whatever
it is it should look better.
The tooltips should be prettier.
There are some places where what we have feels old-fashioned, staid, table-driven, form-like, desktop. They need a better design for desktop, and might need to be different on mobile. Why do we have no gesture handling on the site at all?
We discussed the idea to add automated testing in slack already (last discussion is https://freegle.slack.com/archives/C6LCTJ280/p1576346351010700). There is broad agreement about the need to add some, but we need to work out the exact approach.
I recently evaluated frontend testing approaches for https://trustroots.org and you can see my evaluation in this comment. That concerns using react (whereas we use vue), but the philosophy is the same, and even the library we settled on there has a vue variant.
The key bit from my evaluation I think is:
Philosophy generally summed up as:
testing using user facing features instead of implementation details
Have a look at these articles:
You can see an example from trustroots how a test file might look, key points:
nextTick
stuff)Those tests are for quite focused individual components, whereas in iznik most of the code is in page level components that do quite a lot of different things, and interact with the store a lot, so it will be harder, we may need to split things out into more separate components (which would be good idea in general imo). But also would like to be test those full page-level components.
I welcome any discussion on these approaches! I think we should throw around ideas until we are happy with an approach, before starting work on this.
There are several error cases which need review to check we handle them.
Some may be mitigated by the global approach we have for spotting API errors and popping up a toast.
Specific error cases to review and perhaps test.
Various accessibility issues. We've not yet done a proper accessibility review; this issue is a placeholder for specific things we already know.
Record who downloads a poster, then we can email a chaseup later.
Ask people to go and replace the poster after a while. Needs email chaseups
In ProfileModal:
In the actual profile page:
Wherever we have b-img, we should have a broken image handler. We don't do this consistently.
The type of image we should replace it with depends on the context in which it's used - which means probably we should be having components for these anyway.
We're starting this with a profile image component - we'll keep at it until we see what's left.
Some pages don't have infinite scrolls, but probably should.
Stories, and stories for a group
Jobs for a location
May need server changes.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.