mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-08 22:24:23 +08:00
Add active/archive switch to results page [SCI-9264]
This commit is contained in:
parent
e6252e09cc
commit
7b44a47d51
7 changed files with 38 additions and 25 deletions
|
@ -195,7 +195,7 @@ class ResultsController < ApplicationController
|
|||
def set_navigator
|
||||
@navigator = {
|
||||
url: tree_navigator_my_module_path(@my_module),
|
||||
archived: params[:view_mode] == 'archived',
|
||||
archived: false,
|
||||
id: @my_module.code
|
||||
}
|
||||
end
|
||||
|
|
|
@ -41,17 +41,13 @@ module SecondaryNavigationHelper
|
|||
end
|
||||
|
||||
def is_module_results?
|
||||
%w(index).include?(action_name) && controller_name == 'results' && !%w(archived).include?(params[:view_mode])
|
||||
%w(index).include?(action_name) && controller_name == 'results'
|
||||
end
|
||||
|
||||
def is_module_activities?
|
||||
action_name == 'activities'
|
||||
end
|
||||
|
||||
def is_module_archive?
|
||||
%w(index).include?(action_name) && controller_name == 'results' && %w(archived).include?(params[:view_mode])
|
||||
end
|
||||
|
||||
def title_element
|
||||
if all_projects_page?
|
||||
current_team
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
<div class="results-wrapper">
|
||||
<ResultsToolbar :sort="sort"
|
||||
:canCreate="canCreate == 'true'"
|
||||
:archived="archived == 'true'"
|
||||
:active_url="active_url"
|
||||
:archived_url="archived_url"
|
||||
@setSort="setSort"
|
||||
@setFilters="setFilters"
|
||||
@newResult="createResult"
|
||||
|
@ -36,7 +39,10 @@
|
|||
components: { ResultsToolbar, Result },
|
||||
props: {
|
||||
url: { type: String, required: true },
|
||||
canCreate: { type: String, required: true }
|
||||
canCreate: { type: String, required: true },
|
||||
archived: { type: String, required: true },
|
||||
active_url: { type: String, required: true },
|
||||
archived_url: { type: String, required: true }
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
|
@ -6,6 +6,25 @@
|
|||
{{ i18n.t('my_modules.results.add_label') }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="dropdown view-switch" >
|
||||
<div class="btn btn-light btn-black view-switch-button prevent-shrink" id="viewSwitchButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
||||
<span v-if="archived" class="state-view-switch-btn-name">{{ i18n.t('my_modules.results.archived_results') }}</span>
|
||||
<span v-else class="state-view-switch-btn-name">{{ i18n.t('my_modules.results.active_results') }}</span>
|
||||
<span class="sn-icon sn-icon-down"></span>
|
||||
</div>
|
||||
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="viewSwitchButton">
|
||||
<li class="view-switch-active">
|
||||
<a :href="active_url" :class="{'form-dropdown-state-item prevent-shrink': !archived}">
|
||||
{{ i18n.t('my_modules.results.active_results') }}
|
||||
</a>
|
||||
</li>
|
||||
<li class="view-switch-archived">
|
||||
<a :href="archived_url" :class="{'form-dropdown-state-item prevent-shrink': archived}">
|
||||
{{ i18n.t('my_modules.results.archived_results') }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="result-toolbar__right flex items-center" @click="$emit('expandAll')">
|
||||
<button class="btn btn-secondary mr-3">
|
||||
{{ i18n.t('my_modules.results.expand_label') }}
|
||||
|
@ -48,7 +67,10 @@
|
|||
name: 'ResultsToolbar',
|
||||
props: {
|
||||
sort: { type: String, required: true },
|
||||
canCreate: { type: Boolean, required: true }
|
||||
canCreate: { type: Boolean, required: true },
|
||||
archived: { type: Boolean, required: true },
|
||||
active_url: { type: String, required: true },
|
||||
archived_url: { type: String, required: true }
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
|
@ -12,10 +12,6 @@
|
|||
title="<%= t("nav2.modules.results") %>"
|
||||
>
|
||||
<%= t("nav2.modules.results") %>
|
||||
<% @active_results_size = @my_module.results.where(archived:false).size %>
|
||||
<% if @active_results_size.positive? %>
|
||||
<sup class="navigation-results-counter"><%= @my_module.archived_branch? ? @my_module.results.size : @active_results_size %></sup>
|
||||
<% end %>
|
||||
</a>
|
||||
<a class="p-3 border-b-4 border-transparent hover:no-underline uppercase text-bold capitalize <%= is_module_activities? ? "text-sn-blue" : "text-sn-grey" %>"
|
||||
href="<%= activities_my_module_url(@my_module, view_mode: params[:view_mode]) %>"
|
||||
|
@ -26,18 +22,6 @@
|
|||
<% end %>
|
||||
|
||||
<div data-hook="secondary-navigation-tabs"></div>
|
||||
<% if can_read_experiment?(@my_module.experiment) && !@my_module.archived_branch? %>
|
||||
<a class="p-3 border-b-4 border-transparent hover:no-underline uppercase text-bold capitalize <%= is_module_archive? ? "text-sn-blue" : "text-sn-grey" %>"
|
||||
href="<%= my_module_results_path(@my_module, view_mode: :archived) %>"
|
||||
title="<%= t'nav2.modules.archive' %>"
|
||||
>
|
||||
<%= t("nav2.modules.archive") %>
|
||||
<% @archived_results_size = @my_module.results.where(archived:true).size %>
|
||||
<% if @archived_results_size.positive? %>
|
||||
<sup class="navigation-results-counter"><%= @archived_results_size %></sup>
|
||||
<% end %>
|
||||
</a>
|
||||
<% end %>
|
||||
<%= render partial: '/my_modules/task_flow_and_sharing' %>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -19,7 +19,10 @@
|
|||
|
||||
<div id="results" data-behaviour="vue">
|
||||
<results url="<%= my_module_results_url(@my_module, view_mode: params[:view_mode]) %>"
|
||||
can-create=<%= can_create_results?(@my_module) && params[:view_mode].blank? %>>
|
||||
active_url="<%= my_module_results_url(@my_module) %>"
|
||||
archived_url="<%= my_module_results_url(@my_module, view_mode: :archived) %>"
|
||||
can-create=<%= can_create_results?(@my_module) && !(params[:view_mode] == 'archived') %>
|
||||
archived=<%= params[:view_mode] == 'archived' %>>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1252,6 +1252,8 @@ en:
|
|||
load_from_file_protocol_general_error: "Failed to load the protocol from file. It is likely that certain fields (protocol and individual step titles and names) contain too many or too few characters.(max is %{max} and min is %{min})"
|
||||
results:
|
||||
head_title: "%{project} | %{module} | Results"
|
||||
active_results: "Active results"
|
||||
archived_results: "Archived results"
|
||||
default_name: "New result"
|
||||
placeholder: "Enter result name"
|
||||
add_label: "New result"
|
||||
|
|
Loading…
Add table
Reference in a new issue