Project Hirtius -- Changelog
============================
(Ph. A. - 13/08/2024)
1.06 (13/08/24) [calendar view]
---------------
- Cosmetic change in ./tray_edit.php, 'view' mode: don't display useless
ActionLink column when tray is already full.
- Fixed bug in 'buildPermaLink()' function where the Tiddler title used as
HTML anchor was not adequately encoded, causing the resulting link to point
to a non-existent record.
- Improved 'URLify()' function to render SmartLinks pointing to non-existent
objects with a different visual style, and to use a different target URL
in this case (object creation page or object list, where possible).
Added "candidate Slide ID" to the interface of ./slide_edit.php (to be used
by 'URLify()' when pointing to non-existent slides). Created new function
'GetBibSrcRefIDbyName()' to allow similar check for Bibrefs and Srcrefs.
Updated HelpSet and test procedure accordingly.
- Disabling or enabling a user account is now traced explicitly in the
EventLog.
- Added action links to the Tray view page to allow inserting a new Slide
straight into a specific (empty) slot. Updated HelpSet and test procedure
accordingly.
- Granted Reader-level user accounts full management rights over their own
library cards and related renewal records. Updated test procedure
accordingly.
- Cosmetic changes in 'SlideView()' and 'SourceView()' functions.
- Improved 'dd2dms' script: trim input parameters before parsing them.
- Removed dead code in ./as_result.php ($objdesc).
- Replaced 'Source Type' by 'Source Type Code' when displaying Source
objects in list mode in ./index_obj.php.
- Fixed a display bug in the concatenation of 'title' and 'subtitle' fields
(e.g. for books and sources) where a punctuation mark was added even when
'title' already had one as last char. Standardized on ',' to separate
'title' and 'subtitle' in concatenation. Updated HelpSet accordingly.
- Added missing "is alive" flag to Individuals advanced search form. Updated
HelpSet accordingly.
- Took advantage of the new functions and data fields introduced by the Calendar
View feature to implement a more thorough validation on the "historical"
date format (i.e. the one used for Events and Titles).
- Added new Calendar View feature (based on jPerCal project). Added new 'era'
column to Events and Titles objects. DB schema bumped to 50. Made JDN values
more visible (and selectable as Advanced Search Result columns where
applicable). Added new Calendar Tools page to offer direct access to the
underlying functions that support Calendar View. Added new "Bibliography" and
"Supported Eras" help pages with all references used to build the calendaring
functions. Updated HelpSet, INSTALL, UPGRADE and test procedure accordingly.
- Added missing hidden field for '$hits_per_categ' to "Latest Updates"
refresh form.
- Added new checkbox on the "Latest Updates" search query page to control
whether the maximum number of hits should be computed globally or per
category. Updated HelpSet and test procedure accordingly.
- Fixed a bug in event log entries date format that caused them to appear
out-of-order in "Latest Updates" search results. Updated test procedure
accordingly.
1.05 (31/10/23) [event log]
---------------
- Bug fix: added missing calls to 'htmlspecialchars()' on 'Location' field
in Slides, Events, Individuals and Families edition workflows.
- Fixed a bug where linked sources were not taken into account when deciding
whether to allow the deletion of a library record (the error message now
gives a detailed count of each item type). Added a list of linked
sources to the Library Edition page in 'view' and 'edit' modes. Updated the
Libraries List page to display the sum of linked books and sources in the
(renamed) "#Items" columns. HelpSet and test procedure adapted accordingly.
- Used format-coding on Auth. Level field on Users List and User Edition
pages ('view' mode) to make Admin accounts easier to identify. Added
Account Creation Date column on Users List (usable as sort key). HelpSet
and test procedure adapted accordingly.
- Added a count of linked books on the Library List page. HelpSet and test
procedure adapted accordingly.
- Bug fixes and improvements brought as a result of running the test
procedure:
* Protected hidden fields where needed
* Removed two unused hidden fields from Family edition page in 'edit'
mode
* Added "DEBUG ALL" value to debugging categories. HelpSet updated
accordingly
* Improved some toolbar icons title (= tooltips)
* Removed needless verbosity from getTiddlerTagList() debug messages
* Fixed buggy HTML in ./index_inx.php, ./inxtree.php, ./slide_edit.php,
./trays_p.php, ./book_edit.php, ./source_edit.php, source_types.php,
./person_edit.php, ./name_types.php, ./family_edit.php, ./event_edit.php,
./event_types.php, ./sequences.php, ./admin.php, ./obj_att_edit.php,
./bulk_inx_add.php
* QuickJump to error out if requested Tiddler doesn't exist
* Format per-category object count as per user prefs in INXtree flat list
report, same for count of source type use in source types list, for count
of name type use in name types list, for count of event type use in event
types list, for sequence members count in sequence list (and right-align
said count where it was not the case yet), for all counts on Index
Categories Bulk Add page
* Disabled "delete" action for "required" event types in event types list.
HelpSet and test procedure updated accordingly
* Added confirmation step in case an attempt is made to remove the 'required'
flag on the Event Types Management page. HelpSet and test procedure updated
accordingly
* INXtree node copy process now reports the number of nodes successfully
copied and doesn't update the DB timestamp when that number is zero
* Improved html2latex_text() and html2latex_line() to properly handle
the '\' character
* Improved denumberStructEntry() to allow '_' as separator between
numbering and heading. Updated HelpSet accordingly
* Improved the delete confirmation message in ./inx_edit.php,
./book_edit.php, ./article_edit.php, ./libraries_edit.php
* Fixed a potential data corruption bug that affected preformatted sections
in Tiddlers where such sections contained the '\n' sequence (as may be
the case for computer code samples).
- Project creation, closure and re-opening events are now recorded in the
event log. HelpSet and test procedure updated accordingly.
- Clarified language of a few warning and error messages.
- Fixes and cosmetic improvements in the generated HTML on many pages.
- Called nl2br() when needed instead of str_replace() as the generated HTML
is cleaner.
- Fixed a bug in FormatReading()'s algorithm that caused invalid HTML to be
generated in some circumstances (duplicated <table> opening statement).
- Updated INSTALL document to reflect compatibility with openSUSE Leap 15.4.
- Redesigned '$debug' variable handling: instead of a binary ON/OFF value,
the variable can now be assigned a combination of binary flags to selectively
turn debugging ON or OFF for different categories of topics (three have been
defined at this stage: algorithms and application workflow, SQL queries and
JavaScript). The DB Admin menu page has been updated to list the currently
enabled debugging categories. HelpSet, test procedure and INSTALL document
updated accordingly.
- Added support for 'RAW' contents to 'sources.reading' field for mini-quote
handling in basic search result (identical to what was already done for
'slides').
- Fixed bug in basic search result where the mini-quote extracted from
'slides.comment' could have been overwritten by that from 'slides.releve'
if 'RAW' mode was used for 'releve' and a match was found inside that field
too.
- Minor bug fixes in the HTML layout of the Advanced Search, Slides Edition
and Source Edition pages. Made SlideView() and SourceView() HTML layout
dynamic depending on the number of optional text fields to display.
- Added warning during Slide or Source submit if reading is empty but either
transcription or translation are not.
- Added new 'transcription' field to 'slides' and 'sources' tables. Displayed
in view mode only when not empty. A new JS-driven "Populate" button allows
to auto-fill 'transcription' with a cleaned-up version of the current
contents of the 'reading' field. New field integrated to basic and advanced
search. DB schema bumped to 49. Updated HelpSet and test procedure
accordingly.
- Added a new global definition and a new user preferences column to allow
users to select the Event Type they would like to get as default proposal
on the New Event creation form ("Generic Event" specified as global
default). Updated HelpSet and test procedure accordingly.
- Added new checkbox(es) on the Advanced Search page for Events, Individuals
and Families objects, to allow selection of only those records where
the Event date has been left unset. Updated HelpSet and test procedure
accordingly.
- Fixed a bug where Events whose date had been left unspecified couldn't be
navigated to using the "next by date", "prev by date" NavBar controls or
the "next in seq", "prev in seq" Sequence controls. New global definition
created for a "negative infinity" value used instead of NULL (and as default)
for 'events.date_s_key' and 'titles.as_of_key' columns when the related
date is left empty by the user. Added 'obj_id' as second-order sort key where
"Hirtius-type" dates were used to improve sort order predictability. DB
schema bumped to 48. Updated HelpSet and test procedure accordingly.
- Switched global configuration variable '$obsol_bgcol' from 'SteelBlue' to
'BurlyWood' for better URL contrast on Firefox (Chrome enhances the
contrast automatically). Added HelpSet impact in the Global Definition File
page, that had been missed in the previous commit. Further (unrelated)
improvements on same Help page.
- Added a more obvious visual identification for obsolete slides. In the
Slides list, they are displayed on a blue background, and on the edition
page a blue background highlights the card header and obsolescence controls.
In addition, a warning is displayed when further editing an obsolete slide.
HelpSet and test procedure updated accordingly.
- In ./families.php, improved the existing sort keys and added new ones to
better handle successive unions by the same individual. Updated HelpSet
accordingly.
- Minor HelpSet improvements.
- Minor improvement to the Project deletion confirmation message.
- Added warning for user to re-authenticate after having renamed their
account.
- Fixed a bug in the 'default_data.sql' file where the initial 'users' table
contents was no longer in line with the current DB schema.
- Added new verification function to sanity check for array-based values.
- Added new Event Log feature to record meaningful application activities.
At this stage, the following actions are logged:
* initial data load at DB creation
* sanity check and ID gaps check runs
* any change to user profiles
* any data deletion
* LaTeX report generation
The log entries are accessed through a new Event Log Viewer page and are
also searchable through the Basic, Timeline and Advanced Search pages
(please note: non-admin users can only see events they triggered themselves).
New 'event_log' table integrated into sanity checks, statistics. DB schema
bumped to 47. Updated HelpSet and test procedure accordingly.
- Processing time is computed and displayed for potentially long-running
tasks (e.g. sanity checks, DB statistics, orphaned objects identification,
LaTeX report generation, etc.)
- Fixed a bug in ./projects.php where 'get_row_count()' function would
not take the "hide closed projects" filter into consideration. Created
new function 'get_filtered_row_count()' for this situation.
1.04 (04/07/22) [users]
---------------
- Defined requested 'bcrypt' iterations as a new global variable (called
'$htbciter'). Min. is 4, max. is 17, suggested default is 12. The higher
the value, the stronger the hash, but the computing cost is exponential
(which helps mitigate against brute-force attacks).
- Moved to using the stronger 'bcrypt' algorithm for password hashing
instead of MD5 ('-B' option to 'htpasswd').
/!\ Existing passwords stored as MD5 hashes will still work. The use of the
new algorithm will only be enforced on a user when he changes his password
(or on new accounts when they are created).
- Replaced the unsafe "batch mode" ('-b' parameter) of 'htpasswd' calls
by '-i': instead of providing the passwords on the command-line (thereby
very briefly exposing their clear text), they are now securely read from
<stdin>.
- Moved password update functionality to a dedicated function (called
'set_ht_password()') to ensure uniformity of processing.
- More validation tests in ./user_edit.php. Removed hardcoded script name.
Cosmetics.
- Improve output of 'hs2static' script: transform TOClink into NavBar with
return link to Project Hirtius website Home Page. Added NavBar on ToC
page as well.
1.03 (09/04/22) [users]
---------------
- Fixed bug in ./user_edit.php: incorrect timestamp was used for 'modified'
field in INSERT and UPDATE queries.
- Integrated applicable comments from RMens' review of 'chhtpwd' v1.4:
* use escapeshellarg() instead of home-grown escaping regexp
* set appropriate mode and ownership on password file and dispense with
'sudo' around htpasswd2 (still needed to call 'chhtuser')
* each() soon to be deprecated, use foreach() constructs instead
Updated INSTALL and UPGRADE documents accordingly.
- To bring that page more in line with the rest of the application, merged
./user_post.php into ./user_edit.php (the modification history for both
files has been merged as well, leading to a renumbering of the remaining
file versions). The file called ./user_post.php has been removed from the
project. Got rid of the old '$selrow' variable. More validation tests.
Updated HelpSet and test procedure accordingly.
- In ./user_edit.php, granted access to own profile edition to 'Reader'-
level user accounts (except for 'userid' and 'level' fields, obviously).
Updated HelpSet and test procedure accordingly.
- In ./user_post.php, added a confirmation step when an attempt to rename a
userid is detected (message similar to that of 'delcon') and added an extra
check to make sure only Admin users could rename a userid. Updated HelpSet
and test procedure accordingly.
- In ./user_edit.php, restrict access to 'view' action to Admins and account
owner only. Cosmetic changes in error messages (also in ./user_post.php).
- Added sort order controls to the Users List page (./users.php). Currently
supported sort keys are User ID and Full User Name. Use global definition
for authentication level names. Updated HelpSet and test procedure
accordingly.
- Fixed bug in user edition workflow (in ./user_edit.php and ./user_post.php)
by adding missing calls to 'htmlspecialchars()' and missing escaping around
some query fields.
- On the Users List page (./users.php), adapted available actions list based
on the user auth level. For non-admin users, their own account is marked by
default, all other radio buttons are disabled. Cosmetics. Updated HelpSet
and test procedure accordingly.
- Added user ID validation tests in 'chhtuser' script, but those conform
to the restrictions listed in 'man htpasswd(1)' (as opposed to the stricter
limits imposed inside the Hirtius application). Updated test procedure
accordingly.
- Corrected escaping mechanism for quotes used inside user passwords (MySQL
and the shell have different escaping requirements). Updated test procedure
accordingly.
- Added missing quoting for some database fields during user update.
- Improved debugging in ./user_post.php.
- Restrict allowable characters in user IDs: initial letter, then zero or
more letters, digits, underscore or hyphen. Up to 12 characters in total.
Updated HelpSet and test procedure accordingly.
- Prevent deleting, disabling or demoting the last active, admin-capable
user account. Updated HelpSet and test procedure accordingly.
- Add proper quoting around all extrernal command parameters in
'./user_post.php' to prevent potential shell injection.
- Extended max. password length to 255 -- value now defined as global variable
in 'definitions.inc'. Added note on WebUI as to the min. and max. lengths
for passwords. Updated HelpSet accordingly.
- Enforce minimum password length (value configurable in 'definitions.inc').
Recommendation only when password is set/reset by an administrator.
Updated test procedure accordingly.
1.02 (08/10/21) [projects]
---------------
- Fixed as yet undiscovered impact of PHP 7: support for the '/e' modifier
has been removed from preg_replace(). Four functions were found to be
impacted in './report_functions.inc'.
- Improved 'hs2static' script in preparation for upcoming v1.02 release.
Replaced home-brew CLI options processing with Getopt::Long. Get Hirtius
version and date from global configuration file. Removed hardcoded path to
icons folder. Cosmetics.
- Fixed UTF-8 support in the body of emails sent by the 'card_reminder'
script. Updated HelpSet and 'INSTALL' document accordingly.
- Added formal test procedure to the 'docs/' folder.
- Update 'upload_exif' script to silently ignore any input file not
matching Hirtius Slide naming convention (such as thumbnail images
linked to the Tray gallery feature). Such match is now made in a case
insensitive manner. Also removed dead code.
- Removed default webstore path from template scripts configuration file.
'publish' and 'tray_gallery_gen' now check that webstore is specified as a
regular path, not an URL. Updated HelpSet accordingly.
- Fixed option name in 'slide_extract' error messages. Clarified on-line
help. Streamlined processing: when loading slide IDs from file, those
that are not found in the DB are now excluded from further processing;
also, the last section (download) is skipped if no slide could be
identified. New 'INXtag' query mode: allows the export of all Slide
objects linked below a given INXtree node. Added 'tll' parameter in new
'[INXtree]' section to 'hirtiusadmrc.tmpl' for tag parameter validation.
Updated HelpSet accordingly.
- Redesigned options processing in 'dd2dms' script to allow for combined
use of '-l' and '-L' parameters.
- Bug fix in 'chhtuser' script: error out if new user ID already exists.
Also, don't create temp file if target user is not found. Preserve mode
and ownership of target file.
- Improved 'card_reminder' script by providing a fall-back in case
'hostname --fqdn' fails.
- Fixed URL to 'project_edit.php' in tiddlers list in ./obj_selector.php.
- Fixed bug in 'obj_ref_edit.php': missing 'doc_id' and 'doc_type' hidden
fields prevented out-of-bounds check on article pages from working in
'edit' mode. Also added extra debugging messages.
- Fixed bug in InsertNewINXNode() where an undefined '$REMOTE_USER' would
leave 'created_by' and 'last_mod_by' empty after INXnode copy operation.
- Extended the DB sanity check procedure to include all 'created_by' and
'last_mod_by' fields in the hunt for empty values.
- "Report" link now also available from the Projects Edition page in 'view'
mode, as long as the 'Structure Container Node' has been selected.
Updated HelpSet accordingly.
- Added further validation tests to ./obj_inx_sort.php. Made the "Back
to..." link dynamic based on whether the user came from the "Project
Preview" or "Category Edition" page. Updated HelpSet accordingly.
- Solved 2 minor bugs in ./obj_att_edit.php: add GET-type parameters to
HTTP_REFERER when 'delcon' is accessed right after post ('insert',
'update', etc.) so "Cancel" button will lead where it should. Swapped
validation tests on target object (attachment move scenario) to avoid
double error messages when targetting non-object entities. Also improved
error handling on file uploads (with special focus on oversized files).
Cosmetics.
- Bug fix in Users List: also hide 'mailto:' link when user's email address
field is empty (which also keeps it out of the "email all" link).
- Added extra validation test on geographic coordinates on the "Advanced
Search Result" and "Slide Edition" pages to prevent that item from being
silently discarded when any field other than "degree" is filled.
- Minor bug fix in Advanced Search query page: removed the unused '$action'
variable from the interface declaration.
- Improved the Search mode NavBar to ease going back to the current mode
query page. Updated HelpSet accordingly.
- Custom edition box height also for Projects, Sequences, Alternate Names
and Titles.
- Order Sequences list by name.
- Nickname field is set to blank during 'clone' operations as its value
needs to be unique (./person_edit.php).
- Cosmetics: displayed Hirtius Project logo in Main Application Menu right
frame when no category has yet been selected.
- Bug fix in couple creation event update (in ./person_edit.php, 'update'
action): a subquery was needed inside the loop to avoid overwriting a loop
control variable.
- Cosmetics: display full individual name, colour-coded by sex, in
PersonView(), FamilyView() and in ./family_edit.php ('add' & 'edit' mode).
- Added new functions 'quotes2htmlent()' for smarter quoting of comment
strings and 'truncate4ttip()' to cap their length before using them as
'title=' properties in HTML tags. Max. tooltip length defined in new
global variable '$max_ttip_len'. Updated HelpSet accordingly.
- Added "comment marks" and comment-as-tooltip to the Books list, the
Articles list (on the Books edition page) and the Weblinks list.
Updated HelpSet accordingly.
- Appended 'subtitle' field (when present) to the Book title on the Books
list and Bibliographical Reference Selector window. Updated HelpSet
accordingly.
- Bug fix: 'UPDATE' query in ./weblink_edit.php would not allow reset of
'pub_year' field to blank.
- Fixed a comment formatting bug in ./renewal_edit.php ('view' mode).
- Allowed Writer-level accounts to delete library cards and renewal records
provided they are the card owner.
- Fixed a bug in ./card_edit.php and ./renewal_edit.php where a non-admin
user could view or update other users' library card information by
manipulating the page URL.
- Added new "Slides shot per year" report to ./admin.php page. Updated
HelpSet accordingly.
- Bug fix: CLI variable name for "base URL" parameter in 'tray_gallery_gen'
script.
- Added UTF-8 output support to 'slide_extract' script.
- Added UTF-8 input/output support (incl. on DB connection) to 'bulk_edit'
script.
- Replaced home-brew CLI options processing with Getopt::Long Perl module in
all applicable ancillary scripts. Improved debugging & error reporting in
most of the impacted scripts.
- Bug fix: input validation test on Slide ID (./slide_edit.php).
- Document way to get a second level of items inside ordered and unordered
lists with TiddlyWiki markup language (HelpSet update).
- Added new page that allows linking a chosen set of INXtree categories
to all (fully-fledged) objects returned by an Advanced Search Query
Result. These objects can then be marked individually on the Advanced Search
Result page to further filter them before processing. The bulk INXlink
record creation process has been designed to handle gracefully the case
where duplicate entries would have been created. Updated HelpSet accordingly.
- Fixed bug in 'card_reminder' script: removed extraneous text from the
'From:' email header field which caused MIME::Lite to fail parsing it.
- Global bug fix: when mysqli->query() raises an exception, the function's
return value is *NOT* assigned => testing '$result' afterward is misleading.
To work around this behaviour, we always initialize '$result' to false first.
- Bug fixes in ./tray_edit.php: prevent renaming a tray (tray ID change) into
an already existing one. Add warning message on 'slides_per_tray' change.
- Bug fixes: typos in ./slides_p.php and elsewhere, syntax error in
'latexify_DIA()'.
- Optimised query in getTiddlerTagList() (in ./functions.inc).
- Bug fix in ./ind_selector.php and ./fam_selector.php: 'link' action queries
are now wrapped in a transaction.
- Bug fix in ListRelDatInfo() (./functions.inc) where the 'AutoEvent' marker
would be missing for all "newer" events.
- Bug fix in ./evt_selector.php: prevent creating "Relative Dating" link
between an event and itself or with an already linked event.
- Refactoring inside ./project_edit.php: moved default tiddlers creation
to a function.
- Clarify columns meaning in ./user_edit.php. Cosmetics.
- Proper handling of DB contents charset during gallery index page generation
(in './scripts/tray_gallery_gen'). Slide IDs in gallery now link back to
Hirtius. Updated HelpSet and INSTALL document accordingly.
- In the "Tray List by ID" (./trays_p.php), replaced 'is digital' column
with flags ('has gallery', 'is digital', 'hex numbering'). Key at report
bottom.
- Improved logic in getVarcharColLen().
- Bug fix in ./functions.inc: improved error handling in get_authlevel(),
getSortedCatList(), getSortedRepStruct().
- Bug fix in ./users.php and ./user_edit.php: added error handling around
all queries.
- Bug fix in ./renewal_edit.php: added error handling around card ID
validation ('add' mode).
- Bug fix in ./card_edit.php: added error handling around user account
validation ('add' mode).
- Added support for PHP7 by migrating DB driver to MySQLi. Adapted error
handling code accordingly. Added support for Apache 2.4.33 and above by
updating network filtering rules in its template configuration files.
Adapted 'INSTALL' document to reflect support for Leap 15.1, Apache 2.4.33
and PHP7.
- Bug fix in ./weblink_edit.php: update query ignored 'is_alive' field.
- Bug fix: adding first 'book' or 'source' record would fail if no 'library'
or 'source type' had been created yet. Added validation check to give
clearer error message to user when that happens.
- Bug fix: average attachment size computation failed on empty DB (in
./admin.php, "Get Statistics" mode).
- Updated DB creation script to schema v46 (about time!).
- Fixed anchor typo in 'Helper Scripts' help page.
- Improved 'exifmv' script to allow the reprocessing of image files (e.g.
in order to add a time component later on). Updated HelpSet accordingly.
- Cosmetics in ./search.php: dynamic height for the entity list selection
control with a defined maximum. Updated HelpSet accordingly.
- Bug fix in ./search.php: an incorrect exit condition caused empty lines
to be displayed in Timeline Search results (Latest Updates mode) when the
number of hits was less then the requested maximum.
- Bugfix in ./tray_edit.php: missing 'GROUP BY' clause in 'edit' mode
SELECT query caused a row full of NULL values to be returned when a
non-existant 'tray_id' was requested.
- Minor bugfix in several edition pages: misleading error message when
requested ID doesn't exist. Cosmetics.
- Bugfix in ./slide_edit.php: the empty string is not a valid input for a
datetime column. Use '0000-00-00' instead.
- Cosmetics in ./ref_selector: top alignment also for articles.
- Added a "New" link on the Sequences edition page in 'Edit' mode to allow
creation of new Events that would be linked to the current sequence
immediately. Updated the HelpSet accordingly.
- Fixed bug where changing a Tray ID post creation would lead to DB
corruption if it already contained Slides. Added restrictions on changing
'slides_per_tray' and 'hex_numbering' post-creation. Added sanity check
on out-of-bounds in-tray slot addresses. Updated HelpSet accordingly.
- Minor HTML syntax fix in ./index_inx.php.
- Added sort order selection bar and navigation bar at the top of the
Trays List page.
- All helper scripts that share common configuration parameters with the
Hirtius application now use a per-user central configuration file
(~/.hirtiusadmrc) where default values for their parameters can be
stored.
- New script 'tray_gallery_gen' provides basic "Photo Gallery" feature for
Hirtius on-disk tray structures. This new script can be called by 'publish'
for a fully-automated workflow. These galleries, when present, are linked
from the Tray List, Tray Edition page and Slide Edition page (view mode
only). The individual Slides thumbnails are linked from the Slide View page
(also when embedded in the object viewer on the Application Home page).
HelpSet updated accordingly.
- Cosmetic improvements to Project Preview and INXLink Reorder pages
(display linked project if page was reached from there, conditional page
title). Added navigation links (back to Preview, back to Project Report).
HelpSet updated accordingly.
- Start of Validity Period now defaults to today on the Card Edition and
Renewal Edition pages. HelpSet updated accordingly.
- Fixed HTML error in ListLCRenewals().
- Fixed typo ("privileges").
- In the "Orphaned Objects" query (Admin page), ignore Tiddlers that are
tagged 'UI'. HelpSet updated accordingly.
- Added ability to sort objects inside the category they are linked to (in
order to control how they will appear in a Project Report). Added new
./obj_inx_sort.php to handle this. Added new column 'sortkey' to table
'inxlink'. DB schema bumped to 46. Updated HelpSet accordingly.
- Cosmetic improvements to admin page: added row number column to country and
location breakdown reports.
- Added PDF-specific fields to LaTeX report header (in order to get table
of contents-based navigation inside the viewer).
- Fixed a bug in wiki2latex() where URLs would get mistaken for italics
markers. The approach taken was to disguise the URL using LaTeX
character names for the double slash (maintains ability to cut-and-paste
URLs from the generated PDF document).
Fixed the same bug using a similar technique in wiki2html().
- Provided internationalised text for the extra message appended to the
Project Report when the project record has been marked as "closed".
Updated HelpSet accordingly.
- Added ability to mark projects as closed. Closed projects are hidden
from the Project List by default (new user preference to handle this).
Default display choice can be overridden on Project List page. Project
record and related TiddlyWiki interface are R/O when closed. R/O TiddlyWiki
interface identified by a grey banner. New control on Advanced Search page
enables filtering results by Project state. Greyed-out font style for
closed Projects and related Tiddlers in lists and search results.
Bumped DB schema to 45. Updated HelpSet accordingly.
- Fixed a bug where disabled user accounts would be reported as active
in 'view' mode.
- Added 'Tags:' section to latexify_TID(). All tags for each Tiddler linked
to the project structure will now appear in the Project Report as a
comma-separated list.
- Fixed multiple occurrences of a bug where a Tiddler's title or tags
containing HTML-special characters would not display properly.
- Generalised the use of syslog for debugging messages and error reporting
for all PHP code handling Tiddler creation, update and deletion events
"behind" the JavaScript Wiki front-end.
- Fixed a bug where deleting a Tiddler whose name contained double quotes
or adding/removing see-also entries from it would fail.
- Fixed a bug: added missing calls to htmlspecialchars() to most functions
in ./wiki_functions.inc (double quotes and angle brackets are now
properly supported in Tiddler titles and tags, for instance).
- Wrapped Tiddler save operation in a SQL transaction.
- Replaced calls to addslashes() by calls to quote_smart() in ./wiki.php.
- Added ability to limit the number of past versions kept for each Tiddler
through a change in the meaning of $tiddly_pref_vers configuration
variable. HelpSet updated accordingly.
- Added direct switch between 'edit' and 'view' mode on the User Edition
page. Updated HelpSet accordingly.
- Solved a bug in 'hs2static' script where 'cp -R' would create a nested
directory by the same name if the target folder already existed. Used
'rsync -av' instead. Updated version string. Clarified license.
- Updated INXtree report page entry in the HelpSet to document the new
'Switch to edit mode' link.
1.01 (01/08/17) [languages]
---------------
- Added a "Switch to edit mode" link on the Project Structure preview
report page (./inxtree_p.php) to make navigation easier between edition
and preview mode.
- Improved 'upload_exif' script performance by inserting all property/value
pairs from a given slide in a single query. Kept 'slow' mode as a command-
line option parameter ('-S'). Cosmetics.
- On the DB statistics page, added missing count of the number of relative
dating entries for events.
- Documented adding support for an extra contents language.
- Fixed a bug in latexify_FAM() function where a call to html2latex_line
was missing on the partners full name.
- Fixed a bug in latexify_FAM() function where $etyp_list variable was set
but never used.
- Improved 'Families' LaTeX reporting function to also include a Children
section where appropriate.
- Improved 'Individuals' LaTeX reporting function to also include Lineage,
Alternate Names and Titles sections where present. Added missing mention
of the Individual's gender.
- Output language for LaTeX project report can now be specified per-project.
All translatable strings have been grouped in a dedicated configuration
file (./trans_strings.inc). Project contents language can be used as
search criteria on the Tiddler advanced search page. Bumped DB schema to
44. Updated HelpSet accordingly.
- Workaround found for handling of ligatures in the mini-quote bug fix
implementation described below.
- Fixed a bug in Basic Search where the mini-quote would not detect the
query term if its occurrence inside the text contained accents (and the
query term not). The solution is not 100% perfect, though, as the presence
of ligatures in the original text can still shift the bold markup in the
mini-quote (due to the fact that a single character expands into two).
- Fixed a cosmetic bug where debug messages would interfere with the regular
page rendering if they contained embedded HTML comments.
- Fixed a syntax error in the LaTeX code generated by markup_tag_translate()
where the input text contained tags that spanned different paragraphs.
- Improved TiddlerView() output by converting wiki format to HTML (used on
the application home page, when viewing Tiddlers inside the right frame).
Added support for more WikiCode tags (whether converted to LaTeX or HTML).
- For all full-fledged objects that support cloning (slides, sources, events,
individuals), added 'clone' and 'del' action links to their 'view' page, to
make it easier to reach this function from a search result. In the case of
'family' objects, only added 'del' for the sake of uniformity. Updated
HelpSet accordingly.
- Added a 'cloned_from' column to all full-fledged object tables that support
cloning (slides, sources, events, individuals). Bumped DB schema version to
43. Added reference to object source of clone on edition and view pages
when set. Added controls on Advanced Search page to filter on the value of
'cloned_from'. Added 'cloned_from' as selectable column choice for search
result. Updated HelpSet accordingly.
- Fixed a bug in ./person_edit.php ('add' mode): removed the useless and
broken 'Edit' action links next to Birth and Death Events.
- Provided a generic UPGRADE document.
- Converted 2 global definitions into user preferences: the number of records
displayed per page in lists, and the amount of context information provided
by the so-called "mini quotes" on the Basic Search result page. Updated
HelpSet accordingly.
- Cosmetics: used right alignment for all purely numeric input fields.
- Re-engineered the way user's preferences are communicated to the application.
Added preferences for decimal and thousands separators. Bumped DB schema to
42. Formatted all numbers displayed based on user's preference (where
applicable). Updated HelpSet accordingly.
- Fixed a bug in ./user_edit.php where the values of $userid and $level
would be lost when called by a user that only had 'writer' access.
1.0 (09/03/17) [help]
--------------
- Fixed bugs in 'hs2static' script: permission problem after "buttons" copy,
regexp wouldn't match tag at beginning of line. Added message to the effect
that the generated HTML was a static export of the HelpSet (including the
export date).
- Added URL to official project repository in page footer. Updated HelpSet
accordingly.
- Added GNU Affero GPL v3 license text
- Added license notice to file headers where appropriate. Updated HelpSet
accordingly.
- Fixed EOL handling in wikilist_translate().
- Added support for 'regular quotes' in wiki2latex() (i.e. WikiCode '<<<').
- Fixed a bug in wikilist_translate() where the closing tag would be left out
when the last item in the list also marked the end of the text.
- Improved French font encoding in LaTeX reports.
- Added the 'caron' to the list of accents to be removed (in remove_accent()).
- Added target document language choice to Project Report screen. Updated
HelpSet accordingly.
- Fixed bug in markup_tag_translate() where it didn't detect the difference
between 'A -- B' (long hyphen) and '--C--' (wikicode for strikethrough).
- Renamed htmltag_translate() to markup_tag_translate() to better reflect
its role.
- Provided a template Apache vhost configuration file for Hirtius
(./docs/hirtius_vh.conf). Updated INSTALL document accordingly.
- Renamed "icons" folder to "buttons" to avoid clash with a similarly named
folder in the Apache default setup when Hirtius is installed as a virtual
Apache host. Replaced all occurrences of that folder name in the code by
a variable ($icnsfldr). Updated HelpSet accordingly.
- Renamed application from "Web Herodote" to "Project Hirtius". Adapted
default configuration files, comments in source files and scripts,
references to the project in the HelpSet and related diagrams. Removed
hardcoded project name from source files whenever possible.
- Created new script to export a fully static version of the HelpSet (for the
project website): ./help/hs2static. Improved fnescape() function in
upload_exif script.
- Added empty folder script/ to installation image.
- Removed obsolete (and needless) call to define_syslog_variables() from
tiddly_save_entry().
- Fixed a bug in the interface for ./redirect.php ($reqobj can come as
either a POST or a GET).
- Fixed a bug in ListSA() and BuildSAlist() functions that triggered when
both members of the link had the same obj_id (but different obj_types).
- Moved content of .htaccess to a new Apache config file (herodote.conf)
in the docs/ folder. Removed .htaccess. Updated INSTALL procedure
accordingly.
- Prepared a SQL script to help populate system tables ('altname_types',
'country_codes', 'event_types', 'source_types' and 'users' [with 'admin'
account only for the last one) with generic data. All generic records have
been assigned to the 'admin' account. INSTALL document updated accordingly.
- Wrapped the creation of new tags in the INXtree inside a transaction with
gap lock to better handle potential collisions (impacted actions 'insert',
'copy' and 'move').
- Disabled navigation through page header icons for EVT, FAM, IND, INX, REF
and SRC selectors.
- Stripped HTML tags from INXtree nodes, books, articles, weblinks and trays
comment field before displaying them as tooltips on mouse hover in lists
(tags are not supported in URL "title" attribute values).
- Fixed a bug where Greek characters stored as raw UTF-8 entities in Herodote
would cause a LaTeX report including them not to compile any more. Updated
relevant HelpSet pages to clarify the situation.
- Fixed a bug where HTML styles in Events description would not be properly
transcoded to LaTeX in the object's event list.
- Added ability to handle weblinks pointing to on-line databases, by adding
a checkbox to identify them on the weblinks edition page and extra fields
in the 'bibref' table to store the query part of the URL (these fields are
only visible when the weblink has been identified as a query). Bumped DB
schema to 41. Updated all relevant HelpSet pages.
- Made sure the global DB timestamp was updated on every single change,
including those like 'unlink' actions and user accounts modifications.
- Improved error checking and reporting in ./user_post.php.
- Provided the missing 'chhtuser' script. Made its location configurable in
./definitions.inc. Updated the relevant documentation (INSTALL, scripts
README file and HelpSet page).
- Added further validation checks to Herodote-style date fields (use 'date
end' only if event type has duration, ensure date end >= date start,
ensure death date >= birth date).
- Fixed a bug in the way Herodote-style key values were computed, that could
cause BC date intervals to be rejected as inverted on the advanced search
page, or BC events to be sorted incorrectly. Replaced the key computation
algo with Julian Day Number. Adapted sanity check for Herodote-style dates in
the future accordingly. Provided an ad-hoc script (date_keys_db_update.php)
to re-compute all date keys stored in the DB based on the new algo.
- Added confirmation step and warning before user account deletion. Updated
HelpSet accordingly.
- Added an INXtree structural integrity test to the sanity check in
./admin.php. Updated HelpSet accordingly.
- Improved error message in case rollback fails inside a transaction
(suggest to run sanity check). Expanded "ADM" help page along the same
lines.
- Fix update query in ./slide_edit.php to support MariaDB v10 (stricter
check on enum values).
- Reset 'is_anchor' when cloning a slide (./slide_edit.php).
- Got rid of PHP warning "Call-time pass-by-reference has been deprecated in
..." by modifying call to preg_match() in getVarcharColLen() and
reformat_date() (./functions.inc).
- Added "Application map" to the top-level help page.
- Fixed a bug where library cards / renewal records were not removed when the
linked library was deleted.
- Fixed a bug where library cards / renewal records were not removed when the
owner user account was deleted.
- Improved user creation procedure by adding some error reporting on the DB
query.
- Fixed a bug: a spelling mistake prevented 'sources.subj_date' column from
being kept in the user's prefs.
- Cosmetic: modified column title on individual search result page to make
it clear it refers to the individual's parent family ID.
- Fixed a bug: a spelling mistake prevented 'tiddler.is_locked' column from
being displayed.
- Code refactoring: in ./as_result.php and ./search.php, replaced locally
built '$viewlink' content with calls to getShortObjNameByID().
- Fixed a bug in the family search result page, where the children count
could be overestimated when alternate names were attached to one of the
parents (bug in the SQL query).
- Cosmetic change in individual and family search result: location and
country displayed in bold to keep in line with the rest of the application.
- Fixed a bug: in ./as_result.php (family search result), all name fields
were evaluated against 'last_name'.
- Fixed a bug where the "start date between" validation test (event advanced
search) would return false positives when B.C. (= negative) dates were
given. Also impacted "end date", "couple creation", "birth date" and
"death date") => used function check_date_format() instead.
- Fixed a bug: when an individual was removed that had alternate names or
titles, only those lesser objects were removed but not any metadata that
they might themselves possess (=> moved alt. name and title deletion to a
single function).
- Fixed a bug: when deleting a tray, EXIF data linked to included slides
was not removed (=> moved slide deletion to a function called from both
./slide_edit.php and ./tray_edit.php).
- Fixed a bug: when deleting an individual that was a partner in a family,
that family has to be deleted as well (=> moved family deletion to a
function).
- Fixed a bug where the children were not unlinked from the family they were
born into when it was deleted.
- Added the following sanity checks:
* spot missing MIME types in attachment records
* spot missing 'owner_obj_id' and 'owner_obj_type' for auto-events
* spot 'individual' records where 'death_event_id' is unset although
they are flagged as dead (is_alive == "no")
* detect dangling bibref, srcref, attachments from lesser objects
(alt. names, titles, sequences, projects)
* spot multiple use of the same INXtree node by different projects as
'struct_container_node'
- Fixed bug where attachment would loose its MIME type when edited or moved
if that MIME type (autodetected on upload) was outside the list of
officially supported types.
- Fixed bug where attachment move was refused if target was a lesser object.
- Fixed bug in sanity check where a false positive was issued when attachments
were linked to lesser objects (alt. names, titles, sequences, projects).
- Added missing warning on attachment presence in 'delcon' action for so-called
"lesser objects" (alt. names, titles, sequences, projects).
- Fixed bug where 'owner_obj_id' and 'owner_obj_type' columns were left unset
in the death event record when the related individual was created as alive
and then deceased later on.
- Improved advanced search on 'individual' objects: added checkbox to control
whether or not to include alternate names in the full name search.
- Fixed bug where past tiddler versions were not removed when an individual
tiddler was deleted.
- Code refactoring: moved JavaScript focus handling to a function.
- Cosmetic improvement for ./project_edit.php in 'view' mode.
- Fixed bug: do not display 'Edit' link for death event if person is alive
(death event does not exist in this case).
- Improved view mode display in ./event_types.php.
- Fixed bug: wrong parameter in call to SAinject() from ./family_edit.php.
- Fixed bug: avoid passing parameters as GET between ./user_edit.php and
./user_post.php.
- Added focus handling to tray 'clone' action.
- Added comment display to tray index report (./slides_p.php).
- Fixed a bug where an attachement move failed if the target objref was not
properly capitalized (./obj_att_edit.php).
- Improved navigation ("return to list" link from article, book, library,
tray, weblink and family 'del' action; added "country codes" link to admin
page; added "back to ind. edition screen" and "add new ind." links to
./ind_fam_edit.php).
- Fixed bug where '$family_id' was not properly handled in the case of a clone
operation on an 'IND' object (./person_edit.php).
- In preparation for upgrade to PHP 5.4, got rid of requirement for
"register_globals" to be "On". Used this opportunity to declare all
interface variables in each PHP file. Added validation where one was
needed. Updated installation document accordingly.
- Added low-level LaTeX parameters for more control over the final aspect
of the slide index report. Added optional abstract to same, with some
statistical information (timestamp of creation, timestamp of latest
database modification, etc.). Updated HelpSet accordingly.
- Added media breakdown for 'slides' table to admin page.
- Improved the report generation Makefile and accompanying doc. Updated
HelpSet accordingly.
- Added userid to generated file names for all LaTeX reports (to further
reduce risk of collision and make things easier in multi-user env.).
- Added script "dd2dms". Updated HelpSet and README file accordingly.
- Refreshed contents of 'country_codes' tables based on published ISO 3166
data. Added accents/diacritics in country names where needed. No change in
the code.
- On the Object-Attachment edition page (./obj_att_edit.php), added a display
of the total attachments size for the current object at bottom of list, as
well as the number of files listed.
- Fixed a bug on the slide edition page, where the geographical coordinate
fields, once set, could not be reset to blank again.
- Modified 'mkcdtray', 'publish' and 'mvtray' scripts to support digitized
analog slides trays. Broadened tray naming convention to include 'A', 'B'
and 'P'. Changed default 'holds' value to 120. Added parameter for decimal
numbering. Uppercase tray name. Updated help accordingly.
- Added 'Pict' and 'EXIF' action links to the Tray Edition page in 'view' mode
(digital trays only). Updated HelpSet accordingly.
- Added a new column 'hex_numbering' to 'trays' table. This allows for
hex. numbering selection irrespective of whether the contents is flagged
as digital, which in turn will make it easier to handle scanned 36mm slides
or still prints. Bumped DB schema version to 40. Documentation and
HelpSet updated accordingly.
- Added validation check on max. INXtree depth during node creation, copy or
move operation.
- Added validation check during slide creation and update: verifies the in-tray
address (slot number) is within range for the selected tray. Reorganised
tray-related validation checks to provide explicit error messages in all
cases.
- Added validation check on trayID: its length must match $tidlen.
- Fixed bug in tray_edit.php ('view' mode) where $hexnumbering was used but
never initialised.
- Defined $tidlen (tray ID length) as a configuration variable: makes it
possible to adapt it to one's own tray naming convention. HelpSet updated
accordingly.
- Defined $tll (tag level length) as a configuration variable: makes it
possible to control the INXtree geometry at installation time. HelpSet
updated accordingly.
- Fixed bug in source 'delete' action: added missing deletion section for
srcref entries quoted by it.
- Improved source deletion confirmation dialog: warn about existing srcref
entries quoting it.
- In the in-frame Tiddler object viewer, added a link to the TiddlyWiki
interface for that tiddler.
- Added warning to fully-fledged object deletion confirmation dialog in case
attached files are present (including Tiddlers).
- Improved error reporting in the Advanced Search page result.
- Added a new table to store the EXIF data linked with the slide record they
belong to. Bumped DB schema version to 39. Added an EXIF data viewer page,
linked from the slide edition page and the basic search result. Added ability
to search the EXIF data from both basic and advanced search pages (not from
timeline searches). Created a new script ('exif_upload') to upload the EXIF
data into the database. Updated the documentation and help set accordingly.
- Added a visual clue in the Trays list to the presence of a comment in each
Tray record.
- Fixed a bug in ./slide_edit.php: removed tray name display from 'clone' mode.
- Fixed a bug in GetObjIDbyName() where it died on an invalid obj_type.
- Fixed a bug where duplicate entries could be created in the 'see_also' table:
added a unique index through all columns of that table, bumped DB schema
version to 38, modified SAinject() function to choose in a consistent manner
which of source or dest will be "obj1" in 'see_also'. Took the opportunity
to re-engineer code of SAinject() to make it clearer. Included a new routine
in the sanity check to test for duplicates (both identical and mirror).
Adapted the help page accordingly.
- Implemented the "Sanity Check" feature in ./admin.php. Reorganized the code
in this module (moved recurrent code to functions, created a separate
function file). Adapted the related help page accordingly.
- Fixed Google Maps geolocation interface (could be further improved by using
the Google Maps API v3, but this is left for later).
- Completed HelpSet content.
- Improved the "bulk_edit" and "slide_extract" scripts (more flexibility in
DB connection parameters specification).
- Stripped all "heron.net"-specific information from the distributed
./definitions.inc file.
- The admin email address was still hardcoded in two functions in
./functions.inc. The definition has now been moved to ./definitions.inc,
where it belongs.
- Disabled the DB 'admin' link in the HelpSet Navigator window. Added a
"help-on-help" link in same.
- On the Advanced Search Result page (./as_result.php), improved the 'articles'
query to match book-specific fields on containing book except for the
'subtitle' field. Rigged the query to return empty in this case.
Also improved the "Change columns" link behaviour: now redirects to the
relevant page section, and the link is now hidden when searching for books or
articles, as there is no choice to make in this case.
- In ./obj_att_edit.php, improved the logic when checking for max. attachment
size by also querying the PHP configuration and taking the minimum of both
values. Also added this information on the statistics page (./admin.php).
- On the advanced search page, for all supported object types save BWK,
replaced the 'category' control from simple drop-down select to multi-select,
and added a linked "AND/OR" control (for increased query flexibility).
- On the advanced search page, for all supported object types, replaced the
'created_by' and 'last_mod_by' controls from simple drop-down selects to
multi-select (for increased query flexibility).
- Fixed bug in the handling of multi-word tags on the Tiddlers advanced
search page.
- In ./adv_search.php, for all fully-fledged objects, made recursive category
search the default.
- In ./search.php, added flexibility to the way the starting and ending dates
were handled in "date range" mode. You can now meaningfully leave either one
of them empty. Added non-object entities, entity filter and search parameter
reminder to both timeline searches. Added 'Refresh' button to "date range"
mode. Code cleanup. Cosmetics (owner object ref. for bibrefs, srcrefs and
tiddlers, result table layout).
- In ./obj_att_edit.php, added check to ensure that the target of an attached
file move operation is a fully-fledged object, i.e. an object type that
actually supports attachments.
- Added view action link and ID field display to ./obj_ref_edit.php and
./obj_src_edit.php.
- Workflow now preserved between ./cards.php, ./card_edit.php and
./renewal_edit.php (when you start listing the cards of a specific user, you
remain focussed on that user).
- Added Javascript focus handling to ./slide_edit.php in 'clone' mode too.
- In ./library_edit.php and ./card_edit.php, added the usual links to the
update result page.
- Report structure Browse link now shown on project edition page in view mode
too.
- Added change tracking fields to 'source_types' table. Adapted all management
screens accordingly. Bumped DB schema to 37.
- In ./source_types.php, ./name_types.php and event_types.php, added display
of 'ID' field in 'view' and 'edit' modes.
- In ./tray_edit.php, merged the 'content' mode with 'view'. Cosmetics.
- Updated "StartHere" tiddler default contents.
- Added missing 'edit' link for couple creation event on Family edition page.
- Improved handling of journal entries in the embedded TiddlyWiki: switched
to ISO date format as title ("YYYY/MM/DD"), in order to get them correctly
sorted in lists; added a 'JOURNAL' auto-tag to each newly created journal
entry to make it easier to identify them.
- Wiki link now shown on project edition page in edit mode too.
- Added highlighting of matched search pattern in help viewer.
- Implemented search feature in help browser.
- Fixed missed occurrences for "timeline" search in the advanced search
navigation bar.
- Added a project 'preview' report (accessible from both ./project_p.php and
./inxtree.php): simple hierarchical structure with all objects linked at
each level.
- Improved wording of deletion confirmation request message for all supported
object types.
- For DIA and SRC objects, added URLify() support to the "translation"
field.
- Updated the URLify() function and titles and alt. names edition pages to
support quoting TIT and NAM lesser objects from comments (as in '{N238}').
- Added the help browser, help documentation repository and context-sensitive
help link in the header of every existing screen.
0.22b (01/09/12) [tiddlywiki]
----------------
- Fixed a bug where the predefined part of AE description field was not
always properly escaped.
- Fixed a bug where the couple creation event description was not updated
when one of the couple partners' name was changed.
- Added UI elements to the TiddlyWiki interface for access to past tiddler
versions (new "history" menu in view mode). Past tiddler versions are
always read-only, but can be used as source of a copy-paste operation.
- Fixed a minor bug in the library cards renewal records handling, where the
reformatted expiration dates were used for validation but not for DB
update.
- Fixed a bug in family_edit.php where the description field for the couple
creation event wasn't properly escaped.
- Improved edition of parent-child relationship: now possible to link
parent family from child lineage edition screen, and to create a new
child record from the family children edition page. The parent family is
now also displayed in the child family edition screen (and can be unlinked
from there).
- Improved navigation from family edition result page.
- Updated DB layout diagram version to bring it in line with schema 36. No
actual change to the diagram.
- Added a "formatter" to the TiddlyWiki code, to URLify object references of
the form "{D1234}".
- Added a multi-select filter on entity types (objects, lesser objects and
non-objects) on the basic search form.
- Improved the "bibref" and "srcref" screen in "add" mode by having the
selected book/article/weblink/source displayed there as well (was already
the case in "edit" mode).
- Converted our own database to full UTF-8. Adapted INSTALL document to set
environment for UTF-8 by default. Adapted code for multi-byte characters
support. Bumped DB schema version to 36.
- Improved the "dump_layout" script so that it doesn't include initial
auto-increment values in the generated file.
- New script called "slide_extract" : take local copy of slides to accompany
a project report.
- The slide reports (slide index, slide book) have been improved or completed
based on the work done on project reporting. The slide index and slide book
now offer an option to create chapter headers per letter when sorting on
location, the output paper size can be selected, etc.
- All functions that support reporting have been moved to a separate .inc file.
- Added project reporting capabilities. The idea is to use a project (a bunch
of tiddlers) and a structure defined in the INXtree to serve as draft or
outline for an future article or book through the generation of a LaTeX
report. A new field has been added to the 'projects' table to store the top
of the INXtree structure (DB schema version bumped to 35). The project list
and project edition pages have been modified to accomodate the new field.
The 'move' and 'del' actions on INXtree entries have been adapted to update
the new field accordingly. The new feature is available from the 'Report'
action in the projects list (the link is only active when a report structure
has been linked).
- Added URLification for 'reading' field (slides, sources) when in 'raw' mode.
- Moved remaining array building routines to functions in ./adv_search.php.
- Implemented missing 'clone' action in ./slide_edit.php (the 'clone' link
in ./slides.php was already present). Made a cosmetic improvement to the
'clone' implementation in ./source_edit.php.
- Improved validation on input fields (not empty for required fields, numeric
and larger than zero for slide_id and slides_per_tray).
- Set "NOT NULL" on a few extra fields in the DB (were missed in the original
design): slides.descript_1, trays.slides_per_tray, trays.last_mod_by,
users.fullname, users.mod_by. Bumped DB schema version to 34.
- Improved 'exifmv' script: added filename and mode normalisation (lowercase
filenames, remove executable flag).
- Added a visual marker on all edition pages to identify required fields
(the usual red asterisk).
- Fixed a bug in ./inxtree.php that prevented the 'copy' and 'merge' actions
to work when called from the header row.
- Added TLL (tag level length) computation to the admin page. Actual TLL
value is harcoded for now.
- Minor improvements within inx_edit: moved error handling outside of
get_next_leaf() to ease its integration in transactions (needed for the
new 'copy' support); moved the call to get_next_leaf() closer to the
actual INSERT statement (from 'add' to 'insert' section), to minimize the
risk of "mid-air collision" with another user adding another leaf in the
same node at the same time.
- Added a 'copy' action link to the INXtree management screen. Moved the
'view' link to an hyperlink on the node name to save space (used this
opportunity to also add the 'title' feature to the view link).
- Added systematic verification on date ranges on the advanced search page
(./as_result.php): an error is issued if D1 > D2.
- Added a new search modality called "Timeline". From this heading, two
options are available: latest updates (same functionalities as before)
and "date range" (new feature: any object or lesser object created or
modified during that time period).
- Added tiddler object support to the "change columns" user profile edition
page.
- Added column 'col_list_TID' to 'users' table. Bumbed DB schema version
to 33.
- Added advanced search feature on tiddler objects.
- Fixed a bug in ./obj_selector.php: the families navbar was missing the
'curtag' and 'objtype' parameters.
- Got rid of as many hardcoded object types as possible in ./obj_selector.php.
- Added families and tiddlers icons to print_selector_header() in
./functions.inc (the logic for families support was already present in
./obj_selector.php, but the icon was missing in the header menu).
- Added tiddler object support to ./obj_selector.php.
- Added tiddler object support to the admin page.
- Added attachments support to the TiddlyWiki interface.
- Modified the implementation of the attachment handling mechanism. Instead
of having the edition commands right on the object edition page, they are
now on a separate page that lists all attachments for that object (same
behaviour as for inxlinks, bibrefs, srcrefs, etc.). To emphasize this, I
renamed the file from "attachment.php" to "obj_att_edit.php" (that same
file can still be called from "files.php"). This made it easier to interface
from the embedded TiddlyWiki.
- Fixed two bugs (present in the original PHPTiddlyWiki) in the way tiddler
renaming was handled (new_title was not sent to PHP code, tiddler overwrite
had to be prevented).
- Added "see also" display and edition fields to the TiddlyWiki interface.
- Added bibref and srcref support to the TiddlyWiki interface.
- Improved the sort algorithm for the categories list (as offered on the
advanced search page).
- Added "Categories" section in tiddlers display (./tiddly_head.php), with
an "Edit" link when in edit mode.
- In ./tiddly_head.php, reformatted the CSS and template variables to make
them more readable. Added 'obj_id' display to the tiddler subtitle.
- Updated the project creation routine (./project_edit.php, section 'insert')
and tiddly_save_entry() function (./wiki_functions.inc) to take the new
'is_infra' column into account.
- Added column 'is_infra' to 'tiddlers' and 'tiddler_versions' tables (goal
is to help filter out non-content tiddlers from searches and selection lists.
Bumped DB schema version to 32.
- Replaced french auto-text for couple creation event, to avoid charset issue.
- Fixed bug in 'individual' insert query: the "see-also" injection didn't
work.
- Improved navigation in ./tray_edit.php.
- Made projects into lesser objects ('PRJ', 'J').
- Modified the Wiki code so that it would inherit the default SiteTitle and
SiteSubtitle values from the Herodote project 'name' and 'short_desc'
fields.
- Fixed the handling of the creator / modifier information in the Wiki code.
- Added multi-project support to the Wiki code.
- Integrated the latest version of "PHPTiddlyWiki" in Herodote, first
without adding any new functionalities to it. We can now create and edit
tiddlers.
- Implemented the projects list and edition pages. Linked it from the icon
in the header.
- Moved the Trays management link from an icon in the header to an action
link at the bottom of the Slides page (so as to free that icon for
projects).
- Created the 'projects', 'tiddlers' and 'tiddler_versions' tables. Bumped
DB schema version to 31.
0.21b (13/05/11) [families]
----------------
- Improved the event selector by adding a navbar that offers a pagination
mechanism and a choice between 3 sort keys (similar to the one already
present on the main event list screen).
- Improved ListAllQuotes() function query and output : arranged for the
"quoted by" list to be sorted and "uniqued", and provided a per-object
quote count in addition to the overall total.
- Added support for "#include" directive in 'reading' and 'translation'
fields (currently for source objects only -- could be extended to slides).
Avoid the duplication of information (e.g. an inscription that is both a
slide and a source object).
- Improved the "mvtray" script: it now handles the entire process of tray
renaming (no extra command is needed).
- Created a new script called 'card_reminder' to warn users about their
library cards expiration dates. Updated the INSTALLATION and scripts
README documents to match.
- Added pages to manage library cards and their validity periods /
renewals (reachable from both the libraries page and the user profile
page). Added lib. cards and renewals information on the admin page.
- Created new tables 'lib_cards' and 'lc_renewals'. Bumped DB schema to 30.
- Added validation check on column list length in ./user_post.php.
- Added validation check on all numeric fields in advanced search mode
(obj_id, published between, nchildren).
- Added advanced search feature on families (including user-specific
column selection).
- Added column 'col_list_FAM' to the 'users' table. Bumped DB schema to 29.
- Colorisation of children records by sex on family edition page.
- On the advanced search page, added ability to filter individuals on
whether they belong to a known family (i.e. whether 'family_id' is set
or not).
- Improved navigation on "change columns" page (./user_edit.php).
- Added auto-event marker in lists and search results.
- Restricted the edition of "event type" in the case of auto-events. For
birth and death events, no change allowed. For unions and marriages,
change is allowed only within these two.
- Fixed bug in common query on both books AND articles (./as_result.php),
where only articles would be returned.
- Added columns 'is_auto', 'owner_obj' to 'events' query result. Added
ability to filter 'events' on 'is_auto' flag.
- Added advanced search feature on individuals (including user-specific
column selection).
- Added support for visually marking an Herodote instance as a test / dev.
environment.
- Fixed a bug in the 'delete' query of ./person_edit.php and
./family_edit.php: if auto-events are kept (based on user's choice), we
should reset their 'is_auto', 'owner_obj_id' and 'owner_obj_type' to
their default values.
- During the creation of a new family object, added a section to link the
couple creation event to both partners of the couple (this is a regular
link that can be undone).
- Added drawing of individual's lineage on the individual edition page
(lineage extends on max. 3 generations: parents, individual, children).
- Implemented handling of parent <=> child relationship (through
./fam_child_edit.php and ./ind_selector.php).
- Modified column definition for 'individuals.familiy_id' (set NOT NULL,
DEFAULT 0). Bumped DB schema version to 28.
- Implemented full support for the new "family" object type.
- Vastly improved the output of the "last update" search. Added "last update"
search capability on sequences.
- Added "basic" and "last update" search capability on families.
- Created the needed screens to create, view, edit and remove family records.
- Put in place the selection mechanism for the partners of a couple. Linked
it from ./families.php and from ./person_edit.php (edit mode).
- Created the 'families' table. Bumped DB schema version to 27.
- Updated the INSTALL document to take the current dir. layout of the project
into account, and to provide a few words about the scripts.
- Removed the .htaccess file left by mistake in the project root.
0.20b (20/11/10) [individuals]
----------------
- From the object->event link edition page (obj_evt_edit.php), added a 'new'
button to allow the immediate creation of a new event, and modified the
event edition script to automatically link to the requesting object upon
creation. The existing 'add' button has been renamed to 'link'.
- Fixed a bug in the handling of the data returned by the person edition
query (./person_edit.php): set $death_event to '0' when person is still
alive.
- Improved the admin page by rounding all floating point results. Added the
percentage of dead web links. Cosmetics.
- Modified weblinks edition screen to allow for user control over the
'is_alive' flag. Added visual clue to the dead nature of a link in the
weblink list, in the bib. refs and in the search output.
- Created WebLinks handling screens. Modified ref_selector.php to offer
selection of either books and articles or weblinks. Modified
obj_ref_edit.php to not display page_ref edition fields in the case of
weblinks.
- Added new table 'weblinks'. Bumped DB schema version to 26.
- Created a script to automate the DB layout dump and include the schema
version in it (./docs/dump_layout).
- Added call to html_entities_decode() in the LaTeX slide report generation
procedure (in the hope that it would solve the display of Czech characters
-- it doesn't, possibly because they're not in ISO-8859-15).
- Implemented alternate names and titles deletion procedure in the context of
the individual deletion procedure.
- Cosmetics in ./tray_edit.php.
- Used the new owner object tracking to improve the control over whether or
not unlinking and deletion of events is allowed in obj_evt_edit.php.
- Added columns 'owner_obj_id' and 'owner_obj_type' to the 'events' table,
to track the owner object of auto-events. Bumped DB schema version to
25. Updated DB layout doc and SQL creation script accordingly.
Modified the individual creation procedure to populate the new fields.
Modified the event view and edition screens to display it.
- Cosmetic improvement in PersonView() function.
- Improved article sorting and presentation, both in the book edition screen
and in the reference selector "dialog". Now sorted by author, title and
volume ref. is displayed.
- Added 'sequence' object support to the statistics part of the admin page.
- Fixed bug in 'descript_1' handling for auto-events (./event-edit.php).
- Made sequences into "lesser objects". Gave them the 'C' prefix.
- In DB table 'sequences', renamed column 'seq_id' to 'obj_id'. Bumped DB
schema version to 24. Adapted sequences edition page and functions
accordingly.
- Cosmetic improvement to advanced search result when geographical coordinates
are unset.
- A source object can now be linked to source references as well. This could
be useful when researching the history of a manuscript.
- Fixed a bug in the nickname uniqueness test (./person_edit.php, 'update'
section).
- Added a "Latest Updates" search page (in ./search.php) that lists the 'n'
objects most recently updated by anyone or by a selected list of
contributors.
- Updated 'inxtree' table layout to handle creation / modification
fields like all other main tables. Bumped DB schema version to 23.
Adapted docs accordingly. Modified ./inx_edit.php to support the new
columns.
- Updated 'attachments' table layout to handle last_modif/last_mod_by
fields like all other main tables. Bumped DB schema version to 22.
Adapted docs accordingly. Modified ./attachments.php to support the new
columns.
- Adapted date format hints to get them in english like the rest of the UI
(AAAA/MM/JJ => YYYY/MM/DD).
- Created the 'titles' table. Bumped DB schema version to 21. Initial
implementation of titles edition screen. Support for 'titles' object type.
- Documented the DB schema with a graphical layout view (./docs/db_layout.dia:
renamed and expanded on the old 'ind+evt.dia').
- Created the 'altname_types' and 'alternate_names' tables. Bumped DB schema
version to 20. Initial implementation of alternate name types management
screen. Initial implementation of alternate names edition screen. Support
for 'alternate names' object type (the first so-called "lesser object").
- Added auto-URLification to attachments description (in ./files.php, basic
search result and output of ListAttachments()).
- Improved the 'exifmv' script: will now prompt before overwriting target
file. Such name collisions can happen in rare cases where e.g. pictures
shot on the same date are uploaded from different cameras, and the first
batch has already been processed. Another potential cause is a reformat of
the memory card between 2 batches of shots on the same day.
- Modified admin page (./admin.php) to also list stats for 'individuals'
table.
- Added ability to move an attached file to another object (e.g. in the case
where the initial object is obsolete or about to be removed).
- Moved all DB tables from the default MyISAM engine to InnoDB, in order
to get transaction support. Bumped DB schema version to 19.
- Improved navigation in the attachment screen (./files.php) by adding
multiple sort keys (ID, filename, size). Paginate result in chunks.
Created a DB index on filesize to support it.
- Fixed display bug in source edition screen.
- Implemented "biography" support (IND => EVT links).
- Implemented the individual deletion procedure.
- The event deletion procedure has been moved from ./event_edit.php to a
function called "delete_event()" in ./functions.inc, to allow it to be
called from different places (person edition pages, primarily).
- Added 'is_alive' column to 'individuals' table. Added a direct link between
the 'individuals' table and the 'events' table to solve the 'birth date /
death date' query problem (when death date is NULL). Bumped DB schema
version to 18. Adapted the individual edition screens accordingly.
- Implemented nickname uniqueness through software check (a "unique" index
couldn't be used, since NULL values are allowed for that column).
- Corrected bug in the "find gaps in ID sequence" algorithm (./admin.php).
- Basic 'individual' object implementation.
- Created the 'individuals' table. Bumped DB schema version to 17.
0.19b (20/03/10) [Advanced Search]
----------------
- Improved the "basic search" result display by quoting the fragment of
'text' fields that matched the query term. The context length is controlled
by a global parameter, and those mini-quotes can be disabled from the
query page.
- Moved the display of relative dating information in events to a dedicated
function called ListRelDatInfo(). Called this function in both 'edit' and
'view' mode.
- Finalise deletion procedure for 'slides', 'sources' and 'trays'. Frame this
procedure within a transaction.
- Stored 'LeafList' in a session variable rather than in a cookie to overcome
the 4K limit set on cookie size by RFC 2109 (./index_obj.php). Fixes
category browsing from Firefox in the case of large categories (above
roughly 900 entries).
- Added proper charset support in index_inx.php and index_obj.php.
- Added a validation check on the subject date, and an automatic reformatting
of the date to support different separators ('-', '/', '.' or no sep.).
- Fixed a bug in ./slide_edit.php where '$subj_date' was not properly quoted
before being fed to the SQL query. The ./source_edit.php file has been
checked but did not suffer from the same problem.
- Implemented variable editbox height, with user-selectable high value (based
on a similar feature developed for WarZone). The scope of the change has
been limited to the main objects edition pages (DIA, SRC, EVT). Database
schema version bumped to 16.
- Implemented the actual test on the DB schema version (the field has been
available for ages, but was never put to its intended use).
- Added "Location Breakdown" report to admin page.
- Added link to on-line catalogue in libraries list. Cosmetics in the
libraries edition page.
- Centralised definition of the anchor mark (spades) in ./definition.inc
(both for HTML and LaTeX outputs).
- Improved navigation in the INX selector by making the currently open tag
selectable.
- Added automatic URL-making function (URLify()) to the Slides, Sources and
Events comment text area. Syntax is to use the curly braces and the object
reference (e.g. '{D1234}'). Slides, sources, events and attachments can be
thus referred to at this stage. Internal page references can also be used
for bibrefs and sourcerefs: use [123] for bibrefs and [S123] for sourcerefs.
Each bibref and sourceref now wears a name tag.
- In ./slide_edit.php, modified the edition screen to link to the webstore
where appropriate (just as it's done in view mode).
- Added search on categories in advanced search page.
- On "basic search" page, added link to owner object in attachment search
result display.
- Added in-sequence navigation (Prev/Next) from the event edition screen.
- Added preliminary support for "change columns" feature. At present, only
applies to slides, events and sources objects.
- Added link to Google maps from slides with know geographical coordinates.
- Improved LaTeX slide index report page layout.
- Added field 'date_e_key' to 'events' table. Added automatic conversion of
"end date" field to 'date_e_key' in the events creation/edition screen, to
make them easier to search. Updated the advanced search result page
accordingly.
- Moved the '<table>' tag inside the ListAttachments() function to get a
consistent look and feel.
- Included 'quality' field in the slides list and in all slides reports.
- Added an 'url' field in 'sources', 'books' and 'articles' tables. Adapted
all edition and view screens accordingly. Adapted the list screens as well.
Added the 'url' field to the advanced search page.
- Fixed a display bug in GetObjNamebyID() where truncated strings with
embedded HTML tags would mess up the rest of the page. Fixed it by first
calling strip_tags() on those strings.
- Cosmetics: fixed vertical alignment of empty fields in event, book and
article view screens.
- Cosmetics: used right-align policy for page start and page end fields in
bibrefs and articles creation/edition screens.
- Fixed an error in the update query of ./obj_ref_edit.php (in the case where
there are no page refs.).
- Fixed a display bug in EventView() (comment contents should be pre-processed
to replace '\n' with '<br>').
- Added the "Sequences" section to EventView() (list the sequences this event
is member of).
- Reengineered the way coordinates are stored in the DB: a decimal value has
been added for each axis, positive or negative, to allow for easy
comparision in advanced searches. The UI stayed the same. A conversion
function has been created (dms2dd()), to be called on creation and update
of the D-M-S fields. The advanced search result page has been adapted to
take advantage of this. It is now possible to search between any 4 coordi-
nates, even if they span quadrants. The user doesn't need to know whether
East < West or the other way around: values are silently swapped if
necessary.
- Reengineered "shot type" field. Replaced it with a drop-down control whose
values are defined in ./definitions.inc. The column definition in the DB
has not changed, but its contents has been bulk updated. Modified
./slide_edit.php and SlideView() to match. Also modified the way this
column is handled in adv_search.php and as_result.php.
- Improved error handling in ListAllQuotes().
- Added a "quoted by" section in the source edition and view screen (uses the
same ListAllQuotes() function as books or articles.
- Implemented a first version of the advanced searched feature for all
supported object types + books and articles. The result display page still
needs work.
- Fixed a bug in ListAllQuotes() where a test on supported object types was
done too early (it belonged in GetObjNameByID()). Added error message in
case of unsupported object type in GetObjNameByID(). Added support for
'SRC' and 'EVT' object types in GetShortObjNamebyID().
- Modified BuildSrcRef() to take the 'date_in_ref' flag into account.
- Implemented a more generic approach to the event type pull-down handling
(used new getEventTypeList() function + the generic BuildPulldown() instead
of the ad-hoc EventTypePullDown()).
- Modified source selector (./src_selector.php) to display source type
code instead of long version.
- Displayed column 'source_type_code' in source list. Fixed a bug in SQL
query (missing 'ORDER BY' clause) in same screen.
- Modified source types management page to handle the 2 new columns.
- Added columns 'source_type_code' and 'date_in_ref' to table 'source_types'.
Bumped DB schema version to 14.
- Added download links for LaTeX reports in ./slides_p.php. Created the
needed .htaccess to allow it, too.
0.18b (17/05/09) [events]
----------------
- Removed minor HTML structure errors from ./slide_edit.php. HTML source-
level cosmetics.
- Add "DOCTYPE" definition in all header generation functions (to be more
standards compliant).
- Allow for explicit specification of the codepage used. New global variable
'$html_charset' defined in './definitions.inc' and used in all header
generation functions.
- Created a "country codes" management page (accessed through the "users"
page). The list is read only for now, but features advanced sort controls.
- In the 'events' view/edit screen, added a (R/O) list of objects this event
is linked from (DIA or SRC, at this stage).
- Added event support in 'sources' view/edition screen.
- Added statistics on 'obj_evt_map' table in ./admin.php.
- Implement missing 'clone' action in the source edition screen. Fixed bug
in the 'clone' action of the event edition screen.
- Improved tray list display by providing a color-coded "percent full"
indicator for each entry. Similar improvement in tray view/contents
screen and in printable list.
- Improved 'delcon' and 'del' actions in attachment.php to provide return
links to object edition page. Adapted call parameters to attachment.php,
'delcon' action to match.
- Fixed a minor display bug in ./attachment.php. Cosmetics.
- Add ability to link objects (slides only for now) to events.
- Add visual clue to "anchor" status in the "See Also" list. Took this
opportunity to document the array row structure in ListSA().
- Underscore periodical title in bibref quotes (instead of italicising it).
- Added visual clue to "periodical" status in ref_selector.php (cf. last
change in books.php).
- Added support for obsoleted slides in the search page.
- Added columns 'is_anchor' and 'quality' to table 'slides'. Modified
slide edition/view screens accordingly. Modified the slides list
pages and search page to offer a visual cue to identify the slides
flagged as "anchors". The 4 quality levels are defined in
definitions.inc (as an array).
- Created the necessary infrastructure to handle source references
(src_selector.php, obj_src_edit.php, BuildSrcRef(), ListSrcRefs()).
Enabled the linking of source references from both 'Slide' and 'Event'
objects. Enabled search on source refs and redirect to them using the
'Q<id>' syntax.
- Removed 'folio' and 'para_ref' columns from 'sources' table (moved them
to a single column 'quote_ref' in 'srcref' table). Adapted the sources
edition and view screens accordingly.
- Recreated the 'location' index for the 'slides' table to include the
'country' column (2 cities in different countries may have the same
name). Key now is "location, country, descript_1, descript_2". Adapted
all sort criteria for slides to use the new key (obj_selector.php,
slides.php, slides_p.php, slide_edit.php).
- Added missing field 'translation' in slides and sources search queries
(search.php).
- Added 'EVT' object type support where appropriate (see the new file
'new_object_type.txt' in ./docs).
- Brought 'events' table to full spec. Created a draft event list
(events.php) and event edition page (event_edit.php).
- Added an update of the global timestamp in the event of source type
deletion (in source_types.php). Cosmetics.
- Created 'event_types' table. Bumped DB schema version to 13. Created
event types edition page. Already created stump 'events' table (enough of
it to "left join" from 'event_types'). Adapted admin page to count events
and event types.
- Added top menu icon for 'events' table/object.
0.17b (23/11/08)
----------------
- Improved book and article deletion procedure to also take bibrefs
into account. Deleting a book will now also remove all contained
quotes articles, as well as all quotes that link directly to the book
or to any of the contained articles. The deletion confirmation screen
will detail all these items. Deleting an article also removes all
quotes that link to it.
- Added columns 'website' and 'catalogue' to the 'libraries' table.
Modified the library edition screen accordingly. Cosmetics.
- Added "switch to edit/view mode" links to the tray edition screen.
- Added columns 'created' and 'created_by' to the following tables:
* articles | * slides
* bibref | * sources
* books | * trays
* libraries | * users
Adapted the relevant edition/view pages to match. Bumped database
schema version to 12.
- Made library name into link to library view from book_edit.php and
from source_edit.php (in view mode only).
- Fixed display bug in the book reference in article_edit.php ('edit',
'clone' and 'view' sections): removed a leading comma when the book
author field is empty.
- Modified 'slides_p.php' to create LaTeX booklet from slide index.
0.16b (15/11/08) [webstore]
----------------
- In book_edit.php, added an "Add article to book" link in the 'insert'
and 'update' sections.
- Added format help and validation tests for page refs in obj_ref_edit.php.
- Added a visual clue to the "periodical" status of each entry in the
book list.
- Added validation tests on a few fields in the book and article edition
screens.
- Improved admin page: added support for 'libraries' table. Added
"Country Breakdown per object type" section.
- Added "comment marks" support in the INX tree browser (inxtree.php).
- Added "switch to edit/view mode" links in 'inxtree' edition screens
(inx_edit.php). Also regenerated '$curtag' contents in 'view' section
when coming from the search page.
- Improved BuildBibRef() (in functions.inc) to handle article quotes that
do not contain page refs (=> use global article scope instead).
- Fixed a bug in the article search query (missing join condition) and
display (query terms and variables mismatch). Improved 'book' and
'article' query result display.
- Modified all open tags from the short version ('<?') to the long version
('<?php') -- this is the recommended practice.
- On the Admin page, added a split slide count for digitals and regulars
(in addition to the global count).
- Added a column 'is_periodical' to the 'books' table. Bumped DB schema
version to 11. Modified book_edit.php to handle this field. Used the
new field in BuildBibRef().
- Improved BuildBibRef() for the display of article references from
periodicals.
- Added 'make_booklet.txt' in a new 'docs/' directory.
- Improved slides_p.php to support slide obsolescence.
- Improved slides_p.php to offer the user 4 possible sort orders for the
slides list.
- Modified SlideView() to link to the webstore where appropriate (in
'functions.inc').
- Added $webstore_base parameter to 'definitions.inc'.
- Modified 'trays.php' and 'trays_p.php' to display the new field.
- Modified 'tray_edit' to handle the new 'is_digital' field.
- Added column 'is_digital' to table 'trays'. Bumped DB schema version to
10. Adapted 'definitions.inc' accordingly.
0.15b (21/07/08) [sources]
----------------
- Added 'SRC' object support to "orphaned object" search (admin.php).
Fixed a bug in the original OO query.
- In the slide edition screen, added a silent conversion of ',' to '.'
in latitude and longitude seconds ('insert' and 'update' actions).
Avoids the "numeric value expected" error if ',' is used as decimal
separator.
- Improved display of inscription/sources texts by autonumbering lines.
Also support non-numbered comment lines, and keyword RAW to prevent
formatting altogether (in this case, the field contents is treated the
same way as 'comment' or 'translation'.
- Move the "Edit" link for Categories, References and Attachments next to
their section title (slide_edit.php, source_edit.php). The "switch to
view mode" has been moved below the attachment list (same place as the
"switch to edit mode" link in the view screens).
- Updated slides/sources creation and edition screens (slide_edit.php,
source_edit.php) to take the new field into account. Updated the view
functions (SlideView(), SourceView()) accordingly, but with the added
feature that empty 'reading' or 'translation' fields will now trigger
their title not to be displayed either.
- Added a new column 'translation' to both tables 'slides' and 'sources'.
Bumped the DB schema to 9. Adapted definitions.inc to match.
- Add support for "sources" and "source_types" tables in 'admin.php'.
Cosmectics.
- Added "SRC" object type support in 'obj_selector.php'.
- Added search capability on sources ('search.php').
- Added "SRC" object type support in 'attachment.php'.
- Added "SRC" object type support in 'obj_ref_edit.php'.
- See-also's now also support objects of type "SRC".
- Added "SRC" object type support in 'index_obj.php'.
- Added "SRC" object type support in 'obj_inx_edit.php'.
- Added support for sources (identified by 'S') in the 'Go' button
redirector.
- Cosmetic improvement in navigation bar display (navigation outside of
sets, for slides and sources) and to deletion feedback (slides).
- Cosmetic improvement in row display (slides list).
- Created 'sources' handling screens.
- Created 'source_types' table and related handling screen.
- Created 'sources' table and related index. Bumped DB schema version to 8.
Adapted definitions.inc accordingly.
- Replace "media" icon with "source" icon. Replace all existing "MED" object
types with "SRC". Renamed "media.php" to "sources.php".
0.14b (07/06/08) [navigation]
----------------
- Completed implementation of navigations between slides outsides of sets
(by ID and by locations).
- Fixed bug in $skey handling that prevented navigation when sorting on
location (slides.php, obj_selector.php).
- Started implementation of navigations between slides outsides of sets
(as created by selecting a category in the index).
- In inx_edit.php, added affected rows display to the "del" section and
enclosed it in a transaction to guarantee database integrity ('inxtree'
and 'inxlink' tables).
- Implemented "Previous" / "Next" navigation within an object set as selected
through the index page (selection done in index_inx.php, displayed in
index_obj.php). Implemented through the use of cookies.
- Replaced all "include()" by "require()".
- Improved object selector: using the icons at the top of the screen, it is
now possible to select the object type, the slides list is now split in
more manageable chunks (cf. slides.php), and alternative sort keys can be
selected (cf. slides.php). The "shot date" field has also been added, and
support for the "obsoleted by" table included.
- Fixed "link title" display bug in index_inx.php.
- Moved the geographical coordinates 'seconds' fields to 2 decimal places
(Google maps coordinates are provided to that level of precision).
Updated the UI accordingly. Bumped DB schema to v. 7.
- Added "debug" flag display + largest attachment report in admin page.
- Added a book list in the library edition screen ('edit' and 'view'
modes).
- Corrected a bug in the 'clone' action of the Books edition screen.
- Added support for UDC code field in the Books edition screen.
- Added column 'udc_tag' to table 'books'. Bumped DB schema version to 6.
Adapted definitions.inc accordingly.
0.13b (11/02/08)
----------------
- Added missing "close" button in 'insert' action to obj_ref_edit.php.
- Fixed display bugs in 'view' sections for libraries, books, articles and
bibrefs.
- Fixed a bug in SlideView() affecting the way HTML code is displayed in
slide description fields.
- Added visual clues to the presence of a "HTML title" comment in the index
tree (index_inx.php and inx_selector.php) and the book/articles list
(ref_selector.php).
- In book_edit.php and article_edit.php ('edit' and 'view' sections), added
a list of objects quoting the current book/article.
- Cosmetic improvements in books list.
- Corrected 'view' section in library_edit.php.
0.12b (02/01/08) [BibRefs]
----------------
- Implementation of the bibliographical references handling system (books,
articles and bibliographical references), including support in stats
page, search page and redirect page.
- Add support for geographical coordinates (latitude/longitude, as given by
a GPS device) in slides edition screen. Bumped DB schema version to 5.
0.11b (08/12/07)
----------------
- Trim the userid during user account creation to avoid inconsistencies
between the DB record and the htpasswd file.
- Add "clone" support in tray management screen.
- Implemented user deletion feature.
- Implemented the "Prune-n-graft" (= move) functionality in the INX tree.
Preserves any existing INX link to the moved nodes.
- Added a navbar on the slides list page. The number of rows had grown too
large to be displayed in a single table by Konqueror. The display is now
done by block ('all' is still an option -- Firefox handles longer tables).
- Updated and improved the installation instructions.
- Cosmetic improvement to trays management screen layout.
- Further improved table layout in attached files management screen.
- Added missing '.php' in INX links in search results.
0.10b (31/10/07) [obsolete slides]
----------------
- Replaced 'text' input by 'textarea' for "description" field in the
attachment edition screen.
- Further improved table layout in attached files management screen.
- Added rules in .htaccess to protect private information located in .inc
file (DB credentials) to be directly accessed by users.
- Renamed weeknumber() to ISO_weeknumber(). Added missing 'global' statement
in ISO_weeknumber(). Cosmetics.
- Fixed syntax error in GetMaxQuerySize ().
- Improved debugging and error handling in file upload procedure (attachments).
- Added the ability to mark a slide as obsolete (obsoleted by another slide).
- The 'obsoleted by' and 'obsoletes' fields on the slide edition screen can
be used for navigation.
- Obsoleted slides are identified in the lists by the use of 'striked
through' type (on their ID and trayID).
- In the slides list, moved the 'view' link on the slide ID in the 1st
column and replaced the "View" action by "Clone" (the latter not implemented
yet).
- Bumped the DB schema version to 4.
0.08b (23/06/05) [global TS]
----------------
- Added a new 'db_info' table in the DB (includes two new fields:
'schema_version' and 'data_last_modified'), added a definition of the
expected schema version in 'definitions.inc'. Added a display section for
the new fields in 'admin.php'. Modified all INSERT, UPDATE and DELETE queries
to call set_global_ts() upon success (except for the 'users' table).
- Modified the tray contents page to show the slot numbers in hex when the
max. number of slots is > 99. Fixed a syntax error in the tray update query.
- Added "view" link to "insert" and "update" actions of slide edition
screen.
- Replaced the header in reports (slides, trays, inxtree) by a dedicated
one (print_report_header()), in preparation for the addition of the "person"
object type. Added a new menu icon for the "person" object type. Created the
persons.php stub file.
- Improved "delcon" screen in the tray edition module.
- Added a navbar to the tray "insert" confirmation page.
- Cosmetic improvement to the "find gaps" report (admin page).
- Added "reports" page for trays.
0.07b (18/04/05)
----------------
- Created the "mkcdtray" script.
- Added support for attachments as object type in redirect.php.
- Added "orphan" and "empty" sections to the admin page. Cosmetics. Added
IsLeaf() function.
- Added "gaps" section to the admin page.
- Sort user list by userid (instead of natural order of password file).
- Added debug feature.
- Modified files.php to add an initial "A" to all attachment IDs when
displayed (same in search result display).
- Added attachment search routine (in "basic search").
- Added refresh button to the search result page.
- Cosmetics: color scheme for some tables, enhanced "DelCon" message.
- Added "alllevels" array to "definitions.inc". Added BuildPulldown() to
"functions.inc". Switched "Submit" and "Reset" buttons placement for
consistency in "user_edit.php". Improved row/columns handling (in same).
Used BuildPulldown() for level pulldown generation + cosmetics (in same).
Added $app_name and $app_title ("functions.inc" & "definitions.inc").
Removed the "NavBar" from user_edit.php and user_post.php (relics from
IPdBase).
- Added JavaScript focus handling to basic search page, the slide edition
page, the INXtree edition page and the tray edition page (in the "Add"
section only).
0.06b (02/03/05)
----------------
- Used htmlspecialchars() for inxtree comments (allows embedded quotes,
amongst others).
- Cosmetic improvement in "files.php" (= attachments) table layout.
- Solved a nasty bug in INX tag value comparision (any category below tag
"000e0001" would be hidden in some screens).
- Added "add new slide" link in insert and update section.
- Added basic search page.
- Corrected a bug in attachment handling ('Content-Disposition').
- Corrected a bug in 'can_publish' flag handling (flag was left empty
in 'no' case after 'insert' action).
- Added stubs for books.php and media.php (to avoid the "file not found"
error).
0.05b (22/02/05)
----------------
- Added auth. level checks.
- Added "maxlength" parameter to input fieds.
- Added "can_publish" field to 'slides' table. Modified slides edition
screen accordingly. Created a 'bulk_edit' script to sequentially edit a
given field for all slides.
- Switched 'submit' and 'reset' buttons on the "users" page (to stay in line
with the rest of the application).
0.04b (15/12/04)
----------------
- Added attachment handling.
[...]
0.01a (12/11/04)
----------------
- Initial release.
|