diff --git a/UI/WebServerResources/AdministrationUI.js b/UI/WebServerResources/AdministrationUI.js index 2128f6234..60dc06db9 100644 --- a/UI/WebServerResources/AdministrationUI.js +++ b/UI/WebServerResources/AdministrationUI.js @@ -38,7 +38,6 @@ function usersSearchCallback(http) { function buildUsersTree(treeDiv, response) { d = new dTree("d"); - d.config.folderLlinks = true; d.config.hideRoot = true; d.icon.root = ResourcesURL + '/tbtv_account_17x17.gif'; d.icon.folder = ResourcesURL + '/tbtv_leaf_corner_17x17.png'; @@ -54,6 +53,7 @@ function buildUsersTree(treeDiv, response) { d.icon.nlPlus = ResourcesURL + '/tbtv_corner_plus_17x17.gif'; d.icon.nlMinus = ResourcesURL + '/tbtv_corner_minus_17x17.gif'; d.icon.empty = ResourcesURL + '/empty.gif'; + d.preload (); d.add(0, -1, ''); var isUserDialog = false; @@ -65,7 +65,7 @@ function buildUsersTree(treeDiv, response) { if (lines[i].length > 0) addUserLineToTree(d, 1 + i * multiplier, lines[i]); } - treeDiv.update(d); + treeDiv.appendChild(d.domObject ()); treeDiv.clean = false; for (var i = 0; i < lines.length - 1; i++) { if (lines[i].length > 0) { @@ -129,23 +129,22 @@ function foldersSearchCallback(http) { var folders = response.split(";"); var user = http.callbackData["user"]; - var str = ''; + dd.innerHTML = ''; for (var i = 1; i < folders.length - 1; i++) { - str += addFolderBranchToTree (d, user, folders[i], nodeId, i, false); - log (i + " = " + folders[i]); + dd.appendChild(addFolderBranchToTree (d, user, folders[i], nodeId, i, false)); + log (i + " = " + folders[i]); } - str += addFolderBranchToTree (d, user, folders[folders.length-1], nodeId, - (folders.length - 1), true); + dd.appendChild (addFolderBranchToTree (d, user, folders[folders.length-1], nodeId, + (folders.length - 1), true)); log ((folders.length - 1) + " = " + folders[folders.length-1]); - dd.update(str); for (var i = 1; i < folders.length; i++) { - var sd = $("sd" + (nodeId + i)); - sd.observe("click", onTreeItemClick); - sd.observe("dblclick", onFolderOpen); + var sd = $("sd" + (nodeId + i)); + sd.observe("click", onTreeItemClick); + sd.observe("dblclick", onFolderOpen); } } else { - dd.update(addFolderNotFoundNode (d, nodeId)); + dd.appendChild (addFolderNotFoundNode (d, nodeId)); var sd = $("sd" + (nodeId + 1)); sd.observe("click", onTreeItemClick); } @@ -169,7 +168,7 @@ function addFolderBranchToTree(tree, user, folder, nodeId, subId, isLast) { var node = new Node(subId, nodeId, name, 0, '#', folderId, folderInfos[2] + '-folder', '', '', icon, icon); node._ls = isLast; - var content = tree.node(node, (nodeId + subId)); + var content = tree.node(node, (nodeId + subId), null); return content; } @@ -179,7 +178,7 @@ function addFolderNotFoundNode (tree, nodeId) { var node = new Node(1, nodeId, labels["No possible subscription"], 0, '#', null, null, '', '', icon, icon); node._ls = true; - return tree.node(node, (nodeId + 1)); + return tree.node(node, (nodeId + 1), null); } function onFolderOpen(event) { diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index 447b90641..4374eb44a 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -478,7 +478,7 @@ function onMailboxTreeItemClick(event) { var table = $("messageList"); var head = table.tHead; var body = table.tBodies[0]; - body.deselectAll (); + if (body.deselectAll) body.deselectAll (); for (var i = body.rows.length; i > 0; i--) body.deleteRow(i-1); if (head.rows[1]) @@ -1518,9 +1518,7 @@ function initMailboxTree() { if (node) node.parentNode.removeChild(node); mailboxTree = new dTree("mailboxTree"); - mailboxTree.config.folderLinks = true; mailboxTree.config.hideRoot = true; - mailboxTree.icon.root = ResourcesURL + "/tbtv_account_17x17.gif"; mailboxTree.icon.folder = ResourcesURL + "/tbtv_leaf_corner_17x17.png"; mailboxTree.icon.folderOpen = ResourcesURL + "/tbtv_leaf_corner_17x17.png"; @@ -1535,6 +1533,7 @@ function initMailboxTree() { mailboxTree.icon.nlPlus = ResourcesURL + "/tbtv_corner_plus_17x17.gif"; mailboxTree.icon.nlMinus = ResourcesURL + "/tbtv_corner_minus_17x17.gif"; mailboxTree.icon.empty = ResourcesURL + "/empty.gif"; + mailboxTree.preload (); mailboxTree.add(0, -1, ''); @@ -1548,7 +1547,8 @@ function initMailboxTree() { function updateMailboxTreeInPage() { var treeContent = $("folderTreeContent"); - treeContent.update(mailboxTree); + //treeContent.update(mailboxTree.toString ()); + treeContent.appendChild(mailboxTree.domObject ()); var inboxFound = false; var tree = $("mailboxTree"); diff --git a/UI/WebServerResources/UIxContactsUserFolders.js b/UI/WebServerResources/UIxContactsUserFolders.js index aea6466a3..61082d755 100644 --- a/UI/WebServerResources/UIxContactsUserFolders.js +++ b/UI/WebServerResources/UIxContactsUserFolders.js @@ -53,7 +53,6 @@ function addUserLineToTree(tree, parent, line) { function buildUsersTree(treeDiv, response) { d = new dTree("d"); - d.config.folderLlinks = true; d.config.hideRoot = true; d.icon.root = ResourcesURL + '/tbtv_account_17x17.gif'; d.icon.folder = ResourcesURL + '/tbtv_leaf_corner_17x17.png'; @@ -69,6 +68,7 @@ function buildUsersTree(treeDiv, response) { d.icon.nlPlus = ResourcesURL + '/tbtv_corner_plus_17x17.gif'; d.icon.nlMinus = ResourcesURL + '/tbtv_corner_minus_17x17.gif'; d.icon.empty = ResourcesURL + '/empty.gif'; + d.preload (); d.add(0, -1, ''); var isUserDialog = (window.opener.userFolderType == "user"); @@ -80,7 +80,7 @@ function buildUsersTree(treeDiv, response) { if (lines[i].length > 0) addUserLineToTree(d, 1 + i * multiplier, lines[i]); } - treeDiv.update(d); + treeDiv.appendChild(d.domObject ()); treeDiv.clean = false; for (var i = 0; i < lines.length - 1; i++) { if (lines[i].length > 0) { @@ -140,19 +140,19 @@ function foldersSearchCallback(http) { var folders = response.split(";"); var user = http.callbackData["user"]; - var str = ''; + dd.innerHTML = ''; for (var i = 1; i < folders.length - 1; i++) - str += addFolderBranchToTree (d, user, folders[i], nodeId, i, false); - str += addFolderBranchToTree (d, user, folders[folders.length-1], nodeId, - (folders.length - 1), true); - dd.update(str); + dd.appendChild (addFolderBranchToTree (d, user, folders[i], nodeId, i, false)); + dd.appendChild (addFolderBranchToTree (d, user, folders[folders.length-1], nodeId, + (folders.length - 1), true)); + //dd.update(str); for (var i = 1; i < folders.length; i++) { var sd = $("sd" + (nodeId + i)); sd.observe("click", onTreeItemClick); } } else { - dd.update(addFolderNotFoundNode (d, nodeId)); + dd.appendChild(addFolderNotFoundNode (d, nodeId, null)); var sd = $("sd" + (nodeId + 1)); sd.observe("click", onTreeItemClick); } @@ -176,7 +176,7 @@ function addFolderBranchToTree(tree, user, folder, nodeId, subId, isLast) { var node = new Node(subId, nodeId, name, 0, '#', folderId, folderInfos[2] + '-folder', '', '', icon, icon); node._ls = isLast; - var content = tree.node(node, (nodeId + subId)); + var content = tree.node(node, (nodeId + subId), null); return content; } diff --git a/UI/WebServerResources/dtree.js b/UI/WebServerResources/dtree.js index 9b0dfa0db..b0527647c 100644 --- a/UI/WebServerResources/dtree.js +++ b/UI/WebServerResources/dtree.js @@ -47,33 +47,27 @@ function Node(id, pid, name, isParent, url, dataname, datatype, title, target, function dTree(objName) { this.obj = objName; this.config = { - target: null, - hideRoot: false, - folderLinks: true, - useSelection: true, - useCookies: false, - useLines: true, - useIcons: true, - useStatusText: false, - closeSameLevel: false, - inOrder: false + target: null, + useCookies: false }; this.icon = { - root: 'img/base.gif', - folder: 'img/folder.gif', - folderOpen: 'img/folderopen.gif', - node: 'img/page.gif', - empty: 'img/empty.gif', - line: 'img/line.gif', - join: 'img/join.gif', - joinBottom: 'img/joinbottom.gif', - plus: 'img/plus.gif', - plusBottom: 'img/plusbottom.gif', - minus: 'img/minus.gif', - minusBottom: 'img/minusbottom.gif', - nlPlus: 'img/nolines_plus.gif', - nlMinus: 'img/nolines_minus.gif' + root: 'img/base.gif', + folder: 'img/folder.gif', + folderOpen: 'img/folderopen.gif', + node: 'img/page.gif', + empty: 'img/empty.gif', + line: 'img/line.gif', + join: 'img/join.gif', + joinBottom: 'img/joinbottom.gif', + plus: 'img/plus.gif', + plusBottom: 'img/plusbottom.gif', + minus: 'img/minus.gif', + minusBottom: 'img/minusbottom.gif', + nlPlus: 'img/nolines_plus.gif', + nlMinus: 'img/nolines_minus.gif' }; + this.images = {}; + this.objects = {}; this.aNodes = []; this.aIndent = []; this.root = new Node(-1); @@ -103,6 +97,26 @@ dTree.prototype = { iconOpen, open, false, hasUnseen); }, + preload: function () { + this.images['line'] = new Element ("img", {"src": this.icon.line}); + this.images['empty'] = new Element ("img", {"src": this.icon.empty}); + this.images['plus'] = new Element ("img", {"src": this.icon.plus}); + this.images['minus'] = new Element ("img", {"src": this.icon.minus}); + this.images['plusbottom'] = new Element ("img", {"src": this.icon.plusBottom}); + this.images['minusbottom'] = new Element ("img", {"src": this.icon.minusBottom}); + this.images['join'] = new Element ("img", {"src": this.icon.join}); + this.images['joinbottom'] = new Element ("img", {"src": this.icon.joinBottom}); + + this.objects['link'] = new Element ("a", {"href": "#"}); + this.objects['nodelink'] = new Element ("a", {"href": "#", "class": "node"}); + this.objects['div'] = new Element ("div"); + this.objects['nodediv'] = new Element ("div", {"class": "dTreeNode"}); + this.objects['clipdiv'] = new Element ("div", {"class": "clip"}); + this.objects['namespan'] = new Element ("span", {"class": "nodeName"}); + this.objects['image'] = new Element ("img"); + }, + + // Open/close all nodes openAll: function() { this.oAll(true); @@ -112,27 +126,21 @@ dTree.prototype = { }, // Outputs the tree to the page - toString: function() { - var str = '