From f8fd07695ff854ba3ed3dad7efaeac7311898584 Mon Sep 17 00:00:00 2001 From: Anton Date: Tue, 3 Sep 2024 13:22:57 +0200 Subject: [PATCH 1/5] Move table renderers to components [SCI-11009] --- .../vue/label_template/renderers/default.vue | 14 +++++ .../vue/label_template/renderers/format.vue | 17 +++++ .../vue/label_template/renderers/name.vue | 16 +++++ app/javascript/vue/label_template/table.vue | 60 +++++++++--------- app/javascript/vue/my_modules/list.vue | 62 ++++--------------- .../vue/my_modules/renderers/name.vue | 49 +++++++++++++++ .../vue/my_modules/renderers/results.vue | 14 +++++ .../vue/my_modules/renderers/status.vue | 20 ++++++ app/javascript/vue/projects/list.vue | 14 +---- .../vue/projects/renderers/name.vue | 21 +++++++ .../vue/projects/renderers/users.vue | 4 +- .../vue/protocols/renderers/name.vue | 21 +++++++ app/javascript/vue/protocols/table.vue | 12 +--- app/javascript/vue/reports/renderers/name.vue | 16 +++++ app/javascript/vue/reports/table.vue | 4 +- .../vue/repositories/renderers/name.vue | 22 +++++++ app/javascript/vue/repositories/table.vue | 23 ++----- 17 files changed, 264 insertions(+), 125 deletions(-) create mode 100644 app/javascript/vue/label_template/renderers/default.vue create mode 100644 app/javascript/vue/label_template/renderers/format.vue create mode 100644 app/javascript/vue/label_template/renderers/name.vue create mode 100644 app/javascript/vue/my_modules/renderers/name.vue create mode 100644 app/javascript/vue/my_modules/renderers/results.vue create mode 100644 app/javascript/vue/my_modules/renderers/status.vue create mode 100644 app/javascript/vue/projects/renderers/name.vue create mode 100644 app/javascript/vue/protocols/renderers/name.vue create mode 100644 app/javascript/vue/reports/renderers/name.vue create mode 100644 app/javascript/vue/repositories/renderers/name.vue diff --git a/app/javascript/vue/label_template/renderers/default.vue b/app/javascript/vue/label_template/renderers/default.vue new file mode 100644 index 000000000..0081fe32a --- /dev/null +++ b/app/javascript/vue/label_template/renderers/default.vue @@ -0,0 +1,14 @@ + + diff --git a/app/javascript/vue/label_template/renderers/format.vue b/app/javascript/vue/label_template/renderers/format.vue new file mode 100644 index 000000000..de61fb305 --- /dev/null +++ b/app/javascript/vue/label_template/renderers/format.vue @@ -0,0 +1,17 @@ + + + diff --git a/app/javascript/vue/label_template/renderers/name.vue b/app/javascript/vue/label_template/renderers/name.vue new file mode 100644 index 000000000..ac969e84f --- /dev/null +++ b/app/javascript/vue/label_template/renderers/name.vue @@ -0,0 +1,16 @@ + + + diff --git a/app/javascript/vue/label_template/table.vue b/app/javascript/vue/label_template/table.vue index e39071a45..778b77c46 100644 --- a/app/javascript/vue/label_template/table.vue +++ b/app/javascript/vue/label_template/table.vue @@ -30,28 +30,34 @@ import axios from '../../packs/custom_axios.js'; import DataTable from '../shared/datatable/table.vue'; import DeleteModal from '../shared/confirmation_modal.vue'; +import NameRenderer from './renderers/name.vue'; +import DefaultRenderer from './renderers/default.vue'; +import FormatRenderer from './renderers/format.vue'; export default { name: 'LabelTemplatesTable', components: { DataTable, DeleteModal, + NameRenderer, + DefaultRenderer, + FormatRenderer }, props: { dataSource: { type: String, - required: true, + required: true }, actionsUrl: { type: String, - required: true, + required: true }, createUrl: { - type: String, + type: String }, syncFluicsUrl: { - type: String, - }, + type: String + } }, data() { return { @@ -60,40 +66,40 @@ export default { { field: 'default', headerName: this.i18n.t('label_templates.index.default_label'), - cellRenderer: this.defaultRenderer, - sortable: true, + cellRenderer: 'DefaultRenderer', + sortable: true }, { field: 'name', headerName: this.i18n.t('label_templates.index.thead_name'), - cellRenderer: this.labelNameRenderer, - sortable: true, + cellRenderer: 'NameRenderer', + sortable: true }, { field: 'format', headerName: this.i18n.t('label_templates.index.format'), sortable: true, - cellRenderer: ({ data: { format, icon_url: iconUrl } }) => `${iconUrl} ${format}` + cellRenderer: 'FormatRenderer' }, { field: 'description', headerName: this.i18n.t('label_templates.index.description'), - sortable: true, + sortable: true }, { field: 'modified_by', headerName: this.i18n.t('label_templates.index.updated_by'), - sortable: true, + sortable: true }, { field: 'updated_at', headerName: this.i18n.t('label_templates.index.updated_at'), - sortable: true, + sortable: true }, { field: 'created_by', headerName: this.i18n.t('label_templates.index.created_by'), - sortable: true, + sortable: true }, { field: 'created_at', headerName: this.i18n.t('label_templates.index.created_at'), - sortable: true, - }, - ], + sortable: true + } + ] }; }, computed: { @@ -106,7 +112,7 @@ export default { label: this.i18n.t('label_templates.index.toolbar.new'), type: 'emit', path: this.createUrl, - buttonStyle: 'btn btn-primary', + buttonStyle: 'btn btn-primary' }); } if (this.syncFluicsUrl) { @@ -121,21 +127,11 @@ export default { } return { left, - right: [], + right: [] }; - }, + } }, methods: { - labelNameRenderer(params) { - const editUrl = params.data.urls.show; - return ` - ${params.data.name} - `; - }, - defaultRenderer(params) { - const defaultSelected = params.data.default; - return defaultSelected ? '' : ''; - }, setDefault(action) { axios.post(action.path).then((response) => { this.reloadingTable = true; @@ -175,8 +171,8 @@ export default { HelperModule.flashAlertMsg(error.response.data.error, 'danger'); }); } - }, - }, + } + } }; diff --git a/app/javascript/vue/my_modules/list.vue b/app/javascript/vue/my_modules/list.vue index 8d6ff6acd..4904aee57 100644 --- a/app/javascript/vue/my_modules/list.vue +++ b/app/javascript/vue/my_modules/list.vue @@ -16,6 +16,7 @@ :hiddenDataMessage="i18n.t('experiments.empty_state.no_active_modules_archived_branch')" scrollMode="infinite" @tableReloaded="reloadingTable = false" + @reloadTable="reloadingTable = true" @create="newModalOpen = true" @edit="edit" @move="move" @@ -56,6 +57,9 @@ import axios from '../../packs/custom_axios.js'; import DataTable from '../shared/datatable/table.vue'; import ConfirmationModal from '../shared/confirmation_modal.vue'; +import NameRenderer from './renderers/name.vue'; +import ResultsRenderer from './renderers/results.vue'; +import StatusRenderer from './renderers/status.vue'; import DueDateRenderer from './renderers/due_date.vue'; import DesignatedUsers from './renderers/designated_users.vue'; import TagsModal from './modals/tags.vue'; @@ -77,7 +81,10 @@ export default { NewModal, EditModal, MoveModal, - AccessModal + AccessModal, + NameRenderer, + ResultsRenderer, + StatusRenderer }, props: { dataSource: { type: String, required: true }, @@ -115,7 +122,7 @@ export default { field: 'name', headerName: this.i18n.t('experiments.table.column.task_name_html'), sortable: true, - cellRenderer: this.nameRenderer + cellRenderer: NameRenderer }, { field: 'code', @@ -133,7 +140,7 @@ export default { field: 'results', headerName: this.i18n.t('experiments.table.column.results_html'), sortable: true, - cellRenderer: this.resultsRenderer + cellRenderer: ResultsRenderer }, { field: 'age', @@ -144,7 +151,7 @@ export default { field: 'status', headerName: this.i18n.t('experiments.table.column.status_html'), sortable: true, - cellRenderer: this.statusRenderer, + cellRenderer: StatusRenderer, minWidth: 120 } ]; @@ -321,53 +328,6 @@ export default { roles_path: this.userRolesUrl }; }, - checkProvisioning(params) { - if (params.data.provisioning_status === 'done') return; - - axios.get(params.data.urls.provisioning_status).then((response) => { - const provisioningStatus = response.data.provisioning_status; - if (provisioningStatus === 'done') { - this.reloadingTable = true; - } else { - setTimeout(() => { - this.checkProvisioning(params); - }, 5000); - } - }); - }, - // Renderers - nameRenderer(params) { - const { name, urls } = params.data; - const provisioningStatus = params.data.provisioning_status; - if (provisioningStatus === 'in_progress') { - setTimeout(() => { - this.checkProvisioning(params); - }, 5000); - return ` - -
- ${name} -
`; - } - - return `${name}`; - }, - statusRenderer(params) { - const { status } = params.data; - - return ` - ${status.name} - `; - }, - resultsRenderer(params) { - const { results, urls } = params.data; - - return `${results}`; - }, usersFilterRenderer(option) { return `
diff --git a/app/javascript/vue/my_modules/renderers/name.vue b/app/javascript/vue/my_modules/renderers/name.vue new file mode 100644 index 000000000..0dd3c9125 --- /dev/null +++ b/app/javascript/vue/my_modules/renderers/name.vue @@ -0,0 +1,49 @@ + + + diff --git a/app/javascript/vue/my_modules/renderers/results.vue b/app/javascript/vue/my_modules/renderers/results.vue new file mode 100644 index 000000000..bcb21bad5 --- /dev/null +++ b/app/javascript/vue/my_modules/renderers/results.vue @@ -0,0 +1,14 @@ + + + diff --git a/app/javascript/vue/my_modules/renderers/status.vue b/app/javascript/vue/my_modules/renderers/status.vue new file mode 100644 index 000000000..33753fc8c --- /dev/null +++ b/app/javascript/vue/my_modules/renderers/status.vue @@ -0,0 +1,20 @@ + + + diff --git a/app/javascript/vue/projects/list.vue b/app/javascript/vue/projects/list.vue index fb263d886..facdf3e25 100644 --- a/app/javascript/vue/projects/list.vue +++ b/app/javascript/vue/projects/list.vue @@ -68,6 +68,7 @@ import axios from '../../packs/custom_axios.js'; import DataTable from '../shared/datatable/table.vue'; import UsersRenderer from './renderers/users.vue'; +import NameRenderer from './renderers/name.vue'; import CommentsRenderer from '../shared/datatable/renderers/comments.vue'; import ProjectCard from './card.vue'; import ConfirmationModal from '../shared/confirmation_modal.vue'; @@ -84,6 +85,7 @@ export default { components: { DataTable, UsersRenderer, + NameRenderer, ProjectCard, ConfirmationModal, EditProjectModal, @@ -129,7 +131,7 @@ export default { flex: 1, headerName: this.i18n.t('projects.index.card.name'), sortable: true, - cellRenderer: this.nameRenderer + cellRenderer: 'NameRenderer' }, { field: 'code', @@ -252,16 +254,6 @@ export default { ${option[1]}
`; }, - nameRenderer(params) { - const showUrl = params.data.urls.show; - return ` - ${params.data.folder ? '' : ''} - ${params.data.name} - `; - }, openComments(_params, rows) { $(this.$refs.commentButton).data('objectId', rows[0].id); this.$refs.commentButton.click(); diff --git a/app/javascript/vue/projects/renderers/name.vue b/app/javascript/vue/projects/renderers/name.vue new file mode 100644 index 000000000..52b7548b5 --- /dev/null +++ b/app/javascript/vue/projects/renderers/name.vue @@ -0,0 +1,21 @@ + + diff --git a/app/javascript/vue/projects/renderers/users.vue b/app/javascript/vue/projects/renderers/users.vue index 451693696..b07a5ce8f 100644 --- a/app/javascript/vue/projects/renderers/users.vue +++ b/app/javascript/vue/projects/renderers/users.vue @@ -19,8 +19,8 @@ export default { name: 'UsersRenderer', props: { params: { - required: true, - }, + required: true + } }, computed: { users() { diff --git a/app/javascript/vue/protocols/renderers/name.vue b/app/javascript/vue/protocols/renderers/name.vue new file mode 100644 index 000000000..0af6736df --- /dev/null +++ b/app/javascript/vue/protocols/renderers/name.vue @@ -0,0 +1,21 @@ + + + diff --git a/app/javascript/vue/protocols/table.vue b/app/javascript/vue/protocols/table.vue index 062f2df7c..715d408d2 100644 --- a/app/javascript/vue/protocols/table.vue +++ b/app/javascript/vue/protocols/table.vue @@ -42,6 +42,7 @@ import axios from '../../packs/custom_axios.js'; import DataTable from '../shared/datatable/table.vue'; import UsersRenderer from '../projects/renderers/users.vue'; +import NameRenderer from './renderers/name.vue'; import NewProtocolModal from './modals/new.vue'; import AccessModal from '../shared/access_modal/modal.vue'; import KeywordsRenderer from './renderers/keywords.vue'; @@ -55,6 +56,7 @@ export default { components: { DataTable, UsersRenderer, + NameRenderer, NewProtocolModal, AccessModal, KeywordsRenderer, @@ -116,7 +118,7 @@ export default { headerName: this.i18n.t('protocols.index.thead.name'), sortable: true, notSelectable: true, - cellRenderer: this.nameRenderer + cellRenderer: 'NameRenderer' }, { field: 'code', @@ -337,14 +339,6 @@ export default { linkedMyModules(_event, rows) { [this.linkedMyModulesModalObject] = rows; }, - // renderers - nameRenderer(params) { - const { urls, name } = params.data; - if (urls.show) { - return `${name}`; - } - return `${name}`; - }, usersFilterRenderer(option) { return `
diff --git a/app/javascript/vue/reports/renderers/name.vue b/app/javascript/vue/reports/renderers/name.vue new file mode 100644 index 000000000..d2e9f7924 --- /dev/null +++ b/app/javascript/vue/reports/renderers/name.vue @@ -0,0 +1,16 @@ + + + diff --git a/app/javascript/vue/reports/table.vue b/app/javascript/vue/reports/table.vue index f68a7b293..9261c5f31 100644 --- a/app/javascript/vue/reports/table.vue +++ b/app/javascript/vue/reports/table.vue @@ -43,6 +43,7 @@ import axios from '../../packs/custom_axios.js'; import DataTable from '../shared/datatable/table.vue'; import DocxRenderer from './renderers/docx.vue'; import PdfRenderer from './renderers/pdf.vue'; +import NameRenderer from './renderers/name.vue'; import ConfirmationModal from '../shared/confirmation_modal.vue'; import SaveToInventoryModal from './modals/save_to_inventory.vue'; import UpdateReportModal from './modals/update.vue'; @@ -60,6 +61,7 @@ export default { DataTable, DocxRenderer, PdfRenderer, + NameRenderer, ConfirmationModal, SaveToInventoryModal, UpdateReportModal @@ -108,7 +110,7 @@ export default { field: 'name', headerName: this.i18n.t('projects.reports.index.thead_name'), sortable: true, - cellRenderer: ({ data: { name } }) => `${name}` + cellRenderer: 'NameRenderer' }, { field: 'code', headerName: this.i18n.t('projects.reports.index.thead_id'), diff --git a/app/javascript/vue/repositories/renderers/name.vue b/app/javascript/vue/repositories/renderers/name.vue new file mode 100644 index 000000000..e17aa60cb --- /dev/null +++ b/app/javascript/vue/repositories/renderers/name.vue @@ -0,0 +1,22 @@ + + + diff --git a/app/javascript/vue/repositories/table.vue b/app/javascript/vue/repositories/table.vue index ade32b122..84acab992 100644 --- a/app/javascript/vue/repositories/table.vue +++ b/app/javascript/vue/repositories/table.vue @@ -68,6 +68,7 @@ import EditRepositoryModal from './modals/edit.vue'; import DuplicateRepositoryModal from './modals/duplicate.vue'; import ShareRepositoryModal from './modals/share.vue'; import DataTable from '../shared/datatable/table.vue'; +import NameRenderer from './renderers/name.vue'; export default { name: 'RepositoriesTable', @@ -78,7 +79,8 @@ export default { NewRepositoryModal, EditRepositoryModal, DuplicateRepositoryModal, - ShareRepositoryModal + ShareRepositoryModal, + NameRenderer }, props: { dataSource: { @@ -138,7 +140,7 @@ export default { headerName: this.i18n.t('libraries.index.table.name'), sortable: true, notSelectable: true, - cellRenderer: this.nameRenderer + cellRenderer: 'NameRenderer' }, { field: 'code', @@ -277,23 +279,6 @@ export default { share(_event, rows) { const [repository] = rows; this.shareRepository = repository; - }, - // Renderers - nameRenderer(params) { - const { - name, - urls, - shared, - ishared - } = params.data; - let sharedIcon = ''; - if (shared || ishared) { - sharedIcon = ''; - } - return ` - ${sharedIcon}${name} - `; } } }; From e5196774fd6fa71373d7b9e544040ea997e75be5 Mon Sep 17 00:00:00 2001 From: Anton Date: Wed, 4 Sep 2024 11:10:03 +0200 Subject: [PATCH 2/5] Add restricted extensions for scinote edit [SCI-11010] --- .../javascripts/sitewide/constants.js.erb | 3 +- .../attachments/mixins/open_locally.js | 16 ++++++++-- .../content/attachments/open_locally_menu.vue | 4 +++ .../shared/content/attachments/open_menu.vue | 4 +++ .../modal/restricted_extension_modal.vue | 29 +++++++++++++++++++ config/initializers/constants.rb | 6 ++++ config/locales/en.yml | 4 +++ 7 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 app/javascript/vue/shared/content/modal/restricted_extension_modal.vue diff --git a/app/assets/javascripts/sitewide/constants.js.erb b/app/assets/javascripts/sitewide/constants.js.erb index ff1416e1e..bcbd62513 100644 --- a/app/assets/javascripts/sitewide/constants.js.erb +++ b/app/assets/javascripts/sitewide/constants.js.erb @@ -19,5 +19,6 @@ const GLOBAL_CONSTANTS = { ASSET_POLLING_INTERVAL: <%= Constants::ASSET_POLLING_INTERVAL %>, ASSET_SYNC_URL: '<%= Constants::ASSET_SYNC_URL %>', GLOBAL_SEARCH_PREVIEW_LIMIT: <%= Constants::GLOBAL_SEARCH_PREVIEW_LIMIT %>, - SEARCH_LIMIT: <%= Constants::SEARCH_LIMIT %> + SEARCH_LIMIT: <%= Constants::SEARCH_LIMIT %>, + SCINOTE_EDIT_RESTRICTED_EXTENSIONS: <%= Constants::SCINOTE_EDIT_RESTRICTED_EXTENSIONS %> }; diff --git a/app/javascript/vue/shared/content/attachments/mixins/open_locally.js b/app/javascript/vue/shared/content/attachments/mixins/open_locally.js index 2a34f6e4a..b383a762a 100644 --- a/app/javascript/vue/shared/content/attachments/mixins/open_locally.js +++ b/app/javascript/vue/shared/content/attachments/mixins/open_locally.js @@ -1,7 +1,10 @@ +/* global GLOBAL_CONSTANTS */ + import axios from '../../../../../packs/custom_axios.js'; import { satisfies } from 'compare-versions'; import editLaunchingApplicationModal from '../../modal/edit_launching_application_modal.vue'; import NoPredefinedAppModal from '../../modal/no_predefined_app_modal.vue'; +import RestrictedExtensionModal from '../../modal/restricted_extension_modal.vue'; import UpdateVersionModal from '../../modal/update_version_modal.vue'; export default { @@ -10,15 +13,17 @@ export default { localAppName: null, scinoteEditRunning: null, showNoPredefinedAppModal: false, + showRestrictedExtensionModal: false, showUpdateVersionModal: false, editAppModal: false, - pollingInterval: null, + pollingInterval: null }; }, components: { editLaunchingApplicationModal, NoPredefinedAppModal, - UpdateVersionModal + UpdateVersionModal, + RestrictedExtensionModal }, computed: { attributes() { @@ -93,9 +98,16 @@ export default { } }, async openLocally() { + const restrictedExtension = GLOBAL_CONSTANTS.SCINOTE_EDIT_RESTRICTED_EXTENSIONS.includes( + this.attributes.file_extension.toUpperCase() + ); + if (this.isWrongVersion(window.scinoteEditVersion)) { this.showUpdateVersionModal = true; return; + } else if (restrictedExtension) { + this.showRestrictedExtensionModal = true; + return; } else if (this.localAppName === null) { this.showNoPredefinedAppModal = true; return; diff --git a/app/javascript/vue/shared/content/attachments/open_locally_menu.vue b/app/javascript/vue/shared/content/attachments/open_locally_menu.vue index c758cd8fc..8ea7048cc 100644 --- a/app/javascript/vue/shared/content/attachments/open_locally_menu.vue +++ b/app/javascript/vue/shared/content/attachments/open_locally_menu.vue @@ -33,6 +33,10 @@ :fileName="attachment.attributes.file_name" @close="showNoPredefinedAppModal = false" /> + + + + + + diff --git a/config/initializers/constants.rb b/config/initializers/constants.rb index f43a24956..bceb558de 100644 --- a/config/initializers/constants.rb +++ b/config/initializers/constants.rb @@ -447,6 +447,12 @@ class Constants MIN_SCINOTE_EDIT_VERSION = ENV['MIN_SCINOTE_EDIT_VERSION'].freeze MAX_SCINOTE_EDIT_VERSION = ENV['MAX_SCINOTE_EDIT_VERSION'].freeze + # SciNote Edit unsupported extensions + SCINOTE_EDIT_RESTRICTED_EXTENSIONS = %w( + ACTION APP BIN COMMAND CSH OSX WORKFLOW DMG BAT BIN CAB CMD COM CPL EX_ EXE GADGET INF1 INS INX ISU JOB + JSE LNK MSC MSI MSP MST PAF PIF PS1 REG RGS SCR SCT SHB SHS U3P VB VBE VBS VBSCRIPT WS WSF WSH + ).freeze + # quick search QUICK_SEARCH_LIMIT = 5 QUICK_SEARCH_SEARCHABLE_OBJECTS = %w(project experiment my_module protocol repository_row diff --git a/config/locales/en.yml b/config/locales/en.yml index 909bdfcfd..00473471c 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -3907,6 +3907,10 @@ en: body_text_html: "The specified application for accessing the %{file_name} is not preconfigured. To successfully open this file, please set up the appropriate application in your local environment beforehand.

" understand_button: "I understand" set_up_app: "Set up an application to open this file" + restricted_extension_modal: + title: "Open file - Security warning" + body: "This file type appears to be executable and can potentially harm your computer. It cannot be opened with SciNote Edit. To open the file please download it manually." + action: "I understand" update_version_modal: title: "Update required" body_text_html: "The current version of the SciNote Edit application is no longer supported. To ensure a seamless and secure user experience, we recommend updating to the latest version." From c641e6b552cecac13feb892263805c1d7a386c98 Mon Sep 17 00:00:00 2001 From: Anton Date: Thu, 5 Sep 2024 12:17:57 +0200 Subject: [PATCH 3/5] Fix task table name renderer [SCI-11009] --- app/javascript/vue/my_modules/renderers/name.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/vue/my_modules/renderers/name.vue b/app/javascript/vue/my_modules/renderers/name.vue index 0dd3c9125..22725492e 100644 --- a/app/javascript/vue/my_modules/renderers/name.vue +++ b/app/javascript/vue/my_modules/renderers/name.vue @@ -8,6 +8,7 @@ From 7426153517db95ffd0313da8ef7336110988af1a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 09:50:04 +0200 Subject: [PATCH 4/5] Bump ruby-saml from 1.16.0 to 1.17.0 (#7841) Bumps [ruby-saml](https://github.com/saml-toolkits/ruby-saml) from 1.16.0 to 1.17.0. - [Release notes](https://github.com/saml-toolkits/ruby-saml/releases) - [Changelog](https://github.com/SAML-Toolkits/ruby-saml/blob/master/CHANGELOG.md) - [Commits](https://github.com/saml-toolkits/ruby-saml/compare/v1.16.0...v1.17.0) --- updated-dependencies: - dependency-name: ruby-saml dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 31f2d4b94..a18763584 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -548,7 +548,7 @@ GEM puma (6.4.2) nio4r (~> 2.0) raabro (1.4.0) - racc (1.8.0) + racc (1.8.1) rack (2.2.9) rack-attack (6.6.1) rack (>= 1.0, < 3) @@ -617,8 +617,7 @@ GEM responders (3.1.1) actionpack (>= 5.2) railties (>= 5.2) - rexml (3.3.3) - strscan + rexml (3.3.7) rgl (0.6.3) pairing_heap (>= 0.3.0) rexml (~> 3.2, >= 3.2.4) @@ -670,7 +669,7 @@ GEM rubocop (>= 1.33.0, < 2.0) ruby-progressbar (1.13.0) ruby-rc4 (0.1.5) - ruby-saml (1.16.0) + ruby-saml (1.17.0) nokogiri (>= 1.13.10) rexml ruby-vips (2.1.4) @@ -710,7 +709,6 @@ GEM activesupport (>= 5.2) sprockets (>= 3.0.0) stream (0.5.5) - strscan (3.1.0) swd (2.0.2) activesupport (>= 3) attr_required (>= 0.0.5) From 288e8d26afb3161f9651335bb15fad6bd89db29d Mon Sep 17 00:00:00 2001 From: Oleksii Kriuchykhin Date: Wed, 11 Sep 2024 11:45:09 +0200 Subject: [PATCH 5/5] Bump version to 1.36.2.1 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index c6a567b8e..aa69a0972 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.36.2 +1.36.2.1