mirror of
https://github.com/opf/openproject.git
synced 2026-06-14 03:30:14 +00:00
Factor out LinkComponent rendering link items
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
<%#-- copyright
|
||||
OpenProject is an open source project management software.
|
||||
Copyright (C) the OpenProject GmbH
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License version 3.
|
||||
|
||||
OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
|
||||
Copyright (C) 2006-2013 Jean-Philippe Lang
|
||||
Copyright (C) 2010-2013 the ChiliProject Team
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
See COPYRIGHT and LICENSE files for more details.
|
||||
|
||||
++#%>
|
||||
|
||||
<%= link_to url,
|
||||
class: "homescreen--links--item",
|
||||
target: "_blank",
|
||||
aria_label: title,
|
||||
rel: "noopener" do %>
|
||||
<%= op_icon(link[:icon]) %>
|
||||
<%= title %>
|
||||
<% end %>
|
||||
@@ -0,0 +1,58 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
#-- copyright
|
||||
# OpenProject is an open source project management software.
|
||||
# Copyright (C) the OpenProject GmbH
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License version 3.
|
||||
#
|
||||
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
|
||||
# Copyright (C) 2006-2013 Jean-Philippe Lang
|
||||
# Copyright (C) 2010-2013 the ChiliProject Team
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# See COPYRIGHT and LICENSE files for more details.
|
||||
#++
|
||||
|
||||
module Homescreen
|
||||
class LinkComponent < ApplicationComponent
|
||||
include HomescreenHelper
|
||||
include IconsHelper
|
||||
|
||||
attr_reader :link
|
||||
|
||||
def initialize(link:)
|
||||
super
|
||||
|
||||
@link = link
|
||||
end
|
||||
|
||||
def render?
|
||||
link.present?
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def url
|
||||
link[:url] || OpenProject::Static::Links.url_for(link[:url_key])
|
||||
end
|
||||
|
||||
def title
|
||||
I18n.t(link[:label], scope: "homescreen.links")
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -28,18 +28,5 @@ See COPYRIGHT and LICENSE files for more details.
|
||||
++#%>
|
||||
|
||||
<section class="homescreen--links">
|
||||
<% links.each do |link| %>
|
||||
<% url = link[:url] || OpenProject::Static::Links.url_for(link[:url_key]) %>
|
||||
|
||||
<% if url %>
|
||||
<% title = I18n.t(link[:label], scope: "homescreen.links") %>
|
||||
<%= link_to url,
|
||||
class: "homescreen--links--item",
|
||||
target: "_blank",
|
||||
aria_label: title do %>
|
||||
<%= op_icon(link[:icon]) %>
|
||||
<%= title %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<%= render(Homescreen::LinkComponent.with_collection(links)) %>
|
||||
</section>
|
||||
|
||||
Reference in New Issue
Block a user