Handling dashboards widget configuration as a list instead of a hash to preserve the order of the widgets

This commit is contained in:
Fabio Manganiello 2019-01-28 23:14:12 +01:00
parent 339d1eb132
commit 7a80cd08ce
2 changed files with 15 additions and 10 deletions

View file

@ -103,17 +103,22 @@ class HttpBackend(Backend):
dashboard:
background_image: https://site/image.png
widgets: # Each row of the dashboard will have 6 columns
calendar: # Calendar widget
-
widget: calendar # Calendar widget
columns: 6
music: # Music widget
-
widget: music # Music widget
columns: 3
date-time-weather: # Date, time and weather widget
-
widget: date-time-weather # Date, time and weather widget
columns: 3
image-carousel: # Image carousel
-
widget: image-carousel # Image carousel
columns: 6
images_path: ~/Dropbox/Photos/carousel # Absolute path (valid as long as it's a subdirectory of one of the available `resource_dirs`)
refresh_seconds: 15
rss-news: # RSS feeds widget
-
widget: rss-news # RSS feeds widget
# Requires backend.http.poll to be enabled with some RSS sources and write them to sqlite db
columns: 6
limit: 25

View file

@ -28,7 +28,7 @@
{% endif %}
window.config = {{ config | safe }};
window.widgets = {{ config['widgets'] | safe }};
window.widgets = {{ config['widgets'] | safe }}.reduce(function(map, w) { map[w.widget] = w; return map }, {})
</script>
</head>
@ -44,16 +44,16 @@
<div id="widgets-container">
{% set used_columns = [0] %}
{% for widget_name, widget in config['widgets'].items() %}
{% for widget in config['widgets'] %}
{% if used_columns[0] % 12 == 0 %}
<div class="row">
{% endif %}
<div class="widget {% print(utils.widget_columns_to_html_class(widget['columns'])) %}
{% print(widget_name) %}"
id="{% print(widget['id'] if 'id' in widget else widget_name) %}">
{% print(widget['widget']) %}"
id="{% print(widget['id'] if 'id' in widget else widget['widget']) %}">
{% with properties=widget %}
{% include 'widgets/' + widget_name + '.html' %}
{% include 'widgets/' + widget['widget'] + '.html' %}
{% endwith %}
</div>