Compare commits

...

2 Commits

Author SHA1 Message Date
2cbe6af878 fix(web): ticket types fit their settings panel
A type row needed some 41rem in a panel of about 26rem, so names were
cut short and the selects spilled out. It takes two lines now (three
on a phone), and on a phone an area keeps «Archivar» beside its name.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 20:55:22 +02:00
2add1b6a31 fix(web): room for the title in the new ticket form
A field's label floats above its box and only other fields leave room
for it, so «Título» sat on the type selector. Also: the mention hint
had the shell's paragraph size instead of a hint's, and «Asignar a» and
«Release» offered «Todas las personas» / «Todas las releases», filter
words, for «nobody» and «none».

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 20:55:22 +02:00
4 changed files with 72 additions and 9 deletions

View File

@@ -406,6 +406,12 @@ h3 {
.ts-form { .ts-form {
display: grid; display: grid;
gap: 1rem; gap: 1rem;
// A field's label floats above its box; other fields leave room for it
// below them (their hint line), a segmented control does not.
> pi-segmented-control {
margin-bottom: 0.75rem;
}
} }
.ts-form__row { .ts-form__row {

View File

@@ -395,7 +395,7 @@ const NOBODY = '__nobody__';
</pi-select-field> </pi-select-field>
<pi-select-field <pi-select-field
[formField]="f.releaseId" [formField]="f.releaseId"
[options]="releaseOptions()" [options]="newReleaseOptions()"
> >
<pi-label>Release</pi-label> <pi-label>Release</pi-label>
</pi-select-field> </pi-select-field>
@@ -613,9 +613,10 @@ export class BoardPage {
...options(PRIORITY), ...options(PRIORITY),
]; ];
/* Options of the new ticket form: the empty value means nobody / none. */
protected readonly assigneeOptions = computed<PiSelectFieldOption<string>[]>( protected readonly assigneeOptions = computed<PiSelectFieldOption<string>[]>(
() => [ () => [
{ value: ALL, label: 'Todas las personas' }, { value: ALL, label: 'Sin asignar' },
...this.project ...this.project
.members() .members()
.map((m) => ({ value: m.user.id, label: m.user.name })), .map((m) => ({ value: m.user.id, label: m.user.name })),
@@ -630,6 +631,12 @@ export class BoardPage {
.map((r) => ({ value: r.id, label: r.name })), .map((r) => ({ value: r.id, label: r.name })),
], ],
); );
protected readonly newReleaseOptions = computed<
PiSelectFieldOption<string>[]
>(() => [
{ value: ALL, label: 'Sin release' },
...this.releaseOptions().slice(1),
]);
/** Archived areas still filter (old tickets keep them). */ /** Archived areas still filter (old tickets keep them). */
protected readonly areaFilterOptions = computed< protected readonly areaFilterOptions = computed<
PiSelectFieldOption<string>[] PiSelectFieldOption<string>[]

View File

@@ -1053,11 +1053,35 @@ function idFrom(name: string): string {
color: var(--ts-ink) !important; color: var(--ts-ink) !important;
} }
} }
/* Two lines, to fit a panel of the pair: name and archive on top;
icon, color and template below. */
.ts-type-grid { .ts-type-grid {
display: grid; display: grid;
grid-template-columns: 2rem minmax(8rem, 1fr) 7rem 7rem auto 6.5rem; grid-template-columns: 2rem minmax(0, 1fr) minmax(0, 1fr) 6.5rem;
align-items: center; align-items: center;
gap: 0.5rem; gap: 0.5rem;
> .ts-type-icon {
grid-area: 1 / 1;
}
> .ts-name {
grid-area: 1 / 2 / 2 / 4;
}
> .ts-archive,
> .ts-icon-button {
grid-area: 1 / 4;
}
> select:nth-of-type(1) {
grid-area: 2 / 2;
}
> select:nth-of-type(2) {
grid-area: 2 / 3;
}
> .ts-template-toggle {
grid-area: 2 / 4;
}
> .ts-template {
grid-row: 3;
}
} }
.ts-area-grid { .ts-area-grid {
display: grid; display: grid;
@@ -1291,17 +1315,41 @@ function idFrom(name: string): string {
.ts-rows-head { .ts-rows-head {
display: none; display: none;
} }
.ts-status-grid, .ts-status-grid {
.ts-type-grid {
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr 1fr;
} }
.ts-grip, .ts-grip {
.ts-type-icon {
display: none; display: none;
} }
.ts-name { .ts-status-grid > .ts-name {
grid-column: 1 / -1; grid-column: 1 / -1;
} }
/* Name; icon and color; template and archive. */
.ts-type-grid {
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
> .ts-type-icon {
display: none;
}
> .ts-name {
grid-area: 1 / 1 / 2 / 3;
}
> select:nth-of-type(1) {
grid-area: 2 / 1;
}
> select:nth-of-type(2) {
grid-area: 2 / 2;
}
> .ts-template-toggle {
grid-area: 3 / 1;
}
> .ts-archive,
> .ts-icon-button {
grid-area: 3 / 2;
}
> .ts-template {
grid-row: 4;
}
}
.ts-savebar { .ts-savebar {
flex-wrap: wrap; flex-wrap: wrap;
border-radius: var(--ts-radius); border-radius: var(--ts-radius);

View File

@@ -399,8 +399,10 @@ interface Suggesting {
) !important; ) !important;
} }
} }
.ts-rich__hint { /* Beats the shell's p font size; indented like the field labels. */
ts-rich-editor p.ts-rich__hint {
margin: 0.375rem 0 0; margin: 0.375rem 0 0;
padding: 0 1rem;
color: var(--ts-muted); color: var(--ts-muted);
font-size: 0.75rem; font-size: 0.75rem;
} }