Initial commit :: export conference registrations.

Compose output by answer block type.

Order by page/block position.

Add support for all block types.

Refactor logic into function and renaming.

Build 2D registrations array.
Build header row column names by block title.

Add RegistrationService to produce table (2 dimensional array) of registrations.

Convert from two dimensional array to csv string.
Provide csv in download.

Minor mods.

Refactoring

Separate building of header and rows functionality (in order to sort on rows).

Refactor RegistrationsService name

Return array data type when retrieving answer value content.
Fix header production by checking for block type.
Append arrays in better fashion
Rename admin link

Install string.js

Sort rows by last name.

Move registrations table build into RegistrationsService.

Reorganize service functions

Minor refactoring.

Refactoring registrations view service name.

Add initial baseline export payments service

Derive registrant name from answers.

Format date/time.

Show export payments link only if conference has cost.

Format payment date/time.
Assume conference has cost.

Produce multiple rows, one per payment.
Include name on each row.
Include row when no payments.

Factor out into ConferenceHelper and U.js (utilities) services those commonly used functions.

Add sortArrayByIndex function to Utility service

Provide column name on array sort.
Change column header name.
Add $ prefix when displaying conference cost.

jshint

Restore original apiUrl

Account for possible null/undefined answer when searching by block id or type.

Download file with <a> anchor element (only supported by Chrome).

Add submit form function to utilities.

Submit csv to endpoint which produces response with header that all browsers will recognize as a file to download.

Refactor getContentByBlockType(...) function to overcome jshint cyclomatic complexity violation.