diff -urN smeserver-ddclient-1.3.0.old/root/usr/share/smanager/lib/SrvMngr/Controller/Ddclient.pm smeserver-ddclient-1.3.0/root/usr/share/smanager/lib/SrvMngr/Controller/Ddclient.pm --- smeserver-ddclient-1.3.0.old/root/usr/share/smanager/lib/SrvMngr/Controller/Ddclient.pm 2023-11-10 16:11:05.915271983 +0000 +++ smeserver-ddclient-1.3.0/root/usr/share/smanager/lib/SrvMngr/Controller/Ddclient.pm 2023-11-18 10:41:00.000000000 +0000 @@ -114,57 +114,167 @@ my %ddc_datas = (); +sub get_devices_names { + # + # Router devices from which it can get ip address + # + my $devices = ( [ + ['2Wire 1701HG Gateway', '2wire'], + ['3com 3c886a 56k Lan Modem', '3com-3c886a'], + ['3com OfficeConnect Remote 812', '3com-oc-remote812'], + ['Alcatel Speed Touch 510', 'alcatel-510'], + ['Alcatel/Thomson SpeedTouch 530', 'alcatel-530'], + ['Alcatel Speed Touch Pro', 'alcatel-stp'], + ['Allnet 1298', 'allnet-1298'], + ['Cayman 3220-H DSL', 'cayman-3220h'], + ['D-Link DI-524', 'dlink-524'], + ['D-Link DI-604', 'dlink-604'], + ['D-Link DI-614+', 'dlink-614'], + ['E-tech Router', 'e-tech'], + ['ELSA LanCom DSL/10 DSL FW', 'elsa-lancom-dsl10'], + ['ELSA LanCom DSL/10 DSL FW (isdn ch01)', 'elsa-lancom-dsl10-ch01'], + ['ELSA LanCom DSL/10 DSL FW (isdn ch01)', 'elsa-lancom-dsl10-ch02'], + ['Linksys FW', 'linksys'], + ['Linksys RV042 Dual Homed Router WAN Port 2', 'linksys-rv042-wan1'], + ['Linksys RV042 Dual Homed Router WAN Port 2', 'linksys-rv042-wan2'], + ['Linksys FW version 2', 'linksys-ver2'], + ['Linksys FW version 3', 'linksys-ver3'], + ['Linksys WCG200 FW', 'linksys-wcg200'], + ['Linksys WRT854G FW', 'linksys-wrt854g'], + ['MaxGate UGATE-3x00 FW', 'maxgate-ugate3x00'], + ['NetComm NB3', 'netcomm-nb3'], + ['netgear-dg834g', 'netgear-dg834g'], + ['Netgear RP614 FW', 'netgear-rp614'], + ['Netgear FW', 'netgear-rt3xx'], + ['Netgear WGT624', 'netgear-wgt624'], + ['Netgear WPN824 FW', 'netgear-wpn824'], + ['Netopia R910 FW', 'netopia-r910'], + ['olitec-SX200', 'olitec-SX200'], + ['Linksys RTP300', 'rtp300'], + ['Siemens SpeedStream 4200', 'siemens-ss4200'], + ['Sitecom DC-202 FW', 'sitecom-dc202'], + ['SMC Barricade FW', 'smc-barricade'], + ['SMC Barricade FW (7004VBR model config)', 'smc-barricade-7004vbr'], + ['SMC Barricade 7401BRA FW', 'smc-barricade-7401bra'], + ['SMC Barricade FW (alternate config)', 'smc-barricade-alt'], + ['SOHOWare BroadGuard NBG800', 'sohoware-nbg800'], + ['Sveasoft WRT54G/WRT54GS', 'sveasoft'], + ['Thomson SpeedTouch 536v6', 'thomson-st536v6'], + ['Thomson/Technicolor TG782', 'thomson-tg782'], + ['Vigor 2200 USB', 'vigor-2200usb'], + ['Watchguard Edge X FW', 'watchguard-edge-x'], + ['Watchguard SOHO FW', 'watchguard-soho'], + ['Westell C90-610015-06 DSL Router', 'westell-6100'], + ['xsense-aero', 'Xsense Aero'] + ] ); + return $devices; + + + # Automatic loading of the devices from the ddclient program - I can't get this to pass the results successfully to the template + #my $output = `ddclient -list-devices`; # Run ddclient command to get devices output + #my @lines; + #foreach my $line (split /\n/, $output) { + #$line =~ s/\s+//; # Remove leading whitespace + #my ($field1, $field2) = split(' ', $line, 2); + #push @lines, [$field2, $field1]; + #} + #return \@lines; # Return a reference to the lines array +} + +sub get_web_services_names { + # + # Web Services from which it can get ip address + # + my $webservices = ( [ + ['dyndns http://checkip.dyndns.org/', 'dyndns'], + ['freedns https://freedns.afraid.org/dynamic/check.php', 'freedns'], + ['googledomains https://domains.google.com/checkip', 'googledomains'], + ['he https://checkip.dns.he.net/', 'he'], + ['ip4only.me https://ip4only.me/api/', 'ip4only.me'], + ['ip6only.me https://ip6only.me/api/', 'ip6only.me'], + ['ipify-ipv4 https://api.ipify.org/', 'ipify-ipv4'], + ['ipify-ipv6 https://api6.ipify.org/', 'ipify-ipv6'], + ['loopia https://dns.loopia.se/checkip/checkip.php', 'loopia'], + ['myonlineportal https://myonlineportal.net/checkip', 'myonlineportal'], + ['noip-ipv4 http://ip1.dynupdate.no-ip.com/', 'noip-ipv4'], + ['noip-ipv6 http://ip1.dynupdate6.no-ip.com/', 'noip-ipv6'], + ['nsupdate.info-ipv4 https://ipv4.nsupdate.info/myip', 'nsupdate.info-ipv4'], + ['nsupdate.info-ipv6 https://ipv6.nsupdate.info/myip', 'nsupdate.info-ipv6'], + ['zoneedit https://dynamic.zoneedit.com/checkip.html', 'zoneedit'] + ] ); + return $webservices + + #my $output = `ddclient -list-web-services`; # Run ddclient command to get web services output + #my @lines; + #foreach my $line (split /\n/, $output) { + #$line =~ s/\s+//; # Remove leading whitespace + #my ($field1, $field2) = split(' ', $line, 2); + #push @lines, [$field2, $field1]; + #} + #return \@lines; # Return a reference to the lines array +} + sub get_dns_labels { # # dns service names + # Return array with translated results as well. + # + # Note that "new" ones willl not have any description / translation, this can be added to /usr/share/smanager/lib/SrvMngr/I18N/Modules/Ddclient # my $c = shift; - my $Labels = ( - - # v3.11.1 labels - [ - [$c->l('1984') '1984'], - [$c->l('changeip') 'changeip'], - [$c->l('cloudflare') 'cloudflare'], - [$c->l('cloudns') 'cloudns'],, - [$c->l('digitalocean') 'digitalocean'], - [$c->l('dinahosting') 'dinahosting'], - [$c->l('dnsexit2') 'dnsexit2'], - [$c->l('dnsmadeeasy') 'dnsmadeeasy'], - [$c->l('domeneshop') 'domeneshop'], - [$c->l('dondominio') 'dondominio'], - [$c->l('dslreports1') 'dslreports1'], - [$c->l('duckdns') 'duckdns'], - [$c->l('dyndns1') 'dyndns1'], - [$c->l('dyndns2') 'dyndns2'], - [$c->l('easydns') 'easydns'], - [$c->l('enom') 'enom'], - [$c->l('freedns') 'freedns'], - [$c->l('freemyip') 'freemyip'], - [$c->l('gandi') 'gandi'], - [$c->l('godaddy') 'godaddy'], - [$c->l('googledomains') 'googledomains'], - [$c->l('hetzner') 'hetzner'], - [$c->l('infomaniak') 'infomaniak'], - [$c->l('keysystems') 'keysystems'], - [$c->l('mythicdyn') 'mythicdyn'], - [$c->l('namecheap') 'namecheap'], - [$c->l('nfsn') 'nfsn'], - [$c->l('njalla') 'njalla'], - [$c->l('noip') 'noip'], - [$c->l('nsupdate') 'nsupdate'], - [$c->l('ovh') 'ovh'], - [$c->l('porkbun') 'porkbun'], - [$c->l('regfishde') 'regfishde'], - [$c->l('sitelutions') 'sitelutions'], - [$c->l('woima') 'woima'], - [$c->l('yandex') 'yandex'], - [$c->l('zoneedit1') 'zoneedit1'] - ] - # end of v3.11.1 labels - + my $dnsservices = ( [ + ['1984 - https://kb.1984hosting.com/doku.php?id=freedns', '1984'], + ['changeip - https://changeip.com', 'changeip'], + ['cloudflare - https://cloudflare.com', 'cloudflare'], + ['cloudns - https://cloudns.com', 'cloudns'], + ['digitalocean - https://digitalocean.com', 'digitalocean'], + ['dinahosting - https://dinahosting.com', 'dinahosting'], + ['dnsexit - https://dnsexit.com/', 'dnsexit'], + ['dnsmadeeasy - https://dnsmadeeasy.com', 'dnsmadeeasy'], + ['domeneshop - https://domeneshop.com', 'domeneshop'], + ['dondominio - https://dondominio.com', 'dondominio'], + ['dslreports - https://www.dslreports.com/', 'dslreports'], + ['duckdns - https://duckdns.com', 'duckdns'], + ['dyndns1 - https://account.dyn.com/', 'dyndns1'], + ['dyndns2 - https://account.dyn.com/', 'dyndns2'], + ['easydns - https://easydns.com', 'easydns'], + ['enom - https://enom.com', 'enom'], + ['freedns - http://freedns.com', 'freedns'], + ['freemyip - https://freemyip.com', 'freemyip'], + ['gandi - https://gandi.com', 'gandi'], + ['godaddy - https://godaddy.com', 'godaddy'], + ['googledomains - https://googledomains.com', 'googledomains'], + ['hetzner - https://hetzner.com', 'hetzner'], + ['infomaniak - https://infomaniak.com', 'infomaniak'], + ['keysystems - https://keysystems.com', 'keysystems'], + ['mythicdyn - https://www.mythic-beasts.com/support/api/dnsv2/dynamic-dns', 'mythicdyn'], + ['namecheap - https://namecheap.com', 'namecheap'], + ['nfsn - http://nfsn.com', 'nfsn'], + ['njalla - https://njalla.com', 'njalla'], + ['noip - https://noip.com', 'noip'], + ['nsupdate - http://nsupdate.com', 'nsupdate'], + ['ovh - https://ovh.com', 'ovh'], + ['porkbun - https://porkbun.com', 'porkbun'], + ['regfishde - regfishde', 'regfishde'], + ['sitelutions - https://sitelutions.com', 'sitelutions'], + ['woima - http://woima.com', 'woima'], + ['yandex - https://yandex.com', 'yandex'], + ['zoneedit - https://www.zoneedit.com/dynamic-dns/', 'zoneedit'] ] ); + return $dnsservices; - #[ [ $c->l('CUSTOMDNS'), 'CUSTOMDNS' ], + #my $output = `ddclient -list-protocols`; # Run ddclient command and capture the output + #my @protocols; + #foreach my $line (split /\n/, $output) { + #my ($protocol) = $line =~ /\s*(\S+)/; + #next unless $protocol; # Skip if protocol is empty or contains only whitespace + #my $custom_value = "$protocol.$c->l($protocol)"; # Additional column value using $c->l(protocol) + #push @protocols, [$custom_value, $protocol]; + #} + #return \@protocols; # Return a reference to the protocols array +} + +# Pre 3.11.1 dns services + #[ [ $c->l('CUSTOMDNS'), 'CUSTOMDNS' ], #[ $c->l('DYNDNS1'), 'DYNDNS1' ], #[ $c->l('DYNDNS2'), 'DYNDNS2' ], #[ $c->l('DYNDNS3'), 'DYNDNS3' ], @@ -196,9 +306,6 @@ #[ $c->l('OVH'), 'OVH' ], #[ $c->l('CLOUDNS'), 'CLOUDNS' ] #] - ); - return $Labels; -} sub main { # @@ -231,8 +338,9 @@ my $Labels = ( [ [ $c->l('SME external Interface'), "smeIF" ], - [ $c->l('SME configuration DB'), "smeCMD" ], + [ $c->l('SME configuration DB'), "smeCDB" ], [ $c->l('web'), "web" ], + [ $c->l('router'), "router" ], [ $c->l('Interface'), "if" ], [ $c->l('IP'), "ip" ], [ $c->l('Command'), "cmd" ] @@ -246,6 +354,8 @@ domains => \@domains, freedomains => \@FreeDomains, methodlabels => $Labels, + devices => get_devices_names($c), + webservices => get_web_services_names($c), emptydom => $emptydom, emptycust => $emptycust ); @@ -269,6 +379,7 @@ #Called to update/delete the ddclient for a specific inbuilt domain # my $c = shift; + my $title = $c->l("MODIFY_TITLE"); my $retmsg; if ( $c->param("Route") eq "ddclient2" ) { #Route is hidden field $retmsg = performModifyCustom($c); @@ -279,7 +390,7 @@ if ( $retmsg eq "ok" ) { my $dns = $c->param('dns'); my $domain = $c->param('domainname'); - $ddc_datas{"success"} = $c->l( "ddc_SUCCESSFULLY_MODIFIED", $domain, + $ddc_datas{"success"} = $c->l( "SUCCESSFULLY_MODIFIED", $domain, $c->l( '' . $dns ) ); do_display( $c, %ddc_datas ); } @@ -296,7 +407,7 @@ # Create custom domain # my $c = shift; - my $title = $c->l("ddc_CREATE_TITLE"); + my $title = $c->l("CREATE_TITLE"); my $modul = ''; my $trt = "NEW"; @@ -305,7 +416,9 @@ title => $title, modul => $modul, ddc_datas => \%ddc_datas, - dnslabels => get_dns_labels($c) + dnslabels => get_dns_labels($c), + devices => get_devices_names($c), + webservices => get_web_services_names($c) ); $c->render( template => 'ddclient' ); } @@ -316,7 +429,7 @@ if ( $retmsg eq "ok" ) { my $dns = $c->param('dns'); my $domain = $c->param('domainname'); - $ddc_datas{"success"} = $c->l( "ddc_SUCCESSFULLY_DELETED", $domain, + $ddc_datas{"success"} = $c->l( "SUCCESSFULLY_DELETED", $domain, $c->l( '' . $dns ) ); do_display( $c, %ddc_datas ); } @@ -334,7 +447,7 @@ # Display delete or modify panel for custom domain # my $c = shift; - my $title = $c->l("ddc_MODIFY_TITLE"); + my $title = $c->l("MODIFY_TITLE"); my $modul = ''; my $trt = $c->param("trt"); @@ -349,7 +462,9 @@ title => $title, modul => $modul, ddc_datas => \%ddc_datas, - dnslabels => get_dns_labels($c) + dnslabels => get_dns_labels($c), + devices => get_devices_names($c), + webservices => get_web_services_names($c) ); $c->render( template => 'ddclient' ); } @@ -360,21 +475,23 @@ # param trt = MOD or DEL # my $c = shift; - my $title = $c->l("ddc_MODIFY_TITLE"); + my $title = $c->l("MODIFY_TITLE"); my $modul = ''; my $trt = $c->param("trt"); #Extract domain stuff from DB my @results = get_domain_table( $c, $c->param("Domain") ); #Returns just one row - $ddc_datas{"Domain_details"} = $results[0]; + $ddc_datas{"Domain_details"} = $results[0]; $ddc_datas{'trt'} = $trt; $c->stash( title => $title, modul => $modul, ddc_datas => \%ddc_datas, - dnslabels => get_dns_labels($c) + dnslabels => get_dns_labels($c), + devices => get_devices_names($c), + webservices => get_web_services_names($c) ); $c->render( template => 'ddclient' ); } @@ -386,7 +503,7 @@ # my $c = shift; my $route = $c->current_route; - my $title = $c->l("ddc_REMOVE_TITLE"); + my $title = $c->l("REMOVE_TITLE"); my $modul = ''; my $retmsg = ""; my $domain = $c->param("Domain"); @@ -400,7 +517,7 @@ } if ( $retmsg eq "ok" ) { - $ddc_datas{"success"} = $c->l( "ddc_SUCCESSFULLY_DELETED", $domain, + $ddc_datas{"success"} = $c->l( "SUCCESSFULLY_DELETED", $domain, $c->l( '' . $c->param("dns") ) ); } else { $ddc_datas{"error"} = $retmsg; } @@ -415,7 +532,7 @@ # my $c = shift; my $route = $c->current_route; - my $title = $c->l("ddc_REMOVE_TITLE"); + my $title = $c->l("REMOVE_TITLE"); my $modul = ''; my $retmsg = ""; my $domain = $c->param("Domain"); @@ -423,7 +540,7 @@ #Delete it and return to front summary panel - depends on route domain or custom $retmsg = performDeleteCustom( $c, $domain ); if ( $retmsg eq "ok" ) { - $ddc_datas{"success"} = $c->l( "ddc_SUCCESSFULLY_DELETED", $domain ); + $ddc_datas{"success"} = $c->l( "SUCCESSFULLY_DELETED", $domain ); } else { $ddc_datas{"error"} = $retmsg; } do_display( $c, %ddc_datas ); @@ -616,7 +733,7 @@ #------------------------------------------------------------ my $domainName = $c->param('domainName'); - if ( $domainName =~ /^([a-zA-Z0-9\-\.]+)$/ ) { + if ( $domainName =~ /([a-zA-Z0-9\-\.]+)$/ ) { $domainName = $1; } else { @@ -624,7 +741,7 @@ } my $domainLogin = $c->param('login'); - if ( $domainLogin =~ /^([\-\'\w][\-\'\w\s\.\@]*)$/ ) { + if ( $domainLogin =~ /([\-\'\w][\-\'\w\s\.\@]*)$/ ) { $domainLogin = $1; } else { @@ -632,7 +749,7 @@ } my $domainPassword = $c->param('password'); - if ( $domainPassword =~ /^(.*)$/ ) { + if ( $domainPassword =~ /(.*)$/ ) { $domainPassword = $1; } else { @@ -646,7 +763,7 @@ my $dns = $c->param('dns'); if ( $dns eq 'CUSTOMDNS' ) { - if ( $customDNS =~ /^([a-zA-Z0-9\-\.]+)$/ ) { + if ( $customDNS =~ /([a-zA-Z0-9\-\.]+)$/ ) { $customDNS = $1; } else @@ -685,7 +802,7 @@ # Attempt to delete domain #------------------------------------------------------------ - if ( $domain =~ /^([a-zA-Z0-9\-\.]+)$/ ) { + if ( $domain =~ /([a-zA-Z0-9\-\.]+)$/ ) { $domain = $1; } else { @@ -726,7 +843,7 @@ #------------------------------------------------------------ my $domainName = $c->param('domainName'); - if ( $domainName =~ /^([a-zA-Z0-9\-\.]+)$/ ) { + if ( $domainName =~ /([a-zA-Z0-9\-\.]+)$/ ) { $domainName = $1; } else { @@ -749,7 +866,7 @@ my $domainDesc = $c->param('desc'); my $domainLogin = $c->param('login'); - if ( $domainLogin =~ /^([\-\'\w][\-\'\w\s\.\@]*)$/ ) { + if ( $domainLogin =~ /([\-\'\w][\-\'\w\s\.\@]*)$/ ) { $domainLogin = $1; } else { @@ -757,7 +874,7 @@ } my $domainPassword = $c->param('password'); - if ( $domainPassword =~ /^(.*)$/ ) { + if ( $domainPassword =~ /(.*)$/ ) { $domainPassword = $1; } else { @@ -771,7 +888,7 @@ my $dns = $c->param('dns'); if ( $dns eq 'CUSTOMDNS' ) { - if ( $customDNS =~ /^([a-zA-Z0-9\-\.]+)$/ ) { + if ( $customDNS =~ /([a-zA-Z0-9\-\.]+)$/ ) { $customDNS = $1; } else { @@ -809,7 +926,7 @@ #------------------------------------------------------------ my $domainName = $c->param('domainName'); - if ( $domainName =~ /^([a-zA-Z0-9\-\.]+)$/ ) { + if ( $domainName =~ /([a-zA-Z0-9\-\.]+)$/ ) { $domainName = $1; } else { @@ -817,7 +934,7 @@ } my $domainLogin = $c->param('login'); - if ( $domainLogin =~ /^([\-\'\w][\-\'\w\s\.\@]*)$/ ) { + if ( $domainLogin =~ /([\-\'\w][\-\'\w\s\.\@]*)$/ ) { $domainLogin = $1; } else { @@ -825,7 +942,7 @@ } my $domainPassword = $c->param('password'); - if ( $domainPassword =~ /^(.*)$/ ) { + if ( $domainPassword =~ /(.*)$/ ) { $domainPassword = $1; } else { @@ -839,7 +956,7 @@ my $dns = $c->param('dns'); if ( $dns eq 'CUSTOMDNS' ) { - if ( $customDNS =~ /^([a-zA-Z0-9\-\.]+)$/ ) { + if ( $customDNS =~ /([a-zA-Z0-9\-\.]+)$/ ) { $customDNS = $1; } else @@ -878,7 +995,7 @@ # Attempt to delete domain #------------------------------------------------------------ - if ( $domain =~ /^([a-zA-Z0-9\-\.]+)$/ ) { + if ( $domain =~ /([a-zA-Z0-9\-\.]+)$/ ) { $domain = $1; } else { diff -urN smeserver-ddclient-1.3.0.old/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Ddclient/en.pm smeserver-ddclient-1.3.0/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Ddclient/en.pm --- smeserver-ddclient-1.3.0.old/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Ddclient/en.pm 2023-11-10 16:11:05.916271986 +0000 +++ smeserver-ddclient-1.3.0/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Ddclient/en.pm 2023-11-15 14:48:00.000000000 +0000 @@ -136,8 +136,8 @@ 'DESCRIPTION_LABEL' => 'Domain description', 'SUCCESSFULLY_MODIFIED_RETRIEVE_IP' => 'You have successfully modified the retrieve IP options.', 'RETRIEVE_METHOD' => 'Method to retrieve new IP:', -'RETRIEVE_IF' => 'Local interface to get new IP, if selected interface method', -'RETRIEVE_CMD' => 'Command to execute to get IP, if selected command method', +'RETRIEVE_IF' => 'Local interface to get new IP', +'RETRIEVE_CMD' => 'Command to execute to get IP', 'SME external Interface' => 'SME external interface', 'SME configuration DB' => 'SME configuration DB', 'web' => 'Web query', diff -urN smeserver-ddclient-1.3.0.old/root/usr/share/smanager/themes/default/templates/partials/_ddc_create_cust.html.ep smeserver-ddclient-1.3.0/root/usr/share/smanager/themes/default/templates/partials/_ddc_create_cust.html.ep --- smeserver-ddclient-1.3.0.old/root/usr/share/smanager/themes/default/templates/partials/_ddc_create_cust.html.ep 2020-06-28 09:57:52.000000000 +0100 +++ smeserver-ddclient-1.3.0/root/usr/share/smanager/themes/default/templates/partials/_ddc_create_cust.html.ep 2023-11-15 16:10:00.000000000 +0000 @@ -1,6 +1,6 @@

- %= l 'ddc_CUSTOM_DESCRIPTION' + %= l 'CUSTOM_DESCRIPTION'


% my $btn = l('ddc_APPLY'); %= form_for '/ddclient7' => (method => 'POST') => begin diff -urN smeserver-ddclient-1.3.0.old/root/usr/share/smanager/themes/default/templates/partials/_ddc_modify_domain.html.ep smeserver-ddclient-1.3.0/root/usr/share/smanager/themes/default/templates/partials/_ddc_modify_domain.html.ep --- smeserver-ddclient-1.3.0.old/root/usr/share/smanager/themes/default/templates/partials/_ddc_modify_domain.html.ep 2023-11-10 16:11:05.901271943 +0000 +++ smeserver-ddclient-1.3.0/root/usr/share/smanager/themes/default/templates/partials/_ddc_modify_domain.html.ep 2023-11-18 14:56:00.000000000 +0000 @@ -1,4 +1,9 @@
+

%= l 'CUSTOM_DESCRIPTION'


@@ -24,20 +29,41 @@ %=l 'SERVERS_LABEL' % param dns=>$ddc_datas->{"Domain_details"}->{"dns"}; - %=select_field dns=>$dnslabels + %=select_field dns=>$dnslabels,id=>"dns",onchange=>"SelectInput()",onload=>"SelectInput()" + %= javascript begin + function SelectInput() { + var method = document.querySelector("#dns"); + const types=['custom']; + types.forEach((type)=>{ + var service = document.querySelector(`.${type}`); + if (service != null) { + if (method.value == type) { + service.style.display = 'block'; + } else { + service.style.display = 'none'; + } + } + }) + } + %end
- + + %# Dependant on the custom choice from above +
+ %=l 'CUSTOMDNS_LABEL' - + % param customdns=>$ddc_datas->{"Domain_details"}->{"customdns"}; %=text_field 'customdns'
- + %=l 'CUSTOM_PROTOCOL_LABEL' - + % param customprotocol=>$ddc_datas->{"Domain_details"}->{"customprotocol"}; %=text_field 'customprotocol'
+
+ %=l 'NAME_LABEL' diff -urN smeserver-ddclient-1.3.0.old/root/usr/share/smanager/themes/default/templates/partials/_ddc_paramlist.html.ep smeserver-ddclient-1.3.0/root/usr/share/smanager/themes/default/templates/partials/_ddc_paramlist.html.ep --- smeserver-ddclient-1.3.0.old/root/usr/share/smanager/themes/default/templates/partials/_ddc_paramlist.html.ep 2023-11-10 16:11:05.902271946 +0000 +++ smeserver-ddclient-1.3.0/root/usr/share/smanager/themes/default/templates/partials/_ddc_paramlist.html.ep 2023-11-18 14:54:00.000000000 +0000 @@ -1,4 +1,9 @@
+

%= l 'Params_for_IP_Retrieval'

@@ -11,7 +16,7 @@ %=select_field retrievessl=>[['Yes'=>'yes'],['No'=>'no']]
- %=l 'RETRIEVE_DEAMONUPDATE' + %=l 'RETRIEVE_DEAMONUPDATE' % param retrievedeamonupdate=>$ddc_datas->{"params"}->{"DeamonUpdate"}; %=number_field 'retrievedeamonupdate',min=>0 @@ -20,32 +25,88 @@ %=l 'RETRIEVE_METHOD' % param retrievemethod=>$ddc_datas->{"params"}->{"method"}; - %=select_field retrievemethod=>$methodlabels -
- + %=select_field retrievemethod=>$methodlabels,id=>"retrievemethod",onchange=>"SelectInput()" + %= javascript begin + function SelectInput() { + var method = document.querySelector("#retrievemethod"); + const types=['smeIF','smeCDB','web','router','if','ip','cmd','custom']; + types.forEach((type)=>{ + var service = document.querySelector(`.${type}`); + if (service != null) { + if (method.value == type) { + service.style.display = 'block'; + } else { + service.style.display = 'none'; + } + } + }) + } + % end +
+ %# + %# From here the one that is shown depends on the choice above + %# +
+
+ %# Only if "router" is chosen +
+ + %=l 'Router type' + + % param retrievemethod=>$ddc_datas->{"params"}->{"Extinterface"}; + %=select_field retrievemethod=>$devices +
+
+ + %# Only if "web" is chosen" +
+ + %=l 'Web service' + + % param retrievemethod=>$ddc_datas->{"params"}->{"urlcheckip"}; + %=select_field retrievemethod=>$webservices +
+
+ + %# Only if "Interface" is chosen +
+ %=l 'RETRIEVE_IF' - + % param retrieveinterface=>$ddc_datas->{"params"}->{"Extinterface"}; %=text_field 'retrieveinterface'
- +
+ + %# Only if "cmd" is chosen +
+ %=l 'RETRIEVE_CMD' - + % param retrievecmd=>$ddc_datas->{"params"}->{"cmd"}; %=text_field 'retrievecmd'
- +
+ + %# Only if "ip" is chosen +
+ %=l 'RETRIEVE_IP' - + % param retrieveip=>$ddc_datas->{"params"}->{"ForceIP"}; %=text_field 'retrieveip'
- +
+ + %# Only if "custom web service" +
+ %=l 'RETRIEVE_URLCHECKIP' - + % param retrieveurlcheckip=>$ddc_datas->{"params"}->{"urlcheckip"}; %=text_field 'retrieveurlcheckip'
+
%= submit_button "$btn", class => 'action' % end