- Add `agent.md`: Complete maintenance reference covering project structure, API interactions, data flow, configuration, security, and operational procedures. - Add `architecture.md`: High-level architecture overview including component map, data flow, design decisions, and security model. - Update `README.md`: Add Apprise support documentation, manual deployment instructions, updated installation steps (bot admin requirement), and expanded payload mapping and troubleshooting sections. - Improve `lib/Controller/WebhookController.php`: Enhance `saveBotPassword` validation to check for missing fields and validate the password content. - Improve `lib/Service/TalkService.php`: Add `validateBotPassword` method for round-trip encryption testing and integrate it into `saveConfig`. - Update `css/adminSettings.css`: Add styles for the new `.nc-app-frame` wrapper. - Update `templates/adminSettings.php`: Refactor UI structure to use `.nc-app-frame` and improve layout of settings sections.
106 lines
2.2 KiB
CSS
106 lines
2.2 KiB
CSS
.nc-app-frame {
|
|
border: 1px solid var(--color-border);
|
|
border-radius: 6px;
|
|
padding: 1.5em;
|
|
margin-bottom: 1em;
|
|
}
|
|
.nc-app-frame h2 {
|
|
margin-top: 0;
|
|
margin-bottom: 1em;
|
|
padding-bottom: 0.5em;
|
|
border-bottom: 1px solid var(--color-border);
|
|
}
|
|
.nc-settings-section {
|
|
margin-bottom: 2em;
|
|
padding: 1em;
|
|
border: 1px solid var(--color-border);
|
|
border-radius: 4px;
|
|
}
|
|
.nc-settings-section h3 {
|
|
margin-top: 0;
|
|
}
|
|
.nc-room-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 4px 0;
|
|
}
|
|
.nc-room-item span {
|
|
font-size: 0.9em;
|
|
}
|
|
.nc-room-tokens {
|
|
margin-left: 24px;
|
|
margin-top: 8px;
|
|
padding: 8px;
|
|
background: var(--color-background-dark);
|
|
border-radius: 4px;
|
|
}
|
|
.nc-token-row {
|
|
display: flex;
|
|
gap: 4px;
|
|
margin-bottom: 4px;
|
|
}
|
|
.nc-token-input {
|
|
flex: 1;
|
|
font-family: monospace;
|
|
font-size: 0.85em;
|
|
background: var(--color-main-background);
|
|
border: 1px solid var(--color-border);
|
|
padding: 4px 8px;
|
|
border-radius: 3px;
|
|
}
|
|
.nc-token-url-input {
|
|
flex: 1;
|
|
font-family: monospace;
|
|
font-size: 0.8em;
|
|
background: var(--color-main-background);
|
|
border: 1px solid var(--color-border);
|
|
padding: 4px 8px;
|
|
border-radius: 3px;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
.nc-token-hint {
|
|
color: var(--color-text-lighter);
|
|
font-size: 0.85em;
|
|
margin: 4px 0;
|
|
}
|
|
.nc-token-copy {
|
|
padding: 4px 8px;
|
|
background: var(--color-primary-element);
|
|
color: white;
|
|
border: none;
|
|
border-radius: 3px;
|
|
cursor: pointer;
|
|
font-size: 0.85em;
|
|
}
|
|
.nc-token-revoke {
|
|
padding: 4px 8px;
|
|
background: var(--color-error);
|
|
color: white;
|
|
border: none;
|
|
border-radius: 3px;
|
|
cursor: pointer;
|
|
font-size: 0.85em;
|
|
}
|
|
.nc-generate-token {
|
|
margin-top: 8px;
|
|
padding: 4px 12px;
|
|
background: var(--color-primary-element);
|
|
color: white;
|
|
border: none;
|
|
border-radius: 3px;
|
|
cursor: pointer;
|
|
}
|
|
.nc-empty {
|
|
color: var(--color-text-lighter);
|
|
font-style: italic;
|
|
}
|
|
.nc-status-success { color: var(--color-success); }
|
|
.nc-status-error { color: var(--color-error); }
|
|
.nc-hint {
|
|
font-size: 0.85em;
|
|
color: var(--color-text-lighter);
|
|
}
|