Skip to content

Commit

Permalink
Fixes zammad#5437 - Most recent data privacy tasks are not shown
Browse files Browse the repository at this point in the history
  • Loading branch information
mantas committed Dec 17, 2024
1 parent 6ab635e commit 8e786f3
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 30 deletions.
52 changes: 22 additions & 30 deletions app/assets/javascripts/app/controllers/data_privacy.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,24 @@ class Index extends App.ControllerSubContent
constructor: ->
super
@load()
@subscribeDataPrivacyTaskId = App.DataPrivacyTask.subscribe(@render)

@controllerBind(
'DataPrivacyTask:create DataPrivacyTask:update DataPrivacyTask:touch DataPrivacyTask:destroy',
@load
)

load: =>
callback = =>
@stopLoading()
@render()
@startLoading()
App.DataPrivacyTask.fetchFull(
callback
clear: true

@ajax(
id: 'data_privacy_tasks_by_state'
type: 'GET'
url: "#{@apiPath}/data_privacy_tasks/by_state"
success: (data) =>
App.DataPrivacyTask.deleteAll()
App.Collection.loadAssets(data.assets)
@stopLoading()
@render(data.record_ids)
)

show: (params) =>
Expand All @@ -39,30 +47,18 @@ class Index extends App.ControllerSubContent
@new(false, @user_id)
@user_id = undefined

render: =>
runningTasks = App.DataPrivacyTask.search(
filter:
state: 'in process'
order: 'DESC'
)
render: (record_ids) =>
runningTasks = App.DataPrivacyTask.findAll(record_ids.in_process)
runningTasksHTML = App.view('data_privacy/tasks')(
tasks: runningTasks
)

failedTasks = App.DataPrivacyTask.search(
filter:
state: 'failed'
order: 'DESC'
)
failedTasks = App.DataPrivacyTask.findAll(record_ids.failed)
failedTasksHTML = App.view('data_privacy/tasks')(
tasks: failedTasks
)

completedTasks = App.DataPrivacyTask.search(
filter:
state: 'completed'
order: 'DESC'
)
completedTasks = App.DataPrivacyTask.findAll(record_ids.completed)
completedTasksHTML = App.view('data_privacy/tasks')(
tasks: completedTasks
)
Expand All @@ -81,10 +77,6 @@ class Index extends App.ControllerSubContent
description: description
)

release: =>
if @subscribeDataPrivacyTaskId
App.DataPrivacyTask.unsubscribe(@subscribeDataPrivacyTaskId)

new: (e, user_id = undefined) ->
if e
e.preventDefault()
Expand Down Expand Up @@ -134,7 +126,7 @@ class Index extends App.ControllerSubContent
container: @el.closest('.content')
)

formHandler: (params, attribute, attributes, classname, form, ui) =>
formHandler: (params, attribute, attributes, DataPrivacyTask, form, ui) =>
return if !attribute

userID = params['deletable_id']
Expand Down Expand Up @@ -194,10 +186,10 @@ class Index extends App.ControllerSubContent
organization = App.Organization.find(user.organization_id)
if organization && organization.member_ids.length < 2
attribute = { name: 'preferences::delete_organization', display: __('Delete organization?'), tag: 'boolean', default: true, translate: true }
deleteOrganization = ui.formGenItem(attribute, classname, form).html()
deleteOrganization = ui.formGenItem(attribute, DataPrivacyTask, form).html()

sure_attribute = { name: 'preferences::sure', display: __('Are you sure?'), tag: 'input', translate: false, placeholder: App.i18n.translateInline('delete').toUpperCase() }
sureInput = ui.formGenItem(sure_attribute, classname, form).html()
sureInput = ui.formGenItem(sure_attribute, DataPrivacyTask, form).html()

preview_html = App.view('data_privacy/preview')(
customer_count: dataCustomer.object_count || 0
Expand Down
19 changes: 19 additions & 0 deletions app/controllers/data_privacy_tasks_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,25 @@ def index
model_index_render(DataPrivacyTask, params)
end

def by_state
scope = DataPrivacyTask.reorder('id DESC').limit(500)

in_process = scope.where(state: 'in process')
failed = scope.where(state: 'failed')
completed = scope.where(state: 'completed')

assets = ApplicationModel::CanAssets.reduce [in_process, failed, completed].flatten, {}

render json: {
record_ids: {
in_process: in_process.pluck(:id),
failed: failed.pluck(:id),
completed: completed.pluck(:id)
},
assets: assets,
}, status: :ok
end

def show
model_show_render(DataPrivacyTask, params)
end
Expand Down
1 change: 1 addition & 0 deletions config/routes/data_privacy_task.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
api_path = Rails.configuration.api_path

match api_path + '/data_privacy_tasks', to: 'data_privacy_tasks#index', via: :get
match api_path + '/data_privacy_tasks/by_state', to: 'data_privacy_tasks#by_state', via: :get
match api_path + '/data_privacy_tasks/:id', to: 'data_privacy_tasks#show', via: :get
match api_path + '/data_privacy_tasks', to: 'data_privacy_tasks#create', via: :post
match api_path + '/data_privacy_tasks/:id', to: 'data_privacy_tasks#update', via: :put
Expand Down

0 comments on commit 8e786f3

Please sign in to comment.