mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-02-19 13:54:25 +01:00
[bug] fix events monitoring pagination
This commit is contained in:
parent
8d92f8492a
commit
f874748f74
@ -6,6 +6,7 @@
|
||||
- Removed cross hack in full-calendar
|
||||
- Confirmation before slot delete
|
||||
- Fix a typo: error message while creating a machine slot
|
||||
- Fix a bug: events pagination is bogus in admin's monitoring when selecting non default filter
|
||||
- Updated test data to allow passing test suite
|
||||
|
||||
## v2.5.14 2017 September 12
|
||||
|
@ -191,11 +191,15 @@ Application.Controllers.controller "AdminEventsController", ["$scope", "$state",
|
||||
## List of price categories for the events
|
||||
$scope.priceCategories = priceCategoriesPromise
|
||||
|
||||
## Default: we display all events (no restriction)
|
||||
$scope.eventsScope =
|
||||
selected: ''
|
||||
|
||||
##
|
||||
# Adds a bucket of events to the bottom of the page, grouped by month
|
||||
##
|
||||
$scope.loadMoreEvents = ->
|
||||
Event.query {page: $scope.page}, (data)->
|
||||
Event.query {page: $scope.page, scope: $scope.eventsScope.selected}, (data)->
|
||||
$scope.events = $scope.events.concat data
|
||||
paginationCheck(data, $scope.events)
|
||||
$scope.page += 1
|
||||
@ -340,6 +344,13 @@ Application.Controllers.controller "AdminEventsController", ["$scope", "$state",
|
||||
growl.error _t('price_category_deletion_failed')
|
||||
|
||||
|
||||
$scope.changeScope = ->
|
||||
Event.query {page: 0, scope: $scope.eventsScope.selected}, (data)->
|
||||
$scope.events = data
|
||||
paginationCheck(data, $scope.events)
|
||||
$scope.page = 0
|
||||
|
||||
|
||||
|
||||
### PRIVATE SCOPE ###
|
||||
|
||||
@ -358,7 +369,10 @@ Application.Controllers.controller "AdminEventsController", ["$scope", "$state",
|
||||
##
|
||||
paginationCheck = (lastEvents, events)->
|
||||
if lastEvents.length > 0
|
||||
$scope.paginateActive = false if events.length >= lastEvents[0].nb_total_events
|
||||
if events.length >= lastEvents[0].nb_total_events
|
||||
$scope.paginateActive = false
|
||||
else
|
||||
$scope.paginateActive = true
|
||||
else
|
||||
$scope.paginateActive = false
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class="col-md-6 m-b m-t">
|
||||
<select ng-model="selectedTimezone" class="form-control">
|
||||
<select ng-model="eventsScope.selected" class="form-control" ng-change="changeScope()">
|
||||
<option value="" translate>{{ 'all_events' }}</option>
|
||||
<option value="passed" translate>{{ 'passed_events' }}</option>
|
||||
<option value="future" translate>{{ 'events_to_come' }}</option>
|
||||
@ -15,7 +15,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="event in filtered = (events | eventsReservationsFilter:selectedTimezone)">
|
||||
<tr ng-repeat="event in events">
|
||||
<td>
|
||||
<a ui-sref="app.public.events_show({id: event.id})">{{ event.title }} </a>
|
||||
</td>
|
||||
|
@ -4,12 +4,26 @@ class API::EventsController < API::ApiController
|
||||
def index
|
||||
@events = policy_scope(Event)
|
||||
@page = params[:page]
|
||||
@scope = params[:scope]
|
||||
|
||||
# filters
|
||||
@events = @events.joins(:category).where('categories.id = :category', category: params[:category_id]) if params[:category_id]
|
||||
@events = @events.joins(:event_themes).where('event_themes.id = :theme', theme: params[:theme_id]) if params[:theme_id]
|
||||
@events = @events.where('age_range_id = :age_range', age_range: params[:age_range_id]) if params[:age_range_id]
|
||||
|
||||
if current_user and current_user.is_admin?
|
||||
case params[:scope]
|
||||
when 'future'
|
||||
@events = @events.where('availabilities.start_at >= ?', Time.now).order('availabilities.start_at DESC')
|
||||
when 'future_asc'
|
||||
@events = @events.where('availabilities.start_at >= ?', Time.now).order('availabilities.start_at ASC')
|
||||
when 'passed'
|
||||
@events = @events.where('availabilities.start_at < ?', Time.now).order('availabilities.start_at DESC')
|
||||
else
|
||||
@events = @events.order('availabilities.start_at DESC')
|
||||
end
|
||||
end
|
||||
|
||||
# paginate
|
||||
@events = @events.page(@page).per(12)
|
||||
end
|
||||
|
@ -8,7 +8,6 @@ class EventPolicy < ApplicationPolicy
|
||||
.references(:availabilities)
|
||||
else
|
||||
scope.includes(:event_image, :event_files, :availability, :category)
|
||||
.order('availabilities.start_at DESC')
|
||||
.references(:availabilities)
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user