Change History
Changes in Version 3.0 from Version 2.8
-
Features added:
- Repeating events (every/every other/every third - day/week/month/year - arbitrary number of repeats)
- Improvements on multiple database functionality - introduced "group" metaphore where each database is a separate group. Added flag in jconfig.pm allowing administrator to enable or diable group functionality. When enabled, all possible "groups" (aka db files) are listed in a drop down menu for user to select. When disabled, drop down is not displayed.
- Added flag in jconfig.pm allowing administrator to display or hide the language drop down menu.
- New web-based administration of language functionality and groups. Web interface allows administrator to set the default language and to show or hide the language drop-down. Also allows administrator to add, delete, rename, or set default groups. Web-based admin is protected by a password set in jconfig.pm.
- The HTML generated is now valid. This fixes display bugs in Opera.
Changes in Version 2.8 from Version 2.7
-
Bug Fixes:
- Fixed support for multiple calendar databases that was accidentally broken in 2.7.
- Fixed AM/PM pre-population on edit form (works only for US English or any other language that uses the strings "AM" and "PM")
Changes in Version 2.7 from Version 2.6
-
Features added:
- Provided support for multiple languages, and provided translations for US English, German, Brazillian Portuguese, French, Spanish, Dutch, Hungarian, Russian, Japanese, Polish, and Esperanto. Added variable to jconfig.pm letting the user set the default language.
- Changed date format in calendar.db to make it language independent (formerly the key field was a date with the English month name). Provided a script -- convert.pl -- to convert the calendar.db file from 2.6 compatible to 2.7 compatible.
Changes in Version 2.6 from Version 2.5
-
Features added:
- Abstracted data access code so that future versions can use CSV files, a SQL database, or other non-dnfunc datasources.
- Program now actually respects the path to .gif and .css files as specified in jconfig.pm
Bug Fix:
Changes in Version 2.5 from Version 2.4
-
Features added:
- Addition of location field for events
- Ability to use HTML in extended explanation and location fields
NOTE!!! ALLOWING HTML IS AN OFTEN REQUESTED FEATURE, BUT IT POSES SECURITY ISSUES. IF YOU DON'T WANT TO RISK ALLOWING HTML IN THE DATABASE FIELDS, DON'T USE THIS PROGRAM! - Use of CSS to style calendar pages
- Ability to edit events after they have been added. This includes changing the date of an event.
- UI change to put years in a drop-down. Drop-down menu will show two years prior and three years following the current year.
- UI changes to layout of Day view, Event view, and Add Event pages.
- Created a module (jconfig.pm) to put all of the configuration variables in one place and make installation easier.
- Removed the requirement that jcgi.pm and dnfunc.pm be duplicated in the addevent directory.
- Multiple database implementation was messed up. Don't know if the screw-up ever made it into the wild, though.
Bug fix:
Changes in Version 2.4 from Version 2.3
-
Feature added:
- Ability to maintain multiple databases without installing multiple copies of the software
Changes in Version 2.3 from Version 2.2
-
Bug fix:
- Some systems didn't like the name of cgi.pm (I'm guessing it conflicts with the now-standard CGI.pm). I changed the name and references to jcgi.pm.
Changes in Version 2.2 from Version 2.1
-
Feature added:
- code has been added in the dnfunc.pm module that adds the ability to delete
a record based on the key. By adding code to the delete part of addevent.cgi,
to utilize this new feature of dnfunc, the calendar.db file will now remain at
a much more manageable size by eliminating orphan entries. This might speed
things up in a highly used calendar with a large database.
In order to allow users to minimize the size of their current calendar.db file, I have written a perl script (clean.pl) that will remove all orphan entries from the file (orphaned entries are those that have a key (like 19August1998), but no events or other data. BEFORE YOU USE THIS SCRIPT, MAKE A BACKUP COPY OF YOUR CALENDAR.DB FILE. USE THIS SCRIPT AT YOUR OWN RISK, AS YOU USE ALL OF THIS SOFTWARE AT YOUR OWN RISK. Please note that this script was written *and* tested in a total of about 10 minutes, so there are probably bugs/problems with it. I had to run the script twice on my calendar.db file to get rid of all orphan entries.
- corrected problem caused by change in 2.1. The calendar would not display any month besides the current one. This was caused by an older version of cgi.pm and was quickly corrected. I don't think more than 1 person ever experienced this problem.
Bug Fix:
Change in Version 2.1 from Version 2.0
-
Feature added:
- Ken MacCuish has modified the code to allow the user to define two variables that determine colors that will be used to highlight cells in the calendar table that have events in them or today's cell. See the comments around line 60 of index.cgi for more information.
Changes in Version 2.0 from Version 1.5
-
Bug Fixes:
- housecleaning chores in cgi.pm including a subroutine misnamed, comments added, etc.
- encode subroutine in cgi.pm finally made functional - thanks to the real CGI.pm by Lincoln D. Stein.
- return_html subroutine in cgi.pm renamed to return_html_file, and some extended functionality added, but none that affects CGI Calendar
- the extended explanation in the addevent form is now url encoded before being placed in database. This allows linebreaks in the extended explanation - previously newlines would cause problems becuase the record delimiter in the database is the newline character. The url encoded explanation is decoded in viewday.cgi.
- viewmonth.cgi removed from the package on the realization that index.cgi already did the same job. The jump to month functionality is not affected as it is now handled directly by index.cgi.
- Now, the number of the day on the calendar is hyperlinked, as well as the
summary of each event on the day. Clicking on the day number brings up a
page displaying all the information for all events on the day, if there are
any. This includes time, summary, and explanation. A hyperlink for deleting
each event is also provided with the event information. It is protected by
whatever security measures you have in place for the addevent directory.
Also, now the add an event link is placed on this page with event information. If you click on the summary of an event from the calendar, a very similar page will be presented, but displaying only the information for that event, not all events as if you clicked on the date.
All this is accomplished by a new script, viewday.cgi.
- When clicking on an "Add an Event" link, the add an event page is now styled using the same top.html and bot.html files as are used to style the rest of the calendar. Also, the month, date, and year are already filled in/selected, but you can change them if you wish.
- An extended explanation of the event can now be entered.
- When the calendar is loaded, the year in the jump-to-month form is now filled in to the year currently being displayed in the calendar, but can be changed.
- The function return_error is now found in cgi.pm. The error pages returned
upon exceptions handled by calling cgi::return_error are still not styled
using top.html and bot.html. This is because I would like to keep cgi.pm as
portable and maintainable as possible. I do not want people to have to have
a top.html and bot.html to be able to use cgi.pm.
If you would like to add this functionality yourself, it would be very easy to do by editing the cgi.pm code, modeling it after the code used to return html in index.cgi, viewday.cgi, or addevent.cgi.
Features Added:
Note on a feature not added:
Changes in Version 1.5 from Version 1.0
-
Bug Fixes:
- Leap year problem solved…problem was caused by an incorrect call to a calendar::days_in_month in index.cgi.
- Support added for years back to A.D. 1…viewmonth.cgi previously would not load the month for any year before 1900, and no support was previously available for leap year calculation before 1752 in calendar.pm. Both have been corrected.
- Ability to delete events via a form…The addevent form is now an add or
delete event form.
An event is added or deleted depending on which radio button is checked on the form. Addevent.cgi always had the ability to deal with different modes (i.e., add or delete), I just hadn't added the code for it to do anything other than add. It now has a delete mode, and deletes an event by looking up the record, finding the summary of the event to be deleted, and then deletes all info pertinent to that summary.
- Automatic detection of password protection of addevent directory…if there is an .htaccess file in the addevent directory, the link below the calendar will automatically read "Add or delete calendar event (username and password req.)". If no .htaccess file is present, it just reads "Add or delete calendar event".
Features Added:
Thanks to the people in comp.infosystems.www.authoring.cgi for pointing out the bugs and suggesting new features to add.