Created
May 24, 2013 16:14
-
-
Save nacookan/5644601 to your computer and use it in GitHub Desktop.
Google Apps Scriptで掲示板作ってみた
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// data source | |
var book = SpreadsheetApp.openById('xxxxxxxx'); | |
var sheet = book.getSheets()[0]; | |
function doGet() { | |
var app = UiApp.createApplication(); | |
app.add(app.createLabel('掲示板へようこそ')); | |
// form | |
var panel = app.createVerticalPanel().setStyleAttribute('border', 'solid 2px #000000'); | |
panel.add(app.createLabel('件名')); | |
panel.add(app.createTextBox().setName('subject').setId('subject')); | |
panel.add(app.createLabel('名前')); | |
panel.add(app.createTextBox().setName('name').setId('name')); | |
panel.add(app.createLabel('本文')); | |
panel.add(app.createTextArea().setName('body').setId('body')); | |
panel.add(app.createButton('投稿') | |
.addClickHandler(app.createServerHandler('handle_click').addCallbackElement(panel)) | |
); | |
app.add(panel); | |
// posts | |
var panel = app.createVerticalPanel().setId('posts'); | |
app.add(panel); | |
gen_posts(app, panel); | |
return app; | |
} | |
function gen_posts(app, target){ | |
target.clear(); | |
var values = sheet.getRange(1, 1, sheet.getMaxRows(), 4).getValues().reverse(); | |
for(var r = 0; r < values.length; r++){ | |
if(values[r][0] == '') continue; | |
var panel = app.createVerticalPanel().setStyleAttribute('border', 'solid 1px #000000'); | |
var date = Utilities.formatDate(values[r][0], "JST", "yyyy/MM/dd HH:mm:ss"); | |
panel.add(app.createLabel('日時:' + date)); | |
panel.add(app.createLabel('件名:' + values[r][1])); | |
panel.add(app.createLabel('名前:' + values[r][2])); | |
panel.add(app.createLabel('本文:' + values[r][3])); | |
target.add(panel); | |
} | |
} | |
function handle_click(e){ | |
var app = UiApp.getActiveApplication(); | |
// register | |
sheet.appendRow([ | |
new Date(), | |
e.parameter.name, | |
e.parameter.subject, | |
e.parameter.body | |
]); | |
// reload | |
app.getElementById('subject').setValue(''); | |
app.getElementById('name').setValue(''); | |
app.getElementById('body').setValue(''); | |
gen_posts(app, app.getElementById('posts')); | |
app.close(); | |
return app; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
動作イメージ
http://gifzo.net/4c4c9cff2c14e02d0bb898db9e816705fad4c142