refactor global activities in separate page [fixes SCI-2141]

This commit is contained in:
zmagod 2018-03-12 11:01:23 +01:00
parent d50bc5fde9
commit e218cae453
10 changed files with 57 additions and 91 deletions

View file

@ -0,0 +1,21 @@
'use strict';
(function() {
function initActivitiesButton() {
$(document).ready(function() {
// Activity feed modal in main navigation menu
$(document).find('.btn-more-activities')
.on('ajax:success', function(e, data) {
debugger;
$(data.html).insertAfter($('#list-activities li').last());
if(data.more_url) {
$(this).attr('href', data.more_url);
} else {
$(this).remove();
}
});
});
}
initActivitiesButton();
})();

View file

@ -104,57 +104,10 @@
}); });
} }
function initActivitiesButton() {
$(document.body).ready(function() {
// Activity feed modal in main navigation menu
var activityModal = $('#activity-modal');
var activityModalBody = activityModal.find('.modal-body');
var initMoreBtn = function() {
activityModalBody.find('.btn-more-activities')
.on('ajax:success', function(e, data) {
$(data.html).insertBefore($(this).parents('li'));
if(data.more_url) {
$(this).attr('href', data.more_url);
} else {
$(this).remove();
}
});
};
notificationAlertClose();
$('#main-menu .btn-activity')
.on('ajax:before', function() {
activityModal.modal('show');
})
.on('ajax:success', function(e, data) {
activityModalBody.html(data.html);
initMoreBtn();
});
activityModal.on('hidden.bs.modal', function() {
activityModalBody.html('');
});
});
$(document).ajaxComplete(function() {
notificationAlertClose();
});
function notificationAlertClose() {
$('#notifications .alert').on('closed.bs.alert', function() {
$('#content-wrapper')
.addClass('alert-hidden')
.removeClass('alert-shown');
});
}
}
// init // init
loadDropdownNotifications(); loadDropdownNotifications();
loadUnseenNotificationsNumber(); loadUnseenNotificationsNumber();
toggleNotificationBellPosition(); toggleNotificationBellPosition();
focusSearchInput(); focusSearchInput();
initGlobalSwitchForm(); initGlobalSwitchForm();
initActivitiesButton();
})(); })();

View file

@ -1133,6 +1133,10 @@ ul.double-line > li {
} }
} }
#global-activity-page {
margin-top: 50px;
}
/** Activity list resembling Bootstrap wells */ /** Activity list resembling Bootstrap wells */
ul.content-activities { ul.content-activities {

View file

@ -2,15 +2,17 @@ class ActivitiesController < ApplicationController
include ActivityHelper include ActivityHelper
def index def index
@vars = local_vars
respond_to do |format| respond_to do |format|
format.json do format.json do
render json: { render json: {
more_url: local_vars.fetch(:more_activities_url), more_url: local_vars.fetch(:more_activities_url),
html: render_to_string( html: render_to_string(
partial: 'index.html.erb', locals: local_vars partial: 'list.html.erb', locals: @vars
) )
} }
end end
format.html
end end
end end

View file

@ -1,6 +1,6 @@
<li class="activity-item"> <li class="activity-item">
<span class="activity-item-date"> <span class="activity-item-date">
<%= l activity.created_at, format: '%H:%M' %> <%= l activity.created_at, format: :full %>
</span> </span>
<span class="activity-item-text"> <span class="activity-item-text">
<%= activity_truncate(activity.message) %> <%= activity_truncate(activity.message) %>

View file

@ -1,17 +0,0 @@
<ul class="no-style double-line content-activities">
<% if activities.empty? %>
<li><em><%= t'activities.index.no_activities' %></em></li>
<% else %>
<%= render 'activities/list.html.erb',
activities: activities,
previous_activity_created_at: previous_activity_created_at %>
<% end %>
<% if more_activities_url.present? && page == 1 %>
<li class="text-center">
<a class="btn btn-default btn-more-activities"
href="<%= more_activities_url %>"
data-remote="true">
<%= t'activities.index.more_activities' %></a>
</li>
<% end %>
</ul>

View file

@ -1,26 +1,3 @@
<% if activities.first_page? %>
<% if activities.first.created_at.to_date == Date.today %>
<li class="text-center activity-date-item">
<span class="label label-primary">
<%=t "activities.index.today" %>
</span>
</li>
<% else %>
<li class="text-center activity-date-item">
<span class="label label-primary">
<%= activities.first.created_at.strftime('%d.%m.%Y') %>
</span>
</li>
<% end %>
<% end %>
<% activities.each_with_index do |activity, index| %> <% activities.each_with_index do |activity, index| %>
<% prevDate = calculate_previous_date(activities, index, previous_activity_created_at) %> <%= render 'activity.html.erb', activity: activity %>
<% if activity.created_at.to_date < prevDate %>
<li class="text-center activity-date-item">
<span class="label label-primary">
<%= activity.created_at.strftime('%d.%m.%Y') %>
</span>
</li>
<% end %>
<%= render 'activities/activity.html.erb', activity: activity %>
<% end %> <% end %>

View file

@ -0,0 +1,25 @@
<% provide :head_title, t('nav.label.activities') %>
<div class="container" id="global-activity-page">
<div class="col-md-12">
<ul id="list-activities" class="no-style content-activities content-module-activities">
<% if @vars[:activities].empty? %>
<li><em><%= t'activities.index.no_activities' %></em></li>
<% else %>
<% @vars[:activities].each do |activity| %>
<%= render 'activity.html.erb', activity: activity %>
<% end %>
<% end %>
</ul>
<% if @vars[:more_activities_url].present? && @vars[:page] == 1 %>
<div class="text-center">
<a class="btn btn-default btn-more-activities"
href="<%= @vars[:more_activities_url] %>"
data-remote="true">
<%= t'activities.index.more_activities' %></a>
</div>
<% end %>
</div>
</div>
<%= javascript_include_tag 'activities/index.js' %>

View file

@ -73,7 +73,7 @@
</li> </li>
<% end %> <% end %>
<li> <li>
<a class="btn-activity" title="<%= t('nav.label.activities') %>" href="<%= activities_path(format: :json) %>" role="button" data-remote="true"> <a class="btn-activity" title="<%= t('nav.label.activities') %>" href="<%= activities_path %>" role="button">
<span class="glyphicon glyphicon-equalizer"></span> <span class="glyphicon glyphicon-equalizer"></span>
<span class="visible-xs-inline visible-sm-inline"><%= t('nav.label.activities') %></span> <span class="visible-xs-inline visible-sm-inline"><%= t('nav.label.activities') %></span>
</a> </a>

View file

@ -82,6 +82,7 @@ Rails.application.config.assets.precompile +=
%w(repositories/repository_datatable.js) %w(repositories/repository_datatable.js)
Rails.application.config.assets.precompile += Rails.application.config.assets.precompile +=
%w(repositories/my_module_repository.js) %w(repositories/my_module_repository.js)
Rails.application.config.assets.precompile += %w(activities/index.js)
# Libraries needed for Handsontable formulas # Libraries needed for Handsontable formulas
Rails.application.config.assets.precompile += %w(lodash.js) Rails.application.config.assets.precompile += %w(lodash.js)