Skip to content

Commit

Permalink
#5 update dyndns client frontend/backend
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanwerfling committed Jan 28, 2025
1 parent 6a390c5 commit 8097063
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 16 deletions.
13 changes: 12 additions & 1 deletion backend/src/Routes/Main/DynDnsClient/List.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,21 @@ export class List {
}
}

let mainDomain: DynDnsClientDomain|null = null;

const mainDomaindb = await DomainServiceDB.getInstance().findOne(client.main_domain_id);

if (mainDomaindb) {
mainDomain = {
id: mainDomaindb.id,
name: mainDomaindb.domainname
};
}

list.push({
id: client.id,
domains: domains,
main_domain: client.main_domain_id,
main_domain: mainDomain,
provider: {
name: providerName,
title: providerTitle
Expand Down
4 changes: 4 additions & 0 deletions backend/src/Routes/Main/DynDnsClient/Save.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ export class Save {

client.update_domain = data.update_domain;

if (data.main_domain !== null) {
client.main_domain_id = data.main_domain.id;
}

client = await DynDnsClientServiceDB.getInstance().save(client);

if (client) {
Expand Down
8 changes: 4 additions & 4 deletions backend/src/inc/Server/NginxControlHttpServer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ export class NginxControlHttpServer extends BaseHttpServer {

public constructor() {
super({
realm: 'FlyingFish Nginx controll',
realm: 'FlyingFish Nginx control',
routes: [
new NjsAddressAccessController(),
new NjsAuthBasicController(),
Expand All @@ -54,21 +54,21 @@ export class NginxControlHttpServer extends BaseHttpServer {

const server = app.listen(this._unixPath, () => {
Logger.getLogger().info(
'NginxControllHttpServer::listen: %s listening on the socket %s',
'NginxControlHttpServer::listen: %s listening on the socket %s',
this._realm,
this._unixPath
);

FileHelper.chmod(this._unixPath, 0o777);

Logger.getLogger().info(
'NginxControllHttpServer::listen: set chmod 777 to socket %s',
'NginxControlHttpServer::listen: set chmod 777 to socket %s',
this._unixPath
);
});

server.on('error', (err) => {
Logger.getLogger().error('NginxControllHttpServer::error', err);
Logger.getLogger().error('NginxControlHttpServer::error', err);
});
}

Expand Down
4 changes: 2 additions & 2 deletions frontend/src/inc/Pages/DynDnsClient/DynDnsClientEditModal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,10 @@ export class DynDnsClientEditModal extends ModalDialog {

const rowOptions = new FormRow(bodyCard);

const groupUpdateDomains = new FormGroup(rowOptions.createCol(6), 'Update Domains');
const groupUpdateDomains = new FormGroup(rowOptions.createCol(6), 'Enable update Domains');
this._switchUpdateDomains = new Switch(groupUpdateDomains, 'updateDomains');

const groupDomains = new FormGroup(bodyCard, 'Domains');
const groupDomains = new FormGroup(bodyCard, 'Update Domains');
this._multipleDomains = new Multiple(groupDomains);
groupDomains.hide();

Expand Down
41 changes: 33 additions & 8 deletions frontend/src/inc/Pages/DynDnsClients.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ import moment from 'moment';
import {Domain} from '../Api/Domain';
import {DynDnsClient as DynDnsClientAPI} from '../Api/DynDnsClient';
import {UnauthorizedError} from '../Api/Error/UnauthorizedError';
import {Badge, BadgeType, ButtonClass, Card, Circle, CircleColor, ContentCol, ContentColSize, ContentRow,
DialogConfirm, ButtonType, ButtonMenu, IconFa, Table, Td, Th, Tr, ModalDialogType, LeftNavbarLink} from 'bambooo';
import {
Badge, BadgeType, ButtonClass, Card, Circle, CircleColor, ContentCol, ContentColSize, ContentRow,
DialogConfirm, ButtonType, ButtonMenu, IconFa, Table, Td, Th, Tr, ModalDialogType, LeftNavbarLink, ColumnContent
} from 'bambooo';
import {UtilRedirect} from '../Utils/UtilRedirect';
import {BasePage} from './BasePage';
import {DynDnsClientEditModal} from './DynDnsClient/DynDnsClientEditModal';
Expand Down Expand Up @@ -88,7 +90,10 @@ export class DynDnsClients extends BasePage {
title: ''
},
domains: this._dynDnsClientDialog.getDomainsSelected(),
main_domain: this._dynDnsClientDialog.getMainDomainSelected(),
main_domain: {
id: this._dynDnsClientDialog.getMainDomainSelected(),
name: ''
},
username: this._dynDnsClientDialog.getUsername(),
password: this._dynDnsClientDialog.getPassword(),
update_domain: this._dynDnsClientDialog.getUpdateDomains(),
Expand Down Expand Up @@ -139,7 +144,10 @@ export class DynDnsClients extends BasePage {
new Th(trhead, 'Id');

// eslint-disable-next-line no-new
new Th(trhead, 'Domains');
new Th(trhead, new ColumnContent([
'Main Domain',
'Update Domain'
]));

// eslint-disable-next-line no-new
new Th(trhead, 'Provider');
Expand Down Expand Up @@ -180,10 +188,24 @@ export class DynDnsClients extends BasePage {
'white-space': 'normal'
});

for (const domain of entry.domains) {
if (entry.main_domain) {
// eslint-disable-next-line no-new
new Badge(domainsTd, `${entry.main_domain.name}`, BadgeType.dark);
} else {
// eslint-disable-next-line no-new
new Badge(domainsTd, `${domain.name}`, BadgeType.secondary);
domainsTd.append(' ');
new Badge(domainsTd, '<none>', BadgeType.dark);
}

domainsTd.append('<br>');

if (entry.update_domain) {
for (const domain of entry.domains) {
// eslint-disable-next-line no-new
new Badge(domainsTd, `${domain.name}`, BadgeType.secondary);
domainsTd.append('&nbsp;');
}
} else {
domainsTd.append('disabled');
}

// eslint-disable-next-line no-new
Expand Down Expand Up @@ -249,7 +271,10 @@ export class DynDnsClients extends BasePage {
this._dynDnsClientDialog.setDomainsSelected(entry.domains);
this._dynDnsClientDialog.setUsername(entry.username);
this._dynDnsClientDialog.setUpdateDomains(entry.update_domain);
this._dynDnsClientDialog.setMainDomainSelected(entry.main_domain);

if (entry.main_domain) {
this._dynDnsClientDialog.setMainDomainSelected(entry.main_domain.id);
}
},
IconFa.edit
);
Expand Down
2 changes: 1 addition & 1 deletion schemas/src/Backend/Routes/DynDnsClient/List.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export type DynDnsClientDomain = ExtractSchemaResultType<typeof SchemaDynDnsClie
export const SchemaDynDnsClientData = Vts.object({
id: Vts.number(),
domains: Vts.array(SchemaDynDnsClientDomain),
main_domain: Vts.number(),
main_domain: Vts.or([SchemaDynDnsClientDomain, Vts.null()]),
provider: SchemaProviderEntry,
username: Vts.string(),
password: Vts.optional(Vts.string()),
Expand Down

0 comments on commit 8097063

Please sign in to comment.