RELEASE NOTES 2.1.132 (2023-05-21) Enhancements ======================================================== - Prevent users from uploading unfinished download files with a ".tmp" file extension. - Add privilege "Sign Viewer" allowing users to view all door signs in system. - Automatically redirect to Sign view module if a user attempts to load a sign they are unable to edit. - Increase the maximum limit of custom forms text fields by 200 for a total of 600 fields. - Add clickable "Total Active Chem Inventory" stat to DepartmentList. - Visual Editor Improvements: add tools for horizontal rules, image properties, and style selection, accessible audio player for uploaded audio files - Improve accessibility with Training module by marking dynamic sections as aria-live=polite and remove table structure. - Add LDAP lookup tool accessible in the username field section of UserRecord. - Improve error message when a user enters an invalid barcode length in ContainerMultiScan form. - Do not suggest "related SDS" documents prior to 2015-01-01 as they are MSDS. - Add SOP last review date, exposure route to SOP Record and List. - Add "Next Review Date" to SOP List - Add global variable SOP_REVIEW_MONTHS - Add SOP overdue alert - Add "Total Incomplete Assignments", "Total Complete Assignments", "Total N/A Assignments" fields to SOPList and show them by default - Add SOP auto assign field to SOPRecord and only show matching rules when auto_assign is "yes". - Allow all colleagues assigned to a user to view completed SOPs - Add Department remapping tool and auto remap departments in DataMerge, UserUpdateTool, SyncLDAP - Add "Training Assignor" privilege - Always show a user's colleagues in Training Compliance Matrix - Auto reload Door Sign Record form when making changes to associated room records by clicking the room information link on the door sign record form. - Add user deprovision tool feature. - Add button on FormElemRecord to set current date as the default value. Bug Fixes ======================================================== - Fix an issue preventing users from dismissing floating notifications. - Fix error preventing non admins from loading default search values. - Disable default saved searches for FormSubmissionList since they cause problems with the custom forms system. - Retain selected next workflow value if there is an error while saving a custom form record. - Fix issue where Colleague record was not saved on first attempt. - Fix issue where printer icon was invisible on tab toolbar. - Remove alerts section when refreshing dashboard and the alerts are no longer present. - Fix issue where multiple dashboard items could be highlighted in admin mode. - Fix issue where dashboard would reload uneccessailly after reloading training compliance matrix. - Add missing line breaks for SDSBinderRecord alerts - Add missing order by in FormSubmission template "Responsible Privilege Group" field - Fix RoomDashboard SDS broken link - Fix issue where new custom forms were not appearing on the dashboard. - Fix issue where deleted forms were not automatically removed from the dashboard. System Administrator ======================================================== - Add bin/generate_msds_report.pl which opens every SDS and generates a report of documents that are actually MSDS. RELEASE NOTES 2.1.131 (2023-04-08) Enhancements ======================================================== - Add Chemical Inventory Standard Operating Procedure (SOP) Feature RELEASE NOTES 2.1.130 (2023-03-28) Enhancements ======================================================== - Add user and training requirement auto completers to the training compliance matrix. - Add "Supervisors" and "Direct Reports" fields to UserList report. - Rename "Colleagues" to "Colleagues (access granted to)" and "Managers" to "Colleagues (access granted by)" for more consistent labeling. - Add Training Requirement record merge utility. Bug Fixes ======================================================== - Fix USER_IS_OWNER_SUPERVISOR workflow privilege to only allow access to a record when the record owner is currently a direct report of the supervisor. - Prevent error when a user tries to click start test when taking a training course in rapid succession. - Fix training reminder emails to include reminders remove time component from logic since reminders were slowly pushed further into the future causing reminder emails to be postponed by a day. RELEASE NOTES 2.1.129 (2023-03-06) Enhancements ======================================================== - Improve performance of dashboard saved reports by not calculating record count each time dashboard is refreshed unless the dashboard item is an alert. - When adding a new saved report to the dashboard, include the filter description in the default report title name. - Do not autofocus and scroll to the barcode field when loading an existing search into the SearchInventory report. - Add RoomTypeList, RoomTypeRecord - Add Risk Level, LVDL, and Green Lab, Room Type fields to RoomRecord, RoomList - Enhance door sign templates to allow template variables: GREENLAB, GREENLAB_LOGO_HTML, LVDL, RISK_LEVEL - Add new Dashboard Group "Locations" with links to user room locations - Allow up to 120 custom date fields in custom forms. Bug Fixes ======================================================== - Fix problems with entering waste tags on the waste pick-up simple form. - Fix issue with opening new or open record links from recordset report tool, CEMS was reusing the same tab which had the possibility of overwriting work. - Do not show links to view room reports on door sign record if there are no rooms assigned to prevent error message from appearing. - Fix issue with user auto completer restore previous value if auto select was unsuccessful. System Administrator Notes ======================================================== - Prevent Apache segfaults when using mod_perl by translating perl Image::Magick calls to system calls to convert command. There are known issues with Magick's perl API. - Remove all readonly inline dashboard content code from database to version controlled functions. - Add support for IPV6 and CIDR notation in ALLOWED_IPS global variable. (note: you must run set.pl to install new dependencies) RELEASE NOTES 2.1.128 (2023-02-15) Enhancements ======================================================== - Extra fields such as affiliation, supervisor, and department are automatically imported when importing a user from the LDAP using the CEMS find create user tool. - Rename "date active" to "date active (inspection date)" in FormElemRecord to assist users with choosing the correct common field. - Make the "User Instructions" field required when "Self-Report" is set to "yes" in Training Requirement record form. - Do not lose scroll position when creating test questions in the Training Requirement record form. - Change all support email references from cems-support@sr.unh.edu to cems-support@unh.edu. - All batch updates on Sliding Due Date field in Form Submission Template report. CEMS will automatically recalculate next due date. - Enable template variable: $MASS_LBS for waste label templates - Enable template variable $TOTAL_MASS_LBS for waste drum label templates - Show total pounds in WasteDrumRecord form - Add support for downloading individual SDS in an SDS Binder. Users can now choose the format: "single PDF" or "download each SDS". - Add alert to remind SDS Managers to download new SDS for "download each SDS" binders. Bug Fixes ======================================================== - Fix issue setting affiliation from LDAP when multiple values are returned. - Modify SDSDOWNLOADER_IGNORE field in ChemicalList report to look at chemical.ignore_missing_sds_alert in addition to chemical.sdsdownloader_ignore. - Fix issue where CEMS has not calculating next due dates if repeat intervals for both days and months were used for any form submission templates. System Administrator Notes ======================================================== - Improve install_simplesaml.txt instructions for setting metadata.sources cache dir. - Add permission rule for directory tmp/simplesamlphp/metadata when bin/fix_file_permissions.pl is called. - Remove "single PDF" SDS Binders from data directory (and backups). This file is now stored at tmp/SDSBinderSinglePDF/.pdf. This will reduce the size of the zip file backup by removing this redundant information. If the tmp data is removed, CEMS will regenerate the binders. RELEASE NOTES 2.1.127 (2023-01-16) Enhancements ======================================================== - Improve UserRecord form layout, add missing accessibility features - Add global var: CHEMICAL_ENABLE_PRODUCT_BARCODE (default is yes); add code throughout CEMS to hide product barcode fields if disabled - Define line-height in default door sign template to fix a reported issue where door signs where overflowing into multiple pages - Do not show myoverduealerts, myupcomingalerts, directreportoverduealerts, directreportupcomingalerts, alloverduealerts, allupcomingalerts in FormSubmissionList when in template mode since these filters do not apply to this mode - Always open room dashboard links in a new tab/window to preserve room dashboard - Move all custom form links in the Room Dashboard to new collapsible section labeled "My Forms". - Add "upcoming/overdue report" with count link to Room Dashboard tool. - Allow all active accounts to run FormSubmissionList report in template mode allowing user to view all their form submission templates. - Change default sort and filter to Manufact, Prodno, Chemname for recent missing SDS report - Auto redirect back to Container Update after successfully processing barcodes. Automatically clear scanned barcodes after successful update. - Open "containers updated" link in new tab/window after clicking link in Container Update notification - Use two separate scanned barcode caches for Container Update and Search Inventory modules. - Remove invalid "* * * * * * * * *" Manufacturer if it exists in older CEMS starter databases. - Add link to latest training videos for database administrators - Remove required field indicator message from ContainerUpdate since there are no required fields. Bug Fixes ======================================================== - Ensure all comments are displayed in waste pick-up report - Fix custom forms document display when document is in readonly mode - Fix issue where custom forms readonly checkboxes are invisible - Prevent training incomplete enrollment reminder for training courses whose session date has passed. - Add missing horizontal divider in FormElemRecord - Fix issue with generating waste pick-up request from containers marked empty in ContainerUpdate when barcodes container a period. - Fix overdue date link not populating active_date when clicking upcoming/overdue date in FormSubmissionList template mode. - Fix issue where large text values where not wrapping in some recordset fields. - Fix user group meeting agenda link. - Fix "add all users" function in UserList used by training compliance dashboard System Administrator Notes ======================================================== - Update install_simplesaml.txt and upgrade_simplesaml.txt to add support for PHP 8.3 in EL7 and add support for the latest version of SimpleSAML - Prevent false positive security finding in Burp scan report when scanner injects script tags echoed in a text/plain response by silently translating script tags to noscript RELEASE NOTES 2.1.126 (2023-12-11) Enhancements ======================================================== - Add new privilege "System Developer" and require privilege in SQL web tool - Expand task last output field to allow more content - Fix layout issues TaskRecord; add Last Output section - Hide disabled departments in modules: BuildingList, BuildingUserList, ContainerList, ContainerUsageReport, Dashboard, EditProfile, FormSubmissionList, RoomList, RoomUserList, TrainingEnrollmentList, TrainingReqCompleteList, TrainingReqUserList, UserList - Add test "(inactive)" next to inactive assigned departments in UserRecord - Add Date Last Seen In LDAP field to department field to assist in reconciling duplicate department records Bug Fixes ======================================================== - Fix QR code link for form submission templates in FormSubmissionRecord - Fix error: "Can't use an undefined value as an ARRAY reference" in FormElemOpts - Fix dashboard admin context menus on MacOS - Remove document footer links in SQL tool and VisualEditor RELEASE NOTES 2.1.125 (2023-11-16) Enhancements ======================================================== - Improve the Change Password screen for administrators to show the user account info for the password they are manually resetting. - Enable web browser spell check on all multi-line text fields. Auto correct and auto capitalize are turned off to prevent changes from happening automatically. - Add ability to clone form submission template records from existing form submission template record. - Allow user supervisor to be updated using LDAP - Add QR Code field to all custom form reports. These QR codes can be attached to inventory items to allow quick updates to custom form records. - Add ability to clone form submission records. - Add department merge record tool. - Add user add/update & merge tool allowing administrators to upload a CSV with user information and have the information applied to users. - Update default door sign template to shrink sign pictograms and improve view on mobile devices and small screens. - Add "username" to TrainingEnrollmentList report. This is needed by one of our sites that programmatically pulls training certificates from their system using API calls. - Container Stats rollup report now has options to run report for a site or building. Floor code has been added as a group by option. Fixed Empty Between filter. Add links to show invalid records with missing density/unit of measure that match hazards. - Show "ignore in SDS Downloader" checkbox if an SDS exists and is currently checked. This will allow us to tell the SDS Downloader to look for SDS updates. - Add Dashboard caching allowing quick reload of the dashboard screen. - Improve custom forms workflow wizard based on recent user feedback. - Add "skip to content" link to the top of the screen to improve accessibility for screen readers. - Always show a user's "processing" signs on their dashboard which will allow sign administrators to ask users to fix issues and resubmit. - Add Waste Monthly Stats report. - Add barcode transformer global variable. This allows sites with legacy barcodes that require translations to be used. - Add Admin Notes, Resolved By fields to Admin Tasks report and record form. Add "mark resolved" button to automatically set Date Resolved and Resolved By fields. - Allow door signs to not be tied to a specific CEMS room. The custom location field can be used. - Add support for scanning barcodes containing symbol characters (like #). - Automatically combine consecutive HandyCEMS scan sections if the scan options are the same. - Add merge tool for user status records. - Add "Responsible Privilege Group" to form submission templates. - Add quick link to Room Dashboard tool. - Allow users to switch room within room dashboard tool. - Show custom form dashboard links for the loaded room in the Room Dashboard tool. - Update CEMS to support VPAT 2.4 Rev WCAG: WCAG 2.1 accessibility criteria. The changes to support are listed below: - Always allow pinch to zoom on mobile devices. - Always provide visual feedback on item being focused with the keyboard. While CEMS currently functions without a mouse, there are places where the focused element is not apparent. - Every image or embedded content must have alternate text describing the media. While CEMS for the most part already does this, there are a few places that contain user uploaded content that is not properly described. - Ensure every form input has a referenced label describing the field. This is important for users with limited eye sight who use screen readers. When form elements are their corresponding labels are properly configured, screen readers are able to provide a better experience for these users. - Replace custom collapsible elements with standard HTML5 elements. - Improve color contrast. Users with limited vision or color blindness may have trouble reading text if there is not enough contrast. - Increase default font size for smaller text. - Ensure text is not clipped or not displayed if users change the default font size in their web browser. - Required fields must be displayed in a manner that does not only use color to indicate that the field is required. Currently CEMS displays required fields in red text. To meet the accessibility requirement we are including a red "*" on all required fields. The following text will also appear at the top of forms with required fields: "* indicates a required field". - Links must be displayed in a manner that does not only use color to indicate that the content is a link. The current version of CEMS uses red text to indicate that the item is a link that can be clicked. The latest accessibility standards require that all links be underlined or use an icon to indicate that the text is a link. The red color is also an issue because red is used to indicate that a field is required. CEMS links will now always be underlined and use a blue color. - Add Dashboard General Search. This feature will allow users to quickly open a report, or find records in one top screen search box. This was added to support the accessibility requirement: 2.4.5 Multiple Ways (Level AA) - Disable autocomplete on create account form, internal login form to support accessibility requirement: 1.3.5 Identify Input Purpose. (Level AA 2.1). This feature will allow web browsers to autofill a user's name, username, email, etc. - Change record set report icons to use text links for accessibility. - Improve accessibility by replacing record set icons with text links. Replace the open record icon with the record "SYS ID" and always show the "SYS ID" field. - Update accessibility page with link to the latest VPAT document. - When database admin is signed in as another user, prepend message "dbadmin logged in as: " to application logs. - Automatically load next chemical product update recommendation screen if there are no recommendations. - Show an error message on the ContainerScan form if an invalid barcode characters are used. - Add support for DYMO30336 label printer Bug Fixes ======================================================== - Fixed an issue where door sign contact info was not automatically populated after selecting a different user from the user list report. - When a user logs in using the secret link from forgot password, always update the last login date. - Show disabled test questions on training course test question tool since the questions were configured before they were disabled and they are still asked on the training course test. - Auto update "Num Questions" field and make the field read-only when a manual test is defined. - Fix login label username field label showing up as "email" when LDAP login is enabled. - Ensure record set field menu does not appear partially off screen. - Fix issue with duplicates when attempting to upload data catalog to community catalog site. - Fix issue where active date was automatically set to form submission template start date when creating a new record from a template. - Fix XSS issue with link in UserRecord impacting user administrator. - Fix issue training content player preventing index.html from loading from a custom zip file upload System Administrator Notes ======================================================== - Update install_linux.txt, install_windows.txt, and install_simplesaml.txt for latest release RELEASE NOTES 2.1.124 (2023-07-20) Enhancements ======================================================== - Allow door sign managers to configure default door sign values. - Add support for non-standard door sign template designs including landscape orientation support - Allow database admins to switch their CHEMICAL_INVENTORY_BARCODE_ENABLE_ALPHACHAR from "yes" to "no". - When switching CHEMICAL_INVENTORY_BARCODE_ENABLE_ALPHACHAR to "no" and there are containers with alpha barcodes, produce a report showing containers. - Enhance SignRecord to show most used door sign pictograms for the current site if no text is entered into the find tool. - Improve appearance of door sign pictogram find tool and allow up to 30 entries. - Automatically update Waste Drum start date to the earliest date waste was added to the drum. - Add "Ignore Missing SDS" field to ChemicalList report. - Add QR Code generator utility allowing admins to generate multiple QR codes from a list of links. - Add QR Code door sign pictogram "Inventory & SDS" which when scanned will open the applicable RoomDashboard - Add RoomDashboard which displays relevant reports and links for a room/door sign. - Add sum calculation fields to ContainerList QTY_GAL and QTY_LBS fields. Bug Fixes ======================================================== - Fix Applog message stating "sign record deleted" when it should have stated "sign record saved". This field contained additional information, the true action "save" or "delete" is saved in the "action" field. - Do not show empty waste extended descriptions as empty bullets in WasteDrumLabel - Prevent external links from opening in CEMS tabbed interface - always open in a new window - Fix issue with SignNFPA SVG generator when NULL NFPA values exist. - Add missing alt tags to door sign pictograms, and NFPA pictograms System Administrator Notes ======================================================== - Add fix_username_from_email_using_ldap.pl utility to fix username values by looking by each user an LDAP. - Add new saml_* config options to cems.conf (see conf/cems.conf.sample) allowing sysadmins to override how CEMS maps SAML attributes - Add instructions to docs/install_simplesaml.txt detailsing how to configure LOGIN_SIMPLESAML_EMAIL_SUFFIX global variable - Improve utility to extract database schema to work without mysqldump command which did not work on all self-host sites - Add bin/fix_database_charset_collate_settings.pl to assist with finding and correcting invalid database, table, and column collation settings. - Add bin/sql_pager.pl utility to assist with debugging remote sites. RELEASE NOTES 2.1.123 (2023-06-02) Enhancements ======================================================== - Modify "BYPASS_IP_RESTRICTION" global variable documentation to include the ContactAdmin module which will allow unauthorized users to use the contact form. - Enhance Waste Drum Labels by enabling TOTAL_MASS and TOTAL_GAL and WASTE_ITEM_COUNT as new template variables. - Enhance all waste label templates by enabling CONTENTS_EXTENDED_HTML variable - Enhance all waste label templates by enabling MASS variable - Show GHS Hazard information on chemical inventory reports by default instead of the Hazards (CAS) field. - Improve custom forms checkbox widget appearance when a checkbox form element is used, but no options exist. Bug Fixes ======================================================== - Keep the "other login options" collapsible section open if a user attempts to login with internal login option and a login error occurs. - Always allow access to the Notify module to ensure users can view their error messages even when they are not coming from an allowed IP. - Add "clear pictogram" link to Door sign record form to allow users to clear existing pictogram slots. - Fix mass unit text in WasteDrumLabelTemplateExample.txt - Fix door sign template to use content from SIGN_EMERG_MESSAGE global variable if it uses a custom value - Fix SyncLDAP by adding LDAP affiliations even if ldap_ignore_affiliation_re_pattern is not defined - Always allow users to view training requirement list report. This is required to allow users to add additional training requirements to their training compliance matrix. This is important for supervisors who are not training admins. - Do not show NFPA diamond if NFPA is undefined in Sign.pm. This fixes an issue with generating the offline ER reports. - Fix error occurring when uploading updated community catalog records. System Administrator Notes ======================================================== - Add support for SimpleSAML >= 2.0 in docs/install_simplesaml.txt - Add support for EL9.2 - Add instructions to install_linux.txt for enabling CIS Benchmark for Level 2 Server security profile Standard System Security Profile - Improve hardware recommendations/VM configuration in install_linux.txt - Improve instructions for setting up email in install_linux.txt - Add section on performing system updates to install_linux.txt - Improve restore.pl, manage_account.pl usage documentation - Add SYNC_LDAP_TEST_MODE ENV to Task/SyncLDAP.pm allowing admins to test the process before comminting data changes RELEASE NOTES 2.1.122 (2023-05-10) Enhancements ======================================================== - Add "Assigned Training Requirements" to user report - especially useful when adding users to the training compliance matrix that have a specific assigned training requirement. - Add support for custom fields within waste workflows. This upgrade will automatically add all existing custom fields to all defined waste workflows. When adding future custom fields, administrators should also add the custom field to the applicable waste workflows. - Improve ContainerUpdate to automatically set location, sublocation, owner, empty date, update evaluation date, mark empty date, mark transferred offsite date, mark in-transition date while processing a HandyCEMS scan log. - Add clear button to HandyCEMS reinventory screen to make it easier to clear the current value - especially useful when using barcode scanners in these fields. - Improve HandyCEMS reinventory form field documentation. - Expand user username max length to 191 characters. - Expand room name max length to 120 characters. - Add custom waste fields to in application workflow documentation which should assist admins in enabling waste custom fields for applicable waste workflows. - Add configuration to help prevent Google from indexing a CEMS site (robots.txt is not enough) - Add the ability to customize the door sign template by editing global variable DOORSIGN_TEMPLATE. - Add the ability to manage Hazcom pictograms in CEMS which new modules PictogramRecord, PictogramList, and Pictogram - Enhance SignRecord to use DOORSIGN_TEMPLATE, allow users to select Hazcom pictograms, and allow users to select any slot for the NFPA - Door sign contacts dashboard and alerts now take into account contact 4,5,6 if they exist. - Rename field 'Date of Most Recent Active Inv' to 'Last Acquired On' in ChemicalList - Always expand custom form collapsible sections when printing a custom form record. - Enhance custom forms hidden input widget to automatically serialize/deserialize inputs within the element's HTML content allowing sites to more easily build advanced form components. - Improve security by adding sandboxing to DBfile content. - Improve security by scrubbing unsafe content from visual editor fields. - Add new document widget type to custom forms enabling the visual editor for custom forms. - Allow users with privileges "Chemical Inventory Add Own" or "Chemical Inventory Add Others" to add new manufacturer records. - Add ability to set the Hazard Classification Standard on Hazard Classification records. - Add the ability to disable "Hazard Classification" and "Hazard Classification Standards" for a site. - Add support for International Fire Code (IFC) hazard types. IFC hazard types are disabled by default. - Rename "Pictogram" field to "Hazard Pictograms" in ChemicalList and ContainerList reports. - Add custom forms custom component documentation. - Add code to estimate SDS Binder size, and do not allow users to create binders with an estimated PDF size over 100MB. - Add "Date Previously Due" and "Days Completed Overdue" to TrainingReqUserList report - Add email validation to email fields. Bug Fixes ======================================================== - Fix training compliance display issue that occurred when a training administrator defines a custom training compliance report then logs in as a different after who is not a training administrator. - Fix display issue where HandyCEMS was combining reinventory descriptions if the previous reinventory description had no scanned barcodes. - Fix random HTTP 500 errors occurring in AutoCompleteUser for one self-host site. - Force open ReportBugFeatureRequest and https://cems.unh.edu/support-availability links in a new window to prevent CEMS frame security error - Prevent execution of the zip file player unless user is a training administrator since zip file content should not be trusted. System Administrator Notes ======================================================== - Add support for Red Hat Enterprise Linux 9 - Add new cems.conf option "ip_http_header" allowing admins a way to override which ENV used to extract a user's remote IP (useful when using a reverse proxy/NAT) - Auto generate and cache database schema using mysqldump during upgrade.pl process because executing this command on demand as the apache user has the potential to trigger invalid security alerts. RELEASE NOTES 2.1.121 (2023-02-17) Enhancements ======================================================== - Allow users to enter text directly into visual editor fields if field does not contain embedded HTML. - Add expiration date to default training certificate template. If you use your own template and would like to include the expiration date, see the sample template as a guide. - Improve recordset by always showing the select button if it is enabled even when offscreen. - Improve recordset by always showing the table column header even when the page is scrolled. - Improve recordset by adding a button to toggle the view between table and record views. Bug Fixes ======================================================== - Fix error when trying to add buildings to an SDS Binder - Fix issue with errorreport parameter filter not running causing extra information to appear in log table. - Fix issue where CEMS could clear field data for the wrong form when deleting a form element in a different form. This issue is rare - only one CEMS site was detected to have this issue because CEMS does not normally allow you to delete form elements unless there is no data stored within the form element for the current form; This update includes an automated data restore that will run as part of the upgrade script if missing data is detected. System Administrator Notes ======================================================== - Suppress error when executing SET SESSION innodb_strict_mode=ON since this command is not supported by some MySQL versions. - Add --no-tablespaces commandline option to mysqldump to suppress privilege warnings when a user does not have privileges to access tablespace information. RELEASE NOTES 2.1.120 (2023-01-19) Enhancements ======================================================== - allow users to manage chemical inventory colleague permissions even if user does not own inventory - this is neccessary with the new version when a colleague is granted access to add new inventory for their PI and the PI does not yet own inventory - combine colleague view/edit permissions to improve user interface Bug Fixes ======================================================== - fix issue causing scheduled tasks to fail when trying to send an email using Microsoft Graph with an invalid receipient. System Administrator Notes ======================================================== - add support for InnoDB to session table since we have a site that does not support MyISAM storage engine by their cloud vendor - add workaround fix to address upgrade issue in function CEMS::Applet::ChemicalRecord::remove_no_ghs_haz_status_when_ghs_haz_exist when attempting to upgrade UNHCEMS with MySQL 5.7.41 database RELEASE NOTES 2.1.119 (2023-01-09) Enhancements ======================================================== - show count of container history in RoomRecord Data Associations Bug Fixes ======================================================== - force encode MicrosoftGraph sendmail JSON content as UTF-8 - fix issue where session id was not set properly by authorize_session.pl - show priv on user record even when descr is NULL - add upgrade to auto convert usage of form_submission_store table name to form_submission_store1 in form_elem.html and form_elem.options (this fixes some sites who have advanced customizations) - do not include products without an SDS in SDS search - hide disabled unit density options unless already assigned in ChemicalRecord - set task.is_disabled defaults in DatabaseCleaner.pm - this will fix the issue where sdsbinder task is not enabled by default for new sites - on WasteRecord, change default pick-up locations to locations where waste has been picked up in the past - auto select chemical owner if user is not an admin type so location list populates correctly - fix container update memo column usage to use new column name memo_html (also added html escaping since the field uses html) - fix rad_usage_log NOTES field referencing previous column name - fix default active date value when completing a new report from a form submission template System Administrator Notes ======================================================== - added latest Burp security report assessment RELEASE NOTES 2.1.118 (2022-11-21) Enhancements ======================================================== - Add "Previous Owner", "Previous Owner Transfer Date", "Previous Location", "Preview Location Transfer Date" fields to Chemical Inventory reports. - Add "inventory ownership transfers in the last month" report to dashboard. - Add "Waste Codes" field to waste drum report. The waste codes shown are comprised of all waste codes assigned to all waste records associated to the waste drum. - Add "Waste Codes" to waste drum labels. To activate this option edit the WASTEDRUM_LABEL_TEMPLATE global variable. - Add "Waste Codes" to waste drum record form. When scanning a waste record into the waste drum, the waste codes shown will automatically update. - Enhance notes fields in Room, Building, Chemical, Container, Rad Catalog, Rad Drum, and Rad Usage Log with the ability to use the visual editor. This lets you to attach unlimited documents, photos, and links within these notes fields. Notes fields are also viewable and searchable using recordset reporting tools. - Show documents within an embedded viewer instead of showing HTML. For example see the "Online Course Content" field in the Training Course Record form. - Do not show inactive users in user auto completers. Inactive users can still be associated to a record by using the ".." button (useful when managing historical records). - Fix compatibility issues with latest Inkscape version. (only affects self-host sites) - Change label "PI" on waste form to "PI/Manager". - On Login screen, if a site uses Single Sign-in and other login options are available, hide the other login options in a collapsible section labeled "other login options". - Enhance custom forms with the ability to have collapsible sections. Assign a form element to a collapsible section by setting the "parent element". - Move custom forms conditional visibility options to the new "parent element" field. - Add hover help text to custom form design action buttons. - Hide the show disabled form elements checkbox if there are no disabled elements. - Enhance custom forms design mode to remember scroll position, opened collapsible sections, and selected field when refreshing the screen. - Increase compatibility with more types of SCORM files by: adding flood control to prevent database deadlock errors when misbehaving SCORM module issues multiple Commits within 500ms, allow SCORM files to be previewed within TrainingCourseRecord, improve detection when user passes a course – some SCORMS will state that the user completed the course, but failed the test. If CEMS detects that the user failed the test, the user will not receive a certificate of completion. - Extend maximum custom fields: max date fields 60, max text fields 400. - Allow embed frames to be resized with visual editor views and by user (for example SCORM training). - Allow buildings to be added to an SDS Binder record - Add privilege "Chemical Inventory Add Others - user can add inventory for other users this user has edit privileges for" - Add privilege "Chemical Inventory Add Own - user can add inventory for themselves" - Rename privilege "Update Inventory" to "Chemical Inventory Add/Update All" - Improve privlege descriptions for chemical inventory related privileges. - Add CEMS community catalog to give chemical managers the ability to update their chemical catalog. - Automatically remove "no GHS hazard status" if a hazard classification with defined GHS code is associtated to chemical product record. - Improve CAS data entry by allowing multiple CAS numbers to be entered delimited by a comma. - Add "private" checkbox to indicate that the chemical product record is private and should not be shared with community catalog. The automatic SDS downloader will also ignore private catalog records. - Allow training courses to embed a custom enrollment form. - Expand building abbreviation field length to 50 characters. - Prevent CEMS from trying to send email compliance related email when a user's email is invalid. - Add support for non-SCORM Articulate created zip files for training content. - Add open record to admin task records so admins can see full message. - Improve admin task template response by removing "..". - Do not strip extended characters in records CSV exporter. - Add encoding override option in ContainerMerge to allow user to override default character encoding. This option can help when the importer fails to detect UTF-8 data or the uploaded file is not properly encoded. - Improved ChemicalRecord readonly mode styles. - Hide the chemical inventory "audit" button if user is not a database admin. Bug Fixes ======================================================== - Fix issue where Terms of Service footer banner would appear after a user has already agreed to the latest terms of service. - Fix "Has Hazard(s)" named filter in ChemicalList report - Fix creator field showing incorrect value in TrainingReqUserList report - Fix issues with saving large custom form responses. - Fix possible cross site scripting issue with several form actions and reload function. - Fix issues preventing some users from viewed archived SDS. - Fix issue where some chemical inventory readonly fields showed up as blank after the form was reloaded. - Fix required fields validation check in the waste simple form with the num containers field. System Administrator Notes ======================================================== - Add support for sending and receiving email using a Microsoft Exchange email account as an alternative to using SMTP. To configure this option run bin/setup_microsoft_graph.pl - Add bin/import_data.pl code template to make it easier to do custom data imports. - Allow system admin to use test_sendmail.pl program wven when site is in dev_mode which normally prevents outgoing emails. - Review and merge recommeded Apache config as documented in conf/apache/apache.conf.sample # always prevent admin uploaded zip files that are extracted within /CEMS/tmp from running PHP Order Deny,Allow Deny from All RELEASE NOTES (2.1.116) (2022-06-30) Enhancements ======================================================== - Add clone button to waste record for waste admins. Especially useful when splitting a waste record into multiple drums. - Extend custom form inputs to a max of 220 test inputs and 20 date inputs Bug Fixes ======================================================== - Fix issue where users could not view their historical waste requests when simple form is disabled - Fix issue prevent waste tag field from being available on waste report - Change storage state labels to physical state for consistency - Suppress long response alert for DBfile System Administrator Notes ======================================================== - Improve support for differences in schema output for newer mysql versions in test_install.pl - Improve security by preventing blind DNS lookup in apache.conf.sample System Administrators - check your conf/apache.conf file port 80 to 443 redirect rewrite rule. Old Rule: RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HOST}%{REQUEST_URI} New Improved Rule: RewriteCond %{HTTPS} off RewriteRule (.*) https://ENTER_YOUR_CEMS_SERVER_NAME_HERE.edu%{REQUEST_URI} The old rule allows blind DNS lookup to be performed on your system which isn't a security concern for your server, but can be used to propagate a DOS attack on another DNS server. RELEASE NOTES (2.1.115) (2022-06-16) Enhancements ======================================================== - Ignore ServiceWorker requests in application logs - Add returned/bounced email alerts to let admins know when a user does not receive an email. - Add select other ".." button to Drum Type field on Waste Drum record form - Add "Site" field to drum list report - Add total liquid gallons to Drum record form - Rename "Waste Category" to "Waste Type" on waste record form. - Allow admins to manage Waste Types. - Add "Disabled Waste Fields" to Waste Type Record form which allows admins to configure which waste fields are disabled for certain types of waste. - Enable select other ".." button on container type button is user is not an admin - Allow users to auto fill waste requests if is_regulated is undefined since is_regulated is not used on all sites. - Add new fields to ContainerList report allowing separate fields for owner first and last name and separate fields for container size and container unit. - Add "Previous Owner", "Previous Owner Transfer Date", "Previous Location", "Preview Location Transfer Date" fields to ContainerList - Add "inventory ownership transfers in the last month" report to dashboard - Add details to user status field describing which user statuses can affect who can assign direct reports. - Auto set waste pick-up requests field defaults for requester and requester phone when user is not logged in Bug Fixes ======================================================== - Fix issue with readonly fields on multi requyest waste removal form when user is not logged in System Administrator Notes ======================================================== - Add new ENV option "MANUALLY_INSTALL_DATABASE" to restore.pl allow admins to install CEMS without installing database - Add common solutions text to restore.pl when something goes wrong - Improve restore.pl by testing root database connection before processing data - Move post restore steps to upgrade.pl and allow user to run them with new option --finish-restore - this allows sites who manually install their database to more easily run the post restore steps. - Add eduPersonPrincipalName support to SimpleSAMLLogin.php SSO returned attribute - Prevent long response alerts for DataMerge module - Add InCommon support to install_simplesaml.txt RELEASE NOTES (2.1.114) (2022-05-23) Enhancements ======================================================== - Add links to info for waste codes field - Move CAS widget closer to the top of the chemical record form based on user feedback - Improve chemical name sort by stripping non alpha numeric characters and common prefixes such as "N-", "alpha", etc. - Product barcodes can now be managed on the ChemicalRecord form - Allow users to search for SDS by scanning product barcode - Add sum fields for Waste Mass and Container Qty fields - Allow users to enter chemical name synonyms on chemical record form - Search chemical name synonyms when user searches by chemical name on the search form - Allow administrators to customize which fields are enabled and required by editing waste workflow using new global variables: WASTE_WORKFLOW_OPEN_CONTAINER, WASTE_WORKFLOW_REQUEST_PICKUP, WASTE_WORKFLOW_REQUEST_MULTI_PICKUP, WASTE_WORKFLOW_PICKUP, WASTE_WORKFLOW_DISPOSED - Add support for waste labels and waste pick-up labels - Add support to customize waste label templates by editing global variaables: WASTE_LABEL_TEMPLATE, WASTE_PICKUP_LABEL_TEMPLATE, WASTE_DRUM_LABEL - Add new waste fields: "Open Date", "Opened By", "Pick-up Label Print Date", "Container Type" - renamed waste field: "Pictograms" to "Hazards". Allow admins to manage waste hazards. - Remove WASTE_TAG_CONFIG global variable. The "tag" field can be enabled using the new waste workflow global variables. - Add global variable: WASTE_REQUIRE_COMPONENT_PERCENT allowing users to control if percentage is required in waste description field. - Add new Hazardous Waste Drums feature. Hazardous waste can now be assigned to a waste drum. The drum then controls the waste disposal date. - Provide a system to quickly assign waste to drums by scanning the waste drum QR code, then scanning the waste label QR codes. - Remove default sort "Pickup Date" != "" on Waste report. Bug Fixes ======================================================== RELEASE NOTES (2.1.113) (2022-04-06) Enhancements ======================================================== - Add Preliminary waste label feature. - Add "Is Most Recent for Room" field to FormSubmissionList. CEMS will use the active date common field OR the creation date if the active date field is undefined. - Convert all CEMS text emails to HTML emails - this improves readability of emails containing safelinks - Add "Is Most Recent for Room" field to FormSubmissionList - Add support for #userid #now #today #userfullname macros for set_default advanced configuration in FormElemRecord - Add link to open chemical inventory report showing flammables on LocLimit report - Include GHS flam classifications in LocLimit flammables report - Add merge utility to UnitRecord - Add merge utility to ManufactRecord - Add "Always Allow New Inventory" to LocLimitRecord - Add default filter "NUM_CONTAINER > 0" to SDS admin report - Improve WasteRecord by always showing drop down arrow to show all available container unit records even if user is not an admin - Add site.sitecode to SiteRecord to store site specific record key - Ensure building.buildingcode, room.roomcode, and site.sitecode are unique if defined - Change unique constraints for building on name and abbrev to include site - Add DataMerge utility allowing admins to sync department, room, building, site, and user records with external data sources - Increase building name length to 120 characters - Add support for new CHEMICAL_INVENTORY_ACCESS derived privilege - Fix issue where conditional visibility parent was not saved if user selected another element to insert after - Add UnitDensityList, UnitDensityRecord allowing site specific density units Bug Fixes ======================================================== - Remove google user community link - Add workaround fix when uploading files, the file upload progress event is not firing in Google Chrome. - Fix SSO infinite login loop experienced by some SSO configurations System Administrator Notes ======================================================== - Improve test_install.pl to not report errors due to mysql version variations - Add support for EL8 to install_simplesaml.txt instructions - Add support for web service login using username or email with the "CEMS-user" HTTP header - Improve access denied message when connecting as a web service RELEASE NOTES (2.1.112) (2022-01-31) Enhancements ======================================================== - Disable built in web browser autocorrect, autocapitalize, spellcheck, and autocomplete on every field - Allow multiple tag to be entered with range capability when entering multiple containers in Waste pick-up form - On training requirement complete record make the "For Date" field readonly if there is an attached training enrollment record because they should always be in sync - Improve Update Inventory notes widget to only appear when user chooses append or replace action - Convert all text emails to HTML format to improve how safe links appear - Add "Frozen" as option for storage state on waste record form - Add "animal carcasses and/or bio material" as new option to waste_category for waste record form - Improve waste receipt emails to include full waste description Bug Fixes ======================================================== - Fix RadUserPermitDocRecord bad HTML shown on form - Fix training course prerequisite check when prerequisite training requirement has an expiration of 0 months to indicate that it does not expire - Do not show file not found message after user deletes an attached enrollment from an open user training requirement complete record. System Administrator Notes ======================================================== - Add support for Enterprise Linux 8 - Do not report error in test_install if site uses character barcodes or has different default timestamp time values. RELEASE NOTES (2.1.111) (2022-01-04) Enhancements ======================================================== - Add Site field to WasteList - Show abbrev as default label in unit auto completers - Add simple waste pick-up form - Add Owners, Buildings, and Sites fields to ChemicalList report - Add Sort Number to custom field record form - Change waste record barcode workflow to use simple form directly allowing users to modify inline waste description - Enable batch updates on all custom fields for database admins - Improve Training Compliance matrix panel with new button "add users in report" Bug Fixes ======================================================== - Fix issue with sending waste confirmation when user is a guest - Fix issue with auto calculating container expire date when chemical shelf life is specified - Fix issue that may cause training compliance summary screen to not update automatically RELEASE NOTES (2.1.110) (2021-12-08) Enhancements ======================================================== - Improve auto generating waste requests from marked empty containers using ContainerUpdate. The disposed containers will auto generate waste requests with correct assigned GHS pictograms. - Show and allow updates to Generator User ID, PI User ID, Requester User ID fields on the waste list report - On Waste Pickup list, show PI details - not generator details. - On Waste form, do not allow users to specify both values if "other" field is defined. - Add delete button to the colleague form if the user is an admin - this fixes issues where a colleague can not be removed if the user is inactive. - When entering a new waste pickup request, auto populate previous entered location, pi, generator, comment, and department fields from previously entered pick-up request within the same login session. This also includes "other" fields. - Add "Pickup By" field top Waste report and populate older picked up waste records using application logs Bug Fixes ======================================================== - Fix issue with scheduled task "send email reminders about upcoming and overdue training" periodically failing. - Fix close button not working on the WastePickupList - Do not set generator field to current logged in user if "other" field is defined on waste pick-up form. RELEASE NOTES (2.1.109) (2021-11-22) Enhancements ======================================================== - Add new density unit type gm/cm^3 - Add ability to scan multiple barcodes in any order in Add Chemical Inventory form - Force default density to be Kg/L in chemical inventory and chemical catalog forms - Allow users to edit their own waste pick-up requests if they have not yet been picked up - When refreshing SDS using SDSDownloader, use sdsfile_date to determine freshness if chemical verification date is undefined - Allow administrators to customize which fields are required on the create account form - Allow administrators to bypass the two door sign contact requirement when creating door signs - Add a clear container notes feature to the update inventory form - Set default rows per page to 50. - Include training reminder email when no course is available, but there is training instructions available for the training requirment - this allows CEMS to communicate that a user needs to complete training via an external process. - New global variable: TRAINING_REMINDER_EMAIL_DAYS (defaults to 7) - you can now configure how frequently users should be reminded that they have overdue or upcoming training requirements to complete. - Reschedule the training reminder email task to run every hour 8AM-5PM instead of every 7 days. Users will only receive an email if they have an unfulfilled training requirement and have not receive an email reminder within the last global config TRAINING_REMINDER_EMAIL_DAYS days. - Auto populate waste request PI filed with previous entered value for user if it exists. Otherwise default to self if user owns chemical inventory. Else the value is blank. - Add Sds Last Verified field to ChemicalList report - Add SDSDownloader2 server support - used by new SDSDownloader 2 client software - Add passport status classes: .passport_status_deny, .passport_status_ok, .passport_status_warning which can be used in Passport templates - Add global var: LOGIN_SIMPLESAML_EMAIL_SUFFIX - which can be used to require SSO login for a list of email suffixes - Add "mark not found" button to container record form to allow users to mark individual containers in-transition. - Improve the TrainingEnrollmentRecord form to only show current courses in the autocompleter. - Add help dialog when user clicks the wrong print icon on the Label module - If a training course hosts SCORM training and an online test is defined, enable the "start test" button. This allows users to use SCORM training modules that don't send the course completion signal. - Add new field "Affiliation" to UserRecord - Add new scheduled task, SyncLDAP, which can be used to automatically update user record info nightly from configured LDAP server - Add new field "Inventory Locations" to UserRecord showing inventory locations where user owns or has access to for chemical, bio, or rad inventory - Allow Training Instructors to fully manage training compliance matrix for all users - Replace usage of the Hazardous Waste Pick-up request form with a revamped WasteRecord form available to all users with an active account (old url will redirect to new form) - Add storage state, full description, disposal date to WasteRecord and WasteList (automatically set previously pick-up waste disposal date to 1970-01-01) - Add dashboard reports: pending disposals - Enable batch updating by waste manager on several fields in WasteList - Expand department name field to 180 characters - Update chemical reports to rename chemical inventory "Hazards" to "Hazards (CAS)" to be consistent with other field "Hazards (GHS)" - Update waste record form to add waste PI and "other PI" fields. We now have two user fields on the waste record labeled "PI" and "Generator". The PI field is automatically set to the "PI/Generator" value for previous records. - Update Waster Record form to require "Mass" when waste pick up date is defined. Entering a mass is not required when users submit their waste request. - Auto populate department and location for new records after PI is defined on the waste record form - Add task to automatically mark empty in-transit containers after 1 year (task is disabled by default) - Add global variable: CHEMICAL_INVENTORY_AUTO_MARK_EMPTY_INTRANSIT_DAYS which is used by task to automatically mark empty in-transit containers after the specified number of days. The default is 365 days, but the task is disabled by default. The task can be enabled by editing the task record. - Added decimal type fields to custom field types. - Improve data entry by auto clicking the "add multiple containers" ok button if user didn't do it on the ContainerScan form Bug Fixes ======================================================== - Fix waste pictograms display while in read-only mode - Fix issue that prevented the sublocation field to be populated with entries for the selected room in the update inventory form - Fix issue where DHS report was not factoring in a reduction in the reportable quantity amount when CAS is less than 100% - Fix issue where CEMS welcome email wasn't being sent out if account auto activation is disabled and a user created their account using the create account form. Now a welcome email is always sent if a user previously had an inactive account or previously did not have a defined email. - Fix custom forms multi value issue where selected value do not work on reload if the value contained a comma. - Fix missing comma in JSON output in recordset report tool - Fix issue where stale login sessions were not properly purged from sessions table - Fix issue where preceding zeros were automatically chopped when entering new inventory within a range of new barcodes - Fix issue where loaded LDAP attributes were not properly encoded to utf8 which could cause problems with users who have extended characters within their name, or email address. - Fix Label templates due to DPI change in SVG renderer - this fixes layout alignment issues with Avery Label printing - Fix issues with loading TrainingCompliance views after using admin feature to switch user accounts - Fix issue where form administrators who are not database admins are unable to edit workflow - Fix invalid link issue on recordset reporting tool when exporting a report by right clicking the link - Fix issue causing some custom fields to be displayed as date widgets. - Fix issue with update inventory when filter is not preserved - Allow guests to submit haz waste requests System Administrator Notes ======================================================== - Add new LDAP related fields: ldap_office_attrib, ldap_wk_phone_attrib, ldap_affiliation_attrib, ldap_department_attrib, ldap_user_status_attrib, ldap_authentication_disabled, ldap_simple_bind_auth (new fields documented in conf/cems.conf.sample) - Disable LDAP auth when ldap_authentication_disabled is 1 - Improve default values for login_bind when ldap_simple_bind_auth is enabled RELEASE NOTES 2.1.105 (2021-04-13) Enhancements ======================================================== - Auto open SDS when in review mode - Add link to My Container Locations that opens the ERRoomList module - Prevent accounts with name "service account" from being auto deactivated - Extend user email max length to 190 characters - Improve memory usage in fix memory usage PassportRecord feed upload allowing larger feed uploads - Add unhcems_passport_upload_success return status code when uploading passport feeds - Work around new Google Chrome limitation where autofocus in iframes is disabled - Add chemical inventory quickscan barcode feature - Add Symbol History admin view to Passport so users can view a history of used passport symbols by date - Ignore null values in duplicate value check for custom forms - Improve custom form duplicate value error message to include sys id of duplicate records in FormSubmissionRecord or a list of used duplicate values when setting unique in FormElemRecord Bug Fixes ======================================================== - Fix issue with saving form submission templates when form is not valid - Fix issue where user barcode selection was not saved in local cache if a return key code event was not sent for the last entered barcode in ContainerScan multi mode - Fix issue where other user barcode selections where seen in validation check when submitting multi scan form that prevented some users from searching for multiple barcodes - Fix issue where saved search alerts had an improper status of invalid email - Fix form_submission issue where create_date was set to 1980-01-01 for some users who had an error when initially submitting the form - Fix issue where SDS downloader was not reset due to some records having an assigned sdsdownloader_date - Preserve form changes when clicking update refill date, surplus, mark empty, or activate buttons - Ignore form submission templates in duplicate value check RELEASE NOTES 2.1.102 (2020-11-02) Enhancements ======================================================== - Add passport override history widget to PassportOverrideRecord and PassportOverrideList - Automatically remove custom form dashboard item entries when the custom form is deleted - Do not save rows_page for saved searches if the value is "All" since it can cause performance issues if the report grows too large. - Remove the delete notification from saved search alerts because it does not actually preserve the deleted data and isn't useful. - Improve saved search alert widget option to use a radio box for add/present options and set default to present. - Do not check for MAX_ROWS_EXCEEDED in email alert and instead control maximum sent content send by limiting email body. If there is too much data, the user will be presented with a link to load remaining records. - Include character limits in the warning/error error messages for saved search alert error email notifications. - Add new password account rules: length must be 14 characters or more (sites can control their min length using global var: MIN_PASSWORD_LENGTH) - Remove password constraint that it must contain upper, lower, digit/symbol if password is 14 chars or more - Add new password rule: password must not contain user's first name - Add new password rule: password must not contain user's last name - Add new password rule: password must not contain user's username - Add new password rule: password must not contain 4 or more repeated characters - Add new password rule: password must not contain 4 or more characters in series (1234 OR abcd OR AbCd) - Report the reason why a password is not accepted. - Set default PASSWORD_EXPIRE_DAYS to 365 days for CEMS internal authentication. - Add new global variable: AUTO_DEACTIVATE_ACCOUNT_DAYS with default value of 365. Accounts will be automatically disabled after this many days on inactivity. Users will receive an email two weeks before the account is deactivated notifying the user that their account will be disabled unless they login. - Enhance the Add Chemical Inventory form to make it more intuitive on how to add a barcode sequence. - Add new task to automatically disable user accounts after a user's password is expired. Users will receive an email notice before their account is disabled. - Auto open SDS when reviewing new SDS provided by the automatic SDS downloader - Add link to a user's room report (Emergency Response report) in the "My Container Locations" dashboard section. Bug Fixes ======================================================== - Fixed bug preventing some users from creating new SDS Binders - Fixed bug preventing some new custom forms from showing up on the dashboard - Fixed bug preventing users from submitting custom form records when there is a required, but hidden textarea or select element - Fixed bug preventing some uses from loading the form and report where the form had many file upload widgets on one form. - Fixed more instances of improper session scoping use which caused some notifications to be removed before they were seen by the user. - Fix bug preventing user.datelastlogin from automatically updating when a user logs in with single sign-in. Automatically update the user.datelastlogin based on data in the application logs. - Fix ContainerMerge error that could occur if uploaded file has a new building and a site.id=1 does not exist. The default site for new buildings is now auto set to min(id) from site - which should be the main campus, but this can be changed after the import. - Fixed bug preventing some administrators from switching users accounts (login as user button) when they were logged in with single sign-on and they were not coming from an ALLOWED_IP. - Fixed bug preventing some external links from opening in a new window - When saved search alert fails due to invalid email, properly record the event in the alert_err field - Fix issue with custom forms and conditional visibility on textarea and select elements - Fix issue where a user's last scanned barcode was not saved when scanning multiple barcodes in the update inventory form if the barcode scanner is not configured to append a carriage return to each scanned barcode. System Administrator Notes ======================================================== - Suppress invalid enrollment param message in server logs since it is commonly misspelled or linked improperly. RELEASE NOTES 2.1.100 (2020-10-16) Enhancements ======================================================== - Add username or email or ID to User autocompleters - Add fast barcode scanning mode to custom forms - Add several advanced options for controlling custom form input values: "set_if_undefined": "some value", "set_if_undefined": "#now", "set_if_undefined": "#today", "set_if_undefined": "#userid", "set_if_undefined": "#sticky", "set_if_undefined": "#userfullname", "readonly_widget" : 1 - Add DataLoader.pm to provide a place for custom data web services. - Add Passport app (a basic ticketing system) - Add advanced options for custom fields which can be used to configure advanced behaviors for custom fields. - Remove terms of service banner in SQL module since it causes problems with frame layout - Add global variable: SDS_DOWNLOADER_REFRESH_DAYS - Number of days SDS downloader will use for "Refresh Old" to determine if an SDS needs to be refreshed. The default value is 365. - Add global variable: CHEMICAL_INVENTORY_EXPDATE_ROLES -  Role(s) required to be able to edit the container expiration date. Comma separated list of user roles. Leave blank to allow anyone who can edit the record to edit this field - Add global variable: EXPIRED_CONTAINER_EMAIL_TEMPLATE - allows you to define a custom email message to users with expired chemical inventory. - Add global variable: CHEMICAL_INVENTORY_HIDDEN_ROLES - allows you to define what roles are required in order to hide chemical inventory. - Add advanced custom field options for chemical inventory fields: enable_container_update: true - which allow you to mark custom fields as being able to be updated using the "update inventory" tool. Bug Fixes ======================================================== - Do not change sign pictogram positions if pictograms is not in DOORSIGN_AUTO_COLLAPSE_SECTIONS - Fixed issue preventing custom form field step validation from working - Fix issue preventing users from marking containers hidden in update inventory tool - Fixed the waste pick up date to show up for each hazardous waste pick-up item for waste manager pick-up list - Fixed bug preventing users from receiving upcoming due training alerts - Fix issue where user can become their own supervisor when merging user accounts where one user is the supervisor - Auto shrink font-size on Container Record location field if there are locations greater than 30 characters so the full name fits on the screen - Fix access denied error issue affecting some administrators from switching user accounts. RELEASE NOTES 2.1.97 (2020-07-07) Enhancements ======================================================== - Allow batch updates on custom form responsible user field. - Allow department field to Building, Room, and Emergency Response reports - Add Quantity, unit, and container type to Container Update form - Add checkbox to update chemical record verification date - Add Verified Date and Verified By to chemical catalog/inventory reports - Add Site Search to EPA List of Lists report - Expand datetime field max character limit to 24 characters to allow users to enter full time values with AM/PM - Add LOGIN_SIMPLESAML_BYPASS_IP_RESTRICTION global variable to allow sites to allow users to login from any location as long as they login to their single sign-on system first - Remove "community" link on dashboard footer - Add "privacy" link on dashboard footer, add privacy/terms of service page - Do not show change password button or form to change password if user is logged in with single sign-on - Always remember custom forms field sticky values event after logout/login - Add chemical inventory "Last Update User" to ContainerList report - Add chemical inventory "Last Update Date" to chemical inventory reports and forms - Enhance CAS Hazard type record to allow assignment of hazard type to a list of CAS numbers - Improve the department field on the Create Account form - Automatically add admin task when there is a note/comment entered on the create account form and the user's account is auto activated. - Add field note about entering a daytime phone for work phone - Add SYS ID and date created as default fields on the custom form reports - Darken the horizontal rule divider on the login form to address report that it is not noticeable on some monitors - Add "User Status" to TrainingEnrollmentList, TrainingReqCompleteList, TrainingReqUserList reports - Add "User Department" to TrainingEnrollmentList report - Add "Creator Department" to FormSubmissionList report - After chemical inventory barcodes are updated, add links to the notification to bring the user back to the search form or the scan multiple barcodes form. Automatically clear selected barcode list when clicking these buttons. Bug Fixes ======================================================== - Fix invalid sample data in ContainerMerge upload template - Fix performance problems with container locations report causing one reported user's inability to load dashboard - Prevent users from accessing CEMS if their active account status is removed while they are still logged in. - Fix issue with Expired Container List email alert showing HTML email as text - Do not hide the chemical inventory location select box down arrow - Fix issue where some multi-line text boxes were rendered as single line text boxes due to differences in database schema types on at least one self-host database - Fix issue where associate SDS button was not working for new chemical records - Fix issue on some sites where some SDS were not viewable by guest users RELEASE NOTES 2.1.94 (2020-04-08) Enhancements ======================================================== - Set default RAD_ACT_ROUND to 6 if global var is not defined - Enable readonly access to rad_usage_log report for rad owners - Add links to view only RadUsageLog report for authorized users for their own records on dashboard. - Add ability to control auto collapsing empty door sign sections as global variable: DOORSIGN_AUTO_COLLAPSE_SECTIONS - Replace "active" chemical inventory tag with either "empty" or "transferred" to better indicate the status of an inactive container. - Add "Total Flam Liquid (NFPA 2, GHS 3-4) (gal)" field to RoomList and ER reports. - Rename "Total NFPA 3-4 Flam Liquids" field to "Total Flam Liquid (NFPA 2, GHS 3-4) (gal)" to show how both NFPA and GHS are used. - Rename privilege "Update MSDS" to "Update SDS" - Added ability to customize how data derived user privileges are assigned using new global variable: SET_USER_PRIV_USING_SQL. - Added new user privileges: "Chemical Inventory Owner" and "User Supervisor". These new privileges by default are automatically set using the rules defined in the SET_USER_PRIV_USING_SQL global variable. - Added new UNHCEMS administrator community/news/knowledge share section for database administrators. This shared knowledge section replaces the previous UNHCEMS Google Community page which Google discontinued. - Added GHS code to ContainerList Hazards (GHS) fields; improve readability by separating each with a new line. - Add support for "." in barcodes in HandyCEMS - Add storage state as a selectable field in the Chemical Inventory Usage Over Period report. - Add GHS pictogram descriptions for all pictograms. - Add Building select to ER report with building stats similar to room stats. - Expand chemical product barcode field to 171 characters - Add support for services workers to allow HandyCEMS to continue to function offline (previous method will not longer be supported in browsers in April 2020) - Modify ContainerMerge to remove byte order mark (hidden character) which caused file upload problems. - Add building notes field to Building List report. - Disable quantity units that do not have standard unit conversions from being used in new records.  - Remember the original user entered density unit type on the chemical record form. - Set the Biological inventory date added default value to today's date for new records. - Allow users with the User Manager privilege to edit a user's colleagues, departments, and accessgroups. - Allow SDS managers to enhance SDS Binders with additional SDS. The SDS chemical does not have to appear in the room. Bug Fixes ======================================================== - Allow attached files in dashboardgrp.content, notice.message, training_req.user_instruct_html fields - Auto clear sign user contact ID when sign contact name is empty to fix invalid inactive user on active sign alert. - Fix invalid barcodes "not found" warning when CEMS barcode is numeric type and barcodes are entered with preceding zeros on the ContainerUpdate module. - Fix first scheduled form submission date for form submission templates that use a sliding due date and do not have an initial form submission. - Fix UTF-8 characterset warning that appears when running bin utils on a UTF-8 configured CEMS system - Fix issue with batch updating fields on the FormSubmissionList report. - Set the default date to the current date for new records in the TrainingReqUserRecord form. - Do not show disabled rooms in the Emergency Response Room Report. - Fix bug that flagged a user's password as expired after creating a new account using the create account form. - Fix issue with CEMS not finding product barcode matches that contain a "+" character. - Fix invalid unit conversion error for total flam liquids when substance uses mass unit of measure and has an undefined storage state. - Fix invalid record link for uploaded SDS in application logs. - Do not overwrite administrator renamed custom form dashboard group names after saving a custom form properties record. - Fix an issue preventing users from viewing their colleague's biological inventory when the user has been granted explicit access to do so. System Administrator Notes ======================================================== - Added docs/FAQ_sysadmin.txt with system administrator frequently asked questions. RELEASE NOTES 2.1.91 (2019-11-08) Enhancements ======================================================== - Always prompt for update inventory options (do not remember previous saved update options) due to user feedback that it can be confusing when applying batch barcode updates. - Add a multi barcode search mode to the SearchInventory form - Always show the search inventory form at the top of the search inventory page when results are displayed to make it easier for a user to adjust their search. - Enhance the CustomReport feature to allow administrators the ability to set the open record link using a OQ_EDIT_LINK column alias. This feature allows cems-support to build better custom reports. - Add "Assigned By" and "Assigned On" fields to the TrainingReqUserRecord and TrainingReqUserList reports. - Allow users to save more than one submission for a template with a due date interval on the same date. - Add support for Avery 8160 labels. - Add "Previous Locations" and "Previous Owners" fields to ContainerList and Search Inventory reports. Bug Fixes ======================================================== - Fix missing CAS Concentration field filtering on Chemical Report. - Fix issue where door sign contact ID was not being set properly when choosing a new door sign contact which could have caused the sign to be flagged with inactive door sign contacts. - Fix issue with date field validation that prevented users from selecting a date in a month with less days than the current month when the current day is greater than the days of the month for the month selected. For example if today's date is Oct 31, and the user wanted to select Feb 5, CEMS would not allow users to change the month to February because February has 28 days and the current day of the month is greater than 28. - Fix chemical inventory dashboard links. - Fix issue preventing QR code field from loading in FormSubmissionList templates report. - Fix view permission error when opening a form submission record based off a template when user is not an admin or creator. System Administrator Notes ======================================================== - add instructions to install PHP 7.2 FPM using RedHat software collections to support latest security updates for SimpleSAML - improve setup.pl missing dependency warnings RELEASE NOTES 2.1.88 (2019-10-09) Enhancements ======================================================== - Show Quantity (container size) by default on all Search Inventory results - Show current activity on rad waste in rad drum when rad drum is not closed - Added "My Container Locations" dashboard summary; removed previous select widget - Added SDS Binder feature - Improve SDS Downloader prioritization of updating older SDS documents over newer documents. - Add Chemical Owners as room contacts when no door sign is available on Emergency Response room report. - Allow batch updates on Custom Form Submission Templates for fields: "Start Due Date" and "Sliding Due Date" fields - Improve CEMS application log report performance by adding default filter "LogDate > today - 1 year" - Add default filter on the Training Requirement Complete Report to only show active users. - Add code to always prevent administrators from deleting training courses with enrollments. - Revert 2.1.85 font style due to user feedback. Bug Fixes ======================================================== - Fix Water reactants false positive inaccurate quantity calculation notification on ER Room Report - Fix multi value CGI::param usage warning with latest Perl version - Fix terms of service banner problems with Internet Explorer 11 - Fix issue where the "open" link on the auto complete user widget could become invalid after select a different user. - Fix issue with Location Limits which prevented users from adding new inventory that should not be affected by the limit, to a zone that is over the limit. - Fix issue which could cause the the approve checkbox to disappear when an administrator attempts to approve a self reported completed training requirements. System Administrator Notes ======================================================== - Fix issue where the backup scheduled task would fail on some Windows Server versions. Added instructions to upgrade.txt to guide admins on how to fix the scheduled task. RELEASE NOTES 2.1.85 (2019-08-14) Enhancements ======================================================== - Allow users to configure the date range for reporting active inventory. - Add field to upload a container label photo as part of the chemical inventory record. - Update community link to cems-info usergroup meeting page. - Show in-transition chemical inventory with inactive badge. - Added customizable privacy policy / terms of service banner. - Added the ability to override the site timezone with new global variable: TIME_ZONE. - Allow saved searches which use invalid fields in filter or sort to load without evaluating the field; allows user to update their saved search if privileges change preventing access to a field used in the saved search. - Added Chemical Inventory Last Eval by year and reinventory priority factor to the room report. - Added Chemical owner email field to the room report. - Allow users to fix an uploaded filename by re-uploading the file with a changed filename. - Automatically detect missing file extension/content type for files uploaded without a file extension. - Allow Emergency Response data to be viewed and downloaded by site. - Improve Emergency Response room report formatting. - Improve door sign display on small screen devices. - Add door sign to Emergency Response room report. - Add Emergency Response stats to room report. - Improve door signs - Do not display empty fields on door signs which allows room for additional door sign contacts. - Provide instructions on how to cancel a training enrollment that was created by a training instructor or administrator. - Added instructions on how to create a classroom session training course with online test. - Add error message to container scan when no barcodes are specified. - Sort training courses by name instead of session date on dashboard. - Allow customization of Door sign top with global variable: SIGN_TOP_HTML; replace Replace caution image with accessible HTML mark up. - Allow up to 6 door sign contacts. - Auto collapse empty door sign sections to allow room for expanded contacts section. - Add maillog report which shows CEMS database admins a log of all emails CEMS has sent in the last month. - Improve OptimalQuery recview to use full available screen width. - Add HandyCEMS hardware recommendations to docs. - Add link to EPA list of list report. - Add Is Disabled and internal unique key to CAS hazard types; auto populate missing hazard types. - Rename CAS hazard types: "Prop 65 Reproductive toxin: M" to "Prop 65 Male Reproductive Toxin", "Prop 65 Reproductive toxin: F" to "Prop 65 Female Reproductive Toxin", "Prop 65 Reproductive toxin: D" to "Prop 65 Developmental Toxin" - Improve built-in CAS hazardtype descriptions. - Add latest Prop65 list, and a utility to import updates and delisting on upgrade. - Recognize chemicals with GHS classifications: H270 H271 H272 H240 H241 H242 H232 as oxidizers in ER report - Recognize chemicals with GHS classifications: H224 H225 as highly flam liquids in ER report - Recognize chemicals with GHS classifications: H260 H261 as water reactants in ER report - Recognize chemicals with GHS classifications: H290 H314 H315 H316 as corrosives in ER report - Added room GHS pic list and show by default on RoomList, and ERRoomList reports - Relabel field Hazard Classifications to "Hazards (GHS)" - Add "Hazards (full GHS)" field containing hazard statements - Add features from RadSiteMaxPossessionsList and RadUserMaxPossessionsList to RadSitePossessionsList and RadUserPossessionsList reports. Remove RadSiteMaxPossessionsList and RadUserMaxPossessionsList reports. Bug Fixes ======================================================== - Remove the "set as system default" function for custom form reports since it conflicts with the built-in function for defining default shown fields in a report. - Allow CEMS to send emails with lines over 1000 characters; fixes an issue identified with saved search alerts. - Fix issue which caused some pages to reload the entire page when the tab reload button is clicked. - Do not include disabled form submission templates in record count on Form record. - Fixed issue which prevented the related SDS button from appearing on some chemical inventory record forms. - Fix issues with printing door signs in Firefox. - Fix issue preventing upcoming due reports from showing up properly in recordset. - Fix issue where it was possible for users to overwrite chemical data with a new record when the user did not properly identify the chemical product. - Fix issue preventing custom forms alerts from appearing in the dashboard alerts section; the alerts were still being displayed in their normal dashboard section. - Fix the display of a user's name on training certificates when the user's name has changed and the certificate is cached. - Prevent "PHP Notice: Undefined offset: 0" warning when attribute is not defined in SimpleSAMLLogin.php. - Prevent "continue as guest user" button when user is required to login on Login screen. - Fix unit conversion error label being displayed on RoomList report when no unit conversion error is present. - Fix issue with RadUserMaxPossessionsList and RadSiteMaxPossessionsList not always picking the correct last usage log entry which had the potential to show the wrong cached balance when multiple usage log records are reported on the same date and fall on the report date window. System Administrator Notes ======================================================== - Ensure multiple upgrade/restore/backup/scheduled tasks are never allowed to run at the same time; fixes issue where database connection could become invalid or deadlock. - Update install instructions to use recommended Windows Apache binary distribution to the PHP recommended distribution which is required when installing SimpleSAMLphp integration. - Added support for anonymous LDAP binds. - Improve Linux installation by Auto enabling EPEL repo if not already enabled. - Improve Windows SimpleSAML support. - Improve restore.pl tool usage message. - Allow email or username to be blank when SimpleSAMLLogin calls authorize_session.pl - fixes issues when a user does not have an assigned email address. - Improve UTF8 conversion utility to prevent the site from breaking after a failed conversion. RELEASE NOTES 2.1.75 (2019-02-19) Enhancements ======================================================== - Added inline help for training system components. - Improvements to Login system to allow administrators to admins to enable/disable internal login and federated login interfaces independently. - Automatically hide "continue as guest" on login form if password has been entered in order to reduce button confusion. - Improved ER NFPA 3-4 flam liquid calculation to include chemicals that have a missing storage state, but have a defined "to liter conversion factor". - Added update to show the door sign for rooms in the ER report that are assigned as an adjoined room on a door sign. - Included additional fields for reporting purposes on the bio catalog and bio inventory reports for: modifiers, risk group assessment questions, and special instructions - Added a room merge utility to help resolve duplicate rooms. - Added New feature to track and report on chemical inventory consumption. - Improve tabbar icons, add reload button. - Automatically position notifications relative to the viewport so notifications can be viewed even if window is scrolled. - Add Owner Department College field to all custom forms reports which have an owner common field. - Improve Rad Drum dashboard widget - Allow users with a rad permit the ability to add rad worker colleagues. - Allow CAS numbers with dashes on Search SDS module. - Show CAS concentration on Search SDS module. - Allow location administrators readonly access to rooms stats field. - Show inactive users in colleague fields on Dashboard, User form, and User reports. - Add Site ID field to buildings report. Allow administrators access to batch update from recordset. - When creating a new custom form element record, auto enable default show in report option. - Add additional checks to ensure user cannot resubmit an already successfully submitted custom form. This addresses reports where users accidentally creating multiple new records after clicking the reload button. Bug Fixes ======================================================== - Fix issue preventing notifications from appearing on CEMS pages when CEMS page was opened directly from a web site on another domain. - Add missing red text to EPA list of lists report when a threshold is exceeded - Fix waste tag widget width in the request waste pickup form - Fix issue with the database admin manage data objects widget when the dashboard does a background refresh, the user becomes unusable by rewriting the component as a keyword tag cloud. - Fix bug preventing auto complete fields from triggering after a user pastes into a field using Firefox web browser - Fix Training Course Record bug preventing user from removing a course instructor - Fix accessgroup owner privilege check which prevented the view privilege from working properly for some accessgroup members. - Added missing select button on the user report when adding users to the training matrix. - Fixed bug preventing CEMS internal accounts from matching in the FindUsers utility while operating under multi-line mode and searching in First Name Last Name format. - Fix bug preventing administrators from using the "add to dashboard" feature. - Fixed missing notes field on UserRecord form when editing a new record. - Fixed an issue with the biological worker privilege that prevented some bio workers from seeing their lab associate's inventory - Fix favicon transparency issue in Firefox. System Administrator Notes ======================================================== - Set default mysql_dbhost to 127.0.0.1 to prevent issues with some systems attempting to connect over IPV6 when the mysql server does not use IPv6 - Fix SELinux file context affecting the cert directory in conf/simplesamlphp. - Additional compatibility improvements for ADFS simplesaml integration RELEASE NOTES 2.1.69 (2018-11-14) Enhancements ======================================================== - Enable batch updates for administrators on selected fields in directly from recordset tool. - Add support for new Epson paper formats for custom label printing. - Add waste category, and pictograms to waste records and reports. - Add recommendations dialog to waste record to help populate category, codes, pictograms, and is regulated. - Add delete record confirmation to waste record. - Always require user login when loading saved searches. - Add administrator warning when trying to send welcome email and welcome email template is not defined. - Format numeric fields without quotes in JSON output. - Add default show fields in template report. - Allow users to save incomplete custom forms if workflow name contains word "draft". - Improve response message on create account page when account already exists, account is inactive, and user is attempting to complete a training session. Error message now tells user to reset password using forgot password module. - Add direct link to pending waste pick up report to email alert - Add CSRF security protection to optimal query delete report function. - Allow users to remove saved searches even if they no longer have the authorization to load the report. - Improve the recordset shared link feature by removing unnecessary get arguments. - Easy lab transfer station configuration has been removed from CEMS global variables and now is stored in dedicated administration forms. Chemical inventory managers and database admins now always see a link to initialize the easy lab transfer station on their chemical inventory section of their dashboard. Administrators are presented with a link to activate the station if the station is now activated. A link to manage all easy lab transfer stations is also available. Bug Fixes ======================================================== - Do not validate emergency response contacts when saving door signs in processing mode. - Remove duplicate waste descriptions in waste description auto complete. - Do not perform weak password check for LDAP logins. - Fixed UTF-8 wide character issue when sending email with wide characters. - Add waste description index necessitating shrinking field to 191 chars; overflow values are chopped and original value stored in notes field. - Fix issue where SDS date was not updated automatically when auto downloaded SDS is marked correct and the new SDS replaces an existing SDS. Previously accepted SDS date are automatically corrected using application logs. - Fix HandyCEMS leading zero container not found issue. System Administrator Notes ======================================================== - Verify if user has file/system permission to complete a backup from commandline - Improve SELinux detection; do not execute setsebool unless permissions are missing. - Added document with instructions on how to migrate data from one CEMS server to another. See docs/data_migration.txt - prevent DBD::mysql from upgrading using setup.pl when using Microsoft Windows since they is an issue with the compile. Should not be an issue because the Strawberry Perl (the perl distribution used by Microsoft Windows) now bundles DBD::mysql. RELEASE NOTES 2.1.65 (2018-09-18) Enhancements ======================================================== - Add Training Requirement "Allow Self Report" field to optionally allow users to self report that they have completed a training requirement by uploading supporting documentation. - Add Training Requirement "User Instructions" field to optionally provide instructions to users on how to complete a training requirement when a CEMS training course is not available. - Add Training Requirement Complete "Pending Approval" status field to track whether a self reported training requirement has been approved. - Add Training Requirement Complete "Proof of Completion" field to store uploaded supporting documents showing that a user completed a training requirement. - Add Training dashboard item "My Upcoming Due Training Requirements" to provide information to users whose training requirements are overdue - Allow TrainingReqCompleteRecord to be used by non training admins to manage their own training requirement complete records. - Prevent administrators from reassigning the training enrollment record associated with a training requirement complete record - Automatically update other SDS found in chemical catalog when an SDS for a similar chemical is uploaded. Similar chemicals share the same chemical name and product number, but different manufacturer spelling or default qty. - Add related SDS field on ChemicalList report - Add related SDS field to missing SDS report - Improve notification dialog when new SDS is saved - Add checkbox "Ignore Missing SDS Alert" to chemical record to allow administrator to turn off the alert for chemicals that have no SDS - Enhance Training Compliance Matrix by allowing administrators to populate users from a user recordset. The user recordset can have custom filters (filter by department, college, supervisor, etc). - Automatically use today's date for default values for training enrollment records - Add support for label printers such as Epson TM-C3500 label printer - Add support for new label Durafast Chemical 815028 2.43" x 1.14" - Add support for new label Durafast Chemical 815048 4" x 2.5" - Enhance location limit alerts by displaying applicable alerts on container record screen when container contributes to the alert - Enhance location limits by adding support for a new type of restricted location that allows chemical inventory managers to provide quantity limits on CAS without prohibiting other inventory. - Enhance location limits by allowing users to add CAS matchers that may contain additional unspecified CAS. This makes it easier to restrict quantities when inventory may have additional CAS numbers not part of the location limit rule. - Allow users that do not have an active account to use the ForgotPassword and ChangePassword modules since this is needed to reset a password when a user does not have an active account but is allowed to access the training modules which require that the user authenticate. This only works when using internal authentication and does not provide access to other parts of CEMS. - Improve security by making password links only valid for 48 hours - Improve security by preventing users from accessing other parts of the system before they are required to change their password - Add links to contact admin to request that the admin reactivate their account when user logs in successfully but their account is not active - Improve error messages in ChangePassword - Allow videos to be more easily embedded using the Visual Editor - Add PDF download link under embedded uploaded PDF - Prevent error message when user cancels pending file upload in Visual Editor - Rewrite HandyCEMS web version to support all mobile browsers in offline mode - Add alphanum barcode support to HandyCEMS - Add barcode scan flood control to detect when user is scanning too fast for mobile device. This fixes issues with barcode scanning in iOS. - Add new field to chemical inventory and chemical catalog called Data Problems. This field currently shows issues where multiple CAS numbers have a total concentration over 100%. - Transform all multi select widget to the more mobile friendly multi-checkbox widgets. This includes the often used hazard classification widget on the Search Inventory filter. - Improve EasyLabTransfer audit logging. Add support for history triggers when CEMS is running without authenticated user in EasyLabTransfer mode. - Add default filter to SDSDownloaderLogs status="needs review" - Add button to restore Sub-Location value to original value after it is automatically cleared when location changes. - Relabel for consistency all "Inner Location" field titles to "Sub-Location" - Add dashboard link showing SDS needing review on SDS Dashboard - Always default to current date when new SDS is uploaded - Improve user experience by setting default unit to lbs in LocationlimitSubstanceRecord - Include parenthesis in recordset filter description - Display scheduled task alerts to administrators when the system detects that they are not running when they should - Improve TaskRecord form user interface - Added support for entering dates in "Mon Year" format such as: "Jan 2002" which automatically translates to date: 2002-01-01. - Improve content type detection when file extension is missing when displaying SDS PDFs - Strip zero width characters from all submitted data. Zero width characters sometimes appear in other programs such as Microsoft Outlook/Exchange. When data is copy/pasted into CEMS, the zero width characters are included but are not visible. While the invisible characters are usually harmless, they can cause issue when matching records i.e. when a user pastes their username or password. Bug Fixes ======================================================== - Fix issue where where SDS downloader logs were not properly cleared after an SDS waste manually uploaded - Fix login issue with CEMS not sending new session identifier in cookie when prior session is deleted - Fix issue with SDS Downloader and automatic download SDS checkbox on chemical record - Fix issue where recordset was not showing a field label when the label title was not defined - Do not allow users to manipulate readonly fields used in recordset filters. - Fix process error in TrainingReqCompleteRecord triggered in the unlikely case where a future training enrollment record exists - Fix HandyCEMS incompatibility with IE - Fix issue with some checkboxes not saving properly after being unchecked - Retain manufacturer label when user clicks back to chemical inventory search options - Fix edit profile link when user is not a user administrator - Do not send training reminder email when user is already enrolled in a future training course - Fix bug preventing administrators from updating barcode list in multi-update when clicking back - Fix permissions errors when running inkscape as Apache user - Fix bug preventing custom form from appearing on form administrators when "Require Template For All New Records" is set and there are not form submissions - Fix by with recordset filter parse bug causing recordset to wrongly insert extra closing parenthesis - Fix issue where scheduled tasks would not always run due to limited run window, or prioritization issues. - Add missing WasteList default filter System Administrator Notes ======================================================== - Update default scheduled task configuration to expand the window on when processes are allowed to run - Give higher priority to scheduled tasks that have not recently run - Allow most bin/*.pl commands to run as non-root including commands run as cron jobs: backup.pl and run_scheduled_tasks.pl - Upgrade SimpleSAML install docs for latest version RELEASE NOTES 2.1.57 (2018-05-31) Enhancements ======================================================== - Upgrade Visual Editor to include new functionality such as setting font style and font size - SCORM training courses can now be embedded within a training course online training content field by uploading (or drag and drop) a SCORM compatible zip file - Enhanced the visual editor to embed PDFs within a resizable frame instead of showing a download link - Enhanced the visual editor to allow users to upload zip files. The visual editor will open the zip file and render index.html if it exists. - Added help text to barcode field describing how to enter a barcode range - Updated credits page to include all current distributed components - Improvements to user experience when using visual editor pop up - Improvements to training course presentation frame sizing by setting size of frame based on the contents within the frame - Added training course preview function to allow course instructors to preview their course without creating an enrollment - Added delete test enrollment link to allow training course instructors the ability to easily remove test enrollments - Added improvements to user full name display when user record does not contain a first or last name - Added College field to department record, department list, user list, and search inventory - Allow the visual editor to be used with global variables: DOC_HEADER_HTML, DOCUMENTATION_PAGE_CONTENTS, RELATED_LINKS_PAGE_CONTENTS, SYSTEM_MAINTENANCE_HTML_MSG. This also allows administrators to upload and embed files into these fields. Bug Fixes ======================================================== - Fix Google Chrome compatibility issue with Visual Editor - Fix issue with saving existing training enrollment records - Fix intermittent issues with login redirect when user authenticates from an expired session - Fix intermittent issue with updating user training requirements after course completion - Fix issue preventing administrators from unchecking the disable template checkbox for a form submission template record - Fix issue where auto download SDS was not automatically checked for new chemical records when product match or chemical match was not found RELEASE NOTES 2.1.55 (2018-04-30 self-host release) Enhancements ======================================================== - Always show notices panel on dashboard for database administrators to make it easier to add new notifications. - Do not show device registration dialog unless BYPASS_IP_RESTRICTION contains Login AND RequestDeviceRegistration. Bug Fixes ======================================================== - Fix issue with Google chrome losing scroll position in a restored tab. - Fixed compatibility issues with older iOS devices that Apple no longer provides updates for. - Fixed issue that prevented older MSDS documents from loading when UTF-8 mode is enabled. RELEASE NOTES 2.1.54 (2018-04-10) Enhancements ======================================================== - Added "Upload Completed Training Requirements" importer - User experience improvements for WasteRecord form - Allow up to 191 characters in reqlog.remote_ip since it may contain proxy ips - Automatically set update eval date in default Container Scan options - Added UTF-8 character support. This feature allows international and expanded symbols not present on the US keyboard throughout CEMS. - Added support for custom file fields. You can now add a custom site specific file upload widget to built-in forms. - Allow CASReport to be broken down by sublocation. - Improved accepted date formats such as "Today" or "March 20". CEMS will automatically recognize more date formats. - Added HandyCEMSStats report - Added waste email receipt option to Request Waste Removal form. - Expired container extension now shows expired inventory as an alert. - Improve ContainerMerge utility to show additional details on how data will be merged - Update ContainerMerge to add individual audit logs for each updated container. for the container from the ContainerRecord form. - Added Chemical Inventory CASReport for displaying total quantities by CAS. - Added "User Manager" privilege. Assign this privilege to users who need the ability to add new user identities to the system. This privilege does not allow users to create new administrators. - Added "history" button to ContainerRecord providing administrators an easy way to view audit logs specific to the loaded ContainerRecord. - Increased the total custom form text question limit to 200. - LDAP authentication login now protects against password guessing attacks using the same code as the internal authentication system - Improve login error messages - Display nicer error messages when a user tries to load a report they no longer have access to because their account has been disabled - Added ErrorReports module to allow system administrators to review system error reports - Do not log network disruption errors/user stop request notifications in error reports - Extend backup zip creation time window to allow all hosted sites to be backed up within one night - Convert sessions table to InnoDB database storage engine as requested by a self host site - Remove system administrator auto email notification for error reports due to flooding when a site is probed by a bot. The errors are still logged in the normal error logs and available for reporting using the ErrorReports table. The ErrorReports table can be monitored separately. - Added URL alias for UpdateInventory to point to ContainerScan since some people are still using the old link - Allow relative paths in restore.pl - Allow restore.pl to restore data to a nonlocal database - Added ldap_login_help cems.conf option to optionally provide a site specific help message to users on the login page. - Added cross platform bin/setup.pl for system administrators to simplify CEMS installation - Removed run as root requirement for all bin scripts with the exception of setup.pl - Increased chemical inventory batch update to 2000 max containers - Improved dbadmin dashboard info section to include clear instructions on how to receive help, support, participate in the community site, and submit bug/enhancement requests. Bug Fixes ======================================================== - Fix mailto links in Google Chrome. Google Chrome has a bug preventing mailto links from working properly when CEMS's content security policy is enabled. This workaround fix will allow Google Chrome users to use email links again. - Fix expired inventory invalid count in link on dashboard - Fix permission caching issue causing some users to report that changes to the colleague form were delayed for five minutes. - Fix building name display in waste report - Automatically fix inversed entered chemical densities - Fix problems using barcode range operator when adding new inventory from the container scan screen when inventory update options are active - Automatically remove invalid saved searches on upgrade - Suppress missing email alert message on LDAP login - Remove double logging of error messages due to improper usage of translate_db_error - Fix recordset filter tool from showing previously used named form inputs - Fix parse issue when removing stale sessions that caused login problems with at least one self host site - Fix site URL widget in Android HandyCEMS. - Fix some broken notifications when running in window mode. - Fix login issue expired session issue when users attempts to login and do not already have a session cookie. - Reduce max custom fields to 180 fields since future mysql server versions exhibit issues. - Fix DataCatalog auto update on Windows RELEASE NOTES 2.1.39 (2017-10-29) Enhancements ======================================================== - Added Database Administrator upgrade notification when site has been recently upgraded in the last 7 days - Show conversion errors with links guiding user to fix problem on calculated quantity fields in SearchInventory - Rename Quantity gal and liter fields to "Quantity Fluid (gal or liters)". Quantity Fluid is 0 when storage state is solid. - Always show density field - Added DEFAULT_CHEMICAL_DENSITY_KG_L global variable with default value of 15 - Allow self host sites to run CEMS without SSL (a warning is displayed when upgrade.pl is executed notifying administrator that their site is not secure) - Added visual improvements to the DHS report making it easier to separate the different categories. Container count now shows all containers with assigned CAS. Each container is tagged with an R, T, S (Release, Theft, Sabotage) to indicate if the threshold for the reporting requirement is exceeded. Bug Fixes ======================================================== - Sort and filter SearchInventory Quantity fields numerically instead of alphanumerically - Fix problems filtering on unquoted dates using RecordSet - Do not log thumbnail requests - Fix custom forms workflow wizards privilege names - Fix permission issue with opening some SDS - Fix 7z command usage in install guide - Fix issue where CAS numbers entered on ContainerRecord and ChemicalRecord form where not being saved. Automatically extract these missing CAS numbers from the application request logs and assign them to the proper chemical record. - Autoselect the proper user on the training matrix when more than one user is present - Remove developer help from test_install.pl since it can cause confusion for system maintainers - Remove container_cleanup table report and info on differences in container.barcode from test_install.pl - Fix issues with adding saved search to dashboard when a sort with spaces is defined - Fix deprecated usage warning for newer versions of perl - Workaround for perl bug causing the creation of a unwanted global variable in lexical scope RELEASE NOTES 2.1.37 (2017-10-05) Enhancements ======================================================== - Automatically update dashboard group name when custom form name changes - Added help text to container option checkboxes on chemical inventory form - Improve default filter label for chemical inventory to display as "Is Active" - Update web browser URL when recordset is refreshed - Added "Share Link" to the recordset tool options - Improved recordset "add to dashboard" function - Improved labels for custom forms on the recordset dashboard group selector - Allow administrators to configure the "is alert" status for custom dashboard records - Add "inactive" tag to rows in search inventory recordset when record is empty, transferred, in-transit - Improved recordset URLs by removing URL arguments that are not necessary - Increased max number of new chemical inventory containers that can be added in one step to 999 - Added additional hover details to training compliance matrix - Added context menu items (right click to open menu) to the training compliance matrix: "add users with requirement", "open training requirement record", "show completion history", "open last completed enrollment". - Added context menu items to the dashboard for administrators: "edit dashboard item", "edit dashboard group", "new dashboard item" and "show all items". - Added "creator" field to training enrollment records to track who created the enrollment. - Allow users to cancel their enrollment if they were the creator. - Automatically merge email and username from user records to merge when the record to keep does not have a username or email. - Prevent duplicate error messages on save when record to be merged has the same username or email. - Add support for thumbnail preview within recordset for png, svg, bmp, ico file types. - Added dev_mode watermark to signal site is in development mode - Improve DashboardRecord form - Improve application security using HTTP security headers: Referrer-Policy and Content-Security-Policy Bug Fixes ======================================================== - Prevent custom forms from displaying on the dashboard when user does not have access to form - Obey AUTO_ACTIVATE_ACCOUNT setting with federated login - Fix issue with adding new accessgroups from user record - Fix are you sure you want to close dialog - Use darker borders in recordset printer friendly output - Fix issue where Training Compliance "completed, not required" checkbox was not visible - Fix user next training due dates when training requirement expiration value is changed - Fix rad drums over 10 halflifes dashboard alert to exclude removed drums - Changed liter to gal unit conversion factor from 0.2639 to 0.264172 - Changed kg to lbs unit conversion factor from 2.2046 to 2.20462 - Do not include solids and gases in ER NFPA flam gal calculation - Fix issue when adding new filter element from recordset filter dialog RELEASE NOTES 2.1.36 (2017-09-21) Enhancements ======================================================== - Added support for simple date math when filtering on date fields. For example, you can now filter using expression "[Date Created] > today - 2 months" - Training compliance matrix now remembers selected user and training requirement for the current login session - Dashboard now auto reloads when tab is restored - Added new fields to Training Requirement User List: days overdue, available courses, available course dates - Added new fields to Training Requirement List: description, assigned users, assigned overdue users, total completed, total available courses, next user due date - Allow custom forms administrator the ability to update a form submission record even when all required fields are not defined - Improve workflow widget for custom forms - Added custom forms data permissions and workflow wizard - Exclude overdue training requirements for which a user is currently enrolled in a course to complete - Added winsetup utility which automatically installs UNHCEMS, updates perl dependencies, and fixed line endings. - Added mod_perl support to linux install guide - Added tmp directory in CEMS root install to prevent issues with customers using small system tmp storage space - Added support for database connection caching - Added support for more date formats to date fields in ContainerMerge - Added collapsible sections to Location Limits report - Upgrade Optimal Query Recordset reporting tool - more date formats and date calculation expressions are available when filtering - Added new documentation for Custom Forms - Added system maintenance message while site is being upgraded - Added "history" button to access the audit trail for custom forms submission records - Present training course name and summary on login screen when user click training link and they are not yet logged in - Added Hazardous Waste Weekly Building Stats report - Auto correct mismatched recordset filter parenthesis - Added CEMS version info to the upgrade in progress dialog - Improve request log Login info for historical login data - Increase record form minimum width for large screens - Added support for latest SimpleSAML - Added pending tasks to manage data objects so administrators can view historical tasks - Use SYS ID for Template ID form form submission record templates - Added "Require Template For All New Record" option to custom forms - Added new fields: overdue, upcoming due, and history for submitted reports to form submission template report - Added button to set the active date for a form submission record based on the list of expected scheduled dates - Added form submission templates to manage data objects - Updated HandyCEMS to allow alphanumeric barcodes - Added email_smtp_server to cems.conf; removed it from global variables - Improved support for more Active Directory LDAP configurations - Added database schema validation to test_install.pl utility - Do not show FindUsers in UserRecord if LDAP configuration is not enabled - Allow non admins to view Form Submission Templates they are responsible for - Change overdue form submission count from total missing occurrences to total incomplete form submission templates - New HandyCEMS Android application with support for Amazon Kindle devices - Updated user account password rules to adhere to current security policy - Added MIN_PW_LEN (minimum password length) global variable (default is 8 characters) - Added USER_DEPARTMENT_REQ global variable to control if the department field on the create account form is required - Added USER_SUPERVISOR_REQ global variable to control if the supervisor field on the create account form is required - Added POLICY_STUDENT_CONTAINER_EDIT_LOC_ONLY variable to enforce a policy where students can only update the location field of chemical inventory - Added support for IPV6 IP address logging - Added link to the GHS reference guide on the Hazard classification record form - Added user help to test_sendmail.pl utility - Added support for readonly and printer friendly view for form submission records - Added a scheduled task to send reminder email to users who have incomplete online enrollments Bug Fixes ======================================================== - Added workaround for iOS keyboard popup bug - Prevent some web browsers from auto submitting form when user hits enter key on record forms - Fix broken custom form alert links - Fix issue with manage_account.pl utility where records would not update properly - Fix Internet Explorer 11 issue where parent tab was not refreshing properly - Fix liter to gallon conversion in search inventory report - Fix issue where non-admin users could reset chemical classifications; restore missing hazard classifications from the application logs - Added nature polluting GHS icon for H400, remove it from H412, H413 - Fix issue causing most recent historical SDS to not get automatically enabled after removing a primary SDS - Fix issue with filtering on two fields where one or more was empty - Fixed input focus issues with mobile browsers - Disable autocorrect and auto capitalize several fields - Fixed problem with conditional visibility and contains operator - Fixed problem with negation operator and conditional visibility - Fixed problems with Windows install instructions - Prevent unauthorized requests from showing up in the log as if they were successful - Use proper HTTP status codes, added workaround for Internet Explorer to disable "friendly HTTP error responses" - Fixed ContainerMerge upload issue caused by bug in CGI::param - Prevent unexpected expired session on mobile devices by renewing cookie - Fix issue with Location Limit max flam limit values that are blank - Fix issues with automatically populating data when creating records on the fly using the ".." button - Fixed issue with windows and test_install.pl - Added restore command support for backup files over 4GB - Prevent older versions of the tab layout system from being cached - Added missing form submission record ID to audit logs - Fix disappearing Android keyboard issue - Fix issue when filtering on CAS number on SearchInventory - Expired Container email alerts are now sent as HTML to work around issues with some sites security email filtering software - Fix performance issues with running the upgrade utility - Fix problem with ChangePassword when user has never loaded UNHCEMS before - Updated utility commands usage text to enclose command arguments with double quotes since single quotes are not supported in Windows - Improved security on FormElemOpts module - Fixed issue with creating image thumbnails in Windows - Fix the text label wrapping on several forms RELEASE NOTES v2.1.22 (2017-04-26) Enhancements: ======================================================== - Improved print mode when printing a custom form record - Install a non site specific Training Certificate template - Provide instructions on how to create Training certificate templates - Allow Database administrators to set the default training certificate template for a site - Allow training course instructors to set the training certificate template for a course - Provide better support for enrolling users into an online training course - Added global variable: TRAINING_REMOVE_INCOMPLETE_ENROLLMENT_DAYS with default of 20 days - Configure task to auto remind users to complete uncompleted online training enrollments - Improve ER download instructions - Improve global variable record value widget - Allow commas in Chemical Inventory multi-scan mode - Updated user guides - Allow database administrators to delete custom forms and all associated data - Added instructions on how to enable mod_perl deployment configuration - Updated timeline document - Improve open record button in RecordSet record view mode - Added a filter button to RecordSet record view mode - Set current user as the default form administrator when creating a new custom form - Add database connection caching support - Add mod_perl to install instructions - Do not allow web browser to autocorrect username/email fields - Always use CEMS tmp directory to create backup and ER zip files (fixes out of disk space issue in /tmp) - Prevent web browsers from autosubmitting forms that have one button when users hits the enter key Bug Fixes ======================================================== - Added additional security enhancements to uploaded files - Fix issue with invalid expired page error on ContainerRecord after save error - Fix flame location limit totals - Fix issue with saving SDS - Improve section 508 compliance - Fix issue where custom form links were missing for guest access - Auto reload dashboard when session times out to prevent the dashboard from not responding - Added missing dependency to install_simplesaml.txt - Added ntp install dependency to ensure system clock is correct - Fixed output when removing a broadcast notice - Removed several unused files - Fix logic error when a conditional visibility expression contains multiple values and uses a negation operator - Restore autofocus code on add chemical inventory form - Provided a workaround solution for a bug in CGI::escapeHTML that caused a container merge upload to fail RELEASE NOTES v2.1.18 (2017-03-21) Enhancements: ======================================================== - Enhanced location limit module with the ability to specify max gallons of flammable liquids - Added new file upload widget which supports immediate file upload after file selection, file upload progress updates, client side scaling and reorientation, clearing, and display of file information such as file size, date uploaded, and user who uploaded the file. - Enhanced ContainerMerge module (allow users to insert/update chemical inventory from a CSV file). The CSV file now supports many new fields. The fields can be uploaded in any order. An example CSV file can now be downloaded. - Added a reload button to the DHS Chemicals of Interest report - Orphaned files are no longer automatically garbage collected until after 4 days to allow them to be backed up. - make the hazards from CAS stand out more on the Chemical Record form Bug Fixes ======================================================== - Fix issue with deleting Chemical Inventory and SDS saved searches from dashboard. - Always disable dev_mode in test_sendmail.pl script. - Added instructions for configuring a different SMTP server. - Fixed some incompatibilities with Windows build. - Fix issue where update inventory module was not properly updating. - Do not auto update User Record information from LDAP for existing user. - Fix issue where email alerts were reset when a user's email was unset. RELEASE NOTES v2.1.10 (2017-02-01) Enhancements: ======================================================== - Allow alpha numeric chemical inventory barcodes. Admins can enable this feature by setting global variable: CHEMICAL_INVENTORY_BARCODE_ENABLE_ALPHACHAR to 1. - Added separate multi-scan update mode - Installed latest EPA list of lists reporting criteria - Allow date range for List of lists report - Round to 3 decimal places in List of Lists and DHS report. - Improve install instructions to use latest EPEL install location - Improve custom form CSV import file compatibility - Auto convert room text field to room ID for custom form data importer - Improved error messages for imported custom form data with invalid date formats - Hide container action buttons for new containers - Improve access denied message in ContainerRecord - Added named filter to show "Possible Missing Decimal Qty". - Added bin/test_install.pl that runs some tests to ensure application is functioning properly. - Disabled request logging for Thumbnail requests. - Ensure a partially upgraded database can not be backed up. Bug Fixes ======================================================== - Prevent admins from merging a record on top of the same record - this fixes an issue where data could be accidentally deleted. - Add support for restore command to restore older backup files - Fix PDF loading bug in Google Chrome - Fix issue where Nature polluting pictogram may still not be defined - Fix problem with datetime to timestamp auto type conversion with older versions of mysql - Fix CSRF issue with RadUsageLogRecord - Fix upload/display of raduserpermitdoc file - Clean up invalid MSDS records - Fix problem with upgrade_2_0_104 when fk_chemical_cas_chemical already defined. - Suppressed logging non-error exceptions in ContainerRecord - Added upgrade to restore decimal component of container quantity. - Fix issues with setting the density value of a chemical record. - Show "missing density" message for container missing a density that require conversion to pounds. - Do not factor in historical locations when setting the default location after choosing an owner on the container record form. RELEASE NOTES v2.1.6 (2016-12-06 - self host release) Enhancements: ======================================================== - Added Inventory Scan App for Android and iOS (see instructions on documentation page) - Added more associated links throughout - Added Separate built-in and custom documentation sections - Added remove button on review chemical inventory update list - Detect and provide improved error message for invalid SDS upload - Added GHS signal word, SDS date field to chemical inventory reports - Existing FormFile records referenced in FormSubmission open in new tab/window rather than take over current tab/window - Improved ContainerCleanup screen - Remove "compliance manager" roles as a superuser of all custom forms in the system - Allow training administrators to enter "0" for training course course_complete_minutes - Enable print label button for all users that have access to chemical inventory - Allow anyone with view access the ability to reactivate a found container - Don't allow users with only update inventory privilege to edit existing room, building, and manufact records (they can still add). - Added Environmental Hazard GHS pictogram - Allow administrators to save any recordset report as a dashboard record Bug Fixes ======================================================== - Fixed issue with SDS Downloader not finding an SDS when one was available - Make all dashboard alerts bold - Fix problem when inserting multiple barcodes - Fix GHS pictogram scaling issues on Print Labels module - Prevent stale static file caching on ContainerRecord, ContainerScan - Fixed iOS/Safari scrolling issues - Fix container mark empty function - Fix double escape issue with some textarea widgets - Allow training content to be presented in full screen - Fix issue with Quantity unit widgets - Allow anyone with the ability to edit any chemical inventory access to ContainerScanQuickSaveOptions - Fix issue with negative logic conditional visibility - Remove CAS NUM_CONTAINERS LAST_ACQUIRED_ON fields as show default because of bad performance in EL6 - Fix issue where dashboard loses CSRF token on refresh causing page refresh problem - Trim leading zeroes on multi-barcode scan - Fix Compliance to Custom Forms converter when date field contains invalid date - Remove has_chem_inv filter in on select recordset for AutoCompleteUser - Fixed problem with SearchInventory by location field - Improved NFPA data entry tab order - Fixed MergeContainer module - Fixed disappearing quick links - Added ignore empty container option to duplicate container review report - Added mark in-transition to container scan options - Added container activate function and notification for disabled containers - Added auto generate waste request function - Ensure container qty can not be negative - Improve CAS widget height - Fix issue where CAS hazards were not displaying properly after entering a new CAS - Fix issue where some lab manager inventories were not showing up on a lab associate's dashboard - Fixed issue where location selector was not showing more than 50 results - Only send training requirement overdue emails when requirement is marked Send Overdue Emails - Fixed issue where SDSDownloader files could be deleted because there was a missing foreign key RELEASE NOTES v2.1.0 (2016-10-10) Enhancements: ======================================================== - Add new POLICY_SEARCH_ALL global variable. When this variable is set to "1" any user that has view access to chemical inventory can search all inventory if they search uses three or more alphanumeric characters within the chemical name, molecular formula, CAS, or product number fields. - Added functionality to disable sign pictograms. Disabled pictograms do not show up in the sign pictogram picker. - Relabeled "Home Phone" to "Alternate Phone". - Calculated NFPA now prioritizes special hazards in the order of: -W-, OX, SA. - Added pending device activation request alerts to dashboard - Do not allow a saved search to both be an alert and a default saved search. - Added support for scanning product barcodes - New Chemical Inventory Form - Removed Associate SDS module. SDS management now is handled by the Chemical Record form. - New Chemical Record Form - Improved HandyCEMS update inventory feature - New Add/Update Inventory Form - Added chemical inventory owned by inactive user report - New Collapsible Dashboard. Dashboard groups now automatically refresh when expanding. - New Dashboard Alerts Section. User alerts are now also displayed at the top of the dashboard for increased visibility. - Added message to search inventory form informing the user they have limited search capability when the user does not have view all inventory privilege or POLICY_SEARCH_ALL is turned off. - Added improved application logs. All requests are now fully logged including data fields. Added "application logs" link to Database Administration section on dashboard. Removed Webalizer link. - All files (SDS, Visual Editor uploads, Pictograms, BioFactSheet, Chemical FactSheets, RadisotopeFactsheet, RaduserPermitDoc) use a new file deduplication library. Sites will save on average 800MB of disk space. - Chemical attributes such as GHS hazard classifications, CAS, density, and NFPA automatically update when other chemicals sharing the same SDS are updated. - All upgrade logs are now recorded automatically in logs/upgrade.log - Auto merge all users sharing the same email or username. Added unique constraint for email and username to ensure duplicate accounts are not created. - Updated Particularly Hazardous Chemicals page header based on feedback. - Move all data stored in htdocs to data directory. - Improved backup command. Auto detect old version of zip library and offer workaround advise. - Added active/inactive containers link to chemical record. - Improved security for change password, forgot password emails using SHA256. - Implemented cross site request forgery token system. - Add file protection to RadUserPermit files. - Improve backup command speed by disabling compression of already compressed data. - Added -admin and -passlink options to manage_account.pl - Improved notifications when saving records to include link back to record. - Convert CEMS to a product specific chemical database system. This allows chemical attributes such as density, CAS, molecular formula, GHS hazard classifications to be product specific. - Auto merge duplicate product/manufacturer chemical records using most recently created record. Provide a report to administrators called "duplicate product container review" showing the differences. - Added associated links on name type fields to their associated record when the user has access to open the record throughout the system. For example when a user's name is displayed, the name is now a hyper link to the user record. - Allow anyone with an active account to open a limited view of a user record in read only mode. - Orphaned Visual Editor uploaded files are now properly deleted. - Allow visual editor in NoticeRecord. - Added ContainerHistory report. - Add CAS number formatting with dashes through the system. Allow users to enter CAS numbers with dashes. - Added autocompleters to AdoptContainer. - Updated SimpleSAML documentation for latest SimpleSAML version. - Added direct SDS link to SearchInventory and ChemicalList modules. - Added alert report showing current in-transit containers. - Emergency Response module now shows most recent SDS for a given chemical name. - Automatically reload dashboard when administrator switches user accounts. - Custom Forms are now sorted properly in dashboard. - Removed several old unused global variables. - Rewrote the Print Labels system. Added support for Chemical Resistant 60506 and 5160 labels. Labels now contain GHS pictograms and labeling. - Added improve date widgets. Virtually and date format can be entered. CEMS will automatically convert the date to the proper format. - Improved display of database error messages. - Added LDAP support. Custom code edits are not longer necessary. - Added help text to Training Course record documenting on what makes a course online versus classroom session. - Updated Support for Windows 10. - Prompt user to set CEMS site description if not already set. - Added Custom form alert dates. Custom forms can optionally have an alert date field. When the field is past due, the owner and administrators of the record will be automatically alerted. - Added Owner Supervisor and Owner Department fields to Form Submission reports. - Allow other user attributes fields such as user status, work phone to authorize_session.pl which is used during federated login. - Modernize and provide consistency for all forms throughout system. - Added a Stats field containing links to all associations in UserList - Added a Stats field containing links to all associations in RoomList - On Rad Drum report show half lifes decayed using close date of effective parent drum instead of direct parent drum, show activity calculation for removed drums for the date removed, improve name of fields, show halflifes decayed from date closed; on rad waste list remove half lifes decayed since this depends on the parent effective drum that it is stored in. - Added more dashboard icons. - Display dashboard icons on tab bar. - Improve tab bar height. - Implement scrollable Training Matrix - Auto update training requirement complete records whose corresponding training enrollment record date or status has been updated. - Added building code, room code, floor code to room and building records and reports. - Added task to auto mark empty in-transit containers after a period of time. - Added Custom Field capability to Chemical and Container forms. - Added SDS icon. - Show deactivated GHS classifications as strike though text until record has been saved. - Added support for Barcode Scanning IOS App. - Added GHS classifications to SearchInventory and Chemical List reports. - Display SDS inline with chemical record form when space is available. This makes it easier to correct chemical information. - Set default training course complete minutes to 1. This setting allows administrators to define how long a user must wait and learn training material before starting the test. - Added training matrix "ok-warning" status as symbol using checkmark with (!) for already-fulfilled training that is about to expire. Bug Fixes ======================================================== - Fix bugs with default saved searches with defined filters. - Don't show owner and location autocompleters on search form if user does not have permission to use them - Fix problem with training course grade book. - Fix date period fields on Rad Dashboard - Fix issue where some valid CAS numbers were flagged as invalid. - Fix issues with JSON library usage which causes problems on older Enterprise Linux systems. - Fix upgrade issues due to upgrading older CEMS databases with incompatible functions. - Fix filter logic on default sign report. - Fix scroll dashboard iframe scroll issue with Safari and Chrome. - Fix auto clear inner location on room change. - Fix location not showing up after room select. RELEASE NOTES v2.0.93 (2016-03-15) Enhancements: ======================================================== - New Custom Fields Module add custom fields to core record forms and reports - Added Alert Reports for Training Courses with Overdue Grades - Added Chemical Inventory audit tracking for owner, location, and inner location. - Added "Last Update User" to chemical inventory records. - Added the ability for administrators to update product numbers in Update Inventory. - Added IP & date fields to device registration module - Added Default Saved Searches database administrators can now set the default saved view for any report - Added SDS Automatic Downloader database administrators can now automatically find their missing SDS - Added support for showing missing SDS for containers without a defined manufacturer or prod no. - Door Sign NFPA's now appear as a diamond SVG throughout the system - Allow dynamic content in Generic Forms - Improved support for SELinux - Added interactive data associations features to UserList, UserRecord, RoomList, and RoomRecord - Added Chemical Owners, Sign Contacts, and NFPA components to RoomList. - Added support for federated login using simplesamlphp.org - Improved manage_account.pl with new options: -sendwelcomemeail, -resetroles, -addroles - Allow users to enter cas concentration totals that exceed 100% (manufacturer's use ranges that total over 100%) - Auto Redirect to appropriate page for common URL misspellings - Improved Chemical Labels template based on user feedback - Added global variable to optionally limit barcode field length - Auto clear inner location field when new location is entered - Improved sorting by quantity field Quantity fields can use different unit types. CEMS will now internally convert quantity to kilograms then sort numerically. - Added function to highlight chemical with asterisks on the DHS report. - Migrate old certification database to training system. Remove certification system. - Added GHS Hazard Classification picker to SDS Record - Added TEMPLATE_WELCOME_EMAIL global variable allowing administrators the ability to customize or turn off the default welcome email. - Transparently check if record already exists with defined name when creating a new record. Automatically notify user right away and present a button to load the existing record. - Added feature to allow custom form administrators the ability to set a custom message in their outgoing email. - Reduced the timer to the minimum amount of time a user must review course training materials to one minute. Bug Fixes ======================================================== - Fix issue where some users were not seeing update inventory link on dashboard - Fix issue where stale enrollments were causing issues with users reenrolling. - Fixed various bugs in Windows deployments - Fixed an issue with filtering on the hazards field in the chemical catalog report - Fixed a problem with manufacturer links on the Associate SDS page - Allow unspecified Sign NFPA values - Fixed dashboard alert count mismatch - Removed EmailMergeTool (administrators should use an Excel mail merge instead) - Fixed Account Request form issues with saving some fields such as department, supervisor - Fixed issue where autocomplete widgets would not work after pasting value. - Renamed Generic Forms to Custom Forms. - fixed RoomList has_chem_inv named filter - provide default path to inkscape binary - fixed issue where email alert for overdue custom form templates was not sent. - fixed invalid assignment of supervisor on the account request form RELEASE NOTES v2.0.75 (2015-09-03) Enhancements: ======================================================== - Added User guides to documentation page - Show chemical hazards on chemical inventory form - Only show active users in colleagues panel - Added print labels button to ViewContainer module - Add hazards field to chemical catalog report - Changed ER inventory view units to gal and lb instead of l and kg - Enhanced ShowUser to bring user to UserRecord if user has priv - added field Owner Email to SearchInventory report - added sign creator field - added fields for Num Containers, and Num Signs in UserList report - added new Request New Feature / Report Bug form - upgrade install guide for latest RedHat/SciLinux 7 - Allow user to make an embedded video full screen - Add support to redirect to initial location after a force change of password - Added Individual Generic Form administrators - Relabeled MSDS to SDS - Add auto completes to waste RequestRemoval form - Move generic form uploads from database to file system - Auto generate and show picture thumbnail for generic form file uploads in recordset and on form - Added name and email field for guests so that admin can contact them - Add default filter to TrainingReqList to hide inactive requirements by default - Show New Record button on SearchInventory form when user has privilege - Add direct link on dashboard to create a new course Bug Fixes ======================================================== - Expired Container fixes: exclude empty containers, add missing columns - Fixed bugs with file drop in visual editor - fix some issues with the date picker - fixed performance problems with searching on chemical hazards - set shelf life to 0 where it is null - fix issue where user completed req was not added after instructor marked pass and clicked save on the training course record form - Force Internet Explorer to use latest engine (IE=edge) - add 5 minute check before a user is allowed to start a test or complete a course since they started it - auto clean up stale sessions - Improvements to managing MSDS within the chemical record - added some missing applog messages - Remove device registration link when device registration is not enabled - remove form submission templates from submission count on dashboard - do not clear value on autocomplete widgets when users cancel operation - update install guide; ensure user is root when doing a back up - fix issue adding new training questions when training req record hasn't been saved - allow training instructors to add training courses, reqs, and test questions - Changed permissions on the PrintLabels module to only allow chemical inventory managers access - added upgrade note regarding new email_from cems.conf field - prevent web browser from caching MSDS to MSDS filename redirect RELEASE NOTES v2.0.66 (2015-05-06) Enhancements: ======================================================== - Installed Container Labels module. This feature allows users to print their own container labels. - Support Adjoined Room Door Signs. This feature allows users to designate that a sign belongs to multiple rooms. - New BYPASS_IP_RESTRICTION global variable. This setting allows administrators to specify modules that can be used by users off campus. This is especially useful if you would like users to have the ability to access the training component of CEMS from home. By default, no modules are bypassed. - Allow links can be opened in new windows for the DHS and EPAListOfLists report. - Recordset Alerts. Users can now receive optional email alerts when records are added to their saved views. This is useful, for example, if you would like to closely monitor inventory with particular hazards. - New restrictions for non administrators added to UserRecord. Non administrators can no longer set roles for other users. - New "colleagues" module. This module allows users to manage their own associations between other users in the system. Chemical owners can now add a "colleague" to their list of users that can access their chemical inventory, biological inventory, or radioactive inventory. Users can also specify their supervisor. Supervisors can configure their assistants. This feature replaces the old "Lab Associate" and "Lab Manager" functions. - Show Missing MSDS for chemical inventory that does not have a MSDS defined. - New Generic Form Data Uploader. This module allows administrators to upload CSV files directly into the Generic Forms system. - Added "Resolve Button" to Pending Tasks report. Pending tasks are no longer deleted when resolved. - Added new CreateAccount module. This replaces RequestAccount and allows users to directly configure their own account. After the CreateAccount form is submitted, the system will automatically create an inactive account with no roles assigned. - New AUTO_ACTIVATE_ACCOUNT global variable. If this is set to "1" (default is off - "0"), CEMS will automatically activate new account requests. Active accounts don't have additional access in the system. Chemical owners can however use the new colleagues feature to grant users access to their system. - Added Expired Inventory module. This module alerts users when they have expired inventory. Users can choose to either request an extension or request waste removal. This module is not enabled by default. To enable it, open the dashboard manager (manage data objects -> System -> dashboard), modify filter to: [Is Disabled]=1, open dashboard item records: "expiredcontainerextensionrequests" and "expiredcontainersownedbyuser" and set "Is Disabled" to "no". Click "save". If you'd like your users to receive email alerts about their expired inventory, enable the "Expired Chemical Inventory Notification" scheduled task. Also make sure you configure the EXPIRED_CONTAINER_EXTENSION_DAYS and EXPIRED_CONTAINER_EXTENSION_REQUEST_EMAIL global variables. - Merged "view all inventory" report with the similar "search inventory report". This makes the reports consistent. To access the admin only container record, click the barcode link on the view container form. - Added static file versioning. This prevents web browsers from caching resource files which may cause errors when using CEMS. - Added "email_from" cems configuration. This value sets the default from address when CEMS sends email. The default address is 'cems@hostname'. The global variable DEFAULT_CEMS_EMAIL_FROM is now used as the reply-to and can now be set to a non system email address. - Added a file upload button for the Visual Editor. You can still drag and drop files. - Improve BioInvRecord form with autocomplete organism field - Automatically default to numeric operator for non character type fields when filtering using recordset. - Add DHS classifications to chemical hazards. - Significantly improved performance when searching chemical inventory - especially when filtering on the hazards field. - Added Building, Room, Date Inactive, Room Notes, Building Code, Room Code, Floor Code fields to Search Inventory - Added recentAdded, recentDisposed to Search Inventory named filters - Allow users to see their historical inventory by disabling the new default filter [DATE_INACTIVE]=''. - Added robots.txt file to prevent CEMS site from being indexed. - Allow generic forms to automatically default a field value to the current user. - Allow user training requirements to be automatically set for the owner in generic forms. - Added "Chemical Inventory Manager" role. This new role is for users responsible for managing the chemical inventory components with CEMS. All users who currently have the Database Administrator role will automatically receive this role after the upgrade. - Added Emergency Response "view inventory by user" report. - Improved recordset printer friendly output for portrait mode. - Add location field to compliance object. - Add hazards list to info shown after inventory item is added - Added hazards field to chemical list report - Modify ER module to specify total chemical amounts in room by gallons and pounds - Added link to UserRecord on ShowUser page Bug Fixes ======================================================== - Fixed issues with non working buttons in Internet Explorer 7. - Fix overwriting problem with admin only hidden fields in Form Element Record. - Fixed "is defined" / "is not defined" recordset searches when multi valued fields are used. - Fixed issue with setting NFPA on new container form. - Performed securty scan, and manual audit. Fixed some security issues with non escaped parameters. - Removed usage of HTML5 date, datetime input widgets since they were causing problems in some web browsers. - Added Fixes to contexts defined in bin/setup_selinux_file_context.pl - Fixed issues with superscripts when adding new chemical inventory RELEASE NOTES v2.0.53 (2014-12-05) Enhancements: ======================================================== - Training Database * Manage user training requirements online. * Allow training instructors to create and manage their training courses and * enrollments. * Show users which training requirements they are responsible for completing. * Empower managers with the training compliance matrix allowing them to view * and edit their associates and assigned training requirements. * Create online training courses that fulfill training requirements. * Present training materials in a variety of formats such as Power Point, * PDF, HTML, videos, or link to external documents / web sites. * Allow users to register for classroom session training online. * Provide training instructors with a simple grade book. * Automatically send reminder and overdue training alerts. * Verify users have learned training topics by presenting online tests. * Automatically generate course completion certificates when users have * successfully completed a course. * Ensure courses are scheduled giving users the opportunity to complete their * upcoming training requirements. * Provide administrators a fully searchable historic database of all * completed training requirements and course enrollments. - Added User Directory look up service which allows CEMS to take advantage of external User databases - Added expired container extension request system - Added Device Registration Access Module which allows users to request access from devices outside of the normal configured ALLOWED_IP locations. - Added MSDS download links to Missing MSDS report - Added link to user group community on footer. - Added Location Limits Module. This module allows administrators to define strip limits for chemicals within one or more rooms. - Added Storage State Field to chemical record - Added CAS Concentration Percentages to reportable qty reports - Allow door sign creation for any room. - Added file download link to file type fields in generic form recordset Bug Fixes ======================================================== - fix load barcode in ViewContainer - fix iOS autofocus bug - fixed recordset filter bug - fixed CAS concentration floating point display issue - fixed calendar widget problems in some browsers - fixed issue with new generic form records and guest users - Format datetime fields to exclude seconds. - Improved reorder when a generic form element is moved outside its parent - Fix link to add new inventory in HandyCEMS - Fixed issue with RadUsageLog calculate activity button and new records RELEASE NOTES v2.0.47 (2014-07-21) Enhancements: ======================================================== - added date created field to user record - removed mark in transition button on ViewContainer - Do not auto clear barcode from input until container has been added - added setup_selinux_file_context.pl for uses using SELinux - expanded molecular formula character width - added ITI-VPAT.pdf accessibility worksheet - improved checkbox labels - expanded autocomplete input width - improved dashboard style - improve security by removing dynamic code in GUI - improve restore previous tab from a closed active tab - updated recordset report tool to latest - modified search inventory rules to not include hidden containers when user has update inventory role - added chemical details and a button to modify the chemical record from AssociateMSDS module - added documentation regarding max_allowed_packet configuration - added checkbox for is secondary container - changed datetime-local inputs to text inputs since datetime-local is deprecated and there are issues with Chrome - added ability to switch back to original account when using autologin function - added ability to login using HTTP headers for REST API access - prevent generic form elements from showing up at the top of the form after reassigning the parent Bug Fixes ======================================================= - fix Microsoft filter CSS since it caused problems with IE<=8 - fixed a bug with Fact Sheets - fixed "illegal divide by zero" error when site has no inventory in MakeStaticER.pm - fixed issue with IE and iframes - show hidden conditional visibility elements in design mode - fixed invalid character usage in release notes - fixed a bug with a regex that caused errors when deleting generic forms - added missing dependency to install guide - fixed issue where IE9 was opening a new window and not a new tab - fixed issue with the generic form design tool causing the buttons to overflow it parent element RELEASE NOTES v2.0.44 (2014-03-26) Enhancements: ====================================================== - Added new privilege Pending Task Manager, which allows users to manage pending admin tasks without being an administrator. - Added feature to prevent web browsers from caching stale files after an upgrade. - Simplified the Add Inventory module by removing unneeded update function. - Improved Search MSDS performance - Added utility to upgrade script to convert tables to proper database engine if wrong when cleaning database. - Added the ability for a CEMS site to set an optional fixed length for new barcodes (specified as global variable CHEMICAL_INVENTORY_BARCODE_SIZE). - Improved multiline display for pending admin task and global variables in RecordSet. - Made the supervisor field required by default on the account request form. - Suppressed "another process is already running for scheduled tasks error message" - Added example SQL to show how to merge chemical data. - Improved usability by allowing the enter key to submit in several forms. - Rename "fuzzy search" label and use "exact match" text instead. - Adding applog entry for adding new inventory. - Allowed NULL value containertype in containerrecord. - Improved styles for Generic Forms. - Made general search hidden on dashboard for generic forms when when generic form elem storage field is none. - Moved generic form elem option instructions into a collapsible area. - Improved the details text for several inputs on the generic form elem form. - Added autocomplete fields for several fields in the ViewContainer form. - Improved Generic Forms RecordSet display by showing generic form elem values in hierarchical order. - Simplified account creation by auto setting ACTIVE_ACCOUNT for new accounts. - Improved the auto send welcome email by sending it when an account becomes active for the first time. - Improved user account management by allowing admins to modify existing record even when another record shares the same first/last name and/or email. - Expanded CAS hazardtype field to 100 characters. - Enhanced UpdateInventory to allow admins to update chemical, manufacturer, containertype, and unit fields from Update Inventory module. Fixes ====================================================== - Fixed room picker when creating a new sign record. - Fixed some issues with tab navigation. - Fix generic form refresh button. - Fix error from occurring when creating new generic forms. - Fix bug with sending email when previous email was undefined and new email is defined. - Fixed problem with updating inventory when not a database admin. - Fix load problem with SignNFPA RELEASE NOTES v2.0.41 (2013-11-26) Enhancements: ============================================= added building selector for EPAListofLists and DHS reports optimized manufact, owner, and location widgets on the ViewContainer form to be static text limit default users shown in waste request removal and waste record trunc time in t1 date filtering operations in several rad modules add new record button on right side when viewing generic form template list add button to new formsubmission to create from generic form template when generic form template exists and we are creating a new record not based on a template only show generic forms template link on dashboard when generic form has templates added link to open new form submission record from a template auto add USER_IS_CREATOR priv to workflow model for default workflow definition if missing on save allow admins to delete form elems with data when the form elem is disabled when clicking clone button on generic forms, auto append "(clone)" text to name and html fields added ComplianceForm2GenericFormImporter.pm module allowing admins to convert old compliance forms and reports to the generic form system added FormDeleteAllData.pm that allows admins to delete generic forms and all generic form data added support for hidden widgets in generic forms added ability to search cas with concentration limits to chemical inventory searches added ability to bypass access checks on a per module basis (used for certification submittal) added dashboard manager allowing administrators to manage dashboard entries added certification database module added certificate print outs renamed "active date" label in FormSubmissionList template view to "Start Due Date" added custom filter to display most recent response records for generic form submissions added links to view scheduled submissions in generic forms added template sliding due date option to form submission templates added merge chemical record duplicates function in the chemical record module added merge user record duplicates function in the user record module added "Is Expired" field to chemical inventory recordsets added cmpobj descr field added REALTIME_PENDING_WASTE_NOTIFICATION global variable setting added waste requester email field added clone generic form elem functionality to allow movement of custom fields to built in types added refresh button to generic form design mode added form submission overdue reports added form submission schedule reports added dashboard alerts for overdue generic form submission templates added checks to prevent duplicate generic form submissions using same template and active date added associated readonly fields to generic forms form element module improved DHS reports to exclude chemical inventory from summary list when chemicals no not meet concentration threshold better handling of expired sessions add multi chem inv quick link, updated quick menu text added date format help add is_cas_valid check to ChemInv.pm changed last button on chem inv form to save instead of next improved install instructions improved upgrade instructions added test_sendmail.pl script updated sample configs removed unused soundex chemname triggers show success message after saving generic form submission improved database error message presentation prevent nonerror database errors from showing up in the main server logs under mod_perl added page stats to bottom of every page improved title for new chemical inventory module translate star wildcards to percent in OQ improved Emergency Response module performance force HandyCEMS link on dashboard to open in new window which improves handling under IOS add owner email to all generic forms when owner field is used added broadcast_notice.pl allowing SYS admins to broadcast messages from the commandline remove Apache reload since it is not supported in modern CentOS fix event manager priv check section 508 compliance added script to easily rsync data from another cems site switched unsupported OS dep Data::JavaScript to JSON::XS Removed dependency on FileHandle module added shortcut to bring up SQL console added dev_mode option to cems.conf which allows admins to test a site without sending users email added generic form notifications added beta tester instructions Fixes ============================================= fix server error with associating MSDS to preexisting MSDS fixed logic bug in workflow privilege analysis for non admins fixed a bug with custom named filters and multiple custom arguments fixed problems with differences in how HTML5 and mysql datetime format values are handled fix performance issues with NFPARoomReport module changed barcode input type on new inventory form from tel to number fixed layout position for auto complete option display fix radsitepossperiod upgrade script fix problem with autocompleters using prior input values fix error in onselect in OQ for IE <= 7 upgrade auto complete library, added some code to auto complete that fixes a problem selecting with mouse and slow button clicking fix print issue with Firefox fix problem saving inner location on new container form in IE8 improved jQuery load order to preview problems with inline scripts fixed isFloat check fix missing surplus link for lab assoc without inventory and all inventory access fix SQL for surplus inventory dashboard fix privs on multi-update dashboard link add missing waste record fields fixed CSV print not use form post method properly changed broken link RadWaste to RadWasteList fixed problems with sometimes not being able to overwrite MSDS documents expand width of date fields which fixes problems with cut off text in some browsers fixed date operation in ExecuteReport.pm fixed date operation in ExecuteReportByCAS.pm removed invalid date check in radusage log fixed case calendar button problem where extra chars were being added in certain weird cases history #history macro in generic forms so it only displays history for current form fixed problem where find by chemical name in EPAListofLists and DHS report could over state amounts when chemical has multiple cas numbers RELEASE NOTES v2.0.32 (r184) New Module - Max Rad Site Possession For Period New Module - Max Rad User Possession For Period General Enhancements: 1. Added support for CAS numbers greater then 2147483647. 2. Added link back to dashboard after completing ForgotPassword form. 3. Added warning when closing CEMS window to prevent users from losing work. 4. Added button to allow users the choice to open links in popup windows instead of new tab interface. Bug fixes: 1. Fix links allowing them to be opened in new window/tab using browser context menu. 2. Fixed problem printing door sign in new tab interface. 3. Fixed problem where a link was loaded in a new window instead of a new tab. 4. Ensure a room is selected before saving BioInv Record. 5. Support for wild card prodno matching for new inventory form. 6. Redirect users to new dashboard interface. 7. Redirect old recordset links to new recordset to prevent some bugs with associating records. RELEASE NOTES v2.0.31 New Mobile Friendly Interface: A new mobile friendly interface has been installed to allow CEMS to run on mobile devices (iPhone, iPad, Android, etc). You can install CEMS to your home screen by clicking on the "Add to Home Screen" option on your mobile device. CEMS will now open new links in tabs instead of popup windows. This fixes issues with blocked popup windows in some browsers. You can still open links in new windows if you right click the link and select "open in new window". New Add/Update Chemical Inventory Module: A new add/update chemical inventory module is installed. The new inventory process is more streamlined for small screened devices and takes advantage of auto complete technology to reduce data entry duplication. Dashboard Enhancements: The dashboard elements now load faster using asynchronous streaming technology. This will allow users to interact with core components of the dashboard immediately, while the slower to load components are streamed from the server. Generic Form Enhancements: 1. Added direct link to view all submissions on the dashboard for administrators. 2. General improvements to the look and usability of the forms. 3. Added general search functionality. 4. Added the ability to include previous entered field value inputs in options SQL. 5. Added drop down selector to auto complete fields to allow the users to pick from all available options. 6. Set the default workflow to administrators only. 7. Allow administrators to designate default show fields within the form element record. 8. Added a creator field that is automatically populated by the creator of a form submission. Other Enhancements: 1. Added time information to admin tasks date sent fields 2. Added global variable COMPLIANCE_OVERDUE_EMAIL_GRACE_DAYS which controls how many days CEMS will wait before sending daily email to users regarding overdue compliance reports. This variable is set to the default of 2 days. 3. Increased the default results per page to 25 for all recordsets. 4. Improved error messages when saving records. 5. Show all access group members in UserRecord 6. Added "continue as guest user" link to login allowing guest users easy access to the guest dashboard. 7. fixed a sort bug on decimal numbers causing them to be sorted as text and not numerically. Bug fixes: 1. fix auto complete cache bug 2. fixed issue with missing workflow links 3. fixed chemical owners and location chemical inventory search to use select box instead of auto complete when POLICY_VIEW_OWNER or POLICY_VIEW_LOCATION is disabled 4. Fixed a bug in privilege checking in View Container for user without owner access. RELEASE NOTES v2.0.26 New Module - Generic Forms: Create custom inventory forms, questionnaires, document databases, and more. Design your own web forms with a built in design tool. Ask custom questions, configure input types, conditional visibility, describe work flows, setup form templates, and view response data using the CEMS data tools. New Module - HandyCEMS 3.0: HandyCEMS has been redesigned to work in all modern mobile devices such as iPhone, iPod, android, netbooks, etc. New Module - Data Viewer: A new data viewer is currently being previewed that has the following improvements: faster loading, ability to move fields in a report, add multiple fields using checkbox list, fast hide columns, easier filter panel, and better layout. The new data viewer is not enabled by default. To enable the new data viewer, click "test new data viewer" at the bottom of any record set. chemical container changes: added inner location field user record changes: added notes field improved security using HTTPS only cookies and X-Frame-Options header = SAMEORIGIN option improved Reportable Quantity performance add default filter to hide disabled rooms by default increased field limit for compliance report data on new container form, optimize owner, location, inner location selectors added ability for database administrators to create/manage CEMS roles added shelf life, and inventory past shelf life named filter to search inventory added "created on" date field to account requests added alert message when a user's browser has pop up windows disabled added new VIEW_CHEMICAL_INVENTORY role which allows a user to view all chemical inventory. In the past users would get this permission automatically if the POLICY_SEARCH_ALL role was enabled. Several schools have indicated that they would like the ability to control this on a per user account basis. added converted quantities in kg, lbs, and liter units to administrator chemical container list report updated the windows install documentation bug fixes: fixed problems with barcode range parser in new container module fix permission test which allows a use to adopt a surplus container fixed a quoting problem with HLSCOIExecuteReport and EPAListOfListsReport better handling of file not found when invalid URL mapping fixed problems in biological modules when selecting "None" type associations RELEASE NOTES v2.0.17 sign report improvements: added problems field to signs report user report improvements: update historical user last login field from applog records login improvements: added better info if account is unknown on login search chemical inventory improvements: added qty in pounds field to search inventory report bug fixes: don't auto trim inner white space in textareas preserve menus when opening new window inside IE reduce autofocus delay in New Container module fixed optimal query number filter zero deletion bug fix possible overflow in OQ title bar formatting turn off built in browser autocomplete for cems autocomplete fields fix compliance object default person assignment fixed some problems with invalid session causing privilege error messages RELEASE NOTES v2.0.16 account security improvements: - added weak password checking (passwords must be > 5 chars, and contain at least an uppercase char, lower case char, number, or symbol), - internal password checksums are now randomly salted - administrators can optionally set the PASSWORD_EXPIRE_DAYS global variable which will force a user to change their password after the set amount of days record the date a user last logged in within their user record fixed some problems where the system would incorrectly display a message indicating the user did not have the correct privileges when they did have the privilege auto strip white space in password fields add inventory changes - Manufacturer & Owner are now auto complete fields - auto select first room for owner even if they do not have previous containers in room - Added Expiration Date - added inner location combobox fixed some style problems causing text to be improperly formatted in some browsers. fixed problems with ShowUser links added anhydrous cylinder exclusion to department of homeland security report added EPA list of lists report report fixed some problem with buttons not submitting forms in IE7 all UNH hosted sites have been upgraded onto new hardware running latest patches running in a more secure configuration