See also TODO.txt
Version 0.7.8:
- Introduced the "favicon", resched.ico. Individual sites can
of course customize or replace this icon.
- create-tables.pl no longer creates the deprecated plain-text
password field, only the hashedpass field. The password field is
FOR NOW still supported, for backward compatibility, but sites
should go ahead and fill in the hashedpass fields for all users,
because cleartext password storage will become unsupported in a
future release.
- Cleaned up a bunch of backslash-intensive string quoting in
auth.pl, for improved code legibility and maintainability.
- Also cleaned up some of the backslash-intensive quoting in
the code that shows a booking; it still needs more.
- Added a variable (to config.cgi), show_booking_timestamp.
If this is set, the code that shows a booking will now
show the timestamp.
- Enhanced capitalise() to correctly handle names like O'Reilly and
O'Neal.
- Released 2010 June 17.
Version 0.7.7:
- Introduced sitecode.pl for holding site-specific code. The main
codebase will include hooks for some of this.
- Moved site-specific aspects of name normalization into sidecode.pl
and made some slight adjustments for Galion.
- Added preliminary support for the Combine Rooms feature (bug 199).
Note that if you are upgrading from an earlier version, you will
need to add the combine field (tinytext) to the resched_resources
table before you can use it. The field holds a comma-separted
list of the the record id numbers of the other rooms you want to
be able to book together with the one in the current record.
- Fixed the Choose Resources & Dates list to be generated from
include::categories (previously it was hardcoded).
- Introduced some (technically redundant) clarifications to the
blackonwite stylesheet to compensate for bugs in IE7 (probably
also IE6) that were causing illegibility. I believe this makes
the thing mostly usable with IE7, though getting the AJAX-based
"Quick" feature to support IE is still on the TODO list.
- Repeat the default alternate stylesheet at the end of the list
of alternatives, so that IE6/7 will give it priority. This is
still far short of real alternate stylesheet support, but hey,
it's not my fault you're using an old version of the worst
browser available. At least now IE7 users will have some
flexibility when it comes to visual styling. Incidentally,
this workaround probably violates the spirit of some RFC or
another, but it doesn't seem to bother Gecko.
- Released 2009 April 20.
Version 0.7.6:
- Introduced the nonusers variable, to allow the site
admin to customize which special names resources can
be booked for that won't count toward usage stats.
- The "available" link (shown when a booking is done
early but has no followup) now indicates the time
that the resource became available.
- The capitalise routine now correctly handles roman
numerals up through VIII (if they appear as a word
by themselves, not embedded in a name). Is this
enough, or should it go clear to Louis XVI?
- Initial support for hashed passwords (md5_base64).
This adds Digest::MD5 to the list of required
modules, but it's worth it. If a user's record
has the hashedpass field set, this is checked
instead of the password field. It is recommended,
that you clear the password fields of all user
records to NULL after setting the hashedpass values.
- Note that if you are upgrading from an earlier
version, you will need to add the hashedpass field
(tinytext) to the users table before you can use it.
- Released 2009 February 16th, and also deployed in Galion.
Version 0.7.5:
- Changed the default stylesheets. In Galion this means
children's-room computers are now more visually distinct from
adult-department computers, which will be important with the
categories we will be using now. Of course, any other
site will probably want to edit the stylesheets anyway.
- Added the flags field (tinytext) to the resources table.
NOTE: if you upgrade from a previous version, you need
to alter the table to add this field.
- The R flag will mean "this resource is a meeting room".
- The X flag will mean that the resource should not be
included in automatically generated lists, e.g., in the
sidebar. So, for instance, if you have a phony room in
your practice zone that you use for testing the software,
you can get it excluded from the sidebars by giving it
this flag. Similarly, if you don't have categories set
up, you can stop a certain resource from appearing under
Today and These Same Days by giving it the X flag.
- All other characters (as flags) are reserved for now:
lowercase letters for site-specific use, and all
other characters for future use in the main codebase.
- Updated isroom to look at the R flag. (Previously the
list of room resources was hardcoded.)
- Changed out the hardcoded rooms-related parts of the
sidebar to take advantage of the above generalizations.
So now if a site sets the R flag on their room resources,
these parts of the sidebar are automagically generated.
Adding the X flag as well causes exclusion.
- Released 2009 January 21, and also deployed in Galion.
Version 0.7.4:
- Updated the magic page titling to take account of
the new categories system. (Still need to do the
isroom stuff, though.)
- Fixed a minor bug in include::categories that the
above work exposed.
- Deployed in Galion. Didn't bother with a public
release of this version, because I just did 0.7.3,
and there'll be more changes coming anyway.
Version 0.7.3:
- Fixed a glitch in RELEASE.txt so that the public demo
will be put back in working order after each release.
- Fixed an obscure bug (198) that triggered when a booking
was cancelled after it had been finished early and
a followup booking placed, wherein the followup
booking became orphaned (and thus invisible), which
caused problems. For now you just get an error message
if you try to do this, because I can't think of a
legitimate use case for wanting to cancel a booking
that has a followup. If someone actually needs to be
able to do that, it can be changed to clear the
isfollowup field on the followup booking, instead
of giving the error message. The code to do that
would go where the error message is now. But unless
someone asks for it, I don't see the point.
- Galion only: added booking guidelines link to
the sidebar. This was done via the existing config
mechanism for adding things to the sidebar, so it
has no impact for any other site.
- Did some much-needed refactoring on the stats gathering
to get it into a more maintainable state, so I can
work with it better. (This is in preparation for
making the stats that can be gathered more flexible.)
- Introduced the categories variable, which is now used
for subdividing the statistics, and in the sidebar
under Today and also This Same Day / These Same Days.
The default is for each resource to be its own category,
which will do fine if you have only a very small number
of resources. Larger installations will want to
specify categories. Added the variable to config.cgi.
- Released publically 2009 January 16th. Held off on
Galion deployment because it was Friday.
Version 0.7.2:
- Fixed a number of markup issues per validator.w3.org
- recommendations
-
- Added xmlns attribute to html element.
- Fixed a couple of malformed comments.
- Changed a span to a div in several places so that the
block-level ul element would be allowed inside it.
- Got rid of all instances of the nobr element, which
is not defined in xhtml. Replaced with a styled class.
- In the course of those modifications, I banged into the
"annoying \"escaped\" quotes" issue several times and
refactored to a more maintainable style. More of this
still needs to be done.
- Changed script tag from self-closing to paired open/close
style. This is theoretically incorrect (it's an empty
tag pointing to an external script file via src attribute),
but it appears to be necessary for MSIE support.
- Speaking of which, MSIE now partly works. For full
MSIE support a legacy stylesheet is needed and maybe
some updates to the AJAX stuff.
- Released publically and deployed in Galion, 2008 Aug 29.
Version 0.7.1:
- removed FormInput.pm, which was no longer being used
by anything. (See the note in 0.7.0 about why.)
I am pretty sure that's finally the last of the old
Class::DBI stuff.
- Created RELEASE.txt with notes on doing a public release.
- Deployed in Galion, 2008 Aug 26. This version was never
released publically, because it didn't have enough
changes over 0.7.0 to bother.
Version 0.7.0:
- Removed DBConfig.pm, which was no longer being used by
anything. (Actually, I think DBConfig.pm and Auth.pm
may have only ever been used by the 'events' stuff,
which is no longer even used in Galion and was never
a part of the public release in any case.)
- Removed Class::DBI from the list in INSTALL.txt,
since it was only needed for the aforementioned
removed stuff.
- Added the ils_name variable, which is used in two places
(both having to do with aliases -- the canonical name
should be spelled the same way as in the ILS).
- config.cgi now displays the variables in a logical
(rather than alphabetical) order. Also, most of the
included stylesheets now put a visible border between
them, so that the user can more easily tell where the
explanation for each one ends and the next begins.
- Made time_zone a variable (previously it was hardcoded).
- Corrected a statement in TODO.txt regarding what would
be needed for Postgres support.
- Released 2008 August 5 (yes, two releases in one day).
Version 0.6.9:
- Added the misc_variables table, for storing variables that
are specific to a particular site.
- Added the getvariable and setvariable routines to db.pl
- Added config.cgi to make it easier to set up these variables.
The sysadmin can always chmod -x it if he's worried about
users messing it up.
- Added support for the following variables: sysadmin_name,
url_base (but, ajax.js still has it hardcoded), and
sidebar_post_today
- Removed Auth.pm, which, as it turns out, nothing is still
using at this point.
- Added the auth_by_ip table, with support in auth.pl
- Updated INSTALL.txt to account for the above changes.
- Released 2008 August 5.
Version 0.6.8:
- Factored the AJAX javascript out to ajax.js, in preparation for
working in the forum software version's improvements (e.g., to
support MSIE). Did not actually do that yet, this is just a
preparatory step.
- Added INSTALL.txt with basic install instructions. These have
not yet been tested but should be a real good starting point.
- Released 2008 August 1.
Version 0.6.7:
- Removed %fieldname from include.pl (a holdover from the
inventory tracking tool, which somehow got carried over,
discovered when I was sanitizing the resched code for
public distribution).
- Removed some things that were highly specific to the Galion Public
Library, in preparation for public release.
- Released 2008 July 31.
Version 0.6.6:
- Fixed a long-standing bug in usersidebar that was causing
the This Same Day section to appear whenever the date
being viewed defaulted to the current date (by not being
specified in the query args).
- Deployed 2008 July 24.
Version 0.6.5:
- Made houroptions put "am" on morning hours, per the request
of the downstairs staff, see bug 187,
http://localhost/bugzilla/show_bug.cgi?id=187
- Changed the list of links under This Same Day / These Same Days.
Instead of listing individual resources (which you can get
anyway by clicking the column headers) it now lists only the
broad categories. This makes the list considerably shorter,
which pulls Today above the fold in most cases. See bug 167,
http://localhost/bugzilla/show_bug.cgi?id=187
- Deployed 2008 July 21.
Version 0.6.4:
- The table is now preceded by a line that tells the current
time on the server.
- added washbookingrecord() to db.pl to clear up persistent
bug wherein fromtime_datetime and util_datetime didn't
get cleared out of a record before updaterecord was called,
resulting in error messages about not being able to update
the non-existent field.
- Deployed 2008 June 27.
Version 0.6.3:
- When a booking is created, the bookedfor name as typed is
preserved in the notes, in parentheses, if it does not match
what actually goes into the bookedfor field (e.g. due to an alias).
http://10.0.0.21/bugzilla/show_bug.cgi?id=162
- Adjusted the wording in a couple of error messages.
- Updated handleResponse to call retrieveupdates() if it gets
an updatecount element in the response. Note that the retrieveupdates()
function is NOT defined in include.pl, as it might be different depending
on the page that is being updated.
- If dynamic-info.cgi gets an updates-p request, it checks for
updates. If there are any, it sends an updatescount element.
Otherwise it sends a success element saying there are none.
(No action needs to be taken in the latter case.) Note that
the only kind of new updates checked for at this point are
new bookings. Changes and cancellations are not considered.
- When index.cgi generates a view page, it includes a suitable
retrieveupdates function and calls window.setInterval to issue
an asynchronous updates check request every two minutes.
- The net result of all that is that if a new booking is
created for one of the resources that you're currently
looking at on a view page, within two minutes you'll
get an updated view even if you don't do anything.
http://10.0.0.21/bugzilla/show_bug.cgi?id=165
- Deployed 2008 Mar 18.
Version 0.6.2:
- Fixed a bug in frequent user lookup that was causing no records to be
found when restricting to certain resources (as opposed to "anything").
- Added meta-counting to frequent user lookup, which is useful when
you're looking up people who booked at least 1 times (e.g., for
statistical purposes).
- Added link in the sidebar to the QuickNet control facility.
- Deployed 2008 Mar 07.
Version 0.6.1:
- Added funwithfont.css, which uses different fonts for different resources.
This is intended solely for my own use, since I normally keep page colors
disabled, so I otherwise miss the benefits of the new style system.
Note that many of the fonts it uses are obscure and unlikely to be
installed on other systems, but they are available on my workstation.
- Fixed a bug in usage stats gathering. (It was failing to take account
of the added internet station and the accompanying renumbering.)
- When a booking is successfully extended, a redirect header is issued
with a thirty-second delay, so that somebody won't walk up to the
computer minutes later, hit reload, and extend the booking again
without meaning to do so. (If they intend to extend it again, the
extend link should still be there.)
- Fixed extendbooking to kludge %input better so that the correct day's
table is displayed if a non-today booking is extended. (I was noticing
this when extending computer class bookings. I suspect none of the
other staff were seeing it, because it's a real corner case. Anyway,
it's fixed now.)
- If a name has aliases, this fact is displayed on the booking edit
form, linked to an alias search that will display them.
http://10.0.0.21/bugzilla/show_bug.cgi?id=159
- Deployed 2008 February 22.
Version 0.6.0:
- More double-quote refactoring.
- Improved the alias search so that it finds more results. In particular,
it now always does a substring search (rather than trying an exact match
search first and stopping if successful). Also, it looks in the canon
field, as well as the alias field, and unifies the results.
- Refactored search-results generation out to a subroutine, searchresults,
to get that logic out of the big elsif($input{foo}) chain. There are
some other things too that need to be refactored out of there to their
own subroutines, but that was the first one.
- Refactored alias updating out to the updatealias subroutine.
- Moved isalias, dealias, normalisebookedfor, and capitalise into include.pl
As a result they are now in the include:: namespace, but also they are now
accessible to dynamic-info.cgi
- showbooking in dynamic-info.cgi now normalises (etc) the bookedfor field.
- Implemented AJAXified done-early feature.
- Followup bookings now have the name normalised and dealiased.
This was neglected previously.
- Added a couple of testing options to the Special Testing Zone.
- Cleaned out some old debugging cruft that's no longer needed.
- Cleaned out references to stylepics, which is no longer needed since
the stylesheet overhaul.
- Booking search results now use resource classes (res16 etc),
so they get the styling. I added styles for the practice zone
resources.
- Deployed 2007 Dec 27.
Version 0.5.9:
- Worked some more on the quoted-string refactoring (see under the
changes for version 0.5.6). Still need to do more of this.
- Added UI for creating a new alias, in the Aliases sidebar section.
- Added "mark this name as an alias" link next to bookedfor on the
view/edit booking screen, if the name is not already an alias.
(If it is already an alias, then that information is displayed,
with a link, since version 0.5.3, and I didn't change that.)
- Moved the sanity-check logic for aliases into a subroutine,
sanitycheckalias, which is now called from two places.
- Deployed 2007 December 19.
Version 0.5.8:
- Based on feedback from Darlene, made Low Contrast the default.
- Deployed 2007 Dec 11.
Version 0.5.7:
- Jill wanted a lower-contrast variant of darkonlight, so I created the
Low Contrast style.
- Deployed 2007 Dec 11.
Version 0.5.6:
- Totally overhauled the stylesheet system. The new system, among other things,
uses color to create visual cues for distinguishing different resources.
It's also simplified. There are four choices of style: light on dark,
dark on light, black on white, and browser colors. Printing uses a variant
of black on white with certain navigational features set to display: none.
- Fixed a minor bug on the overview so the room name and first word of the
bookedfor don't runtogether.
- Replaced some "\"regular\"" double-quoted strings with qq["quote-like"] ones,
to get rid of all the backslashing. Still need to do more of this.
- Fixed a bug in the authentication used by events.cgi
- Created v2 of the blue down-arrow for extending bookings. v2 has better
contrast against the new blue-background styles for internet resources.
- Deployed 2007 Dec 11.
Version 0.5.5:
- Added leobardis (large print internet).
- Deployed 2007 Dec 10.
Version 0.5.4:
- Bookings search now looks under all aliases, plus the canonical name.
- Fixed Did You Mean feature to ignore 'CLOSED', which has special meaning.
- Deployed 2007 Nov 13.
Version 0.5.3:
- Created sub capitalise to replace the ad-hoc split/map/join name capitalization.
- Added a line to sub capitalise to bicapitalize McNames, MacNames, and VanNames.
- When showing a booking, if the bookedfor is an alias, this is noted, with a link
to the alias record.
- Added alias record display, with an Edit link.
- Added alias edit functionality, with ability to save changes, subject to sanity checks.
- Added alias search to Search section of sidebar
- Created Aliases section of sidebar, which for now just also has alias search,
but this is where stuff like creating a new alias can go.
- Deployed 2007 Nov 13.
Version 0.5.2:
- Created the new resched_alias table and moved the contents of %alias there.
- Altered sub dealias to use the resched_alias table rather than the hash.
- Created sub isalias, using the resched_alias table, to replace other
uses of the hash where dealias is not suitable.
- Tested: frequent user lookup still works correctly.
- Tested: booking the jukebox for an alias results in the canonical name
being shown, as it should.
- Fixed a long-standing minor bug that caused an extraneous message to be
output when deleting a non-followup booking.
- The view table cells now normalise and dealias the bookedfor names.
- When search returns a booking where bookedfor is an alias, it now
also gives the canon in parentheses.
- Deployed 2007 Nov 7.
Version 0.5.1:
- Added [another patron] to %alias
- Not sure I ever deployed this version.
Version 0.5.0:
- Fixed a bug in Automatic single-choice Did You Mean corrections.
- Deployed 2007 July 27.
Version 0.4.9:
- Made debug comments in usage stats only occur if $debug is >1.
- Deployed 2007 July 25.
Version 0.4.8:
- If there's only one Did You Mean choice, don't ask, just do it.
- Deployed 2007 July 23.
Version 0.4.7:
- Added some more entries to %alias.
- Added multiple choice Did You Mean for single-word names per bug 77.
- Deployed 2007 July 13.
Version 0.4.6:
- Added first part of the "Did You Mean" feature, per bug 77.
- Deployed 2007 July 11.
Version 0.4.5:
- Added [another patron] to %alias.
- Search was returning results in forwards chronological order,
which now that we've been using the software for a while was
starting to feel wrong, since all the first results were
typically ancient history. So I reversed it.
- Deployed 2007 May 30.
Version 0.4.4:
- Made search and frequent user lookup ignore case.
- Made frequent user lookup normalize names (from "last, first"
to "first last", remove parenthesized "IN" notes, and so forth).
- Introduced %alias. For the moment, frequent user lookup is the
only thing that uses it.
- Deployed sometime in 2007Q1 IIRC.
- Redeployed May 29 with minor fix to accommodate changes in our
network infrastructure: Use $ENV{HTTP_HOST} instead of
$ENV{SERVER_ADDR} when composing the base URI, since staff now
access this service through NAT. Did not increment the version
number, partly because I was in a hurry.
Version 0.4.3:
- Notes icon is now shown for followup bookings that have notes.
- Fixed a bug wherein deleting a followup booking left the parent
booking with an invalid followedby field, resulting in the
inability to schedule anybody else in that timeslot. Now
deleting a followup booking changes the parent record to not
list a followup, so that a new one can be added if needed.
- Deployed 2006 Nov 06
Version 0.4.2:
- Changed sendnewbookingform (in dynamic-info.cgi) so that if the
full durationmins is not available the default is to book
intervalmins rather than durationmins. This reduces the
likelihood that the user will have to change the end time.
- Modified the index to apply the class dateth or todayth to the
date cells in the table header, depending on whether it matches
the current day or not. Styled dateth to stand out visually
(black on yellow, with black border and yellow outline).
- Deployed 2006 October 9 (yeah, two updates on the same day).
Version 0.4.1:
- Fixed a bug in sendnewbookingform (in dynamic-info.cgi) that had
prevented the Quick button from returning a usable form when there
was less than durationmins available.
- Changed showbooking (in dynamic-info.cgi) so that the done-early link
is not shown in situations wherein the booking might extend beyond the
table cell where it is currently shown.
- Deployed 2006 October 9.
Version 0.4.0:
- This was the first version robust enough that we used it for
months with no changes.
- Consequently, it was after this version that I instituted the
CHANGES.txt file.