1
0
Fork 0
Commit Graph

273 Commits

Author SHA1 Message Date
chylex 82271ba85b Add Field class to replace AbstractFilter::field 2020-08-17 22:24:50 +02:00
chylex 6afbf0cf77 Make Text component use htmlspecialchars, add Html component, update & fix uses 2020-08-17 18:59:45 +02:00
chylex 3f498335ac Fix a few design and browser compatibility issues 2020-08-17 15:28:12 +02:00
chylex 2677a1321b Add milestone delete page 2020-08-17 11:26:38 +02:00
chylex 2bd92c991d Allow setting table filters from code 2020-08-17 10:51:52 +02:00
chylex 5b42253c81 Add milestone edit page & tweak milestone list 2020-08-16 23:06:45 +02:00
chylex 8b131a889c Reuse LoadIssueId handler for generic numeric IDs 2020-08-16 21:03:38 +02:00
chylex c04887170a Split FieldOneOf into a nullable and non-nullable version & use correct ones in existing code 2020-08-16 17:36:44 +02:00
chylex caa111fd59 Add per-tracker milestone ID to avoid leaking global IDs 2020-08-16 17:14:04 +02:00
chylex c381c594fa Fix or suppress several 'unused' IDE inspections 2020-08-16 11:33:46 +02:00
chylex 4f1680677b Fix doubled htmlspecialchars in FormComponent fill method calls 2020-08-16 11:11:04 +02:00
chylex 0222574f74 Add special tracker owner role 2020-08-16 09:15:33 +02:00
chylex 617c00f082 Add transaction handling to update migration script 2020-08-16 09:13:32 +02:00
chylex 562c518a66 Add 'special' role flag 2020-08-16 09:11:38 +02:00
chylex bf61835a6f Add getLastInsertId utility function 2020-08-16 08:28:26 +02:00
chylex eb668a0279 Refactor AbstractFilter to use IWhereCondition instead of multiple overrides & cleanup 2020-08-15 21:12:42 +02:00
chylex 3af33f180c Refactor Request to include a convenience getAction method & use it 2020-08-15 20:26:16 +02:00
chylex 17ba93a623 Make tracker deletion a separate page with additional checks 2020-08-15 15:50:49 +02:00
chylex f1cead5265 Fix cookie path & login return path to properly handle base path folders 2020-08-14 17:35:20 +02:00
chylex 43148e91cc Sanitize login return url & add login requirement to certain tracker pages 2020-08-14 14:39:28 +02:00
chylex f0704fd7d4 Allow FormComponents to have duplicate names without duplicate IDs 2020-08-12 21:04:09 +02:00
chylex 400071a419 Fix broken reset button on table filters 2020-08-12 19:10:12 +02:00
chylex 4260d2ae50 Ensure calling optional FormSelect with null value resets previous value 2020-08-12 17:15:41 +02:00
chylex 2c03cb4db0 Ensure FormNumberField initial value is within range & workaround step validation 2020-08-12 17:06:46 +02:00
chylex 3b6c687b93 Add 404 favicon route 2020-08-12 16:46:09 +02:00
chylex da78cbca0b Work on issue list page (show ID & last update w/ sorting), tweak collapsed column layout 2020-08-12 15:50:49 +02:00
chylex 35b58d958f Fix broken default table sorting rules 2020-08-12 15:24:07 +02:00
chylex 0b2541bfbe Add filters for trackers, users, issues, and tracker members 2020-08-12 15:12:14 +02:00
chylex f1f239b68f Implement SQL filtering & remove old code 2020-08-12 14:48:34 +02:00
chylex 62c1fdd39d Remove table name parameter from AbstractFilter completely 2020-08-12 00:08:35 +02:00
chylex 7959c170d7 Move Filtering, Sorting, and Pagination classes 2020-08-12 00:08:35 +02:00
chylex b6eb12cb45 Implement a filtering system w/ integration into table component (no SQL yet) 2020-08-12 00:08:35 +02:00
chylex d239064235 Change sorting URLs to simplify code 2020-08-11 19:02:45 +02:00
chylex afe1b7d25a Cleanup code (formatting, missing 'final' modifiers) 2020-08-11 19:02:45 +02:00
chylex a40e1002bf Add multiselect form component (dropdown w/ checkboxes) 2020-08-11 19:02:45 +02:00
chylex 1a2ea4ae9a Introduce common interface for AbstractIssueTag and IssueType 2020-08-11 12:05:42 +02:00
chylex 8c43d40ccb Change some string functions to use mbstring 2020-08-10 22:51:42 +02:00
chylex fb35d3cc13 Implement sorting in all tables & tweak default sorting rules 2020-08-10 22:32:41 +02:00
chylex f10689fac9 Remove AbstractFilter table name parameter from ORDER BY clauses 2020-08-10 22:32:41 +02:00
chylex 7adc5208ad Refactor AbstractFilter setup 2020-08-10 21:35:21 +02:00
chylex e6338a2ae2 Implement a sorting system w/ integration into table component 2020-08-10 21:35:04 +02:00
chylex 03a1654a30 Add missing length validation to several fields 2020-08-10 16:26:10 +02:00
chylex 441deec263 Add account page with appearance settings 2020-08-10 16:21:00 +02:00
chylex 96e68a01b8 Allow changing position of form messages & update existing forms 2020-08-10 16:16:25 +02:00
chylex 0671789417 Move pagination elements per page property to a cookie 2020-08-10 15:05:49 +02:00
chylex dcaaa09224 Implement client-side table layout fix to enable cell ellipsis 2020-08-10 14:28:56 +02:00
chylex d8ad14ca08 Add missing column width % definitions 2020-08-10 14:25:38 +02:00
chylex 3681228a5f Add resource versioning system 2020-08-10 11:35:43 +02:00
chylex ef537673d2 Work on design (icons, buttons, milestone widget, accessibility) 2020-08-10 11:27:19 +02:00
chylex 3226d4299b Finish CSRF protection (adding Origin header check alongside existing SameSite=Lax login token cookie) 2020-08-10 00:22:43 +02:00
chylex 9b4c40d62e Fix wrong navigation links on invalid tracker pages 2020-08-09 22:14:16 +02:00
chylex ed32adbfec Fix base URL trailing slash & PHP version detection in PHP 5 and older 2020-08-09 21:42:02 +02:00
chylex 67471ff6ad Fix missing htmlspecialchars on most form fields 2020-08-09 21:41:05 +02:00
chylex 79b608b54b Change new issue properties & temporarily work around <input> range step validation 2020-08-09 18:33:57 +02:00
chylex dd0ecce66f Turn issue tags into constants 2020-08-09 18:31:32 +02:00
chylex e620c20ced Improve automatic issue task handling 2020-08-09 18:21:52 +02:00
chylex 9494f1480e Work around garbage default spl_autoload_register implementation 2020-08-09 16:38:39 +02:00
chylex cdd79a9878 Cleanup code and address minor TODOs and IDE inspections 2020-08-09 16:38:38 +02:00
chylex 655d3b1e7e Add update migration system 2020-08-09 13:44:29 +02:00
chylex 820a05a3de Fix crash when login token cookie is present but incorrect/expired 2020-08-09 12:53:28 +02:00
chylex 2597b7edd4 Add installation procedure w/ old installation detection 2020-08-09 12:27:11 +02:00
chylex 2fdace70b2 Move development server files to a separate folder 2020-08-09 00:14:20 +02:00
chylex 302516f37a Enable file caching & disable direct access to folders and php files 2020-08-09 00:14:19 +02:00
chylex dc7180240c Add initial tracker permissions & fix broken logic 2020-08-08 15:26:29 +02:00
chylex db8fd77ac4 Add per-tracker user settings & implement active milestone 2020-08-08 14:41:05 +02:00
chylex 2f58d6fceb Fix empty side menu showing empty space in split pages 2020-08-08 13:21:53 +02:00
chylex 45ab784500 Implement milestone update date based on most recently updated issue 2020-08-08 13:14:13 +02:00
chylex 2176ac0891 Fix issue update date not updating when issue tasks change 2020-08-08 13:14:13 +02:00
chylex f107dceba7 Minor code formatting fixes 2020-08-08 13:14:12 +02:00
chylex 5bac7dea12 Update code to use the new split component & work on responsiveness and design 2020-08-08 10:01:38 +02:00
chylex b1992f0bf2 Add split component & improve splitting (tweaks, collapsing, width limits) 2020-08-08 09:46:04 +02:00
chylex 615623b9c0 Add issue checkbox syntax w/ update form 2020-08-07 20:23:30 +02:00
chylex 50a04f80e6 Allow issue editing for assignees 2020-08-07 19:03:28 +02:00
chylex c66a00e766 Implement markdown-style heading parsing 2020-08-07 17:21:27 +02:00
chylex 9147168778 Add unicode iterator class 2020-08-07 16:22:41 +02:00
chylex 52f71fac6b Make issue deletion a separate page with extra confirmation 2020-08-07 12:06:46 +02:00
chylex d007f68726 Refactor issue ID loading & fix issue creation page 2020-08-07 11:35:24 +02:00
chylex 5746cf7541 Fix formatting & missing return type hints 2020-08-07 10:16:25 +02:00
chylex fd923d9b57 Add script to convert <time> tags to local timezone 2020-08-07 10:10:29 +02:00
chylex 65aa7e1ff3 Fix wrong login return page for tracker URLs 2020-08-06 22:42:55 +02:00
chylex d9dd66a6e5 Add issue create/edit page 2020-08-06 22:42:55 +02:00
chylex 64ff43fcf2 Fix disabled form fields not getting prefilled 2020-08-06 22:30:04 +02:00
chylex 05fac1a92d Add number field component to forms 2020-08-06 21:50:21 +02:00
chylex 949ccdd409 Add basic issue details page 2020-08-06 21:50:21 +02:00
chylex a6500a1508 Add tracker issue list page 2020-08-06 17:30:29 +02:00
chylex 87369b51e2 Add optional title to side menu component 2020-08-06 17:30:29 +02:00
chylex b334fca4c1 Add empty tracker dashboard page 2020-08-06 15:45:49 +02:00
chylex ae25051aa8 Minor fixes (code formatting, unused elements, future TODOs) 2020-08-06 15:45:49 +02:00
chylex ab75ece64c Add tracker milestone page w/ new icons 2020-08-06 14:51:01 +02:00
chylex 9be04ed438 Allow datetime components to omit time 2020-08-06 14:38:28 +02:00
chylex b54655b647 Add composite component 2020-08-06 13:45:42 +02:00
chylex bbfefae820 Add issue data classes w/ issue and milestone table definitions 2020-08-06 11:34:19 +02:00
chylex 41fbdcaee0 Improve SQL clause handling in filters (allows grouping & windows) 2020-08-06 07:50:18 +02:00
chylex 6cd260e6f5 Add a WIP tracker members page 2020-08-05 16:58:46 +02:00
chylex 7ff9b9ed25 Add form component for select tags 2020-08-05 15:07:12 +02:00
chylex 3ce3943200 Add tracker settings page 2020-08-05 12:34:52 +02:00
chylex e0bb045859 Improve forms (disabled field & pre-fill handling) 2020-08-05 11:29:48 +02:00
chylex c76cb42f6b Add tracker membership and permission system 2020-08-05 09:22:12 +02:00
chylex 4288992e3c Add optional table name parameter to filters 2020-08-05 07:00:33 +02:00
chylex 3b662353c6 Fix navigation menu when displaying a fatal error page 2020-08-05 06:51:51 +02:00
chylex ba47743ea5 Refactor system permission table, ensure rollback on fail, and add basic guest/role-less user perms 2020-08-05 06:51:50 +02:00
chylex ad32c40c1b Add 'Trackers' page 2020-08-04 12:16:32 +02:00
chylex 96c47e1bd6 Add 'Settings' admin page 2020-08-04 10:04:51 +02:00
chylex b03680cf98 Add 'Users' admin page 2020-08-04 09:35:26 +02:00
chylex 5551da2fc2 Add datetime component & form components (icon button, titled sections, confirmation) 2020-08-04 09:24:23 +02:00
chylex d50ded3936 Add WIP permission system w/ system perms, admin account, and controller support 2020-08-04 09:24:23 +02:00
chylex efd84c0607 Add basic table component with pagination 2020-08-03 23:39:37 +02:00
chylex 5113e754f8 Add account settings page & logout action 2020-08-03 23:06:23 +02:00
chylex 2f8f445994 Add progress bar component 2020-08-03 22:21:11 +02:00
chylex 9ffd847bb0 Add tracker table and basic tracker page classes 2020-08-03 21:22:26 +02:00
chylex 4cc4a4fc25 Add side menu component 2020-08-03 10:34:41 +02:00
chylex 04f86b8b06 Add user registration and login pages 2020-08-03 09:55:17 +02:00
chylex 53a25994f2 Add basic Form component 2020-08-03 08:44:46 +02:00
chylex 888c030e6c Add 'About' page 2020-08-03 08:44:46 +02:00
chylex 8cb3ad6005 Add error page 2020-08-03 08:44:45 +02:00
chylex 41c3bb71c1 Add abstract page model classes 2020-08-03 08:44:45 +02:00
chylex 4696ccb6a3 Add users and user login session handling 2020-08-03 08:44:45 +02:00
chylex 790f0ea9c0 Add database connection and utilities 2020-08-03 08:44:45 +02:00
chylex ec6f5fcc66 Add basic controller actions 2020-08-03 08:44:45 +02:00
chylex 065184bc60 Add basic page layout w/ navigation, font, and icons 2020-08-03 06:57:26 +02:00
chylex e8655d9ace Add a data validation system 2020-08-03 03:11:12 +02:00
chylex 0dba4102b9 Add a routing system 2020-08-03 03:11:12 +02:00
chylex 5a88086b68 Add early bootstrap code and htaccess 2020-08-03 03:11:12 +02:00