]> err.no Git - scalable-opengroupware.org/commitdiff
Added inline attachment view to UIxMailEditor
authorznek <znek@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 21 Jul 2005 11:29:55 +0000 (11:29 +0000)
committerznek <znek@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 21 Jul 2005 11:29:55 +0000 (11:29 +0000)
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@868 d1b88da0-ebda-0310-925b-ed51d893ca5b

12 files changed:
SOGo/SOGo.xcodeproj/project.pbxproj
SOGo/UI/MailerUI/ChangeLog
SOGo/UI/MailerUI/UIxMailEditor.m
SOGo/UI/MailerUI/Version
SOGo/UI/Templates/ChangeLog
SOGo/UI/Templates/MailerUI/UIxMailEditor.wox
SOGo/UI/Templates/MailerUI/UIxMailEditorAttach.wox
SOGo/UI/Templates/MailerUI/UIxMailToSelection.wox
SOGo/UI/WebServerResources/UIxMailEditorAttach.js [new file with mode: 0644]
SOGo/UI/WebServerResources/UIxMailToSelection.js
SOGo/UI/WebServerResources/mailer.css
SOGo/UI/WebServerResources/mailer.js

index 57d7492416248a6439b1c87f1966c2384d8b93d3..235c08e23b645a11cfb2b45fecbfbefed53b6a2c 100644 (file)
                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 */,
                        );
index d36d13e10a50a3bfa5eeba63e01160ed451de390..81596c04dd450ed9e68e7616b740e8d8ce756e7f 100644 (file)
@@ -1,3 +1,8 @@
+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)
index 26af9774846cc75eb15c636e2a2d6843a794b236..fc513515d589830eca461463ca8494670e6823b6 100644 (file)
   NSArray  *fromEMails;
   NSString *from;
   SOGoMailFolder *sentFolder;
+
+  /* these are for the inline attachment list */
+  NSString *attachmentName;
+  NSArray  *attachmentNames;
 }
 
 @end
@@ -95,6 +99,9 @@ static NSArray      *infoKeys            = nil;
   [self->to      release];
   [self->cc      release];
   [self->bcc     release];
+  
+  [self->attachmentName  release];
+  [self->attachmentNames release];
   [super dealloc];
 }
 
@@ -158,6 +165,13 @@ static NSArray      *infoKeys            = nil;
   return NO;
 }
 
+- (void)setAttachmentName:(NSString *)_attachmentName {
+  ASSIGN(self->attachmentName, _attachmentName);
+}
+- (NSString *)attachmentName {
+  return self->attachmentName;
+}
+
 /* from addresses */
 
 - (NSArray *)fromEMails {
@@ -296,6 +310,34 @@ static NSArray      *infoKeys            = nil;
                      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"];
 }
index 5db4900626c1198e7e78f0f1e6de3ba631abf999..b893c12f4bdb48e776ce5e5fcb0be08a2f6ea294 100644 (file)
@@ -1,6 +1,6 @@
 # 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
index d016dba3d5c358506b3c093563b346066d8c7141..15a1b28d8ba906693203fd7ad788d0fce4a4d397 100644 (file)
@@ -1,5 +1,14 @@
 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>
index a90dfbce0fc3ff57631408cd528f5032fbd6c69a..8bef375fafab6d39a473f7027edaa6019d0a602a 100644 (file)
     </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" />
index fb002ce2dc5c794aba219fe425e719f68fc9ef18..56192f7b58ae8155693092f86689dd1caaa49d21 100644 (file)
     <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>
@@ -84,6 +93,9 @@
             </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>
index 63fccb403edbb0ded6fbb857a32c9b63149f690f..fc9754825524a8974ade13fe86e51bb090c1c842 100644 (file)
@@ -53,9 +53,9 @@
       </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
diff --git a/SOGo/UI/WebServerResources/UIxMailEditorAttach.js b/SOGo/UI/WebServerResources/UIxMailEditorAttach.js
new file mode 100644 (file)
index 0000000..8fbca8c
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ 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;
+}
index 8a917e5edc3e67175968668b6b03b6939c798091..1966931bac547fb0830d0d37ad5a65a808293770 100644 (file)
@@ -118,6 +118,7 @@ function fancyAddRow(shouldEdit, text) {
     input.focus();
     input.select();
   }
+  this.adjustInlineAttachmentListHeight(this);
 }
 
 function addressFieldGotFocus(sender) {
@@ -147,6 +148,7 @@ function removeLastEditedRowIfEmpty() {
   table = this.getTable();
   senderRow = this.findRowWithIndex(idx);
   table.removeChild(senderRow);
+  this.adjustInlineAttachmentListHeight(this);
 }
 
 function findAddressWithIndex(idx) {
index 25e85643762b0901ac3334d4d332ca76836c7cf0..122e1155f430e9bb89b67acbf7b5835a9c54a3cf 100644 (file)
@@ -413,6 +413,13 @@ pre.mailer_plaincontent {
 div#compose_panel div {
   padding: 2px;
 }
+td#compose_leftside {
+  vertical-align:   top;
+}
+
+td#compose_rightside {
+  vertical-align: top;
+}
 
 div#compose_fromline {
 }
@@ -426,6 +433,19 @@ div#compose_internetmarker {
   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;
index 057f8aea652e583d7ce089a97c2a5189c3bb7680..c41f9a50b46ca072a719a25e41b40ab53cb22b01 100644 (file)
@@ -150,6 +150,64 @@ function clickedEditorDelete(sender) {
   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) {