mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2024-11-29 10:24:20 +01:00
Alleluia git add . Downloading xls from front is working
This commit is contained in:
parent
d307f91983
commit
e8b1c99d2a
@ -285,29 +285,15 @@ Application.Controllers.controller "StatisticsController", ["$scope", "$state",
|
||||
dates: ->
|
||||
start: $scope.datePickerStart.selected
|
||||
end: $scope.datePickerEnd.selected
|
||||
query: ->
|
||||
custom = buildCustomFilterQuery()
|
||||
buildElasticDataQuery($scope.type.active.key, custom, $scope.agePicker.start, $scope.agePicker.end, moment($scope.datePickerStart.selected), moment($scope.datePickerEnd.selected), $scope.sorting)
|
||||
key: ->
|
||||
key: $scope.selectedIndex.es_type_key
|
||||
|
||||
$uibModal.open options
|
||||
.result['finally'](null).then (info)->
|
||||
# export requested
|
||||
if info.type == 'current'
|
||||
custom = buildCustomFilterQuery()
|
||||
$scope.exportUrl = '/stats/'+$scope.selectedIndex.es_type_key+'/export'
|
||||
$scope.exportQuery = buildElasticDataQuery($scope.type.active.key, custom, $scope.agePicker.start, $scope.agePicker.end, moment($scope.datePickerStart.selected), moment($scope.datePickerEnd.selected), $scope.sorting)
|
||||
angular.element('#export-stats').submit()
|
||||
else if info.type == 'global'
|
||||
$scope.exportUrl = '/stats/global/export'
|
||||
$scope.exportQuery =
|
||||
"query":
|
||||
"bool":
|
||||
"must": [
|
||||
{
|
||||
"range":
|
||||
"date":
|
||||
"gte": moment(info.dates.start).format()
|
||||
"lte": moment(info.dates.end).format()
|
||||
}
|
||||
]
|
||||
angular.element('#export-stats').submit()
|
||||
console.log(info)
|
||||
|
||||
|
||||
|
||||
@ -543,11 +529,25 @@ Application.Controllers.controller "StatisticsController", ["$scope", "$state",
|
||||
|
||||
|
||||
|
||||
Application.Controllers.controller 'ExportStatisticsController', [ '$scope', '$uibModalInstance', 'dates', ($scope, $uibModalInstance, dates) ->
|
||||
Application.Controllers.controller 'ExportStatisticsController', [ '$scope', '$uibModalInstance', 'dates', 'query', 'key', 'CSRF'
|
||||
, ($scope, $uibModalInstance, dates, query, key, CSRF) ->
|
||||
|
||||
CSRF.setMetaTags()
|
||||
|
||||
## Bindings for date range
|
||||
$scope.dates = dates
|
||||
|
||||
## Body of the query to export
|
||||
$scope.query = JSON.stringify(query)
|
||||
|
||||
## API URL where the form will be posted
|
||||
$scope.actionUrl = '/stats/'+key.key+'/export'
|
||||
|
||||
## Form action on the above URL
|
||||
$scope.method = "post"
|
||||
|
||||
$scope.csrfToken = angular.element('meta[name="csrf-token"]')[0].content
|
||||
|
||||
## Binding of the export type (global / current)
|
||||
$scope.export =
|
||||
type: 'current'
|
||||
@ -590,10 +590,29 @@ Application.Controllers.controller 'ExportStatisticsController', [ '$scope', '$u
|
||||
|
||||
|
||||
|
||||
$scope.setRequest = ->
|
||||
if $scope.export.type == 'global'
|
||||
$scope.actionUrl = '/stats/global/export'
|
||||
$scope.query = JSON.stringify(query)
|
||||
else
|
||||
$scope.actionUrl = '/stats/'+key.key+'/export'
|
||||
$scope.query = JSON.stringify(
|
||||
"query":
|
||||
"bool":
|
||||
"must": [
|
||||
{
|
||||
"range":
|
||||
"date":
|
||||
"gte": moment(info.dates.start).format()
|
||||
"lte": moment(info.dates.end).format()
|
||||
}
|
||||
]
|
||||
)
|
||||
|
||||
##
|
||||
# Callback to close the modal, telling the caller to start the export with the selected parameters
|
||||
##
|
||||
$scope.ok = ->
|
||||
$scope.exportData = ->
|
||||
info =
|
||||
type: $scope.export.type
|
||||
|
||||
|
@ -2,10 +2,5 @@
|
||||
|
||||
Application.Services.factory 'Export', ["$http", ($http)->
|
||||
stats: (scope, query) ->
|
||||
$http.post('/stats/'+scope+'/export', query).then((res) ->
|
||||
console.log(res)
|
||||
, (err) ->
|
||||
console.error(err)
|
||||
)
|
||||
|
||||
$http.post('/stats/'+scope+'/export', query)
|
||||
]
|
||||
|
@ -5,7 +5,7 @@
|
||||
<div class="modal-body">
|
||||
<form>
|
||||
<div class="radio">
|
||||
<label><input type="radio" name="scope" ng-model="export.type" value="global">{{ 'export_all_statistics' | translate }}</label>
|
||||
<label><input type="radio" name="scope" ng-model="export.type" value="global" ng-change="setRequest()">{{ 'export_all_statistics' | translate }}</label>
|
||||
</div>
|
||||
<div ng-show="export.type == 'global'">
|
||||
<ul class="list-unstyled">
|
||||
@ -58,11 +58,16 @@
|
||||
</ul>
|
||||
</div>
|
||||
<div class="radio">
|
||||
<label><input type="radio" name="scope" ng-model="export.type" value="current">{{ 'export_the_current_search_results' | translate }}</label>
|
||||
<label><input type="radio" name="scope" ng-model="export.type" value="current" ng-change="setRequest()">{{ 'export_the_current_search_results' | translate }}</label>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-info" ng-click="ok()" translate>{{ 'export' }}</button>
|
||||
<button class="btn btn-default" ng-click="cancel()" translate>{{ 'cancel' }}</button>
|
||||
<form role=form" ng-submit="exportData()" name="exportForm" method="post" action="{{ actionUrl }}">
|
||||
<input name="authenticity_token" type="hidden" ng-value="csrfToken"/>
|
||||
<input name="_method" type="hidden" ng-value="method"/>
|
||||
<input name="body" type="hidden" ng-value="query"/>
|
||||
<input type="submit" class="btn btn-info" value="{{ 'export' | translate }}"/>
|
||||
<button class="btn btn-default" ng-click="cancel()" translate>{{ 'cancel' }}</button>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -288,8 +288,3 @@
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<form id="export-stats" enctype="multipart/form-data" method="post" action="{{exportUrl}}" formtarget="_blank">
|
||||
<input type="hidden" ng-value="exportQuery" name="body" >
|
||||
</form>
|
||||
|
||||
|
@ -17,7 +17,7 @@ class API::StatisticsController < API::ApiController
|
||||
|
||||
def export_#{path}
|
||||
authorize :statistic, :#{path}?
|
||||
query = MultiJson.load(request.body.read)
|
||||
query = MultiJson.load(params[:body])
|
||||
@results = Stats::#{path.classify}.search(query, request.query_parameters.symbolize_keys).response
|
||||
render xlsx: 'export_#{path}.xlsx', filename: "#{path}.xlsx"
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user