Server profiles can now be deleted from Asterisk and game_title is now correctly saved to server profile when first created.

This commit is contained in:
2024-02-28 21:47:41 -06:00
parent 0d1333ee4f
commit d4e81dd441

View File

@@ -41,7 +41,7 @@ class W3DHub
end end
@server_delete_button = button get_image("#{GAME_ROOT_PATH}/media/ui_icons/minus.png"), image_height: 1.0, tip: "Remove selected profile" do @server_delete_button = button get_image("#{GAME_ROOT_PATH}/media/ui_icons/minus.png"), image_height: 1.0, tip: "Remove selected profile" do
push_state(ConfirmDialog, message: "Purge server profile") push_state(ConfirmDialog, title: "Are you sure?", message: "Remove Server Profile: \"#{@server_profiles_list.value}\"?", accept_callback: -> { delete_server_profile(server_profile_from_name(@server_profiles_list.value)) })
end end
@server_edit_button = button get_image("#{GAME_ROOT_PATH}/media/ui_icons/save.png"), image_height: 1.0, tip: "Edit and save selected profile" do @server_edit_button = button get_image("#{GAME_ROOT_PATH}/media/ui_icons/save.png"), image_height: 1.0, tip: "Edit and save selected profile" do
@@ -162,7 +162,7 @@ class W3DHub
end end
end end
flow(width: 1.0, height: 40, padding: 8) do flow(width: 1.0, height: 46, padding: 8) do
button "Cancel", width: 0.25 do button "Cancel", width: 0.25 do
pop_state pop_state
end end
@@ -257,7 +257,7 @@ class W3DHub
server_profile: @server_profiles_list.value, server_profile: @server_profiles_list.value,
server_hostname: @server_hostname.value, server_hostname: @server_hostname.value,
server_port: @server_port.value, server_port: @server_port.value,
game: @games_list.value, game_title: @games_list.value,
launch_arguments: @launch_arguments.value, launch_arguments: @launch_arguments.value,
irc_profile: @irc_profiles_list.value irc_profile: @irc_profiles_list.value
} }
@@ -275,6 +275,24 @@ class W3DHub
@changes_made = false @changes_made = false
end end
def delete_server_profile(profile)
index = W3DHub::Store[:asterisk_config].server_profiles.index(profile)
return unless index
W3DHub::Store[:asterisk_config].server_profiles.delete(profile)
W3DHub::Store[:asterisk_config].save_config
@server_profiles_list.items = W3DHub::Store[:asterisk_config].server_profiles.map { |pf| pf.name }
if W3DHub::Store[:asterisk_config].server_profiles.size.positive?
@server_profiles_list.choose = W3DHub::Store[:asterisk_config].server_profiles[index - 1 > 0 ? index - 1 : 0].name
end
end
def server_profile_from_name(name)
W3DHub::Store[:asterisk_config].server_profiles.find { |pf| name == pf.name }
end
def game_from_title(title) def game_from_title(title)
W3DHub::Store[:asterisk_config].games.find { |g| title == g.title } W3DHub::Store[:asterisk_config].games.find { |g| title == g.title }
end end
@@ -362,7 +380,8 @@ class W3DHub
end end
def delete_irc_profile(profile) def delete_irc_profile(profile)
index = W3DHub::Store[:asterisk_config].irc_profiles.index(profile) || 0 index = W3DHub::Store[:asterisk_config].irc_profiles.index(profile)
return unless index
W3DHub::Store[:asterisk_config].irc_profiles.delete(profile) W3DHub::Store[:asterisk_config].irc_profiles.delete(profile)