第12回-コメントは編集リンクからではなく、コメント追加用のUIになってほしい
#第12回
https://www.redmine.org/issues/3143 のパッチを適用して動作を確認
一部の動作が違和感あるため動作を変更してみた
残タスク: チケットにコメントする
チケットコメント案
José Estevesさん
素晴らしいパッチをありがとうございます。
パッチに関して、以下のユースケースにたいして問題があると思いました。
対処を施したパッチを作成しましたのでご意見を伺いたいです。
ユースケース1:
ユーザーがコメント追加を作成している最中に、チケットの編集をしたくなった
As-Is
Editボタンを押下しても、Edit画面は表示されない
To-Be
Editボタンを押下すると、Edit画面が表示される
code:diff
diff --git a/app/views/issues/_action_menu.html.erb b/app/views/issues/_action_menu.html.erb
index 00e56e2f5..979a8f409 100644
--- a/app/views/issues/_action_menu.html.erb
+++ b/app/views/issues/_action_menu.html.erb
@@ -3,7 +3,7 @@
:onclick => 'showAndScrollToAddNotes(); return false;',
:class => 'icon icon-add' if @issue.editable? %>
<%= link_to l(:button_edit), edit_issue_path(@issue),
- :onclick => 'showAndScrollTo("update", "issue_notes"); return false;',
+ :onclick => 'showAndScrollToEditIssue("update", "issue_notes"); return false;',
:class => 'icon icon-edit', :accesskey => accesskey(:edit) if @issue.editable? %>
<%= link_to l(:button_log_time), new_issue_time_entry_path(@issue),
:class => 'icon icon-time-add' if User.current.allowed_to?(:log_time, @project) %>
ユースケース2:
ユーザーがチケット編集中に、編集内容が不要と気づき、編集内容を破棄たくなり、Cancelボタンを押下してからコメント追加した
As-Is
Cancelを押下しても編集内容は隠れているたけで保持されているため、破棄したつもりの編集内容が送信されてしまう。
To-Be
Cancel押下時に画面を再描写して編集内容を破棄する。
code:diff
diff --git a/app/views/issues/_edit.html.erb b/app/views/issues/_edit.html.erb
index 683ec0ff1..255f22206 100644
--- a/app/views/issues/_edit.html.erb
+++ b/app/views/issues/_edit.html.erb
@@ -74,7 +74,7 @@
<%= submit_tag l(:button_submit) %>
<%= link_to(
l(:button_cancel), issue_path(id: @issue.id),
- :onclick => params:action == 'show' ? "$('#update').hide(); return false;" : ''
+ :onclick => params:action == 'show' ? "window.location.reload();" : ''
) %>
<%= hidden_field_tag 'prev_issue_id', @prev_issue_id if @prev_issue_id %>
<%= hidden_field_tag 'next_issue_id', @next_issue_id if @next_issue_id %>
ユースケース3:
ユーザーがチケット編集中に、編集内容が不要と気づき、コメント追加ボタン押下により編集画面を閉じた状態でコメントを追加してSubmmitを押下した。
As-Is
編集画面は隠れているだけで、破棄したつもりの編集内容が送信されてしまう。
To-Be
編集画面がかくれていて、コメント追加の画面のみを表示している場合には、編集画面の変更内容を送信しない。
code:diff
diff --git a/public/javascripts/application.js b/public/javascripts/application.js
index 631180bc6..214a9da27 100644
--- a/public/javascripts/application.js
+++ b/public/javascripts/application.js
@@ -29,15 +29,15 @@ function showAndScrollTo(id, focus) {
function showAndScrollToEditIssue() {
$('#update h3').show();
- $('#attributes').show();
- $('#log_time').show();
+ $('#attributes').show(); $('#attributes input, #attributes select').prop('disabled', false)
+ $('#log_time').show(); $('#log_time input, #log_time select').prop('disabled', false)
showAndScrollTo('update', 'issue_notes');
}
function showAndScrollToAddNotes() {
$('#update h3').hide();
- $('#attributes').hide();
- $('#log_time').hide();
+ $('#attributes').hide();$('#attributes input, #attributes select').prop('disabled', true)
+ $('#log_time').hide();$('#log_time input, #log_time select').prop('disabled', true)
showAndScrollTo('update', 'issue_notes');
}
ここから第19回
同じフォーム内でトリッキーにやるのではなくて別フォームを置いたほうがシンプルになるのではないか?
→ 同じ Issue:48 のなかで取り組む。
Issue:48#comment-1013617746
task/48-2 ブランチ
→ Issue:71