AD3D66EC088E7FAD00CBB51B /* SOGoAptMailFrenchInvitation.wo */ = {isa = PBXFileReference; lastKnownFileType = folder; path = SOGoAptMailFrenchInvitation.wo; sourceTree = "<group>"; };
AD3D66F0088E7FAD00CBB51B /* SOGoAptMailFrenchRemoval.wo */ = {isa = PBXFileReference; lastKnownFileType = folder; path = SOGoAptMailFrenchRemoval.wo; sourceTree = "<group>"; };
AD3D66F4088E7FAD00CBB51B /* SOGoAptMailFrenchUpdate.wo */ = {isa = PBXFileReference; lastKnownFileType = folder; path = SOGoAptMailFrenchUpdate.wo; sourceTree = "<group>"; };
+ AD3D67AC088EAF1500CBB51B /* SOGoDraftObject.toolbar */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 2; lastKnownFileType = text; name = SOGoDraftObject.toolbar; path = Toolbars/SOGoDraftObject.toolbar; sourceTree = "<group>"; tabWidth = 2; };
+ AD3D67AD088EAF1500CBB51B /* SOGoMailAccount.toolbar */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 2; lastKnownFileType = text; name = SOGoMailAccount.toolbar; path = Toolbars/SOGoMailAccount.toolbar; sourceTree = "<group>"; tabWidth = 2; };
+ AD3D67AE088EAF1500CBB51B /* SOGoMailFolder.toolbar */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 2; lastKnownFileType = text; name = SOGoMailFolder.toolbar; path = Toolbars/SOGoMailFolder.toolbar; sourceTree = "<group>"; tabWidth = 2; };
+ AD3D67AF088EAF1500CBB51B /* SOGoMailObject.toolbar */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 2; lastKnownFileType = text; name = SOGoMailObject.toolbar; path = Toolbars/SOGoMailObject.toolbar; sourceTree = "<group>"; tabWidth = 2; };
+ AD3D67B0088EAF1500CBB51B /* SOGoTrashFolder.toolbar */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 2; lastKnownFileType = text; name = SOGoTrashFolder.toolbar; path = Toolbars/SOGoTrashFolder.toolbar; sourceTree = "<group>"; tabWidth = 2; };
+ AD3D6807088EB71F00CBB51B /* UIxMailAccountsView.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; name = UIxMailAccountsView.wox; path = MailerUI/UIxMailAccountsView.wox; sourceTree = "<group>"; };
+ AD3D6808088EB71F00CBB51B /* UIxMailAccountView.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; name = UIxMailAccountView.wox; path = MailerUI/UIxMailAccountView.wox; sourceTree = "<group>"; };
+ AD3D6809088EB71F00CBB51B /* UIxMailAddressbook.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; name = UIxMailAddressbook.wox; path = MailerUI/UIxMailAddressbook.wox; sourceTree = "<group>"; };
+ AD3D680A088EB71F00CBB51B /* UIxMailPanelFrame.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; name = UIxMailPanelFrame.wox; path = MailerUI/UIxMailPanelFrame.wox; sourceTree = "<group>"; };
+ AD3D680B088EB71F00CBB51B /* UIxMailToSelection.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; name = UIxMailToSelection.wox; path = MailerUI/UIxMailToSelection.wox; sourceTree = "<group>"; };
+ AD3D685E088F9FF600CBB51B /* UIxContactEditor.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; name = UIxContactEditor.wox; path = ContactsUI/UIxContactEditor.wox; sourceTree = "<group>"; };
+ AD3D685F088F9FF600CBB51B /* UIxContactsListView.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; name = UIxContactsListView.wox; path = ContactsUI/UIxContactsListView.wox; sourceTree = "<group>"; };
+ AD3D6860088F9FF600CBB51B /* UIxContactView.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; name = UIxContactView.wox; path = ContactsUI/UIxContactView.wox; sourceTree = "<group>"; };
+ AD3D68D3088FADA200CBB51B /* UIxMailListView.js */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.javascript; path = UIxMailListView.js; sourceTree = "<group>"; };
+ AD3D68F7088FB57100CBB51B /* UIxMailEditorAttach.js */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 2; lastKnownFileType = sourcecode.javascript; path = UIxMailEditorAttach.js; sourceTree = "<group>"; tabWidth = 2; };
AD494C6206F5EA6600E51EC9 /* UIxContactSelector.m */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 2; lastKnownFileType = sourcecode.c.objc; path = UIxContactSelector.m; sourceTree = "<group>"; };
AD494C8E06F606F900E51EC9 /* UIxContactsSelectionView.m */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 2; lastKnownFileType = sourcecode.c.objc; path = UIxContactsSelectionView.m; sourceTree = "<group>"; };
AD494D1806F6EB3A00E51EC9 /* SOGoMailAccount.h */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 2; lastKnownFileType = sourcecode.c.h; path = SOGoMailAccount.h; sourceTree = "<group>"; };
AD86233307CA03D9004CD707 /* UIxCalWeekOverview.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxCalWeekOverview.wox; sourceTree = "<group>"; };
AD86233407CA03D9004CD707 /* UIxCalWeekPrintview.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxCalWeekPrintview.wox; sourceTree = "<group>"; };
AD86233507CA03D9004CD707 /* UIxCalYearOverview.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxCalYearOverview.wox; sourceTree = "<group>"; };
- AD86233607CA03D9004CD707 /* UIxContactEditor.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxContactEditor.wox; sourceTree = "<group>"; };
AD86233707CA03D9004CD707 /* UIxContactSelector.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxContactSelector.wox; sourceTree = "<group>"; };
- AD86233807CA03D9004CD707 /* UIxContactsListView.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxContactsListView.wox; sourceTree = "<group>"; };
AD86233907CA03D9004CD707 /* UIxContactsSelectionView.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxContactsSelectionView.wox; sourceTree = "<group>"; };
- AD86233A07CA03D9004CD707 /* UIxContactView.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxContactView.wox; sourceTree = "<group>"; };
AD86233B07CA03D9004CD707 /* UIxDatePicker.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxDatePicker.wox; sourceTree = "<group>"; };
AD86233C07CA03D9004CD707 /* UIxDatePickerScript.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxDatePickerScript.wox; sourceTree = "<group>"; };
AD86233D07CA03D9004CD707 /* UIxFilterList.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxFilterList.wox; sourceTree = "<group>"; };
- AD86233E07CA03D9004CD707 /* UIxMailAccountsView.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxMailAccountsView.wox; sourceTree = "<group>"; };
- AD86233F07CA03D9004CD707 /* UIxMailAccountView.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxMailAccountView.wox; sourceTree = "<group>"; };
- AD86234007CA03D9004CD707 /* UIxMailAddressbook.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxMailAddressbook.wox; sourceTree = "<group>"; };
- AD86234107CA03D9004CD707 /* UIxMailCalWeekOverview.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxMailCalWeekOverview.wox; sourceTree = "<group>"; };
- AD86234207CA03D9004CD707 /* UIxMailContactEditor.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxMailContactEditor.wox; sourceTree = "<group>"; };
- AD86234307CA03D9004CD707 /* UIxMailContactList.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxMailContactList.wox; sourceTree = "<group>"; };
- AD86235407CA03D9004CD707 /* UIxMailToSelection.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxMailToSelection.wox; sourceTree = "<group>"; };
AD86235807CA03D9004CD707 /* UIxPageFrame.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxPageFrame.wox; sourceTree = "<group>"; };
AD86235907CA03D9004CD707 /* UIxPrintPageFrame.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxPrintPageFrame.wox; sourceTree = "<group>"; };
AD86235A07CA03D9004CD707 /* UIxSieveEditor.wox */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = UIxSieveEditor.wox; sourceTree = "<group>"; };
ADE0ABFE0885C31100E62D67 /* SOGoTrashFolder.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = SOGoTrashFolder.h; sourceTree = "<group>"; };
ADE0ABFF0885C31100E62D67 /* SOGoTrashFolder.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = SOGoTrashFolder.m; sourceTree = "<group>"; };
ADE0AC120885C45100E62D67 /* generic.js */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.javascript; name = generic.js; path = ../WebServerResources/generic.js; sourceTree = "<group>"; };
- ADE0AC130885C45100E62D67 /* mailer.css */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text; name = mailer.css; path = ../WebServerResources/mailer.css; sourceTree = "<group>"; };
- ADE0AC140885C45100E62D67 /* mailer.js */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.javascript; name = mailer.js; path = ../WebServerResources/mailer.js; sourceTree = "<group>"; };
+ ADE0AC130885C45100E62D67 /* mailer.css */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 2; lastKnownFileType = text; path = mailer.css; sourceTree = "<group>"; tabWidth = 2; };
+ ADE0AC140885C45100E62D67 /* mailer.js */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 2; lastKnownFileType = sourcecode.javascript; name = mailer.js; path = ../WebServerResources/mailer.js; sourceTree = "<group>"; tabWidth = 2; };
ADE0AC150885C45100E62D67 /* searchfield.js */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.javascript; name = searchfield.js; path = ../WebServerResources/searchfield.js; sourceTree = "<group>"; };
- ADE0AC160885C45100E62D67 /* uix.css */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text; name = uix.css; path = ../WebServerResources/uix.css; sourceTree = "<group>"; };
+ ADE0AC160885C45100E62D67 /* uix.css */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text; path = uix.css; sourceTree = "<group>"; };
ADE0AC400885C6D300E62D67 /* homepage.js */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.javascript; path = homepage.js; sourceTree = "<group>"; tabWidth = 2; };
ADE0AEA20886CB3A00E62D67 /* SOGoAuthenticator.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = SOGoAuthenticator.h; sourceTree = "<group>"; };
ADE0AEA30886CB3A00E62D67 /* SOGoAuthenticator.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = SOGoAuthenticator.m; sourceTree = "<group>"; };
name = Components;
sourceTree = "<group>";
};
- AD2C74C3071AA0190087E027 /* JS / CSS */ = {
+ AD2C74C3071AA0190087E027 /* JavaScript */ = {
isa = PBXGroup;
children = (
- ADE0AC130885C45100E62D67 /* mailer.css */,
- AD3D63CE088D5EB000CBB51B /* calendar.css */,
ADE0AC120885C45100E62D67 /* generic.js */,
ADE0AC140885C45100E62D67 /* mailer.js */,
ADE0AC150885C45100E62D67 /* searchfield.js */,
- ADE0AC160885C45100E62D67 /* uix.css */,
AD3D63CF088D5EB000CBB51B /* UIxAppointmentEditor.js */,
AD3D63D0088D5EB000CBB51B /* UIxContactEditor.js */,
+ AD3D68D3088FADA200CBB51B /* UIxMailListView.js */,
AD3D6336088D2E7400CBB51B /* UIxMailToSelection.js */,
+ AD3D68F7088FB57100CBB51B /* UIxMailEditorAttach.js */,
);
- name = "JS / CSS";
+ name = JavaScript;
path = ../WebServerResources;
sourceTree = "<group>";
};
name = SOGoAptMailUpdate;
sourceTree = "<group>";
};
+ AD3D67AB088EAF0100CBB51B /* Toolbars */ = {
+ isa = PBXGroup;
+ children = (
+ AD3D67AC088EAF1500CBB51B /* SOGoDraftObject.toolbar */,
+ AD3D67AD088EAF1500CBB51B /* SOGoMailAccount.toolbar */,
+ AD3D67AE088EAF1500CBB51B /* SOGoMailFolder.toolbar */,
+ AD3D67AF088EAF1500CBB51B /* SOGoMailObject.toolbar */,
+ AD3D67B0088EAF1500CBB51B /* SOGoTrashFolder.toolbar */,
+ );
+ name = Toolbars;
+ sourceTree = "<group>";
+ };
+ AD3D68D6088FADAA00CBB51B /* CSS */ = {
+ isa = PBXGroup;
+ children = (
+ ADE0AC130885C45100E62D67 /* mailer.css */,
+ AD3D63CE088D5EB000CBB51B /* calendar.css */,
+ ADE0AC160885C45100E62D67 /* uix.css */,
+ );
+ name = CSS;
+ path = ../WebServerResources;
+ sourceTree = "<group>";
+ };
AD6BCEE5069D77E9003664CD /* SOGoUI */ = {
isa = PBXGroup;
children = (
AD8625FB07CA0403004CD707 /* Mailer */ = {
isa = PBXGroup;
children = (
+ AD3D6807088EB71F00CBB51B /* UIxMailAccountsView.wox */,
+ AD3D6808088EB71F00CBB51B /* UIxMailAccountView.wox */,
+ AD3D6809088EB71F00CBB51B /* UIxMailAddressbook.wox */,
+ AD3D680A088EB71F00CBB51B /* UIxMailPanelFrame.wox */,
+ AD3D680B088EB71F00CBB51B /* UIxMailToSelection.wox */,
ADE0ABEF0885C22100E62D67 /* UIxMailEditor.wox */,
ADE0ABF00885C22100E62D67 /* UIxMailEditorAttach.wox */,
ADE0ABF10885C22100E62D67 /* UIxMailFilterPanel.wox */,
ADE0ABF90885C22100E62D67 /* UIxMailView.wox */,
ADE0ABFA0885C22200E62D67 /* UIxMailWindowCloser.wox */,
AD86233D07CA03D9004CD707 /* UIxFilterList.wox */,
- AD86233E07CA03D9004CD707 /* UIxMailAccountsView.wox */,
- AD86233F07CA03D9004CD707 /* UIxMailAccountView.wox */,
- AD86234007CA03D9004CD707 /* UIxMailAddressbook.wox */,
- AD86234107CA03D9004CD707 /* UIxMailCalWeekOverview.wox */,
- AD86234207CA03D9004CD707 /* UIxMailContactEditor.wox */,
- AD86234307CA03D9004CD707 /* UIxMailContactList.wox */,
- AD86235407CA03D9004CD707 /* UIxMailToSelection.wox */,
AD86235A07CA03D9004CD707 /* UIxSieveEditor.wox */,
);
name = Mailer;
AD86261D07CA04E7004CD707 /* Contacts */ = {
isa = PBXGroup;
children = (
- AD86233607CA03D9004CD707 /* UIxContactEditor.wox */,
+ AD3D685E088F9FF600CBB51B /* UIxContactEditor.wox */,
+ AD3D685F088F9FF600CBB51B /* UIxContactsListView.wox */,
+ AD3D6860088F9FF600CBB51B /* UIxContactView.wox */,
AD86233707CA03D9004CD707 /* UIxContactSelector.wox */,
- AD86233807CA03D9004CD707 /* UIxContactsListView.wox */,
AD86233907CA03D9004CD707 /* UIxContactsSelectionView.wox */,
- AD86233A07CA03D9004CD707 /* UIxContactView.wox */,
);
name = Contacts;
sourceTree = "<group>";
ADDF4DC906DE0E9A00C4E7F8 /* product.plist */,
ADDF4DC106DE0E9A00C4E7F8 /* Localizable.strings */,
ADDF4DD306DE0EB600C4E7F8 /* Makefiles */,
- AD2C74C3071AA0190087E027 /* JS / CSS */,
+ AD3D68D6088FADAA00CBB51B /* CSS */,
+ AD2C74C3071AA0190087E027 /* JavaScript */,
+ AD3D67AB088EAF0100CBB51B /* Toolbars */,
ADDF4DD906DE0ECB00C4E7F8 /* Classes */,
ADDF4DD606DE0EC100C4E7F8 /* Components */,
);
+2005-07-21 Marcus Mueller <znek@mulle-kybernetik.com>
+
+ * UIxMailEditor.m: fetch attachment names and provide initial style
+ information to left/right side of editor component (v0.9.164)
+
2005-07-21 Helge Hess <helge.hess@opengroupware.org>
* UIxMailListView.m: load JavaScript from a file (UIxMailListView.js)
NSArray *fromEMails;
NSString *from;
SOGoMailFolder *sentFolder;
+
+ /* these are for the inline attachment list */
+ NSString *attachmentName;
+ NSArray *attachmentNames;
}
@end
[self->to release];
[self->cc release];
[self->bcc release];
+
+ [self->attachmentName release];
+ [self->attachmentNames release];
[super dealloc];
}
return NO;
}
+- (void)setAttachmentName:(NSString *)_attachmentName {
+ ASSIGN(self->attachmentName, _attachmentName);
+}
+- (NSString *)attachmentName {
+ return self->attachmentName;
+}
+
/* from addresses */
- (NSArray *)fromEMails {
reason:@"failed to store draft object on server!"];
}
+/* attachment helper */
+
+- (NSArray *)attachmentNames {
+ NSArray *a;
+
+ if (self->attachmentNames != nil)
+ return self->attachmentNames;
+
+ a = [[self clientObject] fetchAttachmentNames];
+ a = [a sortedArrayUsingSelector:@selector(compare:)];
+ self->attachmentNames = [a copy];
+ return self->attachmentNames;
+}
+- (BOOL)hasAttachments {
+ return [[self attachmentNames] count] > 0 ? YES : NO;
+}
+
+- (NSString *)initialLeftsideStyle {
+ if ([self hasAttachments])
+ return @"width: 67%";
+ return @"width: 100%";
+}
+- (NSString *)initialRightsideStyle {
+ if ([self hasAttachments])
+ return @"display: block";
+ return @"display: none";
+}
+
- (id)defaultAction {
return [self redirectToLocation:@"edit"];
}
# version file
-SUBMINOR_VERSION:=163
+SUBMINOR_VERSION:=164
# v0.9.140 requires SoObjects/Mailer v0.9.100
# v0.9.134 requires libSOGo v0.9.41
2005-07-21 Marcus Mueller <znek@mulle-kybernetik.com>
+ * UIxMailToSelection.wox: commented debug output
+
+ * UIxMailEditor.wox: added inline attachment view which is only
+ visible if attachments have been added (similar to what is done
+ in Thunderbird)
+
+ * UIxMailEditorAttach.wox: added JavaScript reference for dynamically
+ updating UIxMailEditor
+
* UIxCalInlineAptView.wox: added indicator to flag recurrent events
2005-07-20 Helge Hess <helge.hess@opengroupware.org>
</div>
</var:if>
- <div id="compose_toselection">
- <var:component className="UIxMailToSelection"
- to="to"
- cc="cc"
- bcc="bcc"
- />
- </div>
-
- <!-- moved below to selection to make it look better -->
- <div id="compose_fromline">
- <table border="0" width="100%">
- <tr>
- <td class="compose_label" width="20%">
- <var:string label:value="From" />:
- </td>
- <td width="80%">
- <var:popup const:name="from" list="fromEMails" item="item"
- selection="from"
- const:style="width: 100%; font-size: 8pt;"
- />
- </td>
- </tr>
- </table>
- </div>
-
- <div id="compose_subject">
- <table border="0" width="100%">
- <tr>
- <td class="compose_label" width="20%">
- <var:string label:value="Subject" />:
- </td>
- <td width="80%"><input name="subject"
- id="compose_subject_input" type="text"
- var:value="subject" /></td>
- </tr>
- </table>
- </div>
+ <table border="0" width="100%">
+ <tr>
+ <td id="compose_leftside" var:style="initialLeftsideStyle">
+ <div id="compose_toselection">
+ <var:component className="UIxMailToSelection"
+ to="to"
+ cc="cc"
+ bcc="bcc"
+ />
+ </div>
+ <!-- moved below to selection to make it look better -->
+ <div id="compose_fromline">
+ <table border="0" width="100%">
+ <tr>
+ <td class="compose_label" width="20%">
+ <var:string label:value="From" />:
+ </td>
+ <td width="80%">
+ <var:popup const:name="from" list="fromEMails" item="item"
+ selection="from"
+ const:style="width: 100%; font-size: 8pt;"
+ />
+ </td>
+ </tr>
+ </table>
+ </div>
+ <div id="compose_subject">
+ <table border="0" width="100%">
+ <tr>
+ <td class="compose_label" width="20%">
+ <var:string label:value="Subject" />:
+ </td>
+ <td width="80%"><input name="subject"
+ id="compose_subject_input" type="text"
+ var:value="subject" /></td>
+ </tr>
+ </table>
+ </div>
+ </td>
+ <td id="compose_rightside" var:style="initialRightsideStyle">
+ <div id="compose_attachments">
+ <div id="compose_attachments_header">
+ <span class="compose_label"
+ ><var:string label:value="Attachments" />:</span>
+ <!--<a href="#"
+ onclick="hideInlineAttachmentList(this);"
+ ><var:string label:value="close" /></a>-->
+ </div>
+ <div id="compose_attachments_list"
+ onclick="clickedEditorAttach(this);"
+ >
+ <var:foreach list="attachmentNames" item="attachmentName">
+ <var:string value="attachmentName" /><br />
+ </var:foreach>
+ </div>
+ </div>
+ </td>
+ </tr>
+ </table>
<!-- separator line -->
<div id="compose_text">
<textarea name="content" var:value="text" />
<meta name="author" content="SKYRIX Software AG"/>
<meta name="robots" content="stop"/>
+ <script rsrc:src="generic.js"> <!-- space required --></script>
+ <script rsrc:src="UIxMailEditorAttach.js" > <!-- space required --></script>
+
<link type="text/css" rel="stylesheet" rsrc:href="uix.css"/>
<link type="text/css" rel="stylesheet" rsrc:href="mailer.css"/>
<link href="mailto:info@skyrix.com" rev="made"/>
</head>
- <body id="attachment_body" style="background-color: #D4D0C8;">
+ <body id="attachment_body"
+ style="background-color: #D4D0C8;"
+ onload="updateAttachmentListInEditorWindow(this);"
+ >
<form name="pageform" href="attach" sidInUrl="NO"
method="POST"
enctype="multipart/form-data"
<tr>
<td></td>
<td>
- <input type="submit" name="submit" value="attach" />
+ <input type="submit"
+ name="submit"
+ value="attach"
+ />
<input type="reset" value="close"
onclick="window.close()" />
</td>
</div>
</var:if>
</div>
+ <span id="attachmentList"
+ style="display: none;"
+ ><var:foreach list="attachmentNames" item="attachmentName"><var:string value="attachmentName" />/</var:foreach></span>
</div>
</form>
</body>
</td>
</tr>
</table>
- <var:if condition="isUIxDebugEnabled">
+ <!--<var:if condition="isUIxDebugEnabled">
<a href="#" onclick="checkAddresses();">check addresses</a>
- </var:if>
+ </var:if>-->
<span id="addr_addresses" style="visibility: hidden;"><var:foreach list="addressLists" item="addressList"><var:foreach list="addressList" item="address"><span var:id="address" /></var:foreach></var:foreach>
</span>
</span>
\ No newline at end of file
--- /dev/null
+/*
+ Copyright (C) 2005 SKYRIX Software AG
+
+ This file is part of OpenGroupware.org.
+
+ OGo is free software; you can redistribute it and/or modify it under
+ the terms of the GNU Lesser General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with OGo; see the file COPYING. If not, write to the
+ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA.
+*/
+
+function updateAttachmentListInEditorWindow(sender) {
+ var attachments;
+
+ attachments = this.getAttachmentNames();
+ window.opener.updateInlineAttachmentList(this, attachments);
+}
+
+function getAttachmentNames() {
+ var e, s, names;
+
+ e = document.getElementById('attachmentList');
+ s = e.innerHTML;
+ /* remove trailing delimiter */
+ s = s.substr(0, s.length - 1);
+ if (s == '') return null;
+
+ /* probably no OS allows '/' in a file name */
+ names = s.split('/');
+ return names;
+}
input.focus();
input.select();
}
+ this.adjustInlineAttachmentListHeight(this);
}
function addressFieldGotFocus(sender) {
table = this.getTable();
senderRow = this.findRowWithIndex(idx);
table.removeChild(senderRow);
+ this.adjustInlineAttachmentListHeight(this);
}
function findAddressWithIndex(idx) {
div#compose_panel div {
padding: 2px;
}
+td#compose_leftside {
+ vertical-align: top;
+}
+
+td#compose_rightside {
+ vertical-align: top;
+}
div#compose_fromline {
}
border-width: 2px;
border-style: solid;
}
+div#compose_attachments {
+}
+div#compose_attachments_list {
+ width: 100%;
+ height: 100px;
+ background-color: #FFFFFF;
+ font-size: 10px;
+ margin-left: 0px;
+ border-color: #808080;
+ border-width: 1px;
+ border-style: solid;
+}
+
div#compose_subject {
border-bottom-color: #808080;
border-bottom-width: 1;
return true;
}
+/* X Library, Copyright (C) 2001,2002,2003,2004,2005 Michael Foster (Cross-Browser.com). Distributed under the terms of the GNU LGPL */
+/* layout2or3_xlib.js compiled with XC v0.22b, see layout2or3_xlib.txt for contributor copyrights, license info and documentation */
+var xVersion='4.0',xOp7,xOp5or6,xIE4Up,xIE4,xIE5,xNN4,xMoz,xMac,xUA=navigator.userAgent.toLowerCase();if (window.opera){xOp7=(xUA.indexOf('opera 7')!=-1 || xUA.indexOf('opera/7')!=-1);if (!xOp7) xOp5or6=(xUA.indexOf('opera 5')!=-1 || xUA.indexOf('opera/5')!=-1 || xUA.indexOf('opera 6')!=-1 || xUA.indexOf('opera/6')!=-1);}else if (document.all && xUA.indexOf('msie')!=-1) {xIE4Up=parseInt(navigator.appVersion)>=4;xIE4=xUA.indexOf('msie 4')!=-1;xIE5=xUA.indexOf('msie 5')!=-1;}else if (document.layers) {xNN4=true;}xMoz=xUA.indexOf('gecko')!=-1;xMac=xUA.indexOf('mac')!=-1;function xGetElementById(e){if(typeof(e)!='string') return e;if(document.getElementById) e=document.getElementById(e);else if(document.all) e=document.all[e];else e=null;return e;}function xStr(s){for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])!='string') return false;}return true;}function xScrollLeft(e, bWin){var offset=0;if (!xDef(e) || bWin) {var w = e || window;if(w.document.documentElement && w.document.documentElement.scrollLeft) offset=w.document.documentElement.scrollLeft;else if(w.document.body && xDef(w.document.body.scrollLeft)) offset=w.document.body.scrollLeft;}else {e = xGetElementById(e);if (e && xNum(e.scrollLeft)) offset = e.scrollLeft;}return offset;}function xScrollTop(e, bWin){var offset=0;if (!xDef(e) || bWin) {var w = e || window;if(w.document.documentElement && w.document.documentElement.scrollTop) offset=w.document.documentElement.scrollTop;else if(w.document.body && xDef(w.document.body.scrollTop)) offset=w.document.body.scrollTop;}else {e = xGetElementById(e);if (e && xNum(e.scrollTop)) offset = e.scrollTop;}return offset;}function xHeight(e,h){if(!(e=xGetElementById(e))) return 0;if (xNum(h)) {if (h<0) h = 0;else h=Math.round(h);}else h=-1;var css=xDef(e.style);if(css && xDef(e.offsetHeight) && xStr(e.style.height)) {if(h>=0) {var pt=0,pb=0,bt=0,bb=0;if (document.compatMode=='CSS1Compat') {var gcs = xGetComputedStyle;pt=gcs(e,'padding-top',1);if (pt != null) {pb=gcs(e,'padding-bottom',1);bt=gcs(e,'border-top-width',1);bb=gcs(e,'border-bottom-width',1);}else if(xDef(e.offsetHeight,e.style.height)){e.style.height=h+'px';pt=e.offsetHeight-h;}}h-=(pt+pb+bt+bb);if(isNaN(h)||h<0) return;else e.style.height=h+'px';}h=e.offsetHeight;}else if(css && xDef(e.style.pixelHeight)) {if(h>=0) e.style.pixelHeight=h;h=e.style.pixelHeight;}return h;}function xClientWidth(){var w=0;if(xOp5or6) w=window.innerWidth;else if(document.compatMode == 'CSS1Compat' && !window.opera && document.documentElement && document.documentElement.clientWidth)w=document.documentElement.clientWidth;else if(document.body && document.body.clientWidth)w=document.body.clientWidth;else if(xDef(window.innerWidth,window.innerHeight,document.height)) {w=window.innerWidth;if(document.height>window.innerHeight) w-=16;}return w;}function xClientHeight(){var h=0;if(xOp5or6) h=window.innerHeight;else if(document.compatMode == 'CSS1Compat' && !window.opera && document.documentElement && document.documentElement.clientHeight)h=document.documentElement.clientHeight;else if(document.body && document.body.clientHeight)h=document.body.clientHeight;else if(xDef(window.innerWidth,window.innerHeight,document.width)) {h=window.innerHeight;if(document.width>window.innerWidth) h-=16;}return h;}function xAddEventListener(e,eT,eL,cap){if(!(e=xGetElementById(e))) return;eT=eT.toLowerCase();if((!xIE4Up && !xOp7 /* && !xMoz */) && e==window) {if(eT=='resize') { window.xPCW=xClientWidth(); window.xPCH=xClientHeight(); window.xREL=eL; xResizeEvent(); return; }if(eT=='scroll') { window.xPSL=xScrollLeft(); window.xPST=xScrollTop(); window.xSEL=eL; xScrollEvent(); return; }}var eh='e.on'+eT+'=eL';if(e.addEventListener) e.addEventListener(eT,eL,cap);else if(e.attachEvent) e.attachEvent('on'+eT,eL);else eval(eh);}function xResizeEvent(){if (window.xREL) setTimeout('xResizeEvent()', 250);var cw = xClientWidth(), ch = xClientHeight();if (window.xPCW != cw || window.xPCH != ch) { window.xPCW = cw; window.xPCH = ch; if (window.xREL) window.xREL(); }}function xScrollEvent(){if (window.xSEL) setTimeout('xScrollEvent()', 250);var sl = xScrollLeft(), st = xScrollTop();if (window.xPSL != sl || window.xPST != st) { window.xPSL = sl; window.xPST = st; if (window.xSEL) window.xSEL(); }}function xGetComputedStyle(oEle, sProp, bInt){var s, p = 'undefined';var dv = document.defaultView;if(dv && dv.getComputedStyle){s = dv.getComputedStyle(oEle,'');if (s) p = s.getPropertyValue(sProp);}else if(oEle.currentStyle) {var a = sProp.split('-');sProp = a[0];for (var i=1; i<a.length; ++i) {c = a[i].charAt(0);sProp += a[i].replace(c, c.toUpperCase());} p = oEle.currentStyle[sProp];}else return null;return bInt ? (parseInt(p) || 0) : p;}function xShow(e) {return xVisibility(e,1);}function xDef(){for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}return true;}function xNum(){for(var i=0; i<arguments.length; ++i){if(isNaN(arguments[i]) || typeof(arguments[i])!='number') return false;}return true;}function xVisibility(e, bShow){if(!(e=xGetElementById(e))) return null;if(e.style && xDef(e.style.visibility)) {if (xDef(bShow)) e.style.visibility = bShow ? 'visible' : 'hidden';return e.style.visibility;}return null;}
+
+function showInlineAttachmentList(sender) {
+ var r, l;
+
+ r = document.getElementById('compose_rightside');
+ r.style.display = 'block';
+ l = document.getElementById('compose_leftside');
+ l.style.width = "67%";
+ this.adjustInlineAttachmentListHeight(sender);
+}
+
+function updateInlineAttachmentList(sender, attachments) {
+ if (!attachments || (attachments.length == 0)) {
+ this.hideInlineAttachmentList(sender);
+ return;
+ }
+ var e, i, count, text;
+
+ count = attachments.length;
+ text = "";
+ for (i = 0; i < count; i++) {
+ text = text + attachments[i];
+ text = text + '<br />';
+ }
+
+ e = document.getElementById('compose_attachments_list');
+ e.innerHTML = text;
+ this.showInlineAttachmentList(sender);
+}
+
+function adjustInlineAttachmentListHeight(sender) {
+ var e;
+
+ e = document.getElementById('compose_rightside');
+ if (e.style.display == 'none') return;
+
+ /* need to lower left size first, because left auto-adjusts to right! */
+ xHeight('compose_attachments_list', 10);
+
+ var leftHeight, rightHeaderHeight;
+ leftHeight = xHeight('compose_leftside');
+ rightHeaderHeight = xHeight('compose_attachments_header');
+ xHeight('compose_attachments_list', (leftHeight - rightHeaderHeight) - 10);
+}
+
+function hideInlineAttachmentList(sender) {
+ var e;
+
+// xVisibility('compose_rightside', false);
+ e = document.getElementById('compose_rightside');
+ e.style.display = 'none';
+ e = document.getElementById('compose_leftside');
+ e.style.width = "100%";
+}
+
/* addressbook helpers */
function openAnais(sender) {