diff --git a/src/Icons/tree/I.gif b/src/Icons/tree/I.gif new file mode 100644 index 000000000..1a259eea0 Binary files /dev/null and b/src/Icons/tree/I.gif differ diff --git a/src/Icons/tree/L.gif b/src/Icons/tree/L.gif new file mode 100644 index 000000000..48b81c80a Binary files /dev/null and b/src/Icons/tree/L.gif differ diff --git a/src/Icons/tree/Lminus.gif b/src/Icons/tree/Lminus.gif new file mode 100644 index 000000000..26c2b3449 Binary files /dev/null and b/src/Icons/tree/Lminus.gif differ diff --git a/src/Icons/tree/Lplus.gif b/src/Icons/tree/Lplus.gif new file mode 100644 index 000000000..775619d32 Binary files /dev/null and b/src/Icons/tree/Lplus.gif differ diff --git a/src/Icons/tree/Rminus.gif b/src/Icons/tree/Rminus.gif new file mode 100644 index 000000000..e62222abd Binary files /dev/null and b/src/Icons/tree/Rminus.gif differ diff --git a/src/Icons/tree/Rplus.gif b/src/Icons/tree/Rplus.gif new file mode 100644 index 000000000..1c40a78dc Binary files /dev/null and b/src/Icons/tree/Rplus.gif differ diff --git a/src/Icons/tree/T.gif b/src/Icons/tree/T.gif new file mode 100644 index 000000000..34dd47610 Binary files /dev/null and b/src/Icons/tree/T.gif differ diff --git a/src/Icons/tree/Tminus.gif b/src/Icons/tree/Tminus.gif new file mode 100644 index 000000000..025840f4f Binary files /dev/null and b/src/Icons/tree/Tminus.gif differ diff --git a/src/Icons/tree/Tplus.gif b/src/Icons/tree/Tplus.gif new file mode 100644 index 000000000..4659651e0 Binary files /dev/null and b/src/Icons/tree/Tplus.gif differ diff --git a/src/Icons/tree/_closed.gif b/src/Icons/tree/_closed.gif new file mode 100644 index 000000000..c2d3b329c Binary files /dev/null and b/src/Icons/tree/_closed.gif differ diff --git a/src/Icons/tree/_doc.gif b/src/Icons/tree/_doc.gif new file mode 100644 index 000000000..155a63244 Binary files /dev/null and b/src/Icons/tree/_doc.gif differ diff --git a/src/Icons/tree/_open.gif b/src/Icons/tree/_open.gif new file mode 100644 index 000000000..7064a3038 Binary files /dev/null and b/src/Icons/tree/_open.gif differ diff --git a/src/Icons/tree/minus.gif b/src/Icons/tree/minus.gif new file mode 100644 index 000000000..1647fea2c Binary files /dev/null and b/src/Icons/tree/minus.gif differ diff --git a/src/Icons/tree/plus.gif b/src/Icons/tree/plus.gif new file mode 100644 index 000000000..3fe85900f Binary files /dev/null and b/src/Icons/tree/plus.gif differ diff --git a/src/icons.qrc b/src/icons.qrc index 67d239c0b..7149a3dac 100644 --- a/src/icons.qrc +++ b/src/icons.qrc @@ -114,6 +114,20 @@ Icons/flags/japan.png Icons/flags/malaysia.png Icons/flags/philippines.png + Icons/tree/Lplus.gif + Icons/tree/Tminus.gif + Icons/tree/Tplus.gif + Icons/tree/_open.gif + Icons/tree/plus.gif + Icons/tree/Rminus.gif + Icons/tree/Lminus.gif + Icons/tree/T.gif + Icons/tree/_closed.gif + Icons/tree/L.gif + Icons/tree/_doc.gif + Icons/tree/I.gif + Icons/tree/minus.gif + Icons/tree/Rplus.gif Icons/oxygen/mail-queue.png Icons/oxygen/view-refresh.png Icons/oxygen/file.png diff --git a/src/webui.qrc b/src/webui.qrc index fb1c22824..dbbd2f305 100644 --- a/src/webui.qrc +++ b/src/webui.qrc @@ -18,6 +18,7 @@ webui/scripts/excanvas-compressed.js webui/scripts/mocha.js webui/scripts/mocha-init.js + webui/scripts/tree.js webui/scripts/mootools-1.2-core-yc.js webui/scripts/mootools-1.2-more.js webui/scripts/dynamicTable.js diff --git a/src/webui/css/mocha.css b/src/webui/css/mocha.css index bc9793fbc..7a2e999ac 100644 --- a/src/webui/css/mocha.css +++ b/src/webui/css/mocha.css @@ -892,36 +892,36 @@ div.mochaToolbarWrapper.bottom { padding-bottom: 5px; } -/* Folder Tree */ - -.tree { - font-size: 11px; - line-height: 15px; - margin: 0; -} - -.tree ul { - margin: 0; -} - -.tree li { - list-style-type: none; - white-space: nowrap; -} - -.tree li a { - color: #3f3f3f; -} - -.tree li img { - vertical-align: middle; - width: 18px; - height: 18px; - overflow: hidden; -} - -.tree li span { - padding-left: 2px; +/* Folder Tree */ + +.tree { + font-size: 11px; + line-height: 15px; + margin: 0; +} + +.tree ul { + margin: 0; +} + +.tree li { + list-style-type: none; + white-space: nowrap; +} + +.tree li a { + color: #3f3f3f; +} + +.tree li img { + vertical-align: middle; + width: 18px; + height: 18px; + overflow: hidden; +} + +.tree li span { + padding-left: 2px; } /* View Toggle */ diff --git a/src/webui/index.html b/src/webui/index.html index 2b9935dec..72135b99f 100644 --- a/src/webui/index.html +++ b/src/webui/index.html @@ -16,6 +16,7 @@ +
diff --git a/src/webui/prop-files.html b/src/webui/prop-files.html index 33840068c..151353cc6 100644 --- a/src/webui/prop-files.html +++ b/src/webui/prop-files.html @@ -1 +1,12 @@ -CONTENT \ No newline at end of file + + + \ No newline at end of file diff --git a/src/webui/scripts/tree.js b/src/webui/scripts/tree.js new file mode 100644 index 000000000..8c25a9541 --- /dev/null +++ b/src/webui/scripts/tree.js @@ -0,0 +1,124 @@ +/* + +Script: Tree.js + Create folder trees. + +Copyright: + Copyright (c) 2007-2008 Greg Houston, . + +License: + MIT-style license. + +*/ + +function buildTree(treeID){ + + $$('#'+treeID+' li.folder').each(function(folder){ + var folderContents = folder.getChildren('ul'); + var folderImage = new Element('img', { + 'src': '../images/tree/_open.gif', + 'width': 18, + 'height': 18 + }).inject(folder, 'top'); + + // Determine which open and close graphic each folder gets + + if (folder.hasClass('root')) { + folder.minus = '../images/tree/Rminus.gif' + folder.plus = '../images/tree/Rplus.gif' + } + else + if (folder.getNext()) { + folder.minus = '../images/tree/Tminus.gif' + folder.plus = '../images/tree/Tplus.gif' + } + else { + folder.minus = '../images/tree/Lminus.gif' + folder.plus = '../images/tree/Lplus.gif' + } + + var image = new Element('img', { + 'src': folder.minus, + 'width': 18, + 'height': 18 + }).addEvent('click', function(){ + if (folder.hasClass('f-open')) { + image.setProperty('src', folder.plus); + folderImage.setProperty('src', '../images/tree/_closed.gif'); + folderContents.each(function(el){ + el.setStyle('display', 'none'); + }); + folder.removeClass('f-open'); + } + else { + image.setProperty('src', folder.minus); + folderImage.setProperty('src', '../images/tree/_open.gif'); + folderContents.each(function(el){ + el.setStyle('display', 'block'); + }); + folder.addClass('f-open'); + } + }).inject(folder, 'top'); + + if (!folder.hasClass('f-open')) { + image.setProperty('src', folder.plus); + folderContents.each(function(el){ + el.setStyle('display', 'none'); + }); + folder.removeClass('f-open'); + } + + // Add connecting branches to each file node + + folderContents.each(function(element){ + var docs = element.getChildren('li.doc'); + docs.each(function(el){ + if (el == docs.getLast() && !el.getNext()) { + new Element('img', { + 'src': '../images/tree/L.gif', + 'width': 18, + 'height': 18 + }).inject(el.getElement('span'), 'before'); + } + else { + new Element('img', { + 'src': '../images/tree/T.gif', + 'width': 18, + 'height': 18 + }).inject(el.getElement('span'), 'before'); + } + }); + }); + + }); + + // Add connecting branches to each node + + $$('#'+treeID+' li').each(function(node){ + node.getParents('li').each(function(parent){ + if (parent.getNext()) { + new Element('img', { + 'src': '../images/tree/I.gif', + 'width': 18, + 'height': 18 + }).inject(node, 'top'); + } + else { + new Element('img', { + 'src': 'images/spacer.gif', + 'width': 18, + 'height': 18 + }).inject(node, 'top'); + } + }); + }); + + $$('#'+treeID+' li.doc').each(function(el){ + new Element('img', { + 'src': '../images/tree/_doc.gif', + 'width': 18, + 'height': 18 + }).inject(el.getElement('span'), 'before'); + }); + +}