software package profiles implemeted, job deletion optimized

This commit is contained in:
2026-09-26 13:07:23 +02:00
parent 87a5041162
commit 7d314057e4
54 changed files with 3492 additions and 342 deletions
+98
View File
@@ -3327,4 +3327,102 @@ html[data-theme="dark"] .standard-data-table-scroll > .data-table > thead > .col
width:10px !important;
z-index:40 !important;
}
/* v0.5.5.89: software package overview actions */
.software-package-row-actions{
display:flex;
align-items:center;
gap:6px;
white-space:nowrap;
}
.software-package-row-actions .inline-form{
display:inline-flex;
align-items:center;
margin:0;
}
/* v0.5.5.90: analyzer-profile and package exchange controls */
.software-package-import-form{
display:flex;
flex-direction:column;
align-items:flex-start;
gap:10px;
}
.software-package-import-form > label:not(.checkbox-label){
display:flex;
flex-direction:column;
align-items:flex-start;
gap:5px;
}
.software-package-import-options{
display:flex;
flex-direction:column;
align-items:flex-start;
gap:.65rem;
width:100%;
margin:.2rem 0 .45rem;
}
.software-package-import-options .checkbox-label{
display:inline-flex!important;
flex-direction:row!important;
align-items:flex-start!important;
justify-content:flex-start!important;
gap:.55rem!important;
width:auto!important;
max-width:min(100%,900px)!important;
margin:0!important;
text-align:left!important;
line-height:1.35;
}
.software-package-import-options .checkbox-label input[type=checkbox]{
display:inline-block!important;
width:16px!important;
min-width:16px!important;
height:16px!important;
flex:0 0 16px!important;
margin:.12rem 0 0!important;
padding:0!important;
}
.software-package-import-options .checkbox-label span{
display:block;
min-width:0;
}
/* v0.5.5.90: translated file selector used by analyzer/package exchange pages. */
.localized-file-picker{
display:flex;
align-items:center;
flex-wrap:wrap;
gap:.65rem;
min-width:0;
}
.localized-file-picker-input{
position:absolute!important;
width:1px!important;
height:1px!important;
padding:0!important;
margin:-1px!important;
overflow:hidden!important;
clip:rect(0,0,0,0)!important;
white-space:nowrap!important;
border:0!important;
}
.localized-file-picker-button{
display:inline-flex;
align-items:center;
margin:0!important;
font-weight:normal;
cursor:pointer;
}
.localized-file-picker-name{
min-width:0;
max-width:min(70vw,720px);
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
color:var(--am-text,#1f2933);
}
html[data-theme="dark"] .localized-file-picker-name{
color:#edf3f8;
}
+24
View File
@@ -0,0 +1,24 @@
(() => {
function bindPicker(picker) {
const input = picker.querySelector('[data-file-picker-input]');
const output = picker.querySelector('[data-file-picker-name]');
const button = picker.querySelector('[data-file-picker-button]');
if (!input || !output || input.dataset.filePickerBound === '1') return;
input.dataset.filePickerBound = '1';
const emptyText = output.dataset.emptyText || '';
const refresh = () => {
const files = Array.from(input.files || []);
output.textContent = files.length ? files.map(file => file.name).join(', ') : emptyText;
output.title = output.textContent;
};
button?.addEventListener('click', () => input.click());
input.addEventListener('change', refresh);
refresh();
}
function bindAll(root = document) {
root.querySelectorAll('[data-file-picker]').forEach(bindPicker);
}
bindAll();
})();