There's a choice of OpenWebif interfaces to choose from:
Modern
is suitable for mobile and desktop devices (also known as responsive)Classic
is the original look and layout- (
Mobile
will soon be removed in favour of the Modern interface)
There are a separate set of js and css files for each.
JS and CSS files are compiled and minified as part of the CI process.
This can also be done manually.
If you haven't already, you'll need to install npm.
If this is your first time working with assets on OpenWebif, you'll need to download and install all required dependencies:
cd
to the repo root, then run
(cd ./sourcefiles/ && npm install)
MODERN:
/* source code */
/sourcefiles/modern
/css/*.css
/js/*.js and /js/*.mjs
/fonts
/* output */
/plugin/public/modern
/css/*.min.css
/js/*.min.js or /js/*-app.js
/fonts
/* browser url */
/modern
/css/*.min.css
/js/*.min.js or /js/*-app.js
/fonts
jQuery and Bootstrap are currently used for some functionality, but the intention is to remove these dependencies completely from the Modern interface.
cd
to the repo root, then run
(cd ./sourcefiles && npm run build-js)
which minifies and saves the output to
/plugin/public/modern/js/
Upload these files to the receiver at
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/public/modern/js/
cd
to the repo root, then run
(cd ./sourcefiles && npm run build-css)
which minifies and saves the output to
/plugin/public/modern/css/
Upload these files to the receiver at
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/public/modern/css/
Simply reloading the browser page will be enough, there's no need to restart Twisted server or enigma2!
The Roboto font is served locally from
/modern/fonts/roboto
The Material Icons font
provides iconography, and is served locally from /modern/fonts/materialicons
Implementation details can be found at https://google.github.io/material-design-icons/
(Note that Material Icon versions on GitHub, NPM and the Google Fonts page are all out of sync. This is a known issue.)
CLASSIC:
/* source code */
/sourcefiles
/css
/js
/scss
/* output */
/plugin/public
/css/*.min.css
/js/*.min.js or
/* browser url */
/
/css/*.min.css
/js/*.min.js
cd
to the repo root, then run
(cd ./sourcefiles && npm run build-classic-js)
which minifies and saves the output to
/plugin/public/js/
Upload these files to the receiver at
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/public/js/
cd
to the repo root, then run
(cd ./sourcefiles && npm run build-classic-css)
which minifies and saves the output to
/plugin/public/css/
Upload these files to the receiver at
/usr/lib/enigma2/python/Plugins/Extensions/OpenWebif/public/css/
cd
to the repo root, then run
(cd ./sourcefiles && npm run build-css-themes)
This is only needed if jQuery UI has been changed!
Refresh the browser page to see any changes, there's no need to restart Twisted server or enigma2!
TODO: verify whether this information is still applicable.
The script contrib/inotify_watcher.py
is used for compiling CSS files on
the developers host using Sass . On linux you need to
have installed a package providing inotifywait
and a version that actually
supports inotify if one wants automatic compiling of CSS files on source
directory changes (For debian based distributions this would be inotify-tools
).
macOS and Windows do not have inotify support thus the automatic compiling will
not work (yet). But if you installed Sass and
the scss
binary/script is in your PATH
, calling
contrib/inotify_watcher.py --force-update
should work.
Alternatively, you may define environment variable SCSS
in order to point to
the location of the scss binary/script.
Base command is
scss -t compressed --unix-newlines --sourcemap=none "in.scss":"out.css"
😐