Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

nonviral cocoa source for implementing an application feedback panel (for bugs, feature requests and support)

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 demo
Octocat-spinner-32 lib
Octocat-spinner-32 .gitignore
Octocat-spinner-32 README.markdown
Octocat-spinner-32 jrfeedback.php
README.markdown

JRFeedbackProvider

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 and 10.6.

Please report bugs and request features on the Lighthouse JRFeedbackProvider project site.

Version History

  • 1.7

    • [FIX] Posting Form to Rails fixed. (Mantas Masalskis)

    • [CHANGE] Update SCNetworkCheckReachabilityByName (deprecated in 10.6) to SCNetworkReachabilityCreateWithName+SCNetworkReachabilityGetFlags. ticket 11 (Justin Williams)

    • [DEV] Explicitly set GCC_VERSION to 4.0 in demo app to compile under 10.6 (still targeting 10.4). (rentzsch)

  • 1.6

    • [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)

    • [NEW] In jrfeedback.php, if the supplied email address is well-formed, allow using it as the SMTP From: header. (Clint Shryock)

    • [FIX] Reset font weight upon setting text to avoid "everything bolded" bug. ticket 5 (Clint Shryock)

  • 1.5.3

    • [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)
  • 1.5.2

    • [FIX] Disable cancel and send when submitting. (Brian Cooke)
  • 1.5.1

    • [NEW] Conditionally set segment style in code, so XIB can compile without warnings on 10.4. (Dave Dribin)

    • [FIX] Leaked return of CFUUIDCreate() (reported by clang static analyzer). Also make GC dual-mode safe by calling NSMakeCollectable() on return of CFUUIDCreateString(). (Dave Dribin)

  • 1.5

    • [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)

  • 1.4

    • [NEW] Add field for the submitter's name, auto-populated from the address book. (Victoria Wang)
  • 1.3

    • [NEW] Use +[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 JRFeedbackController that 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.php slightly so that appVersion (which JRFeedbackController already sends out) is picked up and put into the subject line.

  • 1.1

    • [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

Something went wrong with that request. Please try again.