[Initial darcs import. bringert@cs.chalmers.se**20060324155816] [Finished implementation of basic session stuff. bringert@cs.chalmers.se**20060327180011] [Added top-level modules for User and Session. bringert@cs.chalmers.se**20060411155234] [Generate session IDs randomly. Added createTables functions. bringert@cs.chalmers.se**20060411185144] [Derive Show for Session. bringert@cs.chalmers.se**20060411215118] [Added the beginnings of a demo program. bringert@cs.chalmers.se**20060411215202] [Added listSessions. bringert@cs.chalmers.se**20060412173709] [Show user name and user ID in demo. Switch to HSQL because of HDBC date problems. bringert@cs.chalmers.se**20060412174829] [Implemented login, logout and register in demo program. Some minor changes in the library to accomodate this. bjorn@bringert.net**20060419212022] [Renamed to Hawl.*. Cabalized. Added Makefile for building db modules. bjorn@bringert.net**20060423151826] [expose DBDesc modules. bjorn@bringert.net**20060423152116] [Expose types and operations modules. bjorn@bringert.net**20060423152423] [Added joinUser function. bjorn@bringert.net**20060423155039] [Update example. Expose all modules to get around linking problem. bjorn@bringert.net**20060423160501] [Split up utilities module. bjorn@bringert.net**20060423161226] [Added XHtml utilities. Reimplment error page using XHtml. bjorn@bringert.net**20060423161907] [Use new util modules in demo. bjorn@bringert.net**20060423162236] [Added outputHtml. bjorn@bringert.net**20060423162751] [Changed getMantInputs to fail if not all inputs are given. bjorn@bringert.net**20060423165351] [Added date parsing stuff. Added getInputOrFail. bjorn@bringert.net**20060423170600] [Generalized date parsing to any monad bjorn@bringert.net**20060423183709] [Added missing XHtml utils module. bjorn@bringert.net**20060425075745] [Import and dependen on monad transformer stuff for SessionT. bringert@cs.chalmers.se**20060425080035] [Finished basic SessionT. bringert@cs.chalmers.se**20060425084825] [Added runSessionT. bringert@cs.chalmers.se**20060425090002] [Added Hawl.Util.List. bringert@cs.chalmers.se**20060425113105] [Added cgiFail. bringert@cs.chalmers.se**20060425120736] [Generalized timeNow to MonadIO. bringert@cs.chalmers.se**20060501091703] [Add space between error code and error message in error pages. bringert@cs.chalmers.se**20060501093148] [Generalize exported functions to MonadIO. bringert@cs.chalmers.se**20060501094300] [Added setSessionUser, and removed user argument from getSession. bringert@cs.chalmers.se**20060503203015] [Added getMethod. bringert@cs.chalmers.se**20060505071835] [Generalized types of CGI utils. bringert@cs.chalmers.se**20060505072645] [Added MonadCGI instance for SessionT. bringert@cs.chalmers.se**20060505073948] [Added general undecidable MonadSession instance. bringert@cs.chalmers.se**20060505081702] [Added join function. bringert@cs.chalmers.se**20060508225540] [Renamed join to glue to remove collision with Control.Monad.Join. bringert@cs.chalmers.se**20060508230135] [Added some HTTP error and method utilities. bringert@cs.chalmers.se**20060508235028] [Added onlyPOST bringert@cs.chalmers.se**20060509001236] [Added monthNumber function. bringert@cs.chalmers.se**20060509051338] [Added intToMonth function. bringert@cs.chalmers.se**20060509051519] [Made SessionT a state monad transformer, instead of a reader. bringert@cs.chalmers.se**20060509221026] [Added functions for updating sessions. Renamed updateSession in SessionT. bringert@cs.chalmers.se**20060509223129] [Implement setSessionUser with updateSession. bringert@cs.chalmers.se**20060509224117] [Added SessionT.setCurrentSessionUser bringert@cs.chalmers.se**20060509225106] [Added getAllUsers. bringert@cs.chalmers.se**20060510013746] [Generalized getAllUsers to MonadIO. bringert@cs.chalmers.se**20060510014555] [Added sortNub. Bump version number. bringert@cs.chalmers.se**20060512222610] [Added Trie module. bringert@cs.chalmers.se**20060513004154] [Removed transaction in updateField, since users may want to use it in a large transaction. bringert@cs.chalmers.se**20060513020616] [Added Data.Trie.addPrefix. bringert@cs.chalmers.se**20060515234823] [Added countUsers, and some supporting utilities. bjorn@bringert.net**20060522022702] [Export countUsers. bjorn@bringert.net**20060522052256] [Added Hawl.Data.Path. bjorn@bringert.net**20060522052306] [Added Hawl.Util and sortNubBy. bjorn@bringert.net**20060522062911] [Added eqBy. bjorn@bringert.net**20060522063154] [Added sortGroupBy and buildMultiMap. bjorn@bringert.net**20060522064259] [Added Trie.toTree. bjorn@bringert.net**20060522175146] [Added theEndOfTime. bjorn@bringert.net**20060522181240] [Added showMonthInt. bjorn@bringert.net**20060523055255] [Added runCGIWithErrorHandler. bjorn@bringert.net**20060523192615] [Added some CGI, monad and URL encoding utilities. bjorn@bringert.net**20060523194844] [Added DatabaseT, moved DB utils to Hawl.HaskellDB.Util. bjorn@bringert.net**20060523212216] [Added -fallow-overlapping-instances to DatabaseT. bjorn@bringert.net**20060523213006] [Added MonadWeb. bjorn@bringert.net**20060523220418] [Added MonadWeb.getConfig bjorn@bringert.net**20060523220848] [Export Session from SessionT. bjorn@bringert.net**20060523221743] [Hide Session export when reexporting SessionT. bjorn@bringert.net**20060523221916] [Added session functions to MonadWeb. bjorn@bringert.net**20060523232518] [Export session functions from MonadWeb. Generalized the types. bjorn@bringert.net**20060523233038] [Added runWebSession function. Session functions take db as argument. bjorn@bringert.net**20060523234044] [Export runWebSession. bjorn@bringert.net**20060523234223] [Added some string and monad utilities. bjorn@bringert.net**20060524001009] [Added isLoggedIn. bjorn@bringert.net**20060524001905] [Moved path tree stuff to a separate module. bjorn@bringert.net**20060524002730] [Added countField. bjorn@bringert.net**20060524004909] [Generalized readInputWithDefault to MonadCGI. bjorn@bringert.net**20060524041726] [Added fromConfig. bjorn@bringert.net**20060524173501] [Added readM, trimBy, trimSpaces and getInputWithDefault. bjorn@bringert.net**20060524230845] [Added MethodHandler type and get and post functions. bjorn@bringert.net**20060525210104] [Added BaseConfig class, and functions for it. bjorn@bringert.net**20060525215324] [Added withConfig bjorn@bringert.net**20060525222152] [Export URL and URI from MonadWeb. bjorn@bringert.net**20060525222619] [Added getUserInfo. bjorn@bringert.net**20060525230656] [Removed get and post. bjorn@bringert.net**20060526003230] [Generalized methodHandlers and added get and post back in. bjorn@bringert.net**20060526004913] [Added BaseConfig instances for pairs. bjorn@bringert.net**20060526184344] [withConfig now takes a config transformation function. bjorn@bringert.net**20060526185351] [Generalized countField to take any query instead of a table. bjorn@bringert.net**20060526195502] [Added ISO-8601 date formatting. bjorn@bringert.net**20060530040952] [Use lazy bytestrings. bjorn@bringert.net**20060531064333] [Added -fallow-overlapping-instances to HaskellDB utils module. bjorn@bringert.net**20060602123324] [Bumped version. bjorn@bringert.net**20060605010550] [Fixed homepage URL. bjorn@bringert.net**20060605011013] [Added rssLink. bjorn@bringert.net**20060605202037] [Added faviconLink. bjorn@bringert.net**20060605212350] [Moved formEncode and urlEncode to NewCGI. bjorn@bringert.net**20060606022641] [Removed the last transaction stuff, need to analyze the whole thing. No transations for now. bjorn@bringert.net**20060606225803] [Removed error page stuff that has moved to NewCGI. bjorn@bringert.net**20060607065240]