Component visiblity

Hello everyba\oby !

I am working on building a 30 days challenge with Glideapps.
I need each component to be visible only once the previous one is done and validated.

I dont’t find how to do it, does anybody have a clue?

Thank’s for your help
Marie

How would you mark a challenge as done and validated?

Hi, thanks for asking :wink:
I thought of a validation button as "done"or “validate”.

The ideal would be a double condition : day challenge validate by the participant, and the action date arrive to show the next challenge (this date could be passed but not before). Is it clear ?

As I am not a developer, neither an expert and that it is for an MVP, I need to keep it simple to implement…
Thanks for your help.
Have a nice day
Marie

Do you have any screenshots of what your app looks like so far? It sounds like a lot of what you can be achieved with filtering or component visibility. You can simply add a switch (possibly user specific) if that’s how you want to mark a challenge as complete. If you need a date with the challenge, then I would suggest a form button to submit the switch or checkbox along with the user and date to another sheet. Then use relations to control what shows to the user. It’s really hard to give specifics without seeing the app or understanding how you want the app to flow.

Here is the link to see the app as it is right now: gmqid.glideapp.io
It would be easier if I could show you the sheet and explain you exactly what I want. Maybe be could do a short call via zoom or hangout if you have 10 minutes?

Le jeu. 23 avr. 2020 à 20:24, Jeff Hager via Glide Community glideapps@discoursemail.com a écrit :

In your app you have a tab for each week. Let’s focus on your Week 1 tab. You have a list of J1, J2, J3, and so on. Do you want to only one day to show up in the list, and then once you validate that it’s finished, the next one shows up, or does each one show based on a date.

So for example, today only J1 will show. Tomorrow J2 will show. If you validate that J1 is completed, then only J2 will show?

Or is it not based on date and J1 will always show until the user validates that they completed it. Then J2 will show until the complete that one?

Hi, sorry for the delay of my response… Ideally, it would be both conditions. I mean that the user has to first validate J1, and second, that there is at least 24 hours before J2 be accessible.

If it is not possible, a least if you validate that J1 is completed, then only J2 will show.

Hi, would you have 5 min to finish with my case ? Ideally, it would be both conditions. I mean that the user has to first validate J1, and second, that there is at least 24 hours before J2 be accessible.

If it is not possible, a least if you validate that J1 is completed, then only J2 will show.
thanks again for your help!

I created a sample app for you. This is really complicated to explain, but I’ll try my best.
Here’s the link to the app. You should be able to copy it.

wdsip.glideapp.io

Challenges Sheet - This is a basic list of all the challenges.

  • Challenge - Sheet Column - The challenge Name
  • Description - Sheet Column - Description of the Challenge
  • rel-Seminar - Glide Column - This is a relation from the challenge back to itself. The tab will only show one detail record when we use the Detail Layout, but I wanted an inline list Card Layout, so the relation of the currently viewed row will only show one inline list card.
  • rel-Completed - Glide Column - This is a relation that links the Challenge to the if-CompletedChallenge column in the Completed Challenges sheet. I’ll explain later, but the relation will only find a match if the signed in user completed a challenge.
  • lkup-CompletedDate - This is a lookup column that uses the rel-Completed relation to bring back the completed date for use in filtering which challenge is displayed.
  • tmp-CompletedChallengeButtonLink - This is template column with a hashtag used to create a button that does nothing when clicked. This button will be displayed when the challenge is completed for the user so they cannot submit a challenge again.
  • if-ComeBackTomorrow - this is an if/then column that will fill with text indicating that the challenge is completed and to come back tomorrow. This will display in the card as a reminder that the challenge has been completed.

Completed Challenges sheet - This will store all challenges that all users have completed.

  • Challenge - The challenge that was completed.
  • Email - The email of the user that completed the challenge.
  • Date/Time - The current Date and Time that the user completed the challenge.
  • Confirm - Stores the checkbox that the user needs to check to confirm that they completed the challenge.
  • if-CompletedChallenge - This is an if/then column that will write the challenge name to the column only if the email in that row is the signed in user. This is the key that makes the relation and lookup on the Challenges sheet work. That relation will only return something if the signed in user completed a challenge and it was submitted to the Completed Challenges sheet. There is more on how that works here: List Relation "Data"

The app’s main tab is using the Challenges sheet and displaying using the Details Style Layout. This means that the first row that matches the filter and sort order of the sheet will be the first row that’s displayed. This tab will display the record of the first row that either has a mathing lkup-CompletedDate that’s empty, or the first row that has a matching lkup-CompletedDate that is on or after Today. So if a challenge has not completed, it will show that challenge. Once it’s completed, it will still show until after midnight (it’s not 24 hours, but it is the next day). Then the next challenge is shown because the lkup-CompletedDate is empty.

Inside the challenge details is a form button. This is the only way to be able to submit a new record to the Challenges Completed sheet while also automatically including the Challenge name, the user’s email, and the completed date. On the form the user will need to check a Confirm checkbox to allow them to submit the form. Since there isn’t much to show in the form, I added some text to explain to the user how to submit.

Back on the Challenge details, there are two buttons with visibility conditions set. The form button will display if the rel-Completed relation is empty, meaning there isn’t a matching completed challenge found in the Challenges Completed sheet for that user. Once completed, then there is a Challenge Completed button with the Open Link action. This button will only display if the rel-Completed relation is not empty, meaning that a completed challenge was found in the Challenge Completed sheet for that user. The tmp-CompletedChallengeButtonLink column with the hashtag is what’s used for the link to open on the button. This will cause the button to basically do nothing. Since the challenge is completed, there is nothing that the button needs to do.

Best of luck completing your app.

2 Likes

WOW, thank you so much Jeff for your time and your help !!! I am really greatfull!
I will try this !
I wish you the best for the end of this strange covid19 period!

1 Like