]>
Commit | Line | Data |
---|---|---|
3ea75603 MT |
1 | #!/usr/bin/perl |
2 | # | |
78331e30 | 3 | # IPFire CGIs |
3ea75603 | 4 | # |
78331e30 | 5 | # This file is part of the IPFire Project |
3ea75603 MT |
6 | # |
7 | # This code is distributed under the terms of the GPL | |
8 | # | |
9 | # (c) Eric Oberlander June 2002 | |
10 | # | |
11 | # (c) Darren Critchley June 2003 - added real time clock setting, etc | |
12 | # | |
13 | ||
14 | use strict; | |
15 | ||
16 | # enable only the following on debugging purpose | |
1bd42c89 MT |
17 | use warnings; |
18 | use CGI::Carp 'fatalsToBrowser'; | |
3ea75603 | 19 | |
986e08d9 | 20 | require '/var/ipfire/general-functions.pl'; |
3ea75603 MT |
21 | require "${General::swroot}/lang.pl"; |
22 | require "${General::swroot}/header.pl"; | |
1bd42c89 | 23 | require "/opt/pakfire/lib/functions.pl"; |
3ea75603 MT |
24 | |
25 | my %pakfiresettings=(); | |
26 | my $errormessage = ''; | |
957363eb CS |
27 | my @instlist = `ls /opt/pakfire/cache`; |
28 | my $uninstall = 'yes'; | |
3ea75603 MT |
29 | |
30 | &Header::showhttpheaders(); | |
31 | ||
32 | $pakfiresettings{'ACTION'} = ''; | |
33 | $pakfiresettings{'VALID'} = ''; | |
34 | ||
1bd42c89 MT |
35 | $pakfiresettings{'INSPAKS'} = ''; |
36 | $pakfiresettings{'DELPAKS'} = ''; | |
37 | $pakfiresettings{'AUTOUPDATE'} = ''; | |
3ea75603 MT |
38 | |
39 | &Header::getcgihash(\%pakfiresettings); | |
40 | ||
1bd42c89 MT |
41 | &Header::openpage($Lang::tr{'pakfire configuration'}, 1); |
42 | &Header::openbigbox('100%', 'left', '', $errormessage); | |
3ea75603 | 43 | |
957363eb CS |
44 | if ($pakfiresettings{'ACTION'} eq 'install'){ |
45 | print "Going to install $pakfiresettings{'INSPAKS'}"; | |
46 | system("/opt/pakfire/pakfire installi $pakfiresettings{'INSPAKS'}") | |
47 | }elsif ($pakfiresettings{'ACTION'} eq 'remove'){ | |
48 | foreach (@instlist){ | |
49 | my @pakname = split(/-/,$_); | |
50 | my $dependency = `grep "Dependencies.*$pakfiresettings{'DELPAKS'}" /opt/pakfire/db/meta/*$pakname[0]`; | |
51 | if ($dependency){$errormessage = "We have depending Paket $pakname[0] nothing will be done.<br />";$uninstall='no';last;}else{$uninstall='yes';} | |
52 | } | |
53 | if ($uninstall eq 'yes'){ | |
54 | print "Going to uninstall $pakfiresettings{'DELPAKS'}"; | |
55 | system("/opt/pakfire/pakfire uninstalli $pakfiresettings{'DELPAKS'}") | |
1bd42c89 | 56 | } |
1bd42c89 MT |
57 | } elsif ($pakfiresettings{'ACTION'} eq "$Lang::tr{'save'}") |
58 | { | |
59 | &General::writehash("${General::swroot}/pakfire/settings", \%pakfiresettings); | |
3ea75603 MT |
60 | } |
61 | ||
62 | &General::readhash("${General::swroot}/pakfire/settings", \%pakfiresettings); | |
63 | ||
3ea75603 MT |
64 | my %selected=(); |
65 | my %checked=(); | |
66 | ||
1bd42c89 MT |
67 | $checked{'AUTOUPDATE'}{'off'} = ''; |
68 | $checked{'AUTOUPDATE'}{'on'} = ''; | |
69 | $checked{'AUTOUPDATE'}{$pakfiresettings{'AUTOUPDATE'}} = "checked='checked'"; | |
3ea75603 MT |
70 | |
71 | # DPC move error message to top so it is seen! | |
72 | if ($errormessage) { | |
73 | &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); | |
74 | print "<font class='base'>$errormessage </font>\n"; | |
75 | &Header::closebox(); | |
76 | } | |
77 | ||
1bd42c89 MT |
78 | &Header::openbox("100%", "center", "Pakfire"); |
79 | ||
80 | print <<END; | |
81 | <table width='100%'> | |
82 | <tr><td width='40%' align="center">Verfuegbare Addons:<br /> | |
83 | <form method='post' action='$ENV{'SCRIPT_NAME'}'> | |
84 | <select name="INSPAKS" size="10" multiple> | |
85 | END | |
86 | &Pakfire::dblist("notinstalled", "forweb"); | |
87 | ||
88 | print <<END; | |
89 | </select> | |
90 | </td> | |
91 | <td width='20%' align="center"> | |
92 | <input type='hidden' name='ACTION' value='install' /> | |
93 | <input type='image' alt='$Lang::tr{'install'}' src='/images/list-add.png' /> | |
94 | </form><br /> | |
95 | ||
96 | <form method='post' action='$ENV{'SCRIPT_NAME'}'> | |
97 | <input type='submit' value='Liste aktualisieren' /><br /> | |
98 | </form> | |
99 | ||
100 | <form method='post' action='$ENV{'SCRIPT_NAME'}'> | |
101 | <input type='hidden' name='ACTION' value='remove' /> | |
102 | <input type='image' alt='$Lang::tr{'remove'}' src='/images/list-remove.png' /> | |
103 | </td> | |
104 | <td width='40%' align="center">Installierte Addons:<br /> | |
105 | <select name="DELPAKS" size="10" multiple> | |
957363eb CS |
106 | END |
107 | foreach (@instlist){ | |
108 | my @pakname = split(/-/,$_); | |
109 | print "<option value='$pakname[0]'>$pakname[0]</option>"; | |
110 | } | |
111 | print <<END; | |
1bd42c89 MT |
112 | </select> |
113 | </table></form> | |
114 | <br /><hr /><br /> | |
115 | <form method='post' action='$ENV{'SCRIPT_NAME'}'> | |
116 | <table width='100%'> | |
117 | <tr><td width='40%' align="right">Automatische Updates taeglich ausfuehren: | |
118 | <td width='10%' align="left"><input type="checkbox" name="AUTOUPDATE" $checked{'AUTOUPDATE'}{'on'} /> | |
119 | <td width='40%' align="right">Test: | |
120 | <td width='10%' align="left"><input type="checkbox" name="AUTOUPDATE" $checked{'AUTOUPDATE'}{'on'} /> | |
121 | <tr><td width='100%' colspan="4" align="right"><input type="submit" name="ACTION" value="$Lang::tr{'save'}" /> | |
122 | </table> | |
123 | </form> | |
124 | END | |
125 | ||
3ea75603 | 126 | &Header::closebox(); |
3ea75603 | 127 | &Header::closebigbox(); |
3ea75603 | 128 | &Header::closepage(); |