diff --git a/UI/WebServerResources/UIxContactsUserFolders.js b/UI/WebServerResources/UIxContactsUserFolders.js index ee22fd26d..5048e1237 100644 --- a/UI/WebServerResources/UIxContactsUserFolders.js +++ b/UI/WebServerResources/UIxContactsUserFolders.js @@ -88,56 +88,61 @@ function onFolderTreeItemClick(event) { topNode.selectedEntry.deselect(); this.selectElement(); topNode.selectedEntry = this; + + if (window.opener.userFolderType == "user") + $("addButton").disabled = false; + else { + var dataname = this.parentNode.getAttribute("dataname"); + $("addButton").disabled = (dataname.indexOf(":") == -1); + }; } function userFoldersCallback(http) { - if (http.readyState == 4) { - document.userFoldersRequest = null; - var div = $("folders"); - if (http.status == 200) { - var response = http.responseText; - div.innerHTML = buildTree(http.responseText); - div.clean = false; - var nodes = document.getElementsByClassName("node", $("d")); - for (i = 0; i < nodes.length; i++) - Event.observe(nodes[i], "click", onFolderTreeItemClick.bindAsEventListener(nodes[i])); - } - else if (http.status == 404) { - div.innerHTML = ""; - } - } + document.userFoldersRequest = null; + var div = $("folders"); + if (http.status == 200) { + var response = http.responseText; + div.innerHTML = buildTree(http.responseText); + div.clean = false; + var nodes = document.getElementsByClassName("node", $("d")); + for (i = 0; i < nodes.length; i++) + $(nodes[i]).observe("click", onFolderTreeItemClick); + } + else if (http.status == 404) + div.innerHTML = ""; } function onConfirmFolderSelection(event) { var topNode = $("d"); if (topNode && topNode.selectedEntry) { - var node = topNode.selectedEntry.parentNode; - var folder = node.getAttribute("dataname"); - var folderName; - if (window.opener.userFolderType == "user") { - var spans = document.getElementsByClassName("nodeName", - topNode.selectedEntry); - var email = spans[0].innerHTML; - email = email.replace("<", "<"); - email = email.replace(">", ">"); - folderName = email; - } - else { - var spans1 = document.getElementsByClassName("nodeName", + var node = topNode.selectedEntry.parentNode; + var folder = node.getAttribute("dataname"); + + var folderName; + if (window.opener.userFolderType == "user") { + var spans = document.getElementsByClassName("nodeName", + topNode.selectedEntry); + var email = spans[0].innerHTML; + email = email.replace("<", "<"); + email = email.replace(">", ">"); + folderName = email; + } + else { + var spans1 = document.getElementsByClassName("nodeName", node); - var spans2 = document.getElementsByClassName("nodeName", - node.parentNode.previousSibling); - var email = spans2[0].innerHTML; - email = email.replace("<", "<"); - email = email.replace(">", ">"); - folderName = spans1[0].innerHTML + ' (' + email + ')'; - } - var data = { folderName: folderName, folder: folder, window: window }; - if (parent$(accessToSubscribedFolder(folder))) - window.alert(clabels["You have already subscribed to that folder!"]); - else - window.opener.subscribeToFolder(window.opener.userFolderCallback, data); - } + var spans2 = document.getElementsByClassName("nodeName", + node.parentNode.previousSibling); + var email = spans2[0].innerHTML; + email = email.replace("<", "<"); + email = email.replace(">", ">"); + folderName = spans1[0].innerHTML + ' (' + email + ')'; + } + var data = { folderName: folderName, folder: folder, window: window }; + if (parent$(accessToSubscribedFolder(folder))) + window.alert(clabels["You have already subscribed to that folder!"]); + else + window.opener.subscribeToFolder(window.opener.userFolderCallback, data); + } } function onFolderSearchKeyDown(event) { @@ -150,7 +155,9 @@ function onFolderSearchKeyDown(event) { function initUserFoldersWindow() { $("searchValue").observe("keydown", onFolderSearchKeyDown); - $("addButton").observe("click", onConfirmFolderSelection); + var addButton = $("addButton"); + addButton.observe("click", onConfirmFolderSelection); + addButton.disabled = true; } FastInit.addOnLoad(initUserFoldersWindow); diff --git a/UI/WebServerResources/generic.css b/UI/WebServerResources/generic.css index 0200a3222..05b62c6b9 100644 --- a/UI/WebServerResources/generic.css +++ b/UI/WebServerResources/generic.css @@ -585,6 +585,7 @@ A.button:active -moz-border-left-colors: #9c9a94 #000; } INPUT.button, +INPUT.button:disabled, A.button, A[class~="_disabled"].button:active { cursor: default; @@ -601,6 +602,9 @@ A[class~="_disabled"].button:active text-decoration: none; color: inherit; } +INPUT.button:disabled +{ color: #999; } + A.button { padding: 4px; }