google apps script - Send drive folder list to listbox HTML -


i have script pulling folders in drive. want push data listbox has been created in html (uiapp deprecated)

the code have (note sheet.appendrow line doesn't work , if know why , feel explaining awesome!!)

function updatefolderslistbox(folderslistbox) {  var rootfolder = driveapp.getrootfolder(); var drivefolders = rootfolder.getfolders();    while (drivefolders.hasnext()) {   var addmonitoredfolder = drivefolders.next();   logger.log(addmonitoredfolder);   //sheet.appendrow(addmonitoredfolder); } 

the output of logs is:

[15-09-26 01:38:46:603 bst] test folder [15-09-26 01:38:46:605 bst] untitled folder [15-09-26 01:38:46:606 bst] notes 

now push listbox , add test folder, untitled folder , notes option:

  <select name="sometext" size="5">     <option>option1</option>   </select>  

how done?

put following code in script file:

function onopen() {   spreadsheetapp.getui().createmenu('dialog').additem('open', 'opendialog').addtoui(); };  function opendialog() {   var html = htmlservice.createhtmloutputfromfile('index')   .setsandboxmode(htmlservice.sandboxmode.iframe);   spreadsheetapp.getui().showmodaldialog(html, 'select google drive folder:'); };  function updatefolderslistbox() {     var rootfolder = driveapp.getrootfolder();   var drivefolders = rootfolder.getfolders();   var listnames = new array();   while (drivefolders.hasnext()) {     var addmonitoredfolder = drivefolders.next().getname();     listnames.push([addmonitoredfolder]);     //logger.log(addmonitoredfolder);     //sheet.appendrow(addmonitoredfolder);   }   return listnames; }; 

and put following code in html file 'index.html':

<!doctype html> <html>   <head>   <base target="_top">   </head>   <body>    <select id="menu">  </select>    <script   src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">   </script>   <script>   // code in function runs when page loaded.   $(function() {     google.script.run.withsuccesshandler(showthings)     .updatefolderslistbox();     google.script.run.withsuccesshandler(showmenu)     .updatefolderslistbox();     });    function showthings(things) {     var list = $('#things');     list.empty();     (var = 0; < things.length; i++) {       list.append('<li>' + things[i] + '</li>');     }   }    function showmenu(menuitems) {     var list = $('#menu');     list.find('option').remove();  // remove existing contents      (var = 0; < menuitems.length; i++) {       list.append('<option>' + menuitems[i] + '</option>');     }   }    </script>   </body> </html> 

now, run function 'opendialog' script editor.
or refresh spreadsheet , run function custom menu 'dialog' > 'open'.


Comments