Commit Graph

22 Commits

Author SHA1 Message Date
johnnyq
59e75764f8 Empty states: one shared empty state on every list page, drawn by includes/inc_empty_state.php from each page's $empty_state through the new emptyStateHtml() in functions/format.php - a grey round tile with the list's icon, a title, a line on what goes there and the page's own New and Import buttons when nothing has been added, No X match with a Clear filters button that keeps the client, archived and the current tab when a search or filters leave nothing, Nothing in {tab} with the tab's description for an empty pill and a tick for pills that flag trouble, and No archived X for an empty archive; pills count as views rather than filters; replaces the pages' own empty blocks so a filtered-to-nothing list no longer shows two messages; files, notifications and racks use it in their own layouts; adds emptyStateFiltered(), emptyStateClearUrl() and emptyStatePill() and the .itflow-empty-state styles; changelog updated 2026-10-17 00:47:32 -04:00
johnnyq
bbb2456f0b Projects modernization: projects list with Active/Mine/Overdue/Due soon/Stalled/Over budget/Ready to close/Completed/Archived/All views, ticket and task progress bars, time logged against budget with unbilled hours, due badges, manager changed in place, manager/client/created filters, bulk set manager, set due date, complete, reopen, archive, restore and delete, CSV/PDF export; project page with header actions, attention banners, tickets/tasks/time/due stat cards, Tickets/Tasks/Activity tabs, scope, details and team with hours; project quick look; New/Edit Project with client contact, start date, budget hours and template that can assign its tickets to the manager; Add tickets by picking or by number; add a project template's tickets to an existing project; template ticket subjects fill in [Client], [Project], [Month], [Quarter] and [Year]; project templates admin rework with ordered ticket templates, multi-add, duplicate, archive and restore; projects on the ticket page, client overview, dashboard, calendar, global search and client actions menu; New Ticket offers internal projects; tickets only join a project of their own client or an internal one; completing a project is checked on the server and completed projects can be reopened; deleting a project keeps its tickets; deleting a client deletes its projects; bulk ticket creation limits project choices to matching clients; project template reordering limited to admins; new manager notifications; new functions/project.php; removed project_link_closed_ticket.php; DB 2.8.6 adds project_start, project_budget_hours, project_contact_id and a ticket_project_id index, and cleans up orphaned projects, ticket project links and template links 2026-10-15 16:35:00 -04:00
johnnyq
ec205ca633 Agent picker for project managers and recurring tickets: pick the manager on the project page and projects list, and the agent on recurring tickets, inline like ticket assignees 2026-10-13 13:56:47 -04:00
johnnyq
9bfd26d57b Add titles to icon-only buttons
- title on 294 icon-only buttons, named for what each one does
- aria-label on the 7 show-password buttons (title becomes the popover
  header) and the portal mobile nav toggle
- Fix dead add-category button on products filter, credential bulk tag
  button now preselects Credential, drop duplicate inner-icon titles
2026-10-08 17:12:21 -04:00
johnnyq
d98b8bc427 Add ps-3 to table columns that don't have a checkbox and made sure all table listings conform 2026-08-29 19:45:28 -04:00
johnnyq
6df101c217 Css fixes 2026-08-16 22:25:05 -04:00
johnnyq
a084e37c39 Initial migration from AdminLTE 3 to 4, bootstrap 4 to 5 2026-08-14 13:22:11 -04:00
johnnyq
108781db5b Move more select * to column select for further optimization 2026-08-06 13:44:02 -04:00
johnnyq
ddd9c2b56a clientScopeSql sweep whicn now removed the extra unessesary client joins 2026-08-06 11:45:56 -04:00
johnnyq
b3f959ac55 Use Short echo tags across the code 2026-07-28 18:47:52 -04:00
johnnyq
8d46e2a7db Fix Client Permission overides to include deny allow list in projects prohect and edit ticket 2026-07-25 13:28:47 -04:00
johnnyq
38a042d435 Remove _details and use singular filename for certain objects 2026-07-15 00:12:27 -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
a6d996b83f Projects: Fixing missing ' regression 2026-04-27 13:17:21 -04:00
johnnyq
b6e3176ed0 Projects: Fix slow load by using an optimized query to count tickets and tasks 2026-04-27 13:15:11 -04:00
johnnyq
65b53dd7f4 Tables: Removed removed -sm in table-responsive to fix some responsive issues also adding margin between top and bottom tags in clients and moved the tags in its own div 2026-03-26 13:30:07 -04:00
johnnyq
1508e6b055 Project: Add missing CSRF checks 2026-03-01 21:30:41 -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
c12bfb157e Migrate Add Ticket, Recurring Ticket, Project and Vendor to the new ajax-modal 2025-11-02 22:54:48 -05:00
johnnyq
c5dd5f2b6f Add Clause to not collapse advanced filter on all time aka if date from is set to the default 1970-01-01 2025-10-20 18:16:39 -04:00
johnnyq
ab77705ca2 Feature: Replace old date range to Date Range Picker JS for better date from/to handling 2025-10-20 18:04:00 -04:00
johnnyq
edabc5c33f rename /user/ to /agent/ and update links to use agent/ instead 2025-09-23 18:04:23 -04:00