Files
cameleer-server/ui/src/pages/AppsTab/AppsTab.module.css
hsiegeln de4ca10fa5
Some checks failed
CI / cleanup-branch (push) Has been skipped
CI / build (push) Successful in 1m20s
CI / docker (push) Successful in 1m8s
CI / deploy-feature (push) Has been skipped
CI / deploy (push) Failing after 2m16s
feat: move Apps from admin to main tab bar with container config
- Apps tab visible to OPERATOR+ (hidden for VIEWER), scoped by
  sidebar app selection and environment filter
- List view: DataTable with name, environment, updated, created columns
- Detail view: deployments across all envs, version upload with
  per-env deploy target, container config form (resources, ports,
  custom env vars) with explicit Save
- Memory reserve field disabled for non-production environments
  with info hint
- Admin sidebar sorted alphabetically, Applications entry removed
- Old admin AppsPage deleted

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 16:23:30 +02:00

171 lines
2.5 KiB
CSS

.container {
padding: 16px;
overflow-y: auto;
flex: 1;
}
.toolbar {
display: flex;
justify-content: flex-end;
margin-bottom: 12px;
}
.createForm {
display: flex;
align-items: center;
gap: 8px;
padding: 12px;
margin-bottom: 12px;
border: 1px solid var(--border-subtle);
border-radius: 6px;
background: var(--bg-raised);
}
.createActions {
display: flex;
gap: 8px;
}
.envSelect {
padding: 6px 8px;
border: 1px solid var(--border-subtle);
border-radius: 4px;
background: var(--bg-surface);
color: var(--text-primary);
font-size: 12px;
font-family: var(--font-body);
}
.cellName {
font-size: 13px;
font-weight: 500;
color: var(--text-primary);
}
.cellMeta {
font-size: 12px;
color: var(--text-muted);
}
.detailHeader {
display: flex;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 16px;
}
.detailTitle {
font-size: 18px;
font-weight: 600;
color: var(--text-primary);
margin: 0;
}
.detailMeta {
font-size: 13px;
color: var(--text-muted);
margin-top: 4px;
display: flex;
align-items: center;
gap: 6px;
}
.metaGrid {
display: grid;
grid-template-columns: auto 1fr;
gap: 6px 16px;
font-size: 12px;
font-family: var(--font-body);
margin-bottom: 16px;
}
.metaLabel {
color: var(--text-muted);
font-weight: 500;
}
.row {
display: flex;
align-items: center;
gap: 8px;
padding: 6px 0;
border-bottom: 1px solid var(--border-subtle);
font-size: 12px;
font-family: var(--font-body);
}
.rowText {
flex: 1;
color: var(--text-primary);
}
.rowMeta {
color: var(--text-muted);
font-size: 11px;
}
.errorText {
color: var(--error);
font-size: 11px;
}
.emptyNote {
font-size: 12px;
color: var(--text-muted);
font-style: italic;
margin: 4px 0 8px;
}
.configForm {
margin-top: 8px;
}
.configSection {
margin-bottom: 16px;
}
.configTitle {
font-size: 13px;
font-weight: 600;
color: var(--text-primary);
margin: 0 0 8px;
}
.configGrid {
display: grid;
grid-template-columns: 160px 1fr;
gap: 8px 12px;
align-items: start;
}
.configLabel {
font-size: 12px;
color: var(--text-muted);
font-weight: 500;
padding-top: 8px;
}
.configField {
display: flex;
flex-direction: column;
gap: 4px;
}
.configHint {
font-size: 11px;
color: var(--text-muted);
font-style: italic;
}
.envVarEditor {
width: 100%;
font-family: var(--font-mono);
font-size: 12px;
padding: 8px;
border: 1px solid var(--border-subtle);
border-radius: 4px;
background: var(--bg-surface);
color: var(--text-primary);
resize: vertical;
}