1
0
Fork 0
Commit Graph

273 Commits

Author SHA1 Message Date
chylex 2b97c92a3c Fix crash when the base URL does not contain any folders 2020-08-24 03:28:46 +02:00
chylex 8dd93de601 Add build task with dedicated output folder & remove /~generated/ folder from previous commit 2020-08-24 03:06:31 +02:00
chylex 4331b35ceb Add CSS merging & minification 2020-08-24 01:35:02 +02:00
chylex 2d3cefb6fc Add buttons to quickly set issue status 2020-08-23 21:07:30 +02:00
chylex 9575557c6c Add Text::withIssueTag 2020-08-23 21:07:30 +02:00
chylex c54cabf4ff Minor polishing work (texts, styling, table layouts, cleanup) 2020-08-23 21:07:30 +02:00
chylex 3d3d4c7fd0 Fix displaying errors in checkbox hierarchy components 2020-08-23 12:40:36 +02:00
chylex c2b8f046eb Add tracker role edit page & show permissions in role list page 2020-08-23 12:40:15 +02:00
chylex 8940369611 Add option for table columns with text wrapping 2020-08-23 02:08:47 +02:00
chylex 9206a6d048 Add checkbox hierarchy form component 2020-08-23 02:06:39 +02:00
chylex 8ebf2f71b0 Fix missing code path in issue task updates & wrong form checkbox getter syntax 2020-08-22 03:55:54 +02:00
chylex 70785a7a60 Fix migration code not processing all versions at once 2020-08-22 03:52:11 +02:00
chylex c67b4c1ca5 Add per-tracker role ID and remove global IDs 2020-08-22 03:50:37 +02:00
chylex 0ced0437bb Rename milestone.edit permission to milestone.manage (w/o migration) 2020-08-22 01:46:38 +02:00
chylex ac3234ab25 Fix missing exception rethrows after several rollbacks 2020-08-22 01:03:42 +02:00
chylex 94d5d161fe Fix 404 page when editing valid milestone with invalid data 2020-08-22 01:03:03 +02:00
chylex 82bd65ce2f Move utils.php and add a few more utility functions 2020-08-21 22:01:04 +02:00
chylex 31c082feeb Disable tracker role move buttons where movement is impossible 2020-08-21 20:29:32 +02:00
chylex 9574202c21 Fix tracker role ordering on deletion & have special roles use ordering 0 2020-08-21 20:29:31 +02:00
chylex 6ba31f2b8f Disable milestone move buttons where movement is impossible 2020-08-21 20:29:30 +02:00
chylex 84ac2032d2 Minor refactoring & formatting fixes 2020-08-21 20:29:29 +02:00
chylex 65378665b0 Add support for disabled icon buttons 2020-08-21 15:54:41 +02:00
chylex 2f831b40e1 Add tracker role settings page 2020-08-21 14:53:33 +02:00
chylex 7790d4ce48 Reconfigure default tracker roles and permissions 2020-08-21 13:16:46 +02:00
chylex 87a2430272 Add user delete page & prohibit deleting admin accounts 2020-08-21 03:08:49 +02:00
chylex b3fd0e87b2 Reduce code duplication when getting logged in user ID 2020-08-20 13:18:26 +02:00
chylex 9106c5597d Add tracker role ordering & prevent lower roles from editing equal/higher role members 2020-08-20 12:48:01 +02:00
chylex d66bd961dc Allow multiple database transactions during migration 2020-08-20 11:48:31 +02:00
chylex a3961f7560 Add tracker member edit page 2020-08-20 01:42:57 +02:00
chylex 39d5d0d7f6 Add controller handler that loads string IDs 2020-08-20 01:06:45 +02:00
chylex fe7f229697 Fix adding unchecked tasks to a task-less issue changing status to in-progress 2020-08-19 23:30:57 +02:00
chylex 074736f967 Refactor form validation to eliminate duplicate code 2020-08-19 23:22:47 +02:00
chylex 0e874461d8 Add missing permission checks 2020-08-19 19:53:10 +02:00
chylex e7d24d5598 Refactor form actions and controller code & make controllers handle action permission checks 2020-08-19 17:43:03 +02:00
chylex 89fcd9bc7c Prevent manual assignment of special roles to tracker members 2020-08-19 14:42:42 +02:00
chylex 620237152f Add Link class & rewrite existing links to avoid potential bugs 2020-08-19 14:41:51 +02:00
chylex abb263529d Fix broken parent folders in login return page & table row links 2020-08-19 00:09:31 +02:00
chylex 3d535ac950 Fix URL query in navigation links breaking active page highlight 2020-08-18 23:47:53 +02:00
chylex 579d06d7c0 Fix wrong cookie path when installed in a non-root folder 2020-08-18 23:44:13 +02:00
chylex 5e6a148f24 Remove global milestone IDs 2020-08-18 22:41:09 +02:00
chylex e2e30e5145 Fix formatting & remove unnecessary code and TODOs 2020-08-18 22:40:52 +02:00
chylex 133556ce2d Add user edit page & fix duplicate user form errors 2020-08-18 14:36:07 +02:00
chylex 9e0df45543 Add milestone name to edit/delete page headings & breadcrumbs to tracker delete page 2020-08-18 13:55:05 +02:00
chylex 63af771c30 Widen 'compact' layout & add 'minimal' layout for certain pages 2020-08-18 13:13:14 +02:00
chylex 21023c86a8 Add Request::empty() 2020-08-18 12:45:31 +02:00
chylex 7352802a03 Add optional placeholder to text fields 2020-08-18 12:38:59 +02:00
chylex 6b366f405f Refactor page titles & breadcrumbs to simplify code 2020-08-18 11:46:16 +02:00
chylex 2d66909766 Fix crash when trying to delete a missing milestone 2020-08-17 23:45:08 +02:00
chylex fe1ff02d0f Return user to their previous page after logging in via navigation & tweak base url 2020-08-17 23:26:40 +02:00
chylex 72bfb50fac Rewrite table sorting to use Field w/ table names & update and cleanup existing filters 2020-08-17 23:05:59 +02:00
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