Art Cancro [Thu, 21 Aug 2008 01:24:15 +0000 (01:24 +0000)]
Adjusted the tabcontent and tabcontent_submit styles
in order to present everything as a nice tabbed dialog with a rounded
rectangular bottom instead of the ugly 'bottom tab' look previously displayed
by the tabcontent_submit div. All three dialogs that use this API now conform
to the new spec - one extra 'tab' at the end which is actually the submit div.
Art Cancro [Wed, 20 Aug 2008 17:46:33 +0000 (17:46 +0000)]
Changed the tabbed dialog API to include an epilogue that
can be used to display data common to all tabs, such as submit buttons.
Removed recurring event support from TECH_PREVIEW and moved into the mainline
code. Event editor tabs for Event/Attendees/Recurrence are now working, even
though the Recurrence tab doesn't yet display an editor, for now it just
displays the raw RRULE data.
Art Cancro [Tue, 19 Aug 2008 02:58:48 +0000 (02:58 +0000)]
Split up the conflict checker again, this time into six different
functions. Right now it looks like excessive modularity, but over the next couple of commits I'll
be adding expansion of recurrences in both the proposed and existing events. Now this can be done
without making the code unreadable.
* migrate the WHO struct to strbuf
* add SVPUTBuf() which can handle strbuffers
* register the ITERATOR("WHO")
* provide tokens via the who iterator func: WHO:NAME, WHO:ROOM, WHO:HOST, WHO:REALROOM, WHO:REALHOST, WHO:LASTACTIVE, WHO:SESSION, WHO:IDLE, WHO:NSESSIONS
* some fixes to do_template, and the whole other stuff
* correct all GetNextHashPos() calls to have const chars
* new template callback: ITERATE("iterator", "subtemplate",...); its to iterate over registered hashlists
* new RegisterIterator() call; use this to register your hashlist with the ITERATE functionality
* add new 'Context' Parameter to the template call
* add PREF:VALUE("ConvigValueName") which will give you the value of a config
* add PREF:DESCR("ConfigValueName") which will give you the locale string describing that setting
* now template tokens can work as functions, you can add params to them after in ("sometext", 1337) so template hooks can be steered from the templates
* added implicit _("foo") function that will look up 'foo' with gettext and print its local representation
Matt [Thu, 14 Aug 2008 10:59:11 +0000 (10:59 +0000)]
Move the rest of the templates into 't' as with dothebart's previous commit.
If any should still be in static/ (i.e like nocookies) just move them back.
Art Cancro [Mon, 11 Aug 2008 21:03:26 +0000 (21:03 +0000)]
calendar server -- further split up the conflict checker
(was two functions, is now three) in order to prepare for handling
recurring events. I might split it up even further.
* first aproach to formalize preferences; modules can now register preferences and their string representation; fancy that this is doing well with gettext ;)
Art Cancro [Tue, 5 Aug 2008 16:55:58 +0000 (16:55 +0000)]
When determining the week start day for the rendering
of a monthly calendar, check to see if the weekstart value from
preferences is higher than 6. If so, use a value of 0 (Sunday)
instead of actively looping forever in a futile search for an
invalid wday.
* abstract setting per room preferences
* migrate mbox sortorder to the new abstraction
* add default addressbook selector, so the user gets the last selected addressbook again (html doesn't work yet)
Art Cancro [Wed, 30 Jul 2008 21:48:09 +0000 (21:48 +0000)]
* debug messages now show serialized recurrence rules
* Event editor dialog is now tabbed Event/Attendees/Recurrence when
running in TECH_PREVIEW mode. Attendees are *not* yet moved into
the Attendees tab. Recurrence rules are shown as serialized iCalendar
code rather than as an actual usable editor.
Art Cancro [Wed, 30 Jul 2008 18:03:17 +0000 (18:03 +0000)]
Recurring events are now displayed in WebCit. There is
still a lot to do, but the basic display is now there. I can
already see a huge sub-project emerging. Our practice of converting
everything to GMT causes recurring events to shift by an hour
when the recurrence crosses a DST boundary.
* make param const char *
* goto _BASEROOM_ if no pref is set
* store/load locales inn case of webcit tries to reauthenticate a user by cookie after a crash.
* use strbuffer as wprintf backend
* modify all HTTP Headrs to be sent with hprintf() instead of wprintf()
* end_burst now handles committing the headers and the buffer to the browser
* use strbuf to keep static images
* add gzip + configure detection -> re-bootstrap!
* add new functions to strbuf: file i/o; appending printf; gzip compressing a buffer;
* fixed termination bug in cutleft function
* made mime function parameter const
Art Cancro [Thu, 17 Jul 2008 19:50:29 +0000 (19:50 +0000)]
Displaying incoming instant messages through an IMAP client
was really cool, but now that we've got XMPP it's probably just
causing most people to see each message twice. Removed this feature.
Dave West [Thu, 17 Jul 2008 19:03:00 +0000 (19:03 +0000)]
Added code to provide a preliminary single user mode.
CtdlTrySingleUser() - Try to go single user
CtdlEndSingleUser() - End single user
CtdlIsSingleUser() - True is system is single user
CtdlWantSingleUser() - True if system is trying to go single user
The system is said to be in single user mode when there is only one
session active. Which should be the one that asked it to go single user.
When trying to go single user new connections are refused as per the
nologin mechanism and scheduled threads are prevented.
Dave West [Thu, 17 Jul 2008 18:39:34 +0000 (18:39 +0000)]
Re-added the S_LDAP semaphore. It is needed. Not sure why it didn't show
up in my grep etc.
Added a new semaphore S_SINGLE_USER this is used when the server needs
to go into single user mode to prevent changes in the DB like when doing
an artv export/import.
Dave West [Thu, 17 Jul 2008 12:57:23 +0000 (12:57 +0000)]
System users (SYS_*) now have proper user numbers.
CtdlFillPrivateContext has been replaced by CtdlFillSystemContext.
CtdlFillSystemContext will create the system user if needed, upgrade the
system user from a user 0 if needed and also load the system user if
needed.
The auto purger now makes a log entry if it encounters a user 0 (not an
Aide message).
The Auto purger will post an Aide message if it encounters a user with
no name and a valid user number. This should NEVER happen.
Test thoroughly before release and needs to be tested thoroughly with
host auth systems too.
Dave West [Thu, 17 Jul 2008 10:54:00 +0000 (10:54 +0000)]
The user with number 1 is no longer automatically an Aide.
Plugs that little security hole that an attacker would need to be very
quick to exploit.
NB. If the system Aide is not correct in the config the Aide may loose
priviledges and will need to run setup to get them back.