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
Post a Comment