Merge branch 'master' of git@github.com:webmin/webmin

This commit is contained in:
Jamie Cameron
2013-11-27 14:23:15 -08:00
11 changed files with 221 additions and 19 deletions

View File

@@ -171,3 +171,22 @@ core_cpulimit=Had sumber CPU
core_cpulimit2=Had sumber CPU
core_custom=Jawapan ralat suai langgan
core_default=Lalai
core_defchar=Set aksara untuk dokumen
core_defmime=Jenis MIME lalai
core_diropts=Pilihan direktori
core_disable=Nyah-aktif
core_docroot=Direktori dokumen root
core_dport=Port lalai:
core_eaddress='$1' bukan;ah a;amat yang sah
core_ebody=Permintaan saiz badan tidak sah
core_ebufsize=Saiz buffer TCP send mesti integer
core_ecandoc=Anda tidak dibenarkan untuk menggunakan dokumen root '$1'
core_ecore=Direktori core dump tidak sah
core_edefchar=Hilang atau set aksara bagi dokumen tidak sah
core_edefmime=Jenis MIME lalai mestilah dalam jenis/subjenis
core_edefport=Port lalai tidak sah
core_edirlog=Fail log ralat bukan dalam direktori yang dibenarkan
core_eerror='$1' bukanlah kod ralat yang sah
core_eerrordir=Direktori untuk fail log ralat tidak wujud
core_efilelog=fail log ralat tidak sah
core_efilemiss=Hilang fail log ralat

View File

@@ -164,11 +164,15 @@ location = "chooser.cgi?frame=1&chroot=$uchroot&type=$utype&file="+p;
}
</script>
EOF
print "<script type='text/javascript' src='$gconfig{'webprefix'}/unauthenticated/filter_match.js'></script>";
print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;">
print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;' onkeyup=\"filter_match(this.value,'row',true);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';}\"");
print "<hr></div>";
print "<b>",&text('chooser_dir', &html_escape($dir)),"</b>\n";
opendir(DIR, $in{'chroot'}.$dir) ||
&popup_error(&text('chooser_eopen', "$!"));
print &ui_columns_start(undef, 100);
my $cnt = 0;
foreach $f (sort { $a cmp $b } readdir(DIR)) {
$path = "$in{'chroot'}$dir$f";
if ($f eq ".") { next; }
@@ -198,9 +202,13 @@ EOF
$tm[3], $text{'smonth_'.($tm[4]+1)}, $tm[5]+1900);
push(@cols, sprintf "<tt>%.2d:%.2d</tt>", $tm[2], $tm[1]);
print &ui_columns_row(\@cols);
$cnt++;
}
closedir(DIR);
print &ui_columns_end();
if ( $cnt >= 10 ) {
print "<script type='text/javascript'>filter_match_box();</script>";
}
&popup_footer();
}
elsif ($in{'frame'} == 2) {

View File

@@ -33,7 +33,13 @@ if ($in{'multi'}) {
for($i=0; $i<$len; $i++) {
print "sel[$i] = \"".
&quote_escape($ul[$i], '"')."\";\n";
@ginfo = getgrnam($ul[$i]);
# samba valid system group can start with @ + &
$gn = $ul[$i];
$gn =~ s/^(@|\+|&)+//g;
@ginfo = getgrnam($gn);
#@ginfo = getgrnam($ul[$i]);
if (@ginfo) {
@mems = &unique( split(/ /, $ginfo[3]),
@{$members{$ginfo[2]}} );
@@ -65,15 +71,24 @@ if ($in{'multi'}) {
print "return false;\n";
print "}\n";
print "</script>\n";
print "<script type='text/javascript' src='$gconfig{'webprefix'}/unauthenticated/filter_match.js'></script>";
print "<font size=+1>$text{'groups_all'}</font>\n";
print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;">
print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;' onkeyup=\"filter_match(this.value);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';}\"");
print "<hr></div>";
print "<table width=100%>\n";
my $cnt = 0;
foreach $u (&get_groups_list()) {
if ($in{'group'} eq $u->[0]) { print "<tr $cb>\n"; }
else { print "<tr>\n"; }
if ($in{'group'} eq $u->[0]) { print "<tr class='filter_match' $cb>\n"; }
else { print "<tr class='filter_match'>\n"; }
print "<td width=20%><a href=\"\" onClick='return addgroup(\"$u->[0]\", \"$u->[3]\")'>$u->[0]</a></td>\n";
print "<td>$u->[3]</td> </tr>\n";
$cnt++;
}
print "</table>\n";
if ( $cnt >= 10 ) {
print "<script type='text/javascript'>filter_match_box();</script>";
}
&popup_footer();
}
elsif ($in{'frame'} == 2) {
@@ -145,14 +160,23 @@ else {
print "return false;\n";
print "}\n";
print "</script>\n";
print "<script type='text/javascript' src='$gconfig{'webprefix'}/unauthenticated/filter_match.js'></script>";
print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;">
print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;' onkeyup=\"filter_match(this.value);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';}\"");
print "<hr></div>";
print "<table width=100%>\n";
my $cnt = 0;
foreach $u (&get_groups_list()) {
if ($in{'group'} eq $u->[0]) { print "<tr $cb>\n"; }
else { print "<tr>\n"; }
if ($in{'group'} eq $u->[0]) { print "<tr class='filter_match' $cb>\n"; }
else { print "<tr class='filter_match'>\n"; }
print "<td width=20%><a href=\"\" onClick='return select(\"$u->[0]\")'>$u->[0]</a></td>\n";
print "<td>$u->[3]</td> </tr>\n";
$cnt++;
}
print "</table>\n";
if ( $cnt >= 10 ) {
print "<script type='text/javascript'>filter_match_box();</script>";
}
&popup_footer();
}

1
lang/en Normal file → Executable file
View File

@@ -303,6 +303,7 @@ ui_edate=Invalid date
ui_etime=Invalid time
ui_paging=Showing rows $1 to $2 of $3
ui_rowlabel=$2 in row $1 :
ui_filterbox=Type to filter..
header_statusmsg=$1 logged into $2 $3 on $4 ($5)

View File

@@ -65,6 +65,8 @@ sub split_input
{
local @rv;
local $str = $_[0];
# remove '@' if smb.conf was manually edited
$str =~ s/(@)+//g;
while($str =~ /^\s*(\S*"[^"]+"\S*)(.*)$/ || $str =~ /^\s*(\S+)(.*)$/) {
push(@rv, $_[1].$1);
$str = $2;

View File

@@ -0,0 +1,70 @@
/* filter_match: show/hide table row when match string in achor tag (<a>)
* 28-Nov-2013: nawawi jamili <nawawi@rutweb.com>
*/
/* ie8 and below */
if ( !String.prototype.trim ) {
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,'');
};
};
function filter_match(str, _cname, _match) {
_cname = _cname || "filter_match";
_match = _match || false;
var show_hide = function(n,clear) {
clear = clear || false;
var ls = document.getElementsByTagName("tr");
if ( ls.length > 0 ) {
for(var x=0; x < ls.length; x++) {
var tt=ls[x];
var cl = tt.className;
if ( !_match && cl !== _cname ) continue;
if ( _match && cl.match(_cname) === null ) continue;
if ( n === null ) {
if ( clear ) {
tt.style.display='';
} else {
tt.style.display='none';
}
} else if ( x === n ) {
tt.style.display='';
}
}
}
};
str = str.trim();
if ( str !== '' ) {
show_hide(null,false);
var ls = document.getElementsByTagName("tr");
if ( ls.length > 0 ) {
for(var x=0; x < ls.length; x++) {
var cl = ls[x].className;
if ( !_match && cl !== _cname ) continue;
if ( _match && cl.match(_cname) === null ) continue;
var y = ls[x].getElementsByTagName("a");
for(var t=0; t < y.length; t++) {
var strm = y[t].innerHTML;
strm = strm.toLowerCase();
if ( strm.match(str.toLowerCase()) ) {
show_hide(x);
}
}
}
}
} else {
show_hide(null,true);
}
};
/* show/hide filter box */
function filter_match_box(show) {
show = show || true;
if ( true ) {
document.getElementsBy('filter_box').style.display='';
} else {
document.getElementsBy('filter_box').style.display='none';
}
};

View File

@@ -26,7 +26,13 @@ if ($in{'multi'}) {
for($i=0; $i<$len; $i++) {
print "sel[$i] = \"".
&quote_escape($ul[$i], '"')."\";\n";
@uinfo = getpwnam($ul[$i]);
# samba valid system user can start with @ + &
$gn = $ul[$i];
$gn =~ s/^(@|\+|&)+//g;
@uinfo = getpwnam($gn);
#@uinfo = getpwnam($ul[$i]);
if (@uinfo) {
print "selr[$i] = \"".
&quote_escape($uinfo[6])."\";\n";
@@ -57,16 +63,25 @@ if ($in{'multi'}) {
print "return false;\n";
print "}\n";
print "</script>\n";
print "<script type='text/javascript' src='$gconfig{'webprefix'}/unauthenticated/filter_match.js'></script>";
print "<font size=+1>$text{'users_all'}</font>\n";
print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;">
print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;' onkeyup=\"filter_match(this.value);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';}\"");
print "<hr></div>";
print "<table width=100%>\n";
my $cnt = 0;
foreach $u (&get_users_list()) {
if ($in{'user'} eq $u->[0]) { print "<tr $cb>\n"; }
else { print "<tr>\n"; }
if ($in{'user'} eq $u->[0]) { print "<tr class='filter_match' $cb>\n"; }
else { print "<tr class='filter_match'>\n"; }
$u->[6] =~ s/'/&#39;/g;
print "<td width=20%><a href=\"\" onClick='return adduser(\"$u->[0]\", \"$u->[6]\")'>$u->[0]</a></td>\n";
print "<td>$u->[6]</td> </tr>\n";
$cnt++;
}
print "</table>\n";
if ( $cnt >= 10 ) {
print "<script type='text/javascript'>filter_match_box();</script>";
}
&popup_footer();
}
elsif ($in{'frame'} == 2) {
@@ -137,14 +152,23 @@ else {
print "return false;\n";
print "}\n";
print "</script>\n";
print "<script type='text/javascript' src='$gconfig{'webprefix'}/unauthenticated/filter_match.js'></script>";
print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;">
print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;' onkeyup=\"filter_match(this.value);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';}\"");
print "<hr></div>";
print "<table width=100%>\n";
my $cnt = 0;
foreach $u (&get_users_list()) {
if ($in{'user'} eq $u->[0]) { print "<tr $cb>\n"; }
else { print "<tr>\n"; }
if ($in{'user'} eq $u->[0]) { print "<tr class='filter_match' $cb>\n"; }
else { print "<tr class='filter_match'>\n"; }
print "<td width=20%><a href=\"\" onClick='return select(\"$u->[0]\")'>$u->[0]</a></td>\n";
print "<td>$u->[6]</td> </tr>\n";
$cnt++;
}
print "</table>\n";
if ( $cnt >= 10 ) {
print "<script type='text/javascript'>filter_match_box();</script>";
}
&popup_footer();
}

View File

@@ -59,15 +59,24 @@ if ($in{'multi'}) {
print "return false;\n";
print "}\n";
print "</script>\n";
print "<script type='text/javascript' src='$gconfig{'webprefix'}/unauthenticated/filter_match.js'></script>";
print "<font size=+1>$text{'groups_all'}</font>\n";
print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;">
print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;' onkeyup=\"filter_match(this.value);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';}\"");
print "<hr></div>";
print "<table width=100%>\n";
my $cnt = 0;
foreach $u (&get_groups_list()) {
if ($in{'group'} eq $u->[0]) { print "<tr $cb>\n"; }
else { print "<tr>\n"; }
if ($in{'group'} eq $u->[0]) { print "<tr class='filter_match' $cb>\n"; }
else { print "<tr class='filter_match'>\n"; }
print "<td width=20%><a href=\"\" onClick='return addgroup(\"$u->[0]\", \"$u->[3]\")'>$u->[0]</a></td>\n";
print "<td>$u->[3]</td> </tr>\n";
$cnt++;
}
print "</table>\n";
if ( $cnt >= 10 ) {
print "<script type='text/javascript'>filter_match_box();</script>";
}
&popup_footer();
}
elsif ($in{'frame'} == 2) {
@@ -138,14 +147,23 @@ else {
print "return false;\n";
print "}\n";
print "</script>\n";
print "<script type='text/javascript' src='$gconfig{'webprefix'}/unauthenticated/filter_match.js'></script>";
print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;">
print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;' onkeyup=\"filter_match(this.value);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';}\"");
print "<hr></div>";
print "<table width=100%>\n";
my $cnt = 0;
foreach $u (&get_groups_list()) {
if ($in{'group'} eq $u->[0]) { print "<tr $cb>\n"; }
else { print "<tr>\n"; }
if ($in{'group'} eq $u->[0]) { print "<tr class='filter_match' $cb>\n"; }
else { print "<tr class='filter_match'>\n"; }
print "<td width=20%><a href=\"\" onClick='return select(\"$u->[0]\")'>".&html_escape($u->[0])."</a></td>\n";
print "<td>".&html_escape($u->[3])."</td> </tr>\n";
$cnt++;
}
print "</table>\n";
if ( $cnt >= 10 ) {
print "<script type='text/javascript'>filter_match_box();</script>";
}
&popup_footer();
}

View File

@@ -51,16 +51,25 @@ if ($in{'multi'}) {
print "return false;\n";
print "}\n";
print "</script>\n";
print "<script type='text/javascript' src='$gconfig{'webprefix'}/unauthenticated/filter_match.js'></script>";
print "<font size=+1>$text{'users_all'}</font>\n";
print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;">
print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;' onkeyup=\"filter_match(this.value);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';}\"");
print "<hr></div>";
print "<table width=100%>\n";
my $cnt = 0;
foreach $u (&get_users_list()) {
if ($in{'user'} eq $u->[0]) { print "<tr $cb>\n"; }
else { print "<tr>\n"; }
if ($in{'user'} eq $u->[0]) { print "<tr class='filter_match' $cb>\n"; }
else { print "<tr class='filter_match'>\n"; }
$u->[6] =~ s/'/&#39;/g;
print "<td width=20%><a href=\"\" onClick='return adduser(\"$u->[0]\", \"$u->[6]\")'>$u->[0]</a></td>\n";
print "<td>$u->[6]</td> </tr>\n";
$cnt++;
}
print "</table>\n";
if ( $cnt >= 10 ) {
print "<script type='text/javascript'>filter_match_box();</script>";
}
&popup_footer();
}
elsif ($in{'frame'} == 2) {
@@ -131,14 +140,23 @@ else {
print "return false;\n";
print "}\n";
print "</script>\n";
print "<script type='text/javascript' src='$gconfig{'webprefix'}/unauthenticated/filter_match.js'></script>";
print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;">
print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;' onkeyup=\"filter_match(this.value);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';}\"");
print "<hr></div>";
print "<table width=100%>\n";
my $cnt = 0;
foreach $u (&get_users_list()) {
if ($in{'user'} eq $u->[0]) { print "<tr $cb>\n"; }
else { print "<tr>\n"; }
if ($in{'user'} eq $u->[0]) { print "<tr class='filter_match' $cb>\n"; }
else { print "<tr class='filter_match'>\n"; }
print "<td width=20%><a href=\"\" onClick='return select(\"$u->[0]\")'>$u->[0]</a></td>\n";
print "<td>$u->[6]</td> </tr>\n";
$cnt++;
}
print "</table>\n";
if ( $cnt >= 10 ) {
print "<script type='text/javascript'>filter_match_box();</script>";
}
&popup_footer();
}

View File

@@ -9,6 +9,10 @@ if (!ref($mods)) {
print "<b>",&text('standard_failed', $mods),"</b><p>\n";
}
else {
print "<script type='text/javascript' src='$gconfig{'webprefix'}/unauthenticated/filter_match.js'></script>";
print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;">
print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;' onkeyup=\"filter_match(this.value,'row',true);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';}\"");
print "<hr></div>";
print "<b>$text{'standard_header'}</b><br>\n";
if ($mods->[0]->[1] > &get_webmin_version()) {
print &text('standard_warn', $mods->[0]->[1]),"<br>\n";
@@ -22,6 +26,7 @@ else {
print "}\n";
print "</script>\n";
@table = ( );
my $cnt = 0;
foreach $m (@$mods) {
my $minfo = { 'os_support' => $m->[3] };
next if (!&check_os_support($minfo));
@@ -29,8 +34,12 @@ else {
"<a href='' onClick='return select(\"$m->[0]\")'>$m->[0]</a>",
&html_escape($m->[4]),
]);
$cnt++;
}
print &ui_columns_table(undef, 100, \@table);
}
if ( $cnt >= 10 ) {
print "<script type='text/javascript'>filter_match_box();</script>";
}
&ui_print_footer();

View File

@@ -10,6 +10,10 @@ if (!ref($mods)) {
print "<b>",&text('third_failed', $mods),"</b><p>\n";
}
else {
print "<script type='text/javascript' src='$gconfig{'webprefix'}/unauthenticated/filter_match.js'></script>";
print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;">
print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;' onkeyup=\"filter_match(this.value,'row',true);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';}\"");
print "<hr></div>";
print "<b>$text{'third_header'}</b><br>\n";
print "<script>\n";
print "function select(f)\n";
@@ -20,14 +24,19 @@ else {
print "}\n";
print "</script>\n";
@table = ( );
my $cnt = 0;
foreach $m (@$mods) {
push(@table, [
"<a href='' onClick='return select(\"$m->[2]\")'>$m->[0]</a>",
$m->[1] eq "NONE" ? "" : &html_escape($m->[1]),
$m->[3],
]);
$cnt++;
}
print &ui_columns_table(undef, 100, \@table);
}
if ( $cnt >= 10 ) {
print "<script type='text/javascript'>filter_match_box();</script>";
}
&popup_footer();