feat(boxstore): add retention options and box deletion support

Introduce configurable retention options and default selection, store
retention when creating manifests, and add a helper to delete box
directories to enable expiring/cleanup workflows. Update login and upload
styles (new login layout, taller upload window) to support the new UI.feat(boxstore): add retention options and box deletion support

Introduce configurable retention options and default selection, store
retention when creating manifests, and add a helper to delete box
directories to enable expiring/cleanup workflows. Update login and upload
styles (new login layout, taller upload window) to support the new UI.
This commit is contained in:
2026-04-27 18:18:53 +03:00
parent 2f37958c31
commit 041a9798a7
13 changed files with 654 additions and 22 deletions

View File

@@ -1,6 +1,6 @@
.upload-window {
width: 520px;
height: 486px;
height: 566px;
}
.upload-form {
@@ -21,7 +21,7 @@
.upload-dropzone {
flex: 0 0 auto;
height: 118px;
height: 88px;
box-sizing: border-box;
display: flex;
flex-direction: column;
@@ -34,6 +34,76 @@
border: 1px dotted #000000;
}
.upload-options {
flex: 0 0 auto;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 6px 10px;
box-sizing: border-box;
margin: 10px 0 0;
padding: 8px 8px 10px;
background: #dfdfdf;
border-top: 1px solid #ffffff;
border-left: 1px solid #ffffff;
border-right: 1px solid #808080;
border-bottom: 1px solid #808080;
font-size: 12px;
line-height: 12px;
}
.upload-options legend {
padding: 0 4px;
font-weight: bold;
}
.upload-option-row {
grid-column: 1 / 3;
display: grid;
grid-template-columns: 76px minmax(0, 1fr);
align-items: center;
gap: 6px;
}
.upload-check-row {
display: flex;
align-items: center;
min-width: 0;
gap: 5px;
white-space: nowrap;
}
.upload-check-row input {
width: 13px;
height: 13px;
margin: 0;
}
.upload-select,
.upload-text-input {
width: 100%;
height: 22px;
box-sizing: border-box;
padding: 1px 4px;
color: #000000;
background: #ffffff;
border-top: 1px solid #808080;
border-left: 1px solid #808080;
border-right: 1px solid #ffffff;
border-bottom: 1px solid #ffffff;
font-family: inherit;
font-size: 12px;
line-height: 12px;
}
.upload-text-input {
min-width: 0;
}
.upload-text-input:disabled {
color: #808080;
background: #c0c0c0;
}
.upload-dropzone.is-dragging {
background: #c7d8f2;
outline: 2px solid #000078;
@@ -119,7 +189,6 @@
min-height: 0;
margin-top: 8px;
overflow-y: auto;
color: #fff;
border-top: 2px solid #808080;
border-left: 2px solid #808080;
border-right: 2px solid #ffffff;
@@ -367,11 +436,20 @@
}
.upload-dropzone {
height: 126px;
min-height: 126px;
height: 96px;
min-height: 96px;
}
.upload-result {
grid-template-columns: 64px minmax(0, 1fr) 68px;
}
.upload-options {
grid-template-columns: 1fr;
}
.upload-option-row,
.upload-text-input {
grid-column: 1;
}
}