wip
This commit is contained in:
parent
ea577c46ca
commit
e1a5513c58
File diff suppressed because one or more lines are too long
@ -31,6 +31,10 @@ main {
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.contex-tail {
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.context-user {
|
||||
display: flex;
|
||||
margin-right: 20px;
|
||||
@ -42,7 +46,7 @@ main {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: $baseRadius;
|
||||
background: $seaBlue;
|
||||
background: #AAA;
|
||||
margin-right: 10px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
@ -52,6 +56,7 @@ main {
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
border: 1px solid #444;
|
||||
color: black;
|
||||
}
|
||||
|
||||
i {
|
||||
|
||||
@ -55,7 +55,7 @@ main {
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
align-self: stretch;
|
||||
padding: 10px 10px 10px 20px;
|
||||
padding: 10px 10px 10px 15px;
|
||||
background: transparent;
|
||||
border-bottom: $layoutBorder;
|
||||
|
||||
@ -69,9 +69,19 @@ main {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-end;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
|
||||
&.align-right {
|
||||
justify-content: flex-end;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.explr-selection-actions + .btn,
|
||||
.btn:first-child {
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
|
||||
.btn,
|
||||
button {
|
||||
margin-left: 10px;
|
||||
|
||||
@ -35,6 +35,7 @@ button,
|
||||
color: #AAA;
|
||||
background: $neutralGrey;
|
||||
box-shadow: 0 $shadowOffset 0 0 darken($neutralGrey, 10%);
|
||||
border: 1px solid transparent;
|
||||
|
||||
&:hover {
|
||||
box-shadow: 0 $shadowOffset 0 1px #222 inset;
|
||||
@ -43,6 +44,7 @@ button,
|
||||
|
||||
&:focus {
|
||||
background: darken($neutralGrey, 20%);
|
||||
border: 1px solid #AAA;
|
||||
}
|
||||
}
|
||||
|
||||
@ -58,7 +60,6 @@ button,
|
||||
color: darken($neutralGrey, 10%);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
border-color: darken($neutralGrey, 20%);
|
||||
background: transparent;
|
||||
@ -68,6 +69,7 @@ button,
|
||||
&.btn-naked {
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
border: 1px solid transparent;
|
||||
|
||||
&:hover {
|
||||
box-shadow: 0 $shadowOffset 0 1px #222 inset;
|
||||
@ -76,6 +78,35 @@ button,
|
||||
|
||||
&:focus {
|
||||
background: darken($neutralGrey, 20%);
|
||||
border: 1px solid #AAA;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
i.main {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
sup,
|
||||
sub {
|
||||
position: absolute;
|
||||
top: -4px;
|
||||
right: -4px;
|
||||
background: #777;
|
||||
border-bottom: 2px solid $neutralGrey;
|
||||
color: black;
|
||||
border-radius: $baseRadius;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding-top: 2px;
|
||||
padding-bottom: 1px;
|
||||
i {
|
||||
color: white;
|
||||
font-size: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -41,9 +41,10 @@ ul.explr-tree {
|
||||
|
||||
.explr-selection-actions {
|
||||
display: none;
|
||||
margin-right: 10px;
|
||||
border-right: 1px solid #222;
|
||||
padding-right: 20px;
|
||||
flex-direction: row;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
|
||||
button {
|
||||
display: none;
|
||||
|
||||
@ -243,16 +243,26 @@ form {
|
||||
&.actions-left {
|
||||
justify-content: flex-start;
|
||||
|
||||
button {
|
||||
.btn {
|
||||
margin-left: 0;
|
||||
margin-right: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
&.actions-right {
|
||||
justify-content: flex-end;
|
||||
|
||||
|
||||
.btn {
|
||||
margin-left: 10px;
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.actions-center {
|
||||
justify-content: center;
|
||||
|
||||
button {
|
||||
.btn {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
@ -75,14 +75,14 @@
|
||||
}
|
||||
|
||||
.title {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
align-self: stretch;
|
||||
display: block;
|
||||
word-break: break-all;
|
||||
font-size: 13px;
|
||||
color: #AAA;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.type {
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
"slideshow_slide_page_title": "Schedule Overview",
|
||||
"slideshow_slide_goto_player": "Go to player",
|
||||
"slideshow_slide_refresh_player": "Refresh player",
|
||||
"slideshow_slide_refresh_player_success": "Player refresh signal has been sent, it should happen soon enough (%time% seconds maximum)",
|
||||
"slideshow_slide_refresh_player_success": "Players update signal has been sent, should arrive soon (%time% seconds maximum)",
|
||||
"slideshow_slide_button_add": "Add a slide",
|
||||
"slideshow_slide_panel_active": "Active slides",
|
||||
"slideshow_slide_panel_inactive": "Inactive slides",
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
"slideshow_slide_page_title": "Descripción General del Programa",
|
||||
"slideshow_slide_goto_player": "Ir al reproductor",
|
||||
"slideshow_slide_refresh_player": "Actualizar reproductor",
|
||||
"slideshow_slide_refresh_player_success": "La señal de actualización del reproductor ha sido enviada, debería suceder pronto (%time% segundos máximo)",
|
||||
"slideshow_slide_refresh_player_success": "La señal de actualización de los jugadores ha sido enviada, debería llegar pronto (%time% segundos máximo)",
|
||||
"slideshow_slide_button_add": "Agregar una diapositiva",
|
||||
"slideshow_slide_panel_active": "Diapositivas activas",
|
||||
"slideshow_slide_panel_inactive": "Diapositivas inactivas",
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
"slideshow_slide_page_title": "Vue Planning",
|
||||
"slideshow_slide_goto_player": "Voir le lecteur",
|
||||
"slideshow_slide_refresh_player": "Rafraîchir le lecteur",
|
||||
"slideshow_slide_refresh_player_success": "Un rafraîchissement du lecteur a été programmé, il devrait avoir lieu sous peu (%time% secondes maximum)",
|
||||
"slideshow_slide_refresh_player_success": "Un rafraîchissement des lecteurs a été programmé, il devrait avoir lieu sous peu (%time% secondes maximum)",
|
||||
"slideshow_slide_button_add": "Ajouter une slide",
|
||||
"slideshow_slide_panel_active": "Slides actives",
|
||||
"slideshow_slide_panel_inactive": "Slides inactives",
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
"slideshow_slide_page_title": "Programmazione",
|
||||
"slideshow_slide_goto_player": "Vai al player",
|
||||
"slideshow_slide_refresh_player": "Aggiorna player",
|
||||
"slideshow_slide_refresh_player_success": "L' aggiornamento è stato richiesto, sarà applicato in (%time% secondi)",
|
||||
"slideshow_slide_refresh_player_success": "Il segnale di aggiornamento dei giocatori è stato inviato, dovrebbe arrivare a breve (%time% secondi)",
|
||||
"slideshow_slide_button_add": "Aggiungi slide",
|
||||
"slideshow_slide_panel_active": "Attiva slide",
|
||||
"slideshow_slide_panel_inactive": "Slide inattive",
|
||||
|
||||
@ -20,7 +20,7 @@ class SlideController(ObController):
|
||||
self._app.add_url_rule('/slideshow/slide/edit', 'slideshow_slide_edit', self._auth(self.slideshow_slide_edit), methods=['POST'])
|
||||
self._app.add_url_rule('/slideshow/slide/delete/<slide_id>', 'slideshow_slide_delete', self._auth(self.slideshow_slide_delete), methods=['DELETE'])
|
||||
self._app.add_url_rule('/slideshow/slide/position', 'slideshow_slide_position', self._auth(self.slideshow_slide_position), methods=['POST'])
|
||||
self._app.add_url_rule('/slideshow/player-refresh', 'slideshow_player_refresh/<playlist_id>', self._auth(self.slideshow_player_refresh), methods=['GET'])
|
||||
self._app.add_url_rule('/slideshow/player-refresh', 'slideshow_player_refresh', self._auth(self.slideshow_player_refresh), methods=['GET'])
|
||||
|
||||
def manage(self):
|
||||
return redirect(url_for('playlist'))
|
||||
@ -93,15 +93,12 @@ class SlideController(ObController):
|
||||
self._post_update()
|
||||
return jsonify({'status': 'ok'})
|
||||
|
||||
def slideshow_player_refresh(self, playlist_id: int):
|
||||
def slideshow_player_refresh(self):
|
||||
self._model_store.variable().update_by_name("refresh_player_request", time.time())
|
||||
return redirect(
|
||||
url_for(
|
||||
'playlist_list',
|
||||
playlist_id=playlist_id,
|
||||
refresh_player=self._model_store.variable().get_one_by_name('polling_interval').as_int()
|
||||
)
|
||||
)
|
||||
max_timeout_value = self._model_store.variable().get_one_by_name('polling_interval').as_int()
|
||||
query_params = '{}={}'.format('refresh_player', max_timeout_value)
|
||||
next_url = request.args.get('next')
|
||||
return redirect('{}{}{}'.format(next_url, '&' if '?' in next_url else '?', query_params))
|
||||
|
||||
def _post_update(self):
|
||||
self._model_store.variable().update_by_name("last_slide_update", time.time())
|
||||
|
||||
@ -180,16 +180,26 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
<div class="context-divider"></div>
|
||||
|
||||
<div class="{% if not AUTH_ENABLED %}contex-tail{% endif %}">
|
||||
<a href="{{ url_for('slideshow_player_refresh', next=request.full_path) }}" class="btn btn-naked">
|
||||
<i class="fa fa-display main"></i>
|
||||
<sub><i class="fa fa-refresh"></i></sub>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
{% if AUTH_ENABLED %}
|
||||
<div class="context-divider"></div>
|
||||
<div class="context-user">
|
||||
<div class="dropdown">
|
||||
<div class="trigger">
|
||||
<div class="avatar">
|
||||
{{ current_user.username[0] }}
|
||||
{# {{ current_user.username[0] }}#}J
|
||||
</div>
|
||||
<div class="username">
|
||||
{{ current_user.username }}
|
||||
{# {{ current_user.username }}#}Jessym
|
||||
</div>
|
||||
<i class="fa fa-sort-down"></i>
|
||||
</div>
|
||||
@ -205,6 +215,13 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="main-container">
|
||||
{% if request.args.get('refresh_player') %}
|
||||
<div class="alert alert-success">
|
||||
<i class="fa fa-refresh icon-left"></i>
|
||||
{{ l.slideshow_slide_refresh_player_success|replace('%time%', request.args.get('refresh_player')) }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% block page %}{% endblock %}
|
||||
</div>
|
||||
</main>
|
||||
|
||||
@ -12,12 +12,6 @@
|
||||
|
||||
{% block page %}
|
||||
|
||||
<div class="top-content">
|
||||
<h1>
|
||||
{{ l.logs_page_title }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="bottom-content">
|
||||
<div class="page-content">
|
||||
<div class="inner">
|
||||
|
||||
@ -12,11 +12,6 @@
|
||||
{% block body_class %}view-plugins-list{% endblock %}
|
||||
|
||||
{% block page %}
|
||||
<div class="top-content">
|
||||
<h1>
|
||||
{{ l.settings_plugin_page_title }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
{% if request.args.get('error') %}
|
||||
<div class="alert alert-error">
|
||||
|
||||
@ -12,11 +12,6 @@
|
||||
{% block body_class %}view-settings-list{% endblock %}
|
||||
|
||||
{% block page %}
|
||||
<div class="top-content">
|
||||
<h1>
|
||||
{{ l.settings_page_title }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
{% if request.args.get('error') %}
|
||||
<div class="alert alert-error">
|
||||
|
||||
@ -14,11 +14,11 @@
|
||||
{% block page %}
|
||||
|
||||
<div class="top-content">
|
||||
<h1>
|
||||
{{ l.sysinfo_panel_title }}
|
||||
</h1>
|
||||
{# <h1>#}
|
||||
{# {{ l.sysinfo_panel_title }}#}
|
||||
{# </h1>#}
|
||||
|
||||
<div class="top-actions">
|
||||
<div class="top-actions align-right">
|
||||
{{ HOOK(H_SYSINFO_TOOLBAR_ACTIONS_START) }}
|
||||
<button type="button" class="btn btn-info sysinfo-restart">
|
||||
<i class="fa fa-refresh icon-left"></i>{{ l.sysinfo_panel_button_restart }}
|
||||
|
||||
@ -21,14 +21,22 @@
|
||||
|
||||
{% block page %}
|
||||
<div class="top-content">
|
||||
<h1>
|
||||
{{ l.fleet_node_player_page_title }}
|
||||
</h1>
|
||||
{# <h1>#}
|
||||
{# {{ l.fleet_node_player_page_title }}#}
|
||||
{# </h1>#}
|
||||
|
||||
<div class="top-actions">
|
||||
{{ HOOK(H_FLEET_NODE_PLAYER_TOOLBAR_ACTIONS_START) }}
|
||||
<button type="button" class="btn btn-info node-player-add item-add">
|
||||
<i class="fa fa-file-circle-plus icon-left"></i>
|
||||
{{ l.fleet_node_player_button_add }}
|
||||
</button>
|
||||
<button type="button" class="folder-add btn-neutral">
|
||||
<i class="fa fa-folder-plus icon-left"></i>
|
||||
{{ l.common_new_folder }}
|
||||
</button>
|
||||
|
||||
<div class="explr-selection-actions">
|
||||
<div class="explr-selection-actions">
|
||||
<button type="button" class="explr-item-edit explr-selection-entity btn-info" data-entity-route="{{ url_for('fleet_node_player_edit', node_player_id='!c!') }}">
|
||||
<i class="fa fa-eye"></i>
|
||||
</button>
|
||||
@ -39,15 +47,6 @@
|
||||
<i class="fa fa-trash-alt"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<button type="button" class="btn btn-info node-player-add item-add">
|
||||
<i class="fa fa-file-circle-plus icon-left"></i>
|
||||
{{ l.fleet_node_player_button_add }}
|
||||
</button>
|
||||
<button type="button" class="folder-add btn-neutral">
|
||||
<i class="fa fa-folder-plus icon-left"></i>
|
||||
{{ l.common_new_folder }}
|
||||
</button>
|
||||
{{ HOOK(H_FLEET_NODE_PLAYER_TOOLBAR_ACTIONS_END) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -13,8 +13,11 @@
|
||||
|
||||
<div class="actions actions-right">
|
||||
<button type="button" class="btn btn-info slide-add">
|
||||
<i class="fa fa-image"></i> {{ l.slideshow_slide_form_add_title }}
|
||||
<i class="fa fa-plus"></i> {{ l.slideshow_slide_form_add_title }}
|
||||
</button>
|
||||
<a href="{{ url_for('slideshow_content_list') }}" class="btn btn-neutral" target="_blank">
|
||||
<i class="fa fa-upload"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -42,9 +42,9 @@
|
||||
{% block page %}
|
||||
|
||||
<div class="top-content">
|
||||
<h1>
|
||||
{{ l.playlist_page_title }}
|
||||
</h1>
|
||||
{# <h1>#}
|
||||
{# {{ l.playlist_page_title }}#}
|
||||
{# </h1>#}
|
||||
|
||||
<div class="top-actions">
|
||||
{{ HOOK(H_PLAYLIST_TOOLBAR_ACTIONS_START) }}
|
||||
@ -71,13 +71,6 @@
|
||||
) }}
|
||||
</div>
|
||||
|
||||
{% if request.args.get('refresh_player') %}
|
||||
<div class="alert alert-success">
|
||||
<i class="fa fa-refresh icon-left"></i>
|
||||
{{ l.slideshow_slide_refresh_player_success|replace('%time%', request.args.get('refresh_player')) }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if error %}
|
||||
<div class="alert alert-danger">
|
||||
{{ l[error] }}
|
||||
|
||||
@ -22,13 +22,22 @@
|
||||
|
||||
{% block page %}
|
||||
<div class="top-content">
|
||||
<h1>
|
||||
{{ l.slideshow_content_page_title }}
|
||||
</h1>
|
||||
{# <h1>#}
|
||||
{# {{ l.slideshow_content_page_title }}#}
|
||||
{# </h1>#}
|
||||
|
||||
<div class="top-actions">
|
||||
{{ HOOK(H_SLIDESHOW_CONTENT_TOOLBAR_ACTIONS_START) }}
|
||||
|
||||
<button type="button" class="btn btn-info content-add item-add">
|
||||
<i class="fa fa-file-circle-plus icon-left"></i>
|
||||
{{ l.slideshow_content_button_add }}
|
||||
</button>
|
||||
<button type="button" class="folder-add btn-neutral">
|
||||
<i class="fa fa-folder-plus icon-left"></i>
|
||||
{{ l.common_new_folder }}
|
||||
</button>
|
||||
|
||||
<div class="explr-selection-actions">
|
||||
<button type="button" class="explr-item-edit explr-selection-entity btn-info"
|
||||
data-entity-route="{{ url_for('slideshow_content_edit', content_id='!c!') }}">
|
||||
@ -44,14 +53,6 @@
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<button type="button" class="btn btn-info content-add item-add">
|
||||
<i class="fa fa-file-circle-plus icon-left"></i>
|
||||
{{ l.slideshow_content_button_add }}
|
||||
</button>
|
||||
<button type="button" class="folder-add btn-neutral">
|
||||
<i class="fa fa-folder-plus icon-left"></i>
|
||||
{{ l.common_new_folder }}
|
||||
</button>
|
||||
{{ HOOK(H_SLIDESHOW_CONTENT_TOOLBAR_ACTIONS_END) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
{% set color = enum_content_type.get_color_icon(content.type) %}
|
||||
<i class="fa {{ icon }} {{ color }}"></i>
|
||||
</div>
|
||||
<div class="title">
|
||||
<div class="title" title="{{ content.name|default(l.common_empty) }}">
|
||||
{{ truncate(content.name|default(l.common_empty), 30, '...') }}
|
||||
</div>
|
||||
</a>
|
||||
|
||||
@ -1,24 +0,0 @@
|
||||
{% block page %}
|
||||
<div class="toolbar">
|
||||
<div class="toolbar-actions">
|
||||
<a href="{{ url_for('slideshow_player_refresh') }}" class="btn" title="{{ l.slideshow_slide_refresh_player }}">
|
||||
<i class="fa fa-refresh"></i>
|
||||
</a>
|
||||
|
||||
<button type="button" class="purple slide-add item-add"><i class="fa fa-plus icon-left"></i>{{ l.slideshow_slide_button_add }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="panel {% if PLAYLIST_ENABLED %}panel-active{% endif %}">
|
||||
<div class="panel-body">
|
||||
<h3>{{ l.slideshow_slide_panel_active }}</h3>
|
||||
|
||||
{% with tclass='active', slides=enabled_slides %}
|
||||
{% include 'slideshow/slides/component/table.jinja.html' %}
|
||||
{% endwith %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
Loading…
Reference in New Issue
Block a user