Monotone-Parent: 145acd1ad78984a6f26963cc9b6abb3e5c915bcd

Monotone-Revision: d73281348e68338299c1595a484a8a1033de3cd1

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2006-07-17T17:30:42
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2006-07-17 17:30:42 +00:00
parent bf4d619e2b
commit fc0aa87fed
9 changed files with 326 additions and 199 deletions

View File

@@ -9,30 +9,38 @@
<ul id="searchOptions">
<li id="subject"
onmousedown="return false;"
onclick=""><var:string label:value="Subject"/></li>
onclick="setSearchCriteria(event);"><var:string label:value="Subject"/></li>
<li id="sender"
onmousedown="return false;"
onclick=""><var:string label:value="Sender"/></li>
onclick="setSearchCriteria(event);"><var:string label:value="Sender"/></li>
<li id="subject_or_sender"
onmousedown="return false;"
onclick=""><var:string label:value="Subject or Sender"/></li>
onclick="setSearchCriteria(event);"><var:string label:value="Subject or Sender"/></li>
<li id="to_or_cc"
onmousedown="return false;"
onclick=""><var:string label:value="To or Cc"/></li>
onclick="setSearchCriteria(event);"><var:string label:value="To or Cc"/></li>
<li id="entire_message"
onmousedown="return false;"
onclick=""><var:string label:value="Entire Message"/></li>
onclick="setSearchCriteria(event);"><var:string label:value="Entire Message"/></li>
<li id="find_in_message"
onmousedown="return false;"
onclick=""><var:string label:value="Find In Message"/></li>
onclick="setSearchCriteria(event);"><var:string label:value="Find In Message"/></li>
</ul>
</div>
<var:if condition="hideFrame" const:negate="YES">
<span class="searchBox" style="float: right">
<var:string label:value="Subject or Sender contains" />:
<input onclick="popupSearchMenu(this, event, 'searchMenu');" name="search" type="text" var:value="searchText" />
<input id="searchCriteria" name="criteria" type="hidden" var:value="searchCriteria" />
<input id="searchValue" onmousedown="onSearchMouseDown(event);" onclick="popupSearchMenu(event, 'searchMenu');" autocomplete="off" name="search" type="text" var:value="searchText" onchange="onSearchChange();" onblur="onSearchBlur();" onfocus="onSearchFocus(event);" />
</span>
<script type="text/javascript">
initCriteria();
document.pageform.search.focus();
</script>
</var:if>
<var:string label:value="View" />:
<var:popup list="filters"
item="filter" string="filterLabel" value="filter"

View File

@@ -32,25 +32,25 @@
<li class="separator"></li>
<li
class="submenu"
submenu="dummymenu"
submenu="mailboxes-menu"
onmouseover="dropDownSubmenu(event);"
onmousedown="return false;"
onclick=""><var:string label:value="Move To"/></li>
<li
class="submenu"
submenu="dummymenu"
submenu="mailboxes-menu"
onmouseover="dropDownSubmenu(event);"
onmousedown="return false;"
onclick=""><var:string label:value="Copy To"/></li>
<li
class="submenu"
submenu="dummymenu"
submenu="label-menu"
onmouseover="dropDownSubmenu(event);"
onmousedown="return false;"
onclick=""><var:string label:value="Label"/></li>
<li
class="submenu"
submenu="dummymenu"
submenu="mark-menu"
onmouseover="dropDownSubmenu(event);"
onmousedown="return false;"
onclick=""><var:string label:value="Mark"/></li>
@@ -69,47 +69,38 @@
onclick=""><var:string label:value="Delete Message"/></li>
</ul>
<div class="menu" id="dummymenu">
<ul id="sourceLisdassdadst">
<li
class="submenu"
submenu="dummymenu2"
onmouseover="dropDownSubmenu(event);"
onmousedown="return false;"
onclick="">tdasdsadsa</li>
<div class="menu" id="mailboxes-menu">
<ul id="">
<li onmousedown="return false;">really</li>
<li onmousedown="return false;">is</li>
<li onmousedown="return false;">a</li>
<li onmousedown="return false;">dumb dummy!</li>
</ul>
<div class="menu" id="dummymenu2">
<ul id="sourdsadsaceList">
<li
class="submenu"
submenu="dummymenu3"
onmouseover="dropDownSubmenu(event);"
onmousedown="return false;"
onclick="">Dummy 2</li>
<li onmousedown="return false;">really</li>
<li onmousedown="return false;">is</li>
<li onmousedown="return false;">another</li>
<li onmousedown="return false;">dumb dummy!</li>
</ul>
<div class="menu" id="dummymenu3">
<ul id="sourdsadsaceList">
<li onmousedown="return false;">Dummy 3</li>
<li onmousedown="return false;">really</li>
<li onmousedown="return false;">is</li>
<li onmousedown="return false;">another</li>
<li onmousedown="return false;">dumb dummy!</li>
</ul>
</div>
</div>
</div>
<div class="menu" id="label-menu">
<ul id="">
<li onmousedown="return false;"><var:string label:value="None" /></li>
<li class="separator"></li>
<li onmousedown="return false;"><var:string label:value="Important" /></li>
<li onmousedown="return false;"><var:string label:value="Work" /></li>
<li onmousedown="return false;"><var:string label:value="Personal" /></li>
<li onmousedown="return false;"><var:string label:value="To Do" /></li>
<li onmousedown="return false;"><var:string label:value="Later" /></li>
</ul>
</div>
<div class="menu" id="mark-menu">
<ul id="">
<li onmousedown="return false;"><var:string label:value="As Read" /></li>
<li onmousedown="return false;"><var:string label:value="Thread As Read" /></li>
<li onmousedown="return false;"><var:string label:value="As Read By Date..." /></li>
<li onmousedown="return false;"><var:string label:value="All Read" /></li>
<li class="separator"></li>
<li onmousedown="return false;"><var:string label:value="Flag" /></li>
<li class="separator"></li>
<li onmousedown="return false;"><var:string label:value="As Junk" /></li>
<li onmousedown="return false;"><var:string label:value="As Not Junk" /></li>
<li onmousedown="return false;"><var:string label:value="Run Junk Mail Controls" /></li>
</ul>
</div>
</div>
@@ -205,8 +196,8 @@
<var:foreach list="messages" item="message">
<tr class="tableview" var:id="msgRowID"
onmousedown="return false;"
onclick="onRowClick(this, event);"
oncontextmenu="onMenuClick(this, event, 'messageListMenu'); onRowClick(this, event); return false;">
onclick="onRowClick(event);"
oncontextmenu="onMenuClick(event, 'messageListMenu'); onRowClick(event); return false;">
<td>
<!-- this seems to break on Safari, it treats name==id? -->
</td>
@@ -293,10 +284,4 @@
</span>
</div>
<var:if condition="hideFrame" const:negate="YES">
<script language="JavaScript">
document.pageform.search.focus();
</script>
</var:if>
</var:component>

View File

@@ -51,7 +51,7 @@
<td class="mailer_fieldvalue">
<var:foreach list="clientObject.fromEnvelopeAddresses"
item="currentAddress">
<a var:href="currentAddressLink" onclick="onMenuClick(this, event, 'addressMenu');" oncontextmenu="onMenuClick(this, event, 'addressMenu');" onmousedown="return false;">
<a var:href="currentAddressLink" onclick="onMenuClick(event, 'addressMenu');" oncontextmenu="onMenuClick(event, 'addressMenu');" onmousedown="return false;">
<var:string value="currentAddress"
formatter="context.mailEnvelopeFullAddressFormatter" /></a>
</var:foreach>
@@ -74,7 +74,7 @@
<td class="mailer_fieldvalue">
<var:foreach list="clientObject.toEnvelopeAddresses"
item="currentAddress">
<a var:href="currentAddressLink" onclick="onMenuClick(this, event, 'addressMenu');" oncontextmenu="onMenuClick(this, event, 'addressMenu');" onmousedown="return false;">
<a var:href="currentAddressLink" onclick="onMenuClick(event, 'addressMenu');" oncontextmenu="onMenuClick(event, 'addressMenu');" onmousedown="return false;">
<var:string value="currentAddress"
formatter="context.mailEnvelopeFullAddressFormatter" /></a>
</var:foreach>
@@ -86,7 +86,7 @@
<td class="mailer_fieldvalue">
<var:foreach list="clientObject.ccEnvelopeAddresses"
item="currentAddress">
<a var:href="currentAddressLink" onclick="onMenuClick(this, event, 'addressMenu');" oncontextmenu="onMenuClick(this, event, 'addressMenu');" onmousedown="return false;">
<a var:href="currentAddressLink" onclick="onMenuClick(event, 'addressMenu');" oncontextmenu="onMenuClick(event, 'addressMenu');" onmousedown="return false;">
<var:string value="currentAddress"
formatter="context.mailEnvelopeFullAddressFormatter" /></a>
<br /> <!-- TODO: better to use li+CSS -->

View File

@@ -1,26 +1,26 @@
<?xml version='1.0' standalone='yes'?>
<var:component
xmlns="http://www.w3.org/1999/xhtml"
xmlns:var="http://www.skyrix.com/od/binding"
xmlns:const="http://www.skyrix.com/od/constant"
xmlns:uix="OGo:uix"
xmlns:label="OGo:label"
className="UIxPageFrame"
title="name"
>
<script type="text/javascript">
function submitMeeting(thisForm) {
<var:component
xmlns="http://www.w3.org/1999/xhtml"
xmlns:var="http://www.skyrix.com/od/binding"
xmlns:const="http://www.skyrix.com/od/constant"
xmlns:uix="OGo:uix"
xmlns:label="OGo:label"
className="UIxPageFrame"
title="name"
>
<script type="text/javascript">
function submitMeeting(thisForm) {
thisForm.submit();
opener.window.location.reload();
window.close();
}
</script>
}
</script>
<var:js-stringtable const:framework="SchedulerUI.SOGo"
const:identifier="labels" />
<form var:href="clientObject.baseURL" name="editform"
onsubmit="return validateAptEditor()">
<var:js-stringtable const:framework="SchedulerUI.SOGo"
const:identifier="labels" />
<form var:href="clientObject.baseURL" name="editform"
onsubmit="return validateAptEditor()">
<script language="JavaScript"> <!-- TODO: use a resource -->
<var:string value="jsCode" const:escapeHTML="NO" />
@@ -51,14 +51,14 @@
</var:if>
<table border="0" cellpadding="2" cellspacing="0" width="100%"
bgcolor="#e8e8e0"
>
bgcolor="#e8e8e0"
>
<tr>
<td align="left" colspan="2">
<span class="aptview_title">
<var:string label:value="Appointment on" />
<var:string formatter="titleDateFormatter"
value="aptStartDate" /></span>
value="aptStartDate" /></span>
</td>
</tr>
<tr valign="top">
@@ -71,9 +71,9 @@
<span class="aptview_text">
<var:component className="UIxDatePickerScript" />
<var:component className="UIxTimeDateControl"
const:controlID="startTime"
date="aptStartDate"
/>
const:controlID="startTime"
date="aptStartDate"
/>
</span>
</td>
</tr>
@@ -86,9 +86,9 @@
<td align="left" bgcolor="#FFFFF0">
<span class="aptview_text">
<var:component className="UIxTimeDateControl"
const:controlID="endTime"
date="aptEndDate"
/>
const:controlID="endTime"
date="aptEndDate"
/>
</span>
</td>
</tr>
@@ -101,7 +101,7 @@
<td align="left" bgcolor="#FFFFF0">
<span class="aptview_text">
<input type="text" name="summary" id="summary"
const:size="40" var:value="title" />
const:size="40" var:value="title" />
</span>
</td>
</tr>
@@ -114,7 +114,7 @@
<td align="left" bgcolor="#FFFFF0">
<span class="aptview_text">
<input type="text" name="location" const:size="40"
var:value="location" />
var:value="location" />
</span>
</td>
</tr>
@@ -127,7 +127,7 @@
<td align="left" bgcolor="#FFFFF0">
<span class="aptview_text">
<var:popup list="priorities" item="item"
string="itemPriorityText" selection="priority"/>
string="itemPriorityText" selection="priority"/>
</span>
</td>
</tr>
@@ -143,35 +143,35 @@
<tr>
<td>
<var:popup list="cycles" item="item"
label:string="$cycleLabel"
selection="cycle"
const:onChange="selectHasCycle(this);"
/>
label:string="$cycleLabel"
selection="cycle"
const:onChange="selectHasCycle(this);"
/>
</td>
<td id="cycle_end_label"
var:style="initialCycleVisibility"
><var:string label:value="Cycle End"
const:style="aptview_text"
var:style="initialCycleVisibility"
><var:string label:value="Cycle End"
const:style="aptview_text"
/>:</td>
<td id="cycle_end_mode"
var:style="initialCycleVisibility"
>
var:style="initialCycleVisibility"
>
<var:popup list="cycleEnds" item="item"
label:string="$item" value="item"
selection="cycleEnd"
const:onChange="selectCycleEnd(this);"
const:id="cycle_end_mode_selection"
/>
label:string="$item" value="item"
selection="cycleEnd"
const:onChange="selectCycleEnd(this);"
const:id="cycle_end_mode_selection"
/>
</td>
<td id="cycle_end_until"
var:style="initialCycleEndUntilVisibility"
>
var:style="initialCycleEndUntilVisibility"
>
<var:component className="UIxTimeDateControl"
date="cycleUntilDate"
label="foo"
const:controlID="cycleUntilDate"
const:displayTimeControl="NO"
/>
date="cycleUntilDate"
label="foo"
const:controlID="cycleUntilDate"
const:displayTimeControl="NO"
/>
</td>
</tr>
</table>
@@ -186,10 +186,11 @@
</td>
<td align="left" bgcolor="#FFFFF0">
<span class="aptview_text">
<var:checkbox-list list="categoryItems" item="item"
suffix="itemCategoryText"
selections="categories"
/>
<var:checkbox-list list="categoryItems"
item="item"
suffix="itemCategoryText"
selections="categories"
/>
</span>
</td>
</tr>
@@ -202,7 +203,7 @@
<td align="left" bgcolor="#FFFFF0">
<span class="aptview_text">
<input type="checkbox" var:selection="isPrivate"
var:checked="isPrivate" />
var:checked="isPrivate" />
<var:string label:value="is private" />
</span>
</td>
@@ -213,8 +214,8 @@
<tr>
<td>
<table border="0" cellpadding="2" cellspacing="0"
width="100%" bgcolor="#e8e8e0"
>
width="100%" bgcolor="#e8e8e0"
>
<tr>
<td align="left" colspan="2">
<span class="aptview_title">
@@ -231,14 +232,14 @@
<span class="aptview_text">
<!-- use '1' instead of 'YES', otherwise breaks on OSX -->
<var:component className="AnaisSelector"
const:selectorID="participant"
const:role="REQ-PARTICIPANT"
attendees="participants"
var:emailForUser="emailForUser"
var:cnForUser="cnForUser"
const:withCN="1"
const:withAddressBook="1"
/>
const:selectorID="participant"
const:role="REQ-PARTICIPANT"
attendees="participants"
var:emailForUser="emailForUser"
var:cnForUser="cnForUser"
const:withCN="1"
const:withAddressBook="1"
/>
</span>
</td>
</tr>
@@ -248,8 +249,8 @@
<tr>
<td>
<table border="0" cellpadding="2" cellspacing="0" width="100%"
bgcolor="#e8e8e0"
>
bgcolor="#e8e8e0"
>
<tr>
<td align="left" colspan="2">
<span class="aptview_title">
@@ -265,15 +266,15 @@
</td>
<td align="left" bgcolor="#FFFFF0">
<span class="aptview_text">
<!--
<!--
<var:component className="AnaisAttendeeSelector"
const:selectorID="resource"
const:role="NON-PARTICIPANT"
attendees="resources"
const:withCN="YES"
const:withAddressBook="YES"
const:selectorID="resource"
const:role="NON-PARTICIPANT"
attendees="resources"
const:withCN="YES"
const:withAddressBook="YES"
/>
-->
-->
TODO: need attendee selector (AB)
</span>
</td>
@@ -284,8 +285,8 @@
<tr>
<td>
<table border="0" cellpadding="2" cellspacing="0" width="100%"
bgcolor="#e8e8e0"
>
bgcolor="#e8e8e0"
>
<tr>
<td align="left" colspan="2">
<span class="aptview_title">
@@ -302,7 +303,7 @@
<td align="left" bgcolor="#FFFFF0">
<span class="aptview_text">
<textarea name="comment" rows="8" cols="80" wrap="physical"
var:value="comment" />
var:value="comment" />
</span>
</td>
</tr>
@@ -313,33 +314,33 @@
<td>
<span class="aptview_text">
<input type="checkbox"
var:selection="checkForConflicts"
var:checked="checkForConflicts"
/> <var:string label:value="check for conflicts" />
var:selection="checkForConflicts"
var:checked="checkForConflicts"
/> <var:string label:value="check for conflicts" />
</span>
</td>
</tr>
<tr>
<td>
<input type="submit" label:value="Save" name="save:method"
onclick="submitMeeting(this.form); return false;" />
<span class="button_auto_env"
<input type="submit" label:value="Save" name="save:method"
onclick="submitMeeting(this.form); return false;" />
<span class="button_auto_env"
><a href="../weekoverview"
onclick="window.close(); return false;"
var:queryDictionary="queryParameters"
class="button_auto"
><var:string label:value="Cancel" /></a></span>
<var:if condition="isUIxDebugEnabled">
<input type="submit" value="Test" name="test:method" />
</var:if>
onclick="window.close(); return false;"
var:queryDictionary="queryParameters"
class="button_auto"
><var:string label:value="Cancel" /></a></span>
<var:if condition="isUIxDebugEnabled">
<input type="submit" value="Test" name="test:method" />
</var:if>
</td>
</tr>
</table>
<input type="hidden" name="ical" var:value="iCalString" />
</form>
<!--
<var:if condition="canEditApt" const:negate="YES">
<input type="hidden" name="ical" var:value="iCalString" />
</form>
<!--
<var:if condition="canEditApt" const:negate="YES">
Forbidden ... <var:redirect const:setURL="view" />
</var:if>
-->
</var:component>
-->
</var:component>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 793 B

After

Width:  |  Height:  |  Size: 820 B

View File

@@ -41,23 +41,125 @@ function moveTo(uri) {
alert("MoveTo: " + uri);
}
function popupSearchMenu(elem, event, menuName)
function popupSearchMenu(event, menuId)
{
relX = (event.pageX
- (elem.parentNode.offsetLeft + elem.offsetLeft));
relY = (event.pageY
- elem.parentNode.parentNode.parentNode.offsetTop);
window.alert(elem.style.height);
// if (event.button == 1
// &&
// acceptClick = false;
// bodyOnClick = "" + document.body.getAttribute("onclick");
// document.body.setAttribute("onclick", "onBodyClick('" + menuId + "'); return false;");
// popup = document.getElementById(menuId);
// popup.setAttribute("style", "visibility: visible; top: " + event.pageY
// + "px; left: " + event.pageX + "px;" );
// menuClickNode = node;
// window.alert
var node = event.target;
return false;
superNode = node.parentNode.parentNode.parentNode;
relX = (event.pageX - superNode.offsetLeft - node.offsetLeft);
relY = (event.pageY - superNode.offsetTop - node.offsetTop);
if (event.button == 0
&& relX < 24) {
log('popup');
event.cancelBubble = true;
event.returnValue = false;
var popup = document.getElementById(menuId);
hideMenu(popup);
var menuTop = superNode.offsetTop + node.offsetTop + node.offsetHeight;
var menuLeft = superNode.offsetLeft + node.offsetLeft;
var heightDiff = (window.innerHeight
- (menuTop + popup.offsetHeight));
if (heightDiff < 0)
menuTop += heightDiff;
var leftDiff = (window.innerWidth
- (menuLeft + popup.offsetWidth));
if (leftDiff < 0)
menuLeft -= popup.offsetWidth;
popup.style.top = menuTop + "px";
popup.style.left = menuLeft + "px";
popup.style.visibility = "visible";
menuClickNode = node;
bodyOnClick = "" + document.body.getAttribute("onclick");
document.body.setAttribute("onclick", "onBodyClick('" + menuId + "');");
}
}
function setSearchCriteria(event)
{
searchField = document.getElementById('searchValue');
searchCriteria = document.getElementById('searchCriteria');
node = event.target;
searchField.setAttribute("ghost-phrase", node.innerHTML);
searchCriteria = node.getAttribute('id');
}
function onSearchChange()
{
log('onSearchChange');
}
function onSearchMouseDown(event)
{
log('onSearchMouseDown');
searchField = document.getElementById('searchValue');
superNode = searchField.parentNode.parentNode.parentNode;
relX = (event.pageX - superNode.offsetLeft - searchField.offsetLeft);
relY = (event.pageY - superNode.offsetTop - searchField.offsetTop);
if (relY < 24) {
log('menu');
event.cancelBubble = true;
event.returnValue = false;
}
}
function onSearchFocus(event)
{
log('onSearchFocus');
searchField = document.getElementById('searchValue');
ghostPhrase = searchField.getAttribute("ghost-phrase");
if (searchField.value == ghostPhrase) {
searchField.value = "";
searchField.setAttribute("modified", "");
} else {
searchField.select();
}
searchField.style.color = "#000";
}
function onSearchBlur()
{
log('onSearchBlur');
var searchField = document.getElementById('searchValue');
var ghostPhrase = searchField.getAttribute("ghost-phrase");
if (searchField.value == "") {
searchField.setAttribute("modified", "");
searchField.style.color = "#aaa";
searchField.value = ghostPhrase;
} else if (searchField.value == ghostPhrase) {
searchField.setAttribute("modified", "");
searchField.style.color = "#aaa";
} else {
searchField.setAttribute("modified", "yes");
searchField.style.color = "#000";
}
}
function initCriteria()
{
var searchCriteria = document.getElementById('searchCriteria');
var searchField = document.getElementById('searchValue');
var firstOption;
if (searchCriteria.value == ''
|| searchField.value == '') {
firstOption = document.getElementById('searchOptions').childNodes[1];
searchCriteria.value = firstOption.getAttribute('id');
searchField.value = firstOption.innerHTML;
searchField.setAttribute('ghost-phrase', firstOption.innerHTML);
searchField.setAttribute("modified", "");
searchField.style.color = "#aaa";
log(searchField.value);
}
}

View File

@@ -24,14 +24,13 @@
/* generic stuff */
logWindow = window.open('', 'logWindow',
'directories = no; location = no; menubar = no; resizable = no;'
+ 'scrollbars = yes; status = no; toolbar = no; width = 80em; height = 25em;');
logWindow = window.open('', 'logWindow');
logWindow.document.write('<html><head><title>JavaScript log</title></head>'
+ '<body style="font-family: monospace;'
+ 'font-size: 10pt;">'
+ '<div class="log" id="logArea"></div></body>'
+'</html>');
+ 'font-size: 10pt; overflow: scroll;">'
+ '<div class="log" id="logArea"'
+ ' onclick="this.innerHTML=\'\';"></div></body>'
+ '</html>');
logWindow.resizeTo(640,480);
logArea = logWindow.document.getElementById('logArea');
logArea.innerHTML = '';
@@ -267,7 +266,8 @@ function getSelectedNodes(parentNode) {
return selArray.join('|');
}
function onRowClick(node, event) {
function onRowClick(event) {
var node = event.target;
// var text = document.getElementById('list');
// text.innerHTML = '';
@@ -295,39 +295,52 @@ function onRowClick(node, event) {
/* popup menus */
var bodyOnClick = "";
var acceptClick = false;
// var acceptClick = false;
var menuClickNode = null;
var currentSubmenu = null;
function onMenuClick(node, event, menuId)
function onMenuClick(event, menuId)
{
var node = event.target;
event.cancelBubble = true;
event.returnValue = false;
if (event.button == 1)
acceptClick = false;
bodyOnClick = "" + document.body.getAttribute("onclick");
document.body.setAttribute("onclick", "onBodyClick('" + menuId + "'); return false;");
var popup = document.getElementById(menuId);
hideMenu(popup);
popup.style.top = event.pageY + "px";
popup.style.left = event.pageX + "px";
var menuTop = event.pageY;
var menuLeft = event.pageX;
var heightDiff = (window.innerHeight
- (menuTop + popup.offsetHeight));
if (heightDiff < 0)
menuTop += heightDiff;
var leftDiff = (window.innerWidth
- (menuLeft + popup.offsetWidth));
if (leftDiff < 0)
menuLeft -= popup.offsetWidth;
popup.style.top = menuTop + "px";
popup.style.left = menuLeft + "px";
popup.style.visibility = "visible";
menuClickNode = node;
return false;
bodyOnClick = "" + document.body.getAttribute("onclick");
document.body.setAttribute("onclick", "onBodyClick('" + menuId + "');");
}
function onBodyClick(menuId)
{
if (!acceptClick)
acceptClick = true;
else
{
// if (!acceptClick)
// acceptClick = true;
// else
// {
popup = document.getElementById(menuId);
hideMenu(popup);
document.body.setAttribute("onclick", bodyOnClick);
}
menuClickNode = null;
// }
return false;
}
@@ -368,10 +381,22 @@ function dropDownSubmenu(event)
var submenuNode = document.getElementById(submenu);
node.parentNode.parentNode.submenu = submenuNode;
var menuTop = (node.parentNode.parentNode.offsetTop
+ node.offsetTop - 1);
+ node.offsetTop - 1);
var heightDiff = (window.innerHeight
- (menuTop + submenuNode.offsetHeight));
if (heightDiff < 0)
menuTop += heightDiff;
var menuLeft = (node.parentNode.parentNode.offsetLeft
+ node.parentNode.parentNode.offsetWidth
- 2);
var leftDiff = (window.innerWidth
- (menuLeft + submenuNode.offsetWidth));
if (leftDiff < 0)
menuLeft -= (node.parentNode.parentNode.offsetWidth
+ submenuNode.offsetWidth
- 4);
submenuNode.style.top = menuTop + "px";
submenuNode.style.left = menuLeft + "px";
submenuNode.style.visibility = "visible";

View File

@@ -528,7 +528,7 @@ TABLE#messageList TR._selected TD
color: #fff;
}
SPAN.searchBox INPUT
INPUT#searchValue
{
height: 22px;
margin-right: 1em;
@@ -543,8 +543,11 @@ SPAN.searchBox INPUT
background-image: url('/SOGo.woa/WebServerResources/Search-bar.png');
background-repeat: no-repeat;
background-position: 2px 2px;
color: #aaa;
}
INPUT#searchValue:focus
{ color: #000; }
/* drag handles */
DIV#dragHandle

View File

@@ -36,9 +36,11 @@
/* mail list */
function openMessageWindow(sender, msguid, url) {
return window.open(url, "SOGo_msg_" + msguid,
"width=640,height=480,resizable=1,scrollbars=1,toolbar=0," +
"location=0,directories=0,status=0,menubar=0,copyhistory=0")
var msgWin = window.open(url, "SOGo_msg_" + msguid,
"width=640,height=480,resizable=1,scrollbars=1,toolbar=0," +
"location=0,directories=0,status=0,menubar=0,copyhistory=0");
msgWin.focus();
}
function clickedUid(sender, msguid) {
@@ -46,6 +48,7 @@ function clickedUid(sender, msguid) {
openMessageWindow(sender, msguid, msguid + "/view");
return true;
}
function doubleClickedUid(sender, msguid) {
alert("DOUBLE Clicked " + msguid);