Art Cancro [Thu, 20 Nov 2008 21:09:55 +0000 (21:09 +0000)]
Fixed a serious problem with IMAP header fetch. memreadline() returns a pointer to the *next* line, or null if we're at the end. In the IMAP header parsing routine we were checking for null at the top of a while loop, where we should have been checking for null at the end of a do-while loop. As a result, the last header line was being discarded under any circumstances.
* rework who.c so it doesn't use svput() and friends but rather preregistered callback hooks (like the other new stuff)
* more syntax error detections and warnings in the template engine...
* change trailing_js to be a static template hook too
* pre-evaluate conditionals too
* swap startup sequence so pre-evaluation actualy works (first register hooks, then parse templates)
* global function to be used by string tmplput hooks which evaluates escaping demanded by template tokens in a central place
* fix spelling in some mobile templates
* move SERV: template hooks into serv_func.c
Art Cancro [Wed, 12 Nov 2008 16:50:07 +0000 (16:50 +0000)]
Back end calendar handlers in citserver no longer convert
everything to UTC. Please do not put this code into production for the next 200 or 300 years
because that's how long it's going to take to debug.
Art Cancro [Mon, 10 Nov 2008 22:39:08 +0000 (22:39 +0000)]
Form-to-icalrecur logic for both types of yearly events.
The recurrence editor is now feature complete. Unfortunately we are
already seeing the nightmare of time zones causing problems with
events recurring on the wrong day. Let the dystopic nightmare of
timezone debugging begin.
* migrate message creation to templates (citing still missing)
* log errors if sv doesn't have a token demanded
* move CSSLOCAL from svput to registerns, as its static (ok, it will learn about a new CSS just after a restart, but thats consistent with our other stuff)
* put filename reference into token, so we can put in errormessages where we wouldn't have it otherwise.
* split horizon context in iterators; expect one context, provide another into the subiterators
* first work on mime iterators
* while decoding messages, guess the charset in this sequence:
* mime header of this message
* the last charset found while decoding QP header lines
* the users default charset
Art Cancro [Wed, 15 Oct 2008 15:17:19 +0000 (15:17 +0000)]
Improved the logic used to determine when a calendar
month view needs to display 42 boxes instead of 35. Some months
were displaying a spurious fifth row containing only the next
month or, even worse, a row with a single box for the last day
of the month.
Art Cancro [Sat, 11 Oct 2008 04:33:43 +0000 (04:33 +0000)]
Slight improvement to previous commit. We're still storing
base calendar events in memory that are out of scope, but we're no longer
storing recurrences that are out of scope.
Art Cancro [Sat, 11 Oct 2008 04:20:03 +0000 (04:20 +0000)]
Big change to calendar view functions. We now declare
lower and upper bounds before loading calendar items into memory, so that the rendering code
doesn't have to go through thousands of recurrences that span way into the future. Right now
it only uses this data to know when to stop iterating recurrences, but it could be fine tuned
even more to totally not store calendar items that are out of scope.
Art Cancro [Fri, 10 Oct 2008 19:22:08 +0000 (19:22 +0000)]
Moved some calendar view javascript out to the trailing block.
Also noticed that the previous/next month buttons in the mini
calendar are now broken. We need to fix this.
* configure zlib too, since libcitadel will link it for strbuf
* shuffle library detection so we don't get into troubles
* add empty UI_SILENT to all setup switches, so that its clear we do nothing here
Art Cancro [Sun, 5 Oct 2008 05:23:52 +0000 (05:23 +0000)]
Cleaned up some templated HTML:
* Double percent (such as width=25%%) is a C format string escape.
Changed those to a single percent (such as width=25%).
* Removed 'px' from table cellpadding and cellspacing attributes.
Evidently this is illegal as it's always to be specified in pixels.
* Appended some </div> tags with comments denoting which div we think
we're closing. There may be a few mismatched ones.
Art Cancro [Fri, 3 Oct 2008 17:11:37 +0000 (17:11 +0000)]
configure.ac in citadel and webcit now looks
for icalcomponent_as_ical_string_r() instead of icalcomponent_new()
in order to force the detection of a libical with the new API
Art Cancro [Fri, 3 Oct 2008 17:04:44 +0000 (17:04 +0000)]
Changed all instances of
x = strdup(icalcomponent_as_ical_string(y))
to
x = icalcomponent_as_ical_string_r(y)
to eliminate the second buffer and move to the new API.
Art Cancro [Fri, 3 Oct 2008 04:25:18 +0000 (04:25 +0000)]
Added a StrBuf that will eventually contain all of the
miscellaneous javascript that any page needs. Callers should be appending
script code to the trailing_javascript strbuf instead of embedding it in the middle
of the page. This will cause it all to be executed at once, which is
the recommended practice. I haven't moved anything to this yet because
I think the script still isn't executing.