From ac81ef06fd006ef972e8477792463df0baf40d0d Mon Sep 17 00:00:00 2001 From: C Robert Date: Mon, 24 Aug 2009 20:47:23 +0000 Subject: [PATCH] Forgotten files + crossbrowser fixes Monotone-Parent: b798ab587b14c946102732e79770636904870654 Monotone-Revision: b2bb37a5b0be639020525c8cbc8f174b9869b25d Monotone-Author: crobert@inverse.ca Monotone-Date: 2009-08-24T20:47:23 Monotone-Branch: ca.inverse.sogo --- UI/Templates/ContactsUI/UIxListEditor.wox | 2 +- UI/WebServerResources/UIxListEditor.css | 57 ++++++++++ UI/WebServerResources/UIxListEditor.js | 129 ++++++++++++++++++++++ 3 files changed, 187 insertions(+), 1 deletion(-) create mode 100644 UI/WebServerResources/UIxListEditor.css create mode 100644 UI/WebServerResources/UIxListEditor.js diff --git a/UI/Templates/ContactsUI/UIxListEditor.wox b/UI/Templates/ContactsUI/UIxListEditor.wox index e4842236e..edab0a3fb 100644 --- a/UI/Templates/ContactsUI/UIxListEditor.wox +++ b/UI/Templates/ContactsUI/UIxListEditor.wox @@ -18,7 +18,7 @@ onsubmit="return validateListEditor();">

- +
diff --git a/UI/WebServerResources/UIxListEditor.css b/UI/WebServerResources/UIxListEditor.css new file mode 100644 index 000000000..398707a85 --- /dev/null +++ b/UI/WebServerResources/UIxListEditor.css @@ -0,0 +1,57 @@ +TABLE#referenceList +{ width: 100%; } + +TD.referenceListCell +{ background: white; } + +DIV#referenceListWrapper +{ background: white; + overflow: auto; + position: relative; + right: 0; + top: 0; + left: 0; + height: 33em; + margin: 2px; } + +TR.referenceListRow +{ background: #FFFFFF; + height: 2.5em; } +TR._selected +{ background: #333333; } + +TD.referenceListCell +{ -moz-user-select: none; } + +DIV#windowButtons +{ position: fixed; + top: auto; + bottom: 5em; + left: 0px; + right: 25px; + height: 3.5em; + line-height: 2em; + vertical-align: middle; + text-align: right; } + +DIV#buttons +{ position: fixed; + top: auto; + bottom: 0px; + left: 0px; + right: 25px; + height: 3.5em; + line-height: 2em; + vertical-align: middle; + text-align: right; } + +h3 { + margin-bottom: 2px !important; + margin-left: 5px !important; +} + +INPUT.textField { + width: 250px; + position: relative; + right: 0px; +} diff --git a/UI/WebServerResources/UIxListEditor.js b/UI/WebServerResources/UIxListEditor.js new file mode 100644 index 000000000..b051890ad --- /dev/null +++ b/UI/WebServerResources/UIxListEditor.js @@ -0,0 +1,129 @@ +function validateListEditor () { + serializeReferences (); + return true; +} + +function makeEditable (element) { + element.addClassName ("editing"); + element.removeClassName ("referenceListCell"); + var tmp = element.innerHTML; + element.innerHTML = ""; + var textField = new Element ("input", {"type": "text", + "width": "90%"}); + textField.style.width = "90%"; + textField.value = tmp.trim (); + textField.value = textField.value.replace (/</, "<"); + textField.value = textField.value.replace (/>/, ">"); + textField.observe ("keydown", interceptEnter); + element.appendChild (textField); + textField.focus (); + textField.select (); +} + +function interceptEnter (e) { + if (e.keyCode == Event.KEY_RETURN) { + endAllEditables (null); + preventDefault (e); + return false; + } + else { + onContactKeydown(e); + } +} + +function endEditable (element) { + var tmp = ""; + if (element.readAttribute ("card")) { + var tmp = element.childElements ().first ().value; + tmp = tmp.replace (//, ">"); + element.innerHTML = tmp; + element.removeClassName ("editing"); + element.addClassName ("referenceListCell"); + } + else { + element.ancestors ().first ().remove (); + } +} + +function endAllEditables (e) { + var r = $$("TABLE#referenceList tbody tr td"); + for (var i=0; i