diff --git a/README.md b/README.md
index 693e2af..30ad7c0 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
# Obscreen
-Obscreen is a user-friendly self-hosted digital signage tool. Manage a fleet of Raspberry Pi devices to transform your screens into a professional digital signage network.
+Obscreen is a user-friendly self-hosted digital signage tool leveraging chromium browser.
@@ -17,7 +17,7 @@ Try it!
Demo Server (Location: Roubaix - France): [https://demo.obscreen.io](https://demo.obscreen.io/login?username=admin&password=admin)
-It is a temporary live demo, all data will be deleted after 30 minutes (~30secs downtime) . Sponsored by myself.
+It is a temporary live demo, all data will be deleted after 30 minutes (~30secs downtime).
## ⭐️ Features
- Dead simple chromium webview inside
@@ -27,6 +27,7 @@ It is a temporary live demo, all data will be deleted after 30 minutes (~30secs
- Fleet screen management
- Playlist management
- Authentication management
+- Plays content from flashdrive in offline mode
- Plugin system to extend capabilities
- [Multi Languages](https://github.com/jr-k/obscreen/tree/master/lang)
- No costly monthly pricing plan per screen or whatever, no cloud, no telemetry
diff --git a/data/www/js/slideshow/slides.js b/data/www/js/slideshow/slides.js
index 4d0031d..bb1b1a9 100644
--- a/data/www/js/slideshow/slides.js
+++ b/data/www/js/slideshow/slides.js
@@ -21,10 +21,18 @@ jQuery(document).ready(function ($) {
if (timeOnly) {
options['noCalendar'] = true;
+
+ if ($el.val() === '') {
+ $el.val('00:00');
+ }
} else {
if ($el.val().indexOf('-') < 0) {
$el.val('');
}
+
+ if ($el.val() === '') {
+ $el.val(prettyTimestamp(d.getTime()));
+ }
}
$el.flatpickr(options);
diff --git a/src/service/TemplateRenderer.py b/src/service/TemplateRenderer.py
index 91073cf..c260904 100644
--- a/src/service/TemplateRenderer.py
+++ b/src/service/TemplateRenderer.py
@@ -12,6 +12,7 @@ from src.model.hook.FunctionalHookRegistration import FunctionalHookRegistration
from src.constant.WebDirConstant import WebDirConstant
from src.util.utils import get_safe_cron_descriptor, \
is_cron_in_datetime_moment, \
+ is_cron_in_week_moment, \
seconds_to_hhmmss, am_i_in_docker, \
truncate, merge_dicts, dictsort
@@ -47,6 +48,7 @@ class TemplateRenderer:
str=str,
seconds_to_hhmmss=seconds_to_hhmmss,
is_cron_in_datetime_moment=is_cron_in_datetime_moment,
+ is_cron_in_week_moment=is_cron_in_week_moment,
json_dumps=json.dumps,
merge_dicts=merge_dicts,
dictsort=dictsort,
diff --git a/version.txt b/version.txt
index 7ec1d6d..7c32728 100755
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-2.1.0
+2.1.1
\ No newline at end of file
diff --git a/views/playlist/list.jinja.html b/views/playlist/list.jinja.html
index 8d447f9..3c4556a 100644
--- a/views/playlist/list.jinja.html
+++ b/views/playlist/list.jinja.html
@@ -29,7 +29,6 @@
'datetime': choices_translations['datetime']
},
'inweek': {
- 'stayloop': choices_translations['stayloop'],
'inweek': choices_translations['inweek']
}
},
diff --git a/views/slideshow/slides/component/table.jinja.html b/views/slideshow/slides/component/table.jinja.html
index 30575bf..eeff01b 100644
--- a/views/slideshow/slides/component/table.jinja.html
+++ b/views/slideshow/slides/component/table.jinja.html
@@ -26,7 +26,7 @@
{% if slide.cron_schedule %}
{% set cron_desc = cron_descriptor(slide.cron_schedule) %}
{% if cron_desc %}
- {% if is_cron_in_datetime_moment(slide.cron_schedule) %}
+ {% if is_cron_in_datetime_moment(slide.cron_schedule) or is_cron_in_week_moment(slide.cron_schedule) %}
{% if slide.is_notification %}
🔔 {{ l.slideshow_slide_panel_td_cron_scheduled_notify }}
{{ cron_desc }}
@@ -48,7 +48,7 @@
{% if slide.cron_schedule_end %}
{% set cron_desc_end = cron_descriptor(slide.cron_schedule_end) %}
{% if cron_desc_end %}
- {% if is_cron_in_datetime_moment(slide.cron_schedule_end) %}
+ {% if is_cron_in_datetime_moment(slide.cron_schedule_end) or is_cron_in_week_moment(slide.cron_schedule_end) %}
{% if slide.is_notification %}
📆 {{ l.slideshow_slide_panel_td_cron_scheduled_date }}
{{ cron_desc_end }}