Giter Club home page Giter Club logo

Comments (7)

thejonroberts avatar thejonroberts commented on August 17, 2024 2

Opened a PR (link above). I said that it "addressed" this issue rather than "resolves" since we don't know the precise issue. It will not auto-close this issue, we should probably confirm with users whether or not it has improved?

from casa.

thejonroberts avatar thejonroberts commented on August 17, 2024

I would think that using browser native date input would be more consistent, this is a tough one.

I looked at this a bit. Didn't find anything that would obviously lead to the bug -- but I have some thoughts.

  1. CaseContact model uses a strange enum implementation for string column status. Rails may get confused by this (and devs certainly could be -- I was). This enum setup is how the status active?, started?, details?, etc.. methods used by the wicked wizard form are setup, and don't seem to do anything else. This is probably fine.
  2. CaseContact occurred_at has three validations, that run only if status is active_or_details? (determined by above).
    • We can change them to run anytime record is not started, because after first form details page, where date selection happens, contact should never go back to 'started' status. This may help validations run when expected, especially during edits -- I'm unsure what status should be during an edit step, do we kick things back from active to the edit form step? What if that edit is abandoned? We don't update status once status == 'active'

I don't think this will fix the issue. But it may give better validation feedback to users? I have done some work already. Can look at the work here.

We could also log attributes when contacts are update? Get some actual idea of what date/format is sent...

I think that in order to get some idea of what is going on, we should probably know what browsers (and versions, if possible) users are having this trouble on.

from casa.

thejonroberts avatar thejonroberts commented on August 17, 2024

Can ignore my previous comment.

One idea I have is to change the date input from the RangedDatePicker component to a straight rails form.date_field, and let standard browser & rails validations happen. RangedDatePicker does not set standard max_date/min_date for the input but sets them in data attributes, and handles the range validation via js (in app/javascript/src/validated_form.js) to do this:

Image

(note also 'minimize' does nothing on it currently (in safari at least), and will cover fields / submit button)

It would also be more consistent with validation for rest of the form. Is changing that an option?

The only other idea I have is to make a tagged log on every occurred_at change with relevant info.

from casa.

thejonroberts avatar thejonroberts commented on August 17, 2024

The javascript from app/javascript/src/case_contact.js also runs every time the form (or any page?) loads and changes the value of the input, in a kind of hacky way that browser input may not like?

function enGBDateString (date) {
  return date.toLocaleDateString('en-GB').split('/').reverse().join('-')
}

from casa.

thejonroberts avatar thejonroberts commented on August 17, 2024

Taking out that date conversion on page load doesn't break any other specs, so I'll work up a PR for that. I can't guarantee it's the issue, but seems very likely to me!

from casa.

elasticspoon avatar elasticspoon commented on August 17, 2024

interesting. A thing that I was thinking of and I am not sure if it is even logged as an issue currently is there is a page /all_casa_admins/patch_notes. And on that page if you set a patch note often times after you save the page and reload some of the drop down inputs will change.

I could not replicate what the volunteer was seeing which is why I don't have much to add here but that error is sorta similar so maybe there is a common thread?

from casa.

thejonroberts avatar thejonroberts commented on August 17, 2024

hmm... looks like a similar setup in app/javascript/src/all_casa_admin/patch_notes.js, which uses same notification library, and does some heavy DOM manipulation, but separate from the javascript involved here.

from casa.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.