/[smecontribs]/rpms/smeserver-ddclient/contribs10/smeserver-ddclient-1.3.0-Update-SM2-code-for-new-services-and-protocols.patch
ViewVC logotype

Contents of /rpms/smeserver-ddclient/contribs10/smeserver-ddclient-1.3.0-Update-SM2-code-for-new-services-and-protocols.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Sat Nov 18 18:44:52 2023 UTC (5 months, 4 weeks ago) by brianr
Branch: MAIN
* Fri Nov 10 2023 Brian Read <brianr@koozali.org> 1.3.0-28.sme
- Update template for deprecated commands and v3.11.1 ddclient [SME: 12427 ]
- Update SM2 code to show all new protocols etc

1 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
2 --- smeserver-ddclient-1.3.0.old/root/usr/share/smanager/lib/SrvMngr/Controller/Ddclient.pm 2023-11-10 16:11:05.915271983 +0000
3 +++ smeserver-ddclient-1.3.0/root/usr/share/smanager/lib/SrvMngr/Controller/Ddclient.pm 2023-11-18 10:41:00.000000000 +0000
4 @@ -114,57 +114,167 @@
5
6 my %ddc_datas = ();
7
8 +sub get_devices_names {
9 + #
10 + # Router devices from which it can get ip address
11 + #
12 + my $devices = ( [
13 + ['2Wire 1701HG Gateway', '2wire'],
14 + ['3com 3c886a 56k Lan Modem', '3com-3c886a'],
15 + ['3com OfficeConnect Remote 812', '3com-oc-remote812'],
16 + ['Alcatel Speed Touch 510', 'alcatel-510'],
17 + ['Alcatel/Thomson SpeedTouch 530', 'alcatel-530'],
18 + ['Alcatel Speed Touch Pro', 'alcatel-stp'],
19 + ['Allnet 1298', 'allnet-1298'],
20 + ['Cayman 3220-H DSL', 'cayman-3220h'],
21 + ['D-Link DI-524', 'dlink-524'],
22 + ['D-Link DI-604', 'dlink-604'],
23 + ['D-Link DI-614+', 'dlink-614'],
24 + ['E-tech Router', 'e-tech'],
25 + ['ELSA LanCom DSL/10 DSL FW', 'elsa-lancom-dsl10'],
26 + ['ELSA LanCom DSL/10 DSL FW (isdn ch01)', 'elsa-lancom-dsl10-ch01'],
27 + ['ELSA LanCom DSL/10 DSL FW (isdn ch01)', 'elsa-lancom-dsl10-ch02'],
28 + ['Linksys FW', 'linksys'],
29 + ['Linksys RV042 Dual Homed Router WAN Port 2', 'linksys-rv042-wan1'],
30 + ['Linksys RV042 Dual Homed Router WAN Port 2', 'linksys-rv042-wan2'],
31 + ['Linksys FW version 2', 'linksys-ver2'],
32 + ['Linksys FW version 3', 'linksys-ver3'],
33 + ['Linksys WCG200 FW', 'linksys-wcg200'],
34 + ['Linksys WRT854G FW', 'linksys-wrt854g'],
35 + ['MaxGate UGATE-3x00 FW', 'maxgate-ugate3x00'],
36 + ['NetComm NB3', 'netcomm-nb3'],
37 + ['netgear-dg834g', 'netgear-dg834g'],
38 + ['Netgear RP614 FW', 'netgear-rp614'],
39 + ['Netgear FW', 'netgear-rt3xx'],
40 + ['Netgear WGT624', 'netgear-wgt624'],
41 + ['Netgear WPN824 FW', 'netgear-wpn824'],
42 + ['Netopia R910 FW', 'netopia-r910'],
43 + ['olitec-SX200', 'olitec-SX200'],
44 + ['Linksys RTP300', 'rtp300'],
45 + ['Siemens SpeedStream 4200', 'siemens-ss4200'],
46 + ['Sitecom DC-202 FW', 'sitecom-dc202'],
47 + ['SMC Barricade FW', 'smc-barricade'],
48 + ['SMC Barricade FW (7004VBR model config)', 'smc-barricade-7004vbr'],
49 + ['SMC Barricade 7401BRA FW', 'smc-barricade-7401bra'],
50 + ['SMC Barricade FW (alternate config)', 'smc-barricade-alt'],
51 + ['SOHOWare BroadGuard NBG800', 'sohoware-nbg800'],
52 + ['Sveasoft WRT54G/WRT54GS', 'sveasoft'],
53 + ['Thomson SpeedTouch 536v6', 'thomson-st536v6'],
54 + ['Thomson/Technicolor TG782', 'thomson-tg782'],
55 + ['Vigor 2200 USB', 'vigor-2200usb'],
56 + ['Watchguard Edge X FW', 'watchguard-edge-x'],
57 + ['Watchguard SOHO FW', 'watchguard-soho'],
58 + ['Westell C90-610015-06 DSL Router', 'westell-6100'],
59 + ['xsense-aero', 'Xsense Aero']
60 + ] );
61 + return $devices;
62 +
63 +
64 + # Automatic loading of the devices from the ddclient program - I can't get this to pass the results successfully to the template
65 + #my $output = `ddclient -list-devices`; # Run ddclient command to get devices output
66 + #my @lines;
67 + #foreach my $line (split /\n/, $output) {
68 + #$line =~ s/\s+//; # Remove leading whitespace
69 + #my ($field1, $field2) = split(' ', $line, 2);
70 + #push @lines, [$field2, $field1];
71 + #}
72 + #return \@lines; # Return a reference to the lines array
73 +}
74 +
75 +sub get_web_services_names {
76 + #
77 + # Web Services from which it can get ip address
78 + #
79 + my $webservices = ( [
80 + ['dyndns http://checkip.dyndns.org/', 'dyndns'],
81 + ['freedns https://freedns.afraid.org/dynamic/check.php', 'freedns'],
82 + ['googledomains https://domains.google.com/checkip', 'googledomains'],
83 + ['he https://checkip.dns.he.net/', 'he'],
84 + ['ip4only.me https://ip4only.me/api/', 'ip4only.me'],
85 + ['ip6only.me https://ip6only.me/api/', 'ip6only.me'],
86 + ['ipify-ipv4 https://api.ipify.org/', 'ipify-ipv4'],
87 + ['ipify-ipv6 https://api6.ipify.org/', 'ipify-ipv6'],
88 + ['loopia https://dns.loopia.se/checkip/checkip.php', 'loopia'],
89 + ['myonlineportal https://myonlineportal.net/checkip', 'myonlineportal'],
90 + ['noip-ipv4 http://ip1.dynupdate.no-ip.com/', 'noip-ipv4'],
91 + ['noip-ipv6 http://ip1.dynupdate6.no-ip.com/', 'noip-ipv6'],
92 + ['nsupdate.info-ipv4 https://ipv4.nsupdate.info/myip', 'nsupdate.info-ipv4'],
93 + ['nsupdate.info-ipv6 https://ipv6.nsupdate.info/myip', 'nsupdate.info-ipv6'],
94 + ['zoneedit https://dynamic.zoneedit.com/checkip.html', 'zoneedit']
95 + ] );
96 + return $webservices
97 +
98 + #my $output = `ddclient -list-web-services`; # Run ddclient command to get web services output
99 + #my @lines;
100 + #foreach my $line (split /\n/, $output) {
101 + #$line =~ s/\s+//; # Remove leading whitespace
102 + #my ($field1, $field2) = split(' ', $line, 2);
103 + #push @lines, [$field2, $field1];
104 + #}
105 + #return \@lines; # Return a reference to the lines array
106 +}
107 +
108 sub get_dns_labels {
109 #
110 # dns service names
111 + # Return array with translated results as well.
112 + #
113 + # Note that "new" ones willl not have any description / translation, this can be added to /usr/share/smanager/lib/SrvMngr/I18N/Modules/Ddclient
114 #
115 my $c = shift;
116 - my $Labels = (
117 -
118 - # v3.11.1 labels
119 - [
120 - [$c->l('1984') '1984'],
121 - [$c->l('changeip') 'changeip'],
122 - [$c->l('cloudflare') 'cloudflare'],
123 - [$c->l('cloudns') 'cloudns'],,
124 - [$c->l('digitalocean') 'digitalocean'],
125 - [$c->l('dinahosting') 'dinahosting'],
126 - [$c->l('dnsexit2') 'dnsexit2'],
127 - [$c->l('dnsmadeeasy') 'dnsmadeeasy'],
128 - [$c->l('domeneshop') 'domeneshop'],
129 - [$c->l('dondominio') 'dondominio'],
130 - [$c->l('dslreports1') 'dslreports1'],
131 - [$c->l('duckdns') 'duckdns'],
132 - [$c->l('dyndns1') 'dyndns1'],
133 - [$c->l('dyndns2') 'dyndns2'],
134 - [$c->l('easydns') 'easydns'],
135 - [$c->l('enom') 'enom'],
136 - [$c->l('freedns') 'freedns'],
137 - [$c->l('freemyip') 'freemyip'],
138 - [$c->l('gandi') 'gandi'],
139 - [$c->l('godaddy') 'godaddy'],
140 - [$c->l('googledomains') 'googledomains'],
141 - [$c->l('hetzner') 'hetzner'],
142 - [$c->l('infomaniak') 'infomaniak'],
143 - [$c->l('keysystems') 'keysystems'],
144 - [$c->l('mythicdyn') 'mythicdyn'],
145 - [$c->l('namecheap') 'namecheap'],
146 - [$c->l('nfsn') 'nfsn'],
147 - [$c->l('njalla') 'njalla'],
148 - [$c->l('noip') 'noip'],
149 - [$c->l('nsupdate') 'nsupdate'],
150 - [$c->l('ovh') 'ovh'],
151 - [$c->l('porkbun') 'porkbun'],
152 - [$c->l('regfishde') 'regfishde'],
153 - [$c->l('sitelutions') 'sitelutions'],
154 - [$c->l('woima') 'woima'],
155 - [$c->l('yandex') 'yandex'],
156 - [$c->l('zoneedit1') 'zoneedit1']
157 - ]
158 - # end of v3.11.1 labels
159 -
160 + my $dnsservices = ( [
161 + ['1984 - https://kb.1984hosting.com/doku.php?id=freedns', '1984'],
162 + ['changeip - https://changeip.com', 'changeip'],
163 + ['cloudflare - https://cloudflare.com', 'cloudflare'],
164 + ['cloudns - https://cloudns.com', 'cloudns'],
165 + ['digitalocean - https://digitalocean.com', 'digitalocean'],
166 + ['dinahosting - https://dinahosting.com', 'dinahosting'],
167 + ['dnsexit - https://dnsexit.com/', 'dnsexit'],
168 + ['dnsmadeeasy - https://dnsmadeeasy.com', 'dnsmadeeasy'],
169 + ['domeneshop - https://domeneshop.com', 'domeneshop'],
170 + ['dondominio - https://dondominio.com', 'dondominio'],
171 + ['dslreports - https://www.dslreports.com/', 'dslreports'],
172 + ['duckdns - https://duckdns.com', 'duckdns'],
173 + ['dyndns1 - https://account.dyn.com/', 'dyndns1'],
174 + ['dyndns2 - https://account.dyn.com/', 'dyndns2'],
175 + ['easydns - https://easydns.com', 'easydns'],
176 + ['enom - https://enom.com', 'enom'],
177 + ['freedns - http://freedns.com', 'freedns'],
178 + ['freemyip - https://freemyip.com', 'freemyip'],
179 + ['gandi - https://gandi.com', 'gandi'],
180 + ['godaddy - https://godaddy.com', 'godaddy'],
181 + ['googledomains - https://googledomains.com', 'googledomains'],
182 + ['hetzner - https://hetzner.com', 'hetzner'],
183 + ['infomaniak - https://infomaniak.com', 'infomaniak'],
184 + ['keysystems - https://keysystems.com', 'keysystems'],
185 + ['mythicdyn - https://www.mythic-beasts.com/support/api/dnsv2/dynamic-dns', 'mythicdyn'],
186 + ['namecheap - https://namecheap.com', 'namecheap'],
187 + ['nfsn - http://nfsn.com', 'nfsn'],
188 + ['njalla - https://njalla.com', 'njalla'],
189 + ['noip - https://noip.com', 'noip'],
190 + ['nsupdate - http://nsupdate.com', 'nsupdate'],
191 + ['ovh - https://ovh.com', 'ovh'],
192 + ['porkbun - https://porkbun.com', 'porkbun'],
193 + ['regfishde - regfishde', 'regfishde'],
194 + ['sitelutions - https://sitelutions.com', 'sitelutions'],
195 + ['woima - http://woima.com', 'woima'],
196 + ['yandex - https://yandex.com', 'yandex'],
197 + ['zoneedit - https://www.zoneedit.com/dynamic-dns/', 'zoneedit'] ] );
198 + return $dnsservices;
199
200 - #[ [ $c->l('CUSTOMDNS'), 'CUSTOMDNS' ],
201 + #my $output = `ddclient -list-protocols`; # Run ddclient command and capture the output
202 + #my @protocols;
203 + #foreach my $line (split /\n/, $output) {
204 + #my ($protocol) = $line =~ /\s*(\S+)/;
205 + #next unless $protocol; # Skip if protocol is empty or contains only whitespace
206 + #my $custom_value = "$protocol.$c->l($protocol)"; # Additional column value using $c->l(protocol)
207 + #push @protocols, [$custom_value, $protocol];
208 + #}
209 + #return \@protocols; # Return a reference to the protocols array
210 +}
211 +
212 +# Pre 3.11.1 dns services
213 + #[ [ $c->l('CUSTOMDNS'), 'CUSTOMDNS' ],
214 #[ $c->l('DYNDNS1'), 'DYNDNS1' ],
215 #[ $c->l('DYNDNS2'), 'DYNDNS2' ],
216 #[ $c->l('DYNDNS3'), 'DYNDNS3' ],
217 @@ -196,9 +306,6 @@
218 #[ $c->l('OVH'), 'OVH' ],
219 #[ $c->l('CLOUDNS'), 'CLOUDNS' ]
220 #]
221 - );
222 - return $Labels;
223 -}
224
225 sub main {
226 #
227 @@ -231,8 +338,9 @@
228
229 my $Labels = (
230 [ [ $c->l('SME external Interface'), "smeIF" ],
231 - [ $c->l('SME configuration DB'), "smeCMD" ],
232 + [ $c->l('SME configuration DB'), "smeCDB" ],
233 [ $c->l('web'), "web" ],
234 + [ $c->l('router'), "router" ],
235 [ $c->l('Interface'), "if" ],
236 [ $c->l('IP'), "ip" ],
237 [ $c->l('Command'), "cmd" ]
238 @@ -246,6 +354,8 @@
239 domains => \@domains,
240 freedomains => \@FreeDomains,
241 methodlabels => $Labels,
242 + devices => get_devices_names($c),
243 + webservices => get_web_services_names($c),
244 emptydom => $emptydom,
245 emptycust => $emptycust
246 );
247 @@ -269,6 +379,7 @@
248 #Called to update/delete the ddclient for a specific inbuilt domain
249 #
250 my $c = shift;
251 + my $title = $c->l("MODIFY_TITLE");
252 my $retmsg;
253 if ( $c->param("Route") eq "ddclient2" ) { #Route is hidden field
254 $retmsg = performModifyCustom($c);
255 @@ -279,7 +390,7 @@
256 if ( $retmsg eq "ok" ) {
257 my $dns = $c->param('dns');
258 my $domain = $c->param('domainname');
259 - $ddc_datas{"success"} = $c->l( "ddc_SUCCESSFULLY_MODIFIED", $domain,
260 + $ddc_datas{"success"} = $c->l( "SUCCESSFULLY_MODIFIED", $domain,
261 $c->l( '' . $dns ) );
262 do_display( $c, %ddc_datas );
263 }
264 @@ -296,7 +407,7 @@
265 # Create custom domain
266 #
267 my $c = shift;
268 - my $title = $c->l("ddc_CREATE_TITLE");
269 + my $title = $c->l("CREATE_TITLE");
270 my $modul = '';
271 my $trt = "NEW";
272
273 @@ -305,7 +416,9 @@
274 title => $title,
275 modul => $modul,
276 ddc_datas => \%ddc_datas,
277 - dnslabels => get_dns_labels($c)
278 + dnslabels => get_dns_labels($c),
279 + devices => get_devices_names($c),
280 + webservices => get_web_services_names($c)
281 );
282 $c->render( template => 'ddclient' );
283 }
284 @@ -316,7 +429,7 @@
285 if ( $retmsg eq "ok" ) {
286 my $dns = $c->param('dns');
287 my $domain = $c->param('domainname');
288 - $ddc_datas{"success"} = $c->l( "ddc_SUCCESSFULLY_DELETED", $domain,
289 + $ddc_datas{"success"} = $c->l( "SUCCESSFULLY_DELETED", $domain,
290 $c->l( '' . $dns ) );
291 do_display( $c, %ddc_datas );
292 }
293 @@ -334,7 +447,7 @@
294 # Display delete or modify panel for custom domain
295 #
296 my $c = shift;
297 - my $title = $c->l("ddc_MODIFY_TITLE");
298 + my $title = $c->l("MODIFY_TITLE");
299 my $modul = '';
300 my $trt = $c->param("trt");
301
302 @@ -349,7 +462,9 @@
303 title => $title,
304 modul => $modul,
305 ddc_datas => \%ddc_datas,
306 - dnslabels => get_dns_labels($c)
307 + dnslabels => get_dns_labels($c),
308 + devices => get_devices_names($c),
309 + webservices => get_web_services_names($c)
310 );
311 $c->render( template => 'ddclient' );
312 }
313 @@ -360,21 +475,23 @@
314 # param trt = MOD or DEL
315 #
316 my $c = shift;
317 - my $title = $c->l("ddc_MODIFY_TITLE");
318 + my $title = $c->l("MODIFY_TITLE");
319 my $modul = '';
320 my $trt = $c->param("trt");
321
322 #Extract domain stuff from DB
323 my @results
324 = get_domain_table( $c, $c->param("Domain") ); #Returns just one row
325 - $ddc_datas{"Domain_details"} = $results[0];
326
327 + $ddc_datas{"Domain_details"} = $results[0];
328 $ddc_datas{'trt'} = $trt;
329 $c->stash(
330 title => $title,
331 modul => $modul,
332 ddc_datas => \%ddc_datas,
333 - dnslabels => get_dns_labels($c)
334 + dnslabels => get_dns_labels($c),
335 + devices => get_devices_names($c),
336 + webservices => get_web_services_names($c)
337 );
338 $c->render( template => 'ddclient' );
339 }
340 @@ -386,7 +503,7 @@
341 #
342 my $c = shift;
343 my $route = $c->current_route;
344 - my $title = $c->l("ddc_REMOVE_TITLE");
345 + my $title = $c->l("REMOVE_TITLE");
346 my $modul = '';
347 my $retmsg = "";
348 my $domain = $c->param("Domain");
349 @@ -400,7 +517,7 @@
350 }
351
352 if ( $retmsg eq "ok" ) {
353 - $ddc_datas{"success"} = $c->l( "ddc_SUCCESSFULLY_DELETED", $domain,
354 + $ddc_datas{"success"} = $c->l( "SUCCESSFULLY_DELETED", $domain,
355 $c->l( '' . $c->param("dns") ) );
356 }
357 else { $ddc_datas{"error"} = $retmsg; }
358 @@ -415,7 +532,7 @@
359 #
360 my $c = shift;
361 my $route = $c->current_route;
362 - my $title = $c->l("ddc_REMOVE_TITLE");
363 + my $title = $c->l("REMOVE_TITLE");
364 my $modul = '';
365 my $retmsg = "";
366 my $domain = $c->param("Domain");
367 @@ -423,7 +540,7 @@
368 #Delete it and return to front summary panel - depends on route domain or custom
369 $retmsg = performDeleteCustom( $c, $domain );
370 if ( $retmsg eq "ok" ) {
371 - $ddc_datas{"success"} = $c->l( "ddc_SUCCESSFULLY_DELETED", $domain );
372 + $ddc_datas{"success"} = $c->l( "SUCCESSFULLY_DELETED", $domain );
373 }
374 else { $ddc_datas{"error"} = $retmsg; }
375 do_display( $c, %ddc_datas );
376 @@ -616,7 +733,7 @@
377 #------------------------------------------------------------
378
379 my $domainName = $c->param('domainName');
380 - if ( $domainName =~ /^([a-zA-Z0-9\-\.]+)$/ ) {
381 + if ( $domainName =~ /([a-zA-Z0-9\-\.]+)$/ ) {
382 $domainName = $1;
383 }
384 else {
385 @@ -624,7 +741,7 @@
386 }
387
388 my $domainLogin = $c->param('login');
389 - if ( $domainLogin =~ /^([\-\'\w][\-\'\w\s\.\@]*)$/ ) {
390 + if ( $domainLogin =~ /([\-\'\w][\-\'\w\s\.\@]*)$/ ) {
391 $domainLogin = $1;
392 }
393 else {
394 @@ -632,7 +749,7 @@
395 }
396
397 my $domainPassword = $c->param('password');
398 - if ( $domainPassword =~ /^(.*)$/ ) {
399 + if ( $domainPassword =~ /(.*)$/ ) {
400 $domainPassword = $1;
401 }
402 else {
403 @@ -646,7 +763,7 @@
404
405 my $dns = $c->param('dns');
406 if ( $dns eq 'CUSTOMDNS' ) {
407 - if ( $customDNS =~ /^([a-zA-Z0-9\-\.]+)$/ ) {
408 + if ( $customDNS =~ /([a-zA-Z0-9\-\.]+)$/ ) {
409 $customDNS = $1;
410 }
411 else
412 @@ -685,7 +802,7 @@
413 # Attempt to delete domain
414 #------------------------------------------------------------
415
416 - if ( $domain =~ /^([a-zA-Z0-9\-\.]+)$/ ) {
417 + if ( $domain =~ /([a-zA-Z0-9\-\.]+)$/ ) {
418 $domain = $1;
419 }
420 else {
421 @@ -726,7 +843,7 @@
422 #------------------------------------------------------------
423
424 my $domainName = $c->param('domainName');
425 - if ( $domainName =~ /^([a-zA-Z0-9\-\.]+)$/ ) {
426 + if ( $domainName =~ /([a-zA-Z0-9\-\.]+)$/ ) {
427 $domainName = $1;
428 }
429 else {
430 @@ -749,7 +866,7 @@
431
432 my $domainDesc = $c->param('desc');
433 my $domainLogin = $c->param('login');
434 - if ( $domainLogin =~ /^([\-\'\w][\-\'\w\s\.\@]*)$/ ) {
435 + if ( $domainLogin =~ /([\-\'\w][\-\'\w\s\.\@]*)$/ ) {
436 $domainLogin = $1;
437 }
438 else {
439 @@ -757,7 +874,7 @@
440 }
441
442 my $domainPassword = $c->param('password');
443 - if ( $domainPassword =~ /^(.*)$/ ) {
444 + if ( $domainPassword =~ /(.*)$/ ) {
445 $domainPassword = $1;
446 }
447 else {
448 @@ -771,7 +888,7 @@
449
450 my $dns = $c->param('dns');
451 if ( $dns eq 'CUSTOMDNS' ) {
452 - if ( $customDNS =~ /^([a-zA-Z0-9\-\.]+)$/ ) {
453 + if ( $customDNS =~ /([a-zA-Z0-9\-\.]+)$/ ) {
454 $customDNS = $1;
455 }
456 else {
457 @@ -809,7 +926,7 @@
458 #------------------------------------------------------------
459
460 my $domainName = $c->param('domainName');
461 - if ( $domainName =~ /^([a-zA-Z0-9\-\.]+)$/ ) {
462 + if ( $domainName =~ /([a-zA-Z0-9\-\.]+)$/ ) {
463 $domainName = $1;
464 }
465 else {
466 @@ -817,7 +934,7 @@
467 }
468
469 my $domainLogin = $c->param('login');
470 - if ( $domainLogin =~ /^([\-\'\w][\-\'\w\s\.\@]*)$/ ) {
471 + if ( $domainLogin =~ /([\-\'\w][\-\'\w\s\.\@]*)$/ ) {
472 $domainLogin = $1;
473 }
474 else {
475 @@ -825,7 +942,7 @@
476 }
477
478 my $domainPassword = $c->param('password');
479 - if ( $domainPassword =~ /^(.*)$/ ) {
480 + if ( $domainPassword =~ /(.*)$/ ) {
481 $domainPassword = $1;
482 }
483 else {
484 @@ -839,7 +956,7 @@
485
486 my $dns = $c->param('dns');
487 if ( $dns eq 'CUSTOMDNS' ) {
488 - if ( $customDNS =~ /^([a-zA-Z0-9\-\.]+)$/ ) {
489 + if ( $customDNS =~ /([a-zA-Z0-9\-\.]+)$/ ) {
490 $customDNS = $1;
491 }
492 else
493 @@ -878,7 +995,7 @@
494 # Attempt to delete domain
495 #------------------------------------------------------------
496
497 - if ( $domain =~ /^([a-zA-Z0-9\-\.]+)$/ ) {
498 + if ( $domain =~ /([a-zA-Z0-9\-\.]+)$/ ) {
499 $domain = $1;
500 }
501 else {
502 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
503 --- 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
504 +++ smeserver-ddclient-1.3.0/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Ddclient/en.pm 2023-11-15 14:48:00.000000000 +0000
505 @@ -136,8 +136,8 @@
506 'DESCRIPTION_LABEL' => 'Domain description',
507 'SUCCESSFULLY_MODIFIED_RETRIEVE_IP' => 'You have successfully modified the retrieve IP options.',
508 'RETRIEVE_METHOD' => 'Method to retrieve new IP:',
509 -'RETRIEVE_IF' => 'Local interface to get new IP, if selected interface method',
510 -'RETRIEVE_CMD' => 'Command to execute to get IP, if selected command method',
511 +'RETRIEVE_IF' => 'Local interface to get new IP',
512 +'RETRIEVE_CMD' => 'Command to execute to get IP',
513 'SME external Interface' => 'SME external interface',
514 'SME configuration DB' => 'SME configuration DB',
515 'web' => 'Web query',
516 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
517 --- 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
518 +++ 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
519 @@ -1,6 +1,6 @@
520 <div id='ddc_createcustom'>
521 <h2>
522 - %= l 'ddc_CUSTOM_DESCRIPTION'
523 + %= l 'CUSTOM_DESCRIPTION'
524 </h2><br>
525 % my $btn = l('ddc_APPLY');
526 %= form_for '/ddclient7' => (method => 'POST') => begin
527 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
528 --- 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
529 +++ 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
530 @@ -1,4 +1,9 @@
531 <div id='modifydomain'>
532 + <script>
533 + window.onload = function() {
534 + SelectInput();
535 + };
536 + </script>
537 <h2>
538 %= l 'CUSTOM_DESCRIPTION'
539 </h2><br>
540 @@ -24,20 +29,41 @@
541 %=l 'SERVERS_LABEL'
542 </span><span class=data>
543 % param dns=>$ddc_datas->{"Domain_details"}->{"dns"};
544 - %=select_field dns=>$dnslabels
545 + %=select_field dns=>$dnslabels,id=>"dns",onchange=>"SelectInput()",onload=>"SelectInput()"
546 + %= javascript begin
547 + function SelectInput() {
548 + var method = document.querySelector("#dns");
549 + const types=['custom'];
550 + types.forEach((type)=>{
551 + var service = document.querySelector(`.${type}`);
552 + if (service != null) {
553 + if (method.value == type) {
554 + service.style.display = 'block';
555 + } else {
556 + service.style.display = 'none';
557 + }
558 + }
559 + })
560 + }
561 + %end
562 </span><br>
563 - <span class=label>
564 +
565 + %# Dependant on the custom choice from above
566 + <div class=custom>
567 + <span class=label custom>
568 %=l 'CUSTOMDNS_LABEL'
569 - </span><span class=data>
570 + </span><span class=data custom>
571 % param customdns=>$ddc_datas->{"Domain_details"}->{"customdns"};
572 %=text_field 'customdns'
573 </span><br>
574 - <span class=label>
575 + <span class=label custom>
576 %=l 'CUSTOM_PROTOCOL_LABEL'
577 - </span><span class=data>
578 + </span><span class=data custom>
579 % param customprotocol=>$ddc_datas->{"Domain_details"}->{"customprotocol"};
580 %=text_field 'customprotocol'
581 </span><br>
582 + </div>
583 +
584 <span class=label>
585 %=l 'NAME_LABEL'
586 </span><span class=data>
587 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
588 --- 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
589 +++ 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
590 @@ -1,4 +1,9 @@
591 <div id='paramlist'>
592 + <script>
593 + window.onload = function() {
594 + SelectInput();
595 + };
596 + </script>
597 <h2>
598 %= l 'Params_for_IP_Retrieval'
599 </h2>
600 @@ -11,7 +16,7 @@
601 %=select_field retrievessl=>[['Yes'=>'yes'],['No'=>'no']]
602 </span><br>
603 <span class=label>
604 - %=l 'RETRIEVE_DEAMONUPDATE'
605 + %=l 'RETRIEVE_DEAMONUPDATE'
606 </span><span class=data>
607 % param retrievedeamonupdate=>$ddc_datas->{"params"}->{"DeamonUpdate"};
608 %=number_field 'retrievedeamonupdate',min=>0
609 @@ -20,32 +25,88 @@
610 %=l 'RETRIEVE_METHOD'
611 </span><span class=data>
612 % param retrievemethod=>$ddc_datas->{"params"}->{"method"};
613 - %=select_field retrievemethod=>$methodlabels
614 - </span><br>
615 - <span class=label>
616 + %=select_field retrievemethod=>$methodlabels,id=>"retrievemethod",onchange=>"SelectInput()"
617 + %= javascript begin
618 + function SelectInput() {
619 + var method = document.querySelector("#retrievemethod");
620 + const types=['smeIF','smeCDB','web','router','if','ip','cmd','custom'];
621 + types.forEach((type)=>{
622 + var service = document.querySelector(`.${type}`);
623 + if (service != null) {
624 + if (method.value == type) {
625 + service.style.display = 'block';
626 + } else {
627 + service.style.display = 'none';
628 + }
629 + }
630 + })
631 + }
632 + % end
633 + </span><br>
634 + %#
635 + %# From here the one that is shown depends on the choice above
636 + %#
637 + <div class = smeIF></div>
638 + <div class = smeIF></div>
639 + %# Only if "router" is chosen
640 + <div class = router>
641 + <span class=label>
642 + %=l 'Router type'
643 + </span><span class=data>
644 + % param retrievemethod=>$ddc_datas->{"params"}->{"Extinterface"};
645 + %=select_field retrievemethod=>$devices
646 + </span><br>
647 + </div>
648 +
649 + %# Only if "web" is chosen"
650 + <div class = web>
651 + <span class=label>
652 + %=l 'Web service'
653 + </span><span class=data>
654 + % param retrievemethod=>$ddc_datas->{"params"}->{"urlcheckip"};
655 + %=select_field retrievemethod=>$webservices
656 + </span><br>
657 + </div>
658 +
659 + %# Only if "Interface" is chosen
660 + <div class=if>
661 + <span class=label Interface>
662 %=l 'RETRIEVE_IF'
663 - </span><span class=data>
664 + </span><span class=data Interface>
665 % param retrieveinterface=>$ddc_datas->{"params"}->{"Extinterface"};
666 %=text_field 'retrieveinterface'
667 </span><br>
668 - <span class=label>
669 + </div>
670 +
671 + %# Only if "cmd" is chosen
672 + <div class=cmd>
673 + <span class=label cmd>
674 %=l 'RETRIEVE_CMD'
675 - </span><span class=data>
676 + </span><span class=data cmd>
677 % param retrievecmd=>$ddc_datas->{"params"}->{"cmd"};
678 %=text_field 'retrievecmd'
679 </span><br>
680 - <span class=label>
681 + </div>
682 +
683 + %# Only if "ip" is chosen
684 + <div class=ip>
685 + <span class=label ip>
686 %=l 'RETRIEVE_IP'
687 - </span><span class=data>
688 + </span><span class=data ip>
689 % param retrieveip=>$ddc_datas->{"params"}->{"ForceIP"};
690 %=text_field 'retrieveip'
691 </span><br>
692 - <span class=label>
693 + </div>
694 +
695 + %# Only if "custom web service"
696 + <div class=custom>
697 + <span class=label customweb>
698 %=l 'RETRIEVE_URLCHECKIP'
699 - </span><span class=data>
700 + </span><span class=data customweb>
701 % param retrieveurlcheckip=>$ddc_datas->{"params"}->{"urlcheckip"};
702 %=text_field 'retrieveurlcheckip'
703 </span><br>
704 + </div>
705
706 %= submit_button "$btn", class => 'action'
707 % end

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed