From fbbe3940293a140c3bdb382f2446a669ec376f17 Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Tue, 13 Sep 2022 13:24:06 +0400 Subject: [PATCH 01/39] exposed prefixed ids for projects table [SCI_7172] --- app/assets/stylesheets/projects.scss | 22 ++++++++++++------- app/models/project.rb | 4 ++++ app/views/projects/index.html.erb | 1 + .../projects/index/_project_card.html.erb | 4 ++++ config/locales/en.yml | 2 ++ 5 files changed, 25 insertions(+), 8 deletions(-) diff --git a/app/assets/stylesheets/projects.scss b/app/assets/stylesheets/projects.scss index 25b6bae4b..8298b9b3b 100644 --- a/app/assets/stylesheets/projects.scss +++ b/app/assets/stylesheets/projects.scss @@ -854,7 +854,7 @@ li.module-hover { } &.list { - grid-template-columns: max-content repeat(calc(var(--list-columns-number) - 3), minmax(100px, auto)) max-content max-content; + grid-template-columns: max-content repeat(calc(var(--list-columns-number) - 2), minmax(100px, auto)) max-content max-content; .projects-group { display: contents; @@ -932,23 +932,28 @@ li.module-hover { } } - .start-date-cell { + .project-code-cell { grid-column: 3; } - .visibility-cell { + .start-date-cell { grid-column: 4; } - .user-cell { + .visibility-cell { grid-column: 5; } + .user-cell { + grid-column: 6; + } + .actions-cell { align-items: center; display: flex; - grid-column: 6; + grid-column: 7; position: initial; + display: block; } } @@ -1046,11 +1051,12 @@ li.module-hover { } &.list { - --list-columns-number: 7; + --list-columns-number: 8; grid-auto-rows: 3em 1px; grid-template-columns: max-content repeat(calc(var(--list-columns-number) - 2), minmax(100px, auto)) max-content; .card { + &.folder-card { .name { grid-column: 6 span; @@ -1058,11 +1064,11 @@ li.module-hover { } .archived-date-cell { - grid-column: 6; + grid-column: 7; } .actions-cell { - grid-column: 7; + grid-column: 8; position: initial; } } diff --git a/app/models/project.rb b/app/models/project.rb index eda28a225..0dece87ad 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -308,6 +308,10 @@ class Project < ApplicationRecord report.destroy if report.present? end + def code + "PR#{id}" + end + private def project_folder_team diff --git a/app/views/projects/index.html.erb b/app/views/projects/index.html.erb index 3c948cb1f..89b18a66b 100644 --- a/app/views/projects/index.html.erb +++ b/app/views/projects/index.html.erb @@ -28,6 +28,7 @@
<%= t('.card.name') %>
+
<%= t('.card.id') %>
<%= t('.card.start_date') %>
<%= t('.card.visibility') %>
<%= t('.card.users') %>
diff --git a/app/views/projects/index/_project_card.html.erb b/app/views/projects/index/_project_card.html.erb index 2beb628fe..b9b37933a 100644 --- a/app/views/projects/index/_project_card.html.erb +++ b/app/views/projects/index/_project_card.html.erb @@ -30,6 +30,10 @@ <%= render partial: 'projects/index/project_actions_dropdown.html.erb', locals: { project: project, view: 'cards' } %> +
+ <%= project.code %> +
+
<%= t('projects.index.card.start_date') %> <%= l(project.created_at, format: :full_date) %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 32cb83050..685ee9a4e 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -433,6 +433,7 @@ en: more_comments: "More Comments" card: start_date: "Start date" + id: "ID" visibility: "Visible to" users: "Members" name: "Project name" @@ -1110,6 +1111,7 @@ en: restore_button: "Restore" card: name: "Experiment" + id: "ID" start_date: "Start date" modified_date: "Modified date" archived_date: "Archived date" From 2c393a1befbd37c20734e1bb4c7cb9db0c5b39b4 Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Tue, 13 Sep 2022 13:31:04 +0400 Subject: [PATCH 02/39] exposed prefixed ids for projects table [SCI_7172] --- app/assets/stylesheets/projects.scss | 2 -- app/models/project.rb | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/app/assets/stylesheets/projects.scss b/app/assets/stylesheets/projects.scss index 8298b9b3b..5d017c791 100644 --- a/app/assets/stylesheets/projects.scss +++ b/app/assets/stylesheets/projects.scss @@ -953,7 +953,6 @@ li.module-hover { display: flex; grid-column: 7; position: initial; - display: block; } } @@ -1056,7 +1055,6 @@ li.module-hover { grid-template-columns: max-content repeat(calc(var(--list-columns-number) - 2), minmax(100px, auto)) max-content; .card { - &.folder-card { .name { grid-column: 6 span; diff --git a/app/models/project.rb b/app/models/project.rb index 0dece87ad..a32e625e9 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -308,7 +308,7 @@ class Project < ApplicationRecord report.destroy if report.present? end - def code + def code "PR#{id}" end From 0a1b879c3d4d6322539766cc15a4a73bcf4af2d3 Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Tue, 13 Sep 2022 15:49:12 +0400 Subject: [PATCH 03/39] exposed prefixed ids for projects table [SCI_7172] --- app/models/project.rb | 7 +++---- .../20220913100826_add_project_code_index.rb | 12 ++++++++++++ db/structure.sql | 18 +++++++++++++----- 3 files changed, 28 insertions(+), 9 deletions(-) create mode 100644 db/migrate/20220913100826_add_project_code_index.rb diff --git a/app/models/project.rb b/app/models/project.rb index a32e625e9..c2f75ca03 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -7,6 +7,9 @@ class Project < ApplicationRecord include PermissionExtends include Assignable + ID_PREFIX = 'PR' + include PrefixedIdModel + enum visibility: { hidden: 0, visible: 1 } auto_strip_attributes :name, nullify: false @@ -308,10 +311,6 @@ class Project < ApplicationRecord report.destroy if report.present? end - def code - "PR#{id}" - end - private def project_folder_team diff --git a/db/migrate/20220913100826_add_project_code_index.rb b/db/migrate/20220913100826_add_project_code_index.rb new file mode 100644 index 000000000..5ee7efe87 --- /dev/null +++ b/db/migrate/20220913100826_add_project_code_index.rb @@ -0,0 +1,12 @@ +class AddProjectCodeIndex < ActiveRecord::Migration[6.1] + def up + ActiveRecord::Base.connection.execute( + "CREATE INDEX index_projects_on_project_code ON "\ + "projects using gin (('PR'::text || id) gin_trgm_ops);" + ) + end + + def down + remove_index :projects, name: 'index_projects_on_project_code' + end +end diff --git a/db/structure.sql b/db/structure.sql index 68cfef0c4..c4b9e38ed 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -5479,6 +5479,13 @@ CREATE INDEX index_projects_on_last_modified_by_id ON public.projects USING btre CREATE INDEX index_projects_on_name ON public.projects USING gin (public.trim_html_tags((name)::text) public.gin_trgm_ops); +-- +-- Name: index_projects_on_project_code; Type: INDEX; Schema: public; Owner: - +-- + +CREATE INDEX index_projects_on_project_code ON public.projects USING gin ((('PR'::text || id)) public.gin_trgm_ops); + + -- -- Name: index_projects_on_project_folder_id; Type: INDEX; Schema: public; Owner: - -- @@ -5816,10 +5823,10 @@ CREATE INDEX index_repository_cells_on_repository_row_id ON public.repository_ce -- --- Name: index_repository_cells_on_value; Type: INDEX; Schema: public; Owner: - +-- Name: index_repository_cells_on_value_type_and_value_id; Type: INDEX; Schema: public; Owner: - -- -CREATE INDEX index_repository_cells_on_value ON public.repository_cells USING btree (value_type, value_id); +CREATE INDEX index_repository_cells_on_value_type_and_value_id ON public.repository_cells USING btree (value_type, value_id); -- @@ -6845,10 +6852,10 @@ CREATE INDEX index_view_states_on_user_id ON public.view_states USING btree (use -- --- Name: index_view_states_on_viewable; Type: INDEX; Schema: public; Owner: - +-- Name: index_view_states_on_viewable_type_and_viewable_id; Type: INDEX; Schema: public; Owner: - -- -CREATE INDEX index_view_states_on_viewable ON public.view_states USING btree (viewable_type, viewable_id); +CREATE INDEX index_view_states_on_viewable_type_and_viewable_id ON public.view_states USING btree (viewable_type, viewable_id); -- @@ -8517,6 +8524,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20220530144300'), ('20220602120714'), ('20220705091621'), -('20220818094636'); +('20220818094636'), +('20220913100826'); From 133302964c2f1e1d2759eebf3d37e0fc99596b6a Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Tue, 13 Sep 2022 15:53:41 +0400 Subject: [PATCH 04/39] exposed prefixed ids for projects table [SCI_7172] --- app/models/project.rb | 2 +- db/migrate/20220913100826_add_project_code_index.rb | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/models/project.rb b/app/models/project.rb index c2f75ca03..f0266549b 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -7,7 +7,7 @@ class Project < ApplicationRecord include PermissionExtends include Assignable - ID_PREFIX = 'PR' + ID_PREFIX = 'PR'.freeze include PrefixedIdModel enum visibility: { hidden: 0, visible: 1 } diff --git a/db/migrate/20220913100826_add_project_code_index.rb b/db/migrate/20220913100826_add_project_code_index.rb index 5ee7efe87..a893a89e9 100644 --- a/db/migrate/20220913100826_add_project_code_index.rb +++ b/db/migrate/20220913100826_add_project_code_index.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class AddProjectCodeIndex < ActiveRecord::Migration[6.1] def up ActiveRecord::Base.connection.execute( From 22aa04a5acd51e9fe604972d8b2ee03642f21b20 Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Tue, 13 Sep 2022 15:57:17 +0400 Subject: [PATCH 05/39] exposed prefixed ids for projects table [SCI_7172] --- app/models/project.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/models/project.rb b/app/models/project.rb index f0266549b..30cd365d8 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class Project < ApplicationRecord include ArchivableModel include SearchableModel @@ -7,7 +9,7 @@ class Project < ApplicationRecord include PermissionExtends include Assignable - ID_PREFIX = 'PR'.freeze + ID_PREFIX = 'PR' include PrefixedIdModel enum visibility: { hidden: 0, visible: 1 } From b31f60026a2d0bb2812a80e5103109ed9d0e84c6 Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Thu, 15 Sep 2022 22:20:04 +0400 Subject: [PATCH 06/39] Expose project IDs in tables & cards view [SCI-7172] [SCI-7173] --- app/assets/javascripts/projects/index.js | 8 ++- app/assets/stylesheets/projects.scss | 60 ++++++++++++++++--- app/helpers/cards_view_helper.rb | 2 +- app/views/projects/index.html.erb | 2 +- .../projects/index/_project_card.html.erb | 8 ++- 5 files changed, 66 insertions(+), 14 deletions(-) diff --git a/app/assets/javascripts/projects/index.js b/app/assets/javascripts/projects/index.js index ccf83aa2f..a1dad849e 100644 --- a/app/assets/javascripts/projects/index.js +++ b/app/assets/javascripts/projects/index.js @@ -517,7 +517,13 @@ var ProjectsIndex = (function() { $(projectsPageSelector) .on('ajax:success', '.change-projects-view-type-form', function(ev, data) { - $(cardsWrapper).removeClass('list').addClass(data.cards_view_type_class); + // $(cardsWrapper).removeClass('list').addClass(data.cards_view_type_class); + if (data.cards_view_type_class =='list') { + $(cardsWrapper).removeClass('cards').addClass(data.cards_view_type_class); + } + else if (data.cards_view_type_class =='cards') { + $(cardsWrapper).removeClass('list').addClass(data.cards_view_type_class); + } $(projectsPageSelector).find('.cards-switch .button-to').removeClass('selected'); $(ev.target).find('.button-to').addClass('selected'); $(ev.target).parents('.dropdown.view-switch').removeClass('open'); diff --git a/app/assets/stylesheets/projects.scss b/app/assets/stylesheets/projects.scss index 5d017c791..1f245a212 100644 --- a/app/assets/stylesheets/projects.scss +++ b/app/assets/stylesheets/projects.scss @@ -682,25 +682,24 @@ li.module-hover { } } + &.project-card { border-radius: 4px; box-shadow: $flyout-shadow; - + .project-name-cell { align-items: center; display: flex; - height: 2em; - margin: 0 1.75em; overflow: hidden; + margin-left: -55px; + margin-top: 10px; + a { color: inherit; - overflow: hidden; - white-space: nowrap; } .name { - line-height: 2em; margin: 0; overflow: hidden; text-overflow: ellipsis; @@ -902,7 +901,7 @@ li.module-hover { } .name { - grid-column: 5 span; + grid-column: 6 span; line-height: 3em; &:before { @@ -1057,7 +1056,7 @@ li.module-hover { .card { &.folder-card { .name { - grid-column: 6 span; + grid-column: 7 span; } } @@ -1086,3 +1085,48 @@ li.module-hover { margin: 1em 0; } } + + + + + +.cards-wrapper.last-page.cards { + grid-gap: 25px; + + .project-card { + .project-name-cell { + position: relative; + top: 12%; + + a { + color: inherit; + } + + .name { + overflow: hidden; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + max-width: 200px; + } + } + + .project-code-cell { + position: relative; + padding-left: 10%; + margin-top:4px; + height: min-content; + } + + .data-row { + position: relative; + top: 5%; + .card-label { + color: gray !important; + } + } + + + + } +} diff --git a/app/helpers/cards_view_helper.rb b/app/helpers/cards_view_helper.rb index 5dde2f9d6..f11e5ca5f 100644 --- a/app/helpers/cards_view_helper.rb +++ b/app/helpers/cards_view_helper.rb @@ -2,6 +2,6 @@ module CardsViewHelper def cards_view_type_class(view_type) - view_type == 'table' ? 'list' : '' + view_type == 'table' ? 'list' : 'cards' end end diff --git a/app/views/projects/index.html.erb b/app/views/projects/index.html.erb index 89b18a66b..72dfc871e 100644 --- a/app/views/projects/index.html.erb +++ b/app/views/projects/index.html.erb @@ -17,7 +17,7 @@ <%= render partial: 'projects/index/modals/export_projects' %>
-
diff --git a/app/views/projects/index/_project_card.html.erb b/app/views/projects/index/_project_card.html.erb index b9b37933a..87d6dc91d 100644 --- a/app/views/projects/index/_project_card.html.erb +++ b/app/views/projects/index/_project_card.html.erb @@ -11,6 +11,10 @@
+
+ <%= project.code %> +
+
<% if project.archived? %> <%= link_to project_url(project, view_mode: :archived) do %> @@ -30,9 +34,7 @@ <%= render partial: 'projects/index/project_actions_dropdown.html.erb', locals: { project: project, view: 'cards' } %>
-
- <%= project.code %> -
+
<%= t('projects.index.card.start_date') %> From 102eed82416709ed3282c3ff613df55a45a68f0f Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Thu, 15 Sep 2022 22:27:23 +0400 Subject: [PATCH 07/39] Expose project IDs in tables & cards view [SCI-7172] [SCI-7173] --- app/assets/javascripts/projects/index.js | 6 ++---- app/assets/stylesheets/projects.scss | 7 +------ 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/app/assets/javascripts/projects/index.js b/app/assets/javascripts/projects/index.js index a1dad849e..67360a7b8 100644 --- a/app/assets/javascripts/projects/index.js +++ b/app/assets/javascripts/projects/index.js @@ -517,11 +517,9 @@ var ProjectsIndex = (function() { $(projectsPageSelector) .on('ajax:success', '.change-projects-view-type-form', function(ev, data) { - // $(cardsWrapper).removeClass('list').addClass(data.cards_view_type_class); - if (data.cards_view_type_class =='list') { + if (data.cards_view_type_class === 'list') { $(cardsWrapper).removeClass('cards').addClass(data.cards_view_type_class); - } - else if (data.cards_view_type_class =='cards') { + } else if (data.cards_view_type_class === 'cards') { $(cardsWrapper).removeClass('list').addClass(data.cards_view_type_class); } $(projectsPageSelector).find('.cards-switch .button-to').removeClass('selected'); diff --git a/app/assets/stylesheets/projects.scss b/app/assets/stylesheets/projects.scss index 1f245a212..e98afc99a 100644 --- a/app/assets/stylesheets/projects.scss +++ b/app/assets/stylesheets/projects.scss @@ -682,7 +682,6 @@ li.module-hover { } } - &.project-card { border-radius: 4px; box-shadow: $flyout-shadow; @@ -694,7 +693,6 @@ li.module-hover { margin-left: -55px; margin-top: 10px; - a { color: inherit; } @@ -1097,7 +1095,7 @@ li.module-hover { .project-name-cell { position: relative; top: 12%; - + a { color: inherit; } @@ -1125,8 +1123,5 @@ li.module-hover { color: gray !important; } } - - - } } From 3f3c2a350415190433909746200e7b9b9df3736c Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Fri, 7 Oct 2022 15:27:33 +0400 Subject: [PATCH 08/39] project name card size change --- app/assets/stylesheets/projects.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/app/assets/stylesheets/projects.scss b/app/assets/stylesheets/projects.scss index e98afc99a..c61f9022e 100644 --- a/app/assets/stylesheets/projects.scss +++ b/app/assets/stylesheets/projects.scss @@ -1095,6 +1095,7 @@ li.module-hover { .project-name-cell { position: relative; top: 12%; + min-height: 35px; a { color: inherit; From f7472d25b9af1ba364b826e621622db819810cf9 Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Fri, 7 Oct 2022 17:14:43 +0400 Subject: [PATCH 09/39] more styling fixes --- app/assets/stylesheets/projects.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/app/assets/stylesheets/projects.scss b/app/assets/stylesheets/projects.scss index c61f9022e..79c65be0c 100644 --- a/app/assets/stylesheets/projects.scss +++ b/app/assets/stylesheets/projects.scss @@ -1093,6 +1093,7 @@ li.module-hover { .project-card { .project-name-cell { + align-items: start !important; position: relative; top: 12%; min-height: 35px; From 94e28ecc8d9700d4d6a7508150bb58cd8ae229d8 Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Thu, 13 Oct 2022 19:22:41 +0400 Subject: [PATCH 10/39] fixed switching from cards to list --- app/views/projects/index.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/projects/index.html.erb b/app/views/projects/index.html.erb index 72dfc871e..19f415559 100644 --- a/app/views/projects/index.html.erb +++ b/app/views/projects/index.html.erb @@ -17,7 +17,7 @@ <%= render partial: 'projects/index/modals/export_projects' %>
-
From 62febd44ddcd480586e819081d60b9e792218c4e Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Thu, 13 Oct 2022 20:31:37 +0400 Subject: [PATCH 11/39] centered project code for tables --- app/assets/stylesheets/projects.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/assets/stylesheets/projects.scss b/app/assets/stylesheets/projects.scss index 79c65be0c..9d21d4dba 100644 --- a/app/assets/stylesheets/projects.scss +++ b/app/assets/stylesheets/projects.scss @@ -930,6 +930,8 @@ li.module-hover { } .project-code-cell { + display: flex; + align-items: center; grid-column: 3; } From b1296adeb3d012db1134aea72f3bd5fa0ef58d69 Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Fri, 28 Oct 2022 10:49:13 +0400 Subject: [PATCH 12/39] pitstop --- app/assets/javascripts/projects/index.js | 6 +++++- app/assets/javascripts/projects/show.js | 8 ++++++-- app/assets/stylesheets/experiments.scss | 19 ++++++++++++++++++- app/helpers/cards_view_helper.rb | 2 +- .../projects/show/_experiment_card.html.erb | 19 +++++++++++-------- 5 files changed, 41 insertions(+), 13 deletions(-) diff --git a/app/assets/javascripts/projects/index.js b/app/assets/javascripts/projects/index.js index 1d5924281..e1fe51e38 100644 --- a/app/assets/javascripts/projects/index.js +++ b/app/assets/javascripts/projects/index.js @@ -519,7 +519,11 @@ var ProjectsIndex = (function() { $(projectsPageSelector) .on('ajax:success', '.change-projects-view-type-form', function(ev, data) { - $(cardsWrapper).removeClass('list').addClass(data.cards_view_type_class); + if (data.cards_view_type_class === 'list') { + $(cardsWrapper).removeClass('cards').addClass(data.cards_view_type_class); + } else if (data.cards_view_type_class === 'cards') { + $(cardsWrapper).removeClass('list').addClass(data.cards_view_type_class); + } $(projectsPageSelector).find('.cards-switch .button-to').removeClass('selected'); $(ev.target).find('.button-to').addClass('selected'); $(ev.target).parents('.dropdown.view-switch').removeClass('open'); diff --git a/app/assets/javascripts/projects/show.js b/app/assets/javascripts/projects/show.js index 4658cd7f4..e274735a6 100644 --- a/app/assets/javascripts/projects/show.js +++ b/app/assets/javascripts/projects/show.js @@ -51,11 +51,15 @@ }); $(experimentsPage).attr('data-toolbar-visible', toolbarVisible); } - + console.log(12) function initProjectsViewModeSwitch() { $(experimentsPage) .on('ajax:success', '.change-experiments-view-type-form', function(ev, data) { - $(cardsWrapper).removeClass('list').addClass(data.cards_view_type_class); + if (data.cards_view_type_class === 'list') { + $(cardsWrapper).removeClass('cards').addClass(data.cards_view_type_class); + } else if (data.cards_view_type_class === 'cards') { + $(cardsWrapper).removeClass('list').addClass(data.cards_view_type_class); + } $(experimentsPage).find('.cards-switch .button-to').removeClass('selected'); $(ev.target).find('.button-to').addClass('selected'); $(ev.target).parents('.dropdown.view-switch').removeClass('open'); diff --git a/app/assets/stylesheets/experiments.scss b/app/assets/stylesheets/experiments.scss index bbf5b2c73..a4241ce57 100644 --- a/app/assets/stylesheets/experiments.scss +++ b/app/assets/stylesheets/experiments.scss @@ -53,7 +53,7 @@ grid-row: span 7; .experiment-code-cell { - display: none; + display: block; } &.experiment-card { @@ -93,6 +93,8 @@ overflow: hidden; text-overflow: ellipsis; width: 100%; + position: relative; + a { color: inherit; @@ -540,3 +542,18 @@ } } } +.cards-wrapper.last-page.cards { + .experiment-card { + // background-color: red; + + .experiment-name-cell { + right: 28px; + top: 20px; + } + + .modified-date-cell { + color: $color-silver-chalice; + + } + } +} \ No newline at end of file diff --git a/app/helpers/cards_view_helper.rb b/app/helpers/cards_view_helper.rb index 5dde2f9d6..f11e5ca5f 100644 --- a/app/helpers/cards_view_helper.rb +++ b/app/helpers/cards_view_helper.rb @@ -2,6 +2,6 @@ module CardsViewHelper def cards_view_type_class(view_type) - view_type == 'table' ? 'list' : '' + view_type == 'table' ? 'list' : 'cards' end end diff --git a/app/views/projects/show/_experiment_card.html.erb b/app/views/projects/show/_experiment_card.html.erb index 7ba328cd1..38b5375d8 100644 --- a/app/views/projects/show/_experiment_card.html.erb +++ b/app/views/projects/show/_experiment_card.html.erb @@ -10,7 +10,13 @@
<% end %>
- +
+ <%= experiment.code %> +
+
+ <%= t('experiments.card.modified_date') %> + <%= l(experiment.updated_at, format: :full_date) %> +
<%= render partial: 'projects/show/experiment_workflow_image_container', locals: { experiment: experiment } %> @@ -21,9 +27,9 @@ <%= link_to experiment.name, canvas_experiment_path(experiment), title: experiment.name, class: 'name-link' %> <% end %>
-
- <%= experiment.code %> -
+ + +
-
- <%= t('experiments.card.modified_date') %> - <%= l(experiment.updated_at, format: :full_date) %> -
+ <% if experiment.archived_branch? %>
<%= t('experiments.card.archived_date') %> From fe488ed00ffc20c082eac38cd52cc3632279d92d Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Fri, 28 Oct 2022 11:38:38 +0400 Subject: [PATCH 13/39] fixed unstable project name and code styling in cards --- app/assets/stylesheets/projects.scss | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/assets/stylesheets/projects.scss b/app/assets/stylesheets/projects.scss index 9d21d4dba..4b91fd4fa 100644 --- a/app/assets/stylesheets/projects.scss +++ b/app/assets/stylesheets/projects.scss @@ -690,8 +690,6 @@ li.module-hover { align-items: center; display: flex; overflow: hidden; - margin-left: -55px; - margin-top: 10px; a { color: inherit; @@ -1096,9 +1094,11 @@ li.module-hover { .project-card { .project-name-cell { align-items: start !important; - position: relative; top: 12%; min-height: 35px; + position: absolute; + left: 14px; + top: 42px; a { color: inherit; @@ -1115,9 +1115,9 @@ li.module-hover { .project-code-cell { position: relative; - padding-left: 10%; + padding-left: 20px; margin-top:4px; - height: min-content; + height: min-content; } .data-row { From a9287df1a04335de0d94ec64eaaf10ee71027eb1 Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Fri, 28 Oct 2022 15:16:02 +0400 Subject: [PATCH 14/39] exposed experiment ids on card view page / other styling updates [SCI-7176] --- app/assets/javascripts/projects/show.js | 2 +- app/assets/stylesheets/experiments.scss | 23 +++++++++++++++---- .../projects/show/_experiment_card.html.erb | 16 ++++++------- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/app/assets/javascripts/projects/show.js b/app/assets/javascripts/projects/show.js index e274735a6..345578c76 100644 --- a/app/assets/javascripts/projects/show.js +++ b/app/assets/javascripts/projects/show.js @@ -51,7 +51,7 @@ }); $(experimentsPage).attr('data-toolbar-visible', toolbarVisible); } - console.log(12) + function initProjectsViewModeSwitch() { $(experimentsPage) .on('ajax:success', '.change-experiments-view-type-form', function(ev, data) { diff --git a/app/assets/stylesheets/experiments.scss b/app/assets/stylesheets/experiments.scss index a4241ce57..477cfe3a3 100644 --- a/app/assets/stylesheets/experiments.scss +++ b/app/assets/stylesheets/experiments.scss @@ -542,18 +542,33 @@ } } } + .cards-wrapper.last-page.cards { .experiment-card { - // background-color: red; - .experiment-name-cell { right: 28px; - top: 20px; + top: -11px; + } + + .data-row { + .card-label { + color: $color-silver-chalice; + } } .modified-date-cell { color: $color-silver-chalice; + position: relative; + top: -2px; + left: 80px; + margin-left: auto; + margin-right: 114px; + } + .experiment-code-cell { + position: relative; + top: 5px; + left: 20px; } } -} \ No newline at end of file +} diff --git a/app/views/projects/show/_experiment_card.html.erb b/app/views/projects/show/_experiment_card.html.erb index 38b5375d8..8cf522bbe 100644 --- a/app/views/projects/show/_experiment_card.html.erb +++ b/app/views/projects/show/_experiment_card.html.erb @@ -10,13 +10,16 @@
<% end %>
-
+ +
<%= experiment.code %>
-
- <%= t('experiments.card.modified_date') %> - <%= l(experiment.updated_at, format: :full_date) %> -
+ +
+ <%= t('experiments.card.modified_date') %> + <%= l(experiment.updated_at, format: :full_date) %> +
+
<%= render partial: 'projects/show/experiment_workflow_image_container', locals: { experiment: experiment } %> @@ -27,9 +30,6 @@ <%= link_to experiment.name, canvas_experiment_path(experiment), title: experiment.name, class: 'name-link' %> <% end %>
- - -
<% end %> -
+
<%= t('experiments.card.completed_task') %> <%= t('experiments.card.completed_value', completed: experiment.completed_task_count, all: experiment.task_count) %>
diff --git a/app/views/projects/show/_experiment_workflow_image_container.html.erb b/app/views/projects/show/_experiment_workflow_image_container.html.erb index 1c2e9b3e5..18ba48279 100644 --- a/app/views/projects/show/_experiment_workflow_image_container.html.erb +++ b/app/views/projects/show/_experiment_workflow_image_container.html.erb @@ -1,8 +1,4 @@ -<% if experiment.archived_branch? %> -
- -
-<% elsif experiment.my_modules.any?(&:active?) %> +<% if experiment.my_modules.any?(&:active?) %> <% if experiment.workflowimg.attached? %>
<%= render partial: 'projects/show/workflow_img', locals: { experiment: experiment } %> From 18fe2cd207d8d2a5bb2581c744616295963abae9 Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Tue, 8 Nov 2022 16:06:48 +0400 Subject: [PATCH 16/39] update display of the current tasks with IDs [SCI-7205] --- app/models/my_module.rb | 3 +++ app/views/dashboards/current_tasks/_task.html.erb | 6 +++++- .../20221108104529_add_my_module_code_index.rb | 14 ++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20221108104529_add_my_module_code_index.rb diff --git a/app/models/my_module.rb b/app/models/my_module.rb index 456f1a636..687ab040c 100644 --- a/app/models/my_module.rb +++ b/app/models/my_module.rb @@ -10,6 +10,9 @@ class MyModule < ApplicationRecord include PermissionCheckableModel include Assignable + ID_PREFIX = 'TA' + include PrefixedIdModel + attr_accessor :transition_error_rollback enum state: Extends::TASKS_STATES diff --git a/app/views/dashboards/current_tasks/_task.html.erb b/app/views/dashboards/current_tasks/_task.html.erb index 7c4db6821..6a0712913 100644 --- a/app/views/dashboards/current_tasks/_task.html.erb +++ b/app/views/dashboards/current_tasks/_task.html.erb @@ -1,7 +1,11 @@ <% task_date = current_task_date(task) %>
<%= task.experiment.project.name %> - /<%= task.experiment.name %>
+ / + <%= task.experiment.name %> + / + <%= task.code %> +
<%= task.name %>
diff --git a/db/migrate/20221108104529_add_my_module_code_index.rb b/db/migrate/20221108104529_add_my_module_code_index.rb new file mode 100644 index 000000000..41926ad7a --- /dev/null +++ b/db/migrate/20221108104529_add_my_module_code_index.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddMyModuleCodeIndex < ActiveRecord::Migration[6.1] + def up + ActiveRecord::Base.connection.execute( + "CREATE INDEX index_my_modules_on_my_module_code ON "\ + "my_modules using gin (('TA'::text || id) gin_trgm_ops);" + ) + end + + def down + remove_index :my_modules, name: 'index_my_modules_on_my_module_code' + end +end \ No newline at end of file From 82d36ccc251502b29a31dabd24a63c9f10887692 Mon Sep 17 00:00:00 2001 From: G-Chubinidze <112488503+G-Chubinidze@users.noreply.github.com> Date: Tue, 8 Nov 2022 17:10:22 +0400 Subject: [PATCH 17/39] Update 20221108104529_add_my_module_code_index.rb --- db/migrate/20221108104529_add_my_module_code_index.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/migrate/20221108104529_add_my_module_code_index.rb b/db/migrate/20221108104529_add_my_module_code_index.rb index 41926ad7a..3dc6bca66 100644 --- a/db/migrate/20221108104529_add_my_module_code_index.rb +++ b/db/migrate/20221108104529_add_my_module_code_index.rb @@ -11,4 +11,4 @@ class AddMyModuleCodeIndex < ActiveRecord::Migration[6.1] def down remove_index :my_modules, name: 'index_my_modules_on_my_module_code' end -end \ No newline at end of file +end From 62b48ee59a0225798913d7dea37f0ec03ee1e6d3 Mon Sep 17 00:00:00 2001 From: G-Chubinidze <112488503+G-Chubinidze@users.noreply.github.com> Date: Wed, 9 Nov 2022 13:36:55 +0400 Subject: [PATCH 18/39] updated my_module rb, added searchable id attribute --- app/models/my_module.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/models/my_module.rb b/app/models/my_module.rb index 687ab040c..b7514e5fd 100644 --- a/app/models/my_module.rb +++ b/app/models/my_module.rb @@ -1,7 +1,10 @@ # frozen_string_literal: true class MyModule < ApplicationRecord - SEARCHABLE_ATTRIBUTES = ['my_modules.name', 'my_modules.description'] + ID_PREFIX = 'TA' + + include PrefixedIdModel + SEARCHABLE_ATTRIBUTES = ['my_modules.name', 'my_modules.description', PREFIXED_ID_SQL].freeze include ArchivableModel include SearchableModel @@ -10,8 +13,6 @@ class MyModule < ApplicationRecord include PermissionCheckableModel include Assignable - ID_PREFIX = 'TA' - include PrefixedIdModel attr_accessor :transition_error_rollback From 996cb68fdd91aca5ef46c4560df40de7b491caa6 Mon Sep 17 00:00:00 2001 From: G-Chubinidze <112488503+G-Chubinidze@users.noreply.github.com> Date: Wed, 9 Nov 2022 14:45:18 +0400 Subject: [PATCH 19/39] Update my_module.rb --- app/models/my_module.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/my_module.rb b/app/models/my_module.rb index b7514e5fd..c80def06c 100644 --- a/app/models/my_module.rb +++ b/app/models/my_module.rb @@ -2,7 +2,7 @@ class MyModule < ApplicationRecord ID_PREFIX = 'TA' - + include PrefixedIdModel SEARCHABLE_ATTRIBUTES = ['my_modules.name', 'my_modules.description', PREFIXED_ID_SQL].freeze From 8e63bfb7c265dfd2a9dce7f6921e24eaf7421a26 Mon Sep 17 00:00:00 2001 From: G-Chubinidze <112488503+G-Chubinidze@users.noreply.github.com> Date: Wed, 9 Nov 2022 14:46:36 +0400 Subject: [PATCH 20/39] Update my_module.rb --- app/models/my_module.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/models/my_module.rb b/app/models/my_module.rb index c80def06c..271a8f08d 100644 --- a/app/models/my_module.rb +++ b/app/models/my_module.rb @@ -13,7 +13,6 @@ class MyModule < ApplicationRecord include PermissionCheckableModel include Assignable - attr_accessor :transition_error_rollback enum state: Extends::TASKS_STATES From 5a429549dae8e0044320fd023d5d621a7d1d9078 Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Fri, 11 Nov 2022 12:45:07 +0400 Subject: [PATCH 21/39] archived tasks updates [SCI-7203] --- app/assets/stylesheets/my_modules.scss | 6 ++++++ app/views/canvas/full_zoom/_my_module.html.erb | 4 ++++ config/locales/en.yml | 1 + 3 files changed, 11 insertions(+) diff --git a/app/assets/stylesheets/my_modules.scss b/app/assets/stylesheets/my_modules.scss index 79b2d7112..e301210f2 100644 --- a/app/assets/stylesheets/my_modules.scss +++ b/app/assets/stylesheets/my_modules.scss @@ -63,6 +63,12 @@ } } +.archived-task-card-code { + position: absolute; + right: 25px; + bottom: 30px; +} + // Create wopi file .create-wopi-file-btn { cursor: pointer; diff --git a/app/views/canvas/full_zoom/_my_module.html.erb b/app/views/canvas/full_zoom/_my_module.html.erb index 68a654b76..e1ce4137c 100644 --- a/app/views/canvas/full_zoom/_my_module.html.erb +++ b/app/views/canvas/full_zoom/_my_module.html.erb @@ -114,5 +114,9 @@
+
+ <%= t('my_modules.details.code') %><%= my_module.code %> +
+ diff --git a/config/locales/en.yml b/config/locales/en.yml index 809658737..4b9888408 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -958,6 +958,7 @@ en: manage_tags: "Manage tags" create_new_tag: "create new" recent_protocols_from_repository: "Recent protocols from the Repository" + code: "ID: " notes: title: "Notes" no_description: "No task description" From e3b9314646caad7c886f0dd2ebb4e0e70d593a1d Mon Sep 17 00:00:00 2001 From: G-Chubinidze <112488503+G-Chubinidze@users.noreply.github.com> Date: Fri, 11 Nov 2022 12:48:22 +0400 Subject: [PATCH 22/39] Update my_modules.scss --- app/assets/stylesheets/my_modules.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/my_modules.scss b/app/assets/stylesheets/my_modules.scss index e301210f2..9bef9d6d4 100644 --- a/app/assets/stylesheets/my_modules.scss +++ b/app/assets/stylesheets/my_modules.scss @@ -64,9 +64,9 @@ } .archived-task-card-code { + bottom: 30px; position: absolute; right: 25px; - bottom: 30px; } // Create wopi file From 7f09fb8997fea5a6b3e3d8f13b23cb6456376edb Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Thu, 17 Nov 2022 22:25:54 +0400 Subject: [PATCH 23/39] Archived projects cards and table updates [SCI-7201] --- app/assets/stylesheets/projects.scss | 73 +++++++++++++++++-- .../projects/index/_project_card.html.erb | 20 +++-- 2 files changed, 77 insertions(+), 16 deletions(-) diff --git a/app/assets/stylesheets/projects.scss b/app/assets/stylesheets/projects.scss index 4b91fd4fa..812a0f405 100644 --- a/app/assets/stylesheets/projects.scss +++ b/app/assets/stylesheets/projects.scss @@ -685,12 +685,12 @@ li.module-hover { &.project-card { border-radius: 4px; box-shadow: $flyout-shadow; - + .project-name-cell { align-items: center; display: flex; overflow: hidden; - + a { color: inherit; } @@ -1018,6 +1018,7 @@ li.module-hover { display: none !important; } + .projects-container { .project-actions-menu { .btn-light:hover { @@ -1028,6 +1029,56 @@ li.module-hover { .cards-wrapper { grid-auto-rows: 2.5em; + .visibility-cell { + .value { + color: $color-black; + } + } + + .start-date-cell { + .value { + color: $color-black; + } + } + + .archived-date-cell { + .value { + color: $color-black;; + } + } + + &.last-page.cards { + .project-card { + .start-date-cell { + top: 36px; + + .value { + color: $color-black; + } + } + + .archived-date-cell { + top: 26px; + + .value { + color: $color-black; + } + } + + .visibility-cell { + top: 16px; + + .value { + color: $color-black; + } + } + + .user-cell { + top: 6px; + } + } + } + .card.project-card { .data-row { color: $color-silver-chalice; @@ -1103,7 +1154,7 @@ li.module-hover { a { color: inherit; } - + .name { overflow: hidden; display: -webkit-box; @@ -1116,8 +1167,8 @@ li.module-hover { .project-code-cell { position: relative; padding-left: 20px; - margin-top:4px; - height: min-content; + margin-top:5px; + height: min-content; } .data-row { @@ -1126,6 +1177,18 @@ li.module-hover { .card-label { color: gray !important; } + + &.start-date-cell { + top: 30px; + } + + &.visibility-cell { + top: 18px; + } + + &.user-cell { + top: 5px; + } } } } diff --git a/app/views/projects/index/_project_card.html.erb b/app/views/projects/index/_project_card.html.erb index 3df88988a..cc3a90727 100644 --- a/app/views/projects/index/_project_card.html.erb +++ b/app/views/projects/index/_project_card.html.erb @@ -11,7 +11,7 @@
<%= project.code %>
- +
<% if project.archived? %> <%= link_to project_url(project, view_mode: :archived) do %> @@ -38,14 +38,20 @@
- -
<%= t('projects.index.card.start_date') %> <%= l(project.created_at, format: :full_date) %> <%= l(project.created_at, format: :full_with_comma) %>
+ <% if project.archived? %> +
+ <%= t('projects.index.card.archived_date') %> + <%= l(project.archived_on, format: :full_date) %> + <%= l(project.archived_on, format: :full_with_comma) %> +
+ <% end %> +
<%= t('projects.index.card.visibility') %> @@ -74,12 +80,4 @@ <% end %>
- - <% if project.archived? %> -
- <%= t('projects.index.card.archived_date') %> - <%= l(project.archived_on, format: :full_date) %> - <%= l(project.archived_on, format: :full_with_comma) %> -
- <% end %>
From 44d74b5797802bba9e0d9b89c4b454718e6ea2bd Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Thu, 17 Nov 2022 22:29:15 +0400 Subject: [PATCH 24/39] refactoring projects scss --- app/assets/stylesheets/projects.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/stylesheets/projects.scss b/app/assets/stylesheets/projects.scss index 812a0f405..2f778dbf7 100644 --- a/app/assets/stylesheets/projects.scss +++ b/app/assets/stylesheets/projects.scss @@ -1043,7 +1043,7 @@ li.module-hover { .archived-date-cell { .value { - color: $color-black;; + color: $color-black; } } @@ -1167,7 +1167,7 @@ li.module-hover { .project-code-cell { position: relative; padding-left: 20px; - margin-top:5px; + margin-top: 5px; height: min-content; } From 43f8370a080dd735bb9c5df1ec1145e8a4440634 Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Tue, 22 Nov 2022 13:55:41 +0400 Subject: [PATCH 25/39] add IDs to the protocol templates tables [SCI-7179] --- app/assets/javascripts/protocols/index.js | 9 +++++---- app/datatables/protocols_datatable.rb | 17 +++++++++++------ app/models/protocol.rb | 3 +++ .../index/_protocols_datatable.html.erb | 1 + config/locales/en.yml | 1 + ...132449_add_protocol_repository_code_index.rb | 14 ++++++++++++++ 6 files changed, 35 insertions(+), 10 deletions(-) create mode 100644 db/migrate/20221121132449_add_protocol_repository_code_index.rb diff --git a/app/assets/javascripts/protocols/index.js b/app/assets/javascripts/protocols/index.js index 921cf04de..71dc3f8be 100644 --- a/app/assets/javascripts/protocols/index.js +++ b/app/assets/javascripts/protocols/index.js @@ -53,7 +53,7 @@ function initProtocolsTable() {
`; } }, { - targets: [ 1, 2, 3, 4, 5 ], + targets: [ 1, 2, 3, 4, 5, 6 ], searchable: true, orderable: true }], @@ -61,13 +61,14 @@ function initProtocolsTable() { { data: "0" }, { data: "1" }, { data: "2" }, + { data: "3" }, { - data: "3", + data: "4", visible: repositoryType != "archive" }, - { data: "4" }, { data: "5" }, - { data: "6" } + { data: "6" }, + { data: "7" } ], oLanguage: { sSearch: I18n.t('general.filter') diff --git a/app/datatables/protocols_datatable.rb b/app/datatables/protocols_datatable.rb index 5f4294b8b..6c9f1f48e 100644 --- a/app/datatables/protocols_datatable.rb +++ b/app/datatables/protocols_datatable.rb @@ -23,6 +23,7 @@ class ProtocolsDatatable < CustomDatatable def sortable_columns @sortable_columns ||= [ "Protocol.name", + "Protocol.id", "protocol_keywords_str", "Protocol.nr_of_linked_children", "full_username_str", @@ -34,6 +35,7 @@ class ProtocolsDatatable < CustomDatatable def searchable_columns @searchable_columns ||= [ "Protocol.name", + "Protocol.#{Protocol::PREFIXED_ID_SQL}", timestamp_db_column, "Protocol.updated_at" ] @@ -56,9 +58,11 @@ class ProtocolsDatatable < CustomDatatable # now the method checks if the column is the created_at or updated_at and generate a custom SQL to parse # it back to the caller method def new_search_condition(column, value) - model, column = column.split('.') + model, column = column.split('.', 2) model = model.constantize case column + when Protocol::PREFIXED_ID_SQL + casted_column = ::Arel::Nodes::SqlLiteral.new(Protocol::PREFIXED_ID_SQL) when 'published_on' casted_column = ::Arel::Nodes::NamedFunction.new('CAST', [ Arel.sql("to_char( protocols.created_at, '#{ formated_date }' ) AS VARCHAR") ] ) @@ -103,11 +107,12 @@ class ProtocolsDatatable < CustomDatatable else name_html(record) end, - '2': keywords_html(record), - '3': modules_html(record), - '4': escape_input(record.full_username_str), - '5': timestamp_column_html(record), - '6': I18n.l(record.updated_at, format: :full) + '2': escape_input(record.code), + '3': keywords_html(record), + '4': modules_html(record), + '5': escape_input(record.full_username_str), + '6': timestamp_column_html(record), + '7': I18n.l(record.updated_at, format: :full) } end result_data diff --git a/app/models/protocol.rb b/app/models/protocol.rb index 7eb8ecddb..c39c29ba6 100644 --- a/app/models/protocol.rb +++ b/app/models/protocol.rb @@ -1,6 +1,9 @@ # frozen_string_literal: true class Protocol < ApplicationRecord + ID_PREFIX = 'PT' + + include PrefixedIdModel include SearchableModel include RenamingUtil include SearchableByNameModel diff --git a/app/views/protocols/index/_protocols_datatable.html.erb b/app/views/protocols/index/_protocols_datatable.html.erb index 59d86ecb2..318116fd2 100644 --- a/app/views/protocols/index/_protocols_datatable.html.erb +++ b/app/views/protocols/index/_protocols_datatable.html.erb @@ -10,6 +10,7 @@
<%= t("protocols.index.thead_name") %> + <%= t("protocols.index.thead_code") %> <%= t("protocols.index.thead_keywords") %> <%= t("protocols.index.thead_nr_of_linked_children") %> <% if @type == :public %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 809658737..48610df7b 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -2558,6 +2558,7 @@ en: publish: "Move to Team protocols" archive_action: "Archive" thead_name: "Name" + thead_code: "ID" thead_keywords: "Keywords" thead_nr_of_linked_children: "No. of linked tasks" thead_published_by: "Published by" diff --git a/db/migrate/20221121132449_add_protocol_repository_code_index.rb b/db/migrate/20221121132449_add_protocol_repository_code_index.rb new file mode 100644 index 000000000..6c3129c1f --- /dev/null +++ b/db/migrate/20221121132449_add_protocol_repository_code_index.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +class AddProtocolRepositoryCodeIndex < ActiveRecord::Migration[6.1] + def up + ActiveRecord::Base.connection.execute( + "CREATE INDEX index_protocol_repository_on_protocol_repository_code ON "\ + "protocols using gin (('PT'::text || id) gin_trgm_ops);" + ) + end + + def down + remove_index :protocols, name: 'index_protocol_repository_on_protocol_repository_code' + end +end From c21152b2e23bb0046287615087ccfedb0d28333c Mon Sep 17 00:00:00 2001 From: Martin Artnik Date: Wed, 23 Nov 2022 11:49:53 +0100 Subject: [PATCH 26/39] Add protocol ID to linked protocol dropdown [SCI-7204] --- .../my_modules/protocols/index.scss | 24 +++++++++++++++++-- .../protocols/_protocol_status_bar.html.erb | 8 +++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/app/assets/stylesheets/my_modules/protocols/index.scss b/app/assets/stylesheets/my_modules/protocols/index.scss index 86117fea7..e013248fe 100644 --- a/app/assets/stylesheets/my_modules/protocols/index.scss +++ b/app/assets/stylesheets/my_modules/protocols/index.scss @@ -93,7 +93,7 @@ .repositories-dropdown-menu { max-height: 250px; overflow: auto; - + .repository { @include font-button; cursor: pointer; @@ -430,9 +430,29 @@ max-width: 100vw; width: 650px; + .dropdown-header, + .dropdown-body { + padding: 10px 32px; + } + + .dropdown-header { + background: $color-white; + border-bottom: $border-tertiary; + + .protocol-name { + color: $color-black; + margin-top: 0; + } + + .protocol-header-info { + color: $color-black; + font-size: .875em; + font-weight: 400; + } + } + .dropdown-body { border-bottom: $border-tertiary; - padding: 10px 32px; .info-line { align-items: center; diff --git a/app/views/my_modules/protocols/_protocol_status_bar.html.erb b/app/views/my_modules/protocols/_protocol_status_bar.html.erb index 15f3cf04e..6515860b2 100644 --- a/app/views/my_modules/protocols/_protocol_status_bar.html.erb +++ b/app/views/my_modules/protocols/_protocol_status_bar.html.erb @@ -15,6 +15,14 @@
+
+ <%=t "experiments.canvas.edit.id" %> <%= my_module.code %> +
<%= t('experiments.canvas.edit.drag_connections') %>
diff --git a/config/locales/en.yml b/config/locales/en.yml index 579c28631..ac9c8a21a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1316,6 +1316,7 @@ en: create: "Add" create_new: "New" edit: + id: "ID:" new_module: "New task" new_module_hover: "Drag me onto canvas" save: "Save workflow" @@ -1323,6 +1324,7 @@ en: cancel: "Cancel" unsaved_work: "Are you sure you want to leave this page? All unsaved data will be lost." drag_connections: "Drag connection/s from here" + no_module_id: "to be assigned after saving" options_header: "Options" edit_module: "Rename task" task_access: "Task access" From 847280489ab1eaec94cb3e46349edb052a3cec37 Mon Sep 17 00:00:00 2001 From: ajugo Date: Fri, 2 Dec 2022 11:41:32 +0100 Subject: [PATCH 33/39] Add report id to the report datatable [SCI-7199] (#4453) * Add report id to the report datatable [SCI-7199] * Remove report id migration [SCI-7199] --- .../javascripts/reports/reports_datatable.js | 8 ++++---- app/datatables/report_datatable.rb | 16 +++++++++------- app/models/report.rb | 3 +++ app/views/reports/index.html.erb | 1 + config/locales/en.yml | 1 + 5 files changed, 18 insertions(+), 11 deletions(-) diff --git a/app/assets/javascripts/reports/reports_datatable.js b/app/assets/javascripts/reports/reports_datatable.js index 3faaa1bb1..3204dbbbb 100644 --- a/app/assets/javascripts/reports/reports_datatable.js +++ b/app/assets/javascripts/reports/reports_datatable.js @@ -135,7 +135,7 @@ if (data.archived) { $(row).addClass('archived'); } - if (data['3'].processing || data['4'].processing) { + if (data['4'].processing || data['5'].processing) { $(row).addClass('processing'); } } @@ -225,7 +225,7 @@ var $table = $('#reports-table'); REPORTS_TABLE = $table.DataTable({ dom: "Rt<'pagination-row hidden'<'pagination-info'li><'pagination-actions'p>>", - order: [[8, 'desc']], + order: [[9, 'desc']], sScrollX: '100%', sScrollXInner: '100%', processing: true, @@ -244,13 +244,13 @@ render: renderCheckboxHTML }, { - targets: 3, + targets: 4, searchable: false, sWidth: '60', render: renderPdfFile }, { - targets: 4, + targets: 5, searchable: false, sWidth: '60', render: renderDocxFile diff --git a/app/datatables/report_datatable.rb b/app/datatables/report_datatable.rb index 025ef4d42..d5e36c121 100644 --- a/app/datatables/report_datatable.rb +++ b/app/datatables/report_datatable.rb @@ -7,6 +7,7 @@ class ReportDatatable < CustomDatatable TABLE_COLUMNS = %w( Report.project_name Report.name + Report.code Report.pdf_file Report.docx_file Report.created_by_name @@ -54,12 +55,13 @@ class ReportDatatable < CustomDatatable '0' => record.id, '1' => sanitize_input(record.project_name), '2' => sanitize_input(record.name), - '3' => pdf_file(record), - '4' => docx_file(record), - '5' => sanitize_input(record.created_by_name), - '6' => sanitize_input(record.modified_by_name), - '7' => I18n.l(record.created_at, format: :full), - '8' => I18n.l(record.updated_at, format: :full), + '3' => sanitize_input(record.code), + '4' => pdf_file(record), + '5' => docx_file(record), + '6' => sanitize_input(record.created_by_name), + '7' => sanitize_input(record.modified_by_name), + '8' => I18n.l(record.created_at, format: :full), + '9' => I18n.l(record.updated_at, format: :full), 'archived' => record.project.archived?, 'edit' => edit_project_report_path(record.project_id, record.id), 'status' => status_project_report_path(record.project_id, record.id), @@ -106,7 +108,7 @@ class ReportDatatable < CustomDatatable def filter_records(records) records.where_attributes_like( - ['project_name', 'reports.name', 'reports.description'], + ['project_name', 'reports.name', 'reports.description', "('RP' || reports.id)"], dt_params.dig(:search, :value) ) end diff --git a/app/models/report.rb b/app/models/report.rb index c06854caf..449d12cf8 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -11,6 +11,9 @@ class Report < ApplicationRecord include SearchableModel include SearchableByNameModel + ID_PREFIX = 'RP' + include PrefixedIdModel + enum pdf_file_status: { pdf_empty: 0, pdf_processing: 1, pdf_ready: 2, pdf_error: 3 } enum docx_file_status: { docx_empty: 0, docx_processing: 1, docx_ready: 2, docx_error: 3 } diff --git a/app/views/reports/index.html.erb b/app/views/reports/index.html.erb index 084825a55..2d106a27a 100644 --- a/app/views/reports/index.html.erb +++ b/app/views/reports/index.html.erb @@ -27,6 +27,7 @@ <%= t('projects.reports.index.thead_project_name') %> <%= t('projects.reports.index.thead_name') %> + <%= t('projects.reports.index.thead_id') %> <%= t('projects.reports.index.pdf') %> <%= t('projects.reports.index.docx') %> <%= t('projects.reports.index.thead_created_by') %> diff --git a/config/locales/en.yml b/config/locales/en.yml index ac9c8a21a..b9787d7aa 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -567,6 +567,7 @@ en: thead_last_modified_by: "Last modified by" thead_created_at: "Creation date" thead_updated_at: "Last update date" + thead_id: "ID" no_reports: "No reports!" pdf: "PDF" docx: "DOCX" From 36b99fa2cb4f45da15eb7cb778a294041c4e61b0 Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Fri, 2 Dec 2022 14:51:22 +0400 Subject: [PATCH 34/39] code cleanup --- app/assets/javascripts/projects/index.js | 6 +----- app/assets/javascripts/projects/show.js | 6 +----- app/assets/stylesheets/experiments.scss | 6 +++--- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/app/assets/javascripts/projects/index.js b/app/assets/javascripts/projects/index.js index e1fe51e38..d2e20665a 100644 --- a/app/assets/javascripts/projects/index.js +++ b/app/assets/javascripts/projects/index.js @@ -519,11 +519,7 @@ var ProjectsIndex = (function() { $(projectsPageSelector) .on('ajax:success', '.change-projects-view-type-form', function(ev, data) { - if (data.cards_view_type_class === 'list') { - $(cardsWrapper).removeClass('cards').addClass(data.cards_view_type_class); - } else if (data.cards_view_type_class === 'cards') { - $(cardsWrapper).removeClass('list').addClass(data.cards_view_type_class); - } + $(cardsWrapper).removeClass('list cards').addClass(data.cards_view_type_class); $(projectsPageSelector).find('.cards-switch .button-to').removeClass('selected'); $(ev.target).find('.button-to').addClass('selected'); $(ev.target).parents('.dropdown.view-switch').removeClass('open'); diff --git a/app/assets/javascripts/projects/show.js b/app/assets/javascripts/projects/show.js index 345578c76..9826f0fbd 100644 --- a/app/assets/javascripts/projects/show.js +++ b/app/assets/javascripts/projects/show.js @@ -55,11 +55,7 @@ function initProjectsViewModeSwitch() { $(experimentsPage) .on('ajax:success', '.change-experiments-view-type-form', function(ev, data) { - if (data.cards_view_type_class === 'list') { - $(cardsWrapper).removeClass('cards').addClass(data.cards_view_type_class); - } else if (data.cards_view_type_class === 'cards') { - $(cardsWrapper).removeClass('list').addClass(data.cards_view_type_class); - } + $(cardsWrapper).removeClass('list cards').addClass(data.cards_view_type_class); $(experimentsPage).find('.cards-switch .button-to').removeClass('selected'); $(ev.target).find('.button-to').addClass('selected'); $(ev.target).parents('.dropdown.view-switch').removeClass('open'); diff --git a/app/assets/stylesheets/experiments.scss b/app/assets/stylesheets/experiments.scss index 477cfe3a3..903efc97e 100644 --- a/app/assets/stylesheets/experiments.scss +++ b/app/assets/stylesheets/experiments.scss @@ -558,17 +558,17 @@ .modified-date-cell { color: $color-silver-chalice; - position: relative; - top: -2px; left: 80px; margin-left: auto; margin-right: 114px; + position: relative; + top: -2px; } .experiment-code-cell { + left: 20px; position: relative; top: 5px; - left: 20px; } } } From 76884bafc170d2afffe08421760c9b2b05d8e83d Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Fri, 2 Dec 2022 15:53:22 +0400 Subject: [PATCH 35/39] code cleanup --- app/assets/javascripts/projects/index.js | 6 +----- app/assets/stylesheets/projects.scss | 17 +++++++---------- .../20220913100826_add_project_code_index.rb | 14 -------------- db/structure.sql | 9 --------- 4 files changed, 8 insertions(+), 38 deletions(-) delete mode 100644 db/migrate/20220913100826_add_project_code_index.rb diff --git a/app/assets/javascripts/projects/index.js b/app/assets/javascripts/projects/index.js index e1fe51e38..d2e20665a 100644 --- a/app/assets/javascripts/projects/index.js +++ b/app/assets/javascripts/projects/index.js @@ -519,11 +519,7 @@ var ProjectsIndex = (function() { $(projectsPageSelector) .on('ajax:success', '.change-projects-view-type-form', function(ev, data) { - if (data.cards_view_type_class === 'list') { - $(cardsWrapper).removeClass('cards').addClass(data.cards_view_type_class); - } else if (data.cards_view_type_class === 'cards') { - $(cardsWrapper).removeClass('list').addClass(data.cards_view_type_class); - } + $(cardsWrapper).removeClass('list cards').addClass(data.cards_view_type_class); $(projectsPageSelector).find('.cards-switch .button-to').removeClass('selected'); $(ev.target).find('.button-to').addClass('selected'); $(ev.target).parents('.dropdown.view-switch').removeClass('open'); diff --git a/app/assets/stylesheets/projects.scss b/app/assets/stylesheets/projects.scss index 2f778dbf7..62d0cd3de 100644 --- a/app/assets/stylesheets/projects.scss +++ b/app/assets/stylesheets/projects.scss @@ -1135,10 +1135,6 @@ li.module-hover { } } - - - - .cards-wrapper.last-page.cards { grid-gap: 25px; @@ -1156,26 +1152,27 @@ li.module-hover { } .name { - overflow: hidden; + -webkit-box-orient: vertical; display: -webkit-box; -webkit-line-clamp: 2; - -webkit-box-orient: vertical; max-width: 200px; + overflow: hidden; } } .project-code-cell { - position: relative; - padding-left: 20px; - margin-top: 5px; height: min-content; + margin-top: 5px; + padding-left: 20px; + position: relative; } .data-row { position: relative; top: 5%; + .card-label { - color: gray !important; + color: #808080 !important; } &.start-date-cell { diff --git a/db/migrate/20220913100826_add_project_code_index.rb b/db/migrate/20220913100826_add_project_code_index.rb deleted file mode 100644 index a893a89e9..000000000 --- a/db/migrate/20220913100826_add_project_code_index.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -class AddProjectCodeIndex < ActiveRecord::Migration[6.1] - def up - ActiveRecord::Base.connection.execute( - "CREATE INDEX index_projects_on_project_code ON "\ - "projects using gin (('PR'::text || id) gin_trgm_ops);" - ) - end - - def down - remove_index :projects, name: 'index_projects_on_project_code' - end -end diff --git a/db/structure.sql b/db/structure.sql index dc2605b91..6f1eec5da 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -5505,13 +5505,6 @@ CREATE INDEX index_projects_on_last_modified_by_id ON public.projects USING btre CREATE INDEX index_projects_on_name ON public.projects USING gin (public.trim_html_tags((name)::text) public.gin_trgm_ops); --- --- Name: index_projects_on_project_code; Type: INDEX; Schema: public; Owner: - --- - -CREATE INDEX index_projects_on_project_code ON public.projects USING gin ((('PR'::text || id)) public.gin_trgm_ops); - - -- -- Name: index_projects_on_project_folder_id; Type: INDEX; Schema: public; Owner: - -- @@ -8571,8 +8564,6 @@ INSERT INTO "schema_migrations" (version) VALUES ('20220621153016'), ('20220624091046'), ('20220705091621'), -('20220818094636'), -('20220913100826'); ('20220726133419'), ('20220803122405'), ('20220818094636'), From eff5d12253c0e47417b4d1174468f24121d344bb Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Fri, 2 Dec 2022 20:10:03 +0400 Subject: [PATCH 36/39] removed last-page class by default --- app/assets/stylesheets/projects.scss | 2 +- app/views/projects/index.html.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/stylesheets/projects.scss b/app/assets/stylesheets/projects.scss index 62d0cd3de..76db6f24d 100644 --- a/app/assets/stylesheets/projects.scss +++ b/app/assets/stylesheets/projects.scss @@ -1135,7 +1135,7 @@ li.module-hover { } } -.cards-wrapper.last-page.cards { +.cards-wrapper.cards { grid-gap: 25px; .project-card { diff --git a/app/views/projects/index.html.erb b/app/views/projects/index.html.erb index 19f415559..89b18a66b 100644 --- a/app/views/projects/index.html.erb +++ b/app/views/projects/index.html.erb @@ -17,7 +17,7 @@ <%= render partial: 'projects/index/modals/export_projects' %>
-
From 769fe7ebd8919b6906630f586ed200a81817043f Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Mon, 5 Dec 2022 13:17:15 +0400 Subject: [PATCH 37/39] fixed id sorting on reports removed model duplicate code --- app/datatables/report_datatable.rb | 3 +++ app/models/my_module.rb | 4 ++-- app/models/project.rb | 5 +---- app/models/protocol.rb | 2 +- app/models/report.rb | 5 +---- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/app/datatables/report_datatable.rb b/app/datatables/report_datatable.rb index d5e36c121..c4ef21891 100644 --- a/app/datatables/report_datatable.rb +++ b/app/datatables/report_datatable.rb @@ -41,6 +41,9 @@ class ReportDatatable < CustomDatatable records.left_joins(:pdf_file_attachment) .order(active_storage_attachments: sort_direction(order_params)) .order(pdf_file_status: sort_direction(order_params) == 'ASC' ? :desc : :asc) + when 'reports.code' + sort_by = "reports.id #{sort_direction(order_params)}" + records.order(sort_by) else sort_by = "#{sort_column(order_params)} #{sort_direction(order_params)}" records.order(sort_by) diff --git a/app/models/my_module.rb b/app/models/my_module.rb index 94e2f3540..8c9923409 100644 --- a/app/models/my_module.rb +++ b/app/models/my_module.rb @@ -2,9 +2,9 @@ class MyModule < ApplicationRecord ID_PREFIX = 'TA' - SEARCHABLE_ATTRIBUTES = ['my_modules.name', 'my_modules.description', PREFIXED_ID_SQL].freeze - include PrefixedIdModel + SEARCHABLE_ATTRIBUTES = ['my_modules.name', 'my_modules.description', PREFIXED_ID_SQL].freeze + include ArchivableModel include SearchableModel include SearchableByNameModel diff --git a/app/models/project.rb b/app/models/project.rb index 8a3915557..f321cc1b8 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -2,9 +2,9 @@ class Project < ApplicationRecord ID_PREFIX = 'PR' + include PrefixedIdModel SEARCHABLE_ATTRIBUTES = ['projects.name', PREFIXED_ID_SQL].freeze - include PrefixedIdModel include ArchivableModel include SearchableModel include SearchableByNameModel @@ -12,9 +12,6 @@ class Project < ApplicationRecord include PermissionCheckableModel include Assignable - ID_PREFIX = 'PR' - include PrefixedIdModel - enum visibility: { hidden: 0, visible: 1 } auto_strip_attributes :name, nullify: false diff --git a/app/models/protocol.rb b/app/models/protocol.rb index cfc8ce356..812cbf835 100644 --- a/app/models/protocol.rb +++ b/app/models/protocol.rb @@ -2,10 +2,10 @@ class Protocol < ApplicationRecord ID_PREFIX = 'PT' + include PrefixedIdModel SEARCHABLE_ATTRIBUTES = ['protocols.name', 'protocols.description', 'protocols.authors', 'protocol_keywords.name', PREFIXED_ID_SQL].freeze - include PrefixedIdModel include SearchableModel include RenamingUtil include SearchableByNameModel diff --git a/app/models/report.rb b/app/models/report.rb index 449d12cf8..c822b3dee 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -2,18 +2,15 @@ class Report < ApplicationRecord ID_PREFIX = 'RP' + include PrefixedIdModel SEARCHABLE_ATTRIBUTES = ['reports.name', 'reports.description', PREFIXED_ID_SQL].freeze - include PrefixedIdModel include SettingsModel include Assignable include PermissionCheckableModel include SearchableModel include SearchableByNameModel - ID_PREFIX = 'RP' - include PrefixedIdModel - enum pdf_file_status: { pdf_empty: 0, pdf_processing: 1, pdf_ready: 2, pdf_error: 3 } enum docx_file_status: { docx_empty: 0, docx_processing: 1, docx_ready: 2, docx_error: 3 } From df4654189baef4c69cdd5448d745e4aa459d365c Mon Sep 17 00:00:00 2001 From: Martin Artnik Date: Tue, 6 Dec 2022 12:43:30 +0100 Subject: [PATCH 38/39] Revert "Revert "Add task IDs to canvas view [SCI-7177][SCI-7178]"" This reverts commit 50e7531ffa741938428b94a5e4194b636adfe199. --- app/assets/stylesheets/my_modules.scss | 8 ++++++++ app/assets/stylesheets/my_modules/protocols/index.scss | 5 +++++ app/models/my_module.rb | 3 +++ app/views/canvas/full_zoom/_my_module.html.erb | 4 ++-- app/views/my_modules/protocols.html.erb | 3 +++ 5 files changed, 21 insertions(+), 2 deletions(-) diff --git a/app/assets/stylesheets/my_modules.scss b/app/assets/stylesheets/my_modules.scss index 9bef9d6d4..2f78fd3d2 100644 --- a/app/assets/stylesheets/my_modules.scss +++ b/app/assets/stylesheets/my_modules.scss @@ -61,6 +61,14 @@ word-break: break-all; word-wrap: break-word; } + + .task-card-code { + bottom: 5px; + color: $color-volcano; + font-weight: 400; + position: absolute; + right: 5px; + } } .archived-task-card-code { diff --git a/app/assets/stylesheets/my_modules/protocols/index.scss b/app/assets/stylesheets/my_modules/protocols/index.scss index e013248fe..f4297591b 100644 --- a/app/assets/stylesheets/my_modules/protocols/index.scss +++ b/app/assets/stylesheets/my_modules/protocols/index.scss @@ -677,3 +677,8 @@ } } } + +.task-details-code { + display: inline-block; + margin-left: 4px; +} diff --git a/app/models/my_module.rb b/app/models/my_module.rb index 8c9923409..829043157 100644 --- a/app/models/my_module.rb +++ b/app/models/my_module.rb @@ -12,6 +12,9 @@ class MyModule < ApplicationRecord include PermissionCheckableModel include Assignable + ID_PREFIX = 'TA' + include PrefixedIdModel + attr_accessor :transition_error_rollback enum state: Extends::TASKS_STATES diff --git a/app/views/canvas/full_zoom/_my_module.html.erb b/app/views/canvas/full_zoom/_my_module.html.erb index e1ce4137c..5896a0bc1 100644 --- a/app/views/canvas/full_zoom/_my_module.html.erb +++ b/app/views/canvas/full_zoom/_my_module.html.erb @@ -114,8 +114,8 @@
-
- <%= t('my_modules.details.code') %><%= my_module.code %> +
+ ID: <%= my_module.code %>
diff --git a/app/views/my_modules/protocols.html.erb b/app/views/my_modules/protocols.html.erb index e057ec67c..aff367e80 100644 --- a/app/views/my_modules/protocols.html.erb +++ b/app/views/my_modules/protocols.html.erb @@ -67,6 +67,9 @@ <%= render partial: "module_header_details_popover.html.erb" %>
+ + <%= @my_module.code %> +
From 13972e6c3310e85f0a12a405ff38f75f74ba3af3 Mon Sep 17 00:00:00 2001 From: Giga Chubinidze Date: Wed, 7 Dec 2022 10:22:29 +0400 Subject: [PATCH 39/39] CSS: sorting, experiment card, task card[SCI-7558] --- config/locales/en.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index d0237cc00..ffefb691c 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -3159,14 +3159,14 @@ en: comment_placeholder_new: "Add new comment…" archived: "Archived" sort: - new_html: "  Started last" + new_html: "  Started last" old_html: "  Started first" atoz_html: "  Name A to Z" - ztoa_html: "  Name Z to A" + ztoa_html: "  Name Z to A" archived_new_html: "Archived last" archived_old_html: "Archived first" id_asc_html: "  ID ascending" - id_desc_html: "  ID descending" + id_desc_html: "  ID descending" sort_new: new: "Newest" old: "Oldest"