    CHANGELOG
    OpenLog Online Logbook
    Copyright (C) 2026  Rod Wright

    SPDX-License-Identifier: GPL-2.0

1.0 - 2000-??-??
    - Initial release.

2.0 - 2001-??-??
    - Added referencing capability
    - Various bugfixes

2.2 - 2002-??-??
    - Added day navigation links at top of screen to replace forward and 
        back buttons.
    - Added printer friendly functionality.
    - Various bugfixes.

3.0 - 2005-03-12
    - Total redesign of pages.
    - Replaced day navigation links with clickable calendar.
    - Improved search page by putting the search criteria and results on 
        the same page.
    - Made various notices and error messages consistent.
    - Simplified reference chain display on main page by removing 
        referenced note numbers and adding a magnifying glass icon 
        that takes you to the reference chain page. Referenced note 
        numbers still available on reference chain page.
    - Added a plus sign icon to the note on the main page and reference 
        chain page so that you don't have to go to the edit page to 
        add a note referencing the current note.
    - Many, many, many code cleanups.
    - Now works with standard php configuration. No longer requires 
        register_globals to be turned on.
    - simplified the printer friendly functionality.
    - Added link management functionality.

3.1 - 2005-03-28
    - Fixed bug where the footer message was not being displayed.
    - Fixed bug that caused the contents of some fields in tables to be 
        halfway down the field (and possibly off-screen and not 
        visible) when the contents of other fields were very long.
    - Fixed bug where links show up on the printer friendly main page.

3.2 - 2005-03-30
    - Fixed inconsistent prompt text on search page.
    - Fixed problem of whitespace characters at beginning and end of 
        search text being included in the where clause resulting in 
        no results returned.
    - Fixed incorrect version number on about page.
    - Moved openlog.sql into the utilities directory with all the other 
        one-time use stuff. Updated docs accordingly.

3.3 - 2005-06-02
    - Fixed printer friendly pages so they do not show the navigation and 
        forms. This prevents the note column from being compressed to 
        just a few characters wide when printed.

3.4 - 2007-01-04
    - Fixed bug where items in dropdown lists were displayed in some 
        random order. Now they are shown in the order they were added 
        on the administration page.
    - Fixed bug where the reference links on the reference chain page 
        didn't work. They took you to the search page, which was 
        redundant and produced "no notes match criteria" message.
        Links in references column now take you to the edit page 
        for the linked note.
    - Added a security classification banner function that displays an 
        appropriately colored and labeled banner at the top and 
        bottom of all pages that display anything from the database.
        Banner is controlled in the config.php file.

3.5 - 2008-01-02
    - Added a time field to the database. It works like the date, i.e., 
        it automatically fills with the current time of the database 
        server, but may be changed on the add entry and edit pages if
        desired. YOU MUST RUN THE dbupdate-3.5.sql UTILITY AS 
        DESCRIBED IN THE UPGRADE FILE OR YOUR
        PAGES WILL NOT DISPLAY CORRECTLY! Your database will not be 
        damaged if you omit this step, but the logbook will not be 
        much use. If you are installing OpenLog for the first time,
        you will not need to run the update utility, since the initial 
        database creation takes care of it.

3.6 - 2008-01-30
    - The timestamp field added in version 3.5 was not universally popular. 
        Added an option to the config file to select whether to show it 
        on the main page (it will still be inserted into the database
        and remain editable).
    - Added a configurable logbook name. You can now set the name of the 
        logbook in the config file so if you are running multiple 
        logbooks, you'll know which one you're looking at.
    - Added options in the config file to determine the displayed order 
        of employee names and subject names.

4.0 - 2008-02-20
    - Moved all configuration from a file (config.php) to a table in the 
        database. Added a configuration page so that all configuration 
        can be done in the web browser.
    - Techs can now tell OpenLog to remember who they are using a browser 
        cookie. Techs can set their current shift, and the Add Entry 
        page will preselect the tech and shift. Also added a 
        customization page so that each tech can have their own color 
        scheme, etc.
    - Created an installation shell script that automates the task of 
        getting the distribution in the right place in the filesystem 
        with the correct file ownership.
    - Created a php installation/upgrade routine that detects whether the 
        distribution has been configured and prompts for the database 
        name/logbook name etc. OpenLog either sets up a new 
        installation or upgrades an existing configuration without the 
        user having to deal with command prompt stuff.

4.1 - 2008-02-26
    - Fixed copyright dates in all files.
    - Fixed bug where backslashes appeared in notes on systems where 
        magic_quotes_gpc was turned on.
    - Fixed bug where custom tech name was inserted on new or edited 
        notes even when another tech name was selected.
    - Fixed install.sh script to not show hostname in url in final 
        instructions since it was not reliable.
    - Fixed bug where timestamps for notes entered for past or future
        dates were set to the time the note was entered. This made
        notes entered last night appear after notes made this morning
        on the main page.
    - Trimmed all text files (including this one;-) to 80 columns so they
        wouldn't produce wierd line spacing on terminal displays.

4.2 - 2008-03-08
    - Fixed About page to accurately describe configuration changes.
    - URLs entered as http://domain.com are automatically converted to
        clickable links in the note text.
    - Added configuration setting to control the size of chunks to break
        long url strings into, preventing a long url from distorting
        the page.
    - Reversed the chronological order of the CHANGELOG file so the
        newest stuff is at the top.

4.3 - 2013-03-15
    - Fixed install.sh script to make it detect the httpd process name
        and user instead of using hardcoded values.

5.0 - 2015-08-10
    - Reworked install.sh script to remove web server version specific
        defaults.
    - Added install.bat script to handle installation on Windows servers.
    - Added PHP sessions to enable tech logins and privilege separation.
    - Added maintenance form and parts tracking functionality.
    - Added the ability to set flags for notes and maintenance forms.
    - Improved search capability.

5.1 - 2015-11-17
    - Added scheduled maintenance functionality.

5.1.1 - 2016-01-28
    - Various bugfixes

5.2.0 - 2016-10-18
    - Use jquery-ui for calendaring functions
    - Replaced deprecated php functions split() and ereg*()  with 
        explode() and preg*() functions to make OpenLog compatible
        with php 7.
    - Added a field to the logentry page to allow the user to insert a
        properly formatted URL into a note.

5.2.1 - 2024-07-09
    - Removed install.php and moved installation/upgrade process to
        install.sh shell script with default database files and a db.php
        template file.
    - Various compatibility fixes to make OpenLog work with php-8.x.

5.2.2 - 2025-02-26
    - Removed corrupt line from the beginning of database-initial.sql
        that caused the population of the database to fail during
        install. Upgrades not affected.
    - Changed functions.php so that the application uses a sans-serif
        font by default.
        
5.2.3 - 2025-12-01
    - In lognotes.php, get today's data from the database instead of the
        php date() function, since that had returned tomorrow's date in
        some instances.
    - In logentry.php, only run parts code if parts functionality is
        enabled. This prevents a fatal php error that occurred when
        trying to get the max value of an empty array.
    - In settings.php, the LOG_ERRORS constant was not being read
        properly. Assigned its value to a variable to be used in the if
        statement.

5.2.4 - 2025-12-02
    - In logentry.php, the parts bug from 5.2.2 was only partially
        fixed. Made the corrections to the edit code as well as the
        new entry.
    - In logentry.php, the default times for notes entered using dates
        other than today's date contained a trailing coln that mysql
        didn't like. Removed trailing colons.
    - Cleaned up the REQUEST importation in multiple files to default to
        NULL values for parameters not supplied to prevent warning 
        messages in the logs.
    - In the install.sh script, removed the prompts for optional package
        installation. Code is still there, just turned off by default.

5.2.4.1 - 2025-12-10
    - Fixed bug in search.php where "Print search results" link on the 
        search results page resulted in the printable page not showing
        any results. This was due to a php fatal error caused by passing
        a non-array as the second argument of the php in_array()
        function.

5.2.4.2 - 2025-12-11
    - Fixed other bugs caused by passing a non-array as the second 
        argument of the php in_array() function in various files.

5.2.4.3 - 2025-12-16
    - Various problems were noted resulting from php's use of UTC as the
        default timezone. Now, on installation or upgrade, the installer
        gets the correct timezone from the system and sets it as a php
        option in a .htaccess file in the install location. This solves
        multiple problems and allows today's date and the current time
        to be determined from the php date() function as part of the
        settings.php once per page load instead of having to query the 
        database multiple times per page load. Also added the option to
        allow apache to read the .htaccess file to the <Directory>
        section of the application's conf file in 
        /etc/apache2/conf-available
    - Renamed the installer's db.php_update.sh script to files-update.sh
        to reflect that it now can do more than just modify the db.php
        file. For this version, it's used to modify the apache conf file
        mentioned earlier.
    - Completely removed the optional package prompting/installation
        code from install.sh. This is best done using separate
        installers.

5.2.4.4 - 2025-12-19
    - Fixed bugs that caused crashes on the Scheduled Maintenance page 
        that were caused by more strict behavior of php regarding mysql 
        queries.
    - Fixed bug where some functions defined in functions.php were not
        treating the $today variable as global.   
    - In install.php, if a previous installation was found, make upgrade
        the default choice.

5.2.5 - 2026-02-10
    This is just a version number bump to get on a major-minor-patch
        scheme. There are no code changes for this release.

5.3.0 - 2026-02-20
    - Moved the template Create/Copy/Edit/Delete/Rename functionality to
        its own page to make it less confusing and to fix some strange
        behavior.
    - Added global templates which can be used by anyone but can only be 
        created, modified, or deleted by administrators. This makes it 
        easier to employ standardized templates.
    - Changed the character encoding of the database to utf8mb4 to enable
        using emojis in text fields.
    - Changed the insert link functionality. There are now two fields, link 
        text, and URL. The full URL string will now not be displayed in the
        note, since it frequently was too long and deformed the table, 
        causing the user to have to scroll right to see the entire note. If
        a URL is entered in the URL field and no link text is entered in the
        link text field, the link will show up as just the last part of the
        URL. For example, "http://somewhere.com/myfile.pdf" will show as
        "myfile.pdf" in the note text. If text is entered in the link text
        field, that is what will show as the clickable link in the note text.
        NOTE: URLs in previously entered notes will not automatically be
        converted.
    - Changed the flag handling code to no longer dynamically create flag_ 
        tables in the database to track assignments. This is now done using
        a flagmap table.
        NOTE: The database will be modified to support this and the
        importation of the previous data will take some time during
        installation.
    - References will no longer be stored in the lognotes table with the note.
        There is now a reflinks table that stores the link information.
        NOTE: The database will be modified to support this and the
        importation of the previous data will take some time during
        installation.
    - Various code cleanups to prevent php warnings in the logs if logging
        is enabled.
