/**
* -----------------------------------------------------------------------------
* @package smartVISU
* @author Martin Gleiß
* @copyright 2012 - 2015
* @license GPL [http://www.gnu.de]
* -----------------------------------------------------------------------------
*/
/** handle dropins - only if page configuration is completed */
{% if config_pages != "" %}
{% set macrofiles = dir('dropins/shwidgets','^([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\.html$') %}
{% set macrofiles = macrofiles|merge(dir('dropins/widgets','^([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\.html$')) %}
/** additional widgets in current pages */
{% if isdir('pages/'~config_pages~'/widgets', '^([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\.html$') %}
{% set macrofiles = macrofiles|merge(dir('pages/'~config_pages~'/widgets','^([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\.html$')) %}
{% endif %}
{% set dynmacro = [] %}
{% for macrofile in macrofiles %}
{% set dynmacro = dynmacro|merge(['{% import "@widgets/' ~ macrofile['file'] ~ '" as ' ~ macrofile['name'] ~ ' %}']) %}
{% endfor %}
{% extends template_from_string(dynmacro|join("\n") ~ '\n{% block root %}{% endblock %}') %}
{% endif %}
{% block root %}
{{ config_title }}
/** CSS assets **/
{% set design_css = isfile('designs/' ~ config_design ~ '.css') ? 'designs/' ~ config_design ~ '.css' : 'dropins/designs/' ~ config_design ~ '.css' %}
{% set cssFiles = [
'vendor/plot.highcharts/highcharts.css',
'vendor/JTSage/DateBox/css/jtsage-datebox.css',
'vendor/jquery.roundslider/roundslider.css',
'vendor/jquery.toast/toast.css',
'lib/clock/jdigiclock.css',
'lib/weather/jdigiweather.css',
'pages/base/base.css',
'pages/base/quad.css',
design_css,
'pages/' ~ config_pages ~ '/visu.css'
] %}
{% for file in dir('dropins/shwidgets', '(.*)(\.css)') %}
{% set cssFiles = cssFiles|merge([file.path]) %}
{% endfor %}
{% for file in dir('dropins/widgets', '(.*)(\.css)') %}
{% set cssFiles = cssFiles|merge([file.path]) %}
{% endfor %}
{% for file in dir('dropins', '(.*)(\.css)') %}
{% set cssFiles = cssFiles|merge([file.path]) %}
{% endfor %}
{% if isdir('pages/'~config_pages~'/widgets') %}
{% for file in dir('pages/'~config_pages~'/widgets', '(.*)(\.css)') %}
{% set cssFiles = cssFiles|merge([file.path]) %}
{% endfor %}
{% endif %}
{% if isdir('pages/'~config_pages~'/css') %}
{% for file in dir('pages/'~config_pages~'/css', '(.*)(\.css)') %}
{% set cssFiles = cssFiles|merge([file.path]) %}
{% endfor %}
{% endif %}
{%- if config_cache and mbstring_available %} /** only use minified and merged version if page cache is activated and mbstring available. otherwise use original single files. **/
{% else -%}
{%- for cssFile in cssFiles -%}
{%- if cssFile is not empty and isfile(cssFile) %}
{%- endif -%}
{%- endfor %}
{% endif %}
/** if configured backend driver is not available (e.g. deprecated -> removed) start w/ offline driver */
{% set driver_error_msg = "" %}
{% if not isfile('driver/io_' ~ config_driver ~ '.js') %}
{% set driver_error_msg = 'Configured backend driver not found. Starting with Offline driver' %}
{% set config_driver = 'offline'%}
{% endif %}
/** JavaScript assets **/
{% set jsFiles = [
'lib/base/jquery.mobile.slider.js',
'vendor/plot.highcharts/highstock.js',
'vendor/plot.highcharts/highcharts-more.js',
'vendor/plot.highcharts/modules/draggable-points.js',
'vendor/plot.highcharts/modules/solid-gauge.js',
'vendor/jquery.cycle2/jquery.cycle2.js',
'vendor/jquery.roundslider/jquery-1.61.roundslider.js',
'vendor/jquery.toast/jquery.toast.js',
'vendor/JTSage/DateBox/js/jtsage-datebox.js',
'lib/clock/jquery.jdigiclock.js',
'vendor/JTSage/DateBox/js/i18n/jtsage-datebox.i18n.'~lang('DateBox', 'lang')~'.utf8.js',
config_animation ? 'widgets/animation.js' : null,
'lib/base/base.js',
'lib/base/base.php',
'driver/io_' ~ config_driver ~ '.js',
'pages/' ~ config_pages ~ '/visu.js'
] %}
{% if isdir('driver/'~config_driver, '\.js') %}
{% for file in dir('driver/'~config_driver, '(.*)(\.js)') %}
{% set jsFiles = jsFiles|merge([file.path]) %}
{% endfor %}
{% endif %}
{% for file in dir('widgets', '(.*)(\.js)') %}
{% set jsFiles = jsFiles|merge([file.path]) %}
{% endfor %}
{% for file in dir('dropins/shwidgets', '(.*)(\.js)') %}
{% set jsFiles = jsFiles|merge([file.path]) %}
{% endfor %}
{% for file in dir('dropins/widgets', '(.*)(\.js)') %}
{% set jsFiles = jsFiles|merge([file.path]) %}
{% endfor %}
{% for file in dir('dropins', '(.*)(\.js)') %}
{% set jsFiles = jsFiles|merge([file.path]) %}
{% endfor %}
{% if isdir('pages/'~config_pages~'/widgets', '\.js') %}
{% for file in dir('pages/'~config_pages~'/widgets', '(.*)(\.js)') %}
{% set jsFiles = jsFiles|merge([file.path]) %}
{% endfor %}
{% endif %}
{% if isdir('pages/'~config_pages~'/js', '\.js') %}
{% for file in dir('pages/'~config_pages~'/js', '(.*)(\.js)') %}
{% set jsFiles = jsFiles|merge([file.path]) %}
{% endfor %}
{% endif %}
{%- if config_cache and mbstring_available -%} /** only use minified and merged version if page cache is activated and mbstring available. otherwise use original single files. **/
{%- else -%}
{%- for jsFile in jsFiles -%}
{%- if jsFile is not empty and isfile(jsFile) %}
{%- endif -%}
{%- endfor -%}
{%- if config_cache and not mbstring_available %}
{%- endif -%}
{% endif %}
{% block head %}{% endblock %}
{% import "@widgets/lib.html" as lib %}
{% import "@widgets/basic.html" as basic %}
{% import "@widgets/calendar.html" as calendar %}
{% import "@widgets/clock.html" as clock %}
{% import "@widgets/device.html" as device %}
{% import "@widgets/icon.html" as icon %}
{% import "@widgets/multimedia.html" as multimedia %}
{% import "@widgets/phone.html" as phone %}
{% import "@widgets/plot.html" as plot %}
{% import "@widgets/popup.html" as popup %}
{% import "@widgets/status.html" as status %}
{% import "@widgets/weather.html" as weather %}
{% block body %}{% endblock %}
{% endblock root %}