• Tristan Cavelier's avatar
    DATETIMEFIELDUPDATE +1 (remove TRISTAN, console.log, ERP5TypeTestCase) · 9929bc4f
    Tristan Cavelier authored
                                         version   | generique       | render               | onchange            | onmodification      | ideale
    have A and B with empty reference,               keep typed        field reset to empty   keep typed            ?                     field reset empty
    goto A, click next to acces B,
    type in reference while B form is loading,
    B is loaded
    
    same with B reference = 1                        field set to 1    field set to 1         field set to 1        ?                     field set to 1
    
    have A with empty reference,                     keep typed        field reset to empty   field reset to empty  ?                     field reset to empty
    type in reference (hello),                       (hello)           ()                     ()                    (?)                   ()
    click View on confirm popup,
    A is reloaded
    
    have A with empty reference,                     keep typed        field reset to empty   field reset to empty  ?                     field reset to empty
    click View to reload the form,                   (hello2)          ()                     ()                    (?)                   ()
    type in reference (hello2),
    A is reloaded
    
    have A with empty reference,                     keep typed        field reset            field reset           ?                     keep typed (the form decides
    to update the field but should not ? no)
    type in reference (hello), save,                 (hello2)          (hello)                (hello) (why??)       (?)                   (hello2)
    type in reference (hello2),
    focus something else,
    A form is reloaded
    
    have A with empty reference,                     field reset       field reset            field reset           ?                     field reset (user should see
    the modification done server side)
    type in reference (hello), click save,           (world)           (world)                (world)               (?)                   (world)
    type in reference (hello2),
    focus something else,
    interaction add modifications to the reference
    (world),
    A form is reloaded
    
    ------------------------------------
    So !
    
    input.value MUST be updated on onStateChange if modification_dict.hasOwnProperty("value")
    this.state.value MUST be updated on getContent
    this.state.value MUST be updated on onEvent change
    
    ------------------------------------
    UNRELATED NOTES
    
    input.value reflects the typed value of the element
    gadget_input.getContent reflects the typed value of the element too
    
    input.value = "hello" replaces the current value to "hello", no matter the state of the input
    gadget_input.render({value: "hello"}) does not... because gadget.state.value does not really reflects the dom value.
      if gadget.state.value was reflecting the value, then
    gadget_input.render({value: "hello"}) reflects the current value to "hello", no matter the state of the input
    
    so the form could act : while saving, listen for changes/inputs, (now saved) get the new form but ignore it, put save to orange if changes/inputs were done
    9929bc4f
rjs_gadget_html5_input_js.js 8.13 KB