#-- copyright # OpenProject is a project management system. # Copyright (C) 2012-2015 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-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 doc/COPYRIGHT.rdoc for more details. #++ require 'concerns/omniauth_login' require 'open_project/static/links' module Redmine::MenuManager::TopMenu::HelpMenu def render_help_top_menu_node(item = help_menu_item) if OpenProject::Static::Links.help_link_overridden? render_menu_node(item) else render_help_dropdown end end def render_help_dropdown link_to_help_pop_up = link_to '', '', class: 'icon-help1', aria: { haspopup: 'true' } result = ''.html_safe render_drop_down_menu_node(link_to_help_pop_up, class: 'drop-down hidden-for-mobile -hide-icon') do content_tag :ul, style: 'display:none', class: 'drop-down--help' do render_onboarding result render_help_and_support result render_additional_resources result end end end private def render_onboarding(result) result << content_tag(:li) do content_tag(:span, l('top_menu.getting_started'), class: 'drop-down--help-headline', title: l('top_menu.getting_started')) end result << render_onboarding_menu_item result << content_tag(:hr, '', class: 'form--separator') end def render_onboarding_menu_item controller = ApplicationController.new controller.request = request controller.render_to_string(partial: 'onboarding/menu_item') end def render_help_and_support(result) result << content_tag(:li) do content_tag :span, l('top_menu.help_and_support'), class: 'drop-down--help-headline', title: l('top_menu.help_and_support') end result << static_link_item(:user_guides) result << static_link_item(:faq) result << content_tag(:li) do link_to l('homescreen.links.shortcuts'), '', title: l('homescreen.links.shortcuts'), onClick: 'modalHelperInstance.createModal(\'/help/keyboard_shortcuts\');' end result << static_link_item(:boards) result << static_link_item(:professional_support) result << content_tag(:hr, '', class: 'form--separator') end def render_additional_resources(result) result << content_tag(:li) do content_tag :span, l('top_menu.additional_resources'), class: 'drop-down--help-headline', title: l('top_menu.additional_resources') end result << static_link_item(:blog) result << static_link_item(:release_notes) result << static_link_item(:report_bug) result << static_link_item(:roadmap) result << static_link_item(:crowdin) result << static_link_item(:api_docs) end def static_link_item(key) link = OpenProject::Static::Links.links[key] label = I18n.t(link[:label]) content_tag(:li) do link_to label, link[:href], title: label end end end