"e" undefined Google Script error
I recently asked this question: Have a listbox populate with every folder
in myDrive
I got an answer (Thanks to Serge insas for the help!) But i am trying to
get what he made into my current UI. I have the listbox made and
everything but the function that he made called, "function folderSelect"
when i try and move it over to my UI gives me a "e undefined" error when i
run the script. I also need to make sure that when i select that folder in
the drop down menu, that when the document is generated, it saves that
document in that folder. (sorry that I have asked so many questions about
all of this. I try to give it a try myself doing what I need to do before
I come here but it is hard when I have no idea what I am doing.)
PasteBin for current project: http://pastebin.com/GVSvfcqG
Here is what I have so far:
function getTemplates() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
var app = UiApp.createApplication().setTitle('Generate from template');
// Create a grid with 3 text boxes and corresponding labels
var grid = app.createGrid(5, 2);
grid.setWidget(0, 0, app.createLabel('Template name:'));
var list = app.createListBox();
list.setName('Templates');
grid.setWidget(0, 1, list);
var docs = DocsList.getFolder("Templates").getFilesByType("document");
for (var i = 0; i < docs.length; i++) {
list.addItem(docs[i].getName(),docs[i].getId());
}
grid.setWidget(1, 0, app.createLabel('Row:'));
var row = app.createTextBox().setName('row');
row.setValue(SpreadsheetApp.getActiveSpreadsheet().getActiveRange().getRow());
grid.setWidget(1, 1, row);
///////////////////////////////This is what i am trying to implement
into my UI//////////////////////////////////////////////
var curFN =
app.createTextBox().setText('MyDrive/').setName('curFN').setId('curFN').setWidth('400');
//var curFID =
app.createTextBox().setText('x').setName('curFID').setId('curFID').setWidth('400');
var listFolder =
app.createListBox().setName('list').setId('list').addItem('please select
a folder','x');
grid.setWidget(2, 0, app.createLabel('Choose Folder:'));
grid.setWidget(2, 1, listFolder);
var folders = DocsList.getRootFolder().getFolders();
for (var i = 0; i < folders.length; i++) {
list.addItem(folders[i].getName(),folders[i].getId())
}
var handler =
app.createServerHandler('folderSelect').addCallbackElement(grid);
list.addChangeHandler(handler);
var currentFN = e.parameter.curFN;
var currentFID = e.parameter.list;
//Logger.log(currentFID);
var FolderList = app.getElementById('listFolder');
var curFN = app.getElementById('curFN');
//var curFID = app.getElementById('curFID');
//if(currentFID=='x'){currentFID=DocsList.getRootFolder().getId() ;
curFN.setText('MyDrive/')};
var startFolder = DocsList.getFolderById(currentFID);
var folders = startFolder.getFolders();
FolderList.clear().addItem('no other subFolder','x').addItem('Go back to
Root','x');
if(folders.length>0){FolderList.clear(); FolderList.addItem('please
select a subFolder','x')};
for (var i = 0; i < folders.length; i++) {
FolderList.addItem(folders[i].getName(),folders[i].getId())
}
curFN.setText(currentFN+DocsList.getFolderById(currentFID).getName()+'/');
if(currentFID==DocsList.getRootFolder().getId()){curFN.setText('MyDrive/')};
curFID.setText(currentFID);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var panel = app.createVerticalPanel();
panel.add(grid);
var button = app.createButton('Submit');
var handler = app.createServerClickHandler('generateDocument');
handler.addCallbackElement(grid);
button.addClickHandler(handler);
// Add the button to the panel and the panel to the application,
then display the application app in the Spreadsheet doc
panel.add(button);
app.add(panel);
doc.show(app);
}
Thanks in advanced for the help!
No comments:
Post a Comment