Add wopi file activity

SCI-393 #close
This commit is contained in:
Jure Grabnar 2016-09-29 15:30:55 +02:00
parent ed8df3cc62
commit ff47f29dc2
5 changed files with 50 additions and 1 deletions

View file

@ -1,4 +1,6 @@
class AssetsController < ApplicationController class AssetsController < ApplicationController
include WopiUtil
before_action :load_vars, except: [:signature] before_action :load_vars, except: [:signature]
before_action :check_read_permission, except: [:signature, :file_present] before_action :check_read_permission, except: [:signature, :file_present]
before_action :check_edit_permission, only: [ :edit ] before_action :check_edit_permission, only: [ :edit ]
@ -71,6 +73,7 @@ class AssetsController < ApplicationController
@favicon_url = @asset.favicon_url('edit') @favicon_url = @asset.favicon_url('edit')
@token = current_user.get_wopi_token @token = current_user.get_wopi_token
@ttl = (current_user.wopi_token_ttl * 1000).to_s @ttl = (current_user.wopi_token_ttl * 1000).to_s
create_wopi_file_activity(current_user, true)
end end
def view def view

View file

@ -143,6 +143,8 @@ class WopiController < ActionController::Base
if @asset.lock == lock if @asset.lock == lock
@asset.unlock @asset.unlock
@asset.post_process_file # Space is already taken in put_file @asset.post_process_file # Space is already taken in put_file
create_wopi_file_activity(@user, false)
response.headers['X-WOPI-ItemVersion'] = @asset.version response.headers['X-WOPI-ItemVersion'] = @asset.version
render nothing: :true, status: 200 and return render nothing: :true, status: 200 and return
else else

View file

@ -39,7 +39,9 @@ class Activity < ActiveRecord::Base
:delete_step_comment, :delete_step_comment,
:edit_result_comment, :edit_result_comment,
:delete_result_comment, :delete_result_comment,
:destroy_result :destroy_result,
:start_edit_wopi_file,
:unlock_wopi_file
] ]
validates :type_of, presence: true validates :type_of, presence: true

View file

@ -70,4 +70,42 @@ module WopiUtil
discovery = WopiDiscovery.first discovery = WopiDiscovery.first
discovery.destroy if discovery discovery.destroy if discovery
end end
def create_wopi_file_activity(current_user, started_editing)
if @assoc.class == Step
activity = Activity.new(
type_of: :start_edit_wopi_file,
user: current_user,
message: t(
started_editing ? 'activities.start_edit_wopi_file_step' :
'activities.unlock_wopi_file_step',
user: current_user.full_name,
file: @asset.file_file_name,
step: @asset.step.position + 1,
step_name: @asset.step.name
)
)
if @protocol.in_module?
activity.my_module = @protocol.my_module
activity.project = @protocol.my_module.experiment.project
end
activity.save
else
Activity.create(
type_of: :start_edit_wopi_file,
user: current_user,
project: @my_module.experiment.project,
my_module: @my_module,
message: t(
started_editing ? 'activities.start_edit_wopi_file_result' :
'activities.unlock_wopi_file_result',
user: current_user.full_name,
file: @asset.file_file_name,
result: @asset.result.name
)
)
end
end
end end

View file

@ -1052,6 +1052,10 @@ en:
delete_step_comment: "<i>%{user}</i> deleted comment on Step %{step} <strong>%{step_name}</strong>." delete_step_comment: "<i>%{user}</i> deleted comment on Step %{step} <strong>%{step_name}</strong>."
edit_result_comment: "<i>%{user}</i> edited comment on result <strong>%{result}</strong>." edit_result_comment: "<i>%{user}</i> edited comment on result <strong>%{result}</strong>."
delete_result_comment: "<i>%{user}</i> deleted comment on result <strong>%{result}</strong>." delete_result_comment: "<i>%{user}</i> deleted comment on result <strong>%{result}</strong>."
start_edit_wopi_file_step: "<i>%{user}</i> started editing File %{file} on Step %{step} <strong>%{step_name}</strong>."
start_edit_wopi_file_result: "<i>%{user}</i> started editing File %{file} on Result <strong>%{result}</strong>."
unlock_wopi_file_step: "<i>%{user}</i> closed File %{file} for editing on Step %{step} <strong>%{step_name}</strong>."
unlock_wopi_file_result: "<i>%{user}</i> started editing File %{file} on Result <strong>%{result}</strong>."
user_my_modules: user_my_modules:
new: new: