Add architecture filter in the web UI's repo selections
This commit is contained in:
parent
0e3be7ce69
commit
4ae2232f8e
|
@ -105,6 +105,11 @@
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
width: 40%;
|
width: 40%;
|
||||||
|
margin-right: 10px;
|
||||||
|
margin-block-end: 10px;
|
||||||
|
}
|
||||||
|
.form-split-50 select, .form-split-50 input {
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
#build-actions-list-form fieldset input[type="button"],
|
#build-actions-list-form fieldset input[type="button"],
|
||||||
#package-results-form fieldset input[type="button"] {
|
#package-results-form fieldset input[type="button"] {
|
||||||
|
|
|
@ -67,6 +67,10 @@
|
||||||
<td><input type="text" name="name" placeholder="Package name" /></td>
|
<td><input type="text" name="name" placeholder="Package name" /></td>
|
||||||
<th rowspan="3">Database:</th>
|
<th rowspan="3">Database:</th>
|
||||||
<th rowspan="3">
|
<th rowspan="3">
|
||||||
|
<select id="package-search-db-arch-filter" class="arch-filter">
|
||||||
|
<option id="package-search-db-all-archs">All archs</option>
|
||||||
|
</select>
|
||||||
|
<br />
|
||||||
<select id="package-search-db" name="db" multiple="multiple">
|
<select id="package-search-db" name="db" multiple="multiple">
|
||||||
<option id="package-search-db-any" style="font-style: italic;">any</option>
|
<option id="package-search-db-any" style="font-style: italic;">any</option>
|
||||||
</select>
|
</select>
|
||||||
|
@ -160,43 +164,53 @@
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Start new build action</legend>
|
<legend>Start new build action</legend>
|
||||||
<div>
|
<div>
|
||||||
<div class="form-row">
|
<div style="max-width: 800px;">
|
||||||
<div class="form-split-50">
|
<div class="form-row">
|
||||||
<label for="build-action-task">Predefined task:</label>
|
<div class="form-split-50">
|
||||||
<br />
|
<label for="build-action-task">Predefined task:</label>
|
||||||
<select name="task" id="build-action-task">
|
<br />
|
||||||
<option id="build-action-task-none" data-ignore="1" style="font-style: italic;">None</option>
|
<select name="task" id="build-action-task">
|
||||||
</select>
|
<option id="build-action-task-none" data-ignore="1" style="font-style: italic;">None</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="form-split-50" id="build-action-task-info">
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-split-50" id="build-action-task-info">
|
<div class="form-row">
|
||||||
|
<div class="form-split-50">
|
||||||
|
<label for="build-action-type">Action:</label>
|
||||||
|
<br />
|
||||||
|
<select name="type" id="build-action-type"></select>
|
||||||
|
</div>
|
||||||
|
<div class="form-split-50">
|
||||||
|
<label for="build-action-directory">Directory:</label>
|
||||||
|
<br />
|
||||||
|
<input name="directory" id="build-action-directory" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="form-row">
|
||||||
<div class="form-row">
|
<div class="form-split-50">
|
||||||
<div class="form-split-50">
|
<label for="build-action-source-repo">Source repo:</label>
|
||||||
<label for="build-action-type">Action:</label>
|
<br />
|
||||||
<br />
|
<select id="build-action-source-repo-arch-filter" class="arch-filter">
|
||||||
<select name="type" id="build-action-type"></select>
|
<option id="build-action-source-repo-all-archs">All archs</option>
|
||||||
</div>
|
</select>
|
||||||
<div class="form-split-50">
|
<br />
|
||||||
<label for="build-action-directory">Directory:</label>
|
<select name="source-repo" id="build-action-source-repo" multiple="multiple">
|
||||||
<br />
|
<option id="build-action-source-repo-none" style="font-style: italic;">none</option>
|
||||||
<input name="directory" id="build-action-directory" style="width: 100%;" />
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="form-split-50">
|
||||||
<div class="form-row">
|
<label for="build-action-destination-repo">Destination repo:</label>
|
||||||
<div class="form-split-50">
|
<br />
|
||||||
<label for="build-action-source-repo">Source repo:</label>
|
<select id="build-action-destination-repo-arch-filter" class="arch-filter">
|
||||||
<br />
|
<option id="build-action-destination-repo-all-archs">All archs</option>
|
||||||
<select name="source-repo" id="build-action-source-repo" multiple="multiple">
|
</select>
|
||||||
<option id="build-action-source-repo-none" style="font-style: italic;">none</option>
|
<br />
|
||||||
</select>
|
<select name="destination-repo" id="build-action-destination-repo" multiple="multiple">
|
||||||
</div>
|
<option id="build-action-destination-repo-none" style="font-style: italic;">none</option>
|
||||||
<div class="form-split-50">
|
</select>
|
||||||
<label for="build-action-destination-repo">Destination repo:</label>
|
</div>
|
||||||
<br />
|
|
||||||
<select name="destination-repo" id="build-action-destination-repo" multiple="multiple">
|
|
||||||
<option id="build-action-destination-repo-none" style="font-style: italic;">none</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
|
@ -214,22 +228,22 @@
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Settings:</legend>
|
<legend>Settings:</legend>
|
||||||
<table id="build-action-settings"></table>
|
<table id="build-action-settings"></table>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Start condition:</legend>
|
<legend>Start condition:</legend>
|
||||||
<input id="build-action-start-immediately" name="start-condition" type="radio" value="immediately"
|
<input id="build-action-start-immediately" name="start-condition" type="radio" value="immediately"
|
||||||
checked="checked" onchange="this.form['start-after-id'].disabled = this.checked" />
|
checked="checked" onchange="this.form['start-after-id'].disabled = this.checked" />
|
||||||
<label for="build-action-start-immediately">Immediately</label>
|
<label for="build-action-start-immediately">Immediately</label>
|
||||||
<input id="build-action-start-manually" name="start-condition" type="radio" value="manually"
|
<input id="build-action-start-manually" name="start-condition" type="radio" value="manually"
|
||||||
onchange="this.form['start-after-id'].disabled = this.checked" />
|
onchange="this.form['start-after-id'].disabled = this.checked" />
|
||||||
<label for="build-action-start-manually">Manually</label>
|
<label for="build-action-start-manually">Manually</label>
|
||||||
<input id="build-action-start-after" name="start-condition" type="radio" value="after"
|
<input id="build-action-start-after" name="start-condition" type="radio" value="after"
|
||||||
onchange="this.form['start-after-id'].disabled = !this.checked" />
|
onchange="this.form['start-after-id'].disabled = !this.checked" />
|
||||||
<label for="build-action-start-after">After</label>
|
<label for="build-action-start-after">After</label>
|
||||||
<input type="text" name="start-after-id" value="" placeholder="build action ID" disabled="disabled" />
|
<input type="text" name="start-after-id" value="" placeholder="build action ID" disabled="disabled" />
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|
|
@ -90,9 +90,28 @@ function handleGlobalStatusUpdate(ajaxRequest)
|
||||||
const repoName = Utils.makeRepoName(dbInfo.name, dbInfo.arch);
|
const repoName = Utils.makeRepoName(dbInfo.name, dbInfo.arch);
|
||||||
status.repoNames.push(repoName);
|
status.repoNames.push(repoName);
|
||||||
repoSelections.forEach(function (selection) {
|
repoSelections.forEach(function (selection) {
|
||||||
|
const id = selection.id;
|
||||||
const option = document.createElement('option');
|
const option = document.createElement('option');
|
||||||
option.appendChild(document.createTextNode(repoName));
|
option.text = repoName;
|
||||||
|
option.dataset.arch = dbInfo.arch;
|
||||||
selection.appendChild(option);
|
selection.appendChild(option);
|
||||||
|
const filterSel = document.getElementById(id + '-arch-filter');
|
||||||
|
if (!filterSel) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const filterOptId = filterSel.id + dbInfo.arch;
|
||||||
|
if (!filterSel.options.namedItem(filterOptId)) {
|
||||||
|
const filterOpt = document.createElement('option');
|
||||||
|
filterOpt.id = filterOptId;
|
||||||
|
filterOpt.text = dbInfo.arch;
|
||||||
|
filterSel.add(filterOpt);
|
||||||
|
filterSel.onchange = function() {
|
||||||
|
const filterVal = !filterSel.selectedIndex ? undefined : filterSel.value;
|
||||||
|
Array.from(selection.options).forEach(function(option) {
|
||||||
|
option.style.display = !filterVal || filterVal === option.dataset.arch ? 'block' : 'none';
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue