This tool allows a Sakai user to report problems with a site's content or functionality. Reports are sent as emails to the problem site's contact email, or, if that hasn't been specified, to a user selected site maintainer. In addition to the two reports, there is a link to an area where you can suggest new features. This link has to be configured from sakai.properties.
The code builds as a webapp which you can drop straight into your tomcat. To configure the tool, set these properties in your sakai.properties or local.properties.
feedback.featureSuggestionUrl=http://sakaifeature.myinstitution.ac.uk
feedback.helpPagesUrl=http://sakaihelp.myinstitution.ac.uk
feedback.supplementaryInfo=This is a chunk of really helpful \
supplementary information. Enjoy!
If you have configured Recaptcha in your Sakai, Feedback will use it to validate unauthenticated technical feedback reports.
You can force all your sites to have a copy of this tool wit the following lines in your sakai.properties
# Make sure the feedback tool can't be removed from sites.
poh.uneditables=sakai.feedback
poh.unhideables=sakai.feedback
then place a toolOrder.xml in your sakai home folder that marks the feedback tool as required. An example toolOrder.xml is in the root of the feedback project.
To backfill existing sites to have the Feedback Tool. you need to run a quartz job to add the tool to all the sites. There is a Job called "Backfill tool into sites" which when run can add a specific tool to all sites that match a partiular type.
The feedback tool is written using a mixture of Java, Javascript and Handlebars templates. A servlet (FeedbackServlet.java) and JSP page (bootstrap.jsp) are used to initialise the page shell with Javascript variables. Javascript then takes over and renders templates into the shell when a link is clicked. Forms are submitted to an EntityProvider (FeedbackEntityProvider.java) and that provider does the emailing. Some protection against DDoS attacks is provided by an optional Recaptcha integration. There's a template for every page although they are all compiled from WEB-INF/templates into templates/all.handlebars. One download with all the templates compiled to JS.
To compile the templates use handlebars.js
npm install -g handlebars
The precompile step is available through the plugin
mvn3 install -P templates