function doGet() {
var app = UiApp.createApplication().setTitle('Fun with File Uploads');
var spacer = app.createLabel('-');
spacer.setStyleAttribute('lineHeight','140%');
spacer.setStyleAttribute('color','#FFFFFF');
var fPanel = app.createFormPanel().setSize('50%','50%');
var fTable = app.createFlexTable().setId('ft');
fTable.setStyleAttribute('marginTop','20');
fTable.setStyleAttribute('marginLeft','20');
var questionLabel = app.createLabel('Why would you check this box?');
var cb1 = app.createCheckBox('You told me to.').setName('told-me-to');
var cb2 = app.createCheckBox('Boredom.').setName('boredom');
var cb3 = app.createCheckBox('Acceptance.').setName('acceptance');
var cbOther = app.createCheckBox('Other reasons, obviously.').setName('otherCb');
var otherTb = app.createTextBox().setWidth('150px').setName('otherTb').setId('otherTb');
otherTb.setVisible(false);
var otherCheckHandler = app.createServerHandler('addOtherTb');
cbOther.addValueChangeHandler(otherCheckHandler);
var uploadLabel = app.createLabel('Please attach a photo illustrating your excitement in checking a box above.');
var uploadLabel2 = app.createLabel('PG only, please. This is a family form.');
uploadLabel2.setStyleAttribute('fontStyle','italic');
var fileUpload = (app.createFileUpload().setName('uploadedFile'));
var submitButton = app.createSubmitButton('<B>Submit</B>');
fTable.setWidget(0, 0, questionLabel)
.setWidget(1, 0, spacer)
.setWidget(2, 0, cb1)
.setWidget(3, 0, cb2)
.setWidget(4, 0, cb3)
.setWidget(5, 0, cbOther)
.setWidget(6, 0, otherTb)
.setWidget(7, 0, spacer)
.setWidget(8, 0, spacer)
.setWidget(9, 0, uploadLabel)
.setWidget(10, 0, uploadLabel2)
.setWidget(11, 0, fileUpload)
.setWidget(12, 0, spacer)
.setWidget(13, 0, spacer)
.setWidget(14, 0, submitButton)
fPanel.add(fTable);
app.add(fPanel);
return app;
}
function doPost(e) {
var app = UiApp.getActiveApplication();
var fileBlob = e.parameter.uploadedFile;
Logger.log('got the file');
var doc = DocsList.createFile(fileBlob);
var folder = DocsList.getFolder('test-uploads');
doc.addToFolder(folder);
var root = DocsList.getFolder('');
doc.removeFromFolder(root);
var vertPanel = app.createAbsolutePanel().setSize('100%', '100%');
var submitComplete = app.createLabel('Thanks for your submission!');
submitComplete.setStyleAttribute('font-weight','bold');
vertPanel.add(submitComplete);
vertPanel.setWidgetPosition(submitComplete, 20, 20);
var folder = DocsList.getFolder('test-uploads');
var files = folder.getFiles();
var fileStr = app.createLabel();
for (var i in files) {
var temp = app.createLabel(files[i].getName() + ' created at ' + files[i].getDateCreated());
vertPanel.add(temp);
vertPanel.setWidgetPosition(temp, 120, (i*70+40));
var tempImg = app.createImage(files[i].getUrl().replace('open','uc')).setSize('80','60');
vertPanel.add(tempImg);
vertPanel.setWidgetPosition(tempImg, 20, (i*70+40));
}
app.add(vertPanel);
return app;
}
function addOtherTb(e) {
var app = UiApp.getActiveApplication();
if(e.parameter.otherCb == 'true')
{
app.getElementById('otherTb').setVisible(true);
} else {
app.getElementById('otherTb').setVisible(false);
}
app.close();
return app;
}