mirror of
https://github.com/zammad/zammad
synced 2026-05-24 09:48:36 +00:00
34 lines
959 B
Ruby
34 lines
959 B
Ruby
# Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/
|
|
|
|
# User taskbar list actions.
|
|
module Taskbar::List
|
|
extend ActiveSupport::Concern
|
|
|
|
class_methods do
|
|
def reorder_list(user, order)
|
|
order_as_hash = order.to_h do |elem|
|
|
[elem[:id], elem[:prio]]
|
|
end
|
|
|
|
ActiveRecord::Base.transaction do |transaction|
|
|
TaskbarPolicy::Scope
|
|
.new(user, Taskbar)
|
|
.resolve
|
|
.where(id: order_as_hash.keys)
|
|
.each do |taskbar|
|
|
taskbar.skip_item_trigger = true
|
|
taskbar.skip_live_user_trigger = true
|
|
taskbar.update! prio: order_as_hash[taskbar.id]
|
|
end
|
|
|
|
transaction.after_commit do
|
|
trigger_list_update(user, 'desktop')
|
|
end
|
|
end
|
|
end
|
|
|
|
def trigger_list_update(user, app)
|
|
Gql::Subscriptions::User::Current::TaskbarItem::ListUpdates.trigger(nil, arguments: { app: }, scope: user.id)
|
|
end
|
|
end
|
|
end
|