Fix my_modules archive page

This commit is contained in:
Jure Grabnar 2016-08-08 15:04:02 +02:00
parent 5a023483d7
commit 2bd74866e0
6 changed files with 93 additions and 6 deletions

View file

@ -1,8 +1,14 @@
class ExperimentsController < ApplicationController
include PermissionHelper
before_action :set_experiment, except: [:new, :create]
before_action :set_project, only: [:new, :create, :samples_index, :samples]
before_action :check_view_permissions, only: [:canvas]
before_action :set_experiment,
except: [:new, :create]
before_action :set_project,
only: [:new, :create, :samples_index,
:samples, :module_archive]
before_action :check_view_permissions,
only: [:canvas, :module_archive]
before_action :check_module_archive_permissions,
only: [:module_archive]
# except parameter could be used but it is not working.
layout :choose_layout
@ -79,6 +85,9 @@ class ExperimentsController < ApplicationController
end
end
def module_archive
end
def samples
@samples_index_link = samples_index_experiment_path(@experiment,
format: :json)
@ -120,6 +129,10 @@ class ExperimentsController < ApplicationController
render_403 unless can_view_experiment(@experiment)
end
def check_module_archive_permissions
render_403 unless can_view_experiment_archive(@experiment)
end
def choose_layout
action_name.in?(%w(index archive)) ? 'main' : 'fluid'
end

View file

@ -399,7 +399,8 @@ module PermissionHelper
end
def can_restore_module(my_module)
my_module.archived? and is_user_or_higher_of_project(my_module.project)
my_module.archived? &&
is_user_or_higher_of_project(my_module.experiment.project)
end
def can_edit_tags_for_module(my_module)

View file

@ -0,0 +1,28 @@
<% provide(:head_title, raw(t("experiments.module_archive.head_title", experiment: @experiment.name))) %>
<%= render partial: "shared/sidebar" %>
<%= render partial: "shared/secondary_navigation" %>
<% if @experiment.archived_modules.count > 0 %>
<div class="row">
<% @experiment.archived_modules.each_with_index do |my_module, i| %>
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<%= render partial: "experiments/module_archive/my_module.html.erb", locals: { my_module: my_module} %>
</div>
<% if (i+1) % 6 == 0 %>
<div class="clearfix visible-lg-block"></div>
<% end %>
<% if (i+1) % 4 == 0 %>
<div class="clearfix visible-md-block"></div>
<% end %>
<% if (i+1) % 3 == 0 %>
<div class="clearfix visible-sm-block"></div>
<% end %>
<% end %>
</div>
<% else %>
<div class="row">
<div class="col-xs-12">
<em><%=t "experiments.module_archive.no_archived_modules" %></em>
</div>
</div>
<% end %>

View file

@ -0,0 +1,39 @@
<div class="panel panel-default panel-archive">
<div class="panel-heading">
<div class="dropdown pull-right">
<button class="btn btn-link dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="caret"></span>
</button>
<% my_module_form = nil %>
<%= form_for my_module, method: :patch, format: :html do |f| %>
<% my_module_form = f %>
<%= f.hidden_field :archived, value: false %>
<% end %>
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenu1">
<li class="dropdown-header"><%=t "projects.index.options_header" %></li>
<% if can_restore_module(my_module) %>
<li><a href="#" class="form-submit-link" data-submit-form="<%= my_module_form.options[:html][:id] %>"><%= t "experiments.module_archive.restore_option" %></a></li>
<% end %>
</ul>
</div>
<h3 class="panel-title"><%= my_module.name %></h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-xs-6">
<%=t "experiments.module_archive.archived_on" %>
</div>
<div class="col-xs-6">
<span title="<%=t "experiments.module_archive.archived_on_title", date: l(my_module.archived_on, format: :full_date), time: l(my_module.archived_on, format: :time) %>">
<%=l my_module.archived_on, format: :full_date %>
</span>
</div>
</div>
</div>
</div>

View file

@ -1,4 +1,4 @@
<% provide(:head_title, raw(t("my_modules.module_archive.head_title", project: @my_module.project.name, module: @my_module.name))) %>
<% provide(:head_title, raw(t("my_modules.module_archive.head_title", project: @my_module.experiment.project.name, module: @my_module.name))) %>
<%= render partial: "shared/sidebar" %>
<%= render partial: "shared/secondary_navigation" %>
@ -16,4 +16,4 @@
<em><%=t "my_modules.module_archive.no_archived_results" %></em>
<% end %>
</div>
</div>
</div>

View file

@ -700,6 +700,12 @@ en:
contact_admins: "To invite additional users to team %{organization}, contact its administrator/s."
update:
success_flash: "Project successfully updated."
module_archive:
head_title: "%{experiment} | Archived tasks"
no_archived_modules: "No archived tasks!"
restore_option: "Restore"
archived_on: "Archived on"
archived_on_title: "Module archived on %{date} at %{time}."
my_module_tags:
new: