OpenDRS - Online Discrepancy Reporting System Copyright (C) 2025 Rod Wright This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Changelog 1.0.0 - 2018-03-13 - Initial release as OpenMTS. 1.1.0 - 2018-05-10 - Name change from OpenMTS to OpenDRS. - Added "Go Back" button to left side menu to make up for loss of browser back button in terminal mode. - Added configurable help text for period effective selection. - Changed Sim period effective from selection to yes/no radio buttons. - Writeup groups page shows collapsed list of groups. Click the expand icon to expand each group. - Fixed bug where entries made on stale create page had inaccurate date/time. - For logged in users, added the ability to select writeups directly on the View All Writeups page and assign/create a group. - On the Create New Writeup page, removed the default selections for Device, Subsystem, and Period dropdowns, forcing user to make a selection. - Added a Today button to the View All Writeups page - Changed the Period dropdowns on the Create, Search, and Group pages to show the times instead of the period numbers. Period numbers are still shown in the results tables with mouse hover showing times. - Moved all installation/upgrade functions to the install.sh script. 1.1.1 - 2020-04-09 - Fixed opendrs-update.sql to rename the trainers table. - Fixed bug where the About page didn't show the version number. - Fixed some grammar on the About page. - Fixed hardcoded help text in groups.php to use constant from config. - Added ID to searchable parameters in search.php. - Added sort parameters to search results. - Added a link for Admins to access the local Webmin to manage a terminal. - For Raspberry Pi: - In terminal setup, provided missing .profile and .config/openbox/rc.xml files. - In server setup, install mariadb-server since mysql-server is obsolete. - Changed startdrs.sh to re-enable ctrl keys for copy/paste, etc. Also added chromium flags to prevent update popup. - Added openbox keybindings to customer user's rc.xml to trap dangerous chromium hotkey combinations and enable ctrl-alt-del reboot. - Changed systemd ctrl-alt-del.target symlink to point to reboot.target. 1.1.2 - 2021-04-28 - Added ability to export search results as a CSV file. - Fixed bug in server-setup.sh that resulted in an incorrect install location if the installation name was left at the default. - Fixed bug in server-setup.sh that resulted in failure to set the ownership of the installed server directory tree if the http user and group names were left at the default. - Updated and tested to support Raspberry Pi 4B hardware. 1.2.0 - 2021-05-05 - Added ability to customize the terminology used for Device, Period, and Effective/Non-effective to make OpenDRS usable in a wider range of applications. 1.3.0 - 2022-03-05 - Made several improvements to group functionality. The Writeup Groups page now displays all groups in a table instead of individually expandable sections. On the View Writeups and View Open Writeups pages, if a writeup is a member of only one group, clicking the icon will take you to the page for that group. If a writeup is a member of multiple groups, clicking the icon will take you to the detail page for that writeup where you can view or modify which groups the writeup is a member of. On the Search page, you can now choose which group(s) the results should include. - Made some improvements to the installation process for Raspberry Pi setup to accomodate the latest version of Raspberry Pi OS. - If setting up as a Raspberry Pi terminal/server, included the option to make the terminal a wireless access point if it connects to an ethernet network. 1.3.1 - 2022-05-11 - Updated installation scripts and instructions to reflect changes in Raspberry Pi OS Release 2022-04-04. 1.3.2 - 2022-08-08 - Fixed typo in dbadmin.php that prevented adding new When Discovered items. - Fixed bug in create.php that prevented the page from working. - Fixed bug in config.php that prevented banners from being modified. - Fixed bug where action_by and action_reason were not preselected for subsequent searches in search.php. - Fixed bug in about.php and gpl.php that still used old $mts_db database handle. - Removed the server session directory option in config.php Miscellaneous settings. For this to make sense, you'd have to have shell access to the server and if that's the case, you'd be able to make the necessary database changes as well. - Fixed opendrs-initial.sql to make the default banner colors match the ones in common.php. - Created changelog.php for use by the "changes" link on the About page so kiosk terminal users don't get dead-ended in the CHANGELOG text file with no way to get back to the app. - Extensive code cleanups/updates in all php files to make application compatible with php8 and eliminate php warnings in apache2 error log file. - For Raspberry Pi: - Updated server-setup.sh to attempt to install the php-mysqli package for compatibility with php8. - Chromium browser will use the printer designated as the local default if it is selected as such in the Cups printer configuration. 1.3.3 - 2023-10-03 - Restricted the ability to change the report date and time when creating or editing a writeup to only logged in users. This is to prevent reporters from backdating writeups, causing them to possibly be missed. - For Raspberry Pi: - Updated the Webmin custom command scripts to use whatever user is logged into Webmin instead of the user "pi" which may not exist if rpi-imager options were used to set a different initial user when the SD card was created. 1.4.0 - 2024-05-09 - Updated the installer script (install.sh) to check for and install the prerequisites (apache, php, mariadb/mysql) and optional packages (webmin, phpmyadmin). - Added an access mode setting. The access mode should be "untrusted" if OpenDRS is exposed to an untrusted environment such as the internet. Untrusted mode requires a login to access any part of the application. The access mode should be "trusted" when the application is used in a trusted environment where anybody on the network can create/edit writeups and search the database, with a login required for everything else. - On the View All Writeups pages, replaced the "Last 7 days" and "Last 30 days" buttons with a dropdown with more options, including future dates so that OpenDRS can be more useful for things like preventive maintenance. - Changed the global font to a sans-serif font. - For Raspberry Pi: - Removed the Raspberry Pi terminal setup from OpenDRS. Setting up a Raspberry Pi as a terminal for OpenDRS can now be accomplished by installing the OpenKiosk application. - Removed the Raspberry Pi server setup from OpenDRS. Setting up a Raspberry Pi as an OpenDRS server is easily accomplished by the OpenDRS installer. 1.4.1 - 2024-06-18 - Updated the installer script (install.sh) to check for and install the package supplying uuidgen. If uuidgen is not present, the mysql user would be created with a blank password. 1.4.2 - 2024-06-27 - Fixed bug introduced in version 1.4.1 in writeups.php where open writeups prior to the current day weren't displayed on the "View Open Writeups" page. - Removed open, closed, and deferred constant definitions from common.php since only one was ever used, and that in only one place. 1.4.3 - 2025-02-27 - Poorly documented changes in the previous three versions resulted in confusion about when the date range selection dropdown should appear on the View Open Writeups and View All Writeups pages. Since the View Open Writeups page seemed redundant (all that info was available on the View All Writeups page) removed the View Open Writeups page entirely. The writeups page now shows all writeups for the selected date range, or today if no dates are specified. 1.4.4 - 2025-12-10 - Fixed bug in writeupdetail.php that emerged with installation on a system using MariaDB-10.11.14. A fatal error occurred when trying to insert a null value into the action_reason field of the writeups table (you left the action reason dropdown blank). Previous versions just left it as is without complaint.