mirror of
https://github.com/webmin/webmin.git
synced 2026-02-03 22:23:28 +00:00
Compare commits
576 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c8f403c5f6 | ||
|
|
162e181c21 | ||
|
|
7f73d135a3 | ||
|
|
65c2b20b15 | ||
|
|
457c4d85e3 | ||
|
|
57a918dc1b | ||
|
|
ee373ab2be | ||
|
|
fb26abb000 | ||
|
|
48bfce7cb1 | ||
|
|
b77193c95d | ||
|
|
3effb160b5 | ||
|
|
5881b223b4 | ||
|
|
0055290c76 | ||
|
|
253defe365 | ||
|
|
cd950f1c0a | ||
|
|
ded6d9a37f | ||
|
|
401ff8466a | ||
|
|
7de1f09c9f | ||
|
|
8f18e8cdf4 | ||
|
|
17cea3d3a2 | ||
|
|
60800e3b6b | ||
|
|
8c07bc9f30 | ||
|
|
0f8119a6d5 | ||
|
|
d40ff8a547 | ||
|
|
fb3524471a | ||
|
|
132fa7a16b | ||
|
|
0d87686862 | ||
|
|
4ec1e182d5 | ||
|
|
e6765ece27 | ||
|
|
e9376f3fc5 | ||
|
|
46f264e22c | ||
|
|
bb672844c7 | ||
|
|
0e8d291d63 | ||
|
|
c5a51403d1 | ||
|
|
6ed37aeef0 | ||
|
|
04f8997509 | ||
|
|
6bd51824d1 | ||
|
|
c4f74a0f9d | ||
|
|
357ab56b6d | ||
|
|
2af0b05c29 | ||
|
|
15bcab87c7 | ||
|
|
1c4afe2f11 | ||
|
|
7e72bcdbaf | ||
|
|
bbff90bea4 | ||
|
|
347b7e87cf | ||
|
|
085865ec9a | ||
|
|
bcd16e5ade | ||
|
|
613efe4ace | ||
|
|
a5ffa5e309 | ||
|
|
80170f9b80 | ||
|
|
1fef37a8a1 | ||
|
|
71949364be | ||
|
|
941f110eda | ||
|
|
2d4640f00a | ||
|
|
ce8e0411e4 | ||
|
|
d49c16cb31 | ||
|
|
f74c22a66d | ||
|
|
e59cac6f51 | ||
|
|
633d60900c | ||
|
|
d5b9cefb2c | ||
|
|
ac9a3b7c41 | ||
|
|
edccc4ea10 | ||
|
|
90d0244950 | ||
|
|
7ec8bc71e0 | ||
|
|
ecca77fdad | ||
|
|
265a775ccb | ||
|
|
91052e76b0 | ||
|
|
abba5c7377 | ||
|
|
6316210b9d | ||
|
|
fe6d99777e | ||
|
|
f8c1571e15 | ||
|
|
5870f40481 | ||
|
|
9c98a7f820 | ||
|
|
ce8e6bf481 | ||
|
|
90fc05e34a | ||
|
|
49ed6fc377 | ||
|
|
f818ead2db | ||
|
|
eb6b294bed | ||
|
|
30bf7beb02 | ||
|
|
8d6124321f | ||
|
|
ccc715a11e | ||
|
|
490b035f72 | ||
|
|
025be61e1e | ||
|
|
005857ccd1 | ||
|
|
31a5ec771d | ||
|
|
1ed25a0bbf | ||
|
|
a0db27968b | ||
|
|
1f516d66f5 | ||
|
|
f2b21bc503 | ||
|
|
7698818eec | ||
|
|
21fe9cddf7 | ||
|
|
bf3e1cb064 | ||
|
|
ff2976fd85 | ||
|
|
ecd98c0030 | ||
|
|
7fe32a5dce | ||
|
|
6a12fe7d23 | ||
|
|
08c55bac64 | ||
|
|
f4f9b32db0 | ||
|
|
6c366fd394 | ||
|
|
17f3235798 | ||
|
|
a0fd8f3694 | ||
|
|
d28761ce88 | ||
|
|
a9f6a4528f | ||
|
|
1e65d4b153 | ||
|
|
d80a0203bd | ||
|
|
bdcabcfbe9 | ||
|
|
2cc32ee64a | ||
|
|
ae85145e43 | ||
|
|
0cfe643700 | ||
|
|
147990a30a | ||
|
|
b4b309d6d7 | ||
|
|
b837846128 | ||
|
|
522bd05fff | ||
|
|
678f8ec6da | ||
|
|
a6983f8df7 | ||
|
|
5186ab8125 | ||
|
|
e9655ed5e9 | ||
|
|
9bd529fce4 | ||
|
|
21b516b52e | ||
|
|
7d1b4a66f4 | ||
|
|
8a1a182099 | ||
|
|
a6984f6be5 | ||
|
|
6d1900f94a | ||
|
|
0bc3eb6430 | ||
|
|
caa329d749 | ||
|
|
2e9039434b | ||
|
|
a4c8e4a7bb | ||
|
|
b0e9415d01 | ||
|
|
99e46e7e3f | ||
|
|
e223f899e5 | ||
|
|
20c9d9f0f1 | ||
|
|
e422ae0eaf | ||
|
|
40780e96b1 | ||
|
|
2f6e937f21 | ||
|
|
3eb49c27ed | ||
|
|
90196c3f88 | ||
|
|
2d7ba714ac | ||
|
|
fb4595b38d | ||
|
|
adfd154341 | ||
|
|
9f23977794 | ||
|
|
6a80732b71 | ||
|
|
88db96cf31 | ||
|
|
10cbab5fe8 | ||
|
|
a8a1cdc05b | ||
|
|
ad26beb5b4 | ||
|
|
3a2f028f7e | ||
|
|
566a07c477 | ||
|
|
e96c1cac11 | ||
|
|
379a5a00cd | ||
|
|
e7265843d3 | ||
|
|
ca93abc540 | ||
|
|
c446449496 | ||
|
|
bb07d2d1e7 | ||
|
|
3233f47cf2 | ||
|
|
e11e9dc86f | ||
|
|
8938385d67 | ||
|
|
3ca97055c4 | ||
|
|
ab17eff7cf | ||
|
|
b46a5ce93a | ||
|
|
2136ee98ec | ||
|
|
bee4a4029b | ||
|
|
cf1991d78d | ||
|
|
0df6939988 | ||
|
|
ed265ce71f | ||
|
|
eaba21745a | ||
|
|
af7b9c8fac | ||
|
|
ed9b044f91 | ||
|
|
5868988c89 | ||
|
|
54c14c668d | ||
|
|
315d517bc3 | ||
|
|
4b4176a40d | ||
|
|
f846fbd43b | ||
|
|
c51d78c804 | ||
|
|
46e629fb9b | ||
|
|
66f656a8db | ||
|
|
1db6880427 | ||
|
|
ff9bb29365 | ||
|
|
90d29e43cd | ||
|
|
1fed180246 | ||
|
|
d73b5d7926 | ||
|
|
411da84699 | ||
|
|
bda15c89da | ||
|
|
310d559b3b | ||
|
|
1fd1190da8 | ||
|
|
5b85401283 | ||
|
|
e98fd286f4 | ||
|
|
d54c1a22e0 | ||
|
|
62821c2f19 | ||
|
|
5cf1cad0be | ||
|
|
2951cec66e | ||
|
|
c9b0382b61 | ||
|
|
e999beed42 | ||
|
|
79f1c9368f | ||
|
|
8412a08be0 | ||
|
|
3887899f3e | ||
|
|
64f39bf8f4 | ||
|
|
0762e3866d | ||
|
|
7b181d742b | ||
|
|
db99121336 | ||
|
|
7560c4a41b | ||
|
|
a7f2a04351 | ||
|
|
962a4225f0 | ||
|
|
dc7d44f150 | ||
|
|
8d538fae68 | ||
|
|
e9f6416d80 | ||
|
|
ed65f6371d | ||
|
|
82380e1d32 | ||
|
|
1015f7b1b2 | ||
|
|
a76b0fbd53 | ||
|
|
e2419bfc15 | ||
|
|
89d5793316 | ||
|
|
1bd406d5c8 | ||
|
|
ef72775550 | ||
|
|
2f626485a6 | ||
|
|
e87dd429c9 | ||
|
|
0a3658400e | ||
|
|
b5602d93c6 | ||
|
|
cdf631f397 | ||
|
|
e25eae389f | ||
|
|
1eb43c8503 | ||
|
|
b0e94be6e3 | ||
|
|
901a64ea3a | ||
|
|
2ec766071b | ||
|
|
0c18c5f3f9 | ||
|
|
18f4da591f | ||
|
|
355d99d232 | ||
|
|
a214f413c5 | ||
|
|
a27441b24c | ||
|
|
80ee1c5919 | ||
|
|
0f3eb41489 | ||
|
|
d8f861b67e | ||
|
|
cffb3c5d61 | ||
|
|
545e9341ef | ||
|
|
7758195ae3 | ||
|
|
3d45568f37 | ||
|
|
577f5ac754 | ||
|
|
7915579de4 | ||
|
|
8f6e095091 | ||
|
|
f7c7c32427 | ||
|
|
a7ee17f5af | ||
|
|
b9e3a748c1 | ||
|
|
3ef8d17ed5 | ||
|
|
b29520e350 | ||
|
|
30569f5e28 | ||
|
|
2588a507cc | ||
|
|
1edcc12734 | ||
|
|
dd5183a0f9 | ||
|
|
dae494fdde | ||
|
|
1c9dc7b727 | ||
|
|
689837875f | ||
|
|
de1c3b187f | ||
|
|
b8951b3f7d | ||
|
|
7ac845a01b | ||
|
|
c76f0720cf | ||
|
|
f9bbe37763 | ||
|
|
238f8ce2d9 | ||
|
|
962b43d0d3 | ||
|
|
e5769bd07b | ||
|
|
2e64eac747 | ||
|
|
a902884e51 | ||
|
|
fd46a3af4a | ||
|
|
4a2e1188ac | ||
|
|
8a761c2075 | ||
|
|
29d607ad22 | ||
|
|
c207f75647 | ||
|
|
2620e2cf4a | ||
|
|
d0d5806957 | ||
|
|
cd904e9a73 | ||
|
|
2d3c81075d | ||
|
|
f3a5631c04 | ||
|
|
a6b71554c5 | ||
|
|
f219c7eb2f | ||
|
|
fc41316071 | ||
|
|
bdd0b819d5 | ||
|
|
5afb921074 | ||
|
|
98677fd304 | ||
|
|
5a994bd40a | ||
|
|
13f01b3f9e | ||
|
|
c222dac785 | ||
|
|
b1d471fac4 | ||
|
|
c7554ac611 | ||
|
|
38876ff52e | ||
|
|
ba53820a46 | ||
|
|
b828a6b5c6 | ||
|
|
92a66b5159 | ||
|
|
e66234b1b3 | ||
|
|
553e436c54 | ||
|
|
ce3b84b118 | ||
|
|
c22919849e | ||
|
|
3fe4bc337a | ||
|
|
320d63ba2a | ||
|
|
4d79a24158 | ||
|
|
a53b6d96ca | ||
|
|
b0c779923f | ||
|
|
a0bd54ab69 | ||
|
|
f32aa17317 | ||
|
|
24cca0d258 | ||
|
|
52af4d489a | ||
|
|
262bbd3e03 | ||
|
|
6880e5a575 | ||
|
|
3efec7d052 | ||
|
|
004c9194f3 | ||
|
|
2f95715827 | ||
|
|
2b212ee3ef | ||
|
|
cc4b757011 | ||
|
|
d766283296 | ||
|
|
2e6771e53a | ||
|
|
db5cb64c4a | ||
|
|
aca8568382 | ||
|
|
aad92595a9 | ||
|
|
caf2f2ac37 | ||
|
|
b7815aa85e | ||
|
|
31bd465921 | ||
|
|
44216dbab9 | ||
|
|
a43730fe49 | ||
|
|
6e005a1106 | ||
|
|
312cc48597 | ||
|
|
c0292a4df8 | ||
|
|
c1e3f77c09 | ||
|
|
772a604203 | ||
|
|
1426db5b17 | ||
|
|
3d35792877 | ||
|
|
a3fddd0f12 | ||
|
|
f54cecaf0f | ||
|
|
df32d33da5 | ||
|
|
cf1b514976 | ||
|
|
0d452693c5 | ||
|
|
a0fc500676 | ||
|
|
846f023392 | ||
|
|
6f6482005e | ||
|
|
9012d421cf | ||
|
|
8b015bff01 | ||
|
|
16c35e2d1e | ||
|
|
9860c6b6e4 | ||
|
|
7216982ded | ||
|
|
126659a8d1 | ||
|
|
0b27152141 | ||
|
|
f20d24a1be | ||
|
|
728b8125de | ||
|
|
7a95702ca2 | ||
|
|
83a1893c7b | ||
|
|
bc23507717 | ||
|
|
a054392f7a | ||
|
|
d56fb1d1e9 | ||
|
|
7a270465d3 | ||
|
|
99e62cd67a | ||
|
|
ba8b0e8972 | ||
|
|
1bc09c40b6 | ||
|
|
f38f3c7bec | ||
|
|
9f293451b9 | ||
|
|
3d6e58dcba | ||
|
|
1cfe6b90d7 | ||
|
|
23aef652a7 | ||
|
|
74ca08fd42 | ||
|
|
1c0e069881 | ||
|
|
80be0a3c4c | ||
|
|
074f7561d8 | ||
|
|
b5b81a95cf | ||
|
|
86eeb96334 | ||
|
|
ae15622a57 | ||
|
|
094a187d54 | ||
|
|
d44c46425f | ||
|
|
bd93dbe9f0 | ||
|
|
b5990ef9fb | ||
|
|
fe6965d1e2 | ||
|
|
c23445a223 | ||
|
|
9da5454082 | ||
|
|
a405b317e3 | ||
|
|
0237dd2a0f | ||
|
|
6e38d8bc8c | ||
|
|
e934994e8f | ||
|
|
232facbf39 | ||
|
|
293d9e17ff | ||
|
|
c00971b390 | ||
|
|
3d5e013f59 | ||
|
|
fd3f6c729f | ||
|
|
5d0f6f0597 | ||
|
|
0a2be8ecfd | ||
|
|
a9a6d51030 | ||
|
|
199f5edb9e | ||
|
|
ce698f5bae | ||
|
|
e27da435ff | ||
|
|
5c31829dc7 | ||
|
|
4ac4a2be0a | ||
|
|
00c632b001 | ||
|
|
3a590ddf6f | ||
|
|
667362c82a | ||
|
|
20862dca92 | ||
|
|
b5b45960a5 | ||
|
|
601b234126 | ||
|
|
f2de59b1df | ||
|
|
d61fb46c74 | ||
|
|
7fc27fdcdd | ||
|
|
95d025a5b1 | ||
|
|
83ee80c675 | ||
|
|
d4ef81f6b2 | ||
|
|
2e76243908 | ||
|
|
97e1ad4c50 | ||
|
|
a4f67548f2 | ||
|
|
442c8a623b | ||
|
|
4bb2ebb84e | ||
|
|
07772b29f6 | ||
|
|
1e95673391 | ||
|
|
f8982ddf4f | ||
|
|
3ce61adcc0 | ||
|
|
98ff989bb9 | ||
|
|
204d7d30b6 | ||
|
|
7ef105ea01 | ||
|
|
96e31eb5a2 | ||
|
|
1668f6f77e | ||
|
|
0287e53229 | ||
|
|
173efa83df | ||
|
|
a4cb099b3f | ||
|
|
e0731515d7 | ||
|
|
d3fc96827d | ||
|
|
452224a24d | ||
|
|
69fd79e2b3 | ||
|
|
fa8654714a | ||
|
|
28888930e7 | ||
|
|
7e2b4e6c5e | ||
|
|
c613cdc8c9 | ||
|
|
b05a2794d8 | ||
|
|
997b33e5fb | ||
|
|
a1a86cfa42 | ||
|
|
475870db79 | ||
|
|
9189c1446a | ||
|
|
ad9c2ec0f9 | ||
|
|
e395cf951e | ||
|
|
1fcb3129f5 | ||
|
|
c5fe632e4e | ||
|
|
c176073339 | ||
|
|
27c7872c94 | ||
|
|
915b6ec224 | ||
|
|
f3a393b2f8 | ||
|
|
e529789543 | ||
|
|
5a20e411fc | ||
|
|
7ef6ea921a | ||
|
|
63b6af8dd4 | ||
|
|
a103a0b10f | ||
|
|
f2374b1fa2 | ||
|
|
40a90f7c71 | ||
|
|
46d7022cc9 | ||
|
|
7efcd84bda | ||
|
|
0e64774db3 | ||
|
|
e9a08bb3bb | ||
|
|
e2df09438a | ||
|
|
63830dd456 | ||
|
|
d4b401e913 | ||
|
|
a889ef3afc | ||
|
|
5f686de889 | ||
|
|
9fcaa65ef4 | ||
|
|
8bd1b626dd | ||
|
|
cf771963c7 | ||
|
|
4912384cd7 | ||
|
|
124d182bf6 | ||
|
|
e972b65393 | ||
|
|
9d0d796469 | ||
|
|
1456825ed4 | ||
|
|
9670fb69cc | ||
|
|
0dd18f3f77 | ||
|
|
21eb487ebb | ||
|
|
72cd4b3a4e | ||
|
|
8e2815dabe | ||
|
|
581047a965 | ||
|
|
1db718fd95 | ||
|
|
04dd39842d | ||
|
|
72d103ea2e | ||
|
|
8163db111a | ||
|
|
55ea719197 | ||
|
|
116cd4162d | ||
|
|
6791b6895f | ||
|
|
2b082de03d | ||
|
|
6ad0df49e1 | ||
|
|
a9e3582190 | ||
|
|
5db95b1e27 | ||
|
|
575f169b93 | ||
|
|
efb8150510 | ||
|
|
10f12a83c6 | ||
|
|
3243948e59 | ||
|
|
1cf382deab | ||
|
|
785cc54ddc | ||
|
|
d2e52c81d4 | ||
|
|
081036d8f6 | ||
|
|
64656b6f24 | ||
|
|
f5ccedfe5b | ||
|
|
85a9056ee8 | ||
|
|
0291ce2e66 | ||
|
|
51a0631bde | ||
|
|
7eec607f86 | ||
|
|
4cbffaa875 | ||
|
|
1f5c860698 | ||
|
|
480f0f0955 | ||
|
|
80ecd012cf | ||
|
|
5e042e7f51 | ||
|
|
e780c2fa1c | ||
|
|
f94faaf303 | ||
|
|
9d2f479e6c | ||
|
|
e7b4985fc5 | ||
|
|
a2816947b1 | ||
|
|
004a888071 | ||
|
|
6041a45e83 | ||
|
|
695577a40e | ||
|
|
bcbd707307 | ||
|
|
c237e851f6 | ||
|
|
629f7e033b | ||
|
|
a59cd42151 | ||
|
|
9ed6338db6 | ||
|
|
f98e8e3398 | ||
|
|
bcc4822e0e | ||
|
|
c45980160a | ||
|
|
8a1446ab2c | ||
|
|
c0500ee0a0 | ||
|
|
a8036120b9 | ||
|
|
6b3b7096ea | ||
|
|
747ea46c54 | ||
|
|
90d2da3588 | ||
|
|
2fd5b42b60 | ||
|
|
3111fb4bd0 | ||
|
|
2990aaaa99 | ||
|
|
baef8aba0f | ||
|
|
46c2113f2f | ||
|
|
f11ef10942 | ||
|
|
30597f6c38 | ||
|
|
167239f8fc | ||
|
|
16fa5c5bec | ||
|
|
319a3b4d84 | ||
|
|
a3fa53727d | ||
|
|
e9640d7622 | ||
|
|
7ba7a75df1 | ||
|
|
10b9916097 | ||
|
|
5bbfbc4a36 | ||
|
|
f4a7048fd9 | ||
|
|
9c63d0c352 | ||
|
|
ff08544347 | ||
|
|
4265e07b4e | ||
|
|
f06270fca1 | ||
|
|
350bd60cc5 | ||
|
|
b001855672 | ||
|
|
bb98a1af45 | ||
|
|
9040c26581 | ||
|
|
5d0411b789 | ||
|
|
fb842fbeda | ||
|
|
2d18903ac6 | ||
|
|
d19f95c65d | ||
|
|
35c65587ba | ||
|
|
cd34c5450e | ||
|
|
4fe4d935a1 | ||
|
|
0229cc5c8e | ||
|
|
fd719dbf47 | ||
|
|
e5b05b4e2b | ||
|
|
a948c6d938 | ||
|
|
d032b22ac3 | ||
|
|
a23867f019 | ||
|
|
e564acbbf9 | ||
|
|
b4617d7c1c | ||
|
|
cc217d3044 | ||
|
|
8a86381d6e | ||
|
|
1cf689e931 | ||
|
|
5000eddb37 | ||
|
|
be4cf27e12 | ||
|
|
44ef858725 | ||
|
|
c18bbbee4c | ||
|
|
769b7d82f0 | ||
|
|
9b3513b148 | ||
|
|
882588d815 | ||
|
|
38bbcf1196 | ||
|
|
c7d2d2a78a | ||
|
|
b2716fc22d | ||
|
|
2f98174db7 | ||
|
|
2f031a1a02 | ||
|
|
97e7ddafd7 | ||
|
|
650c06300a | ||
|
|
9a7ec78cc0 | ||
|
|
8d5109718b | ||
|
|
0358fb2795 | ||
|
|
0f754b170b |
@@ -228,3 +228,5 @@ More German translation updates, thanks to Raymond Vetter.
|
||||
Fixed an XSS bug that allowed xmlrpc.cgi to be abused by a malicious link.
|
||||
---- Changes since 1.760 ----
|
||||
For new installs, switched the location of data files in many modules to /var/webmin instead of /etc/webmin.
|
||||
---- Changes since 1.790 ----
|
||||
Added a recent logins section to the System Information page.
|
||||
|
||||
2
README
2
README
@@ -1,4 +1,4 @@
|
||||
Webmin Version 1.780
|
||||
Webmin Version 1.810
|
||||
--------------------
|
||||
Webmin is a web-based interface for system administration for Unix.
|
||||
Using any browser that supports tables and forms, you can setup user
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
use Webmin::Page;
|
||||
use Webmin::ResultPage;
|
||||
use Webmin::ErrorPage;
|
||||
use Webmin::ConfirmPage;
|
||||
use Webmin::Form;
|
||||
use Webmin::Section;
|
||||
use Webmin::Textbox;
|
||||
use Webmin::OptTextbox;
|
||||
use Webmin::OptTextarea;
|
||||
use Webmin::Submit;
|
||||
use Webmin::Password;
|
||||
use Webmin::Checkbox;
|
||||
use Webmin::Select;
|
||||
use Webmin::Radios;
|
||||
use Webmin::Checkboxes;
|
||||
use Webmin::Table;
|
||||
use Webmin::Menu;
|
||||
use Webmin::LinkTable;
|
||||
use Webmin::Tabs;
|
||||
use Webmin::Textarea;
|
||||
use Webmin::Upload;
|
||||
use Webmin::DynamicText;
|
||||
use Webmin::DynamicBar;
|
||||
use Webmin::DynamicWait;
|
||||
use Webmin::DynamicHTML;
|
||||
use Webmin::Properties;
|
||||
use Webmin::User;
|
||||
use Webmin::Group;
|
||||
use Webmin::File;
|
||||
use Webmin::Button;
|
||||
use Webmin::JavascriptButton;
|
||||
use Webmin::PlainText;
|
||||
use Webmin::Multiline;
|
||||
use Webmin::Date;
|
||||
use Webmin::Time;
|
||||
use Webmin::TitleList;
|
||||
use Webmin::Columns;
|
||||
use Webmin::Icon;
|
||||
use Webmin::TableAction;
|
||||
use Webmin::InputTable;
|
||||
use WebminCore;
|
||||
|
||||
1;
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
package Webmin::ResultPage;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::ResultPage(subheading, title, message, [help-name])
|
||||
Create a new page object for showing some success message.
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::ResultPage::new) &&
|
||||
caller() !~ /Webmin::Theme::ResultPage/) {
|
||||
return new Webmin::Theme::ResultPage(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $subheading, $title, $message, $help) = @_;
|
||||
$self = new Webmin::Page($subheading, $title, $help);
|
||||
$self->add_message("<b>$message</b>");
|
||||
return $self;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
44
WebminUI/All.pm
Normal file
44
WebminUI/All.pm
Normal file
@@ -0,0 +1,44 @@
|
||||
use WebminUI::Page;
|
||||
use WebminUI::ResultPage;
|
||||
use WebminUI::ErrorPage;
|
||||
use WebminUI::ConfirmPage;
|
||||
use WebminUI::Form;
|
||||
use WebminUI::Section;
|
||||
use WebminUI::Textbox;
|
||||
use WebminUI::OptTextbox;
|
||||
use WebminUI::OptTextarea;
|
||||
use WebminUI::Submit;
|
||||
use WebminUI::Password;
|
||||
use WebminUI::Checkbox;
|
||||
use WebminUI::Select;
|
||||
use WebminUI::Radios;
|
||||
use WebminUI::Checkboxes;
|
||||
use WebminUI::Table;
|
||||
use WebminUI::Menu;
|
||||
use WebminUI::LinkTable;
|
||||
use WebminUI::Tabs;
|
||||
use WebminUI::Textarea;
|
||||
use WebminUI::Upload;
|
||||
use WebminUI::DynamicText;
|
||||
use WebminUI::DynamicBar;
|
||||
use WebminUI::DynamicWait;
|
||||
use WebminUI::DynamicHTML;
|
||||
use WebminUI::Properties;
|
||||
use WebminUI::User;
|
||||
use WebminUI::Group;
|
||||
use WebminUI::File;
|
||||
use WebminUI::Button;
|
||||
use WebminUI::JavascriptButton;
|
||||
use WebminUI::PlainText;
|
||||
use WebminUI::Multiline;
|
||||
use WebminUI::Date;
|
||||
use WebminUI::Time;
|
||||
use WebminUI::TitleList;
|
||||
use WebminUI::Columns;
|
||||
use WebminUI::Icon;
|
||||
use WebminUI::TableAction;
|
||||
use WebminUI::InputTable;
|
||||
use WebminCore;
|
||||
|
||||
1;
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
package Webmin::Button;
|
||||
use Webmin::Input;
|
||||
package WebminUI::Button;
|
||||
use WebminUI::Input;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Input" );
|
||||
@ISA = ( "WebminUI::Input" );
|
||||
|
||||
=head2 new Webmin::Button(cgi, label, [name])
|
||||
=head2 new WebminUI::Button(cgi, label, [name])
|
||||
Creates a button that when clicked will link to some other page
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Button::new) &&
|
||||
caller() !~ /Webmin::Theme::Button/) {
|
||||
return new Webmin::Theme::Button(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Button::new) &&
|
||||
caller() !~ /WebminUI::Theme::Button/) {
|
||||
return new WebminUI::Theme::Button(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $cgi, $value, $name) = @_;
|
||||
$self = { };
|
||||
@@ -1,15 +1,15 @@
|
||||
package Webmin::Checkbox;
|
||||
use Webmin::Input;
|
||||
package WebminUI::Checkbox;
|
||||
use WebminUI::Input;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Input" );
|
||||
@ISA = ( "WebminUI::Input" );
|
||||
|
||||
=head2 new Webmin::Checkbox(name, return, label, checked, [disabled])
|
||||
=head2 new WebminUI::Checkbox(name, return, label, checked, [disabled])
|
||||
Create a single checkbox field
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Checkbox::new)) {
|
||||
return new Webmin::Theme::Checkbox(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Checkbox::new)) {
|
||||
return new WebminUI::Theme::Checkbox(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $return, $label, $checked, $disabled) = @_;
|
||||
$self = { };
|
||||
@@ -1,15 +1,15 @@
|
||||
package Webmin::Checkboxes;
|
||||
use Webmin::Input;
|
||||
package WebminUI::Checkboxes;
|
||||
use WebminUI::Input;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Input" );
|
||||
@ISA = ( "WebminUI::Input" );
|
||||
|
||||
=head2 new Webmin::Checkboxes(name, value|&values, &options, [disabled])
|
||||
=head2 new WebminUI::Checkboxes(name, value|&values, &options, [disabled])
|
||||
Create a list of checkboxes, of which zero or more may be selected
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Checkboxes::new)) {
|
||||
return new Webmin::Theme::Checkboxes(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Checkboxes::new)) {
|
||||
return new WebminUI::Theme::Checkboxes(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $value, $options, $disabled) = @_;
|
||||
$self = { };
|
||||
@@ -1,14 +1,14 @@
|
||||
package Webmin::Columns;
|
||||
package WebminUI::Columns;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::Columns(cols)
|
||||
=head2 new WebminUI::Columns(cols)
|
||||
Displays some page elements in a multi-column table
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
my ($self, $cols) = @_;
|
||||
if (defined(&Webmin::Theme::Columns::new)) {
|
||||
return new Webmin::Theme::Columns(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Columns::new)) {
|
||||
return new WebminUI::Theme::Columns(@_[1..$#_]);
|
||||
}
|
||||
$self = { 'columns' => 2 };
|
||||
bless($self);
|
||||
@@ -43,7 +43,7 @@ return $rv;
|
||||
}
|
||||
|
||||
=head2 add(object)
|
||||
Adds some Webmin:: object to this list
|
||||
Adds some WebminUI:: object to this list
|
||||
=cut
|
||||
sub add
|
||||
{
|
||||
@@ -66,7 +66,7 @@ my ($self) = @_;
|
||||
return $self->{'columns'};
|
||||
}
|
||||
|
||||
=head2 set_page(Webmin::Page)
|
||||
=head2 set_page(WebminUI::Page)
|
||||
Called when this menu is added to a page
|
||||
=cut
|
||||
sub set_page
|
||||
@@ -1,23 +1,23 @@
|
||||
package Webmin::ConfirmPage;
|
||||
use Webmin::Page;
|
||||
package WebminUI::ConfirmPage;
|
||||
use WebminUI::Page;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Page" );
|
||||
@ISA = ( "WebminUI::Page" );
|
||||
|
||||
=head2 new Webmin::ConfirmPage(subheading, title, message, cgi, &in, [ok-message],
|
||||
=head2 new WebminUI::ConfirmPage(subheading, title, message, cgi, &in, [ok-message],
|
||||
[cancel-message], [help-name])
|
||||
Create a new page object that asks if the user is sure if he wants to
|
||||
do something or not.
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::ConfirmPage::new)) {
|
||||
return new Webmin::Theme::ConfirmPage(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::ConfirmPage::new)) {
|
||||
return new WebminUI::Theme::ConfirmPage(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $subheading, $title, $message, $cgi, $in, $ok, $cancel, $help) = @_;
|
||||
$self = new Webmin::Page($subheading, $title, $help);
|
||||
$self = new WebminUI::Page($subheading, $title, $help);
|
||||
$self->{'in'} = $in;
|
||||
$self->add_message($message);
|
||||
my $form = new Webmin::Form($cgi, "get");
|
||||
my $form = new WebminUI::Form($cgi, "get");
|
||||
$form->set_input($in);
|
||||
$self->add_form($form);
|
||||
foreach my $i (keys %$in) {
|
||||
@@ -25,8 +25,8 @@ foreach my $i (keys %$in) {
|
||||
$form->add_hidden($i, $v);
|
||||
}
|
||||
}
|
||||
$form->add_button(new Webmin::Submit($ok || "OK", "ui_confirm"));
|
||||
$form->add_button(new Webmin::Submit($cancel || $text{'cancel'}, "ui_cancel"));
|
||||
$form->add_button(new WebminUI::Submit($ok || "OK", "ui_confirm"));
|
||||
$form->add_button(new WebminUI::Submit($cancel || $text{'cancel'}, "ui_cancel"));
|
||||
bless($self);
|
||||
return $self;
|
||||
}
|
||||
@@ -1,16 +1,16 @@
|
||||
package Webmin::Date;
|
||||
use Webmin::Input;
|
||||
package WebminUI::Date;
|
||||
use WebminUI::Input;
|
||||
use Time::Local;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Input" );
|
||||
@ISA = ( "WebminUI::Input" );
|
||||
|
||||
=head2 new Webmin::Date(name, time, [disabled])
|
||||
=head2 new WebminUI::Date(name, time, [disabled])
|
||||
Create a new field for selecting a date
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Date::new)) {
|
||||
return new Webmin::Theme::Date(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Date::new)) {
|
||||
return new WebminUI::Theme::Date(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $value, $disabled) = @_;
|
||||
bless($self = { });
|
||||
@@ -1,7 +1,7 @@
|
||||
package Webmin::DynamicBar;
|
||||
package WebminUI::DynamicBar;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::DynamicBar(&start-function, max)
|
||||
=head2 new WebminUI::DynamicBar(&start-function, max)
|
||||
A page element for displaying progress towards some goal, like the download of
|
||||
a file.
|
||||
=cut
|
||||
@@ -91,7 +91,7 @@ my ($self) = @_;
|
||||
return $self->{'wait'};
|
||||
}
|
||||
|
||||
=head2 set_page(Webmin::Page)
|
||||
=head2 set_page(WebminUI::Page)
|
||||
Called when this dynamic text box is added to a page
|
||||
=cut
|
||||
sub set_page
|
||||
@@ -1,7 +1,7 @@
|
||||
package Webmin::DynamicHTML;
|
||||
package WebminUI::DynamicHTML;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::DynamicHTML(&function, &args, [before])
|
||||
=head2 new WebminUI::DynamicHTML(&function, &args, [before])
|
||||
When the page is being rendered, executes the given function and prints any
|
||||
text that it returns.
|
||||
=cut
|
||||
@@ -63,7 +63,7 @@ sub needs_unbuffered
|
||||
return 1;
|
||||
}
|
||||
|
||||
=head2 set_page(Webmin::Page)
|
||||
=head2 set_page(WebminUI::Page)
|
||||
Called when this dynamic HTML element is added to a page
|
||||
=cut
|
||||
sub set_page
|
||||
@@ -1,8 +1,8 @@
|
||||
# XXX should support non-Javascript mode?
|
||||
package Webmin::DynamicText;
|
||||
package WebminUI::DynamicText;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::DynamicText(&start-function, &args)
|
||||
=head2 new WebminUI::DynamicText(&start-function, &args)
|
||||
A page element for displaying text that takes time to generate, such as from
|
||||
a long-running script. Uses a non-editable text box, updated via Javascript.
|
||||
The function will be called when it is time to start producing output, with this
|
||||
@@ -90,7 +90,7 @@ my ($self) = @_;
|
||||
return $self->{'wait'};
|
||||
}
|
||||
|
||||
=head2 set_page(Webmin::Page)
|
||||
=head2 set_page(WebminUI::Page)
|
||||
Called when this dynamic text box is added to a page
|
||||
=cut
|
||||
sub set_page
|
||||
@@ -1,7 +1,7 @@
|
||||
package Webmin::DynamicWait;
|
||||
package WebminUI::DynamicWait;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::DynamicWait(&start-function, [&args])
|
||||
=head2 new WebminUI::DynamicWait(&start-function, [&args])
|
||||
A page element indicating that something is happening.
|
||||
=cut
|
||||
sub new
|
||||
@@ -99,7 +99,7 @@ my ($self) = @_;
|
||||
return $self->{'wait'};
|
||||
}
|
||||
|
||||
=head2 set_page(Webmin::Page)
|
||||
=head2 set_page(WebminUI::Page)
|
||||
Called when this dynamic text box is added to a page
|
||||
=cut
|
||||
sub set_page
|
||||
@@ -1,16 +1,16 @@
|
||||
package Webmin::ErrorPage;
|
||||
package WebminUI::ErrorPage;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::ErrorPage(subheading, title, message, [program-output], [help-name])
|
||||
=head2 new WebminUI::ErrorPage(subheading, title, message, [program-output], [help-name])
|
||||
Create a new page object for showing an error of some kind
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::ErrorPage::new)) {
|
||||
return new Webmin::Theme::ErrorPage(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::ErrorPage::new)) {
|
||||
return new WebminUI::Theme::ErrorPage(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $subheading, $title, $message, $output, $help) = @_;
|
||||
$self = new Webmin::Page($subheading, $title, $help);
|
||||
$self = new WebminUI::Page($subheading, $title, $help);
|
||||
$self->add_message("<b>",$text{'error'}," : ",$message,"</b>");
|
||||
$self->add_message("<pre>",$output,"</pre>");
|
||||
return $self;
|
||||
@@ -1,18 +1,18 @@
|
||||
package Webmin::File;
|
||||
use Webmin::Textbox;
|
||||
package WebminUI::File;
|
||||
use WebminUI::Textbox;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Textbox" );
|
||||
@ISA = ( "WebminUI::Textbox" );
|
||||
|
||||
=head2 new Webmin::File(name, value, size, [directory], [disabled])
|
||||
=head2 new WebminUI::File(name, value, size, [directory], [disabled])
|
||||
A text box for selecting a file
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::File::new)) {
|
||||
return new Webmin::Theme::File(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::File::new)) {
|
||||
return new WebminUI::Theme::File(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $value, $size, $directory, $disabled) = @_;
|
||||
$self = new Webmin::Textbox($name, $value, $size, $disabled);
|
||||
$self = new WebminUI::Textbox($name, $value, $size, $disabled);
|
||||
bless($self);
|
||||
$self->set_directory($directory);
|
||||
return $self;
|
||||
@@ -24,7 +24,7 @@ Returns the HTML for this file input
|
||||
sub html
|
||||
{
|
||||
my ($self) = @_;
|
||||
my $rv = Webmin::Textbox::html($self);
|
||||
my $rv = WebminUI::Textbox::html($self);
|
||||
my $name = $self->get_name();
|
||||
my $directory = $self->get_directory();
|
||||
my $add = 0;
|
||||
@@ -1,13 +1,13 @@
|
||||
package Webmin::Form;
|
||||
package WebminUI::Form;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::Form(cgi, [method])
|
||||
=head2 new WebminUI::Form(cgi, [method])
|
||||
Creates a new form, which submits to the given CGI
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Form::new)) {
|
||||
return new Webmin::Theme::Form(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Form::new)) {
|
||||
return new WebminUI::Theme::Form(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $program, $method) = @_;
|
||||
$self = { 'method' => 'get',
|
||||
@@ -102,7 +102,7 @@ return "<form action='$self->{'program'}' ".
|
||||
}
|
||||
|
||||
=head2 add_section(section)
|
||||
Adds a Webmin::Section object to this form
|
||||
Adds a WebminUI::Section object to this form
|
||||
=cut
|
||||
sub add_section
|
||||
{
|
||||
@@ -120,7 +120,7 @@ return $self->{'sections'}->[$idx];
|
||||
}
|
||||
|
||||
=head2 add_button(button, [beside, ...])
|
||||
Adds a Webmin::Submit object to this form, for display at the bottom
|
||||
Adds a WebminUI::Submit object to this form, for display at the bottom
|
||||
=cut
|
||||
sub add_button
|
||||
{
|
||||
@@ -312,7 +312,7 @@ foreach my $i ($self->list_inputs()) {
|
||||
return @dis;
|
||||
}
|
||||
|
||||
=head2 set_page(Webmin::Page)
|
||||
=head2 set_page(WebminUI::Page)
|
||||
Called when this form is added to a page
|
||||
=cut
|
||||
sub set_page
|
||||
@@ -1,18 +1,18 @@
|
||||
package Webmin::Group;
|
||||
use Webmin::Textbox;
|
||||
package WebminUI::Group;
|
||||
use WebminUI::Textbox;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Textbox" );
|
||||
@ISA = ( "WebminUI::Textbox" );
|
||||
|
||||
=head2 new Webmin::Group(name, value, [multiple], [disabled])
|
||||
=head2 new WebminUI::Group(name, value, [multiple], [disabled])
|
||||
A text box for entering or selecting one or many Unix groupnames
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Group::new)) {
|
||||
return new Webmin::Theme::Group(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Group::new)) {
|
||||
return new WebminUI::Theme::Group(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $value, $multiple, $disabled) = @_;
|
||||
$self = new Webmin::Textbox($name, $value, $multiple ? 40 : 15, $disabled);
|
||||
$self = new WebminUI::Textbox($name, $value, $multiple ? 40 : 15, $disabled);
|
||||
bless($self);
|
||||
$self->set_multiple($multiple);
|
||||
return $self;
|
||||
@@ -24,7 +24,7 @@ Returns the HTML for this group input
|
||||
sub html
|
||||
{
|
||||
my ($self) = @_;
|
||||
my $rv = Webmin::Textbox::html($self);
|
||||
my $rv = WebminUI::Textbox::html($self);
|
||||
my $name = $self->get_name();
|
||||
my $multiple = $self->get_multiple();
|
||||
local $w = $multiple ? 500 : 300;
|
||||
@@ -1,7 +1,7 @@
|
||||
package Webmin::Icon;
|
||||
package WebminUI::Icon;
|
||||
use WebminCore;
|
||||
|
||||
=head2 Webmin::Icon(type, [message])
|
||||
=head2 WebminUI::Icon(type, [message])
|
||||
This object generates an icon indicating some status. Possible types are :
|
||||
ok - OK
|
||||
critial - A serious problem
|
||||
@@ -11,8 +11,8 @@ Can be used inside tables and property lists
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Icon::new) && caller() !~ /Webmin::Theme::Icon/) {
|
||||
return new Webmin::Theme::Icon(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Icon::new) && caller() !~ /WebminUI::Theme::Icon/) {
|
||||
return new WebminUI::Theme::Icon(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $type, $message) = @_;
|
||||
$self = { };
|
||||
@@ -1,4 +1,4 @@
|
||||
package Webmin::Input;
|
||||
package WebminUI::Input;
|
||||
use WebminCore;
|
||||
|
||||
sub set_form
|
||||
@@ -1,19 +1,19 @@
|
||||
package Webmin::InputTable;
|
||||
use Webmin::Table;
|
||||
package WebminUI::InputTable;
|
||||
use WebminUI::Table;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Table" );
|
||||
@ISA = ( "WebminUI::Table" );
|
||||
|
||||
=head2 new Webmin::InputTable(&headings, [width], [name], [heading])
|
||||
=head2 new WebminUI::InputTable(&headings, [width], [name], [heading])
|
||||
A table containing multiple rows of inputs, each of which is the same
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::InputTable::new) &&
|
||||
caller() !~ /Webmin::Theme::InputTable/) {
|
||||
return new Webmin::Theme::InputTable(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::InputTable::new) &&
|
||||
caller() !~ /WebminUI::Theme::InputTable/) {
|
||||
return new WebminUI::Theme::InputTable(@_[1..$#_]);
|
||||
}
|
||||
my $self = defined(&Webmin::Theme::Table::new) ? Webmin::Theme::Table::new(@_)
|
||||
: Webmin::Table::new(@_);
|
||||
my $self = defined(&WebminUI::Theme::Table::new) ? WebminUI::Theme::Table::new(@_)
|
||||
: WebminUI::Table::new(@_);
|
||||
bless($self);
|
||||
$self->{'rowcount'} = 0;
|
||||
return $self;
|
||||
@@ -56,7 +56,7 @@ sub get_values
|
||||
my ($self, $row) = @_;
|
||||
my @rv;
|
||||
foreach my $i (@{$self->{'rows'}->[$row]}) {
|
||||
if (ref($i) && $i->isa("Webmin::Input")) {
|
||||
if (ref($i) && $i->isa("WebminUI::Input")) {
|
||||
push(@rv, $i->get_value());
|
||||
}
|
||||
}
|
||||
@@ -68,10 +68,10 @@ return @rv;
|
||||
sub list_inputs
|
||||
{
|
||||
my ($self) = @_;
|
||||
my @rv = Webmin::Table::list_inputs($self);
|
||||
my @rv = WebminUI::Table::list_inputs($self);
|
||||
foreach my $r (@{$self->{'rows'}}) {
|
||||
foreach my $i (@$r) {
|
||||
if ($i && ref($i) && $i->isa("Webmin::Input")) {
|
||||
if ($i && ref($i) && $i->isa("WebminUI::Input")) {
|
||||
push(@rv, $i);
|
||||
}
|
||||
}
|
||||
@@ -111,7 +111,7 @@ foreach my $r (@{$self->{'rows'}}) {
|
||||
}
|
||||
}
|
||||
foreach my $i (@$r) {
|
||||
if ($i && ref($i) && $i->isa("Webmin::Input") && !$skip) {
|
||||
if ($i && ref($i) && $i->isa("WebminUI::Input") && !$skip) {
|
||||
my $label = &text('ui_rowlabel', $k, $self->{'headings'}->[$j]);
|
||||
foreach my $e ($i->validate()) {
|
||||
push(@errs, [ $i->get_name(), $label." ".$e ]);
|
||||
@@ -1,16 +1,16 @@
|
||||
package Webmin::JavascriptButton;
|
||||
use Webmin::Input;
|
||||
package WebminUI::JavascriptButton;
|
||||
use WebminUI::Input;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Input" );
|
||||
@ISA = ( "WebminUI::Input" );
|
||||
|
||||
=head2 new Webmin::JavascriptButton(label, script, [disabled])
|
||||
=head2 new WebminUI::JavascriptButton(label, script, [disabled])
|
||||
Create a button that runs some Javascript when clicked
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::JavascriptButton::new) &&
|
||||
caller() !~ /Webmin::Theme::JavascriptButton/) {
|
||||
return new Webmin::Theme::JavascriptButton(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::JavascriptButton::new) &&
|
||||
caller() !~ /WebminUI::Theme::JavascriptButton/) {
|
||||
return new WebminUI::Theme::JavascriptButton(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $value, $script, $disabled) = @_;
|
||||
$self = { };
|
||||
@@ -1,18 +1,18 @@
|
||||
package Webmin::LinkTable;
|
||||
use Webmin::Table;
|
||||
package WebminUI::LinkTable;
|
||||
use WebminUI::Table;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::LinkTable(heading, [columns], [width], [name])
|
||||
=head2 new WebminUI::LinkTable(heading, [columns], [width], [name])
|
||||
Creates a new table that just displays links, like in the Users and Groups module
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::LinkTable::new) &&
|
||||
caller() !~ /Webmin::Theme::LinkTable/) {
|
||||
return new Webmin::Theme::LinkTable(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::LinkTable::new) &&
|
||||
caller() !~ /WebminUI::Theme::LinkTable/) {
|
||||
return new WebminUI::Theme::LinkTable(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $heading, $columns, $width, $name) = @_;
|
||||
$self = { 'sorter' => \&Webmin::Table::default_sorter,
|
||||
$self = { 'sorter' => \&WebminUI::Table::default_sorter,
|
||||
'columns' => 4,
|
||||
'sortable' => 1 };
|
||||
bless($self);
|
||||
@@ -245,7 +245,7 @@ return $self->{'columns'};
|
||||
}
|
||||
|
||||
=head2 set_form(form)
|
||||
Called by the Webmin::Form object when this table is added to it
|
||||
Called by the WebminUI::Form object when this table is added to it
|
||||
=cut
|
||||
sub set_form
|
||||
{
|
||||
@@ -257,7 +257,7 @@ if ($self->{'selectinput'}) {
|
||||
}
|
||||
|
||||
=head2 set_selector(input)
|
||||
Takes a Webmin::Checkboxes or Webmin::Radios object, and uses it to add checkboxes
|
||||
Takes a WebminUI::Checkboxes or WebminUI::Radios object, and uses it to add checkboxes
|
||||
to all the entries
|
||||
=cut
|
||||
sub set_selector
|
||||
@@ -1,14 +1,14 @@
|
||||
package Webmin::Menu;
|
||||
package WebminUI::Menu;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::Menu(&options, [columns])
|
||||
=head2 new WebminUI::Menu(&options, [columns])
|
||||
Generates a menu of options, typically using icons.
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
my ($self, $options, $columns) = @_;
|
||||
if (defined(&Webmin::Theme::Menu::new)) {
|
||||
return new Webmin::Theme::Menu(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Menu::new)) {
|
||||
return new WebminUI::Theme::Menu(@_[1..$#_]);
|
||||
}
|
||||
$self = { 'columns' => 4 };
|
||||
bless($self);
|
||||
@@ -73,7 +73,7 @@ my ($self) = @_;
|
||||
return $self->{'columns'};
|
||||
}
|
||||
|
||||
=head2 set_page(Webmin::Page)
|
||||
=head2 set_page(WebminUI::Page)
|
||||
Called when this menu is added to a page
|
||||
=cut
|
||||
sub set_page
|
||||
@@ -1,19 +1,19 @@
|
||||
package Webmin::Multiline;
|
||||
use Webmin::Textarea;
|
||||
package WebminUI::Multiline;
|
||||
use WebminUI::Textarea;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Textarea" );
|
||||
@ISA = ( "WebminUI::Textarea" );
|
||||
|
||||
=head2 new Webmin::Multiline(name, &lines, rows, cols, [disabled])
|
||||
=head2 new WebminUI::Multiline(name, &lines, rows, cols, [disabled])
|
||||
Create a new input for entering multiple text entries. By default, just uses
|
||||
a textbox
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Multiline::new)) {
|
||||
return new Webmin::Theme::Multiline(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Multiline::new)) {
|
||||
return new WebminUI::Theme::Multiline(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $lines, $rows, $cols, $wrap, $disabled) = @_;
|
||||
$self = new Webmin::Textarea($name, join("\n", @$lines), $rows, $cols, undef, $disabled);
|
||||
$self = new WebminUI::Textarea($name, join("\n", @$lines), $rows, $cols, undef, $disabled);
|
||||
bless($self);
|
||||
return $self;
|
||||
}
|
||||
@@ -1,18 +1,18 @@
|
||||
package Webmin::OptTextarea;
|
||||
use Webmin::Textarea;
|
||||
package WebminUI::OptTextarea;
|
||||
use WebminUI::Textarea;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Textarea" );
|
||||
@ISA = ( "WebminUI::Textarea" );
|
||||
|
||||
=head2 new Webmin::OptTextarea(name, value, rows, cols, [default-msg], [other-msg])
|
||||
=head2 new WebminUI::OptTextarea(name, value, rows, cols, [default-msg], [other-msg])
|
||||
Create a text area whose value is optional.
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::OptTextarea::new)) {
|
||||
return new Webmin::Theme::OptTextarea(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::OptTextarea::new)) {
|
||||
return new WebminUI::Theme::OptTextarea(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $value, $rows, $cols, $default, $other) = @_;
|
||||
$self = new Webmin::Textarea($name, $value, $rows, $cols);
|
||||
$self = new WebminUI::Textarea($name, $value, $rows, $cols);
|
||||
bless($self);
|
||||
$self->set_default($default || $text{'default'});
|
||||
$self->set_other($other) if ($other);
|
||||
@@ -57,7 +57,7 @@ if (defined($self->get_value())) {
|
||||
if ($self->get_value() eq "") {
|
||||
return ( $text{'ui_nothing'} );
|
||||
}
|
||||
return Webmin::Textbox::validate($self);
|
||||
return WebminUI::Textbox::validate($self);
|
||||
}
|
||||
return ( );
|
||||
}
|
||||
@@ -1,18 +1,18 @@
|
||||
package Webmin::OptTextbox;
|
||||
use Webmin::Textbox;
|
||||
package WebminUI::OptTextbox;
|
||||
use WebminUI::Textbox;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Textbox" );
|
||||
@ISA = ( "WebminUI::Textbox" );
|
||||
|
||||
=head2 new Webmin::OptTextbox(name, value, size, [default-msg], [other-msg])
|
||||
=head2 new WebminUI::OptTextbox(name, value, size, [default-msg], [other-msg])
|
||||
Create a text field whose value is optional.
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::OptTextbox::new)) {
|
||||
return new Webmin::Theme::OptTextbox(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::OptTextbox::new)) {
|
||||
return new WebminUI::Theme::OptTextbox(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $value, $size, $default, $other) = @_;
|
||||
$self = new Webmin::Textbox($name, $value, $size);
|
||||
$self = new WebminUI::Textbox($name, $value, $size);
|
||||
bless($self);
|
||||
$self->set_default($default || $text{'default'});
|
||||
$self->set_other($other) if ($other);
|
||||
@@ -39,7 +39,7 @@ if (defined($self->get_value())) {
|
||||
if ($self->get_value() eq "") {
|
||||
return ( $text{'ui_nothing'} );
|
||||
}
|
||||
return Webmin::Textbox::validate($self);
|
||||
return WebminUI::Textbox::validate($self);
|
||||
}
|
||||
return ( );
|
||||
}
|
||||
@@ -1,16 +1,16 @@
|
||||
package Webmin::Page;
|
||||
package WebminUI::Page;
|
||||
use WebminCore;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::Page(subheading, title, [help-name], [show-config],
|
||||
=head2 new WebminUI::Page(subheading, title, [help-name], [show-config],
|
||||
[no-module-index], [no-webmin-index], [rightside],
|
||||
[header], [body-tags], [below-text])
|
||||
Create a new page object, with the given heading and other details
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Page::new) && caller() !~ /Webmin::Theme::Page/) {
|
||||
return new Webmin::Theme::Page(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Page::new) && caller() !~ /WebminUI::Theme::Page/) {
|
||||
return new WebminUI::Theme::Page(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $subheading, $title, $help, $config, $noindex, $nowebmin, $right,
|
||||
$header, $body, $below) = @_;
|
||||
@@ -216,7 +216,7 @@ print STDERR "Could not find $object in ",join(" ",@{$self->{'contents'}}),"\n";
|
||||
return scalar(@{$self->{'contents'}});
|
||||
}
|
||||
|
||||
=head2 add_form(Webmin::Form)
|
||||
=head2 add_form(WebminUI::Form)
|
||||
Adds a form to be displayed on this page
|
||||
=cut
|
||||
sub add_form
|
||||
@@ -246,7 +246,7 @@ push(@{$self->{'buttons'}}, [ $cgi, $label, $desc, join(" ", @$hiddens),
|
||||
$before, $after ]);
|
||||
}
|
||||
|
||||
=head2 add_tabs(Webmin::Tags)
|
||||
=head2 add_tabs(WebminUI::Tags)
|
||||
Tells the page to display the given set of tabs at the top
|
||||
=cut
|
||||
sub add_tabs
|
||||
@@ -255,7 +255,7 @@ my ($self, $tabs) = @_;
|
||||
$self->{'tabs'} = $tabs;
|
||||
}
|
||||
|
||||
=head2 add_dynamic(Webmin::DynamicText|Webmin::DynamicProgress)
|
||||
=head2 add_dynamic(WebminUI::DynamicText|WebminUI::DynamicProgress)
|
||||
Adds an object that is dynamically generated, such as a text box or progress bar.
|
||||
=cut
|
||||
sub add_dynamic
|
||||
@@ -1,18 +1,18 @@
|
||||
package Webmin::Password;
|
||||
@ISA = ( "Webmin::Textbox" );
|
||||
use Webmin::Textbox;
|
||||
package WebminUI::Password;
|
||||
@ISA = ( "WebminUI::Textbox" );
|
||||
use WebminUI::Textbox;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::Password(name, value, [size])
|
||||
=head2 new WebminUI::Password(name, value, [size])
|
||||
Create a new text input field, for a password
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Password::new)) {
|
||||
return new Webmin::Theme::Password(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Password::new)) {
|
||||
return new WebminUI::Theme::Password(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $value, $size) = @_;
|
||||
$self = new Webmin::Textbox($name, $value, $size);
|
||||
$self = new WebminUI::Textbox($name, $value, $size);
|
||||
bless($self);
|
||||
return $self;
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
package Webmin::PlainText;
|
||||
package WebminUI::PlainText;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::PlainText(text, columns)
|
||||
=head2 new WebminUI::PlainText(text, columns)
|
||||
Displays a block of plain fixed-width text, within a page or form.
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::PlainText::new) &&
|
||||
caller() !~ /Webmin::Theme::PlainText/) {
|
||||
return new Webmin::Theme::PlainText(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::PlainText::new) &&
|
||||
caller() !~ /WebminUI::Theme::PlainText/) {
|
||||
return new WebminUI::Theme::PlainText(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $text, $columns) = @_;
|
||||
$self = { 'columns' => 80 };
|
||||
@@ -84,7 +84,7 @@ foreach $rest (split(/\n/, $_[0])) {
|
||||
return @rv;
|
||||
}
|
||||
|
||||
=head2 set_page(Webmin::Page)
|
||||
=head2 set_page(WebminUI::Page)
|
||||
Called when this form is added to a page
|
||||
=cut
|
||||
sub set_page
|
||||
@@ -1,14 +1,14 @@
|
||||
package Webmin::Properties;
|
||||
package WebminUI::Properties;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::Properties([heading], [columns], [width])
|
||||
=head2 new WebminUI::Properties([heading], [columns], [width])
|
||||
Creates a read-only properties list
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Properties::new) &&
|
||||
caller() !~ /Webmin::Theme::Properties/) {
|
||||
return new Webmin::Theme::Properties(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Properties::new) &&
|
||||
caller() !~ /WebminUI::Theme::Properties/) {
|
||||
return new WebminUI::Theme::Properties(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $heading, $columns, $width) = @_;
|
||||
$self = { 'columns' => 2 };
|
||||
@@ -119,7 +119,7 @@ return $self->{'heading'};
|
||||
}
|
||||
|
||||
|
||||
=head2 set_page(Webmin::Page)
|
||||
=head2 set_page(WebminUI::Page)
|
||||
Called when this form is added to a page
|
||||
=cut
|
||||
sub set_page
|
||||
@@ -1,15 +1,15 @@
|
||||
package Webmin::Radios;
|
||||
use Webmin::Input;
|
||||
package WebminUI::Radios;
|
||||
use WebminUI::Input;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Input" );
|
||||
@ISA = ( "WebminUI::Input" );
|
||||
|
||||
=head2 new Webmin::Radios(name, value, &options, [disabled])
|
||||
=head2 new WebminUI::Radios(name, value, &options, [disabled])
|
||||
Create a list of radio buttons, of which one may be selected
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Radios::new)) {
|
||||
return new Webmin::Theme::Radios(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Radios::new)) {
|
||||
return new WebminUI::Theme::Radios(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $value, $options, $disabled) = @_;
|
||||
$self = { };
|
||||
20
WebminUI/ResultPage.pm
Normal file
20
WebminUI/ResultPage.pm
Normal file
@@ -0,0 +1,20 @@
|
||||
package WebminUI::ResultPage;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new WebminUI::ResultPage(subheading, title, message, [help-name])
|
||||
Create a new page object for showing some success message.
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&WebminUI::Theme::ResultPage::new) &&
|
||||
caller() !~ /WebminUI::Theme::ResultPage/) {
|
||||
return new WebminUI::Theme::ResultPage(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $subheading, $title, $message, $help) = @_;
|
||||
$self = new WebminUI::Page($subheading, $title, $help);
|
||||
$self->add_message("<b>$message</b>");
|
||||
return $self;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
package Webmin::Section;
|
||||
package WebminUI::Section;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::Section(header, [columns], [title], [width])
|
||||
=head2 new WebminUI::Section(header, [columns], [title], [width])
|
||||
Create a new form section, which has a header and contains some inputs
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Section::new) &&
|
||||
caller() !~ /Webmin::Theme::Section/) {
|
||||
return new Webmin::Theme::Section(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Section::new) &&
|
||||
caller() !~ /WebminUI::Theme::Section/) {
|
||||
return new WebminUI::Theme::Section(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $header, $columns, $title, $width) = @_;
|
||||
$self = { 'columns' => 4 };
|
||||
@@ -52,7 +52,7 @@ return $rv;
|
||||
}
|
||||
|
||||
=head2 add_input(label, input, [columns])
|
||||
Adds some Webmin::Input object to this form section
|
||||
Adds some WebminUI::Input object to this form section
|
||||
=cut
|
||||
sub add_input
|
||||
{
|
||||
@@ -140,7 +140,7 @@ return undef;
|
||||
}
|
||||
|
||||
=head2 set_form(form)
|
||||
Called by the Webmin::Form object when this section is added to it
|
||||
Called by the WebminUI::Form object when this section is added to it
|
||||
=cut
|
||||
sub set_form
|
||||
{
|
||||
@@ -165,7 +165,7 @@ sub is_input
|
||||
{
|
||||
my ($object) = @_;
|
||||
return ref($object) && ref($object) =~ /::/ &&
|
||||
$object->isa("Webmin::Input");
|
||||
$object->isa("WebminUI::Input");
|
||||
}
|
||||
|
||||
1;
|
||||
@@ -1,16 +1,16 @@
|
||||
package Webmin::Select;
|
||||
use Webmin::Input;
|
||||
package WebminUI::Select;
|
||||
use WebminUI::Input;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Input" );
|
||||
@ISA = ( "WebminUI::Input" );
|
||||
|
||||
=head2 new Webmin::Select(name, value|&values, &options, [multiple-size],
|
||||
=head2 new WebminUI::Select(name, value|&values, &options, [multiple-size],
|
||||
[add-missing], [disabled])
|
||||
Create a menu or multiple-selection field
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Select::new)) {
|
||||
return new Webmin::Theme::Select(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Select::new)) {
|
||||
return new WebminUI::Theme::Select(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $value, $options, $size, $missing, $disabled) = @_;
|
||||
$self = { 'size' => 1 };
|
||||
@@ -1,16 +1,16 @@
|
||||
package Webmin::Submit;
|
||||
use Webmin::Input;
|
||||
package WebminUI::Submit;
|
||||
use WebminUI::Input;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Input" );
|
||||
@ISA = ( "WebminUI::Input" );
|
||||
|
||||
=head2 new Webmin::Submit(label, [name], [disabled])
|
||||
=head2 new WebminUI::Submit(label, [name], [disabled])
|
||||
Create a form submit button
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Submit::new) &&
|
||||
caller() !~ /Webmin::Theme::Submit/) {
|
||||
return new Webmin::Theme::Submit(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Submit::new) &&
|
||||
caller() !~ /WebminUI::Theme::Submit/) {
|
||||
return new WebminUI::Theme::Submit(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $value, $name, $disabled) = @_;
|
||||
$self = { };
|
||||
@@ -1,15 +1,15 @@
|
||||
package Webmin::Table;
|
||||
use Webmin::JavascriptButton;
|
||||
package WebminUI::Table;
|
||||
use WebminUI::JavascriptButton;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::Table(&headings, [width], [name], [heading])
|
||||
=head2 new WebminUI::Table(&headings, [width], [name], [heading])
|
||||
Create a multi-column table, with support for sorting, paging and so on
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Table::new) &&
|
||||
caller() !~ /Webmin::Theme::Table/) {
|
||||
return new Webmin::Theme::Table(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Table::new) &&
|
||||
caller() !~ /WebminUI::Theme::Table/) {
|
||||
return new WebminUI::Theme::Table(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $headings, $width, $name, $heading) = @_;
|
||||
$self = { 'sorter' => [ map { \&default_sorter } @$headings ] };
|
||||
@@ -59,12 +59,12 @@ if (defined($sm) && @srows > $sm) {
|
||||
$rv .= $self->get_searchmsg()."<br>\n";
|
||||
}
|
||||
|
||||
my $form = new Webmin::Form($thisurl, "get");
|
||||
my $form = new WebminUI::Form($thisurl, "get");
|
||||
$form->set_input($self->{'form'}->{'in'});
|
||||
my $section = new Webmin::Section(undef, 2);
|
||||
my $section = new WebminUI::Section(undef, 2);
|
||||
$form->add_section($section);
|
||||
|
||||
my $col = new Webmin::Select("ui_searchcol_".$name, undef);
|
||||
my $col = new WebminUI::Select("ui_searchcol_".$name, undef);
|
||||
my $i = 0;
|
||||
foreach my $h (@{$self->get_headings()}) {
|
||||
if ($self->{'sortable'}->[$i]) {
|
||||
@@ -74,12 +74,12 @@ if (defined($sm) && @srows > $sm) {
|
||||
}
|
||||
$section->add_input($text{'ui_searchcol'}, $col);
|
||||
|
||||
my $for = new Webmin::Textbox("ui_searchfor_".$name, undef, 30);
|
||||
my $for = new WebminUI::Textbox("ui_searchfor_".$name, undef, 30);
|
||||
$section->add_input($text{'ui_searchfor'}, $for);
|
||||
|
||||
$rv .= $section->html();
|
||||
my $url = $self->make_url(undef, undef, undef, undef, 1);
|
||||
my $jsb = new Webmin::JavascriptButton($text{'ui_searchok'},
|
||||
my $jsb = new WebminUI::JavascriptButton($text{'ui_searchok'},
|
||||
"window.location = '$url'+'&'+'ui_searchfor_${name}'+'='+escape(form.ui_searchfor_${name}.value)+'&'+'ui_searchcol_${name}'+'='+escape(form.ui_searchcol_${name}.selectedIndex)");
|
||||
$rv .= $jsb->html();
|
||||
$rv .= "<br>\n";
|
||||
@@ -252,7 +252,7 @@ if (@srows) {
|
||||
for(my $i=0; $i<@$r || $i<@sheadings; $i++) {
|
||||
if (ref($r->[$i]) eq "ARRAY") {
|
||||
my $j = $r->[$i]->[0] &&
|
||||
$r->[$i]->[0]->isa("Webmin::TableAction")
|
||||
$r->[$i]->[0]->isa("WebminUI::TableAction")
|
||||
? " | " : " ";
|
||||
$row[$i] = $selmap{$r,$i}.
|
||||
join($j, map { ref($_) ? $_->html() : $_ }
|
||||
@@ -278,7 +278,7 @@ return $rv;
|
||||
}
|
||||
|
||||
=head2 set_form(form)
|
||||
Called by the Webmin::Form object when this table is added to it
|
||||
Called by the WebminUI::Form object when this table is added to it
|
||||
=cut
|
||||
sub set_form
|
||||
{
|
||||
@@ -309,7 +309,7 @@ else {
|
||||
sub default_sorter
|
||||
{
|
||||
my ($value1, $value2, $col) = @_;
|
||||
if (ref($value1) && $value1->isa("Webmin::TableAction")) {
|
||||
if (ref($value1) && $value1->isa("WebminUI::TableAction")) {
|
||||
$value1 = $value1->get_value();
|
||||
$value2 = $value2->get_value();
|
||||
}
|
||||
@@ -432,7 +432,7 @@ return $self->{'headings'};
|
||||
}
|
||||
|
||||
=head2 set_selector(column, input)
|
||||
Takes a Webmin::Checkboxes or Webmin::Radios object, and uses it to add checkboxes
|
||||
Takes a WebminUI::Checkboxes or WebminUI::Radios object, and uses it to add checkboxes
|
||||
in the specified column.
|
||||
=cut
|
||||
sub set_selector
|
||||
@@ -1,15 +1,15 @@
|
||||
package Webmin::TableAction;
|
||||
package WebminUI::TableAction;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::TableAction(cgi, label, &args, disabled)
|
||||
=head2 new WebminUI::TableAction(cgi, label, &args, disabled)
|
||||
An object of this class can be added to a table or properties object to create
|
||||
a link or action button of some kind.
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::TableAction::new) &&
|
||||
caller() !~ /Webmin::Theme::TableAction/) {
|
||||
return new Webmin::Theme::TableAction(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::TableAction::new) &&
|
||||
caller() !~ /WebminUI::Theme::TableAction/) {
|
||||
return new WebminUI::Theme::TableAction(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $cgi, $value, $args, $disabled) = @_;
|
||||
$self = { };
|
||||
@@ -1,14 +1,14 @@
|
||||
package Webmin::Tabs;
|
||||
package WebminUI::Tabs;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::Tabs([&tabs])
|
||||
=head2 new WebminUI::Tabs([&tabs])
|
||||
Displayed at the top of a page, to allow selection of various pages
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
my ($self, $tabs) = @_;
|
||||
if (defined(&Webmin::Theme::Tabs::new)) {
|
||||
return new Webmin::Theme::Tabs(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Tabs::new)) {
|
||||
return new WebminUI::Theme::Tabs(@_[1..$#_]);
|
||||
}
|
||||
$self = { 'tabs' => [ ],
|
||||
'tab' => 0 };
|
||||
@@ -1,15 +1,15 @@
|
||||
package Webmin::Textarea;
|
||||
use Webmin::Input;
|
||||
package WebminUI::Textarea;
|
||||
use WebminUI::Input;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Input" );
|
||||
@ISA = ( "WebminUI::Input" );
|
||||
|
||||
=head2 new Webmin::Textarea(name, value, rows, cols, [wrap], [disabled])
|
||||
=head2 new WebminUI::Textarea(name, value, rows, cols, [wrap], [disabled])
|
||||
Create a new text box, with the given size
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Textarea::new)) {
|
||||
return new Webmin::Theme::Textarea(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Textarea::new)) {
|
||||
return new WebminUI::Theme::Textarea(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $value, $rows, $cols, $wrap, $disabled) = @_;
|
||||
$self = { };
|
||||
@@ -113,7 +113,7 @@ Returns the value, without any \r characters
|
||||
sub get_value
|
||||
{
|
||||
my ($self) = @_;
|
||||
my $rv = Webmin::Input::get_value($self);
|
||||
my $rv = WebminUI::Input::get_value($self);
|
||||
$rv =~ s/\r//g;
|
||||
return $rv;
|
||||
}
|
||||
@@ -1,15 +1,15 @@
|
||||
package Webmin::Textbox;
|
||||
use Webmin::Input;
|
||||
package WebminUI::Textbox;
|
||||
use WebminUI::Input;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Input" );
|
||||
@ISA = ( "WebminUI::Input" );
|
||||
|
||||
=head2 new Webmin::Textbox(name, value, [size], [disabled])
|
||||
=head2 new WebminUI::Textbox(name, value, [size], [disabled])
|
||||
Create a new text input field
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Textbox::new)) {
|
||||
return new Webmin::Theme::Textbox(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Textbox::new)) {
|
||||
return new WebminUI::Theme::Textbox(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $value, $size, $disabled) = @_;
|
||||
$self = { 'size' => 30 };
|
||||
@@ -1,16 +1,16 @@
|
||||
package Webmin::Time;
|
||||
use Webmin::Input;
|
||||
package WebminUI::Time;
|
||||
use WebminUI::Input;
|
||||
use Time::Local;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Input" );
|
||||
@ISA = ( "WebminUI::Input" );
|
||||
|
||||
=head2 new Webmin::Time(name, time, [disabled])
|
||||
=head2 new WebminUI::Time(name, time, [disabled])
|
||||
Create a new field for selecting a time
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Time::new)) {
|
||||
return new Webmin::Theme::Time(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Time::new)) {
|
||||
return new WebminUI::Theme::Time(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $value, $disabled) = @_;
|
||||
bless($self = { });
|
||||
@@ -1,14 +1,14 @@
|
||||
package Webmin::TitleList;
|
||||
package WebminUI::TitleList;
|
||||
use WebminCore;
|
||||
|
||||
=head2 new Webmin::TitleList(title, &links, [alt-text])
|
||||
=head2 new WebminUI::TitleList(title, &links, [alt-text])
|
||||
Generates a title with a list of links under it
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
my ($self, $title, $links, $alt) = @_;
|
||||
if (defined(&Webmin::Theme::TitleList::new)) {
|
||||
return new Webmin::Theme::TitleList(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::TitleList::new)) {
|
||||
return new WebminUI::Theme::TitleList(@_[1..$#_]);
|
||||
}
|
||||
$self = { };
|
||||
bless($self);
|
||||
@@ -88,7 +88,7 @@ my ($self, $name, $link) = @_;
|
||||
push(@{$self->{'links'}}, [ $name, $link ]);
|
||||
}
|
||||
|
||||
=head2 set_page(Webmin::Page)
|
||||
=head2 set_page(WebminUI::Page)
|
||||
Called when this menu is added to a page
|
||||
=cut
|
||||
sub set_page
|
||||
@@ -1,15 +1,15 @@
|
||||
package Webmin::Upload;
|
||||
use Webmin::Input;
|
||||
package WebminUI::Upload;
|
||||
use WebminUI::Input;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Input" );
|
||||
@ISA = ( "WebminUI::Input" );
|
||||
|
||||
=head2 new Webmin::Upload(name, [size])
|
||||
=head2 new WebminUI::Upload(name, [size])
|
||||
Create a new file upload field
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::Upload::new)) {
|
||||
return new Webmin::Theme::Upload(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::Upload::new)) {
|
||||
return new WebminUI::Theme::Upload(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $size) = @_;
|
||||
$self = { 'size' => 30 };
|
||||
@@ -1,18 +1,18 @@
|
||||
package Webmin::User;
|
||||
use Webmin::Textbox;
|
||||
package WebminUI::User;
|
||||
use WebminUI::Textbox;
|
||||
use WebminCore;
|
||||
@ISA = ( "Webmin::Textbox" );
|
||||
@ISA = ( "WebminUI::Textbox" );
|
||||
|
||||
=head2 new Webmin::User(name, value, [multiple], [disabled])
|
||||
=head2 new WebminUI::User(name, value, [multiple], [disabled])
|
||||
A text box for entering or selecting one or many Unix usernames
|
||||
=cut
|
||||
sub new
|
||||
{
|
||||
if (defined(&Webmin::Theme::User::new)) {
|
||||
return new Webmin::Theme::User(@_[1..$#_]);
|
||||
if (defined(&WebminUI::Theme::User::new)) {
|
||||
return new WebminUI::Theme::User(@_[1..$#_]);
|
||||
}
|
||||
my ($self, $name, $value, $multiple, $disabled) = @_;
|
||||
$self = new Webmin::Textbox($name, $value, $multiple ? 40 : 15, $disabled);
|
||||
$self = new WebminUI::Textbox($name, $value, $multiple ? 40 : 15, $disabled);
|
||||
bless($self);
|
||||
$self->set_multiple($multiple);
|
||||
return $self;
|
||||
@@ -24,7 +24,7 @@ Returns the HTML for this user input
|
||||
sub html
|
||||
{
|
||||
my ($self) = @_;
|
||||
my $rv = Webmin::Textbox::html($self);
|
||||
my $rv = WebminUI::Textbox::html($self);
|
||||
my $name = $self->get_name();
|
||||
my $multiple = $self->get_multiple();
|
||||
local $w = $multiple ? 500 : 300;
|
||||
@@ -822,8 +822,11 @@ foreach my $l (@acl) {
|
||||
delete($gconfig{"lang_".$username});
|
||||
delete($gconfig{"notabs_".$username});
|
||||
delete($gconfig{"ownmods_".$username});
|
||||
delete($gconfig{"rbacdeny_".$username});
|
||||
delete($gconfig{"theme_".$username});
|
||||
delete($gconfig{"overlay_".$username});
|
||||
delete($gconfig{"readonly_".$username});
|
||||
delete($gconfig{"realname_".$username});
|
||||
&write_file("$config_directory/config", \%gconfig);
|
||||
|
||||
# Delete all module .acl files
|
||||
@@ -2163,5 +2166,21 @@ elsif ($str =~ /^postgresql:/) {
|
||||
}
|
||||
}
|
||||
|
||||
# used_for_anonymous(username)
|
||||
# Returns a list of modules this user has an anonymous grant to
|
||||
sub used_for_anonymous
|
||||
{
|
||||
my ($user) = @_;
|
||||
my @rv;
|
||||
my %miniserv;
|
||||
&get_miniserv_config(\%miniserv);
|
||||
foreach $a (split(/\s+/, $miniserv{'anonymous'})) {
|
||||
if ($a =~ /^([^=]+)=(\S+)$/ && $2 eq $user) {
|
||||
push(@rv, $1);
|
||||
}
|
||||
}
|
||||
return @rv;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
ssleay=/usr/bin/openssl
|
||||
select=0
|
||||
order=0
|
||||
display=1
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
ssleay=/usr/bin/openssl
|
||||
select=0
|
||||
order=0
|
||||
display=1
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
ssleay=/usr/bin/openssl
|
||||
select=0
|
||||
order=0
|
||||
display=1
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
ssleay=/usr/bin/openssl
|
||||
select=0
|
||||
order=0
|
||||
display=1
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
ssleay=/usr/bin/openssl
|
||||
select=0
|
||||
order=0
|
||||
display=1
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
ssleay=/usr/sfw/bin/openssl
|
||||
select=0
|
||||
order=0
|
||||
display=1
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Configurable options,11
|
||||
display=User and group display mode,1,1-Names only,0-Names and modules
|
||||
select=Display user modules in,1,0-Table,1-Pulldown menu
|
||||
order=Sort users and groups by,1,0-Order in file,1-Name
|
||||
line2=System configuration,11
|
||||
ssleay=Path to openssl or ssleay program,3,Automatic
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
line1=Конфигурационни опции,11
|
||||
select=Показвай юзерските модули в,1,0-таблица,1-Падащо меню
|
||||
order=Подреди юзери и групи по,1,0-подредба във файл,1-име
|
||||
line2=Системна конфигурация,11
|
||||
ssleay=Път към openssl или ssleay програма,0
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Opcions configurables,11
|
||||
display=Forma de mostrar els usuaris i els grups,1,1-Només els noms,0-Noms i mòduls
|
||||
select=Mostra els mòduls d'usuaris amb,1,0-Taula,1-Menú desplegable
|
||||
order=Ordena els usuaris i grups per,1,0-L'ordre del fitxer,1-El nom
|
||||
line2=Configuració del sistema,11
|
||||
ssleay=Camí del programa <tt>openssl</tt> o <tt>ssleay</tt>,3,Automàtic
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Možnosti konfigurace,11
|
||||
display=Mód pro zobrazení uživatele a skupiny,1,1-Pouze jména,0-Jména a moduly
|
||||
select=Zobrazit moduly uživatele v,1,0-tabulce,1-rozbalovací nabídce
|
||||
order=Třídit uživatele a skupiny podle,1,0-pořadí v souboru,1-jména
|
||||
line2=Konfigurace systému,11
|
||||
ssleay=Cesta k programu openssl nebo ssleay,0
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Konfigurerbare indstillinger,11
|
||||
display=Bruger og gruppe visnings mode,1,1-Kun navne,0-Navne og moduler
|
||||
select=Vis brugermoduler i,1.0-Tabel,1-Pulldown menu
|
||||
order=Sorter brugere og grupper ved,1.0-Sortering i fil,1-Navn
|
||||
line2=Systemkonfiguration,11
|
||||
ssleay=Sti til openssl eller ssleay progarm,3,Automatisk
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Konfigurierbare Optionen,11
|
||||
display=Benutzer- und Gruppenanzeige,1,1-Nur Namen,0-Namen und Module
|
||||
select=Zeige Benutzermodule als,1,0-Tabelle,1-Auswahlliste
|
||||
order=Sortiere Benutzer und Gruppen nach,1,0-Reihenfolge in Datei,1-Name
|
||||
line2=Systemkonfiguration,11
|
||||
ssleay=Pfad zu <tt>openssl</tt> oder <tt>ssleay</tt>,3,Automatisch
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Opciones Configurables,11
|
||||
display=Modo de mostrar usuario y grupo,1,1-Sólo nombres,0-Nombres y módulos
|
||||
select=Mostrar módulos de usuario en,1,0-Tabla,1-Menú desplegable
|
||||
order=Clasificar usuarios y grupos por,1,0-Orden en archivo,1-Nombre
|
||||
line2=Configuración de Sistema,11
|
||||
ssleay=Trayectoria al programa openssl o ssleay,0
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Konfiguragarri diren aukerak, 11
|
||||
display=Erabiltzaile eta taldea erakusteko modua, 1,1-Izenak soilik, 0-Izenak eta moduluak
|
||||
select=Erabiltzaile moduluak erakutsi,1,0-Taulan, 1-
|
||||
Display user modules in,1,0-Table,1-Pulldown menu
|
||||
order=Ordenatu erabiltzaile eta taldeak,1,0-Fitxategian ordenatu,1-Izena
|
||||
line2=Sistemaren konfigurazioa,11
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
|
||||
line1=گزينههاي پيکربندي,11
|
||||
display=حالت نمايش کاربران و گروهها,1,1-فقط نامها,0-نامها و پيمانهها
|
||||
select=نمايش پيمانههاي کاربر در,1,0-جدول,1-گزينگان پايين بر
|
||||
order=مرتب سازي کاربران و گروهها براساس,1,0-ترتيب در پرونده,1-نام
|
||||
line2=پيکربندي سيستم,11
|
||||
ssleay=مسير براي openssl يا برنامه ssleay,3,خودکار
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Options configurables,11
|
||||
display=Mode d'affichage des utilisateurs et des groupes,1,1-Noms seulement,0-Noms et modules
|
||||
select=Afficher les modules utilisateur par,1,0-Table,1-Menu déroulant
|
||||
order=Trier les utilisateurs et les groupes par,1,0-Ordre dans le fichier,1-Nom
|
||||
line2=Configuration du système,11
|
||||
ssleay=Chemin d'accès au programme openssl ou ssleay,3,Automatique
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Konfigurálható beállítások,11
|
||||
display=Felhasználó és csoport megjelenítési mód,1,1-Csak a neveket,0-Neveket és modulokat
|
||||
select=A modulok megjelenítsi módja,1,0-Táblázat,1-Menü
|
||||
order=Felhasználók és csoportok rendezése,1,0-A fájl rendezése szerint,1-Név szerint
|
||||
line2=Rendszer konfiguráció,11
|
||||
ssleay=Az <code>openssl</code> vagy <code>ssleay</code> program teljes elérési útja,0
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Opzioni configurabili,11
|
||||
display=Modalità di visualizzazione di utenti e gruppi,1,1-Solo i nomi,0-Nomi e moduli
|
||||
select=Mostra i moduli utente in,1,0-una tabella,1-un menu a tendina
|
||||
order=Ordina gli utenti e i gruppi per,1,0-Ordine nel file,1-Nome
|
||||
line2=Configurazione di sistema,11
|
||||
ssleay=Percorso al programma openssl o ssleay,3,Automatico
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=設定可能なオプション,11
|
||||
display=ユーザとグループの表示モード,1,1-名前のみ,0-名前とモジュール
|
||||
select=ユーザモジュールの表示方法,1,0-表,1-プルダウンメニュー
|
||||
order=ユーザとグループのソート順,1,0-ファイル順,1-名前順
|
||||
line2=システム設定,11
|
||||
ssleay=opensslプログラムまたはssleayプログラムのパス,3,自動
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=가능한 옵션,11
|
||||
display=유저와 그룹 출력 모드,1,1-이름만,0-이름과 모듈
|
||||
select=유저 모듈 출력,1,0-테이블,1-풀다운 메뉴
|
||||
order=유저와 그룹 정렬,1,0-파일 순,1-이름
|
||||
line2=시스템 설정,11
|
||||
ssleay=openssl 또는 ssleay 파일 경로,3,Automatic
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Pilihan konfigurasi,11
|
||||
display=Mod paparan pengguna dan grup,1,1-Nama sahaja,0-Nama dan modul
|
||||
select=Paparkan modul pengguna dalam,1,0-Jadual,1-Menu pull-down
|
||||
order=Tapis pengguna dan grup dengan,1,0-Urutan dalam fail,1-Nama
|
||||
line2=Konfigurasi sistem,11
|
||||
ssleay=Lokasi program openssl atau ssleay,3,Automatik
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Instelbare opties,11
|
||||
display=Gebruiker en groep weergave instelling,1,1-Alleen Namen,0-Namen en modules
|
||||
select=Geef gebruiker modules weer in,1,0-Tabel,1-Pulldown menu
|
||||
order=Sorteer gebruikers en groepen op,1,0-Volgorde in bestand,1-Naam
|
||||
line2=Systeem configuratie,11
|
||||
ssleay=Pad naar openssl of ssleay programma,3,Automatisch
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Konfigurerbare innstillinger,11
|
||||
display=Visningsmodus for bruker og gruppe,1,1-Bare navn,0-Navn og moduler
|
||||
select=Vis brukermoduler i,1,0-Tabell,1-Nedtrekksmeny
|
||||
order=Sorter brukere og grupper etter,1,0-Rekkefølge i filen,1-Navn
|
||||
line2=System konfigurasjon,11
|
||||
ssleay=Stien til openssl eller ssleay program,0
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Opcje konfiguracyjne,11
|
||||
display=Tryb wyświetlania użytkowników i grup,1,1-Tylko nazwy,0-Nazwy i moduły
|
||||
select=Wyświetl moduły użytkownika w,1,0-Tabeli,1-Rozwijanym menu
|
||||
order=Porządkuj użytkowników i grupy wg,1,0-Kolejności w zbiorze,1-Nazwy
|
||||
line2=Konfiguracja systemu,11
|
||||
ssleay=Ścieżka do programu openssl lub ssleay,0
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
line1=Opções configuráveis,11
|
||||
select=Exibir módulos de usuários em,1,0-Tabela,1-Menus
|
||||
order=Ordenar usuários e grupos por,1,0-Ordem no arquivo,1-Nome
|
||||
line2=Configuração do sistema,11
|
||||
ssleay=Caminho para o programa openssl ou ssleay,0
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
select=Показывать модули пользователя в виде,1,0-Таблицы,1-Выпадающего меню
|
||||
ssleay=Путь к программе openssl или ssleay,0
|
||||
order=Упорядочивать пользователей и группы по,1,0-Очередности в файле,1-Имени
|
||||
line1=Настраиваемые параметры,11
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Настраиваемые параметры,11
|
||||
display=Режим отображения пользователей и групп,1,1-Только имена,0-Имена и модули
|
||||
select=Показывать модули пользователя в виде,1,0-Таблицы,1-Выпадающего меню
|
||||
order=Упорядочивать пользователей и группы по,1,0-Очередности в файле,1-Имени
|
||||
line2=Системные параметры,11
|
||||
ssleay=Путь к программе openssl или ssleay,0
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Nastaviteľné možnosti,11
|
||||
display=Spôsob zobrazenia užívateľov a skupín,1,1-Iba mená,0-Mená a moduly
|
||||
select=Zobraz užívateľské moduly v ,1,0-Tabuľke,1-Rozbaľovacom menu
|
||||
order=Zoraď užívateľov a skupiny podľa,1,0-Poradia v súbore,1-Mena
|
||||
line2=Nastavenie Systému,11
|
||||
ssleay=Cesta k programu openssl alebo ssleay,3,Automatická
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
ssleay=Sökväg till openssl- eller ssleay-program,0
|
||||
select=Visa moduler i,1,0-Tabell,1-Rullgardinsmeny
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
line1=Yapılandırılabilir seçenekler,11
|
||||
display=Kullanıcı ve grup görüntüleme biçimi,1,1-Sadece isim,0-İsim ve modüller
|
||||
select=Kullanıcı modüllerini bu şekilde görüntüle,1,0-Tablo,1-Menü
|
||||
order=Kullanıcı ve grupları bu şekilde sırala,1,0-Dosyadaki sırası ile,1-İsim ile
|
||||
line2=Sistem yapılandırması,11
|
||||
ssleay=Openssl ya da ssleay programı yolu,3,Otomatik
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
select=Показувати модулі користувача у виді,1,0-таблиці, що1-випадає меню
|
||||
ssleay=Шлях до програми openssl чи ssleay,0
|
||||
order=Упорядковувати користувачів і групи по,1,0-черговості у файлі,1-імені
|
||||
line1= параметри, ЩоНабудовуються,11
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
ssleay=Openssl 或者 Ssleay 程序的路径,0
|
||||
select=显示用户模块以,1,0-Table,1-Pulldown 菜单
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
line1=組態選項,11
|
||||
select=顯示使用者模組在,1,0-表格,1-下拉選單
|
||||
order=排序使用者和全組 依,1,0-檔案內位置,1-名稱
|
||||
line2=系統組態,11
|
||||
ssleay=openssl或ssleay程式路徑,0
|
||||
|
||||
@@ -10,6 +10,7 @@ our (%in, %text, %config, %access, $base_remote_user);
|
||||
&error_setup($text{'delete_err'});
|
||||
$access{'delete'} || &error($text{'delete_ecannot'});
|
||||
&can_edit_user($in{'user'}) || &error($text{'delete_euser'});
|
||||
&used_for_anonymous($in{'user'}) && &error($text{'delete_eanonuser'});
|
||||
if ($base_remote_user eq $in{'user'}) {
|
||||
&error($text{'delete_eself'});
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ foreach my $user (@d) {
|
||||
if ($base_remote_user eq $user && !$in{'joingroup'}) {
|
||||
&error($text{'delete_eself'});
|
||||
}
|
||||
&used_for_anonymous($user) && &error($text{'delete_eanonuser'});
|
||||
my $uinfo = &get_user($user);
|
||||
$uinfo->{'readonly'} && &error($text{'udeletes_ereadonly'});
|
||||
}
|
||||
@@ -27,7 +28,8 @@ if ($in{'joingroup'}) {
|
||||
foreach my $user (@d) {
|
||||
my $uinfo = &get_user($user);
|
||||
next if (!$uinfo);
|
||||
next if (&indexof($user, @{$newgroup->{'members'}}) >= 0);
|
||||
next if ($newgroup &&
|
||||
&indexof($user, @{$newgroup->{'members'}}) >= 0);
|
||||
|
||||
# Remove from old group, if any
|
||||
my $oldgroup = &get_users_group($user);
|
||||
|
||||
@@ -73,11 +73,9 @@ else {
|
||||
# Show usernames and modules
|
||||
print &ui_subheading($text{'index_users'});
|
||||
my @rowlinks = ( );
|
||||
if (!$config{'select'}) {
|
||||
print &ui_form_start("delete_users.cgi", "post");
|
||||
push(@rowlinks, &select_all_link("d", $form),
|
||||
&select_invert_link("d", $form));
|
||||
}
|
||||
print &ui_form_start("delete_users.cgi", "post");
|
||||
push(@rowlinks, &select_all_link("d", $form),
|
||||
&select_invert_link("d", $form));
|
||||
push(@rowlinks, ui_link("edit_user.cgi", $text{'index_create'}))
|
||||
if ($access{'create'});
|
||||
print &ui_links_row(\@rowlinks);
|
||||
@@ -104,10 +102,8 @@ else {
|
||||
}
|
||||
print &ui_columns_end();
|
||||
print &ui_links_row(\@rowlinks);
|
||||
if (!$config{'select'}) {
|
||||
print &ui_form_end([ [ "delete", $text{'index_delete'} ],
|
||||
@gbut ]);
|
||||
}
|
||||
print &ui_form_end([ [ "delete", $text{'index_delete'} ],
|
||||
@gbut ]);
|
||||
$shown_users = 1;
|
||||
$form++;
|
||||
}
|
||||
@@ -136,11 +132,9 @@ if ($access{'groups'}) {
|
||||
else {
|
||||
# Show table of groups
|
||||
my @rowlinks = ( );
|
||||
if (!$config{'select'}) {
|
||||
print &ui_form_start("delete_groups.cgi", "post");
|
||||
push(@rowlinks, &select_all_link("d", $form),
|
||||
&select_invert_link("d", $form));
|
||||
}
|
||||
print &ui_form_start("delete_groups.cgi", "post");
|
||||
push(@rowlinks, &select_all_link("d", $form),
|
||||
&select_invert_link("d", $form));
|
||||
push(@rowlinks,
|
||||
ui_link("edit_group.cgi", $text{'index_gcreate'}));
|
||||
print &ui_links_row(\@rowlinks);
|
||||
@@ -168,9 +162,7 @@ if ($access{'groups'}) {
|
||||
}
|
||||
print &ui_columns_end();
|
||||
print &ui_links_row(\@rowlinks);
|
||||
if (!$config{'select'}) {
|
||||
print &ui_form_end([ [ "delete", $text{'index_delete'} ] ]);
|
||||
}
|
||||
print &ui_form_end([ [ "delete", $text{'index_delete'} ] ]);
|
||||
$form++;
|
||||
}
|
||||
}
|
||||
@@ -235,44 +227,22 @@ sub show_modules
|
||||
my ($type, $who, $mods, $global, $prefix) = @_;
|
||||
$mods ||= [ ];
|
||||
my $rv;
|
||||
if ($config{'select'}) {
|
||||
# Show as drop-down menu
|
||||
$rv .= &ui_form_start("edit_acl.cgi");
|
||||
$rv .= $prefix."<br>\n" if ($prefix);
|
||||
if (@$mods) {
|
||||
$rv .= &ui_hidden($type, $who);
|
||||
if ($access{'acl'}) {
|
||||
$rv .= &ui_submit($text{'index_edit'});
|
||||
$rv .= $prefix."<br>\n" if ($prefix);
|
||||
my @grid;
|
||||
foreach my $m (sort { $modname{$a} cmp $modname{$b} } @$mods) {
|
||||
if ($modname{$m}) {
|
||||
if ($mcan{$m} && $access{'acl'}) {
|
||||
push(@grid, ui_link("edit_acl.cgi?mod=" .
|
||||
&urlize($m)."&$type=".&urlize($who),
|
||||
$modname{$m}));
|
||||
}
|
||||
my @opts;
|
||||
foreach my $m (sort { $modname{$a} cmp $modname{$b} } @$mods) {
|
||||
if ($modname{$m}) {
|
||||
push(@opts, [ $m, $modname{$m} ]);
|
||||
}
|
||||
}
|
||||
$rv .= &ui_select("mod", undef, \@opts);
|
||||
}
|
||||
$rv .= &ui_form_end();
|
||||
}
|
||||
else {
|
||||
# Show as table
|
||||
$rv .= $prefix."<br>\n" if ($prefix);
|
||||
my @grid;
|
||||
foreach my $m (sort { $modname{$a} cmp $modname{$b} } @$mods) {
|
||||
if ($modname{$m}) {
|
||||
if ($mcan{$m} && $access{'acl'}) {
|
||||
push(@grid, ui_link("edit_acl.cgi?mod=" .
|
||||
&urlize($m)."&$type=".&urlize($who),
|
||||
$modname{$m}));
|
||||
}
|
||||
else {
|
||||
push(@grid, $modname{$m});
|
||||
}
|
||||
else {
|
||||
push(@grid, $modname{$m});
|
||||
}
|
||||
}
|
||||
$rv .= &ui_grid_table(\@grid, 3, 100,
|
||||
[ "width=33%", "width=33%", "width=33%" ]);
|
||||
}
|
||||
$rv .= &ui_grid_table(\@grid, 3, 100,
|
||||
[ "width=33%", "width=33%", "width=33%" ]);
|
||||
return $rv;
|
||||
}
|
||||
|
||||
@@ -298,7 +268,7 @@ sub user_link
|
||||
{
|
||||
my $lck = $_[0]->{'pass'} =~ /^\!/ ? 1 : 0;
|
||||
my $ro = $_[0]->{'readonly'};
|
||||
return ($config{'select'} ? "" : &ui_checkbox("d", $_[0]->{'name'}, "", 0)).
|
||||
return &ui_checkbox("d", $_[0]->{'name'}, "", 0).
|
||||
($lck ? "<i>" : "").
|
||||
($ro ? "<b>" : "").
|
||||
ui_link("$_[1]?$_[2]=".&urlize($_[0]->{'name'}),
|
||||
|
||||
@@ -362,6 +362,7 @@ rbac_ecpan=No tens acc
|
||||
rbac_ok=La integració amb RBAC està disponible en aquest sistema, i es pot activar en base a cada usuari a la pàgina d'Edició d'Usuaris Webmin.
|
||||
|
||||
udeletes_err=No s'han pogut suprimir els usuaris
|
||||
udeletes_jerr=No s'han pogut afegir els usuaris al grup
|
||||
udeletes_enone=No n'has seleccionat cap
|
||||
udeletes_title=Supressió d'Usuaris
|
||||
udeletes_rusure=Segur que vols suprimir els $1 usuaris seleccionats? Es perdran tots els seus detalls i totes les seves configuracions de control d'accés.
|
||||
|
||||
24
acl/lang/de
24
acl/lang/de
@@ -59,7 +59,7 @@ cert_header=Details des neuen Zertifikats
|
||||
cert_install=Installiere Ihr Zertifikat in den Browser
|
||||
cert_issue=Zertifikat ausstellen
|
||||
cert_key=Schlüsselgröße
|
||||
cert_msg=Hier können Sie ein SSL-Client-Zertifikat zu beantragen, das Ihnen in Zukunft ohne Eingabe von Benutzername und Kennwort einen sicheren Zugriff auf Webmin gestattet. Da jedoch diese Authentifizierung automatisch geschieht ist es nicht möglich zu einem anderen Benutzer zu wechseln.
|
||||
cert_msg=Hier können Sie ein SSL-Client-Zertifikat zu beantragen, das Ihnen in Zukunft ohne Eingabe von Benutzername und Kennwort einen sicheren Zugriff auf Webmin gestattet. Da jedoch diese Authentifizierung automatisch geschieht, ist es nicht möglich zu einem anderen Benutzer zu wechseln.
|
||||
cert_o=Organisation
|
||||
cert_ou=Abteilung
|
||||
cert_pickup=<a href='$1'>Klicken Sie hier, um Ihr Zertifikat aufzunehmen und es in Ihrem Browser zu installieren.</a>
|
||||
@@ -100,6 +100,7 @@ cpass_notre=Entspricht einen nicht erlaubten Muster
|
||||
cpass_old=Alte Kennwörter können nicht wieder verwendet werden
|
||||
cpass_re=Entspricht nicht einem erforderlichen Muster
|
||||
cpass_spellcmd=Entweder der $1 oder $2 Befehl muss installiert sein um eine Wörterbuchprüfung durchzuführen
|
||||
delete_eanonuser=Dieser Benutzer wird für anonymen Modul-Zugriff verwendet
|
||||
delete_ecannot=Sie haben keine Berechtigung Benutzer zu löschen
|
||||
delete_err=Fehler beim Löschen des Benutzers
|
||||
delete_eself=Sie können sich selber nicht löschen
|
||||
@@ -136,7 +137,7 @@ edit_minsize=Minimale Passwortlänge
|
||||
edit_mods=Verfügbare Webminmodule
|
||||
edit_modsg=Verfügbare Webminmodule (zusätzlich zu Modulen der Gruppe)
|
||||
edit_modules=Module
|
||||
edit_nochange=Forciere Passwortänderungstage
|
||||
edit_nochange=Forciere Passwortänderungstage?
|
||||
edit_none=Keine
|
||||
edit_notabs=Module in Kategorien aufteilen?
|
||||
edit_overlay=Personal theme overlay
|
||||
@@ -155,7 +156,7 @@ edit_proto_postgresql=PostgreSQL Datenbank
|
||||
edit_rbacdeny=RBAC-Zugriffsmodus
|
||||
edit_rbacdeny0=RBAC kontrolliert nur ausgewählte Modul-ACLs
|
||||
edit_rbacdeny1=RBAC kontrolliert alle Module und ACLs
|
||||
edit_readonly=Dieser Webminbenutzer sollte über das $1 Modul bearbeitet werden. <a href='$2'>Klicken Sie hier</a>, um diese Warnung zu übergehen und um den Benutzer dennoch zu bearbeiten. Es kann jedoch sein, daß hier vorgenommene Änderungen durch das $1 Modul überschrieben werden.
|
||||
edit_readonly=Dieser Webminbenutzer sollte über das $1 Modul bearbeitet werden. <a href='$2'>Klicken Sie hier</a>, um diese Warnung zu übergehen und um den Benutzer dennoch zu bearbeiten. Es kann jedoch sein, dass hier vorgenommene Änderungen durch das $1 Modul überschrieben werden!
|
||||
edit_real=Echter Name
|
||||
edit_return=Webminbenutzer
|
||||
edit_return2=Webmingruppe
|
||||
@@ -187,7 +188,7 @@ edit_twofactorprov=Benutze Provider $1 mit ID $2
|
||||
edit_ui=Optionen des Benutzerinterfaces
|
||||
edit_unix=Unix-Authentifizierung
|
||||
edit_user=Benutzername
|
||||
gdelete_desc=Sind Sie sicher, daß Sie die Gruppe $1 und Benutzer $2 löschen wollen?
|
||||
gdelete_desc=Sind Sie sicher, dass Sie die Gruppe $1 und Benutzer $2 löschen wollen?
|
||||
gdelete_ecannot=Sie sind nicht berechtigt Gruppen zu löschen
|
||||
gdelete_err=Fehler beim Löschen einer Gruppe
|
||||
gdelete_esub=Gruppen, die Untergruppen enthalten, können nicht gelöscht werden
|
||||
@@ -196,7 +197,7 @@ gdelete_ok=Gruppe löschen
|
||||
gdelete_title=Gruppe löschen
|
||||
gdeletes_err=Konnte Gruppen nicht löschen
|
||||
gdeletes_ok=Gruppe löschen
|
||||
gdeletes_rusure=Sind Sie sicher, daß Sie die $1 ausgewählten Gruppen, inklusive der darin enthaltenen $2 Benutzer, löschen möchten? Sämtliche Benutzer- und zugehörige Sicherheitseinstellungen gehen definitiv und nicht wiederherstellbar verloren.
|
||||
gdeletes_rusure=Sind Sie sicher, dass Sie die $1 ausgewählten Gruppen, inklusive der darin enthaltenen $2 Benutzer, löschen möchten? Sämtliche Benutzer- und zugehörige Sicherheitseinstellungen gehen definitiv und nicht wiederherstellbar verloren.
|
||||
gdeletes_title=Gruppe löschen
|
||||
gdeletes_users=Ausgewählte Gruppen: $1
|
||||
gedit_desc=Gruppenbeschreibung
|
||||
@@ -215,7 +216,7 @@ gsave_enamewebmin=Der Gruppenname 'webmin' ist für interne Zwecke reservier
|
||||
gsave_err=Fehler beim Speichern der Gruppe
|
||||
hide_clone=(Klone $1)
|
||||
hide_desc=Das folgende Modul wird von der Zugriffskontrollliste für $1 entfernt, da die entsprechenden Server nicht auf Ihrem System installiert sind.
|
||||
hide_desc2=Bedenken Sie, daß dieses Modul nicht automatisch sichtbar wird, wenn der entsprechende Server nachträglich installiert wird. Sie müssen den Zugriff über dieses Modul erneut einrichten.
|
||||
hide_desc2=Bedenken Sie, dass dieses Modul nicht automatisch sichtbar wird, wenn der entsprechende Server nachträglich installiert wird. Sie müssen den Zugriff über dieses Modul erneut einrichten.
|
||||
hide_none=Nichts zu verbergen - $1 hat keinen Zugriff zu irgendeinem Modul dessen entsprechender Server nicht auf Ihrem System installiert ist.
|
||||
hide_ok=Verberge Module jetzt
|
||||
hide_title=Verberge nicht benutzte Module
|
||||
@@ -270,6 +271,7 @@ log_switch=Gewechselt zu Benutzer $1
|
||||
log_sync=Ändere Unixbenutzer-Syncronisation
|
||||
log_twofactor=Benutzer $1 mit 2-Faktor-Anbieter $2 angemeldet
|
||||
log_unix=Ändere Unixbenutzer-Authentifizierung
|
||||
logins_title=Aktuelle Webmin-Logins
|
||||
make_done=.. fertig
|
||||
make_err=Fehlgeschlagen Benutzer- und Gruppentabellen zu erstellen
|
||||
make_exec=Ausführe SQL $1 ..
|
||||
@@ -342,11 +344,17 @@ save_euser=Sie haben keine Berechtigung diesen Benutzer zu bearbeiten
|
||||
schema_desc=Bevor Webmin ein LDAP-Server verwenden kann um Benutzer und Gruppen zu speichern, muss konfiguriert werden, das Schema unten zu verwenden. Dies kann in der Regel durch Speicherung der Schema-Definition in <tt>/etc/ldap/schema</tt> oder <tt>/etc/openldap/schema</tt> als <tt>webmin.schema</tt>, anschließend kann die Konfiguration des Servers erfolgen, das Schema-Datei zu laden.
|
||||
schema_download=Download Schema-Datei : <a href=$1>$1</a>
|
||||
schema_title=Download LDAP-Schema
|
||||
sessions_desc=Aktuell angemeldete Webmin-Sitzungen sind unten aufgelistet. Zum Abbrechen einer bestehenden Sitzung und um den Benutzer zu zwingen sich neu anzumelden, klicken Sie auf die Sitzungs-ID.
|
||||
sessions_actions=Aktionen..
|
||||
sessions_host=IP-Adresse
|
||||
sessions_id=Sitzungs-ID
|
||||
sessions_in=Eingeloggt
|
||||
sessions_kill=Getrennt..
|
||||
sessions_login=Angemeldet an
|
||||
sessions_logouts=Zeige auch abgemeldete Sitzungen ..
|
||||
sessions_lview=Zeige Aufzeichnungen..
|
||||
sessions_out=Ausgeloggt
|
||||
sessions_state=Status
|
||||
sessions_this=Dieser Login
|
||||
sessions_title=Aktuell angemeldete Sitzungen
|
||||
sessions_user=Webminbenutzer
|
||||
sql_addto0=Hinzufügen neuer Benutzer zur Datenbank, wie oben ausgewählt
|
||||
@@ -423,7 +431,7 @@ udeletes_ereadonly=Einer der ausgewählten Benutzer ist als nicht bearbeitba
|
||||
udeletes_err=Konnte Benutzer nicht löschen
|
||||
udeletes_jerr=Fehler beim Nutzer zu Gruppe hinzufügen
|
||||
udeletes_ok=Benutzer löschen
|
||||
udeletes_rusure=Sind Sie sicher, daß Sie die $1 ausgewählten Benutzer löschen möchten? Sämtliche Benutzer- und zugehörige Sicherheitseinstellungen gehen definitiv und nicht wiederherstellbar verloren.
|
||||
udeletes_rusure=Sind Sie sicher, dass Sie die $1 ausgewählten Benutzer löschen möchten? Sämtliche Benutzer- und zugehörige Sicherheitseinstellungen gehen definitiv und nicht wiederherstellbar verloren.
|
||||
udeletes_title=Benutzer löschen
|
||||
udeletes_users=Ausgewählte Benutzer: $1
|
||||
unix_all=Erlaube alle Unixbenutzer
|
||||
|
||||
11
acl/lang/en
11
acl/lang/en
@@ -146,6 +146,7 @@ delete_err=Failed to delete user
|
||||
delete_eself=You cannot delete yourself
|
||||
delete_ecannot=You are not allowed to delete users
|
||||
delete_euser=You are not allowed to delete this user
|
||||
delete_eanonuser=This user is being used for anonymous module access
|
||||
|
||||
cert_title=Request Certificate
|
||||
cert_issue=Issue Certificate
|
||||
@@ -337,12 +338,20 @@ unix_header=Unix user authentication settings
|
||||
unix_utable=Allowed Unix users
|
||||
|
||||
sessions_title=Current Login Sessions
|
||||
sessions_desc=Current Webmin session logins are listed below. To cancel an existing session and force the user to login again, click on its session ID.
|
||||
sessions_id=Session ID
|
||||
sessions_user=Webmin user
|
||||
sessions_login=Logged in at
|
||||
sessions_host=IP address
|
||||
sessions_lview=View logs..
|
||||
sessions_actions=Actions..
|
||||
sessions_logouts=Also show logged-out sessions..
|
||||
sessions_state=State
|
||||
sessions_this=This login
|
||||
sessions_in=Logged in
|
||||
sessions_out=Logged out
|
||||
sessions_kill=Disconnect..
|
||||
|
||||
logins_title=Recent Webmin logins
|
||||
|
||||
hide_title=Hide Unused Modules
|
||||
hide_desc=The following modules will be removed from the module access list for $1 as their corresponding servers are not installed on your system ..
|
||||
|
||||
13
acl/lang/no
13
acl/lang/no
@@ -100,6 +100,7 @@ cpass_notre=Matcher et
|
||||
cpass_old=Gamle passord kan ikke brukes på nytt
|
||||
cpass_re=Stemmer ikke med et påkrevd mønster
|
||||
cpass_spellcmd=Ingen av kommandoene $1 eller $2, som er nødvendige for å sjekke ordiliste-ord, er installert
|
||||
delete_eanonuser=Denne brukeren brukes til anonym modul tilgang
|
||||
delete_ecannot=Du har ikke rettigheter til å slette brukere
|
||||
delete_err=Kunne ikke slette bruker
|
||||
delete_eself=Du kan ikke slette deg selv
|
||||
@@ -270,6 +271,7 @@ log_switch=Byttet til Webmin bruker $1
|
||||
log_sync=Endret unix bruker-synkronisering
|
||||
log_twofactor=Meldte inn bruker $1 til to-faktor autentisering
|
||||
log_unix=Endret unix bruker-autentisering
|
||||
logins_title=Siste Webmin innlogginger
|
||||
make_done=.. ferdig
|
||||
make_err=Kunne ikke opprette bruker- og gruppe-tabeller
|
||||
make_exec=Utfører SQL $1 ..
|
||||
@@ -342,11 +344,17 @@ save_euser=Du har ikke tilgang til å editere denne brukeren
|
||||
schema_desc=Før Webmin kan bruke en LDAP tjener for lagring av brukere og grupper må den konfigureres til å bruke skjemaet nedenfor. Dette kan typeisk gjøres ved å lagre skjemadefinisjonen i tt>/etc/ldap/schema</tt> eller <tt>/etc/openldap/schema</tt> som <tt>webmin.schema</tt>, og så konfigurere tjeneren ti lå laste den skjemafilen.
|
||||
schema_download=Last ned skjema-fil : <a href=$1>$1</a>
|
||||
schema_title=Last ned LDAP skjema
|
||||
sessions_desc=Aktuelle Webmin sesjon logins er listet under. For å kansellere en eksisterende sesjon og tvinge brukeren til å logge inn igjen, klikk på brukerens sesjon ID.
|
||||
sessions_actions=Handlinger..
|
||||
sessions_host=IP adresse
|
||||
sessions_id=Sessions ID
|
||||
sessions_login=Logget in på
|
||||
sessions_in=Innlogget
|
||||
sessions_kill=Koble fra..
|
||||
sessions_login=Innlogget
|
||||
sessions_logouts=Vis også utloggede sesjoner..
|
||||
sessions_lview=Se logger..
|
||||
sessions_out=Logget ut
|
||||
sessions_state=Tilstand
|
||||
sessions_this=Denne innloggingen
|
||||
sessions_title=Aktuell Login Session
|
||||
sessions_user=Webmin bruker
|
||||
sql_addto0=Legg til nye brukere i databasen valgt ovenfor
|
||||
@@ -421,6 +429,7 @@ twofactor_title=To-faktor autentisering
|
||||
udeletes_enone=Ingen valgt
|
||||
udeletes_ereadonly=En av de valgte brukerne er merket som ikke-redigerbar
|
||||
udeletes_err=Kunne ikke slette brukere
|
||||
udeletes_jerr=Kunne ikke legg til brukere i gruppe
|
||||
udeletes_ok=Slett brukere
|
||||
udeletes_rusure=Er du sikker på at du ønsker å slette de $1 valgte brukerne? Alle deres tilgangskontroll innstillinger og andre brukerdetaljer vil gå tapt.
|
||||
udeletes_title=Slett brukere
|
||||
|
||||
@@ -100,6 +100,7 @@ cpass_notre=Pasuje do niedozwolonego wzorca
|
||||
cpass_old=Nie można używać starych haseł
|
||||
cpass_re=Nie pasuje do wymaganego wzorca
|
||||
cpass_spellcmd=Nie zainstalowano komend $1 lub $2 wymaganych do sprawdzania słów ze słownika
|
||||
delete_eanonuser=Ten użytkownik jest wykorzystywany przy anonimowym dostępie do modułu
|
||||
delete_ecannot=Nie masz zezwolenia na usuwanie użytkowników
|
||||
delete_err=Nie udało się usunąć użytkownika
|
||||
delete_eself=Nie możesz usunąć samego siebie
|
||||
@@ -421,6 +422,7 @@ twofactor_title=Dwustopniowe uwierzytelnianie
|
||||
udeletes_enone=Nie wybrane
|
||||
udeletes_ereadonly=Jeden z wybranych użytkowników jest oznaczony jako nie-edytowalny
|
||||
udeletes_err=Błąd usuwanie użytkowników
|
||||
udeletes_jerr=Dodanie użytkowników do grupy nie powiodło się
|
||||
udeletes_ok=Usuń użytkowników
|
||||
udeletes_rusure=Czy jesteś pewny, że chcesz usunąć $1 wybranych użytkowników? Wszystkie ustawienia kontroli dostępu i szczegóły użytkowników zostaną utracone.
|
||||
udeletes_title=Usuń użytkowników
|
||||
|
||||
@@ -8,6 +8,7 @@ require './acl-lib.pl';
|
||||
our (%in, %text, %config, %access, %sessiondb);
|
||||
$access{'sessions'} || &error($text{'sessions_ecannot'});
|
||||
&ui_print_header(undef, $text{'sessions_title'}, "");
|
||||
&ReadParse();
|
||||
|
||||
my %miniserv;
|
||||
&get_miniserv_config(\%miniserv);
|
||||
@@ -21,27 +22,38 @@ foreach my $u (&list_users()) {
|
||||
|
||||
my $haslog = &foreign_available("webminlog");
|
||||
|
||||
print "<b>$text{'sessions_desc'}</b><p>\n";
|
||||
print &ui_columns_start([ $text{'sessions_id'},
|
||||
$text{'sessions_state'},
|
||||
$text{'sessions_user'},
|
||||
$text{'sessions_host'},
|
||||
$haslog ? ( $text{'sessions_login'} ) : ( ),
|
||||
"" ], 100);
|
||||
$text{'sessions_login'},
|
||||
$text{'sessions_actions'},
|
||||
], 100);
|
||||
foreach my $k (sort { my @a = split(/\s+/, $sessiondb{$a});
|
||||
my @b = split(/\s+/, $sessiondb{$b}); $b[1] <=> $a[1] }
|
||||
keys %sessiondb) {
|
||||
(grep { $sessiondb{$_} } keys %sessiondb)) {
|
||||
next if ($k =~ /^1111111/);
|
||||
my ($user, $ltime, $lip) = split(/\s+/, $sessiondb{$k});
|
||||
next if ($user =~ /^\!/ && !$in{'logouts'});
|
||||
next if ($miniserv{'logouttime'} &&
|
||||
$time_now - $ltime > $miniserv{'logouttime'}*60);
|
||||
my @cols;
|
||||
my $candel = 0;
|
||||
if ($k eq $main::session_id ||
|
||||
$k eq &hash_session_id($main::session_id)) {
|
||||
# Cannot self-terminate
|
||||
push(@cols, "<b>$k</b>");
|
||||
push(@cols, "<b><tt>$k</tt></b>");
|
||||
push(@cols, $text{'sessions_this'});
|
||||
}
|
||||
elsif ($user =~ s/^\!//) {
|
||||
# Already logged out
|
||||
push(@cols, "<tt>$k</tt>");
|
||||
push(@cols, $text{'sessions_out'});
|
||||
}
|
||||
else {
|
||||
push(@cols, ui_link("delete_session.cgi?id=$k", $k));
|
||||
push(@cols, "<tt>$k</tt>");
|
||||
push(@cols, $text{'sessions_in'});
|
||||
$candel = 1;
|
||||
}
|
||||
if ($hasuser{$user}) {
|
||||
push(@cols, ui_link("edit_user.cgi?user=$user", $user));
|
||||
@@ -54,12 +66,21 @@ foreach my $k (sort { my @a = split(/\s+/, $sessiondb{$a});
|
||||
}
|
||||
push(@cols, $lip);
|
||||
push(@cols, &make_date($ltime));
|
||||
my @links;
|
||||
if ($haslog) {
|
||||
push(@cols, ui_link("../webminlog/search.cgi?uall=1&mall=1&tall=1&wall=1&fall=1&sid=$k", $text{'sessions_lview'}));
|
||||
push(@links, ui_link("../webminlog/search.cgi?uall=1&mall=1&tall=1&wall=1&fall=1&sid=$k", $text{'sessions_lview'}));
|
||||
}
|
||||
if ($candel) {
|
||||
push(@links, ui_link("delete_session.cgi?id=$k", $text{'sessions_kill'}));
|
||||
}
|
||||
push(@cols, ui_links_row(\@links));
|
||||
print &ui_columns_row(\@cols);
|
||||
}
|
||||
print &ui_columns_end();
|
||||
if (!$in{'logouts'}) {
|
||||
print &ui_link("list_sessions.cgi?logouts=1",
|
||||
$text{'sessions_logouts'}),"<p>\n";
|
||||
}
|
||||
|
||||
&ui_print_footer("", $text{'index_return'});
|
||||
|
||||
|
||||
@@ -40,3 +40,4 @@ longdesc_ms_MY=Cipta pengguna Webmin dan konfigurasikan modul dan ciri-ciri yang
|
||||
desc_ms_MY=Pengguna Webmin
|
||||
longdesc_de=Erstellt Webmin-Benutzer und konfiguriert, auf welche Module und Funktionen diese berechtigt sind, zugreifen.
|
||||
longdesc_es=Crear usuarios de webmin y configurar a que modulos y caracteristicas pueden acceder.
|
||||
longdesc_pl=Twórz u¿ytkowników Webmina i kontroluj, które modu³y i funkcje s± dla nich dostêpne.
|
||||
|
||||
62
acl/system_info.pl
Normal file
62
acl/system_info.pl
Normal file
@@ -0,0 +1,62 @@
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
our (%text, $remote_user, %sessiondb, $module_name);
|
||||
do 'acl-lib.pl';
|
||||
|
||||
# list_system_info(&data, &in)
|
||||
# Show recent logins
|
||||
sub list_system_info
|
||||
{
|
||||
my ($data, $in) = @_;
|
||||
my @rv;
|
||||
my %miniserv;
|
||||
&get_miniserv_config(\%miniserv);
|
||||
&open_session_db(\%miniserv);
|
||||
my @logins;
|
||||
foreach my $k (keys %sessiondb) {
|
||||
next if ($k =~ /^1111111/);
|
||||
next if (!$sessiondb{$k});
|
||||
my ($user, $ltime, $lip) = split(/\s+/, $sessiondb{$k});
|
||||
next if ($user ne $remote_user && $user ne "!".$remote_user);
|
||||
push(@logins, [ $user, $ltime, $lip, $k ]);
|
||||
}
|
||||
if (@logins) {
|
||||
@logins = sort { $b->[1] <=> $a->[1] } @logins;
|
||||
if (@logins > 5) {
|
||||
@logins = @logins[0..4];
|
||||
}
|
||||
my $html = &ui_columns_start([ $text{'sessions_host'},
|
||||
$text{'sessions_login'},
|
||||
$text{'sessions_state'} ]);
|
||||
my $open = 0;
|
||||
foreach my $l (@logins) {
|
||||
my $state;
|
||||
if ($l->[0] =~ /^\!/) {
|
||||
$state = $text{'sessions_out'};
|
||||
}
|
||||
elsif ($l->[3] eq $main::session_id ||
|
||||
$l->[3] eq &hash_session_id($main::session_id)) {
|
||||
$state = "<font color=green>$text{'sessions_this'}</a>";
|
||||
}
|
||||
else {
|
||||
$state = $text{'sessions_in'};
|
||||
if ($l->[2] ne $ENV{'REMOTE_HOST'}) {
|
||||
$open++;
|
||||
$state = "<font color=orange>$state</font>";
|
||||
}
|
||||
}
|
||||
$html .= &ui_columns_row([ $l->[2],
|
||||
&make_date($l->[1]),
|
||||
$state ]);
|
||||
}
|
||||
$html .= &ui_columns_end();
|
||||
push(@rv, { 'type' => 'html',
|
||||
'desc' => $text{'logins_title'},
|
||||
'open' => $open,
|
||||
'id' => $module_name.'_logins',
|
||||
'priority' => -100,
|
||||
'html' => $html });
|
||||
}
|
||||
return @rv;
|
||||
}
|
||||
@@ -2,7 +2,7 @@ line2=Konfiguracja systemu,11
|
||||
pppoe_conf=Plik konfiguracji PPPOE ADSL,0
|
||||
conf_style=Format pliku konfiguracyjnego,1,0-Standardowa konfiguracja RP-PPPoE,1-Plik sieciowy Redhat
|
||||
pap_file=Plik kont PPP,0
|
||||
pppoe_cmd=Pełna ścieżka do komendy pppoe,0
|
||||
start_cmd=Komenda do podniesienia połączenia ADSL,0
|
||||
stop_cmd=Komenda do zamknięcia połączenia ADSL,0
|
||||
status_cmd=Komenda do pobrania stanu połączenia ADSL,0
|
||||
pppoe_cmd=Pełna ścieżka do polecenia pppoe,0
|
||||
start_cmd=Polecenie do podniesienia połączenia ADSL,0
|
||||
stop_cmd=Polecenie do zamknięcia połączenia ADSL,0
|
||||
status_cmd=Polecenie do pobrania stanu połączenia ADSL,0
|
||||
|
||||
6
adsl-client/help/connect.no.html
Executable file
6
adsl-client/help/connect.no.html
Executable file
@@ -0,0 +1,6 @@
|
||||
<header>Hvor lenge tilkobling forsøkes</header>
|
||||
|
||||
Når ADSL klient programmet startes, vil det forsøke å koble til din ISP så
|
||||
lenge som det er angitt i dette feltet. <p>
|
||||
|
||||
<hr>
|
||||
8
adsl-client/help/demand.no.html
Executable file
8
adsl-client/help/demand.no.html
Executable file
@@ -0,0 +1,8 @@
|
||||
<header>Koble til ved behov?</header>
|
||||
|
||||
Når Nei er valgt, vil ADSL tilkobling kun startes når det eksplisitt bes om det.
|
||||
Hvis Ja er valgt, vil tilkoblingen tas opp ved behov, og holdes oppe så lenge
|
||||
det går trafikk. Tidsavbruddet bestemmer hvor lenge tilkoblingen kan være
|
||||
inaktiv før den tas ned. <p>
|
||||
|
||||
<hr>
|
||||
@@ -24,3 +24,4 @@ desc_pl.UTF-8=Klient ADSL
|
||||
desc_no=ADSL klient
|
||||
longdesc_ms_MY=Sediakan klien PPP dengan pakej RP-PPPoE.
|
||||
desc_ms_MY=Klien ADSL
|
||||
longdesc_pl=Konfigurowanie klienta PPTP z pakietem RP-PPPoE.
|
||||
|
||||
@@ -1,24 +1,31 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Start the Ajaxterm webserver on a random port, then print an iframe for
|
||||
# a URL that proxies to it
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
BEGIN { push(@INC, ".."); };
|
||||
use WebminCore;
|
||||
use Socket;
|
||||
our(%text, %config, %gconfig);
|
||||
our $module_root_directory;
|
||||
our $module_name;
|
||||
|
||||
&init_config();
|
||||
|
||||
&ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
|
||||
|
||||
# Check for python
|
||||
$python = &has_command("python");
|
||||
my $python = &has_command("python");
|
||||
if (!$python) {
|
||||
&ui_print_endpage(&text('index_epython', "<tt>python</tt>"));
|
||||
}
|
||||
|
||||
# Pick a free port
|
||||
my %miniserv;
|
||||
&get_miniserv_config(\%miniserv);
|
||||
$port = $miniserv{'port'} + 1;
|
||||
$proto = getprotobyname('tcp');
|
||||
my $port = $miniserv{'port'} + 1;
|
||||
my $proto = getprotobyname('tcp');
|
||||
socket(TEST, PF_INET, SOCK_STREAM, $proto) ||
|
||||
&error("Socket failed : $!");
|
||||
setsockopt(TEST, SOL_SOCKET, SO_REUSEADDR, pack("l", 1));
|
||||
@@ -29,17 +36,17 @@ while(1) {
|
||||
close(TEST);
|
||||
|
||||
# Run the Ajaxterm webserver
|
||||
$pid = fork();
|
||||
my $pid = fork();
|
||||
if (!$pid) {
|
||||
chdir("$module_root_directory/ajaxterm");
|
||||
$logfile = $ENV{'WEBMIN_VAR'}.'/ajaxterm.log';
|
||||
untie(*STDIN); open(STDIN, "</dev/null");
|
||||
untie(*STDOUT); open(STDOUT, ">$logfile");
|
||||
untie(*STDERR); open(STDERR, ">$logfile");
|
||||
$shell = &has_command("bash") ||
|
||||
my $logfile = $ENV{'WEBMIN_VAR'}.'/ajaxterm.log';
|
||||
untie(*STDIN); open(STDIN, "<", "/dev/null");
|
||||
untie(*STDOUT); open(STDOUT, ">", $logfile);
|
||||
untie(*STDERR); open(STDERR, ">", $logfile);
|
||||
my $shell = &has_command("bash") ||
|
||||
&has_command("sh") || "/bin/sh";
|
||||
@uinfo = getpwnam("root");
|
||||
$home = $uinfo[7] || "/";
|
||||
my @uinfo = getpwnam("root");
|
||||
my $home = $uinfo[7] || "/";
|
||||
$shell = "$shell -c ".quotemeta("cd '$home' ; exec $shell");
|
||||
exec($python, "ajaxterm.py", "--port", $port, "--log",
|
||||
$config{'autologin'} ? ("--command", $shell) : ( ));
|
||||
@@ -47,7 +54,9 @@ if (!$pid) {
|
||||
}
|
||||
|
||||
# Wait for it to come up
|
||||
$try = 0;
|
||||
my $try = 0;
|
||||
no strict "subs"; # TEST2 is weird. I dunno how to make it lexical without breaking.
|
||||
no warnings;
|
||||
while(1) {
|
||||
my $err;
|
||||
&open_socket("localhost", $port, TEST2, \$err);
|
||||
@@ -59,6 +68,8 @@ while(1) {
|
||||
sleep(1);
|
||||
}
|
||||
close(TEST2);
|
||||
use strict "subs";
|
||||
use warnings;
|
||||
|
||||
# Show the iframe
|
||||
print "<center>\n";
|
||||
@@ -74,7 +85,7 @@ if (!fork()) {
|
||||
untie(*STDIN); close(STDIN);
|
||||
untie(*STDOUT); close(STDOUT);
|
||||
untie(*STDERR); close(STDERR);
|
||||
$statfile = "$ENV{'WEBMIN_VAR'}/ajaxterm/$port";
|
||||
my $statfile = "$ENV{'WEBMIN_VAR'}/ajaxterm/$port";
|
||||
while(1) {
|
||||
my @st = stat($statfile);
|
||||
if (@st && time() - $st[9] > $config{'timeout'}) {
|
||||
|
||||
@@ -8,3 +8,4 @@ desc_pl=Tryb tekstowy (konsola)
|
||||
desc_hu=Shell hozzáférés (Ajaxterm)
|
||||
desc_ms_MY=Log masuk Teks
|
||||
longdesc_ms_MY=Akses shell pada sistem anda tanpa menggunakan klien SSH secara berasingan dengan menggunaka Ajaxterm
|
||||
longdesc_pl=Dostêp do pow³oki systemowej bez konieczno¶ci u¿ywania oddzielnego klienta SSH, u¿ywaj±c Ajaxterm
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/local/bin/perl
|
||||
# Proxy an Ajaxterm request to the real port
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
BEGIN { push(@INC, ".."); };
|
||||
use WebminCore;
|
||||
@@ -11,29 +13,33 @@ use WebminCore;
|
||||
# Parse out port
|
||||
$ENV{'PATH_INFO'} =~ /^\/(\d+)(.*)$/ ||
|
||||
&error("Missing or invalid PATH_INFO");
|
||||
$port = $1;
|
||||
$path = $2;
|
||||
my $port = $1;
|
||||
my $path = $2;
|
||||
$| = 1;
|
||||
$meth = $ENV{'REQUEST_METHOD'};
|
||||
my $meth = $ENV{'REQUEST_METHOD'};
|
||||
|
||||
# Connect to the Ajaxterm server, send HTTP request
|
||||
$con = &make_http_connection("localhost", $port, 0, $meth, $path);
|
||||
my $con = &make_http_connection("localhost", $port, 0, $meth, $path);
|
||||
&error($con) if (!ref($con));
|
||||
&write_http_connection($con, "Host: localhost\r\n");
|
||||
&write_http_connection($con, "User-agent: Webmin\r\n");
|
||||
$cl = $ENV{'CONTENT_LENGTH'};
|
||||
my $cl = $ENV{'CONTENT_LENGTH'};
|
||||
&write_http_connection($con, "Content-length: $cl\r\n") if ($cl);
|
||||
&write_http_connection($con, "Content-type: $ENV{'CONTENT_TYPE'}\r\n")
|
||||
if ($ENV{'CONTENT_TYPE'});
|
||||
&write_http_connection($con, "\r\n");
|
||||
my $post;
|
||||
if ($cl) {
|
||||
&read_fully(STDIN, \$post, $cl);
|
||||
&read_fully(\*STDIN, \$post, $cl);
|
||||
&write_http_connection($con, $post);
|
||||
}
|
||||
|
||||
# read back the headers
|
||||
$dummy = &read_http_connection($con);
|
||||
my $dummy = &read_http_connection($con);
|
||||
my %header;
|
||||
my $headers;
|
||||
while(1) {
|
||||
my $headline;
|
||||
($headline = &read_http_connection($con)) =~ s/\r|\n//g;
|
||||
last if (!$headline);
|
||||
$headline =~ /^(\S+):\s+(.*)$/ || &error("Bad header");
|
||||
@@ -43,16 +49,17 @@ while(1) {
|
||||
print $headers,"\n";
|
||||
|
||||
# read back contents
|
||||
while($buf = &read_http_connection($con, 1024)) {
|
||||
while(my $buf = &read_http_connection($con, 1024)) {
|
||||
print $buf;
|
||||
}
|
||||
&close_http_connection($con);
|
||||
|
||||
# Touch status file to indicate it is still running
|
||||
$statusdir = $ENV{'WEBMIN_VAR'}."/ajaxterm";
|
||||
my $statusdir = $ENV{'WEBMIN_VAR'}."/ajaxterm";
|
||||
if (!-d $statusdir) {
|
||||
&make_dir($statusdir, 0700);
|
||||
}
|
||||
&open_tempfile(TOUCH, ">$statusdir/$port", 0, 1);
|
||||
&close_tempfile(TOUCH);
|
||||
my $TOUCH;
|
||||
&open_tempfile($TOUCH, ">$statusdir/$port", 0, 1);
|
||||
&close_tempfile($TOUCH);
|
||||
|
||||
|
||||
@@ -676,8 +676,8 @@ elsif (!$olddir && $newdir) {
|
||||
# Update the line numbers and filenames in a list of directives
|
||||
sub recursive_set_lines_files
|
||||
{
|
||||
local ($dirs, $line, $file) = @_;
|
||||
foreach my $d (@$dirs) {
|
||||
my ($dirs, $line, $file) = @_;
|
||||
foreach my $dir (@$dirs) {
|
||||
$dir->{'line'} = $line;
|
||||
$dir->{'file'} = $file;
|
||||
if ($dir->{'type'}) {
|
||||
@@ -1334,7 +1334,8 @@ sub lock_apache_files
|
||||
{
|
||||
local $conf = &get_config();
|
||||
local $f;
|
||||
foreach $f (&unique(map { $_->{'file'} } @$conf)) {
|
||||
@main::locked_apache_files = &unique(map { $_->{'file'} } @$conf);
|
||||
foreach $f (@main::locked_apache_files) {
|
||||
&lock_file($f);
|
||||
}
|
||||
}
|
||||
@@ -1343,9 +1344,10 @@ sub unlock_apache_files
|
||||
{
|
||||
local $conf = &get_config();
|
||||
local $f;
|
||||
foreach $f (&unique(map { $_->{'file'} } @$conf)) {
|
||||
foreach $f (@main::locked_apache_files) {
|
||||
&unlock_file($f);
|
||||
}
|
||||
@main::locked_apache_files = ( );
|
||||
}
|
||||
|
||||
# directive_lines(directive, ...)
|
||||
|
||||
@@ -186,6 +186,7 @@ core_edefchar=Manglende eller ugyldig tegnsett for dokumenter
|
||||
core_edefmime=Standard MIME type må være på formen type/undertype
|
||||
core_edefport=Ugyldig standard port
|
||||
core_edirlog=Feil-logg filen ligger ikke under tillatt katalog
|
||||
core_eduplisten=Lytte-adressen $1 er angitt to ganger
|
||||
core_eerror='$1' er ikke en gyldig feilkode
|
||||
core_eerrordir=Katalog for feillogg filen finnes ikke
|
||||
core_efilelog=Ugyldig feillogg fil
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user