fast player edit

This commit is contained in:
jr-k 2024-07-16 14:46:38 +02:00
parent 5082ad7b99
commit 4e8477d098
5 changed files with 69 additions and 4 deletions

View File

@ -167,8 +167,11 @@ jQuery(function ($) {
event.preventDefault();
$(this).off('click');
const href = $(this).attr('href');
const callback = $(this).attr('data-callback');
if ($(this).attr('target') === '_blank') {
if (callback) {
window[callback]($(this));
} else if ($(this).attr('target') === '_blank') {
window.open(href);
} else {
window.location.href = href;

View File

@ -4,6 +4,16 @@ jQuery(document).ready(function ($) {
inputOperatingSystemUpdate();
};
window.nodePlayerEdit = function ($this) {
const nodePlayer = JSON.parse($this.parents('li:eq(0)').attr('data-entity-json'));
showModal('modal-node-player-edit');
$('.modal-node-player-edit input:visible:eq(0)').focus().select();
$('#node-player-edit-name').val(nodePlayer.name);
$('#node-player-edit-host').val(nodePlayer.host);
$('#node-player-edit-id').val(nodePlayer.id);
inputOperatingSystemUpdate();
};
const inputOperatingSystemUpdate = function () {
const $el = $('form:visible .operating-system-select');
if ($el.length === 0) return;

View File

@ -80,6 +80,7 @@ class FleetNodePlayerController(ObController):
)
def fleet_node_player_save(self, node_player_id: int = 0):
node_player_id = request.form['id'] if 'id' in request.form else node_player_id
node_player = self._model_store.node_player().get(node_player_id)
if not node_player:
@ -93,7 +94,8 @@ class FleetNodePlayerController(ObController):
)
self._post_update()
return redirect(url_for('fleet_node_player_edit', node_player_id=node_player_id, saved=1))
# return redirect(url_for('fleet_node_player_edit', node_player_id=node_player_id, saved=1))
return redirect(url_for('fleet_node_player_list'))
def fleet_node_player_delete(self):
node_player = self._model_store.node_player().get(request.args.get('id'))

View File

@ -174,8 +174,8 @@
{% for node_player in node_players[working_folder.id|default(None)]|default([]) %}
{% set icon = enum_operating_system.get_fa_icon(node_player.operating_system) %}
{% set color = node_player.operating_system.value %}
<li class="draggable" data-path="{{ working_folder_path }}" data-id="{{ node_player.id }}" data-folder="0">
<a href="{{ url_for('fleet_node_player_edit', node_player_id=node_player.id) }}" class="explr-link explr-item-selectable explr-item-actionable explr-item-entity">
<li class="draggable" data-path="{{ working_folder_path }}" data-id="{{ node_player.id }}" data-folder="0" data-entity-json="{{ node_player.to_json() }}">
<a href="{{ url_for('fleet_node_player_edit', node_player_id=node_player.id) }}" class="explr-link explr-item-selectable explr-item-actionable explr-item-entity" data-callback="nodePlayerEdit">
<i class="fa {{ icon }} {{ color }}"></i>
<span>{{ truncate(node_player.name, 25, '...') }}</span>
<form action="{{ url_for('fleet_node_player_rename') }}" method="POST">
@ -192,6 +192,7 @@
<div class="modals-outer">
<div class="modals-inner">
{% include 'fleet/node-players/modal/add.jinja.html' %}
{% include 'fleet/node-players/modal/edit.jinja.html' %}
</div>
</div>
</div>

View File

@ -0,0 +1,49 @@
<div class="modal modal-node-player-edit modal-node-player">
<h2>
{{ l.fleet_node_player_form_edit_title }}
</h2>
<form class="form" action="{{ url_for('fleet_node_player_save', node_player_id=0) }}" method="POST">
<input name="id" type="hidden" id="node-player-edit-id" required="required" />
<div class="form-group">
<label for="node-player-edit-name">{{ l.fleet_node_player_form_label_name }}</label>
<div class="widget">
<input name="name" type="text" id="node-player-edit-name" required="required" />
</div>
</div>
<div class="form-group tab-select">
<div class="widget">
<i class="fa fa-get-pocket operating-system-icon"></i>
<select name="operating_system" id="node-player-edit-operating-system" class="operating-system-select">
{% for os in enum_operating_system %}
<option value="{{ os.value }}" data-icon="{{ enum_operating_system.get_fa_icon(os) }}" data-color="{{ os.value }}">
{{ t(os) }}
</option>
{% endfor %}
</select>
<i class="fa fa-sort-desc triangle"></i>
</div>
</div>
<div class="form-group">
<label for="node-player-edit-host">{{ l.fleet_node_player_form_label_host }}</label>
<div class="widget">
<input name="host" type="text" id="node-player-edit-host" required="required" placeholder="{{ l.common_host_placeholder }}" />
</div>
</div>
<div class="actions">
<button type="button" class="btn btn-naked modal-close">
{{ l.common_close }}
</button>
<button type="submit" class="btn btn-info">
<i class="fa fa-save icon-left"></i>{{ l.common_save }}
</button>
<button type="button" disabled="disabled" class="btn btn-naked hidden btn-loading">
{{ l.common_loading }}
</button>
</div>
</form>
</div>