
--------------------------------------
Collection Workflow Integration System
--------------------------------------

Copyright 2001-2017 Internet Scout Research Group
http://scout.wisc.edu/CWIS/


----- CWIS CHANGE HISTORY ------------------------------------

4.0.1  2017 Sep 17
    CORE IMPROVEMENTS
    - Extended SearchEngine to support 'user is not' searches
    - Added help text to all settings on System Configuration
        and Advanced System Configuration pages
    - Any errors reported by enabled plugins are now displayed on
        the Administration page (as well as the Plugins page)
    - Added "uadd" command to cwis command line utility.
    CORE IMPROVEMENTS (Internal)
    - Revised string handling code so that the mbstring extension
        is no longer required (though it will be used if available)
    - MetadataSchema: clean up and unify caches
    - PrivilegeSet::MeetsCondition() refactored for clarity and to
        add caching of field values
    - ResourceFactory::ImportResourcesFromXml() added to simplify
        installation
    - Session cookies now have the Secure and HttpOnly flags set
        when appropriate, to help minimize the possibility of XSS
        attacks
    CORE BUGFIXES
    - Updated database table definitions to avoid "max key length"
        error encountered in some newer default configurations
        of MariaDB and MySQL
    - Fixed the Currently Logged In and Recently Logged In lists
        on the Administration page, so they show the correct
        last location for users loading pages via clean URLs.
    - On ResetPassword, when a user who never activated their account
        successfully resets their password, implicitly activate their
        account.
    - Fixed issue that prevented AWStats client characteristics
        tracker script from being loaded
    NEW PLUGINS
    - SavedSearchMailings:  replaces the saved search mailing
        feature previously in the core software, and adds support
        for saved search emails for search results from non-default
        schemas (e.g. blog posts, events, pages, etc)
    PLUGIN IMPROVEMENTS
    - DrupalSync: Better error reporting when login sync fails
    - MLPHPList: Add local cache of user information to speed up
        generating Mailing List Metrics page
    - BotDetector: Do not assume that any IP listed by httpBL as
        "suspicious" is a bot (as this includes many IPs that are
        just part of public wifi networks)
    PLUGIN BUGFIXES
    - Rules: do not send email for new matches when editing an
        existing rule

4.0.0  2017 May 31
    CORE IMPROVEMENTS
    - In PrivilegeSet, remove the somewhat confusing "Checking
        Resource" condition
    - On SearchResults, use BotDetector to discourage bots from
        spidering search results pages
    - Add configurable password complexity rules.
    - Added "config", "dumpdb", "list", "loadresources", "mysql",
        "mysqlargs", "tdel", "trun", and "userui" commands to cwis
        command line utility
    CORE IMPROVEMENTS (Internal)
    - Significantly extended FormUI class and revamped forms
        in many areas to use FormUI
    - Create SearchParameterSetEditingUI, for easy embedding of search
        parameter sets into other pages (e.g. Rules editing)
    - Extend PrivilegeEditingUI and PrivilegeSet to accept fields from
        multiple schemas in the same privilege set
    - Add "Context Filtering" in ApplicationFramework, which prevents
        variables from unintentionally leaking between PHP and HTML
        templates
    - Store standard field mappings persistently in the database
    - Allow standard field mappings to be specified in XML Metadata
        Schema descriptions
    - Allow schema-level privilege settings to be specified in XML
        Metadata Schema descriptions
    - Remove all hardcoded references to the "Release Flag" field
    - Replace the "Release Flag" in new installs with a more flexible
        "Record Status" field
    - Added support to ApplicationFramework for user interface
        inheritance
    - Many, many cleanups of global variable usage
    - Upgraded included jQuery UI to 1.12.1
    - Upgraded included CKEditor to 4.6.2
    - Upgraded included PHPMailer library to 5.2.21
    CORE BUGFIXES
    - Add missing UserCanView() checks to DisplayReferenceField() on
        FullRecord
    - Many other minor bug fixes
    PLUGIN IMPROVEMENTS
    - Developer: Added support for conditional setting sections
        in developer.ini  (See install/EXAMPLE-developer.ini)
    - Developer: Added support for overriding system configuration
        values via developer.ini
    - DrupalSync: Rewrite to use a REST API to communicate with the
        companion Drupal plugin, rather than using access to a shared
        database
    - Pages: Add summary information in search results
    - MetricsReporter: Make all reports available in JSON format for
        easier ingestion by other software
    - Rules: Completely refactored to use an IF/THEN model
        and support complex search parameters in the IF
        section and complex email recipient selection parameters
        in the THEN section
    PLUGIN BUGFIXES
    - GoogleMaps: fix incorrect usage of BaseUrl() when generating
        KML

3.9.1   2016 Aug 25  (BETA RELEASE)
    CORE IMPROVEMENTS
    - Searching for when a field was last modified is now
        supported ("@" operator -- see new entry in Tips block
        on default Advanced Search page)
    - User fields can now be configured for automatic updates
        when records are changed
    - Background tasks can now be explicitly triggered by loading
        SITE/runtasks
    - Added new "cwis" command line utility (can be found in
        "install" directory)
    CORE IMPROVEMENTS (Internal)
    - Resource and Classification classes are now based off of
        a new Item class, and now use a separate Create()
        method and throw an exception in the constructor when
        passed a bad ID, rather than setting an error code
        (IDs can be checked before calling a construct via the
        static Item::ItemExists() method)
    - Locking has been implemented to prevent multiple simultaneous
        invocations of long-running plugin installs or upgrades
    - Session start handling has been refactored to better
        handle corrupt or missing session IDs
    - Connections to the database server are now retried if they
        initially fail
    - New StdLib class to provide standard utility functions
        and constants
    - Added code to prevent probability of PHP session garbage
        collection from dropping too low
    - Made PHP session cleanup more tolerant of extremely full
        directories
    - FormUI helper object extended with URL field type
    CORE BUGFIXES
    - Fixed issue with plugin event hooks not being unhooked
        when the plugin is disabled
    - Miscellaneous fixes to improve PHP 7 compatibility
    NEW PLUGINS
    - Piwik: adds tracking code for the Piwik web analytics
        tool to the HTML header
    PLUGIN IMPROVEMENTS
    - BrowserCapabilities: refactored to no longer be based off
        of Browscap library
    - Developer: added support for developer.ini file to force
        plugin configuration settings to specific values (see
        install/EXAMPLE-developer.ini) and to force plugins to
        be enabled/disabled
    - Mailer: in-use templates can no longer be deleted.
    - MetricsReporter: search log page now part of MetricsReporter
    - Pages: EVENT_RESOURCE_MODIFY is now signaled when a page
        is edited
    - Pages: content excerpts are now generated and stored and
        displayed as part of search results
    - ResourceExporter: now handles multiple schemas
    PLUGIN BUGFIXES
    - Mailer: plaintext-only templates should now work correctly

3.9.0   2016 May 20  (BETA RELEASE)
    CORE IMPROVEMENTS (Interface)
    - Replaced all CSS with SCSS in default interface
    - Refactored StdPageStart and StdPageEnd to be easier to understand
        and customize, with more and better inline documentation
    - Added support for searching across all item types (resources,
        pages, blog posts, events, etc)
    - Administration page: When log entries contain a URL, they are
        now clickable
    - Added system configuration option to show metadata field group
        names on the FullRecord page
    - Search pages were completely rewritten: fielded searches are now
        entered on AdvancedSearch, search results displayed on SearchResults,
        and the confusingly-named Advanced page no longer exists
    - Generalized FullRecord page to work with Resources from
        non-default Schemas
    - Refactored interface code to make more use of jQueryUI
    CORE IMPROVEMENTS (Internal)
    - Extended User fields to support multiple values
    - Removed numerous deprecated and unused variables that had been
        retained for compatibility with much older CWIS versions
        (older than 2.0.0).
    - When enabling a plugin, any other plugins on which the selected
        plugin depends will now be automatically enabled
    - Revised logic used to determine plugin initialization order to
        be more robust
    - Caller information is now included in more exceptions for easier
        debugging
    - Administration page: Smarter loading of log entries, preventing
        OOM errors when cwis.log grows very large
    - Added per-metadata-field SearchGroupLogic setting, used when
        multiple facets are selected
    - Added support for specifying a link target for image fields
    - Refactored all plugins and rest of core software to make use of
        SearchParameterSet rather than legacy format array encoding
    - Added ability to specify priviliges by name (rather than numeric
        ID) when loading metdata fields from XML files
    - Added support for prefix and suffix operators (^ and $) when
        searching text fields
    - Added caller context to logged error messages
    - Significantly improved compliance with Scout coding standards
        (including object and method documentation) in all code
    - Updated to be compatible with PHP 7
    CORE BUGFIXES
    - Fixed bug preventing uninstallation of disabled plugins
    - Fixed field permission checking on search pages so that users
        cannot search against fields they are not allowed to view
    - Updated ImportUsers/ImportUsersExecute to properly use CWUser
        rather than directly manipulating Axis--User which would result
        in half-created but unusable users
    - DownloadFile: prevent Apache from enabling transparent
        compression on already compressed files, which can cause issues
        with MS Office XML files
    - Updated to use Microsoft's recommended MIME types for Office
        XML documents
    - Fixed bug preventing CKEditor from properly loading CSS for
        paragraph fields where rich text editing is enabled
    PLUGIN IMPROVEMENTS
    - BatchEdit: extended to handle multiple schemas (types of items)
    - Blog: extended to allow sending of confirmation message on
        unsubscription to email notifications
    - CalendarEvents: added support for user-owned events
    - Folders: extended to support transferring folders between users
    - Folders: extended to be able to contain multiple types of items
    - GoogleMaps: now exposes more of the fine-grained address data
        provided by Google
    - MailIt: added new template keyword for recipient's email address
    - MetricsReporter: added tracking of Blog subscriber stats
    - UserCreator: extended to prompt for custom User schema fields when
        new users are created
    PLUGIN BUGFIXES
    - UrlChecker: display correct count for 'Permission Denied' errors
    - UrlChecker: don't attempt to check URLs from deleted fields
    - Pages: added support for specifying which tab should be selected
         in the URL

3.2.0   2015 Jun 11
    NEW PLUGINS
    - new plugin: BatchEdit, allows modifications to groups
        of resources
    - new plugin: MailIt, allows users to send resource
        summaries to themselves or others via email
    - new plugin: MySearches, displays recent searches conducted
        by the user
    - new plugin: PHPList, supports integration with PHPList
        as another option for announcement lists
    - new plugin: XML Sitemaps, to provide search crawlers
        with a directory of pages to be indexed
    PLUGIN IMPROVEMENTS
    - Blog plugin: added support for multiple blogs and replaced
        older 'Site News' functionality with a Blog
    - Folders plugin: revised to add/remove items from folders
        via AJAX (no page reloads)
    - Developer plugin: added support for automagically prepending
        a specified URL prefix to missing files/images to fetch
        them from an external site
    - Developer plugin: added ability to configure which
        privilege flags are required to see page load info
    - Developer plugin: added email whitelist support, to prevent
        email being inadvertently sent to end users when testing
        with a copy of a production site
    - GoogleMaps plugin: added support for customization of
        which UI controls are displayed
    - Mailer plugin: new X-RESOURCEVIEWURL-X keyword
    - Mailman plugin split into MailingList and Mailman plugins,
        the former providing generic support for integration with
        any mailing list platform
    - Pages plugin: added support for rich text editing
    - Pages plugin: added support for uploading and inserting
        images and downloaded files into a page
    - Pages plugin: now stores data in a separate metadata
        schema (with accompanying full privilege customization
        support)
    - UrlChecker plugin: more flexible configuration of what
        actions should be taken when 'withhold' and 'release'
        buttons are used
    CORE IMPROVEMENTS
    - server-side caching of generated HTML for logged-out or
        anonymous users
    - added support for URL fingerprinting of static assets
        (images, css, javascript), so that far-future cache
        expiration times can be used
    - added automatic minimization of javascript files
    - classification editing can now search for matching terms
        to edit, simplifying management of large vocabularies
    - installation: improved checking for required PHP extensions
        and better error reporting when they are missing
    - use HTTP response codes to redirect to a CleanURL when
        one is available for a given page
    - added a per-metadata field CopyOnResourceDuplication
        option
    - refactored to use PHP mysqli_ functions rather than the
        (soon-to-be-deprecated) mysql_ functions
    - revise database schema to provide defaults for all columns
        resolving installation problems when STRICT_TRANS_TABLES
        mode is enabled in MySQL
    - improved logic used in determining which resources
        match a saved search (previously only newly released
        resources could match)
    - added far-future expiration times in default .htaccess
        to make better use of client-side caching
    - updated the sample records to better showcase features
        like faceted searching
    - replaced internal JavaScript code with jQueryUI usage
        where applicable
    - added display of recent log messages to Administration page
    - added option to generate compact CSS from SCSS code

3.1.1   2014 Oct 20
    - added support for SCSS (SASS CSS extension language)
    - fixed bug in resource creation where flags with a
        default value of "Off" would not explicitly be set by
        PHP (though they were still set by MySQL)
    - fixed issues with Classifications that start with a
        punctuation character
    - removed display of "()" on resource editing complete
        page, for fields with item-level qualifiers and items
        that have no qualifier set
    - improved sorting of AJAX dropdown search results on
        resource edit page for controlled vocabularies that
        have terms like "Science--Study" (the lack of spaces
        around "--" was previously problematic)
    - fixed upgrade issue where fields from non-Resource
        schemas could be displayed on the EditResource page
    - fixed a problem with the current folder being reset to
        "Main" upon folder deletion when the current folder
        was not the one being deleted
    - fixed problem with missing Accessibility Wizard method
        being called from legacy interfaces
    - added additional diagnostic output upon image upload
        failure
    - other minor bug fixes

3.1.0   2014 Sep 5
    - revamped and extended permission/privilege system to
        support more complex workflows and separate out
        per-schema and per-field permssions configurations
    - moved Google Analytics support to plugin and added
        support for Google site verification code
    - moved RSS feed support to plugin (RSSExport) and added
        ability to create RSS feeds on any page using items
        from any schema type (resources, events, blog posts)
    - moved metadata export to plugin (ResourceExporter),
        which includes the ability to export selected fields
        from resources gathered into a selected folder
    - added plugins for exporting resource metadata in XML
        (REFormatXml) and tab-delimited form (REFormatTsv)
    - added display of most frequently used terms at the top
        of the AJAX dropdowns for Tree and Controlled Name
        fields when editing resources
    - updated included files for Cancore, Dublin Core, NSDL,
        and USGS vocabularies to correspond with the latest
        revision of those vocabularies
    - added Advanced System Configuration page (reachable off
        of the main System Configuration page) that now
        contains the more seldom-used technical settings
    - fixed bug that munged relative paths in interface files
        that begin with slashes when loading from a clean URL
    - made numerous small fixes for better HTML standards
        compliance
    - BotDetector plugin:  improved overall detection of bots,
        including explicit support for detecting bots that do
        not load appropriate CSS or JS files
    - BotDetector plugin:  added support for Project Honeypot's
        http:BL service for enhanced detection
    - BrowserCapabilities plugin:  changed phpbrowscap
        handling to reduce memory usage issues
    - CalendarEvents plugin:  added searching to event list
    - Developer plugin:  revised Variable Monitor to display
        all POST values instead of just "F_" variables
    - Folders plugin: added pagination to folder contents
        and greatly increased the number of items that can
        be placed in a single folder
    - Mailer plugin:  mail is no longer sent to users with
        disabled accounts
    - MetricsReporter plugin:  added interactive tabular and
        graphical displays of collected metrics data
    - OAI-PMH Server plugin:  added support for specifying
        default values for fields
    - UrlChecker plugin: improved loading speed of results
        page when there are a large number of broken URLs
    - many minor and a few not-so-minor bug fixes

3.0.2   2014 Apr 16
    - added support for allowing HTML in forum posts
    - added support for WYSIWYG editing in forums posts
    - fixed installation bugs in Tags, Blog, MetricsRecorder,
        and CalendarEvents plugins
    - fixed bug where disabled fields would be displayed on
        MetadataFieldOrdering page if they were in a group
    - fixed bug where folder buttons would not reliably display
        when CleanURLs were used
    - tweaked URL Checker plugin to display the broken URL,
        rather than the primary URL field
    - changed feedback form to skip validation when Cancel
        button is pushed
    - fixed a race condition that only allowed one temporary
        resource to be edited at a time
    - fixed a bug with caching of resource counts that would
        always grey out the very first menu entry on the
        AdvancedSearch page

3.0.1   2014 Feb 10
    - added setting of default database storage engine during
        installation
    - added ability to change login prompt text
    - updated login to more reliably return users to the page
        they were browsing prior to logging in
    - fixed a bug that prevented an Advanced Search from
        working on Reference fields
    - updated faceted search to properly display tree fields
        where no top-level values are assigned to resources
    - added several modifications and additions to
        significantly decrease page load times
    - improved task crash info display
    - added option to log slow page loads
    - GoogleMaps: revised so that when two map markers have
        the exact same geographical locations, one of them
        will be shifted slightly so that both will be visible
    - AutoScreenshots: fixed a bug preventing plugin from
        working with multiple image support
    - several significant performance optimizations
    - some other minor bug fixes

3.0.0   2013 Nov 26
    - added support for faceted searching
    - added support for custom user information fields
    - added support for multiple uploads to Image fields
    - added support for incremental keyword searching
    - added support for e-mail notification subscriptions to
        blog entries
    - updated the URL checker task queuing mechanism to be far
        more efficient and capable of checking more URLs per day
    - reorganized plugin file structure
    - revamped default schema, qualifiers, and sample resources
        to load from XML file
    - removed vestigial NetPBM image support
    - moved most remaining CWIS 1.x backward-compatibility
        measures to BackwardCompatibility plugin
    - further expanded developer documentation
    - many minor and a few not-so-minor bug fixes

2.9.0   2013 Sep 30
    - alpha release (pre-3.0)
    - added new conditional privilege system for metadata
        schemas and fields
    - added internal support for multiple metadata schemas
    - added incremental keyword search (disabled by default)
    - added the ability to use Mailer (plugin) templates for
        saved search mailings
    - added Periodic Events list to Task Queue page
    - completely revamped user help
    - CleanURLs plugin added (provides SEO-friendly clean URLs
        for resource browsing and full record pages)
    - CalendarEvents plugin added (provides configurable
        full-featured events calendar)
    - Blog plugin added (provides blog support)
    - MobileUISwitcher plugin added (provides the ability to
        automatically switch to a particular user interface if
        a mobile device is detected)
    - SocialMedia plugin added (provides social-media-friendly
        data in resource full record pages to make them
        more easily shareable via social media)
    - UserCreator plugin added (provides the ability to create
        new user accounts on the fly when editing resource
        records)
    - moved all customizations and dynamic file storage under
        "local" tree
    - many CWIS 1.x compatibility measures moved into
        BackwardCompatibility plugin (and some dropped)
    - added support for using minimized JavaScript
    - updated CKEditor
    - significantly expanded developer documentation
    - many minor and a few not-so-minor bug fixes

2.4.1   2013 Jun 10
    - fixed searching for controlled names shorter than the
        SQL full-text minimum word length
    - HTML is now allowed in announcements on the home page
    - many fixes focusing on e-mail, including character
        encodings, line endings, and plain text alternatives
    - more robust database upgrades
    - many other bug fixes

2.4.0   2012 Nov 20
    - revamped the metadata field ordering functionality
    - added the ability to group metadata fields primarily to
        show/hide many at a time
    - updated the metadata field editor interface
    - added "Requeue All" option for orphaned tasks in
        task queue
    - added "Recently Added Records" display to Metadata
        Tool home page
    - added server load average display to Administration page
    - added support for using SMTP for email delivery
    - added Pages plugin (add and edit non-resource pages with
        a WYSIWYG interface)
    - added Developer plugin (displays additional info useful
        for development and debugging)
    - added Backward Compatibility plugin (encapsulates
        some of the CWIS 1.x backward compatibility code)
    - Folders plugin: Added the ability to add search results
        to the currently selected folder
    - GoogleMaps plugin: improved KML 2.2 schema compliance
    - MailMan plugin: one-click unsubscription mechnaism
    - DrupalSync plugin: added automatic propagation from
        CWIS to Drupal for CWIS accounts that predate
        CWIS/Drupal synchronization
    - AutoScreenshot plugin: improved error handling and
        added support for wkhtmltoimage-amd64 for 64 bit
        servers

2.3.1   2012 Jun 7
    - limited release
    - introduced completely revamped Metadata Field Editor
        main page interface
    - added Folders plugin
    - added email test functionality to Mailer plugin
    - modified various internal URL-generation functions to
        work correctly on completely HTTPS-based installations
    - added hooks for modifying resource editing privileges
    - added hooks for modifying authoring/editing/viewing
        privileges on a per-field basis
    - added installation log
    - added distribution integrity check during installation
    - added option to pause background task execution

2.3.0   2012 Feb 28
    - added AutoScreenshot plugin for automatic screenshot
        generation
    - added caching for statistics displayed on the Metadata
        Tool home page
    - added Instructions support for metadata fields
    - added multiple defaults for option lists
    - incorporated a WYSIWYG editor
    - added revamped user list interface with sorting and
        searching capabilities
    - added UI file location caching to reduce server load
    - added Metrics Reporter stats to full record page
    - many minor and a few not-so-minor bug fixes

2.2.4   2012 Jan 11
    - limited release
    - added support for specifying User field settings as
        metadata field access privileges
    - added support for editing User fields
    - added support for setting specific privilege sets that
        limit the legal values for a User field
    - added internal tracking of metadata field modification
        times on a per-resource basis
    - added Mailer plugin for creating and sending generalized
        email notifications
    - added Rules plugin for setting up metadata change
        conditions that will trigger email notifications

2.2.3   2012 Jan 5
    - added Tags plugin for Flickr-style tagging
    - refactored search result page internal structure
    - many minor and a few not-so-minor bug fixes

2.2.2   2011 Oct 21
    - added support for CAPTCHA during new user signup
    - added support for remapping controlled name fields
    - added Author Autofill plugin for automatically copying
        author information into specified metadata fields
    - added User Account Pruner plugin for automatically
        pruning unactivated and unused user accounts
    - added Field Redacter plugin for redacting values of
        specific metadata fields for anonymous users
    - added preliminary version of Metrics Reporter plugin
    - added support for plugin configuration instructions
    - a few minor bug fixes

2.2.1   2011 Sep 7
    - Image fields can now be configured to require a user
        privilege to preview
    - images (including preview and thumbnail versions) are
        now resized when the dimensions for the associated
        Image field change
    - Tree fields can now be configured to require a user
        privilege to browse with them
    - whether metadata fields show up as options for sorting
        search results is now configurable
    - the default sort option for search results is now
        configurable
    - privilege set assigned to new users can now be configured
    - display of qualifiers on the full record page is now
        configurable on a per-field basis
    - user interfaces can now include a REQUIRES file that
        lists which CSS files they require loaded
    - OAIPMHServer plugin:  an XSLT file can now be uploaded
        to be applied to the OAI-PMH XML before it is output
    - OAIPMHServer plugin:  OAI elements can now be mapped
        to be filled in with the full record page URL
    - OAIPMHServer plugin:  can now auto-generate XSD for
        custom formats
    - added compatibility updates for MySQL 5.5 (MaxValue
        is now escaped to avoid conflict with new keyword
        and default storage engine is now forced to MyISAM
        for new installations)
    - many minor and a a few not-so-minor bug fixes

2.2.0   2011 Jun 23
    - complete revamp of CSS usage in all included UIs
    - added MyForumPosts plugin for displaying user's recent
        forum posts or resource comments
    - added DBCleanUp plugin to clean up stray database
        entries resluting from debugging or development
    - added Mailman plugin to provide functionality to
        implement Mailman mailing list subscription management
    - added AddThis plugin to provide interface to AddThis
        sharing service
    - added OpenIdServer plugin to provide support for using
        CWIS as an OpenID server
    - added NavEditor plugin to provide web interface for
        modifying main and secondary site navigation options
    - added BotDetector plugin to provide internal service
        for trying to determine whether or not user is a bot
    - added MyResourceViews plugin for displaying list of
        resources user has recently viewed
    - added option to specify whether HTML is allowed in
        text or paragraph metadata fields
    - added support for stemming of search terms
    - added default search synonym list for new installations
    - added non-UTF8 handling of incoming and exported RSS
    - forms revamped to improve accessibility
    - HTML5 input elements added to improve performance with
        mobile user agents
    - many minor and a a few not-so-minor bug fixes

2.1.2   2011 Mar 8
    - added usage display to Option List editing page
    - added CAPTCHA to feedback page
    - many minor and a couple of not-so-minor bug fixes

2.1.1   2010 Dec 22
    - revamped full record page layout in default UI
    - added support for mixed file/link resource collections
    - expanded developer documentation
    - added CAPTCHA and OpenId plugins to default
        distribution package
    - several minor bug fixes

2.1.0   2010 Oct 20
    - added Google Maps plugin
    - added phpBB login synchronization plugin
    - added OpenID single-sign-on plugin
    - replaced internal OAI-PMH server support with plugin
        that supports user configurable metadata formats
    - added CAPTCHA plugin to protect against spambots
    - enhanced URL checker plugin
    - added background rebuilding of search and recommender
        databases
    - added support for secure logins
    - added "Recent User Logins" display
    - added "Recently Modified Records" display
    - added options to jump to beginning/end and in 20%
        increments to search results interface
    - added toggle for search result ordering
    - added confirmation of user email address changes
    - made search result settings and Advanced Search
        field selections persistent
    - added "Auto-Submitted" and "Precedence" lines to
        default saved search email template to reduce
        responses from vacation programs
    - added many new event hooks (for plugins or other
        customization)
    - fixes for compatibility with PHP 5.3
    - several minor and a few major bug fixes

2.0.4   2010 Mar 10
    - several minor and one major bug fix

2.0.3   2010 Feb 26
    - removed "Optional" setting for Flag fields
    - added USGS Thesaurus vocabulary
    - added toggle for Advanced Search limit display default
    - added auto-reload of Task Queue page
    - several minor and a few major bug fixes

2.0.2   2010 Jan 5
    - fixed three minor but significant bugs

2.0.1   2009 Dec 31
    - added login and logout return address events
    - added initial interface implementation doc
    - several minor and a few major bug fixes

2.0.0   2009 Dec 18
    - production release
    - Drupal Synchronization plugin added
    - URL Checker plugin added
    - Latitude/Longitude Points plugin
    - many minor and a few major bug fixes

1.9.3   2009 Nov 9
    - beta release
    - added many new hookable events
    - added comment spam cleanup option
    - PHP strict conformance cleanup
    - many minor and several major bug fixes

1.9.2   2009 Sep 30
    - alpha release
    - added "Point" base metadata field type
    - improved plugin error checking
    - enhanced plugin subsystem
    - added task queue display
    - further expanded developer documentation
    - some minor bug fixes

1.9.1   2009 Sep 18
    - alpha release
    - added event subsystem
    - added plugin subsystem
    - added "URL" base metadata field type
    - expanded developer documentation
    - many minor and several major bug fixes

1.9.0   2009 Aug 17
    - alpha release
    - moved to Scout application framework
    - refactored internal structure
    - converted all themes to interfaces
    - added "http://mysite.edu/rNNNN" full record shortURL
    - added "http://mysite.edu/bNNNN" browse shortURL
    - added "http://mysite.edu/s=keywords" search shortURL
    - added online class documentation
    - added search result sorting
    - many minor bug fixes

1.5.2   2009 May 29 21:00 GMT  (CWIS-only release)
    - bug fixes (many security-related)

1.5.1   2009 Jan 23 17:00 GMT  (CWIS-only release)
    - 100% web-based installation and upgrade
    - many minor and a few not-so-minor bug fixes

1.5.0   2008 Mar 31 22:00 GMT  (CWIS-only release)
    - new XML-based controlled vocabulary import support
    - new OAI harvest log display
    - new "Refine Search" option on search results page
    - new Search Log display
    - new Failed Search Log display
    - 100% web-based installation (beta)
    - many minor and a few not-so-minor bug fixes

1.4.2   2007 Nov 1 22:30 GMT  (CWIS-only release)
    - beta release
    - added support for per-field permissions
    - added new resource editor
    - added new Collection Administrator user role
    - sepearated Admin interface into Collection/User/System
    - added event logging
    - added custom privilege flags
    - revamped Advanced Search interface to reduce complexity
    - added simple resource suggestion interface
    - added "Recent Searches" box
    - added resource record problem reporting
    - IMPORTANT: minimum MySQL version is now 4.1

1.4.1   2007 May 30 23:30 GMT  (CWIS-only release)
    - beta release
    - PHP 5 and MySQL 5 compatible
    - added support for synonyms in search
    - converted to use superglobals (PHP 4.1.0 or later now
        required)
    - completely revamped new account signup and "forgotten
        password" mechanisms
    - added anti-spam protection to feedback form
    - greatly sped up advanced searches that have limits
    - added new "File" base metadata field type
    - added new AJAX-style quicksearch in Metadata Tool for
        Tree fields with more than 250 values
    - incorporated all outstanding security patches
    - various minor bug fixes

1.4.0   2006 Jan 25 20:00 GMT
    - completely overhauled search top-level infrastructure
    - introduced new "include/SPT--Local.php" file that can
        be used to define specific user-coded functions (see
        include/SPT--Local--EXAMPLE.php)
    - all searches are now linkable and bookmarkable
    - added support for defining saved search e-mail header
        values (see SPT--SearchMailTemplate--Body.txt)
    - field lists in Advanced Search are now alphabetical
    - revised fielded searching mechanism (OSMASE) to reduce
        memory usage
    - new "My Searches" box now available (CWIS UI only)
    - added site keyword configuration (for Google and
        other search engines to pick up when spidering)
    - updated OAI-SQ support to match full protocol extension
    - added accessibility metadata fields to default CWIS
        schema and Access Match feature to hilight resources
        where those fields match Accessibility preferences
        as determined for user via mini-wizard
    - added capability to add parameters to filter records
        available for OAI (see SPT--Local--EXAMPLE.php)
    - added RSS feed importing and display capabilities
        (CWIS UI only)
    - added PHP configuration display option
    - user is now returned to current page when logging in
        if appropriate
    - added RSS feed indicator for RSS-aware browsers
    - "Test OAI" link updated
    - various minor bug fixes

1.3.1   2004 Oct 27 16:00 GMT
    - added accessibility "mini-wizard" as partial support
        for ACCLIP
    - added support for OAI-SQ (OAI search query extension)
    - added ability to page through user list
    - added support for removing user forum posting access
        from within forums
    - added ability to delete Tree field values that have
        child values or have resources assigned to them
    - added support for searching controlled name variants
    - expanded number of date entry formats supported
    - various minor bug fixes

1.3.0   2004 Aug 6 20:00 GMT
    - beta release
    - synchronized SPT and CWIS version numbers
    - added support for OAI sets
    - added ability to export Tree, Controlled Name, and
        Option fields via the Metadata Field Editor
    - replaced integrated search engine with OSMASE version
        of engine (adds improved internal query support)
    - increased field size for adding/editing classifications
        to 120 characters
    - importing of data will now translate \t and \n (tab
        and newline) to literal values
    - added support for customizable templates for saved
        search e-mails
    - added an optional unique field for data import
    - replaced most application-level SQL direct queries with
        calls to object methods
    - fixed more E_NOTICE warning messages
    - fixed bug that generated htmlspecialchars() error
    - various minor bug fixes

1.2.3 / 1.1.1   2004 Apr 28 18:00 GMT
    - added new "Personal Resource Administrator" user
      privilege flag that only allows entering new resources
      and editing resources you have entered
    - new interface for assigning controlled names and
      classifications if the there are less than 250
    - "Records Per Page" on Advanced Search now remembers
      the value you entered
    - improved handling of diacritics (Unicode)
    - eliminated obsolete ClassificationTypes and
      ControlledNameTypes tables
    - importing users now supports user privileges
    - added new DateOfRecordRelease field
    - fixed bug where multi-word controlled name or
      classification fields didn't work
    - fixed many E_NOTICE warning messages
    - various minor bug fixes

1.2.2 / 1.1.0   2004 Feb 11 20:30 GMT
    - added support for multiple tree (classification) fields
    - added ability to populate tree fields with prepackaged
        GEM subject taxonomy
    - added support for unicode UTF-8 character coding
    - improved import and export utilities
    - revamped saved search (user agent) feature
    - fixed import user bug which created empty user accounts
    - various minor bug fixes

1.2.1 / 1.0.1   2003 Nov 26 18:30 GMT
    - revised resource summary display (in SPT--Common.php)
        to reduce system load
    - various minor bug fixes

1.2.0 / 1.0.0   2003 Nov 14 20:00 GMT
    - added RSS and OAI links and test buttons to admin page
    - added registration capability on admin menu
    - purge sample records now also purges controlled names
    - can now specify administrator's email during install
    - user account management has been improved
    - metadata tool page now reports accurate number of
          controlled names
    - various minor bug fixes

1.1.8 / 0.9.4   2003 Oct 30 20:00 GMT  (CWIS-only release)
    - added "newinterface" script to create new UI to use as
          starting point for customization
    - added instructions for creating and customizing a new UI
    - added low vision / CSS user interface
    - added ability to search for user accounts
    - added ability to delete users
    - added permission flags to control whether a user can
          post resource comments or post to forums
    - various minor bug fixes

1.1.7 / 0.9.3   2003 Sep 26 18:00 GMT
    - fixed upgrade-related bug that could initially leave
      users with non-functional UI setting
    - CWIS-only release

1.1.6 / 0.9.2   2003 Sep 23 20:30 GMT  (CWIS-only release)
    - first beta release of CWIS
    - revamped OAI configuration interface
    - added user interface themes  [CWIS only]
    - added capability to specify display and editing order
          of metadata fields
    - added specification of administrator login and password
          during installation
    - revamped default metadata schema to include all fields
          supported under nsdl_dc  [CWIS only]
    - added initialization of OAI configuration to plausible
          values during installation
    - fixed various minor bugs

1.1.5 / 0.9.1   2003 Sep 16 02:30 GMT  (CWIS-only release)
    - added support for OAI harvesting of nsdl_dc format
    - updated help
    - revised OAI field mapping mechanisms
    - added support for OAI harvesting of qualified metadata
    - tweaked sample data to demonstrate greater variety
    - revised default schema to contain all fields supported
          by nsdl_dc harvesting format
    - added notes clarifying DC encoding scheme usage
    - added specific support for allowing and displaying
          non-destructive HTML tags within text and paragraph
          field data and user comments
    - added support for administrator editing of About content
    - fixed various minor bugs

1.1.4 / 0.9.0   2003 Sep 4 00:30 GMT  (CWIS-only release)
    - first (alpha) release of CWIS
    - added support for qualifiers
    - added additional stats to MT home page  [CWIS only]
    - revised (internal) image storage format
    - revised (internal) Metadata Tool infrastructure
    - added option to disable announcements
    - fixed various minor bugs

1.1.3   2003 May 23 14:30 GMT  (SPT-only release)
    - fixed bug that prevented dates containing full month
          names from being parsed correctly
    - fixed bug that could cause server log error messages
          when controlled name field had no names entered
    - fixed bug that could cause searches to fail where a
          possessive word form is followed by a word that
          begins with an upper case letter
    - fixed bug where editing or searching for a controlled
          name that contained special characters (quotes, etc)
          could cause an SQL error
    - fixed bug that could cause the word "Array" to appear at
          the top of the Edit Resource or Preferences pages
    - fixed bug that could cause Next Results to not display
          the correct resources in the Edit Resource search
    - fixed bug that could cause Previous Results in search
          to give you the same page of results
    - Date Issued is no longer a Required by SPT field
    - fixed bug that could prevent flag fields whose default
          was True from being disabled
    - option lists in Add/Edit Resource are now sorted
          alphabetically
    - changed "Image" metadata field type to "StillImage" to
          comply with DCMI
    - fixed bug that could cause searches for Added By and
          Last Modified By to not work correctly
    - Added By and Last Modified By now appear in the full
          record display if the user has RESOURCE_ADMIN privs
    - added System Configuration flags for disabling updating
          of the search and recommender databases to speed up
          adds, updates, and deletes of resources
    - added check in Metadata Field Editor to prevent adding
          two fields with the same name, which could create a
          database inconsistency
    - added full support for searching Date and TimeStamp
          fields (may enter date ranges and dates in various
          formats)
    - revised Help layout and content

1.1.2   2003 Mar 13 22:00 GMT  (SPT-only release)
    - code cleanup to better support register_globals = OFF
    - fixed bug where full page display only displayed one
          classification
    - fixed bug where sql errors occurred in RedHat 8 when
          assigned controlled names
    - fixed bug where option fields were not being displayed
          in full record
    - the title on full record display is now hyperlinked to
          the url
    - fixed bug where classification label was being displayed
          on full record display even if no classification
          existed
    - fixed bug where purged records would display as empty
          records if searched for
    - fix bug where import would fail if the import file
          contained more than 500 lines
    - changed Add New Record to display default values for
          all fields prior to adding record
    - fixed bug where selected option values were not being
          displayed on full record display
    - fixed bug that could cause image thumbnails to not be
          displayed under certain circumstances
    - fixed bug that could cause phrase searching to fail when
          image fields are included in searchable field list

1.1.1   2003 Feb 27 22:30 GMT  (SPT-only release)
    - made Url metadata field no longer required by SPT
    - fixed various bugs related to interface customization
    - added legal notice in system configuration
    - dates with format MM/DD/YY are now supported
    - fixed full record links on Recommendation Sources screen
    - Date Issued, Url, and Description are no longer required
          on import
    - help is now displayed more consistently
    - fixed bug where Image title was always Image Url in RSS
    - fixed bug where disabled controlled names where
          still displayed in the full record
    - fixed bug where export would not export records that
          did not have an assigned controlled name or
          classification
    - simplified and improved data export and import
    - added ability to export all resource records
    - improved logo file upload error handling
    - improved image upload error handling

1.1.0   2003 Feb 11 20:30 GMT  (SPT-only release)
    - reworked many parts to run better under PHP safe_mode
    - added image field type and the ability to upload images
            to a resource record
    - added support for customization of colors and logo in
            default user interface (now called "SPT Blue")
    - revised recommender system DB rebuild to reduce memory
            usage for larger collections
    - fixed bug that caused recommender system manual DB
            rebuild to fail on some systems
    - fixed bug which caused an SQL error when assigning a
            classification using Linux 8.x
    - added ability to browse and upload an import file
    - added the number of resources associated with a
            classification on the Assign Classifications page
    - when clicking on the name of a person posting to a
            forum, SPT now launches an e-mail compose page
            with the subject line filled in from the message
    - fixed various display bugs in the Clean Orange interface
    - fixed bug where previous "edited by" comment and forum
            messages where editable
    - added distinct Release Flag privilege
    - added distinct Edit User Account privilege
    - fixed various bugs associated with Apache safe-mode
    - changed Date Issued to no longer be a required field
    - fixed bug where invalid Date Issued values were not
            handled correctly
    - fixed bug where the moderator was not being set
            correctly when adding a new forum
    - fixed bug where user searches were not being save
            correctly
    - fixed bug where user agents would not always run
    - fixed bug where exported files were not always getting
            generated
    - import and export files are now created in a local
            /TempStorage directory instead of /tmp
    - changed option list default values to be used for
            adding new resources instead of advanced search
    - changed User Agent handling on the preferencs screen
            to suppress the Save User Agents button when
            no saved searches existed
    - only one header bar is now displayed in forums when
            there are no messages associated with a topic

1.0.2   2003 Jan  3 21:30 GMT  (SPT-only release)
    - fixed bug where assigned classifications would replicate
            prior to adding the record
    - fixed bug where assigning a classification that already
            exited would cause a syntax error
    - fixed bug where rebuilding the search DB would cause an
            infinite loop
    - added ability to page through old (older than 30 days)
            news items
    - fixed bug where new controlled name types were getting
            added with the wrong ControlledNameTypeId
    - added ability to search by Last Modified By in the
            metadata tool
    - fixed bug where you could get to preferences via help
            if not logged in
    - fixed bug that prevented SQL commands from being run in
            certain situations during an upgrade installation
    - revised home page generation to allow HTML tags in
            announcement headings and text
    - fixed various issues with RSS export to comply with RSS
            2.0 standard

1.0.1   2002 Nov 20 20:00 GMT  (SPT-only release)
    - reduced install execution time to help avoid exceeding
            default 30-second limit imposed by PHP
    - added work-around for PHP config value register_globals
            being set to OFF
    - fixed bug with resumption tokens in OAI 2.0 support
    - added additional exception checking to OAI 2.0 support
    - fixed bug with permission checking in Metadata Tool

1.0.0   2002 Nov 15 19:00 GMT  (SPT-only release)
    - added resource comments
    - added support for OAI 2.0 harvesting (export)
    - added support for filtering searches based on their
            cumulative user rating
    - fixed bug that could prevent Advanced Search from
            working on imported data
    - added ability to import user accounts
    - added e-mail links to resource editors in Metadata Tool
    - added dynamically-generated metadata field help in
            Metadata Tool based on local field definitions
    - fixed various minor bugs

0.9.7   2002 Oct 17 20:30 GMT  (SPT-only release)
    - added metadata field editor, which allows all types of
            fields to be added, deleted, or disabled,and
            gives control over field labels, search weighting,
            and much more
    - revised many of the system internals to accomodate the
            greatly increased flexibility introduced by the
            metadata field editor
    - added system configuration parameter to set the maximum
            number of "News & Announcements" entries to be
            displayed on the front page
    - install now creates installation directory if it doesn't
            already exist
    - revised User Agent e-mail message format to include the
            portal name (as defined in System Configuration)
    - added option for resource administrators to have a User
            Agent check for new resources every hour
    - added option to e-mail password to user if forgotten
    - improved date entry, so most common date formats can be
            entered
    - fixed various minor bugs

0.9.6   2002 Jul 26 02:00 GMT  (SPT-only release)
    - added import of sample resource data during installation
    - an option is provided to purge sample resource data and
            classifications from the database
    - a bug with resource record ID assignment was fixed
    - an initial message must be posted as part of adding a
            new forum topic
    - a bug that made the Forum and Topic title bars invisible
            has been fixed
    - an option for exporting resource data in a tab-delimited
            format is now provided
    - searching for controlled names and clasifications in the
            Metadata Tool has been made more consistent with
            resource searching
    - fixed various minor bugs

0.9.5   2002 Jun 26 22:00 GMT  (SPT-only release)
    - added Forums (bulletin boards)
    - added Recommendations (content-based recommender system)
            including a "Why was this resource recommended to
            me?" feature
    - added display of resource ratings on front page, while
            browsing, and in search results
    - revised classification and controlled name handling in
            Metadata Tool
    - added option to set default release flag status
    - fixed various minor bugs

0.9.4   2002 May 21 20:30 GMT  (SPT-only release)
    - added resource rating
    - added ability for user to save Advanced Search settings
    - added "user agents" to run preset searches at specified
            time and mail results to user (allows users to be
            automatically notified of new resources)
    - added RSS 0.9.2 export (allows other sites to display
            new headlines (resource titles) from your site)
    - revised Advanced Search to support result ranking by
            relevance
    - added support for Google-style "and" searching (all
            terms required in all search results)
    - added option for administrator to specify default
            search term handling ("and" or "or")
    - expanded online help

0.9.3   2002 Apr  5 20:30 GMT  (SPT-only release)
    - added support for prepending words with "-" to exclude
            them from a search
    - added capability to add and remove controlled name types
    - added support for allowing users to select between
            different portal user interfaces at will
    - added "Clean Orange" second user interface for portal

0.9.2   2002 Mar  6 20:30 GMT  (SPT-only release)
    - revised and expanded metadata fields to bring default
            configuration into compliance with Dublin Core
    - further separated HTML and PHP to support customization
            of interface
    - added hooks to support site-specific selection of
            announcements and resources on home page
    - revised keyword search to support relevance ranking of
            results
    - made keyword search result pages bookmark-able (search
            encoded in URL)
    - added page generation time to bottom of pages displayed
            when logged in with an account with System Admin
            privileges
    - added search time to keyword search results
    - added hooks to support site-specific filtering of search
            results
    - added "active user interface" support, that allows
            switching between multiple user interfaces within
            a single SPT installation on-the-fly

0.9.1   2002 Feb  7 20:15 GMT  (SPT-only release)
    - added support for upgrade installation
    - changed destination directory for installation to
            directory specified by installer, instead of
            directory specified by installer plus "/SPT/"
    - added new browsing interface with dynamically-generated
        navigation links that adapt to broad or deep
        classification schemes
    - added check to block access to web install interface
        after installation is complete
    - added capability to delete classifications
    - added SPT Revision History display option
    - added check to prevent a system administrator from
        accidentally revoking their own sys admin privileges
    - announcements can now be deleted
    - a release flag has been added to resource records to
        indicate whether they are approved for viewing or not
    - when browsing resources, the title is now linked to
        the site URL rather than the full resource record,
        and a Full Record link follows the description
    - adding controlled names in the metadata tool has been
        improved
    - searching for words of three letters or less is now
        supported
    - a bug has been fixed that could, under some conditions,
        force the re-entry of data when adding a new resource
        record and assigning controlled names or
        classifications to that record
    - the workflow when deleting a duplicated record has been
        improved
    - searching and sorting resources by the resource creator
        is now supported
    - added support for specifying portal name
    - added capability to configure number of classifications
        per page in resource browsing interface
    - added support for specifying administrator email address
    - added HTML page titles to most user-visible pages
    - added support for editing text of e-mail message sent to
        new users containing their password
    - added user feedback submission screen

0.9.0   2001 Nov 27 19:40 GMT  (SPT-only release)
    - initial beta release of Scout Portal Toolkit


----- CREDITS ------------------------------------------------


                       -===========-
                       The CWIS Team
                       -===========-

               Architecture   Edward Almasy
                Programming   Edward Almasy
                              Corey Halpin
                              Jacob Hamel
                              Kirk Li
                 Web Design   Tim Baumgard
                Logo Design   Dave Mayer

          Quality Assurance   Kendra Bouda

                   Outreach   Rachael Bower
                              Jessica Behrman
         Project Management   Edward Almasy
      System Administration   Charles Dake

      Emeritus Team Members   Tim Baumgard
                              Chris Beley
                              Todd Bruns
                              Jonathan Cain
                              Pat Coulthard
                              Michael Grossheim
                              Chanda Halderman
                              Charles Hu
                              Nathan Johnson
                              Rusty Lalkaka
                              Jaclyn Lang
                              Kyle Manna
                              Dave Mayer
                              Carmen Montopoli
                              Kyle Piefer
                              Evan Radkoff
                              Catherine Dixon Reigel
                              Avery Redlitz
                              Justin Rush
                              Sara Sacks
                              Michael Seaholm
                              David Sleasman
                              Chris Spoehr
                              Tyler Stank
                              Cea Stapleton
                              Zev Weiss
                              Barry Wiegan
                              Chris Wirz
                              Andy Yaco-Mink
                              Ben Yule


  Development of the Collection Workflow Integration System
      was sponsored by the National Science Foundation
    (http://www.nsf.gov) as part of the National Science
        Digital Library initiative (http://nsdl.org)

 Development of the Scout Portal Toolkit was sponsored by the
      Andrew W. Mellon Foundation (http://www.mellon.org).
