0.7.1 (01-18-2011):
- Changed root user warning text slightly
- Fixed bug #2914571 by darrikmazey
- Fixed bug #2814496 (Errors about $debug declaration)
- Fixed bug #2810044 (Fixed regexp issue with logs.cgi)

0.7.0 beta1b:
Fixed several other missing files. Bumped version just in case.

0.7.0 beta1a:
Some files from CK's changes were missing from the SVN upload and the released tarball. Apologies for that, it should be fixed now.

0.7.0 beta1:
Chuck Kollars has done a MASSIVE amount of work bringing things inline with this version.
A huge "Thank You!" to him for his work. With that, I give the community beta1.

0.7.CKalpha4:
Improve "progress" indicator in Log Analysis. For one thing, have separate
schemes for interactive use and for batch use since optimization for
either would mess up the other. 

Improve notifications about parse failure errors in Log Analysis tool.
Tell user both exactly which log files have parse failures in them and 
how many parse failures there were (not only as an absolute number but
also as a relative percentage). 

Try to make it clearer that the "too busy" message does _not_ suggest 
either that DG is performing poorly or that the server is mis-tuned. 
Clarify wording of "too busy" message, and remove the whole test-and-message 
construct from the main module, leaving it only in the Log Analysis tool.

Fix "sort" of log file names input to Log Analysis to properly handle
names that are a mixture of text and numbers (i.e. access.logs.10.gz). 

Fix "sort" of list file names by type so it puts '...mimetypelist',
'...extensionlist', and '...filesitelist' together.

Properly distinguish between configuration option values 0 (zero) and
'' (empty string).

Properly handle configuration options that specify an entire line
and can occur multiple times (i.e. authplug, contentscanner, 
downloadmanager).

Rework batch/unattended Log Analysis to not show any vestiges of
Webmin header nor footor. Also remove the few remaining hyperlinks
so there are none at all. 

Count log translation errors and display message suggesting change
if there appears to be a problem.

0.7.CKalpha3:
Added explicit setting of permissions for config files in the "local"
directory (for Master->Slaves). Previously although these files existed,
setting access permissions for them was not convenient.

Fix user permissions so noStart/noStop properly disables AutoRestart.

Recode the few remaining 'printf's to 'print' style instead (more
'Perlish')

Further enhance Log Analysis by also adding options to display
a) matching phrases, and b) user agent string information. Also make 
previously added showing of regular expression information optional, 
controllable by another checkbox. 

Allow any part of  'agent string' to be used as another part of 
filtering records.

Fix several miscellaneous bugs, including some missing messages
and poor behavior with the occasional "blanket ..." reason for action.

Relax some onerous but silly requirements, including requiring a 
trailing slash on directory names in the module configuration.

Greatly enhance handling of 'category', after realizing a single
log record often references more than one category and categories
were being combined when they should have been kept separate.

Provide better returns at end of Log Analysis page, varying 
what is shown intelligently depending on whether use is interactive 
or batch and on whether the summary or details are being displayed.

Enhance the operation of the "keepalive" to not only keep the
browser happy but also let an interactive user know that processing
is still continuing (that the module is not just "hung"). 

Fully make allowance for more DG configuration options, specifically 
the option that omits the *EXCEPTION* flag from exception records. 

Add information about required and optional DG configurations to
"help" page for Log Analysis tool.

Change code as necessary to get rid of all Webmin-detected Perl
"warnings" that were showing up in miniserv.error.

Add several comments to code, each making it clearer what the heck 
is going on.

Fix a couple small errors found in the example/scaffold batch report
script. Extend the comments a little to clarify usage. And change 
defaults for batch report to a) show only Allowed and Denied but 
not Exception, and b) greatly lengthen the number of items shown 
in each report.

Show more percentages in reports, yet label them clearly to 
distinguish them. And use a consistent format (one digit after the 
decimal point) for all of them (always coded as a separate 'sprint'
statement). 

Extract some frequently used constructs into new subroutines. (Next
candidate -if there is yet another round of the extractions- is the 
percentage sprintf.)

Guarantee there is always consistency between different logformats by
building regular expressions at runtime through concatenation of 
common subsets.

Enhance editing of text files to allow literal tab characters to be
inserted in files (rather than the usual browser interpretation of
TAB to mean 'move to next field' which prevents their entry into 
any text field).

Improve handling of preventing user from clicking on one tab and
modifying a different one because of confusion when editgroupslists
is initializeing its display.

0.7.CKalpha2:
Moved scaffolding example files into separate subdirectory.

Added "agent" filtering to Log Analysis. To make change cleanly also
a) added two new option checkboxes (with appropriate links) and
b) revised and retranslated documentation for Log Analysis tool and
c) added translated phrases to describe new options, and
d) added new options to batch report scaffolding file. 

Relaxed previous requirement of having to provide _both_ start and end dates.
Removed linkage of start<->end dates in Javascript so now each can
be specified separately without affecting the other.

Added master->slaves compatibility and example. For compatibility added
new subdirectory "local/", created files to populate it, and added 
.Include statements to reference those new files. For example, added
scaffolding files illustrating use of `rsync`.

Improved calculation of "busy CPU percentage" so it doesn't falsely
sai CPU is too busy if either a) some infrastructure is missing or
b) there's a momentary spike in CPU usage.

Eliminated duplicate display of list files available for editing
even if an .Include is unnecessarily repeated.

Made selection of which tab to show on multi-tab tools more intelligent, 
so after a modification the return is always to the tab that was just 
changed.

Cleaned up miscellaneous errors as they were found. 

Made some effort toward cleaning up message text translations. Removed 
several unused messages. Made sure all langage message translation files
had the exact same number of lines and used all the same keys.

0.7.CKalpha1:
Using version 0.7.0alpha1 as a base, I enhanced this module in early 2009.
Initially I had only the modest goals of 
i) adding reporting of regular expression matches to the output of 
Log Analysis, and 
ii) continuing to improve the fit with DG 2.10, especially by emphasizing 
"multiple filter groups". But one thing led to another, which led to 
another, which led to another, which... the eventual result was a 
semi-rewrite.

The final Log Analysis capability includes a host of small improvements.
Most are too small to even list, but combined their effect might be seen 
as a qualitative improvement in Log Analysis. Two new capabilities are 
particularly notable:
a) Log Analysis can be run on a _different_computer_ than DG. Just copy 
the DG <language>/messages file and the log(s) to be analyzed to any
other system. 
b) Log Analysis is not only interactive, but can also run unattended/batch -
an example/scaffold script file is included.
c) Log Analysis can now process logs in _any_ language for which DG
was configured and so DG wrote the logs in that language.
d) Display of individual requests now includes much more information, 
even the details of regular expression matches and of phrase matches.

As part of installing this module you will need to tweak the paths in
the 'module config' to match your local environment. This module will
come up part way even with incorrect paths. This allows you to use Webmin
itself to edit the module config to make it more correct. You should not
have to use any text editor for anything.

Reworked editing of text files to always use *nix-style line endings no
matter what - not even editing a file through a browser running on a
Windows machine will cause DOS-style line endings to be stored.

0.7.0alpha1:
I decided that a ground-up rewrite would take too long.
Instead it is planned to remove support for DG versions earlier than 2.8,
and focus on the items in the ToDo file.

This release was sponsored by Richard Geoffrion. Give him a huge thank you!

- Removed un-necessary default module config options
- Converted to using SVN instead of CVS
- Removed all code relating to DG versions < 2.9.90.1
- Clarified built-in restart methods as pertaining to module in module config
- Fixed dansguardian.conf config options in config.cgi
- Made use of webmin ui_ function calls wherever possible in module
- Replaced config.cgi section links with webmin tabs
- Fixed status.cgi display output
- Borrowed some changes from Aecio F. Neto that he made to previous pre-release module
for ui_ functions and formatting
- Included dgweblib.js file from Aecio F. Neto
- PID file checking is now done via check_pid_file();
- Child processes are now listed in status.cgi
- Changed function calls to have "&" character, makes it easier to read the code
- Quite a bit of code clean-up
- Implemented form line/option functions for filter groups editing


0.5.10-pr5:
- Corrected some internal logic with quoting textbox options in config
- Fixed bug with log analyzer (Bug #966726) (Fixed by Jimmy Myrick)
- Added blacklist editor/updater for <2.7.5 by Mirek Hancl
- Changed version checking; cleaned up a few files
- Changed config file checking method
- Modified index so it reports conf missing and binary missing as two different errors

0.5.10-pr4:
- Fixed issue with saveconf.cgi where it wasn't saving some options under content section
- Fixed "access denied" issue with editing files (Bug #998350, Found by Roland Pope)

0.5.10-pr3:
- Fixed problem where banned/exception user/ip were showing up twice in editfiles for DG < 2.7
- Removed link in editfiles which pointed to itself
- Added link in savefile to point to groups 
- Added "button" to reload group configs to index.cgi
- Changed restart routine to perform -r to DG instead of -g
- Made change in restart logic that "soft" restart is -r, "hard" restart is killall then launch
- Added support for FreeBSD, RedHat (yuck), and Solaris for default module config
- Fixed bug where process was restarted before config was written to disk
- Fixed reload groups ACL problem
- Changed module acl check to be a sub process
- Added support for DansGuardian 2.8
- Fixed bug where config editor lost other changes (Bug #952968)

0.5.10-pr2:
- Continued filter groups framework (is read-only currently)
- Fixed missing semicolon after &checkdgconf in savefile.cgi (Found by Roland Pope)
- Removed link in edit.cgi to return to config
- Added conf_bypasstimelimit, conf_bypasskey, index_numberofgroups, index_groupsettings to language file for english
- Changed groups.cgi to use new and current lang variables

0.5.10-pr1:
- Removed "Return to DG config" link in savefile.cgi, search.cgi, editfiles.cgi
- Added support for config options from 2.7.1 through 2.7.6-7
- Rearranged config options to be in sections. This makes for easier
  viewing and editing of the config via this module.
- Moved DG config file check to a sub in dg-lib file. Makes for
  cleaner files all around.
- Modified saveconf.cgi to work with sectioned editconf.cgi
- Added support to specify start/stop/restart commands
- Began filter groups framework

0.5.9-3:
- Fixed bug #813901 where .Include paths got messed up upon saving files
  Bug was fixed with patch from Vincent Renardias, then I realized that webmin
  has a function built-in to do what Vincent did. I implemented the webmin
  function as it was smaller.

0.5.9-2:
Two releases in a day fixing my screw-ups, ugh
- status.cgi was not doing it's job (process control)
- Titles in status.cgi were not showing up
- status.cgi itself was not showing up on index page
- Cleaned up <hr> tags in savefile.cgi
- Modified saveconf.cgi and saveavconf.cgi to auto-restart DG if user perms say to
- Changed note in saveconf.cgi to be taken from lang files

0.5.9-1:
- Fixed problem introduced with last version where DG config dir was prefixed to all file paths when editing files.

0.5.9:
- Fixed help link on index.cgi (Thomas Thuemmel)
- Security update: Fixed SourceForge bug #869509
  edit.cgi now forces files to be within DG config dir before editing
- Removed "Return to edit config" link from edit.cgi footer

0.5.8-1:
- Removed stop, start, and restart CGI's
- status.cgi now performs all process actions

0.5.8
- Implemented per-file edit ACL's for webmin users
- Auto-restart DG after file change is now possible
- Language changes:
  - Added note and forgetrestart
  - Added index_autorestart
  - Dropped "dg" from index_startdg, index_stopdg, and index_restartdg
  - Dropped "file path" from conf_ variables for banned/exception files
  - Added index_done
- Process control is now done through a sub-routine

0.5.7:
- Lost due to way too many changes

0.5.6:
- Re-implemented search function
- Fixed some more formatting issues

0.5.5:
- Fixed some formatting issues
- Changed log analyzer to use log format from DG config
- Fixed some missing text in lang/en (fr still needs updated)

0.5.2:
- Fixed startup problem (bug #731206) (Thomas Thuemmel)
- Implemented Jimmy Myrick's log analyzer (Adam Kennedy)

0.5.1:
- Changed version checking to catch DG 2.6 and 2.7
- Updated editconf.cgi for DG 2.6 and 2.7 options
- Changed method of shutting DG down in restart and stop calls
- Updated editconf.cgi to support the additional log formats

0.5.0:
- Was skipped due to my inability to keep track of what I did

0.4.0:
- Changed version checking to catch DG 2.5
- Changed the way the "buttons" are generated for the index page
- Removed "buttons" for start/stop/restart because they are tabs
- Added Webmin ACL support for start/stop/restart, status, logs, and edit config
- Changed some file names around
- Added support for DG 2.5 (contentregexplist, languagefile, urlcache, maxcontent filter size)

0.3.7a:
- Fixed "Error Bad Header" bug. I put the binary file check code ABOVE the page header information. Oops. (Adam Kennedy)

0.3.7:
- Fixed bug where module was reporting unsupported version instead of giving an error that it couldn't find the DG binary. (Adam Kennedy)
- French translation (JF Rameau)
- DG AntiVirus plugin support (Jason Pattie)
- Fixed typos in HTML code for various pages (Jason Pattie)
- .Include support added for lists (Jason Pattie)
- Various misc. file path corrections (Jason Pattie)
- Better version checking for DG (Jason Pattie)
- Changed config file writing method. It now updates the config file with the new values rather than writing out an entirely new file. (Jason Pattie)

0.3.6:
- Fixed error under FreeBSD where the log file for DG isn't named access.log
- Fixed bug where pics file didn't have an "edit" link
- Renamed module title to "DansGuardian 2.4" instead of "Manage DansGuardian 2.4.x", it's easier to find/read this way

0.3.5a:
- Fixed bug where view/save logfile omitted loglevel option
- Added some entries into language file for file location errors
- Fixed bug where viewlog.cgi couldn't find the log file

0.3.5:
- Fixed saveconf.cgi bug where it would output a blank config file (JF Rameau)
- Modified saveconf.cgi to display what it put in the config file. (me)

0.3.4:
- Fixed misc. errors with help HTML files (me & JF Rameau)
- The viewlog.cgi script now works! YAY! (me)
- Translated to french (JF Rameau)
- Fixed viewconf.cgi error for accessdenied help url (JF Rameau)
- Fixed viewlog icon on index page (me)
- Changed viewconf.cgi to list options in a table for easier viewing

0.3.3:
- Fixed problem where if version file didn't exist, it would freak out webmin
- Fixed some comment typos

0.3.2:
- Fixed broken variables for binary location
- Fixed broken version reporting

0.3.1:
- Started to add webmin ACL support
- Added version reporting
- Added new config option for 2.4.3
- Added icons w/ new DG logo
- Added online help links for config page

0.2.1:
- Added file locking when editing files
- Added Restart/Stop/Start "buttons" to top index page  (I stole this from the apache module)
- Removed the hideadvanced variable for preperation of Webmin ACL's
- Added icon for editing config

0.2.0:
- Designed basic icons for main functions
- Added arrays for easy table insertion for index
- Moved the config file editing to another cgi
- Modified the module config a bit. Now for etc directory you give it a directory name inside the chooser. NOTE: NO / is required at the end of the path!
