Monotone-Parent: f67ec91eb2bf9c5dde6d13d95f3e8172dd91fa0e
Monotone-Revision: 680ce3d58b64771fea711e45a1b2bc3ec5490acb Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2006-07-11T22:29:19 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
5cc323dfec
commit
8d92ea1b50
10
Main/SOGo.m
10
Main/SOGo.m
|
@ -72,10 +72,10 @@ static BOOL doCrashOnSessionCreate = NO;
|
|||
[[self soClassSecurityInfo] setDefaultAccess:@"allow"];
|
||||
|
||||
/* require Authenticated role for View and WebDAV */
|
||||
[[self soClassSecurityInfo] declareRole:SoRole_Authenticated
|
||||
asDefaultForPermission:SoPerm_View];
|
||||
[[self soClassSecurityInfo] declareRole:SoRole_Authenticated
|
||||
asDefaultForPermission:SoPerm_WebDAVAccess];
|
||||
[[self soClassSecurityInfo] declareRole: SoRole_Authenticated
|
||||
asDefaultForPermission: SoPerm_View];
|
||||
[[self soClassSecurityInfo] declareRole: SoRole_Authenticated
|
||||
asDefaultForPermission: SoPerm_WebDAVAccess];
|
||||
}
|
||||
|
||||
- (id)init {
|
||||
|
@ -124,6 +124,8 @@ static BOOL doCrashOnSessionCreate = NO;
|
|||
}
|
||||
|
||||
- (id)lookupUser:(NSString *)_key inContext:(id)_ctx {
|
||||
|
||||
NSLog (@"lookupUser: %@", _key);
|
||||
return [[[NSClassFromString(@"SOGoUserFolder") alloc]
|
||||
initWithName:_key inContainer:self] autorelease];
|
||||
}
|
||||
|
|
|
@ -143,7 +143,7 @@
|
|||
|
||||
registry = [SoProductRegistry sharedProductRegistry];
|
||||
fm = [NSFileManager defaultManager];
|
||||
|
||||
|
||||
pathes = [[self productSearchPathes] objectEnumerator];
|
||||
while ((lpath = [pathes nextObject]) != nil) {
|
||||
NSEnumerator *productNames;
|
||||
|
|
|
@ -23,7 +23,8 @@ CommonUI_OBJC_FILES += \
|
|||
UIxTabView.m \
|
||||
UIxTabItem.m \
|
||||
\
|
||||
UIxToolbar.m
|
||||
UIxToolbar.m \
|
||||
UIxUserLogoff.m
|
||||
|
||||
CommonUI_RESOURCE_FILES += \
|
||||
Version \
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
if ([self isUIxDebugEnabled])
|
||||
return self->title;
|
||||
|
||||
return [self labelForKey:@"OpenGroupware.org"];
|
||||
return [self labelForKey: @"OpenGroupware.org"];
|
||||
}
|
||||
|
||||
- (void)setItem:(id)_item {
|
||||
|
@ -60,10 +60,10 @@
|
|||
/* Help URL/target */
|
||||
|
||||
- (NSString *)helpURL {
|
||||
return [NSString stringWithFormat:@"help/%@.html", self->title];
|
||||
return [NSString stringWithFormat: @"help/%@.html", self->title];
|
||||
}
|
||||
- (NSString *)helpWindowTarget {
|
||||
return [NSString stringWithFormat:@"Help_%@", self->title];
|
||||
return [NSString stringWithFormat: @"Help_%@", self->title];
|
||||
}
|
||||
|
||||
|
||||
|
@ -78,19 +78,23 @@
|
|||
// TODO: I think all this should be done by the clientObject?!
|
||||
|
||||
- (NSString *)relativeHomePath {
|
||||
return [self relativePathToUserFolderSubPath:@""];
|
||||
return [self relativePathToUserFolderSubPath: @""];
|
||||
}
|
||||
|
||||
- (NSString *)relativeCalendarPath {
|
||||
return [self relativePathToUserFolderSubPath:@"Calendar/"];
|
||||
return [self relativePathToUserFolderSubPath: @"Calendar/"];
|
||||
}
|
||||
|
||||
- (NSString *)relativeContactsPath {
|
||||
return [self relativePathToUserFolderSubPath:@"Contacts/"];
|
||||
return [self relativePathToUserFolderSubPath: @"Contacts/"];
|
||||
}
|
||||
|
||||
- (NSString *)relativeMailPath {
|
||||
return [self relativePathToUserFolderSubPath:@"Mail/"];
|
||||
return [self relativePathToUserFolderSubPath: @"Mail/"];
|
||||
}
|
||||
|
||||
- (NSString *)logoffPath {
|
||||
return [self relativePathToUserFolderSubPath: @"logoff"];
|
||||
}
|
||||
|
||||
/* page based JavaScript */
|
||||
|
@ -132,7 +136,7 @@
|
|||
pageToURL = [[NSMutableDictionary alloc] initWithCapacity:32];
|
||||
|
||||
rm = [self pageResourceManager];
|
||||
jsname = [pageName stringByAppendingString:@".js"];
|
||||
jsname = [pageName stringByAppendingString: @".js"];
|
||||
|
||||
url = [rm urlForResourceNamed: jsname
|
||||
inFramework: [[NSBundle bundleForClass: [page class]] bundlePath]
|
||||
|
@ -164,7 +168,7 @@
|
|||
pageToURL = [[NSMutableDictionary alloc] initWithCapacity:32];
|
||||
|
||||
rm = [self pageResourceManager];
|
||||
jsname = [[page frameworkName] stringByAppendingString:@".js"];
|
||||
jsname = [[page frameworkName] stringByAppendingString: @".js"];
|
||||
|
||||
url = [rm urlForResourceNamed: jsname
|
||||
inFramework: [[NSBundle bundleForClass: [page class]] bundlePath]
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
box_left.gif,
|
||||
box_right.gif,
|
||||
box_botleft.gif,
|
||||
box_bottom.gif,
|
||||
box_bottom.gi88f,
|
||||
box_botright.gif,
|
||||
tab_selected.gif,
|
||||
tab_.gif,
|
||||
|
@ -30,6 +30,15 @@
|
|||
};
|
||||
|
||||
categories = {
|
||||
SOGoUserLogin = {
|
||||
methods = {
|
||||
logoff = {
|
||||
protectedBy = "View";
|
||||
pageName = "UIxUserLogoff";
|
||||
actionName = "logoffUser";
|
||||
}
|
||||
};
|
||||
};
|
||||
SOGoObject = {
|
||||
methods = {
|
||||
};
|
||||
|
|
|
@ -136,11 +136,14 @@ static int attachmentFlagSize = 8096;
|
|||
return [[[self message] valueForKey:@"uid"] stringValue];
|
||||
}
|
||||
|
||||
- (NSString *)messageSubjectStyleClass {
|
||||
return [self isMessageRead]
|
||||
? @"mailer_readmailsubject"
|
||||
: @"mailer_unreadmailsubject";
|
||||
- (NSString *)messageSubjectCellStyleClass {
|
||||
return [NSString stringWithFormat: @"%@ %@",
|
||||
[self messageCellStyleClass],
|
||||
([self isMessageRead]
|
||||
? @"mailer_readmailsubject"
|
||||
: @"mailer_unreadmailsubject")];
|
||||
}
|
||||
|
||||
- (NSString *)messageCellStyleClass {
|
||||
return [self isMessageDeleted]
|
||||
? @"mailer_listcell_deleted"
|
||||
|
@ -322,25 +325,25 @@ static int attachmentFlagSize = 8096;
|
|||
|
||||
/* JavaScript */
|
||||
|
||||
- (NSString *)msgRowID {
|
||||
- (NSString *)msgRowID
|
||||
{
|
||||
return [@"row_" stringByAppendingString:[self messageUidString]];
|
||||
}
|
||||
- (NSString *)msgDivID {
|
||||
|
||||
- (NSString *)msgDivID
|
||||
{
|
||||
return [@"div_" stringByAppendingString:[self messageUidString]];
|
||||
}
|
||||
|
||||
- (NSString *)msgIconReadDivID {
|
||||
- (NSString *)msgIconReadImgID
|
||||
{
|
||||
return [@"readdiv_" stringByAppendingString:[self messageUidString]];
|
||||
}
|
||||
- (NSString *)msgIconUnreadDivID {
|
||||
|
||||
- (NSString *)msgIconUnreadImgID
|
||||
{
|
||||
return [@"unreaddiv_" stringByAppendingString:[self messageUidString]];
|
||||
}
|
||||
- (NSString *)msgIconReadVisibility {
|
||||
return [self isMessageRead] ? nil : @"display: none;";
|
||||
}
|
||||
- (NSString *)msgIconUnreadVisibility {
|
||||
return [self isMessageRead] ? @"display: none;" : nil;
|
||||
}
|
||||
|
||||
- (NSString *)clickedMsgJS {
|
||||
/* return 'false' aborts processing */
|
||||
|
|
|
@ -153,7 +153,9 @@ static NSArray *internetAccessStates = nil;
|
|||
}
|
||||
|
||||
- (NSString *)relativeMailPath {
|
||||
return [self relativePathToUserFolderSubPath:@"Mail/"];
|
||||
return [NSString stringWithFormat: @"%@%@/view",
|
||||
[self relativePathToUserFolderSubPath:@"Mail/"],
|
||||
[self emailForUser]];
|
||||
}
|
||||
|
||||
/* objects */
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0" standalone="yes"?>
|
||||
<pre
|
||||
<div
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:rsrc="OGo:url"
|
||||
xmlns:label="OGo:label"
|
||||
class="mailer_plaincontent"
|
||||
><var:string value="flatContentAsString" /></pre>
|
||||
><var:string value="flatContentAsString" /></div>
|
||||
|
|
|
@ -1,202 +1,199 @@
|
|||
<?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:rsrc="OGo:url"
|
||||
xmlns:label="OGo:label"
|
||||
className="UIxMailMainFrame"
|
||||
title="panelTitle"
|
||||
hideFrame="hideFrame"
|
||||
>
|
||||
<script language="JavaScript" rsrc:src="UIxMailListView.js">
|
||||
<!-- space required -->
|
||||
</script>
|
||||
<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:rsrc="OGo:url"
|
||||
xmlns:label="OGo:label"
|
||||
className="UIxMailMainFrame"
|
||||
title="panelTitle"
|
||||
hideFrame="hideFrame"
|
||||
>
|
||||
<var:component className="UIxMailFilterPanel" qualifier="qualifier"
|
||||
hideFrame="hideFrame" />
|
||||
|
||||
<var:component className="UIxMailFilterPanel" qualifier="qualifier"
|
||||
hideFrame="hideFrame" />
|
||||
|
||||
<div id="cl_tableview_reloadroot">
|
||||
<div class="embedwhite_out">
|
||||
<div class="embedwhite_in">
|
||||
<table border="0" width="100%" cellspacing="0" cellpadding="1">
|
||||
<tr class="tableview">
|
||||
<td class="tbtv_headercell" width="17">
|
||||
<var:entity const:name="nbsp" />
|
||||
</td>
|
||||
<td class="tbtv_headercell" width="50%">
|
||||
<var:component className="UIxMailSortableTableHeader"
|
||||
label:label="Subject"
|
||||
const:sortKey="subject"
|
||||
const:href="view"
|
||||
var:queryDictionary="context.request.formValues"
|
||||
/>
|
||||
</td>
|
||||
<td class="tbtv_headercell">
|
||||
<var:if condition="showToAddress" const:negate="YES">
|
||||
<var:component className="UIxMailSortableTableHeader"
|
||||
label:label="From"
|
||||
const:sortKey="from"
|
||||
const:href="view"
|
||||
var:queryDictionary="context.request.formValues"
|
||||
/>
|
||||
</var:if>
|
||||
<var:if condition="showToAddress">
|
||||
<var:component className="UIxMailSortableTableHeader"
|
||||
label:label="To"
|
||||
const:sortKey="to"
|
||||
const:href="view"
|
||||
var:queryDictionary="context.request.formValues"
|
||||
/>
|
||||
</var:if>
|
||||
</td>
|
||||
<td class="tbtv_headercell" width="17">
|
||||
<img rsrc:src="title_read_14x14.png" width="14" height="14" />
|
||||
</td>
|
||||
<td class="tbtv_headercell" width="17">
|
||||
<img rsrc:src="title_attachment_14x14.png" width="14" height="14" />
|
||||
</td>
|
||||
<td class="tbtv_headercell">
|
||||
<var:component className="UIxMailSortableTableHeader"
|
||||
label:label="Date"
|
||||
const:sortKey="date"
|
||||
const:href="view"
|
||||
var:queryDictionary="context.request.formValues"
|
||||
const:isDefault="YES"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tableview">
|
||||
<td colspan="6" class="tbtv_navcell" align="right">
|
||||
<var:if condition="showsAllMessages">
|
||||
<var:string value="sortedUIDs.count" />
|
||||
<var:string label:value="messages" />
|
||||
</var:if>
|
||||
|
||||
<var:if condition="showsAllMessages" const:negate="YES">
|
||||
<var:if condition="hasPrevious">
|
||||
<a href="view"
|
||||
_idx="1"
|
||||
var:queryDictionary="queryParameters"
|
||||
><var:string label:value="first"/></a> |
|
||||
<a href="view"
|
||||
var:_idx="prevFirstMessageNumber"
|
||||
var:queryDictionary="queryParameters"
|
||||
><var:string label:value="previous"/></a> |
|
||||
</var:if>
|
||||
|
||||
<var:string value="firstMessageNumber"/>
|
||||
<var:string label:value="msgnumber_to" />
|
||||
<var:string value="lastMessageNumber"/>
|
||||
<var:string label:value="msgnumber_of" />
|
||||
<var:string value="sortedUIDs.count" />
|
||||
|
||||
<var:if condition="hasNext">
|
||||
| <a href="view"
|
||||
var:_idx="nextFirstMessageNumber"
|
||||
var:queryDictionary="queryParameters"
|
||||
><var:string label:value="next" /></a>
|
||||
</var:if>
|
||||
</var:if>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<var:foreach list="messages" item="message">
|
||||
<tr class="tableview" var:id="msgRowID"
|
||||
onmouseover="ml_highlight(this)"
|
||||
onmouseout="ml_lowlight(this)"
|
||||
style="cursor: pointer;"
|
||||
>
|
||||
<td>
|
||||
<!-- this seems to break on Safari, it treats name==id? -->
|
||||
<input type="checkbox" var:name="msgRowID" value="0"
|
||||
onchange="toggleMailSelect(this)" />
|
||||
</td>
|
||||
<!-- the td:onlick doesn't work on Safari -->
|
||||
<td var:class="messageCellStyleClass" var:onclick="clickedMsgJS">
|
||||
<div var:class="messageSubjectStyleClass" var:id="msgDivID">
|
||||
<!-- removed anker (resulted in two clicks on Moz -->
|
||||
<!-- a href="#" var:onclick="clickedMsgJS" -->
|
||||
<!-- Note: var:href="messageViewURL" (done by JS),
|
||||
var:target="messageViewTarget" -->
|
||||
<var:string value="message.envelope.subject"
|
||||
formatter="context.mailSubjectFormatter"/>
|
||||
<!-- /a -->
|
||||
</div>
|
||||
</td>
|
||||
<td var:class="messageCellStyleClass" var:onclick="clickedMsgJS">
|
||||
<!-- TODO: show compose links -->
|
||||
<!-- TODO: different color for internal vs external addrs -->
|
||||
<var:if condition="showToAddress" const:negate="YES">
|
||||
<var:string value="message.envelope.from"
|
||||
formatter="context.mailEnvelopeAddressFormatter" />
|
||||
</var:if>
|
||||
<var:if condition="showToAddress">
|
||||
<var:string value="message.envelope.to"
|
||||
formatter="context.mailEnvelopeAddressFormatter" />
|
||||
</var:if>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<div class="mailer_readicon"
|
||||
var:style="msgIconReadVisibility"
|
||||
var:id="msgIconReadDivID">
|
||||
<a href="#" var:onclick="markUnreadJS"
|
||||
label:title="Mark Unread"> </a>
|
||||
</div>
|
||||
<div class="mailer_unreadicon"
|
||||
var:style="msgIconUnreadVisibility"
|
||||
var:id="msgIconUnreadDivID">
|
||||
<a href="#" var:onclick="markReadJS"
|
||||
label:title="Mark Read"> </a>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<var:if condition="hasMessageAttachment">
|
||||
<img rsrc:src="title_attachment_14x14.png"
|
||||
width="14" height="14" />
|
||||
</var:if>
|
||||
<entity name="nbsp" />
|
||||
</td>
|
||||
<div id="cl_tableview_reloadroot">
|
||||
<div class="embedwhite_out">
|
||||
<div class="embedwhite_in">
|
||||
<table multiselect="yes" id="messageList">
|
||||
<tr class="tableview">
|
||||
<td class="tbtv_headercell" width="17">
|
||||
<var:entity const:name="nbsp" />
|
||||
</td>
|
||||
<td class="tbtv_headercell" width="50%">
|
||||
<var:component className="UIxMailSortableTableHeader"
|
||||
label:label="Subject"
|
||||
const:sortKey="subject"
|
||||
const:href="view"
|
||||
var:queryDictionary="context.request.formValues"
|
||||
/>
|
||||
</td>
|
||||
<td class="tbtv_headercell">
|
||||
<var:if condition="showToAddress" const:negate="YES">
|
||||
<var:component className="UIxMailSortableTableHeader"
|
||||
label:label="From"
|
||||
const:sortKey="from"
|
||||
const:href="view"
|
||||
var:queryDictionary="context.request.formValues"
|
||||
/>
|
||||
</var:if>
|
||||
<var:if condition="showToAddress">
|
||||
<var:component className="UIxMailSortableTableHeader"
|
||||
label:label="To"
|
||||
const:sortKey="to"
|
||||
const:href="view"
|
||||
var:queryDictionary="context.request.formValues"
|
||||
/>
|
||||
</var:if>
|
||||
</td>
|
||||
<td class="tbtv_headercell" width="17">
|
||||
<img rsrc:src="title_read_14x14.png" width="14" height="14" />
|
||||
</td>
|
||||
<td class="tbtv_headercell" width="17">
|
||||
<img rsrc:src="title_attachment_14x14.png" width="14" height="14" />
|
||||
</td>
|
||||
<td class="tbtv_headercell">
|
||||
<var:component className="UIxMailSortableTableHeader"
|
||||
label:label="Date"
|
||||
const:sortKey="date"
|
||||
const:href="view"
|
||||
var:queryDictionary="context.request.formValues"
|
||||
const:isDefault="YES"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tableview">
|
||||
<td colspan="6" class="tbtv_navcell" align="right">
|
||||
<var:if condition="showsAllMessages">
|
||||
<var:string value="sortedUIDs.count" />
|
||||
<var:string label:value="messages" />
|
||||
</var:if>
|
||||
|
||||
<var:if condition="showsAllMessages" const:negate="YES">
|
||||
<var:if condition="hasPrevious">
|
||||
<a href="view"
|
||||
_idx="1"
|
||||
var:queryDictionary="queryParameters"
|
||||
><var:string label:value="first"/></a> |
|
||||
<a href="view"
|
||||
var:_idx="prevFirstMessageNumber"
|
||||
var:queryDictionary="queryParameters"
|
||||
><var:string label:value="previous"/></a> |
|
||||
</var:if>
|
||||
|
||||
<var:string value="firstMessageNumber"/>
|
||||
<var:string label:value="msgnumber_to" />
|
||||
<var:string value="lastMessageNumber"/>
|
||||
<var:string label:value="msgnumber_of" />
|
||||
<var:string value="sortedUIDs.count" />
|
||||
|
||||
<var:if condition="hasNext">
|
||||
| <a href="view"
|
||||
var:_idx="nextFirstMessageNumber"
|
||||
var:queryDictionary="queryParameters"
|
||||
><var:string label:value="next" /></a>
|
||||
</var:if>
|
||||
</var:if>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<td var:class="messageCellStyleClass" var:onclick="clickedMsgJS">
|
||||
<span class="mailer_datefield">
|
||||
<var:string value="message.envelope.date"
|
||||
formatter="context.mailDateFormatter"/>
|
||||
</span>
|
||||
<entity name="nbsp" />
|
||||
</td>
|
||||
</tr>
|
||||
</var:foreach>
|
||||
<var:foreach list="messages" item="message">
|
||||
<tr class="tableview" var:id="msgRowID"
|
||||
onmousedown="return false;"
|
||||
onclick="onRowClick(this, event);">
|
||||
<td>
|
||||
<!-- this seems to break on Safari, it treats name==id? -->
|
||||
<input type="checkbox" var:name="msgRowID" value="0"
|
||||
onchange="toggleMailSelect(this)" />
|
||||
</td>
|
||||
<!-- the td:onlick doesn't work on Safari -->
|
||||
<td
|
||||
var:class="messageSubjectCellStyleClass"
|
||||
var:ondblclick="clickedMsgJS"
|
||||
var:id="msgDivID">
|
||||
<!-- div var:class="messageSubjectStyleClass" var:id="msgDivID" -->
|
||||
<!-- removed anker (resulted in two clicks on Moz -->
|
||||
<!-- a href="#" var:ondblclick="clickedMsgJS" -->
|
||||
<!-- Note: var:href="messageViewURL" (done by JS),
|
||||
var:target="messageViewTarget" -->
|
||||
<var:string value="message.envelope.subject"
|
||||
formatter="context.mailSubjectFormatter"/>
|
||||
<!-- /a -->
|
||||
</td>
|
||||
<td var:class="messageCellStyleClass" var:ondblclick="clickedMsgJS">
|
||||
<!-- TODO: show compose links -->
|
||||
<!-- TODO: different color for internal vs external addrs -->
|
||||
<var:if condition="showToAddress" const:negate="YES">
|
||||
<var:string value="message.envelope.from"
|
||||
formatter="context.mailEnvelopeAddressFormatter" />
|
||||
</var:if>
|
||||
<var:if condition="showToAddress">
|
||||
<var:string value="message.envelope.to"
|
||||
formatter="context.mailEnvelopeAddressFormatter" />
|
||||
</var:if>
|
||||
</td>
|
||||
|
||||
<td var:class="messageCellStyleClass">
|
||||
<var:if condition="isMessageRead">
|
||||
<img rsrc:src="icon_read.gif"
|
||||
class="mailerReadIcon"
|
||||
var:onclick="markUnreadJS"
|
||||
label:title="Mark Unread"
|
||||
var:id="msgIconReadImgID" />
|
||||
</var:if>
|
||||
<var:if condition="isMessageRead" const:negate="YES">
|
||||
<img rsrc:src="icon_unread.gif"
|
||||
class="mailerUnreadIcon"
|
||||
var:onclick="markReadJS"
|
||||
label:title="Mark Read"
|
||||
var:id="msgIconUnreadImgID" />
|
||||
</var:if>
|
||||
</td>
|
||||
|
||||
<tr class="tableview">
|
||||
<td colspan="6" class="tbtv_actcell">
|
||||
<!-- TODO: fix used tree, treeNavigationNodes is the _wrong_ choice
|
||||
<var:component className="UIxMailMoveToPopUp"
|
||||
const:identifier="moveto"
|
||||
const:callback="moveTo"
|
||||
rootNodes="clientObject.treeNavigationNodes"
|
||||
/>
|
||||
-->
|
||||
<!-- enable once we have buttons and functionality to actually move sth #1211
|
||||
<var:popup const:name="moveto" const:id="moveto"
|
||||
list="clientObject.mailAccountFolder.allFolderPathes"
|
||||
item="item" value="item" displayString="item" />
|
||||
-->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<span id="selected_uids" style="visibility: hidden;">
|
||||
</span>
|
||||
<td>
|
||||
<var:if condition="hasMessageAttachment">
|
||||
<img rsrc:src="title_attachment_14x14.png" />
|
||||
</var:if>
|
||||
</td>
|
||||
|
||||
<td var:class="messageCellStyleClass" var:ondblclick="clickedMsgJS">
|
||||
<span class="mailer_datefield">
|
||||
<var:string value="message.envelope.date"
|
||||
formatter="context.mailDateFormatter"/>
|
||||
</span>
|
||||
<entity name="nbsp" />
|
||||
</td>
|
||||
</tr>
|
||||
</var:foreach>
|
||||
|
||||
<tr class="tableview">
|
||||
<td colspan="6" class="tbtv_actcell">
|
||||
<!-- TODO: fix used tree, treeNavigationNodes is the _wrong_ choice
|
||||
<var:component className="UIxMailMoveToPopUp"
|
||||
const:identifier="moveto"
|
||||
const:callback="moveTo"
|
||||
rootNodes="clientObject.treeNavigationNodes"
|
||||
/>
|
||||
-->
|
||||
<!-- enable once we have buttons and functionality to actually move sth #1211
|
||||
<var:popup const:name="moveto" const:id="moveto"
|
||||
list="clientObject.mailAccountFolder.allFolderPathes"
|
||||
item="item" value="item" displayString="item" />
|
||||
-->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<span id="selected_uids" style="visibility: hidden;">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<var:if condition="hideFrame" const:negate="YES">
|
||||
<script language="JavaScript">
|
||||
document.pageform.search.focus();
|
||||
</script>
|
||||
</var:if>
|
||||
</var:component>
|
||||
<var:if condition="hideFrame" const:negate="YES">
|
||||
<script language="JavaScript">
|
||||
document.pageform.search.focus();
|
||||
</script>
|
||||
</var:if>
|
||||
</var:component>
|
||||
|
|
|
@ -54,6 +54,8 @@
|
|||
><var:string label:value="Addressbook" /></a> |
|
||||
<a var:href="relativeMailPath"
|
||||
><var:string label:value="Mail" /></a> |
|
||||
<a var:href="logoffPath"
|
||||
><var:string label:value="Logoff" /></a> |
|
||||
<a href="http://to.be.done/"
|
||||
><var:string label:value="Right Administration" /></a>
|
||||
</div>
|
||||
|
|
|
@ -12,8 +12,8 @@
|
|||
<meta name="description" content="SOGo Web Interface"/>
|
||||
<meta name="author" content="SKYRIX Software AG"/>
|
||||
<meta name="robots" content="stop"/>
|
||||
<meta name="test" content="testp"/>
|
||||
|
||||
<meta name="test" var:content="patate"/>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1"/>
|
||||
<link type="text/css" rel="stylesheet" rsrc:href="uix.css"/>
|
||||
<link type="text/css" rel="stylesheet" rsrc:href="calendar.css"/>
|
||||
<link href="mailto:hh@skyrix.com" rev="made"/>
|
||||
|
@ -38,6 +38,8 @@
|
|||
><var:string label:value="Addressbook" /></a> |
|
||||
<a var:href="relativeMailPath"
|
||||
><var:string label:value="Mail" /></a> |
|
||||
<a var:href="logoffPath"
|
||||
><var:string label:value="Logoff" /></a> |
|
||||
<a href="http://to.be.done/"
|
||||
><var:string label:value="Right Administration" /></a>
|
||||
</div>
|
||||
|
@ -151,3 +153,10 @@
|
|||
</var:if>
|
||||
</body>
|
||||
</html>
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: xml
|
||||
sgml-omittag:nil
|
||||
sgml-shorttag:nil
|
||||
End:
|
||||
-->
|
||||
|
|
|
@ -256,12 +256,13 @@ function getSelectedNodes(parentNode) {
|
|||
}
|
||||
|
||||
function onRowClick(node, event) {
|
||||
var text = document.getElementById('list');
|
||||
text.innerHTML = '';
|
||||
// var text = document.getElementById('list');
|
||||
// text.innerHTML = '';
|
||||
|
||||
var startSelection = getSelectedNodes(node.parentNode);
|
||||
if (event.shiftKey == 1
|
||||
&& acceptMultiSelect(node.parentNode)) {
|
||||
&& (acceptMultiSelect(node.parentNode)
|
||||
|| acceptMultiSelect(node.parentNode.parentNode))) {
|
||||
if (isNodeSelected(node) == true) {
|
||||
deselectNode(node);
|
||||
} else {
|
||||
|
|
|
@ -151,6 +151,7 @@ td.titlecell
|
|||
|
||||
.tableview
|
||||
{
|
||||
cursor: default;
|
||||
font-size: medium;
|
||||
font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
|
||||
vertical-align: top;
|
||||
|
@ -273,6 +274,7 @@ div.mailer_readmailsubject
|
|||
padding-top: 1px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
div.mailer_unreadmailsubject
|
||||
{
|
||||
background-image: url(message-mail.png);
|
||||
|
@ -282,6 +284,7 @@ div.mailer_unreadmailsubject
|
|||
padding-top: 1px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.mailer_readmailsubject a
|
||||
{
|
||||
color: black;
|
||||
|
@ -297,9 +300,12 @@ td.mailer_listcell_deleted
|
|||
{
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
td.mailer_listcell_regular
|
||||
{
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
td.mailer_listcell_regular a
|
||||
{
|
||||
color: black;
|
||||
|
@ -312,6 +318,12 @@ tr.tableview td.mailer_listcell_regular
|
|||
border-bottom: 1px solid #fff;
|
||||
}
|
||||
|
||||
IMG.mailerReadIcon
|
||||
{
|
||||
/* TODO
|
||||
*/
|
||||
}
|
||||
|
||||
div.mailer_readicon
|
||||
{
|
||||
/* TODO: use Thunderbird icon */
|
||||
|
@ -319,6 +331,7 @@ div.mailer_readicon
|
|||
background-repeat: no-repeat;
|
||||
background-position: 0px 4px;
|
||||
}
|
||||
|
||||
div.mailer_readicon a
|
||||
{
|
||||
width: 17px;
|
||||
|
@ -326,13 +339,15 @@ div.mailer_readicon a
|
|||
margin: 0px auto;
|
||||
display: block;
|
||||
}
|
||||
div.mailer_unreadicon
|
||||
|
||||
div.mailerUnreadIcon
|
||||
{
|
||||
/* TODO: use Thunderbird icon */
|
||||
background-image: url(icon_unread.gif);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0px 4px;
|
||||
}
|
||||
|
||||
div.mailer_unreadicon a
|
||||
{
|
||||
width: 17px;
|
||||
|
@ -386,15 +401,9 @@ img.mailer_imagecontent
|
|||
border: 0px;
|
||||
}
|
||||
|
||||
body
|
||||
{
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
div.pageContent
|
||||
{
|
||||
overflow: auto;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
div.mailer_mailcontent
|
||||
|
@ -491,3 +500,22 @@ table.linked_attachment_meta
|
|||
color: #444444;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
TABLE#messageList
|
||||
{
|
||||
border: 1px;
|
||||
border-collapse: collapse;
|
||||
overflow: scroll;
|
||||
height: 5em !important;
|
||||
}
|
||||
|
||||
TABLE#messageList TR TD
|
||||
{
|
||||
height: 1em; !important;
|
||||
}
|
||||
|
||||
#messageList TR._selected TD
|
||||
{
|
||||
background: #4b6983;
|
||||
color: #fff;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue