johnnyq
069f587c1d
Implemented Check for updates which removs the last shell exec from web ui, and reimplemented db_update switch to update_cli.php
2026-08-26 23:38:23 -04:00
johnnyq
1bebd2d578
Fix Light mode Initialization flash when in dark mode
2026-08-26 22:09:29 -04:00
johnnyq
96f2c697c6
use intl js lib across all phone number fields
2026-08-26 13:53:27 -04:00
johnnyq
6af0634f47
Ticket SLA: Fix on hold to pause only after first reply, show resolved closed and onhold as fixed on paused sla in the list
2026-08-15 19:55:40 -04:00
johnnyq
bcc73737e4
Apply custom css across the board including client portal and guest
2026-08-15 17:53:10 -04:00
johnnyq
2375e69f2d
Update badge classes to bg
2026-08-15 13:00:41 -04:00
johnnyq
35239b563d
Resize top nav and compoents
2026-08-14 18:53:20 -04:00
johnnyq
e2512b0f86
Fixed Side nav titles, Fixed ajax on bootstrap modals, fixed pagination all regressions
2026-08-14 18:32:33 -04:00
johnnyq
6fc94d9733
Migrated confirm modal to sweetalert2 lib
2026-08-14 17:38:21 -04:00
johnnyq
bbbfff7413
All Jquery removed replaced with stand JS and non jqery dependent libs
2026-08-14 17:28:06 -04:00
johnnyq
dc6b191eed
Update Font, Migrated away from JQUERY dependent libs: toastr to bootstrap5 toasts, daterangepicker to flatpickr, select2 to Tom Select, InputMask to IMask
2026-08-14 17:08:40 -04:00
johnnyq
a084e37c39
Initial migration from AdminLTE 3 to 4, bootstrap 4 to 5
2026-08-14 13:22:11 -04:00
johnnyq
656aa95a4e
Fix WebUI setup regression locking out after first step
2026-08-07 18:09:01 -04:00
johnnyq
b3744e9ed5
More sweeps to replace select * with actual returned column names dramatically reduces php memory usage and speeds up processing dramatically especially in the crons since they run all the time
2026-08-06 13:10:23 -04:00
johnnyq
c30c12674a
Sync DB Seed data between setup and setup cli
2026-08-03 22:41:31 -04:00
johnnyq
a27019511e
Remove unused overdue invoice setting move master cron switch out of notificaiton and into cron
2026-08-02 17:22:28 -04:00
johnnyq
89fba247c5
Add some missing maxlength form options to prevent info overflow and result in error 500
2026-08-02 16:08:01 -04:00
johnnyq
ae468d6cee
Encrypted backups with types, scheduling and CLI restore
...
Backups are now AES-256 encrypted zips in three types (full, database
only, master key), catalogued in a new backups table, built by cron rather
than the web request, and kept under uploads/backups with retention in the
nightly job. The encryption key is one value per install held in config.php,
never in the database and never in the file name.
Restore is shared by the setup wizard and the new scripts/restore_cli.php,
which is the only path without an upload size limit. It verifies the key and
unpacks the archive before dropping anything, and dumps the current database
first so a failed import is rolled back.
A backup dumps, zips and encrypts for minutes without issuing a query, so on
a server with a short wait_timeout the connection is closed underneath it and
the UPDATE marking the backup complete is what fails - long after the archive
was written correctly. The connection is now held open for the job and
re-established before any write that follows long file work, including the
database phase of a restore. Retention recovers rows a dropped connection
left behind: still Running after six hours becomes Complete if the archive is
on disk, Failed if it is not.
cron.php's own failure path is hardened to match. It recorded job failures
through the same connection the failing job had just killed, so an uncaught
exception ended the dispatch and no trace of the original error survived.
Failures now also echo to stdout, so cron mails something useful when the
database is unreachable.
Security: the setup wizard's restore step is now closed on any install that
has users, whatever config.php says. $config_enable_setup defaulted to
enabled when the flag was absent, and the flag is only written at the end of
a successful install, so an install abandoned partway left an unauthenticated
endpoint that would drop every table, import an attacker-supplied archive,
and overwrite uploads/ including the .htaccess that stops PHP running there.
Affects 26.07 and earlier. Restoring over a live install is now CLI only.
2026-07-31 16:18:20 -04:00
johnnyq
0631c45040
Fix Cron Schedule and new directory includes created inside cron for the cron lock
2026-07-30 17:06:07 -04:00
johnnyq
fc5cdeea82
Add UI Elements for Asset Notes similar to contact notes
2026-07-29 14:13:55 -04:00
johnnyq
b3f959ac55
Use Short echo tags across the code
2026-07-28 18:47:52 -04:00
johnnyq
9c65644adc
Update the rest of the PHP functions to use camelCase
2026-07-23 17:39:06 -04:00
johnnyq
f1836c70cd
Replace Function logAction() with logAudit()
2026-07-14 17:35:23 -04:00
johnnyq
b57ddc0e5c
Replace Function sanitizeInput() with just escapeSql() and update all instances throughout
2026-07-14 17:17:50 -04:00
johnnyq
7bc47a58fe
Replace Function nullable_htmlentities() with just escapeHtml() and update all instances throughout
2026-07-14 17:10:45 -04:00
johnnyq
8da3a107fb
Rename plugins to libs and update all file references
2026-07-10 13:24:20 -04:00
johnnyq
78c3dd0eed
Remove Dig and Whois binary requirements, revert fetchUpdates function
2026-07-05 16:05:19 -04:00
johnnyq
02d217402c
Categories: Moved note type, software type, rack type to be creatable/editable Categories with common defaults and descriptions
2026-03-31 18:05:16 -04:00
johnnyq
383897ee27
Assets: Moved asset status to be creatable/editable Categories with common defaults and descriptions also Add category description to add / edit modals and description underneath category name
2026-03-30 17:25:51 -04:00
johnnyq
d8359e1049
Network Interface Types: Moved to creatable/editable Categories with common defaults
2026-03-30 15:24:09 -04:00
johnnyq
26ebac450f
Setup: Fix config_base_url if not using the script so /setup is not appended
2026-03-09 12:04:21 -04:00
johnnyq
7ab406b3f5
Convert mysqli_fetch_assoc to mysqli_fetch_row in setup for table import
2026-01-14 18:02:11 -05:00
johnnyq
0a30300bde
replace all instances of mysqli_fetch_array with mysqli_fetch_assoc for better performance and memory usage
2026-01-14 17:30:23 -05:00
johnnyq
da561b296e
Added php-xml as a requirement
2025-12-06 13:38:40 -05:00
johnnyq
b336ec4188
Revert setup restore to a saner version
2025-10-09 19:14:31 -04:00
johnnyq
c77e1be1c3
Try to fix uploads
2025-10-09 19:00:02 -04:00
johnnyq
986f688468
another Attempt at restore
2025-10-09 18:49:54 -04:00
johnnyq
1d9429b762
Another attempt at restore
2025-10-09 18:27:35 -04:00
johnnyq
d122d90a47
Remove CSRF check
2025-10-09 18:11:16 -04:00
johnnyq
2c534d4d20
Attempt to fix uploads and writing to config file during setup
2025-10-09 18:10:21 -04:00
johnnyq
b7e0e5c5eb
Fix setup complete flag
2025-10-09 13:00:00 -04:00
johnnyq
2915b12181
Remove temp CSRF check on setup
2025-10-09 12:43:28 -04:00
johnnyq
ed589ef65b
Update Backup / Restore, now streams backup and restore to disk instead of memory causing memory to run out, sets timeout limit to unlimited, checks backup file contents for anything bad, use php instead shell exec for import of db, added .htaccess for apache to prevent php execution in /uploads/ directory as this is intended for file download only
2025-10-09 12:28:38 -04:00
johnnyq
35a7506c26
Copy crons from /scripts to /cron, added custom directories for api/v1/, /setup, /cron and /scripts
2025-10-07 13:55:54 -04:00
johnnyq
690007be5c
More Relative to Absolute web asset paths updates
2025-09-24 13:09:25 -04:00
johnnyq
4ff3231451
Fix Incorrect Asset Name in Logging and Flash Alert when editing an asset in a ticket, remove ACH and Add Bank Transfer to Setup
2025-09-20 15:56:50 -04:00
johnnyq
ce832d2805
Fix Broken Restore from Backup on Setup Page
2025-09-19 16:02:55 -04:00
johnnyq
d450ea4beb
Fix Installer Database not installing due to bad file name
2025-09-07 11:06:26 -04:00
johnnyq
7cfba7f2ef
Added redirect() function for page redirects and updated credit system fields to include credit_note, credit_invoice_id and type for better reporting
2025-08-01 13:37:23 -04:00
johnnyq
5a76780cd9
Move db.sql back to fix develop platform
2025-07-29 21:40:50 -04:00