1
0
forked from joey/godottest
Joey Eamigh 9989fab018
addons?
2025-10-10 14:07:23 -04:00

68 lines
2.0 KiB
GDScript

@tool
extends VBoxContainer
# UI references will be set from the scene
@export var queues_tree: Tree
@export var jobs_tree: Tree
@export var job_details_text: TextEdit
@export var refresh_button: Button
var plugin
func _ready() -> void:
if refresh_button:
refresh_button.pressed.connect(_on_refresh_pressed)
# Set column titles for the queues tree
queues_tree.set_column_titles_visible(true)
queues_tree.set_column_title(0, "Queue")
queues_tree.set_column_title(1, "Jobs")
# Set column titles for the jobs tree
jobs_tree.set_column_titles_visible(true)
jobs_tree.set_column_title(0, "ID")
jobs_tree.set_column_title(1, "Queue")
jobs_tree.set_column_title(2, "Status")
func set_plugin(p) -> void:
plugin = p
func _on_refresh_pressed() -> void:
if plugin:
# This assumes the main dashboard has an instance selector
var selected_id = get_parent().get_parent().instance_selector.get_item_id(get_parent().get_parent().instance_selector.selected)
var session_id = plugin.get_current_session_id()
if session_id != -1:
plugin._fetch_keys_for_selected_instance(session_id)
func update_queues(data: Dictionary) -> void:
queues_tree.clear()
var root = queues_tree.create_item()
queues_tree.hide_root = true
for queue_name in data:
var queue_item = queues_tree.create_item(root)
queue_item.set_text(0, queue_name)
queue_item.set_text(1, str(data[queue_name].size()))
func update_jobs(jobs: Array) -> void:
jobs_tree.clear()
var root = jobs_tree.create_item()
jobs_tree.hide_root = true
for job in jobs:
var job_item = jobs_tree.create_item(root)
job_item.set_text(0, job.id)
job_item.set_text(1, job.queue_name)
job_item.set_text(2, job.status)
job_item.set_meta("data", job.data)
func _on_jobs_tree_item_selected() -> void:
var selected_item = jobs_tree.get_selected()
if selected_item:
job_details_text.text = selected_item.get_meta("data")
func _on_queues_tree_item_selected() -> void:
# TODO: should filter out jobs not the selected queue
pass