<html dir="ltr">\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r
- <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/claro/claro.css">\r
- <!--<link rel="stylesheet" type="text/css" href="./dojo-release-1.5.0/dijit/themes/claro/claro.css">-->\r
+ <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dijit/themes/claro/claro.css">\r
<style type="text/css">\r
body, html { font-family:helvetica,arial,sans-serif; font-size:90%; }\r
</style>\r
<style type="text/css">\r
- html, body { width: 100%; height: 100%; margin: 0; overflow:hidden; }\r
- #borderContainerTwo { width: 100%; height: 100%; }\r
+ html, body { width: 100%; height: 100%; margin: 0; overflow:hidden; }\r
+ #borderContainerTwo { width: 100%; height: 100%; }\r
</style>\r
- <title>Rec10Suite 0.0.1</title>\r
- <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js" type="text/javascript" djConfig="parseOnLoad : true, isDebug : true"></script>\r
- <!--<script src="./dojo-release-1.5.0/dojo/dojo.js" type="text/javascript" djConfig="parseOnLoad : true, isDebug : true"></script>-->\r
+ <title>Rec10Suite 0.0.3</title>\r
+ <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
<script type="text/javascript">\r
dojo.require("dijit.layout.ContentPane");\r
dojo.require("dijit.layout.TabContainer");\r
dojo.require("dijit.layout.AccordionContainer");\r
dojo.require("dijit.layout.BorderContainer");\r
dojo.require("dojo.data.ItemFileReadStore");\r
- dojo.require("dijit.form.FilteringSelect");\r
+ dojo.require("dijit.form.FilteringSelect");
+ dojo.require("dijit.form.TextBox");
+ dojo.require("dijit.form.Button");\r
dojo.require("dijit.form.DateTextBox");\r
dojo.require("dijit.form.TimeTextBox");\r
dojo.require("dijit.form.HorizontalSlider");\r
dojo.require("dijit.form.HorizontalRuleLabels");\r
+ dojo.require("dojox.grid.DataGrid");\r
+ dojo.require("dojo.date.locale");
dojo.require("dojo.date");\r
- dojo.require("dojo.date.locale");\r
+ var ttch=["","",""];\r
+ var ttlastchange=0;\r
+ var gbtime="";\r
+ var getime="";\r
+ var reserve_grid_structure= [{cells:[\r
+ {name:"ID",field:"id",width:"4em"},\r
+ {name:"タイプ",field:"type",width:"5em",formatter:gridTypeFormatter},\r
+ {name:"チャンネル",field:"chtxt",width:"5em"},\r
+ {name:"開始",field:"btime",width:"6em"},\r
+ {name:"終了",field:"etime",width:"3em"},\r
+ {name:"タイトル",field:"title",width:"auto"},\r
+ {name:"opt",field:"opt",width:"4em"},\r
+ {name:"dt",field:"deltatime",width:"2em"},\r
+ {name:"dd",field:"deltaday",width:"2em"}\r
+ ]}];\r
function readCh(){\r
var chlistPaneTE=dojo.byId("progTableTE");\r
var chlistPaneBS=dojo.byId("progTableBS");\r
var chlistPaneCS=dojo.byId("progTableCS");\r
dojo.xhrGet({\r
- url:"chlist.json",\r
+ url:"rec10webg3.py?mode=chlist",\r
handleAs: "json",\r
load: function(data,ioargs){\r
//console.log("res=", data['items']);\r
var child = new dijit.form.ToggleButton\r
( {id: data['items'][i]["name"], \r
label: data['items'][i]["label"],\r
- iconClass: "dijitCheckBoxIcon" },node );\r
+ iconClass: "dijitCheckBoxIcon"},node );\r
+ dojo.connect(node,"onClick",data['items'][i]["name"],addTimetableCh);\r
if (data['items'][i]['type']=="bs"){\r
chlistPaneBS.appendChild(child.domNode);\r
}else if (data['items'][i]['type']=="cs"){\r
var month=parseInt(tt.getMonth());\r
return tt.getFullYear()+"-"+get2(month)+"-"+get2(tt.getDate())+"T"+get2(tt.getHours())+":"+get2(tt.getMinutes())+":"+get2(tt.getSeconds());\r
}\r
+ function addTimetableCh(chtxt){\r
+ var have = 0;\r
+ console.dir(chtxt);\r
+ for (i = 0; i < 3; i++) {\r
+ if (ttch[i] == chtxt) {\r
+ ttch[i] = "";\r
+ have = 1;\r
+ removeSingleCh("timetable-id"+i);\r
+ }\r
+ }\r
+ if (have == 0) {\r
+ var change = 0;\r
+ for (i = 0; i < 3; i++) {\r
+ if (ttch[i].length == 0) {\r
+ ttch[i] = chtxt;\r
+ ttlastchange = i;\r
+ change = 1;\r
+ }\r
+ }\r
+ if (change == 0) {\r
+ ttch[(ttlastchange + 1) % 3] = chtxt;\r
+ change = 1;\r
+ ttlastchange = (ttlastchange + 1) % 3;\r
+ }\r
+ showTimeTable("timetableContainer", ttch, gbtime, getime, 5);\r
+ }\r
+ }\r
function calcMaxHeight(parentid,chlists,bt,et,fontsize){\r
var maxH=0;\r
var tempH=0;\r
chnode.setAttribute("style","width:100%;");\r
//chnode.setAttribute("id",data['items'][i]['id']);\r
dojo.xhrGet({\r
- url:"timetable.json",\r
+ url:parentid+".json",\r
handleAs: "json",\r
sync: true,\r
load: function(data,ioargs){\r
function showTimeTableSingleCH(parentid,ch,bt,et,fontsize,maxsize){\r
var thisMaxheight=calcMaxHeight(parentid,[ch,],bt,et,fontsize);\r
dojo.xhrGet({\r
- url:"timetable.json",\r
+ url:parentid+".json",\r
handleAs: "json",\r
load: function(data,ioargs){\r
var baseForm=dojo.byId(parentid);\r
node.appendChild(node_str_desc);\r
baseForm.appendChild(node);\r
var h=node.clientHeight;\r
+ console.log(h);\r
baseForm.removeChild(node);\r
node = dojo.doc.createElement("div");\r
node.setAttribute("style","border:3px solid #CCC;width:100%;height:"+h*maxsize/thisMaxheight+"");\r
node.appendChild(nodetitle);\r
node.appendChild(node_str_desc);\r
baseForm.appendChild(node);\r
- console.log(h)\r
- baseForm.removeChild(node);\r
}; \r
},\r
error: function(error,args) {\r
}\r
});\r
}\r
+ function removeSingleCh(parentid){\r
+ var baseForm=dojo.byId(parentid);\r
+ var children=baseForm.getChildren();\r
+ console.dir(children);\r
+ for (i=0;i<children.length();i++){\r
+ baseForm.removeChild(childen[i]);\r
+ }\r
+ }\r
function showTimeTable(parentid,chlists,btime,etime,fontsize){\r
var widthp=Math.floor(100/chlists.length);\r
var every_width=20;\r
}\r
var dt=dojo.date.difference(bt,et,"minute");\r
var nbt=bt;\r
+ var i=0;\r
while(dt>i){\r
+ console.dir([dt,i]);\r
net=dojo.date.add(nbt,"minute",30);\r
var theight=calcMaxHeight("timetable-id0",chlists,dt2DateTime(nbt),dt2DateTime(net),fontsize);\r
console.log(theight)\r
for (j=0;j<chlists.length;j++){\r
if (j>2){\r
j=chlists.length;\r
- //showTimeTableSingleCH("timetable-id"+j,chlists[j],nbt,net,fontsize,theight);\r
+ }else{\r
+ showTimeTableSingleCH("timetable-id"+j,chlists[j],nbt,net,fontsize,theight);\r
}\r
}\r
i=i+30;\r
nbt=dojo.date.add(nbt,"minute",30);\r
- \r
}\r
+ }
+
+
+
+
+
+
+//########################################################################
+ function showSearchEPG(){
+ var keyw=dojo.byId("tb_search_keyword").value;\r
+ dojo.xhrGet({\r
+ url:"rec10webg3.py?mode=epg-search&keyword="+keyw,\r
+ handleAs: "json",\r
+ load: function(data,ioargs){\r
+ var baseForm=dojo.byId("tab_epgsearch");\r
+ console.dir(data);
+ console.dir(data.items);\r
+ for (i=0;i<data['items'].length;i++){\r
+ var node = dojo.doc.createElement("p");
+ var hr = dojo.doc.createElement("hr");
+ var titlediv = dojo.doc.createElement("div");
+ titlediv.setAttribute("style","font-size:1.4em;font-weight:bold;");
+ var titlediv_text = dojo.doc.createTextNode(data['items'][i]['title']);
+ titlediv.appendChild(titlediv_text);
+ var datespan1 = dojo.doc.createElement("span");
+ datespan1.setAttribute("style","font-size:1.2em;font-weight:bold;");
+ var date_text = dojo.doc.createTextNode(data['items'][i]['btime'].substring(6,10)+" ");
+ datespan1.appendChild(date_text);
+ var datespan2 = dojo.doc.createElement("span");
+ datespan2.setAttribute("style","font-size:1em;");
+ var date_text2 = dojo.doc.createTextNode(data['items'][i]['btime'].substring(11,16));
+ datespan2.appendChild(date_text2);
+ var channel = dojo.doc.createElement("span");
+ channel.setAttribute("style","font-size:1.2em;font-style:italic;");
+ var channel_text = dojo.doc.createTextNode(data['items'][i]['chtxt']);
+ channel.appendChild(channel_text);
+ var desc_div = dojo.doc.createElement("div");
+ desc_div.setAttribute("style","font-size:1em;font-style:italic;");
+ var desc_div = dojo.doc.createTextNode(data['items'][i]['exp'].replace(/\n/g,"<br>"));
+ datespan2.appendChild(date_text2);
+ node.appendChild(hr);
+ node.appendChild(titlediv);
+ node.appendChild(datespan1);
+ node.appendChild(datespan2);
+ node.appendChild(channel);
+ node.appendChild(desc_div);\r
+ baseForm.appendChild(node);\r
+ }; \r
+ },\r
+ error: function(error,args) {\r
+ console.warn("error!",error);\r
+ }\r
+ });
+
+ }
+ function gridTypeFormatter(type){
+ switch(type){
+ case "reserve_flexible":return "<span style='color:skyblue'>未確定予約</span>";
+ case "reserve_fixed":return "<span style='color:blue'>確定予約</span>";
+ case "convert_ts_mp4_network":return "<span style='color:black'>ネット変換予約</span>";
+ case "convert_ts_mp4_running":return "<span style='color:orange'>動画圧縮中</span>";
+ case "convert_ts_mp4":return "<span style='color:yellow'>圧縮予約</span>";
+ case "convert_avi_mp4_miss":return "<span style='color:'></span>";
+ case "search_today":return "<span style='color:skyblue'>当日予約</span>";
+ case "search_everyday":return "<span style='color:purple'>隔日予約</span>";
+ case "convert_ts_mp4_finished":return "<span style='color:gray'>圧縮終了</span>";
+ case "convert_b25_ts_miss":return "<blink><span style='color:red'>解読失敗</span></blink>";
+ case "convert_b25_ts":return "<span style='color:green'>解読予約</span>";
+ case "convert_b25_ts_running":return "<span style='color:yellowgreen'>解読中</span>";
+ case "reserve_running":return "<span style='color:orange'>録画中</span>";
+ case "convert_mkv_mp4_runnings":return "<span style='color:'></span>";
+ case "convert_avi_mkv":return "<span style='color:'></span>";
+ case "convert_avi_mp4":return "<span style='color:'></span>";
+ case "convert_mkv_mp4":return "<span style='color:'></span>";
+ case "move_end":return "<span style='color:gray'>移動終了</span>";
+
+ default : return type;
+ }
}\r
dojo.addOnLoad\r
(\r
}\r
);\r
</script>\r
+ <style type="text/css">\r
+ @import "http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojox/grid/resources/Grid.css";\r
+ @import "http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojox/grid/resources/claroGrid.css";\r
+ </style>\r
</head>\r
\r
<body class=" claro ">\r
</div>\r
<div dojoType="dijit.layout.ContentPane" title="予約">\r
<div dojoType="dijit.form.Button" id="simpleReserveButton" label="新規予約" onclick=changeTab("tab_newreserve")></div>\r
+ <hr>\r
+ <div dojoType="dijit.form.Button" id="ReserveListTimeButton" label="予約確認(時間順)" onclick=changeTab("tab_list_time")></div>\r
</div>\r
<div dojoType="dijit.layout.ContentPane" title="設定">\r
</div>\r
</div>\r
<div dojoType="dijit.layout.TabContainer" id="main_tab" region="center" tabStrip="true">\r
<div dojoType="dijit.layout.ContentPane" title="番組表" selected="true">\r
- <div dojoType="dijit.layout.BorderContainer" id="timetableContainer" design="sidebar" style="width:100%;height:98%;" gutters="true">\r
- <div dojoType="dijit.layout.ContentPane" id="timetable-id0" region="left" style="width:30%"></div>\r
- <div dojoType="dijit.layout.ContentPane" id="timetable-id1" region="center"></div>\r
- <div dojoType="dijit.layout.ContentPane" id="timetable-id2" region="right" style="width:30%"></div>\r
+ <div dojoType="dijit.layout.BorderContainer" id="timetableContainer" design="headline" style="width:100%;height:100%;" gutters="true">\r
+ <div dojoType="dijit.layout.ContentPane" id="timetable-id0" region="left" style="width:30%"></div>\r
+ <div dojoType="dijit.layout.ContentPane" id="timetable-id1" region="center"></div>\r
+ <div dojoType="dijit.layout.ContentPane" id="timetable-id2" region="right" style="width:30%"></div>\r
+ <div dojoType="dijit.layout.ContentPane" id="timetable-button" region="bottom" style="height:4%;position:relative;">\r
+ <div dojoType="dijit.form.Button" style="position:absolute;left:0.5em;" onClick=showTimeTable()><<前</div>\r
+ <div dojoType="dijit.form.Button" style="position:absolute;right:0.5em;" onClick=showTimeTable()>次>></div>\r
+ <div dojoType="dijit.form.Button" style="position:absolute;left:40%;" onClick=showTimeTable()>06h</div>\r
+ <div dojoType="dijit.form.Button" style="position:absolute;left:48.5%;" onClick=showTimeTable()>12h</div>\r
+ <div dojoType="dijit.form.Button" style="position:absolute;right:40%;" onClick=showTimeTable()>24h</div>\r
+ <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
</div>\r
- <div dojoType="dijit.form.Button" onClick=showTimeTable("timetableContainer",["tb1","tb2","tb3"],"2001-01-01T12:00:00","2001-01-01T13:15:00",5)></div>\r
- </div>\r
- <div dojoType="dijit.layout.ContentPane" title="番組検索">\r
- Lorem ipsum and all around - second...\r
+ </div>\r
+ </div>
+ <div dojoType="dijit.layout.ContentPane" id="tab_timetablebasic" title="TimeTable" href="rec10webg2.pl">
+ </div>
+ <div dojoType="dijit.layout.ContentPane" id="tab_epgsearch" title="Search" onClick="showSearchEPG()">
+ <p>Program Search:<div dojoType="dijit.form.TextBox" id="tb_search_keyword">Keyword</div>
+ <div dojoType="dijit.form.Button" id="tb_search_button">Search</div></p>
+ </div>
+ <div dojoType="dijit.layout.ContentPane" title="番組表3" >
+ <div dojoType="dijit.layout.BorderContainer" id="timetableContainer3" design="headline" style="width:100%;height:100%;" gutters="true">
+ <div dojoType="dijit.layout.ContentPane" id="timetable3-tt" region="center" href="rec10webg2.pl?mode=timegraph&btime=2011-05-07_06-00-00&etime=2011-05-07_18-00-00"></div>\r
+ <div dojoType="dijit.layout.ContentPane" id="timetable3-id0" region="right" style="width:28%" href="rec10webg2.pl?mode=graph&chtxt=13&btime=2011-05-07_06-00-00&etime=2011-05-07_18-00-00"></div>\r
+ <div dojoType="dijit.layout.ContentPane" id="timetable3-id1" region="right" style="width:28%" href="rec10webg2.pl?mode=graph&chtxt=21&btime=2011-05-07_06-00-00&etime=2011-05-07_18-00-00"></div>\r
+ <div dojoType="dijit.layout.ContentPane" id="timetable3-id2" region="right" style="width:28%" href="rec10webg2.pl?mode=graph&chtxt=21&btime=2011-05-07_06-00-00&etime=2011-05-07_18-00-00"></div>\r
+ <div dojoType="dijit.layout.ContentPane" id="timetable3-button" region="bottom" style="height:4%;position:relative;">\r
+ <div dojoType="dijit.form.Button" style="position:absolute;left:0.5em;" onClick=showTimeTable()><<前</div>\r
+ <div dojoType="dijit.form.Button" style="position:absolute;right:0.5em;" onClick=showTimeTable()>次>></div>\r
+ <div dojoType="dijit.form.Button" style="position:absolute;left:40%;" onClick=showTimeTable()>06h</div>\r
+ <div dojoType="dijit.form.Button" style="position:absolute;left:48.5%;" onClick=showTimeTable()>12h</div>\r
+ <div dojoType="dijit.form.Button" style="position:absolute;right:40%;" onClick=showTimeTable()>24h</div>\r
+ <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
+ </div>\r
+ </div>\r
+ </div>\r
+ <div dojoType="dijit.layout.ContentPane" id="tab_list_time" title="予約確認(時間順)">\r
+ <div dojoType="dojo.data.ItemFileReadStore" jsId="reserveStore"\r
+ url="rec10webg3.py?mode=timeline"></div>\r
+ <table dojoType="dojox.grid.DataGrid" id="grid_reserve_list_time" structure="reserve_grid_structure"\r
+ store="reserveStore" style="font-size:1.4em;"></table>\r
</div>\r
<div dojoType="dijit.layout.ContentPane" id="tab_newreserve" title="新規予約">\r
<h2>新規予約</h2><br>\r