/[smecontribs]/rpms/smeserver-dhcpmanager/contribs10/smeserver-dhcpmanager-2.0.4-Add-panels-for-SM2.patch
ViewVC logotype

Contents of /rpms/smeserver-dhcpmanager/contribs10/smeserver-dhcpmanager-2.0.4-Add-panels-for-SM2.patch

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


Revision 1.1 - (show annotations) (download)
Thu Mar 10 12:22:07 2022 UTC (2 years, 1 month ago) by brianr
Branch: MAIN
CVS Tags: smeserver-dhcpmanager-2_0_4-17_el7_sme, smeserver-dhcpmanager-2_0_4-13_el7_sme, smeserver-dhcpmanager-2_0_4-16_el7_sme, smeserver-dhcpmanager-2_0_4-15_el7_sme, HEAD
* Tue Jan 18 2022 Brian Read <brianr@bjsystems.co.uk> 2.0.4-13.sme
- Add panels for SM2 [SME: 11850]

1 diff -urN smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Dhcpd.pm smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/lib/SrvMngr/Controller/Dhcpd.pm
2 --- smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Dhcpd.pm 1970-01-01 01:00:00.000000000 +0100
3 +++ smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/lib/SrvMngr/Controller/Dhcpd.pm 2022-03-08 11:20:00.000000000 +0000
4 @@ -0,0 +1,539 @@
5 +package SrvMngr::Controller::Dhcpd;
6 +
7 +#----------------------------------------------------------------------
8 +# heading : Configuration
9 +# description : DHCP manager
10 +# navigation : 2000 2500
11 +#
12 +# name : dhcpd, method : get, url : /dhcpd, ctlact : Dhcpd#main
13 +# name : dhcpd1, method : get, url : /dhcpd1, ctlact : Dhcpd#do_leases
14 +# name : dhcpd2, method : get, url : /dhcpd2, ctlact : Dhcpd#do_winpopup
15 +# name : dhcpd3, method : get, url : /dhcpd3, ctlact : Dhcpd#do_scan
16 +# name : dhcpd4, method : get, url : /dhcpd4, ctlact : Dhcpd#do_delete_all_leases
17 +# name : dhcpd5, method : post, url : /dhcpd5, ctlact : Dhcpd#do_update_config
18 +# name : dhcpd6, method : get, url : /dhcpd6, ctlact : Dhcpd#do_delete_one_lease
19 +# name : dhcpd7, method : get, url : /dhcpd7, ctlact : Dhcpd#do_refresh_leases
20 +# name : dhcpd8, method : get, url : /dhcpd8, ctlact : Dhcpd#do_winpopup
21 +# name : dhcpd9, method : get, url : /dhcpd9, ctlact : Dhcpd#do_wol
22 +# name : dhcpd10, method : post, url : /dhcpd10, ctlact : Dhcpd#do_update_check
23 +#
24 +# routes : end
25 +#
26 +#
27 +# Documentation: https://wiki.koozali.org/Dhcpmanager
28 +#
29 +use strict;
30 +use warnings;
31 +use Mojo::Base 'Mojolicious::Controller';
32 +
33 +use constant FALSE => 0;
34 +use constant TRUE => 1;
35 +
36 +use Locale::gettext;
37 +use SrvMngr::I18N;
38 +use SrvMngr qw(theme_list init_session);
39 +
40 +use Data::Dumper;
41 +use esmith::util;
42 +use esmith::HostsDB;
43 +use esmith::AccountsDB;
44 +use Net::Ping;
45 +use esmith::util::network qw(:all);
46 +use Socket qw( inet_aton );
47 +
48 +
49 +#our $adb = esmith::AccountsDB->open() or die("Unable to open accounts DB");
50 +
51 +my %dhcp_data = ();
52 +
53 +sub main {
54 + #
55 + # Initial page - full summary of parameters etc
56 + # Initial para from the Wiki.
57 + #
58 + my $c = shift;
59 + %dhcp_data = ();
60 + do_display($c);
61 +}
62 +
63 +sub do_display {
64 + #
65 + # Front parameters page
66 + #
67 + my $c = shift;
68 + $c->app->log->info( $c->log_req );
69 + my $title = $c->l("dhcpd_DHCP manager");
70 + my $modul = '';
71 + my $trt = "SETTINGS";
72 + our $db = esmith::ConfigDB->open() or die("Unable to open Configuration DB");
73 + our %sme_conf = $db->get('dhcpd')->props;
74 + our %smb_conf = $db->get('smb')->props;
75 + $dhcp_data{trt} = $trt;
76 + $dhcp_data{"status"} = [[$c->l('dhcpd_ENABLED'),'enabled'],
77 + [$c->l('dhcpd_DISABLED'),'disabled']
78 + ];
79 +
80 + $dhcp_data{"check"} = [[$c->l('dhcpd_ENABLED'),'enabled'],
81 + [$c->l('dhcpd_DISABLED'),'disabled']
82 + ];
83 + if (! $sme_conf{'winscustom'} ) {
84 + $sme_conf{'winscustom'} = 'disabled' ;
85 + }
86 + if (! $sme_conf{'dnscustom'} ) {
87 + $sme_conf{'dnscustom'} = 'disabled' ;
88 + }
89 + if ( ! $sme_conf{'leasetime'} )
90 + { $sme_conf{'leasetime'} = "86400" ;
91 + }
92 + if (! $sme_conf{'gatewaycustom'} ) {
93 + $sme_conf{'gatewaycustom'} = 'disabled' ;
94 + }
95 + # Accumulate parameters for Configuration DB
96 + $dhcp_data{'params'} = \%sme_conf;
97 + $dhcp_data{'smbparams'} = \%smb_conf;
98 + $c->stash( title => $title,
99 + modul => $modul,
100 + dhcp_data => \%dhcp_data
101 + );
102 + #die("here");
103 + $c->render( template => 'dhcpd' );
104 +}
105 +
106 +sub do_leases {
107 + #
108 + # Show a table of the leases
109 + #
110 + my $c = shift;
111 + my $title = $c->l("dhcpd_MANAGING_DHCP_CLIENT");
112 + my $modul = '';
113 + my $trt = "LEASES";
114 + $dhcp_data{"check"} = [[$c->l('dhcpd_ENABLED'),'enabled'],
115 + [$c->l('dhcpd_DISABLED'),'disabled']
116 + ];
117 + $dhcp_data{trt} = $trt;
118 + $dhcp_data{"first"} = '';
119 + my @leases = get_leases_in_array($c);
120 + $c->stash( title => $title, modul => $modul, dhcp_data => \%dhcp_data, leases=> \@leases );
121 + $c->render( template => 'dhcpd' );
122 +}
123 +
124 +
125 +sub do_winpopup {
126 + #
127 + # call to win pop up
128 + #
129 + my $c = shift;
130 + my $title = $c->l("dhcpd_GLOBAL_WINPOPUP");
131 + my $modul = '';
132 + my $trt = "WINPOPUP";
133 + $dhcp_data{trt} = $trt;
134 + $dhcp_data{"first"} = '';
135 + #..... get winpopup details
136 + $c->stash( title => $title, modul => $modul, dhcp_data => \%dhcp_data );
137 + $c->render( template => 'dhcpd' );
138 +}
139 +
140 +sub do_scan {
141 + #
142 + # call to show scan results
143 + #
144 + my $c = shift;
145 + my $title = $c->l("dhcpd_SCANNING_NETWORK_TITLE");
146 + my $modul = '';
147 + my $trt = "NETSCAN";
148 + $dhcp_data{trt} = $trt;
149 + $dhcp_data{"first"} = '';
150 + # ..... get scan results into dhcp_data
151 + dhcp_data{"scanresults"} = get_scan_results($c);
152 + $c->stash( title => $title, modul => $modul, dhcp_data => \%dhcp_data );
153 + $c->render( template => 'dhcpd' );
154 +}
155 +
156 +sub do_update_config {
157 + #
158 + # Update config dhcp parameters
159 + # called through form submit.
160 + #
161 + my $c = shift;
162 + # Input results are in $c->param(<fieldname>).
163 + # If parameters do not validate, then return error message.
164 + # else write into config DB, and...
165 + # signal-event and ...return ok
166 + $dhcp_data{"success"} ="";
167 + my $ret = Main_Save($c);
168 + if ($ret eq 'ok') {
169 + $dhcp_data{"success"}="dhcpd_SUCCESSFULLY_SAVED_SETTINGS";
170 + } else {
171 + $dhcp_data{"error"}=$ret;
172 + }
173 + do_display($c);
174 + return;
175 +}
176 +
177 +sub do_update_check {
178 + #Just update the check parameter
179 + my $c = shift;
180 + my $dhcpd_check = $c->param ('dhcp_check');
181 + ###Update SME configuration dbase
182 + my $dbh_sme = esmith::ConfigDB->open('/home/e-smith/db/configuration');
183 + ##Initiate get method --> create record object
184 + my $sme_record = $dbh_sme->get('dhcpd');
185 + $sme_record->set_prop('check' , $dhcpd_check);
186 + $dhcp_data{"success"}="dhcpd_SUCCESSFULLY_SAVED_SETTINGS";
187 + do_display($c);
188 + return;
189 +}
190 +
191 +sub Main_Save ($){
192 +
193 + ##Pull CGI object from parameters array
194 + my $q = shift;
195 +
196 + ###Build Hash of config parameters to update from cgi submit
197 + my $dhcpd_status = $q->param ('dhcp_enable');
198 + my $dhcpd_winscustom = $q->param ('dhcp_winscustom');
199 + my $dhcpd_check = $q->param ('dhcp_check');
200 + my $dhcpd_start = $q->param ('dhcp_start');
201 + my $dhcpd_end = $q->param ('dhcp_end');
202 + my $dhcpd_winsserver = $q->param ('dhcp_winsserver');
203 + my $dhcpd_leasetime = $q->param ('dhcp_leasetime');
204 + my $dhcpd_dnscustom = $q->param ('dhcp_dnscustom');
205 + my $dhcpd_dns1server = $q->param ('dhcp_dns1server');
206 + my $dhcpd_dns2server = $q->param ('dhcp_dns2server');
207 + my $dhcpd_dns3server = $q->param ('dhcp_dns3server');
208 + my $dhcpd_gatewaycustom = $q->param ('dhcp_gatewaycustom');
209 + my $dhcpd_gateway = $q->param ('dhcp_gateway');
210 +
211 + ###Update SME configuration dbase
212 + my $dbh_sme = esmith::ConfigDB->open('/home/e-smith/db/configuration');
213 +
214 + ##Initiate get method --> create record object
215 + my $sme_record = $dbh_sme->get('dhcpd');
216 + #get localip of server
217 + my $local_ip = $dbh_sme->get_value('LocalIP');
218 +
219 + ##Set status of service
220 + $sme_record->set_prop('status', $dhcpd_status);
221 + $sme_record->set_prop('check' , $dhcpd_check);
222 + $sme_record->set_prop('winscustom', $dhcpd_winscustom);
223 + $sme_record->set_prop('leasetime' , $dhcpd_leasetime);
224 + $sme_record->set_prop('dnscustom' , $dhcpd_dnscustom);
225 + $sme_record->set_prop('gatewaycustom' , $dhcpd_gatewaycustom);
226 +
227 + #checkip to the dhcpserver, perform the save in DB configuration or display an error if value != of a valid ip or if dhcp_start is greater than dhcp_end
228 +
229 +
230 + if ($dhcpd_status eq "enabled")
231 + {
232 + if ( isValidIP ($dhcpd_start) && isValidIP ($dhcpd_end))
233 + {
234 + #check if $dhcpd_start is greater than $dhcpd_end and if yes, display an error message.
235 +
236 + if (inet_aton($dhcpd_start) ge inet_aton($dhcpd_end))
237 + {
238 + return $q->l('dhcpd_DHCP_START_GREATER_DHCP_END_ERRORS') . ' (' . $dhcpd_start . '/' . $dhcpd_end .')';
239 + }
240 + elsif ( ( (inet_aton($dhcpd_start) le inet_aton($local_ip) ) && ( inet_aton($dhcpd_end)) ge inet_aton($local_ip) ) )
241 + {
242 + #display an error if the range of dhcp server include the ip of the server address
243 + return $q->l('dhcpd_DHCP_RANGE_MUST_NOT_INCLUDE_SERVER_IP') . ' (' . $local_ip . ')';
244 + }
245 + else
246 + {
247 + #set value
248 + my $dhcpd_start = cleanIP($dhcpd_start);
249 + my $dhcpd_end = cleanIP($dhcpd_end);
250 +
251 + $sme_record->set_prop('end', $dhcpd_end);
252 + $sme_record->set_prop('start', $dhcpd_start);
253 + }
254 + }
255 + #if $dhcpd_start or $dhcpd_end are not valid ip then display an error
256 + else
257 + {
258 + return $q->l('dhcpd_DHCP_RANGE_WITH_BAD_IP') . ' (' . $dhcpd_start . '/' . $dhcpd_end .')';
259 + }
260 + }
261 +
262 + #checkip to the winserver perform the save in DB configuration or display an error if value != of a valid ip
263 + if ($dhcpd_winscustom eq "enabled")
264 + {
265 +
266 + if ( isValidIP ($dhcpd_winsserver) )
267 + {
268 + #set value
269 + my $dhcpd_winsserver = cleanIP($dhcpd_winsserver);
270 + $dbh_sme->set_prop('smb','WINSServer', $dhcpd_winsserver);
271 + }
272 + else
273 + {
274 + #if $dhcpd_winsserver is not valid ip then display an error
275 + return $q->l('dhcpd_WINSSERVER_BAD_IP') . ' (' . $dhcpd_winsserver .')';
276 + }
277 + }
278 + elsif ($dhcpd_winscustom eq "disabled")
279 + {
280 + my $delws = $dbh_sme->get('smb');
281 + $delws->delete_prop('WINSServer');
282 + }
283 +
284 + #checkip to the dnsserver custom, perform the save in DB configuration or display an error if value != of a valid ip
285 + if ($dhcpd_dnscustom eq "enabled")
286 + {
287 + #check if $dhcpd_dns1server and ( $dhcpd_dns2server are valid ip or $dhcpd_dns2server = null )
288 + if ( isValidIP ($dhcpd_dns1server) && (isValidIP($dhcpd_dns2server) || ( $dhcpd_dns2server eq "") ) && (isValidIP($dhcpd_dns3server) || ( $dhcpd_dns3server eq "") ) )
289 + {
290 + #set value
291 + my $dhcpd_dns1server = cleanIP($dhcpd_dns1server);
292 + $sme_record->set_prop('dns1server' , $dhcpd_dns1server);
293 + my $dhcpd_dns2server = cleanIP($dhcpd_dns2server);
294 + $sme_record->set_prop('dns2server' , $dhcpd_dns2server);
295 + my $dhcpd_dns3server = cleanIP($dhcpd_dns3server);
296 + $sme_record->set_prop('dns3server' , $dhcpd_dns3server);
297 + }
298 + else
299 + {
300 + ##if $dhcpd_dns1server or $dhcpd_dns2server or $dhcpd_dns3server are not valid ip then display an error
301 + return $q->l('dhcpd_DNS_SERVER_WITH_BAD_IP') . ' (' . $dhcpd_dns1server . '/' . $dhcpd_dns2server . '/' . $dhcpd_dns3server .')';
302 + }
303 + }
304 +
305 + #checkip to the gateway_custom perform the save in DB configuration or display an error if value != of a valid ip
306 + if ($dhcpd_gatewaycustom eq "enabled")
307 + {
308 + if ( isValidIP ($dhcpd_gateway) )
309 + {
310 + #set value
311 + my $dhcpd_gateway = cleanIP($dhcpd_gateway);
312 + $sme_record->set_prop('gateway' , $dhcpd_gateway);
313 + }
314 + else
315 + {
316 + #if $dhcpd_gateway is not valid ip then display an error
317 + return $q->l('dhcpd_GATEWAY_BAD_IP') . ' (' . $dhcpd_gateway .')';
318 + }
319 + }
320 +
321 +
322 + # - 4 expand templates
323 + # changed to new sme standard signal-event
324 + system ("/sbin/e-smith/signal-event","workgroup-update") == 0
325 + or die "Error while saving settings: $!";
326 + return 'ok';
327 + exit;
328 +}
329 +
330 +
331 +sub do_delete_all_leases {
332 + #
333 + # Delete all the specified lease
334 + # Called from button at top of leases list panel
335 + #
336 + my $c = shift;
337 + my $ret = delete_all_leases($c);
338 + if ($ret == 'ok') {
339 + dhcp_data{"success"}="dhcpd_SUCCESSFULLY_SAVED_SETTINGS";
340 + do_leases($c);
341 + }
342 + else {dhcp_data{"error"}=$ret;}
343 + return ;
344 +}
345 +
346 +sub do_delete_one_lease {
347 + #
348 + # Delete the specified lease
349 + # Called from link in table of leases
350 + #
351 + my $c = shift;
352 + # Lease in $c->param("lease")
353 + # Validate - if not return error message
354 + # delete it
355 + # If deletion not ok return message
356 + # else return "ok"
357 + my $ret = delete_lease($c);
358 + if ($ret == 'ok') {
359 + dhcp_data{"success"}="dhcpd_SUCCESSFULLY_SAVED_SETTINGS";
360 + do_leases($c);
361 + }
362 + else {dhcp_data{"error"}=$ret;}
363 + return ;
364 +}
365 +
366 +sub get_scan_results {
367 + my $c = shift;
368 + #...do it
369 + return "results";
370 +}
371 +
372 +
373 +sub update_config {
374 + my $c = shift;
375 + #...do it
376 + return "ok";
377 +}
378 +
379 +sub delete_one_lease {
380 + my $c = shift;
381 + # ...do it
382 + return "ok";
383 +}
384 +
385 +sub delete_all_leases {
386 + my $c = shift;
387 + # ...do it
388 + return "ok";
389 +}
390 +
391 +sub get_leases_in_array {
392 + my $c = shift;
393 + my @leases = Load_leases($c);
394 + # ...do it
395 + return @leases;
396 +}
397 +
398 +#=========================================================================
399 +# Procedure qui charge le dhcpd.conf
400 +# retourne un tableau contenant les informations
401 +#=========================================================================
402 +sub Load_leases ($){
403 +
404 + my $q = shift;
405 + #Definition de variable
406 + use vars qw/
407 + @detail $work_line $header /;
408 + my $name_file = '/var/lib/dhcpd/dhcpd.leases' ;
409 + our @liste_computer = '' ;
410 + our $db = esmith::ConfigDB->open() or die("Unable to open Configuration DB");
411 + our %sme_conf = $db->get('dhcpd')->props;
412 + #Ouverture du fichier en lecture seule
413 + open(FILE,"<$name_file") || die "Read error $name_file, Error: $!" ;
414 +
415 + #Parcours du fichier dhcpd.leases
416 + while (<FILE>) {
417 + # suppression des commentaires
418 + if ($_ =~ /^#/) { next; }
419 +
420 + #spurresion des lignes vides
421 + if ($_ =~ /^$/) { next; }
422 + #supression de la ligne uid de windows
423 + if ($_ =~ /uid/) { next; }
424 + #supression de la ligne tstp de XP
425 + if ($_ =~ /tstp/) { next; }
426 + #supression de la ligne "binding state active"
427 + if ($_ =~ /binding/) { next; }
428 + #supression de la ligne "next binding state"
429 + if ($_ =~ /next/) { next; }
430 + #suprresion des commentaire et des ;
431 + $_ =~ s/\s#.*$//;
432 + $_ =~ s/(;|{) *$//;
433 +
434 + #supression des espace en debut de lignes
435 + $_ =~ s/^ *\s//;
436 +
437 + #Suppression des retours chariot en fin de lignes.
438 + chomp $_ ;
439 +
440 + #Chargement d'un tableau avec le contenu de la ligne.
441 + (@detail) = split(/ /, $_) ;
442 +
443 + #initialisation d'un nouveau poste connect�
444 + if ($_ =~ /lease/) {
445 + $work_line = "" ;
446 + }
447 +
448 + $header = shift(@detail);
449 + $work_line = $work_line . ";" . join(" ",@detail) ;
450 +
451 + if ($header =~ /}/) {
452 + $work_line =~ s/ /;/g;
453 + $work_line =~ s/^;//;
454 + $work_line =~ s/"//g;
455 + $work_line =~ s/;$//;
456 + #we want the last entry is the first element of the array
457 + unshift(@liste_computer,$work_line) ;
458 + }
459 + }
460 + close(FILE);
461 + # Now check if up and extract details
462 + my @mac = ();
463 + my @count = ();
464 + my @results = ();
465 + my @liste_connected = ();
466 + foreach (@liste_computer){
467 + my @computer = split(/;/, $_) ;
468 + #we want to sort elements the array by mac address
469 + $computer[11] = uc($computer[11]) ;
470 + push @mac, ($computer[11]);
471 + my @count;
472 + push @count , (grep /$computer[11]/ , @mac);
473 + next if (scalar @count > 1);
474 + #we start the table if it is a valid IP
475 + if ( $computer[0] ) {
476 + $computer[12] = uc($computer[12]) ;
477 + my $datedeb = $computer[2] . "-" . $computer[3] ;
478 + my $datefin = $computer[5] . "-" . $computer[6] ;
479 + my $status = 'dhcpd_NOT_CHECKED';
480 + #my $status = '<a href=/smanager/dhcpd1'."?state=wake_up&MAC=" . $computer[11] . "&name=" . $computer[12].">".$q->l('dhcpd_NOT_CHECKED')."</a>";
481 + if ( $sme_conf{'check'} =~ /enabled/ ) {
482 + use Net::Ping;
483 + my($ping_obj) = Net::Ping->new("icmp");
484 + # formatage des dates
485 + $computer[3] = substr($computer[3],0,5);
486 + $computer[6] = substr($computer[6],0,5);
487 + if ($ping_obj->ping("$computer[0]")) {
488 + push(@liste_connected,$computer[12]) ;
489 + $status = 'dhcpd_ACTIVE_DEVICE';
490 + #alimentation de la liste des connect�
491 + }
492 + else { $status = 'dhcpd_WAKE_UP_ACTION';}
493 + #else { $status = '<a href=/smanager/dhcpd1'."?state=wake_up&MAC=" . $computer[11] . "&name=" . $computer[12].">".$q->l('dhcpd_WAKE_UP_ACTION')."</a>";
494 + }
495 + my %ipdetails = (ip=>$computer[0],name=>$computer[12],wol=>$status,start=>$datedeb,end=>$datefin,mac=>$computer[11]);
496 + push(@results,\%ipdetails);
497 + }
498 + else {
499 + push(@liste_connected,$computer[12]) ;
500 + }
501 + }
502 + return @results;
503 +}
504 +
505 +sub winpopup{
506 + my $c = shift;
507 + # Message in $c->param("winpopupmsg")
508 + # .... do it
509 + return TRUE;
510 +}
511 +
512 +sub do_wol{
513 + my $c = shift;
514 + my $retVal = Perform_Wake_Up($c);
515 + if ($retVal) {$dhcp_data{"success"} = $retVal;}
516 + do_leases($c);
517 + return TRUE;
518 +}
519 +
520 +
521 +#===============================================================================
522 +#SUBROUTINE: Perform wake UP
523 +#===============================================================================
524 +sub Perform_Wake_Up($){
525 +
526 + ###Pull CGI object from parameters array
527 + my $q = shift;
528 +
529 + ###Get Mac Adress
530 + my $mac = uc($q->param('mac'));
531 + my $name = uc($q->param('name'));
532 +
533 + #Send Wake Up to the station
534 + #Old version obsolete since 1.5.0 - system ("/usr/bin/wol","$mac") ;
535 + system ("/sbin/ether-wake","$mac") ;
536 + ###Return action message
537 + return 'dhcpd_SUCCESSFULLY_CLIENT_WOL_REQUEST';
538 +}
539 +
540 +
541 +1;
542 +
543 +
544 \ No newline at end of file
545 diff -urN smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Dhcpd/dhcpd_en.lex smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Dhcpd/dhcpd_en.lex
546 --- smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Dhcpd/dhcpd_en.lex 1970-01-01 01:00:00.000000000 +0100
547 +++ smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Dhcpd/dhcpd_en.lex 2022-02-04 11:51:00.000000000 +0000
548 @@ -0,0 +1,91 @@
549 + 'dhcpd_ACTION' => 'Action',
550 + 'dhcpd_ACTIVE_DEVICE' => 'Active Device',
551 + 'dhcpd_ALL_OF_THEM' => 'All of them',
552 + 'dhcpd_CHECK_CLIENT_STATUS' => 'Always check the status of computers (Disabled is much faster)',
553 + 'dhcpd_CLEAN_ALL_DHCPLEASES' => 'You may want to clean the dhcpd.leases',
554 + 'dhcpd_CLICK_HERE_TO_MAIN_PANEL' => 'Return to the main panel',
555 + 'dhcpd_CONNECTED_IP' => 'Show DHCP Clients',
556 + 'dhcpd_CUSTOM_DNS_STATUS' => 'Custom DNS',
557 + 'dhcpd_CUSTOM_DNS_TITLE' => 'Enable custom DNS servers.',
558 + 'dhcpd_CUSTOM_GATEWAY_ADDRESS' => 'Gateway address',
559 + 'dhcpd_CUSTOM_GATEWAY_STATUS' => 'Custom gateway',
560 + 'dhcpd_CUSTOM_GATEWAY_TITLE' => 'Enable a custom gateway address.',
561 + 'dhcpd_CUSTOM_LEASETIME' => 'Custom lease time',
562 + 'dhcpd_CUSTOM_LEASETIME_TITLE' => 'Set the lease time (default is 86400 seconds).',
563 + 'dhcpd_CUSTOM_WINSERVER_ADDRESS' => 'WINS Server address',
564 + 'dhcpd_CUSTOM_WINSERVER_STATUS' => 'WINS Server',
565 + 'dhcpd_CUSTOM_WINSERVER_TITLE' => 'Enable a WINS Server.',
566 + 'dhcpd_DHCPD_SETTING_ERRORS' => 'DHCPd Settings ERRORS',
567 + 'dhcpd_DHCPD_SETTINGS_TITLE' => 'DHCP server settings',
568 + 'dhcpd_DHCPD_TITLE' => 'DHCP Manager',
569 + 'dhcpd_DHCP_END' => 'DHCP End',
570 + 'dhcpd_DHCP manager' => 'DHCP Manager',
571 + 'dhcpd_DHCP_RANGE_MUST_NOT_INCLUDE_SERVER_IP' =>'Incorrect range of IPs, the range of IP address allocation must not include the server address, Update unsuccessfull',
572 + 'dhcpd_DHCP_RANGE_WITH_BAD_IP' => 'Incorrect IP in the DHCP range, Update unsuccessfull',
573 + 'dhcpd_DHCP_START' => 'DHCP Start',
574 + 'dhcpd_DHCP_START_GREATER_DHCP_END_ERRORS' =>'Incorrect range of IPs, the DHCP Start is greater than the DHCP End , Update unsuccessfull',
575 + 'dhcpd_DISABLED' => 'Disabled',
576 + 'dhcpd_DNS_SERVER_WITH_BAD_IP' => 'Incorrect IP for DNS servers, Update unsuccessfull',
577 + 'dhcpd_DO_YOU_WANT_TO_SENT' => 'Do you want to send this message to',
578 + 'dhcpd_ENABLED' => 'Enabled',
579 + 'dhcpd_END_DATE' => 'End Date',
580 + 'dhcpd_ERROR_WHILE_REMOVING_ALL_LEASES' => 'Error while removing all dhcpd Leases',
581 + 'dhcpd_ERROR_WHILE_SAVING_SETTINGS' => 'Error while saving settings',
582 + 'dhcpd_GATEWAY_BAD_IP' => 'Incorrect IP for Gateway, Update unsuccessfull',
583 + 'dhcpd_GLOBAL_WINPOPUP' => 'Send Global Netsend WinPopup',
584 + 'dhcpd_GLOBAL_WINPOPUP_TITLE' => 'Send a global WinPopup with the Net send protocol',
585 + 'dhcpd_IP' => 'Ip Address',
586 + 'dhcpd_MAC_ADDRESS' => 'MAC Address',
587 + 'dhcpd_MANAGING_DHCP_CLIENT' => 'Managing DHCP clients',
588 + 'dhcpd_NETWORK_NAME' => 'Network Name',
589 + 'dhcpd_NETWORK_VALUES_FOUND' => 'Please wait .... Your subnet and your netmask appear to be :',
590 + 'dhcpd_NO_CONNECTED_COMPUTERS' => 'There are no connected computers',
591 + 'dhcpd_NOT_CHECKED' => 'Not Checked...',
592 + 'dhcpd_PRIMARY_DNS_ADDRESS' => 'Primary DNS',
593 + 'dhcpd_REFRESH_CONNECTED_IP_LIST' => 'You may want to refresh this list ?',
594 + 'dhcpd_REFRESH' => 'Refresh the list',
595 + 'dhcpd_REMOVE_ACTION' => 'Remove...',
596 + 'dhcpd_REMOVE_A_DHCP_LEASE_ACTION' => 'You are about to remove a client from the dhcpd.leases file.',
597 + 'dhcpd_REMOVE_A_DHCP_LEASE' => 'Remove a DHCP lease',
598 + 'dhcpd_ARE_YOU_SURE' => 'are you sure ?',
599 + 'dhcpd_REMOVE_A_DHCP_LEASE_TITLE' => 'Removing a DHCP Lease',
600 + 'dhcpd_REMOVE_ALL_LEASES_ACTION' => 'Remove all dhcpd leases',
601 + 'dhcpd_REMOVE_ALL_LEASES' => 'Remove all leases',
602 + 'dhcpd_REMOVE_DHCP_LEASE_TITLE' => 'Removing all DHCP Lease',
603 + 'dhcpd_REMOVE_DHCP_LEASE_WARNING' => 'Remove all entries in dhcpd.leases may cause issues',
604 + 'dhcpd_REMOVE' => 'Remove',
605 + 'dhcpd_SAVE/RESTART' => 'Save/Restart',
606 + 'dhcpd_SAVE_TITLE' => 'After changing settings above, you must save and restart dhcpd.',
607 + 'dhcpd_SCANNING_NETWORK_TITLE' => 'Scanning your network, the time needed depends of your subnet mask',
608 + 'dhcpd_SCAN_YOUR_NETWORK' => 'Scan your network',
609 + 'dhcpd_SCAN_YOUR_NETWORK_TITLE' => 'Scan your network to show active devices :',
610 + 'dhcpd_SECONDARY_DNS_ADDRESS' => 'Secondary DNS',
611 + 'dhcpd_SENDING_A_WINPOPUP' => 'Sending a WinPopup',
612 + 'dhcpd_SENDING_A_WINPOPUP_TO' => 'You are about to send a WinPopup to ',
613 + 'dhcpd_SEND_WINPOPUP_TO' => 'Send a WinPopup to',
614 + 'dhcpd_SHOW_CONNECTED_IP_TITLE' => 'Show all devices connected to the dhcpd server :',
615 + 'dhcpd_START_DATE' => 'Start Date',
616 + 'dhcpd_STATUS_CLICK_FOR_WOL' => 'Status - click for WOL',
617 + 'dhcpd_STATUS_DHCP_SERVER' => 'State of DHCPD',
618 + 'dhcpd_STATUS_REPORT' => 'Operation status report :',
619 + 'dhcpd_SUCCESSFULLY_CLIENT_WOL_REQUEST' =>'Successfull request to wake up the client. The computer may take time to wake up.',
620 + 'dhcpd_SUCCESSFULLY_DELETED_THE_CLIENT' => 'Successfully deleted the client in dhcpd.leases : ',
621 + 'dhcpd_SUCCESSFULLY_REMOVED_ALL_LEASES' => 'Successfully deleted all leases.',
622 + 'dhcpd_SUCCESSFULLY_SAVED_SETTINGS' => 'Successfully saved settings',
623 + 'dhcpd_SUCCESSFULLY_SENT_MESSAGE' => 'Successfully sent message popup to',
624 + 'dhcpd_TERTIARY_DNS_ADDRESS' => 'Tertiary DNS',
625 + 'dhcpd_WAKE_UP_ACTION' => '<font color="red">Wake-Up...</font>',
626 + 'dhcpd_WAKE_UP' => 'Wake UP',
627 + 'dhcpd_WAKING_A_REMOTE_COMPUTER_ACTION' => 'Are you sure you want to wake on lan the client : ',
628 + 'dhcpd_WAKING_A_REMOTE_COMPUTER_TITLE' => 'Waking Up a remote computer',
629 + 'dhcpd_WAKING_A_REMOTE_COMPUTER' => 'You are about to wake up a remote computer.',
630 + 'dhcpd_WARNING_NO_WINPOPUP_GARANTY' =>'Warning, there is no guarantee that the popup will appear on the remote computer.',
631 + 'dhcpd_WINPOPUP_ACTION' => 'WinPopup...',
632 + 'dhcpd_WINSSERVER_BAD_IP' => 'Incorrect IP for WINS Server, Update unsuccessfull',
633 + 'dhcpd_WRITE_YOUR_MESSAGE' => 'Write your message here',
634 + 'dhcpd_YOUR_MESSAGE' => 'Your message',
635 + 'dhcpd_REMOVE_DHCP_LEASE_WARNING2' => 'The lease file is a log-structured file - whenever a lease changes, the
636 + contents of that lease are written to the end of the file. This means that it is entirely possible for there to be two
637 + or more declarations of the same lease in the lease file at the same
638 + time. In that case, the instance of that particular lease that
639 + appears last in the file is the one that is in effect.',
640 diff -urN smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/themes/default/templates/dhcpd.html.ep smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/themes/default/templates/dhcpd.html.ep
641 --- smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/themes/default/templates/dhcpd.html.ep 1970-01-01 01:00:00.000000000 +0100
642 +++ smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/themes/default/templates/dhcpd.html.ep 2022-03-09 11:51:00.000000000 +0000
643 @@ -0,0 +1,211 @@
644 +% layout 'default', title => "Sme server 2 - DHCP Manager", share_dir => './';
645 +
646 +% content_for 'module' => begin
647 +
648 +<div id="module" class="module dhcpman-panel">
649 +
650 + % if ($config->{debug} == 1) {
651 + <p>
652 + %= dumper $c->current_route
653 + </p>
654 + % }
655 +
656 + <h1><%=$title%></h1>
657 + %= $modul
658 +
659 + %if ($dhcp_data->{first}) {
660 + <br><p>
661 + %=$c->render_to_string(inline =>$c->l($dhcp_data->{first}))
662 + </p>
663 +
664 + %} elsif ($dhcp_data->{success}) {
665 + <div class='sme-border'>
666 + <h2> Operation Status Report - success</h2><p>
667 + <font color=green>
668 + %= $c->l($dhcp_data->{success});
669 + </font>
670 + </p>
671 + </div>
672 +
673 + %} elsif ($dhcp_data->{error}) {
674 + <div class='sme-error'>
675 + <h2> Operation Status Report - error</h2><p>
676 + <font color=red>
677 + %= $c->l($dhcp_data->{error});
678 + </font>
679 + </p>
680 + </div>
681 +
682 + %} elsif ($dhcp_data->{error}) {
683 + <div class='sme-warning'>
684 + <h2> Operation Status Report - warning</h2><p>
685 + <font color=orange>
686 + %= $c->l($dhcp_data->{error});
687 + </font>
688 + </p>
689 + </div>
690 +
691 + %}
692 +
693 + % if ($dhcp_data->{trt} eq 'LEASES') {
694 + %= include 'partials/_dhcpd_leases'
695 + %} elsif ($dhcp_data->{trt} eq 'WINPOPUP') {
696 + %= include 'partials/_dhcpd_winpopup'
697 + %} elsif ($dhcp_data->{trt} eq 'SCAN') {
698 + %= include 'partials/_dhcpd_scan'
699 + %} else { #PARAMS
700 + % my $ip_regex = '^((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$';
701 + <table><tr><td>
702 + %= button_to $c->l('dhcpd_CONNECTED_IP') => '/dhcpd1', onclick=>"showSpinner()", id=>"scanLeases"
703 + <button class ="btn btn-primary spinnerButtonOverlay" type = "submit" id="load" style="display:true">
704 + Scanning <!--%= $c->l('dhcpd_CONNECTED_IP')-->
705 + <span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
706 + </button>
707 + </td><td>
708 + %= button_to $c->l('dhcpd_SCAN_YOUR_NETWORK') => '/dhcpd3'
709 + </td><td>
710 + %= button_to $c->l('dhcpd_GLOBAL_WINPOPUP') => '/dhcpd2'
711 + <td>
712 + </tr>
713 + </table>
714 + <hr />
715 + <h2>
716 + %= $c->l("dhcpd_DHCPD_SETTINGS_TITLE")
717 + </h2>
718 + % my $btn = l('dhcpd_SAVE/RESTART');
719 + %= form_for '/dhcpd5' => (method => 'POST') => begin
720 + <span class=label>
721 + %=l 'dhcpd_CHECK_CLIENT_STATUS'
722 + </span><span class=data>
723 + % param dhcp_check=>$dhcp_data->{"params"}->{"check"};
724 + %=select_field dhcp_check=>$dhcp_data->{"check"}
725 + </span><br>
726 + <br />
727 + <span class=label>
728 + %=l 'dhcpd_STATUS_DHCP_SERVER'
729 + </span><span class=data>
730 + % param dhcp_enable=>$dhcp_data->{"params"}->{"status"};
731 + %=select_field dhcp_enable=>$dhcp_data->{"status"}
732 + </span><br>
733 +
734 + <span class=label>
735 + %=l 'dhcpd_DHCP_START'
736 + </span><span class=data>
737 + % param dhcp_start=>$dhcp_data->{"params"}->{"start"};
738 + %=text_field 'dhcp_start',minlength=>'7',maxlength=>"15",size=>"15",placeholder=>"nnn.nnn.nnn.nnn", pattern=>"$ip_regex"
739 + </span><br>
740 +
741 + <span class=label>
742 + %=l 'dhcpd_DHCP_END'
743 + </span><span class=data>
744 + % param dhcp_end=>$dhcp_data->{"params"}->{"end"};
745 + %=text_field 'dhcp_end',minlength=>'7',maxlength=>"15",size=>"15",placeholder=>"nnn.nnn.nnn.nnn", pattern=>"$ip_regex"
746 + </span><br><br />
747 +
748 + %= $c->l("dhcpd_CUSTOM_WINSERVER_TITLE");
749 + <br />
750 +
751 + <span class=label>
752 + %=l 'dhcpd_CUSTOM_WINSERVER_STATUS'
753 + </span><span class=data>
754 + % param dhcp_winscustom=>$dhcp_data->{"params"}->{"winscustom"};
755 + %=select_field dhcp_winscustom=>$dhcp_data->{"status"}
756 + </span><br>
757 +
758 + <span class=label>
759 + %=l 'dhcpd_CUSTOM_WINSERVER_ADDRESS'
760 + </span><span class=data>
761 + % param dhcp_winsserver=>$dhcp_data->{"smbparams"}->{"WINSServer"};
762 + %=text_field 'dhcp_winsserver' ,minlength=>'7',maxlength=>"15",size=>"15",placeholder=>"nnn.nnn.nnn.nnn", pattern=>"$ip_regex"
763 + </span><br><br />
764 +
765 + %= $c->l("dhcpd_CUSTOM_DNS_TITLE");
766 + <br />
767 + <span class=label>
768 + %=l 'dhcpd_CUSTOM_DNS_STATUS'
769 + </span><span class=data>
770 + % param dhcp_dnscustom=>$dhcp_data->{"params"}->{"dnscustom"};
771 + %=select_field dhcp_dnscustom=>$dhcp_data->{"status"}
772 + </span><br>
773 +
774 + <span class=label>
775 + %=l 'dhcpd_PRIMARY_DNS_ADDRESS'
776 + </span><span class=data>
777 + % param dhcp_dns1server=>$dhcp_data->{"params"}->{"dns1server"};
778 + %=text_field 'dhcp_dns1server' ,minlength=>'7',maxlength=>"15",size=>"15",placeholder=>"nnn.nnn.nnn.nnn", pattern=>"$ip_regex"
779 + </span><br>
780 +
781 + <span class=label>
782 + %=l 'dhcpd_SECONDARY_DNS_ADDRESS'
783 + </span><span class=data>
784 + % param dhcp_dns2server=>$dhcp_data->{"params"}->{"dns2server"};
785 + %=text_field 'dhcp_dns2server' ,minlength=>'7',maxlength=>"15",size=>"15",placeholder=>"nnn.nnn.nnn.nnn", pattern=>"$ip_regex"
786 + </span><br>
787 +
788 + <span class=label>
789 + %=l 'dhcpd_TERTIARY_DNS_ADDRESS'
790 + </span><span class=data>
791 + % param dhcp_dns3server=>$dhcp_data->{"params"}->{"dns3server"};
792 + %=text_field 'dhcp_dns3server' ,minlength=>'7',maxlength=>"15",size=>"15",placeholder=>"nnn.nnn.nnn.nnn", pattern=>"$ip_regex"
793 + </span><br>
794 +
795 + %= $c->l("dhcpd_CUSTOM_GATEWAY_TITLE");
796 + <br />
797 + <span class=label>
798 + %=l 'dhcpd_CUSTOM_GATEWAY_STATUS'
799 + </span><span class=data>
800 + % param dhcp_gatewaycustom=>$dhcp_data->{"params"}->{"gatewaycustom"};
801 + %=select_field dhcp_gatewaycustom=>$dhcp_data->{"status"}
802 + </span><br>
803 +
804 + <span class=label>
805 + %=l 'dhcpd_CUSTOM_GATEWAY_ADDRESS'
806 + </span><span class=data>
807 + % param dhcp_gateway=>$dhcp_data->{"params"}->{"gateway"};
808 + %=text_field 'dhcp_gateway' ,minlength=>'7',maxlength=>"15",size=>"15",placeholder=>"nnn.nnn.nnn.nnn", pattern=>"$ip_regex"
809 + </span><br><br />
810 + %= $c->l("dhcpd_CUSTOM_LEASETIME_TITLE");
811 + <br />
812 + <span class=label>
813 + %=l 'dhcpd_CUSTOM_LEASETIME'
814 + </span><span class=data>
815 + % param dhcp_leasetime=>$dhcp_data->{"params"}->{"leasetime"};
816 + %=number_field 'dhcp_leasetime'
817 + </span><br><br />
818 + %= submit_button "$btn", class => 'action'
819 + % end
820 + %}
821 +
822 +</div>
823 +
824 +%= javascript begin
825 + document.getElementById("load").style.display="none";
826 + function showSpinner(){
827 + document.getElementById("scanLeases").style.display="none";
828 + document.getElementById("load").style.display="inline";
829 + }
830 +%end
831 +
832 +%= stylesheet begin
833 +.spinnerButtonOverlay,
834 +.spinnerButtonOverlay:hover,
835 +.spinnerButtonOverlay:any-link ,
836 +.spinnerButtonOverlay:focus ,
837 +.spinnerButtonOverlay:active {
838 + appearance: auto;
839 + user-select: none;
840 + align-items: flex-start;
841 + cursor: default;
842 + box-sizing: border-box;
843 + background-color: #efefef;
844 + color: black;
845 + padding: 1px 6px;
846 + border-width: 2px;
847 + border-style: outset;
848 + border-color: darkgrey;
849 + border-image: initial;
850 +}
851 +
852 +%end
853 +
854 +%end
855 diff -urN smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/themes/default/templates/partials/_dhcpd_leases.html.ep smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/themes/default/templates/partials/_dhcpd_leases.html.ep
856 --- smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/themes/default/templates/partials/_dhcpd_leases.html.ep 1970-01-01 01:00:00.000000000 +0100
857 +++ smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/themes/default/templates/partials/_dhcpd_leases.html.ep 2022-03-09 10:06:00.000000000 +0000
858 @@ -0,0 +1,113 @@
859 +<div id='dhcpd-leases'>
860 + <table><tr><td>
861 + %= button_to $c->l('dhcpd_REFRESH') => '/dhcpd1', onclick=>"showSpinner()", id=>"scanLeases"
862 + <button class ="btn btn-primary spinnerButtonOverlay" type = "submit" id="load" style="display:true">
863 + Scanning <!--%= $c->l('dhcpd_CONNECTED_IP')-->
864 + <span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>
865 + </button>
866 +
867 + </td><td>
868 + %= button_to $c->l('dhcpd_REMOVE_ALL_LEASES') => '/dhcpd4'
869 + </td>
870 + </tr>
871 + </table>
872 + <hr />
873 + % my $btn = l('dhcpd_SAVE/RESTART');
874 + %= form_for '/dhcpd10' => (method => 'POST') => begin
875 + <span class=label>
876 + %=l 'dhcpd_CHECK_CLIENT_STATUS'
877 + </span><span class=data>
878 + % param dhcp_check=>$dhcp_data->{"params"}->{"check"};
879 + %=select_field dhcp_check=>$dhcp_data->{"check"}
880 + </span><br>
881 + <br />
882 + %= $c->l("dhcpd_SAVE_TITLE");
883 + <br />
884 + %= submit_button "$btn", class => 'action'
885 + % end
886 + <br>
887 + <table class="sme-border table-sort"><tbody>
888 + <tr>
889 + <th class='sme-border'>
890 + %=l 'dhcpd_IP'
891 + </th>
892 + <th class='sme-border'>
893 + %=l 'dhcpd_NETWORK_NAME'
894 + </th>
895 + <th class='sme-border'>
896 + %=l 'dhcpd_STATUS_CLICK_FOR_WOL'
897 + </th>
898 + <th class='sme-border'>
899 + %=l('dhcpd_START_DATE',"")
900 + </th>
901 + <th class='sme-border'>
902 + %=l 'dhcpd_END_DATE'
903 + </th>
904 + <th class='sme-border'>
905 + %=l 'dhcpd_MAC_ADDRESS'
906 + </th>
907 + <th class='sme-border' colspan=2>
908 + %=l 'dhcpd_ACTION'
909 + </th>
910 + </tr>
911 + % foreach my $ip (@$leases) {
912 + <tr>
913 + %= t td => (class => 'sme-border') => $ip->{ip}
914 + %= t td => (class => 'sme-border') => $ip->{name}
915 + <td class='sme-border'>
916 + % if ($ip->{wol} =~ /ACTIVE/) {
917 + <center><%==l $ip->{wol}%></center>
918 + %} else {
919 + <a href="/smanager/dhcpd9??state=wake_up&MAC=<%= $ip->{mac}%>&name=<%= $ip->{name}%>" onclick="Wol_confirm(event,'<%=$c->l('dhcpd_WAKING_A_REMOTE_COMPUTER')%>',this);"><center><%==l $ip->{wol}%></center></a>
920 + %}
921 + </td>
922 + %= t td => (class => 'sme-border') => $ip->{start}
923 + %= t td => (class => 'sme-border') => $ip->{end}
924 + %= t td => (class => 'sme-border') => $ip->{mac}
925 + <td class = 'sme-border'>
926 + <a href="/smanager/dhcpd6?trt=DEL&ip=<%= $ip->{ip}%>" onclick="Remove_lease_confirm(event,'<%=$c->l('dhcpd_REMOVE_A_DHCP_LEASE_ACTION')%>',this);"><center><%=l 'dhcpd_REMOVE'%></center></a>
927 + </td><td class = 'sme-border'>
928 + <a href="/smanager/dhcpd8?trt=WIN&ip=<%= $ip->{ip}%>" onclick="Winpop_confirm(event,'<%=$c->l('dhcpd_SENDING_A_WINPOPUP')%>',this);"><center><%=l 'dhcpd_WINPOPUP_ACTION'%></center></a>
929 + </td>
930 + </tr>
931 + %}
932 + </tbody>
933 + </table>
934 + %= hidden_field "hiddenmsg"=>"", id=>"hiddenmsg"
935 + <br />
936 + %= button_to $c->l('dhcpd_CLICK_HERE_TO_MAIN_PANEL') => '/dhcpd'
937 +
938 + %= javascript begin
939 + function Wol_confirm(event,msg,current){
940 + const getMAC = /.*MAC\=(.*)\&name.*/;
941 + var MAC = current.href.match(getMAC)[1];
942 + if (confirm(msg+": MAC: "+MAC))
943 + { return true;}
944 + else {event.preventDefault();return false;}
945 + }
946 +
947 + function Winpop_confirm(event,msg,current){
948 + const getIP = /.*ip\=(.*)/;
949 + var IP = ": IP: "+current.href.match(getIP)[1];
950 + msg = msg.replace("$",IP);
951 + var retVal = prompt(msg);
952 + if (retVal) {
953 + //Write it away in a hidden field
954 + $hidden = document.getElementById("hiddenMsg");
955 + $hidden.value = retVal;
956 + return true;
957 + } else {event.preventDefault();return false;}
958 + }
959 +
960 + function Remove_lease_confirm(event,msg,current){
961 + const getIP = /.*ip\=(.*)/;
962 + var IP = current.href.match(getIP)[1];
963 + if (prompt(msg+" IP: "+IP))
964 + { return true;}
965 + else {event.preventDefault();return false;}
966 + }
967 +
968 + %end
969 +
970 +
971 +</div>
972 \ No newline at end of file

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