QA #947
未完了チケット更新時の保存ボタンを、編集画面の一番下だけでなく編集の最初にも配置する。
0%
説明
■現象/要望¶
Redmineでチケット更新時の保存ボタンは一番下だけだが、
保存時に一番下までスクロール必須な事は作業効率を低下させている。
特に、チケット内容を多数のCFで管理し、注記欄は履歴に過ぎない場合、説明欄を非表示にしたい場合。
保存用ボタンを編集の最初にも追加した方が操作性向上すると思われる。
■解決策¶
ViewCustomizeスクリプト対応例
https://redmine.tokyo/issues/947#note-7
Redmine本体のソース修正で対処可能
下記2行追加のみ
<%= submit_tag l(:button_submit) >
<= link_to l(:button_cancel), issue_path(id: @issue.id), :onclick => params[:action] ==
/var/lib/redmine/app/views/issues/_edit.html.erb
<%= labelled_form_for @issue, :html => {:id => 'issue-form', :multipart => true} do |f| %>
> <%= submit_tag l(:button_submit) %>
> <%= link_to l(:button_cancel), issue_path(id: @issue.id), :onclick => params[:action] == 'show' ? "$('#update').hide(); return false;" : '' %>
<%= error_messages_for 'issue', 'time_entry' %>
変更対象とするPJ/Trackerは、現場単位で限定することが適切と思われる。
ViewCustomizeで現場単位に調整できた方が良さそう。
↓追加箇所
■対応状況¶
ViewCustomizeスクリプト対応済
Redmine本体のソース修正でも対応可(非推奨)
■補足¶
ファイル
奈良 裕記 さんがほぼ5年前に更新
- ファイル submit-add.png submit-add.png を追加
- ファイル submit.png submit.png を追加
Kawai takashi さんがほぼ5年前に更新
View Customize Pluginでやってみました。PJ/Trackerによる制御も実装しています。
パスのパターン:/issues/[0-9]+
挿入位置:チケット入力欄の下
種別:JavaScript
$(function(){
$('#submit_button').remove();
$('#addlink').remove();
var projectname = ViewCustomize.context.project.name;
var showproject = ["プロジェクト1", "プロジェクト2", "プロジェクト3"]; //ボタンを表示させたいプロジェクト名
var trackerid = $('#issue_tracker_id').val();
var showtracker = ["1", "2", "5"]; //ボタンを表示させたいトラッカーのID
btn_name = $('#issue-form a[onclick*="update"]').html();
submit_value = $('#issue-form input[type="submit"]').attr("value");
var windowshref = location.href;
if (showproject.indexOf(projectname) >= 0 && showtracker.indexOf(trackerid) >= 0){
var submit = $('div[id="update"] h3').after($('<a id="addlink" href="'+windowshref+'">' + btn_name + '</a>')).after('<input name="commit" type="submit" value="'+submit_value+'" id="submit_button">');
$(document).on('click', '#addlink', function(){
$('#update').hide();
return false;
})
$(document).on('click', '#submit_button', function(){
var form = $('#issue-form');
form.submit();
});
}
});
Kawai takashi さんがほぼ5年前に更新
すこし問題があることに気が付きました。
1.他のViewCustomizeスクリプトで、「送信」ボタンをクリックした際の処理を以下のように実装していた場合、
$(document).on('click', '#issue-form input[type="submit"]', function() {
この処理に入らなくなってしまいます。ですので、他のスクリプトも修正が必要になってしまいます。
*issue-formを頭につけているのは、履歴編集時の「保存」ボタンと区別するため。
2.追加した「送信」ボタンをクリックした際にエラーアラートを出す処理を実装した場合、アラートダイヤログでOKすると、更新処理が走ってしまいます。
Kawai takashi さんがほぼ5年前に更新
form.submit()をやめて、以下のようにすれば、既存のスクリプトを修正しないで済みますね。
$('#submit_button').on('click', function() {
$('#issue-form input[type="submit"]').click();
});