From 49e847794f5acac31ee4ea1624827821cb014db7 Mon Sep 17 00:00:00 2001 From: Alexander Meindl Date: Sat, 25 Jan 2020 11:59:13 +0100 Subject: [PATCH] Show db entries and password names, if available --- app/models/messenger.rb | 22 ++++++++++++++++++-- lib/redmine_messenger/patches/issue_patch.rb | 2 +- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/models/messenger.rb b/app/models/messenger.rb index df71bc2..4ee354f 100644 --- a/app/models/messenger.rb +++ b/app/models/messenger.rb @@ -151,23 +151,41 @@ class Messenger false end - def detail_to_field(detail) + def detail_to_field(detail, prj = nil) field_format = nil key = nil escape = true value = detail.value.to_s - if detail.property == 'cf' key = CustomField.find(detail.prop_key)&.name unless key.nil? title = key field_format = CustomField.find(detail.prop_key)&.field_format + value = IssuesController.helpers.format_value(detail.value, detail.custom_field) if detail.value.present? end elsif detail.property == 'attachment' key = 'attachment' title = I18n.t :label_attachment value = detail.value.to_s + elsif detail.property == 'attr' && + detail.prop_key == 'db_relation' + return { short: true } unless Messenger.setting_for_project(prj, :post_db) + + title = I18n.t :field_db_relation + if detail.value.present? + entry = DbEntry.visible.find_by(id: detail.value) + value = entry.present? ? entry.name : detail.value.to_s + end + elsif detail.property == 'attr' && + detail.prop_key == 'password_relation' + return { short: true } unless Messenger.setting_for_project(prj, :post_password) + + title = I18n.t :field_password_relation + if detail.value.present? + entry = Password.visible.find_by(id: detail.value) + value = entry.present? ? entry.name : detail.value.to_s + end else key = detail.prop_key.to_s.sub('_id', '') title = if key == 'parent' diff --git a/lib/redmine_messenger/patches/issue_patch.rb b/lib/redmine_messenger/patches/issue_patch.rb index dcada8d..9692aff 100644 --- a/lib/redmine_messenger/patches/issue_patch.rb +++ b/lib/redmine_messenger/patches/issue_patch.rb @@ -76,7 +76,7 @@ module RedmineMessenger end end - fields = current_journal.details.map { |d| Messenger.detail_to_field d } + fields = current_journal.details.map { |d| Messenger.detail_to_field(d, project) } if saved_change_to_status_id? fields << { title: I18n.t(:field_status), value: Messenger.markup_format(status.to_s),