A much-enhanced and bug-fixed Feedback module v 5.00.02 has successfully made its way through the Release Tracker testing process required for "core" extensions that will be included within DotNetNuke framework packages. Although there are no differences between this official release and the 05.00.02 RC release candidate that was available several weeks ago, this "official" release may now be used on live production sites.
The most recent framework release (v 5.05.01) package includes the new Feedback module which may be installed simply by navagating to Host-->Extensions, clicking on "Install Available Extensions", checking Feedback (05.00.02) in the list of available modules, then clicking "Install Selected Extensions". You may also download the module's install package from its CodePlex project's download page found at http://dnnfeedback.codeplex.com/releases/view/50028
and install the downloaded package as you would any other extension. Note, however, that Feedback v 05.00.02 REQUIRES a MINIMUM DotNetNuke framework version of 5.02.03 as well as ASP.Net 3.5 SP1 and MS SQL Server 2005 or 2008 (Standard or Express).
After installing the new Feedback module and adding it to a page, please navigate to the module's Settings page and look over and as needed configure the many options that are available in the new release. The Release Notes included in the module package or available as a separate download on the CodePlex download page give a good overview of the enhancements and bug fixes in this version.
Here are highlights of the new enhancements:
- Converted Feedback.ascx to tableless form that is visually customizable by making changes to module.css and is XHTML compliant.
- Added setting to select display of form field labels either above or to left of fields to better allow placement of module in a narrow pane.
- Additional fields for entering sender's contact information have been added:
- SenderName (was available in 4.04.03 but named CreatedByName)
- SenderEmail (was available in 4.04.03 but named CreatedByEmail)
Each field has the appropriate validators applied and its value filtered for html elements, scripting, and SQL commands prior to storing in the database. If the user is authenticated, values for all contact fields are pulled from the user's profile. All contact information fields (if non-blank) are included in the feedback email.
- In module settings all of the above fields (except SenderEmail which is required) may be configured as Required, Optional, or Hidden.
- Added a PublishedOnDate field.
- If moderation is enabled in module settings and feedback list categories have been created, the admin may specify more than one category to be moderated (i.e. given a status of Pending) via a checkbox list and specify the action to be taken for those categories not subject to moderation - i.e. place in Private, Published, Archive lists or delete after sending emails.
- When the module settings have specified that the Category list is to be presented to the sender and feedback list categories have been created, the admin can select an initial category selection or have the localizable string "<Please Select>" placed as the first item in the Category list box.
- The Admin user may select whether to present a captcha control (challenge-response test) to all users, anonymous users only, or disable the control completely.
- A button to recycle/refresh the captcha image has been placed just above the captcha control.
- The Admin user may select a portal page (tab) to which to redirect following each submission of the feedback.
- The moderation control has been significantly rewritten to remove full postbacks anytime a command link has been clicked, to hide empty data grids and associated pagers for any feedback status types that have no posts. A section head control has also been added to each status grid to allow collapsing grids which contain posts but are not of interest at the moment.
- Moderator may now edit the subject and message fields of any post.
- Moderator may print any post by clicking the print icon beside each item on the moderation screen. A print template may be defined in the module settings as may whether the print screen appears in-line (same page) or as a pop-up (new page).
- Added a Delete confirmation popup to all datagrids on the Moderation page.
- Moderator may sort any of the grids by Created date ascending or descending by clicking on the Created date column header. Moderator may optionally hide any posts not in categories requiring moderation. In version 4.04.03, all posts in categories not requiring moderation were hidden and thus could not be deleted or have their status changed.
- The ViewComments control aka the Feedback View or Guestbook now supports templated rendering and core token replacement allowing the admin user to fully control the presentation of comments to the public. A Repeater control is used for rendering rather than the DataList control of prior versions. The IPropertyAccess interface has been implemented to provide tokens for all properties of the FeedbackInfo class.
- Admin user may specify more than one category to be displayed in the ViewComments/Guestbook control.
- ViewComments/Guestbook control pagers are hidden when the total number of posts does not exceed the admin or user specified page size.
- The module is DNN 5 compliant and uses the new v 5 manifest to include license/release notes and to setup the two custom permissions used by the module via the <permissions> node of the manifest rather than via an IUpgradable implementation.Module now uses core SendMail methods rather than propriatary code.
- The Send To email field in the module settings may include multiple email addresses separated by semi-colons.
- Send To Roles selection grid is included in module settings to permit feedback email to be sent to all users in one or more security roles. When multiple Email addresses are specified either in the Send To or Send To Roles selector, duplicate addresses (for example caused by same user having multiple roles) are filtered out.
- When available, the IP Address of the sender is included in each feedback item saved to the database. To reduce the chance of DOS attacks, you may specify in the module settings the minimum period of time in minutes between feedback submissions from the "same" user based on either the DNN UserID, the user's IP address, or the user's email address.
- The regular expresions for validating the sender's Email, PostalCode and Telephone fields may be defined in the module's settings as it is difficult to create regular expressions that handle all international formats. Defaults for each regular expression are provided. The default Email regex is that defined in the portal's User Settings.
- Core audit fields CreatedOnDate, CreatedByUserID, LastModifiedOnDate and LastModifiedByUserID have been added to the feedback table and are populated appropriately.
- FeedbackInfo, and FeedbackList entity classes implement IHydratable when being populated from database. FeedbackInfo inherits from new core BaseEntityInfo class and implements IPropertyAccess.
- The Feedback module previously stored its items by PortalID making all items within the same portal moderatable/managable by any Feedback module regardless of ModuleID. Likewise for the feedback comment viewer or guestbook. A new Feedback module setting called "Scope" is available to allow the admin to select either portal scope (legacy behavior) or module instance scope. Since the Feedback table already included a ModuleID column, it was not necessary to alter this table. For the feedback viewer/guestbook settings, the admin may select either the legacy portal scope or select from a checkbox list of the portal's feedback modules which module's items are aggregated to supply content to the feedback viewer. Aggregated feedback respects the user's view permissions of the other modules providing feedback items.
- A foreign key constraint on the ModuleID column of the Feedback table to the core Modules table with cascade delete on has been added to remove module instance feedback items when the module is deleted (from the recycle bin).
- A button is provided on the Feedback settings control for the admin user to delete all feedback items which had been "orphaned" in prior versions of the module when an instances of the module were deleted. In prior versions, although feedback items from all modules of a portal were viewable on the moderation/management page, only those items associated with the module could be deleted, making it impossible to delete items associated by ModuleID to a deleted Feedback module.
- Made ValidationGroup applied to validators and submit button more specific so that multiple instance of the feedback module may co-exist on the same page.
Please post any issues you find with this module or any enhancement requests for future versions in the projects CodePlex issue tracker at http://dnnfeedback.codeplex.com/workitem/list/basic.