Comments (13)
Today in the TSC call the question of the 'Add New Group?' modal came up, and whether we should get rid of it, and how that relates to these changes. After reviewing things I am thinking the following:
First: If we're going to maintain the left-to-right swipe metaphor/technique, I think the modal is a pretty good solution to the problem of how to prompt for adding a new repeat item. I can't think of any way of getting the user up into the jump screen to add a new item that wouldn't be jarring and confusing.
Second: We might want to add an option to automatically insert the first item. It seems in the vast majority of cases you're going to want at least one item, and I think it would be less jarring to the user then because they'd know they are already entering data about e.g. people, so the request to add another person makes sense. The way it is now, the first you hear about "people" is an abrupt and slightly cryptic modal.
For those rare cases where you don't want at least one repeat item, we could perhaps add an item to the question view dropdown for 'Delete present repeat item', which would then just dump you into the next question after the repeat group. (Or folks could use the new trashcan icon, but then they'd have to do a few clicks to get back to the question view in the right place.)
Third: It would be nice to spiff up the text in the repeat. Right now it says e.g. "Add another 'People' group?" Yikes! If we had some way in the XForms spec of specifying the noun or even the full string here, that would make things a lot more usable. So it could instead say "Add another person?" (noun-only version) or something totally custom like "Are there any more people in this household you'd like to interview?". For nested repeats it would be nice to be able to mention the parent item, like "Does Sally have any more pets?" The modal title is currently "Add New Group?" or "Add One More Group?" I think there is a title just by convention, but it's very similar to the body. I think it could be nixed.
If folks agree with this approach I could incorporate it into this proposal or do a separate one. Might be nice to include it since it's relevant.
from roadmap.
I think it would be helpful to consider the changes to the repeat dialog separately. Those will require specification amendments and I don't think it needs to block progress on the other UX changes.
There is deep in JavaRosa and early form specifications the concept of a "repeat juncture" - https://forum.opendatakit.org/t/change-static-text-in-groups-prompt/1505/ that allows for more customization. That might be something to look into and perhaps we could use just jr:addCaption
for customizing the existing dialog.
from roadmap.
We might want to add an option to automatically insert the first item.
Take a look at XLSForm/pyxform#182 for an explanation of why a first item doesn't show up for forms created with XLSForm (it's because jr:template
always gets included) and a possible way of addressing it. We're currently thinking of always including a first instance in addition to the template instance.
from roadmap.
Just noting here that there have been several mentions on the forum in support of having a new screen in the question flow "between" repeat items that could be used to manage same. I am still not convinced of this approach (I still think some kind of sidebar or flyout would be better) but in any case I see it as orthogonal to what has been proposed here. The two could end up being complimentary, and I think what's being proposed in the forum is quite more involved than the changes here.
I suggest we continue with this plan and then discuss next steps when it's done.
from roadmap.
One thing I just realized it would be nice to squeeze in here: right now I think a repeat group doesn't show up in the jump screen if it has no instances. How hard would it be to change that?
from roadmap.
One thing I just realized it would be nice to squeeze in here: right now I think a repeat group doesn't show up in the jump screen if it has no instances. How hard would it be to change that?
@smoyth I was wondering about that as well because I have utilized other mobile form solutions where repeat groups without instances still show up with its title and description along with an Add New Item
button.
I realized there's a +
icon in the UI to add a new item to the repeat group. Would attaching it to that functionality suffice?
from roadmap.
@smoyth I was looking at your mockups and I realized a comment about sibling to sibling navigation for the transition effect that takes places from a question row to the form input screen. I am not sure if that transition would work well with questions based on the examples I have seen of it where the transitions primarily take place with elements that are on the same hierarchy such as tabs but in this case I think a parent to sibling transition is being taken place and that animation seems a bit more fitting. Let me know what you think and if you have any examples of the sibling to sibling effect that would demonstrate its fit.
from roadmap.
In terms of the new proposed way of navigation based on my analysis of the existing code and what needs to be done this is the first approach that comes to mind.
-
When the
FormHierarchyViewActivity
loads the hierarchy and a repeat group is clicked, the current group can then be center of focus and therefreshView
functionality just does a reload that clears out theHierarchyElement
collection binded to the list and adds only the items that are within the group itself. -
A whole new Hierarchy screen could be launched so that it's extremely clear that navigating to a repeat group goes to a seperate screen. This would utilize some of the ideas from number 1 where the Hierarchy list would simply load items within the group but the
collapsed
andexpanded
functionality would be removed.
I think utilizing the (2) second approach is what's best because we are able to utilize Android's navigation stack easily by adding a new activity to the stack.
The only advantage of (1) would be the ability to only change a portion of the screen without having to do a full navigation and the list animations would be smooth.
from roadmap.
Regarding empty groups -- I'm not sure I quite understand your comment. The + would appear on the screen for the repeat group. But we can't even get to that screen if there are no instances, since the group doesn't show up at all. If we made it show up, then when you tap on it, it would go to a screen saying e.g. 'There are no items in this group', then you could use the + button to add one.
Like this: https://app.moqups.com/sassafras/4WPu8QH3er/view/page/aa2a74b83
from roadmap.
@jd-alexander Regarding transition animations I trust your judgement here.
from roadmap.
@jd-alexander Regarding the implementation directions, I'm not that familiar with the code but just based on your comments #2 sounds better to me. I would expect that the expand/collapse should go and whatever happens when you go from a repeat instance view to the top-level view should also happen when you now go from repeat instance view to repeat group view. They are all just steps on the hierarchy. Unless I am missing a big piece of knowledge here...
from roadmap.
No you aren't missing anything. You are right on the ball!
from roadmap.
Closed in getodk/collect#2740
from roadmap.
Related Issues (20)
- Tool maintenance:
- Remove ODK Validate and have pyxform call javarosa directly.
- ODK Aggregate to Central migration strategy HOT 2
- social media evangelist
- Code contributor strategy HOT 1
- External funding strategy (for code, docs, ...) HOT 1
- Docs contributor strategy
- refactor Collect (low priority, no immediate user benefit) HOT 1
- Pushing arbitrary messages to all devices
- Briefcase Database: https://docs.google.com/document/d/1blKmhqSPHytct81uQLclYHprZjQMgp-bUpvvt6Qu13k/edit
- Aggregate: Data consistency checks HOT 1
- Collect: Non linear travel through form
- JavaRosa: Add full XPath support
- Collect: Form linking (e.g. Q5 of Form A goes to Q2 of Form B)
- Collect: Refer to data in previous versions of forms HOT 1
- Collect: Refer to data in another form HOT 1
- Create automatic background recording of interview HOT 2
- Add native audio recording for audio type questions HOT 1
- Ability to audit, edit, delete submissions HOT 2
- Collect: User profiles (app look/feel, all settings) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from roadmap.