OSDN Git Service

rec10web g3 alpha update.
[rec10/rec10-git.git] / Rec10WEBG3 / trunk / rec10webg3.htm
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\r
2 <html dir="ltr">\r
3     <head>\r
4         <meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
5         <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dijit/themes/claro/claro.css">\r
6                 <!--<link rel="stylesheet" type="text/css" href="./dojo-release-1.5.0/dijit/themes/claro/claro.css">-->\r
7         <style type="text/css">\r
8             body, html { font-family:helvetica,arial,sans-serif; font-size:90%; }\r
9         </style>\r
10         <style type="text/css">\r
11             html, body { width: 100%; height: 100%; margin: 0; overflow:hidden; }\r
12             #borderContainerTwo { width: 100%; height: 100%; }\r
13         </style>\r
14                 <title>Rec10Suite 0.0.2</title>\r
15                 <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js" type="text/javascript" djConfig="parseOnLoad : true, isDebug : true"></script>\r
16                 <!--<script src="./dojo-release-1.5.0/dojo/dojo.js" type="text/javascript" djConfig="parseOnLoad : true, isDebug : true"></script>-->\r
17                 <script type="text/javascript">\r
18                         //dojo.require("dojo.event.connect");\r
19                 dojo.require("dijit.layout.ContentPane");\r
20                 dojo.require("dijit.layout.TabContainer");\r
21                 dojo.require("dijit.layout.AccordionContainer");\r
22                         dojo.require("dijit.layout.BorderContainer");\r
23                         dojo.require("dojo.data.ItemFileReadStore");\r
24                         dojo.require("dijit.form.FilteringSelect");\r
25                         dojo.require("dijit.form.DateTextBox");\r
26                         dojo.require("dijit.form.TimeTextBox");\r
27                         dojo.require("dijit.form.HorizontalSlider");\r
28                         dojo.require("dijit.form.HorizontalRuleLabels");\r
29                         dojo.require("dojox.grid.DataGrid");\r
30                         //dojo.require("dojo.date");\r
31                         dojo.require("dojo.date.locale");\r
32                         var ttch=["","",""];\r
33                         var ttlastchange=0;\r
34                         var gbtime="";\r
35                         var getime="";\r
36                         var reserve_grid_structure= [{cells:[\r
37                                 {name:"ID",field:"id",width:"4em"},\r
38                                 {name:"タイプ",field:"type",width:"5em"},\r
39                                 {name:"チャンネル",field:"chtxt",width:"5em"},\r
40                                 {name:"開始",field:"btime",width:"6em"},\r
41                                 {name:"終了",field:"etime",width:"3em"},\r
42                                 {name:"タイトル",field:"title",width:"auto"},\r
43                                 {name:"opt",field:"opt",width:"3em"},\r
44                                 {name:"dt",field:"deltatime",width:"3em"},\r
45                                 {name:"dd",field:"deltaday",width:"3em"}\r
46                         ]}];\r
47                         \r
48                         function readCh(){\r
49                                 var chlistPaneTE=dojo.byId("progTableTE");\r
50                                 var chlistPaneBS=dojo.byId("progTableBS");\r
51                                 var chlistPaneCS=dojo.byId("progTableCS");\r
52                                 dojo.xhrGet({\r
53                                         url:"rec10webg3.py?mode=chlist",\r
54                                         handleAs: "json",\r
55                                         load: function(data,ioargs){\r
56                                                 //console.log("res=", data['items']);\r
57                                                 for (i=0;i<data['items'].length;i++){\r
58                                                         var node = document.createElement("div");\r
59                                                         var child = new dijit.form.ToggleButton\r
60                                                                 ( {id: data['items'][i]["name"], \r
61                                                                 label: data['items'][i]["label"],\r
62                                                                 iconClass: "dijitCheckBoxIcon"},node );\r
63                                                         dojo.connect(node,"onClick",data['items'][i]["name"],addTimetableCh);\r
64                                                         if (data['items'][i]['type']=="bs"){\r
65                                                                 chlistPaneBS.appendChild(child.domNode);\r
66                                                         }else if (data['items'][i]['type']=="cs"){\r
67                                                                 chlistPaneCS.appendChild(child.domNode);\r
68                                                         }else {\r
69                                                                 chlistPaneTE.appendChild(child.domNode);\r
70                                                         }\r
71                                                 }; \r
72                                         },\r
73                                         error: function(error,args) {\r
74                                           console.warn("error!",error);\r
75                                         }\r
76                                 });\r
77                         };\r
78                         function changeTab(tabid){\r
79                                 dijit.byId("main_tab").selectChild(dijit.byId(tabid));\r
80                         }\r
81                         function setFilteringSelectValue(dijitid){\r
82                                 console.warn("test");\r
83                                 dijit.byId(dijitid).set('value',dijit.byId(dijitid).store._arrayOfAllItems[0]['id']);\r
84                         }\r
85                         function DateTime2dt(ttime){\r
86                                 var tt=new Date(parseInt(ttime.substring(0,4)),parseInt(ttime.substring(5,7)),parseInt(ttime.substring(8,10)),parseInt(ttime.substring(11,13)),parseInt(ttime.substring(14,16),0));\r
87                                 return tt\r
88                         }\r
89                         function dt2DateTime(tt){\r
90                                 function get2(t){\r
91                                         if (t<10){\r
92                                                 return "0"+t\r
93                                         }else{\r
94                                                 return t\r
95                                         }\r
96                                 }\r
97                                 var month=parseInt(tt.getMonth());\r
98                                 return tt.getFullYear()+"-"+get2(month)+"-"+get2(tt.getDate())+"T"+get2(tt.getHours())+":"+get2(tt.getMinutes())+":"+get2(tt.getSeconds());\r
99                         }\r
100                         function addTimetableCh(chtxt){\r
101                                 var have = 0;\r
102                                 console.dir(chtxt);\r
103                                 for (i = 0; i < 3; i++) {\r
104                                         if (ttch[i] == chtxt) {\r
105                                                 ttch[i] = "";\r
106                                                 have = 1;\r
107                                                 removeSingleCh("timetable-id"+i);\r
108                                         }\r
109                                 }\r
110                                 if (have == 0) {\r
111                                         var change = 0;\r
112                                         for (i = 0; i < 3; i++) {\r
113                                                 if (ttch[i].length == 0) {\r
114                                                         ttch[i] = chtxt;\r
115                                                         ttlastchange = i;\r
116                                                         change = 1;\r
117                                                 }\r
118                                         }\r
119                                         if (change == 0) {\r
120                                                 ttch[(ttlastchange + 1) % 3] = chtxt;\r
121                                                 change = 1;\r
122                                                 ttlastchange = (ttlastchange + 1) % 3;\r
123                                         }\r
124                                         showTimeTable("timetableContainer", ttch, gbtime, getime, 5);\r
125                                 }\r
126                         }\r
127                         function calcMaxHeight(parentid,chlists,bt,et,fontsize){\r
128                                 var maxH=0;\r
129                                 var tempH=0;\r
130                                 for (ch in chlists){\r
131                                         var chnode=dojo.doc.createElement("div");\r
132                                         chnode.setAttribute("style","width:100%;");\r
133                                         //chnode.setAttribute("id",data['items'][i]['id']);\r
134                                         dojo.xhrGet({\r
135                                                 url:parentid+".json",\r
136                                                 handleAs: "json",\r
137                                                 sync: true,\r
138                                                 load: function(data,ioargs){\r
139                                                         var baseForm=dojo.byId(parentid);\r
140                                                         for (i=0;i<data['items'].length;i++){\r
141                                                                 var node = dojo.doc.createElement("div");\r
142                                                                 node.setAttribute("style","border:3px solid #CCC;width:100%;");\r
143                                                                 node.setAttribute("id",data['items'][i]['id']);\r
144                                                                 var nodetitle = dojo.doc.createElement("h5");\r
145                                                                 var node_str = dojo.doc.createTextNode(data['items'][i]['min']+" : "+data['items'][i]['title']);\r
146                                                                 var node_str_desc = dojo.doc.createTextNode(data['items'][i]['desc']);\r
147                                                                 nodetitle.appendChild(node_str);\r
148                                                                 node.appendChild(nodetitle);\r
149                                                                 node.appendChild(node_str_desc);\r
150                                                                 baseForm.appendChild(node);\r
151                                                                 tempH=tempH+node.clientHeight;\r
152                                                                 if (maxH<tempH){\r
153                                                                         maxH=tempH;\r
154                                                                 }\r
155                                                                 baseForm.removeChild(node);\r
156                                                         }; \r
157                                                 },\r
158                                                 error: function(error,args) {\r
159                                                   console.warn("error!",error);\r
160                                                 }\r
161                                         });\r
162                                         //console.log(maxH);\r
163                                         //console.log(tempH);\r
164                                         if (maxH<tempH){\r
165                                                 maxH=tempH;\r
166                                         }\r
167                                         tempH=0;\r
168                                 }\r
169                                 return maxH;\r
170                         }\r
171                         function showTimeTableSingleCH(parentid,ch,bt,et,fontsize,maxsize){\r
172                                 var thisMaxheight=calcMaxHeight(parentid,[ch,],bt,et,fontsize);\r
173                                 dojo.xhrGet({\r
174                                         url:parentid+".json",\r
175                                         handleAs: "json",\r
176                                         load: function(data,ioargs){\r
177                                                 var baseForm=dojo.byId(parentid);\r
178                                                 console.dir(baseForm);\r
179                                                 for (i=0;i<data['items'].length;i++){\r
180                                                         var node = dojo.doc.createElement("div");\r
181                                                         node.setAttribute("style","border:3px solid #FFFFFF;width:100%;");\r
182                                                         node.setAttribute("id",data['items'][i]['id']+"_test");\r
183                                                         var nodetitle = dojo.doc.createElement("h5");\r
184                                                         var node_str = dojo.doc.createTextNode(data['items'][i]['min']+" : "+data['items'][i]['title']);\r
185                                                         var node_str_desc = dojo.doc.createTextNode(data['items'][i]['desc']);\r
186                                                         nodetitle.appendChild(node_str);\r
187                                                         node.appendChild(nodetitle);\r
188                                                         node.appendChild(node_str_desc);\r
189                                                         baseForm.appendChild(node);\r
190                                                         var h=node.clientHeight;\r
191                                                         console.log(h);\r
192                                                         baseForm.removeChild(node);\r
193                                                         node = dojo.doc.createElement("div");\r
194                                                         node.setAttribute("style","border:3px solid #CCC;width:100%;height:"+h*maxsize/thisMaxheight+"");\r
195                                                         node.setAttribute("id",data['items'][i]['id']);\r
196                                                         nodetitle = dojo.doc.createElement("h5");\r
197                                                         node_str = dojo.doc.createTextNode(data['items'][i]['min']+" : "+data['items'][i]['title']);\r
198                                                         node_str_desc = dojo.doc.createTextNode(data['items'][i]['desc']);\r
199                                                         nodetitle.appendChild(node_str);\r
200                                                         node.appendChild(nodetitle);\r
201                                                         node.appendChild(node_str_desc);\r
202                                                         baseForm.appendChild(node);\r
203                                                 }; \r
204                                         },\r
205                                         error: function(error,args) {\r
206                                           console.warn("error!",error);\r
207                                         }\r
208                                 });\r
209                         }\r
210                         function removeSingleCh(parentid){\r
211                                 var baseForm=dojo.byId(parentid);\r
212                                 var children=baseForm.getChildren();\r
213                                 console.dir(children);\r
214                                 for (i=0;i<children.length();i++){\r
215                                         baseForm.removeChild(childen[i]);\r
216                                 }\r
217                         }\r
218                         function showTimeTable(parentid,chlists,btime,etime,fontsize){\r
219                                 var widthp=Math.floor(100/chlists.length);\r
220                                 var every_width=20;\r
221                                 var timetabelArray= new Array();\r
222                                 var bt=new Date(parseInt(btime.substring(0,4)),parseInt(btime.substring(5,7)),parseInt(btime.substring(8,10)),parseInt(btime.substring(11,13)),parseInt(btime.substring(14,16),0));\r
223                                 var et=new Date(parseInt(etime.substring(0,4)),parseInt(etime.substring(5,7)),parseInt(etime.substring(8,10)),parseInt(etime.substring(11,13)),parseInt(etime.substring(14,16),0));\r
224                                 bt.setSeconds(0);\r
225                                 if (bt.getMinutes()>30){\r
226                                         bt.setMinutes(30);\r
227                                 }else{\r
228                                         bt.setMinutes(0);\r
229                                 }\r
230                                 et.setSeconds(0);\r
231                                 if (et.getMinutes()>30){\r
232                                         et.setMinutes(30);\r
233                                         et=dojo.date.add(et, "minute", 30);\r
234                                 }else{\r
235                                         et.setMinutes(30);\r
236                                 }\r
237                                 var dt=dojo.date.difference(bt,et,"minute");\r
238                                 var nbt=bt;\r
239                                 var i=0;\r
240                                 while(dt>i){\r
241                                         console.dir([dt,i]);\r
242                                         net=dojo.date.add(nbt,"minute",30);\r
243                                         var theight=calcMaxHeight("timetable-id0",chlists,dt2DateTime(nbt),dt2DateTime(net),fontsize);\r
244                                         console.log(theight)\r
245                                         for (j=0;j<chlists.length;j++){\r
246                                                 if (j>2){\r
247                                                         j=chlists.length;\r
248                                                 }else{\r
249                                                         showTimeTableSingleCH("timetable-id"+j,chlists[j],nbt,net,fontsize,theight);\r
250                                                 }\r
251                                         }\r
252                                         i=i+30;\r
253                                         nbt=dojo.date.add(nbt,"minute",30);\r
254                                 }\r
255                         }\r
256                         dojo.addOnLoad\r
257                         (\r
258                             function(){\r
259                                         readCh();\r
260                                 }\r
261                         );\r
262         </script>\r
263                 <style type="text/css">\r
264                         @import "http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojox/grid/resources/Grid.css";\r
265             @import "http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojox/grid/resources/claroGrid.css";\r
266                 </style>\r
267     </head>\r
268     \r
269     <body class=" claro ">\r
270         <div dojoType="dijit.layout.BorderContainer" gutters="true" id="borderContainerTwo">\r
271             <div dojoType="dijit.layout.ContentPane" region="top" splitter="false">\r
272                 Rec10Suite WEB Interface version 0.0.1\r
273             </div>\r
274             <div dojoType="dijit.layout.BorderContainer" liveSplitters="false" design="sidebar"\r
275             region="center" id="mainSplit">\r
276                 <div dojoType="dijit.layout.AccordionContainer" minSize="20" style="width: 300px;"\r
277                 id="leftMainAccordion" region="leading" splitter="true">\r
278                     <div dojoType="dijit.layout.ContentPane" title="番組表" selected="true">\r
279                         <div dojoType="dijit.layout.AccordionContainer" minSize="20" style="width: 100%;"\r
280                                 id="leftProgramTabTE" region="leading" splitter="true">\r
281                                                         <div dojoType="dijit.layout.BorderContainer" id="progTableTE" title="地上派" selected="true"></div>\r
282                                                         <div dojoType="dijit.layout.BorderContainer" id="progTableBS" title="BS"></div>\r
283                                                         <div dojoType="dijit.layout.BorderContainer" id="progTableCS" title="CS"></div>\r
284                                                 </div>\r
285                     </div>\r
286                     <div dojoType="dijit.layout.ContentPane" title="予約">\r
287                                                 <div dojoType="dijit.form.Button" id="simpleReserveButton" label="新規予約" onclick=changeTab("tab_newreserve")></div>\r
288                                                 <hr>\r
289                                                 <div dojoType="dijit.form.Button" id="ReserveListTimeButton" label="予約確認(時間順)" onclick=changeTab("tab_list_time")></div>\r
290                     </div>\r
291                     <div dojoType="dijit.layout.ContentPane" title="設定">\r
292                     </div>\r
293                     <div dojoType="dijit.layout.ContentPane" title="その他">\r
294                     </div>\r
295                 </div>\r
296                 <div dojoType="dijit.layout.TabContainer" id="main_tab" region="center" tabStrip="true">\r
297                     <div dojoType="dijit.layout.ContentPane" title="番組表" selected="true">\r
298                         <div dojoType="dijit.layout.BorderContainer" id="timetableContainer" design="headline" style="width:100%;height:100%;" gutters="true">\r
299                                                         <div dojoType="dijit.layout.ContentPane" id="timetable-id0" region="left" style="width:30%"></div>\r
300                                                         <div dojoType="dijit.layout.ContentPane" id="timetable-id1" region="center"></div>\r
301                                                         <div dojoType="dijit.layout.ContentPane" id="timetable-id2" region="right" style="width:30%"></div>\r
302                                                         <div dojoType="dijit.layout.ContentPane" id="timetable-button" region="bottom" style="height:4%;position:relative;">\r
303                                                                 <div dojoType="dijit.form.Button" style="position:absolute;left:0.5em;" onClick=showTimeTable()><<前</div>\r
304                                                                 <div dojoType="dijit.form.Button" style="position:absolute;right:0.5em;" onClick=showTimeTable()>次>></div>\r
305                                                                 <div dojoType="dijit.form.Button" style="position:absolute;left:40%;" onClick=showTimeTable()>06h</div>\r
306                                                                 <div dojoType="dijit.form.Button" style="position:absolute;left:48.5%;" onClick=showTimeTable()>12h</div>\r
307                                                                 <div dojoType="dijit.form.Button" style="position:absolute;right:40%;" onClick=showTimeTable()>24h</div>\r
308                                                                 <div dojoType="dijit.form.Button" style="position:absolute;left:10%;" onClick=showTimeTable("timetableContainer",["tb1","tb2","tb3"],"2001-01-01T12:00:00","2001-01-01T13:15:00",5)>test</div>\r
309                                                         </div>\r
310                                                 </div>\r
311                         </div>
312                         <div dojoType="dijit.layout.ContentPane" id="tab_timetablebasic" title="TimeTable" href="rec10webg2.pl">
313                         </div>\r
314                     <div dojoType="dijit.layout.ContentPane" id="tab_list_time" title="予約確認(時間順)">\r
315                         <div dojoType="dojo.data.ItemFileReadStore" jsId="reserveStore"\r
316                                                 url="rec10webg3.py?mode=timeline"></div>\r
317                         <table dojoType="dojox.grid.DataGrid" id="grid_reserve_list_time" structure="reserve_grid_structure"\r
318                                                  store="reserveStore"></table>\r
319                     </div>\r
320                     <div dojoType="dijit.layout.ContentPane" id="tab_newreserve" title="新規予約">\r
321                                 <h2>新規予約</h2><br>\r
322                                                         <p>\r
323                                                         <div dojoType="dojo.data.ItemFileReadStore" jsId="chlistStore"\r
324                                                 url="chlist.json"></div>\r
325                                                         <div dojoType="dojo.data.ItemFileReadStore" jsId="dbtypeStore"\r
326                                                 url="typelist.json" ></div>\r
327                                                                 <h3>タイトル:</h3>\r
328                                                                 <div dojoType="dijit.form.TextBox" id="newreserve_title" style="width:30%"></div><br>\r
329                                                         </p>\r
330                                                         <p>\r
331                                                                 <h3>詳細設定</h3>\r
332                                                                 コマンド:\r
333                                                                 <div dojoType="dijit.form.FilteringSelect" id="newreserve_dbtype_list" \r
334                                                                         autoComplete="true" store="dbtypeStore" searchAttr= "label" \r
335                                                                         onShow="setFilteringSelectValue('newreserve_dbtype_list')"></div>\r
336                                                                 チャンネル:\r
337                                                                 <div dojoType="dijit.form.FilteringSelect" id="newreserve_ch_list" \r
338                                                                         autoComplete="true" store="chlistStore" searchAttr= "label" \r
339                                                                         onShow="setFilteringSelectValue('newreserve_ch_list')"></div><br>\r
340                                                                 <p>\r
341                                                                         <h4>時刻設定</h4>\r
342                                                                         開始時間:\r
343                                                                         <div dojoType="dijit.form.DateTextBox" id="newreserve_bdata" constraints="{datePattern:'yyyy-MM-dd'}"></div>\r
344                                                                         <div dojoType="dijit.form.TimeTextBox" id="newreserve_btime"></div><br>\r
345                                                                         終了時間:\r
346                                                                         <div dojoType="dijit.form.DateTextBox" id="newreserve_edata" constraints="{datePattern:'yyyy-MM-dd'}"></div>\r
347                                                                         <div dojoType="dijit.form.TimeTextBox" id="newreserve_etime"></div><br><br>\r
348                                                                         <p>\r
349                                                                         隔日検索:\r
350                                                                         <div dojoType="dijit.form.HorizontalSlider" id="newreserve_deladay" \r
351                                                                         minimum="1" maximum="7" value="7" discreteValues="7"\r
352                                                                          intermediateChanges="true" style="width:300px">\r
353                                                                                 <ol dojoType="dijit.form.HorizontalRuleLabels">\r
354                                                                                         <li>1</li><li>2</li><li>3</li><li>4</li><li>5</li>\r
355                                                                                         <li>6</li><li>7</li>\r
356                                                                                 </ol>\r
357                                                                          </div><br>\r
358                                                                          時刻揺らぎ:\r
359                                                                          <div dojoType="dijit.form.HorizontalSlider" id="newreserve_delatime" \r
360                                                                         minimum="1" maximum="10" value="3" discreteValues="10"\r
361                                                                          intermediateChanges="true" style="width:300px">\r
362                                                                                 <ol dojoType="dijit.form.HorizontalRuleLabels">\r
363                                                                                         <li>1</li><li>2</li><li>3</li><li>4</li><li>5</li>\r
364                                                                                         <li>6</li><li>7</li><li>8</li><li>9</li><li>10</li>\r
365                                                                                 </ol>\r
366                                                                          </div>\r
367                                                                          </p>\r
368                                                                 </p>\r
369                                                         </p>\r
370                                                         <div dojoType="dijit.form.Button" onClick=showTimeTable("tab_newreserve",["tb1","tb2"],"2001-01-01T12:00:00","2001-01-01T13:15:00",5)></div>\r
371                     </div>\r
372                 </div>\r
373             </div>\r
374         </div>\r
375     </body>\r
376 </html>\r