From df623f02fbdef0e93979fe6887599985c1ed45b9 Mon Sep 17 00:00:00 2001 From: Bilel Kihal <61744974+Bilelkihal@users.noreply.github.com> Date: Sat, 23 Nov 2024 12:17:31 +0100 Subject: [PATCH] Fix: Federation portal button link (#854) * fix federated portal button opening in current portal in browse page * make internal federated portal button open in the current tab --- app/components/federated_portal_button_component.rb | 5 +++++ .../federated_portal_button_component.html.haml | 2 +- app/helpers/federation_helper.rb | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/components/federated_portal_button_component.rb b/app/components/federated_portal_button_component.rb index 4d8a1e886..920407bb4 100644 --- a/app/components/federated_portal_button_component.rb +++ b/app/components/federated_portal_button_component.rb @@ -2,6 +2,7 @@ class FederatedPortalButtonComponent < ViewComponent::Base attr_reader :name, :tooltip, :link, :color, :light_color + include UrlsHelper def initialize(name:, link:, color:, tooltip:, light_color:) @name = name @@ -10,4 +11,8 @@ def initialize(name:, link:, color:, tooltip:, light_color:) @color = color @light_color = light_color end + + def internal? + !link?(@link) + end end diff --git a/app/components/federated_portal_button_component/federated_portal_button_component.html.haml b/app/components/federated_portal_button_component/federated_portal_button_component.html.haml index e45a6f052..b59554ff8 100644 --- a/app/components/federated_portal_button_component/federated_portal_button_component.html.haml +++ b/app/components/federated_portal_button_component/federated_portal_button_component.html.haml @@ -1,7 +1,7 @@ %span{'data-controller': 'federation-portals-colors', 'data-federation-portals-colors-color-value': color, 'data-federation-portals-colors-portal-name-value': name.downcase} -%a{ href: link, target: '_blank', 'data-controller' => 'tooltip', title: tooltip, class: 'federation-portal-button button icon-right', style: color ? "background-color: #{light_color} !important" : '' } +%a{ href: link, target: internal? ? '_top' : '_blank', 'data-controller' => 'tooltip', title: tooltip, class: 'federation-portal-button button icon-right', style: color ? "background-color: #{light_color} !important" : '' } = inline_svg_tag('logos/ontoportal.svg', class: "federated-icon-#{name.downcase}") %div{ class: 'text', style: color ? "color: #{color} !important" : '' } = name.humanize.gsub("portal", "Portal") diff --git a/app/helpers/federation_helper.rb b/app/helpers/federation_helper.rb index d961712bc..6b52b7a6b 100644 --- a/app/helpers/federation_helper.rb +++ b/app/helpers/federation_helper.rb @@ -53,6 +53,10 @@ def ontology_portal_color(id) end def ontoportal_ui_link(id) + if id.include?($REST_URL) + return id.gsub($REST_URL,'') + end + portal_key, config = ontology_portal_config(id) return nil unless portal_key