OpenProject is the leading open source project management software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
openproject/lib/open_project/static/links.rb

168 lines
5.7 KiB

#-- encoding: UTF-8
#-- copyright
# OpenProject is a project management system.
# Copyright (C) 2012-2018 the OpenProject Foundation (OPF)
#
# 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-2017 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 docs/COPYRIGHT.rdoc for more details.
#++
module OpenProject
module Static
module Links
class << self
def help_link_overridden?
OpenProject::Configuration.force_help_link.present?
end
def help_link
OpenProject::Configuration.force_help_link.presence || static_links[:user_guides]
end
def [](name)
links[name]
end
def links
@links ||= static_links.merge(dynamic_links)
end
def has?(name)
@links.key? name
end
private
def dynamic_links
dynamic = {
help: {
href: help_link,
label: 'top_menu.help_and_support'
}
}
if impressum_link = OpenProject::Configuration.impressum_link
dynamic[:impressum] = {
href: impressum_link,
label: :label_impressum
}
end
dynamic
end
def static_links
{
upsale: {
href: 'https://www.openproject.org/enterprise-edition',
label: 'homescreen.links.upgrade_enterprise_edition'
},
user_guides: {
href: 'https://www.openproject.org/help/',
label: 'homescreen.links.user_guides'
},
upgrade_guides: {
href: 'https://www.openproject.org/operations/upgrading/',
label: :label_upgrade_guides
},
configuration_guide: {
href: 'https://www.openproject.org/operations/configuration/',
label: 'links.configuration_guide'
},
glossary: {
href: 'https://www.openproject.org/help/glossary/',
label: 'homescreen.links.glossary'
},
shortcuts: {
href: 'https://www.openproject.org/help/keyboard-shortcuts-access-keys/',
label: 'homescreen.links.shortcuts'
},
forums: {
href: 'https://community.openproject.com/projects/openproject/forums',
label: 'homescreen.links.forums'
},
professional_support: {
href: 'https://www.openproject.org/pricing/#support',
label: :label_professional_support
},
website: {
href: 'https://www.openproject.org',
label: 'label_openproject_website'
},
newsletter: {
href: 'https://www.openproject.org/newsletter',
label: 'homescreen.links.newsletter'
},
blog: {
href: 'https://www.openproject.org/blog',
label: 'homescreen.links.blog'
},
release_notes: {
href: 'https://www.openproject.org/release-notes/',
label: :label_release_notes
},
data_privacy: {
href: 'https://www.openproject.org/data-privacy-and-security/',
label: :label_privacy_policy
},
report_bug: {
href: 'https://www.openproject.org/development/report-a-bug/',
label: :label_report_bug
},
roadmap: {
href: 'https://community.openproject.org/projects/openproject/roadmap',
label: :label_development_roadmap
},
crowdin: {
href: 'https://crowdin.com/projects/opf',
label: :label_add_edit_translations
},
api_docs: {
href: 'https://www.openproject.org/api',
label: :label_api_documentation
},
text_formatting: {
href: 'https://www.openproject.org/help/wiki/',
label: :setting_text_formatting
},
oauth_authorization_code_flow: {
href: 'https://oauth.net/2/grant-types/authorization-code/',
label: 'oauth.flows.authorization_code'
},
client_credentials_code_flow: {
href: 'https://oauth.net/2/grant-types/client-credentials/',
label: 'oauth.flows.client_credentials'
},
ldap_encryption_documentation: {
href: 'https://www.rubydoc.info/gems/net-ldap/Net/LDAP#constructor_details',
},
security_badge_documentation: {
href: 'https://github.com/opf/openproject/blob/dev/docs/configuration/configuration.md#security-badge'
}
}
end
end
end
end
end