Revision notes written in version modal are not seen/saved [SCI-8279] (#5272)

* Load latest protocol version comment in publish modal [SCI-8279]

* Check publish permission before updating the draft comment [SCI-8279]
This commit is contained in:
Soufiane 2023-04-11 12:50:14 +02:00 committed by GitHub
parent 5e321b761d
commit 0f8918e9f6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 28 additions and 3 deletions

View file

@ -59,7 +59,7 @@ class ProtocolsController < ApplicationController
copy_to_repository
)
before_action :check_publish_permission, only: :publish
before_action :check_publish_permission, only: %i(publish version_comment update_version_comment)
before_action :check_import_permissions, only: :import
before_action :check_export_permissions, only: :export
before_action :check_delete_draft_permissions, only: :destroy_draft
@ -882,6 +882,14 @@ class ProtocolsController < ApplicationController
end
end
def version_comment
respond_to do |format|
format.json do
render json: { version_comment: @protocol.version_comment }
end
end
end
def update_version_comment
respond_to do |format|
format.json do

View file

@ -338,7 +338,16 @@
this.reordering = false;
},
startPublish() {
this.publishing = true;
$.ajax({
type: "GET",
url: this.urls.version_comment_url,
contentType: "application/json",
dataType: "json",
success: (result) => {
this.protocol.attributes.version_comment = result.version_comment;
this.publishing = true;
}
});
},
closePublishModal() {
this.publishing = false;

View file

@ -91,6 +91,7 @@ class ProtocolSerializer < ActiveModel::Serializer
publish_url: publish_url,
save_as_draft_url: save_as_draft_url,
versions_modal_url: versions_modal_url,
version_comment_url: version_comment_url,
print_protocol_url: print_protocol_url
}
end
@ -217,6 +218,12 @@ class ProtocolSerializer < ActiveModel::Serializer
publish_protocol_path(object)
end
def version_comment_url
return unless can_publish_protocol_in_repository?(object)
version_comment_protocol_path(object)
end
def save_as_draft_url
return unless can_save_protocol_version_as_draft?(object)

View file

@ -46,7 +46,7 @@
</div>
</div>
<div class="protocol-version-comment">
<% if can_manage_protocol_draft_in_repository?(draft) %>
<% if can_manage_protocol_draft_in_repository?(draft) && can_publish_protocol_in_repository?(draft) %>
<div
class="protocol-comment-container inline-init-handler"
data-field-to-update="version_comment"

View file

@ -577,6 +577,7 @@ Rails.application.routes.draw do
post :publish
post :destroy_draft
post :save_as_draft
get 'version_comment', to: 'protocols#version_comment'
get 'print', to: 'protocols#print'
get 'linked_children', to: 'protocols#linked_children'
post 'linked_children_datatable',