From 0adab5a1ba140dda76e34a9347d69247c4de2263 Mon Sep 17 00:00:00 2001 From: thlo Date: Sat, 5 Jan 2013 16:37:48 +0100 Subject: New Web Front End. Various bug fixes. --- vdr-smarttvweb/web/Data.js | 247 +++++++++++++++++++++++++++++++++++++++++ vdr-smarttvweb/web/Server.js | 120 ++++++++++++++++++++ vdr-smarttvweb/web/favicon.ico | Bin 0 -> 1502 bytes vdr-smarttvweb/web/index.html | 100 +++++++++++++++++ 4 files changed, 467 insertions(+) create mode 100755 vdr-smarttvweb/web/Data.js create mode 100755 vdr-smarttvweb/web/Server.js create mode 100755 vdr-smarttvweb/web/favicon.ico create mode 100755 vdr-smarttvweb/web/index.html (limited to 'vdr-smarttvweb/web') diff --git a/vdr-smarttvweb/web/Data.js b/vdr-smarttvweb/web/Data.js new file mode 100755 index 0000000..5e480d2 --- /dev/null +++ b/vdr-smarttvweb/web/Data.js @@ -0,0 +1,247 @@ +var Data = +{ + assets : new Item, + folderList : [], +}; + +Data.reset = function() { + this.assets = null; + this.assets = new Item; + + this.folderList = []; + + this.folderList.push({item : this.assets, id: 0}); +}; + +Data.completed= function(sort) { + if (sort == true) + this.assets.sortPayload(); + + this.folderList.push({item : this.assets, id: 0}); + console.log ("Data.completed()= " +this.folderList.length); + +}; + +Data.selectFolder = function (idx) { + this.folderList.push({item : this.getCurrentItem().childs[idx], id: idx}); +}; + +Data.isRootFolder = function() { + 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); +}; + +Data.dumpFolderStruct = function(){ + Main.log("---------- dumpFolderStruct ------------"); + this.assets.print(0); + Main.log("---------- dumpFolderStruct Done -------"); +}; + +Data.createDomTree = function () { + + return this.assets.createDomTree(0); +}; + +Data.createJQMDomTree = function () { + return this.assets.createJQMDomTree(0); +}; + +Data.getCurrentItem = function () { + return this.folderList[this.folderList.length-1].item; +}; + +Data.getVideoCount = function() +{ + return this.folderList[this.folderList.length-1].item.childs.length; +}; + +Data.getNumString =function(num, fmt) { + var res = ""; + + if (num < 10) { + for (var i = 1; i < fmt; i ++) { + res += "0"; + }; + } else if (num < 100) { + for (var i = 2; i < fmt; i ++) { + res += "0"; + }; + } + + res = res + num; + + return res; +}; + + +//----------------------------------------- +function Item() { + this.title = "root"; + this.isFolder = true; + this.childs = []; + this.payload = ""; // only set, if (isFolder == false) +} + +Item.prototype.isFolder = function() { + return this.isFolder; +}; + +Item.prototype.getTitle = function () { + return this.title; +}; + +Item.prototype.getPayload = function () { + if (this.isFolder == true) { + Main.log("WARNING: getting payload on a folder title=" +this.title); + } + return this.payload; +}; + +Item.prototype.getItem = function (title) { + for (var i = 0; i < this.childs.length; i++) { + if (this.childs[i].title == title) { + return this.childs[i]; + } + } + return 0; +}; + +Item.prototype.addChild = function (key, pyld, level) { + if (key.length == 1) { + var folder = new Item; +// folder.title = pyld.startstr + " - " + key; + folder.title = key[0]; + folder.payload = pyld; + folder.isFolder = false; + this.childs.push(folder); +// this.titles.push({title: pyld.startstr + " - " + key , pyld : pyld}); + } + else { + if (level > 10) { + Main.log(" too many levels"); + return; + } + var t = key.shift(); + var found = false; + for (var i = 0; i < this.childs.length; i++) { + if (this.childs[i].title == t) { + this.childs[i].addChild(key, pyld, level +1); + found = true; + break; + } + } + if (found == false) { + var folder = new Item; + folder.title = t; + folder.addChild(key, pyld, level+1); + this.childs.push(folder); + } + } +}; + +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.createDomTree = function(level) { + var prefix= ""; + for (var i = 0; i < level; i++) + prefix += "-"; +// var mydiv = $('
' +prefix+this.title+ '
'); + var mydiv = $('