new file: CHANGELOG.md

modified:   README.md
	modified:   support-provisioning-portal/assets/portal.css
	modified:   support-provisioning-portal/assets/portal.js
	modified:   support-provisioning-portal/includes/class-spp-activator.php
	modified:   support-provisioning-portal/includes/class-spp-admin-page.php
	modified:   support-provisioning-portal/includes/class-spp-http-proxmox-client.php
	modified:   support-provisioning-portal/includes/class-spp-mock-proxmox-client.php
	new file:   support-provisioning-portal/includes/class-spp-permissions.php
	modified:   support-provisioning-portal/includes/class-spp-plugin.php
	modified:   support-provisioning-portal/includes/class-spp-repository.php
	modified:   support-provisioning-portal/includes/class-spp-rest-controller.php
	modified:   support-provisioning-portal/includes/class-spp-shortcode.php
	modified:   support-provisioning-portal/includes/interface-spp-proxmox-client.php
	modified:   support-provisioning-portal/support-provisioning-portal.php
This commit is contained in:
Sven Steinert
2026-04-24 15:13:42 +02:00
parent aee79ddbfa
commit 2c1949bf1e
15 changed files with 1900 additions and 170 deletions

View File

@@ -16,6 +16,11 @@
align-items: start;
}
.spp-admin-stack {
display: grid;
gap: 20px;
}
.spp-settings,
.spp-panel,
.spp-card {
@@ -28,6 +33,14 @@
padding: 18px;
}
.spp-admin-notice {
padding: 16px;
}
.spp-admin-notice p {
margin: 0;
}
.spp-settings label {
display: grid;
gap: 6px;
@@ -37,6 +50,7 @@
.spp-settings input,
.spp-settings select,
.spp-settings textarea,
.spp-input,
.spp-select {
min-height: 38px;
@@ -48,6 +62,10 @@
padding: 7px 10px;
}
.spp-settings textarea {
min-height: 72px;
}
.spp-header {
display: flex;
flex-wrap: wrap;
@@ -166,6 +184,21 @@
color: #92400e;
}
.spp-badge.OWNER {
background: #dbeafe;
color: #1e40af;
}
.spp-badge.SHARED {
background: #ede9fe;
color: #5b21b6;
}
.spp-badge.ADMIN {
background: #e0f2fe;
color: #075985;
}
.spp-badge.FAILED,
.spp-error {
background: #fee2e2;
@@ -242,8 +275,51 @@
margin: 0;
}
.spp-share-panel {
border-top: 1px solid var(--spp-line);
display: grid;
gap: 12px;
margin-top: 18px;
max-width: 640px;
padding-top: 16px;
}
.spp-share-panel h3,
.spp-share-panel p {
margin: 0;
}
.spp-share-list {
display: grid;
gap: 8px;
}
.spp-share-row {
align-items: center;
border: 1px solid var(--spp-line);
border-radius: 6px;
display: flex;
gap: 10px;
justify-content: space-between;
padding: 10px;
}
.spp-share-row small {
color: var(--spp-muted);
display: block;
margin-top: 2px;
}
.spp-share-form {
align-items: end;
display: grid;
gap: 10px;
grid-template-columns: minmax(0, 1fr) auto;
}
.spp-form label,
.spp-prolong-form label {
.spp-prolong-form label,
.spp-share-form label {
display: grid;
gap: 6px;
font-weight: 700;
@@ -264,9 +340,148 @@
padding: 10px 12px;
}
.spp-user-access {
margin-top: 20px;
}
.spp-template-admin {
margin-top: 20px;
}
.spp-template-admin h3 {
margin: 18px 0 10px;
}
.spp-section-header {
align-items: flex-start;
display: flex;
flex-wrap: wrap;
gap: 12px;
justify-content: space-between;
margin-bottom: 14px;
}
.spp-section-header h2 {
margin: 0 0 4px;
}
.spp-user-search {
align-items: center;
display: flex;
gap: 8px;
}
.spp-user-search input {
min-height: 32px;
}
.spp-user-access-table td {
vertical-align: top;
}
.spp-user-login {
color: var(--spp-muted);
display: block;
margin-top: 4px;
}
.spp-permission-groups {
display: grid;
gap: 10px;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.spp-permission-groups fieldset {
border: 1px solid var(--spp-line);
border-radius: 6px;
margin: 0;
padding: 10px;
}
.spp-permission-groups legend {
font-weight: 700;
padding: 0 4px;
}
.spp-permission-groups label {
align-items: flex-start;
display: flex !important;
font-weight: 400;
gap: 6px;
margin: 8px 0 0;
}
.spp-permission-groups input[type="checkbox"] {
margin: 2px 0 0;
min-height: auto;
padding: 0;
}
.spp-template-list,
.spp-pve-template-grid {
display: grid;
gap: 12px;
}
.spp-pve-template-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.spp-template-row,
.spp-pve-template {
border: 1px solid var(--spp-line);
border-radius: 6px;
display: grid;
gap: 12px;
margin: 0;
padding: 14px;
}
.spp-template-row-head {
align-items: flex-start;
display: flex;
gap: 10px;
justify-content: space-between;
}
.spp-template-row-head strong,
.spp-template-row-head span {
display: block;
}
.spp-template-row-head span {
color: var(--spp-muted);
font-size: 13px;
margin-top: 2px;
}
.spp-template-fields {
display: grid;
gap: 12px;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.spp-template-fields label {
margin: 0;
}
.spp-template-description {
grid-column: 1 / -1;
}
.spp-template-actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
@media (max-width: 960px) {
.spp-admin-grid,
.spp-grid {
.spp-grid,
.spp-permission-groups,
.spp-pve-template-grid,
.spp-template-fields,
.spp-share-form {
grid-template-columns: 1fr;
}
}