質問編集履歴
6
return array_dataを追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -118,6 +118,10 @@
|
|
118
118
|
|
119
119
|
Logger.log(array_data);
|
120
120
|
|
121
|
+
return array_data;
|
122
|
+
|
123
|
+
|
124
|
+
|
121
125
|
//array_dataの中身は
|
122
126
|
|
123
127
|
[2018/10/27 09:00, 2018/10/27 09:30, 2018/10/27 10:00~]のような日付の文字列を想定
|
5
array_dataの中身を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -118,6 +118,10 @@
|
|
118
118
|
|
119
119
|
Logger.log(array_data);
|
120
120
|
|
121
|
+
//array_dataの中身は
|
122
|
+
|
123
|
+
[2018/10/27 09:00, 2018/10/27 09:30, 2018/10/27 10:00~]のような日付の文字列を想定
|
124
|
+
|
121
125
|
|
122
126
|
|
123
127
|
};
|
4
html部分を更新しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -154,23 +154,25 @@
|
|
154
154
|
|
155
155
|
function createSelectBox(){
|
156
156
|
|
157
|
+
google.script.run.withSuccessHandler(
|
157
158
|
|
159
|
+
function(array_data) {
|
158
160
|
|
159
|
-
|
161
|
+
for(var i=0;i<array_data.length;i++){
|
160
162
|
|
161
|
-
|
163
|
+
let op = document.createElement("option");
|
162
164
|
|
163
|
-
|
165
|
+
op.value = array_data[i].val; //value値
|
164
166
|
|
165
|
-
|
167
|
+
op.text = array_data[i].txt; //テキスト値
|
166
168
|
|
167
|
-
o
|
169
|
+
document.getElementById("start_time").appendChild(op);
|
168
170
|
|
169
|
-
|
171
|
+
}
|
170
172
|
|
171
|
-
|
173
|
+
}).set_availability();
|
172
174
|
|
173
|
-
|
175
|
+
};
|
174
176
|
|
175
177
|
|
176
178
|
|
3
gas部分追記いたしました
test
CHANGED
File without changes
|
test
CHANGED
@@ -49,6 +49,10 @@
|
|
49
49
|
//ステータス列の判定
|
50
50
|
|
51
51
|
var array_data=[];
|
52
|
+
|
53
|
+
var array_data1=[];
|
54
|
+
|
55
|
+
var array_data2=[];
|
52
56
|
|
53
57
|
|
54
58
|
|
@@ -108,7 +112,7 @@
|
|
108
112
|
|
109
113
|
var _ =Underscore.load();
|
110
114
|
|
111
|
-
var array_data = _.intersection(array_data);
|
115
|
+
var array_data = _.intersection(array_data1,array_data2);
|
112
116
|
|
113
117
|
|
114
118
|
|
2
gas部分追記いたしました
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,37 +12,119 @@
|
|
12
12
|
|
13
13
|
|
14
14
|
|
15
|
-
### 仮.gas
|
15
|
+
### 仮.gas
|
16
|
+
|
17
|
+
※メモ※昨日papinianus様にご教示いただいた内容は未反映です
|
16
18
|
|
17
19
|
|
18
20
|
|
19
21
|
```ここに言語名を入力
|
20
22
|
|
21
|
-
function
|
23
|
+
function set_availability(sheet, column, id){
|
22
24
|
|
23
25
|
|
24
26
|
|
25
|
-
|
27
|
+
//時間の記載されているSS
|
26
28
|
|
29
|
+
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
|
30
|
+
|
27
|
-
var
|
31
|
+
var availability_spreadsheet = spreadsheet.getSheetByName('SS');
|
28
32
|
|
29
33
|
|
30
34
|
|
35
|
+
var calendar_id = "アドレス1";
|
36
|
+
|
31
|
-
|
37
|
+
var calendar_id2 = "アドレス2";
|
32
38
|
|
33
39
|
|
34
40
|
|
35
|
-
var r
|
41
|
+
var last_row = availability_spreadsheet.getLastRow()
|
36
42
|
|
43
|
+
var calendar_info = CalendarApp.getCalendarById(calendar_id);
|
44
|
+
|
45
|
+
var calendar_info2 = CalendarApp.getCalendarById(calendar_id2);
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
//ステータス列の判定
|
50
|
+
|
51
|
+
var array_data=[];
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
for(var i = 3; i <= last_row; i++){
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
//SS3行目から30分ごとに時間が記載されています
|
60
|
+
|
61
|
+
var start_date_base = availability_spreadsheet.getRange(i, 1).getValue();
|
62
|
+
|
63
|
+
var start_date_tmp = new Date(start_date_base);
|
64
|
+
|
65
|
+
var end_date_tmp = start_date_tmp.setMinutes(start_date_tmp.getMinutes()+30);
|
66
|
+
|
67
|
+
var start_date = new Date(start_date_base);
|
68
|
+
|
69
|
+
var end_date = new Date(end_date_tmp);
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
var myEvents= calendar_info.getEvents(start_date, end_date);
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
var myEvents2= calendar_info2.getEvents(start_date, end_date);
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
//予定がなかったら格納
|
82
|
+
|
83
|
+
if (myEvents.length == 0){
|
84
|
+
|
85
|
+
var start_date_in = Utilities.formatDate(start_date , "Asia/Tokyo", "yyyy/MM/dd HH:mm");
|
86
|
+
|
87
|
+
array_data.push(start_date_in);
|
88
|
+
|
89
|
+
}
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
//予定がなかったら格納
|
94
|
+
|
95
|
+
if (myEvents2.length == 0){
|
96
|
+
|
97
|
+
var start_date_in = Utilities.formatDate(start_date , "Asia/Tokyo", "yyyy/MM/dd HH:mm");
|
98
|
+
|
99
|
+
array_data.push(start_date_in);
|
100
|
+
|
101
|
+
}
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
}
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
var _ =Underscore.load();
|
110
|
+
|
111
|
+
var array_data = _.intersection(array_data);
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
Logger.log(array_data);
|
116
|
+
|
117
|
+
|
118
|
+
|
37
|
-
};
|
119
|
+
};
|
38
120
|
|
39
121
|
```
|
40
122
|
|
41
123
|
|
42
124
|
|
43
|
-
### 仮.html
|
44
125
|
|
45
126
|
|
127
|
+
### 仮.html
|
46
128
|
|
47
129
|
```ここに言語名を入力
|
48
130
|
|
@@ -78,9 +160,9 @@
|
|
78
160
|
|
79
161
|
let op = document.createElement("option");
|
80
162
|
|
81
|
-
op.value = r
|
163
|
+
op.value = array_data[i].val; //value値
|
82
164
|
|
83
|
-
op.text = r
|
165
|
+
op.text = array_data[i].txt; //テキスト値
|
84
166
|
|
85
167
|
document.getElementById("start_time").appendChild(op);
|
86
168
|
|
1
resの中身を追記しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,7 +20,17 @@
|
|
20
20
|
|
21
21
|
function downlist(){
|
22
22
|
|
23
|
+
|
24
|
+
|
23
|
-
~~~
|
25
|
+
~~~~処理~~~~~
|
26
|
+
|
27
|
+
var end_date_in = Utilities.formatDate(ed , "Asia/Tokyo", "yyyy/MM/dd HH:mm");
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
//上記の"yyyy/MM/dd HH:mm"とフォーマットされた複数のデータがresの中に入ってきます
|
32
|
+
|
33
|
+
|
24
34
|
|
25
35
|
var res = [配列結果を想定];
|
26
36
|
|