feat: Add software licenses management page and update payment handling

- Introduced a new licenses management page with functionality to create, update, and view software licenses.
- Updated payment return handling in softwaretool.php to check payment status from the database and display appropriate modals for success, pending, and failure states.
- Enhanced webhook_mollie.php to log webhook calls, handle payment status updates directly in the database, and generate invoices based on payment status.
- Improved CSS styles for better alignment of buttons and modal components.
- Added JavaScript for modal interactions and bulk license creation functionality.
This commit is contained in:
“VeLiTi”
2025-12-24 14:07:28 +01:00
parent 0f968aac14
commit 543f0b3cac
21 changed files with 1400 additions and 238 deletions

View File

@@ -2937,6 +2937,7 @@ main .products .product .price, main .products .products-wrapper .product .price
display: flex;
gap: 10px;
align-items: center;
justify-content: flex-end;
}
.filter-panel {
@@ -2979,6 +2980,7 @@ main .products .product .price, main .products .products-wrapper .product .price
display: flex;
gap: 10px;
justify-content: flex-end;
align-items: center;
flex-wrap: wrap;
}
@@ -3084,4 +3086,46 @@ main .products .product .price, main .products .products-wrapper .product .price
font-size: 12px;
color: #6c757d;
font-style: italic;
}
/* Button alignment styles */
.form-actions,
.modal-actions,
.dialog-actions,
.button-actions {
display: flex;
gap: 10px;
justify-content: flex-end;
align-items: center;
margin-top: 20px;
}
/* Ensure title-actions stay right-aligned */
.title-actions {
display: flex;
gap: 10px;
align-items: center;
justify-content: flex-end;
}
/* Form button containers should be right-aligned */
main .form .button-container,
main .form .form-actions,
main .content-block .button-container {
display: flex;
gap: 10px;
justify-content: flex-end;
align-items: center;
margin-top: 15px;
}
/* Right-align buttons in dialog footers */
.dialog .content .footer,
.modal .modal-footer {
display: flex;
gap: 10px;
justify-content: flex-end;
align-items: center;
padding: 20px;
border-top: 1px solid #eee;
}