scinote-web/app/assets/javascripts/global_activities/index.js

95 lines
3.2 KiB
JavaScript

/* global animateSpinner globalActivities HelperModule */
'use strict';
(function() {
function initExpandCollapseAllButtons() {
$('#global-activities-colapse-all').on('click', function(ev) {
ev.preventDefault();
$('.activities-group').collapse('hide');
});
$('#global-activities-expand-all').on('click', function(ev) {
ev.preventDefault();
$('.activities-group').collapse('show');
});
}
function initShowMoreButton() {
var moreButton = $('.btn-more-activities');
moreButton.on('click', function(ev) {
var filters = globalActivities.getFilters();
ev.preventDefault();
animateSpinner(null, true);
filters.page = moreButton.data('next-page');
filters.starting_timestamp = $('.ga-activities-list').data('starting-timestamp');
$.ajax({
url: $('.ga-activities-list').data('activities-url'),
data: filters,
dataType: 'json',
type: 'POST',
success: function(json) {
var newFirstDay;
var existingLastDay;
// Attach newly fetched activities to temporary placeholder
$(json.activities_html).appendTo('#ga-more-activities-placeholder');
newFirstDay = $('#ga-more-activities-placeholder').find('.activities-day').first();
existingLastDay = $('.ga-activities-list').find('.activities-day').last();
if (newFirstDay.data('date') === existingLastDay.data('date')) {
let newNumber;
existingLastDay.find('.activities-group').append(newFirstDay.find('.activities-group').html());
newNumber = existingLastDay.find('.activity-card').length;
existingLastDay.find('.activities-counter-label strong').text(newNumber);
newFirstDay.remove();
}
$('.ga-activities-list').append($('#ga-more-activities-placeholder').html());
$('#ga-more-activities-placeholder').html('');
if (json.next_page) {
moreButton.data('next-page', json.next_page);
} else {
moreButton.addClass('hidden');
}
animateSpinner(null, false);
}
});
});
}
function validateActivityFilterName() {
let filterName = $('#saveFilterModal .activity-filter-name-input').val();
$('#saveFilterModal .btn-confirm').prop('disabled', filterName.length === 0);
}
$('#saveFilterModal')
.on('keyup', '.activity-filter-name-input', function() {
validateActivityFilterName();
})
.on('click', '.btn-confirm', function() {
$.ajax({
url: this.dataset.saveFilterUrl,
type: 'POST',
global: false,
dataType: 'json',
data: {
name: $('#saveFilterModal .activity-filter-name-input').val(),
filter: globalActivities.getFilters()
},
success: function(data) {
HelperModule.flashAlertMsg(data.message, 'success');
$('#saveFilterModal .activity-filter-name-input').val('');
validateActivityFilterName();
$('#saveFilterModal').modal('hide');
},
error: function(response) {
HelperModule.flashAlertMsg(response.responseJSON.errors.join(','), 'danger');
}
});
});
initExpandCollapseAllButtons();
initShowMoreButton();
}());