How could I validate field values on client side?

pocpoc
edited February 4, 2020 in Questions
Since we could prevent users from adding a new past calendar event.
How could I add the validation rule before saving a new record?

In my case, I have a record with date value. the new record will be saved once a user click the custom button which will trigger save-model events

I need to make sure the datetime value is great than now. How could I do that?
Any documentation?

Thanks so much.

image
image


Comments

  • Mark DeSimoneMark DeSimone 🛠️ 
    edited February 4, 2020
    Hi Poc,

    It might be possible to use a branch in your save action, that checks if the datetime value is greater-than or equal to "now." You would need to set up a formula to evaluate this on the branch action. If the formula evaluates to true (in other words, if the event datetime is > now, then the action sequence could be set up to run further actions, like saving the changes in your model. You could then set up a second branch that uses the opposite formula; if the event datetime is < now, run a separate set of actions, like blocking the UI and showing a message like "Event date can't be in the past." 

    It could look something like (NOW() > {{$Model.yourmodelname.data.0.event_time__c}}), which would evaluate to true if the user chose an event_time__c in the future. The specifics will depend on what your models and fields look like.

    To set up the formula, you can review our documentation here: https://docs.skuid.com/latest/en/skuid/models/ui-only-models-fields.html

    and to learn more about how the branch actions work, take a look at the highlighted sections of our Action Framework documentation: https://docs.skuid.com/latest/en/skuid/action-framework/action-framework.html?highlight=branch

    Edit: You may also need to read about merge syntax and global merge variables to understand how to refer to fields when using formulas.

    Hope this helps!
  • pocpoc
    edited July 18, 2017
    Extremely appreciate your answer. Will look into it.
  • pocpoc
    edited July 18, 2017
    There's a usability issue when adopt your solution.
    It seems the save-actions will be triggered only if the MeetingSchedule model has been updated. However,  there are more models dependent to the MeetingSchedule model.

    When the dependent models changes I also wanna trigger the save action.
    But now It's not working.

    any idea?

    image
  • Mark DeSimoneMark DeSimone 🛠️ 
    edited July 18, 2017
    I believe you can set up a model action on the dependent model that will trigger other desired save actions whenever the dependent model is saved.
  • pocpoc
    edited July 18, 2017
    Hi Mark,
    Sorry for letting you misunderstood.
    My point is  That is I could NOT save the model D if I haven't update model A.
    This issue happens when I applied the branch solution.
    Is there any workaround can let me update the B,C,D values without changing model A data?
    Thank you so much.

    image
  • Mark DeSimoneMark DeSimone 🛠️ 
    edited July 18, 2017
    I think I understand. If you want this action sequence to always save b c and d, regardless of what happens in the branch, you can just put the save actions for b, c and d outside the branch, and after it. They'll then be run even if the branch evaluates to false. you'll need to run the save actions for b, c, and d before the branch.

    Edit: I've stricken through an incorrect statement, and corrected it. For the best explanation and full context of these features, I'd always recommend consulting the documentation, which I had linked earlier in this conversation.
  • pocpoc
    edited July 18, 2017
    Thanks for your point out. Somehow, B C D still rely on A. All the data will be saved if the branch is TRUE. the condition is determined by A's data.

  • pocpoc
    edited July 18, 2017
    Update: if I moved out the b,c,d out of the IF branch. Then, the result will be INCORRECT. because I don't want to save any change if the BRANCH A condition is not satisfied.

  • Mark DeSimoneMark DeSimone 🛠️ 
    edited July 18, 2017
    Is your goal to only make A part of the branch? And B, C, and D should happen every time the action sequence runs? I misspoke in my previous comment about whether the actions after the branch will run. 
    • If the formula is true, then the If-True actions connected to this branch will occur—ignoring any actions listed after the branch action in the Action Framework sequence.
    • If the formula is false, Skuid will skip the branch—and all actions listed within itand proceedwith any actions listed after the branch.
    To illustrate, look at this screenshot. If the branch action's formula evaluates as true, then Model A will be saved, and the other actions beneath will not run. If the branch evaluates to false, then the other actions below, saving models B, C and D should run instead. image

    If you want models B, C and D to be saved every time this action sequence fires off, and ONLY model A should be affected by the branch being true/false, then you might be able to set up the sequence like this. In this sequence, nothing above the branch is affected by the branch being true or false.  Sorry for any confusion!
    image
  • pocpoc
    edited July 18, 2017
    it makes more sense for your detailed explanation. Thanks so much. 
    If we can always trigger the "IF BRANCH" even the condition is not changed on that context model. Things will be more easier :)
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!