1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
\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
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
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
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
49 var chlistPaneTE=dojo.byId("progTableTE");
\r
50 var chlistPaneBS=dojo.byId("progTableBS");
\r
51 var chlistPaneCS=dojo.byId("progTableCS");
\r
53 url:"rec10webg3.py?mode=chlist",
\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
69 chlistPaneTE.appendChild(child.domNode);
\r
73 error: function(error,args) {
\r
74 console.warn("error!",error);
\r
78 function changeTab(tabid){
\r
79 dijit.byId("main_tab").selectChild(dijit.byId(tabid));
\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
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
89 function dt2DateTime(tt){
\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
100 function addTimetableCh(chtxt){
\r
102 console.dir(chtxt);
\r
103 for (i = 0; i < 3; i++) {
\r
104 if (ttch[i] == chtxt) {
\r
107 removeSingleCh("timetable-id"+i);
\r
112 for (i = 0; i < 3; i++) {
\r
113 if (ttch[i].length == 0) {
\r
120 ttch[(ttlastchange + 1) % 3] = chtxt;
\r
122 ttlastchange = (ttlastchange + 1) % 3;
\r
124 showTimeTable("timetableContainer", ttch, gbtime, getime, 5);
\r
127 function calcMaxHeight(parentid,chlists,bt,et,fontsize){
\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
135 url:parentid+".json",
\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
155 baseForm.removeChild(node);
\r
158 error: function(error,args) {
\r
159 console.warn("error!",error);
\r
162 //console.log(maxH);
\r
163 //console.log(tempH);
\r
171 function showTimeTableSingleCH(parentid,ch,bt,et,fontsize,maxsize){
\r
172 var thisMaxheight=calcMaxHeight(parentid,[ch,],bt,et,fontsize);
\r
174 url:parentid+".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
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
205 error: function(error,args) {
\r
206 console.warn("error!",error);
\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
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
225 if (bt.getMinutes()>30){
\r
231 if (et.getMinutes()>30){
\r
233 et=dojo.date.add(et, "minute", 30);
\r
237 var dt=dojo.date.difference(bt,et,"minute");
\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
249 showTimeTableSingleCH("timetable-id"+j,chlists[j],nbt,net,fontsize,theight);
\r
253 nbt=dojo.date.add(nbt,"minute",30);
\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
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
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
286 <div dojoType="dijit.layout.ContentPane" title="予約">
\r
287 <div dojoType="dijit.form.Button" id="simpleReserveButton" label="新規予約" onclick=changeTab("tab_newreserve")></div>
\r
289 <div dojoType="dijit.form.Button" id="ReserveListTimeButton" label="予約確認(時間順)" onclick=changeTab("tab_list_time")></div>
\r
291 <div dojoType="dijit.layout.ContentPane" title="設定">
\r
293 <div dojoType="dijit.layout.ContentPane" title="その他">
\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
312 <div dojoType="dijit.layout.ContentPane" id="tab_timetablebasic" title="TimeTable" href="rec10webg2.pl">
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
320 <div dojoType="dijit.layout.ContentPane" id="tab_newreserve" title="新規予約">
\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
328 <div dojoType="dijit.form.TextBox" id="newreserve_title" style="width:30%"></div><br>
\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
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
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
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
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
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
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