]> err.no Git - scalable-opengroupware.org/commitdiff
Added "AnaisUI" bundle, new formatter for SOGoUI, various enhancements
authorznek <znek@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Tue, 10 Aug 2004 16:00:30 +0000 (16:00 +0000)
committerznek <znek@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Tue, 10 Aug 2004 16:00:30 +0000 (16:00 +0000)
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@168 d1b88da0-ebda-0310-925b-ed51d893ca5b

26 files changed:
SOGo/Main/ChangeLog
SOGo/Main/French.lproj/Locale
SOGo/Main/Version
SOGo/SOGo.xcode/project.pbxproj
SOGo/UI/Anais/AnaisSelector.m [new file with mode: 0644]
SOGo/UI/Anais/AnaisSelector.wox [new file with mode: 0644]
SOGo/UI/Anais/AnaisUIProduct.m [new file with mode: 0644]
SOGo/UI/Anais/ChangeLog [new file with mode: 0644]
SOGo/UI/Anais/GNUmakefile [new file with mode: 0644]
SOGo/UI/Anais/GNUmakefile.postamble [new file with mode: 0644]
SOGo/UI/Anais/GNUmakefile.preamble [new file with mode: 0644]
SOGo/UI/Anais/Version [new file with mode: 0644]
SOGo/UI/Anais/bundle-info.plist [new file with mode: 0644]
SOGo/UI/Anais/product.plist [new file with mode: 0644]
SOGo/UI/ChangeLog
SOGo/UI/GNUmakefile
SOGo/UI/SOGoUI/ChangeLog
SOGo/UI/SOGoUI/GNUmakefile
SOGo/UI/SOGoUI/SOGoDateFormatter.h [new file with mode: 0644]
SOGo/UI/SOGoUI/SOGoDateFormatter.m [new file with mode: 0644]
SOGo/UI/SOGoUI/Version
SOGo/UI/Scheduler/ChangeLog
SOGo/UI/Scheduler/English.lproj/default.strings
SOGo/UI/Scheduler/UIxAppointmentEditor.m
SOGo/UI/Scheduler/UIxAppointmentEditor.wox
SOGo/UI/Scheduler/Version

index 723de465817a6ccc05e6a6014e21d948260cd487..1f8607d0f5959fb227d170b81792740c9ea328c8 100644 (file)
@@ -1,3 +1,7 @@
+2004-08-10  Marcus Mueller  <znek@mulle-kybernetik.com>
+
+       * French.lproj/Locale: minor changes to capitalization (v0.9.5)
+
 2004-07-27  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * sogod.m: added static SoRootURL to context (v0.9.4)
index af3faccc31e38972ff7f1bbd55c1f65a03f3ed38..70b8a2f64afb3013d1162b933626a13c1da7104f 100644 (file)
        NSHourNameDesignations = ((0, minuit), (12, midi), (10, matin), (14, "après-midi"), (19, soir));
        NSInternationalCurrencyString = EUR; /* ISO 4217 */
        NSLaterTimeDesignations = (prochain, prochaine, prochains, prochaines);
-       NSMonthNameArray = (janvier, "février", mars, avril, mai, juin, juillet, "août", septembre, octobre, novembre, "décembre");
+       NSMonthNameArray = (Janvier, "Février", Mars, Avril, Mai, Juin, Juillet, "Août", Septembre, Octobre, Novembre, "Décembre");
        NSNextDayDesignations = (demain);
        NSNextNextDayDesignations = ("après-demain");
        NSPriorDayDesignations = (hier);
        NSShortDateFormatString = "%e/%m/%y";
-       NSShortMonthNameArray = (jan, "fév", mar, avr, mai, jun, jul, "aoû", sep, oct, nov, "déc");
+       NSShortMonthNameArray = (Jan, "Fév", Mar, Avr, Mai, Jun, Jul, "Aoû", Sep, Oct, Nov, "Déc");
        NSShortTimeDateFormatString = "%e/%m/%y %1H:%M";
        NSShortWeekDayNameArray = (Dim, Lun, Mar, Mer, Jeu, Ven, Sam);
        NSThisDayDesignations = ("aujourd'hui");
        NSThousandsSeparator = " "; /* space */
        NSTimeDateFormatString = "%A %e %B %Y %1H:%M:%S %Z";
        NSTimeFormatString = "%1H:%M:%S"; /* no space before and after colons*/
-       NSWeekDayNameArray = (dimanche, lundi, mardi, mercredi, jeudi, vendredi, samedi);
+       NSWeekDayNameArray = (Dimanche, Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi);
        NSYearMonthWeekDesignations = ("année", mois, semaine);
        NSAMPMDesignation = (AM, PM);
        NSPositiveCurrencyFormatString = "9,999.00$";
index 749d66dc7109fb3f49932aae8e0c044ad7d4e6c0..6b227f7e3b266ef9cc7a5dc1fd384537da8702c7 100644 (file)
@@ -1,3 +1,3 @@
 # $Id$
 
-SUBMINOR_VERSION:=4
+SUBMINOR_VERSION:=5
index d86474ffa0645f03f85ee0b641e0e19822cce3ee..5116ad7cbb3afd512653e892cb505fd69a331cc7 100644 (file)
                        refType = 4;
                        sourceTree = "<group>";
                };
+               AD07123606C904C900A9EEF4 = {
+                       children = (
+                               AD07137606C926BF00A9EEF4,
+                               AD07123706C904C900A9EEF4,
+                               AD07123C06C904C900A9EEF4,
+                               AD07123D06C904C900A9EEF4,
+                               AD07124306C904E500A9EEF4,
+                               AD07124006C904DE00A9EEF4,
+                               AD07124606C9050700A9EEF4,
+                       );
+                       isa = PBXGroup;
+                       path = Anais;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD07123706C904C900A9EEF4 = {
+                       fileEncoding = 4;
+                       isa = PBXFileReference;
+                       lastKnownFileType = text.plist;
+                       path = "bundle-info.plist";
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD07123806C904C900A9EEF4 = {
+                       fileEncoding = 4;
+                       isa = PBXFileReference;
+                       lastKnownFileType = sourcecode.c.objc;
+                       path = AnaisUIProduct.m;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD07123906C904C900A9EEF4 = {
+                       explicitFileType = sourcecode.make;
+                       fileEncoding = 4;
+                       isa = PBXFileReference;
+                       path = GNUmakefile;
+                       refType = 4;
+                       sourceTree = "<group>";
+                       tabWidth = 8;
+               };
+               AD07123A06C904C900A9EEF4 = {
+                       explicitFileType = sourcecode.make;
+                       fileEncoding = 4;
+                       isa = PBXFileReference;
+                       path = GNUmakefile.postamble;
+                       refType = 4;
+                       sourceTree = "<group>";
+                       tabWidth = 8;
+               };
+               AD07123B06C904C900A9EEF4 = {
+                       explicitFileType = sourcecode.make;
+                       fileEncoding = 4;
+                       isa = PBXFileReference;
+                       path = GNUmakefile.preamble;
+                       refType = 4;
+                       sourceTree = "<group>";
+                       tabWidth = 8;
+               };
+               AD07123C06C904C900A9EEF4 = {
+                       fileEncoding = 4;
+                       isa = PBXFileReference;
+                       lastKnownFileType = text.plist;
+                       path = product.plist;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD07123D06C904C900A9EEF4 = {
+                       fileEncoding = 4;
+                       isa = PBXFileReference;
+                       lastKnownFileType = text;
+                       path = Version;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD07124006C904DE00A9EEF4 = {
+                       children = (
+                               AD07123806C904C900A9EEF4,
+                       );
+                       isa = PBXGroup;
+                       name = Classes;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD07124306C904E500A9EEF4 = {
+                       children = (
+                               AD07123906C904C900A9EEF4,
+                               AD07123B06C904C900A9EEF4,
+                               AD07123A06C904C900A9EEF4,
+                       );
+                       isa = PBXGroup;
+                       name = Makefiles;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD07124606C9050700A9EEF4 = {
+                       children = (
+                               AD07124C06C9052700A9EEF4,
+                               AD07124B06C9052700A9EEF4,
+                       );
+                       isa = PBXGroup;
+                       name = Components;
+                       path = "";
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD07124B06C9052700A9EEF4 = {
+                       fileEncoding = 4;
+                       isa = PBXFileReference;
+                       lastKnownFileType = text.xml;
+                       path = AnaisSelector.wox;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD07124C06C9052700A9EEF4 = {
+                       fileEncoding = 4;
+                       isa = PBXFileReference;
+                       lastKnownFileType = sourcecode.c.objc;
+                       path = AnaisSelector.m;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD0712CA06C917A600A9EEF4 = {
+                       fileEncoding = 4;
+                       isa = PBXFileReference;
+                       lastKnownFileType = sourcecode.c.h;
+                       path = SOGoDateFormatter.h;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD0712CB06C917A600A9EEF4 = {
+                       fileEncoding = 4;
+                       isa = PBXFileReference;
+                       lastKnownFileType = sourcecode.c.objc;
+                       path = SOGoDateFormatter.m;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
+               AD07137606C926BF00A9EEF4 = {
+                       fileEncoding = 4;
+                       isa = PBXFileReference;
+                       lastKnownFileType = text;
+                       path = ChangeLog;
+                       refType = 4;
+                       sourceTree = "<group>";
+               };
                AD152B6F06AC159A002375D2 = {
                        fileEncoding = 4;
                        isa = PBXFileReference;
                                AD6BCF0F069D77E9003664CD,
                                AD6BCF10069D77E9003664CD,
                                AD6BCF11069D77E9003664CD,
+                               AD0712CA06C917A600A9EEF4,
+                               AD0712CB06C917A600A9EEF4,
                        );
                        isa = PBXGroup;
                        path = SOGoUI;
                        usesTabs = 1;
                };
                AD6BCF0E069D77E9003664CD = {
+                       explicitFileType = sourcecode.make;
                        fileEncoding = 4;
                        isa = PBXFileReference;
-                       lastKnownFileType = text;
                        path = GNUmakefile;
                        refType = 4;
                        sourceTree = "<group>";
+                       tabWidth = 8;
                };
                AD6BCF0F069D77E9003664CD = {
+                       explicitFileType = sourcecode.make;
                        fileEncoding = 4;
                        isa = PBXFileReference;
-                       lastKnownFileType = text;
                        path = GNUmakefile.preamble;
                        refType = 4;
                        sourceTree = "<group>";
+                       tabWidth = 8;
                };
                AD6BCF10069D77E9003664CD = {
                        fileEncoding = 4;
                                E87207E90692E3D20099CBBD,
                                E87206C20692E3D10099CBBD,
                                E87207E80692E3D20099CBBD,
+                               AD6BCEE5069D77E9003664CD,
                                E87206C30692E3D10099CBBD,
                                E87207EA0692E3D20099CBBD,
-                               AD6BCEE5069D77E9003664CD,
+                               AD07123606C904C900A9EEF4,
                        );
                        isa = PBXGroup;
                        path = UI;
                E8720A0C0692E4940099CBBD = {
                        children = (
                                E87208930692E3D30099CBBD,
-                               E87208940692E3D30099CBBD,
                                E87208950692E3D30099CBBD,
+                               E87208940692E3D30099CBBD,
                        );
                        isa = PBXGroup;
                        name = Makefiles;
diff --git a/SOGo/UI/Anais/AnaisSelector.m b/SOGo/UI/Anais/AnaisSelector.m
new file mode 100644 (file)
index 0000000..e12bb4e
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+  Copyright (C) 2000-2004 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.
+*/
+// $Id$
+
+
+#include <SOGoUI/UIxComponent.h>
+
+
+@interface AnaisSelector : UIxComponent
+{
+}
+
+@end
+
+
+@implementation AnaisSelector
+
+@end
diff --git a/SOGo/UI/Anais/AnaisSelector.wox b/SOGo/UI/Anais/AnaisSelector.wox
new file mode 100644 (file)
index 0000000..edf773e
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version='1.0' standalone='yes'?>
+
+<form 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"
+      name="anais">
+  <p>
+    <a href="javascript:openAnaisBrowserWindow()">show tree</a>
+  </p>
+  <p>
+    <text name="choice"
+          size="60"
+    /><br />
+    <var:multiselection const:name="list"
+                        const:style="width:380px"
+                        const:size="8"
+    />
+  </p>
+</form>
diff --git a/SOGo/UI/Anais/AnaisUIProduct.m b/SOGo/UI/Anais/AnaisUIProduct.m
new file mode 100644 (file)
index 0000000..0c1189d
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+  Copyright (C) 2000-2004 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.
+*/
+// $Id$
+
+#import <Foundation/NSObject.h>
+
+@interface AnaisUIProduct : NSObject
+{
+}
+
+@end
+
+@implementation AnaisUIProduct
+@end /* AnaisUIProduct */
diff --git a/SOGo/UI/Anais/ChangeLog b/SOGo/UI/Anais/ChangeLog
new file mode 100644 (file)
index 0000000..f9f61ce
--- /dev/null
@@ -0,0 +1,3 @@
+2004-08-10  Marcus Mueller  <znek@mulle-kybernetik.com>
+
+       * ChangeLog: created.
diff --git a/SOGo/UI/Anais/GNUmakefile b/SOGo/UI/Anais/GNUmakefile
new file mode 100644 (file)
index 0000000..a6d97f8
--- /dev/null
@@ -0,0 +1,29 @@
+# $Id: GNUmakefile,v 1.2 2003/12/09 17:38:42 helge Exp $
+
+include $(GNUSTEP_MAKEFILES)/common.make
+
+BUNDLE_NAME        = AnaisUI
+BUNDLE_EXTENSION   = .SOGo
+BUNDLE_INSTALL_DIR = $(GNUSTEP_USER_ROOT)/Library/SOGo
+
+AnaisUI_PRINCIPAL_CLASS = AnaisUIProduct
+
+AnaisUI_OBJC_FILES +=          \
+       AnaisUIProduct.m        \
+       AnaisSelector.m         \
+
+
+AnaisUI_RESOURCE_FILES +=      \
+       Version                 \
+       product.plist           \
+       AnaisSelector.wox       \
+
+
+ADDITIONAL_INCLUDE_DIRS += \
+       -I.. -I../.. -I../../..
+
+# make
+
+-include GNUmakefile.preamble
+include $(GNUSTEP_MAKEFILES)/bundle.make
+-include GNUmakefile.postamble
diff --git a/SOGo/UI/Anais/GNUmakefile.postamble b/SOGo/UI/Anais/GNUmakefile.postamble
new file mode 100644 (file)
index 0000000..3986bcc
--- /dev/null
@@ -0,0 +1,17 @@
+# $Id: GNUmakefile.postamble,v 1.1 2004/05/12 14:45:56 helge Exp $
+
+validate-wox:
+       xmllint --noout *.wox
+
+before-all :: validate-wox
+
+
+ifneq ($(GNUSTEP_BUILD_DIR),)
+after-all ::
+       @(cp bundle-info.plist \
+         $(GNUSTEP_BUILD_DIR)/$(BUNDLE_NAME)$(BUNDLE_EXTENSION))
+else
+after-all ::
+       @(cd $(BUNDLE_NAME)$(BUNDLE_EXTENSION);\
+         cp ../bundle-info.plist .)
+endif
diff --git a/SOGo/UI/Anais/GNUmakefile.preamble b/SOGo/UI/Anais/GNUmakefile.preamble
new file mode 100644 (file)
index 0000000..7ca0676
--- /dev/null
@@ -0,0 +1,15 @@
+# $Id$
+
+ifneq ($(GNUSTEP_BUILD_DIR),)
+       RELBUILD_DIR_libSOGoUI = \
+               $(GNUSTEP_BUILD_DIR)/../SOGoUI/$(GNUSTEP_OBJ_DIR_NAME)
+else
+       RELBUILD_DIR_libSOGoUI = ../SOGoUI/$(GNUSTEP_OBJ_DIR)
+endif
+
+AnaisUI_LIB_DIRS += -L$(RELBUILD_DIR_libSOGoUI)
+
+AnaisUI_BUNDLE_LIBS += \
+       -lNGObjWeb -lNGScripting \
+       -lNGMime -lNGStreams -lNGExtensions -lEOControl \
+       -lXmlRpc -lDOM -lSaxObjC -lSOGoUI
diff --git a/SOGo/UI/Anais/Version b/SOGo/UI/Anais/Version
new file mode 100644 (file)
index 0000000..399c230
--- /dev/null
@@ -0,0 +1,3 @@
+# $Id: Version 165 2004-08-05 17:55:50Z znek $
+
+SUBMINOR_VERSION:=0
diff --git a/SOGo/UI/Anais/bundle-info.plist b/SOGo/UI/Anais/bundle-info.plist
new file mode 100644 (file)
index 0000000..050b134
--- /dev/null
@@ -0,0 +1,21 @@
+{
+  "__cvs__" = "$Id: bundle-info.plist,v 1.1 2003/11/24 01:24:40 helge Exp $";
+
+  requires = {
+    bundleManagerVersion = 1;
+    classes = (
+      { name = NSObject;    }
+    );
+  };
+
+  provides = {
+    classes = (
+      { name = AnaisUIProduct;       },
+      { name = AnaisSelector;        },
+    );
+
+    WOComponents = (
+      { name = AnaisSelector;  },
+    );
+  };
+}
diff --git a/SOGo/UI/Anais/product.plist b/SOGo/UI/Anais/product.plist
new file mode 100644 (file)
index 0000000..f58025e
--- /dev/null
@@ -0,0 +1,12 @@
+{
+  requires = ( MAIN );
+
+  publicResources = (
+  );
+  
+  factories = {
+  };
+
+  categories = {
+  };
+}
index 0367a1a4d73401a316bdbbcc71456a520d486dac..e4c0690067a24f56fc0d5b3e94bb4191acfae066 100644 (file)
@@ -1,3 +1,7 @@
+2004-08-10  Marcus Mueller  <znek@mulle-kybernetik.com>
+
+       * Added "Anais" product.
+
 2004-07-07  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * Replaced all occurrences of zidestoreui.css with uix.css
index 23d300c515cd126366c94c024b15b2ca822d7604..182f4ffb85a003b8f06b6771bfad8954c94f16b9 100644 (file)
@@ -6,5 +6,6 @@ SUBPROJECTS = \
        SOGoUI          \
        Common          \
        Scheduler       \
+       Anais           \
 
 include $(GNUSTEP_MAKEFILES)/aggregate.make
index 085bcd121f377323b6fbb5cb269c06d0e68a0636..dd0e9c11f771f645894ad9c9fa2126b7a05495a1 100644 (file)
@@ -1,3 +1,11 @@
+2004-08-10  Marcus Mueller  <znek@mulle-kybernetik.com>
+
+       * v0.9.6
+       
+       * SOGoDateFormatter.[hm]: added fast localizable date formatter.
+
+       * GNUmakefile: added SOGoDateFormatter.[hm]
+
 2004-07-26  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * UIxComponent.m: added "hm" queryParameter to add hour/minute part to
index 32fddf9381616a48987577c0f834912987a90c83..860efb4f82cbcbe15c41c215b720c150ad4fbd75 100644 (file)
@@ -7,11 +7,13 @@ LIBRARY_NAME = libSOGoUI
 libSOGoUI_HEADER_FILES_DIR         = .
 libSOGoUI_HEADER_FILES_INSTALL_DIR = /SOGoUI
 
-libSOGoUI_HEADER_FILES += \
-       UIxComponent.h \
+libSOGoUI_HEADER_FILES +=   \
+       UIxComponent.h      \
+       SOGoDateFormatter.h \
 
-libSOGoUI_OBJC_FILES += \
-       UIxComponent.m \
+libSOGoUI_OBJC_FILES +=     \
+       UIxComponent.m      \
+       SOGoDateFormatter.m \
 
 # make
 
diff --git a/SOGo/UI/SOGoUI/SOGoDateFormatter.h b/SOGo/UI/SOGoUI/SOGoDateFormatter.h
new file mode 100644 (file)
index 0000000..9ec86c3
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+  Copyright (C) 2000-2004 SKYRIX Software AG
+
+  This file is part of OGo
+
+  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.
+*/
+// $Id$
+
+
+#ifndef        __SOGoDateFormatter_H_
+#define        __SOGoDateFormatter_H_
+
+
+#import <Foundation/Foundation.h>
+
+
+@interface SOGoDateFormatter : NSFormatter
+{
+    NSDictionary *locale;
+    SEL formatAction;
+}
+
+- (id)initWithLocale:(NSDictionary *)_locale;
+
+- (void)setISODateFormat;
+- (void)setFullWeekdayNameAndDetails;
+
+- (NSString *)stringForObjectValue:(id)_obj;
+
+@end
+
+#endif /* __SOGoDateFormatter_H_ */
diff --git a/SOGo/UI/SOGoUI/SOGoDateFormatter.m b/SOGo/UI/SOGoUI/SOGoDateFormatter.m
new file mode 100644 (file)
index 0000000..ef1fe97
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+  Copyright (C) 2000-2004 SKYRIX Software AG
+
+  This file is part of OGo
+
+  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.
+*/
+// $Id$
+
+
+#import "SOGoDateFormatter.h"
+#import <NGExtensions/NGExtensions.h>
+
+
+@interface SOGoDateFormatter (PrivateAPI)
+- (NSString *)shortDayOfWeek:(int)_day;
+- (NSString *)fullDayOfWeek:(int)_day;
+- (NSString *)shortMonthOfYear:(int)_month;
+- (NSString *)fullMonthOfYear:(int)_month;
+
+- (NSString *)isoDateFormatForDate:(NSCalendarDate *)_date;
+- (NSString *)fullWeekdayNameAndDetailsForDate:(NSCalendarDate *)_date;
+@end
+
+
+@implementation SOGoDateFormatter
+
+- (id)initWithLocale:(NSDictionary *)_locale {
+    self = [super init];
+    if(self) {
+        ASSIGN(self->locale, _locale);
+        [self setISODateFormat];
+    }
+    return self;
+}
+
+- (void)dealloc {
+    [self->locale release];
+    [super dealloc];
+}
+
+- (void)setISODateFormat {
+    self->formatAction = @selector(isoDateFormatForDate:);
+}
+
+- (void)setFullWeekdayNameAndDetails {
+    self->formatAction = @selector(fullWeekdayNameAndDetailsForDate:);
+}
+
+- (NSString *)stringForObjectValue:(id)_obj {
+    return [self performSelector:self->formatAction
+                      withObject:_obj];
+}
+
+
+/* Helpers */
+
+- (NSString *)shortDayOfWeek:(int)_day {
+    return [[self->locale objectForKey:@"NSShortWeekDayNameArray"]
+                          objectAtIndex:_day];
+}
+
+- (NSString *)fullDayOfWeek:(int)_day {
+    return [[self->locale objectForKey:@"NSWeekDayNameArray"]
+                          objectAtIndex:_day];
+}
+
+- (NSString *)shortMonthOfYear:(int)_month {
+    return [[self->locale objectForKey:@"NSShortMonthNameArray"]
+                          objectAtIndex:_month - 1];
+}
+
+- (NSString *)fullMonthOfYear:(int)_month {
+    return [[self->locale objectForKey:@"NSMonthNameArray"]
+                          objectAtIndex:_month - 1];
+}
+
+
+/* Private API */
+
+- (NSString *)isoDateFormatForDate:(NSCalendarDate *)_date {
+    return [NSString stringWithFormat:@"%d-%02d-%02d",
+        [_date yearOfCommonEra],
+        [_date monthOfYear],
+        [_date dayOfMonth]];
+}
+
+- (NSString *)fullWeekdayNameAndDetailsForDate:(NSCalendarDate *)_date {
+    NSMutableString *desc;
+    
+    desc = [[NSMutableString alloc] init];
+    [desc appendString:[self fullDayOfWeek:[_date dayOfWeek]]];
+    [desc appendString:@", "];
+    [desc appendString:[self isoDateFormatForDate:_date]];
+    [desc appendString:@" "];
+    [desc appendFormat:@"%02d:%02d ",
+        [_date hourOfDay],
+        [_date minuteOfHour]];
+    [desc appendString:[[_date timeZone] name]];
+    return [desc autorelease];
+}
+
+@end
index 86b0e4dd1bb40eae92692079db28ea4a64e5a3ca..0eb47da345be1d4c8ac5a363234ca3f2c77473cb 100644 (file)
@@ -1,5 +1,3 @@
 # $Id$
 
-SUBMINOR_VERSION:=5
-
-# 1.1.0 requires NGObjWeb 4.2.202
+SUBMINOR_VERSION:=6
index b72b6a7a31fb60f75574b0cc898c82ce0065f2f1..eb79c468157a101a345b6924438ab747482f723c 100644 (file)
@@ -1,3 +1,13 @@
+2004-08-10  Marcus Mueller  <znek@mulle-kybernetik.com>
+
+       * v0.9.16
+
+       * UIxAppointmentEditor.wox: pretty printing, use labels where appropriate.
+
+       * UIxAppointmentEditor.m: uses SOGoDateFormatter now.
+
+       * English.lproj/default.strings: added new labels.
+
 2004-08-09  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * v0.9.15
index c80f60854e7791af26dcba2e9e105c6e6f4ca853..396ab895d145eccaad6d51456ff3961fd29cf6d1 100644 (file)
 "printview"     = "printview";
 "proposal"      = "proposal";
 "Calendar"      = "Calendar";
+"Save"          = "Save";
+
+
+/* Appointments */
+
+"Appointment Editor"    = "Appointment Editor";
+"Appointment on"        = "Appointment on";
+"Start time"            = "Start time";
+"End time"              = "End time";
+"Title"                 = "Title";
+"Location"              = "Location";
+"Search participants"   = "Search participants";
+"Participants"          = "Participants";
+"Search resources"      = "Search resources";
+"Resources"             = "Resources";
+
 
 /* calendar modes */
 
index ab9e5196973d7b9cffee0f3d771a27d0730534fa..4cb48e19aba4b4d425e601d420ebae02346b6df2 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "common.h"
 #include <SOGoUI/UIxComponent.h>
+#include <SOGoUI/SOGoDateFormatter.h>
 #include <SOGoLogic/SOGoAppointment.h>
 #include <NGiCal/NGiCal.h>
 
 
 - (NSString *)formattedAptStartTime {
     NSCalendarDate *date;
-    
+    SOGoDateFormatter *fmt;
+    NSString *s;
+
     date = [[[[self appointment] startDate] copy] autorelease];
     [date setTimeZone:[self viewTimeZone]];
-    return [date descriptionWithCalendarFormat:@"%A, %Y-%m-%d %H:%M %Z"];
+    fmt = [[SOGoDateFormatter alloc] initWithLocale:[self locale]];
+    [fmt setFullWeekdayNameAndDetails];
+    s = [fmt stringForObjectValue:date];
+    [fmt release];
+    return s;
 }
 
 - (BOOL)isNewAppointment {
index 0aaaf19e566b34d77da195bb585b0dff1a984317..edf75198a1ebd30e1f1b0e1f6f0bac4d3e71ca02 100644 (file)
                xmlns:var="http://www.skyrix.com/od/binding"
                xmlns:const="http://www.skyrix.com/od/constant"
                xmlns:uix="OGo:uix"
+               xmlns:label="OGo:label"
                className="UIxPageFrame"
                title="name"
 >
-
   <form href="save">
-  <table cellspacing="0" cellpadding="5" width="100%">
-  <tr>
-  <td>
-  <table cellpadding="0" cellspacing="0" width="100%">
-  <tr>
-  <td width="5"/>
-  <td class="window_label">Appointment Editor</td>
-  <td width="36" align="right" valign="center">
-  <var:component className="UIxWinClose" />
-  </td>
-  </tr>
-  </table>
-  </td>
-  </tr>
-
-  <tr>
-    <td>
-        <table border="0" cellpadding="2" width="100%" 
-               cellspacing="0" bgcolor="#e8e8e0">
-          <tr>
-            <td align="left" colspan="2">
-              <span class="aptview_title">Appointment on 
-                <var:string value="formattedAptStartTime" /></span>
-            </td>
-          </tr>
-          <tr valign="top">
-            <td align="right" width="15%">
-                <span class="aptview_text">Start time:</span>
-            </td>
-            <td align="left" bgcolor="#FFFFF0">
+    <table cellspacing="0" cellpadding="5" width="100%">
+      <tr>
+        <td>
+          <table cellpadding="0" cellspacing="0" width="100%">
+            <tr>
+              <td width="5"/>
+              <td class="window_label">
+                <var:string label:value="Appointment Editor" /></td>
+              <td width="36" align="right" valign="center">
+                <var:component className="UIxWinClose" />
+              </td>
+            </tr>
+          </table>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <table border="0"
+                 cellpadding="2"
+                 width="100%"
+                 cellspacing="0"
+                 bgcolor="#e8e8e0"
+          >
+            <tr>
+              <td align="left" colspan="2">
+                <span class="aptview_title">
+                  <var:string label:value="Appointment on" /> 
+                  <var:string value="formattedAptStartTime" /></span>
+              </td>
+            </tr>
+            <tr valign="top">
+              <td align="right" width="15%">
+                <span class="aptview_text">
+                  <var:string label:value="Start time" />:
+                </span>
+              </td>
+              <td align="left" bgcolor="#FFFFF0">
                 <span class="aptview_text">
                   <input type="text" name="startDate" 
                          var:value="appointment.startDate" 
                          const:dateformat="%Y-%m-%d %H:%M %Z" 
                          const:size="40" />
                 </span>
-            </td>
-          </tr>
-          <tr valign="top">
-            <td align="right" width="15%">
-                <span class="aptview_text">End time:</span>
-            </td>
-            <td align="left" bgcolor="#FFFFF0">
+              </td>
+            </tr>
+            <tr valign="top">
+              <td align="right" width="15%">
+                <span class="aptview_text">
+                  <var:string label:value="End time" />:
+                </span>
+              </td>
+              <td align="left" bgcolor="#FFFFF0">
                 <span class="aptview_text">
                   <input type="text" name="endDate" 
                          var:value="appointment.endDate" 
                          const:dateformat="%Y-%m-%d %H:%M %Z" 
                          const:size="40" />
                 </span>
-            </td>
-          </tr>
-          <tr valign="top">
-            <td align="right" width="15%">
-                <span class="aptview_text">Title:</span>
-            </td>
-            <td align="left" bgcolor="#FFFFF0">
+              </td>
+            </tr>
+            <tr valign="top">
+              <td align="right" width="15%">
+                <span class="aptview_text">
+                  <var:string label:value="Title" />:
+                </span>
+              </td>
+              <td align="left" bgcolor="#FFFFF0">
+                <span class="aptview_text">
+                  <input type="text"
+                         name="summary"
+                         var:value="appointment.summary"
+                         const:size="40"
+                  />
+                </span>
+              </td>
+            </tr>
+            <tr valign="top">
+              <td align="right" width="15%">
                 <span class="aptview_text">
-                  <input type="text" name="summary" var:value="appointment.summary" const:size="40" />
+                  <var:string label:value="Location" />:
+                </span>
+              </td>
+              <td align="left" bgcolor="#FFFFF0">
+                <span class="aptview_text">
+                  <input type="text"
+                         name="location"
+                         var:value="appointment.location"
+                         const:size="40"
+                  />
+                </span>
+              </td>
+            </tr>
+          </table>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <table border="0"
+                 cellpadding="2"
+                 width="100%"
+                 cellspacing="0"
+                 bgcolor="#e8e8e0"
+          >
+            <tr>
+              <td align="left" colspan="2">
+                <span class="aptview_title">
+                  <var:string label:value="Search participants" /> 
+                </span>
+              </td>
+            </tr>
+            <tr valign="top">
+              <td align="right" width="15%">
+                <span class="aptview_text">
+                  <var:string label:value="Participants" />:</span>
+              </td>
+              <td align="left" bgcolor="#FFFFF0">
+                <!--<var:component className="AnaisSelector"
+                               label:title="Search in Anais"
+                />
+                <br />
+                -->
+                <span class="aptview_text">
+                  <textarea name="participants"
+                            var:value="participants"
+                            cols="40"
+                            rows="5"
+                  />
+                </span>
+              </td>
+            </tr>
+          </table>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <table border="0"
+                 cellpadding="2"
+                 width="100%"
+                 cellspacing="0"
+                 bgcolor="#e8e8e0"
+          >
+            <tr>
+              <td align="left" colspan="2">
+                <span class="aptview_title">
+                  <var:string label:value="Search resources" />
                 </span>
-            </td>
-          </tr>
-          <tr valign="top">
-            <td align="right" width="15%">
-                <span class="aptview_text">Location:</span>
-            </td>
-            <td align="left" bgcolor="#FFFFF0">
+              </td>
+            </tr>
+            <tr valign="top">
+              <td align="right" width="15%">
                 <span class="aptview_text">
-                  <input type="text" name="location" var:value="appointment.location" const:size="40"/>
+                  <var:string label:value="Resources" />:
                 </span>
-            </td>
-          </tr>
-        </table>
-    </td>
-  </tr>
-
-  <tr>
-    <td>
-        <table border="0" cellpadding="2" width="100%" cellspacing="0" bgcolor="#e8e8e0">
-          <tr>
-            <td align="left" colspan="2">
-              <span class="aptview_title">Search participants</span>
-            </td>
-          </tr>
-          <tr valign="top">
-            <td align="right" width="15%">
-                <span class="aptview_text">Participants:</span>
-            </td>
-            <td align="left" bgcolor="#FFFFF0">
+              </td>
+              <td align="left" bgcolor="#FFFFF0">
                 <span class="aptview_text">
-                  <textarea name="participants" var:value="participants" cols="40" rows="5" />
+                  <textarea name="resources"
+                            var:value="resources"
+                            cols="40"
+                            rows="5"
+                  />
                 </span>
-            </td>
-          </tr>
-        </table>
-    </td>
-  </tr>
-
-  <tr>
-    <td>
-        <input type="submit" value="Save" />
-        <input type="hidden" name="ical" var:value="iCalString" />
-    </td>
-  </tr>
-  </table>
+              </td>
+            </tr>
+          </table>
+        </td>
+      </tr>
+      <tr>
+        <td>
+            <input type="submit" label:value="Save" />
+            <input type="hidden" name="ical" var:value="iCalString" />
+        </td>
+      </tr>
+    </table>
   </form>
   <!-- -->
   <hr />
index cf9e5c1262bbe256db9dcbe38538f8ad07693b99..27f42dca521c102631a68b11d5a0fab575d2dd28 100644 (file)
@@ -1,3 +1,3 @@
 # $Id$
 
-SUBMINOR_VERSION:=15
+SUBMINOR_VERSION:=16