Unlike previous versions of this module or most other Webmin modules, this module uses JavaScript heavily. In fact, you probably won't even be able to use this Webmin module if you turn off JavaScript in your browser.
This version of this module focuses on user-friendliness at the expense of substantially increased CPU and RAM requirements. Provided this module is executed on a modern computer with adequate CPU and RAM, everything will work okay. But this module will probably not perform adequately on an old slow small computer, even though it ran previous versions of this module okay.
As before, normally config files are edited with menus that display each option separately. Now if something goes wrong with the menus, it's always possible to edit every config file directly and manually too. There's no longer ever a reason to resort to a non-Webmin tool because the configuration is "stuck".
Automatic save and ability to revert to every version of every config or list file. Always being able to go back to a previous version this way is a sort of "undo" feature.
Almost all error conditions include not only a user notification but also pointers on how to fix the problem. Where changes to the Webmin "module config" are suggested, a hyperlink to the "module config" is included right in the warning message. Users don't need to guess or to click something else somewhere else. In effect a universal "undo" feature is now available.
Several different languages are supported using the standard Webmin mechanism. While poor, it's hoped these translations are nevertheless good enough to be helpful. If you don't like a transation, make a better one and contribute it for inclusion in a future version of this module. You can replace only some parts of an existing translation. There's no need to replace the whole thing all at once.
It appears that a Malay translation would be especially useful, but unfortunately it's not yet available. If a partial Malay translation were contributed, it would be used wherever it was available, and the standard Webmin mechanism would automatically fall back to another language in other places.
The log files can be fully and sensibly read regardless of which language DansGuardian wrote them in. All menus and filters quickly and automatically adapt to whatever language the logs were recorded in (which need not be the same language used by Webmin itself -although of course it often is.) The Log Analysis tool re-uses the same messages file used by DansGuardian, so everything always stays in sync automatically.
Summaries are provided not only for Allowed and Denied requests but also for Exception requests. This allows you to see at a glance whether most of the work is being done by phrase scanning of content or by checking URLs against blacklists and so forth.
The IP filter field can now be used to specify a group of computers (a subnet) as well as just one computer.
The domain(site) name field now supports partial matches as well as full matches. For example you can now specify 'facebook.com' and have it match all of 'www.facebook.com', 'upload.facebook.com', 'friends.facebook.com', and so forth.
Setting up multiple filter groups can be daunting, as the most straightforward way to do it creates a huge number of files all in one directory. So this module includes an automated alternative. Simply specify what you want the filter groups to be named and how you want the files to be related, and this tool will create or copy all necessary files. Also, a comment block explaining exactly what each file is for will be automatically added at its top.
This setup only needs to be done once, after which the setup option in this module will be grayed out. But doing it even just once is so important and can be so onerous that this module can do it for you automatically.
Search is now its own separate tool rather than being a function grafted onto some other tool.
A wide variety of things can be searched for intelligently: words, phrases, domain(host) name, URL, and even pattern. One can search for and find any regular expression just by typing the regular expression literally. There's no need to use any strange syntax for searching, not even just to translate some characters. Searching for a phrase automatically takes account of possibly different word order. Typing just "Jack jumped" will automatically search for "jumped Jack" too.
For each file in which one or more matches was found, whether or not the file applies to each filter group will be shown. So if the contents of a file apply to some filter groups but not others, it will be immediately clear. Filter groups are listed by filter group name (if the group has a name), making it easier to understand the display just by glancing at it.
Page headers and footers are more consistent, as is the display of warning messages. Both the DansGuardian version and the Webmin Module version are displayed on every page, and always in the same place.
Testing of the environment and display of warning messages if something doesn't seem right have been greatly expanded.
Every changed line in every file is commented with a date-and-time stamp showing when it was changed.
Insertion of options in existing config files is done semi-intelligently, so new options don't just all pile up at the very end of the file. If the option existed previously but was then commented out and now is being added back, the new option will immediately follow the old comment anywhere in the file.
Whenever multiple filter groups exist, all filter groups are listed side by side (often as tabs on the same page). And they are mostly referred to by their assigned name rather than as 'f1', 'f2', 'f3', and so forth.
For modifying the config file, configuration options are spread out over a large number of menu tabs. For those times when you know the name of the option you want to modify but don't know which tab it's on, there's an option finder which lists all options and jumps immediately to the right tab when you select one.
Each environmental limitation, such as no DansGuardian executable or no DansGuardian config file, deactivates only the relevant tools. Limitations no longer deactivate the entire module so you can't run anything at all.
All plugin options shown even if they are currently commented out.
Some defaults that vary from one system to the next because they are compiled in are nevertheless correctly reflected in the configuration modification tools. In particular many default file system paths are customized to the local DansGuardian. If a different DansGuardian package built with different settings is obtained, this module will attempt to adjust to reflect it.
Attempt to automatically adjust to different paths (such as /usr/local/etc/dansguardian/... vs. /etc/dansguardian/...). Provide full functionality regardless of what paths are in use.
Proceed to the initial display even if paths are incorrect. From there support using Webmin to edit the "module config" as necessary to specify the correct paths.
Option values in config files are quoted intelligently. Numbers and short non-space strings are not enclosed in quotes, while longer strings and strings with spaces are.
As before, all files will be read and understood regardless of whether they use DOS line endings or Unix line endings. What's new is that all modified files will always be written with Unix line endings, even if they were modified inside a web browser running on a Windows computer.