is a nonviral (MIT license) drop-in source code package which provides an in-application user feedback mechanism for Cocoa apps. It puts up a panel something like this:
It supplies the panel (in .xib form), the Objective-C controller code and even the
.php file to put on your web server to turn those web form posts into email messages (just replace
YOUR_(FEEDBACK_)EMAIL_ADDRESS_HERE@gmail.com with whatever you want).
Mike Zornek has created a nice screencast demonstrating how JRFeedbackProvider works and how to integrate it with your application. Thanks, Mike!
Requires 10.4 or later. Developed and tested on 10.5.
[NEW] Add a "Thank you" sheet upon successful feedback submission as well as an error sheet displaying any errors from
connection:didFailWithError:. (Clint Shryock)
[NEW] Made localizable, added French localization. (Philippe Casgrain)
[NEW] Optional Growl support. The "Thank you" is displayed in a growl notification, while errors are still reported in the sheet. (Clint Shryock)
[NEW] Center the feedback window. (Brian Cooke)
jrfeedback.php, if the supplied email address is well-formed, allow using it as the SMTP
From:header. (Clint Shryock)
- [FIX] Was calling
[emailAddressComboBox selectItemAtIndex:0]even when user's "me" AddressBook card lacked email addresses, causing an array-index-out-of-bounds exception to be thrown. (Rainer Standke)
- [FIX] Was calling
- [FIX] Disable cancel and send when submitting. (Brian Cooke)
[NEW] Use SystemConfiguration.framework to ensure feedback host reachablity before presenting panel. (rentzsch)
[NEW] Disable contact fields, when "Include contact info:" is unchecked. Switch to bindings for include email address. (Dave Dribin)
[CHANGE] Put user name in seperate field since PHP's
is_valid_email()doesn't understand proper RFC-822. Don't POST name, email or systemProfile fields if they're empty. Finally: s/includeEmailAddress/includeContactInfo ivar and IBOutlet. (rentzsch)
[FIX] Condition inversion in jrfeedback.php dealing with email addresses. (rentzsch)
- [NEW] Add field for the submitter's name, auto-populated from the address book. (Victoria Wang)
+[NSBundle bundleForClass:]instead of
+[NSBundle mainBundle]so JRFeedbackProvider is usable with plug-ins like .prefPanes. (Joesph Wardell)
[NEW] 10.4 support. Remove sole trivial use of ObjC 2 fast-enumeration so we can also target 10.4. (Joesph Wardell)
[NEW] Allow user to resize window, but vertically only. (Dave Dribin)
1.2 (formerly released as 1.1.1)
[NEW] Added new checkbox to the Feedback Window so users can acknowledge they are sending their hardware profile in.
[CHANGE] Made text of feedback message text view use black instead of green.
[NEW] Added a new class function to
JRFeedbackControllerthat allows you to initialize a feedback window with specific bug report text. This method assumes Bug Report is the default tab selected.
[NEW BUG] When using this new method the textView is given the bug report text via
setString:this result in all the test being bold by default.
[CHANGE] Edited the
jrfeedback.phpslightly so that appVersion (which
JRFeedbackControlleralready sends out) is picked up and put into the subject line.
[NEW] Set the user's reply address in the server-side PHP script. (Michael Zornek)
[FIX] Assertion failure if user clicks "Send" button and without waiting click the "Cancel" button. (Oleg Krupnov)
[CHANGE] Change "Submit" button to "Send" to be more respectful of the user. (Oleg Krupnov)
1.0 Original release