From 219ffc26210dcc8b83cb64733091c56b3bfa0060 Mon Sep 17 00:00:00 2001 From: wolfgang Date: Wed, 3 Jan 2007 16:07:03 +0000 Subject: [PATCH] initial sync git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1005 d1b88da0-ebda-0310-925b-ed51d893ca5b --- ChangeLog | 1784 ++++ GNUmakefile | 1 + Main/{ChangeLog => ChangeLog.upstream} | 0 Main/GNUmakefile.preamble | 2 +- Main/SOGo.m | 40 +- Main/SOGoProductLoader.m | 2 +- Main/sogod.m | 20 +- Misc/WebUI/Application.h | 38 - Misc/WebUI/Application.m | 38 - Misc/WebUI/COPYING | 482 - Misc/WebUI/COPYRIGHT | 4 - Misc/WebUI/ChangeLog | 13 - Misc/WebUI/DirectAction.h | 38 - Misc/WebUI/DirectAction.m | 29 - Misc/WebUI/English.lproj/InfoPlist.strings | Bin 528 -> 0 bytes Misc/WebUI/GNUmakefile | 33 - Misc/WebUI/GNUmakefile.preamble | 8 - Misc/WebUI/Info.plist | 26 - Misc/WebUI/Lori.icns | Bin 42190 -> 0 bytes Misc/WebUI/NGExtensions/GNUmakefile | 18 - Misc/WebUI/NGExtensions/NGLogging/ChangeLog | 17 - Misc/WebUI/NGExtensions/NGLogging/GNUmakefile | 30 - .../NGExtensions/NGLogging/NGLogAppender.h | 51 - .../NGExtensions/NGLogging/NGLogAppender.m | 66 - .../NGLogging/NGLogConsoleAppender.h | 38 - .../NGLogging/NGLogConsoleAppender.m | 34 - .../WebUI/NGExtensions/NGLogging/NGLogEvent.h | 47 - .../WebUI/NGExtensions/NGLogging/NGLogEvent.m | 56 - .../NGLogging/NGLogSyslogAppender.h | 43 - .../NGLogging/NGLogSyslogAppender.m | 114 - Misc/WebUI/NGExtensions/NGLogging/NGLogger.h | 49 - Misc/WebUI/NGExtensions/NGLogging/NGLogger.m | 111 - Misc/WebUI/NGExtensions/NGLogging/NGLogging.h | 42 - .../NGLogging/NSObject+ExtendedLogging.h | 63 - .../NGLogging/NSObject+ExtendedLogging.m | 128 - Misc/WebUI/NOTES | 15 - Misc/WebUI/PROJECTLEAD | 3 - Misc/WebUI/README | 24 - Misc/WebUI/Session.h | 38 - Misc/WebUI/Session.m | 38 - Misc/WebUI/TODO | 0 Misc/WebUI/Version | 15 - Misc/WebUI/WebServerResources/favicon.ico | Bin 3262 -> 0 bytes Misc/WebUI/WebUI.xcode/project.pbxproj | 952 -- Misc/WebUI/WebUI_Prefix.pch | 9 - Misc/WebUI/WebUI_main.m | 35 - Misc/WebUI/common.h | 33 - Misc/WebUI/version.plist | 16 - Misc/WebUI/wox-cheat-sheet.txt | 50 - Misc/ZideStore/UI-X/ChangeLog | 208 - Misc/ZideStore/UI-X/Common/CommonUIProduct.m | 34 - Misc/ZideStore/UI-X/Common/GNUmakefile | 82 - .../UI-X/Common/GNUmakefile.postamble | 17 - .../UI-X/Common/GNUmakefile.preamble | 16 - Misc/ZideStore/UI-X/Common/UIxAppFrame.m | 11 - Misc/ZideStore/UI-X/Common/UIxAppFrame.wox | 44 - Misc/ZideStore/UI-X/Common/UIxAppHeader.m | 11 - Misc/ZideStore/UI-X/Common/UIxAppHeader.wox | 32 - Misc/ZideStore/UI-X/Common/UIxAppNavView.m | 104 - Misc/ZideStore/UI-X/Common/UIxAppNavView.wox | 10 - Misc/ZideStore/UI-X/Common/UIxAppNavigation.m | 11 - .../UI-X/Common/UIxAppNavigation.wox | 85 - Misc/ZideStore/UI-X/Common/UIxComponent.h | 55 - Misc/ZideStore/UI-X/Common/UIxComponent.m | 168 - Misc/ZideStore/UI-X/Common/UIxElemBuilder.m | 86 - Misc/ZideStore/UI-X/Common/UIxPageFrame.m | 44 - Misc/ZideStore/UI-X/Common/UIxPageFrame.wox | 308 - Misc/ZideStore/UI-X/Common/UIxTabItem.m | 475 - Misc/ZideStore/UI-X/Common/UIxTabView.h | 134 - Misc/ZideStore/UI-X/Common/UIxTabView.m | 819 -- Misc/ZideStore/UI-X/Common/UIxWinClose.m | 37 - Misc/ZideStore/UI-X/Common/UIxWinClose.wox | 6 - Misc/ZideStore/UI-X/Common/Version | 5 - Misc/ZideStore/UI-X/Common/bundle-info.plist | 40 - Misc/ZideStore/UI-X/Common/calendar.css | 189 - Misc/ZideStore/UI-X/Common/common.h | 155 - Misc/ZideStore/UI-X/Common/images/OGoLogo.gif | Bin 2047 -> 0 bytes .../UI-X/Common/images/box_botleft.gif | Bin 100 -> 0 bytes .../UI-X/Common/images/box_botright.gif | Bin 102 -> 0 bytes .../UI-X/Common/images/box_bottom.gif | Bin 43 -> 0 bytes .../ZideStore/UI-X/Common/images/box_left.gif | Bin 47 -> 0 bytes .../UI-X/Common/images/box_right.gif | Bin 47 -> 0 bytes Misc/ZideStore/UI-X/Common/images/box_top.gif | Bin 43 -> 0 bytes .../UI-X/Common/images/box_topleft.gif | Bin 102 -> 0 bytes .../UI-X/Common/images/box_topright.gif | Bin 101 -> 0 bytes .../UI-X/Common/images/closewindow.gif | Bin 96 -> 0 bytes .../UI-X/Common/images/corner_right.gif | Bin 49 -> 0 bytes .../UI-X/Common/images/line_left.gif | Bin 264 -> 0 bytes .../UI-X/Common/images/line_right.gif | Bin 262 -> 0 bytes .../UI-X/Common/images/line_stretch.gif | Bin 234 -> 0 bytes .../UI-X/Common/images/menu_logo_top.gif | Bin 2047 -> 0 bytes Misc/ZideStore/UI-X/Common/images/tab_.gif | Bin 127 -> 0 bytes .../UI-X/Common/images/tab_selected.gif | Bin 127 -> 0 bytes Misc/ZideStore/UI-X/Common/product.plist | 47 - Misc/ZideStore/UI-X/Common/zidestoreui.css | 199 - Misc/ZideStore/UI-X/GNUmakefile | 9 - Misc/ZideStore/UI-X/Scheduler/COPYING | 482 - Misc/ZideStore/UI-X/Scheduler/COPYRIGHT | 4 - Misc/ZideStore/UI-X/Scheduler/GNUmakefile | 66 - .../UI-X/Scheduler/GNUmakefile.postamble | 17 - .../UI-X/Scheduler/GNUmakefile.preamble | 17 - Misc/ZideStore/UI-X/Scheduler/NOTES | 52 - .../UI-X/Scheduler/SchedulerUIProduct.m | 34 - .../UI-X/Scheduler/UIxAppointmentEditor.m | 277 - .../UI-X/Scheduler/UIxAppointmentEditor.wox | 111 - .../UI-X/Scheduler/UIxAppointmentFormatter.h | 120 - .../UI-X/Scheduler/UIxAppointmentFormatter.m | 454 - .../UI-X/Scheduler/UIxAppointmentView.h | 26 - .../UI-X/Scheduler/UIxAppointmentView.m | 109 - .../UI-X/Scheduler/UIxAppointmentView.wox | 166 - .../UI-X/Scheduler/UIxAptTableView.m | 75 - .../UI-X/Scheduler/UIxAptTableView.wox | 34 - .../UI-X/Scheduler/UIxCalBackForthNavView.m | 49 - .../UI-X/Scheduler/UIxCalDateLabel.m | 113 - .../UI-X/Scheduler/UIxCalDateLabel.wox | 8 - .../UI-X/Scheduler/UIxCalMonthOverview.m | 119 - .../UI-X/Scheduler/UIxCalMonthOverview.wox | 165 - .../UI-X/Scheduler/UIxCalMonthView.h | 23 - .../UI-X/Scheduler/UIxCalMonthView.m | 49 - .../UI-X/Scheduler/UIxCalSelectTab.m | 103 - .../UI-X/Scheduler/UIxCalSelectTab.wox | 25 - Misc/ZideStore/UI-X/Scheduler/UIxCalView.h | 67 - Misc/ZideStore/UI-X/Scheduler/UIxCalView.m | 235 - .../UI-X/Scheduler/UIxCalWeekOverview.m | 79 - .../UI-X/Scheduler/UIxCalWeekOverview.wox | 161 - .../ZideStore/UI-X/Scheduler/UIxCalWeekView.h | 19 - .../ZideStore/UI-X/Scheduler/UIxCalWeekView.m | 35 - Misc/ZideStore/UI-X/Scheduler/Version | 5 - .../UI-X/Scheduler/bundle-info.plist | 20 - Misc/ZideStore/UI-X/Scheduler/common.h | 34 - .../UI-X/Scheduler/images/icon_apt_chart.gif | Bin 360 -> 0 bytes .../images/icon_apt_chart_inactive.gif | Bin 181 -> 0 bytes .../Scheduler/images/icon_apt_column_view.gif | Bin 250 -> 0 bytes .../UI-X/Scheduler/images/icon_apt_list.gif | Bin 360 -> 0 bytes .../images/icon_apt_list_inactive.gif | Bin 181 -> 0 bytes .../Scheduler/images/icon_apt_overview.gif | Bin 343 -> 0 bytes .../images/icon_apt_overview_inactive.gif | Bin 165 -> 0 bytes Misc/ZideStore/UI-X/Scheduler/product.plist | 71 - Misc/db/scripts/create_user_tables.py | 161 - Misc/db/tests/helge/NOTES | 150 - .../tests/helge/PyGreSQL-samples/advanced.py | 198 - .../db/tests/helge/PyGreSQL-samples/basics.py | 296 - Misc/db/tests/helge/PyGreSQL-samples/func.py | 205 - .../db/tests/helge/PyGreSQL-samples/syscat.py | 149 - Misc/db/tests/helge/chkfolderinfoperf.py | 23 - Misc/db/tests/helge/chkhugeperf.py | 24 - Misc/db/tests/helge/fill_hugeperf.py | 80 - Misc/db/tests/helge/fillfolderinfo.py | 19 - Misc/db/tests/helge/laurent-trigger.psql | 17 - Misc/db/tests/helge/makedb.py | 12 - Misc/db/tests/helge/maketables.py | 23 - Misc/db/tests/helge/makeusers.py | 12 - Misc/db/tests/helge/scale/NOTES.txt | 4 - Misc/db/tests/helge/scale/createapts.py | 75 - Misc/db/tests/helge/scale/createfolders.py | 62 - Misc/db/tests/helge/scale/createindexes.py | 29 - Misc/db/tests/helge/scale/makeidx1-200.psql | 2587 ----- Misc/db/tests/helge/scale/user1.sql | 9468 ----------------- Misc/db/tests/znek/GNUmakefile | 24 - Misc/db/tests/znek/GNUmakefile.preamble | 5 - Misc/db/tests/znek/NSArray+random.h | 34 - Misc/db/tests/znek/NSArray+random.m | 42 - Misc/db/tests/znek/connection.plist | 7 - Misc/db/tests/znek/inserts.eomodel | 66 - Misc/db/tests/znek/inserts.m | 192 - Misc/db/tests/znek/lmail.m | 61 - Misc/db/tests/znek/lpe.m | 91 - Misc/db/tests/znek/pfinserts.m | 70 - .../db/tests/znek/tests.xcode/project.pbxproj | 175 - Misc/dbd/DDatabase.m | 82 - Misc/dbd/DDatabase.wox | 17 - Misc/dbd/DDatabaseManager.m | 88 - Misc/dbd/DDatabaseManager.wox | 19 - Misc/dbd/DHostView.m | 103 - Misc/dbd/DHostView.wox | 21 - Misc/dbd/DSoAuthenticator.h | 47 - Misc/dbd/DSoAuthenticator.m | 149 - Misc/dbd/DSoDatabase.m | 95 - Misc/dbd/DSoDatabaseManager.h | 43 - Misc/dbd/DSoDatabaseManager.m | 76 - Misc/dbd/DSoField.m | 32 - Misc/dbd/DSoHost.m | 82 - Misc/dbd/DSoObject.h | 41 - Misc/dbd/DSoObject.m | 114 - Misc/dbd/DSoTable.m | 92 - Misc/dbd/DSoUserManager.m | 57 - Misc/dbd/DTable.m | 106 - Misc/dbd/DTable.wox | 24 - Misc/dbd/Frame.m | 11 - Misc/dbd/Frame.wox | 20 - Misc/dbd/GNUmakefile | 46 - Misc/dbd/MainPage.m | 90 - Misc/dbd/MainPage.wox | 33 - Misc/dbd/README | 108 - Misc/dbd/Version | 3 - Misc/dbd/common.h | 34 - Misc/dbd/dbd.css | 29 - Misc/dbd/dbd.m | 121 - Misc/dbd/product.plist | 95 - .../{ChangeLog => ChangeLog.upstream} | 0 OGoContentStore/GNUmakefile | 3 +- OGoContentStore/GNUmakefile.preamble | 4 +- OGoContentStore/OCSContactFieldExtractor.m | 69 +- OGoContentStore/OCSiCalFieldExtractor.m | 260 +- OGoContentStore/appointment.ocs | 19 +- OGoContentStore/iCalEntityObject+OCS.h | 2 +- .../iCalRepeatableEntityObject+OCS.h | 2 +- .../iCalRepeatableEntityObject+OCS.m | 4 +- OGoContentStore/sql/acls.sh | 65 + OGoContentStore/sql/appointment-create.psql | 2 +- OGoContentStore/sql/folderinfo-create.psql | 30 +- .../sql/generate-folderinfo-sql-for-users.sh | 71 +- OGoContentStore/sql/profile-create.psql | 4 +- OGoContentStore/sql/sogo-folderinfo.sh | 70 + Protocols/common.make | 2 +- .../{ChangeLog => ChangeLog.upstream} | 0 Protocols/iCalHTTP/SOGoICalFileFetch.m | 20 +- Protocols/iCalHTTP/SOGoICalFilePublish.m | 11 +- README | 2 +- .../{ChangeLog => ChangeLog.upstream} | 0 SoObjects/Appointments/GNUmakefile | 6 +- SoObjects/Appointments/NSArray+Appointments.h | 37 + SoObjects/Appointments/NSArray+Appointments.m | 41 + .../Appointments/SOGoAppointmentFolder.h | 63 +- .../Appointments/SOGoAppointmentFolder.m | 763 +- .../Appointments/SOGoAppointmentObject.h | 20 +- .../Appointments/SOGoAppointmentObject.m | 313 +- .../Appointments/SOGoAptMailNotification.h | 21 +- .../Appointments/SOGoAptMailNotification.m | 19 +- .../Appointments/SOGoCalendarComponent.h | 46 + .../Appointments/SOGoCalendarComponent.m | 74 + SoObjects/Appointments/SOGoFreeBusyObject.h | 2 +- SoObjects/Appointments/SOGoFreeBusyObject.m | 249 +- .../Appointments/SOGoGroupAppointmentFolder.m | 37 +- SoObjects/Appointments/SOGoTaskObject.h | 76 + SoObjects/Appointments/SOGoTaskObject.m | 741 ++ .../Appointments/iCalEntityObject+Agenor.h | 34 + .../Appointments/iCalEntityObject+Agenor.m | 39 + SoObjects/Appointments/product.plist | 18 + SoObjects/{ChangeLog => ChangeLog.upstream} | 0 .../{ChangeLog => ChangeLog.upstream} | 0 SoObjects/Contacts/GNUmakefile | 10 +- SoObjects/Contacts/NGLdapEntry+Contact.h | 41 + SoObjects/Contacts/NGLdapEntry+Contact.m | 81 + SoObjects/Contacts/NSDictionary+Contact.h | 36 + SoObjects/Contacts/NSDictionary+Contact.m | 125 + SoObjects/Contacts/SOGoContactFolder.h | 38 +- SoObjects/Contacts/SOGoContactFolder.m | 123 - SoObjects/Contacts/SOGoContactFolders.h | 45 + SoObjects/Contacts/SOGoContactFolders.m | 216 + SoObjects/Contacts/SOGoContactGCSEntry.h | 39 + SoObjects/Contacts/SOGoContactGCSEntry.m | 92 + .../Contacts/SOGoContactGCSFolder.h | 21 +- SoObjects/Contacts/SOGoContactGCSFolder.m | 207 + SoObjects/Contacts/SOGoContactLDAPEntry.h | 50 + SoObjects/Contacts/SOGoContactLDAPEntry.m | 212 + SoObjects/Contacts/SOGoContactLDAPFolder.h | 58 + SoObjects/Contacts/SOGoContactLDAPFolder.m | 401 + SoObjects/Contacts/SOGoContactObject.h | 17 +- SoObjects/Contacts/SOGoContactObject.m | 162 - SoObjects/Contacts/product.plist | 38 +- .../Mailer/{ChangeLog => ChangeLog.upstream} | 0 SoObjects/Mailer/SOGoDraftObject.m | 60 +- SoObjects/Mailer/SOGoMailAccount.m | 14 +- SoObjects/Mailer/SOGoMailAccounts.m | 3 + SoObjects/Mailer/SOGoMailFolder.m | 1 + SoObjects/Mailer/SOGoMailObject.h | 2 + SoObjects/Mailer/SOGoMailObject.m | 103 +- SoObjects/Mailer/SOGoUser+Mail.m | 2 +- SoObjects/Mailer/product.plist | 24 +- SoObjects/SOGo/AgenorUserManager.h | 4 +- SoObjects/SOGo/AgenorUserManager.m | 55 +- .../SOGo/{ChangeLog => ChangeLog.upstream} | 0 SoObjects/SOGo/GNUmakefile | 31 +- SoObjects/SOGo/GNUmakefile.preamble | 2 +- SoObjects/SOGo/NSArray+Utilities.h | 36 + SoObjects/SOGo/NSArray+Utilities.m | 48 + SoObjects/SOGo/NSCalendarDate+SOGo.h | 44 + SoObjects/SOGo/NSCalendarDate+SOGo.m | 113 + SoObjects/SOGo/NSDictionary+URL.h | 36 + SoObjects/SOGo/NSDictionary+URL.m | 69 + SoObjects/SOGo/NSObject+AptComparison.m | 61 +- SoObjects/SOGo/NSString+Utilities.h | 43 + SoObjects/SOGo/NSString+Utilities.m | 101 + SoObjects/SOGo/NSString+iCal.h | 32 - SoObjects/SOGo/SOGoAclsFolder.h | 49 + SoObjects/SOGo/SOGoAclsFolder.m | 230 + SoObjects/SOGo/SOGoAppointment.h | 145 - SoObjects/SOGo/SOGoAppointment.m | 486 - SoObjects/SOGo/SOGoAppointmentICalRenderer.h | 46 - SoObjects/SOGo/SOGoAppointmentICalRenderer.m | 257 - SoObjects/SOGo/SOGoAuthenticator.h | 12 +- SoObjects/SOGo/SOGoAuthenticator.m | 136 +- SoObjects/SOGo/SOGoContentObject.h | 2 +- SoObjects/SOGo/SOGoCustomGroupFolder.m | 2 +- SoObjects/SOGo/SOGoDAVRendererTypes.h | 45 + SoObjects/SOGo/SOGoDAVRendererTypes.m | 114 + SoObjects/SOGo/SOGoFolder.h | 10 +- SoObjects/SOGo/SOGoFolder.m | 89 +- SoObjects/SOGo/SOGoObject.h | 17 +- SoObjects/SOGo/SOGoObject.m | 463 +- SoObjects/SOGo/SOGoPermissions.h | 39 + SoObjects/SOGo/SOGoPermissions.m | 42 + SoObjects/SOGo/SOGoUser.h | 8 +- SoObjects/SOGo/SOGoUser.m | 50 +- SoObjects/SOGo/SOGoUserFolder.h | 16 +- SoObjects/SOGo/SOGoUserFolder.m | 259 +- .../Sieve/{ChangeLog => ChangeLog.upstream} | 0 SoObjects/common.make | 2 +- UI/{ChangeLog => ChangeLog.upstream} | 0 UI/Common/{ChangeLog => ChangeLog.upstream} | 0 UI/Common/English.lproj/Localizable.strings | 21 +- UI/Common/French.lproj/Localizable.strings | 23 +- UI/Common/GNUmakefile | 11 +- UI/Common/GNUmakefile.preamble | 2 +- UI/Common/Toolbars/SOGoAclAssistant.toolbar | 7 + UI/Common/Toolbars/SOGoAclOwner.toolbar | 12 + UI/Common/UIxAclEditor.h | 43 + UI/Common/UIxAclEditor.m | 185 + UI/Common/UIxException.m | 55 + UI/Common/UIxJSClose.h | 41 + UI/Common/UIxJSClose.m | 71 + .../DSoTable.h => UI/Common/UIxPageFrame.h | 47 +- UI/Common/UIxPageFrame.m | 217 +- .../UIxSortableTableHeader.m} | 35 +- .../UIxMailToolbar.m => Common/UIxToolbar.m} | 184 +- UI/Common/UIxUserLogoff.m | 73 + UI/Common/product.plist | 69 +- UI/Contacts/{ChangeLog => ChangeLog.upstream} | 0 UI/Contacts/English.lproj/Localizable.strings | 116 +- UI/Contacts/French.lproj/Localizable.strings | 72 +- UI/Contacts/GNUmakefile | 15 +- .../Toolbars/SOGoContactFolder.toolbar | 29 + ...ContactEditorBase.h => UIxContactEditor.h} | 17 +- UI/Contacts/UIxContactEditor.m | 520 +- UI/Contacts/UIxContactEditorBase.m | 273 - UI/Contacts/UIxContactFoldersView.h | 32 + UI/Contacts/UIxContactFoldersView.m | 277 + UI/Contacts/UIxContactSelector.h | 76 + UI/Contacts/UIxContactSelector.m | 174 +- .../Contacts/UIxContactView.h | 20 +- UI/Contacts/UIxContactView.m | 449 +- .../Contacts/UIxContactsAclsSelection.m | 18 +- .../UIxContactsAddressBooksSelection.m | 16 +- .../UIxContactsCalendarsSelection.m} | 12 +- UI/Contacts/UIxContactsFilterPanel.m | 121 + ...tsListViewBase.h => UIxContactsListView.h} | 20 +- UI/Contacts/UIxContactsListView.m | 155 +- UI/Contacts/UIxContactsListViewBase.m | 131 - UI/Contacts/UIxContactsListViewContainer.h | 58 + UI/Contacts/UIxContactsListViewContainer.m | 180 + .../Contacts/UIxContactsMailerSelection.m | 18 +- UI/Contacts/UIxContactsSelectionView.m | 115 - UI/Contacts/product.plist | 253 +- .../{ChangeLog => ChangeLog.upstream} | 0 .../French.lproj/Localizable.strings | 22 +- .../MailPartViewers/UIxMailPartICalViewer.h | 40 +- UI/MailPartViewers/UIxMailPartICalViewer.m | 73 +- UI/MailPartViewers/UIxMailPartTextViewer.h | 36 + UI/MailPartViewers/UIxMailPartTextViewer.m | 26 +- UI/MailerUI/{ChangeLog => ChangeLog.upstream} | 0 UI/MailerUI/English.lproj/Localizable.strings | 2 + UI/MailerUI/French.lproj/Localizable.strings | 78 +- UI/MailerUI/GNUmakefile | 10 +- UI/MailerUI/Images/COPYING | 5 - UI/MailerUI/Images/LICENSE-thunderbird.txt | 567 - UI/MailerUI/Toolbars/SOGoDraftObject.toolbar | 42 +- UI/MailerUI/Toolbars/SOGoMailAccount.toolbar | 18 - UI/MailerUI/Toolbars/SOGoMailFolder.toolbar | 69 - UI/MailerUI/Toolbars/SOGoMailObject.toolbar | 72 +- UI/MailerUI/Toolbars/SOGoTrashFolder.toolbar | 33 - UI/MailerUI/UIxMailAccountView.m | 166 - UI/MailerUI/UIxMailEditor.m | 48 +- UI/MailerUI/UIxMailEditorAction.m | 123 +- UI/MailerUI/UIxMailFilterPanel.m | 70 +- UI/MailerUI/UIxMailFolderMenu.h | 46 + UI/MailerUI/UIxMailFolderMenu.m | 84 + UI/MailerUI/UIxMailFormatter.h | 2 + UI/MailerUI/UIxMailFormatter.m | 16 +- .../UIxMailListView.h} | 42 +- UI/MailerUI/UIxMailListView.m | 361 +- UI/MailerUI/UIxMailMainFrame.h | 44 + UI/MailerUI/UIxMailMainFrame.m | 136 +- UI/MailerUI/UIxMailPopupView.m | 31 + UI/MailerUI/UIxMailSplashView.m | 29 + UI/MailerUI/UIxMailToSelection.m | 17 +- UI/MailerUI/UIxMailTree.h | 44 + UI/MailerUI/UIxMailTree.m | 323 +- UI/MailerUI/UIxMailTreeBlock.h | 52 +- UI/MailerUI/UIxMailTreeBlock.m | 149 +- UI/MailerUI/UIxMailTreeBlockJS.h | 53 + UI/MailerUI/UIxMailTreeBlockJS.m | 113 + UI/MailerUI/UIxMailView.m | 110 +- UI/MailerUI/WOContext+UIxMailer.m | 24 +- UI/MailerUI/product.plist | 179 +- UI/MainUI/{ChangeLog => ChangeLog.upstream} | 0 UI/MainUI/French.lproj/Localizable.strings | 2 +- UI/MainUI/GNUmakefile | 9 +- UI/MainUI/SOGoUserHomePage.m | 126 +- UI/MainUI/SOGoUserHomePage.wox | 120 - UI/MainUI/product.plist | 80 +- UI/SOGoUI/{ChangeLog => ChangeLog.upstream} | 0 UI/SOGoUI/GNUmakefile | 3 + UI/SOGoUI/GNUmakefile.preamble | 3 +- UI/SOGoUI/SOGoAptFormatter.h | 1 + UI/SOGoUI/SOGoAptFormatter.m | 116 +- UI/SOGoUI/SOGoDateFormatter.h | 10 +- UI/SOGoUI/SOGoDateFormatter.m | 10 - UI/SOGoUI/UIxComponent.h | 22 +- UI/SOGoUI/UIxComponent.m | 390 +- .../{ChangeLog => ChangeLog.upstream} | 0 .../English.lproj/Localizable.strings | 98 +- UI/Scheduler/English.lproj/skycalendar.html | 160 - UI/Scheduler/French.lproj/Localizable.strings | 133 +- UI/Scheduler/French.lproj/skycalendar.html | 160 - UI/Scheduler/French.lproj/skycalendar.js | 190 - UI/Scheduler/GNUmakefile | 59 +- UI/Scheduler/GNUmakefile.preamble | 1 - UI/Scheduler/NOTES | 3 +- UI/Scheduler/NSCalendarDate+UIx.h | 35 - UI/Scheduler/NSCalendarDate+UIx.m | 50 - UI/Scheduler/SOGoAppointment+UIx.h | 31 - .../Toolbars/SOGoAppointmentFolder.toolbar | 36 + .../Toolbars/SOGoAppointmentObject.toolbar | 7 + .../SOGoAppointmentObjectAccept.toolbar | 7 + ...GoAppointmentObjectAcceptOrDecline.toolbar | 12 + .../SOGoAppointmentObjectDecline.toolbar | 7 + UI/Scheduler/UIxAppointmentEditor.h | 73 + UI/Scheduler/UIxAppointmentEditor.m | 973 +- UI/Scheduler/UIxAppointmentPrintview.m | 62 - UI/Scheduler/UIxAppointmentProposal.m | 18 +- UI/Scheduler/UIxAppointmentView.h | 9 +- UI/Scheduler/UIxAppointmentView.m | 132 +- UI/Scheduler/UIxCalAptListView.h | 43 + UI/Scheduler/UIxCalAptListView.m | 183 + UI/Scheduler/UIxCalCalendarsListView.h | 42 + UI/Scheduler/UIxCalCalendarsListView.m | 217 + UI/Scheduler/UIxCalDateLabel.m | 28 +- UI/Scheduler/UIxCalDateSelector.h | 47 + UI/Scheduler/UIxCalDateSelector.m | 173 + UI/Scheduler/UIxCalDayTable.h | 73 + UI/Scheduler/UIxCalDayTable.m | 324 + UI/Scheduler/UIxCalDayView.h | 2 +- UI/Scheduler/UIxCalDayView.m | 312 +- UI/Scheduler/UIxCalFilterPanel.h | 38 + UI/Scheduler/UIxCalFilterPanel.m | 119 + UI/Scheduler/UIxCalInlineAptView.m | 236 +- .../Scheduler/UIxCalInlineMonthOverview.h | 41 +- UI/Scheduler/UIxCalInlineMonthOverview.m | 46 +- UI/Scheduler/UIxCalMainView.h | 50 + UI/Scheduler/UIxCalMainView.m | 170 + UI/Scheduler/UIxCalMonthOverview.h | 11 +- UI/Scheduler/UIxCalMonthOverview.m | 2 +- UI/Scheduler/UIxCalMonthPrintview.m | 115 - UI/Scheduler/UIxCalMonthView.h | 79 +- UI/Scheduler/UIxCalMonthView.m | 332 +- UI/Scheduler/UIxCalMonthViewOld.h | 23 + UI/Scheduler/UIxCalMonthViewOld.m | 45 + UI/Scheduler/UIxCalParticipationStatusView.m | 2 +- UI/Scheduler/UIxCalScheduleOverview.m | 7 +- UI/Scheduler/UIxCalSelectTab.m | 2 +- UI/Scheduler/UIxCalTasksListView.h | 46 + UI/Scheduler/UIxCalTasksListView.m | 136 + UI/Scheduler/UIxCalView.h | 20 +- UI/Scheduler/UIxCalView.m | 690 +- UI/Scheduler/UIxCalWeekListview.m | 22 +- UI/Scheduler/UIxCalWeekOverview.m | 5 + UI/Scheduler/UIxCalWeekPrintview.m | 129 - UI/Scheduler/UIxCalWeekView.h | 36 +- UI/Scheduler/UIxCalWeekView.m | 117 +- UI/Scheduler/UIxCalYearOverview.m | 2 +- UI/Scheduler/UIxComponent+Agenor.h | 4 + UI/Scheduler/UIxComponent+Agenor.m | 27 + UI/Scheduler/UIxComponentEditor.h | 167 + UI/Scheduler/UIxComponentEditor.m | 873 ++ UI/Scheduler/UIxDatePicker.m | 83 +- UI/Scheduler/UIxDatePickerScript.m | 37 - UI/Scheduler/UIxFreeBusyUserSelector.h | 62 + UI/Scheduler/UIxFreeBusyUserSelector.m | 163 + UI/Scheduler/UIxFreeBusyUserSelectorTable.h | 82 + UI/Scheduler/UIxFreeBusyUserSelectorTable.m | 292 + UI/Scheduler/UIxTaskEditor.h | 78 + UI/Scheduler/UIxTaskEditor.m | 505 + UI/Scheduler/UIxTaskProposal.m | 488 + UI/Scheduler/UIxTaskView.h | 40 + UI/Scheduler/UIxTaskView.m | 296 + UI/Scheduler/UIxTimeDateControl.h | 80 + UI/Scheduler/UIxTimeDateControl.m | 289 +- UI/Scheduler/UIxTimeSelector.m | 94 - UI/Scheduler/common.h | 12 +- UI/Scheduler/iCalPerson+UIx.h | 34 - UI/Scheduler/iCalPerson+UIx.m | 32 - UI/Scheduler/iCalRecurrenceRule+SOGo.m | 52 - UI/Scheduler/images/next_week.gif | Bin 121 -> 0 bytes UI/Scheduler/images/previous_week.gif | Bin 121 -> 0 bytes UI/Scheduler/product.plist | 194 +- UI/Scheduler/skycalendar.js | 190 - .../{ChangeLog => ChangeLog.upstream} | 0 UI/Templates/ContactsUI/UIxContactEditor.wox | 551 +- .../ContactsUI/UIxContactFoldersView.wox | 2 + .../ContactsUI/UIxContactSelector.wox | 50 + UI/Templates/ContactsUI/UIxContactView.wox | 402 +- .../ContactsUI/UIxContactsAclsSelection.wox | 21 + .../UIxContactsAddressBooksSelection.wox | 16 + .../UIxContactsCalendarsSelection.wox | 16 + .../ContactsUI/UIxContactsFilterPanel.wox | 22 + .../ContactsUI/UIxContactsListView.wox | 222 +- .../UIxContactsListViewContainer.wox | 115 + .../ContactsUI/UIxContactsMailerSelection.wox | 26 + UI/Templates/GNUmakefile | 2 + .../MailPartViewers/UIxMailPartTextViewer.wox | 4 +- UI/Templates/MailerUI/UIxMailAccountView.wox | 104 +- UI/Templates/MailerUI/UIxMailAccountsView.wox | 28 - UI/Templates/MailerUI/UIxMailEditor.wox | 126 +- UI/Templates/MailerUI/UIxMailFilterPanel.wox | 96 +- .../MailerUI/UIxMailFolderACLEditor.wox | 25 +- UI/Templates/MailerUI/UIxMailFolderMenu.wox | 39 + UI/Templates/MailerUI/UIxMailListView.wox | 325 +- UI/Templates/MailerUI/UIxMailMainFrame.wox | 370 +- UI/Templates/MailerUI/UIxMailMoveToPopUp.wox | 2 +- UI/Templates/MailerUI/UIxMailPanelFrame.wox | 141 - UI/Templates/MailerUI/UIxMailPopupView.wox | 11 + .../MailerUI/UIxMailSortableTableHeader.wox | 40 - UI/Templates/MailerUI/UIxMailSplashView.wox | 43 + UI/Templates/MailerUI/UIxMailToSelection.wox | 108 +- UI/Templates/MailerUI/UIxMailToolbar.wox | 35 - UI/Templates/MailerUI/UIxMailTree.wox | 76 +- UI/Templates/MailerUI/UIxMailTreeBlockJS.wox | 7 + UI/Templates/MailerUI/UIxMailView.wox | 222 +- .../{ => MailerUI}/UIxSieveEditor.wox | 2 +- UI/{ => Templates}/MainUI/SOGoGroupPage.wox | 0 UI/{ => Templates}/MainUI/SOGoGroupsPage.wox | 0 UI/{ => Templates}/MainUI/SOGoRootPage.wox | 0 UI/Templates/MainUI/SOGoUserHomePage.wox | 63 + .../SchedulerUI/UIxAppointmentEditor.wox | 170 + .../UIxAppointmentProposal.wox | 40 +- .../SchedulerUI/UIxAppointmentView.wox | 299 + .../{ => SchedulerUI}/UIxAptTableView.wox | 5 +- .../SchedulerUI/UIxCalAptListView.wox | 61 + .../SchedulerUI}/UIxCalBackForthNavView.wox | 4 +- .../SchedulerUI/UIxCalCalendarsListView.wox | 27 + UI/Templates/SchedulerUI/UIxCalDateLabel.wox | 9 + .../SchedulerUI/UIxCalDateSelector.wox | 58 + .../{ => SchedulerUI}/UIxCalDayChartview.wox | 32 +- .../{ => SchedulerUI}/UIxCalDayListview.wox | 30 +- .../{ => SchedulerUI}/UIxCalDayOverview.wox | 39 +- UI/Templates/SchedulerUI/UIxCalDayTable.wox | 72 + UI/Templates/SchedulerUI/UIxCalDayView.wox | 49 + .../SchedulerUI/UIxCalFilterPanel.wox | 38 + .../SchedulerUI/UIxCalInlineAptView.wox | 13 + .../UIxCalInlineMonthOverview.wox | 0 UI/Templates/SchedulerUI/UIxCalMainView.wox | 98 + .../{ => SchedulerUI}/UIxCalMonthOverview.wox | 45 +- UI/Templates/SchedulerUI/UIxCalMonthView.wox | 107 + .../UIxCalParticipationStatusView.wox | 0 .../UIxCalScheduleOverview.wox | 0 .../{ => SchedulerUI}/UIxCalSelectTab.wox | 0 .../SchedulerUI/UIxCalTasksListView.wox | 32 + .../SchedulerUI/UIxCalWeekChartview.wox | 232 + .../SchedulerUI/UIxCalWeekColumnsview.wox | 279 + .../SchedulerUI/UIxCalWeekListview.wox | 243 + .../SchedulerUI/UIxCalWeekOverview.wox | 216 + UI/Templates/SchedulerUI/UIxCalWeekView.wox | 50 + .../{ => SchedulerUI}/UIxCalYearOverview.wox | 31 +- UI/Templates/SchedulerUI/UIxDatePicker.wox | 28 + .../{ => SchedulerUI}/UIxFilterList.wox | 0 .../SchedulerUI/UIxFreeBusyUserSelector.wox | 79 + .../UIxFreeBusyUserSelectorTable.wox | 67 + .../{ => SchedulerUI}/UIxSortButton.wox | 0 UI/Templates/SchedulerUI/UIxTaskEditor.wox | 178 + UI/Templates/SchedulerUI/UIxTaskProposal.wox | 251 + UI/Templates/SchedulerUI/UIxTaskView.wox | 299 + .../SchedulerUI/UIxTimeDateControl.wox | 71 + UI/Templates/UIxAclEditor.wox | 35 + UI/Templates/UIxAppointmentEditor.wox | 338 - UI/Templates/UIxAppointmentPrintview.wox | 153 - UI/Templates/UIxAppointmentView.wox | 307 - UI/Templates/UIxCalBackForthNavView.wox | 20 - UI/Templates/UIxCalDateLabel.wox | 8 - UI/Templates/UIxCalDayPrintview.wox | 70 - UI/Templates/UIxCalInlineAptView.wox | 31 - UI/Templates/UIxCalMonthPrintview.wox | 69 - UI/Templates/UIxCalWeekChartview.wox | 238 - UI/Templates/UIxCalWeekColumnsview.wox | 285 - UI/Templates/UIxCalWeekListview.wox | 248 - UI/Templates/UIxCalWeekOverview.wox | 221 - UI/Templates/UIxCalWeekPrintview.wox | 75 - UI/Templates/UIxContactSelector.wox | 14 - UI/Templates/UIxContactsSelectionView.wox | 171 - UI/Templates/UIxDatePicker.wox | 21 - UI/Templates/UIxDatePickerScript.wox | 10 - UI/Templates/UIxException.wox | 12 + UI/Templates/UIxJSClose.wox | 13 + UI/Templates/UIxPageFrame.wox | 295 +- UI/Templates/UIxSortableTableHeader.wox | 37 + UI/Templates/UIxTimeDateControl.wox | 30 - UI/Templates/UIxTimeSelector.wox | 14 - UI/Templates/UIxToolbar.wox | 52 + UI/Templates/UIxUserLogoff.wox | 3 + .../{ChangeLog => ChangeLog.upstream} | 0 UI/WebServerResources/ContactsUI.css | 329 + UI/WebServerResources/ContactsUI.js | 734 ++ UI/WebServerResources/HTMLElement.js | 195 + UI/WebServerResources/HTMLInputElement.js | 75 + UI/WebServerResources/HTMLTableElement.js | 28 + UI/WebServerResources/HTMLUListElement.js | 7 + .../JavascriptAPIExtensions.js | 89 + UI/WebServerResources/MailerUI.css | 540 + UI/WebServerResources/MailerUI.js | 1068 ++ UI/WebServerResources/SOGoDragAndDrop.js | 274 + UI/WebServerResources/SOGoDragHandles.js | 134 + .../SOGoUserHomePage.js} | 0 UI/WebServerResources/SchedulerUI.css | 1425 +++ UI/WebServerResources/SchedulerUI.js | 1105 ++ UI/WebServerResources/Search-bar.png | Bin 0 -> 820 bytes UI/WebServerResources/UIxAclEditor.css | 47 + UI/WebServerResources/UIxAclEditor.js | 75 + .../UIxAppointmentEditor.css | 173 + UI/WebServerResources/UIxAppointmentEditor.js | 202 +- UI/WebServerResources/UIxContactEditor.css | 59 + UI/WebServerResources/UIxContactEditor.js | 78 +- .../UIxFreeBusyUserSelector.js | 373 + UI/WebServerResources/UIxMailEditor.css | 97 + UI/WebServerResources/UIxMailEditor.js | 104 + UI/WebServerResources/UIxMailListView.js | 42 - UI/WebServerResources/UIxMailToSelection.js | 102 +- UI/WebServerResources/UIxTaskEditor.css | 129 + UI/WebServerResources/UIxTaskEditor.js | 275 + UI/WebServerResources/abcard.gif | Bin 0 -> 1023 bytes UI/WebServerResources/accepted.png | Bin 0 -> 607 bytes UI/WebServerResources/account-settings.png | Bin 0 -> 2219 bytes UI/WebServerResources/add-addressbook.png | Bin 0 -> 1519 bytes UI/WebServerResources/add-contact.gif | Bin 0 -> 1161 bytes .../apt_icon_private.gif | Bin UI/WebServerResources/arrow-lft-sharp.gif | Bin 0 -> 53 bytes UI/WebServerResources/arrow-rit-sharp.gif | Bin 0 -> 53 bytes UI/WebServerResources/busy.gif | Bin 0 -> 825 bytes UI/WebServerResources/calendar.css | 17 +- UI/WebServerResources/chair.png | Bin 0 -> 552 bytes UI/WebServerResources/choose-date.png | Bin 0 -> 1192 bytes UI/WebServerResources/create-account.png | Bin 0 -> 2137 bytes UI/WebServerResources/day-view.png | Bin 0 -> 647 bytes UI/WebServerResources/declined.png | Bin 0 -> 419 bytes UI/WebServerResources/delete.png | Bin 0 -> 1053 bytes UI/WebServerResources/downstairs.gif | Bin 0 -> 113 bytes UI/WebServerResources/dtree.css | 45 + UI/WebServerResources/dtree.js | 374 + UI/WebServerResources/edit.png | Bin 0 -> 979 bytes UI/WebServerResources/empty.gif | Bin 0 -> 62 bytes .../images => WebServerResources}/first.gif | Bin UI/WebServerResources/generic.css | 792 ++ UI/WebServerResources/generic.js | 892 +- UI/WebServerResources/goto-today.png | Bin 0 -> 1046 bytes .../green_corner.gif | Bin .../icon_popupcalendar.gif | Bin UI/WebServerResources/icon_read.gif | Bin 79 -> 841 bytes UI/WebServerResources/icon_unread.gif | Bin 85 -> 330 bytes .../icon_view_chart.gif | Bin .../icon_view_chart_inactive.gif | Bin .../icon_view_columns.gif | Bin .../icon_view_columns_inactive.gif | Bin .../icon_view_list.gif | Bin .../icon_view_list_inactive.gif | Bin .../icon_view_overview.gif | Bin .../icon_view_overview_inactive.gif | Bin .../invisible_space_2.gif | Bin .../images => WebServerResources}/last.gif | Bin UI/WebServerResources/lori_16x16.ico | Bin 0 -> 1406 bytes UI/WebServerResources/mailer-compose.css | 79 - UI/WebServerResources/mailer-toolbar.css | 39 +- UI/WebServerResources/mailer.css | 423 - UI/WebServerResources/mailer.js | 419 - UI/WebServerResources/manage-filters.png | Bin 0 -> 1440 bytes UI/WebServerResources/manage-imap.png | Bin 0 -> 1693 bytes UI/WebServerResources/manage-newsgroups.png | Bin 0 -> 2386 bytes UI/WebServerResources/manage-rss.png | Bin 0 -> 2329 bytes UI/WebServerResources/month-view.png | Bin 0 -> 832 bytes UI/WebServerResources/multiweek-view.png | Bin 0 -> 857 bytes UI/WebServerResources/needs-action.png | Bin 0 -> 506 bytes UI/WebServerResources/new-card.png | Bin 0 -> 1462 bytes UI/WebServerResources/new-event.png | Bin 0 -> 1024 bytes UI/WebServerResources/new-list.png | Bin 0 -> 950 bytes UI/WebServerResources/new-task.png | Bin 0 -> 917 bytes .../images => WebServerResources}/next.gif | Bin .../WebServerResources}/next_week.gif | Bin UI/WebServerResources/offline-settings.png | Bin 0 -> 1515 bytes .../optional-participant.png | Bin 0 -> 584 bytes .../previous.gif | Bin .../WebServerResources}/previous_week.gif | Bin UI/WebServerResources/properties.png | Bin 0 -> 1429 bytes UI/WebServerResources/prototype.js | 1781 ++++ UI/WebServerResources/read-messages.png | Bin 0 -> 1640 bytes UI/WebServerResources/remove-addressbook.png | Bin 0 -> 1557 bytes UI/WebServerResources/remove-contact.gif | Bin 0 -> 1140 bytes .../required-participant.png | Bin 0 -> 543 bytes UI/WebServerResources/search-messages.png | Bin 0 -> 2054 bytes .../skycalendar.html | 29 +- .../skycalendar.js | 0 UI/WebServerResources/submenu-active.gif | Bin 0 -> 79 bytes UI/WebServerResources/submenu.gif | Bin 0 -> 79 bytes UI/WebServerResources/tbtv_account_17x17.gif | Bin 1077 -> 1042 bytes UI/WebServerResources/tbtv_corner_17x17.gif | Bin 80 -> 61 bytes .../tbtv_corner_minus_17x17.gif | Bin 121 -> 207 bytes .../tbtv_corner_plus_17x17.gif | Bin 125 -> 205 bytes UI/WebServerResources/tbtv_drafts_17x17.gif | Bin 1084 -> 1033 bytes UI/WebServerResources/tbtv_inbox_17x17.gif | Bin 1093 -> 1057 bytes .../tbtv_junction2_17x17.gif | Bin 82 -> 0 bytes UI/WebServerResources/tbtv_junction_17x17.gif | Bin 81 -> 82 bytes .../tbtv_leaf_corner_17x17.gif | Bin 602 -> 595 bytes UI/WebServerResources/tbtv_line_17x17.gif | Bin 80 -> 89 bytes UI/WebServerResources/tbtv_minus_17x17.gif | Bin 122 -> 211 bytes UI/WebServerResources/tbtv_plus_17x17.gif | Bin 127 -> 208 bytes UI/WebServerResources/tbtv_space_17x17.gif | Bin 0 -> 56 bytes UI/WebServerResources/tbtv_trash_17x17.gif | Bin 1119 -> 1074 bytes UI/WebServerResources/tentative.png | Bin 0 -> 420 bytes .../treeview_corner.gif | Bin .../treeview_corner_minus.gif | Bin .../treeview_corner_plus.gif | Bin .../treeview_junction.gif | Bin .../treeview_leaf.gif | Bin .../treeview_leaf_corner.gif | Bin .../treeview_line.gif | Bin .../treeview_minus.gif | Bin .../treeview_plus.gif | Bin .../treeview_space.gif | Bin UI/WebServerResources/uix.css | 245 - UI/WebServerResources/week-view.png | Bin 0 -> 679 bytes UI/WebServerResources/write-message.png | Bin 0 -> 2288 bytes UI/WebServerResources/write.png | Bin 0 -> 1538 bytes UI/common.make | 2 +- fhswobundle.make | 35 + 731 files changed, 37528 insertions(+), 40093 deletions(-) create mode 100644 ChangeLog rename Main/{ChangeLog => ChangeLog.upstream} (100%) delete mode 100644 Misc/WebUI/Application.h delete mode 100644 Misc/WebUI/Application.m delete mode 100644 Misc/WebUI/COPYING delete mode 100644 Misc/WebUI/COPYRIGHT delete mode 100644 Misc/WebUI/ChangeLog delete mode 100644 Misc/WebUI/DirectAction.h delete mode 100644 Misc/WebUI/DirectAction.m delete mode 100644 Misc/WebUI/English.lproj/InfoPlist.strings delete mode 100644 Misc/WebUI/GNUmakefile delete mode 100644 Misc/WebUI/GNUmakefile.preamble delete mode 100644 Misc/WebUI/Info.plist delete mode 100644 Misc/WebUI/Lori.icns delete mode 100644 Misc/WebUI/NGExtensions/GNUmakefile delete mode 100644 Misc/WebUI/NGExtensions/NGLogging/ChangeLog delete mode 100644 Misc/WebUI/NGExtensions/NGLogging/GNUmakefile delete mode 100644 Misc/WebUI/NGExtensions/NGLogging/NGLogAppender.h delete mode 100644 Misc/WebUI/NGExtensions/NGLogging/NGLogAppender.m delete mode 100644 Misc/WebUI/NGExtensions/NGLogging/NGLogConsoleAppender.h delete mode 100644 Misc/WebUI/NGExtensions/NGLogging/NGLogConsoleAppender.m delete mode 100644 Misc/WebUI/NGExtensions/NGLogging/NGLogEvent.h delete mode 100644 Misc/WebUI/NGExtensions/NGLogging/NGLogEvent.m delete mode 100644 Misc/WebUI/NGExtensions/NGLogging/NGLogSyslogAppender.h delete mode 100644 Misc/WebUI/NGExtensions/NGLogging/NGLogSyslogAppender.m delete mode 100644 Misc/WebUI/NGExtensions/NGLogging/NGLogger.h delete mode 100644 Misc/WebUI/NGExtensions/NGLogging/NGLogger.m delete mode 100644 Misc/WebUI/NGExtensions/NGLogging/NGLogging.h delete mode 100644 Misc/WebUI/NGExtensions/NGLogging/NSObject+ExtendedLogging.h delete mode 100644 Misc/WebUI/NGExtensions/NGLogging/NSObject+ExtendedLogging.m delete mode 100644 Misc/WebUI/NOTES delete mode 100644 Misc/WebUI/PROJECTLEAD delete mode 100644 Misc/WebUI/README delete mode 100644 Misc/WebUI/Session.h delete mode 100644 Misc/WebUI/Session.m delete mode 100644 Misc/WebUI/TODO delete mode 100644 Misc/WebUI/Version delete mode 100644 Misc/WebUI/WebServerResources/favicon.ico delete mode 100644 Misc/WebUI/WebUI.xcode/project.pbxproj delete mode 100644 Misc/WebUI/WebUI_Prefix.pch delete mode 100644 Misc/WebUI/WebUI_main.m delete mode 100644 Misc/WebUI/common.h delete mode 100644 Misc/WebUI/version.plist delete mode 100644 Misc/WebUI/wox-cheat-sheet.txt delete mode 100644 Misc/ZideStore/UI-X/ChangeLog delete mode 100644 Misc/ZideStore/UI-X/Common/CommonUIProduct.m delete mode 100644 Misc/ZideStore/UI-X/Common/GNUmakefile delete mode 100644 Misc/ZideStore/UI-X/Common/GNUmakefile.postamble delete mode 100644 Misc/ZideStore/UI-X/Common/GNUmakefile.preamble delete mode 100644 Misc/ZideStore/UI-X/Common/UIxAppFrame.m delete mode 100644 Misc/ZideStore/UI-X/Common/UIxAppFrame.wox delete mode 100644 Misc/ZideStore/UI-X/Common/UIxAppHeader.m delete mode 100644 Misc/ZideStore/UI-X/Common/UIxAppHeader.wox delete mode 100644 Misc/ZideStore/UI-X/Common/UIxAppNavView.m delete mode 100644 Misc/ZideStore/UI-X/Common/UIxAppNavView.wox delete mode 100644 Misc/ZideStore/UI-X/Common/UIxAppNavigation.m delete mode 100644 Misc/ZideStore/UI-X/Common/UIxAppNavigation.wox delete mode 100644 Misc/ZideStore/UI-X/Common/UIxComponent.h delete mode 100644 Misc/ZideStore/UI-X/Common/UIxComponent.m delete mode 100644 Misc/ZideStore/UI-X/Common/UIxElemBuilder.m delete mode 100644 Misc/ZideStore/UI-X/Common/UIxPageFrame.m delete mode 100644 Misc/ZideStore/UI-X/Common/UIxPageFrame.wox delete mode 100644 Misc/ZideStore/UI-X/Common/UIxTabItem.m delete mode 100644 Misc/ZideStore/UI-X/Common/UIxTabView.h delete mode 100644 Misc/ZideStore/UI-X/Common/UIxTabView.m delete mode 100644 Misc/ZideStore/UI-X/Common/UIxWinClose.m delete mode 100644 Misc/ZideStore/UI-X/Common/UIxWinClose.wox delete mode 100644 Misc/ZideStore/UI-X/Common/Version delete mode 100644 Misc/ZideStore/UI-X/Common/bundle-info.plist delete mode 100644 Misc/ZideStore/UI-X/Common/calendar.css delete mode 100644 Misc/ZideStore/UI-X/Common/common.h delete mode 100755 Misc/ZideStore/UI-X/Common/images/OGoLogo.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/box_botleft.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/box_botright.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/box_bottom.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/box_left.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/box_right.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/box_top.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/box_topleft.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/box_topright.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/closewindow.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/corner_right.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/line_left.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/line_right.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/line_stretch.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/menu_logo_top.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/tab_.gif delete mode 100644 Misc/ZideStore/UI-X/Common/images/tab_selected.gif delete mode 100644 Misc/ZideStore/UI-X/Common/product.plist delete mode 100644 Misc/ZideStore/UI-X/Common/zidestoreui.css delete mode 100644 Misc/ZideStore/UI-X/GNUmakefile delete mode 100644 Misc/ZideStore/UI-X/Scheduler/COPYING delete mode 100644 Misc/ZideStore/UI-X/Scheduler/COPYRIGHT delete mode 100644 Misc/ZideStore/UI-X/Scheduler/GNUmakefile delete mode 100644 Misc/ZideStore/UI-X/Scheduler/GNUmakefile.postamble delete mode 100644 Misc/ZideStore/UI-X/Scheduler/GNUmakefile.preamble delete mode 100644 Misc/ZideStore/UI-X/Scheduler/NOTES delete mode 100644 Misc/ZideStore/UI-X/Scheduler/SchedulerUIProduct.m delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxAppointmentEditor.m delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxAppointmentEditor.wox delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxAppointmentFormatter.h delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxAppointmentFormatter.m delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxAppointmentView.h delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxAppointmentView.m delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxAppointmentView.wox delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxAptTableView.m delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxAptTableView.wox delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxCalBackForthNavView.m delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxCalDateLabel.m delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxCalDateLabel.wox delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxCalMonthOverview.m delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxCalMonthOverview.wox delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxCalMonthView.h delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxCalMonthView.m delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxCalSelectTab.m delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxCalSelectTab.wox delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxCalView.h delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxCalView.m delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxCalWeekOverview.m delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxCalWeekOverview.wox delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxCalWeekView.h delete mode 100644 Misc/ZideStore/UI-X/Scheduler/UIxCalWeekView.m delete mode 100644 Misc/ZideStore/UI-X/Scheduler/Version delete mode 100644 Misc/ZideStore/UI-X/Scheduler/bundle-info.plist delete mode 100644 Misc/ZideStore/UI-X/Scheduler/common.h delete mode 100644 Misc/ZideStore/UI-X/Scheduler/images/icon_apt_chart.gif delete mode 100644 Misc/ZideStore/UI-X/Scheduler/images/icon_apt_chart_inactive.gif delete mode 100644 Misc/ZideStore/UI-X/Scheduler/images/icon_apt_column_view.gif delete mode 100644 Misc/ZideStore/UI-X/Scheduler/images/icon_apt_list.gif delete mode 100644 Misc/ZideStore/UI-X/Scheduler/images/icon_apt_list_inactive.gif delete mode 100644 Misc/ZideStore/UI-X/Scheduler/images/icon_apt_overview.gif delete mode 100644 Misc/ZideStore/UI-X/Scheduler/images/icon_apt_overview_inactive.gif delete mode 100644 Misc/ZideStore/UI-X/Scheduler/product.plist delete mode 100755 Misc/db/scripts/create_user_tables.py delete mode 100644 Misc/db/tests/helge/NOTES delete mode 100755 Misc/db/tests/helge/PyGreSQL-samples/advanced.py delete mode 100755 Misc/db/tests/helge/PyGreSQL-samples/basics.py delete mode 100755 Misc/db/tests/helge/PyGreSQL-samples/func.py delete mode 100755 Misc/db/tests/helge/PyGreSQL-samples/syscat.py delete mode 100755 Misc/db/tests/helge/chkfolderinfoperf.py delete mode 100755 Misc/db/tests/helge/chkhugeperf.py delete mode 100755 Misc/db/tests/helge/fill_hugeperf.py delete mode 100755 Misc/db/tests/helge/fillfolderinfo.py delete mode 100644 Misc/db/tests/helge/laurent-trigger.psql delete mode 100755 Misc/db/tests/helge/makedb.py delete mode 100755 Misc/db/tests/helge/maketables.py delete mode 100755 Misc/db/tests/helge/makeusers.py delete mode 100644 Misc/db/tests/helge/scale/NOTES.txt delete mode 100755 Misc/db/tests/helge/scale/createapts.py delete mode 100755 Misc/db/tests/helge/scale/createfolders.py delete mode 100755 Misc/db/tests/helge/scale/createindexes.py delete mode 100644 Misc/db/tests/helge/scale/makeidx1-200.psql delete mode 100644 Misc/db/tests/helge/scale/user1.sql delete mode 100644 Misc/db/tests/znek/GNUmakefile delete mode 100644 Misc/db/tests/znek/GNUmakefile.preamble delete mode 100644 Misc/db/tests/znek/NSArray+random.h delete mode 100644 Misc/db/tests/znek/NSArray+random.m delete mode 100644 Misc/db/tests/znek/connection.plist delete mode 100644 Misc/db/tests/znek/inserts.eomodel delete mode 100644 Misc/db/tests/znek/inserts.m delete mode 100644 Misc/db/tests/znek/lmail.m delete mode 100644 Misc/db/tests/znek/lpe.m delete mode 100644 Misc/db/tests/znek/pfinserts.m delete mode 100644 Misc/db/tests/znek/tests.xcode/project.pbxproj delete mode 100644 Misc/dbd/DDatabase.m delete mode 100644 Misc/dbd/DDatabase.wox delete mode 100644 Misc/dbd/DDatabaseManager.m delete mode 100644 Misc/dbd/DDatabaseManager.wox delete mode 100644 Misc/dbd/DHostView.m delete mode 100644 Misc/dbd/DHostView.wox delete mode 100644 Misc/dbd/DSoAuthenticator.h delete mode 100644 Misc/dbd/DSoAuthenticator.m delete mode 100644 Misc/dbd/DSoDatabase.m delete mode 100644 Misc/dbd/DSoDatabaseManager.h delete mode 100644 Misc/dbd/DSoDatabaseManager.m delete mode 100644 Misc/dbd/DSoField.m delete mode 100644 Misc/dbd/DSoHost.m delete mode 100644 Misc/dbd/DSoObject.h delete mode 100644 Misc/dbd/DSoObject.m delete mode 100644 Misc/dbd/DSoTable.m delete mode 100644 Misc/dbd/DSoUserManager.m delete mode 100644 Misc/dbd/DTable.m delete mode 100644 Misc/dbd/DTable.wox delete mode 100644 Misc/dbd/Frame.m delete mode 100644 Misc/dbd/Frame.wox delete mode 100644 Misc/dbd/GNUmakefile delete mode 100644 Misc/dbd/MainPage.m delete mode 100644 Misc/dbd/MainPage.wox delete mode 100644 Misc/dbd/README delete mode 100644 Misc/dbd/Version delete mode 100644 Misc/dbd/common.h delete mode 100644 Misc/dbd/dbd.css delete mode 100644 Misc/dbd/dbd.m delete mode 100644 Misc/dbd/product.plist rename OGoContentStore/{ChangeLog => ChangeLog.upstream} (100%) create mode 100755 OGoContentStore/sql/acls.sh create mode 100755 OGoContentStore/sql/sogo-folderinfo.sh rename Protocols/iCalHTTP/{ChangeLog => ChangeLog.upstream} (100%) rename SoObjects/Appointments/{ChangeLog => ChangeLog.upstream} (100%) create mode 100644 SoObjects/Appointments/NSArray+Appointments.h create mode 100644 SoObjects/Appointments/NSArray+Appointments.m create mode 100644 SoObjects/Appointments/SOGoCalendarComponent.h create mode 100644 SoObjects/Appointments/SOGoCalendarComponent.m create mode 100644 SoObjects/Appointments/SOGoTaskObject.h create mode 100644 SoObjects/Appointments/SOGoTaskObject.m create mode 100644 SoObjects/Appointments/iCalEntityObject+Agenor.h create mode 100644 SoObjects/Appointments/iCalEntityObject+Agenor.m rename SoObjects/{ChangeLog => ChangeLog.upstream} (100%) rename SoObjects/Contacts/{ChangeLog => ChangeLog.upstream} (100%) create mode 100644 SoObjects/Contacts/NGLdapEntry+Contact.h create mode 100644 SoObjects/Contacts/NGLdapEntry+Contact.m create mode 100644 SoObjects/Contacts/NSDictionary+Contact.h create mode 100644 SoObjects/Contacts/NSDictionary+Contact.m delete mode 100644 SoObjects/Contacts/SOGoContactFolder.m create mode 100644 SoObjects/Contacts/SOGoContactFolders.h create mode 100644 SoObjects/Contacts/SOGoContactFolders.m create mode 100644 SoObjects/Contacts/SOGoContactGCSEntry.h create mode 100644 SoObjects/Contacts/SOGoContactGCSEntry.m rename UI/MailerUI/UIxMailAccountsView.m => SoObjects/Contacts/SOGoContactGCSFolder.h (72%) create mode 100644 SoObjects/Contacts/SOGoContactGCSFolder.m create mode 100644 SoObjects/Contacts/SOGoContactLDAPEntry.h create mode 100644 SoObjects/Contacts/SOGoContactLDAPEntry.m create mode 100644 SoObjects/Contacts/SOGoContactLDAPFolder.h create mode 100644 SoObjects/Contacts/SOGoContactLDAPFolder.m delete mode 100644 SoObjects/Contacts/SOGoContactObject.m rename SoObjects/Mailer/{ChangeLog => ChangeLog.upstream} (100%) rename SoObjects/SOGo/{ChangeLog => ChangeLog.upstream} (100%) create mode 100644 SoObjects/SOGo/NSArray+Utilities.h create mode 100644 SoObjects/SOGo/NSArray+Utilities.m create mode 100644 SoObjects/SOGo/NSCalendarDate+SOGo.h create mode 100644 SoObjects/SOGo/NSCalendarDate+SOGo.m create mode 100644 SoObjects/SOGo/NSDictionary+URL.h create mode 100644 SoObjects/SOGo/NSDictionary+URL.m create mode 100644 SoObjects/SOGo/NSString+Utilities.h create mode 100644 SoObjects/SOGo/NSString+Utilities.m delete mode 100644 SoObjects/SOGo/NSString+iCal.h create mode 100644 SoObjects/SOGo/SOGoAclsFolder.h create mode 100644 SoObjects/SOGo/SOGoAclsFolder.m delete mode 100644 SoObjects/SOGo/SOGoAppointment.h delete mode 100644 SoObjects/SOGo/SOGoAppointment.m delete mode 100644 SoObjects/SOGo/SOGoAppointmentICalRenderer.h delete mode 100644 SoObjects/SOGo/SOGoAppointmentICalRenderer.m create mode 100644 SoObjects/SOGo/SOGoDAVRendererTypes.h create mode 100644 SoObjects/SOGo/SOGoDAVRendererTypes.m create mode 100644 SoObjects/SOGo/SOGoPermissions.h create mode 100644 SoObjects/SOGo/SOGoPermissions.m rename SoObjects/Sieve/{ChangeLog => ChangeLog.upstream} (100%) rename UI/{ChangeLog => ChangeLog.upstream} (100%) rename UI/Common/{ChangeLog => ChangeLog.upstream} (100%) create mode 100644 UI/Common/Toolbars/SOGoAclAssistant.toolbar create mode 100644 UI/Common/Toolbars/SOGoAclOwner.toolbar create mode 100644 UI/Common/UIxAclEditor.h create mode 100644 UI/Common/UIxAclEditor.m create mode 100644 UI/Common/UIxException.m create mode 100644 UI/Common/UIxJSClose.h create mode 100644 UI/Common/UIxJSClose.m rename Misc/dbd/DSoTable.h => UI/Common/UIxPageFrame.h (51%) rename UI/{MailerUI/UIxMailSortableTableHeader.m => Common/UIxSortableTableHeader.m} (83%) rename UI/{MailerUI/UIxMailToolbar.m => Common/UIxToolbar.m} (54%) create mode 100644 UI/Common/UIxUserLogoff.m rename UI/Contacts/{ChangeLog => ChangeLog.upstream} (100%) create mode 100644 UI/Contacts/Toolbars/SOGoContactFolder.toolbar rename UI/Contacts/{UIxContactEditorBase.h => UIxContactEditor.h} (79%) delete mode 100644 UI/Contacts/UIxContactEditorBase.m create mode 100644 UI/Contacts/UIxContactFoldersView.h create mode 100644 UI/Contacts/UIxContactFoldersView.m create mode 100644 UI/Contacts/UIxContactSelector.h rename Misc/dbd/DSoUserManager.h => UI/Contacts/UIxContactView.h (73%) rename Misc/dbd/DSoField.h => UI/Contacts/UIxContactsAclsSelection.m (78%) rename Misc/dbd/DSoUser.m => UI/Contacts/UIxContactsAddressBooksSelection.m (76%) rename UI/{Common/UIxWinClose.m => Contacts/UIxContactsCalendarsSelection.m} (77%) create mode 100644 UI/Contacts/UIxContactsFilterPanel.m rename UI/Contacts/{UIxContactsListViewBase.h => UIxContactsListView.h} (71%) delete mode 100644 UI/Contacts/UIxContactsListViewBase.m create mode 100644 UI/Contacts/UIxContactsListViewContainer.h create mode 100644 UI/Contacts/UIxContactsListViewContainer.m rename Misc/dbd/DSoUser.h => UI/Contacts/UIxContactsMailerSelection.m (77%) delete mode 100644 UI/Contacts/UIxContactsSelectionView.m rename UI/MailPartViewers/{ChangeLog => ChangeLog.upstream} (100%) rename Misc/dbd/DSoDatabase.h => UI/MailPartViewers/UIxMailPartICalViewer.h (57%) create mode 100644 UI/MailPartViewers/UIxMailPartTextViewer.h rename UI/MailerUI/{ChangeLog => ChangeLog.upstream} (100%) delete mode 100644 UI/MailerUI/Images/COPYING delete mode 100644 UI/MailerUI/Images/LICENSE-thunderbird.txt delete mode 100644 UI/MailerUI/Toolbars/SOGoMailAccount.toolbar delete mode 100644 UI/MailerUI/Toolbars/SOGoMailFolder.toolbar delete mode 100644 UI/MailerUI/Toolbars/SOGoTrashFolder.toolbar delete mode 100644 UI/MailerUI/UIxMailAccountView.m create mode 100644 UI/MailerUI/UIxMailFolderMenu.h create mode 100644 UI/MailerUI/UIxMailFolderMenu.m rename UI/{Scheduler/UIxCalDayPrintview.m => MailerUI/UIxMailListView.h} (59%) create mode 100644 UI/MailerUI/UIxMailMainFrame.h create mode 100644 UI/MailerUI/UIxMailPopupView.m create mode 100644 UI/MailerUI/UIxMailSplashView.m create mode 100644 UI/MailerUI/UIxMailTree.h create mode 100644 UI/MailerUI/UIxMailTreeBlockJS.h create mode 100644 UI/MailerUI/UIxMailTreeBlockJS.m rename UI/MainUI/{ChangeLog => ChangeLog.upstream} (100%) delete mode 100644 UI/MainUI/SOGoUserHomePage.wox rename UI/SOGoUI/{ChangeLog => ChangeLog.upstream} (100%) rename UI/Scheduler/{ChangeLog => ChangeLog.upstream} (100%) delete mode 100644 UI/Scheduler/English.lproj/skycalendar.html delete mode 100644 UI/Scheduler/French.lproj/skycalendar.html delete mode 100644 UI/Scheduler/French.lproj/skycalendar.js delete mode 100644 UI/Scheduler/NSCalendarDate+UIx.h delete mode 100644 UI/Scheduler/NSCalendarDate+UIx.m delete mode 100644 UI/Scheduler/SOGoAppointment+UIx.h create mode 100644 UI/Scheduler/Toolbars/SOGoAppointmentFolder.toolbar create mode 100644 UI/Scheduler/Toolbars/SOGoAppointmentObject.toolbar create mode 100644 UI/Scheduler/Toolbars/SOGoAppointmentObjectAccept.toolbar create mode 100644 UI/Scheduler/Toolbars/SOGoAppointmentObjectAcceptOrDecline.toolbar create mode 100644 UI/Scheduler/Toolbars/SOGoAppointmentObjectDecline.toolbar create mode 100644 UI/Scheduler/UIxAppointmentEditor.h delete mode 100644 UI/Scheduler/UIxAppointmentPrintview.m create mode 100644 UI/Scheduler/UIxCalAptListView.h create mode 100644 UI/Scheduler/UIxCalAptListView.m create mode 100644 UI/Scheduler/UIxCalCalendarsListView.h create mode 100644 UI/Scheduler/UIxCalCalendarsListView.m create mode 100644 UI/Scheduler/UIxCalDateSelector.h create mode 100644 UI/Scheduler/UIxCalDateSelector.m create mode 100644 UI/Scheduler/UIxCalDayTable.h create mode 100644 UI/Scheduler/UIxCalDayTable.m create mode 100644 UI/Scheduler/UIxCalFilterPanel.h create mode 100644 UI/Scheduler/UIxCalFilterPanel.m rename Misc/dbd/DSoHost.h => UI/Scheduler/UIxCalInlineMonthOverview.h (55%) create mode 100644 UI/Scheduler/UIxCalMainView.h create mode 100644 UI/Scheduler/UIxCalMainView.m delete mode 100644 UI/Scheduler/UIxCalMonthPrintview.m create mode 100644 UI/Scheduler/UIxCalMonthViewOld.h create mode 100644 UI/Scheduler/UIxCalMonthViewOld.m create mode 100644 UI/Scheduler/UIxCalTasksListView.h create mode 100644 UI/Scheduler/UIxCalTasksListView.m delete mode 100644 UI/Scheduler/UIxCalWeekPrintview.m create mode 100644 UI/Scheduler/UIxComponentEditor.h create mode 100644 UI/Scheduler/UIxComponentEditor.m delete mode 100644 UI/Scheduler/UIxDatePickerScript.m create mode 100644 UI/Scheduler/UIxFreeBusyUserSelector.h create mode 100644 UI/Scheduler/UIxFreeBusyUserSelector.m create mode 100644 UI/Scheduler/UIxFreeBusyUserSelectorTable.h create mode 100644 UI/Scheduler/UIxFreeBusyUserSelectorTable.m create mode 100644 UI/Scheduler/UIxTaskEditor.h create mode 100644 UI/Scheduler/UIxTaskEditor.m create mode 100644 UI/Scheduler/UIxTaskProposal.m create mode 100644 UI/Scheduler/UIxTaskView.h create mode 100644 UI/Scheduler/UIxTaskView.m create mode 100644 UI/Scheduler/UIxTimeDateControl.h delete mode 100644 UI/Scheduler/UIxTimeSelector.m delete mode 100644 UI/Scheduler/iCalPerson+UIx.h delete mode 100644 UI/Scheduler/iCalPerson+UIx.m delete mode 100644 UI/Scheduler/iCalRecurrenceRule+SOGo.m delete mode 100644 UI/Scheduler/images/next_week.gif delete mode 100644 UI/Scheduler/images/previous_week.gif delete mode 100644 UI/Scheduler/skycalendar.js rename UI/Templates/{ChangeLog => ChangeLog.upstream} (100%) create mode 100644 UI/Templates/ContactsUI/UIxContactFoldersView.wox create mode 100644 UI/Templates/ContactsUI/UIxContactSelector.wox create mode 100644 UI/Templates/ContactsUI/UIxContactsAclsSelection.wox create mode 100644 UI/Templates/ContactsUI/UIxContactsAddressBooksSelection.wox create mode 100644 UI/Templates/ContactsUI/UIxContactsCalendarsSelection.wox create mode 100644 UI/Templates/ContactsUI/UIxContactsFilterPanel.wox create mode 100644 UI/Templates/ContactsUI/UIxContactsListViewContainer.wox create mode 100644 UI/Templates/ContactsUI/UIxContactsMailerSelection.wox delete mode 100644 UI/Templates/MailerUI/UIxMailAccountsView.wox create mode 100644 UI/Templates/MailerUI/UIxMailFolderMenu.wox delete mode 100644 UI/Templates/MailerUI/UIxMailPanelFrame.wox create mode 100644 UI/Templates/MailerUI/UIxMailPopupView.wox delete mode 100644 UI/Templates/MailerUI/UIxMailSortableTableHeader.wox create mode 100644 UI/Templates/MailerUI/UIxMailSplashView.wox delete mode 100644 UI/Templates/MailerUI/UIxMailToolbar.wox create mode 100644 UI/Templates/MailerUI/UIxMailTreeBlockJS.wox rename UI/Templates/{ => MailerUI}/UIxSieveEditor.wox (96%) rename UI/{ => Templates}/MainUI/SOGoGroupPage.wox (100%) rename UI/{ => Templates}/MainUI/SOGoGroupsPage.wox (100%) rename UI/{ => Templates}/MainUI/SOGoRootPage.wox (100%) create mode 100644 UI/Templates/MainUI/SOGoUserHomePage.wox create mode 100644 UI/Templates/SchedulerUI/UIxAppointmentEditor.wox rename UI/Templates/{ => SchedulerUI}/UIxAppointmentProposal.wox (92%) create mode 100644 UI/Templates/SchedulerUI/UIxAppointmentView.wox rename UI/Templates/{ => SchedulerUI}/UIxAptTableView.wox (87%) create mode 100644 UI/Templates/SchedulerUI/UIxCalAptListView.wox rename {Misc/ZideStore/UI-X/Scheduler => UI/Templates/SchedulerUI}/UIxCalBackForthNavView.wox (96%) create mode 100644 UI/Templates/SchedulerUI/UIxCalCalendarsListView.wox create mode 100644 UI/Templates/SchedulerUI/UIxCalDateLabel.wox create mode 100644 UI/Templates/SchedulerUI/UIxCalDateSelector.wox rename UI/Templates/{ => SchedulerUI}/UIxCalDayChartview.wox (94%) rename UI/Templates/{ => SchedulerUI}/UIxCalDayListview.wox (93%) rename UI/Templates/{ => SchedulerUI}/UIxCalDayOverview.wox (93%) create mode 100644 UI/Templates/SchedulerUI/UIxCalDayTable.wox create mode 100644 UI/Templates/SchedulerUI/UIxCalDayView.wox create mode 100644 UI/Templates/SchedulerUI/UIxCalFilterPanel.wox create mode 100644 UI/Templates/SchedulerUI/UIxCalInlineAptView.wox rename UI/Templates/{ => SchedulerUI}/UIxCalInlineMonthOverview.wox (100%) create mode 100644 UI/Templates/SchedulerUI/UIxCalMainView.wox rename UI/Templates/{ => SchedulerUI}/UIxCalMonthOverview.wox (91%) create mode 100644 UI/Templates/SchedulerUI/UIxCalMonthView.wox rename UI/Templates/{ => SchedulerUI}/UIxCalParticipationStatusView.wox (100%) rename UI/Templates/{ => SchedulerUI}/UIxCalScheduleOverview.wox (100%) rename UI/Templates/{ => SchedulerUI}/UIxCalSelectTab.wox (100%) create mode 100644 UI/Templates/SchedulerUI/UIxCalTasksListView.wox create mode 100644 UI/Templates/SchedulerUI/UIxCalWeekChartview.wox create mode 100644 UI/Templates/SchedulerUI/UIxCalWeekColumnsview.wox create mode 100644 UI/Templates/SchedulerUI/UIxCalWeekListview.wox create mode 100644 UI/Templates/SchedulerUI/UIxCalWeekOverview.wox create mode 100644 UI/Templates/SchedulerUI/UIxCalWeekView.wox rename UI/Templates/{ => SchedulerUI}/UIxCalYearOverview.wox (85%) create mode 100644 UI/Templates/SchedulerUI/UIxDatePicker.wox rename UI/Templates/{ => SchedulerUI}/UIxFilterList.wox (100%) create mode 100644 UI/Templates/SchedulerUI/UIxFreeBusyUserSelector.wox create mode 100644 UI/Templates/SchedulerUI/UIxFreeBusyUserSelectorTable.wox rename UI/Templates/{ => SchedulerUI}/UIxSortButton.wox (100%) create mode 100644 UI/Templates/SchedulerUI/UIxTaskEditor.wox create mode 100644 UI/Templates/SchedulerUI/UIxTaskProposal.wox create mode 100644 UI/Templates/SchedulerUI/UIxTaskView.wox create mode 100644 UI/Templates/SchedulerUI/UIxTimeDateControl.wox create mode 100644 UI/Templates/UIxAclEditor.wox delete mode 100644 UI/Templates/UIxAppointmentEditor.wox delete mode 100644 UI/Templates/UIxAppointmentPrintview.wox delete mode 100644 UI/Templates/UIxAppointmentView.wox delete mode 100644 UI/Templates/UIxCalBackForthNavView.wox delete mode 100644 UI/Templates/UIxCalDateLabel.wox delete mode 100644 UI/Templates/UIxCalDayPrintview.wox delete mode 100644 UI/Templates/UIxCalInlineAptView.wox delete mode 100644 UI/Templates/UIxCalMonthPrintview.wox delete mode 100644 UI/Templates/UIxCalWeekChartview.wox delete mode 100644 UI/Templates/UIxCalWeekColumnsview.wox delete mode 100644 UI/Templates/UIxCalWeekListview.wox delete mode 100644 UI/Templates/UIxCalWeekOverview.wox delete mode 100644 UI/Templates/UIxCalWeekPrintview.wox delete mode 100644 UI/Templates/UIxContactSelector.wox delete mode 100644 UI/Templates/UIxContactsSelectionView.wox delete mode 100644 UI/Templates/UIxDatePicker.wox delete mode 100644 UI/Templates/UIxDatePickerScript.wox create mode 100644 UI/Templates/UIxException.wox create mode 100644 UI/Templates/UIxJSClose.wox create mode 100644 UI/Templates/UIxSortableTableHeader.wox delete mode 100644 UI/Templates/UIxTimeDateControl.wox delete mode 100644 UI/Templates/UIxTimeSelector.wox create mode 100644 UI/Templates/UIxToolbar.wox create mode 100644 UI/Templates/UIxUserLogoff.wox rename UI/WebServerResources/{ChangeLog => ChangeLog.upstream} (100%) create mode 100644 UI/WebServerResources/ContactsUI.css create mode 100644 UI/WebServerResources/ContactsUI.js create mode 100644 UI/WebServerResources/HTMLElement.js create mode 100644 UI/WebServerResources/HTMLInputElement.js create mode 100644 UI/WebServerResources/HTMLTableElement.js create mode 100644 UI/WebServerResources/HTMLUListElement.js create mode 100644 UI/WebServerResources/JavascriptAPIExtensions.js create mode 100644 UI/WebServerResources/MailerUI.css create mode 100644 UI/WebServerResources/MailerUI.js create mode 100644 UI/WebServerResources/SOGoDragAndDrop.js create mode 100644 UI/WebServerResources/SOGoDragHandles.js rename UI/{MainUI/homepage.js => WebServerResources/SOGoUserHomePage.js} (100%) create mode 100644 UI/WebServerResources/SchedulerUI.css create mode 100644 UI/WebServerResources/SchedulerUI.js create mode 100644 UI/WebServerResources/Search-bar.png create mode 100644 UI/WebServerResources/UIxAclEditor.css create mode 100644 UI/WebServerResources/UIxAclEditor.js create mode 100644 UI/WebServerResources/UIxAppointmentEditor.css create mode 100644 UI/WebServerResources/UIxContactEditor.css create mode 100644 UI/WebServerResources/UIxFreeBusyUserSelector.js create mode 100644 UI/WebServerResources/UIxMailEditor.css create mode 100644 UI/WebServerResources/UIxMailEditor.js delete mode 100644 UI/WebServerResources/UIxMailListView.js create mode 100644 UI/WebServerResources/UIxTaskEditor.css create mode 100644 UI/WebServerResources/UIxTaskEditor.js create mode 100644 UI/WebServerResources/abcard.gif create mode 100644 UI/WebServerResources/accepted.png create mode 100644 UI/WebServerResources/account-settings.png create mode 100644 UI/WebServerResources/add-addressbook.png create mode 100644 UI/WebServerResources/add-contact.gif rename UI/{Scheduler/images => WebServerResources}/apt_icon_private.gif (100%) create mode 100644 UI/WebServerResources/arrow-lft-sharp.gif create mode 100644 UI/WebServerResources/arrow-rit-sharp.gif create mode 100644 UI/WebServerResources/busy.gif create mode 100644 UI/WebServerResources/chair.png create mode 100644 UI/WebServerResources/choose-date.png create mode 100644 UI/WebServerResources/create-account.png create mode 100644 UI/WebServerResources/day-view.png create mode 100644 UI/WebServerResources/declined.png create mode 100644 UI/WebServerResources/delete.png create mode 100644 UI/WebServerResources/downstairs.gif create mode 100644 UI/WebServerResources/dtree.css create mode 100644 UI/WebServerResources/dtree.js create mode 100644 UI/WebServerResources/edit.png create mode 100644 UI/WebServerResources/empty.gif rename UI/{Scheduler/images => WebServerResources}/first.gif (100%) create mode 100644 UI/WebServerResources/generic.css create mode 100644 UI/WebServerResources/goto-today.png rename UI/{Scheduler/images => WebServerResources}/green_corner.gif (100%) rename UI/{Scheduler/images => WebServerResources}/icon_popupcalendar.gif (100%) rename UI/{Scheduler/images => WebServerResources}/icon_view_chart.gif (100%) rename UI/{Scheduler/images => WebServerResources}/icon_view_chart_inactive.gif (100%) rename UI/{Scheduler/images => WebServerResources}/icon_view_columns.gif (100%) rename UI/{Scheduler/images => WebServerResources}/icon_view_columns_inactive.gif (100%) rename UI/{Scheduler/images => WebServerResources}/icon_view_list.gif (100%) rename UI/{Scheduler/images => WebServerResources}/icon_view_list_inactive.gif (100%) rename UI/{Scheduler/images => WebServerResources}/icon_view_overview.gif (100%) rename UI/{Scheduler/images => WebServerResources}/icon_view_overview_inactive.gif (100%) rename UI/{Scheduler/images => WebServerResources}/invisible_space_2.gif (100%) rename UI/{Scheduler/images => WebServerResources}/last.gif (100%) create mode 100644 UI/WebServerResources/lori_16x16.ico delete mode 100644 UI/WebServerResources/mailer-compose.css delete mode 100644 UI/WebServerResources/mailer.css delete mode 100644 UI/WebServerResources/mailer.js create mode 100644 UI/WebServerResources/manage-filters.png create mode 100644 UI/WebServerResources/manage-imap.png create mode 100644 UI/WebServerResources/manage-newsgroups.png create mode 100644 UI/WebServerResources/manage-rss.png create mode 100644 UI/WebServerResources/month-view.png create mode 100644 UI/WebServerResources/multiweek-view.png create mode 100644 UI/WebServerResources/needs-action.png create mode 100644 UI/WebServerResources/new-card.png create mode 100644 UI/WebServerResources/new-event.png create mode 100644 UI/WebServerResources/new-list.png create mode 100644 UI/WebServerResources/new-task.png rename UI/{Scheduler/images => WebServerResources}/next.gif (100%) rename {Misc/ZideStore/UI-X/Scheduler/images => UI/WebServerResources}/next_week.gif (100%) create mode 100644 UI/WebServerResources/offline-settings.png create mode 100644 UI/WebServerResources/optional-participant.png rename UI/{Scheduler/images => WebServerResources}/previous.gif (100%) rename {Misc/ZideStore/UI-X/Scheduler/images => UI/WebServerResources}/previous_week.gif (100%) create mode 100644 UI/WebServerResources/properties.png create mode 100644 UI/WebServerResources/prototype.js create mode 100644 UI/WebServerResources/read-messages.png create mode 100644 UI/WebServerResources/remove-addressbook.png create mode 100644 UI/WebServerResources/remove-contact.gif create mode 100644 UI/WebServerResources/required-participant.png create mode 100644 UI/WebServerResources/search-messages.png rename UI/{Scheduler => WebServerResources}/skycalendar.html (87%) rename UI/{Scheduler/English.lproj => WebServerResources}/skycalendar.js (100%) create mode 100644 UI/WebServerResources/submenu-active.gif create mode 100644 UI/WebServerResources/submenu.gif delete mode 100644 UI/WebServerResources/tbtv_junction2_17x17.gif create mode 100644 UI/WebServerResources/tbtv_space_17x17.gif create mode 100644 UI/WebServerResources/tentative.png rename UI/{MailerUI/Images => WebServerResources}/treeview_corner.gif (100%) rename UI/{MailerUI/Images => WebServerResources}/treeview_corner_minus.gif (100%) rename UI/{MailerUI/Images => WebServerResources}/treeview_corner_plus.gif (100%) rename UI/{MailerUI/Images => WebServerResources}/treeview_junction.gif (100%) rename UI/{MailerUI/Images => WebServerResources}/treeview_leaf.gif (100%) rename UI/{MailerUI/Images => WebServerResources}/treeview_leaf_corner.gif (100%) rename UI/{MailerUI/Images => WebServerResources}/treeview_line.gif (100%) rename UI/{MailerUI/Images => WebServerResources}/treeview_minus.gif (100%) rename UI/{MailerUI/Images => WebServerResources}/treeview_plus.gif (100%) rename UI/{MailerUI/Images => WebServerResources}/treeview_space.gif (100%) delete mode 100644 UI/WebServerResources/uix.css create mode 100644 UI/WebServerResources/week-view.png create mode 100644 UI/WebServerResources/write-message.png create mode 100644 UI/WebServerResources/write.png create mode 100644 fhswobundle.make diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 00000000..c532738d --- /dev/null +++ b/ChangeLog @@ -0,0 +1,1784 @@ +2006-12-22 Wolfgang Sourdeau + + * UI/MailerUI/UIxMailMainFrame.m ([UIxMailMainFrame + -composeAction]): method imported from removed container modules. + ([UIxMailMainFrame -mailFolderName]): method imported from removed + container modules. + + * UI/MailerUI/UIxMailPopupView.m: a new special popup component + for wrapping UIxMailView with the "popupview" action. + + * UI/MailerUI/UIxMailAccountView.m: renamed to UIxMailSplashView, + since its the component that displays the same splash screen than + the one in Thunderbird/Icedove. + + * UI/MailerUI/UIxMailAccountViewContainer.[hm], + UI/MailerUI/UI/MailerUI/UIxMailAccountsView.m, + UI/MailerUI/UIxMailListViewContainer.[hm], + UI/MailerUI/UIxMailViewContainer.[hm]: removed + +2006-12-20 Wolfgang Sourdeau + + * UI/WebServerResources/HTMLElement.js: replaced the functional + selectNode() and deselectNode() functions with select() and + deselect() methods of HTMLElement. + + * UI/WebServerResources/ContactsUI.js: cleanup, most of the + events are initialized from here now instead of in the HTML code. + + * UI/Contacts/UIxContactFoldersView.m ([UIxContactFoldersView + -checkRightsAction]): new method similar to the one with the same + name in UIxCalMainView.m. + + * UI/Common/UIxAclEditor.m ([UIxAclEditor -saveAclsAction]): added + code to handle the publishing of freebusy information. + +2006-12-19 Wolfgang Sourdeau + + * UI/Scheduler/UIxCalMainView.m ([UIxCalMainView + -checkRightsAction]): new action method that returns a + comma-separated list of boolean values matching the right of the + current user to "view" (as a permission) each foreign calendar + stored in his preferences. + + * SoObjects/SOGo/SOGoObject.m ([SOGoObject -setOwner:newOwner]): + new method that sets a customOwner, which can be returned with + ownerInContext it set. + + * SoObjects/Appointments/SOGoAppointmentFolder.m + ([SOGoAppointmentFolder + -fetchFields:_fieldsfromFolder:_folderfrom:_startDateto:_endDatecomponent:_component]): no longer set the owner of elements here. + +2006-12-15 Wolfgang Sourdeau + + * SoObjects/SOGo/SOGoUserFolder.m: same as for SOGoContactFolders + below, but for the Contacts and Calendar collections. + + * SoObjects/SOGo/SOGoAclsFolder.m: convert the class to user the + new acl facilities method from sope-gdl/GCSFolder.m. + + * SoObjects/Contacts/SOGoContactFolders.m ([SOGoContactFolders + -roleOfUser:uidinContext:context]): new method that returns + SOGoRole_Assistant when the user is an assistant or a delegate on + the "personal" ab object. This is so that setting roles on the + SOGoContactFolders object is not required. + +2006-12-14 Wolfgang Sourdeau + + * Main/SOGo.m: declare "Freebusy" permissions for the top objects. + + * UI/Contacts/UIxContactsAclsSelection.m: new component specific + to the handling of the user selection for the acls. + + * SoObjects/SOGo/SOGoPermissions.[hm]: new module that extends the + values from SoPermissions with ones specific to SOGo. + + * SoObjects/SOGo/SOGoAclsFolder.[hm]: new class module that + handles the storage for the acls. + + * SoObjects/Appointments/SOGoCalendarComponent.[hm]: new parent + class for SOGoAppointmentObject and SOGoTaskObject. + + * UI/Common/UIxAclEditor.[hm]: new component that provides a + general editor for folder acls. + + * SoObjects/SOGo/NSString+Utilities.[hm]: old "NSString+URL" + renamed. + ([NSString -davMethodToObjC]): method that returns the method name + for a DAV property implementation. + + * SoObjects/SOGo/NSArray+Utilities.m: new extension module to + NSArray. + ([NSArray -stringsWithFormat:format]): new method that returns + formatted occurences of the strings stored in the array. + + * SoObjects/SOGo/SOGoDAVRendererTypes.m ([SOGoDAVSet + +davSetWithArray:newValuesofValuesTaggedAs:newValueTag]): a new + subclass module of SoWebDAVValue that supports collections of + properties of the same type. + +2006-11-21 Wolfgang Sourdeau + + * SoObjects/Mailer/SOGoMailAccount.m ([SOGoMailAccount + -lookupFolder:ofClassNamed:inContext:]): added the ability to + configure the name of the SOGoDraftFolders with the ud var + "SOGoDraftsFolderName". + +2006-11-17 Wolfgang Sourdeau + + * SoObjects/SOGo/SOGoObject.m ([SOGoObject + -userTimeZone:username]): new method that returns the timezone for + the specified user depending on his preferences and the server + defaults + + * SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject + -stringForData:partInfo:]): take the encoding into account and + translate the text to "normal" before processing the charset data. + +2006-11-15 Wolfgang Sourdeau + + * UI/WebServerResources/generic.js: the progress indicator is on + when loading the page so we turn it off, and we turn it back on + whenever we switch to another module... + + * UI/WebServerResources/SchedulerUI.js: make sure the day view + synchronization mechanism works everywhere. + + * UI/WebServerResources/generic.js: the log window is not only + visible when UIxDebugEnabled is set. + + * UI/WebServerResources/SchedulerUI.js: the month overview's day + cells are now initialized with the DOM event interface methods + instead of with html attributes. + + * UI/Templates/MailerUI/UIxMailView.wox: don't display useless + headers (should be made configurable at some point)... + + * OGoContentStore/sql/generate-folderinfo-sql-for-users.sh: drop + "not null" constraint on startdate, enddate, isopaque, + participants and partmails. + +2006-11-14 Wolfgang Sourdeau + + * UI/Scheduler/UIxCalDayTable.m ([UIxCalDayTable + -hoursToDisplay]): prevent a crash by retaining the + "hoursToDisplay" array after it's created. + ([UIxCalDayTable -clickableHourCellClass]): new method for the new + clickable hours DIV. + + * UI/WebServerResources/SchedulerUI.js: made the event + participation status modification asynchronous, which also fixes a + bug where the window would sometimes close before the accept or + decline action was completed. Also, adapted the event handling + related to the days or weeks view with the new DIV-based layout. + + * UI/Scheduler/UIxCalInlineAptView.m: same as the first below... + + * UI/Scheduler/UIxCalDayTable.m: enhanced to provide the new + DIV-based presentation of the days and weeks. + + * SoObjects/Appointments/SOGoTaskObject.m: same as below... + + * SoObjects/Appointments/SOGoAppointmentObject.m: lookupName:... + might return an exception so we have to handle it if we don't + wanna crash... + +2006-11-13 Wolfgang Sourdeau + + * UI/WebServerResources/SchedulerUI.js: updated the list + initialization code to use the new event management scheme, adding + what was missing to be able to delete events and tasks again. + + * UI/WebServerResources/MailerUI.js: added code to activate the + "Get mails" button. Fixed a bug which prevented messages to be + deleted. + + * UI/WebServerResources/UIxFreeBusyUserSelector.js: handle tab + navigation and focus handling of INPUTs. + +2006-11-10 Wolfgang Sourdeau + + * UI/WebServerResources/MailerUI.js: added code to handle the + possible drag and drop events to manager in the mail module. + Moving messages, opening parent folders, ... + + * UI/WebServerResources/SOGoDragAndDrop.js: new file containing + the drag and drop manager as well as the interface to HTMLElement + to trigger drag and drop events. + + * UI/MailerUI/UIxMailView.m ([UIxMailView -moveAction]): new + action to move the current message to the mailbox named after the + value of parameter "tofolder". + + * SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject + -moveToFolderNamed:folderNameinContext:]): new method base on + -trashInContext:. + +2006-11-09 Wolfgang Sourdeau + + * UI/WebServerResources/generic.js: added and activated many + "load" handlers to configure generic widgets used across the + modules. More events are now handled in a DOM-fashion way instead + of by setting the relative attributes in the templates. + + * UI/Templates/UIxSortableTableHeader.wox: all the events are + declared from the javascript DOM onload handlers. + + * UI/Templates/UIxPageFrame.wox: load the new SOGoDragHandles.js + library. + + * UI/Templates/MailerUI/UIxMailListView.wox: all the events are + declared from the javascript DOM onload handlers. + + * UI/MailerUI/UIxMailListView.m: removed all the JS methods since + we want everything to be separated from each other, as much as + possible. + + * UI/WebServerResources/SOGoDragHandles.js: new module containing + the "SOGoDragHandlesInterface", implementing methods that can be + attributed to DIV so that they can be used as drag handles. + + * SoObjects/Mailer/SOGoDraftObject.m ([NSString + -asQPSubjectString]): initialize the tmp strings with '0' to make + sure they don't contain garbage. + +2006-11-08 Wolfgang Sourdeau + + * UI/WebServerResources/MailerUI.js: register the messageList + table as a dragging source and the leaf of the navigation tree as + dnd destinations to the DNDManager. + + * UI/WebServerResources/generic.js: initialize tabs from the + "unload" event listener that is added programmatically instead of + from the template... Also, added the new DNDManager object. + + * UI/WebServerResources/HTMLTableElement.js: added code to + simulate XUL drag n drop events. This code will possibly be moved + to HTMLElement.js instead later... + + * SoObjects/Contacts/SOGoContactLDAPFolder.m + ([SOGoContactLDAPFolder -_qualifierForFilter:filter]): same as + below. + + * SoObjects/Contacts/SOGoContactGCSFolder.m ([SOGoContactGCSFolder + -_qualifierForFilter:filter]): only search records which starts + with the specified pattern. + +2006-11-07 Wolfgang Sourdeau + + * SoObjects/Mailer/SOGoDraftObject.m ([NSString + -asQPSubjectString]): new method that returns the special QP + string with its qp declaration for email subjects. + ([SOGoDraftObject -bodyPartForText]) + ([SOGoDraftObject -mimeMessageForContentWithHeaderMap:]): don't + double-encode data in UTF-8. + + * UI/Scheduler/UIxComponentEditor.m ([UIxComponentEditor + -newStartDate]): new method to determine the start date depending + on the URL parameters, the current day and the current time. + ([UIxComponentEditor -toolbar]): new method to determine the + filename of the toolbar that should be drawn depending on the + ownership and the list of attendees of the task/event wrt to the + current user... + + * UI/Scheduler/UIxTimeDateControl.m ([UIxTimeDateControl + -setDayStartHour:aStartHour]): adjust the minutes to the next + quarter of hour, if not already set to a quarter. + + * UI/WebServerResources/UIxAppointmentEditor.js, + UI/WebServerResources/UIxTaskEditor.js: added code to manage start + date change. + +2006-11-03 Wolfgang Sourdeau + + * UI/Scheduler/UIxComponentEditor.m ([UIxComponentEditor + -loadValuesFromComponent:component]): handles access class + (privacy) and status. + + * UI/Contacts/UIxContactsListViewContainer.m + ([UIxContactsListViewContainer -additionalFolders]): return nil if + [self additionalAddressBooks] returns an empty string. + +2006-11-02 Wolfgang Sourdeau + + * UI/Scheduler/UIxCalMonthView.m ([UIxCalMonthView + rangesOf7Days]): enhanced and debugged algorithm to feed the array + with slices where the first day is still in the requested month. + + * UI/Templates/UIxPageFrame.wox: the logConsole is created only on + non-popup pages. + + * UI/SOGoUI/SOGoAptFormatter.m: added code to handle the display + of events in the day boxes of the calendar's monthly view. + + * SoObjects/Appointments/SOGoTaskObject.m ([SOGoTaskObject + -davContentType]): declare "text/calendar". + + * SoObjects/Appointments/SOGoAppointmentObject.m + ([SOGoAppointmentObject -davContentType]): declare + "text/calendar". + + * SoObjects/Appointments/SOGoAppointmentFolder.m + ([SOGoAppointmentFolder -lookupName:inContext:acquire:]): certain + HTTP methods are handled by SOPE and requires nil to be returned, + this method now invokes the new + "requestNamedIsHandledLater:inContext:" method to check that. + ([SOGoAppointmentFolder + -requestNamedIsHandledLater:nameinContext:context]): new methods + that returns "YES" only for the "OPTIONS" http method (for now...). + ([SOGoAppointmentFolder -davComplianceClassesInContext:]): + overloaded method to append the "access-control" and + "calendar-access" DAV abilities to the initial declaration. + + * UI/Scheduler/UIxCalMonthView.[hm]: rewritten module entirely to + imitate the look of Sunbird/Lightning's monthly view. + + * UI/Scheduler/UIxCalMonthView.[hm]: renamed to + UIxCalMonthViewOld.[hm]. + +2006-11-01 Wolfgang Sourdeau + + * UI/Scheduler/UIxFreeBusyUserSelectorTable.m + ([UIxFreeBusyUserSelectorTable -currentContactHasStatus]): new + method. + ([UIxFreeBusyUserSelectorTable -currentContactStatusImage]): + returns an image name based on the participation status of the + current attendee. + + * UI/WebServerResources/SchedulerUI.js: same strip down as for + generic.js below. + + * UI/Contacts/UIxContactsListViewContainer.m ([UIxContactsListViewContainer -additionalAddressBooks]) + ([UIxContactsListViewContainer -additionalFolders]) + ([UIxContactsListViewContainer -setCurrentAdditionalFolder:newCurrentAdditionalFolder]) + ([UIxContactsListViewContainer -currentAdditionalFolder]): new + methods to handle the external addressbooks a user has subscribed + too, by retriving them from his preferences. + + * UI/Contacts/UIxContactFoldersView.m ([UIxContactFoldersView + -updateAdditionalAddressBooksAction]): new method that updates the + user settings with the list of addressbook he has subscribed to. + + * UI/Contacts/UIxContactsAddressBooksSelection.m: new component + module for the address book selector. + + * UI/Templates/ContactsUI/UIxContactsListViewContainer.wox: added + a toolbar with two buttons ("add" and "remove") to manage the + additional addressbooks a user might subscribe to. + + * UI/WebServerResources/ContactsUI.js: added code to handle + "external addressbooks" from the Javascript point-of-view, by + extending existing methods and adding code for the "add ab" and + "remove ab" buttons. + + * UI/WebServerResources/generic.js: moved extensions methods to + DOM elements to separate files for better clarity. + + * UI/Common/UIxPageFrame.m ([UIxPageFrame -pageContentClasses]): + new method that returns "pageContent" as class, but also "popup" + for the DIV where the page content lies, so that we can manipulate + the content of popup's with CSS identifiers. + +2006-10-31 Wolfgang Sourdeau + + * UI/Scheduler/UIxCalInlineAptView.m ([UIxCalInlineAptView + -displayStyle]): new method that returns a string containing the + css style relative to the current appointment cell. This code is + currently inactive but might be reused later. + + * UI/WebServerResources/SchedulerUI.js: added code to handle the + display of the selected day (the day pointed by the mouse, or the + current day when changing the view). + + * UI/Scheduler/UIxCalDayTable.m ([UIxCalDayTable + -dayCellClasses]): new method that returns a string containing the + css classes applicable to the current cell, depending on the + position of the day in the week, the day of today and the + requested day. + + * UI/Scheduler/UIxCalCalendarsListView.m ([UIxCalCalendarsListView + -currentContactAptBorder]): new method that returns the + appropriate border color for the specified user. + + * SoObjects/Appointments/SOGoAppointmentObject.m + ([SOGoAppointmentObject + -saveContentString:contentStringbaseVersion:baseVersion]): + overloaded method that parse new events and detects if they have + an organizer or not. If they are new and have no organizer set + (Sunbird/Lightning...), the owner of the event is set as + organizer. + + * SoObjects/Appointments/iCalEntityObject+Agenor.[hm]: new + category that provides facility methods and interfaces to the + AgenorUserManager. + + * SoObjects/Contacts/product.plist: give full access to ANY + authenticated user, not just the owner (to every objects...). + +2006-10-30 Wolfgang Sourdeau + + * UI/WebServerResources/UIxFreeBusyUserSelector.js: make sure + every replica widgets are declared as such to their master + counterpart. Take the days into account when displaying the time + range taken by the appointment. + + * UI/Scheduler/UIxComponent+Agenor.m ([UIxComponent + -getICalPersonsFromValue:selectorValue]): method taken from + UIxFreeBusyUserSelector, that is shared both by + UIxFreeBusyUserSelector and UIxFreeBusyUserSelectorTable. + + * SoObjects/Appointments/SOGoAppointmentFolder.m + ([SOGoAppointmentFolder + -fetchFields:_fieldsfromFolder:_folderfrom:_startDateto:_endDatecomponent:_component]): reverted to search algorithm to search for events happening outside 0 or 1 (at most) boundary of the timerange. + + * UI/Scheduler/UIxFreeBusyUserSelectorTable.[hm]: new subcomponent + derived and taken as a subset of UIxFreeBusyUserSelector that + implements the table part of the FreeBusy view. Most of the + methods of UIxFreeBusyUserSelector relative to that table were + moved into UIxFreeBusyUserSelectorTable, which can also be used as + a standalone view for AJAX operations. + +2006-10-27 Wolfgang Sourdeau + + * SoObjects/Contacts/SOGoContactLDAPEntry.m ([SOGoContactLDAPEntry + -vCard]): change reverted. + + * UI/Contacts/UIxContactEditor.m: check whether the client contact + folder has selector "globallyUniqueObjectId" before calling that + method. + + * SoObjects/Contacts/SOGoContactLDAPEntry.m ([SOGoContactLDAPEntry + -vCard]): the "setVClass" NGVCard method really is "setClass" + instead. + + * SoObjects/Contacts/SOGoContactLDAPFolder.m + ([SOGoContactLDAPFolder -_searchAttributes]): fixed typo to + request the "streetAddress" instead of the "streetaddress". + ([SOGoContactLDAPFolder -_qualifierForFilter:filter]): lookup + mails that *contain*, and not just *start with* the search + pattern. + + * SoObjects/Contacts/SOGoContactLDAPEntry.m ([SOGoContactLDAPEntry + -vCard]): mark address returned from LDAP as the work address. + + * UI/Templates/SchedulerUI/UIxCalInlineAptView.wox: made the whole + span covered with the anchor, not only the textual information + within. + + * UI/Templates/SchedulerUI/UIxCalMainView.wox: specify the type + argument (event or task) to newEvent in the appointmentListMenu. + Make the appointmentsListView display the appointmentsListMenu. + + * UI/SOGoUI/SOGoAptFormatter.m: enlarge the text size limit from + 12 to 50 before displaying "...". + ([SOGoAptFormatter -fullDetailsForApt::]): display location only + if its length > 0, whether location itself is nil or not... + ([SOGoAptFormatter -tooltipForApt::_refDate]): display information + of which the length > 0. + +2006-10-26 Wolfgang Sourdeau + + * UI/WebServerResources/UIxAppointmentEditor.js: correctly handles + french and ISO dates. + + * UI/Scheduler/UIxFreeBusyUserSelector.[hm]: added code an ivars + from UIxContactSelector to handle contact lists (current and + additional contacts). + + * UI/MainUI/SOGoUserHomePage.m ([SOGoUserHomePage + -_freeBusyAsText]): added handling of an "additional"-named query + parameter that describe the number of additional days after + enddate that should be returned. + + * UI/Contacts/UIxContactFoldersView.m ([UIxContactFoldersView + -_responseForResults:results]): give priority to results with + "c_uid" fields. If none returned, use the first contact received. + + * OGoContentStore/OCSiCalFieldExtractor.m ([OCSiCalFieldExtractor + -extractQuickFieldsFromEvent:_event]): changed "TENTATIVE" code to + 2 and "CANCELLED" to 0. + +2006-10-25 Wolfgang Sourdeau + + * UI/WebServerResources/UIxAppointmentEditor.js: handle conversion + of start and end dates to short string dates. + + * UI/MainUI/SOGoUserHomePage.m ([SOGoUserHomePage + -readFreeBusyAction]): new method that returns an array of numbers + corresponding to the state in the freebusy of each "quarter of an + hour" between the "sday" and "eday" date parameters passed in the + url. This permits to handle the display of the freebusy with Ajax + mechanisms. + ([SOGoUserHomePage -_freeBusyAsText]): add 2 days to the end date + since the free busy displays 2 days ahead. + + * UI/Contacts/UIxContactFoldersView.m ([UIxContactFoldersView + -contactSearchAction]): new action that returns the uid and the + username + email of the user whose name contain the value of the + "search" url parameter. + + * SoObjects/Appointments/SOGoAppointmentFolder.m + ([SOGoAppointmentFolder + -fetchFreebusyInfosFrom:_startDateto:_endDate]): added fields + useful for the computing of the status of the freebusy. + + * UI/Scheduler/UIxFreeBusyUserSelector.m ([UIxFreeBusyUserSelector + -init]): new component that incarnates a user selector for events + inspired by the new one found in Thunderbird Lightning. + +2006-10-23 Wolfgang Sourdeau + + * UI/WebServerResources/generic.js: added code to enable or + disable anchor visually (following our internal algorithm). + + * UI/Scheduler/UIxComponentEditor.m ([UIxComponentEditor -init]): + added new "url" ivar with its classic accessors. + ([UIxComponentEditor -urlButtonClasses]): new method that returns + the class strings for the url button on the appointment/task + editor (depending on the validity of the url). + + * UI/Templates/SchedulerUI/UIxTaskEditor.wox, + UI/Templates/SchedulerUI/UIxAppointmentEditor.wox: start rewriting + the template to match the Lightning's new task/appointment editor. + + * UI/Scheduler/UIxAppointmentEditor.m ([UIxAppointmentEditor -saveValuesIntoAppointment:_appointment]): initialize url from the components'url. + + * UI/Scheduler/UIxTaskEditor.m ([UIxTaskEditor -saveValuesIntoTask:_task]): initialize url from the components'url. + +2006-10-20 Wolfgang Sourdeau + + * SoObjects/Contacts/SOGoContactLDAPFolder.m + ([SOGoContactLDAPFolder + -lookupContactsWithFilter:filtersortBy:sortKeyordering:sortOrdering]): perform the searchs on objects which start with instead of contain the lookup key. + + * SoObjects/Appointments/SOGoAptMailNotification.[hm]: work on + iCalEntityObject instances instead of just iCalEvent's. + + * SoObjects/Appointments/SOGoAppointmentFolder.m + ([SOGoAppointmentFolder + -fetchFields:_fieldsfromFolder:_folderfrom:_startDateto:_endDatecomponent:_component]): set ownership of returned records by adding an "owner" key to the resulting dictionaries. + + * SoObjects/SOGo/NSObject+Owner.[hm]: removed module since it's a + bad way of handling ownership that way. + + * SoObjects/Contacts/SOGoContactLDAPFolder.m + ([SOGoContactLDAPFolder -_qualifierForFilter:filter]): search also + on "cn", just like Mozilla. + +2006-10-19 Wolfgang Sourdeau + + * UI/MailerUI/UIxMailToSelection.m ([UIxMailToSelection -to]): + "to" should be retained, otherwise it will be autoreleased and a + crash will occur. + + * UI/Contacts/UIxContactEditor.m ([UIxContactEditor + -writeAction]): updated method to fetch the card before initing + the snapshot. + + * OGoContentStore/OCSiCalFieldExtractor.m ([OCSiCalFieldExtractor + -extractQuickFieldsFromTodo:_task]): fixed to use NSNull instead + of NSNotFound. + + * UI/Scheduler/UIxTaskEditor.m ([UIxTaskEditor + -iCalStringTemplate]): start and due date are now optional. + + * UI/Scheduler/UIxTimeDateControl.m ([UIxTimeDateControl + -setDayStartHour:aStartHour]): added a new "isDisabled" ivar with + appropriate accessors to be settable through the templates. + + * UI/Scheduler/UIxDatePicker.m ([UIxDatePicker -init]): added a + new "isDisabled" ivar with appropriate accessors to be + settable through the templates. + + * UI/Scheduler/UIxComponentEditor.m ([UIxComponentEditor + -availableCalendars]): new method that list the calendars to which + the user has subscribed. + ([UIxComponentEditor -componentOwner]): returns the owner of the + editted object. + + * OGoContentStore/OCSiCalFieldExtractor.m ([OCSiCalFieldExtractor + -extractQuickFieldsFromTodo:_task]): set the start and enddate of + quickentries to null whenever each or all of them are null, by + providing an impossible timestamp from with NSNotFound as value. + +2006-10-18 Wolfgang Sourdeau + + * UI/WebServerResources/UIxMailEditor.js: update the algorithm + that handles the creation of new fields with the new APIs and the + new node structure on the page. + + * UI/Scheduler/UIxAppointmentEditor.m, + UI/Scheduler/UIxTaskEditor.m: + refactored to user UIxComponentEditor as parent class. + + * UI/Scheduler/UIxComponentEditor.[hm]: new class module + containing the methods common to the UIxTaskEditor and the + UIxAppointmentEditor. + +2006-10-17 Wolfgang Sourdeau + + * SoObjects/Appointments/SOGoAppointmentFolder.m + ([SOGoAppointmentFolder -doCalendarQuery:context]): now supports + the handling of time-ranges. + + * UI/WebServerResources/ContactsUI.js: specify a notification type as + parameters when onConfirmContactSelection in invoked. + + * UI/WebServerResources/generic.js: specify a notification type as + parameters when onContactRemove in invoked. + + * UI/WebServerResources/SchedulerUI.js: when the user deselects + all calendars, select his entry. + +2006-10-16 Wolfgang Sourdeau + + * UI/WebServerResources/SchedulerUI.js: edit and delete events + with their owner-relative urls. Generate a correct entry in the + css color table when a user is added to the calendars list. Put + the same color next to the user id. + + * UI/WebServerResources/generic.js: implemented some new helper + methods. + + * SoObjects/Appointments/SOGoAppointmentFolder.m + ([SOGoAppointmentFolder -deleteEntriesWithIds:ids]): don't delete + entries if their owner is not the current user. + + * UI/Scheduler/UIxCalInlineAptView.m ([UIxCalInlineAptView + -displayClasses]): return the correct class for the current event + representation depending on its owner. + + * UI/Scheduler/UIxCalCalendarsListView.m: added method to create + and associate a color for each user login depending on its + position in the list. + + * UI/Scheduler/UIxCalAptListView.m ([UIxCalAptListView + -currentRowCSSClass]): return the correct class for the current + row depending on the owner of the event. + + * UI/Contacts/UIxContactSelector.m ([UIxContactSelector + -setColors:colors]): new method to associate a color table with + each user in the list. + + * SoObjects/Appointments/SOGoAppointmentFolder.m + ([SOGoAppointmentFolder + -fetchFields:_fieldsfromFolder:_folderfrom:_startDateto:_endDatecomponent:_component]): associate each returned record with the owner of the table they are retrieved from. + + * SoObjects/SOGo/NSObject+Owner.[hm]: new extension module to + NSObject to associate an instance with a user. + +2006-10-13 Wolfgang Sourdeau + + * UI/WebServerResources/SchedulerUI.js: added handling of multiple + calendars. + + * UI/WebServerResources/ContactsUI.js: added handling of + notification of changes to contact selectors. + + * UI/WebServerResources/generic.js: added handling of notification + of changes to contact selectors. + + * UI/Scheduler/UIxCalMainView.m ([UIxCalMainView + -updateCalendarsAction]): proxy method to update the user + preference table with the new selected calendar uids. + + * UI/Contacts/UIxContactsListView.m ([UIxContactsListView + -calendarsContactsAction]): new method. + + * UI/Contacts/UIxContactSelector.m ([UIxContactSelector -setCheckedBoxes:boxes]) + ([UIxContactSelector -setHasCheckBoxes:aBool]) + ([UIxContactSelector -isCheckBoxChecked]): new accessors method to + permit the drawing of checkboxes instead of card icons. + + * UI/Scheduler/UIxCalCalendarsListView.m: new component class that + wrap a selector the the "Calendars" tab. + + * UI/Contacts/UIxContactsCalendarsSelection.m: buttons for the + new user calendar selector. + +2006-10-12 Wolfgang Sourdeau + + * UI/Templates/SchedulerUI/UIxAppointmentEditor.wox: time ranges + may cover hour 0 to hour 23. + + * UI/Scheduler/UIxAppointmentEditor.m ([UIxAppointmentEditor + -iCalStringFromQueryParameter:format:]): dates explicitly set to + utc tz. + + * UI/WebServerResources/SchedulerUI.js: manage both lists of + objects wrt to the toolbar actions. + + * UI/WebServerResources/generic.js: added code to the "String" + class to decode number-encoded char entities. + + * UI/Scheduler/UIxCalMainView.m ([UIxCalMainView + -batchDeleteAction]): new method to delete selected entries in the + lists. + + * SoObjects/Appointments/SOGoAppointmentFolder.m + ([SOGoAppointmentFolder -deleteEntriesWithIds:ids]): new method + that delete identified entries in batch. + + * UI/SOGoUI/UIxComponent.m ([UIxComponent + -jsCloseWithRefreshMethod:methodName]): new method with explicit purpose. + + * UI/Scheduler/UIxTaskEditor.m ([UIxTaskEditor -saveAction]), + UI/Scheduler/UIxAppointmentEditor.m ([UIxAppointmentEditor + -saveAction]), UI/MailerUI/UIxMailEditor.m ([UIxMailEditor + -sendAction]), UI/Contacts/UIxContactEditor.m ([UIxContactEditor + -saveAction]): + return a UIxJSClose component if everything went fine. + + * UI/Scheduler/UIxTaskEditor.h: interface extracted from + UIxTaskEditor.m. + + * UI/Scheduler/UIxAppointmentEditor.h: interface extracted from + UIxAppointmentEditor.m. + + * UI/Common/UIxJSClose.[hm]: new UIxComponent designed to display + a very light page with javascript code to close a window, by + calling a method on the opener if specified. This component is + designed to work as a response to form postings. + +2006-10-11 Wolfgang Sourdeau + + * SoObjects/Appointments/SOGoTaskObject.[hm]: clone of + SOGoAppointmentObject adapted for the handling of tasks. + + * SoObjects/Appointments/NSArray+Appointments.[hm]: category + extracted from SOGoAppointmentObject. + + * UI/Scheduler/UIxAppointmentEditor.m ([UIxAppointmentEditor + -saveUrl]): returns the url needed to POST the new form to. + redirect the user to /editAsAppointment instead of /edit, + so that SOGoAppointmentFolder can return the correct object type. + + * SoObjects/SOGo/NSObject+AptComparison.m ([NSObject + -compareAptsAscending:_other]): accept empty start or end dates. + + * SoObjects/Appointments/SOGoAppointmentFolder.m + ([SOGoAppointmentFolder + -fetchFields:_fieldsfromFolder:_folderfrom:_startDateto:_endDatecomponent:_component]): added a "component" parameter to match the query against the specified component types. Made startDate and endDate optional by ignoring them altogether in the query whenever one of them is nil. + ([SOGoAppointmentFolder -doCalendarQuery:context]): fetch + components of type "vtodo" as well as "vevent". + ([SOGoAppointmentFolder -lookupName:inContext:acquire:]): if the + url specified ends with AsTask or AsAppointment, returns the + an object of the appropriate class, otherwise deduce it from its + content if the HTTP method is "PUT", otherwise read its type from + the quick table. + + * OGoContentStore/OCSiCalFieldExtractor.m ([OCSiCalFieldExtractor + -extractQuickFieldsFromTodo:_task]): extract quick fields from + tasks. + + * UI/Scheduler/UIxCalView.m ([UIxCalView + -fetchCoreAppointmentsInfos]): replacement methods for + fetchCoreInfos but by retrieving object with component "vevent". + ([UIxCalView -fetchCoreTasksInfos]): same as above for "vtodo" + components. + + * UI/Scheduler/UIxCalTasksListView.[hm]: clone of + UIxCalAptListView adapted for the handling of tasks. + + * UI/Scheduler/UIxTaskProposal.[hm], + UI/Scheduler/UIxTaskView.[hm], UI/Scheduler/UIxTaskEditor.[hm]: + clones of the UIxAppointment* classes for the handling of tasks. + + * UI/WebServerResources/UIxTaskEditor.js: clone of + UIxAppointmentEditor adapted for the handling of tasks. + + * UI/WebServerResources/SchedulerUI.js: added support for tasks. + Scroll the daily view to the appropriate hour when an appointment + is selected in the appointments list. + +2006-10-05 Wolfgang Sourdeau + + * UI/Scheduler/UIxTimeDateControl.m ([UIxTimeDateControl + -setDayStartHour:aStartHour]): specifies the user timezone on the + given date. + + * UI/Scheduler/UIxAppointmentEditor.m: indicate DTSTAMP with "GMT" + as timezone. + + * SoObjects/SOGo/NSCalendarDate+SOGo.m ([NSCalendarDate -adjustedDate]) + ([NSCalendarDate -driftedDate]): methods made useless by a better + comprehension of the NSTimeZone API... + +2006-10-04 Wolfgang Sourdeau + + * UI/SOGoUI/UIxComponent.m ([UIxComponent -selectedDate]): call + new methods from the NSCalendarDate methods. + + * SoObjects/SOGo/NSCalendarDate+SOGo.m: module replacing and + extending UI/Scheduler/NSCalendarDate+Scheduler.m. + ([NSCalendarDate + +dateFromShortDateString:dateStringandShortTimeString:timeStringinTimeZone:timeZone]): new method that generates a date from two short string formatted as follow: "yyyymmdd" and "hhmm". Thismethod replaces a similar method from UIxComponent (noted below). + ([NSCalendarDate -adjustedDate]): this method returns another + instance set to the correct hour after the original date was set + from a non-GMT timezone. This date can be used for storage. + ([NSCalendarDate -driftedDate]): this method does exactly the + opposite of -adjutedDate, that is, it enables the method + hourOfDay, minuteOfHour etc... to return the values according to + the original date's timezone. This date CANNOT be used for storage. + + * UI/Scheduler/NSCalendarDate+Scheduler.m ([NSCalendarDate + -shortDateString]): new method that will return a "short date + string" (yyyymmdd) from a calendar date object. + + * UI/SOGoUI/UIxComponent.m ([UIxComponent + -_cDateFromShortDateString:dateStringandShortTimeString:timeString]): new method to compute the selected date from the "day" and "hm" query parameters (if found). This method replaces the old algorithm that was found in the "selectedDate" method. + + * Main/sogod.m (main): initialize the NSTimeZone's defaultTimeZone + to the value of SOGoServerTimeZone or "Canada/Eastern" if not found. + +2006-10-03 Wolfgang Sourdeau + + * UI/WebServerResources/SchedulerUI.js: added code to scroll the + view of the day at the height of hour 8:00. + + * UI/Scheduler/UIxCalView.m ([UIxCalView -dayStartHour]): returns 0. + ([UIxCalView -dayEndHour]): returns 24. + + * UI/Contacts/UIxContactFoldersView.m ([UIxContactFoldersView -defaultAction]) + ([UIxContactFoldersView -newAction]): invoke + _selectActionForApplication: on self with the proper attribute too. + + * UI/Contacts/UIxContactsSelectionViewContainer.m: removed since + we now use the action mechanism in UIxContactsListView to keep the + same view for the contact selectors and the regular contact view. + + * UI/Contacts/UIxContactsListViewContainer.[hm]: replaces + UIxContactsListViewContainerBase.[hm] + + * UI/Contacts/UIxContactsListView.[hm]: replaces UIxContactsListViewBase.[hm] + + * UI/WebServerResources/generic.js: generalized emailstring + handling functions. Generalized address book access functions. + + * UI/Contacts/UIxContactsListViewBase.m ([UIxContactsListViewBase + -isPopup]): return YES if the "popup" query parameter is set. + + * UI/Contacts/UIxContactFoldersView.m ([UIxContactFoldersView + -defaultAction]): keep the url parameters when redirecting. + ([UIxContactFoldersView -selectForSchedulerAction]) + ([UIxContactFoldersView -selectForMailerAction]): new action + methods for the /scheduler-contacts and /mailer-contacts invocations. + + * SoObjects/SOGo/SOGoObject.m: compose the action url using the + newly available NSString+URL category. + + * SoObjects/SOGo/NSDictionary+URL.m ([NSDictionary + -asURLParameters]): handle dictionary entries which could be + instances of NSArray rather than NSString. + + * SoObjects/SOGo/NSString+URL.m ([NSString + -composeURLWithAction:actionparameters:urlParametersandHash:useHash]): when composing the url, remove the encoded parameters first since they will be added later. + ([NSString -urlWithoutParameters]): new method that returns the + url without its parameters. + + * SoObjects/SOGo/NSString+iCal.h: deleted obsolete file. + + * SoObjects/SOGo/NSDictionary+URL.[hm], + UI/SOGoUI/NSString+URL.[hm]: moved from UI/SOGoUI/. + + * UI/WebServerResources/UIxMailEditor.js: add support for + additions of different types (to, cc, bcc) of recipients from the + address book. + + * UI/Common/UIxPageFrame.m ([UIxPageFrame -doctype]): added the + " + + * UI/WebServerResources/ContactsUI.js: hide the current contact + whenever the user changes of contact folder. + + * UI/WebServerResources/UIxContactEditor.js: the contact UID is + now provided by the template when loading the page. + + * SoObjects/SOGo/AgenorUserManager.m ([AgenorUserManager + -iCalPersonWithUid:uid]): new method taken from removed module + 'iCalPerson+UIx'; + +2006-09-28 Wolfgang Sourdeau + + * UI/Scheduler/UIxAppointmentView.m ([UIxAppointmentView + -categoriesAsString]): same as below. + + * UI/Scheduler/UIxAppointmentEditor.m: adapted by using the new + vcalendar API's iCalEvent instead of the removed SOGoAppointment. + + * SoObjects/Appointments/SOGoAppointmentObject.m + ([SOGoAppointmentObject -calendarFromContent:cnt]): new helper method. + ([SOGoAppointmentObject -firstEventFromCalendar:calendar]): new + helper method. + + * SoObjects/Appointments/SOGoAppointmentFolder.m + ([SOGoAppointmentFolder -doCalendarQuery:context]): added a + hackish test to detect whether the request concernes VEVENT's or + anything else. Return events only in the former case. + ([SOGoAppointmentFolder + -fetchOverviewInfosFrom:_startDateto:_endDate]): retrieve the + c_name quickfield so that the calendar list can identify the + appointments with their complete "filename". + + * OGoContentStore/OCSiCalFieldExtractor.m: use CardGroup's + groupsOfClass:fromSource: to parse the given vcalendar. + + * UI/Scheduler/iCalRecurrenceRule+SOGo.m: removed obsolete class. + + * UI/Scheduler/SOGoAppointment+UIx.h: removed obsolete class. + + * SoObjects/SOGo/SOGoAppointmentICalRenderer.[hm]: removed + obsolete class. + + * SoObjects/SOGo/SOGoAppointment.[hm]: removed obsolete class. + +2006-09-26 Wolfgang Sourdeau + + * SoObjects/Appointments/SOGoAppointmentFolder.m + ([SOGoAppointmentFolder -lookupName:inContext:acquire:]): be + sensitive to the CalDAV method names. + ([SOGoAppointmentFolder -doCalendarQuery:context]): method for the + "calendar-query" CalDAV method name. + + * UI/WebServerResources/ContactsUI.js: removed a lot of useless + code coming originally from MailerUI.js. + + * UI/WebServerResources/UIxContactEditor.js: imitate the + Thunderbird address book by completing the display name with the + content of the first and last name fields, until the display name + is modified manually. + + * UI/WebServerResources/generic.js: added a "trim" method to the + String class. + + * UI/Contacts/UIxContactsListViewBase.m ([UIxContactsListViewBase + -displayName]): new method that returns the display name from "cn" + or from the "displayName" key if found. + + * UI/Contacts/UIxContactEditor.m ([UIxContactEditor + -initSnapshot]): check if "[card n]" returns anything to avoid a + crash. + + * UI/Common/UIxPageFrame.m ([UIxPageFrame -doctype]): new method + that returns an unparsed doctype definition for the pages. + + * SoObjects/Contacts/SOGoContactLDAPEntry.m ([SOGoContactLDAPEntry + -vCard]): set the card's fn to attribute "displayName" if found + before "cn". + +2006-09-20 Wolfgang Sourdeau + + * SoObjects/Contacts/SOGoContactLDAPEntry.m ([SOGoContactLDAPEntry + -vCard]): handle the "streetAddress" and "l" fields. + + * UI/Templates/MailerUI/UIxMailEditor.wox: arranged the message + header fields by converting the tables to DIVs and SPANs. + + * UI/WebServerResources/generic.css: attempted unification of font + families and size across all the elements. changed the + logConsole's "position" from "fixed" to "absolute" to avoid + performance issues. + +2006-09-19 Wolfgang Sourdeau + + * UI/WebServerResources/ContactsUI.js (uixDeleteSelectedContacts): + empty the contact view when the current contact is being deleted. + + * UI/WebServerResources/MailerUI.js (newContactFromEmail): fully + parse the email field and provide the address full name if found + as the "contactFN" parameter. + + * UI/WebServerResources/generic.js (openMailTo): do not give a + name to the opened window so that serveral ones can be opened at + the same time. + + * UI/MailPartViewers/UIxMailPartTextViewer.m + ([UIxMailPartTextViewer -flatContentAsString]): override method by + replacing carriage returns with "
" in the result string from + super's implementation. + + * UI/Contacts/UIxContactView.m ([UIxContactView + -_urlOfType:aType]): don't manage non-mailto urls through + javascript, let the user decide what's best for him. + + * UI/Contacts/UIxContactFoldersView.m ([UIxContactFoldersView + -newAction]): transfer all the query parameters by using the + "asURLParameters"'s result string from [self queryParameters]. + + * UI/Contacts/UIxContactEditor.m ([UIxContactEditor + -initSnapshot]): retrieve "contactEmail" and "contactFN" from the + query parameters and put their values (if any) into the snapshot. + + * UI/Contacts/UIxContactView.m ([UIxContactView -note]): convert + carriage-returns to "
". + ([UIxContactView -workCompany]): explicitly initialize company to + nil if org is nil or empty. + + * UI/WebServerResources/UIxContactEditor.js: updated validation + code after we added and renamed some fields. + + * UI/WebServerResources/ContactsUI.js: added code to cache contact + cards and to handle card updates. + +2006-09-18 Wolfgang Sourdeau + + * UI/Contacts/UIxContactView.m ([UIxContactView -hasOtherInfos]): + test the length of the returned string since they will never be + nil. + + * UI/Contacts/UIxContactEditor.m ([UIxContactEditor -saveAction]): + return self if the process went successful, returns an exception + otherwise (and only otherwise...). + + * OGoContentStore/OCSContactFieldExtractor.m + ([OCSContactFieldExtractor -extractQuickFieldsFromVCard:_vCard]): + adapted method to the new VCard api. Since the cards are stored in + vcard format, we no longer deal with a dictionary but with a + NGVCard object... + +2006-09-15 Wolfgang Sourdeau + + * UI/Contacts/UIxContactView.m ([UIxContactView -preferredEmail]): + return a string with a "mailto" url. + ([UIxContactView -_urlOfType:aType]): generic method to return a + url string with a html anchor pointing to it. + + * UI/Contacts/UIxContactEditor.[hm]: UIxContactEditorBase renamed + since subclass "UIxContactEditor" did nothing. Implemented code to + display and modify the values parsed from the vcards, displayed in + a way similar to the Thunderbird addressbook. + + * SoObjects/Contacts/SOGoContactLDAPEntry.m ([SOGoContactLDAPEntry + -save]): new dummy method. + + * SoObjects/Contacts/SOGoContactGCSEntry.m ([SOGoContactGCSEntry + -save]): made method void. + +2006-09-13 Wolfgang Sourdeau + + * UI/Contacts/UIxContactView.m: added many wrapper methods to + display blocks of data à la Thunderbird Addressbook. If data is + available, those wrappers (around the NGVCard methods) will + enclose the results in a proper HTML output with the correct label + (if present), otherwise it will return an empty string. + ([UIxContactView -vcardAction]): new action to return the contact + as text/vcard (for exporting). + + * SoObjects/Contacts/SOGoContactLDAPEntry.m ([SOGoContactLDAPEntry + +contactEntryWithName:aNamewithLDAPEntry:anEntryinContainer:aContainer]): adapted the mapping of the LDIF data with the new NGVCard API. + + * SoObjects/Contacts/SOGoContactGCSEntry.m ([SOGoContactGCSEntry + -vCard]): create a new NGVCard instance when no data is available + and retain it. + ([SOGoContactGCSEntry -save]): save the vCard using the new + "versitString" API method/message. + + * UI/Contacts/UIxContactView.h: separated interface from + UIxContactView.m. + + * UI/WebServerResources/ContactsUI.js: add-ed code to download card + views and display them beneath the list. + +2006-09-08 Wolfgang Sourdeau + + * SoObjects/SOGo/SOGoObject.m ([SOGoObject -userTimeZone]): retain + the timezone even when it's the server timezone. + + * SoObjects/SOGo/SOGoUserFolder.m ([SOGoUserFolder + -privateContacts:inContext:]): no long configure the calendar + object with the user's timezone since it's now accessible + application-wide throught the SOGoObject methods. + + * UI/SOGoUI/UIxComponent.[hm]: removed the "viewTimeZone" ivar and + method. Removed the "backendTimeZone" method. + + * UI/MainUI/SOGoUserHomePage.[hm]: made a subclass of UIxComponent + instead of SoComponent. + + * SoObjects/Appointments/SOGoAppointmentObject.m: + ([SOGoAppointmentObject -viewTimeZoneForPerson:_person]): returns + [self serverTimeZone] instead of "EST" (which was removed). + + * SoObjects/Appointments/SOGoAppointmentFolder.[hm]: removed the + "timeZone" ivar and its accessors. + + * SoObjects/SOGo/SOGoObject.m ([SOGoObject -serverTimeZone]): new + centralized method returing the timezone configured in the + userdefaults db or "Canada/Eastern" if missing. + ([SOGoObject -userTimeZone]): new centralized method returing the + timezone of the current user or the server timezone if missing + from the user configuration table. + +2006-09-07 Wolfgang Sourdeau + + * UI/WebServerResources/SchedulerUI.js: implemented caching of + date selectors. + + * UI/SOGoUI/UIxComponent.m ([UIxComponent -userFolderPath]): + return a path based on the object's context instead of the first + level in SOGo's object hierarchy... + +2006-09-06 Wolfgang Sourdeau + + * UI/Templates/SchedulerUI/UIxCalDayTable.wox: day columns can now + be clicked. + + * UI/Templates/SchedulerUI/UIxCalDateSelector.wox: pass the user's + timezone ([self viewTimeZone]) to the WEMonthOverview component to + avoid a confusion with the days. + + * UI/Templates/SchedulerUI/UIxCalInlineAptView.wox: appointments + can now be clicked. + + * UI/WebServerResources/SchedulerUI.js: implemented a mechanism to + imitate Sunbird's synchronization between the 3 visible views. + + * UI/SOGoUI/UIxComponent.m ([UIxComponent -selectedDate]): make + sure the numbers in dateString are formatted so as to take 4 chars + for the year and 2 for the day and the month, otherwise + NSCalendarDate will return a nil date. + ([UIxComponent -applicationPath]): return a path based on the + object's context instead of the second level in SOGo's object + hierarchy... + +2006-09-05 Wolfgang Sourdeau + + * UI/SOGoUI/UIxComponent.m ([UIxComponent -selectedDate]): add the + user's timezone abbreviation to the date string passed as parameter to + NSCalendarDate to generate an accurate date instance. Do the same + when no date is specified and today is chosen. + + * UI/WebServerResources/UIxAppointmentEditor.js: convert the + form's time values to integers before comparing them. + + * UI/Scheduler/UIxCalAptListView.m ([UIxCalAptListView -currentStartTime]) + ([UIxCalAptListView -currentEndTime]): initialize the resulting + dates timezone with [self viewTimeZone]. + + * UI/SOGoUI/UIxComponent.m ([UIxComponent -init]): new + "viewTimeZone" ivar destined to hold an instance of the user's + timezone in memory. + ([UIxComponent -viewTimeZone]): take the timezone from the user's + prefs. + +2006-08-30 Wolfgang Sourdeau + + * UI/Templates/SchedulerUI/UIxAppointmentEditor.wox: completely + rearranged the layout. + + * UI/WebServerResources/UIxAppointmentEditor.js: added code to + manage showing and hiding appointment details. + + * SoObjects/SOGo/SOGoUserFolder.m ([SOGoUserFolder + -privateContacts:inContext:]): init the SOGoAppointmentFolder's + timezone by taking the current user's timezone setting. + + * SoObjects/Appointments/SOGoAptMailNotification.m: same as below. + + * SoObjects/Appointments/SOGoAppointmentObject.m + ([SOGoAppointmentObject -changeParticipationStatus:inContext:]): + set default timezone to EST, although this code should be + rewritten to handle a system and a user default value. + + * UI/Scheduler/UIxTimeDateControl.m ([UIxTimeDateControl + -takeValuesFromRequest:_rqinContext:_ctx]): enhanced method to + take the values from the hour and minute INPUTs when data is + POSTed since we no longer use the UIxTimeSelector component. + ([UIxTimeDateControl -selectableHours]) + ([UIxTimeDateControl -selectableMinutes]): new methods used by the + template SELECTs to display reasonable and acceptable values + instead of all the possibilities. + + * UI/WebServerResources/generic.js: adapted code for the new + implementation of the UIxContactSelector component (added a + "remove" button, removed the previous INPUT and replaced them with + links of class "button"). + + * UI/Scheduler/UIxTimeDateControl.h: separated interface from + UIxTimeDateControl.m. + + * UI/Scheduler/UIxCalDayTable.m ([UIxCalDayTable -currentAppointmentDay]) + ([UIxCalDayTable -currentAppointmentHour]): new methods that + returns correctly formatted values used as attributes for JS code. + + * UI/Contacts/UIxContactSelector.m ([UIxContactSelector + -initialContactsAsString]): renamed implementation of + initialParticipants. + ([UIxContactSelector -currentContactId]) + ([UIxContactSelector -currentContactName]): new methods used when + listing the initial contacts in the widget. Currently, both return + the person's cn but the latter should ultimately return a user + fullname. + + * UI/Contacts/UIxContactSelector.h: separated interface from + UIxContactSelector.m. + + * UI/Scheduler/UIxDatePickerScript.[hm]: component removed since + all javascript code is now put in Scheduler.js/generic.js. + + * UI/Scheduler/NSCalendarDate+UIx.[hm]: category removed, code + moved into NSCalendarDate+Scheduler instead. + + * SoObjects/Appointments/SOGoAppointmentFolder.m + ([SOGoAppointmentFolder -setTimeZone:newTZ]): new method to + configure the timezone from SOGoUserFolder when the instance is + being created. + ([SOGoAppointmentFolder -viewTimeZone]): MET was removed. Returns + the value of the new "timezone" ivar. + +2006-08-25 Wolfgang Sourdeau + + * UI/WebServerResources/SchedulerUI.{css,js}: added a tabview with + the date selector in the first page and the container of the + future calendar selector in the second page. + + * UI/WebServerResources/generic.js: added code for handling tabbed + views. + + * UI/Common/UIxPageFrame.m ([UIxPageFrame -productFrameworkName]): + returns the bundle name associated to the current running product. + +2006-08-24 Wolfgang Sourdeau + + * UI/WebServerResources/UIxAppointmentEditor.js: fixed the AJAX + exception by invoking a timeout on the opener rather than invoking + the list refresh method. + + * UI/Scheduler/UIxCalDayView.m ([UIxCalDayView -labelForDay]): + removed method. + + * UI/Scheduler/UIxCalWeekView.m ([UIxCalWeekView -weekBeforePrevWeekQueryParameters]) + ([UIxCalWeekView -prevWeekQueryParameters]) + ([UIxCalWeekView -nextWeekQueryParameters]) + ([UIxCalWeekView -weekAfterNextWeekQueryParameters]): new methods + that return the dates relatively to the current day. + ([UIxCalWeekView -lastWeekName]) + ([UIxCalWeekView -currentWeekName]) + ([UIxCalWeekView -nextWeekName]) + ([UIxCalWeekView -weekAfterNextWeekName]) + ([UIxCalWeekView -_weekNumberWithOffsetFromToday:offset]): new + methods that returns the label for the corresponding weeks. + + * UI/Scheduler/UIxCalDayTable.[hm]: new class module/component + used by UIxCalDayView and UIxCalWeekView to display the events + occuring in one or more days. + +2006-08-22 Wolfgang Sourdeau + + * UI/Scheduler/UIxCalMainView.m: extended class to populate the + entries in the new "monthMenu" and "yearMenu". + + * UI/Scheduler/UIxCalDayView.m ([UIxCalDayView -labelForDay]): new + method to return the current day as a string formatted depending + on the current locale. + + * UI/Scheduler/UIxCalAptListView.m ([UIxCalAptListView -startDate]) + ([UIxCalAptListView -endDate]): "today" is now the default filter + for displayed events. + ([UIxCalAptListView -currentSerialDay]): new method returning the + date of the current enumerated appointment in serial form + (yyyymmdd). + + * UI/WebServerResources/SchedulerUI.js: added code to select the + relevant day when an appointment is selected. Added code to popup + a month and a year menu whenever the header entries are clicked in + the calendar widget. + + * UI/WebServerResources/generic.js: made addClassName and + removeClassName methods of HTMLElement. + +2006-08-21 Wolfgang Sourdeau + + * UI/WebServerResources/MailerUI.js: fixed the contact creation + from email addresses. + + * UI/WebServerResources/generic.js: centralized the search-related + functions here since the same code was used across the 3 + applications. + + * UI/Scheduler/UIxCalAptListView.m ([UIxCalAptListView -startDate]) + ([UIxCalAptListView -endDate]): return the required dates needed + depending on the value given to the "filterpopup" url parameter. + + * UI/Common/UIxToolbar.m ([UIxToolbar -buttonLabel]): reduced the + code by invoking UIxComponent's labelForKey:. + + * UI/SOGoUI/UIxComponent.m ([UIxComponent -labelForKey:]): use + [self pageResourceManager] instead of [self resourceManager]. + + * UI/Contacts/UIxContactEditorBase.m: invokes + globallyUniqueObjectId on the clientobject's class instead of the + hardcoded "SOGoFolder". + + * UI/Contacts/UIxContactFoldersView.m ([UIxContactFoldersView + -newAction]): redirect the "new" action to the personal (default) + contact folder. + + * SoObjects/SOGo/SOGoObject.m ([SOGoObject + +objectWithName:inContainer:]): new constructor. + + * SoObjects/Contacts/SOGoContactGCSFolder.m ([SOGoContactGCSFolder + -lookupContactWithId:recordId]): always create a contact object, + even if it does not exist. + +2006-08-18 Wolfgang Sourdeau + + * UI/Scheduler/UIxCalMainView.[hm]: new class to serve as a pseudo + component that lays out the different components of SOGoCalendar. + Only serves as an Objective-C counterpart to its xml template. + + * UI/Scheduler/UIxCalInlineMonthOverview.h: interface extracted + from its .m file. + + * UI/Scheduler/UIxCalFilterPanel.[hm]: new class designed to + display a widget to handle the information displayed in the + appointments list. Not currently used, lacks implementation. + + * UI/Scheduler/UIxCalDateSelector.[hm]: new class designed to + display a calendar as a dynamic widget from where one can select + the current visible day. + + * UI/Scheduler/NSCalendarDate+Scheduler.[hm]: category code + extracted from UIxCalInlineMonthOverview.m. + + * UI/Scheduler/UIxDatePicker.m: removed the jsPopup, jsCode and + calendarPageURL methods. The javascript code is handled by .js + files as much as possible... + + * UI/WebServerResources/ContactsUI.js, + UI/WebServerResources/MailerUI.js: adapted to the code refactoring + in generic.js. + + * UI/WebServerResources/SchedulerUI.js: implemented functions to + handle the new widgets. XmlHTTPRequest code taken from + MailerUI.js. + + * UI/WebServerResources/generic.js: put some functions related to + element selections as methods to HTMLElement and HTMLTableElement. + + * UI/Scheduler/UIxCalAptListView.[hm]: new class designed to + display the list of appointments (embodies the code-size of + UIxCalAptListView; answers to the "aptlist" method). + +2006-08-15 Wolfgang Sourdeau + + * UI/Scheduler/UIxCalWeekOverview.m ([UIxCalWeekOverview + -correctURLAction]): new short action method replacing the method + below by taking far less code. + + * SoObjects/Appointments/SOGoAppointmentFolder.m + ([SOGoAppointmentFolder -GETAction:]): removed method. Replaced + with an action in the view-related code. + + * UI/Scheduler/UIxAppointmentEditor.m: invoke + "stringByEscapingHTMLString" on the resulting value to avoid + issues with accented characters. + ([-jsCode]): removed method since the javascript code was merged + into SchedulerUI.js. + +2006-08-14 Wolfgang Sourdeau + + * UI/Scheduler/iCalPerson+UIx.m ([iCalPerson +personWithUid:]): + new class method that returns an iCalPerson based on the UID given + as param. + + * UI/Contacts/UIxContactsListViewContainerBase.m: + UIxContactsListViewContainer renamed to serve as a base class for + the contact lists in both the contact editor and the contact + selectors. + + * SoObjects/Contacts/SOGoContactLDAPFolder.m + ([SOGoContactLDAPFolder + -LDAPSetHostname:setPort:setBindDN:setBindPW:setContactIdentifier: + setUserIdentifier:setRootDN:]): an LDAP field specifying the + loginname of the users can now be specified. + + * UI/WebServerResources/generic.js: added code to manage contact + lists through the new implementation of the UIxContactSelector. + + * UI/Templates: put the templates related to SchedulerUI in its + own directory. + + * SoObjects/Contacts/NGLdapEntry+Contact.m ([NGLdapEntry + -asDictionaryWithAttributeNames:withUID:andCName:cName]): add an + entry for "uid" with the field name representing the login name of + the user in the corresponding LDAP branch. + +2006-08-10 Wolfgang Sourdeau + + * SoObjects/Contacts/SOGoContactGCSFolder.m ([SOGoContactGCSFolder + -lookupName:_keyinContext:_ctxacquire:_flag]): when the HTTP + request is a PUT, always create an entry, even if we're not sure + it does exist. + +2006-08-09 Wolfgang Sourdeau + + * UI/WebServerResources/ContactsUI.js: implemented live-search. + + * SoObjects/Contacts/SOGoContactFolders.m ([SOGoContactFolders + -appendSystemSourcesInContext:context]): populated method with + code that creates entries mapped to instances SOGoContactFolder, + based on the configuration found in the NSUserDefaults under the + key "SOGoLDAPAddressBooks". + ([SOGoContactFolders + -lookupName:nameinContext:contextacquire:acquire]): + "contactsources" do not exist anymore, SOGoContactFolder was split + into two classes: SOGoContactGCSFolder and SOGoContactLDAPFolder + and one protocol: SOGOContactFolder, instead. + ([SOGoContactFolders -contactFolders]): new accessor used by the + views of SOGoContactXXXFolder to list the possible sources. + + * SoObjects/Contacts/SOGoContactObject.h: new protocol that + defines the methods that UIxContactsView, ..Editor and so on... + can expect. + + * SoObjects/Contacts/SOGoContactFolder.h: new protocol that + defines the methods that UIxContactsListViewBase expects as well + as the data fields returned in the contact lists. + + * SoObjects/Contacts/SOGoContactLDAPFolder.[hm]: new class that + returns entries an LDAP server. Conforms to the new + SOGOContactFolder protocol. + + * SoObjects/Contacts/SOGoContactLDAPEntry.[hm]: new class that + returns a vCard based on contact entries from an LDAP server. + Conforms to the new SOGOContactObject protocol. + + * SoObjects/Contacts/NGVCardSimpleValue+Contact.m + ([NGVCardSimpleValue -vCardEntryString]): generates the correct + entry for the textual representation of the vCard. + + * SoObjects/Contacts/NGVCardSimpleValue+Contact.[hm]: new class + extension. + + * SoObjects/Contacts/SOGoContactGCSEntry.[hm]: new module name of + "SOGoContactObject". + + * SoObjects/Contacts/NGVCard+Contact.m ([NGVCard -asString]): new + method that generates a textual representation of the vcard. + + * SoObjects/Contacts/NGVCard+Contact.[hm]: new class extension. + + * SoObjects/Contacts/SOGoContactGCSFolder.[hm]: new module name of + "SOGoContactFolder". + + * SoObjects/Contacts/SOGoContactSource.h, + SoObjects/Contacts/SOGoPersonalAB.[hm]: unused classes and + protocols. + + * SoObjects/Contacts/NGLdapEntry+Contact.m ([NGLdapEntry + -singleAttributeWithName:key]): new method that returns the first + object associated with an ldap key (where generally one value is + returned by key). + ([NGLdapEntry + -asDictionaryWithAttributeNames:attributeNamesandCName:cName]): + map the entry into an NSDictionary for processing by + UIxContactsListViewBase.m with the least possible overhead. + + * SoObjects/Contacts/NGLdapEntry+Contact.[hm]: new class + extension. + +2006-08-04 Wolfgang Sourdeau + + * SoObjects/SOGo/SOGoUserFolder.m ([SOGoUserFolder + -privateContacts:inContext:]): now returns an instance of + SOGoContactFolders. + + * UI/Contacts/UIxContactsListViewContainer.m + ([UIxContactsListViewContainer -contactFolderName]): new method to + return the absolute path to the current contact folder, called + from within the template. + + * UI/Templates/ContactsUI/UIxContactsListViewContainer.wox: added + JS code to initialize the 'currentContactFolder' generic var. + + * SoObjects/Contacts/SOGoContactFolder.m ([SOGoContactFolder + +contactFolderWithSource:inContainer:andName:]): new class + method meant to return an instance connected to the specified + source. Currently useless but won't be anymore in the next few + days. + + * SoObjects/SOGo/SOGoUserFolder.h: commented out declaration of + the "lookupFreeBusyObject" method since it does not exist. + + * UI/Contacts/UIxContactFoldersView.[hm]: new class module serving + as a "view" for the SOGoContactFolders object. Does nothing but + redirect the browser to the URL of the personal address book of + the user. It does not even have a template. + + * SoObjects/Contacts/SOGoPersonalAB.[hm]: new class module + implementing the SOGoContactSource protocol. Does nothing + currently but will be used to implement access to the personal + address book of the user stored in the SOGo database. + + * SoObjects/Contacts/SOGoContactSource.h: new "SOGoContactSource" + protocol defining an API common to all possible types of contact + sources. + + * SoObjects/Contacts/SOGoContactFolders.[hm]: new class module + serving as the root of the contact folders available to the + current user. Correctly lists the contact sources in webdav. + +2006-08-03 Wolfgang Sourdeau + + * UI/MailerUI/UIxMailAccountsView.m ([UIxMailAccountsView + -composeAction]): new action method that permits external object + to write a message from the default (primary) account. + + * UI/Contacts/UIxContactEditorBase.m ([UIxContactEditorBase + -initSnapshot]): new method with code taken from "defaultAction" + but needed for others. + ([UIxContactEditorBase -writeAction]): new action designed to + compose the correct URL needed to obtain the MailerUI's email + editor with the correct "mailto" parameter. + + * UI/Common/UIxSortableTableHeader.m: moved from MailerUI to + Common so that other modules can use it. + + * UI/Contacts/UIxContactsListViewContainer.m: container to make it + easier to manage both ajax and non-ajax requests. + + * UI/Contacts/UIxContactsFilterPanel.m: clone of + UIxMailFilterPanel, but applicable to contact lists. + + * SoObjects/Contacts/NSDictionary+Contact.m ([NSDictionary + -vcardContentFromSOGoContactRecord]): use the new standard methods + created for each type of entry. If a line is determined to not + contain information, it will be skipped. + + * SoObjects/SOGo/AgenorUserManager.m ([AgenorUserManager + +initialize]): init defaultMailDomain with the user default + "SOGoDefaultMailDomain". + +2006-08-02 Wolfgang Sourdeau + + * UI/Contacts/UIxContactEditorBase.m ([UIxContactEditorBase + -saveAction]): reorganized methods to only have ONE return point. + Invoke saveRecord: directly on the clientObject instead of + saveContentString, which does the same thing anyway. + + * SoObjects/Contacts/NSDictionary+Contact.m + ([NSDictionary -vcardContentFromSOGoContactRecord]): extension + method to convert the dictionary returned with the user submission + to a record in VCARD format to be stored in the database. + +2006-08-01 Wolfgang Sourdeau + + * UI/WebServerResources/MailerUI.js: when opening the context menu + of the message list, select the message below the mouse cursor and + deselect the other selected messages temporarily. This mimics the + behaviour of Thunderbird for that matter and was already + implemented for the entries of the folder tree. + + * UI/MailerUI/UIxMailFolderMenu.m ([UIxMailFolderMenu + -iconForMenuItem]): new method that returns the fully qualified + relative URL to the icon representing the mailbox, or the default + mailbox icon if needed. + + * UI/SOGoUI/UIxComponent.m ([UIxComponent + -urlForResourceFilename:filename]): automatically return an empty + string whenever the filename passed as argument is nil. + + * UI/WebServerResources/MailerUI.js: open the mailboxes with the + "desc" parameter set to 1 so that they are sorted in descending + order by default. Also, added "onHeaderClick()", triggered by + clicking on the message list header elements. + + * UI/MailerUI/UIxMailSortableTableHeader.m + ([UIxMailSortableTableHeader -isSortedDescending]): same as below. + + * UI/MailerUI/UIxMailListView.m ([UIxMailListView + -isSortedDescending]): defaults to "YES" when the sort order is + not specified. + +2006-07-31 Wolfgang Sourdeau + + * UI/WebServerResources/MailerUI.js: + - message cache: set the max num of cached messages to 20. Limit + the cached message size to 30000 bytes. + - ajax: when a message request is called while one is already + being performed, the latter will be cancelled. Idem when + retrieving the content of a mailbox. + - folder tree: when a mailbox is selected because of the URL + requested (initMailboxSelection), the dtree is expanded throughout + the mailbox entry's parent hierarchy to ensure it is made visible + when the page is being displayed. (new function: expandUpperTree). + - mailbox loading: when loading a mailbox where a message was + previously selected, we invoke its url with the "pageforuid" + parameter correctly specified. During callback processing, we scan + the table for the related row and reselect it. + Also, the message area is set blank before loading any mailbox. + + * UI/MailerUI/UIxMailListView.m ([UIxMailListView + -defaultAction]): if the "pageforuid" parameter is passed in the + url, take its value and invoke [self firstMessageOfPageFor:] + consequently to deduce the first message to display. Otherwise, + set it to "idx", otherwise set it to 0. + ([UIxMailListView -firstMessageOfPageFor:]): new method + that determines the first message of the page where the message + passed as parameter is contained. + + * UI/WebServerResources/UIxMailListView.js: removed this module, + its code was put in MailerUI.js instead. + +2006-07-28 Wolfgang Sourdeau + + * UI/MailerUI/UIxMailFolderMenu.m: a descendent of UIxMailTree + which returns the nodes for the parent specified in "parentMenu". + Used to generate the javascript code for the folder dtree. + + * UI/Templates/MailerUI/UIxMailPanelFrame.wox: the components + using that container-template are now using UIxMailMainFrame + since UIxMailPanelFrame had no real interest. File removed. + + * UI/WebServerResources/dtree.{css,js}: new files to handle + javascript-generated mailbox tree. Modified from original version + by integrating the previous code with the one we are using for + selections and mailbox handling. Minor visual enhancements too... + +2006-07-25 Wolfgang Sourdeau + + * SoObjects/Mailer/SOGoUser+Mail.m: if only one identity is to be + returned, put it in an NSArray before returning it (fixes + bug#217). + +2006-07-24 Wolfgang Sourdeau + + * UI/SOGoUI/NSString+URL.m ([NSString -hostlessURL]): new method + that returns a url string stripped from its "http://hostname" + prefix. + + * UI/SOGoUI/NSDictionary+URL.[hm]: moved from UI/Common. + + * UI/SOGoUI/NSString+URL.[hm]: moved from UI/Common. + +2006-07-17 Wolfgang Sourdeau + + * UI/MailerUI/WOContext+UIxMailer.m ([WOContext + -mailDateFormatter]): retrieve the timezone from the user settings + and pass it to the returned dateFormatter. Also, the dateFormatter + is kept in a static variable to avoid useless + creations/destructions. + + * UI/MailerUI/UIxMailFormatter.m ([UIxMailDateFormatter + -setTimeZone:newTimeZone]): new accessor to specify the timezone. + + * UI/MailerUI/UIxMailFilterPanel.m ([UIxMailFilterPanel -setSearchCriteria:]) + ([UIxMailFilterPanel -searchCriteria]): new methods, similar to + s/Criteria/Text/ to handle the "criteria" form parameter. + +2006-07-11 Wolfgang Sourdeau + + * UI/WebServerResources/uix.css: enhanced the toolbar appearance + to integrate better with the firefox look&feel. Added entries for + the new "menu" DIV class (popup menus). + + * UI/WebServerResources/generic.js: added "sanitizeMailTo" which + takes any chunk of text as param, detects the user email and the + optional first and last names and return them in a well-formatted + way. Renamed "getSelection" to "getSelectedNodes" to avoid a + namespace conflict. Added "onMenuClick(node, event, menuId)" to + handle popup menus through "onclick" element attributes (node = + this, event = event and menuId = name of the menu DIV id to + popup). + + * UI/Contacts/UIxContactEditorBase.m ([UIxContactEditorBase + -snapshot]): add an entry for "email" into the snapshot + dictionary if a "contactEmail" URL parameter was detected and if + the entry for "email" is empty. + + * UI/Contacts/Toolbars/SOGoContactFolder.toolbar: the "new card" + button now invokes the newContact() js function in ContactsUI.js + instead of opening "new" directly. newContact() pops up a window + stripped from its navigation bar. + + * UI/Contacts/ContactsUI.js: new module specific to the ContactsUI + bundle (AddressBook). + + * UI/Templates/MailerUI/UIxMailView.wox: added a div of class + "menu" and id "addressMenu" have the header email addresses + display it with the new menu code in generic.js. + + * UI/Templates/MailerUI/UIxMailPanelFrame.wox: same as below + + replaced the body tables with a div of class "pageContent" + (standardization across the page templates). + + * UI/Templates/MailerUI/UIxMailMainFrame.wox: include + productJavaScriptURL and pageJavaScriptURL (conditionnally) since + those are now inherited from UIxPageFrame. + + * UI/MailerUI/UIxMailView.js: new file specific to UIxMailView. + + * UI/MailerUI/UIxMailToSelection.m ([UIxMailToSelection -to]): if + a "mailto" URL parameter is detected and the "to" array is empty, + initialize "to" with the value of "mailto" before returning it. + + * UI/MailerUI/UIxMailEditorAction.m ([UIxMailEditorAction + -composeAction]): rewrote method in a cleaner way and with usage + of the URL extensions to NSString and NSDictionary (see below). + Also, if a "mailto" url parameter is detected, pass it to the + redirected url. + + * UI/MailerUI/UIxMailMainFrame.m: subclassed from UIxPageFrame to + reduce code. + + * UI/Common/NSDictionary+URL.m ([NSDictionary -asURLParameters]): + returns a parameter string to add to a base URL. + + * UI/Common/NSString+URL.m ([NSString + -composeURLWithAction:parameters:andHash:useHash]): new method to + compose a complete URL from an object URL with parameters and an + optional '#' character. + + * UI/Common/UIxPageFrame.h: separated interface from + UIxPageFrame.m. + +2006-07-07 Wsourdeau Sourdeau + + * UI/Scheduler/UIxAppointmentEditor.m: returns yes to "isPopup"; + + * UI/WebServerResources/generic.js: added code to manage + selections within HTML containers. + + * UI/Common/UIxPageFrame.m ([UIxPageFrame -productJavaScriptURL]): + added method to determine the possible URL for a product-specific + javascript filename of the forme .js. + ([UIxPageFrame -hasProductSpecificJavaScript]): new method. + ([UIxPageFrame -isPopup]): new method to determine whether the + application navigator bar should be displayed (main page) or not + (popup page). + + * SoObjects/SOGo/SOGoAuthenticator.m ([SOGoAuthenticator + -LDAPCheckLogin:_loginpassword:_pwd]): new method to authenticate + the user through LDAP. + +2006-07-06 Wolfgang Sourdeau + + * The toolbar code from the MailerUI product was taken, renamed as + "UIxToolBar" and put into UI/Common. Toolbar plists were created + for the Contacts and Scheduler products and put in their respectir + Toolbars/ subdirectories. Finally, + UI/Templates/{UIxToolbarButton,UIxToolbarSeparator}.wox, and + UI/Common/{UIxToolbarButton,UIxToolbarSeparator}.m were removed + and an invocation to the UIxToolbar component was put at the top + of UI/Templaces/UIxPageFrame.wox. + + * UI/Common/UIxToolbar.m: new "isLastGroup" method to determine + within the templates whether a separator should be displayed. + + * UI/Common/UIxToolbar.m ([UIxToolbar -hasButtons]): new method + that returns NO if the toolbar is empty. + +2006-07-05 Wolfgang Sourdeau + + * UI/Templates/UIxPageFrame.wox: replaced central table with a DIV. + + * UI/Common/UIxToolbarSeparator.m, UI/Common/UIxToolbarButton.m: + new toolbar objects. + + * UI/Templates/UIxPageFrame.wox: use the exact html code as below. + + * UI/Templates/MailerUI/UIxMailMainFrame.wox: redone the + linkbanner as a DIV instead of a TABLE. + + * UI/MailerUI/UIxMailMainFrame.m [UIxMailMainFrame + showLinkBanner]: + returns 'YES' to request the display of the navigation bar between + applets. + +2006-06-15 ludovic@inverse.ca + + * It's now possible to set the default + domain using for email using the + SOGoDefaultMailDomain preference key. + +2006-06-15 ludovic@inverse.ca + + * Initial import of SOGo from trunk. diff --git a/GNUmakefile b/GNUmakefile index 78ec6851..def68eaa 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -11,3 +11,4 @@ SUBPROJECTS = \ Protocols \ include $(GNUSTEP_MAKEFILES)/aggregate.make + diff --git a/Main/ChangeLog b/Main/ChangeLog.upstream similarity index 100% rename from Main/ChangeLog rename to Main/ChangeLog.upstream diff --git a/Main/GNUmakefile.preamble b/Main/GNUmakefile.preamble index 1132d88b..99bdcff3 100644 --- a/Main/GNUmakefile.preamble +++ b/Main/GNUmakefile.preamble @@ -21,7 +21,7 @@ $(SOGOD)_TOOL_LIBS += \ -lGDLContentStore \ -lGDLAccess \ -lWEExtensions \ - -lNGiCal \ + -lNGCards \ -lNGObjWeb \ -lNGMime -lNGLdap \ -lNGStreams -lNGExtensions -lEOControl \ diff --git a/Main/SOGo.m b/Main/SOGo.m index 4274d838..0f10c984 100644 --- a/Main/SOGo.m +++ b/Main/SOGo.m @@ -26,15 +26,16 @@ NSMutableDictionary *localeLUT; } -- (NSDictionary *)currentLocaleConsideringLanguages:(NSArray *)_langs; -- (NSDictionary *)localeForLanguageNamed:(NSString *)_name; +- (NSDictionary *) currentLocaleConsideringLanguages:(NSArray *)_langs; +- (NSDictionary *) localeForLanguageNamed:(NSString *)_name; @end #include "SOGoProductLoader.h" -#include #include +#include #include +#include #include "common.h" @implementation SOGo @@ -44,6 +45,8 @@ static BOOL doCrashOnSessionCreate = NO; + (void)initialize { NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; + SoClassSecurityInfo *sInfo; + NSArray *basicRoles; id tmp; doCrashOnSessionCreate = [ud boolForKey:@"SOGoCrashOnSessionCreate"]; @@ -64,18 +67,19 @@ static BOOL doCrashOnSessionCreate = NO; #endif /* SoClass security declarations */ - + sInfo = [self soClassSecurityInfo]; /* require View permission to access the root (bound to authenticated ...) */ - [[self soClassSecurityInfo] declareObjectProtected:SoPerm_View]; - + [sInfo declareObjectProtected: SoPerm_View]; + /* to allow public access to all contained objects (subkeys) */ - [[self soClassSecurityInfo] setDefaultAccess:@"allow"]; - + [sInfo setDefaultAccess: @"allow"]; + + basicRoles = [NSArray arrayWithObjects: SoRole_Authenticated, + SOGoRole_FreeBusy, nil]; + /* require Authenticated role for View and WebDAV */ - [[self soClassSecurityInfo] declareRole:SoRole_Authenticated - asDefaultForPermission:SoPerm_View]; - [[self soClassSecurityInfo] declareRole:SoRole_Authenticated - asDefaultForPermission:SoPerm_WebDAVAccess]; + [sInfo declareRoles: basicRoles asDefaultForPermission: SoPerm_View]; + [sInfo declareRoles: basicRoles asDefaultForPermission: SoPerm_WebDAVAccess]; } - (id)init { @@ -83,9 +87,9 @@ static BOOL doCrashOnSessionCreate = NO; WOResourceManager *rm; /* ensure core SoClass'es are setup */ - [NSClassFromString(@"SOGoObject") soClass]; - [NSClassFromString(@"SOGoContentObject") soClass]; - [NSClassFromString(@"SOGoFolder") soClass]; + [$(@"SOGoObject") soClass]; + [$(@"SOGoContentObject") soClass]; + [$(@"SOGoFolder") soClass]; /* setup locale cache */ self->localeLUT = [[NSMutableDictionary alloc] initWithCapacity:2]; @@ -108,7 +112,7 @@ static BOOL doCrashOnSessionCreate = NO; /* authenticator */ - (id)authenticatorInContext:(id)_ctx { - return [SOGoAuthenticator sharedSOGoAuthenticator]; + return [$(@"SOGoAuthenticator") sharedSOGoAuthenticator]; } /* name lookup */ @@ -124,7 +128,7 @@ static BOOL doCrashOnSessionCreate = NO; } - (id)lookupUser:(NSString *)_key inContext:(id)_ctx { - return [[[NSClassFromString(@"SOGoUserFolder") alloc] + return [[[$(@"SOGoUserFolder") alloc] initWithName:_key inContainer:self] autorelease]; } @@ -262,7 +266,7 @@ static BOOL doCrashOnSessionCreate = NO; return lpath; if (MainProduct == Nil) { - if ((MainProduct = NSClassFromString(@"MainUIProduct")) == Nil) + if ((MainProduct = $(@"MainUIProduct")) == Nil) [self errorWithFormat:@"did not find MainUIProduct class!"]; } diff --git a/Main/SOGoProductLoader.m b/Main/SOGoProductLoader.m index 2d994ea2..f53fa07b 100644 --- a/Main/SOGoProductLoader.m +++ b/Main/SOGoProductLoader.m @@ -143,7 +143,7 @@ registry = [SoProductRegistry sharedProductRegistry]; fm = [NSFileManager defaultManager]; - + pathes = [[self productSearchPathes] objectEnumerator]; while ((lpath = [pathes nextObject]) != nil) { NSEnumerator *productNames; diff --git a/Main/sogod.m b/Main/sogod.m index 314a248c..ab5c895f 100644 --- a/Main/sogod.m +++ b/Main/sogod.m @@ -19,10 +19,16 @@ 02111-1307, USA. */ -#include -#include "common.h" +#import +#import -int main(int argc, char **argv, char **env) { +#import +#import "common.h" + +int main(int argc, char **argv, char **env) +{ + NSString *tzName; + NSUserDefaults *ud; NSAutoreleasePool *pool; pool = [[NSAutoreleasePool alloc] init]; @@ -30,7 +36,13 @@ int main(int argc, char **argv, char **env) { [NSProcessInfo initializeWithArguments:argv count:argc environment:env]; #endif [NGBundleManager defaultBundleManager]; - + + ud = [NSUserDefaults standardUserDefaults]; + tzName = [ud stringForKey: @"SOGoServerTimeZone"]; + if (!tzName) + tzName = @"Canada/Eastern"; + [NSTimeZone setDefaultTimeZone: [NSTimeZone timeZoneWithName: tzName]]; + WOWatchDogApplicationMain(@"SOGo", argc, (void*)argv); [pool release]; diff --git a/Misc/WebUI/Application.h b/Misc/WebUI/Application.h deleted file mode 100644 index cd026c5c..00000000 --- a/Misc/WebUI/Application.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - 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 __Application_H_ -#define __Application_H_ - - -#include - - -@interface Application : SoApplication -{ - -} - -@end - -#endif /* __Application_H_ */ diff --git a/Misc/WebUI/Application.m b/Misc/WebUI/Application.m deleted file mode 100644 index 9252c414..00000000 --- a/Misc/WebUI/Application.m +++ /dev/null @@ -1,38 +0,0 @@ -/* - 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 "Application.h" -#import "common.h" - - -@implementation Application - -- (id)init { - self = [super init]; - if(self) { - [self logInfoWithFormat:@"Welcome to '%@'", [self name]]; - } - return self; -} - -@end diff --git a/Misc/WebUI/COPYING b/Misc/WebUI/COPYING deleted file mode 100644 index 161a3d1d..00000000 --- a/Misc/WebUI/COPYING +++ /dev/null @@ -1,482 +0,0 @@ - GNU LIBRARY GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1991 Free Software Foundation, Inc. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the library GPL. It is - numbered 2 because it goes with version 2 of the ordinary GPL.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Library General Public License, applies to some -specially designated Free Software Foundation software, and to any -other libraries whose authors decide to use it. You can use it for -your libraries, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the library, or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link a program with the library, you must provide -complete object files to the recipients so that they can relink them -with the library, after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - Our method of protecting your rights has two steps: (1) copyright -the library, and (2) offer you this license which gives you legal -permission to copy, distribute and/or modify the library. - - Also, for each distributor's protection, we want to make certain -that everyone understands that there is no warranty for this free -library. If the library is modified by someone else and passed on, we -want its recipients to know that what they have is not the original -version, so that any problems introduced by others will not reflect on -the original authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that companies distributing free -software will individually obtain patent licenses, thus in effect -transforming the program into proprietary software. To prevent this, -we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - - Most GNU software, including some libraries, is covered by the ordinary -GNU General Public License, which was designed for utility programs. This -license, the GNU Library General Public License, applies to certain -designated libraries. This license is quite different from the ordinary -one; be sure to read it in full, and don't assume that anything in it is -the same as in the ordinary license. - - The reason we have a separate public license for some libraries is that -they blur the distinction we usually make between modifying or adding to a -program and simply using it. Linking a program with a library, without -changing the library, is in some sense simply using the library, and is -analogous to running a utility program or application program. However, in -a textual and legal sense, the linked executable is a combined work, a -derivative of the original library, and the ordinary General Public License -treats it as such. - - Because of this blurred distinction, using the ordinary General -Public License for libraries did not effectively promote software -sharing, because most developers did not use the libraries. We -concluded that weaker conditions might promote sharing better. - - However, unrestricted linking of non-free programs would deprive the -users of those programs of all benefit from the free status of the -libraries themselves. This Library General Public License is intended to -permit developers of non-free programs to use free libraries, while -preserving your freedom as a user of such programs to change the free -libraries that are incorporated in them. (We have not seen how to achieve -this as regards changes in header files, but we have achieved it as regards -changes in the actual functions of the Library.) The hope is that this -will lead to faster development of free libraries. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, while the latter only -works together with the library. - - Note that it is possible for a library to be covered by the ordinary -General Public License rather than by this special one. - - GNU LIBRARY GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library which -contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Library -General Public License (also called "this License"). Each licensee is -addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also compile or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - c) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - d) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Library General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - MA 02111-1307, USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! diff --git a/Misc/WebUI/COPYRIGHT b/Misc/WebUI/COPYRIGHT deleted file mode 100644 index 1053b2aa..00000000 --- a/Misc/WebUI/COPYRIGHT +++ /dev/null @@ -1,4 +0,0 @@ -Copyright (C) 2004 SKYRIX Software AG - - -Contact: info@skyrix.com diff --git a/Misc/WebUI/ChangeLog b/Misc/WebUI/ChangeLog deleted file mode 100644 index b45b24dd..00000000 --- a/Misc/WebUI/ChangeLog +++ /dev/null @@ -1,13 +0,0 @@ -2004-05-27 Marcus Mueller - - * README: updated - -2004-05-27 Marcus Mueller - - * README, NOTES: updated - - * NGExtensions/NGLogging/ChangeLog: created - -2004-05-26 Marcus Mueller - - * ChangeLog: created diff --git a/Misc/WebUI/DirectAction.h b/Misc/WebUI/DirectAction.h deleted file mode 100644 index e25f29b9..00000000 --- a/Misc/WebUI/DirectAction.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - 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 __DirectAction_H_ -#define __DirectAction_H_ - - -#include - - -@interface DirectAction : WODirectAction -{ - -} - -@end - -#endif /* __DirectAction_H_ */ diff --git a/Misc/WebUI/DirectAction.m b/Misc/WebUI/DirectAction.m deleted file mode 100644 index 695f82b6..00000000 --- a/Misc/WebUI/DirectAction.m +++ /dev/null @@ -1,29 +0,0 @@ -/* - 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$ - - -#include "DirectAction.h" - - -@implementation DirectAction - -@end diff --git a/Misc/WebUI/English.lproj/InfoPlist.strings b/Misc/WebUI/English.lproj/InfoPlist.strings deleted file mode 100644 index d22a0a2c6f25abeb60629b1f7cb571b518ac6a6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmbV|OAoZ8B=zI*-4YV1jojRx({m;>bLVzf zMMYT}Xs@L_ZMD`_fqZ5cYN8{Py>?WK8uIP)7t)t?$nZyjUS3NR|Gt3xw9_e}HWD?9% Ld1jfn`9uE!8%bGs diff --git a/Misc/WebUI/GNUmakefile b/Misc/WebUI/GNUmakefile deleted file mode 100644 index d8eaed49..00000000 --- a/Misc/WebUI/GNUmakefile +++ /dev/null @@ -1,33 +0,0 @@ -# $Id$ - -include $(GNUSTEP_MAKEFILES)/common.make - -WOAPP_NAME = WebUI - -WebUI_OBJC_FILES = \ - WebUI_main.m \ - Application.m \ - Session.m \ - DirectAction.m \ - - -ADDITIONAL_INCLUDE_DIRS = -INGExtensions -INGExtensions/NGLogging - -WebUI_COMPONENTS = \ - Main.wo \ - - -WebUI_RESOURCE_FILES = \ - - -WebUI_WEBSERVER_RESOURCE_FILES := \ - $(shell find WebServerResources -type f -print) - - -WebUI_SUBPROJECTS = \ - NGExtensions \ - - --include GNUmakefile.preamble -include $(GNUSTEP_MAKEFILES)/woapp.make --include GNUmakefile.postamble diff --git a/Misc/WebUI/GNUmakefile.preamble b/Misc/WebUI/GNUmakefile.preamble deleted file mode 100644 index 9c0fa292..00000000 --- a/Misc/WebUI/GNUmakefile.preamble +++ /dev/null @@ -1,8 +0,0 @@ -# $Id$ - - --include GNUmakefile.preamble.local - -ifeq ($(findstring darwin, $(GNUSTEP_HOST_OS)),) -ADDITIONAL_OBJCFLAGS += -DWITHOUT_SOPEX -endif diff --git a/Misc/WebUI/Info.plist b/Misc/WebUI/Info.plist deleted file mode 100644 index d0cabb58..00000000 --- a/Misc/WebUI/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - WebUI - CFBundleIconFile - Lori - CFBundleIdentifier - my.sope.apps.WebUI - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - APPL - CFBundleSignature - ???? - CFBundleVersion - 0.1 - NSMainNibFile - - NSPrincipalClass - SOPEXApplication - - diff --git a/Misc/WebUI/Lori.icns b/Misc/WebUI/Lori.icns deleted file mode 100644 index 4d1024410cdf2b6083b078bd282c5751afd4e959..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42190 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 diff --git a/Misc/WebUI/NGExtensions/GNUmakefile b/Misc/WebUI/NGExtensions/GNUmakefile deleted file mode 100644 index 40bba8bb..00000000 --- a/Misc/WebUI/NGExtensions/GNUmakefile +++ /dev/null @@ -1,18 +0,0 @@ -# $Id$ - -include $(GNUSTEP_MAKEFILES)/common.make - - -SUBPROJECT_NAME = NGExtensions - - -ADDITIONAL_INCLUDE_DIRS += -I.. - - -NGExtensions_SUBPROJECTS = \ - NGLogging - - --include GNUmakefile.preamble -include $(GNUSTEP_MAKEFILES)/subproject.make --include GNUmakefile.postamble diff --git a/Misc/WebUI/NGExtensions/NGLogging/ChangeLog b/Misc/WebUI/NGExtensions/NGLogging/ChangeLog deleted file mode 100644 index 770975e0..00000000 --- a/Misc/WebUI/NGExtensions/NGLogging/ChangeLog +++ /dev/null @@ -1,17 +0,0 @@ -2004-05-27 Marcus Mueller - - * NGLogAppender.[hm]: introduced -formattedEvent:, currently not - configurable. - - * NGLogSyslogAppender.m: works as expected now. - - * NGLogger.m: uses new default (see README) to select the default - appender. Not optimal, but sufficient. - - * NGLogConsoleAppender.m: changed to use -formattedEvent: now. - -2004-05-27 Marcus Mueller - - * NGLogSyslogAppender.[hm]: syslog appender, untested. - - * ChangeLog: created diff --git a/Misc/WebUI/NGExtensions/NGLogging/GNUmakefile b/Misc/WebUI/NGExtensions/NGLogging/GNUmakefile deleted file mode 100644 index e596eaaf..00000000 --- a/Misc/WebUI/NGExtensions/NGLogging/GNUmakefile +++ /dev/null @@ -1,30 +0,0 @@ -# $Id$ - -include $(GNUSTEP_MAKEFILES)/common.make - - -SUBPROJECT_NAME = NGLogging - - -ADDITIONAL_INCLUDE_DIRS += -I.. -I../.. - - -NGLogging_OBJC_FILES = \ - NSObject+ExtendedLogging.m \ - NGLogger.m \ - NGLogEvent.m \ - NGLogAppender.m \ - NGLogConsoleAppender.m \ - -NGLogging_HEADER_FILES = \ - NGLogging.h \ - NSObject+ExtendedLogging.h \ - NGLogger.h \ - NGLogEvent.h \ - NGLogAppender.h \ - NGLogConsoleAppender.h \ - - --include GNUmakefile.preamble -include $(GNUSTEP_MAKEFILES)/subproject.make --include GNUmakefile.postamble diff --git a/Misc/WebUI/NGExtensions/NGLogging/NGLogAppender.h b/Misc/WebUI/NGExtensions/NGLogging/NGLogAppender.h deleted file mode 100644 index fabab54a..00000000 --- a/Misc/WebUI/NGExtensions/NGLogging/NGLogAppender.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - 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 __NGLogAppender_H_ -#define __NGLogAppender_H_ - -/* - Abstract superclass for all appenders. -*/ - -#import -#import "NSObject+ExtendedLogging.h" - - -@class NGLogEvent; - - -@interface NGLogAppender : NSObject -{ - -} - -/* subclass responsibility */ -- (void)appendLogEvent:(NGLogEvent *)_event; -- (NSString *)formattedEvent:(NGLogEvent *)_event; - -- (NSString *)localizedNameOfLogLevel:(NGLogLevel)_level; - -@end - -#endif /* __NGLogAppender_H_ */ diff --git a/Misc/WebUI/NGExtensions/NGLogging/NGLogAppender.m b/Misc/WebUI/NGExtensions/NGLogging/NGLogAppender.m deleted file mode 100644 index 3743c843..00000000 --- a/Misc/WebUI/NGExtensions/NGLogging/NGLogAppender.m +++ /dev/null @@ -1,66 +0,0 @@ -/* - 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 "NGLogAppender.h" -#import "NGLogEvent.h" - - -@implementation NGLogAppender - -- (void)appendLogEvent:(NGLogEvent *)_event { - [self subclassResponsibility:_cmd]; -} - -- (NSString *)formattedEvent:(NGLogEvent *)_event { - return [NSString stringWithFormat:@"[%@] %@", - [self localizedNameOfLogLevel:[_event level]], - [_event message]]; -} - -- (NSString *)localizedNameOfLogLevel:(NGLogLevel)_level { - NSString *name; - - switch (_level) { - case NGLogLevelDebug: - name = @"DEBUG"; - break; - case NGLogLevelInfo: - name = @"INFO"; - break; - case NGLogLevelWarn: - name = @"WARN"; - break; - case NGLogLevelError: - name = @"ERROR"; - break; - case NGLogLevelFatal: - name = @"FATAL"; - break; - default: - name = @""; - break; - } - return name; -} - -@end diff --git a/Misc/WebUI/NGExtensions/NGLogging/NGLogConsoleAppender.h b/Misc/WebUI/NGExtensions/NGLogging/NGLogConsoleAppender.h deleted file mode 100644 index bc3fd343..00000000 --- a/Misc/WebUI/NGExtensions/NGLogging/NGLogConsoleAppender.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - 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 __NGLogConsoleAppender_H_ -#define __NGLogConsoleAppender_H_ - - -#import "NGLogAppender.h" - - -@interface NGLogConsoleAppender : NGLogAppender -{ - -} - -@end - -#endif /* __NGLogConsoleAppender_H_ */ diff --git a/Misc/WebUI/NGExtensions/NGLogging/NGLogConsoleAppender.m b/Misc/WebUI/NGExtensions/NGLogging/NGLogConsoleAppender.m deleted file mode 100644 index d9a53c46..00000000 --- a/Misc/WebUI/NGExtensions/NGLogging/NGLogConsoleAppender.m +++ /dev/null @@ -1,34 +0,0 @@ -/* - 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 "NGLogConsoleAppender.h" -#import "NGLogEvent.h" - - -@implementation NGLogConsoleAppender - -- (void)appendLogEvent:(NGLogEvent *)_event { - NSLog([self formattedEvent:_event]); -} - -@end diff --git a/Misc/WebUI/NGExtensions/NGLogging/NGLogEvent.h b/Misc/WebUI/NGExtensions/NGLogging/NGLogEvent.h deleted file mode 100644 index 3b1dfa4b..00000000 --- a/Misc/WebUI/NGExtensions/NGLogging/NGLogEvent.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - 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 __NGLogEvent_H_ -#define __NGLogEvent_H_ - - -#import -#import "NSObject+ExtendedLogging.h" - - -@interface NGLogEvent : NSObject -{ - NSString *msg; - NGLogLevel level; - NSTimeInterval date; -} - -- (id)initWithLevel:(NGLogLevel)_level message:(NSString *)_msg; - -- (NGLogLevel)level; -- (NSString *)message; -- (NSDate *)date; - -@end - -#endif /* __NGLogEvent_H_ */ diff --git a/Misc/WebUI/NGExtensions/NGLogging/NGLogEvent.m b/Misc/WebUI/NGExtensions/NGLogging/NGLogEvent.m deleted file mode 100644 index e9c61734..00000000 --- a/Misc/WebUI/NGExtensions/NGLogging/NGLogEvent.m +++ /dev/null @@ -1,56 +0,0 @@ -/* - 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 "NGLogEvent.h" -#import - - -@implementation NGLogEvent - -- (id)initWithLevel:(NGLogLevel)_level message:(NSString *)_msg { - if((self = [super init])) { - self->date = [NSDate timeIntervalSinceReferenceDate]; - self->level = _level; - ASSIGN(self->msg, _msg); - } - return self; -} - -- (void)dealloc { - [self->msg release]; - [super dealloc]; -} - -- (NGLogLevel)level { - return self->level; -} - -- (NSString *)message { - return self->msg; -} - -- (NSDate *)date { - return [NSDate dateWithTimeIntervalSinceReferenceDate:self->date]; -} - -@end diff --git a/Misc/WebUI/NGExtensions/NGLogging/NGLogSyslogAppender.h b/Misc/WebUI/NGExtensions/NGLogging/NGLogSyslogAppender.h deleted file mode 100644 index e7253b82..00000000 --- a/Misc/WebUI/NGExtensions/NGLogging/NGLogSyslogAppender.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - 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 __NGLogSyslogAppender_H_ -#define __NGLogSyslogAppender_H_ - - -#import "NGLogAppender.h" - - -@interface NGLogSyslogAppender : NGLogAppender -{ - -} - -+ (id)sharedAppender; - -/* provide syslog identifier */ -- (id)initWithIdentifier:(NSString *)_ident; - -@end - -#endif /* __NGLogSyslogAppender_H_ */ diff --git a/Misc/WebUI/NGExtensions/NGLogging/NGLogSyslogAppender.m b/Misc/WebUI/NGExtensions/NGLogging/NGLogSyslogAppender.m deleted file mode 100644 index 856b4754..00000000 --- a/Misc/WebUI/NGExtensions/NGLogging/NGLogSyslogAppender.m +++ /dev/null @@ -1,114 +0,0 @@ -/* - 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 "NGLogSyslogAppender.h" -#import "NGLogEvent.h" -#include -#include - - -@interface NGLogSyslogAppender (PrivateAPI) -- (int)syslogLevelForLogLevel:(NGLogLevel)_level; -@end - -@implementation NGLogSyslogAppender - - -static NSString *defaultSyslogIdentifier = nil; - - -+ (void)initialize { - NSUserDefaults *ud; - static BOOL isInitialized = NO; - - if(isInitialized) - return; - - ud = [NSUserDefaults standardUserDefaults]; - defaultSyslogIdentifier = - [[ud stringForKey:@"NGLogSyslogIdentifier"] retain]; - - isInitialized = YES; -} - -+ (id)sharedAppender { - static id sharedAppender = nil; - if(sharedAppender == nil) { - sharedAppender = [[self alloc] init]; - } - return sharedAppender; -} - -- (id)init { - return [self initWithIdentifier:defaultSyslogIdentifier]; -} - -- (id)initWithIdentifier:(NSString *)_ident { - if((self = [super init])) { - #warning ** default flags? - openlog([_ident cString], LOG_PID | LOG_NDELAY, LOG_USER); - } - return self; -} - -- (void)dealloc { - closelog(); - [super dealloc]; -} - -- (void)appendLogEvent:(NGLogEvent *)_event { - NSString *formattedMsg; - int level; - - formattedMsg = [self formattedEvent:_event]; - level = [self syslogLevelForLogLevel:[_event level]]; - syslog(level, [formattedMsg cString]); -} - -- (int)syslogLevelForLogLevel:(NGLogLevel)_level { - int level; - - switch (_level) { - case NGLogLevelDebug: - level = LOG_DEBUG; - break; - case NGLogLevelInfo: - level = LOG_INFO; - break; - case NGLogLevelWarn: - level = LOG_WARNING; - break; - case NGLogLevelError: - level = LOG_ERR; - break; - case NGLogLevelFatal: - level = LOG_ALERT; // LOG_EMERG is broadcast to all users... - break; - default: - level = LOG_NOTICE; - break; - } - return level; -} - -@end diff --git a/Misc/WebUI/NGExtensions/NGLogging/NGLogger.h b/Misc/WebUI/NGExtensions/NGLogging/NGLogger.h deleted file mode 100644 index 421abb0e..00000000 --- a/Misc/WebUI/NGExtensions/NGLogging/NGLogger.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - 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 __NGLogger_H_ -#define __NGLogger_H_ - -/* - The logger, modeled closely after log4j. - */ - - -#import -#include "NSObject+ExtendedLogging.h" - - -@interface NGLogger : NSObject -{ - NGLogLevel minLogLevel; - id _appender; // going away as soon as we have a config -} - -- (id)initWithLogLevel:(NGLogLevel)_level; - -- (void)setLogLevel:(NGLogLevel)_level; -- (NGLogLevel)logLevel; - -@end - -#endif /* __NGLogger_H_ */ diff --git a/Misc/WebUI/NGExtensions/NGLogging/NGLogger.m b/Misc/WebUI/NGExtensions/NGLogging/NGLogger.m deleted file mode 100644 index 52a08de1..00000000 --- a/Misc/WebUI/NGExtensions/NGLogging/NGLogger.m +++ /dev/null @@ -1,111 +0,0 @@ -/* - 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$ - - -#include "NGLogger.h" -#include -#include "common.h" -#include "NGLogEvent.h" -#include "NGLogAppender.h" - - -@implementation NGLogger - -- (id)init { - self = [self initWithLogLevel:NGLogLevelAll]; - return self; -} - -- (id)initWithLogLevel:(NGLogLevel)_level { - if((self = [super init])) { - NSUserDefaults *ud; - NSString *appenderClassName; - - [self setLogLevel:_level]; - -#warning ** remove this as soon as we have a config - ud = [NSUserDefaults standardUserDefaults]; - appenderClassName = [ud stringForKey:@"NGLogDefaultAppenderClass"]; - if(appenderClassName == nil) - appenderClassName = @"NGLogConsoleAppender"; - self->_appender = [[NSClassFromString(appenderClassName) alloc] init]; - } - return self; -} - -- (void)dealloc { - [self->_appender release]; - [super dealloc]; -} - - -- (void)setLogLevel:(NGLogLevel)_level { - self->minLogLevel = _level; -} - -- (NGLogLevel)logLevel { - return self->minLogLevel; -} - -- (void)logLevel:(NGLogLevel)_level withFormat:(NSString *)_fmt, ... { - NSString *msg; - NGLogEvent *event; - va_list va; - - if(self->minLogLevel > _level) - return; - - va_start(va, _fmt); - msg = [[NSString alloc] initWithFormat:_fmt arguments:va]; - va_end(va); - - event = [[NGLogEvent alloc] initWithLevel:_level message:msg]; - - // iterate appenders - // TODO: as soon as we have more appenders, we need to iterate on them - [self->_appender appendLogEvent:event]; - - [event release]; - [msg release]; -} - -- (BOOL)isLogDebugEnabled { - return self->minLogLevel >= NGLogLevelDebug; -} - -- (BOOL)isLogInfoEnabled { - return self->minLogLevel >= NGLogLevelInfo; -} - -- (BOOL)isLogWarnEnabled { - return self->minLogLevel >= NGLogLevelWarn; -} - -- (BOOL)isLogErrorEnabled { - return self->minLogLevel >= NGLogLevelError; -} - -- (BOOL)isLogFatalEnabled { - return self->minLogLevel >= NGLogLevelFatal; -} - -@end diff --git a/Misc/WebUI/NGExtensions/NGLogging/NGLogging.h b/Misc/WebUI/NGExtensions/NGLogging/NGLogging.h deleted file mode 100644 index b774724a..00000000 --- a/Misc/WebUI/NGExtensions/NGLogging/NGLogging.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - 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 __NGLogging_H_ -#define __NGLogging_H_ - -/* - NGLogging is a somewhat more sophisticated logging framework, modeled - apparently similar to log4j - without some of its bloat. The current - idea is to replace the default logging used throughout OGo (-logWithFormat:, - -debugWithFormat:, NSLog()) with the new logging framework to get rid of - stdout only logging. -*/ - - -#import - -#include "NSObject+ExtendedLogging.h" -#include "NGLogger.h" - - -#endif /* __NGLogging_H_ */ diff --git a/Misc/WebUI/NGExtensions/NGLogging/NSObject+ExtendedLogging.h b/Misc/WebUI/NGExtensions/NGLogging/NSObject+ExtendedLogging.h deleted file mode 100644 index 04845d9a..00000000 --- a/Misc/WebUI/NGExtensions/NGLogging/NSObject+ExtendedLogging.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - 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 __NSObject_ExtendedLogging_H_ -#define __NSObject_ExtendedLogging_H_ - - -#import - - -typedef enum { - NGLogLevelAll = 0, - NGLogLevelDebug = 1, - NGLogLevelInfo = 2, - NGLogLevelWarn = 3, - NGLogLevelError = 4, - NGLogLevelFatal = 5, - NGLogLevelOff = 6 -} NGLogLevel; - - -@interface NSObject (NGExtendedLogging) - -- (id)sharedLogger; -- (id)logger; - -- (void)logDebugWithFormat:(NSString *)_fmt, ...; -- (void)logInfoWithFormat:(NSString *)_fmt, ...; -- (void)logWarnWithFormat:(NSString *)_fmt, ...; -- (void)logErrorWithFormat:(NSString *)_fmt, ...; -- (void)logFatalWithFormat:(NSString *)_fmt, ...; - -- (BOOL)isLogDebugEnabled; -- (BOOL)isLogInfoEnabled; -- (BOOL)isLogWarnEnabled; -- (BOOL)isLogErrorEnabled; -- (BOOL)isLogFatalEnabled; - -- (void)logLevel:(NGLogLevel)_level withFormat:(NSString *)_fmt, ...; - -@end - -#endif /* __NSObject_ExtendedLogging_H_ */ diff --git a/Misc/WebUI/NGExtensions/NGLogging/NSObject+ExtendedLogging.m b/Misc/WebUI/NGExtensions/NGLogging/NSObject+ExtendedLogging.m deleted file mode 100644 index 50d30204..00000000 --- a/Misc/WebUI/NGExtensions/NGLogging/NSObject+ExtendedLogging.m +++ /dev/null @@ -1,128 +0,0 @@ -/* - 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 "NSObject+ExtendedLogging.h" -#import "NGLogger.h" - - -@implementation NSObject (NGExtendedLogging) - -- (id)sharedLogger { - static id sharedLogger = nil; - if(sharedLogger == nil) { - sharedLogger = [[NGLogger alloc] init]; - } - return sharedLogger; -} - -- (id)logger { - return [self sharedLogger]; -} - -- (void)logDebugWithFormat:(NSString *)_fmt, ... { - NSString *msg; - va_list va; - - va_start(va, _fmt); - msg = [[NSString alloc] initWithFormat:_fmt arguments:va]; - va_end(va); - [self logLevel:NGLogLevelDebug withFormat:msg]; - [msg release]; -} - -- (void)logInfoWithFormat:(NSString *)_fmt, ... { - NSString *msg; - va_list va; - - va_start(va, _fmt); - msg = [[NSString alloc] initWithFormat:_fmt arguments:va]; - va_end(va); - [self logLevel:NGLogLevelInfo withFormat:msg]; - [msg release]; -} - -- (void)logWarnWithFormat:(NSString *)_fmt, ... { - NSString *msg; - va_list va; - - va_start(va, _fmt); - msg = [[NSString alloc] initWithFormat:_fmt arguments:va]; - va_end(va); - [self logLevel:NGLogLevelWarn withFormat:msg]; - [msg release]; -} - -- (void)logErrorWithFormat:(NSString *)_fmt, ... { - NSString *msg; - va_list va; - - va_start(va, _fmt); - msg = [[NSString alloc] initWithFormat:_fmt arguments:va]; - va_end(va); - [self logLevel:NGLogLevelError withFormat:msg]; - [msg release]; -} - -- (void)logFatalWithFormat:(NSString *)_fmt, ... { - NSString *msg; - va_list va; - - va_start(va, _fmt); - msg = [[NSString alloc] initWithFormat:_fmt arguments:va]; - va_end(va); - [self logLevel:NGLogLevelFatal withFormat:msg]; - [msg release]; -} - -- (void)logLevel:(NGLogLevel)_level withFormat:(NSString *)_fmt, ... { - NSString *msg; - va_list va; - - va_start(va, _fmt); - msg = [[NSString alloc] initWithFormat:_fmt arguments:va]; - va_end(va); - [[self logger] logLevel:_level withFormat:msg]; - [msg release]; -} - -- (BOOL)isLogDebugEnabled { - return [[self logger] isLogDebugEnabled]; -} - -- (BOOL)isLogInfoEnabled { - return [[self logger] isLogInfoEnabled]; -} - -- (BOOL)isLogWarnEnabled { - return [[self logger] isLogWarnEnabled]; -} - -- (BOOL)isLogErrorEnabled { - return [[self logger] isLogErrorEnabled]; -} - -- (BOOL)isLogFatalEnabled { - return [[self logger] isLogFatalEnabled]; -} - -@end diff --git a/Misc/WebUI/NOTES b/Misc/WebUI/NOTES deleted file mode 100644 index 16dc5b80..00000000 --- a/Misc/WebUI/NOTES +++ /dev/null @@ -1,15 +0,0 @@ -$Id$ - -- NGExtensions - - Stuff I believe might be useful for later addition to NGExtensions framework - - - NGLogging - - Had a look at log4cocoa, appeared to be too bloated (they mimic all of - log4j which doesn't really make sense in Objective-C). - - NGLogConsoleAppender is the only appender currently available, it's - hardcoded in NGLogger as default. This should change as soon as we have - a config for that purpose. Logging is low priority, so we don't need to - do that too soon. - - Syslog appender might be useful for the ministry. Syslog provides its own - buffering, so syslog appender should be straight forward. Current - implementation makes some fix assumptions (log facility). \ No newline at end of file diff --git a/Misc/WebUI/PROJECTLEAD b/Misc/WebUI/PROJECTLEAD deleted file mode 100644 index ab0c70ac..00000000 --- a/Misc/WebUI/PROJECTLEAD +++ /dev/null @@ -1,3 +0,0 @@ -# $Id$ - -PROJECTLEAD=helge.hess@opengroupware.org diff --git a/Misc/WebUI/README b/Misc/WebUI/README deleted file mode 100644 index c5beb54d..00000000 --- a/Misc/WebUI/README +++ /dev/null @@ -1,24 +0,0 @@ -$Id$ - - -WebUI - Part of SOGo - Copyright (C) 2000-2004 SKYRIX Software AG - http://www.skyrix.com/ - -Subprojects -=========== - -- NGExtensions - - NGLogging - - -UserDefaults -============ - - Default | Type | Example Value - ============================================================== - NGLogSyslogIdentifier | String | WebUI - NGLogDefaultAppenderClass| String | NGLogConsoleAppender - - - diff --git a/Misc/WebUI/Session.h b/Misc/WebUI/Session.h deleted file mode 100644 index 9cea9077..00000000 --- a/Misc/WebUI/Session.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - 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 __Session_H_ -#define __Session_H_ - - -#include - - -@interface Session : WOSession -{ - -} - -@end - -#endif /* __Session_H_ */ diff --git a/Misc/WebUI/Session.m b/Misc/WebUI/Session.m deleted file mode 100644 index 58c00f53..00000000 --- a/Misc/WebUI/Session.m +++ /dev/null @@ -1,38 +0,0 @@ -/* - 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$ - - -#include "Session.h" -#include "common.h" - - -@implementation Session - -- (id)init { - self = [super init]; - if(self) { - [self logWarnWithFormat:@"session with id '%@' did init - this " \ - @"should NOT happen!", [self sessionID]]; - } - return self; -} -@end diff --git a/Misc/WebUI/TODO b/Misc/WebUI/TODO deleted file mode 100644 index e69de29b..00000000 diff --git a/Misc/WebUI/Version b/Misc/WebUI/Version deleted file mode 100644 index f96f6a3c..00000000 --- a/Misc/WebUI/Version +++ /dev/null @@ -1,15 +0,0 @@ -# $Id$ -# -# This file is included by library makefiles to set the version information -# of the executable. -# -# NOTE: This has no effect whatsover if you are using Xcode on Mac OS X. -# For Xcode please use the appropriate user interface or issue the following -# command in a shell: -# /Developer/Tools/agvtool new-version \ -# ${MAJOR_VERSION}.${MINOR_VERSION}.${SUBMINOR_VERSION} - -MAJOR_VERSION=1 -MINOR_VERSION=0 -SUBMINOR_VERSION=0 - diff --git a/Misc/WebUI/WebServerResources/favicon.ico b/Misc/WebUI/WebServerResources/favicon.ico deleted file mode 100644 index 829cb223f786c55612001a27e68051ee38b9d38f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3262 zcmeH|u}j-g5XYajwu4;$9F0mkbhJq*DpS zp<4+KjzT(g5toRAgHy0mNBxv*&o7slI0!oA<(Ke%zkBa{_r7=UlF|^L$;rfTHhq1T z(s)Yg6<=PZH+=uTziC_!#zRuz;_T$t-p=9f2G8l?eh976XsrJq;9zCFZGl&GO%C|;VM4a{M> z`RN_&t8>qxPID1yzpW;uysz$FCW86kVc45=1!-|$zf53H>+bZqff8nCu}DN z1b#JvO(ITVz+4c#E~5fHLQ19G{wJ@kxh20H#Q1}T%1|nm)HPVG=o73Szt+4~6zdVh zZBXHs(9kz-qYvE% zt-{#)Fasg?hzrGIt;VWFFIPAty~{J``Bf1dBfj+<3!7hDSi8{r4E3X_#Fw*m1+cLl zwRtp7j-yU>FCuvSo%hREHk(aE^JxH{3-jX5hhNj&@am3SpuCkaS - #include - #include -#endif diff --git a/Misc/WebUI/WebUI_main.m b/Misc/WebUI/WebUI_main.m deleted file mode 100644 index dfe7dcd5..00000000 --- a/Misc/WebUI/WebUI_main.m +++ /dev/null @@ -1,35 +0,0 @@ -/* - 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$ - - -#ifdef WITHOUT_SOPEX -#import -#define SOPEXMain WOApplicationMain -#else -#import -#endif /* WITHOUT_SOPEX */ - - -int main(int argc, const char *argv[]) -{ - return SOPEXMain(@"Application", argc, argv); -} diff --git a/Misc/WebUI/common.h b/Misc/WebUI/common.h deleted file mode 100644 index 79bf6b89..00000000 --- a/Misc/WebUI/common.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - 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 __common_H_ -#define __common_H_ - - -#import - -#include "NGLogging.h" - - -#endif /* __common_H_ */ diff --git a/Misc/WebUI/version.plist b/Misc/WebUI/version.plist deleted file mode 100644 index 6f3c68ca..00000000 --- a/Misc/WebUI/version.plist +++ /dev/null @@ -1,16 +0,0 @@ - - - - - BuildVersion - 1 - CFBundleShortVersionString - 0.1 - CFBundleVersion - 0.1 - ProjectName - NibPBTemplates - SourceVersion - 1160200 - - diff --git a/Misc/WebUI/wox-cheat-sheet.txt b/Misc/WebUI/wox-cheat-sheet.txt deleted file mode 100644 index 4a79b24b..00000000 --- a/Misc/WebUI/wox-cheat-sheet.txt +++ /dev/null @@ -1,50 +0,0 @@ -WOxControlElemBuilder ---------------------- - -:if -> WOConditional -:foreach -> WORepetition -:for-each -> WORepetition -:with -> WOSetCursor - -WOxMiscElemBuilder ------------------- - -:component-content -> WOComponentContent -:checkbox-list -> WOCheckBoxList -:entity -> WOEntity -:multiselection -> WOBrowser -:nbsp /*DEPRECATED*/ -> WOEntity -:popup -> WOPopUpButton -:radio-button-matrix -> WORadioButtonMatrix -:string -> WOString -:singleselection -> WOBrowser - - -WOxHTMLElemBuilder ------------------- - -:text -> WOTextField -:file -> WOFileUpload -:a -> WOHyperlink -:img -> WOImage -:form -> WOForm -:textarea -> WOText -:embed -> WOEmbeddedObject -:frame -> WOFrame -:iframe -> WOIFrame -:body -> WOBody - -:input [type="submit"] -> WOSubmitButton -:input [type="reset"] -> WOResetButton -:input [type="image"] -> WOImageButton -:input [type="radio"] -> WORadioButton -:input [type="checkbox"] -> WOCheckBox -:input [type="file"] -> WOFileUpload -:input [type="hidden"] -> WOHiddenField -:input [type="password"] -> WOPasswordField -:input [type="*"] -> WOTextField - -:meta [http-equiv="refresh*"] -> WOMetaRefresh - -:* [hasChildNodes="YES"] -> WOGenericContainer -:* [hasChildNodes="NO"] -> WOGenericElement diff --git a/Misc/ZideStore/UI-X/ChangeLog b/Misc/ZideStore/UI-X/ChangeLog deleted file mode 100644 index f8c8667d..00000000 --- a/Misc/ZideStore/UI-X/ChangeLog +++ /dev/null @@ -1,208 +0,0 @@ -2004-06-30 Marcus Müller - - * Scheduler/UIxAppointmentEditor.m: improved -saveAction. Does - everything in a complete manner now - except for saving which isn't - done at all. - -2004-06-30 Helge Hess - - * Scheduler/UIxAppointmentEditor.m: made the hack more hackish to work - on MacOSX - -2004-06-28 Marcus Mueller - - * Common/UIxComponent.[hm]: moved -ownMethodName here. - - * Scheduler/UIxCalView.[hm]: removed -ownMethodName, moved to - UIxComponent (reuse). - - * Scheduler/UIxAppointmentView.[hm]: first "draft" of view component. - The look of OGo is resembled closely, but most features are still - missing. - -2004-06-28 Marcus Mueller - - * Scheduler/GNUmakefile.preamble: links against libSOGoLogic now. - - * Scheduler/UIxAppointmentView.m, Scheduler/UIxAppointmentView.wox: - test of iCal object. - -2004-06-23 Marcus Mueller - - * UIxCalMonthOverview.[m,wox]: completed month view. Turned out to - be much more difficult to improve with style sheets than expected. - Requires version 4.2.45 of WEExtensions. - -2004-06-22 Marcus Mueller - - * Refactoring: Renamed everything from OGo to UIx in order to avoid - nameclashes (happens on OSX related to NGBundleManager) - - * Refactoring 2: Moved methods from UIxWeekOverview to UIxCalView. - - * Highlighting in UIxWeekOverview works now. - -2004-06-22 Helge Hess - - * Common/GNUmakefile.preamble: fixed linking for OGo gstep-make - -2004-06-21 Helge Hess - - * Scheduler/OGoCalWeekOverview.m: fixed syntax errors - -2004-06-18 Marcus Mueller - - * Implemented proper calendar in week overview. Highlighting isn't - enabled, yet. - -2004-06-18 Marcus Mueller - - * Common/OGoComponent.[hm]: new component which serves as a base - component for calendar components now. Knows how to deal with - queryParameters and offers url construction method(s). - - * All existing components have been rewritten to use queryParameters - instead of hardcoded strings where this is feasible. This provides - future extensibility and flexibility. - - * Handling of dates has been fixed to center around the use of a - 'day' parameter. startDate/endDate are coupled to this, but - don't override it as it's the duty of the individual view to set - its (feasible) ranges accordingly. The new behaviour is noticable - in the calendar selection tabview instantly, as it now replicates - what OGo does. - -2004-06-16 Marcus Mueller - - * Common/OGoAppNavView.m: construct URL correctly. - - * Common/OGoPageFrame.m: display login correctly. - - * Common/calendar.css: cosmetic changes. - - * Scheduler/OGoCalSelectTab.m: always display mondayOfWeek. - - * Scheduler/OGoCalBackForthNavView.m: created. - -2004-06-16 Marcus Mueller - - * Common/zidestoreui.css: new style for button_auto. - - * Scheduler/OGoCalView.[hm]: API for completing hrefs with necessary - query parts. - - * Scheduler/OGoCalWeekView.m: bugfix for startDate. - - * Scheduler/product.plist: added still missing views -> point to - weekoverview for the time being. - -2004-06-15 Marcus Mueller - - * Common/UIxTabView.m: removed class from tag, removed rendering - of headerFooter (what's that good for anyways?) - - * Several resources which resolved to wrong products added statically - in templates. - - * Cosmetic changes in templates. - -2004-06-14 Helge Hess - - * Scheduler/OGoCalMonthOverview.wox: added missing rsrc namespace - -2004-06-14 Helge Hess - - * Common/common.h: fixed a gcc 3.4 warning - -2004-06-14 Helge Hess - - * added aggregate project for UI-X - -2004-06-14 Marcus Mueller - - * Common/calendar.css: new date_label (unused) - - * Scheduler/OGoCalSelectTab.m: finished all labels - - * Scheduler/OGoCalDateLabel.m, Scheduler/OGoCalDateLabel.wox: new - component for rendering the correct date label based on startDate, - endDate and selection - - * Scheduler/OGoCalMonthView.m: prev/next month corrected - - * Scheduler/OGoCalMonthOverview.wox: uses date label and tabs now - - * Scheduler/OGoCalWeekOverview.wox: completed layout - - * Scheduler/GNUmakefile: new component added - -2004-06-14 Marcus Mueller - - * Common/UIxTabView.[hm]: more stylesheet support via headerStyle - and bodyStyle bindings. - - * Common/zidestoreui.css: styles for tabs, resembling OGo look. - - * Scheduler/OGoCalSelectTab.m: implemented dateLabel (for testing). - - * Scheduler/OGoCalSelectTab.wox: corrected selection binding namespace. - -2004-06-08 Helge Hess - - * Scheduler/NOTES: added class hierarchy - - * */common.h, GNUmakefile.preamble.: fixed for OSX compile - -2004-06-08 Marcus Mueller - - * Common/images: added a bunch of images from OGo - -2004-06-07 Marcus Mueller - - * Custom/GNUmakefile: changed ZIDESTORE to include installed version - (ZideStore12). Removed post install hooks. - - * Custom/GNUmakefile.postamble: new file, post install hooks and - xmllint for .wox. - -2004-06-07 Marcus Mueller - - * Scheduler/GNUmakefile: changed ZIDESTORE to include installed version - (ZideStore12). Removed post install hooks. - - * Scheduler/GNUmakefile.postamble: post install hooks updated for - GNUSTEP_BUILD_DIR. - -2004-06-03 Helge Hess - - * Scheduler/OGoCalWeekOverview.m: moved navigation URL generation to - superclass (now generic because we use the 'ownMethodName'). Could - even be moved to OGoCalView? - - * Scheduler/OGoCalMonthView.m: added next/prev month URL generation - methods, calculate startdate from form value - - * Scheduler/OGoCalView.m: added -ownMethodName method to return the - last path component of the request URL (the SOPE method), eg - 'weekoverview' for OGoCalWeekView, added - -dateNavigationURLWithNewStartDate: method to calculate 'startDate' - URLs (should be improved to include existing query parameters!) - - * Scheduler/OGoCalWeekOverview.m: minor tweaks ;-) - -2004-06-03 Marcus Mueller - - * Scheduler/OGoCalWeekView.m: construct startDate from formValue, - otherwise use current week's monday as startDate. - - * Scheduler/OGoCalWeekOverview.wox: switch back/forth - - * Scheduler/OGoCalWeekOverview.m: provide URLs for switching back/forth - weekoverview. - - * Scheduler/OGoCalView.[hm]: methods for converting dates into strings - and vice versa. - - * Scheduler/OGoAppointmentView.m, Scheduler/OGoCalView.m: fixed include - - * ChangeLog: created diff --git a/Misc/ZideStore/UI-X/Common/CommonUIProduct.m b/Misc/ZideStore/UI-X/Common/CommonUIProduct.m deleted file mode 100644 index b5a4da4a..00000000 --- a/Misc/ZideStore/UI-X/Common/CommonUIProduct.m +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright (C) 2000-2003 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: CommonUIProduct.m,v 1.1 2003/11/24 01:24:40 helge Exp $ - -#import - -@interface CommonUIProduct : NSObject -{ -} - -@end - -#include "common.h" - -@implementation CommonUIProduct -@end /* CommonUIProduct */ diff --git a/Misc/ZideStore/UI-X/Common/GNUmakefile b/Misc/ZideStore/UI-X/Common/GNUmakefile deleted file mode 100644 index 0fda272f..00000000 --- a/Misc/ZideStore/UI-X/Common/GNUmakefile +++ /dev/null @@ -1,82 +0,0 @@ -# $Id: GNUmakefile,v 1.2 2003/12/09 17:38:42 helge Exp $ - -include $(GNUSTEP_MAKEFILES)/common.make - -ZIDESTORE=$(GNUSTEP_USER_ROOT)/Headers/ZideStore12 - - -BUNDLE_NAME = CommonUI -BUNDLE_EXTENSION = .zsp -BUNDLE_INSTALL_DIR = $(GNUSTEP_USER_ROOT)/Library/ZideStore12 - -LIBRARY_NAME = libZideStoreCommonUI - - -libZideStoreCommonUI_HEADER_FILES_DIR = . -libZideStoreCommonUI_HEADER_FILES_INSTALL_DIR = $(ZIDESTORE)/Common - -libZideStoreCommonUI_HEADER_FILES += \ - UIxComponent.h \ - -libZideStoreCommonUI_OBJC_FILES += \ - UIxComponent.m \ - - -CommonUI_PRINCIPAL_CLASS = CommonUIProduct - -CommonUI_OBJC_FILES += \ - CommonUIProduct.m \ - UIxPageFrame.m \ - UIxAppFrame.m \ - UIxAppHeader.m \ - UIxAppNavigation.m \ - UIxWinClose.m \ - UIxAppNavView.m \ - \ - UIxElemBuilder.m \ - UIxTabView.m \ - UIxTabItem.m \ - - -CommonUI_RESOURCE_FILES += \ - Version \ - product.plist \ - UIxPageFrame.wox \ - UIxAppFrame.wox \ - UIxAppHeader.wox \ - UIxAppNavigation.wox \ - UIxWinClose.wox \ - UIxAppNavView.wox \ - \ - zidestoreui.css \ - calendar.css \ - \ - images/OGoLogo.gif \ - images/menu_logo_top.gif \ - images/line_left.gif \ - images/line_stretch.gif \ - images/line_right.gif \ - images/box_topleft.gif \ - images/box_top.gif \ - images/box_topright.gif \ - images/box_left.gif \ - images/box_right.gif \ - images/box_botleft.gif \ - images/box_bottom.gif\ - images/box_botright.gif\ - images/tab_selected.gif\ - images/tab_.gif\ - images/corner_right.gif\ - images/closewindow.gif - -ADDITIONAL_INCLUDE_DIRS += \ - -I. \ - -I$(ZIDESTORE)/Frontend -I$(ZIDESTORE)/Backend -I$(ZIDESTORE) - - -# make - --include GNUmakefile.preamble -include $(GNUSTEP_MAKEFILES)/library.make -include $(GNUSTEP_MAKEFILES)/bundle.make --include GNUmakefile.postamble diff --git a/Misc/ZideStore/UI-X/Common/GNUmakefile.postamble b/Misc/ZideStore/UI-X/Common/GNUmakefile.postamble deleted file mode 100644 index 3986bcce..00000000 --- a/Misc/ZideStore/UI-X/Common/GNUmakefile.postamble +++ /dev/null @@ -1,17 +0,0 @@ -# $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/Misc/ZideStore/UI-X/Common/GNUmakefile.preamble b/Misc/ZideStore/UI-X/Common/GNUmakefile.preamble deleted file mode 100644 index e76e480c..00000000 --- a/Misc/ZideStore/UI-X/Common/GNUmakefile.preamble +++ /dev/null @@ -1,16 +0,0 @@ -# $Id$ - -ifneq ($(GNUSTEP_BUILD_DIR),) - RELBUILD_DIR_libZideStoreCommonUI = $(GNUSTEP_OBJ_DIR) -else - RELBUILD_DIR_libZideStoreCommonUI = $(GNUSTEP_OBJ_DIR) -endif - -libZideStoreCommonUI_LIBRARIES_DEPEND_UPON += -lNGObjWeb - -CommonUI_LIB_DIRS += -L$(RELBUILD_DIR_libZideStoreCommonUI) - -CommonUI_BUNDLE_LIBS += \ - -lNGObjWeb -lNGScripting \ - -lNGMime -lNGStreams -lNGExtensions -lEOControl \ - -lXmlRpc -lDOM -lSaxObjC -lZideStoreCommonUI diff --git a/Misc/ZideStore/UI-X/Common/UIxAppFrame.m b/Misc/ZideStore/UI-X/Common/UIxAppFrame.m deleted file mode 100644 index 8d9553fb..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxAppFrame.m +++ /dev/null @@ -1,11 +0,0 @@ -// $Id$ - -#include - -@interface UIxAppFrame : SoComponent -@end - -#include "common.h" - -@implementation UIxAppFrame -@end /* UIxAppFrame */ diff --git a/Misc/ZideStore/UI-X/Common/UIxAppFrame.wox b/Misc/ZideStore/UI-X/Common/UIxAppFrame.wox deleted file mode 100644 index 0437cf39..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxAppFrame.wox +++ /dev/null @@ -1,44 +0,0 @@ - - - - - <var:string value="title"/> - - - - - - - - - - - - - - - - - - - - - - - - This pages requires frame tags, which your browser does not support, - sorry ;-> - - diff --git a/Misc/ZideStore/UI-X/Common/UIxAppHeader.m b/Misc/ZideStore/UI-X/Common/UIxAppHeader.m deleted file mode 100644 index 5a4db92f..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxAppHeader.m +++ /dev/null @@ -1,11 +0,0 @@ -// $Id$ - -#include - -@interface UIxAppHeader : SoComponent -@end - -#include "common.h" - -@implementation UIxAppHeader -@end /* UIxAppHeader */ diff --git a/Misc/ZideStore/UI-X/Common/UIxAppHeader.wox b/Misc/ZideStore/UI-X/Common/UIxAppHeader.wox deleted file mode 100644 index 4f8c0d27..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxAppHeader.wox +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - -
- reload - - resistance is obsolete ;-) -
- - diff --git a/Misc/ZideStore/UI-X/Common/UIxAppNavView.m b/Misc/ZideStore/UI-X/Common/UIxAppNavView.m deleted file mode 100644 index 8bf1ff12..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxAppNavView.m +++ /dev/null @@ -1,104 +0,0 @@ -/* - 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 -#import -#import -#import - - -@interface UIxAppNavView : WOComponent -{ - id element; - id lastElement; -} - -@end - - -@implementation UIxAppNavView - -- (void)dealloc { - [self->element release]; - [self->lastElement release]; - [super dealloc]; -} - -- (void)setElement:(id)_element { - ASSIGN(self->element, _element); -} - -- (id)element { - return self->element; -} - -- (void)setLastElement:(id)_element { - ASSIGN(self->lastElement, _element); -} - -- (id)lastElement { - return self->lastElement; -} - -- (NSArray *)navPathElements { - NSArray *traversalObjects; - NSMutableArray *navPathComponents; - NSMutableString *navURL; - unsigned int i, count; - - traversalObjects = [[self context] objectTraversalStack]; - count = ([traversalObjects count] - 1); /* remove SoPageInvocation */ - navPathComponents = [[NSMutableArray alloc] initWithCapacity:count]; - navURL = [[NSMutableString alloc] initWithString:@"/"]; - - for(i = 0; i < count; i++) { - NSString *name, *url; - id obj; - - obj = [traversalObjects objectAtIndex:i]; - - name = [obj davDisplayName]; - if(!name) - name = NSStringFromClass([obj class]); - - [navURL appendString:name]; - [navURL appendString:@"/"]; - - if(! [name hasPrefix:@"ZideStore"]) { - NSMutableDictionary *c; - - c = [[NSMutableDictionary alloc] initWithCapacity:2]; - [c setObject:name forKey:@"name"]; - url = [navURL copy]; - [c setObject:url forKey:@"url"]; - [url release]; - [navPathComponents addObject:c]; - [c release]; - } - } - - [self setLastElement:[navPathComponents lastObject]]; - return [navPathComponents autorelease]; -} - -@end diff --git a/Misc/ZideStore/UI-X/Common/UIxAppNavView.wox b/Misc/ZideStore/UI-X/Common/UIxAppNavView.wox deleted file mode 100644 index 6e924d43..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxAppNavView.wox +++ /dev/null @@ -1,10 +0,0 @@ - - - -You are here:/ - \ No newline at end of file diff --git a/Misc/ZideStore/UI-X/Common/UIxAppNavigation.m b/Misc/ZideStore/UI-X/Common/UIxAppNavigation.m deleted file mode 100644 index 529127de..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxAppNavigation.m +++ /dev/null @@ -1,11 +0,0 @@ -// $Id$ - -#include - -@interface UIxAppNavigation : SoComponent -@end - -#include "common.h" - -@implementation UIxAppNavigation -@end /* UIxAppNavigation */ diff --git a/Misc/ZideStore/UI-X/Common/UIxAppNavigation.wox b/Misc/ZideStore/UI-X/Common/UIxAppNavigation.wox deleted file mode 100644 index 27eadaf5..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxAppNavigation.wox +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - -
- -
- -
- (reload) -
- -
- -
- -
- CSS Menues - - diff --git a/Misc/ZideStore/UI-X/Common/UIxComponent.h b/Misc/ZideStore/UI-X/Common/UIxComponent.h deleted file mode 100644 index d9a0c6ff..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxComponent.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - 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 __UIxComponent_H_ -#define __UIxComponent_H_ - -#include - -@class NSCalendarDate; - - -@interface UIxComponent : SoComponent -{ - NSMutableDictionary *queryParameters; -} - -- (NSString *)queryParameterForKey:(NSString *)_key; -- (NSDictionary *)queryParameters; - -/* use this to set 'sticky' query parameters */ -- (void)setQueryParameter:(NSString *)_param forKey:(NSString *)_key; - -/* appends queryParameters to _method if any are set */ -- (NSString *)completeHrefForMethod:(NSString *)_method; - -- (NSString *)ownMethodName; - -/* date selection */ -- (NSCalendarDate *)selectedDate; -- (NSString *)dateStringForDate:(NSCalendarDate *)_date; -- (NSCalendarDate *)dateForDateString:(NSString *)_dateString; - -@end - -#endif /* __UIxComponent_H_ */ diff --git a/Misc/ZideStore/UI-X/Common/UIxComponent.m b/Misc/ZideStore/UI-X/Common/UIxComponent.m deleted file mode 100644 index 280bcd71..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxComponent.m +++ /dev/null @@ -1,168 +0,0 @@ -/* - 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$ - - -#include "UIxComponent.h" -#include -#include -#include - - -@interface UIxComponent (PrivateAPI) -- (void)_parseQueryString:(NSString *)_s; -@end - - -@implementation UIxComponent - -- (id)init { - if ((self = [super init])) { - self->queryParameters = [[NSMutableDictionary alloc] init]; - } - return self; -} - -- (void)dealloc { - [self->queryParameters release]; - [super dealloc]; -} - - -- (void)awake { - WORequest *req; - NSString *uri; - NSRange r; - - [super awake]; - - req = [[self context] request]; - uri = [req uri]; - r = [uri rangeOfString:@"?"]; - if(r.length > 0) { - NSString *qs; - - qs = [uri substringFromIndex:(r.location + r.length)]; - [self->queryParameters removeAllObjects]; - [self _parseQueryString:qs]; - } -} - -- (void)_parseQueryString:(NSString *)_s { - NSEnumerator *e; - NSString *part; - - e = [[_s componentsSeparatedByString:@"&"] objectEnumerator]; - while ((part = [e nextObject])) { - NSRange r; - NSString *key, *value; - - r = [part rangeOfString:@"="]; - if (r.length == 0) { - /* missing value of query parameter */ - key = [part stringByUnescapingURL]; - value = @"1"; - } - else { - key = [[part substringToIndex:r.location] stringByUnescapingURL]; - value = [[part substringFromIndex:(r.location + r.length)] - stringByUnescapingURL]; - } - [self->queryParameters setObject:value forKey:key]; - } -} - -- (NSString *)queryParameterForKey:(NSString *)_key { - return [self->queryParameters objectForKey:_key]; -} - -- (void)setQueryParameter:(NSString *)_param forKey:(NSString *)_key { - if(_key == nil) - return; - - if(_param != nil) - [self->queryParameters setObject:_param forKey:_key]; - else - [self->queryParameters removeObjectForKey:_key]; -} - -- (NSDictionary *)queryParameters { - return self->queryParameters; -} - -- (NSString *)completeHrefForMethod:(NSString *)_method { - NSDictionary *qp; - NSString *qs; - - qp = [self queryParameters]; - if([qp count] == 0) - return _method; - - qs = [[self context] queryStringFromDictionary:qp]; - return [_method stringByAppendingFormat:@"?%@", qs]; -} - -- (NSString *)ownMethodName { - NSString *uri; - NSRange r; - - uri = [[[self context] request] uri]; - - /* first: cut off query parameters */ - - r = [uri rangeOfString:@"?" options:NSBackwardsSearch]; - if (r.length > 0) - uri = [uri substringToIndex:r.location]; - - /* next: strip trailing slash */ - - if ([uri hasSuffix:@"/"]) uri = [uri substringToIndex:([uri length] - 1)]; - r = [uri rangeOfString:@"/" options:NSBackwardsSearch]; - - /* then: cut of last path component */ - - if (r.length == 0) // no slash? are we at root? - return @"/"; - - return [uri substringFromIndex:(r.location + 1)]; -} - -/* date */ - -- (NSCalendarDate *)selectedDate { - NSString *s; - - s = [self queryParameterForKey:@"day"]; - if(s) { - return [self dateForDateString:s]; - } - return [NSCalendarDate date]; -} - -- (NSString *)dateStringForDate:(NSCalendarDate *)_date { - return [_date descriptionWithCalendarFormat:@"%Y%m%d"]; -} - -- (NSCalendarDate *)dateForDateString:(NSString *)_dateString { - return [NSCalendarDate dateWithString:_dateString calendarFormat:@"%Y%m%d"]; -} - -@end diff --git a/Misc/ZideStore/UI-X/Common/UIxElemBuilder.m b/Misc/ZideStore/UI-X/Common/UIxElemBuilder.m deleted file mode 100644 index 00579088..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxElemBuilder.m +++ /dev/null @@ -1,86 +0,0 @@ -/* - 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 - -/* - This builder builds various elements from the UI-X product. - - All tags are mapped into the namespace (XMLNS_OD_BIND). - - maps to UIxTabView - maps to UIxTabItem -*/ - -@interface UIxElemBuilder : WOxTagClassElemBuilder -{ -} - -@end - -#include -#include "common.h" - -#define XMLNS_UIX @"OGo:uix" - - -@implementation UIxElemBuilder - -- (Class)classForElement:(id)_element { - NSString *tagName; - unsigned tl; - unichar c1; - - if (![[_element namespaceURI] isEqualToString:XMLNS_UIX]) - return Nil; - - tagName = [_element tagName]; - if ((tl = [tagName length]) < 2) - return Nil; - - c1 = [tagName characterAtIndex:0]; - - switch (c1) { - case 't': { /* starting with 't' */ - unichar c2; - - c2 = [tagName characterAtIndex:1]; - - if (tl == 3 && c2 == 'a') { - if ([tagName characterAtIndex:2] == 'b') - return NSClassFromString(@"UIxTabItem"); - } - - if (tl > 5) { - if (c2 == 'a') { - if ([tagName isEqualToString:@"tabview"]) - return NSClassFromString(@"UIxTabView"); - } - } - break; - } - } - - return Nil; -} - -@end /* UIxElemBuilder */ diff --git a/Misc/ZideStore/UI-X/Common/UIxPageFrame.m b/Misc/ZideStore/UI-X/Common/UIxPageFrame.m deleted file mode 100644 index ba39e5f4..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxPageFrame.m +++ /dev/null @@ -1,44 +0,0 @@ -// $Id$ - -#include -#include -#include - - -@interface UIxPageFrame : SoComponent -{ - NSString *title; -} - -@end - -#include "common.h" - -@implementation UIxPageFrame - -- (void)dealloc { - [self->title release]; - [super dealloc]; -} - -/* accessors */ - -- (void)setTitle:(NSString *)_value { - ASSIGN(self->title, _value); -} - -- (NSString *)title { - return self->title; -} - -- (NSString *)login { - WOContext *ctx; - SoUser *user; - - ctx = [self context]; - user = [[[self clientObject] authenticatorInContext:ctx] - userInContext:ctx]; - return [user login]; -} - -@end /* UIxPageFrame */ diff --git a/Misc/ZideStore/UI-X/Common/UIxPageFrame.wox b/Misc/ZideStore/UI-X/Common/UIxPageFrame.wox deleted file mode 100644 index efc1f4d9..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxPageFrame.wox +++ /dev/null @@ -1,308 +0,0 @@ - - - - - <var:string value="title"/> - - - - - - - - - - - - - - - - - - - - - -
- - - - - -
- - - - - -
- - - - - - -
- - - - - -
-
- - - - - -
- - - - - - - - - - - - - - - - -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - SOGo () - -
- - - - - - -
- - - - - -
-
-
- - News - -
- - Projects - -
- - Contacts - -
- - Companies - -
- - Calendar - -
- - Tasks - -
-
- -
- - - - - -
- -
-
- - - - - - - - - - - - - - - - - - - -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Misc -
- - - - - - -
- - - - - -
-
-
- New Email -
- Inbox -
- Preferences -
- Home -
- Desktop -
- Logout -
-
- -
- - - - - -
-
-
- -
- - - - - - - - -
- - - - - -
-
- - - - - -
- - 2000-2004 SKYRIX Software AG. - We welcome your - feedback. - - - - No sessions required! ;-) - -
-
- - diff --git a/Misc/ZideStore/UI-X/Common/UIxTabItem.m b/Misc/ZideStore/UI-X/Common/UIxTabItem.m deleted file mode 100644 index 21046f9d..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxTabItem.m +++ /dev/null @@ -1,475 +0,0 @@ -/* - 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 "UIxTabView.h" -#include "common.h" - -#if DEBUG -# define DEBUG_JS 1 -#endif - -/* context keys */ -extern NSString *UIxTabView_HEAD; -extern NSString *UIxTabView_BODY; -extern NSString *UIxTabView_KEYS; -extern NSString *UIxTabView_SCRIPT; -extern NSString *UIxTabView_ACTIVEKEY; -extern NSString *UIxTabView_COLLECT; - -@implementation UIxTabItem - -static Class StrClass = Nil; - -+ (int)version { - return [super version] + 0; -} -+ (void)initialize { - StrClass = [NSString class]; -} - -static NSString *retStrForInt(int i) { - switch(i) { - case 0: return @"0"; - case 1: return @"1"; - case 2: return @"2"; - case 3: return @"3"; - case 4: return @"4"; - case 5: return @"5"; - case 6: return @"6"; - case 7: return @"7"; - case 8: return @"8"; - case 9: return @"9"; - case 10: return @"10"; - // TODO: find useful count! - default: - return [[StrClass alloc] initWithFormat:@"%i", i]; - } -} - -- (id)initWithName:(NSString *)_name - associations:(NSDictionary *)_config - template:(WOElement *)_subs -{ - if ((self = [super initWithName:_name associations:_config template:_subs])) { - self->key = WOExtGetProperty(_config, @"key"); - self->label = WOExtGetProperty(_config, @"label"); - - self->isScript = WOExtGetProperty(_config, @"isScript"); - self->href = WOExtGetProperty(_config, @"href"); - - self->icon = WOExtGetProperty(_config, @"icon"); - self->action = WOExtGetProperty(_config, @"action"); - - self->tabStyle = WOExtGetProperty(_config, @"tabStyle"); - self->selectedTabStyle = WOExtGetProperty(_config, @"selectedTabStyle"); - - self->tabIcon = WOExtGetProperty(_config, @"tabIcon"); - self->leftTabIcon = WOExtGetProperty(_config, @"leftTabIcon"); - self->selectedTabIcon = WOExtGetProperty(_config, @"selectedTabIcon"); - - self->asBackground = WOExtGetProperty(_config, @"asBackground"); - self->width = WOExtGetProperty(_config, @"width"); - self->height = WOExtGetProperty(_config, @"height"); - self->activeBgColor = WOExtGetProperty(_config, @"activeBgColor"); - self->inactiveBgColor = WOExtGetProperty(_config, @"inactiveBgColor"); - - self->template = [_subs retain]; - } - return self; -} - -- (void)dealloc { - [self->key release]; - [self->label release]; - - [self->href release]; - - [self->action release]; - - [self->isScript release]; - [self->template release]; - - [self->tabStyle release]; - [self->selectedTabStyle release]; - - [self->icon release]; - [self->leftTabIcon release]; - [self->selectedTabIcon release]; - [self->tabIcon release]; - - [self->asBackground release]; - [self->width release]; - [self->height release]; - - [self->activeBgColor release]; - [self->inactiveBgColor release]; - - [super dealloc]; -} - -/* responder */ - -- (void)takeValuesFromRequest:(WORequest *)_rq inContext:(WOContext *)_ctx { - NSString *activeTabKey; - NSString *myTabKey; - BOOL doCheck; - - if ([_ctx objectForKey:UIxTabView_HEAD]) { - /* head clicks */ - [[_ctx component] debugWithFormat: - @"UIxTabItem: head takes (no) values, eid='%@'", - [_ctx elementID]]; - return; - } - - if ((activeTabKey = [_ctx objectForKey:UIxTabView_BODY]) == nil) { - [[_ctx component] debugWithFormat:@"UIxTabItem: invalid state"]; - [self->template takeValuesFromRequest:_rq inContext:_ctx]; - return; - } - - myTabKey = [self->key stringValueInComponent:[_ctx component]]; - doCheck = [self->isScript boolValueInComponent:[_ctx component]]; - - if ([activeTabKey isEqualToString:myTabKey] || doCheck) { -#if ADD_OWN_ELEMENTIDS - [_ctx appendElementIDComponent:activeTabKey]; -#endif - -#if DEBUG_TAKEVALUES - [[_ctx component] debugWithFormat: - @"UIxTabItem: body takes values, eid='%@'", - [_ctx elementID]]; -#endif - - [self->template takeValuesFromRequest:_rq inContext:_ctx]; -#if ADD_OWN_ELEMENTIDS - [_ctx deleteLastElementIDComponent]; -#endif - } -#if DEBUG_TAKEVALUES - else { - [[_ctx component] debugWithFormat: - @"UIxTabItem: body takes no values, eid='%@'", - [_ctx elementID]]; - } -#endif -} - -- (id)invokeActionForRequest:(WORequest *)_req inContext:(WOContext *)_ctx { - id result; - WOAssociation *tmp; - NSString *activeTabKey; - - if ((tmp = [_ctx objectForKey:UIxTabView_HEAD])) { - /* click on tab icon */ - NSString *tabkey; - - tabkey = [_ctx currentElementID]; - [_ctx consumeElementID]; - [_ctx appendElementIDComponent:tabkey]; - - if ([tmp isValueSettable]) - [tmp setValue:tabkey inComponent:[_ctx component]]; - -#if 0 - result = [self->action valueInComponent:[_ctx component]]; -#endif - - [_ctx deleteLastElementIDComponent]; - } - else if ((activeTabKey = [_ctx objectForKey:UIxTabView_BODY])) { - /* clicked somewhere in the (active) body */ - result = [self->template invokeActionForRequest:_req inContext:_ctx]; - } - else { - [[_ctx component] logWithFormat:@"UIxTabItem: invalid invoke state"]; - result = [self->template invokeActionForRequest:_req inContext:_ctx]; - } - - return result; -} - -/* info collection */ - -- (void)_collectInContext:(WOContext *)_ctx key:(NSString *)k { - BOOL isLeft = NO; - NSMutableArray *keys; - UIxTabItemInfo *info; - WOComponent *cmp; - - cmp = [_ctx component]; - keys = [_ctx objectForKey:UIxTabView_KEYS]; - if (keys == nil) { - keys = [[[NSMutableArray alloc] init] autorelease]; - [_ctx setObject:keys forKey:UIxTabView_KEYS]; - isLeft = YES; - } - - if (k == nil) { - /* auto-assign a key */ - k = retStrForInt([keys count]); - } - else - k = [k retain]; - [_ctx appendElementIDComponent:k]; - - info = [[UIxTabItemInfo alloc] init]; - info->key = [k copy]; - info->label = [[self->label stringValueInComponent:cmp] copy]; - info->icon = [[self->icon stringValueInComponent:cmp] copy]; -#if 0 - info->uri = [[_ctx componentActionURL] copy]; -#else - info->uri = [[self->href stringValueInComponent:cmp] copy]; -#endif - info->isScript = [self->isScript boolValueInComponent:cmp]; - info->tabIcon = [[self->tabIcon stringValueInComponent:cmp] copy]; - info->leftIcon = [[self->leftTabIcon stringValueInComponent:cmp] copy]; - info->selIcon = [[self->selectedTabIcon stringValueInComponent:cmp] - copy]; - info->tabStyle = [[self->tabStyle stringValueInComponent:cmp] copy]; - info->selectedTabStyle = [[self->selectedTabStyle stringValueInComponent:cmp] - copy]; - - if (self->asBackground == nil) - info->asBackground = 0; - else { - info->asBackground - = ([self->asBackground boolValueInComponent:cmp]) ? 1 : -1; - } - info->width = [[self->width stringValueInComponent:cmp] copy]; - info->height = [[self->height stringValueInComponent:cmp] copy]; - info->activeBg = [[self->activeBgColor stringValueInComponent:cmp] - copy]; - info->inactiveBg = [[self->inactiveBgColor stringValueInComponent:cmp] - copy]; - - if (info->leftIcon == nil) info->leftIcon = [info->tabIcon copy]; - - [keys addObject:info]; - [info release]; - [k release]; - - [_ctx deleteLastElementIDComponent]; -} - -/* header generation */ - -- (void)_appendHeadToResponse:(WOResponse *)_response - inContext:(WOContext *)_ctx - activeKey:(NSString *)activeKey - key:(NSString *)k -{ - /* head is currently generated in UIxTabView */ -#if 0 - // note: some associations can be inherited by UIxTabView ! - BOOL doImages; - WOComponent *comp; - BOOL doBgIcon; - NSString *label; - NSString *w, *h; - - doImages = ![[[_ctx request] clientCapabilities] isTextModeBrowser]; - comp = [_ctx component]; - - doBgIcon = self->asBackground && doImages - ? [self->asBackground boolValueInComponent:comp] ? YES : NO - : NO; - - if ((label = [self->label stringValueInComponent:comp]) == nil) - label = k; - - if (doImages) { - /* lookup image */ - NSString *imgName = nil; - // ... - - imgUri = WEUriOfResource(imgName, _ctx); - if ([imgUri length] < 1) - doImages = NO; - } - - // .... _isActive -#endif -} - -/* body generation */ - -- (void)_appendBodyToResponse:(WOResponse *)_response - inContext:(WOContext *)_ctx - activeKey:(NSString *)tmp - key:(NSString *)k -{ - BOOL doScript; - BOOL isScript_; - BOOL isActive; - - doScript = [[_ctx objectForKey:UIxTabView_SCRIPT] boolValue]; - isScript_ = [self->isScript boolValueInComponent:[_ctx component]]; - isActive = [tmp isEqualToString:k]; - - if (doScript && (isActive || isScript_)) { - [_response appendContentString:@"
\n"]; - } - - if (isActive || (doScript && isScript_)) { - /* content is active or used as layer*/ -#if ADD_OWN_ELEMENTIDS - [_ctx appendElementIDComponent:k]; -#endif -#if DEBUG && 0 - NSLog(@"TAB: %@", k); -#endif - - [self->template appendToResponse:_response inContext:_ctx]; - -#if ADD_OWN_ELEMENTIDS - [_ctx deleteLastElementIDComponent]; -#endif - } - - if (doScript && (isActive || isScript_)) { - NSString *jsout; - [_response appendContentString:@"
"]; - - jsout = [NSString alloc]; - jsout = [jsout initWithFormat: - @""]; - } -} - -/* master generation method */ - -- (void)appendToResponse:(WOResponse *)_response inContext:(WOContext *)_ctx { - NSString *k; - BOOL doForm; - id tmp; - - doForm = [_ctx isInForm]; - k = [self->key stringValueInComponent:[_ctx component]]; - - if ((tmp = [_ctx objectForKey:UIxTabView_HEAD])) { - if ([tmp isEqual:UIxTabView_COLLECT]) { - [self _collectInContext:_ctx key:k]; - } - else { - [self _appendHeadToResponse:_response inContext:_ctx - activeKey:tmp key:k]; - } - } - else if ((tmp = [_ctx objectForKey:UIxTabView_BODY])) { - [self _appendBodyToResponse:_response inContext:_ctx - activeKey:tmp key:k]; - } - else { - NSLog(@"WARNING(%s): invalid UIxTabItem state !!!", __PRETTY_FUNCTION__); - [_response appendContentString:@"[invalid state]"]; - } -} - -@end /* UIxTabItem */ - -@implementation UIxTabItemInfo - -- (void)dealloc { - [self->uri release]; - [self->icon release]; - [self->label release]; - [self->key release]; - [self->tabStyle release]; - [self->selectedTabStyle release]; - [self->tabIcon release]; - [self->selIcon release]; - [self->leftIcon release]; - [self->width release]; - [self->height release]; - [self->activeBg release]; - [self->inactiveBg release]; - - [super dealloc]; -} - -/* accessors */ - -- (NSString *)key { - return self->key; -} -- (NSString *)label { - return self->label; -} -- (NSString *)icon { - return self->icon; -} -- (NSString *)uri { - return self->uri; -} -- (BOOL)isScript { - return self->isScript; -} - -- (int)asBackground { - return self->asBackground; -} - -- (NSString *)width { - return self->width; -} - -- (NSString *)height { - return self->height; -} - -- (NSString *)activeBg { - return self->activeBg; -} - -- (NSString *)inactiveBg { - return self->inactiveBg; -} - -@end /* UIxTabItemInfo */ diff --git a/Misc/ZideStore/UI-X/Common/UIxTabView.h b/Misc/ZideStore/UI-X/Common/UIxTabView.h deleted file mode 100644 index 8224b442..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxTabView.h +++ /dev/null @@ -1,134 +0,0 @@ -/* - 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$ - -#ifndef __UIxTabView_H__ -#define __UIxTabView_H__ - -/* - This is a library private header ! -*/ - -#include - -/* - Does not support tab-head-creation from nested components !!! - - hh: Why not ??? -> Because selection is manipulated in sub-elements - - UIxTabView creates element-IDs like - - .h.*.$key. for the tab-items (head-mode) - .b.$key... for the tab-content (content-mode) (new, hh) - - !!! UIxTabView JavaScript can't handle duplicate tab-keys !!! -*/ - -@interface UIxTabView : WODynamicElement -{ - WOAssociation *selection; - - /* config: */ - WOAssociation *headerStyle; - WOAssociation *bodyStyle; - WOAssociation *tabStyle; - WOAssociation *selectedTabStyle; - - /* old config: */ - WOAssociation *bgColor; - WOAssociation *nonSelectedBgColor; - WOAssociation *leftCornerIcon; - WOAssociation *rightCornerIcon; - - WOAssociation *tabIcon; - WOAssociation *leftTabIcon; - WOAssociation *selectedTabIcon; - - WOAssociation *asBackground; - WOAssociation *width; - WOAssociation *height; - WOAssociation *activeBgColor; - WOAssociation *inactiveBgColor; - - WOAssociation *fontColor; - WOAssociation *fontSize; - WOAssociation *fontFace; - - id template; -} - -@end - -@interface UIxTabItem : WODynamicElement -{ - WOAssociation *key; - WOAssociation *label; - - WOAssociation *href; - WOAssociation *isScript; - - WOAssociation *action; - WOAssociation *icon; - - /* config: */ - WOAssociation *tabStyle; - WOAssociation *selectedTabStyle; - - /* old config */ - WOAssociation *tabIcon; - WOAssociation *leftTabIcon; - WOAssociation *selectedTabIcon; - - WOAssociation *asBackground; - WOAssociation *width; - WOAssociation *height; - WOAssociation *activeBgColor; - WOAssociation *inactiveBgColor; - - id template; -} - -@end - -@interface UIxTabItemInfo : NSObject -{ -@public - NSString *label; - NSString *icon; - NSString *key; - NSString *uri; - NSString *tabIcon; - NSString *leftIcon; - NSString *selIcon; - NSString *tabStyle; - NSString *selectedTabStyle; - - int asBackground; // 0 -> not set, 1 -> YES, else -> NO - NSString *width; - NSString *height; - NSString *activeBg; - NSString *inactiveBg; - - BOOL isScript; -} -@end - -#endif /* __UIxTabView_H__ */ diff --git a/Misc/ZideStore/UI-X/Common/UIxTabView.m b/Misc/ZideStore/UI-X/Common/UIxTabView.m deleted file mode 100644 index ac635c3e..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxTabView.m +++ /dev/null @@ -1,819 +0,0 @@ -/* - 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 "UIxTabView.h" -#include "common.h" -#import -#import -#import -#include - -#if DEBUG -// # define DEBUG_TAKEVALUES 1 -# define DEBUG_JS 1 -#endif - -/* context keys */ -NSString *UIxTabView_HEAD = @"UIxTabView_head"; -NSString *UIxTabView_BODY = @"UIxTabView_body"; -NSString *UIxTabView_KEYS = @"UIxTabView_keys"; -NSString *UIxTabView_SCRIPT = @"UIxTabView_script"; -NSString *UIxTabView_ACTIVEKEY = @"UIxTabView_activekey"; -NSString *UIxTabView_COLLECT = @"~tv~"; - -@implementation UIxTabView - -static NSNumber *YesNumber; - -+ (void)initialize { - if (YesNumber == nil) - YesNumber = [[NSNumber numberWithBool:YES] retain]; -} - -+ (int)version { - return [super version] + 0; -} - -- (id)initWithName:(NSString *)_name - associations:(NSDictionary *)_config - template:(WOElement *)_subs -{ - if ((self = [super initWithName:_name associations:_config template:_subs])) { - self->selection = WOExtGetProperty(_config, @"selection"); - - self->headerStyle = WOExtGetProperty(_config, @"headerStyle"); - self->bodyStyle = WOExtGetProperty(_config, @"bodyStyle"); - self->tabStyle = WOExtGetProperty(_config, @"tabStyle"); - self->selectedTabStyle = WOExtGetProperty(_config, @"selectedTabStyle"); - - self->bgColor = WOExtGetProperty(_config, @"bgColor"); - self->nonSelectedBgColor = WOExtGetProperty(_config, @"nonSelectedBgColor"); - self->leftCornerIcon = WOExtGetProperty(_config, @"leftCornerIcon"); - self->rightCornerIcon = WOExtGetProperty(_config, @"rightCornerIcon"); - - self->tabIcon = WOExtGetProperty(_config, @"tabIcon"); - self->leftTabIcon = WOExtGetProperty(_config, @"leftTabIcon"); - self->selectedTabIcon = WOExtGetProperty(_config, @"selectedTabIcon"); - - self->asBackground = WOExtGetProperty(_config, @"asBackground"); - self->width = WOExtGetProperty(_config, @"width"); - self->height = WOExtGetProperty(_config, @"height"); - self->activeBgColor = WOExtGetProperty(_config, @"activeBgColor"); - self->inactiveBgColor = WOExtGetProperty(_config, @"inactiveBgColor"); - - self->fontColor = WOExtGetProperty(_config, @"fontColor"); - self->fontSize = WOExtGetProperty(_config, @"fontSize"); - self->fontFace = WOExtGetProperty(_config, @"fontFace"); - - self->template = RETAIN(_subs); - } - return self; -} - -- (void)dealloc { - [self->selection release]; - - [self->headerStyle release]; - [self->bodyStyle release]; - [self->tabStyle release]; - [self->selectedTabStyle release]; - - RELEASE(self->bgColor); - RELEASE(self->nonSelectedBgColor); - RELEASE(self->leftCornerIcon); - RELEASE(self->rightCornerIcon); - - RELEASE(self->leftTabIcon); - RELEASE(self->selectedTabIcon); - RELEASE(self->tabIcon); - - RELEASE(self->width); - RELEASE(self->height); - - RELEASE(self->activeBgColor); - RELEASE(self->inactiveBgColor); - - RELEASE(self->fontColor); - RELEASE(self->fontSize); - RELEASE(self->fontFace); - - RELEASE(self->template); - [super dealloc]; -} - -/* nesting */ - -- (id)saveNestedStateInContext:(WOContext *)_ctx { - return nil; -} -- (void)restoreNestedState:(id)_state inContext:(WOContext *)_ctx { - if (_state == nil) return; -} - -- (NSArray *)collectKeysInContext:(WOContext *)_ctx { - /* collect mode, collects all keys */ - [_ctx setObject:UIxTabView_COLLECT forKey:UIxTabView_HEAD]; - - [self->template appendToResponse:nil inContext:_ctx]; - - [_ctx removeObjectForKey:UIxTabView_HEAD]; - return [_ctx objectForKey:UIxTabView_KEYS]; -} - -/* responder */ - -- (void)takeValuesFromRequest:(WORequest *)_req inContext:(WOContext *)_ctx { - id nestedState; - NSString *activeTabKey; - - activeTabKey = [self->selection stringValueInComponent:[_ctx component]]; - NSLog(@"%s activeTabKey:%@", __PRETTY_FUNCTION__, activeTabKey); - nestedState = [self saveNestedStateInContext:_ctx]; - [_ctx appendElementIDComponent:@"b"]; - [_ctx appendElementIDComponent:activeTabKey]; - - [_ctx setObject:activeTabKey forKey:UIxTabView_BODY]; - -#if DEBUG_TAKEVALUES - [[_ctx component] debugWithFormat:@"UIxTabView: body takes values, eid='%@'", - [_ctx elementID]]; -#endif - - [self->template takeValuesFromRequest:_req inContext:_ctx]; - - [_ctx removeObjectForKey:UIxTabView_BODY]; - [_ctx deleteLastElementIDComponent]; // activeKey - [_ctx deleteLastElementIDComponent]; /* 'b' */ - [self restoreNestedState:nestedState inContext:_ctx]; -} - -- (id)invokeActionForRequest:(WORequest *)_req inContext:(WOContext *)_ctx { - NSString *key; - id result; - id nestedState; - - if ((key = [_ctx currentElementID]) == nil) - return nil; - - result = nil; - nestedState = [self saveNestedStateInContext:_ctx]; - - if ([key isEqualToString:@"h"]) { - /* header action */ - //NSString *urlKey; - - [_ctx consumeElementID]; - [_ctx appendElementIDComponent:@"h"]; -#if 0 - if ((urlKey = [_ctx currentElementID]) == nil) { - [[_ctx application] - debugWithFormat:@"missing active head tab key !"]; - } - else { - //NSLog(@"clicked: %@", urlKey); - [_ctx consumeElementID]; - [_ctx appendElementIDComponent:urlKey]; - } -#endif - - [_ctx setObject:self->selection forKey:UIxTabView_HEAD]; - result = [self->template invokeActionForRequest:_req inContext:_ctx]; - [_ctx removeObjectForKey:UIxTabView_HEAD]; - -#if 0 - if (urlKey) - [_ctx deleteLastElementIDComponent]; // active key -#endif - [_ctx deleteLastElementIDComponent]; // 'h' - } - else if ([key isEqualToString:@"b"]) { - /* body action */ - NSString *activeTabKey, *urlKey; - - [_ctx consumeElementID]; - [_ctx appendElementIDComponent:@"b"]; - - if ((urlKey = [_ctx currentElementID]) == nil) { - [[_ctx application] - debugWithFormat:@"missing active body tab key !"]; - } - else { - //NSLog(@"clicked: %@", urlKey); - [_ctx consumeElementID]; - [_ctx appendElementIDComponent:urlKey]; - } - - activeTabKey = [self->selection stringValueInComponent:[_ctx component]]; - [_ctx setObject:activeTabKey forKey:UIxTabView_BODY]; - - result = [self->template invokeActionForRequest:_req inContext:_ctx]; - - [_ctx removeObjectForKey:UIxTabView_BODY]; - - if (urlKey) - [_ctx deleteLastElementIDComponent]; // active key - [_ctx deleteLastElementIDComponent]; // 'b' - } - else { - [[_ctx application] - debugWithFormat:@"unknown tab container key '%@'", key]; - } - - [self restoreNestedState:nestedState inContext:_ctx]; - return result; -} - -- (NSString *)_tabViewCountInContext:(WOContext *)_ctx { - int count; - count = [[_ctx valueForKey:@"UIxTabViewScriptDone"] intValue]; - return [NSString stringWithFormat:@"%d",count]; -} - -- (NSString *)scriptHref:(UIxTabItemInfo *)_info - inContext:(WOContext *)_ctx - isLeft:(BOOL)_isLeft - keys:(NSArray *)_keys -{ - NSMutableString *result = [NSMutableString string]; - UIxTabItemInfo *tmp; - NSString *activeKey; - int i, cnt; - NSString *elID; - NSString *tstring; - - activeKey = [self->selection stringValueInComponent:[_ctx component]]; - [result appendString:@"JavaScript:showTab("]; - [result appendString:_info->key]; - [result appendString:@"Tab);"]; - - [result appendString:@"swapCorners("]; - tstring = (!_isLeft) - ? @"tabCorner%@,tabCornerLeft%@);" - : @"tabCornerLeft%@,tabCorner%@);"; - elID = [self _tabViewCountInContext:_ctx]; - [result appendString:[NSString stringWithFormat:tstring,elID,elID]]; - - for (i=0, cnt = [_keys count]; i < cnt; i++) { - tmp = [_keys objectAtIndex:i]; - - if ((tmp->isScript || [tmp->key isEqualToString:activeKey]) - && ![tmp->key isEqualToString:_info->key]) { - [result appendString:@"hideTab("]; - [result appendString:tmp->key]; - [result appendString:@"Tab);"]; - } - } - return result; -} - -- (void)appendLink:(UIxTabItemInfo *)_info - toResponse:(WOResponse *)_response - inContext:(WOContext *)_ctx - isActive:(BOOL)_isActive isLeft:(BOOL)_isLeft - doScript:(BOOL)_doScript keys:(NSArray *)_keys -{ - NSString *headUri = nil; - NSString *label = nil; - NSString *scriptHref = nil; - NSString *styleName = nil; - - WEClientCapabilities *ccaps; - WOComponent *comp; - - ccaps = [[_ctx request] clientCapabilities]; - - comp = [_ctx component]; - headUri = _info->uri; - - if ((label = _info->label) == nil) - label = _info->key; - - if (_isActive) { - styleName = (_info->selectedTabStyle) - ? _info->selectedTabStyle - : [self->selectedTabStyle stringValueInComponent:comp]; - } - else { - styleName = (_info->tabStyle) - ? _info->tabStyle - : [self->tabStyle stringValueInComponent:comp]; - } - - [_response appendContentString:@"']; - - [_response appendContentString:@"isScript || _isActive)) { - scriptHref = - [self scriptHref:_info inContext:_ctx isLeft:_isLeft keys:_keys]; - [_response appendContentHTMLAttributeValue:scriptHref]; - } - else { - [_response appendContentHTMLAttributeValue:headUri]; - } - - [_response appendContentString:@"\" "]; - [_response appendContentString: - [NSString stringWithFormat:@"name='%@TabLink'", _info->key]]; - [_response appendContentString:@">"]; - - if ([label length] < 1) - label = _info->key; - [_response appendContentString:@""]; - [_response appendContentHTMLString:label]; - [_response appendContentString:@""]; - - [_response appendContentString:@""]; - - [_response appendContentString:@""]; - -#if 0 - if (_doScript && (_info->isScript || _isActive)) { - NSString *k; // key - NSString *s; // selected tab icon - NSString *u; // unselected tab icon - //NSString *out; - - k = _info->key; - s = _info->selIcon; // selectedTabIcon - u = (_isLeft) ? _info->leftIcon : _info->tabIcon; - - s = WEUriOfResource(s, _ctx); - u = WEUriOfResource(u, _ctx); - - s = ([s length] < 1) ? imgUri : s; - u = ([u length] < 1) ? imgUri : u; - -#if 0 - out = [NSString alloc]; - out = [out initWithFormat: - @"", - k, k, k, k, scriptHref, k, headUri, - k, k, k, k, - k, u, k, k, s - ]; - - [_response appendContentString:out]; - RELEASE(out); -#else -# define _appendStr_(_str_) [_response appendContentString:_str_] - _appendStr_(@""); -#undef _appendStr_ -#endif - } -#endif -} - -- (void)appendSubmitButton:(UIxTabItemInfo *)_info - toResponse:(WOResponse *)_response - inContext:(WOContext *)_ctx - isActive:(BOOL)_isActive isLeft:(BOOL)_left - doScript:(BOOL)_doScript keys:(NSArray *)_keys -{ - [self appendLink:_info - toResponse:_response - inContext:_ctx - isActive:_isActive isLeft:_left - doScript:_doScript keys:_keys]; -} - -- (void)_appendTabViewJSScriptToResponse:(WOResponse *)_response - inContext:(WOContext *)_ctx -{ - [_response appendContentString: - @""]; -} - -- (void)_appendHeaderRowToResponse:(WOResponse *)_response - inContext:(WOContext *)_ctx - keys:(NSArray *)keys activeKey:(NSString *)activeKey - doScript:(BOOL)doScript -{ - unsigned i, count; - BOOL doForm; - NSString *styleName; - - doForm = NO; /* generate form controls ? */ - - [_response appendContentString:@""]; - - styleName = [self->headerStyle stringValueInComponent:[_ctx component]]; - if(styleName) { - [_response appendContentString: - @""]; - } - else { - [_response appendContentString: - @"
"]; - } - - for (i = 0, count = [keys count]; i < count; i++) { - UIxTabItemInfo *info; - NSString *key; - BOOL isActive; - - info = [keys objectAtIndex:i]; - key = info->key; - isActive = [key isEqualToString:activeKey]; - - [_ctx appendElementIDComponent:key]; - - if (doForm) { - /* tab is inside of a FORM, so produce submit buttons */ - [self appendSubmitButton:info - toResponse:_response - inContext:_ctx - isActive:isActive - isLeft:(i == 0) ? YES : NO - doScript:doScript - keys:keys]; - } - else { - /* tab is not in a FORM, generate hyperlinks for tab */ - [self appendLink:info - toResponse:_response - inContext:_ctx - isActive:isActive - isLeft:(i == 0) ? YES : NO - doScript:doScript - keys:keys]; - } - - [_ctx deleteLastElementIDComponent]; - } - // [_response appendContentString:@""]; - [_response appendContentString:@"
"]; - [_response appendContentString:@""]; -} - -- (void)_appendHeaderFootRowToResponse:(WOResponse *)_response - inContext:(WOContext *)_ctx - bgcolor:(NSString *)bgcolor - doScript:(BOOL)doScript - isLeftActive:(BOOL)isLeftActive -{ - NSString *styleName; - [_response appendContentString:@" bodyStyle stringValueInComponent:[_ctx component]]; - if(styleName) { - [_response appendContentString:@" class='"]; - [_response appendContentHTMLAttributeValue:styleName]; - [_response appendContentCharacter:'\'']; - } - if (bgcolor) { - [_response appendContentString:@" bgcolor=\""]; - [_response appendContentHTMLAttributeValue:bgcolor]; - [_response appendContentString:@"\""]; - } - [_response appendContentString:@">\n"]; - - /* left corner */ - [_response appendContentString:@" "]; - - if (doScript) { - [_response appendContentString:@"
"]; - [_response appendContentString:@" "]; - [_response appendContentString:@"
"]; - } - else if (isLeftActive) - [_response appendContentString:@" "]; - - if (doScript) { - [_response appendContentString:@"
"]; - } - - if (!isLeftActive || doScript) { - NSString *uri; - - uri = [self->leftCornerIcon stringValueInComponent:[_ctx component]]; - if ((uri = WEUriOfResource(uri, _ctx))) { - [_response appendContentString:@"\"\""]; - } - else - [_response appendContentString:@" "]; - } - if (doScript) - [_response appendContentString:@"
"]; - - [_response appendContentString:@"\n"]; - - /* right corner */ - [_response appendContentString:@" "]; - { - NSString *uri; - - uri = [self->rightCornerIcon stringValueInComponent:[_ctx component]]; - if ((uri = WEUriOfResource(uri, _ctx))) { - [_response appendContentString:@"\"\""]; - } - else - [_response appendContentString:@" "]; - } - [_response appendContentString:@"\n"]; - - [_response appendContentString:@" \n"]; -} - -- (void)_appendBodyRowToResponse:(WOResponse *)_response - inContext:(WOContext *)_ctx - bgcolor:(NSString *)bgcolor - activeKey:(NSString *)activeKey -{ - WEClientCapabilities *ccaps; - BOOL indentContent; - NSString *styleName; - - styleName = [self->bodyStyle stringValueInComponent:[_ctx component]]; - ccaps = [[_ctx request] clientCapabilities]; - - /* put additional padding table into content ??? */ - indentContent = [ccaps isFastTableBrowser] && ![ccaps isTextModeBrowser]; - - [_response appendContentString:@"']; - - if (indentContent) { - /* start padding table */ - [_response appendContentString: - @""]; - [_response appendContentString:@"
"]; - } - - [_ctx appendElementIDComponent:@"b"]; - [_ctx appendElementIDComponent:activeKey]; - - /* generate currently active body */ - { - [_ctx setObject:activeKey forKey:UIxTabView_BODY]; - [self->template appendToResponse:_response inContext:_ctx]; - [_ctx removeObjectForKey:UIxTabView_BODY]; - } - - [_ctx deleteLastElementIDComponent]; // activeKey - [_ctx deleteLastElementIDComponent]; // 'b' - - if (indentContent) - /* close padding table */ - [_response appendContentString:@"
"]; - - [_response appendContentString:@""]; -} - -- (BOOL)isLeftActiveInKeys:(NSArray *)keys activeKey:(NSString *)activeKey{ - unsigned i, count; - BOOL isLeftActive; - - isLeftActive = NO; - - for (i = 0, count = [keys count]; i < count; i++) { - UIxTabItemInfo *info; - - info = [keys objectAtIndex:i]; - - if ((i == 0) && [info->key isEqualToString:activeKey]) - isLeftActive = YES; - } - - return isLeftActive; -} - -- (void)appendToResponse:(WOResponse *)_response inContext:(WOContext *)_ctx { - WOComponent *cmp; - NSString *bgcolor; - BOOL isLeftActive; - BOOL doScript; - id nestedState; - NSString *activeKey; - NSArray *keys; - int tabViewCount; /* used for image id's and writing script once */ - - doScript = NO; /* perform tab-clicks on browser (use javascript) */ - tabViewCount = [[_ctx valueForKey:@"UIxTabViewScriptDone"] intValue]; - cmp = [_ctx component]; - - /* check for browser */ - { - WEClientCapabilities *ccaps; - //BOOL isJavaScriptBrowser; - - ccaps = [[_ctx request] clientCapabilities]; - doScript = [ccaps isInternetExplorer] && [ccaps isJavaScriptBrowser]; - doScript = (doScript && - [[[cmp session] - valueForKey:@"isJavaScriptEnabled"] boolValue]); - } - - /* disable javascript */ - doScript = NO; - - /* save state */ - - nestedState = [self saveNestedStateInContext:_ctx]; - - /* configure */ - - activeKey = [self->selection stringValueInComponent:cmp]; - - bgcolor = [self->bgColor stringValueInComponent:cmp]; - bgcolor = [bgcolor stringValue]; - - [_ctx appendElementIDComponent:@"h"]; - - /* collect & process keys (= available tabs) */ - - keys = [self collectKeysInContext:_ctx]; - - if (![[keys valueForKey:@"key"] containsObject:activeKey]) - /* selection is not available in keys */ - activeKey = nil; - - if ((activeKey == nil) && ([keys count] > 0)) { - /* no or invalid selection, use first key */ - activeKey = [[keys objectAtIndex:0] key]; - if ([self->selection isValueSettable]) - [self->selection setValue:activeKey inComponent:[_ctx component]]; - } - - if (doScript) { - doScript = [[keys valueForKey:@"isScript"] containsObject:YesNumber]; - [_ctx setObject:[NSNumber numberWithBool:doScript] - forKey:UIxTabView_SCRIPT]; - } - - /* start appending */ - - if ((doScript) && (tabViewCount == 0)) - [self _appendTabViewJSScriptToResponse:_response inContext:_ctx]; - - /* count up for unique tabCorner/tabCornerLeft images */ - [_ctx takeValue:[NSNumber numberWithInt:(tabViewCount + 1)] - forKey:@"UIxTabViewScriptDone"]; - - [_response appendContentString: - @""]; - - /* find out whether left is active */ - - isLeftActive = [self isLeftActiveInKeys:keys activeKey:activeKey]; - - /* generate header row */ - - [self _appendHeaderRowToResponse:_response inContext:_ctx - keys:keys activeKey:activeKey - doScript:doScript]; - - [_ctx deleteLastElementIDComponent]; // 'h' for head - [_ctx removeObjectForKey:UIxTabView_HEAD]; - -#if 0 - /* header foot row */ - - [self _appendHeaderFootRowToResponse:_response inContext:_ctx - bgcolor:bgcolor - doScript:doScript - isLeftActive:isLeftActive]; -#endif - - /* body row */ - - [self _appendBodyRowToResponse:_response inContext:_ctx - bgcolor:bgcolor - activeKey:activeKey]; - - /* close table */ - - [_response appendContentString:@"
"]; - [_ctx removeObjectForKey:UIxTabView_ACTIVEKEY]; - [_ctx removeObjectForKey:UIxTabView_KEYS]; - [self restoreNestedState:nestedState inContext:_ctx]; -} - -@end /* UIxTabView */ diff --git a/Misc/ZideStore/UI-X/Common/UIxWinClose.m b/Misc/ZideStore/UI-X/Common/UIxWinClose.m deleted file mode 100644 index e8320e69..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxWinClose.m +++ /dev/null @@ -1,37 +0,0 @@ -/* - 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$ - - -#include - - -@interface UIxWinClose : WOComponent -{ - -} - -@end - - -@implementation UIxWinClose - -@end diff --git a/Misc/ZideStore/UI-X/Common/UIxWinClose.wox b/Misc/ZideStore/UI-X/Common/UIxWinClose.wox deleted file mode 100644 index 35769e42..00000000 --- a/Misc/ZideStore/UI-X/Common/UIxWinClose.wox +++ /dev/null @@ -1,6 +0,0 @@ - -X diff --git a/Misc/ZideStore/UI-X/Common/Version b/Misc/ZideStore/UI-X/Common/Version deleted file mode 100644 index d64ce5ad..00000000 --- a/Misc/ZideStore/UI-X/Common/Version +++ /dev/null @@ -1,5 +0,0 @@ -# $Id: Version,v 1.1 2003/11/24 01:24:40 helge Exp $ - -SUBMINOR_VERSION:=1 - -# 1.1.0 requires NGObjWeb 4.2.202 diff --git a/Misc/ZideStore/UI-X/Common/bundle-info.plist b/Misc/ZideStore/UI-X/Common/bundle-info.plist deleted file mode 100644 index c7081c18..00000000 --- a/Misc/ZideStore/UI-X/Common/bundle-info.plist +++ /dev/null @@ -1,40 +0,0 @@ -{ - "__cvs__" = "$Id: bundle-info.plist,v 1.1 2003/11/24 01:24:40 helge Exp $"; - - requires = { - bundleManagerVersion = 1; - classes = ( - { name = NSObject; } - ); - }; - - provides = { - ZideStoreProducts = ( { name = CommonUIProduct; } ); - - classes = ( - { name = CommonUIProduct; }, - { name = UIxComponent; }, - { name = UIxPageFrame; }, - { name = UIxWinClose; }, - { name = UIxAppNavView; }, - { name = "UIxElemBuilder"; }, - { name = "UIxTabView"; }, - { name = "UIxTabItem"; }, - ); - - WOComponents = ( - { name = UIxPageFrame; }, - { name = UIxWinClose; }, - { name = UIxAppNavView; }, - ); - - WOxElemBuilder = ( - { name = "UIxElemBuilder"; }, - ); - - WODynamicElements = ( - { name = "UIxTabView"; }, - { name = "UIxTabItem"; }, - ); - }; -} diff --git a/Misc/ZideStore/UI-X/Common/calendar.css b/Misc/ZideStore/UI-X/Common/calendar.css deleted file mode 100644 index 34553bb4..00000000 --- a/Misc/ZideStore/UI-X/Common/calendar.css +++ /dev/null @@ -1,189 +0,0 @@ -.aptview_title { - font-size: 10pt; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - color: #000000; - font-weight: bold; -} - -.aptview_text { - font-size: 10pt; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - color: #000000; -} - -.weekoverview_title { - font-size: 10pt; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - letter-spacing: 0pt; - color: #000000; - background-color: #d2d2cc; -} - -.weekoverview_title a { - color: #0033cc; - text-decoration: none; -} - -.weekoverview_title_hilite { - font-size: 10pt; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - letter-spacing: 0pt; - color: #000000; - background-color: #d2d2cc; - font-weight: bold; -} - -.weekoverview_title_hilite a { - color: #0033cc; - text-decoration: none; -} - -.weekoverview_title_daylink { - font-size: 12pt; - color: #0033cc; - font-weight: bold; -} - -.weekoverview_title_newlink { - font-size: 8pt; -} - -.weekoverview_holidayinfo { - font-size: 8pt; - font-weight: bold; -} - -.weekoverview_content { - color: #FFFFFF; - background-color: #e8e8e0; -} - -.weekoverview_content a { - color: #0000FF; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - letter-spacing: 0pt; - text-decoration: none; -} - -.weekoverview_content_hilite { - background-color: #fffff0; -} - -.weekoverview_content_hilite a { - color: #0000FF; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - letter-spacing: 0pt; - text-decoration: none; -} - -.monthoverview { - color: #000000; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - font-size: 10pt; - letter-spacing: 0pt; - padding: 2px; -} - -.monthoverview a { - color: #0033cc; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - font-size: 7pt; - font-style: normal; - font-weight: normal; - letter-spacing: 0pt; - text-decoration: none; -} - -.monthoverview a:hover { - text-decoration: underline; -} - -.monthoverview_title { - background-color: #d2d2cc; - text-align: center; -} - -.monthoverview_week { - background-color: #d2d2cc; - width: 16pt; - text-align: center; - vertical-align: middle; -} - -.monthoverview_week a { - color: #000000; - font-size: 10pt; -} - -.monthoverview_week_hilite { - background-color: #fffff0; - width: 16pt; - text-align: center; - vertical-align: middle; -} - -.monthoverview_week_hilite a { - color: #000000; - font-size: 10pt; -} - -.monthoverview_content { - background-color: #e8e8e0; - font-size: 9pt; - height: 60; -} - -.monthoverview_content a { - font-style: italic; - font-weight: bold; -} - -.monthoverview_content td { - text-align: let; - vertical-align: top; -} - - -.monthoverview_content_hilite { - background-color: #fffff0; - font-size: 9pt; - height: 60; -} - -.monthoverview_content_hilite a { - font-style: italic; - font-weight: bold; -} - -.monthoverview_content_dimmed { - background-color: #d2d2cc; - font-size: 9pt; - height: 60; -} - -.monthoverview_content_dimmed a { - font-style: normal; - font-weight: normal; -} - -.monthoverview_day a { - color: #000000; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - font-size: 12pt; -} - -.monthoverview_day_new a { - font-style: normal; - font-weight: normal; -} - -.monthoverview_day_new a:hover { - font-style: normal; - font-weight: normal; - color: #ff0000; -} - -.monthoverview_content_link { - font-style: normal; - font-weight: normal; -} diff --git a/Misc/ZideStore/UI-X/Common/common.h b/Misc/ZideStore/UI-X/Common/common.h deleted file mode 100644 index ea759a93..00000000 --- a/Misc/ZideStore/UI-X/Common/common.h +++ /dev/null @@ -1,155 +0,0 @@ -/* - Copyright (C) 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: common.h,v 1.1 2003/11/24 01:24:40 helge Exp $ - -#import - -#if LIB_FOUNDATION_LIBRARY -# include -#elif NeXT_Foundation_LIBRARY || COCOA_Foundation_LIBRARY -# include -# include -#endif - -#include -#include -#include - -@interface WOContext(WOExtensionsPrivate) -- (void)addActiveFormElement:(WOElement *)_element; -@end - -static inline id WOExtGetProperty(NSDictionary *_set, NSString *_name) { - id propValue = [_set objectForKey:_name]; - - if (propValue) { - propValue = [propValue retain]; - [(NSMutableDictionary *)_set removeObjectForKey:_name]; - } - return propValue; -} - -static inline NSString *WEUriOfResource(NSString *_name, WOContext *_ctx) { - NSArray *languages; - WOResourceManager *resourceManager; - NSString *uri; - - if (_name == nil) - return nil; - - languages = [_ctx hasSession] - ? [[_ctx session] languages] - : [[_ctx request] browserLanguages]; - - resourceManager = [[_ctx application] resourceManager]; - - uri = [resourceManager urlForResourceNamed:_name - inFramework:nil - languages:languages - request:[_ctx request]]; - if ([uri rangeOfString:@"/missingresource?"].length > 0) - uri = nil; - - return uri; -} - -static inline void WEAppendFont(WOResponse *_resp, - NSString *_color, - NSString *_face, - NSString *_size) -{ - [_resp appendContentString:@"']; -} - -static inline void WEAppendTD(WOResponse *_resp, - NSString *_align, - NSString *_valign, - NSString *_bgColor) -{ - [_resp appendContentString:@"']; -} - -static inline WOElement *WECreateElement(NSString *_className, - NSString *_name, - NSDictionary *_config, - WOElement *_template) -{ - Class c; - WOElement *result = nil; - NSMutableDictionary *config = nil; - - if ((c = NSClassFromString(_className)) == Nil) { - NSLog(@"%s: missing '%@' class", __PRETTY_FUNCTION__, _className); - return nil; - } - config = [NSMutableDictionary dictionaryWithCapacity:4]; - { - NSEnumerator *keyEnum; - id key; - - keyEnum = [_config keyEnumerator]; - - while ((key = [keyEnum nextObject])) { - WOAssociation *a; - - a = [WOAssociation associationWithValue:[_config objectForKey:key]]; - [config setObject:a forKey:key]; - } - } - result = [[c alloc] initWithName:_name - associations:config - template:_template]; - return [result autorelease]; -} - -#define OWGetProperty WOExtGetProperty diff --git a/Misc/ZideStore/UI-X/Common/images/OGoLogo.gif b/Misc/ZideStore/UI-X/Common/images/OGoLogo.gif deleted file mode 100755 index ea1b5f5551ab4b07432a323d084cc8174cb61549..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2047 zcmcJM`&ZI=0){^zauLukh)PNmWEmz?plI4y3wVjJ3szQ|84{I}oi28_owz0lId~0= zP6#xav1a8|Q{j>$NfxHl*u^|#*0IYHVOvgn&aSTeN9=pvU*B_{^SsNJXQ!qWUkBfT zdjL#LO*!s)mCY{QbkBM`PsaRyzvGresa5LKy7(0)G+PJQN-t6UaGL( z)aDUy6Wcqzt|w#U%=&ntDV`c%aG*mfcX)muV{JB7$d%$!F?W|uD(|p&4*EY&2uf`Q zN9^KV`#!Z>ra6b@dJP@r?M2 z8dpVwL#m#p@*}H)i`ABX?n2AOR&C;GY^)k#!loICFlA6%Y*W)IoN<;Br-V7NsaA|4-3ECq zXa(A;LRkx}D5W*dN>Tn{5m*KJ7B5733*|iK^*zE2DxQwp6ve zhfitv+MtzZgiVGp&zFb@bwS0Bq1JX(ahBz@MdaNimVHX$vOj5C6-3#vnUyCE6eD_3Zo;9@p2QLx zz0&}jvwl&@Ka&8(G#6%Qi)OD)r;*NAZd`}U$U@+qD@$M>U#t9)R+Yz+QsX8AnIsSY z3J$d>E?|b`h7z-C(cRQ%#Pq`4)$m0jwW?Y`mLbw1=3e8mzln%1OPd}VF!+B-_8EeW zXr>!)a<}L11ey^+qJ{GWR;@Y6>?QIkA{RXhH+y6F*8?c-fyWJLAz|wfaqb<^I??-x zETSSVEc>Iu11yd#&dg-=mgkf|Uz{IOt@VUj3PD}G1;Fq>J)3RlMp}IRA8)We zI+dO2z638^&0zZSea#V!+2OZ7=fo`pV4xD;vgaWpc{0_f3rYMkBx5>B*D#Db@hAM3 z9y0{bQ>vPisz~XnPy6(s|3Ur|Tc(tP;OTM0j&Ie!Bf=Ep{Z4oWKj5O$_<=|HFyUN2 zhWv9^&Q(H{D=Ibb5^)O*d&l_osi^Y%iDwclSq6e2A!krcyS4rKo($q$#u-tfJOhX$ z!@~Fe=|CfUBr+YcvBV-jevI1=OGWN)Z?gZmY$+e%=W^Sfi*xdJtn7z)tH7SxgBlCdN{ol z%@dh|L1>8#x3pb5d{bLvdB!=sC(6Vzjh-wrZQ=EsF~F-_yn>XVFCA9lo{aWAA#-;3 zwOpVU9Sxfp4`u$ElfO^gesM3Cn*QL+^S+z0XzsnOsFcH5QDlyc@U9CL%UGX~XqL(_ zqK5<+{{^7t>$f7zpmft2niP`b@y_5{rqc+?WJ4?-Mnkkvs|{)d)Dt}<+qr3VaTCJ% zkbtD~>W2%^sDA^l-t8O^zRFG%_z5>Ee6&cB99H;wpPz7E5(9g5V^<_m4!{rp1)>R% A`2YX_ diff --git a/Misc/ZideStore/UI-X/Common/images/box_botleft.gif b/Misc/ZideStore/UI-X/Common/images/box_botleft.gif deleted file mode 100644 index edaa19035f05f7297deaacc8c649121b3ac61d6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100 zcmZ?wbhEHb(_Vg+_`Gis-;VpPMbC@Gcz+ZG}O(_4Xgw~ o=zy3Yy$mdp0xh1*R;AOXG<&$ZYdEKCB)X|^hH(_Vg+_`Gis-;VpPMbC@Gcz+ZG}O(_4Xgw~ q=zy3Yy$meU1}7vLrn29ia7wq+ftSlsw98P|Gs%k~s3Vw#!5RQ3XdaFL diff --git a/Misc/ZideStore/UI-X/Common/images/box_bottom.gif b/Misc/ZideStore/UI-X/Common/images/box_bottom.gif deleted file mode 100644 index c63a9cf945095116016b61fa61625058a83474d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43 scmZ?wbhEHb(_Vg+_`Gis-;VpPMbC@Gcz+ZG}O(_4Xgw~ q=zy3Yy$meU1}7A_m?keNSr&LyMBtPHm#2nUr-tI(?wyV-4AuZFzaMJ= diff --git a/Misc/ZideStore/UI-X/Common/images/box_topright.gif b/Misc/ZideStore/UI-X/Common/images/box_topright.gif deleted file mode 100644 index 5b3ca17b84e44500138bba6c5044721aa2c5723d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101 zcmZ?wbhEHb(_Vg+_`Gis-;VpPMbC@Gcz+ZG}O(_4Xgw~ p=zy3Yy$mc;0t=LywyLWZDzfNY>Fh|Ltj$Y2csQN9XW diff --git a/Misc/ZideStore/UI-X/Common/images/line_left.gif b/Misc/ZideStore/UI-X/Common/images/line_left.gif deleted file mode 100644 index 19415f34782520e996dfae64708d20ff3c147f23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264 zcmZ?wbhEHb)L>v_xXJ(m|NsC0_wWDTzyF@U{_^bAXJNaE5>As+ zyG@mGn=0=)UCDcfn%^wF(0Pt2%iJH-x*@J+OM3H;{H{HflMYr)JkYc7 z+Z^ zfx(hN2P6ve69b#-fd+>3oi{UDBvsjFd&I31<6h*o(2wtu$B~E@p^pCc%@;F_+7uY9 E0a6QnAs+ zyG@mGn=0=)UCDcfn%^wF(0Pt2%iJH-x*@J+OM3H;{H{HflMYr)JkYc7 z+Z^ zfx(hN2P6ve69b#FgU_=KFDvX8v?LwO=As+ zyG@mGn=0=)UCDcfn%^wF(0Pt2%iJH-x*@J+OM3H;{H{HflMYr)JkYc7 z+Z^ Yfx(hN2P6ve69XIjfo{i+gFs$NfxHl*u^|#*0IYHVOvgn&aSTeN9=pvU*B_{^SsNJXQ!qWUkBfT zdjL#LO*!s)mCY{QbkBM`PsaRyzvGresa5LKy7(0)G+PJQN-t6UaGL( z)aDUy6Wcqzt|w#U%=&ntDV`c%aG*mfcX)muV{JB7$d%$!F?W|uD(|p&4*EY&2uf`Q zN9^KV`#!Z>ra6b@dJP@r?M2 z8dpVwL#m#p@*}H)i`ABX?n2AOR&C;GY^)k#!loICFlA6%Y*W)IoN<;Br-V7NsaA|4-3ECq zXa(A;LRkx}D5W*dN>Tn{5m*KJ7B5733*|iK^*zE2DxQwp6ve zhfitv+MtzZgiVGp&zFb@bwS0Bq1JX(ahBz@MdaNimVHX$vOj5C6-3#vnUyCE6eD_3Zo;9@p2QLx zz0&}jvwl&@Ka&8(G#6%Qi)OD)r;*NAZd`}U$U@+qD@$M>U#t9)R+Yz+QsX8AnIsSY z3J$d>E?|b`h7z-C(cRQ%#Pq`4)$m0jwW?Y`mLbw1=3e8mzln%1OPd}VF!+B-_8EeW zXr>!)a<}L11ey^+qJ{GWR;@Y6>?QIkA{RXhH+y6F*8?c-fyWJLAz|wfaqb<^I??-x zETSSVEc>Iu11yd#&dg-=mgkf|Uz{IOt@VUj3PD}G1;Fq>J)3RlMp}IRA8)We zI+dO2z638^&0zZSea#V!+2OZ7=fo`pV4xD;vgaWpc{0_f3rYMkBx5>B*D#Db@hAM3 z9y0{bQ>vPisz~XnPy6(s|3Ur|Tc(tP;OTM0j&Ie!Bf=Ep{Z4oWKj5O$_<=|HFyUN2 zhWv9^&Q(H{D=Ibb5^)O*d&l_osi^Y%iDwclSq6e2A!krcyS4rKo($q$#u-tfJOhX$ z!@~Fe=|CfUBr+YcvBV-jevI1=OGWN)Z?gZmY$+e%=W^Sfi*xdJtn7z)tH7SxgBlCdN{ol z%@dh|L1>8#x3pb5d{bLvdB!=sC(6Vzjh-wrZQ=EsF~F-_yn>XVFCA9lo{aWAA#-;3 zwOpVU9Sxfp4`u$ElfO^gesM3Cn*QL+^S+z0XzsnOsFcH5QDlyc@U9CL%UGX~XqL(_ zqK5<+{{^7t>$f7zpmft2niP`b@y_5{rqc+?WJ4?-Mnkkvs|{)d)Dt}<+qr3VaTCJ% zkbtD~>W2%^sDA^l-t8O^zRFG%_z5>Ee6&cB99H;wpPz7E5(9g5V^<_m4!{rp1)>R% A`2YX_ diff --git a/Misc/ZideStore/UI-X/Common/images/tab_.gif b/Misc/ZideStore/UI-X/Common/images/tab_.gif deleted file mode 100644 index ad720a0c634d7e8c6ffc3490b425e8d261312f82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127 zcmZ?wbhEHbOl1&bn8*ME|NsAIGwFWu;(-o`2NGvsikQ;B^7LDNW$wfq-J9?2`OV)p z+oAJW=Q7R6mG8J`=lERzmh=2q=lg%_Uoy7aDSnJFR+_G-`dL%kak-7=*I$K6+r@On dU;hm{oTRbyjLqVSuS_?-WjplP)r*nA8UXE_I41xA diff --git a/Misc/ZideStore/UI-X/Common/images/tab_selected.gif b/Misc/ZideStore/UI-X/Common/images/tab_selected.gif deleted file mode 100644 index 2cbdea66a508c7d581fa1f4775de5bbb2e253b97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127 zcmZ?wbhEHbOl1&bn8*ME|NsAIGwJ^N^`#Do2NGvsikQ;B^7LDNW$wfq-J9?2`OV)p z+oAJW=Q7R6mG8J`=lERzmh=2q=lg%_Uoy7aDSnJFR+_G-`dL%kak-7=*I$K6+r@On dU;hm{oTRbyjLqVSuS_?-WjplP)r*nA8UXv)I7$Ej diff --git a/Misc/ZideStore/UI-X/Common/product.plist b/Misc/ZideStore/UI-X/Common/product.plist deleted file mode 100644 index 1636c420..00000000 --- a/Misc/ZideStore/UI-X/Common/product.plist +++ /dev/null @@ -1,47 +0,0 @@ -{ - requires = ( MAIN ); - - publicResources = ( - calendar.css, - zidestoreui.css, - menu_logo_top.gif, - line_left.gif, - line_stretch.gif, - line_right.gif, - box_topleft.gif, - box_top.gif, - box_topright.gif, - box_left.gif, - box_right.gif, - box_botleft.gif, - box_bottom.gif, - box_botright.gif, - tab_selected.gif, - tab_.gif, - corner_right.gif, - closewindow.gif, - OGoLogo.gif - ); - - factories = { - }; - - categories = { - SxFolder = { - methods = { - "app" = { - protectedBy = "View"; - pageName = "UIxAppFrame"; - }; - "appheader" = { - protectedBy = "View"; - pageName = "UIxAppHeader"; - }; - "appnavigation" = { - protectedBy = "View"; - pageName = "UIxAppNavigation"; - }; - }; - }; - }; -} diff --git a/Misc/ZideStore/UI-X/Common/zidestoreui.css b/Misc/ZideStore/UI-X/Common/zidestoreui.css deleted file mode 100644 index 5d1e878c..00000000 --- a/Misc/ZideStore/UI-X/Common/zidestoreui.css +++ /dev/null @@ -1,199 +0,0 @@ -/* ZideStore UI Stylesheet */ - -/* common stuff */ - -body { - color: #000000; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - font-size: 10pt; - background-color: #FFFFFF; - margin: 0px; - margin-top: 0px; - margin-bottom: 0px; - margin-left: 0px; - margin-right: 0px; -} - -a:link { - color: #0033CC; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - text-decoration: none; -} -a:visited { - color: #660066; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - text-decoration: none; -} -a:hover { - color: #FF0000; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - text-decoration: underline; -} - -.linecolor { - background-color: #06348B; -} - -font.defaultfont { - text-decoration: none; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - font-size: 8pt; - color: #000000; -} - -.window_label { - color: #06348b; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - font-size: 12pt; - font-weight: bold; -} - - -/* tabs */ - -.tab { - color: #000000; - background-color: #e8e8e0; - font-size: 10pt; - text-decoration: none; - width: 100px; - height: 22px; - border-top: 1px solid #06348b; - border-right: 1px solid #06348b; -} - -.tab a { - color: #000000; - border: none; - text-decoration: none; -} - -.tab_selected { - color: #000000; - background-color: #f5f5e9; - font-size: 10pt; - text-decoration: none; - font-weight: bold; - width: 100px; - height: 22px; - border-top: 1px solid #06348b; - border-right: 1px solid #06348b; -} - -.tab_selected a { - color: #000000; - border: none; - text-decoration: none; -} - -.tabview_body { - background-color: #f5f5e9; -} - - -/* buttons */ - -.button_auto_env { - height: 16px; - text-align: center; - vertical-align: middle; - padding: 0px 0px 0px 0px; - margin: 0px 0px 0px 0px; - overflow: hidden; -} - -.button_auto_env a { - text-decoration: none; - color: #000000; -} - -.button_auto_env a:hover { - text-decoration: underline; - color: #ff0000; -} - -.button_auto { - height: 20px; - border-style: outset; - border-color: #DDDDDD; - border-width: 2px; - color: #000000; - background-color: #e8e8e0; - font-size: 8pt; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - letter-spacing: 0pt; - text-decoration: none; - text-color: #000000; - text-align: center; - vertical-align: middle; - padding-left: 5px; - padding-right: 5px; - padding-top: 1px; - padding-bottom: 1px; - overflow: hidden; -} - - -/* header */ - -div#header { - margin-left: 5px; - margin-right: 5px; - padding: 0; - border-bottom: 1px solid #000000; -} -div#header img.headerlogo { - float: right; - width: 182px; - height: 30px; -} - -div#header div#headerhistory { - font-size: 11px; - color: #000000; - margin: 0px; - padding-top: 18px; - height: 12px; -} -div#header a, div#header span { - margin: 0px; -} -div#header span#navtitle { - font-weight: bold; -} -div#header a:hover { - text-decoration: none; -} - -/* the dock */ - -a.skydockfont { - text-decoration: none; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - font-size: 8pt; - color: #06348B; -} -font.skydockfont { - text-decoration: none; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - font-size: 8pt; - color: #06348B; -} -font.skydockfont_inactiveMail { - text-decoration: none; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - font-size: 8pt; - color: #CCCCCC; - font-weight: bold; -} -font.skydockfont_newMail { - text-decoration: none; - font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif; - font-size: 8pt; - color: #06348B; - font-weight: bold; -} -table.skytextdocktable { - padding: 0px; - table-layout: auto; -} diff --git a/Misc/ZideStore/UI-X/GNUmakefile b/Misc/ZideStore/UI-X/GNUmakefile deleted file mode 100644 index 68855649..00000000 --- a/Misc/ZideStore/UI-X/GNUmakefile +++ /dev/null @@ -1,9 +0,0 @@ -# $Id$ - -include $(GNUSTEP_MAKEFILES)/common.make - -SUBPROJECTS = \ - Common \ - Scheduler \ - -include $(GNUSTEP_MAKEFILES)/aggregate.make diff --git a/Misc/ZideStore/UI-X/Scheduler/COPYING b/Misc/ZideStore/UI-X/Scheduler/COPYING deleted file mode 100644 index 161a3d1d..00000000 --- a/Misc/ZideStore/UI-X/Scheduler/COPYING +++ /dev/null @@ -1,482 +0,0 @@ - GNU LIBRARY GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1991 Free Software Foundation, Inc. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the library GPL. It is - numbered 2 because it goes with version 2 of the ordinary GPL.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Library General Public License, applies to some -specially designated Free Software Foundation software, and to any -other libraries whose authors decide to use it. You can use it for -your libraries, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the library, or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link a program with the library, you must provide -complete object files to the recipients so that they can relink them -with the library, after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - Our method of protecting your rights has two steps: (1) copyright -the library, and (2) offer you this license which gives you legal -permission to copy, distribute and/or modify the library. - - Also, for each distributor's protection, we want to make certain -that everyone understands that there is no warranty for this free -library. If the library is modified by someone else and passed on, we -want its recipients to know that what they have is not the original -version, so that any problems introduced by others will not reflect on -the original authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that companies distributing free -software will individually obtain patent licenses, thus in effect -transforming the program into proprietary software. To prevent this, -we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - - Most GNU software, including some libraries, is covered by the ordinary -GNU General Public License, which was designed for utility programs. This -license, the GNU Library General Public License, applies to certain -designated libraries. This license is quite different from the ordinary -one; be sure to read it in full, and don't assume that anything in it is -the same as in the ordinary license. - - The reason we have a separate public license for some libraries is that -they blur the distinction we usually make between modifying or adding to a -program and simply using it. Linking a program with a library, without -changing the library, is in some sense simply using the library, and is -analogous to running a utility program or application program. However, in -a textual and legal sense, the linked executable is a combined work, a -derivative of the original library, and the ordinary General Public License -treats it as such. - - Because of this blurred distinction, using the ordinary General -Public License for libraries did not effectively promote software -sharing, because most developers did not use the libraries. We -concluded that weaker conditions might promote sharing better. - - However, unrestricted linking of non-free programs would deprive the -users of those programs of all benefit from the free status of the -libraries themselves. This Library General Public License is intended to -permit developers of non-free programs to use free libraries, while -preserving your freedom as a user of such programs to change the free -libraries that are incorporated in them. (We have not seen how to achieve -this as regards changes in header files, but we have achieved it as regards -changes in the actual functions of the Library.) The hope is that this -will lead to faster development of free libraries. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, while the latter only -works together with the library. - - Note that it is possible for a library to be covered by the ordinary -General Public License rather than by this special one. - - GNU LIBRARY GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library which -contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Library -General Public License (also called "this License"). Each licensee is -addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also compile or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - c) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - d) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Library General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - MA 02111-1307, USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! diff --git a/Misc/ZideStore/UI-X/Scheduler/COPYRIGHT b/Misc/ZideStore/UI-X/Scheduler/COPYRIGHT deleted file mode 100644 index 1053b2aa..00000000 --- a/Misc/ZideStore/UI-X/Scheduler/COPYRIGHT +++ /dev/null @@ -1,4 +0,0 @@ -Copyright (C) 2004 SKYRIX Software AG - - -Contact: info@skyrix.com diff --git a/Misc/ZideStore/UI-X/Scheduler/GNUmakefile b/Misc/ZideStore/UI-X/Scheduler/GNUmakefile deleted file mode 100644 index 40c6391c..00000000 --- a/Misc/ZideStore/UI-X/Scheduler/GNUmakefile +++ /dev/null @@ -1,66 +0,0 @@ -# $Id: GNUmakefile,v 1.4 2004/06/04 16:15:23 znek Exp $ - -include $(GNUSTEP_MAKEFILES)/common.make - -BUNDLE_NAME = SchedulerUI -BUNDLE_EXTENSION = .zsp -BUNDLE_INSTALL_DIR = $(GNUSTEP_USER_ROOT)/Library/ZideStore12 - -SchedulerUI_PRINCIPAL_CLASS = SchedulerUIProduct - -SchedulerUI_OBJC_FILES = \ - SchedulerUIProduct.m \ - UIxAppointmentFormatter.m \ - UIxCalView.m \ - UIxCalWeekView.m \ - UIxCalMonthView.m \ - UIxAptTableView.m \ - \ - UIxCalWeekOverview.m \ - UIxCalMonthOverview.m \ - UIxAppointmentView.m \ - UIxAppointmentEditor.m \ - UIxCalSelectTab.m \ - UIxCalDateLabel.m \ - UIxCalBackForthNavView.m \ - -SchedulerUI_RESOURCE_FILES += \ - Version \ - product.plist \ - \ - UIxAptTableView.wox \ - UIxCalWeekOverview.wox \ - UIxCalMonthOverview.wox \ - UIxAppointmentView.wox \ - UIxAppointmentEditor.wox \ - UIxCalSelectTab.wox \ - UIxCalDateLabel.wox \ - UIxCalBackForthNavView.wox \ - images/next_week.gif \ - images/previous_week.gif \ - images/icon_apt_chart.gif \ - images/icon_apt_overview.gif \ - images/icon_apt_chart_inactive.gif \ - images/icon_apt_overview_inactive.gif \ - images/icon_apt_column_view.gif \ - images/icon_apt_list.gif \ - images/icon_apt_list_inactive.gif \ - - -ifeq ($(FOUNDATION_LIB),apple) -ZIDESTORE=$(GNUSTEP_USER_ROOT)/Library/Headers/ZideStore12 -else -ZIDESTORE=$(GNUSTEP_USER_ROOT)/Headers/ZideStore12 -endif - -ADDITIONAL_INCLUDE_DIRS += \ - -I. \ - -I.. \ - -I$(ZIDESTORE)/Frontend -I$(ZIDESTORE)/Backend \ - -I$(ZIDESTORE) -I$(ZIDESTORE)/Common - -# make - --include GNUmakefile.preamble -include $(GNUSTEP_MAKEFILES)/bundle.make --include GNUmakefile.postamble diff --git a/Misc/ZideStore/UI-X/Scheduler/GNUmakefile.postamble b/Misc/ZideStore/UI-X/Scheduler/GNUmakefile.postamble deleted file mode 100644 index 3986bcce..00000000 --- a/Misc/ZideStore/UI-X/Scheduler/GNUmakefile.postamble +++ /dev/null @@ -1,17 +0,0 @@ -# $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/Misc/ZideStore/UI-X/Scheduler/GNUmakefile.preamble b/Misc/ZideStore/UI-X/Scheduler/GNUmakefile.preamble deleted file mode 100644 index 23c9438a..00000000 --- a/Misc/ZideStore/UI-X/Scheduler/GNUmakefile.preamble +++ /dev/null @@ -1,17 +0,0 @@ -# $Id$ - -ifneq ($(GNUSTEP_BUILD_DIR),) - RELBUILD_DIR_libZideStoreCommonUI = \ - $(GNUSTEP_BUILD_DIR)/../Common/$(GNUSTEP_OBJ_DIR_NAME) -else - RELBUILD_DIR_libZideStoreCommonUI = ../Common -endif - -SchedulerUI_LIB_DIRS += -L$(RELBUILD_DIR_libZideStoreCommonUI) - -SchedulerUI_BUNDLE_LIBS += \ - -lNGObjWeb -lNGScripting -lNGJavaScript -ljs \ - -lNGMime -lNGStreams -lNGExtensions -lEOControl \ - -lXmlRpc -lDOM -lSaxObjC \ - -lSOGoLogic -lZideStoreCommonUI \ - -lNGiCal diff --git a/Misc/ZideStore/UI-X/Scheduler/NOTES b/Misc/ZideStore/UI-X/Scheduler/NOTES deleted file mode 100644 index 35c83b1b..00000000 --- a/Misc/ZideStore/UI-X/Scheduler/NOTES +++ /dev/null @@ -1,52 +0,0 @@ -// $Id: NOTES,v 1.1 2003/11/24 01:24:40 helge Exp $ - -Scheduler -========= - -SOPE based interface for scheduler. - -Class Hierarchy -=============== - - [WOComponent] - [SoComponent] - UIxAppointmentView - UIxCalView - UIxCalMonthView - UIxCalMonthOverview - UIxCalWeekView - UIxCalWeekOverview - UIxAptTableView - SchedulerUIProduct - -TBD: - UIxCalDayView - UIxCalDayOverview - UIxCalDayChart - UIxCalDayHChart - [UIxCalWeekView] - UIxCalWeekColumnView - UIxCalWeekChart - UIxCalWeekHChart - OGoYearOverview - should use aggressive caching in the long run - - - editor page (which comes up in a new window) - - delete page - - print views - -Notes -===== - -editor pages need to use JavaScript to trigger reloads in the parent window -=> find out how to do that - -URLs -==== - -/zidestore/ControlPanel/ => SoControlPanel -/zidestore/ControlPanel/Products => SoProductRegistry -/zidestore/ControlPanel/Products/ZideStoreUI => SoProduct -/zidestore/ControlPanel/Products/ZideStoreUI/Resources/ -=> SoProductResourceManager -/zidestore/ControlPanel/Products/ZideStoreUI/Resources/calendar.css -=> resource diff --git a/Misc/ZideStore/UI-X/Scheduler/SchedulerUIProduct.m b/Misc/ZideStore/UI-X/Scheduler/SchedulerUIProduct.m deleted file mode 100644 index 7666ef0a..00000000 --- a/Misc/ZideStore/UI-X/Scheduler/SchedulerUIProduct.m +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright (C) 2000-2003 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: SchedulerUIProduct.m,v 1.1 2003/11/24 01:24:40 helge Exp $ - -#import - -@interface SchedulerUIProduct : NSObject -{ -} - -@end - -#include "common.h" - -@implementation SchedulerUIProduct -@end /* SchedulerUIProduct */ diff --git a/Misc/ZideStore/UI-X/Scheduler/UIxAppointmentEditor.m b/Misc/ZideStore/UI-X/Scheduler/UIxAppointmentEditor.m deleted file mode 100644 index 5d1ef100..00000000 --- a/Misc/ZideStore/UI-X/Scheduler/UIxAppointmentEditor.m +++ /dev/null @@ -1,277 +0,0 @@ -/* - 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$ - - -#include "common.h" -#include -#include -#include - - -/* TODO: CLEAN THIS MESS UP */ - - -@interface NSObject (AppointmentHack) -- (BOOL)isAppointment; -@end - -@implementation NSObject (AppointmentHack) -- (BOOL)isAppointment { - return [self isKindOfClass:NSClassFromString(@"SxAppointment")]; -} -@end - -@interface iCalPerson (Convenience) -- (NSString *)rfc822Email; -@end - -@implementation iCalPerson (Convenience) -- (NSString *)rfc822Email { - NSString *_email = [self email]; - NSRange colon = [_email rangeOfString:@":"]; - if(colon.location != NSNotFound) { - return [_email substringFromIndex:colon.location + 1]; - } - return _email; -} -@end - -@interface UIxAppointmentEditor : UIxComponent -{ - id appointment; - id participants; -} - -- (SOGoAppointment *)appointment; -- (NSString *)iCalStringTemplate; -- (NSString *)iCalString; -- (BOOL)isNewAppointment; - -@end - -@implementation UIxAppointmentEditor - -- (void)dealloc { - [self->appointment release]; - [self->participants release]; - [super dealloc]; -} - - -/* accessors */ - - -- (NSString *)formattedAptStartTime { - NSCalendarDate *date; - - date = [[self appointment] startDate]; - /* TODO: convert this into display timeZone! */ - return [date descriptionWithCalendarFormat:@"%A, %Y-%m-%d %H:%M %Z"]; -} - -- (BOOL)isNewAppointment { - return ! [[self clientObject] isAppointment]; -} - -- (NSString *)iCalString { - if([self isNewAppointment]) { - return [self iCalStringTemplate]; - } - else { - return [[self clientObject] valueForKey:@"iCalString"]; - } -} - -- (NSString *)iCalStringTemplate { - static NSString *iCalStringTemplate = \ - @"BEGIN:VCALENDAR\nMETHOD:REQUEST\nPRODID:OpenGroupware.org ZideStore 1.2\n" \ - @"VERSION:2.0\nBEGIN:VEVENT\nCLASS:PRIVATE\nSTATUS:CONFIRMED\n" \ - @"DTSTART:%@\nDTEND:%@\n" \ - @"TRANSP:OPAQUE\n" \ - @"END:VEVENT\nEND:VCALENDAR"; - NSCalendarDate *startDate, *endDate; - NSString *template; - - startDate = [self selectedDate]; - endDate = [startDate dateByAddingYears:0 months:0 days:0 - hours:1 minutes:0 seconds:0]; - - template = [NSString stringWithFormat:iCalStringTemplate, - [startDate icalString], - [endDate icalString]]; - - return template; -} - - -/* backend */ - - -- (SOGoAppointment *)appointment { - if(self->appointment == nil) { - self->appointment = [[SOGoAppointment alloc] - initWithICalString:[self iCalString]]; - } - return self->appointment; -} - -- (id)participants { - if(self->participants == nil) { - NSArray *attendees; - NSMutableArray *emailAddresses; - unsigned i, count; - - attendees = [self->appointment attendees]; - count = [attendees count]; - emailAddresses = [[NSMutableArray alloc] initWithCapacity:count]; - for(i = 0; i < count; i++) { - NSString *email; - - email = [[attendees objectAtIndex:i] rfc822Email]; - if(email) - [emailAddresses addObject:email]; - } - self->participants = [[emailAddresses componentsJoinedByString:@"\n"] - retain]; - [emailAddresses release]; - } - return self->participants; -} - - -/* helper */ - -- (NSString *)uriAsFormat { - NSString *uri, *qp; - NSRange r; - - uri = [[[self context] request] uri]; - - /* first: identify query parameters */ - r = [uri rangeOfString:@"?" options:NSBackwardsSearch]; - if (r.length > 0) { - uri = [uri substringToIndex:r.location]; - qp = [uri substringFromIndex:r.location]; - } - else { - qp = nil; - } - - /* next: strip trailing slash */ - if([uri hasSuffix:@"/"]) - uri = [uri substringToIndex:([uri length] - 1)]; - r = [uri rangeOfString:@"/" options:NSBackwardsSearch]; - - /* then: cut of last path component */ - if(r.location == NSNotFound) { // no slash? are we at root? - uri = @"/"; - } - else { - uri = [uri substringToIndex:(r.location + 1)]; - } - /* next: append format token */ - uri = [uri stringByAppendingString:@"%@"]; - if(qp != nil) - uri = [uri stringByAppendingString:qp]; - return uri; -} - - -/* save */ - - -- (id)saveAction { - SOGoAppointment *apt; - NSString *iCalString, *summary, *location, *nextMethod, *uri, *uriFormat; - NSCalendarDate *sd, *ed; - NSArray *ps; - unsigned i, count; - WOResponse *r; - WORequest *req; - - req = [[self context] request]; - - /* get iCalString from hidden input */ - iCalString = [req formValueForKey:@"ical"]; - apt = [[SOGoAppointment alloc] initWithICalString:iCalString]; - - /* merge in form values */ - sd = [NSCalendarDate dateWithString:[req formValueForKey:@"startDate"] - calendarFormat:@"%Y-%m-%d %H:%M"]; - [apt setStartDate:sd]; - ed = [NSCalendarDate dateWithString:[req formValueForKey:@"endDate"] - calendarFormat:@"%Y-%m-%d %H:%M"]; - [apt setEndDate:ed]; - summary = [req formValueForKey:@"summary"]; - [apt setSummary:title]; - location = [req formValueForKey:@"location"]; - [apt setLocation:location]; - - [apt removeAllAttendees]; /* clean up */ - ps = [[req formValueForKey:@"participants"] - componentsSeparatedByString:@"\n"]; - count = [ps count]; - for(i = 0; i < count; i++) { - NSString *email; - - email = [ps objectAtIndex:i]; - if([email length] > 0) { - iCalPerson *p; - NSRange cnr; - - p = [[iCalPerson alloc] init]; - [p setEmail:[NSString stringWithFormat:@"mailto:%@", email]]; - /* construct a fake CN */ - cnr = [email rangeOfString:@"@"]; - if(cnr.location != NSNotFound) { - [p setCn:[email substringToIndex:cnr.location]]; - } - [apt addToAttendees:p]; - [p release]; - } - } - - /* receive current representation for save operation */ - iCalString = [apt iCalString]; - [apt release]; - - - /* determine what's to do and where to go next */ - if([self isNewAppointment]) { - nextMethod = @"duhduh"; - } - else { - nextMethod = @"view"; - } - - NSLog(@"%s new iCalString:\n%@", __PRETTY_FUNCTION__, iCalString); - - uriFormat = [self uriAsFormat]; - uri = [NSString stringWithFormat:uriFormat, nextMethod]; - - r = [WOResponse responseWithRequest:req]; - [r setStatus:302 /* moved */]; - [r setHeader:uri forKey:@"location"]; - return r; -} - -@end diff --git a/Misc/ZideStore/UI-X/Scheduler/UIxAppointmentEditor.wox b/Misc/ZideStore/UI-X/Scheduler/UIxAppointmentEditor.wox deleted file mode 100644 index ce2381aa..00000000 --- a/Misc/ZideStore/UI-X/Scheduler/UIxAppointmentEditor.wox +++ /dev/null @@ -1,111 +0,0 @@ - - - -
- - - - - - - - - - - - - - - - - -
- - - - - -
- Appointment Editor - -
-
- - - - - - - - - - - - - - - - - - - - -
- Appointment on -
- Start time: - - - - -
- End time: - - - - -
- Title: - - - - -
- Location: - - - - -
-
- - - - - - -
- Search participants -
- Participants: - - - +
- -
- - - - - -
- - -
+ + +
+ + +
+ - - -
- clientObject: -
-
-
+ + diff --git a/UI/Templates/ContactsUI/UIxContactFoldersView.wox b/UI/Templates/ContactsUI/UIxContactFoldersView.wox new file mode 100644 index 00000000..c42113e1 --- /dev/null +++ b/UI/Templates/ContactsUI/UIxContactFoldersView.wox @@ -0,0 +1,2 @@ + + diff --git a/UI/Templates/ContactsUI/UIxContactSelector.wox b/UI/Templates/ContactsUI/UIxContactSelector.wox new file mode 100644 index 00000000..dcc75906 --- /dev/null +++ b/UI/Templates/ContactsUI/UIxContactSelector.wox @@ -0,0 +1,50 @@ + + +
+ + + + + +
    +
  • + + + + + + + +
  • +
    +

+
+
diff --git a/UI/Templates/ContactsUI/UIxContactView.wox b/UI/Templates/ContactsUI/UIxContactView.wox index d00fac1e..934ca7b5 100644 --- a/UI/Templates/ContactsUI/UIxContactView.wox +++ b/UI/Templates/ContactsUI/UIxContactView.wox @@ -1,339 +1,75 @@ - - - - - + + +

-
- - - - - - - - -
- - - - - -
- - - - - -
-
- - - - - -
- - - - - - : - - - - - - - - - -
- - - -
-
-
- - - - - - - - - - - - - - - - -
- : - - - - -
- : - - - -
- : - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- : - - - -
- : - - - -
- : - - - -
- : - - - -
- : - - - -
- : - - - - -
- : - - - - -
- : - - - - -
-
-
+
+
+

+ + + + + +
- + +
+

+ + + + + + +
+
- - - - - - - - - - - - - - - - - - - - - - - + +
+

+ + + +
+
+ - - - - -
- : - - - - -
- : - - - - -
- : - - -
-
-
-
-
- : - - - -
- : - - - -
- : - - - -
-
-
+
+ +
+

+ + + + + +
+
- - - - - - SOGo Server - -
- Client: -
- Raw :
-
-
-
-
- -
- - -
- clientObject: -
-
-
\ No newline at end of file + +
+

+ + + + + + + + + +
+
+ + diff --git a/UI/Templates/ContactsUI/UIxContactsAclsSelection.wox b/UI/Templates/ContactsUI/UIxContactsAclsSelection.wox new file mode 100644 index 00000000..7a106ace --- /dev/null +++ b/UI/Templates/ContactsUI/UIxContactsAclsSelection.wox @@ -0,0 +1,21 @@ + +
+
+ +
diff --git a/UI/Templates/ContactsUI/UIxContactsAddressBooksSelection.wox b/UI/Templates/ContactsUI/UIxContactsAddressBooksSelection.wox new file mode 100644 index 00000000..daf472d7 --- /dev/null +++ b/UI/Templates/ContactsUI/UIxContactsAddressBooksSelection.wox @@ -0,0 +1,16 @@ + +
+ +
diff --git a/UI/Templates/ContactsUI/UIxContactsCalendarsSelection.wox b/UI/Templates/ContactsUI/UIxContactsCalendarsSelection.wox new file mode 100644 index 00000000..06888b3e --- /dev/null +++ b/UI/Templates/ContactsUI/UIxContactsCalendarsSelection.wox @@ -0,0 +1,16 @@ + +
+ +
diff --git a/UI/Templates/ContactsUI/UIxContactsFilterPanel.wox b/UI/Templates/ContactsUI/UIxContactsFilterPanel.wox new file mode 100644 index 00000000..ae498506 --- /dev/null +++ b/UI/Templates/ContactsUI/UIxContactsFilterPanel.wox @@ -0,0 +1,22 @@ + + + + +
+ + + + +
+
diff --git a/UI/Templates/ContactsUI/UIxContactsListView.wox b/UI/Templates/ContactsUI/UIxContactsListView.wox index fc62ebd0..ed78ceba 100644 --- a/UI/Templates/ContactsUI/UIxContactsListView.wox +++ b/UI/Templates/ContactsUI/UIxContactsListView.wox @@ -1,172 +1,56 @@ - - - - - - - - - + + + + - -
- clientObject: -
- \ No newline at end of file + + + + + + + + + +
- - - - - -
- - - - - -
-
-
- - - - - - - - - -
- - - - - -
- - - - - - -
- -
-
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - - + + + + + - - - - -
+ -
- - -
-
- -
- - +
+ + + + + +
+
diff --git a/UI/Templates/ContactsUI/UIxContactsListViewContainer.wox b/UI/Templates/ContactsUI/UIxContactsListViewContainer.wox new file mode 100644 index 00000000..f0a71c13 --- /dev/null +++ b/UI/Templates/ContactsUI/UIxContactsListViewContainer.wox @@ -0,0 +1,115 @@ + + + + + + + +
+ + +
+
+
+
+ +
    +
  • +
  • +
+ + +
+ +
+
+
+ +
+
+ +
+ + +
+ +
+ +
+ +
+
+ + + +
+ + +
+ + + + + + +
diff --git a/UI/Templates/ContactsUI/UIxContactsMailerSelection.wox b/UI/Templates/ContactsUI/UIxContactsMailerSelection.wox new file mode 100644 index 00000000..a6e1c1b3 --- /dev/null +++ b/UI/Templates/ContactsUI/UIxContactsMailerSelection.wox @@ -0,0 +1,26 @@ + + +
+
+
+ +
diff --git a/UI/Templates/GNUmakefile b/UI/Templates/GNUmakefile index eacb1cac..8b9813f6 100644 --- a/UI/Templates/GNUmakefile +++ b/UI/Templates/GNUmakefile @@ -10,3 +10,5 @@ install :: all clean :: distclean :: clean + +uninstall :: diff --git a/UI/Templates/MailPartViewers/UIxMailPartTextViewer.wox b/UI/Templates/MailPartViewers/UIxMailPartTextViewer.wox index 7e8d5f4c..b90c69b1 100644 --- a/UI/Templates/MailPartViewers/UIxMailPartTextViewer.wox +++ b/UI/Templates/MailPartViewers/UIxMailPartTextViewer.wox @@ -1,9 +1,9 @@ -
+> diff --git a/UI/Templates/MailerUI/UIxMailAccountView.wox b/UI/Templates/MailerUI/UIxMailAccountView.wox index f3f3943c..26cef689 100644 --- a/UI/Templates/MailerUI/UIxMailAccountView.wox +++ b/UI/Templates/MailerUI/UIxMailAccountView.wox @@ -1,71 +1,43 @@ - -
- - - - - - - -
- -
-
-
-
- SOGo Mail - - - - - - - -
-
+
+

+ SOGo Mail - + -
- - -
+
-
- -
Email

-
  • -
  • -
    -
    - - -

    -
    +

    Accounts

    +

    + View settings for this account
    + Create a new account [TBD: not in Agenor]
    +

    + +

    Advanced Features

    +

    + Search messages
    + Manage message filters
    + Manage folder subscriptions
    + Offline settings [TBD: not in Agenor]
    +

    - diff --git a/UI/Templates/MailerUI/UIxMailAccountsView.wox b/UI/Templates/MailerUI/UIxMailAccountsView.wox deleted file mode 100644 index 88eeaa38..00000000 --- a/UI/Templates/MailerUI/UIxMailAccountsView.wox +++ /dev/null @@ -1,28 +0,0 @@ - - -
    - -
    - -
    -
    -
    - -
    - -
    -
    -
    diff --git a/UI/Templates/MailerUI/UIxMailEditor.wox b/UI/Templates/MailerUI/UIxMailEditor.wox index 2a3d3a33..97c87337 100644 --- a/UI/Templates/MailerUI/UIxMailEditor.wox +++ b/UI/Templates/MailerUI/UIxMailEditor.wox @@ -1,88 +1,46 @@ - - -
    - -
    - + +
    +
    + +
    +
    +
    +
    - - - - - - -
    -
    - -
    - -
    - - - - - -
    - : - - -
    -
    - -
    - - - - - -
    - : -
    -
    -
    -
    -
    - : - -
    -
    - -
    -
    -
    -
    -
    - -
    -