Add secondary domain setup in install dialog

This commit is contained in:
Johannes Zellner
2025-01-06 21:19:57 +01:00
parent 801c0ac47c
commit 132c1a9a8b

View File

@@ -31,7 +31,17 @@
</div>
</FormGroup>
<!-- TODO secondary domain based on v-for manifest.httpPorts -->
<!-- TODO: <p class="text-small text-warning" ng-show="appInstall.domain.provider === 'noop' || appInstall.domain.provider === 'manual'" ng-bind-html="'appstore.installDialog.manualWarning' | tr:{ location: ((appInstall.subdomain ? appInstall.subdomain + '.' : '') + appInstall.domain.domain) }"></p> -->
<FormGroup v-for="(port, key) in secondaryDomains" :key="key">
<label :for="'secondaryDomainInput' + key">{{ port.title }}</label>
<small>{{ port.description }}</small>
<div>
<TextInput :id="'secondaryDomainInput' + key" v-model="port.value" :placeholder="$t('appstore.installDialog.locationPlaceholder')"/>
<Dropdown v-model="port.domain" :options="domains" option-label="domain" option-key="domain" />
</div>
</FormGroup>
<!-- TODO upstreamUri for proxyapp -->
<PortBindings v-model:tcp-ports="tcpPorts" v-model:udp-ports="udpPorts" />
@@ -86,6 +96,7 @@ const accessRestriction = ref(null);
const domain = ref('');
const tcpPorts = ref({});
const udpPorts = ref({});
const secondaryDomains = ref({});
async function submit() {
const config = {
@@ -107,6 +118,15 @@ async function submit() {
}
config.ports = finalPorts;
const finalSecondaryDomains = {};
for (var p in secondaryDomains.value) {
finalSecondaryDomains[p] = {
subdomain: secondaryDomains.value[p].value,
domain: secondaryDomains.value[p].domain
};
}
config.secondaryDomains = finalSecondaryDomains;
busy.value = true;
const error = await appsModel.install(manifest.value, config);
busy.value = false;
@@ -135,6 +155,13 @@ defineExpose({
tcpPorts.value = a.manifest.tcpPorts;
udpPorts.value = a.manifest.udpPorts;
secondaryDomains.value = a.manifest.httpPorts;
for (const p in secondaryDomains.value) {
const port = secondaryDomains.value[p];
port.value = port.defaultValue;
port.domain = domains.value[0].domain;
}
dialog.value.open();
}
});