Working on help menu #3226

This commit is contained in:
Alexander Meindl 2018-09-12 16:04:39 +02:00
parent f72e624a72
commit 0a7dd8f580
34 changed files with 408 additions and 324 deletions

View File

@ -1,7 +1,7 @@
Changelog
=========
2.0.14
2.0.14 - not tagged
++++++
- Change status is now compatible with redmine_agile
@ -10,6 +10,7 @@ Changelog
- compatibility with plugin redmine_sudo and redmine_base_deface
- FontAwesome wiki macro has been added (called fa)
- Redmine.org issue and wiki page macro has been added
- Show macro list to all logged users at /help/macros
2.0.13
++++++

View File

@ -0,0 +1,7 @@
class MacrosController < ApplicationController
before_action :require_login
def show
@available_macros = Redmine::WikiFormatting::Macros.available_macros.sort
end
end

View File

@ -0,0 +1,46 @@
module AdditionalsFontawesomeHelper
def fontawesome_info_url
s = []
s << l(:label_set_icon_from)
s << link_to('https://fontawesome.com/icons?m=free', 'https://fontawesome.com/icons?m=free', class: 'external')
safe_join(s, ' ')
end
# name = TYPE-FA_NAME, eg. fas_car
# fas_cloud-upload-alt
# far_id-card
# fab_font-awesome
# options = class
# pre_text
# post_text
# title
def font_awesome_icon(name, options = {})
info = AdditionalsFontAwesome.value_info(name)
return '' if info.blank?
post_text = ''
options['aria-hidden'] = 'true'
options[:class] = if options[:class].present?
info[:classes] + ' ' + options[:class]
else
info[:classes]
end
s = []
if options[:pre_text].present?
s << options[:pre_text]
s << ' '
options.delete(:pre_text)
end
if options[:post_text].present?
post_text = options[:post_text]
options.delete(:post_text)
end
s << content_tag('span', '', options)
if post_text.present?
s << ' '
s << post_text
end
safe_join(s)
end
end

View File

@ -0,0 +1,95 @@
module AdditionalsMenuHelper
def handle_top_menu_item(menu_name, item)
Redmine::MenuManager.map(:top_menu).delete(menu_name.to_sym) if Redmine::MenuManager.map(:top_menu).exists?(menu_name.to_sym)
html_options = {}
html_options[:class] = 'external' if item[:url].include? '://'
html_options[:title] = item[:title] if item[:title].present?
menu_options = { parent: item[:parent].present? ? item[:parent].to_sym : nil,
html: html_options }
menu_options[:if] = menu_options[:if] if menu_options[:if].present?
menu_options[:caption] = if item[:symbol].present? && item[:name].present?
font_awesome_icon(item[:symbol], post_text: item[:name])
elsif item[:symbol].present?
font_awesome_icon(item[:symbol])
elsif item[:name].present?
item[:name].to_s
end
if item[:last].present? && item[:last]
menu_options[:last] = true
elsif item[:before].present?
menu_options[:before] = item[:before]
elsif item[:after].present?
menu_options[:after] = item[:after]
else
menu_options[:before] = :help
end
Redmine::MenuManager.map(:top_menu).push(menu_name, item[:url], menu_options)
end
def additionals_custom_top_menu_item(num, user_roles)
menu_name = 'custom_menu' + num.to_s
item = {
url: Additionals.settings[menu_name + '_url'],
name: Additionals.settings[menu_name + '_name'],
title: Additionals.settings[menu_name + '_title'],
roles: Additionals.settings[menu_name + '_roles']
}
if item[:name].blank? || item[:url].blank? || item[:roles].nil?
Redmine::MenuManager.map(:top_menu).delete(menu_name.to_sym) if Redmine::MenuManager.map(:top_menu).exists?(menu_name.to_sym)
return
end
show_entry = false
item[:roles].each do |role|
if user_roles.empty? && role.to_i == Role::BUILTIN_ANONYMOUS
show_entry = true
break
elsif User.current.logged? && role.to_i == Role::BUILTIN_NON_MEMBER
# if user is logged in and non_member is active in item,
# always show it
show_entry = true
break
end
user_roles.each do |user_role|
if role.to_i == user_role.id.to_i
show_entry = true
break
end
end
break if show_entry == true
end
if show_entry
handle_top_menu_item(menu_name, item)
elsif Redmine::MenuManager.map(:top_menu).exists?(menu_name.to_sym)
Redmine::MenuManager.map(:top_menu).delete(menu_name.to_sym)
end
end
def additionals_help_menu_items
pages = [{ title: 'Redmine Guide', url: Redmine::Info.help_url },
{ title: 'FontAwesome Icons', url: 'https://fontawesome.com/icons?d=gallery&m=free' },
{ title: 'Additionals manual', url: 'https://additionals.readthedocs.io/en/latest/manual/' }]
if User.current.admin?
pages << { title: 'Redmine Changelog', url: 'https://www.redmine.org/projects/redmine/wiki/Changelog_3_4' }
pages << { title: 'Redmine Upgrade', url: 'https://www.redmine.org/projects/redmine/wiki/RedmineUpgrade' }
pages << { title: 'Redmine Security Advisories', url: 'https://www.redmine.org/projects/redmine/wiki/Security_Advisories' }
end
s = []
pages.each_with_index do |p, idx|
html_options = { class: 'help_item_' + idx.to_s }
s << content_tag(:li,
link_to(p[:title], p[:url], html_options))
end
safe_join(s)
end
end

View File

@ -2,3 +2,8 @@
- if footer.present?
.additionals-footer
= textilizable(footer)
- if @additionals_help_items.present?
javascript:
$(function() {
$('a.help').parent().append("<ul class=\"menu-children\">#{escape_javascript(@additionals_help_items)}</ul>");
});

View File

@ -1,4 +0,0 @@
.info = t(:label_top_macros_help_html)
br
.box
= textilizable('{{macro_list}}').html_safe

View File

@ -0,0 +1,11 @@
h2 = l(:label_settings_macros) + " (#{@available_macros.count})"
.info = t(:label_top_macros_help_html)
br
.box
- @available_macros.each do |macro, options|
.macro-box
.macro-title
= macro.to_s
.macro-desc
pre = options[:desc]

View File

@ -244,3 +244,48 @@ a.external.redmine-link {
background-position: 0% 40%;
padding-left: 13px;
}
div.macro-box {
margin-bottom: 15px;
}
div.macro-title {
font-weight: bold;
}
div.macro-desc {
}
#top-menu li:hover ul.menu-children,
#top-menu li ul.menu-children.visible { display: block; }
#top-menu .menu-children {
display: none;
position: absolute;
width: inherit;
z-index: 45;
background-color: #fff;
box-shadow: 2px 2px 14px #000;
top: 17px;
font-size: 110%;
}
#top-menu .menu-children li {
float: left;
clear: both;
width: 100%;
}
#top-menu .menu-children li a {
display: block;
color: #555;
padding: 5px 10px;
background-color: #fff;
font-weight: normal;
margin-right: 0;
}
#top-menu .menu-children li a:hover {
color: #fff;
background-color: #759fcf;
}

View File

@ -7,3 +7,7 @@ resources :issues, only: [] do
resource 'assign_to_me', only: %i[update], controller: 'additionals_assign_to_me'
resource 'change_status', only: %i[update], controller: 'additionals_change_status'
end
scope '/help' do
resource :macros, only: :show
end

View File

@ -48,7 +48,6 @@ module Additionals
tabs << { name: 'menu', partial: 'additionals/settings/menu', label: :label_settings_menu }
end
tabs << { name: 'web', partial: 'additionals/settings/web_apis', label: :label_web_apis }
tabs << { name: 'macros', partial: 'additionals/settings/macros', label: :label_settings_macros }
tabs
end
@ -195,70 +194,6 @@ module Additionals
view_roles
end
def additionals_custom_top_menu_item(num, user_roles)
menu_name = 'custom_menu' + num.to_s
item = {
url: Additionals.settings[menu_name + '_url'],
name: Additionals.settings[menu_name + '_name'],
title: Additionals.settings[menu_name + '_title'],
roles: Additionals.settings[menu_name + '_roles']
}
if item[:name].blank? || item[:url].blank? || item[:roles].nil?
Redmine::MenuManager.map(:top_menu).delete(menu_name.to_sym) if Redmine::MenuManager.map(:top_menu).exists?(menu_name.to_sym)
return
end
show_entry = false
item[:roles].each do |role|
if user_roles.empty? && role.to_i == Role::BUILTIN_ANONYMOUS
show_entry = true
break
elsif User.current.logged? && role.to_i == Role::BUILTIN_NON_MEMBER
# if user is logged in and non_member is active in item,
# always show it
show_entry = true
break
end
user_roles.each do |user_role|
if role.to_i == user_role.id.to_i
show_entry = true
break
end
end
break if show_entry == true
end
if show_entry
handle_top_menu_item(menu_name, item)
elsif Redmine::MenuManager.map(:top_menu).exists?(menu_name.to_sym)
Redmine::MenuManager.map(:top_menu).delete(menu_name.to_sym)
end
end
def handle_top_menu_item(menu_name, item)
Redmine::MenuManager.map(:top_menu).delete(menu_name.to_sym) if Redmine::MenuManager.map(:top_menu).exists?(menu_name.to_sym)
html_options = {}
html_options[:class] = 'external' if item[:url].include? '://'
html_options[:title] = item[:title] if item[:title].present?
title = if item[:symbol].present? && item[:name].present?
font_awesome_icon(item[:symbol], post_text: item[:name])
elsif item[:symbol].present?
font_awesome_icon(item[:symbol])
else
item[:name].to_s
end
Redmine::MenuManager.map(:top_menu).push menu_name,
item[:url],
parent: item[:parent].present? ? item[:parent].to_sym : nil,
caption: title,
html: html_options,
before: :help
end
def bootstrap_datepicker_locale
s = ''
locale = User.current.language.presence || ::I18n.locale
@ -375,51 +310,6 @@ module Additionals
safe_join(s)
end
def fontawesome_info_url
s = []
s << l(:label_set_icon_from)
s << link_to('https://fontawesome.com/icons?m=free', 'https://fontawesome.com/icons?m=free', class: 'external')
safe_join(s, ' ')
end
# name = TYPE-FA_NAME, eg. fas_car
# fas_cloud-upload-alt
# far_id-card
# fab_font-awesome
# options = class
# pre_text
# post_text
# title
def font_awesome_icon(name, options = {})
info = AdditionalsFontAwesome.value_info(name)
return '' if info.blank?
post_text = ''
options['aria-hidden'] = 'true'
options[:class] = if options[:class].present?
info[:classes] + ' ' + options[:class]
else
info[:classes]
end
s = []
if options[:pre_text].present?
s << options[:pre_text]
s << ' '
options.delete(:pre_text)
end
if options[:post_text].present?
post_text = options[:post_text]
options.delete(:post_text)
end
s << content_tag('span', '', options)
if post_text.present?
s << ' '
s << post_text
end
safe_join(s)
end
def options_for_menu_select(active)
options_for_select({ l(:button_hide) => '',
l(:label_top_menu) => 'top',

View File

@ -6,6 +6,14 @@ module Additionals
base.class_eval do
alias_method :user_setup_without_additionals, :user_setup
alias_method :user_setup, :user_setup_with_additionals
helper :additionals_menu
helper :additionals_fontawesome
include AdditionalsMenuHelper
include AdditionalsFontawesomeHelper
include ActionView::Helpers::TagHelper
include ActionView::Helpers::UrlHelper
end
end
@ -14,41 +22,17 @@ module Additionals
user_setup_without_additionals
return unless User.current.try(:hrm_user_type_id).nil?
additionals_menu_item_delete(:help)
unless Additionals.setting?(:remove_help)
custom_url = Additionals.settings[:custom_help_url]
if custom_url.present?
additionals_menu_item_add(:help, custom_url)
else
additionals_menu_item_add(:help)
end
end
if Additionals.setting?(:remove_mypage)
additionals_menu_item_delete(:my_page)
Redmine::MenuManager.map(:top_menu).delete(:my_page) if Redmine::MenuManager.map(:top_menu).exists?(:my_page)
else
additionals_menu_item_add(:my_page)
handle_top_menu_item(:my_page, url: my_path, after: :home, if: proc { User.current.logged? })
end
end
def additionals_menu_item_delete(item)
Redmine::MenuManager.map(:top_menu).delete(item) if Redmine::MenuManager.map(:top_menu).exists?(item)
end
def additionals_menu_item_add(item, custom_url = nil)
return if Redmine::MenuManager.map(:top_menu).exists?(item)
case item
when :help
url = custom_url.presence || Redmine::Info.help_url
Redmine::MenuManager.map(:top_menu).push :help, url, html: { class: 'external' }, last: true
when :my_page
Redmine::MenuManager.map(:top_menu).push :my_page,
{ controller: 'my', action: 'page' },
after: :home,
if: proc { User.current.logged? }
if Additionals.setting?(:remove_help)
Redmine::MenuManager.map(:top_menu).delete(:help) if Redmine::MenuManager.map(:top_menu).exists?(:help)
else
raise 'unknow top menu item'
handle_top_menu_item(:help, url: '#', symbol: 'fas_question', last: true)
@additionals_help_items = additionals_help_menu_items
end
end
end

View File

@ -3,15 +3,15 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Display calendar (only works on wiki pages)
Display calendar (only works on wiki pages)
Examples:
Examples:
{{calendar}} show calendar for current date
{{calendar(year=2014,month=6)}} show calendar for Juni in year 2014
{{calendar(show_weeks=true)}} show calendar with week numbers
{{calendar(select=2015-07-12 2015-07-31, show_weeks=true)}} preselect dates and show week numbers
{{calendar(select=2016-03-13:2016-03-27)}} preselect dates between 2016/3/13 and 2016/3/27
{{calendar}} show calendar for current date
{{calendar(year=2014,month=6)}} show calendar for Juni in year 2014
{{calendar(show_weeks=true)}} show calendar with week numbers
{{calendar(select=2015-07-12 2015-07-31, show_weeks=true)}} preselect dates and show week numbers
{{calendar(select=2016-03-13:2016-03-27)}} preselect dates between 2016/3/13 and 2016/3/27
DESCRIPTION
macro :calendar do |_obj, args|

View File

@ -4,9 +4,9 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Create CryptoCompare information.
{{cryptocompare(options)}}
see https://additionals.readthedocs.io/en/latest/macros/#cryptocompare
Create CryptoCompare information.
{{cryptocompare(options)}}
see https://additionals.readthedocs.io/en/latest/macros/#cryptocompare
DESCRIPTION
macro :cryptocompare do |_obj, args|

View File

@ -3,18 +3,18 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Display current dates.
Display current dates.
Examples:
Examples:
{{current_year}} current year
{{current_month}} current month
{{current_day}} current day
{{current_day}} current day
{{current_hour}} current hour
{{current_minute}} current minute
{{current_weekday}} current weekday
{{current_weeknumber}} current week number (1 - 52) The week starts with Monday
{{current_year}} current year
{{current_month}} current month
{{current_day}} current day
{{current_day}} current day
{{current_hour}} current hour
{{current_minute}} current minute
{{current_weekday}} current weekday
{{current_weeknumber}} current week number (1 - 52) The week starts with Monday
DESCRIPTION
macro :current_year do |_obj, _args|

View File

@ -3,34 +3,34 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Show Font Awesome icon.
Show Font Awesome icon.
Syntax:
Syntax:
{{fa(ICON [, class=CLASS, title=TITLE, text=TEXT size=SIZE, color=COLOR)}}
ICON of fontawesome icon, eg. fa-adjust
CLASS = additional css classes
TITLE = mouseover title
TEXT = Text to show
LINK = Link icon and text (if specified) to this URL
COLOR = css color code
{{fa(ICON [, class=CLASS, title=TITLE, text=TEXT size=SIZE, color=COLOR)}}
ICON of fontawesome icon, eg. fa-adjust
CLASS = additional css classes
TITLE = mouseover title
TEXT = Text to show
LINK = Link icon and text (if specified) to this URL
COLOR = css color code
Examples:
Examples:
{{fa(adjust)}}
...show fontawesome icon "fas fa-adjust"
{{fa(adjust, class=fa-inverse)}}
...show fontawesome icon "fas fa-stack" and inverse
{{fa(adjust, size=4x)}}
...show fontawesome icon "fas fa-adjust" with size 4x
{{fa(fas_adjust, title=Show icon)}}
...show fontawesome icon "fas fa-adjust" with title "Show icon"
{{fa(fab_angellist)}}
...Show fontawesome icon "fab fa-angellist"
{{fa(adjust, link=https=//www.redmine.org))}}
...Show fontawesome icon "fas fa-adjust" and link it to https://www.redmine.org
{{fa(adjust, link=https=//www.redmine.de, name=Go to Redmine.org))}}
...Show fontawesome icon "fas fa-adjust" with name "Go to Redmine.org" and link it to https://www.redmine.org
{{fa(adjust)}}
...show fontawesome icon "fas fa-adjust"
{{fa(adjust, class=fa-inverse)}}
...show fontawesome icon "fas fa-stack" and inverse
{{fa(adjust, size=4x)}}
...show fontawesome icon "fas fa-adjust" with size 4x
{{fa(fas_adjust, title=Show icon)}}
...show fontawesome icon "fas fa-adjust" with title "Show icon"
{{fa(fab_angellist)}}
...Show fontawesome icon "fab fa-angellist"
{{fa(adjust, link=https=//www.redmine.org))}}
...Show fontawesome icon "fas fa-adjust" and link it to https://www.redmine.org
{{fa(adjust, link=https=//www.redmine.de, name=Go to Redmine.org))}}
...Show fontawesome icon "fas fa-adjust" with name "Go to Redmine.org" and link it to https://www.redmine.org
DESCRIPTION
macro :fa do |_obj, args|

View File

@ -3,17 +3,17 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Display a google map. Examples:
Display a google map. Examples:
Syntax:
Syntax:
{{gmap([q=QUERY, mode=MODE, width=216, height=368])}}
{{gmap([q=QUERY, mode=MODE, width=216, height=368])}}
Examples:
Examples:
{{gmap(Munich)}} Google maps with Munich
{{gmap(Munich)}} Google maps with Munich
{{gmap(mode=directions, origin=Munich+Rosenheimerstr, destination=Arco)}} Direction from Munich to Arco
{{gmap(mode=directions, origin=Munich+Rosenheimerstr, destination=Arco)}} Direction from Munich to Arco
DESCRIPTION
macro :gmap do |_obj, args|

View File

@ -3,16 +3,16 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Display users of group.
Display users of group.
Syntax:
Syntax:
{{group_users(GROUP_NAME}}
{{group_users(GROUP_NAME}}
Examples:
Examples:
{{group_users(Team)}}
...List all users in user group "Team" (with the current user permission)
{{group_users(Team)}}
...List all users in user group "Team" (with the current user permission)
DESCRIPTION
macro :group_users do |_obj, args|

View File

@ -3,19 +3,19 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Include iframe
Include iframe
Syntax:
Syntax:
{{iframe(<url> [, width=100%, height=485)}}
{{iframe(<url> [, width=100%, height=485)}}
Examples:
Examples:
show iframe of URL https://www.google.com/
{{iframe(https://www.google.com/)}}
show iframe of URL https://www.google.com/
{{iframe(https://www.google.com/)}}
show iframe of URL https://www.google.com/ and show link to it
{{iframe(https://www.google.com/, with_link: true)}}
show iframe of URL https://www.google.com/ and show link to it
{{iframe(https://www.google.com/, with_link: true)}}
DESCRIPTION
macro :iframe do |_obj, args|

View File

@ -3,34 +3,34 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Create a link to issue with the subject of this issue.
Create a link to issue with the subject of this issue.
Syntax:
Syntax:
{{issue(URL [, format=USER_FORMAT, id=ID, note_id=NOTE_ID)}}
URL is URL to issue
USER_FORMATS
- text
- short
- link (default)
- full
ID is issue
NOTE_ID is note id, if you want to display it
{{issue(URL [, format=USER_FORMAT, id=ID, note_id=NOTE_ID)}}
URL is URL to issue
USER_FORMATS
- text
- short
- link (default)
- full
ID is issue
NOTE_ID is note id, if you want to display it
Examples:
Examples:
{{issue(1)}}
...Link to issue with id and subject
{{issue(http://myredmine.url/issues/1)}}
...Link to issue with id and subject
{{issue(http://myredmine.url/issues/1#note-3)}}
...Link to issue with id and subject and display comment 3
{{issue(1, format=short)}}
...Link to issue with subject (without id)
{{issue(1, format=text)}}
...Display subject name
{{issue(1, format=full)}}
...Link to issue with track, issue id and subject
{{issue(1)}}
...Link to issue with id and subject
{{issue(http://myredmine.url/issues/1)}}
...Link to issue with id and subject
{{issue(http://myredmine.url/issues/1#note-3)}}
...Link to issue with id and subject and display comment 3
{{issue(1, format=short)}}
...Link to issue with subject (without id)
{{issue(1, format=text)}}
...Display subject name
{{issue(1, format=full)}}
...Link to issue with track, issue id and subject
DESCRIPTION
macro :issue do |_obj, args|

View File

@ -3,10 +3,10 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Displays a date that updated the page.
{{last_updated_at}}
{{last_updated_at(project_name, wiki_page)}}
{{last_updated_at(project_identifier, wiki_page)}}
Displays a date that updated the page.
{{last_updated_at}}
{{last_updated_at(project_name, wiki_page)}}
{{last_updated_at(project_identifier, wiki_page)}}
DESCRIPTION
macro :last_updated_at do |obj, args|

View File

@ -3,8 +3,8 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Displays a user who updated the page.
{{last_updated_by}}
Displays a user who updated the page.
{{last_updated_by}}
DESCRIPTION
macro :last_updated_by do |obj, args|

View File

@ -3,29 +3,29 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Display members.
Display members.
Syntax:
Syntax:
{{members([PROJECT_NAME, title=My members list, role=ROLE)]}}
{{members([PROJECT_NAME, title=My members list, role=ROLE)]}}
PROJECT_NAME can be project identifier, project name or project id
PROJECT_NAME can be project identifier, project name or project id
Examples:
Examples:
{{members}}
...List all members for all projects (with the current user permission)
{{members}}
...List all members for all projects (with the current user permission)
{{members(the-identifier)}}
...A box showing all members for the project with the identifier of 'the-identifier'
{{members(the-identifier)}}
...A box showing all members for the project with the identifier of 'the-identifier'
{{members(the-identifier, role=Manager)}}
...A box showing all members for the project with the identifier of 'the-identifier', which
have the role "Manager"
{{members(the-identifier, role=Manager)}}
...A box showing all members for the project with the identifier of 'the-identifier', which
have the role "Manager"
{{members(the-identifier, title=My user list)}}
...A box showing all members for the project with the identifier of 'the-identifier' and with
box title "My user list"
{{members(the-identifier, title=My user list)}}
...A box showing all members for the project with the identifier of 'the-identifier' and with
box title "My user list"
DESCRIPTION
macro :members do |_obj, args|

View File

@ -3,17 +3,17 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Display current weather from meteoblue service. Examples:
Display current weather from meteoblue service. Examples:
Syntax:
Syntax:
{{meteoblue(<location> [, days=INT, width=216, height=368, color=BOOL])}}
{{meteoblue(<location> [, days=INT, width=216, height=368, color=BOOL])}}
Examples:
Examples:
{{meteoblue(münchen_deutschland_2867714)}} weather for Munich
{{meteoblue(münchen_deutschland_2867714)}} weather for Munich
{{meteoblue(münchen_deutschland_2867714, days=6, color=false)}} weather for Munich of the next 6 days without color
{{meteoblue(münchen_deutschland_2867714, days=6, color=false)}} weather for Munich of the next 6 days without color
DESCRIPTION
macro :meteoblue do |_obj, args|

View File

@ -3,26 +3,26 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Create a link for "New issue" for the current user.
Create a link for "New issue" for the current user.
Syntax:
Syntax:
{{new_issue([PROJECT_NAME, name=Custom name]}}
{{new_issue([PROJECT_NAME, name=Custom name]}}
PROJECT_NAME can be project identifier, project name or project id.
PROJECT_NAME can be project identifier, project name or project id.
If no PROJECT_NAME is specified, first project is used, which the current user
has permission to create an issue.
If no PROJECT_NAME is specified, first project is used, which the current user
has permission to create an issue.
Examples:
Examples:
{{new_issue}}
...Link to create new issue in first available project
{{new_issue(the-identifier)}}
...Link to create new issue in project with the identifier of 'the-identifier'
{{new_issue(the-identifier, title=New issue for broken displays)}}
...Link to create new issue in project with the identifier of 'the-identifier'
and the name 'New issue for broken displays'
{{new_issue}}
...Link to create new issue in first available project
{{new_issue(the-identifier)}}
...Link to create new issue in project with the identifier of 'the-identifier'
{{new_issue(the-identifier, title=New issue for broken displays)}}
...Link to create new issue in project with the identifier of 'the-identifier'
and the name 'New issue for broken displays'
DESCRIPTION
macro :new_issue do |_obj, args|

View File

@ -3,22 +3,22 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Display projects.
Display projects.
Syntax:
Syntax:
{{projects([title=My project list, with_create_issue=BOOL])}}
{{projects([title=My project list, with_create_issue=BOOL])}}
Examples:
Examples:
{{projects}}
...List all project, which I am member of
{{projects}}
...List all project, which I am member of
{{projects(title=My project list)}}
...List all project with title "My project list", which I am member of
{{projects(title=My project list)}}
...List all project with title "My project list", which I am member of
{{projects(with_create_issue=true)}}
...List all project with link to create new issue, which I am member of
{{projects(with_create_issue=true)}}
...List all project with link to create new issue, which I am member of
DESCRIPTION
macro :projects do |_obj, args|

View File

@ -3,17 +3,17 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Displays a list of pages that were updated recently.
{{recently_updated}}
{{recently_updated([days])}}
Displays a list of pages that were updated recently.
{{recently_updated}}
{{recently_updated([days])}}
Examples:
Examples:
{{recently_updated}}
...List last updated pages (of the last 5 days)
{{recently_updated}}
...List last updated pages (of the last 5 days)
{{recently_updated(15)}}
...List last updated pages of the last 15 days
{{recently_updated(15)}}
...List last updated pages of the last 15 days
DESCRIPTION
macro :recently_updated do |obj, args|

View File

@ -3,8 +3,8 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Creates link to reddit.
{{reddit(name)}}
Creates link to reddit.
{{reddit(name)}}
DESCRIPTION
macro :reddit do |_obj, args|

View File

@ -3,8 +3,8 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Creates link to redmine.org issue.
{{redmine_issue(1448)}}
Creates link to redmine.org issue.
{{redmine_issue(1448)}}
DESCRIPTION
macro :redmine_issue do |_obj, args|

View File

@ -3,8 +3,8 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Creates link to redmine.org wiki page.
{{redmine_wiki(Installing Redmine)}}
Creates link to redmine.org wiki page.
{{redmine_wiki(Installing Redmine)}}
DESCRIPTION
macro :redmine_wiki do |_obj, args|

View File

@ -3,17 +3,17 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Slideshare macro to include Slideshare slide.
Slideshare macro to include Slideshare slide.
Syntax:
Syntax:
{{slideshare(<key> [, width=595, height=485, slide=SLIDE])}}
{{slideshare(<key> [, width=595, height=485, slide=SLIDE])}}
Examples:
Examples:
{{slideshare(57941706)}} show slideshare slide with default size 595x485
{{slideshare(57941706, width=514, height=422)}} show slide with user defined size
{{slideshare(57941706, slide=5)}} start with slide (page) 5
{{slideshare(57941706)}} show slideshare slide with default size 595x485
{{slideshare(57941706, width=514, height=422)}} show slide with user defined size
{{slideshare(57941706, slide=5)}} start with slide (page) 5
DESCRIPTION
macro :slideshare do |_obj, args|

View File

@ -4,9 +4,9 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Creates Tradingview chart
{{tradingview(options)}}
see https://additionals.readthedocs.io/en/latest/macros/#tradingview
Creates Tradingview chart
{{tradingview(options)}}
see https://additionals.readthedocs.io/en/latest/macros/#tradingview
DESCRIPTION
macro :tradingview do |_obj, args|

View File

@ -3,8 +3,8 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Creates link to twitter account page or topic.
{{twitter(name)}}
Creates link to twitter account page or topic.
{{twitter(name)}}
DESCRIPTION
macro :twitter do |_obj, args|

View File

@ -3,17 +3,17 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Vimeo macro to include vimeo video.
Vimeo macro to include vimeo video.
Syntax:
Syntax:
{{vimeo(<video key> [, width=640, height=360, autoplay=BOOL])}}
{{vimeo(<video key> [, width=640, height=360, autoplay=BOOL])}}
Examples:
Examples:
{{vimeo(142849533)}} show video with default size 640x360
{{vimeo(142849533, width=853, height=480)}} show video with user defined size
{{vimeo(142849533, autoplay=true)}} autoplay video
{{vimeo(142849533)}} show video with default size 640x360
{{vimeo(142849533, width=853, height=480)}} show video with user defined size
{{vimeo(142849533, autoplay=true)}} autoplay video
DESCRIPTION
macro :vimeo do |_obj, args|

View File

@ -3,17 +3,17 @@ module Additionals
module WikiMacros
Redmine::WikiFormatting::Macros.register do
desc <<-DESCRIPTION
Youtube macro to include youtube video.
Youtube macro to include youtube video.
Syntax:
Syntax:
{{youtube(<video key> [, width=640, height=360, autoplay=BOOL])}}
{{youtube(<video key> [, width=640, height=360, autoplay=BOOL])}}
Examples:
Examples:
{{youtube(KMU0tzLwhbE)}} show video with default size 640x360
{{youtube(KMU0tzLwhbE, width=853, height=480)}} show video with user defined size
{{youtube(KMU0tzLwhbE, autoplay=true)}} autoplay video
{{youtube(KMU0tzLwhbE)}} show video with default size 640x360
{{youtube(KMU0tzLwhbE, width=853, height=480)}} show video with user defined size
{{youtube(KMU0tzLwhbE, autoplay=true)}} autoplay video
DESCRIPTION
macro :youtube do |_obj, args|