Skip to content

Instantly share code, notes, and snippets.

@ada-lovecraft
Created February 10, 2014 16:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ada-lovecraft/8918810 to your computer and use it in GitHub Desktop.
Save ada-lovecraft/8918810 to your computer and use it in GitHub Desktop.
json to csv downloadl
class CSVRow
constructor: (bucket) ->
@day = moment(bucket.time).format('L')
@time = moment(bucket.time).format('LT')
@totalAmount = "$#{bucket.totalAmount}"
@averageAmount = "$#{bucket.averageAmount}"
@transactions = bucket.transactions
$scope.generateCSV = ->
$scope.csvArray = []
if $scope.useDateRange
$scope.csvFilename = $scope.dateRange.start.format('MM-DD-YYYY')+' - ' + $scope.dateRange.end.format('MM-DD-YYYY') + '.csv'
else
$scope.csvFilename = moment($scope.selectedDay.date).format('MM-DD-YYYY')+'.csv'
if $scope.selectedRange
for bucket in $scope.selectedRange.buckets
$scope.csvArray.push new CSVRow(bucket)
csvContent = "data:text/csv;charset=utf-8,";
csvContent += "Day, Time, Total $, Average $, # Transactions\r\n"
_.each $scope.csvArray, (obj, index) ->
dataString = "#{obj.day},#{obj.time},#{obj.totalAmount},#{obj.averageAmount},#{obj.transactions}"
csvContent += dataString
csvContent += '\n' if index < $scope.csvArray.length
$timeout ->
$window.encodedUri = encodeURI(csvContent);
$window.open(encodedUri);
, 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment