Store persistent HTML form data in Google Script -


i wrote google script web app selected gmail labels user-defined google drive location. forml.html presents data in tabular format. on each row lives index (which checkbox), label , drive target.

we data in each row persist 1 page load next selected row stays selected. after figure out how make data persist, can build trigger make app run on schedule , selected labels. thoughts on how best achieve effect of storing html form data on time? i'm thinking of using properties service, don't know how can change initial doget choose between blank form , form preexisting data.

form.html

<div id="formdiv">     <form id="myform" target="_self">         <table class="table table-hover">             <thead>                 <tr>                     <th scope="col">                         <h3 span style="font-family:arial,helvetica,sans-serif;">select</span></th>                     <th scope="col">                         <h3 span style="font-family:arial,helvetica,sans-serif;">label</span></th>                     <th scope="col">                         <h3 span style="font-family:arial,helvetica,sans-serif;">drive target</span></th>                 </tr>             </thead>             <tbody>                 <? var label = gmailapp.getuserlabels();                    (i = 0; < label.length; i++) { ?>                     <tr>                     <td style="text-align: center;">                         <span style="font-family:arial,helvetica,sans-serif;"><input id="index" type="checkbox" name="index" value="<?= [i]; ?>"  /></span></td>                     <td>                         <span style="font-family:arial,helvetica,sans-serif;"><input id="label" type="text" style="border:none" size="60" name="label" value="<?= label[i].getname(); ?>" readonly /></span></td>                     <td>                         <span style="font-family:arial,helvetica,sans-serif;">gmail backup/<input id="target" type="text" size="60" maxlength="128" name="target" value="<?= label[i].getname(); ?>" /></span></td>                 </tr>                 <? } ?>             </tbody>         </table>         <p><input type="submit" value="test" onclick="google.script.run.gmailbackup(this.parentnode.parentnode)" />            </p>     </form> </div> 

code.gs

    function doget() {       var template = htmlservice.createtemplatefromfile("form")       .evaluate()       .setsandboxmode(htmlservice.sandboxmode.native);       return template;     }      function gmailbackup(template) {       // set html form variables       var indices = template.index;       var labels = template.label;       var targets = template.target;       (i = 0; < indices.length; i++) {         var index = indices[i].tostring();         var label = labels[indices[i]].tostring();         var target = "gmail backup/" + targets[indices[i]].tostring();         ...     } 

i ended using propertiesservice store html form properties on per-user basis. looks work quite (especially once find out data stored per where google script propertiesservice store data?).

from form.html

<input onclick="google.script.run.setproperties(this.parentnode.parentnode);" type="submit" value="save" > 

from code.gs

function setproperties(form) {   var filledform = propertiesservice.getuserproperties().setproperty("form", form); }