Merge pull request #3182 from okriuchykhin/ok_SCI_5387

Refactor view project users modal [SCI-5387]
This commit is contained in:
Miha Mencin 2021-02-23 08:30:06 +01:00 committed by GitHub
commit a93174f827
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 63 additions and 55 deletions

View file

@ -9,7 +9,7 @@
/* global HelperModule dropdownSelector Sidebar Turbolinks filterDropdown */
(function() {
var ProjectsIndex = (function() {
const PERMISSIONS = ['editable', 'archivable', 'restorable', 'moveable', 'deletable'];
var projectsWrapper = '#projectsWrapper';
var toolbarWrapper = '#toolbarWrapper';
@ -275,11 +275,14 @@
// Initialize view project users modal remote loading.
function initViewProjectUsersLink() {
$('#cardsWrapper').on('ajax:success', '.view-project-users-link', function(e, data) {
let viewProjectUsersModal = $('#viewProjectUsersModal');
viewProjectUsersModal.find('.modal-title').html(data.html_title);
viewProjectUsersModal.find('.modal-body').html(data.html_body);
$(projectsWrapper).on('ajax:success', '.view-project-users-link', function(e, data) {
let viewProjectUsersModal = $(data.html);
$(projectsWrapper).append(viewProjectUsersModal);
viewProjectUsersModal.modal('show');
// Remove modal when it gets closed
viewProjectUsersModal.on('hidden.bs.modal', function() {
viewProjectUsersModal.remove();
});
});
}
@ -739,4 +742,8 @@
}
init();
return {
loadCardsView: loadCardsView
};
}());

View file

@ -15,8 +15,7 @@ class UserProjectsController < ApplicationController
respond_to do |format|
format.json do
render json: {
html_title: t('projects.index.modal_view_users.modal_title', name: @project.name),
html_body: render_to_string(partial: 'index.html.erb')
html: render_to_string(partial: 'index.html.erb')
}
end
end

View file

@ -13,7 +13,6 @@
<%= render partial: 'projects/index/modals/edit_modal' %>
<%= render partial: 'projects/index/modals/move_to_modal' %>
<%= render partial: 'projects/index/modals/view_users' %>
<%= render partial: 'projects/index/modals/manage_users' %>
<%= render partial: 'projects/index/modals/export_projects' %>

View file

@ -1,16 +0,0 @@
<div class="modal" id="viewProjectUsersModal" tabindex="-1" role="dialog" aria-labelledby="viewProjectUsersModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="<%= t('general.close') %>"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="viewProjectUsersModalLabel"></h4>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">
<%= t('general.close') %>
</button>
</div>
</div>
</div>
</div>

View file

@ -1,28 +1,47 @@
<ul class="no-style project-users-list">
<% if @user_projects.blank? %>
<li>
<em><%= t('projects.index.modal_view_users.no_users') %></em>
</li>
<% else %>
<% @user_projects.each do |user_project| %>
<li>
<div class="row">
<div class="col-xs-1">
<span class='global-avatar-container'>
<%= image_tag avatar_path(user_project.user, :icon_small), class: 'img-circle pull-left' %>
</span>
</div>
<div class="col-xs-11">
<span><%= user_project.user.full_name %></span>
<% if user_project.user == current_user %>
<%= t('projects.index.modal_view_users.current_user_label') %>
<div class="modal" id="viewProjectUsersModal" tabindex="-1" role="dialog" aria-labelledby="viewProjectUsersModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="<%= t('general.close') %>"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="viewProjectUsersModalLabel">
<%= t('user_projects.view_users.modal_title', name: @project.name) %>
</h4>
</div>
<div class="modal-body">
<ul class="no-style project-users-list">
<% if @user_projects.blank? %>
<li>
<em><%= t('user_projects.view_users.no_users') %></em>
</li>
<% else %>
<% @user_projects.each do |user_project| %>
<li>
<div class="row">
<div class="col-xs-1">
<span class='global-avatar-container'>
<%= image_tag avatar_path(user_project.user, :icon_small), class: 'img-circle pull-left' %>
</span>
</div>
<div class="col-xs-11">
<span><%= user_project.user.full_name %></span>
<% if user_project.user == current_user %>
<%= t('user_projects.view_users.current_user_label') %>
<% end %>
<br>
<small class="text-muted"><%= t('user_projects.enums.role.'<< user_project.role) %></small>
</div>
</div>
<hr>
</li>
<% end %>
<br>
<small class="text-muted"><%= t('user_projects.enums.role.'<< user_project.role) %></small>
</div>
</div>
<hr>
</li>
<% end %>
<% end %>
</ul>
<% end %>
</ul>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">
<%= t('general.close') %>
</button>
</div>
</div>
</div>
</div>

View file

@ -438,10 +438,6 @@ en:
invite_users_link: "Invite users"
invite_users_details: "to team %{team}."
contact_admins: "To invite additional users to team %{team}, contact its administrator/s."
modal_view_users:
modal_title: "Members of %{name}"
no_users: "No users!"
current_user_label: "(you)"
filters_modal:
members:
label: "Members"
@ -718,6 +714,10 @@ en:
normal_user: "User"
technician: "Technician"
viewer: "Viewer"
view_users:
modal_title: "Members of %{name}"
no_users: "No users!"
current_user_label: "(you)"
edit:
update_role: "Change Role"
create: