Project

General

Profile

QA #760

チケット一覧画面に画像を表示させたい

Added by 湯原 光 over 1 year ago. Updated 6 months ago.

Status:
回答済
Priority:
通常
Assignee:
-
Category:
-
Target version:
-
Start date:
02/01/2018
Due date:
% Done:

0%

Estimated time:

Description

トラッカーやステータス、優先度、期日等が同一のチケットでも、
チケット一覧画面にカスタムフィールドを使用してアイコン等の画像を表示させて、
チケット一覧画面を開いたらすぐに区別できるようにしたいと思うのですが、対応方法はありますでしょうか。

History

#1

Updated by 奈良 裕記 over 1 year ago

目的はチケット一覧画面の識別性を向上させたいということですよね。
下記参考になるでしょうか。

Redmine上にタグ機能を追加したい
https://redmine.tokyo/issues/703

本家チケットはvote countトップです。(68件)
http://www.redmine.org/issues/1448

#2

Updated by 湯原 光 over 1 year ago

タグですと画像が使えないのと、タグはタグとして機能させたいと考えています。
やはりカスタムフィールドを使用して、チケット一覧画面に画像を表示させることは厳しいでしょうか。

#3

Updated by 奈良 裕記 over 1 year ago

画像表示に拘る必要があるなら、avatar関連の処理が参考になると思います、
チケット一覧画面にチケット担当者のavatarが表示できます。
タグ表示にて、avatarの表示を追加すれば良いかと。

http://redmine.jp/faq/administration/gravatar/

https://github.com/ncoders/redmine_local_avatars

#4

Updated by Tamura Shinji over 1 year ago

各種ステータスなどと関連して画像を変更するのであれば

https://github.com/annikoff/redmine_plugin_computed_custom_field

が使えるかと。
画像表示を適宜変更するのであれば、先のプラグインと組み合わせて

https://github.com/danmunn/redmine_dmsf

もありかと。

#5

Updated by 奈良 裕記 over 1 year ago

コメントありがとうございます。
できれば具体的なサンプルが欲しいところ。。

https://github.com/y503unavailable/redmine-centos-ansible/
に、computed_custom_fieldとknowledgebaseを追加しようかな。。

dmsfは使ったことないのですが、チケット一覧に任意のイメージリンク可能ですか?

#6

Updated by Tamura Shinji over 1 year ago

dmsfは、

{{dmsf_image(8)}}

とするとイメージリンクできるので、ステータスに応じてcomputed custom fieldで、dmsfに渡すファイルIDを変えていれてやればできるはずです。

式がすぐに思い浮かばないけど。。。

#7

Updated by 湯原 光 over 1 year ago

カスタムフィールドの書式をテキストにして以下の記述でチケット一覧画面に画像を表示することができました。

<img src="画像URL" alt="サンプル">

書式をテキストにするとpタグで囲まれているだけでしたので、
aタグを付けてリンク付きの画像にもすることが確認できました。

他のタグを使えば色々なことができそうな気がします。

#8

Updated by 前田 剛 over 1 year ago

湯原 光 さんは書きました:

カスタムフィールドの書式をテキストにして以下の記述でチケット一覧画面に画像を表示することができました。

実はその挙動はクロスサイトスクリプティング脆弱性でして、2017年10月15日にリリースされたRedmine 3.4.3、3.3.5、3.2.8で修正されました。最新版のRedmineではその方法は使えません。

#10

Updated by 湯原 光 over 1 year ago

指定したカスタムフィールドをチケット一覧画面には表示させ、チケット詳細には管理者のみ表示させることは可能でしょうか。

#11

Updated by Kawai takashi 6 months ago

Q:指定したカスタムフィールドをチケット一覧画面には表示させ、チケット詳細には管理者のみ表示させることは可能でしょうか。

A:「管理者」というのは「サーバ管理者」のことですか? それなら、View Customize Plugin v 1.2.2を使用して、ViewCustomize.context.user.admin の値を取得して分岐条件に使用します。

「管理者」がロールと権限の「管理者」を意味する場合、View Customize Pluginではユーザーのroleは取得できないということですので、以下の代替策を取ってください。

管理→カスタムフィールド の「ユーザ」タブで、個人設定のページに「真偽値」型式のセレクトボックス(管理者)を追加して、この値をを取得して分岐条件に使用します。

パスのパターン:/issues
挿入位置:チケット入力欄の下
種別:JavaScript

$(function(){
 //var admin = ViewCustomize.context.user.admin; //システム管理者
 var selected_value = ViewCustomize.context.user.customFields[0].value; //「管理者」カスタムフィールドのインデックス番号を指定

  //設定値がtrue以外の場合はカスタムフィールドを非表示にする
  //if (admin != true){
  if (selected_value != true){
    $('.tabular p #issue_custom_field_values_50').parent().css('display','none'); //隠したいカスタムフィールドの番号を指定
    $('.details .cf_50').css('display','none');
  }else{
  //何もしない
  }
});
#12

Updated by 奈良 裕記 6 months ago

  • Status changed from 新規 to 回答済

回答ありがとうございます。 > Kawai takashi さん

本プロジェクトの開発者設定させていただきました。

#13

Updated by Kawai takashi 6 months ago

ちょっと無理矢理ですが、どうしてもユーザーのロールを使用したければ、/users/ のページの「プロジェクト」に表示されている情報を取得して分岐条件に使用することもできます。*サーバに負荷がかかることもあり、この方法はあまりお勧めしません。もっと良い方法がないですかね。

$(function() {
 var login = ViewCustomize.context.user.id;
  $.get("/redmine/users/" + login).done(function(html){
   $('.splitcontentleft a[href="/redmine/projects/redminecustomize"]', $(html)).each(function(){ //対象のプロジェクトのパスを指定してください
   var gettext = $(this).parent('li').text();
    //console.log(gettext);
    if (gettext.indexOf('管理者') != -1) {
    //何もしない
    }else{
     $('.tabular p #issue_custom_field_values_50').parent().css('display','none'); //隠したいカスタムフィールドの番号を指定
     $('.details .cf_50').css('display','none');
    }
   })
  },"html");
})

Also available in: Atom PDF