Compare commits

..

287 Commits
1.780 ... 1.801

Author SHA1 Message Date
Jamie Cameron
3fe4bc337a Fix text name 2016-05-26 11:33:35 -07:00
Jamie Cameron
320d63ba2a version bump 2016-05-26 10:49:03 -07:00
Jamie Cameron
4d79a24158 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-26 07:44:12 -07:00
Jamie Cameron
a53b6d96ca On some systems, there is no set_tlsext_host_name function 2016-05-26 07:42:22 -07:00
Jamie Cameron
b0c779923f Merge branch 'master' of github.com:webmin/webmin 2016-05-26 01:09:31 +02:00
Jamie Cameron
a0bd54ab69 version bump 2016-05-25 15:17:37 -07:00
Jamie Cameron
f32aa17317 More perl strict enforcement 2016-05-26 00:02:59 +02:00
Jamie Cameron
24cca0d258 strict conversion 2016-05-25 23:38:35 +02:00
Jamie Cameron
52af4d489a Button to clone a group 2016-05-25 23:14:00 +02:00
Jamie Cameron
262bbd3e03 Clone user UI 2016-05-25 19:15:40 +02:00
Jamie Cameron
6880e5a575 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-25 06:19:48 -07:00
Jamie Cameron
3efec7d052 Make cert type a param 2016-05-25 06:19:42 -07:00
Jamie Cameron
004c9194f3 Suppress errors from systemctl show https://sourceforge.net/p/webadmin/bugs/4756/ 2016-05-25 14:58:34 +02:00
Jamie Cameron
2f95715827 Fix use of undef variable https://sourceforge.net/p/webadmin/bugs/4755/ 2016-05-25 14:48:33 +02:00
Jamie Cameron
2b212ee3ef Make sure that when unlocking apache config files, it is done for the same ones that were originally locked https://www.virtualmin.com/node/40800 2016-05-25 02:06:53 -07:00
Jamie Cameron
cc4b757011 New dev version 2016-05-23 08:22:36 -07:00
Jamie Cameron
d766283296 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-22 07:17:08 -07:00
Jamie Cameron
2e6771e53a Fix warning message 2016-05-22 14:46:15 +01:00
Jamie Cameron
db5cb64c4a Merge branch 'master' of github.com:webmin/webmin 2016-05-22 14:45:32 +01:00
Jamie Cameron
aca8568382 Fix warning message 2016-05-22 14:45:08 +01:00
Jamie Cameron
aad92595a9 German translation updates from Raymond Vetter 2016-05-22 06:42:32 -07:00
Jamie Cameron
caf2f2ac37 Merge pull request #356 from mnoorenberghe/sni_make_http_connection
Use SNI for make_http_connection connections. Fixes #355
2016-05-22 11:28:26 +01:00
Matthew Noorenberghe
b7815aa85e Use SNI for make_http_connection connections. Fixes #355 2016-05-21 20:35:31 -07:00
Jamie Cameron
31bd465921 Path might be broken immediately after /etc 2016-05-21 10:53:42 -07:00
Jamie Cameron
44216dbab9 German translation updates from Raymond Vetter 2016-05-21 10:03:29 -07:00
Jamie Cameron
a43730fe49 German translation updates from Raymond Vetter 2016-05-21 10:03:28 -07:00
Jamie Cameron
6e005a1106 Assume names are in UTF-8 encoding, which is now the webmin default https://github.com/webmin/webmin/issues/353 2016-05-21 03:38:26 -07:00
Jamie Cameron
312cc48597 Prevent a group from having the same ID and a user https://sourceforge.net/p/webadmin/bugs/4675/ 2016-05-21 01:44:41 -07:00
Jamie Cameron
c0292a4df8 Strip off blank extra fields https://github.com/webmin/webmin/issues/354 2016-05-21 01:10:44 -07:00
Jamie Cameron
c1e3f77c09 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-18 01:17:18 -07:00
Jamie Cameron
772a604203 Show recent logins on system information page 2016-05-18 01:17:08 -07:00
Jamie Cameron
1426db5b17 Merge pull request #349 from qooob/patch-34
It's in the button - not dot needed
2016-05-17 22:44:52 +02:00
Ilia Rostovtsev
3d35792877 It's in the button - not dot needed 2016-05-17 23:11:11 +04:00
Jamie Cameron
a3fddd0f12 Show logged out users, and update columns in the UI 2016-05-17 08:23:27 -07:00
Jamie Cameron
f54cecaf0f Add column title 2016-05-17 05:14:15 -07:00
Jamie Cameron
df32d33da5 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-17 04:44:25 -07:00
Jamie Cameron
cf1b514976 Let's Encrypt cert path may be split across multiple lines, but will always be under /etc 2016-05-17 04:44:07 -07:00
Jamie Cameron
0d452693c5 Merge pull request #348 from qooob/patch-33
Fix incorrect col span value that breaks the table drawings
2016-05-17 09:42:00 +02:00
Jamie Cameron
a0fc500676 Fix use of wrong var 2016-05-16 14:26:33 -07:00
Ilia Rostovtsev
846f023392 Fix incorrect col span value that breaks the table drawings
Here is the way it looks without Authentic fixing it. (you can't see it broken in Authentic, see the source).

After applying correct values nothing is broken and looks great:
2016-05-16 15:21:48 +03:00
Jamie Cameron
6f6482005e Apache 2.2.15 does support TLS 1.1 and 1.2 2016-05-14 21:27:54 -07:00
Jamie Cameron
9012d421cf Make variable local 2016-05-14 21:14:51 -07:00
Jamie Cameron
8b015bff01 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-14 21:14:13 -07:00
Jamie Cameron
16c35e2d1e Fix comparison of versions like foo1 and foo2 2016-05-14 21:13:36 -07:00
Jamie Cameron
9860c6b6e4 Merge pull request #346 from qooob/patch-32
Respect module info
2016-05-11 23:08:53 -07:00
Jamie Cameron
7216982ded Merge pull request #343 from TTMelki/patch-5
Update fr
2016-05-11 22:12:26 -07:00
Jamie Cameron
126659a8d1 Merge pull request #341 from TTMelki/patch-3
Create fr.UTF-8
2016-05-11 22:05:17 -07:00
Jamie Cameron
0b27152141 Merge pull request #340 from qooob/patch-29
Folder is more Windows like, Directory is Linux.
2016-05-11 22:03:13 -07:00
Ilia Rostovtsev
f20d24a1be Respect module info 2016-05-11 14:00:44 +04:00
TTMelki
728b8125de Update fr 2016-05-11 09:52:27 +02:00
TTMelki
7a95702ca2 Create fr.UTF-8 2016-05-11 09:09:09 +02:00
Ilia Rostovtsev
83a1893c7b Folder is more Windows like, Directory is Linux.
Updated all strings from folder to directory
2016-05-11 11:01:41 +04:00
Jamie Cameron
bc23507717 Merge pull request #339 from TTMelki/patch-2
Create fr translation file
2016-05-10 23:56:01 -07:00
TTMelki
a054392f7a Create fr translation file 2016-05-11 08:54:32 +02:00
Jamie Cameron
d56fb1d1e9 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-10 22:42:15 -07:00
Jamie Cameron
7a270465d3 Add missing string https://www.virtualmin.com/node/40681 2016-05-10 22:30:23 -07:00
Jamie Cameron
99e62cd67a Merge pull request #334 from qooob/patch-25
In current state it will never properly print correct UTF8 lke value …
2016-05-09 21:41:49 -07:00
Ilia Rostovtsev
ba8b0e8972 In current state it will never properly print correct UTF8 lke value to check box
As the result copy/paste and other operations will fail for Russian and other UTF8 like encodings.
2016-05-10 00:33:55 +04:00
Jamie Cameron
1bc09c40b6 Merge pull request #333 from qooob/patch-24
To compliy with upcomming Authentic release 18.00
2016-05-08 10:27:25 -07:00
Jamie Cameron
f38f3c7bec Merge pull request #332 from qooob/patch-22
Respect language forms
2016-05-08 09:45:25 -07:00
Ilia Rostovtsev
9f293451b9 To compliy with upcomming Authentic release 18.00
Respecting language forms is nice.
2016-05-08 18:46:59 +04:00
Ilia Rostovtsev
3d6e58dcba Respect language forms 2016-05-08 18:44:54 +04:00
Jamie Cameron
1cfe6b90d7 Remove debug code 2016-05-06 19:14:45 -07:00
Jamie Cameron
23aef652a7 Version bump for devel release 2016-05-06 19:13:08 -07:00
Jamie Cameron
74ca08fd42 Revert to using File::Mimeinfo module 2016-05-06 19:12:29 -07:00
Jamie Cameron
1c0e069881 Fix ordering of params to symlink 86eeb96334 2016-05-06 17:33:22 -07:00
Jamie Cameron
80be0a3c4c Use built-in function for MIME types https://sourceforge.net/p/webadmin/bugs/4745/ 2016-05-05 21:01:41 -07:00
Jamie Cameron
074f7561d8 Merge branch 'master' of git@github.com:webmin/webmin 2016-05-05 20:39:55 -07:00
Jamie Cameron
b5b81a95cf Merge pull request #323 from qooob/patch-13
For search page path could be printed twice in some cases
2016-05-05 20:39:45 -07:00
Jamie Cameron
86eeb96334 copy_source_dest support for symlinks https://github.com/webmin/webmin/issues/322 2016-05-05 20:37:29 -07:00
Ilia Rostovtsev
ae15622a57 For search page path could be printed twice in some cases
This fix will prevent double printing of the path for searched (found) folders.

It doesn't happen always but only if search results contain same value for directory and file.

Can be reproduced by going to `/boot/grub` and searching for `grub`. With the current code the folder `grub` (same as the current folder) printed on the results with doubled path on the link and thus doesn't open correctly. The best is to tweak `search.cgi` that filters search results and remove from results same folder as parent. It's more complicated. My fix does it safely, I think.
2016-05-05 23:12:24 +04:00
Jamie Cameron
094a187d54 Merge pull request #321 from qooob/patch-12
The rest of the code to support new extraction methods
2016-05-04 17:46:55 -07:00
Jamie Cameron
d44c46425f Merge pull request #320 from qooob/patch-10
Support for extracting: .7z, .bz2, .xz, .gz, .rar
2016-05-04 17:46:37 -07:00
Jamie Cameron
bd93dbe9f0 Merge pull request #319 from qooob/patch-9
Certificates must be editable
2016-05-04 17:31:14 -07:00
Ilia Rostovtsev
b5990ef9fb The rest of the code to support new extraction methods
Just committed to `extract.cgi`. Command is checked for existence and if found extract button will appear on the interface in all themes.
2016-05-04 18:01:51 +04:00
Ilia Rostovtsev
fe6965d1e2 Support for extracting: .7z, .bz2, .xz, .gz, .rar
Commands are checked before they run so no need for last else part which outputted an error message. The rest of the code I will add to -lib file.

P.S. Jamie, I tried removing `use File::MimeInfo;` in this file as on current branch and it returned an error!? Please double check.
2016-05-04 17:46:10 +04:00
Ilia Rostovtsev
c23445a223 Certificates must be editable 2016-05-04 14:28:16 +04:00
Jamie Cameron
9da5454082 Dev version bump 2016-05-02 20:35:48 -07:00
Jamie Cameron
a405b317e3 When backing up a database, only run the actual writing command as the user, rather than all of mysqldump 2016-05-01 11:21:51 -07:00
Jamie Cameron
0237dd2a0f Remove duplicate footer https://github.com/qooob/authentic-theme/issues/454 2016-05-01 11:03:02 -07:00
Jamie Cameron
6e38d8bc8c Merge branch 'master' of git@github.com:webmin/webmin 2016-05-01 10:45:26 -07:00
Jamie Cameron
e934994e8f Prevent page for hanging forver 5d0f6f0597 2016-05-01 10:40:52 -07:00
Jamie Cameron
232facbf39 Merge pull request #316 from qooob/patch-6
9000+ is way to little for `$pagelimit`
2016-05-01 10:24:03 -07:00
Ilia Rostovtsev
293d9e17ff Authentic dones't need init_datatables() 2016-05-01 12:52:02 +04:00
Jamie Cameron
c00971b390 Merge pull request #317 from qooob/patch-7
get_paths(); doesn't return proper results
2016-04-29 22:45:48 -07:00
Ilia Rostovtsev
3d5e013f59 get_paths(); doesn't return proper results
For wheel users (non-root but admins) `get_paths();` has a bug and doesn't work correctly.

It causes some other issues in user mode. Probably, if you on the `inthebox` login as `blog` user and go to File Manager, click copy - Perl Error happens. (under all themes)
2016-04-29 13:19:27 +04:00
Ilia Rostovtsev
fd3f6c729f 9000+ is way to little for $pagelimit 2016-04-29 12:56:01 +04:00
Jamie Cameron
5d0f6f0597 Handle new yum package list format https://github.com/webmin/webmin/issues/282 2016-04-27 22:31:09 -07:00
Jamie Cameron
0a2be8ecfd Support PHP 7 in mod_php 2016-04-25 21:30:05 -07:00
Jamie Cameron
a9a6d51030 dev version bump 2016-04-25 19:19:12 -07:00
Jamie Cameron
199f5edb9e Add support for Cloudrouter 2016-04-24 15:13:22 -07:00
Jamie Cameron
ce698f5bae acme_tiny can also work with Python 2.6 https://www.virtualmin.com/node/40076 2016-04-24 09:59:23 -07:00
Jamie Cameron
e27da435ff Use python27 command if installed https://www.virtualmin.com/node/40076 2016-04-23 15:07:43 -07:00
Jamie Cameron
5c31829dc7 Clean up leftover user attributes in /etc/webmin/config https://www.virtualmin.com/node/40477 2016-04-23 14:59:24 -07:00
Jamie Cameron
4ac4a2be0a Polish translation from Piotr Kozica 2016-04-22 20:32:54 -07:00
Jamie Cameron
00c632b001 Polish translation from Piotr Kozica 2016-04-22 20:07:27 -07:00
Jamie Cameron
3a590ddf6f Restore all modules by default https://www.virtualmin.com/node/40451 2016-04-22 19:53:16 -07:00
Jamie Cameron
667362c82a Include PHP versions from Virtualmin https://www.virtualmin.com/node/40450 2016-04-21 21:28:40 -07:00
Jamie Cameron
20862dca92 Don't treat dir as a regexp https://www.virtualmin.com/node/40452 2016-04-21 18:40:38 -07:00
Jamie Cameron
b5b45960a5 Include some more config files in backup https://www.virtualmin.com/node/40448 2016-04-20 21:43:22 -07:00
Jamie Cameron
601b234126 Also set authentication_string to empty if it exists https://sourceforge.net/p/webadmin/bugs/4735/ 2016-04-16 13:44:42 -07:00
Jamie Cameron
f2de59b1df Merge branch 'master' of git@github.com:webmin/webmin 2016-04-16 13:42:18 -07:00
Jamie Cameron
d61fb46c74 Fix host message in log if empty 2016-04-16 13:41:45 -07:00
Jamie Cameron
7fc27fdcdd Merge pull request #310 from qooob/patch-5
JSON must be editable
2016-04-16 08:28:04 -07:00
Ilia Rostovtsev
95d025a5b1 JSON must be editable 2016-04-16 11:44:14 +04:00
Jamie Cameron
83ee80c675 Merge pull request #308 from qooob/patch-3
Anything is an object, right?
2016-04-13 20:18:36 -07:00
Jamie Cameron
d4ef81f6b2 Merge pull request #309 from qooob/patch-4
Anything is an object, right? (MySQL clone)
2016-04-13 20:14:39 -07:00
Ilia Rostovtsev
2e76243908 Anything is an object, right? (MySQL clone) 2016-04-13 13:13:40 +04:00
Ilia Rostovtsev
97e1ad4c50 Anything is an object, right?
Jamie, it's nicer to be specific.

Please separate tables and rows from being objects in case my changes will cause problems.

Ajaxifiyng MySQL module, just wanted to be best.
2016-04-13 13:11:53 +04:00
Jamie Cameron
a4f67548f2 German translation updates from Raymond Vetter 2016-04-12 22:11:50 -07:00
Jamie Cameron
442c8a623b Merge pull request #307 from casparsmit/patch-2
Add common spanning tree tunables for bridges
2016-04-12 19:20:43 -07:00
casparsmit
4bb2ebb84e Add common spanning tree tunables for bridges 2016-04-12 14:35:36 +02:00
casparsmit
07772b29f6 Add common spanning tree tunables for bridges 2016-04-12 14:33:28 +02:00
casparsmit
1e95673391 Add common spanning tree tunables for bridges 2016-04-12 14:31:40 +02:00
casparsmit
f8982ddf4f Add common spanning tree tunables for bridges 2016-04-12 14:25:03 +02:00
casparsmit
3ce61adcc0 Add common spanning tree tunables for bridges 2016-04-12 14:19:30 +02:00
Jamie Cameron
98ff989bb9 Allow use of ${DOM} in template value 2016-04-11 20:31:59 -07:00
Jamie Cameron
204d7d30b6 Actually all operating systems should be supported 2016-04-11 20:19:07 -07:00
Jamie Cameron
7ef105ea01 Syncing of users was broken because 'olds' is actually an array https://sourceforge.net/p/webadmin/bugs/4732/ 2016-04-10 10:23:45 -07:00
Jamie Cameron
96e31eb5a2 Show this host nicer 2016-04-10 10:14:51 -07:00
Jamie Cameron
1668f6f77e Sort nicer 2016-04-10 10:07:12 -07:00
Jamie Cameron
0287e53229 changelog for network() soruce 2016-04-09 21:05:31 -07:00
Jamie Cameron
173efa83df Allow use of network() source type https://github.com/webmin/webmin/issues/303 2016-04-09 20:43:00 -07:00
Jamie Cameron
a4cb099b3f Show network source nicely 2016-04-09 17:08:05 -07:00
Jamie Cameron
e0731515d7 Use post for buttons row to prevent double-submit https://github.com/webmin/webmin/issues/302 2016-04-09 13:51:37 -07:00
Jamie Cameron
d3fc96827d German translation updates from Raymond Vetter 2016-04-08 16:57:27 -07:00
Jamie Cameron
452224a24d Make sure let's encrypt key, cert and chain aren't world readable 2016-04-08 16:55:45 -07:00
Jamie Cameron
69fd79e2b3 Remove useless module call 2016-04-08 13:50:32 -07:00
Jamie Cameron
fa8654714a Fix more references to old module name 2016-04-08 13:46:15 -07:00
Jamie Cameron
28888930e7 Declare forgotten variable 2016-04-08 13:39:21 -07:00
Jamie Cameron
7e2b4e6c5e dev version bump 2016-04-08 13:32:55 -07:00
Jamie Cameron
c613cdc8c9 don;'t completely crash if one module fails 2016-04-08 12:07:54 -07:00
Jamie Cameron
b05a2794d8 Merge branch 'master' of git@github.com:webmin/webmin 2016-04-06 22:26:48 -07:00
Jamie Cameron
997b33e5fb module_name cannot be used in library code https://sourceforge.net/p/webadmin/bugs/4730/ 2016-04-06 22:21:38 -07:00
Jamie Cameron
a1a86cfa42 Merge pull request #301 from bram96/master
Letsencrypt CA cert
2016-04-05 22:40:40 -07:00
Jamie Cameron
475870db79 Let's Encrypt chained cert has changed 2016-04-05 22:39:16 -07:00
Jamie Cameron
9189c1446a Support configure a primary teaming interface, thanks to Caspar Smit 2016-04-05 21:40:44 -07:00
bram96
ad9c2ec0f9 Merge pull request #1 from bram96/bram96-fix-letsencrypt
Fix letsencrypt CA
2016-04-05 19:22:52 +02:00
bram96
e395cf951e Fix letsencrypt CA 2016-04-05 19:22:28 +02:00
Jamie Cameron
1fcb3129f5 Merge pull request #298 from qooob/patch-2
File is not a folder
2016-04-04 19:50:59 -07:00
Jamie Cameron
c5fe632e4e Merge pull request #297 from qooob/patch-1
Folder is not a file
2016-04-04 19:50:36 -07:00
Ilia Rostovtsev
c176073339 File is not a folder 2016-04-04 14:05:23 +04:00
Ilia Rostovtsev
27c7872c94 Folder is not a file 2016-04-04 14:04:16 +04:00
Jamie Cameron
915b6ec224 PEM file path can be wrapped https://www.virtualmin.com/node/40240 2016-04-03 14:34:10 -07:00
Jamie Cameron
f3a393b2f8 Ignore signals that might fire if webmin is upgraded, or if an apache proxy is https://github.com/webmin/webmin/issues/296 2016-04-03 09:21:38 -07:00
Jamie Cameron
e529789543 Sane defaults for bonding interfaces, thanks to Caspar Smit 2016-04-01 21:50:46 -07:00
Jamie Cameron
5a20e411fc DNF uses the the word 'Upgrading' 4912384cd7 (commitcomment-16928342) 2016-04-01 21:34:31 -07:00
Jamie Cameron
7ef6ea921a Don't try a multiple package update if there isn't more than one 2016-03-31 22:07:19 -07:00
Jamie Cameron
63b6af8dd4 Document root may be quoted 2016-03-30 21:17:24 -07:00
Jamie Cameron
a103a0b10f Correct form number https://github.com/webmin/webmin/issues/294 2016-03-30 18:14:02 -07:00
Jamie Cameron
f2374b1fa2 ui-lib conversion 2016-03-28 17:12:09 -07:00
Jamie Cameron
40a90f7c71 Use pg_users instead of pg_shadow in latest PostgreSQL versions https://sourceforge.net/p/webadmin/bugs/4727/ 2016-03-27 16:26:19 -07:00
Jamie Cameron
46d7022cc9 Complete support for mysql include files https://sourceforge.net/p/webadmin/bugs/4726/ 2016-03-26 18:05:02 -07:00
Jamie Cameron
7efcd84bda Support mysql.conf innf include files https://sourceforge.net/p/webadmin/bugs/4726/ 2016-03-25 21:25:52 -07:00
Jamie Cameron
0e64774db3 Ubuntu 16 support 2016-03-24 22:08:45 -07:00
Jamie Cameron
e9a08bb3bb Variable has been renamed to key_buffer_size https://sourceforge.net/p/webadmin/bugs/4724/ 2016-03-24 20:36:00 -07:00
Jamie Cameron
e2df09438a Norwegian update from Stein-Aksel Basma 2016-03-23 22:12:09 -07:00
Jamie Cameron
63830dd456 If command set does't exist, don't use it 2016-03-22 22:08:34 -07:00
Jamie Cameron
d4b401e913 Handle case with no output 2016-03-22 22:01:32 -07:00
Jamie Cameron
a889ef3afc Show epoch-format leases nicely 2016-03-21 21:59:58 -07:00
Jamie Cameron
5f686de889 Handle epoch lease time format https://sourceforge.net/p/webadmin/bugs/4711/ 2016-03-21 21:55:45 -07:00
Jamie Cameron
9fcaa65ef4 German translation updates from Raymond Vetter 2016-03-21 20:55:10 -07:00
Jamie Cameron
8bd1b626dd Don't do automatic perl module provides, as this includes some copies of modules https://sourceforge.net/p/webadmin/bugs/4725/ 2016-03-21 20:31:48 -07:00
Jamie Cameron
cf771963c7 Add missing message for missing python module 2016-03-20 11:09:59 -07:00
Jamie Cameron
4912384cd7 Update multiple packages at the same time https://github.com/webmin/webmin/issues/286 2016-03-20 11:09:36 -07:00
Jamie Cameron
124d182bf6 Make units easier 2016-03-19 23:04:30 -07:00
Jamie Cameron
e972b65393 Put longer version numbers first, so that 10.11 doesn't match 10.1 https://www.virtualmin.com/node/39969 2016-03-19 21:58:56 -07:00
Jamie Cameron
9d0d796469 Check if the argparse python module is installed https://www.virtualmin.com/node/40053 2016-03-19 17:16:17 -07:00
Jamie Cameron
1456825ed4 Fix parsing in debug mode https://sourceforge.net/p/webadmin/bugs/4723/ 2016-03-18 22:38:07 -07:00
Jamie Cameron
9670fb69cc Break all the way out of the loop https://sourceforge.net/p/webadmin/bugs/4720/ 2016-03-17 22:21:43 -07:00
Jamie Cameron
0dd18f3f77 Rename Webmin to WebminUI, to avoid clashes with webmin on OSX https://www.virtualmin.com/node/39987 2016-03-17 20:27:18 -07:00
Jamie Cameron
21eb487ebb fix quote 2016-03-15 22:07:18 -07:00
Jamie Cameron
72cd4b3a4e Allow log paths that are variables https://www.virtualmin.com/node/38963 2016-03-15 21:07:06 -07:00
Jamie Cameron
8e2815dabe Don't spin forever on cancelled upload https://sourceforge.net/p/webadmin/bugs/4720/ 2016-03-15 20:36:11 -07:00
Jamie Cameron
581047a965 Compare fully qualified IPv6 addresses 2016-03-14 23:03:23 -07:00
Jamie Cameron
1db718fd95 fix docs 2016-03-12 20:59:00 -08:00
Jamie Cameron
04dd39842d Add missing footer 2016-03-12 20:58:44 -08:00
Jamie Cameron
72d103ea2e Add missing config files 2016-03-12 16:40:00 -08:00
Jamie Cameron
8163db111a Better handle map specs inside lists of directives 2016-03-12 16:35:35 -08:00
Jamie Cameron
55ea719197 Fix incorrect line variable 2016-03-12 15:30:06 -08:00
Jamie Cameron
116cd4162d Use hostinfo to get total RAM 2016-03-10 22:55:51 -08:00
Jamie Cameron
6791b6895f Remove obsolete feedback link 2016-03-09 21:51:58 -08:00
Jamie Cameron
2b082de03d Merge branch 'master' of git@github.com:webmin/webmin 2016-03-09 21:19:16 -08:00
Jamie Cameron
6ad0df49e1 Properly remove use of old API for writing files https://sourceforge.net/p/webadmin/bugs/4717/ 2016-03-09 21:12:36 -08:00
Jamie Cameron
a9e3582190 Merge pull request #289 from nielosz/master
Handle pipe commands
2016-03-09 20:27:32 -08:00
nielosz
5db95b1e27 Merge pull request #1 from nielosz/Handle-Pipe-commands
Handle pipe commands
2016-03-09 11:38:23 +01:00
nielosz
575f169b93 Update bacula-backup-lib.pl 2016-03-09 11:36:13 +01:00
Jamie Cameron
efb8150510 Version bump 2016-03-07 11:06:22 -08:00
Jamie Cameron
10f12a83c6 Rollback to HTTP 1.0, as switching to 1.1 seems to break some downloads 2016-03-07 10:28:39 -08:00
Jamie Cameron
3243948e59 Quotes are not valid around an email in an SOA https://www.virtualmin.com/node/39872 2016-03-06 15:39:41 -08:00
Jamie Cameron
1cf382deab Don't die if a path cannot be utf-8 decoded 2016-03-06 10:22:28 -08:00
Jamie Cameron
785cc54ddc Norwegian update from Stein-Aksel Basma 2016-03-05 11:55:16 -08:00
Jamie Cameron
d2e52c81d4 German translation updates from Raymond Vetter 2016-03-01 11:59:48 -08:00
Jamie Cameron
081036d8f6 German translation updates from Raymond Vetter 2016-03-01 11:59:48 -08:00
Jamie Cameron
64656b6f24 Norwegian update from Stein-Aksel Basma 2016-03-01 11:58:18 -08:00
Jamie Cameron
f5ccedfe5b Only save one file 2016-02-29 20:27:21 -08:00
Jamie Cameron
85a9056ee8 LSI 9750 is really 3ware https://www.virtualmin.com/node/39844 2016-02-29 16:31:58 -08:00
Jamie Cameron
0291ce2e66 Allow exclusion of files at module build time 2016-02-29 16:19:32 -08:00
Jamie Cameron
51a0631bde Allow forcing of a specific version 2016-02-29 15:39:13 -08:00
Jamie Cameron
7eec607f86 HTTP 1.0 is dead and buries 2016-02-29 15:34:48 -08:00
Jamie Cameron
4cbffaa875 Handle https properly 2016-02-29 15:25:08 -08:00
Jamie Cameron
1f5c860698 Fix table to regenerate 2016-02-28 13:03:44 -08:00
Jamie Cameron
480f0f0955 Only exclude clones 2016-02-28 13:01:00 -08:00
Jamie Cameron
80ecd012cf Make perl path consistent with the repo 2016-02-28 10:57:24 -08:00
Jamie Cameron
5e042e7f51 Version bump 2016-02-28 10:20:14 -08:00
Jamie Cameron
e780c2fa1c Fix duplicate string 2016-02-28 10:19:22 -08:00
Jamie Cameron
f94faaf303 Remove special case name change for Filemin 2016-02-28 10:07:59 -08:00
Jamie Cameron
9d2f479e6c Catalan update from Jaume Badiella 2016-02-28 09:50:53 -08:00
Jamie Cameron
e7b4985fc5 Catalan update from Jaume Badiella 2016-02-28 09:50:09 -08:00
Jamie Cameron
a2816947b1 Make all output matches case insensitive https://sourceforge.net/p/webadmin/bugs/4654/ 2016-02-27 16:51:58 -08:00
Jamie Cameron
004a888071 Clear all the caches https://github.com/webmin/webmin/issues/282 2016-02-27 15:02:00 -08:00
Jamie Cameron
6041a45e83 Skip relative paths 2016-02-26 22:09:38 -08:00
Jamie Cameron
695577a40e Handle non-syslog logs as well https://github.com/webmin/webmin/issues/283 2016-02-26 22:08:47 -08:00
Jamie Cameron
bcbd707307 Allow fast switching between logs https://github.com/webmin/webmin/issues/283 2016-02-24 21:29:12 -08:00
Jamie Cameron
c237e851f6 Use standard UI functions 2016-02-24 21:22:23 -08:00
Jamie Cameron
629f7e033b remove auto-added lines 2016-02-22 20:07:19 -08:00
Jamie Cameron
a59cd42151 Re-fork filemin from 1.783 release 2016-02-22 20:06:44 -08:00
Jamie Cameron
9ed6338db6 Undo filemin fork 2016-02-22 20:05:11 -08:00
Jamie Cameron
f98e8e3398 Bring filemin as of the last webmin release across to our own repo 2016-02-21 15:36:17 -08:00
Jamie Cameron
bcc4822e0e Use apt-cache show to get current package info if available 2016-02-18 23:16:06 -08:00
Jamie Cameron
c45980160a German translation updates from Raymond Vetter 2016-02-16 14:21:14 -08:00
Jamie Cameron
8a1446ab2c Enable server-side preferred ciphers by default 2016-02-14 18:48:21 -08:00
Jamie Cameron
c0500ee0a0 German translation updates from Raymond Vetter 2016-02-11 19:42:42 -08:00
Jamie Cameron
a8036120b9 Don't show negative RAM free 2016-02-10 23:10:53 -08:00
Jamie Cameron
6b3b7096ea Allow users who cannot drop a DB to still empty it https://www.virtualmin.com/node/28549 2016-02-10 22:49:41 -08:00
Jamie Cameron
747ea46c54 Norwegian update from Stein-Aksel Basma 2016-02-08 14:11:37 -08:00
Jamie Cameron
90d2da3588 Properly support multi-domain let's encrypt certs by generating a temporary config file with the altnames 2016-02-06 18:29:41 -08:00
Jamie Cameron
2fd5b42b60 German translation updates from Raymond Vetter 2016-02-06 17:29:58 -08:00
Jamie Cameron
3111fb4bd0 Extract alt names from the subject field. Turns out this doesn't actually work (let's encrypt doesn't sign for them), but it's worth a try 2016-02-06 16:23:50 -08:00
Jamie Cameron
2990aaaa99 Support multiple alt-names in SSL CSRs 2016-02-05 22:58:44 -08:00
Jamie Cameron
baef8aba0f If a systemd service suggests using journalctl to get more logs, do it 2016-02-05 17:36:22 -08:00
Jamie Cameron
46c2113f2f Support for editing Postfix sender restriction maps 2016-02-04 21:47:46 -08:00
Jamie Cameron
f11ef10942 Merge branch 'master' of git@github.com:webmin/webmin 2016-02-04 20:15:14 -08:00
Jamie Cameron
30597f6c38 SPF a tag cannot be an IP address https://sourceforge.net/p/webadmin/bugs/4706/ 2016-02-04 20:09:28 -08:00
Jamie Cameron
167239f8fc Merge pull request #280 from BangL/master
fixes for changes made in shorewall 4.5.3, 4.5.11 and 4.6.0
2016-02-01 20:00:35 -08:00
BangL
16fa5c5bec fixes for changes made in shorewall 4.5.3, 4.5.11 and 4.6.0
- rules: (?)SECTION and (?)COMMENT
- interfaces: (?)FORMAT {1|2}
2016-02-02 03:17:22 +01:00
Jamie Cameron
319a3b4d84 Email addresses cannot have spaces https://www.virtualmin.com/node/39564: 2016-02-01 17:44:12 -08:00
Jamie Cameron
a3fa53727d dom can be an array https://www.virtualmin.com/node/39530 2016-01-31 14:05:22 -08:00
Jamie Cameron
e9640d7622 Dev version bump 2016-01-30 16:39:43 -08:00
Jamie Cameron
7ba7a75df1 Support setting attributes for the td 2016-01-30 15:21:15 -08:00
Jamie Cameron
10b9916097 Add size for sorting as a number https://www.virtualmin.com/node/39494 2016-01-30 15:10:12 -08:00
Jamie Cameron
5bbfbc4a36 Fix select all / invert https://www.virtualmin.com/node/39529 2016-01-29 20:46:53 -08:00
Jamie Cameron
f4a7048fd9 Norwegian update from Stein-Aksel Basma 2016-01-28 19:42:52 -08:00
Jamie Cameron
9c63d0c352 Add missing footer to root password form https://github.com/webmin/webmin/issues/278 2016-01-27 19:08:33 -08:00
Jamie Cameron
ff08544347 Fail early if given config file doens't exist 2016-01-26 21:00:17 -08:00
Jamie Cameron
4265e07b4e Document new flag 2016-01-24 10:04:22 -08:00
Jamie Cameron
f06270fca1 Add some formal params 2016-01-24 10:03:43 -08:00
Jamie Cameron
350bd60cc5 German translation updates from Raymond Vetter 2016-01-24 09:38:47 -08:00
Jamie Cameron
b001855672 Support multiple file uploads 2016-01-23 21:48:42 -08:00
Jamie Cameron
bb98a1af45 Support multiple files per attachment field 2016-01-23 17:58:54 -08:00
Jamie Cameron
9040c26581 Fix group matched for content type 2016-01-23 17:49:49 -08:00
Jamie Cameron
5d0411b789 Add option to store multiple values for the same input in an array 2016-01-23 15:09:36 -08:00
Jamie Cameron
fb842fbeda Allow multiple uploads 2016-01-23 14:40:20 -08:00
Jamie Cameron
2d18903ac6 Fix typo 2016-01-23 13:56:59 -08:00
Jamie Cameron
d19f95c65d Warn if a user being edited belongs to Virtualmin, for PostgreSQL too https://www.virtualmin.com/node/39428 2016-01-23 13:56:30 -08:00
Jamie Cameron
35c65587ba Warn if a user being edited belongs to Virtualmin https://www.virtualmin.com/node/39428 2016-01-23 13:53:55 -08:00
Jamie Cameron
cd34c5450e German translation updates from Raymond Vetter 2016-01-22 23:42:01 -08:00
Jamie Cameron
4fe4d935a1 Don't allow deletion of anonymous users https://www.virtualmin.com/node/39426 2016-01-22 22:27:57 -08:00
Jamie Cameron
0229cc5c8e Wait at most 5 seconds to check new webmin version 2016-01-22 22:18:58 -08:00
Jamie Cameron
fd719dbf47 Exclude pyc files from packages, as they get re-compiled 2016-01-21 23:00:47 -08:00
Jamie Cameron
e5b05b4e2b Add missing string for special sync button 2016-01-21 22:40:29 -08:00
Jamie Cameron
a948c6d938 Exclude files when building a module from a locally checked out repo 2016-01-21 22:40:09 -08:00
Jamie Cameron
d032b22ac3 Completed support for cert request with acme_tiny 2016-01-21 22:34:50 -08:00
Jamie Cameron
a23867f019 Re-factor CSR function 2016-01-21 21:55:48 -08:00
Jamie Cameron
e564acbbf9 Fix comments 2016-01-19 22:29:06 -08:00
Jamie Cameron
b4617d7c1c Improve detection of invalid renewal period 2016-01-18 17:20:16 -08:00
Jamie Cameron
cc217d3044 completed renewal support 2016-01-18 14:36:19 -08:00
Jamie Cameron
8a86381d6e Start of work on renewal support for let's encrypt 2016-01-17 21:35:39 -08:00
Jamie Cameron
1cf689e931 Support interval-based webmincron time specs 2016-01-17 21:04:45 -08:00
Jamie Cameron
5000eddb37 Preserve unix file attributes on copy http://sourceforge.net/p/webadmin/bugs/4701/ 2016-01-14 22:29:07 -08:00
Jamie Cameron
be4cf27e12 Remove special case for old version, and add formal params 2016-01-14 21:23:01 -08:00
Jamie Cameron
44ef858725 login might not be set 2016-01-11 12:47:55 -08:00
Jamie Cameron
c18bbbee4c dev version bump 2016-01-10 22:30:15 -08:00
Jamie Cameron
769b7d82f0 Support El Capitan 2016-01-10 10:11:58 -08:00
Jamie Cameron
9b3513b148 Add support for Ubuntu 15 2016-01-08 16:47:16 -08:00
Jamie Cameron
882588d815 Add a missing perl lib needed for DNSSEC https://github.com/webmin/webmin/issues/275 2016-01-08 16:14:20 -08:00
Jamie Cameron
38bbcf1196 Stop showing encrypted password column, as it may not even exist 2016-01-06 19:19:33 -08:00
Jamie Cameron
c7d2d2a78a Allow requesting of multi-domain certs 2016-01-06 19:07:47 -08:00
Jamie Cameron
b2716fc22d Dev version bump 2016-01-05 20:47:38 -08:00
Jamie Cameron
2f98174db7 Matches before applying can be zero https://sourceforge.net/p/webadmin/bugs/4699/ 2016-01-05 20:10:01 -08:00
Jamie Cameron
2f031a1a02 Show package name lines 2016-01-05 19:59:07 -08:00
Jamie Cameron
97e7ddafd7 Use specific zone name indnssec-dsfromkey, and add missing newline when displaying https://github.com/webmin/webmin/issues/272 2016-01-03 10:08:57 -08:00
Jamie Cameron
650c06300a Fix method of getting username from LDAP object https://sourceforge.net/p/webadmin/bugs/4695/ 2016-01-02 13:19:52 -08:00
Jamie Cameron
9a7ec78cc0 German translation updates from Raymond Vetter 2016-01-02 10:43:19 -08:00
Jamie Cameron
8d5109718b Don't shows hosts table on MySQL 5.7+ 2016-01-01 15:10:45 -08:00
Jamie Cameron
0358fb2795 German translation updates from Raymond Vetter 2015-12-29 16:05:27 -08:00
Jamie Cameron
0f754b170b German translation updates from Raymond Vetter 2015-12-29 16:05:07 -08:00
1109 changed files with 86005 additions and 3199 deletions

View File

@@ -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
View File

@@ -1,4 +1,4 @@
Webmin Version 1.780
Webmin Version 1.801
--------------------
Webmin is a web-based interface for system administration for Unix.
Using any browser that supports tables and forms, you can setup user

View File

@@ -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;

View File

@@ -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
View 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;

View File

@@ -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 = { };

View File

@@ -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 = { };

View File

@@ -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 = { };

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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 = { });

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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

View File

@@ -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;

View File

@@ -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 = { };

View File

@@ -1,4 +1,4 @@
package Webmin::Input;
package WebminUI::Input;
use WebminCore;
sub set_form

View File

@@ -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 ]);

View File

@@ -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 = { };

View File

@@ -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

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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 ( );
}

View File

@@ -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 ( );
}

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -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
View 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;

View File

@@ -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;

View File

@@ -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 };

View File

@@ -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 = { };

View File

@@ -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")
? "&nbsp;|&nbsp;" : "&nbsp;";
$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

View File

@@ -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 = { };

View File

@@ -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 };

View File

@@ -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;
}

View File

@@ -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 };

View File

@@ -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 = { });

View File

@@ -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

View File

@@ -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 };

View File

@@ -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;

View File

@@ -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;

View File

@@ -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'});
}

View File

@@ -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'});
}

View File

@@ -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.

View File

@@ -100,6 +100,7 @@ cpass_notre=Entspricht einen nicht erlaubten Muster
cpass_old=Alte Kennw&#246;rter k&#246;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&#246;rterbuchpr&#252;fung durchzuf&#252;hren
delete_eanonuser=Dieser Benutzer wird f&#252;r anonymen Modul-Zugriff verwendet
delete_ecannot=Sie haben keine Berechtigung Benutzer zu l&#246;schen
delete_err=Fehler beim L&#246;schen des Benutzers
delete_eself=Sie k&#246;nnen sich selber nicht l&#246;schen
@@ -270,6 +271,7 @@ log_switch=Gewechselt zu Benutzer $1
log_sync=&#196;ndere Unixbenutzer-Syncronisation
log_twofactor=Benutzer $1 mit 2-Faktor-Anbieter $2 angemeldet
log_unix=&#196;ndere Unixbenutzer-Authentifizierung
logins_title=Aktuelle Webmin-Logins
make_done=.. fertig
make_err=Fehlgeschlagen Benutzer- und Gruppentabellen zu erstellen
make_exec=Ausf&#252;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&#223;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&#252;gen neuer Benutzer zur Datenbank, wie oben ausgew&#228;hlt

View File

@@ -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 ..

View File

@@ -100,6 +100,7 @@ cpass_notre=Matcher et
cpass_old=Gamle passord kan ikke brukes p&#229; nytt
cpass_re=Stemmer ikke med et p&#229;krevd m&#248;nster
cpass_spellcmd=Ingen av kommandoene $1 eller $2, som er n&#248;dvendige for &#229; sjekke ordiliste-ord, er installert
delete_eanonuser=Denne brukeren brukes til anonym modul tilgang
delete_ecannot=Du har ikke rettigheter til &#229; slette brukere
delete_err=Kunne ikke slette bruker
delete_eself=Du kan ikke slette deg selv
@@ -421,6 +422,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&#229; at du &#248;nsker &#229; slette de $1 valgte brukerne? Alle deres tilgangskontroll innstillinger og andre brukerdetaljer vil g&#229; tapt.
udeletes_title=Slett brukere

View File

@@ -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

View File

@@ -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) {
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'});

View File

@@ -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.

61
acl/system_info.pl Normal file
View File

@@ -0,0 +1,61 @@
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/);
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;
}

View File

@@ -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

View 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>

View 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>

View File

@@ -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.

View File

@@ -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

View File

@@ -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, ...)

View File

@@ -186,6 +186,7 @@ core_edefchar=Manglende eller ugyldig tegnsett for dokumenter
core_edefmime=Standard MIME type m&#229; v&#230;re p&#229; 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

123
apache/mod_php7.pl Executable file
View File

@@ -0,0 +1,123 @@
# mod_php7.pl
sub mod_php7_directives
{
$rv = [ [ 'php_value', 1, 16, 'virtual directory htaccess', undef, 10 ],
[ 'php_flag', 1, 16, 'virtual directory htaccess', undef, 2 ],
[ 'php_admin_value', 1, 16, 'virtual directory htaccess', undef, 10 ],
[ 'php_admin_flag', 1, 16, 'virtual directory htaccess', undef, 2 ],
];
return &make_directives($rv, $_[0], "mod_php7");
}
sub mod_php7_handlers
{
return ("php7-script");
}
sub edit_php_value
{
return &php_value_form($_[0], "php_value");
}
sub edit_php_admin_value
{
return &php_value_form($_[0], "php_admin_value");
}
# php_value_form(&values, name)
sub php_value_form
{
local($rv, $name, $value, $len);
$rv = "";
$len = @{$_[0]} + 1;
for($i=0; $i<$len; $i++) {
if ($_[0]->[$i]->{'value'} =~ /^(\S+)\s+(.+)$/) {
$name = $1; $value = $2;
}
else { $name = $value = ""; }
$rv .= "<input name=mod_$_[1]_name_$i size=20 value='$name'>&nbsp;";
$rv .= "<input name=mod_$_[1]_value_$i size=30 value='$value'><BR>\n";
}
return (2, "$text{'mod_'.$_[1]}", $rv);
}
sub save_php_value
{
return &php_value_save("php_value");
}
sub save_php_admin_value
{
return &php_value_save("php_admin_value");
}
# php_value_save(name)
sub php_value_save
{
local($i, $name, $value, @rv);
for($i=0; defined($in{"mod_$_[0]_name_$i"}); $i++) {
$name = $in{"mod_$_[0]_name_$i"}; $value = $in{"mod_$_[0]_value_$i"};
if ($name !~ /\S/ && $value !~ /\S/) { next; }
$name =~ /^(\S+)$/ || &error(&text('mod_php_ename', $name));
$value =~ /^(.+)$/ || &error(&text('mod_php_evalue', $name, $value));
push(@rv, "$name $value");
}
return ( \@rv );
}
sub edit_php_flag
{
return &php_flag_form($_[0], "php_flag");
}
sub edit_php_admin_flag
{
return &php_flag_form($_[0], "php_admin_flag");
}
# php_flag_form(&values, name)
sub php_flag_form
{
local($rv, $name, $value, $len);
$rv = "";
$len = @{$_[0]} + 1;
for($i=0; $i<$len; $i++) {
if ($_[0]->[$i]->{'value'} =~ /^(\S+)\s+(on|off)$/) {
$name = $1; $value = $2;
}
else { $name = $value = ""; }
$rv .= "<input name=mod_$_[1]_name_$i size=20 value='$name'>&nbsp;";
$rv .= "<input name=mod_$_[1]_value_$i type=radio value=on" . ($value eq "on" ? " checked" : "" ) . ">on&nbsp;";
$rv .= "<input name=mod_$_[1]_value_$i type=radio value=off" . ($value eq "off" ? " checked" : "" ) . ">off&nbsp;<BR>";
}
return (2, "$text{'mod_'.$_[1]}", $rv);
}
sub save_php_flag
{
return &php_flag_save("php_flag");
}
sub save_php_admin_flag
{
return &php_flag_save("php_admin_flag");
}
# php_flag_save(name)
sub php_flag_save
{
local($i, $name, $value, @rv);
for($i=0; defined($in{"mod_$_[0]_name_$i"}); $i++) {
$name = $in{"mod_$_[0]_name_$i"}; $value = $in{"mod_$_[0]_value_$i"};
if ($name !~ /\S/ ) { next; }
$name =~ /^(\S+)$/ || &error(&text('mod_php_ename', $name));
$value =~ /^(on|off)$/i || &error(&text('mod_php_evalue', $name, $value));
push(@rv, "$name $value");
}
return ( \@rv );
}
1;

View File

@@ -37,7 +37,7 @@ return &parse_choice("SSLEngine");
sub get_sslprotos
{
my @sslprotos = ("SSLv2", "SSLv3", "TLSv1" );
if ($httpd_modules{'core'} >= 2.223) {
if ($httpd_modules{'core'} >= 2.215) {
push(@sslprotos, "TLSv1.1", "TLSv1.2");
}
return @sslprotos;

View File

@@ -1,4 +1,4 @@
at_style=Rodzaj systemu At,1,linux-Linux,solaris-Solaris,freebsd-FreeBSD
at_dir=Katalog zadañ dla At,0
at_dir=Katalog zadañ At,0
allow_file=Plik dozwolonych u¿ytkowników At,3,Brak
deny_file=Plik zabronionych u¿ytkowników At,3,Brak

View File

@@ -30,3 +30,4 @@ desc_sk.UTF-8=Plánované príkazy
desc_no=Tidsplanlagte kommandoer
longdesc_ms_MY=Jadual pelaksanaan arahan one-off atau skrip.
desc_ms_MY=Perintah Berjadual
longdesc_pl=Harmonogram wykonywania poleceñ lub skryptów.

View File

@@ -176,7 +176,7 @@ $rv .= "<td>&nbsp;$text{'backup_pass'}&nbsp;</td><td> ".
&ui_password("$_[0]_pass", $mode == 1 ? $pass : undef, 20).
"</td> </tr>\n";
$rv .= "<tr> <td></td>\n";
$rv .= "<td colspan='3'>$text{'backup_port'} ".
$rv .= "<td colspan='4'>$text{'backup_port'} ".
&ui_opt_textbox("$_[0]_port", $mode == 1 ? $port : undef, 5,
$text{'default'})."</td> </tr>\n";
@@ -196,7 +196,7 @@ $rv .= "<td>&nbsp;$text{'backup_pass'}&nbsp;</td><td> ".
&ui_password("$_[0]_spass", $mode == 2 ? $pass : undef, 20).
"</td> </tr>\n";
$rv .= "<tr> <td></td>\n";
$rv .= "<td colspan='3'>$text{'backup_port'} ".
$rv .= "<td colspan='4'>$text{'backup_port'} ".
&ui_opt_textbox("$_[0]_sport", $mode == 2 ? $port : undef, 5,
$text{'default'})."</td> </tr>\n";
@@ -204,7 +204,7 @@ if ($_[2] == 1) {
# Uploaded file field
$rv .= "<tr><td>".&ui_oneradio("$_[0]_mode", 3, undef, $mode == 3).
"</td>\n";
$rv .= "<td colspan=3>$text{'backup_mode3'} ".
$rv .= "<td colspan=4>$text{'backup_mode3'} ".
&ui_upload("$_[0]_upload", 40).
"</td> </tr>\n";
}
@@ -212,7 +212,7 @@ elsif ($_[2] == 2) {
# Output to browser option
$rv .= "<tr><td>".&ui_oneradio("$_[0]_mode", 4, undef, $mode == 4).
"</td>\n";
$rv .= "<td colspan=3>$text{'backup_mode4'}</td> </tr>\n";
$rv .= "<td colspan=4>$text{'backup_mode4'}</td> </tr>\n";
}
$rv .= "</table>\n";
@@ -707,7 +707,7 @@ elsif ($mode == 4) {
=head2 date_subs(string)
Given a string with strftime-style format characters in it like %Y and %S,
Given a string with strftime-style format characters in it like %Y and %S,
replaces them with the correct values for the current date and time.
=cut

View File

@@ -11,6 +11,7 @@ our (%in, %text, %config, $module_config_file);
&error_setup($text{'backup_err'});
my $dest = &parse_backup_destination("dest", \%in);
my ($configfile, $nofiles, $others) = &parse_backup_what("what", \%in);
$others ||= "";
my @mods = split(/\0/, $in{'mods'});
@mods || ($nofiles && !$configfile) || &error($text{'backup_emods'});

View File

@@ -1,3 +1,3 @@
date_subs=Wykonać zastępowanie <tt>strftime</tt> miejsc docelowych kopii zapasowej?,1,1-Tak,0-Nie
webmin_subs=Uczynić Webmin podstawową zmienną jako miejsce docelowe kopii zapasowych?,1,1-Tak,0-Nie
webmin_subs=Uczynić zmienną Webmina jako miejsce docelowe kopii zapasowych?,1,1-Tak,0-Nie
from_addr=Od: adres dla wiadomości email,3,webmin@hostname

View File

@@ -85,7 +85,8 @@ print &ui_form_start("restore.cgi", "form-data");
print &ui_table_start($text{'index_header2'}, undef, 2);
print &ui_table_row($text{'edit_mods2'},
&ui_select("mods", \@dmods,
&ui_select("mods",
[ map { $_->{'dir'} } @mods ],
[ map { [ $_->{'dir'}, $_->{'desc'} ] } @mods ],
5, 1));

View File

@@ -28,3 +28,4 @@ desc_sk.UTF-8=Záloha konfiguračných súborov
desc_no=Sikkerhetskopier konfig.filer
longdesc_ms_MY=Lakukan salinan secara manual atau berjadual dan mengembalikan fail konfigurasi yang diuruskan oleh modul Webmin.
desc_ms_MY=Backup Fail konfigurasi
longdesc_pl=Rêczne lub zaplanowane tworzenie i przywracanie kopii zapasowych plików konfiguracyjnych modu³ów zarz±dzanych przez Webmina.

View File

@@ -76,6 +76,15 @@ if (!defined($config_file_cache{$file})) {
if (/^\s*\@(.*\S)/) {
# An include file reference .. parse it
local $incfile = $1;
# A pipe command
if ($incfile =~ /^\|"(.*)"$/) {
local $command = $1;
local $incfiles = `$command`;
foreach (split(/\s/,$incfiles)) {
local $inc = &read_config_file(substr($_,1));
push(@{$parent->{'members'}}, @$inc);
}
}
if ($incfile !~ /^\//) {
$incfile = "$config{'bacula_dir'}/$incfile";
}
@@ -552,7 +561,8 @@ sub is_bacula_running
local ($proc) = @_;
if (&has_command($bacula_cmd)) {
# Get status from bacula status command
$bacula_status_cache ||= `$bacula_cmd status 2>&1 </dev/null`;
$bacula_status_cache ||=
&backquote_command("$bacula_cmd status 2>&1 </dev/null");
if ($bacula_status_cache =~ /\Q$proc\E\s+\(pid\s+([0-9 ]+)\)\s+is\s+running/i ||
$bacula_status_cache =~ /\Q$proc\E\s+is\s+running/i) {
return 1;
@@ -819,17 +829,17 @@ local $jobs = &console_cmd($h, "show jobs");
local @rv;
local $job;
foreach my $l (split(/\r?\n/, $jobs)) {
if ($l =~ /^Job:\s+name=([^=]*\S)\s/ ||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
if ($l =~ /^Job:\s+name=([^=]*\S)\s/i ||
$l =~ /^\s*Name\s*=\s*"(.*)"/i) {
$job = { 'name' => $1 };
push(@rv, $job);
}
elsif (($l =~ /Client:\s+name=([^=]*\S)\s/ ||
$l =~ /^\s*Client\s*=\s*"(.*)"/) && $job) {
elsif (($l =~ /Client:\s+name=([^=]*\S)\s/i ||
$l =~ /^\s*Client\s*=\s*"(.*)"/i) && $job) {
$job->{'client'} = $1;
}
elsif (($l =~ /FileSet:\s+name=([^=]*\S)\s/ ||
$l =~ /^FileSet\s*=\s*"(.*)"/) && $job) {
elsif (($l =~ /FileSet:\s+name=([^=]*\S)\s/i ||
$l =~ /^FileSet\s*=\s*"(.*)"/i) && $job) {
$job->{'fileset'} = $1;
}
}
@@ -846,21 +856,21 @@ local $clients = &console_cmd($h, "show clients");
local @rv;
local $client;
foreach my $l (split(/\r?\n/, $clients)) {
if ($l =~ /^Client:\s+name=([^=]*\S)\s/ ||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
if ($l =~ /^Client:\s+name=([^=]*\S)\s/i ||
$l =~ /^\s*Name\s*=\s*"(.*)"/i) {
$client = { 'name' => $1 };
if ($l =~ /address=(\S+)/ && $client) {
if ($l =~ /address=(\S+)/i && $client) {
$client->{'address'} = $1;
}
if ($l =~ /FDport=(\d+)/ && $client) {
if ($l =~ /FDport=(\d+)/i && $client) {
$client->{'port'} = $1;
}
push(@rv, $client);
}
elsif ($l =~ /^\s*Address\s*=\s*"(.*)"/ && $client) {
elsif ($l =~ /^\s*Address\s*=\s*"(.*)"/i && $client) {
$client->{'address'} = $1;
}
elsif ($l =~ /^\s*FDport\s*=\s*"(.*)"/ && $client) {
elsif ($l =~ /^\s*FDport\s*=\s*"(.*)"/i && $client) {
$client->{'port'} = $1;
}
}
@@ -877,21 +887,21 @@ local $storages = &console_cmd($h, "show storages");
local @rv;
local $storage;
foreach my $l (split(/\r?\n/, $storages)) {
if ($l =~ /^Storage:\s+name=([^=]*\S)\s/ ||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
if ($l =~ /^Storage:\s+name=([^=]*\S)\s/i ||
$l =~ /^\s*Name\s*=\s*"(.*)"/i) {
$storage = { 'name' => $1 };
if ($l =~ /address=(\S+)/) {
if ($l =~ /address=(\S+)/i) {
$storage->{'address'} = $1;
}
if ($l =~ /SDport=(\d+)/) {
if ($l =~ /SDport=(\d+)/i) {
$storage->{'port'} = $1;
}
push(@rv, $storage);
}
elsif ($l =~ /^\s*Address\s*=\s*"(.*)"/ && $storage) {
elsif ($l =~ /^\s*Address\s*=\s*"(.*)"/i && $storage) {
$storage->{'address'} = $1;
}
elsif ($l =~ /^\s*SDport\s*=\s*"(.*)"/ && $storage) {
elsif ($l =~ /^\s*SDport\s*=\s*"(.*)"/i && $storage) {
$storage->{'port'} = $1;
}
}
@@ -908,15 +918,15 @@ local $pools = &console_cmd($h, "show pools");
local @rv;
local $pool;
foreach my $l (split(/\r?\n/, $pools)) {
if ($l =~ /^Pool:\s+name=([^=]*\S)\s/ ||
$l =~ /^\s*Name\s*=\s*"(.*)"/) {
if ($l =~ /^Pool:\s+name=([^=]*\S)\s/i ||
$l =~ /^\s*Name\s*=\s*"(.*)"/i) {
$pool = { 'name' => $1 };
if ($l =~ /PoolType=(\S+)/) {
if ($l =~ /PoolType=(\S+)/i) {
$pool->{'type'} = $1;
}
push(@rv, $pool);
}
elsif ($l =~ /^\s*PoolType\s*=\s*"(.*)"/ && $pool) {
elsif ($l =~ /^\s*PoolType\s*=\s*"(.*)"/i && $pool) {
$pool->{'type'} = $1;
}
}
@@ -1011,7 +1021,7 @@ foreach my $l (split(/\r?\n/, $status)) {
'name' => &job_name("$2"),
'status' => $4 });
}
elsif ($sect == 2 && $l =~ /^\s*Backup\s+Job\s+started:\s+(\S+\s+\S+)/) {
elsif ($sect == 2 && $l =~ /^\s*Backup\s+Job\s+started:\s+(\S+\s+\S+)/i) {
$run[$#run]->{'date'} = $1;
}
elsif ($sect == 3 && $l =~ /^\s*(\d+)\s+(\S+)\s+([0-9,]+)\s+([0-9,]+\.[0-9,]+\s+\S+|\d+)\s+(\S+)\s+(\S+\s+\S+)\s+(\S+)\s*$/) {
@@ -1047,7 +1057,7 @@ foreach my $l (split(/\r?\n/, $status)) {
if ($l =~ /^Running\s+Jobs/i) { $sect = 2; }
elsif ($l =~ /^Terminated\s+Jobs/i) { $sect = 3; }
if ($sect == 2 && $l =~ /^\s*Backup\s+Job\s+(\S+)\.(\d+\-\d+\-\S+)\s+(.*)/) {
if ($sect == 2 && $l =~ /^\s*Backup\s+Job\s+(\S+)\.(\d+\-\d+\-\S+)\s+(.*)/i) {
push(@run, { 'name' => &job_name("$1"),
'status' => $3 });
}
@@ -1061,7 +1071,7 @@ foreach my $l (split(/\r?\n/, $status)) {
$run[$#run]->{'volume'} = $4;
$run[$#run]->{'device'} = $6;
}
elsif ($sect == 3 && $l =~ /^\s*(\d+)\s+(\S+)\s+([0-9,]+)\s+([0-9,]+\.[0-9,]+\s+\S+|\d+)\s+(\S+)\s+(\S+\s+\S+)\s+(\S+)\s*$/) {
elsif ($sect == 3 && $l =~ /^\s*(\d+)\s+(\S+)\s+([0-9,]+)\s+([0-9,]+\.[0-9,]+\s+\S+|\d+)\s+(\S+)\s+(\S+\s+\S+)\s+(\S+)\s*$/i) {
push(@done, { 'id' => $1,
'level' => &full_level("$2"),
'files' => &remove_comma("$3"),

View File

@@ -0,0 +1,17 @@
line0=Konfigurerbare innstillinger,11
wait=Standard sikkerhetskopi ventemodus,1,1-Vent p&#239;&#191;&#189; fullf&#239;&#191;&#189;ring,0-Kj&#239;&#191;&#189;r i bakgrunnen
apply=Ta i bruk katalog-konfigurasjon automatisk?,1,1-Ja,0-Nei
groupmode=Hent node gruppe informasjon fra,1,webmin-Webmin Tjenere indeks modul,oc-OCM Manager database,-Ingen steder
showdirs=Vis alltid eksterne kataloger?,1,1-Ja,0-Nei
line1=Bacula databaseinnstillinger,11
driver=Databasetype,1,Pg-PostgreSQL,mysql-MySQL,SQLite-SQLite
user=Bruker det skal logges inn p&#239;&#191;&#189; databasen som,0
pass=Passord det skal logges inn med,0
host=Bacula databasetjener,3,Dette system
db=Database eller fil som inneholder Bacula informasjon,0
line2=Filinnstillinger,11
bacula_dir=Bacula konfigurasjonskatalog,0
bextract=Full sti til <tt>bextract</tt> kommando,0
bls=Full sti til <tt>bls</tt> kommando,0
btape=Full sti til <tt>btape</tt> kommando,0
init_start=Start og stopp Bacula vha.1,1-Init scripts,0-<tt>bacula</tt> kommando

619
bacula-backup/lang/no Normal file
View File

@@ -0,0 +1,619 @@
__norefs=1
apply_err=Kunne ikke ta i bruk konfigurasjon
apply_failed=En konfigurasjonsfeil ble oppdaget
apply_problem=Kunne ikke ta i bruk konfigurasjon : $1
backup_done=.. sikkerhetskopi fullf&#248;rt.
backup_ejob=.. kunne ikke finne jobb!
backup_eok=.. jobben kunne ikke startes
backup_failed=.. sikkerhetskopieringen ble ikke fullf&#248;rt. Sjekk feilmeldingen ovenfor for detaljer om dette.
backup_header=Detaljer for sikkerhetskopi-jobb
backup_jd=$1 (Filsett $2 p&#229; $3)
backup_job=Jobb som skal kj&#248;res
backup_ok=Sikkerhetskopier n&#229;
backup_return=backup skjema
backup_run=Starter sikkerhetskopi-jobb $1 ..
backup_running=.. sikkerhetskopi-jobben kj&#248;rer n&#229;. N&#229;r den er ferdig vises resultatene nedenfor ..
backup_running2=.. sikkerhetskopieringen er startet i bakgrunnen.
backup_title=Kj&#248;r backup jobb
backup_wait=Vent p&#229; resultater?
cancel_enone=Ingen valgt
cancel_err=Kunne ikke avrbyte jobber
check_ebacula=Baculas kontroll-kommando $1 ble ikke funnet.
check_eclient=Dette systemet ser ut til &#229; v&#230;re en <a href='$2'>Bacula klient</a> i stedet for en regiss&#248;r.
check_econfigs=Fant ingen Bacula konfigurasjonsfiler i $1
check_econsole=Bacula konsoll kommandoen $1 ble ikke funnet.
check_edir=Bacula konfigurasjonskatalogen $1 ble ikke funnet p&#229; systemet ditt.
check_edirector=Bacula regiss&#248;r konfigurasjonsfilen $1 ble ikke funnet.
check_engmod=Modulen OpenCountry Bacula grupper er ikke installert
check_eservers=Ingen Webmin tjenergrupper er definert
chooser_all=Alle
chooser_days=Datoer
chooser_daysh=Dager i m&#229;neden &#229; utf&#248;re
chooser_edays=Ingen dager i m&#229;neden valgt
chooser_edaysrange=Valgte dager i m&#229;neden m&#229; v&#230;re sammenhengende
chooser_ehour=Manglende eller ugyldig time p&#229; dagen
chooser_eminute=Manglende eller ugyldig minutt
chooser_emonths=Ingen m&#229;neder valgt
chooser_emonthsrange=Valgte m&#229;neder m&#229; v&#230;re sammehengende
chooser_err=Kunne ikke velge tidsplan
chooser_eweekdaynums=Ingen ukedag tall valgt
chooser_eweekdaynumsrange=Valgte ukedag numre m&#229; v&#230;re sammenhengende
chooser_eweekdays=Ingen ukedager valgt
chooser_eweekdaysrange=Valgte ukedager m&#229; v&#230;re sammenhengende
chooser_months=M&#229;neder i &#229;ret
chooser_monthsh=M&#229;neder &#229; utf&#248;re
chooser_ok=OK
chooser_sel=Valgt nedenfor ..
chooser_time=Time og minutt
chooser_timeh=Tidspunkt for utf&#248;ring
chooser_title=Velg tidsplan
chooser_weekdaynums=Numre i m&#229;ned
chooser_weekdays=Ukedager
chooser_weekdaysh=Ukedager &#229; utf&#248;re
client_address=Vertsnavn eller IP adresse
client_catalog=Katalog som skal brukes
client_eaddress=Manglende eller ugyldig vertsnavn eller adresse
client_echild=Denne klienten kan ikke slettes siden den brukes av $1
client_eclash=En klient med samme navn finnes allerede
client_efileret=Manglende eller ugyldig oppbevaringsperiode for filer
client_egone=Klient finnes ikke lenger!
client_ejobret=Manglende eller ugyldig oppbevaringsperiode for jobber
client_ename=Manglende eller ugyldig klientnavn
client_epass=Manglende passord
client_eport=Manglende eller ugyldig FD port
client_err=Kunne ikke lagre backup klient
client_fileret=Behold backupfiler i
client_header=Detaljer for klient som skal sikkerhetskopieres
client_jobret=Behold backupjobber i
client_name=Klient FD navn
client_pass=Bacula FD passord
client_port=Bacula FD port
client_prune=Fjern utl&#248;pte jobber og filer?
client_status=Vis status
client_title1=Opprett backup klient
client_title2=Rediger sikkerhetskopi-klient
clients_add=Legg til ny backup klient.
clients_address=Vertsnavn eller adresse
clients_catalog=Katalog
clients_delete=Slett valgte klienter
clients_derr=Kunne ikke slette klienter
clients_name=Klient navn
clients_none=Ingen backup klienter er definert enda.
clients_return=liste med klienter
clients_title=Backup klienter
clientstatus_err=Kunne ikke hente status fra $1 : $2
clientstatus_msg=Status fra $1 : $2
clientstatus_ok=OK
clientstatus_on=$1 (p&#229; $2)
clientstatus_show=Vis status for klient:
clientstatus_title=Klient status
connect_elogin=Kunne ikke logge inn i databasen $1 : $2.
connect_emysql=Kunne ikke laste datbase DBI driver $1
connect_equery=Databasen $1 ser ikke ut til &#229; inneholde Bacula tabeller.
connect_equery2=Dette kan v&#230;re fordi SQLLite Perl modulen som er installert, er for ny, og ikke st&#248;tter det eldre SQLite databaseformatet som Bacula bruker.
connect_equery3=Databasen $1 ser ikke ut til &#229; inneholde OC Bacula gruppe tabeller.
device_always=Hold alltid &#229;pen?
device_auto=Monter automatisk?
device_device=Arkiv-enhet eller katalog
device_echild=Denne klienten kan ikke slettes siden den brukes av $1
device_eclash=En lagringsenhet med samme navn finnes allerede
device_edevice=Manglende eller ugyldig arkiv-enhet eller -katalog
device_egone=Lagringsenhet finnes ikke lenger!
device_emedia=Mangler media type navn
device_ename=Mangler navn p&#229; lagringsenhet
device_err=Kunne ikke lagre lagrings-enhet
device_header=Detaljer for fillagrings enhet
device_label=Merk media automatisk?
device_media=Media type navn
device_name=Lagringsenhet navn
device_random=Direktetilgangs-medium?
device_removable=Flyttbare media?
device_title1=Opprett lagringsenhet
device_title2=Rediger lagringsenhet
devices_add=Legg til ny lagringsenhet.
devices_delete=Slett valgte lagringsenheter
devices_derr=Kunne ikke slette lagringsenheter
devices_device=Enhets-fil eller -katalog
devices_name=Enhetsnavn
devices_none=Ingen lagringsenheter er definert enda.
devices_return=liste med lagringsenheter
devices_title=Lagringsenheter
devices_type=Media type
director_dir=Bacula arbeidskatalog
director_edir=Manglende eller ikke-eksisterende arbeidskatalog
director_ejobs=Manglende eller ugyldig antall samtidige jobber
director_ename=Manglende eller ugyldig regiss&#248;r navn
director_enone=Ingen regiss&#248;r-konfigurasjon funnet!
director_eport=Manglende eller ugyldig portnummer
director_err=Kunne ikke lagre regiss&#248;r-konfigurasjon
director_header=Globale innstillinger for Bacula regiss&#248;r
director_jobs=Maks. samtidige jobber
director_messages=M&#229;l for meldinger
director_name=Regiss&#248;r navn
director_port=Lytt p&#229; port
director_title=Regiss&#248;r konfigurasjon
dirstatus_bytes=St&#248;rrelse
dirstatus_cancel=Avbryt valgte jobber
dirstatus_date=Kj&#248;rt
dirstatus_date2=Startet
dirstatus_done=Fullf&#248;rte sikkerhetskopi jobber
dirstatus_donenone=Ingen backup jobber er kj&#248;rt.
dirstatus_files=Filer
dirstatus_id=Kj&#248;re ID
dirstatus_level=Niv&#229;
dirstatus_name=Jobbnavn
dirstatus_refresh=Oppfrisk liste
dirstatus_run=Kj&#248;rende backup jobber
dirstatus_runnone=Ingen backup jobber kj&#248;rer for &#248;yeblikket.
dirstatus_sched=Tidsplanlagte sikkerhetskopi jobber
dirstatus_schednone=Ingen sikkerhetskopi jobber er tidsplanlagt for &#248;yeblikket.
dirstatus_status=Gjeldende status
dirstatus_status2=Status
dirstatus_title=Regiss&#248;r status
dirstatus_type=Type
dirstatus_volume=Volum
dvolumes_ebacula=Bacula feil : $1
dvolumes_enone=Ingen valgt
dvolumes_err=Kunne ikke slette volumer
esql=SQL feil : $1
fdirector_eclash=En regiss&#248;r med samme navn finnes allerede
fdirector_egone=Regiss&#248;r finnes ikke lenger!
fdirector_ename=Mangler regiss&#248;rnavn
fdirector_epass=Manglende passord
fdirector_err=Kunne ikke lagre fil daemon regiss&#248;r
fdirector_header=Detaljer for kontrollerende ekstern regiss&#248;r
fdirector_monitor=Tillat bare overv&#229;kings-tilkobling?
fdirector_name=Director navn
fdirector_pass=Akseptert passord
fdirector_title1=Opprett fil daemon regiss&#248;r
fdirector_title2=Rediger fil daemon regiss&#248;r
fdirectors_add=Legg til ny regiss&#248;r.
fdirectors_delete=Slett valgte regiss&#248;rer
fdirectors_derr=Kunne ikke slette regiss&#248;rer
fdirectors_name=Regiss&#248;rnavn
fdirectors_none=Ingen regiss&#248;rer er definert enda.
fdirectors_pass=Akseptert passord
fdirectors_return=list over regiss&#248;rer
fdirectors_title=Fil Daemon regiss&#248;rer
file_dir=Bacula arbeidskatalog
file_edir=Manglende eller ikke-eksisterende arbeidskatalog
file_ejobs=Manglende eller ugyldig antall samtidige jobber
file_ename=Manglende eller ugyldig fil daemon navn
file_enone=Ingen fil daemon konfigurasjon funnet!
file_eport=Manglende eller ugyldig portnummer
file_err=Kunne ikke lagre fil daemon konfigurasjon
file_header=Innstillinger for Bacula fil daemon
file_jobs=Maks. samtidige jobber
file_name=Fil daemon navn
file_port=Lytt p&#229; port
file_title=Fil daemon konfigurasjon
fileset_comp=Komprimeringstype
fileset_echild=Dette filsettet kan ikke slettes siden det brukes av $1
fileset_eclash=Et fil-sett med samme navn finnes allerede
fileset_egone=Filsettet finnes ikke lenger!
fileset_ename=Mangler fil-sett navn
fileset_err=Kunne ikke lagre filsett
fileset_exclude=Filer og kataloger som skal hoppes over
fileset_gzip=Gzip niv&#229; $1
fileset_gzipdef=&lt;Standard komprimeringsniv&#229;&gt;
fileset_header=Detaljer for backup filsett
fileset_include=Filer og kataloger som skal sikkerhetskopieres
fileset_lzo=LZO komprimering
fileset_md5=MD5
fileset_name=Filsett navn
fileset_none=Ingen
fileset_onefs=Begrens backup til ett filsystem?
fileset_sig=Fil signaturtype
fileset_title1=Opprett filsett
fileset_title2=Rediger filsett
filesets_add=Legg til nytt backup filsett.
filesets_delete=Slett valgte fil-sett
filesets_derr=Kunne ikke slette fil-sett
filesets_ednone=Ingen valgt
filesets_files=Inkluderte filer
filesets_name=Filsett navn
filesets_none=Ingen backup filsett er definert enda.
filesets_return=liste med filsett
filesets_title=Filsett
gbackup_header=Detaljer for Bacula gruppe backup jobb
gbackup_jd=$1 (Filsett $2 p&#229; gruppe $3)
gbackup_on=Kj&#248;rer backupjobb p&#229; klient $1 :
gbackup_run=Starter backupjobb $1 p&#229; $2 klienter ..
gbackup_title=Kj&#248;r Bacula gruppe backup jobb
gjob_client=Bacula gruppe som skal sikkerhetskopieres
gjob_header=Detaljer for Bacula gruppe backup jobb
gjob_title1=Opprett Bacula gruppe backup jobb
gjob_title2=Rediger Bacula gruppe backup jobb
gjobs_add=Legg til ny Bacula gruppe backup jobb
gjobs_client=Bacula gruppe som skal sikkerhetskopieres
gjobs_delete=Slett valgte jobber
gjobs_derr=Kunne ikke slette Bacula gruppe backup jobber
gjobs_none=Ingen Bacula gruppe backup jobber er definert enda.
gjobs_return=liste med Bacula gruppe backup jobber
gjobs_title=Bacula gruppe backup jobber
group_eclash=En gruppe med samme navn finnes allerede
group_egone=Gruppen finnes ikke lenger!
group_egone2=Bacula gruppe finnes ikke lenger!
group_err=Kunne ikke lagre Backula gruppe
group_header=Detaljer for Bacula gruppe som skal sikkerhetskopieres
group_members=Verter i Bacula gruppe
group_name=Bacula gruppenavn
group_port=Bacula FD port
group_title1=Opprett Bacula gruppe
group_title2=Rediger Bacula gruppe
groups_add=Legg til Bacula gruppe:
groups_already=Alle Bacula grupper er allerede lagt til.
groups_catalog=Katalog
groups_delete=Slett valgte Bacula grupper
groups_derr=Kunne ikke slette grupper
groups_info=$1 ($2 medlemmer)
groups_name=Gruppenavn
groups_noadd=Det finnes ingen Bacula grupper som kan velges for sikkerhetskopier.
groups_none=Ingen Bacula grupper er valgt for sikkerhetskopier enda.
groups_ok=Legg til
groups_port=FD port
groups_return=liste med grupper
groups_title=Bacula grupper
index_actions=Handlinger for sikkerhetskopiering og gjenoppretting
index_apply=Bruk konfigurasjon
index_applydesc=Klikk p&#229; denne knappen for &#229; aktivere Bacula regiss&#248;rkonfigurasjon vist ovenfor.
index_boot=Start ved oppstart
index_bootdesc=Endre denne innstillingen for &#229; kontrollere om Bacula startes n&#229;r systemet starter opp.
index_dir=Regiss&#248;rkonfigurasjon
index_down=Nede
index_echeck=$1 Kanskje den ikke er installert, eller s&#229; er <a href='$2'>modulkonfigurasjonen</a> feil.
index_econsole=Bacula konsoll kommandoen $1 kunne ikke kommunisere med Bacula regiss&#248;r. Forsikre deg om at passordet i $2 er korrekt.
index_econsole2=Bacula konsoll-kommandoen $1 er ikke konfigurert med en gyldig Bacula regiss&#248;r-vert. Den bruker for &#248;yeblikket $1, og den eksisterer ikke.
index_edb=Kunne ikke koble til Bacula databasen : $1 Kanskje den ikke er satt opp, eller s&#229; er <a href='$2'>modulekonfigurasjonen</a> feil.
index_eng=Kunne ikle koble til Bacula grupper databasen : $1. Kanskje den ikke finnes, eller s&#229; er <a href='$2'>modulelkonfigurasjonen</a> feil.
index_eversion=Systemet ditt bruker Bacula versjon $2, men Webmin modulen st&#248;tter bare versjon $1 eller nyere.
index_fd=Fil daemon konfigurasjon
index_fixaddr=Klikk her for &#229; fikse Bacula regiss&#248;r-verten
index_fixpass=Klikk her for &#229; fikse konsoll passordet
index_groups=Bacula gruppe konfigurasjon
index_notrun=Sikkerhetskopiering og andre operasjoner kan ikke utf&#248;res siden Bacula regiss&#248;r daemon er nede.
index_ocmin=Bidratt av <a href=$2 target=_new>Linmin <img align=middle border=0 src='$1'></a>
index_restart=Omstart Bacula
index_restartdesc=Klikk p&#229; denne knappen for og stoppe og omstarte Baculas bakgrunnsprosesser listet ovenfor. Dette kan v&#230;re n&#248;dvendig for &#229; aktivere lagringsenhet konfigurasjoner.
index_return=modulindeks
index_sd=Lagringsdaemon konfigurasjon
index_start=Start Bacula
index_startdesc=Klikk p&#229; denne knappen for &#229; starte opp Baculas bakgrunnsprosesser listet ovenfor.
index_status=Prosess statuser:
index_stop=Stopp Bacula
index_stopdesc=Klikk p&#229; denne knappen for &#229; stoppe Baculas bakgrunnsprosesser listet ovenfor.
index_up=Oppe
index_versionbacula=Bacula $1
index_versionbareos=Bareos $1
job_after=Kommando etter jobb
job_before=Kommando f&#248;r jobb
job_cafter=Kommando etter jobb (p&#229; klient)
job_cbefore=Kommando f&#248;r jobb (p&#229; klient)
job_client=Klient som skal sikkerhetskopieres
job_def=Standard type
job_def0=Standard definisjon
job_def1=Frittst&#229;ende jobb
job_def2=Arv standardverdier fra $1
job_echild=Denne standard jobbdefinisjonen kan ikke slettes siden den brukes av $1
job_eclash=En jobb med samme navn finnes allerede
job_enabled=Sikkerhetskopi jobb aktivert?
job_ename=Manglende eller ugyldig jobbnavn
job_epriority=Manglende eller ugyldig prioritetsnummer
job_err=Kunne ikke lagre backupjobb
job_fileset=Filsett &#229; sikkerhetskopiere
job_header=Detaljer om backupjobb
job_level=Sikkerhetskopi niv&#229;
job_messages=M&#229;l for meldinger
job_name=Backupjobb navn
job_pool=Volumsamling
job_prority=Backup prioritet
job_run=Kj&#248;r n&#229;
job_schedule=Backup p&#229; tidsplan
job_storage=M&#229;l lagringsenhet
job_title1=Opprett backupjobb
job_title2=Rediger backupjobb
job_type=Jobbtype
jobs_add=Legg til ny backupjobb.
jobs_client=Klient som skal sikkerhetskopieres
jobs_deftype=Standarder?
jobs_delete=Slett valgte jobber
jobs_derr=Kunne ikke slette jobber
jobs_fileset=Filsett som skal sikkerhetskopieres
jobs_name=Jobbnavn
jobs_none=Ingen backup jobber er definert enda.
jobs_return=liste med jobber
jobs_schedule=Backup tidsplan
jobs_title=Backupjobber
jobs_type=Jobbtype
label_done=.. merking gjennomf&#248;rt.
label_eexists=.. angitt merkelapp finnes allerede.
label_efailed=.. merking feilet! Sjekk feilmeldingen ovenfor for mer informasjon om hvorfor.
label_elabel=Ingen merkelapp angitt
label_epool=.. kunne ikke finne samling!
label_err=Merking feilet
label_estorage=.. lagrings daemon ble ikke funnet!
label_header=Detaljer for volum til etikett
label_label=Nytt merkelapp-navn
label_ok=Merk n&#229;
label_pool=Opprett i samling
label_return=etikett skjema
label_run=Merker volum med $2 p&#229; lagrings-daemon $1 ..
label_storage=Lagrings-daemon som skal merkes
label_title=Merk volum
log_apply=Tok i bruk konfigurasjon
log_backup=Startet backupjobb $1
log_create_client=Opprettet backup klient
log_create_device=Opprettet lagringsenhet $1
log_create_fdirector=Opprettet fil daemon regiss&#248;r $1
log_create_fileset=Opprettet filsett $1
log_create_gjob=Opprettet Bacula gruppe backup-jobb $1
log_create_group=Opprettet Bacula gruppe $1
log_create_job=Opprettet backupjobb $1
log_create_pool=Opprettet volumsamling $1
log_create_schedule=Opprettet backup tidsplan $1
log_create_sdirector=Opprettet lagrings-daemon regiss&#248;r $1
log_create_storage=Opprettet lagrings daemon $1
log_delete_client=Slettet backup klient $1
log_delete_clients=Slettet $1 backup klienter
log_delete_device=Slettet lagringsenhet $1
log_delete_devices=Slettet $1 lagringsenheter
log_delete_fdirector=Slettet fil daemon regiss&#248;r $1
log_delete_fdirectors=Slettet $1 fil daemon regiss&#248;rer
log_delete_fileset=Slettet filsett $1
log_delete_filesets=Slettet $1 filsett
log_delete_gjob=Slettet Bacula gruppe backup jobb $1
log_delete_gjobs=Slettet $1 Bacula gruppe backup jobber
log_delete_group=Slettet Bacula gruppe $1
log_delete_groups=Slettet $1 Bacula grupper
log_delete_job=Slettet backup jobb $1
log_delete_jobs=Slettet $1 backupjobber
log_delete_pool=Slettet volumsamling $1
log_delete_pools=Slettet $1 volumsamlinger
log_delete_schedule=Slettet backup-tidsplan $1
log_delete_schedules=Slettet $1 backup tidsplaner
log_delete_sdirector=Slettet lagrings daemon regiss&#248;r $1
log_delete_sdirectors=Slettet $1 lagrings daemon regiss&#248;rer
log_delete_storage=Slettet lagrings daemon $1
log_delete_storages=Slettet $1 lagrings daemoner
log_director=Lagret global Bacula regiss&#248;rkonfigurasjon
log_file=Lagret Bacula fil daemon konfigurasjon
log_fixpass=Fikset Bacula konsoll-program passord
log_gbackup=Startet Bacula gruppe backup jobb $1
log_label=Merket lagrings-daemon $1
log_modify_client=Endret backup klient $1
log_modify_device=Endret lagringsenhet $1
log_modify_fdirector=Endret fil daemon regiss&#248;r $1
log_modify_fileset=Endret filsett $1
log_modify_gjob=Endret Bacula gruppe backup jobb $1
log_modify_group=Endret Bacula gruppe $1
log_modify_job=Endret backup jobb $1
log_modify_pool=Endret volumsamling $1
log_modify_schedule=Endret backup-tidsplan $1
log_modify_sdirector=Endret lagrings-daemon regiss&#248;r $1
log_modify_storage=Endret lagrings daemon $1
log_mount=Montert lagringsenhet $1
log_restart=Omstartet Bacula daemoner
log_start=Startet Bacula daemoner
log_stop=Stoppet Bacula daemoner
log_storagec=Lagret Bacula lagrings daemon konfigurasjon
log_sync=Lagret Bacula gruppesynkronisering
log_unmount=Avmonterte lagringsenhet $1
mount_done=.. montert ok.
mount_err=Kunne ikke montere lagringsenhet
mount_eslot=Manglende eller ugyldig slot-nummer
mount_failed=.. montering feilet! Sjekk feilmeldingen ovenfor for evt. &#229;rsaker til dette.
mount_header=Innstillinger for montering eller demontering av lagring
mount_mount=Monter lagring
mount_noslot=Ingen
mount_return=monteringsskjema
mount_run=Monterer volum p&#229; lagringsenhet $1 ..
mount_slot=Auto-loader slot
mount_slotno=Slot nummer
mount_storage=Lagringsenhet
mount_title=Monter eller avmonter
mount_unmount=Avmonter lagring
pool_any=Backup til et hvilket som helst volum i samling?
pool_auto=T&#248;m utl&#248;pte volumer?
pool_autolabel=Prefiks for automatisk volum-merking
pool_echild=Denne klienten kan ikke slettes siden den brukes av $1
pool_eclash=En lagringsenhet med samme navn finnes allerede
pool_egone=Volumsamling finnes ikke lenger
pool_emax=Manglende eller ugyldig antall jobber per volum
pool_ename=Manglende navn p&#229; lagringsenhet
pool_ereten=Manglende eller ugyldig oppbevaringsperiode
pool_err=Kunne ikke lagre lagringsenhet
pool_header=Detaljer for backup volumsamling
pool_max=Maksimum jobber per volum
pool_maxvolsize=Maks. volumst&#248;rrelse (f.eks 5G for 5 Gigabytes)
pool_name=Volumsamling navn
pool_recycle=Resirkuler volumer automatisk?
pool_reten=Volum oppbevaringsperiode
pool_status=Vis volumer
pool_title1=Opprett volumsamling
pool_title2=Rediger volumsamling
pool_type=Volumsamling type
pool_unlimited=Ubegrenset
pools_add=Legg til ny volumsamling.
pools_delete=Slett valgte volumsamlinger
pools_derr=Kunne ikke slette volumsamlinger
pools_name=Samling navn
pools_none=Ingen volumsamlinger er definert enda.
pools_reten=Oppbevaringsperiode
pools_return=liste over volumsamlinger
pools_title=Volumsamlinger
pools_type=Samling-type
poolstatus_bytes=Bytes skrevet
poolstatus_delete=Slett valgte volumer
poolstatus_first=F&#248;rst brukt
poolstatus_last=Sist brukt
poolstatus_name=Volumnavn
poolstatus_never=Aldri
poolstatus_none=Det er for &#248;yeblikket ingen volumer i denne backup-samlingen.
poolstatus_ok=OK
poolstatus_show=Vis volumer i samling:
poolstatus_status=Backup modus
poolstatus_title=Volumer i samling
poolstatus_type=Mediatype
poolstatus_volumes=Volumer i valgt samling.
proc_bacula-dir=Bacula regiss&#248;r daemon
proc_bacula-fd=Fil daemon
proc_bacula-sd=Lagrings daemon
proc_bareos-dir=Backula regiss&#248;r daemon
proc_bareos-fd=Fil daemon
proc_bareos-sd=Lagrings daemon
restart_err=Kunne ikke omstarte Bacula
restore_all=--Alle klienter i gruppe--
restore_client=Gjenopprett til klient eller gruppe
restore_clist=--Klienter--
restore_done=.. gjenoppretting fullf&#248;rt.
restore_eall1=Du m&#229; velge <b>Alle klienter i backup</b> for <b>Gjenopprett til klient eller gruppe</b> n&#229;r du utf&#248;rer en Bacula gruppejobb gjenoppretting
restore_eall2=<b>Alle klienter i backup</b> kan bare velges for <b>Gjenopprett til klient eller gruppe</b> n&#229;r du utf&#248;rer en Bacula gruppejobb gjenoppretting
restore_eclient=Ingen klient eller Bacula gruppe valgt
restore_eclients=Fant ingen medlemmer av Bacula gruppe backup!
restore_efiles=Ingen filer angitt
restore_egroup=Bacula gruppe finnes ikke
restore_ejob=Ugyldig jobb ID
restore_ejobfiles=Ingen filer loggf&#248;rt for jobb
restore_enofiles=Ingen av de valgte filene finnes i backup
restore_eok=.. jobb kunne ikke startes
restore_err=Kunne ikke gjenopprette sikkerhetskopi
restore_ewhere=Manglende katalog &#229; gjenopprette til
restore_failed=.. gjenoppretting ble ikke fullf&#248;rt ordentlig. Sjekk feilmeldingen ovenfor for ytterligere detaljer.
restore_files=Filer som skal gjenopprettes
restore_glist=--Bacula grupper--
restore_header=Innstillinger for gjenoppretting av tidligere backup jobber
restore_jlist=--Enkle systemjobber--
restore_job=Jobb som skan gjenopprettes
restore_level_D=Differensiell
restore_level_F=Full
restore_level_I=Inkrementell
restore_njlist=--Bacula gruppejobber--
restore_ok=Gjenopprett n&#229;
restore_return=gjennopprettingsskjema
restore_run=Starter gjenoppretting av jobb $1 til klient $2 fra lagring $3 ..
restore_running=.. gjenopprettingen kj&#248;rer n&#229;. N&#229;r den er fullf&#248;rt vil resultatene vises nedenfor ..
restore_running2=.. gjenopprettingen er startet i bakgrunnen.
restore_storage=Gjenopprett fra lagringsenhet
restore_title=Gjenopprett sikkerhetskopi
restore_title2=Gjenopprett backup til Bacula gruppe
restore_title3=Gjenopprett Bacula gruppe backup
restore_where=Gjenopprett til katalog
restore_where2=Annen rot-katalog
schedule_echild=Denne tidsplanen kan ikke slettes siden den brukes av $1
schedule_eclash=En tidsplan med samme navn finnes allerede
schedule_ename=Manglende eller ugyldig tidsplan-navn
schedule_err=Kunne ikke lagre backup-tidsplan
schedule_etimes=Manglende backup-tidspunkt i rad $1
schedule_header=Detaljer for backup-tidsplan
schedule_level=Backup niv&#229;
schedule_name=Backup-tidsplan navn
schedule_pool=Volum
schedule_runs=Kj&#248;reniv&#229; og tidspunkt
schedule_times=Kj&#248;rt p&#229; tidspunkt
schedule_title1=Opprett tidsplan for backup
schedule_title2=Rediger tidsplan for backup
schedules_add=Legg til ny tidsplan for backup.
schedules_delete=Slett valgte tidsplaner
schedules_derr=Kunne ikke slette tidsplaner
schedules_name=Tidsplan navn
schedules_none=Ingen tidsplaner for backup er definert enda.
schedules_return=liste over tidsplaner
schedules_sched=Kj&#248;reniv&#229; og tidspunkt
schedules_title=Tidsplaner for backup
sdirector_eclash=En regiss&#248;r med samme navn finnes allerede
sdirector_egone=Regiss&#248;r finnes ikke lenger!
sdirector_ename=Mangler regiss&#248;r navn
sdirector_epass=Manglende passord
sdirector_err=Kunne ikke lagre lagrings-daemon regiss&#248;r
sdirector_header=Detaljer for kontrollerende ekstern regiss&#248;r
sdirector_monitor=Tillat bare overv&#229;kings-tilkobling?
sdirector_name=Regiss&#248;r navn
sdirector_pass=Akseptert passord
sdirector_title1=Opprett lagrings-daemon regiss&#248;r
sdirector_title2=Rediger Lagrings-daemon regiss&#248;r
sdirectors_add=Legg til ny regiss&#248;r.
sdirectors_delete=Slett valgte regiss&#248;rer
sdirectors_derr=Kunne ikke slette regiss&#248;rer
sdirectors_name=Regiss&#248;r navn
sdirectors_none=Ingen regiss&#248;rer er definert enda.
sdirectors_pass=Akseptert passord
sdirectors_return=liste over regiss&#248;rer
sdirectors_title=Lagrings daemon regiss&#248;rer
start_einit=Fant ikke noe init script for $1
start_err=Kunne ikke starte Bacula
start_erun=Kunne ikke starte $1 : $2
stop_err=Kunne ikke stoppe Bacula
storage_address=Vertsnavn eller IP adresse
storage_device=Lagringsenhet navn
storage_eaddress=Manglende eller ugyldig vertsnavn eller adresse
storage_echild=Denne klienten kan ikke slette siden den brukes av $1
storage_eclash=En lagrings-daemon med samme navn finnes allerede
storage_edevice=Mangler lagringsenhet navn
storage_egone=Lagrings-daemon finnes ikke lenger!
storage_emaxjobs=Mangler maks samtidige jobber
storage_emedia=Mangler mediatype navn
storage_ename=Mangler lagrings-daemon navn
storage_epass=Mangler passord
storage_eport=Manglende eller ugyldig SD port
storage_err=Kunne ikke lagre lagrings-daemon
storage_header=Detaljer for ekstern lagrings-daemon
storage_maxjobs=Maks. samtidige jobber
storage_media=Mediatype navn
storage_name=Lagringsdaemon navn
storage_other=Annen..
storage_pass=Bacula SD passord
storage_port=Bacula SD port
storage_status=Vis status
storage_title1=Opprett lagringsdaemon
storage_title2=Rediger lagringsdaemon
storagec_dir=Bacula arbeidskatalog
storagec_edir=Manglende eller ikke-eksisterende arbeidskatalog
storagec_ejobs=Manglende eller ugyldig antall samtidige jobber
storagec_ename=Manglende eller ugyldig lagrinsgs-daemon navn
storagec_enone=Ingen lagringsdaemon-konfigurasjon funnet!
storagec_eport=Manglende eller ugyldig portnummer
storagec_err=Kunne ikke lagre lagrings-daemon konfigurasjon
storagec_header=Innstillinger for Bacula lagringsdaemon
storagec_jobs=Maks. antall samtidige jobber
storagec_name=Daemon navn
storagec_port=Lytt p&#229; port
storagec_title=Lagrings-daemon konfigurasjon
storages_add=Legg til ny lagrings daemon.
storages_address=Vertsnavn eller adresse
storages_delete=Slett valgte lagringsdaemoner
storages_derr=Kunne ikke slette lagrings-daemoner
storages_device=Lagringsenhet
storages_name=Lager navn
storages_none=Ingen lagrings-daemoner er definert enda.
storages_return=liste med lagrings-daemoner
storages_title=Lagrings-daemoner
storages_type=Media type
storagestatus_err=Kunne ikke hente status fra $1 : $2
storagestatus_msg=Status fra $1 : $2
storagestatus_ok=OK
storagestatus_show=Vis status for lagrings-daemon
storagestatus_title=Lagrings-daemon status
sync_err=Kunne ikke lagre Bacula gruppe synkronisering
sync_header=Innstillinger for automatisk synkronisering av Bacula gruppe klient
sync_sched=Synkroniser ihht. tidsplan?
sync_schedyes=Ja, p&#229; tidspunklt valgt nedenfor ..
sync_title=Bacula gruppe-synkronisering
tls_cacert=TLS PEM sertifikatautoritet fil
tls_cert=TLS PEM sertifikatfil
tls_ecacert=Manglende eller ikke-eksisterende TLS CA sertifikat-fil
tls_ecert=Manglende eller ikke-eksisterende TLS sertifikat fil
tls_ecerts=For at TLS skal kunne aktiveres m&#229; du angi sertifikat-, n&#248;kkel- og CA-filer
tls_ekey=Manglende eller ikke-eksisterende TLS n&#248;kkel-fil
tls_enable=Aktiver TLS kryptering?
tls_key=TLS PEM n&#248;kkelfil
tls_none=Ingen
tls_require=Godta bare TLS tilkoblinger?
tls_verify=Verifiser TLS klienter?
unmount_done=.. av-montert!
unmount_failed=.. av-montering feilet! Sjekk feilmeldingen ovenfor for mer informasjon.
unmount_run=Avmonterer volum p&#229; lagringsenhet $1 ..
weekdaynum_1=F&#248;rste
weekdaynum_2=Andre
weekdaynum_3=Tredje
weekdaynum_4=Fjerde
weekdaynum_5=Femte

View File

@@ -12,3 +12,4 @@ desc_ms_MY=Sistem backup Bacula
longdesc_ms_MY=Konfigurasi Bacula untuk melaksanakan salinan dan mengembalikan secara manual atau mengikut jadual, untuk satu atau banyak sistem.
longdesc_de=Konfiguriert Bacula um Sicherungen zu erstellen und manuell oder nach Plan wiederherzustellen, f&#252;r eine oder viele Systeme.
longdesc_pl=Skonfiguruj Bacula do przeprowadzania kopii zapasowej i przywracania rêcznie lub wed³ug harmonogramu na jednym lub wielu systemach.
desc_no=Bacula backupsystem

View File

@@ -18,3 +18,4 @@ desc_hu.UTF-8=Forgalmi monitor
desc_no=Overv&#229;king av b&#229;ndbredde
longdesc_ms_MY=Lihat laporan mengenai penggunaan jalur lebar oleh host, port, protokol dan masa pada sistem Linux.
desc_ms_MY=Pemantauan jalur lebar
longdesc_pl=Raporty na temat wykorzystania transferu przez host, port, protokó³ w okre¶lonym czasie.

View File

@@ -11,6 +11,7 @@ if ($have_dnssec_tools) {
use Net::DNS::SEC::Tools::rollmgr;
use Net::DNS::SEC::Tools::rollrec;
use Net::DNS::SEC::Tools::keyrec;
use Net::DNS::RR::DS;
use Net::DNS;";
}
@@ -1374,7 +1375,7 @@ if ($v =~ /^([^.]+)\@(.*)$/) {
elsif ($v =~ /^(.*)\@(.*)$/) {
local ($u, $d) = ($1, $2);
$u =~ s/\./\\\./g;
return "\"$u.$d.\"";
return "$u.$d.";
}
else {
return $v;
@@ -2536,11 +2537,14 @@ if ($add_slaves) {
if ($add_tmpl) {
# Create template records
local %bumped;
local %hash = ( 'ip' => $ip,
'dom' => $zone );
for(my $i=0; $config{"tmpl_$i"}; $i++) {
local @c = split(/\s+/, $config{"tmpl_$i"}, 3);
local $name = $c[0] eq '.' ? "$zone." : $c[0];
local $fullname = $name =~ /\.$/ ? $name : "$name.$zone.";
local $recip = $c[2] || $ip;
$recip = &substitute_template($recip, \%hash);
&create_record($file, $name, undef, "IN", $c[1], $recip);
if ($addrev && ($c[1] eq "A" || $c[1] eq "AAAA")) {
# Consider adding reverse record
@@ -2568,8 +2572,6 @@ if ($add_tmpl) {
if ($config{'tmpl_include'}) {
# Add whatever is in the template file
local $tmpl = &read_file_contents($config{'tmpl_include'});
local %hash = ( 'ip' => $ip,
'dom' => $zone );
$tmpl = &substitute_template($tmpl, \%hash);
&open_tempfile(FILE, ">>".&make_chroot($file));
&print_tempfile(FILE, $tmpl);
@@ -4002,7 +4004,7 @@ else {
}
if (&has_command("dnssec-dsfromkey")) {
# Generate with a command
my $out = &backquote_command("dnssec-dsfromkey -f ".quotemeta(&make_chroot(&absolute_path($zonefile)))." ZONE 2>/dev/null");
my $out = &backquote_command("dnssec-dsfromkey -f ".quotemeta(&make_chroot(&absolute_path($zonefile)))." ".quotemeta($dom)." 2>/dev/null");
return undef if ($?);
$out =~ s/\r|\n//g;
return $out;

View File

@@ -60,12 +60,14 @@ print &ui_table_hr();
#ksklife; dt_ksklife
$ksklife = find_value("ksklife", $conf);
print &ui_table_row($text{'dt_conf_ksklife'},
ui_textbox("dt_ksklife", $ksklife, 50));
ui_textbox("dt_ksklife", $ksklife, 50)." ".
$text{'dnssec_secs'});
#zsklife; dt_zsklife
$zsklife = find_value("zsklife", $conf);
print &ui_table_row($text{'dt_conf_zsklife'},
ui_textbox("dt_zsklife", $zsklife, 50));
ui_textbox("dt_zsklife", $zsklife, 50)." ".
$text{'dnssec_secs'});
print &ui_table_hr();

View File

@@ -52,7 +52,7 @@ if (@keyrecs) {
$ds = &get_ds_record($zone);
if ($ds) {
print $text{'zonekey_ds'},"<br>\n";
print &ui_textarea("ds", $ds, 2, 80, "off", 0,
print &ui_textarea("ds", $ds."\n", 2, 80, "off", 0,
"readonly style='width:90%'"),"<br>\n";
}

View File

@@ -149,6 +149,7 @@ dnssec_eperiod=Fehlende oder ung&#252;ltige Anzahl der Tage zwischen erneutem si
dnssec_err=Fehlgeschlagen DNSSEC Schl&#252;ssel erneut zu signieren
dnssec_header=Schl&#252;ssel 'erneut-signieren' Optionen
dnssec_period=Periode zwischen erneut signieren?
dnssec_secs=Sekunden
dnssec_title=DNSSEC Schl&#252;ssel erneut signieren
dnssectools_title=DNSSEC-Tools Automation
drecs_enone=Keine ausgew&#228;hlt
@@ -272,6 +273,7 @@ edit_err=Fehler beim Speichern des Datensatzes
edit_eserv=Sie haben keinen bekannten Dienst eingetragen
edit_eserv2='$1' ist kein g&#252;ltiger Dienstname
edit_espfa='$1' ist kein g&#252;ltiger Host um den Versand zu erlauben
edit_espfa2='$1' muss ein Hostname sein, keine IP-Adresse
edit_espfexp='$1' ist ein g&#252;ltiger Aufnahmenamen f&#252;r eine Zur&#252;ckweisungsnachricht
edit_espfinclude='$1' ist keine g&#252;ltige zus&#228;tzliche Domain von der E-Mail versandt wird
edit_espfip='$1' ist keine g&#252;ltige IP-Adresse oder IP/Netzmaske um den Versand zu erlauben

View File

@@ -286,6 +286,7 @@ edit_rusure=Are you sure you want to delete the record $1 from domain $2, and po
edit_dok=Yes, Delete It
edit_eptr='$1' is not a valid reverse address record hostname
edit_espfa='$1' is not a valid host to allow sending from
edit_espfa2='$1' must be a hostname, not an IP address
edit_espfmx='$1' is not a valid domain name to allow MX sending from
edit_espfmxmax=You are not allowed to have more than 10 domains to allow MX sending from
edit_espfip='$1' is not a valid IP address or IP/prefix to allow sending from
@@ -1097,6 +1098,7 @@ dnssec_header=Key re-signing options
dnssec_enabled=Automatic key re-signing enabled?
dnssec_period=Period between re-signs?
dnssec_days=days
dnssec_secs=seconds
dnssec_desc=Zones signed with DNSSEC typically have two keys - a zone key which must be re-generated and signed regularly, and a key signing key which remains constant. This page allows you to configure Webmin to perform this re-signing automatically.
dnssec_err=Failed to save DNSSEC key re-signing
dnssec_eperiod=Missing or invalid number of days between re-signs

View File

@@ -13,6 +13,7 @@ acl_findfree=Kan s&#248;k etter ledige IP adresser?
acl_forward=Kan opprette videresendings-soner?
acl_gen=Kan redigere oppf&#248;rings-generatorer?
acl_inview=Soner i visning &lt;$1&gt;
acl_inviews=Visninger denne brukeren kan redigere domener i
acl_master=Kan opprette master soner?
acl_multiple=Kan flere adresser ha samme IP?
acl_opts=Kan redigere sone-innstillinger?
@@ -22,6 +23,7 @@ acl_reverse=Kan oppdatere reverse adresser i alle domener?
acl_ro=Read-only tilgangsmodus?
acl_slave=Kan opprette slave/stub soner?
acl_slaves=Kan administrere klynge slave tjenere?
acl_toplevel=Utenfor en hver visning
acl_types=Tillatte oppf&#248;ringstyper
acl_types0=Bare listede
acl_types1=Alle
@@ -106,7 +108,10 @@ controls_unixopt=Tillat kontroll via Unix FIFO?
controls_unixowner=FIFO er eid av bruker
controls_unixperm=Tillatelser p&#229; FIFO
controls_unixyes=Ja, ved bruk av filen $1
convert_ebinary=Kommandoen som trenges for &#229; konvertere fra en bin&#230;r slave-sone til en tekst-format master er ikke installert
convert_ecompile=Bin&#230;r til tekst-format konvertering feilet : $1
convert_efile=En oppf&#248;ringsfil m&#229; angis f&#248;r du kan konvertere en slavesone til en master.
convert_efilesize=Oppf&#248;ringsfilen $1 finnes ikke eller den er tom
convert_err=Kunne ikke konvertere sone
create_edom='$1' er ikke et gyldig domenenavn
create_edom2='$1' m&#229; v&#230;re et domene, ikke et nettverk
@@ -219,6 +224,7 @@ dt_zone_zskrolldesc=Tving rollover av sonens sonesignerings n&#248;kkel
edit_A=Adresse
edit_AAAA=IPv6 adresse
edit_CNAME=Navn Alias
edit_DMARC=DMARC
edit_HINFO=Vertsinformasjon
edit_KEY=Offentlig n&#248;kkel
edit_LOC=Plassering
@@ -244,6 +250,9 @@ edit_ecname='$1' er ikke et gyldig alias m&#229;l
edit_ecname1=Du kan ikke opprette en navne-alias oppf&#248;ring med samme navn som en eksisterende oppf&#248;ring.
edit_ecname2=Du kan ikke opprette en oppf&#248;ring med samme navn som en eksisterende navne-alias oppf&#248;ring.
edit_edit=Rediger $1 oppf&#248;ring
edit_edmarcpct=Prosent av meldinger m&#229; v&#230;re et heltall mellom 0 og 100
edit_edmarcrua=Mangler adresse for aggregert feedback
edit_edmarcruf=Mangler adresse for "forensic" informasjon
edit_edupip=En adresseoppf&#248;ring for $1 finnes allerede
edit_eemail='$1' er ikke en gyldig e-post adresse
edit_eflags='$1' er ikke et gydig desimalt eller heksadesimalt n&#248;kkel-flagg nummer
@@ -260,6 +269,7 @@ edit_emx='$1' er ikke en gyldig e-post tjener
edit_ename='$1' er ikke et gyldig oppf&#248;ringsnavn
edit_ens='$1' er ikke en gyldig navnetjener
edit_ensec3value2=Manglende eller ikke-base64 salt
edit_ensec3value3=Mangler eller ikke-base64 salt
edit_eos=Manglende OS type
edit_eport='$1' er ikke et gyldig portnummer
edit_epri='$1' er ikke en gyldig prioritet
@@ -270,6 +280,7 @@ edit_err=Kunne ikke lagre oppf&#248;ring
edit_eserv=Du oppga ikke noen vekjente tjenester
edit_eserv2='$1' er ikke et gyldig tjenestenavn
edit_espfa='$1' er ikke en gyldig vert &#229; tillate sending fra
edit_espfa2='$1' m&#229; v&#230;re etvertsnavn, ikke en IP-adresse
edit_espfexp='$1' er ikke et gyldig oppf&#248;ringsnavn for en avvisningsmelding
edit_espfinclude='$' er ikke et gyldig ekstra domene som e-post kan sendes fra
edit_espfip='$1' er ikke en gyldig IP adresse eller IP/prefiks &#229; tillate sending fra
@@ -777,6 +788,7 @@ recs_A=Adresse
recs_AAAA=IPv6 adresse
recs_ALL=Alle
recs_CNAME=Navne-alias
recs_DMARC=DMARC
recs_HINFO=Vertsinformasjon
recs_KEY=Offenlig n&#248;kkel
recs_LOC=Plassering
@@ -977,6 +989,7 @@ type_A=Adresse
type_AAAA=IPv6 adresse
type_ALL=Alle oppf&#248;ringstyper
type_CNAME=Navne-alias
type_DMARC=DMARC
type_HINFO=Vertsinformasjon
type_KEY=Offentlig n&#248;kkel
type_LOC=Plassering
@@ -1009,6 +1022,7 @@ umass_type=Oppf&#248;ringstype som skal oppdateres
value_A1=Adresse
value_AAAA1=IPv6 adresse
value_CNAME1=Faktisk navn
value_DMARC1=DMARC spesifikasjon
value_HINFO1=Maskinvare
value_HINFO2=Operativsystem
value_KEY1=Flagg
@@ -1037,6 +1051,18 @@ value_WKS1=Adresse
value_WKS2=Protokoll
value_WKS3=Tjenester
value_delegated=Delegert sone
value_dmarcadkim=Krev streng DKIM justering
value_dmarcaspf=Krev streng SPF justering
value_dmarcnone=Ikke gj&#248;r noe
value_dmarcnop=Samme som dette domenet
value_dmarcnor=Ikke send
value_dmarcp=Policy for e-poster som feiler SPF eller DKIM
value_dmarcpct=Prosent av meldinger for &#229; ta i bruk policy
value_dmarcquar=Karantene e-post
value_dmarcreject=Avvis e-post
value_dmarcrua=Send aggregert feedback til
value_dmarcruf=Send "forensic" informasjon til
value_dmarcsp=Policy for underdomener
value_notdelegated=Annen sone
value_other=Verdier (en per linje)
value_spfa=Tillat sending fra domenets IP adresse?

View File

@@ -13,6 +13,7 @@ acl_findfree=Mo
acl_forward=Może tworzyć strefy pośredniczące?
acl_gen=Czy może edytować generatory rekordu?
acl_inview=Strefy w widoku &lt;$1&gt;
acl_inviews=Widoki na których użytkownik może edytować domeny
acl_master=Może tworzyć strefy podstawowe?
acl_multiple=Może tworzyć wiele nazw o tym samym IP?
acl_opts=Może modyfikować opcje stref?
@@ -22,6 +23,7 @@ acl_reverse=Mo
acl_ro=Tryb tylko do odczytu?
acl_slave=Może tworzyć strefy zapasowe/skrótowe?
acl_slaves=Czy może zarządzać klastrem serwerów zapasowych?
acl_toplevel=Poza dowolnym widoku
acl_types=Dozwolone rodzaje rekordów
acl_types0=Tylko te z listy
acl_types1=Wszystkie
@@ -106,6 +108,8 @@ controls_unixopt=Pozwoli
controls_unixowner=Właścicielem FIFO jest użytkownik
controls_unixperm=Uprawnienia FIFO
controls_unixyes=Tak, użyj pliku $1
convert_ebinary=Polecenie potrzebne do konwersji z binarnej strefy slave do formatu tekstowego master nie jest zainstalwoane
convert_ecompile=Konwersja z formatu binarnego to tekstowego nie powiodła się : $1
convert_efile=Musisz określić plik strefy zanim będzie można zamienić strefę zapasową na podstawową.
convert_efilesize=Plik rekordów $1 nie istnieje lub jest pusty
convert_err=Błąd konwertowania strefy
@@ -187,16 +191,34 @@ dt_zone_deleting_state=Usuwanie wszystkich stan
dt_zone_desc=Dla tej strefy DNSSEC nie jest jeszcze włączony. Możesz użyć tego formularza, aby Webmin automatycznie użył DNSSEC-Narzędzia, aby strefa była dodatkowo chroniona przed atakami typu DNS spoofing.
dt_zone_disable=Wyłącz DNSSEC
dt_zone_disabledesc=Usuwa tę strefę z listy stref zarządzanych przez DNSSEC-Narzędzia.
dt_zone_dne=Uwierzytelniony Denial of Existence
dt_zone_done=... gotowe
dt_zone_dssep=Rekord DS :
dt_zone_edne=Błąd uwierzytelniania mechanizmu odmowy
dt_zone_enable=DNSSEC Automatyzacja
dt_zone_enocmd=dnssec-tools nie jest zainstalowany lub polecenie nie zostało znalezione
dt_zone_enokey=Nie można odnaleźć wymaganych kluczy dla strefy $1
dt_zone_erollctl=Nie udało się powiadomić menadżera rollover o zdarzeniu rollover
dt_zone_err=Operacja DNSSEC nie powiodła się
dt_zone_errfopen=Nie można otworzyć pliku systemowego rollrec do zapisu
dt_zone_expandsep=Wyświetl aktualne szczegóły KSK i DS
dt_zone_header=Opcje strefy DNSSEC-Tools
dt_zone_keyrollon=Klucz Rollover w toku
dt_zone_ksknotify=Wznów KSK Roll
dt_zone_ksknotifydesc=Wznowienie KSK rollover. Operator musi potwierdzić, że nowe DS ustawione dla stref KSK zostały opublikowane przez nadrzędną strefę
dt_zone_kskroll=Roll KSK
dt_zone_ksksep=Record KSK :
dt_zone_migrate=Migracja do DNSSEC-Tools
dt_zone_migratedesc=Importuje aktualny zestaw kluczy do DNSSEC-Tools i zautomatyzuj przyszłe operacje na kluczach rollover DNSSEC.
dt_zone_resign=Ponowne podpisanie strefy
dt_zone_resigndesc=Użyj aktualnego klucza, aby natychmiast ponownie podpisać strefę
dt_zone_rollerdrst=Uruchom Rollerd
dt_zone_rollerdrstdesc=Uruchom daemon Rollerd
dt_zone_rrf_updating=Aktualizowanie wpisu rollrec dla strefy $1 ...
dt_zone_signing=Podpisywanie strefy $1 ...
dt_zone_title=Zarządzanie operacjami DNSSEC dla strefy
dt_zone_zoneupdate=Aktualizowanie rekordów w strefie $1 ...
dt_zone_zskroll=Roll ZSK
edit_A=Adres
edit_AAAA=Adres IPv6
edit_CNAME=Alias nazwy
@@ -226,10 +248,13 @@ edit_ecname='$1' nie jest poprawnym celem dla aliasu
edit_ecname1=Nie można tworzyć rekordów typu alias nazwy o tej samej nazwie, co rekord istniejący.
edit_ecname2=Nie można tworzyć rekordów o tej samej nazwie, co istniejący rekord typu alias nazwy.
edit_edit=Edytuj rekord $1
edit_edmarcpct=Procent wiadomości musi być liczbą całkowitą pomiędzy 0,a 100
edit_edmarcrua=Brakujący adres zbiorczej informacji zwrotnej
edit_edupip=Rekord adresu dla $1 już istnieje
edit_eemail='$1' nie jest poprawnym adresem e-mail
edit_eflags='$1' nie jest poprawną liczbą dziesiętną lub ósemkową flag klucza
edit_efqdn=Nazwa bezwzględna '$1' jest za długa
edit_egone=Wybrany rekord już nie istnieje!
edit_ehard=Brakujący lub niepoprawny typ sprzętu
edit_ehost='$1' nie jest prawidłową nazwą hosta
edit_eip='$1' nie jest prawidłowym adresem IP
@@ -240,6 +265,8 @@ edit_eloc=Nie podano szeroko
edit_emx='$1' nie jest poprawnym serwerem poczty
edit_ename='$1' nie jest prawidłową nazwą rekordu
edit_ens='$1' nie jest poprawnym serwerem DNS
edit_ensec3value2=Brakująca lub nienumeryczna liczba iteracji
edit_ensec3value3=Brakująca lub nie kodowana przez base64 sól
edit_eos=Brakujący lub niepoprawny rodzaj OS
edit_eport='$1' nie jest poprawnym numerem portu
edit_epri='$1' nie jest poprawnym priorytetem
@@ -250,10 +277,13 @@ edit_err=B
edit_eserv=Nie wprowadziłeś żadnej dobrze znanej usługi
edit_eserv2='$1' nie jest poprawną nazwą usługi
edit_espfa='$1' nie jest poprawnym hostem dozwolonym do wysyłania
edit_espfa2='$1' musi być nazwą hosta, a nie adresem IP
edit_espfexp='$1' jest poprawną nazwą rekodu dla odrzucania komunikatów
edit_espfinclude='$1' nie jest poprawną domeną dodatkową, z której wysłana jest poczta
edit_espfip='$1' nie jest poprawnym adresem IP lub IP/prefix do wysyłania
edit_espfip6='$1' nie jest poprawnym adresem IPv6 lub IPv6/prefix umożliwiającym wysyłanie z
edit_espfmx='$1' nie jest poprawną nazwą domeny do wysyłania MX
edit_espfmxmax=Nie możesz posiadać więcej niż 10 domen pozwalających na wysyłanie MX z
edit_espfredirect='$1' nie jest poprawną nazwą domeny alternatywnej
edit_etarget='$1' nie jest poprawną nazwą serwera lub adresu
edit_ettl='$1' nie jest prawidłowym czasem życia
@@ -391,13 +421,16 @@ index_apply=Zastosuj zmiany
index_applymsg=Naciśnij ten przycisk, aby przeładować działający serwer BIND. Spowoduje to uaktywnienie bieżącej konfiguracji.
index_applymsg2=Kliknij ten przycisk, aby zrestartować uruchomiony serwer BIND i wszystkie serwery zapasowe. Spowoduje to uaktywnienie bieżącej konfiguracji.
index_bind=BIND
index_checkconfig=Upewnij się, że katalog chroot jest poprawnie ustawiony na stronie <a href='$1'>konfiguracji modułu</a>.
index_chroot=BIND wersja $1, jako chroot $2
index_create=Utwórz podstawowy plik konfiguracyjny i uruchom serwer DNS
index_delegation=Delegacja
index_download=Ustaw jako internetowy serwer DNS i pobierz informację o głównych serwerach DNS
index_eempty=Pierwotny plik konfiguracyjny serwera BIND $1 nie istnieje lub jest nieprawidłowy. Czy utworzyć go od nowa?
index_emissingchroot=Uwaga : Webmin myśli, że BIND nie używa katalogu chroot, ale może to nie być prawda. Pliki strefy dla domen $1 nie zostały znalezione.
index_enamed=Nie znaleziono serwera DNS BIND $1 w Twoim systemie. Możliwe, że nie został zainstalowany lub Twoja <a href='$2'>Konfiguracja modułu</a> serwera BIND jest nieprawidłowa.
index_eversion=Program serwera $1 nie jest serwerem BIND 8 ani 9. Możliwe, że powinieneś użyć modułu <a href='$2'>BIND 4</a>.
index_ewrongchroot=Uwaga : Webmin, myśli, że BIND używa katalogu chroot $2, możliwe jednak, że jest on nieprawidłowy. Pliki strefy dla domen $1 nie zostały znalezione.
index_find=Znajdź strefy :
index_forward=Pośrednicząca
index_hint=Główna
@@ -718,6 +751,7 @@ net_eport='$1' nie jest poprawnym numerem portu
net_erecur=Nie wprowadzono adresów z których pozwalać na zapytanie rekursyjne
net_err=Nie udało się zachować opcji adresów i topologii
net_etopology=Nie podano topologii adresów
net_etport=Źródłowy transferu nie może zostać określony bez adresu
net_eusedport=Dla portu $1 dozwolony jest tylko jeden wiersz adresów
net_header=Ogólne opcje adresów i topologii
net_ip=Adres IP
@@ -727,6 +761,7 @@ net_recur=Pozw
net_saddr=Źródłowy adres IP dla zapytań
net_sport=Źródłowy port dla zapytań
net_taddr=Źródłowy adres IP dla transferów
net_taddrdef=Najbliższe IP
net_title=Adresy i topologia
net_topol=Topologia wyboru serwera DNS
net_tport=Źródłowy port dla transferów
@@ -738,11 +773,14 @@ rdmass_enone=Nie zaznaczono
rdmass_err=Błąd usuwania rekordów w strefach
rdmass_header=Masowe szczegóły kasowania rekordów
rdmass_name=Nazwa rekordu do usunięcia
rdmass_none=.. nie znaleziono pasujących rekordów z $1 do usunięcia
rdmass_ok=Usuwanie rekordów
rdmass_sel=Rekordy nazwane
rdmass_title=Kasowanie rekordów w strefach
rdmass_type=Typ rekordu do usunięcia
rdmass_vall=Wszystkie pasujące nazwy i typy
rdmass_value=Wartość rekordów do usunięcia
rdmass_vsel=Rekordy z wartością
recs_A=Adres
recs_AAAA=Adres IPv6
recs_ALL=Wszystkie
@@ -770,7 +808,9 @@ recs_ecannottype=Nie masz uprawnie
recs_find=Pokaż rekordy pasujące:
recs_header=W $1
recs_name=Nazwa
recs_needsearch=Wyszukaj pasujące rekordy.
recs_none=Domena nie zawiera żadnych rekordów $1.
recs_nosearch=Nie znaleziono pasujących rekordów.
recs_return=rodzajów rekordu
recs_search=Wyszukaj
recs_title=Rekordy $1
@@ -791,10 +831,12 @@ rmass_clash=Utworzy
rmass_doing=Dodawanie rekordu do strefy $1 ..
rmass_done=.. zakończono.
rmass_eclash=.. rekord o takiej samej nazwie i wartości $1 już istnieje.
rmass_eclash2=.. rekord o takiej samej nazwie i wartości $1 już istnieje.
rmass_ename=Brakująca lub nieprawidłowa nazwa rekordu
rmass_ename2=Nazwa rekordu nie może kończyć się na .
rmass_enone=Nie wybrano
rmass_err=Błąd dodawania rekordów
rmass_esign=.. gotowe, ale podpisanie nie powiodło się : $1
rmass_ettl=Brakujący lub nieprawidłowy czas życia
rmass_header=Szczegóły masowego dodawania rekordów
rmass_name=Nazwa nowego rekordu
@@ -869,6 +911,7 @@ slave_query=Pozw
slave_title=Edytuj strefę zapasową
slave_transfer=Pozwól na transfer z..
slave_update=Pozwól na aktualizację z..
slave_xfer=Testowy transfer strefy
slaves_add=Dodaj serwer
slaves_delete=Usuń zaznaczone
slaves_desc=Opis
@@ -906,6 +949,7 @@ text_desc2=Ta strona wy
text_desc3=Formularz ten umożliwia ręczną edycję pliku strefy DNS $1. Składnia nie jest sprawdzana przez Webmina.
text_ecannot=Nie masz uprawnień do modyfikacji plików stref
text_none=Jednakże plik jest pusty, ponieważ strefa nie została przetransferowana z serwera głównego.
text_rawformat=Ta strefa jest w formacie binarnym i nie może zostać wyświetlona jako tekst.
text_soa=Automatycznie zwiększ numer seryjny
text_title=Edytuj plik strefy
text_title2=Wyświetl pliki rekordów
@@ -942,6 +986,7 @@ type_A=Adresy
type_AAAA=Adresy IPv6
type_ALL=Wszystkie rodzaje rekordów
type_CNAME=Aliasy nazw
type_DMARC=DMARC
type_HINFO=Informacje o hostach
type_KEY=Klucz publiczny
type_LOC=Lokalizacja
@@ -987,6 +1032,9 @@ value_MX2=Serwer poczty
value_NS1=Serwer DNS
value_NSEC3PARAM1=Algorytm haszowania
value_NSEC3PARAM2=Flagi NSEC3
value_NSEC3PARAM3=Liczba iteracji haszowania
value_NSEC3PARAM4=Długość soli
value_NSEC3PARAM5=Sól
value_PTR1=Nazwa hosta
value_RP1=Adres e-mail
value_RP2=Nazwa rekordu tekstowego
@@ -999,8 +1047,18 @@ value_TXT1=Informacja
value_WKS1=Adres
value_WKS2=Protokół
value_WKS3=Usługi
value_delegated=Strefa wydelegowana
value_dmarcadkim=Wymaga ścisłego wyrównania DKIM
value_dmarcaspf=Wymaga ścisłego wyrównania SPF
value_dmarcnone=Nie podejmuj żadnych działań
value_dmarcnop=Takie samo jak tej domeny
value_dmarcnor=Nie wysyłaj
value_dmarcp=Polityka dla e-maili, które nie przeszły SPF lub DKIM
value_dmarcpct=Procent wiadomości, aby zastosować politykę
value_dmarcquar=Kwarantanna e-maila
value_dmarcreject=Odrzuć e-mail
value_dmarcrua=Wyślij zbiorczą informację zwrotną do
value_dmarcsp=Polityka dla subdomen
value_notdelegated=Inne strefy
value_other=Wartości (jedna w wierszu)
value_spfa=Pozwolić na wysyłanie z adresu IP domeny?
@@ -1014,6 +1072,7 @@ value_spfas=Dodatkowo dozwolone hosty wysy
value_spfexp=Rekord TXT dla powodu odrzucania
value_spfincludes=Inne domeny, z których wysyłana jest poczta
value_spfip4s=Dodatkowo dozwolone adresy IP/sieci wysyłającego
value_spfip6s=Dodatkowe dozwolone nadawcze adresy IPv6/sieci
value_spfmx=Pozwolić na wysyłanie z hostów MX domeny?
value_spfmxs=Dodatkowo dozwolone domeny MX wysyłającego
value_spfnoexp=Brak
@@ -1050,6 +1109,7 @@ weeks=tygodni
whois_ecannot=Nie masz uprawnień do oglądania informacji WHOIS
whois_header=Wynik polecenia $1 ..
whois_title=Informacje z bazy WHOIS
xfer_count=Transfer testowy pomyślnie pobrał $1 rekordów z przynajmniej jednego serwera nazw. Prawdziwe transfery BIND także powinny się powieść.
xfer_doing=Test transferu strefy z $1 ..
xfer_done=.. od $1 : Gotowe
xfer_failed=.. z $1 : niepowodzenie : $2

View File

@@ -37,3 +37,4 @@ desc_hu=DNS szerver (Bind)
longdesc_ms_MY=Membuat dan mengubah domain, rekod DNS, 'options' dan 'views' pada BIND.
desc_ms_MY=Pelayan DNS BIND
longdesc_de=Erstellt und bearbeitet Domains, DNS-Eintr&#228;ge, BIND-Optionen und Ansichten.
longdesc_pl=Twórz i edytuj domeny, rekordy DNS, opcje BIND i widoki.

View File

@@ -661,7 +661,7 @@ sub valemail
{
return $_[0] eq "." ||
$_[0] =~ /^[A-Za-z0-9\.\-]+$/ ||
$_[0] =~ /(.*)\@(.*)/ &&
$_[0] =~ /(\S*)\@(\S*)/ &&
&valdnsname($2, 0, ".") &&
$1 =~ /[a-z][\w\-\.$uscore]+/i;
}

View File

@@ -298,6 +298,7 @@ else {
$spf->{'a:'} = [ split(/\s+/, $in{'spfas'}) ];
foreach my $a (@{$spf->{'a:'}}) {
&to_ipaddress($a) || &error(&text('edit_espfa', $a));
&check_ipaddress($a) && &error(&text('edit_espfa2',$a));
}
$spf->{'mx:'} = [ split(/\s+/, $in{'spfmxs'}) ];
foreach my $mx (@{$spf->{'mx:'}}) {

View File

@@ -13,7 +13,7 @@ local @chans = &find("channel", $logging->{'members'});
local @rv;
foreach my $c (@chans) {
local $file = &find("file", $c->{'members'});
if ($file) {
if ($file && $file->{'values'}->[0] =~ /^\//) {
push(@rv, { 'file' => $file->{'values'}->[0],
'active' => 1,
'desc' => $text{'syslog_desc'} });

View File

@@ -27,3 +27,4 @@ desc_no=CD Brenner
longdesc_ms_MY=Burn data CD dari imej ISO atau direktori yang dipilih.
desc_ms_MY=CD Burner
longdesc_de=Brennt Daten-CD von ISO-images oder ausgew&#228;hlten Verzeichnissen.
longdesc_pl=Nagrywaj dane na CD z obrazów ISO lub wybranych katalogów.

View File

@@ -8,31 +8,24 @@ our (%text, %in);
# Output HTML for editing security options for the acl module
sub acl_security_form
{
print "<tr> <td><b>$text{'acl_lang'}</b></td> <td nowrap>\n";
printf "<input type=radio name=lang value=1 %s> $text{'yes'}\n",
$_[0]->{'lang'} ? 'checked' : '';
printf "<input type=radio name=lang value=0 %s> $text{'no'}</td>\n",
$_[0]->{'lang'} ? '' : 'checked';
my ($o) = @_;
print &ui_table_row($text{'acl_lang'},
&ui_yesno_radio("lang", $o->{'lang'}));
print "<td><b>$text{'acl_theme'}</b></td> <td nowrap>\n";
printf "<input type=radio name=theme value=1 %s> $text{'yes'}\n",
$_[0]->{'theme'} ? 'checked' : '';
printf "<input type=radio name=theme value=0 %s> $text{'no'}</td> </tr>\n",
$_[0]->{'theme'} ? '' : 'checked';
print &ui_table_row($text{'acl_theme'},
&ui_yesno_radio("theme", $o->{'theme'}));
print "<tr> <td><b>$text{'acl_pass'}</b></td> <td nowrap>\n";
printf "<input type=radio name=pass value=1 %s> $text{'yes'}\n",
$_[0]->{'pass'} ? 'checked' : '';
printf "<input type=radio name=pass value=0 %s> $text{'no'}</td> </tr>\n",
$_[0]->{'pass'} ? '' : 'checked';
print &ui_table_row($text{'acl_pass'},
&ui_yesno_radio("pass", $o->{'pass'}));
}
# acl_security_save(&options)
# Parse the form for security options for the acl module
sub acl_security_save
{
$_[0]->{'lang'} = $in{'lang'};
$_[0]->{'theme'} = $in{'theme'};
$_[0]->{'pass'} = $in{'pass'};
my ($o) = @_;
$o->{'lang'} = $in{'lang'};
$o->{'theme'} = $in{'theme'};
$o->{'pass'} = $in{'pass'};
}

View File

@@ -1,36 +1,36 @@
index_overlaydef=Brak - użyj domyślnej dla motywu
index_themeglobal=Motyw globalny ($1)
index_langset=Osobisty wybór ..
change_epass2=Nowe hasła nie pasują do siebie
index_themeset=Osobisty wybór ..
index_desc2=W tym module możesz zmienić $1, dla twojego konta.
index_d3=$1, $2 i $3
__norefs=1
acl_lang=Może zmienić język?
change_eoverlay=Nie można wybrać nakładki motywu jeśli nie wybrano motywu.
index_passagain=Powtórz hasło
index_themedef=Stary motyw Webmina
index_theme=Motyw interfejsu Webmina
index_ok=Zapisz zmiany
acl_pass=Może zmienić hasło (jeżeli zostało ustawione w Webmin) ?
acl_theme=Może zmienić motyw?
change_done=.. gotowe
change_ecolon=Twoje hasło nie może zawierać : znaku
change_eoverlay=Nie można wybrać nakładki motywu jeśli nie wybrano motywu.
change_eoverlay2=Wybrana nakładka motywu jest niekompatybilna z wybranym motywem.
change_epass=Nowe hasło jest nieprawidłowe : $1
change_epass2=Nowe hasła nie pasują do siebie
change_redirect=Powrót do głównego menu ..
change_restart=Restart Webmina ..
change_title=Zmian Ustawień
change_user=Zmian logowania Webmina ..
index_d1=$1
index_d2=$1 i $2
index_d3=$1, $2 i $3
index_desc2=W tym module możesz zmienić $1, dla twojego konta.
index_dlang=język, w którym wyświetlane są moduły
index_dpass=hasło używane do logowania w Webminie
index_dtheme=motyw, który kontroluje wygląd Webmina
index_lang=Język interfejsu Webmina
__norefs=1
change_ecolon=Twoje hasło nie może zawierać : znaku
change_user=Zmian logowania Webmina ..
index_langglobal2=Język globalny .. $1 ($2)
index_passleave=Pozostaw niezmienione
index_pass=Hasło logowania do Webmina
index_d1=$1
change_restart=Restart Webmina ..
acl_theme=Może zmienić motyw?
index_d2=$1 i $2
index_langset=Osobisty wybór ..
index_ok=Zapisz zmiany
index_overlay=Nakładka motywu
index_title=Zmiana języka i motywu graficznego
change_redirect=Powrót do głównego menu ..
change_eoverlay2=Wybrana nakładka motywu jest niekompatybilna z wybranym motywem.
change_title=Zmian Ustawień
index_dpass=hasło używane do logowania w Webminie
index_overlaydef=Brak - użyj domyślnej dla motywu
index_pass=Hasło logowania do Webmina
index_passagain=Powtórz hasło
index_passleave=Pozostaw niezmienione
index_passset=Zmień na ..
acl_pass=Może zmienić hasło (kiedy ustawione w Wbminie) ?
index_dlang=język, w którym wyświetlane są moduły
change_epass=Nowe hasło jest nieprawidłowe : $1
index_theme=Motyw interfejsu Webmina
index_themedef=Stary motyw Webmina
index_themeglobal=Motyw globalny ($1)
index_themeset=Osobisty wybór ..
index_title=Zmiana języka i motywu graficznego

View File

@@ -35,4 +35,4 @@ desc_no=Endre spr&#229;k og tema
longdesc_hu=Webmin nyelvezetésnek és témájának módosítása
longdesc_ms_MY=Membolehkan pengguna Webmin untuk menukar bahasa, tema dan mungkin kata laluan.
desc_ms_MY=Tukar Bahasa dan Tema
longdesc_pl=Pozwala aktualnemu u¿ytkownikowi Webimina na zmianê jêzyka, szablonu i mo¿liwego has³a.
longdesc_pl=Pozwala aktualnemu u¿ytkownikowi Webimina na zmianê jêzyka, motywu i has³a (o ile to mo¿liwe).

View File

@@ -205,6 +205,11 @@ foreach $s (@run) {
else {
push(@errs, [ $f, "Copy was incomplete" ]);
}
# Preserve file permissions
&remote_foreign_call($s->{'host'}, "webmin",
"set_ownership_permissions", $st[4], $st[5],
$st[2] & 0777, $dest);
}
# Run the post command on remote

13
cluster-copy/help/intro.pl.html Executable file
View File

@@ -0,0 +1,13 @@
<header>Kopiowanie plików klastra</header>
Ten moduł pozwala na zaplanowany transfer plików z głównego serwera
na inne serwery w klastrze Webmina. Może to być przydatne do rozesłania
takich plików jak np. <tt>/etc/hosts</tt>, <tt>httpd.conf</tt> i innych, dla
których nie s&#177; dostępne protokoły sieciowe takie jak NIS lub LDAP. <p>
Na głównej stronie modułu znajduje się lista wszystkich zaplanowanych kopii
oraz link umożliwiaj&#177;cy stworzenie nowych. Dla każdej kopii możesz okreliść
plik Źródłowy, katalog docelowy i czas uruchomienia. Serwery docelowe muszą
być najpierw dodane do modułu <b>Serwery Webmina</b> z loginem i hasłem <p>
<hr>

View File

@@ -14,3 +14,4 @@ desc_pl=Klaster - Kopia plik
desc_hu=Cluster fájlok másolása
longdesc_ms_MY=Jadualkan pemindahan fail dari pelayan ini ke pelayan yang lain dalam kluster Webmin.
desc_ms_MY=Kluster Fail Salinan
longdesc_pl=Zaplanowany transfer plików z tego serwera do innych serwerów w klastrze.

13
cluster-cron/help/intro.pl.html Executable file
View File

@@ -0,0 +1,13 @@
<header>Harmonogram zadań Cron w klastrze</header>
Ten moduł jest prawie identyczny co <b>Harmonogram zadań Cron</b>, ale
pozwala na jednoczesne uruchomienie zaplanowanych poleceń na wielu serwerach.
Jest to przydane, jeżeli w twojej sieci jest więcej serwerów i chcesz uruchomiać to
samo polecenie na wszystkich. <p>
Interfejs użytkownika jest prawie identyczny jak w standardowym module Crona,
ale dodatkowo zawiera pole <b>Uruchom na serwerach</b> w edycji zadania.
Pozwala to na wybranie jednego lub więcej serwerów lub grup z modułu <b>Serwery Webmina</b> <p>
<hr>

View File

@@ -11,7 +11,8 @@ desc_nl=Cluster - Geplande Taken (Cron)
desc_cz=Cluster - Cron úkoly
desc_cz.UTF-8=Cluster - Cron úkoly
desc_no=Klynge - Cron jobber
desc_pl=Klaster - Planowanie zadañ (Cron)
desc_pl=Klaster - Harmonogram zadañ (Cron)
desc_hu=Cluster idõzített futtatások
longdesc_ms_MY=Mencipta tugas Cron yang berjalan pada pelayan berganda secara serentak.
desc_ms_MY=Kluster Tugas Cron
longdesc_pl=Twórz zaplanowane zadania Cron, które zosatan± uruchomione na wielu serwerach równocze¶nie.

View File

@@ -17,3 +17,4 @@ desc_hu=Cluster jelszavak m
longdesc_ms_MY=Menukar kata laluan serentak pada pelbagai sistem dalam kluster Webmin.
desc_ms_MY=Kluster Tukar Kata laluan
longdesc_de=&#196;ndert Passw&#246;rter auf multiplen Server gleichzeitig.
longdesc_pl=Zmieñ has³a na wielu serwerach w klastrze Webmina równocze¶nie.

View File

@@ -0,0 +1,10 @@
<header>Polecenia shell klastra</header>
Ten moduł jest podobny do <b>Linia poleceń</b>, ale pozwala na proste
uruchamianie poleceń na wszystkich serwerach. Na głównej stronie modułu
możesz wpisać polecenie (lub wybrać jedno ze starych) i wybrać jeden lub
więcej serwerów lub grupę, na których ma ono zostać uruchomione.
Polecenia mogą być uruchamiane tylko na serwerach dodanych do
<b>Serwery Webmin</b>.
<hr>

Some files were not shown because too many files have changed in this diff Show More