summaryrefslogtreecommitdiff
path: root/vdr-smarttvweb/web/Data.js
diff options
context:
space:
mode:
Diffstat (limited to 'vdr-smarttvweb/web/Data.js')
-rwxr-xr-xvdr-smarttvweb/web/Data.js129
1 files changed, 89 insertions, 40 deletions
diff --git a/vdr-smarttvweb/web/Data.js b/vdr-smarttvweb/web/Data.js
index 5e480d2..49e9026 100755
--- a/vdr-smarttvweb/web/Data.js
+++ b/vdr-smarttvweb/web/Data.js
@@ -1,16 +1,27 @@
+//Diff:
+// getNumString
+// createJQMDomTree
+
var Data =
{
assets : new Item,
folderList : [],
};
+Array.prototype.remove = function(from, to) {
+ var rest = this.slice((to || from) + 1 || this.length);
+ this.length = from < 0 ? this.length + from : from;
+ return this.push.apply(this, rest);
+};
+
Data.reset = function() {
this.assets = null;
this.assets = new Item;
this.folderList = [];
- this.folderList.push({item : this.assets, id: 0});
+// this.folderList.push({item : this.assets, id: 0});
+// Main.log("Data.reset: folderList.push. this.folderList.length= " + this.folderList.length);
};
Data.completed= function(sort) {
@@ -18,26 +29,31 @@ Data.completed= function(sort) {
this.assets.sortPayload();
this.folderList.push({item : this.assets, id: 0});
- console.log ("Data.completed()= " +this.folderList.length);
+// Main.log("Data.completed: folderList.push. this.folderList.length= " + this.folderList.length);
+// Main.log ("Data.completed()= " +this.folderList.length);
};
-Data.selectFolder = function (idx) {
- this.folderList.push({item : this.getCurrentItem().childs[idx], id: idx});
+Data.selectFolder = function (idx, first_idx) {
+ this.folderList.push({item : this.getCurrentItem().childs[idx], id: idx, first:first_idx});
+// Main.log("Data.selectFolder: folderList.push. this.folderList.length= " + this.folderList.length);
+};
+
+Data.folderUp = function () {
+ itm = this.folderList.pop();
+// Main.log("Data.folderUp: folderList.pop. this.folderList.length= " + this.folderList.length);
+ return itm;
+// return itm.id;
};
Data.isRootFolder = function() {
+// Main.log("Data.isRootFolder: this.folderList.length= " + this.folderList.length);
if (this.folderList.length == 1)
return true;
else
return false;
};
-Data.folderUp = function () {
- itm = this.folderList.pop();
- return itm.id;
-};
-
Data.addItem = function(t_list, pyld) {
this.assets.addChild(t_list, pyld, 0);
};
@@ -48,21 +64,24 @@ Data.dumpFolderStruct = function(){
Main.log("---------- dumpFolderStruct Done -------");
};
-Data.createDomTree = function () {
-
- return this.assets.createDomTree(0);
-};
-
Data.createJQMDomTree = function () {
return this.assets.createJQMDomTree(0);
};
+Data.findEpgUpdateTime = function() {
+ return this.assets.findEpgUpdateTime(Display.GetEpochTime() + 10000, "", 0);
+ // min, guid, level
+};
+
+Data.updateEpg = function (guid, entry) {
+ this.assets.updateEpgEntry(guid, entry, 0);
+};
+
Data.getCurrentItem = function () {
return this.folderList[this.folderList.length-1].item;
};
-Data.getVideoCount = function()
-{
+Data.getVideoCount = function() {
return this.folderList[this.folderList.length-1].item.childs.length;
};
@@ -84,7 +103,9 @@ Data.getNumString =function(num, fmt) {
return res;
};
-
+Data.deleteElm = function (pos) {
+ Data.getCurrentItem().childs.remove(pos);
+};
//-----------------------------------------
function Item() {
this.title = "root";
@@ -150,43 +171,71 @@ Item.prototype.addChild = function (key, pyld, level) {
}
};
-Item.prototype.print = function(level) {
+Item.prototype.findEpgUpdateTime = function (min, guid, level) {
var prefix= "";
for (var i = 0; i < level; i++)
- prefix += " ";
-
+ prefix += "-";
+
for (var i = 0; i < this.childs.length; i++) {
- Main.log(prefix + this.childs[i].title);
if (this.childs[i].isFolder == true) {
- Main.log(prefix+"Childs:");
- this.childs[i].print(level +1);
+ var res = this.childs[i].findEpgUpdateTime(min, guid, level+1);
+ min = res.min;
+ guid = res.guid;
}
- }
+ else {
+ var digi =new Date(this.childs[i].payload['start'] * 1000);
+ var str = digi.getHours() + ":" + digi.getMinutes();
+
+// Main.log(prefix + "min= " + min+ " start= " + this.childs[i].payload['start'] + " (" + str+ ") title= " + this.childs[i].title);
+
+ if ((this.childs[i].payload['start'] != 0) && ((this.childs[i].payload['start'] + this.childs[i].payload['dur']) < min)) {
+ min = this.childs[i].payload['start'] + this.childs[i].payload['dur'];
+ guid = this.childs[i].payload['guid'] ;
+// Main.log(prefix + "New Min= " + min + " new id= " + guid + " title= " + this.childs[i].title);
+// Main.logToServer(prefix + "New Min= " + min + " new id= " + guid + " title= " + this.childs[i].title);
+ }
+ }
+ }
+
+ return { "min": min, "guid" : guid};
};
-Item.prototype.createDomTree = function(level) {
+Item.prototype.updateEpgEntry = function (guid, entry, level) {
var prefix= "";
for (var i = 0; i < level; i++)
prefix += "-";
-// var mydiv = $('<div class="folder">' +prefix+this.title+ '</div>');
- var mydiv = $('<ul />');
-
for (var i = 0; i < this.childs.length; i++) {
if (this.childs[i].isFolder == true) {
-// mydiv.appendChild(this.childs[i].createDomTree());
- var myli = $('<li class="folder">' +prefix +this.childs[i].title + '</li>');
- myli.append(this.childs[i].createDomTree(level+1));
- mydiv.append(myli);
+ var res = this.childs[i].updateEpgEntry(guid, entry, level+1);
+ if (res == true)
+ return true;
}
- else {
-// var mya = $('<a class="link">' +prefix +this.childs[i].title + '</a>');
- var mya = $('<a>', { text: prefix +this.childs[i].title, href: this.childs[i].payload['link']} );
- var myli = $('<li class="item"/>');
- myli.append(mya);
- mydiv.append(myli);
+ else {
+ if (this.childs[i].payload['guid'] == guid) {
+ Main.log("updateEpgEntry: Found " + this.childs[i].title);
+ this.childs[i].payload.prog = entry.prog;
+ this.childs[i].payload.desc = entry.desc;
+ this.childs[i].payload.start = entry.start;
+ this.childs[i].payload.dur = entry.dur;
+ return true;
+ }
}
- }
- return mydiv;
+ }
+ return false;
+};
+
+Item.prototype.print = function(level) {
+ var prefix= "";
+ for (var i = 0; i < level; i++)
+ prefix += " ";
+
+ for (var i = 0; i < this.childs.length; i++) {
+ Main.log(prefix + this.childs[i].title);
+ if (this.childs[i].isFolder == true) {
+ Main.log(prefix+"Childs:");
+ this.childs[i].print(level +1);
+ }
+ }
};
Item.prototype.createJQMDomTree = function(level) {