Fix problem with & in project name
This commit is contained in:
@@ -12,6 +12,7 @@ Changelog
|
||||
- Show attachments for new issues
|
||||
- Show indicator for private comment on issue
|
||||
- Ruby 2.4 or higher is required
|
||||
- Fix project name with &
|
||||
|
||||
1.0.5
|
||||
-----
|
||||
|
||||
@@ -15,6 +15,7 @@ class Messenger
|
||||
text = +text.to_s
|
||||
|
||||
# @see https://api.slack.com/reference/surfaces/formatting#escaping
|
||||
|
||||
text.gsub!('&', '&')
|
||||
text.gsub!('<', '<')
|
||||
text.gsub!('>', '>')
|
||||
@@ -28,14 +29,11 @@ class Messenger
|
||||
|
||||
def speak(msg, channels, url, options)
|
||||
url ||= RedmineMessenger.settings[:messenger_url]
|
||||
return if url.blank? || channels.blank?
|
||||
|
||||
return if url.blank?
|
||||
return if channels.blank?
|
||||
params = { text: msg, link_names: 1 }
|
||||
|
||||
params = {
|
||||
text: msg,
|
||||
link_names: 1
|
||||
}
|
||||
Rails.logger.debug "debug speak: #{params.inspect}"
|
||||
|
||||
username = textfield_for_project(options[:project], :messenger_username)
|
||||
params[:username] = username if username.present?
|
||||
@@ -95,6 +93,14 @@ class Messenger
|
||||
nil
|
||||
end
|
||||
|
||||
def project_url_markdown(project)
|
||||
"[#{project.name}](#{object_url project})"
|
||||
end
|
||||
|
||||
def url_markdown(obj, name)
|
||||
"[#{name}](#{object_url obj})"
|
||||
end
|
||||
|
||||
def textfield_for_project(proj, config)
|
||||
return if proj.blank?
|
||||
|
||||
|
||||
@@ -2,23 +2,23 @@
|
||||
de:
|
||||
default_mentionsl_info: Benutzer, die immer mit Mentions benachrichtet werden sollen. Mehrere Namen können mit Komma getrennt angegeben werden (z.B. @all, @here).
|
||||
error_messenger_invalid_url: "ist keine gültige URL"
|
||||
label_messenger_contact_created: "[%{project_url}] Kontakt %{url} erstellt von *%{user}*"
|
||||
label_messenger_contact_updated: "[%{project_url}] Kontakt %{url} aktualisiert von *%{user}*"
|
||||
label_messenger_db_entry_created: "[%{project_url}] DB Eintrag %{url} erstellt von *%{user}*"
|
||||
label_messenger_db_entry_updated: "[%{project_url}] DB Eintrag %{url} aktualisiert von *%{user}*"
|
||||
label_messenger_contact_created: "%{project_url} - Kontakt %{url} erstellt von *%{user}*"
|
||||
label_messenger_contact_updated: "%{project_url} - Kontakt %{url} aktualisiert von *%{user}*"
|
||||
label_messenger_db_entry_created: "%{project_url} - DB Eintrag %{url} erstellt von *%{user}*"
|
||||
label_messenger_db_entry_updated: "%{project_url} - DB Eintrag %{url} aktualisiert von *%{user}*"
|
||||
label_messenger_default_not_visible: Standardeinstellung wird aus Sicherheitsgründen nicht angezeigt
|
||||
label_messenger_issue_created: "[%{project_url}] Ticket %{url} erstellt von *%{user}*"
|
||||
label_messenger_issue_updated: "[%{project_url}] Ticket %{url} aktualisiert von *%{user}*"
|
||||
label_messenger_issue_created: "%{project_url} - Ticket %{url} erstellt von *%{user}*"
|
||||
label_messenger_issue_updated: "%{project_url} - Ticket %{url} aktualisiert von *%{user}*"
|
||||
label_messenger_outgoing_webhook: Ausgehender Webhook
|
||||
label_messenger_password_created: "[%{project_url}] Kennwort %{url} erstellt von *%{user}*"
|
||||
label_messenger_password_updated: "[%{project_url}] Kennwort %{url} aktualisiert von *%{user}*"
|
||||
label_messenger_password_created: "%{project_url} - Kennwort %{url} erstellt von *%{user}*"
|
||||
label_messenger_password_updated: "%{project_url} - Kennwort %{url} aktualisiert von *%{user}*"
|
||||
label_messenger_project_text_field_info: Leer lassen für Systemstandard.
|
||||
label_messenger_setting: Messenger Einstellung
|
||||
label_messenger_settings_default: Standardeinstellung
|
||||
label_messenger_settings_disabled: Deaktiviert
|
||||
label_messenger_settings_enabled: Aktiviert
|
||||
label_messenger_wiki_created: "[%{project_url}] Wiki %{url} erstellt von *%{user}*"
|
||||
label_messenger_wiki_updated: "[%{project_url}] Wiki %{url} aktualisiert von *%{user}*"
|
||||
label_messenger_wiki_created: "%{project_url} - Wiki %{url} erstellt von *%{user}*"
|
||||
label_messenger_wiki_updated: "%{project_url} - Wiki %{url} aktualisiert von *%{user}*"
|
||||
label_messenger: Messenger
|
||||
label_settings_auto_mentions: Namen für Mentions konvertiert?
|
||||
label_settings_default_mentions: Standardbenutzer für Mentions
|
||||
|
||||
@@ -2,23 +2,23 @@
|
||||
en:
|
||||
default_mentionsl_info: Default people to notify, comma separated (e.g. @all, @here)
|
||||
error_messenger_invalid_url: is not a valid URL
|
||||
label_messenger_contact_created: "[%{project_url}] Contact %{url} created by *%{user}*"
|
||||
label_messenger_contact_updated: "[%{project_url}] Contact %{url} updated by *%{user}*"
|
||||
label_messenger_db_entry_created: "[%{project_url}] DB entry %{url} created by *%{user}*"
|
||||
label_messenger_db_entry_updated: "[%{project_url}] DB entry %{url} updated by *%{user}*"
|
||||
label_messenger_contact_created: "%{project_url} - Contact %{url} created by *%{user}*"
|
||||
label_messenger_contact_updated: "%{project_url} - Contact %{url} updated by *%{user}*"
|
||||
label_messenger_db_entry_created: "%{project_url} - DB entry %{url} created by *%{user}*"
|
||||
label_messenger_db_entry_updated: "%{project_url} - DB entry %{url} updated by *%{user}*"
|
||||
label_messenger_default_not_visible: Default setting is not visible for security reasons
|
||||
label_messenger_issue_created: "[%{project_url}] Issue %{url} created by *%{user}*"
|
||||
label_messenger_issue_updated: "[%{project_url}] Issue %{url} updated by *%{user}*"
|
||||
label_messenger_issue_created: "%{project_url} - Issue %{url} created by *%{user}*"
|
||||
label_messenger_issue_updated: "%{project_url} - Issue %{url} updated by *%{user}*"
|
||||
label_messenger_outgoing_webhook: Outgoing Webhook
|
||||
label_messenger_password_created: "[%{project_url}] Kennwort %{url} created by *%{user}*"
|
||||
label_messenger_password_updated: "[%{project_url}] Kennwort %{url} updated by *%{user}*"
|
||||
label_messenger_password_created: "%{project_url} - Password %{url} created by *%{user}*"
|
||||
label_messenger_password_updated: "%{project_url} - Password %{url} updated by *%{user}*"
|
||||
label_messenger_project_text_field_info: Leave it blank for system default.
|
||||
label_messenger_setting: Messenger Settings
|
||||
label_messenger_settings_default: System default
|
||||
label_messenger_settings_disabled: Disabled
|
||||
label_messenger_settings_enabled: Enabled
|
||||
label_messenger_wiki_created: "[%{project_url}] Wiki %{url} created by *%{user}*"
|
||||
label_messenger_wiki_updated: "[%{project_url}] Wiki %{url} updated by *%{user}*"
|
||||
label_messenger_wiki_created: "%{project_url} - Wiki %{url} created by *%{user}*"
|
||||
label_messenger_wiki_updated: "%{project_url} - Wiki %{url} updated by *%{user}*"
|
||||
label_messenger: Messenger
|
||||
label_settings_auto_mentions: Convert names to mentions?
|
||||
label_settings_default_mentions: Default people for mentions
|
||||
|
||||
@@ -2,23 +2,23 @@
|
||||
fr:
|
||||
default_mentionsl_info: Personnes à notifier par défaut, séparées par des virgules (@all, @here)
|
||||
error_messenger_invalid_url: n'est pas une URL valide
|
||||
label_messenger_contact_created: "[%{project_url}] Le contact %{url} créé par *%{user}*"
|
||||
label_messenger_contact_updated: "[%{project_url}] Le contact %{url} mis à jour par *%{user}*"
|
||||
label_messenger_db_entry_created: "[%{project_url}] Entrée de base de données %{url} créée par *%{user}*"
|
||||
label_messenger_db_entry_updated: "[%{project_url}] Entrée de base de données %{url} mis à jour par *%{user}*"
|
||||
label_messenger_contact_created: "%{project_url} - Le contact %{url} créé par *%{user}*"
|
||||
label_messenger_contact_updated: "%{project_url} - Le contact %{url} mis à jour par *%{user}*"
|
||||
label_messenger_db_entry_created: "%{project_url} - Entrée de base de données %{url} créée par *%{user}*"
|
||||
label_messenger_db_entry_updated: "%{project_url} - Entrée de base de données %{url} mis à jour par *%{user}*"
|
||||
label_messenger_default_not_visible: Le paramètre par défaut n'est pas visible pour des raisons de sécurité
|
||||
label_messenger_issue_created: "[%{project_url}] Ticket %{url} créé par *%{user}*"
|
||||
label_messenger_issue_updated: "[%{project_url}] Ticket %{url} mis à jour par *%{user}*"
|
||||
label_messenger_issue_created: "%{project_url} - Ticket %{url} créé par *%{user}*"
|
||||
label_messenger_issue_updated: "%{project_url} - Ticket %{url} mis à jour par *%{user}*"
|
||||
label_messenger_outgoing_webhook: Webhook sortant
|
||||
label_messenger_password_created: "[%{project_url}] Mot de passe %{url} créé par *%{user}*"
|
||||
label_messenger_password_updated: "[%{project_url}] Mot de passe %{url} mis à jour par *%{user}*"
|
||||
label_messenger_password_created: "%{project_url} - Mot de passe %{url} créé par *%{user}*"
|
||||
label_messenger_password_updated: "%{project_url} - Mot de passe %{url} mis à jour par *%{user}*"
|
||||
label_messenger_project_text_field_info: Laissez ce champ vide pour le système par défaut.
|
||||
label_messenger_setting: Paramètres de messagerie
|
||||
label_messenger_settings_default: Choix de l'option
|
||||
label_messenger_settings_disabled: Désactivé
|
||||
label_messenger_settings_enabled: Activé
|
||||
label_messenger_wiki_created: "[%{project_url}] Wiki %{url} créé par *%{user}*"
|
||||
label_messenger_wiki_updated: "[%{project_url}] Wiki %{url} mis à jour par *%{user}*"
|
||||
label_messenger_wiki_created: "%{project_url} - Wiki %{url} créé par *%{user}*"
|
||||
label_messenger_wiki_updated: "%{project_url} - Wiki %{url} mis à jour par *%{user}*"
|
||||
label_messenger: Messenger
|
||||
label_settings_auto_mentions: Convertir les noms en mentions
|
||||
label_settings_default_mentions: Personnes mentionnées par défaut
|
||||
@@ -54,4 +54,3 @@ fr:
|
||||
messenger_verify_ssl_info_html: 'Désactiver cette vérification si votre service Messenger utilise un certificat SSL non valide ou auto-signé.'
|
||||
messenger_wiki_intro: Activer les notifications a envoyer au canal Messenger pour l'ensemble des wikis.
|
||||
permission_manage_messenger: Gérer Messenger
|
||||
|
||||
|
||||
@@ -2,23 +2,23 @@
|
||||
ja:
|
||||
default_mentionsl_info: Default people to notify, comma separated (e.g. @all, @here)
|
||||
error_messenger_invalid_url: is not a valid URL
|
||||
label_messenger_contact_created: "[%{project_url}] コンタクト %{url} が *%{user}* によって作成されました。"
|
||||
label_messenger_contact_updated: "[%{project_url}] コンタクト %{url} が*%{user}* によって更新されました。"
|
||||
label_messenger_db_entry_created: "[%{project_url}] DB entry %{url} created by *%{user}*"
|
||||
label_messenger_db_entry_updated: "[%{project_url}] DB entry %{url} updated by *%{user}*"
|
||||
label_messenger_contact_created: "%{project_url} - コンタクト %{url} が *%{user}* によって作成されました。"
|
||||
label_messenger_contact_updated: "%{project_url} - コンタクト %{url} が*%{user}* によって更新されました。"
|
||||
label_messenger_db_entry_created: "%{project_url} - DB entry %{url} created by *%{user}*"
|
||||
label_messenger_db_entry_updated: "%{project_url} - DB entry %{url} updated by *%{user}*"
|
||||
label_messenger_default_not_visible: デフォルトの設定はセキュリティ上の理由により表示されません。
|
||||
label_messenger_issue_created: "[%{project_url}] チケット %{url} が *%{user}* によって作成されました。"
|
||||
label_messenger_issue_updated: "[%{project_url}] チケット %{url} が *%{user}* によって更新されました。"
|
||||
label_messenger_issue_created: "%{project_url} - チケット %{url} が *%{user}* によって作成されました。"
|
||||
label_messenger_issue_updated: "%{project_url} - チケット %{url} が *%{user}* によって更新されました。"
|
||||
label_messenger_outgoing_webhook: Outgoing Webhook
|
||||
label_messenger_password_created: "[%{project_url}] Kennwort %{url} created by *%{user}*"
|
||||
label_messenger_password_updated: "[%{project_url}] Kennwort %{url} updated by *%{user}*"
|
||||
label_messenger_password_created: "%{project_url} - Password %{url} created by *%{user}*"
|
||||
label_messenger_password_updated: "%{project_url} - Password %{url} updated by *%{user}*"
|
||||
label_messenger_project_text_field_info: デフォルトの設定を使う場合空欄にしてください。
|
||||
label_messenger_setting: メッセンジャーの設定
|
||||
label_messenger_settings_default: デフォルト
|
||||
label_messenger_settings_disabled: 無効
|
||||
label_messenger_settings_enabled: 有効
|
||||
label_messenger_wiki_created: "[%{project_url}] Wiki %{url} が by *%{user}* によって作成されました。"
|
||||
label_messenger_wiki_updated: "[%{project_url}] Wiki %{url} が *%{user}* によって更新されました。"
|
||||
label_messenger_wiki_created: "%{project_url} - Wiki %{url} が by *%{user}* によって作成されました。"
|
||||
label_messenger_wiki_updated: "%{project_url} - Wiki %{url} が *%{user}* によって更新されました。"
|
||||
label_messenger: メッセンジャー
|
||||
label_settings_auto_mentions: ユーザー名をその人についての投稿(@ユーザー名)に変換する
|
||||
label_settings_default_mentions: Default people for mentions
|
||||
|
||||
@@ -2,23 +2,23 @@
|
||||
ko:
|
||||
default_mentionsl_info: 알림을 받을 기본 사용자를 나타내며, 쉼표로 구분 (e.g. @all, @here)
|
||||
error_messenger_invalid_url: 유효한 URL이 아님
|
||||
label_messenger_contact_created: "[%{project_url}] *%{user}*님이 연락처(%{url})를 만들었습니다."
|
||||
label_messenger_contact_updated: "[%{project_url}] *%{user}*님이 연락처(%{url})를 수정했습니다."
|
||||
label_messenger_db_entry_created: "[%{project_url}] *%{user}*님이 데이터베이스 항목(%{url})을 만들었습니다."
|
||||
label_messenger_db_entry_updated: "[%{project_url}] *%{user}*님이 데이터베이스 항목(%{url})을 수정했습니다."
|
||||
label_messenger_contact_created: "%{project_url} - *%{user}*님이 연락처(%{url})를 만들었습니다."
|
||||
label_messenger_contact_updated: "%{project_url} - *%{user}*님이 연락처(%{url})를 수정했습니다."
|
||||
label_messenger_db_entry_created: "%{project_url} - *%{user}*님이 데이터베이스 항목(%{url})을 만들었습니다."
|
||||
label_messenger_db_entry_updated: "%{project_url} - *%{user}*님이 데이터베이스 항목(%{url})을 수정했습니다."
|
||||
label_messenger_default_not_visible: 보안 상의 이유로 기본값이 보여지지 않습니다.
|
||||
label_messenger_issue_created: "[%{project_url}] *%{user}*님이 일감(%{url})을 만들었습니다."
|
||||
label_messenger_issue_updated: "[%{project_url}] *%{user}*님이 일감(%{url})을 수정했습니다."
|
||||
label_messenger_issue_created: "%{project_url} - *%{user}*님이 일감(%{url})을 만들었습니다."
|
||||
label_messenger_issue_updated: "%{project_url} - *%{user}*님이 일감(%{url})을 수정했습니다."
|
||||
label_messenger_outgoing_webhook: 웹훅 발신
|
||||
label_messenger_password_created: "[%{project_url}] *%{user}*님이 암호(%{url})를 만들었습니다."
|
||||
label_messenger_password_updated: "[%{project_url}] *%{user}*님이 암호(%{url})를 수정했습니다."
|
||||
label_messenger_password_created: "%{project_url} - *%{user}*님이 암호(%{url})를 만들었습니다."
|
||||
label_messenger_password_updated: "%{project_url} - *%{user}*님이 암호(%{url})를 수정했습니다."
|
||||
label_messenger_project_text_field_info: 시스템 기본값을 사용하려면 빈 값으로 두세요.
|
||||
label_messenger_setting: 메신저 설정
|
||||
label_messenger_settings_default: 시스템 기본값
|
||||
label_messenger_settings_disabled: 비활성화
|
||||
label_messenger_settings_enabled: 활성화
|
||||
label_messenger_wiki_created: "[%{project_url}] *%{user}*님이 위키(%{url})를 만들었습니다."
|
||||
label_messenger_wiki_updated: "[%{project_url}] *%{user}*님이 위키(%{url})를 수정했습니다."
|
||||
label_messenger_wiki_created: "%{project_url} - *%{user}*님이 위키(%{url})를 만들었습니다."
|
||||
label_messenger_wiki_updated: "%{project_url} - *%{user}*님이 위키(%{url})를 수정했습니다."
|
||||
label_messenger: 메신저
|
||||
label_settings_auto_mentions: 이름을 멘션으로 변환
|
||||
label_settings_default_mentions: 멘션될 기본 사용자
|
||||
|
||||
@@ -23,8 +23,8 @@ module RedmineMessenger
|
||||
return unless channels.present? && url
|
||||
|
||||
Messenger.speak(l(:label_messenger_contact_created,
|
||||
project_url: "<#{Messenger.object_url project}|#{Messenger.markup_format(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{name}>",
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project)
|
||||
end
|
||||
@@ -41,8 +41,8 @@ module RedmineMessenger
|
||||
return unless channels.present? && url
|
||||
|
||||
Messenger.speak(l(:label_messenger_contact_updated,
|
||||
project_url: "<#{Messenger.object_url project}|#{Messenger.markup_format(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{name}>",
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project)
|
||||
end
|
||||
|
||||
@@ -23,8 +23,8 @@ module RedmineMessenger
|
||||
return unless channels.present? && url
|
||||
|
||||
Messenger.speak(l(:label_messenger_db_entry_created,
|
||||
project_url: "<#{Messenger.object_url project}|#{Messenger.markup_format(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{name}>",
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project)
|
||||
end
|
||||
@@ -41,8 +41,8 @@ module RedmineMessenger
|
||||
return unless channels.present? && url
|
||||
|
||||
Messenger.speak(l(:label_messenger_db_entry_updated,
|
||||
project_url: "<#{Messenger.object_url project}|#{Messenger.markup_format(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{name}>",
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project)
|
||||
end
|
||||
|
||||
@@ -51,7 +51,7 @@ module RedmineMessenger
|
||||
end
|
||||
|
||||
Messenger.speak(l(:label_messenger_issue_created,
|
||||
project_url: "<#{Messenger.object_url project}|#{Messenger.markup_format(project)}>",
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: send_messenger_mention_url(project, description),
|
||||
user: author),
|
||||
channels, url, attachment: attachment, project: project)
|
||||
@@ -81,7 +81,7 @@ module RedmineMessenger
|
||||
attachment[:fields] = fields if fields.any?
|
||||
|
||||
Messenger.speak(l(:label_messenger_issue_updated,
|
||||
project_url: "<#{Messenger.object_url project}|#{Messenger.markup_format(project)}>",
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: send_messenger_mention_url(project, description),
|
||||
user: current_journal.user),
|
||||
channels, url, attachment: attachment, project: project)
|
||||
|
||||
@@ -23,8 +23,8 @@ module RedmineMessenger
|
||||
return unless channels.present? && url
|
||||
|
||||
Messenger.speak(l(:label_messenger_password_created,
|
||||
project_url: "<#{Messenger.object_url project}|#{Messenger.markup_format(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{name}>",
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project)
|
||||
end
|
||||
@@ -41,8 +41,8 @@ module RedmineMessenger
|
||||
return unless channels.present? && url
|
||||
|
||||
Messenger.speak(l(:label_messenger_password_updated,
|
||||
project_url: "<#{Messenger.object_url project}|#{Messenger.markup_format(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{name}>",
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, name),
|
||||
user: User.current),
|
||||
channels, url, project: project)
|
||||
end
|
||||
|
||||
@@ -22,8 +22,8 @@ module RedmineMessenger
|
||||
return unless channels.present? && url
|
||||
|
||||
Messenger.speak(l(:label_messenger_wiki_created,
|
||||
project_url: "<#{Messenger.object_url project}|#{Messenger.markup_format(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{title}>",
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, title),
|
||||
user: User.current),
|
||||
channels, url, project: project)
|
||||
end
|
||||
@@ -44,9 +44,10 @@ module RedmineMessenger
|
||||
attachment[:text] = Messenger.markup_format(content.comments.to_s)
|
||||
end
|
||||
|
||||
Rails.logger.debug "debug project_url: #{Messenger.project_url_markdown(project)}"
|
||||
Messenger.speak(l(:label_messenger_wiki_updated,
|
||||
project_url: "<#{Messenger.object_url project}|#{Messenger.markup_format(project)}>",
|
||||
url: "<#{Messenger.object_url self}|#{title}>",
|
||||
project_url: Messenger.project_url_markdown(project),
|
||||
url: Messenger.url_markdown(self, title),
|
||||
user: content.author),
|
||||
channels, url, project: project, attachment: attachment)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user