Forms 1 Submission per User

It would be great for us to control where a form defaults to after submit. This way we can prevent users from double submitting after forms. This way I can create a visibility setting to make Form button Not show if username is detected in form results.

We can kinda do this now but the delay is too long for the app to refresh, so the form button is left open and people tend to double click because they don’t see the results right away. With a controlled landing page I can bring the user outside of the form area and it will give the app a few more seconds to detect the submission and cause the button to disappear under the visibility settings.

I can now create a Result “Waiting Area” without the form button. and land them there. with a message. “Processing your results please wait”

The alternative is for glide to keep do the invisibility on their side and not make the form button come back until results have been populated. This way the Glide app can detect the submission and control visibility. No landing page needed.

This is similar to Google forms, 1 submission per user.

1 Like

Although you can’t currently redirect do a different view after submitting the form, you should be able to immediately hide the form button after a submit. All you need is to first create a template column that pulls the signed in user email into the sheet that contains the form button. Then create a relation column to link the email to the email in the form response sheet. Then just set visibility on the form button if the relation is empty. You shouldn’t need to do anything sheet side and there won’t be a delay.

Yes that is what I have now, but it does not hide instantly. It takes a few seconds for glide to submit, then for the google sheet to pull the useremail over the other sheet, and then for glide to upload the changes in the other sheet, in order to detect and hide the button.

I am currently hiding the button, but its taking too long and my users are creating duplicates because after they hit submit they see nothing but the button reappear. but my button does disappear eventually. But not many people pay attention to the message.

I currently have to do this…

Can’t you just submit the user email with the form using the email special value? There should be absolutely no delay. All the functionality I mentioned above is handled within glide, so there is no delay waiting for the sheet to sync.

1 Like

That’s what I do and it is hidden immediately, no delay :+1:

Yes I do submit the user email, but remember, The Submit button is not on the same page as the form results, so we have to use a INLINE relation component and then base the visibility of the button on the visibility of that component.

However Glides visibility logic seems to have an error, when I select visibility if INLINE relational component is empty, it still shows the button because glide is detecting that the component is not empty behind the scenes from other submission. This logic only works if the entire relation is empty and has no prior submission whether visible or invisible.

Ideally the ONE TO ONE relational component would work but, becasue the form will have many submission there is no unique tie from the form submission page where the button and the form results area where the form goes. So I can’t create a one to one relation field.

I understand that. That’s why you use the template filled with the signed in user and a relation to the form sheet placed within the sheet you are using for your tab. Unless you still want the same user to make multiple submissions, but with a delay before the form button comes back.

Let me see if I understand you correctly.
On the sheet that host the submit button, you want me to place an extra column that sniffs out any user that has a form submission from that page.? And then use the visiblity to say if username is found in that column then don’t show button?

Is that what you are saying.

No, first create a template that pulls the signed in user email from the user profile. Use that single email to create a relation to the form sheet. If the relation is empty, that user didn’t submit anything to the form sheet and you can then display the button based on relation ‘is empty’.

Sorry but you lost me with the terminology “Template”. Could you rephrase.do you mean column?

IF so that is what I have now. I have a column that is constantly on the lookout for new submission pertaining to that topic and concatenate all the users in the “Students” column. However that takes time for google to do that in the back end and for glide to realize and upload the changes to make the button disappear.

What you are suggesting is done in post submission and will need processing. It is not done instantly because a button cant post multiple "Username in the same box. Unless i’m still not getting the method.

I mean a template column:

You’re doing it the hard way. You don’t need any sheet formulas.
First make sure you have user profiles enabled:
https://docs.glideapps.com/all/reference/privacy-and-per-user-data/user-profiles

Next create a template column that looks like this:

Finally create a relation column that looks like this:
image

Absolutely no processing on the google sheet side. The template column will dynamically change uniquely base on the user that is signed in at the time.

1 Like

Just to add…if you have multiple topics and a user can submit for each topic, then I would further add Topic joined with email in the template column. You will also need to create the same template in the form sheet, but instead of user profile email, you would join Topic and email from the the form submission. Then you would change your relation to link both templates together. That way the relation will only pull back rows if that user submitted the form for that specific topic.

1 Like

Ok, I’ll give it a whirl. I’ll let you know how it went. Thank you for the details.

1 Like

Works Great, Very Creative use of the template component. Thanks Alot. Man. I didn’t know that templates existed. or let alone what it was used for. I"m going to have to implement it throughout my app now. The possibilities are endless. I’ve got to start keeping up with the upgrades :slight_smile:
Thanks again.

1 Like

Yes I did have to add the user - topic template…Thx

1 Like

You’ve got some catching up to do. We’ve had template columns for almost a year. :wink:

https://community.glideapps.com/t/please-test-template-column/794

Yea its all in the name. There is no way I would logically look for “Templates” to do a relational lookup some component names say what they do, this one you got to really know it. This name fooled me…They should call it Concatenate, Join, Merge, Mail Merge, Template is way off LOL :smile:

1 Like

Hehe, that’s fair. I suppose template comes into play because you can set up a “template” of keywords, such as (name, address, email, phone) and then set it up to replace name with the person’s name, address with the person’s address, and so on. In your case, it’s a template of Topic and Email and you just replace the words with the actual values.

It has lot’s of uses, such as simple concat style formatting, or using it to create complex relations, or a lot of times I’ll use it to “lock in” the formatting of a date, or numeric column where you set the formatting for each within the data editor. Otherwise the underlying datetime or unrounded decimal of a number is preserved underneath the formatting you set for that column, and can give unexpected results when grouping by date or further using a math column where you need a rounded value from a previous column to be part of the equation.

But yes, in most cases it used as a concat.

1 Like