fix: Sidebar toggle positioning and documentation updates
- Fix collapsible sidebar toggle button positioning (moved outside sidebar) - Toggle button now stays visible when sidebar is collapsed - Update cache busting version - Update Claude.md with new features documentation - Update README.md with new features documentation - Remove migrations folder (no longer needed) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
61
README.md
61
README.md
@@ -5,7 +5,9 @@ A feature-rich PHP-based ticketing system designed for tracking and managing dat
|
||||
## Core Features
|
||||
|
||||
### Dashboard & Ticket Management
|
||||
- **Smart Dashboard**: Sortable columns, advanced filtering by status/priority/category/type
|
||||
- **View Modes**: Toggle between Table view and Kanban card view
|
||||
- **Collapsible Sidebar**: Click the arrow to collapse/expand the filter sidebar
|
||||
- **Inline Ticket Preview**: Hover over ticket IDs for a quick preview popup
|
||||
- **Stats Widgets**: Clickable cards for quick filtering (Open, Critical, Unassigned, Today's tickets)
|
||||
- **Full-Text Search**: Search across tickets, descriptions, and metadata
|
||||
- **Advanced Search**: Date ranges, priority ranges, user filters with saved filter support
|
||||
@@ -14,6 +16,12 @@ A feature-rich PHP-based ticketing system designed for tracking and managing dat
|
||||
- **Custom Categories**: Hardware, Software, Network, Security, General
|
||||
- **Ticket Types**: Maintenance, Install, Task, Upgrade, Issue, Problem
|
||||
- **Export**: Export selected tickets to CSV or JSON format
|
||||
- **Ticket Linking**: Reference other tickets in comments using `#123456789` format
|
||||
|
||||
### Ticket Visibility Levels
|
||||
- **Public**: All authenticated users can view the ticket
|
||||
- **Internal**: Only users in specified groups can view the ticket
|
||||
- **Confidential**: Only the creator, assignee, and admins can view the ticket
|
||||
|
||||
### Workflow Management
|
||||
- **Status Transitions**: Enforced workflow rules (Open → Pending → In Progress → Closed)
|
||||
@@ -46,9 +54,16 @@ A feature-rich PHP-based ticketing system designed for tracking and managing dat
|
||||
- **Field Types**: Text, textarea, select, checkbox, date, number
|
||||
- **Required Fields**: Mark fields as required for validation
|
||||
|
||||
### API Key Management
|
||||
- **Admin UI**: Generate and manage API keys at `/admin/api-keys`
|
||||
- **Bearer Token Auth**: Use API keys with `Authorization: Bearer YOUR_KEY` header
|
||||
- **Expiration**: Optional expiration dates for keys
|
||||
- **Revocation**: Revoke compromised keys instantly
|
||||
|
||||
### User Management & Authentication
|
||||
- **SSO Integration**: Authelia authentication with LLDAP backend
|
||||
- **Role-Based Access**: Admin and standard user roles
|
||||
- **User Groups**: Groups displayed in settings modal, used for visibility
|
||||
- **User Activity**: View per-user stats at `/admin/user-activity`
|
||||
- **Session Management**: Secure PHP session handling with timeout
|
||||
|
||||
@@ -57,6 +72,7 @@ A feature-rich PHP-based ticketing system designed for tracking and managing dat
|
||||
- **Bulk Assign**: Assign multiple tickets to a user
|
||||
- **Bulk Priority**: Change priority for multiple tickets
|
||||
- **Bulk Status**: Change status for multiple tickets
|
||||
- **Checkbox Click Area**: Click anywhere in the checkbox cell to toggle
|
||||
|
||||
### Admin Pages
|
||||
Access all admin pages via the **Admin dropdown** in the dashboard header.
|
||||
@@ -69,9 +85,10 @@ Access all admin pages via the **Admin dropdown** in the dashboard header.
|
||||
| `/admin/custom-fields` | Define custom fields per category |
|
||||
| `/admin/user-activity` | View per-user activity statistics |
|
||||
| `/admin/audit-log` | Browse all audit log entries |
|
||||
| `/admin/api-keys` | Generate and manage API keys |
|
||||
|
||||
### Notifications
|
||||
- **Discord Integration**: Webhook notifications for ticket creation and updates
|
||||
- **Discord Integration**: Webhook notifications for ticket creation
|
||||
- **Rich Embeds**: Color-coded priority indicators and ticket links
|
||||
|
||||
### Security Features
|
||||
@@ -94,23 +111,25 @@ Access all admin pages via the **Admin dropdown** in the dashboard header.
|
||||
- **JavaScript**: Vanilla JS with Fetch API for AJAX
|
||||
- **Markdown**: Custom markdown parser with toolbar
|
||||
- **Terminal UI**: Box-drawing characters, monospace fonts, CRT effects
|
||||
- **Mobile Responsive**: Touch-friendly controls, responsive layouts
|
||||
|
||||
### Database Tables
|
||||
| Table | Purpose |
|
||||
|-------|---------|
|
||||
| `tickets` | Core ticket data |
|
||||
| `tickets` | Core ticket data with visibility |
|
||||
| `ticket_comments` | Markdown-supported comments |
|
||||
| `ticket_attachments` | File attachment metadata |
|
||||
| `ticket_dependencies` | Ticket relationships |
|
||||
| `users` | User accounts synced from LLDAP |
|
||||
| `user_preferences` | User settings and preferences |
|
||||
| `users` | User accounts with groups |
|
||||
| `user_preferences` | User settings |
|
||||
| `audit_log` | Complete audit trail |
|
||||
| `status_transitions` | Workflow configuration |
|
||||
| `ticket_templates` | Reusable ticket templates |
|
||||
| `recurring_tickets` | Scheduled ticket definitions |
|
||||
| `ticket_templates` | Reusable templates |
|
||||
| `recurring_tickets` | Scheduled tickets |
|
||||
| `custom_field_definitions` | Custom field schemas |
|
||||
| `custom_field_values` | Custom field data per ticket |
|
||||
| `saved_filters` | User-saved dashboard filters |
|
||||
| `custom_field_values` | Custom field data |
|
||||
| `saved_filters` | Saved filter combinations |
|
||||
| `api_keys` | API key storage |
|
||||
|
||||
### API Endpoints
|
||||
| Endpoint | Method | Description |
|
||||
@@ -121,11 +140,11 @@ Access all admin pages via the **Admin dropdown** in the dashboard header.
|
||||
| `/api/get_template.php` | GET | Fetch ticket template |
|
||||
| `/api/get_users.php` | GET | Get user list for assignments |
|
||||
| `/api/bulk_operation.php` | POST | Perform bulk operations |
|
||||
| `/api/ticket_dependencies.php` | GET/POST/DELETE | Manage ticket dependencies |
|
||||
| `/api/ticket_dependencies.php` | GET/POST/DELETE | Manage dependencies |
|
||||
| `/api/upload_attachment.php` | GET/POST | List or upload attachments |
|
||||
| `/api/delete_attachment.php` | POST/DELETE | Delete attachment |
|
||||
| `/api/export_tickets.php` | GET | Export tickets to CSV/JSON |
|
||||
| `/api/check_duplicates.php` | GET | Check for duplicate tickets |
|
||||
| `/api/generate_api_key.php` | POST | Generate API key (admin) |
|
||||
| `/api/revoke_api_key.php` | POST | Revoke API key (admin) |
|
||||
|
||||
## Setup & Configuration
|
||||
|
||||
@@ -140,11 +159,7 @@ DB_NAME=ticketing_system
|
||||
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/...
|
||||
```
|
||||
|
||||
### 2. Database Setup
|
||||
|
||||
The database schema should already be configured. For a fresh install, contact the system administrator for database setup instructions.
|
||||
|
||||
### 3. Cron Jobs
|
||||
### 2. Cron Jobs
|
||||
|
||||
Add to crontab for recurring tickets:
|
||||
```bash
|
||||
@@ -152,13 +167,7 @@ Add to crontab for recurring tickets:
|
||||
0 * * * * php /var/www/html/tinkertickets/cron/create_recurring_tickets.php
|
||||
```
|
||||
|
||||
Optional cleanup job:
|
||||
```bash
|
||||
# Run weekly to clean up orphaned upload files
|
||||
0 2 * * 0 php /var/www/html/tinkertickets/scripts/cleanup_orphan_uploads.php
|
||||
```
|
||||
|
||||
### 4. File Uploads
|
||||
### 3. File Uploads
|
||||
|
||||
Ensure the `uploads/` directory exists and is writable:
|
||||
```bash
|
||||
@@ -167,7 +176,7 @@ chown www-data:www-data /var/www/html/tinkertickets/uploads
|
||||
chmod 755 /var/www/html/tinkertickets/uploads
|
||||
```
|
||||
|
||||
### 5. Authelia Integration
|
||||
### 4. Authelia Integration
|
||||
|
||||
Tinker Tickets uses Authelia for SSO. User information is passed via headers:
|
||||
- `Remote-User`: Username
|
||||
@@ -175,7 +184,7 @@ Tinker Tickets uses Authelia for SSO. User information is passed via headers:
|
||||
- `Remote-Email`: Email address
|
||||
- `Remote-Groups`: User groups (comma-separated)
|
||||
|
||||
Admin users must be in the `admins` group in LLDAP.
|
||||
Admin users must be in the `admin` group in LLDAP.
|
||||
|
||||
## Project Structure
|
||||
|
||||
|
||||
Reference in New Issue
Block a user