====== 할일 ======
* 메일 쓰기. 금요일 미팅 잡기. 코치타운 서비스 가입
* 웹페이지 만들기
* google form 제너레이터 http://sneakysheep.com/google-docs-form-tool-version-2/
function whatIsStyleOf(result)
{
var resultStyle = '';
var sheet = SpreadsheetApp.openById('10osWgJbb9RjXX2HrsseEwam7AskXF3ugtqPjwnK4p1E').getSheetByName('문항');
var stylesOfItems = sheet.getRange(1,1, sheet.getLastRow() -1, 2).getValues();
for (var i = 0; i < stylesOfItems.length ; i++)
{
// Logger.log(stylesOfItems[i][0]);
if (result === stylesOfItems[i][0]) {
resultStyle = stylesOfItems[i][1]
}
}
return resultStyle;
}
function createIncoachingStyleProfileForms() {
var form = FormApp.getActiveForm();
form.setTitle('Incoaching Style Profile');
var sheet = SpreadsheetApp.openById('10osWgJbb9RjXX2HrsseEwam7AskXF3ugtqPjwnK4p1E').getSheetByName('문항');
var stylesOfItems = sheet.getRange(1,1, sheet.getLastRow() , 2).getValues();
for (var i = 0; i < stylesOfItems.length ; i=i+2)
{
var item = form.addMultipleChoiceItem();
item.setTitle('나는');
item.setRequired(true);
item.setChoiceValues([stylesOfItems[i][0],stylesOfItems[i+1][0]]);
}
}
function calculateStyleProfile(lastColumn,a,b,e,f) {
var sheet = SpreadsheetApp.openById('10osWgJbb9RjXX2HrsseEwam7AskXF3ugtqPjwnK4p1E').getActiveSheet();
var lastRow = sheet.getLastRow();
// A
sheet.getRange(lastRow,lastColumn).setValue(a);
// B
sheet.getRange(lastRow,lastColumn+1).setValue(b);
// E
sheet.getRange(lastRow,lastColumn+2).setValue(e);
// F
sheet.getRange(lastRow,lastColumn+3).setValue(f);
// 주도형 D
var d = a*(e/2);
// 사교형 I
var i = a*(f/2);
// 안정형 S
var s = b*(f/2);
// 신중형 C
var c = b*(e/2);
var arr = [d,i,s,c];
var i = arr.indexOf(Math.max.apply(Math, arr));
Logger.log(arr);
var style = '';
if (i==0) {
style = 'D'
} else if (i ==1) {
style = 'I';
} else if (i ==2) {
style = 'S';
} else if (i ==3) {
style = 'C';
}
sheet.getRange(lastRow,lastColumn+4).setValue(style);
return style;
}
function onOpen() {
FormApp.getUi() // Or DocumentApp or FormApp.
.createMenu('Custom Menu')
.addItem('Show sidebar', 'showSidebar')
.addToUi();
}
function showSidebar() {
// Display a sidebar with custom UiApp content.
var uiInstance = UiApp.createApplication()
.setTitle('Live Result');
var responses = FormApp.getActiveForm().getResponses();
uiInstance.add(uiInstance.createLabel(responses.length));
FormApp.getUi().showSidebar(uiInstance);
}
function onOpen() {
var fa = FormApp.getActive();
ScriptApp.newTrigger('onFormSubmit')
.forSpreadsheet(fa)
.onFormSubmit()
.create();
}
function onFormSubmit(event) {
var logDocument = DocumentApp.openById('17mpPXOsuMD70vpwJwN02Y8hziHB3tHb_l1rN8tAXwaQ');
var a = 0;
var b = 0;
var e = 0;
var f = 0;
try {
var response = event.response;
//logDocument.getBody().appendParagraph(Utilities.formatString("%s", event.response.getItemResponses().toString()));
var itemResponses = event.response.getItemResponses();
for (var j = 1; j < itemResponses.length; j++) {
var itemResponse = itemResponses[j];
//logDocument.getBody().appendParagraph(Utilities.formatString('question "%s" was "%s"', itemResponse.getItem().getTitle(),
// itemResponse.getResponse()));
if ('A' === whatIsStyleOf(itemResponse.getResponse())){
a = a+1;
}
if ('B' === whatIsStyleOf(itemResponse.getResponse())){
b = b+1;
}
if ('E' === whatIsStyleOf(itemResponse.getResponse())){
e = e+1;
}
if ('F' === whatIsStyleOf(itemResponse.getResponse())){
f = f+1;
}
}
var style = calculateStyleProfile(itemResponses.length+3,a,b,e,f);
var message = Utilities.formatString('A:%s B:%s E:%s F:%s Style:%s', a.toString(), b.toString(), e.toString(), f.toString(), style);
var styleReportImageUrl = Utilities.formatString('http://www.dh8.kr/tmp/ISP_Style_%s.png', style);
var styleReportImageBlob = UrlFetchApp
.fetch(styleReportImageUrl)
.getBlob()
.setName("styleReportImageBlob");
//showSidebar();
logDocument.getBody().appendParagraph(message);
email = itemResponses[0].getResponse();
//MailApp.sendEmail(email, "ISP", message);
MailApp.sendEmail({
to: email,
subject: "ISP 설문 결과",
htmlBody: "
" + message,
inlineImages:
{
styleReportImageBlob: styleReportImageBlob,
}
});
} catch(e) {
errorMessage = (e.name + ' on line: ' + e.lineNumber + ' -> ' + e.message);
logDocument.getBody().appendParagraph(errorMessage);
}
}