OSDN Git Service

DVB configures added.
[rec10/rec10-git.git] / Rec10WEBG3 / trunk / rec10webg3.htm
index 8f4d9bb..0c783e2 100644 (file)
@@ -2,37 +2,53 @@
 <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
@@ -41,7 +57,8 @@
                                                        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