Release 0.9.0

This commit is contained in:
2025-11-21 07:26:02 +01:00
committed by ecv
commit 472f0812e7
240 changed files with 20033 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
{%- from 'jinja2_macros.html' import construct_toggle_link with context -%}
<span id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_control_info_link" class="info">
{{- construct_toggle_link(
True,
"i", ['widget_event', ['players', ['toggle_players_widget_view', {
'steamid': player.steamid,
'action': 'show_info_view'
}]]]
)-}}
</span>

View File

@@ -0,0 +1,13 @@
{%- from 'jinja2_macros.html' import construct_toggle_link with context -%}
{%- if player.is_initialized == true -%}
<span id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_control_kick_link" class="info">
{{- construct_toggle_link(
player.is_initialized,
"kick", ['widget_event', ['players', ['kick_player', {
'action': 'kick_player',
'steamid': player.steamid,
'confirmed': 'False'
}]]]
)-}}
</span>
{%- endif -%}

View File

@@ -0,0 +1,9 @@
{%- from 'jinja2_macros.html' import construct_toggle_link with context -%}
<div>
{{ construct_toggle_link(
options_view_toggle,
"options", ['widget_event', ['players', ['toggle_players_widget_view', {'steamid': steamid, "action": "show_options"}]]],
"back", ['widget_event', ['players', ['toggle_players_widget_view', {'steamid': steamid, "action": "show_frontend"}]]]
)}}
</div>

View File

@@ -0,0 +1,3 @@
<div id="player_table_widget_options_toggle" class="pull_out right">
{{ control_switch_options_view }}
</div>

View File

@@ -0,0 +1,43 @@
{%- from 'jinja2_macros.html' import construct_toggle_link with context -%}
<table class="delete_modal">
<tr>
<td colspan="2">
<p>Are you sure you want to kick player {{ steamid }}?</p>
</td>
</tr>
<tr>
<td>
<p>By clicking [confirm] you will continue to proceed kicking the dude.</p>
</td>
<td>
<p>Clicking [cancel] will abort the kicking.</p>
</td>
</tr>
<tr>
<td colspan="2">
<div id="kick_player_reason">
<input name="kick_player_reason" value="{{ reason }}" />
</div>
</td>
</tr>
<tr>
<td>
<div id="kick_player_confirm" class="modal_delete_button">
<span class="active">
{% include "manage_players_widget/modal_confirm_kick_send_data.html" %}
</span>
</div>
</td>
<td>
<div id="kick_player_cancel" class="modal_cancel_button">
{{ construct_toggle_link(
True,
"cancel", ['widget_event', ['players', ['kick_player', {
'action': "cancel_kick_player",
'steamid': 'steamid'
}]]]
) }}
</div>
</td>
</tr>
</table>

View File

@@ -0,0 +1,15 @@
<script>
function send_kick_data_to_bot() {
let kick_reason = $("input[name='kick_player_reason']").val();
window.socket.emit(
'widget_event',
['players', ['kick_player', {
'action': 'kick_player',
'steamid': '{{ steamid }}',
'reason': kick_reason,
'confirmed': 'True'
}]]
);
}
</script>
<a href="#" onclick="send_kick_data_to_bot(); return false;">confirm</a>

View File

@@ -0,0 +1,7 @@
<tr>
<td colspan="11">
<div>
{{ action_delete_button }}
</div>
</td>
</tr>

View File

@@ -0,0 +1,13 @@
<tr>
<th>*</th>
<th onclick="window.sorting(this, player_table, 1)">actions</th>
<th onclick="window.sorting(this, player_table, 2)">level</th>
<th onclick="window.sorting(this, player_table, 3)">name</th>
<th onclick="window.sorting(this, player_table, 4)">health</th>
<th onclick="window.sorting(this, player_table, 5)">id</th>
<th onclick="window.sorting(this, player_table, 6)">steamid</th>
<th onclick="window.sorting(this, player_table, 7)">pos</th>
<th onclick="window.sorting(this, player_table, 8)">zombies</th>
<th onclick="window.sorting(this, player_table, 9)" class="right">last seen</th>
<th onclick="window.sorting(this, player_table, 10)" class="right">gametime</th>
</tr>

View File

@@ -0,0 +1,30 @@
{%- from 'jinja2_macros.html' import construct_toggle_link with context -%}
<tr id="player_table_row_{{ player.dataset }}_{{ player.steamid }}"{%- if css_class %} class="{{ css_class }}"{%- endif -%}>
<td>
<span id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_control_select_link" class="select_button">{{ control_select_link }}</span>
</td>
<td class="nobr" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_actions">{{ control_info_link }}{{ control_kick_link }}</td>
<td class="center" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_level">{{ player.level }}</td>
<td id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_name" onclick="$(this).selectText();">{{ player.name }}</td>
<td id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_health">{{ player.health }}</td>
<td class="right" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_id" onclick="$(this).selectText();">{{ player.id }}</td>
<td id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_steamid" onclick="$(this).selectText();">{{ player.steamid }}</td>
<td class="position right" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_pos" onclick="$(this).selectText();">
<span id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_pos_x">
{{ ((player | default({})).pos | default({}) ).x | default('0') }}
</span>
<span id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_pos_y">
{{ ((player | default({})).pos | default({}) ).y | default('0') }}
</span>
<span id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_pos_z">
{{ ((player | default({})).pos | default({}) ).z | default('0') }}
</span>
</td>
<td id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_zombies">{{ player.zombies }}</td>
<td class="nobr right" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_last_updated_servertime">
{{ player.last_updated_servertime }}
</td>
<td class="nobr right" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_last_seen_gametime">
{{ player.last_seen_gametime }}
</td>
</tr>

View File

@@ -0,0 +1,33 @@
<header>
<div>
<span>Players</span>
</div>
</header>
<aside>
{{ options_toggle }}
</aside>
<main>
<table class="data_table">
<caption>
<span>offline</span>
<span class="in_limbo">offline and dead</span>
<span class="is_online in_limbo">logging in</span>
<span class="is_online is_initialized">online</span>
<span class="in_limbo is_online is_initialized">online and dead</span>
</caption>
<thead>
{{ table_header }}
</thead>
<tbody id="player_table">
{{ table_rows }}
</tbody>
<tfoot>
{{ table_footer }}
</tfoot>
</table>
<div class="dialog">
<div id="manage_players_widget_modal" class="modal-content">
<p>this is the text inside the modal</p>
</div>
</div>
</main>

View File

@@ -0,0 +1,155 @@
<header>
<div>
<span>Players</span>
</div>
</header>
<aside>
{{ options_toggle }}
</aside>
<main>
<table class="info_sheet">
<thead>
<tr>
<th colspan="3">player-info ({{ player.steamid }})</th>
</tr>
</thead>
<tbody id="player_table_row_{{ player.dataset }}_{{ player.steamid }}">
<tr>
<td>Name</td>
<td id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_name" onclick="$(this).selectText();">{{ player.name }}</td>
<td>the players steam-name</td>
</tr>
<tr>
<td>ID</td>
<td id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_id" onclick="$(this).selectText();">{{ player.id }}</td>
<td></td>
</tr>
<tr>
<td>SteamID</td>
<td id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_steamid" onclick="$(this).selectText();">{{ player.steamid }}</td>
<td></td>
</tr>
<tr>
<td>Health</td>
<td id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_health">{{ player.health }}</td>
<td></td>
</tr>
<tr>
<td>Position</td>
<td class="position" onclick="$(this).selectText();">
<span id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_pos_x">{{ ((player | default({})).pos | default({}) ).x | default('0') }}</span>
<span id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_pos_y">{{ ((player | default({})).pos | default({}) ).y | default('0') }}</span>
<span id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_pos_z">{{ ((player | default({})).pos | default({}) ).z | default('0') }}</span>
</td>
<td></td>
</tr>
<tr>
<td>Rotation</td>
<td class="position">
<span id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_rot_x">{{ ((player | default({})).rot | default({}) ).x | default('0') }}</span>
<span id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_rot_y">{{ ((player | default({})).rot | default({}) ).y | default('0') }}</span>
<span id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_rot_z">{{ ((player | default({})).rot | default({}) ).z | default('0') }}</span>
</td>
<td></td>
</tr>
<tr>
<td>Level</td>
<td id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_level">{{ player.level }}</td>
<td></td>
</tr>
<tr>
<td>IP-Address</td>
<td onclick="$(this).selectText();" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_ip">{{ player.ip }}</td>
<td></td>
</tr>
<tr>
<td>Ping</td>
<td id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_ping">{{ player.ping }}</td>
<td></td>
</tr>
<tr>
<td>Deaths</td>
<td id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_deaths">{{ player.deaths }}</td>
<td></td>
</tr>
<tr>
<td>Zombie-Kills</td>
<td id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_zombies">{{ player.zombies }}</td>
<td></td>
</tr>
<tr>
<td>Player-Kills</td>
<td id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_players">{{ player.players }}</td>
<td></td>
</tr>
<tr>
<td>Score</td>
<td id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_score">{{ player.score }}</td>
<td></td>
</tr>
<tr>
<td>Last seen</td>
<td class="nobr" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_last_updated_servertime">
{{ player.last_updated_servertime }}
</td>
<td></td>
</tr>
<tr>
<td>First seen (gametime)</td>
<td class="nobr" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_first_seen_gametime">
{{ player.first_seen_gametime }}
</td>
<td></td>
</tr>
<tr>
<td>Last seen (gametime)</td>
<td class="nobr" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_last_seen_gametime">
{{ player.last_seen_gametime }}
</td>
<td></td>
</tr>
<tr>
<td>dataset</td>
<td class="nobr" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_origin">
{{ player.dataset }}
</td>
<td>the server-instance this entry is from</td>
</tr>
<tr>
<td>is_authenticated</td>
<td class="nobr" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_is_authenticated">
{{ player.is_authenticated | default("False") }}
</td>
<td>has authenticated with the bot</td>
</tr>
<tr>
<td>in_limbo</td>
<td class="nobr" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_in_limbo">
{{ player.in_limbo | default("False") }}
</td>
<td>hasn't got any health, is dead(ish)!</td>
</tr>
<tr>
<td>is_initialized</td>
<td class="nobr" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_is_initialized">
{{ player.is_initialized | default("False") }}
</td>
<td>player is online, has health, is ready to go!</td>
</tr>
<tr>
<td>is_online</td>
<td class="nobr" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_is_online">
{{ player.is_online | default("False") }}
</td>
<td>we can see you!</td>
</tr>
<tr>
<td>is_muted</td>
<td class="nobr" id="player_table_row_{{ player.dataset }}_{{ player.steamid }}_is_muted">
{{ player.is_muted | default("False") }}
</td>
<td>come again?</td>
</tr>
</tbody>
</table>
</main>

View File

@@ -0,0 +1,27 @@
<header>
<div>
<span>Players</span>
</div>
</header>
<aside>
{{ options_toggle }}
</aside>
<main>
<table class="options_table">
<thead>
<tr>
<th colspan="2">player table widget options</th>
</tr>
</thead>
<tbody>
<tr>
<th colspan="2"><span>widget-options</span></th>
</tr>
{% for key, value in widget_options.items() %}
<tr>
<td><span>{{key}}</span></td><td>{{value}}</td>
</tr>
{% endfor %}
</tbody>
</table>
</main>