Skip to content
  • Leigh B. Stoller's avatar
    A morass of form changes. The main goals are to avoid the loss of info · 9ac3d870
    Leigh B. Stoller authored
    when backing up (cause of an error that needs to be fixed) since not
    all browsers handle this the same. Instead, redraw the form with all
    of the original info and a list of error messages at the top.
    Conceptually simple change, but it turns out to be a pain to implement
    since you need to combine the form and processing code in one page
    (well, its just a lot easier to do that), and then change all of the
    forms to deal with a "default" value. That is, each different kind of
    input tag (text, radio, select, checkbox, etc.) requires slightly
    different changes to do that. Lots of forms, lots of entries on the
    forms, and its a long slow tedious process. Much nicer though, although
    the code is a bit harder to grok. At the same time, I added a lot more
    sanity checks of the information being passed in.
    
    The other change is to deal with how browsers handle the back button
    on a form thats been properly submitted. Not all browsers use
    the cache directives the same, and I was often typing back, only to
    have some form get reposted. Thats a major pain in the butt. The way
    to deal with that is to have the processor send out a Location header,
    which modifies the browser history so that the post is no longer in
    the history. You back up straight to the unposted form (if its in the
    cache). I've done this to only some forms, since its a bit of a pain
    to rework things so that you can jump ahead to a page that spits out
    the requisite warm fuzzies for the specific operation just completed.
    
    I've done newproject, joinproject, update user info, newimageid, and
    newimaged_dz forms.
    9ac3d870