<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.6/dijit/themes/claro/claro.css">\r
- <!--<link rel="stylesheet" type="text/css" href="./dojo-release-1.5.0/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>\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 src="./dojo-release-1.5.0/dojo/dojo.js" type="text/javascript" djConfig="parseOnLoad : true, isDebug : true"></script>-->\r
<script type="text/javascript">\r
- //dojo.require("dojo.event.connect");\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");\r
- dojo.require("dojo.date.locale");\r
+ dojo.require("dojo.date.locale");
+ dojo.require("dojo.date");\r
var ttch=["","",""];\r
var ttlastchange=0;\r
var gbtime="";\r
{name:"開始",field:"btime",width:"6em"},\r
{name:"終了",field:"etime",width:"3em"},\r
{name:"タイトル",field:"title",width:"auto"},\r
- {name:"opt",field:"opt",width:"3em"},\r
- {name:"dt",field:"deltatime",width:"3em"},\r
- {name:"dd",field:"deltaday",width:"3em"}\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
nbt=dojo.date.add(nbt,"minute",30);\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>";
</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
+ @import "http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojox/grid/resources/claroGrid.css";\r
</style>\r
</head>\r
\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
self.close_db(db)
return ret
- ########epg_tiemline系
+ ########epg_timeline系
def epg_timeline2dic(self,epg_timeline):
ret={}
ret['bctype']=epg_timeline[0]
recdata.append(self.epg_timeline2dic(line))
self.close_db(db)
return recdata
+ def select_by_keyword_title_epg_timeline(self,keyword="",chtxt="",btime="",etime=""):
+ keyt=""
+ chtxtt=""
+ btimet=""
+ etimet=""
+ if len(keyword)>0:
+ keyt=" AND title LIKE '%"+keyt+"%' "
+ if len(btime)>0:
+ start=datetime.datetime(*time.strptime(btime, "%Y-%m-%d %H:%M:%S")[:-3]).strftime("%Y%m%d%H%M%S")
+ stop=datetime.datetime(*time.strptime(etime, "%Y-%m-%d %H:%M:%S")[:-3]).strftime("%Y%m%d%H%M%S")
+ btimet=" AND start >= "+start+" "
+ etimet=" AND stop <= "+stop+" "
+ if len(chtxt)>0:
+ chtxtt=" AND channel = "+chtxt+" "
+ db = self.connect_db()
+ recdata = []
+ #print "SELECT bctype,channel,start,stop,title,exp,longexp,category FROM epg_timeline \
+ #WHERE bctype LIKE '%' "+keyt+btimet+etimet+chtxtt+""
+ dl = db[1].execute("SELECT bctype,channel,start,stop,title,exp,longexp,category FROM epg_timeline \
+ WHERE bctype LIKE '%' "+keyt+btimet+etimet+chtxtt+"")
+ dls = db[1].fetchall()
+ for line in dls:
+ recdata.append(self.epg_timeline2dic(line))
+ self.close_db(db)
+ return recdata
#####ここまでDBの読み込み/書き込み系
global db
db=getdb()
global f
f = cgi.FieldStorage()
#mode="timeline"
+mode=""
+
+
+
if f.getfirst('mode',""):
mode=f.getfirst('mode', "")
if mode=="chtypelist":
btime=f.getfirst("btime")
etime=f.getfirst("etime")
if not btime:
- btime="2011-02-24 12:00:00"
+ btime=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
if not etime:
- etime="2011-02-24 15:00:00"
+ et=datetime.datetime.now()+datetime.timedelta(days=8)
+ etime=et.strftime("%Y-%m-%d %H:%M:%S")
chtxt=f.getfirst("chtxt")
if not chtxt:
chtxt="18_3096"
print jsonHeader
#print htmlHeader
print json.dumps({"data":tlll},encoding="utf-8")
+if mode=="epg-search":
+ tlll={"items":[]}
+ btime=f.getfirst("btime")
+ etime=f.getfirst("etime")
+ if not btime:
+ bt=datetime.datetime.now()
+ btime=bt.strftime("%Y-%m-%d %H:%M:%S")
+ if not etime:
+ et=datetime.datetime.now()+datetime.timedelta(days=8)
+ etime=et.strftime("%Y-%m-%d %H:%M:%S")
+ chtxt=f.getfirst("chtxt")
+ if not chtxt:
+ chtxt=""
+ keyword=f.getfirst("keyword")
+ if not keyword:
+ keyword=""
+ dbl=db.select_by_keyword_title_epg_timeline(keyword=keyword,chtxt=chtxt,btime=btime,etime=etime)
+ for dbi in dbl:
+ tlll["items"].append({"id":dbi["btime"],"btime":dbi["btime"],
+ "chtxt":dbi["chtxt"],"title":dbi["title"],
+ "exp":dbi["exp"],"longexp":dbi["longexp"],
+ "category":dbi["category"]})
+ print jsonHeader
+ #print htmlHeader
+ print json.dumps({"data":tlll},encoding="utf-8")