Skip to content

Commit

Permalink
Merge pull request #16 from Martin-Gleiss/master
Browse files Browse the repository at this point in the history
merge actual release from upstream
  • Loading branch information
wvhn authored Mar 31, 2020
2 parents ecd8aed + 37f3df5 commit 63e08ca
Show file tree
Hide file tree
Showing 915 changed files with 135,256 additions and 95,019 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
config.ini
/config.php
.DS_Store
67 changes: 67 additions & 0 deletions assets.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<?php
/*
* Uses Minify by Matthias Mullie, https://github.com/matthiasmullie/minify
*/

$request = array_merge($_GET, $_POST);
$type = $request['type'];
$suffix = $type == 'javascript' ? 'js' : $type;

header('Content-Type: text/' . $type);

require_once 'lib/includes.php';

require_once 'lib/pagecache.php';
$key = hash('sha256', implode('|', $request['files']));
$cache = new Pagecache(const_path . 'temp/pagecache/' . config_cachefolder . '/' . $request['pages'] . '/' . $key . '.' . $suffix, config_cache);

echo '/** '.implode(' | ', $request['files']).' **/';

$path = 'vendor/MatthiasMullie';
require_once $path . '/minify/src/Minify.php';
require_once $path . '/minify/src/CSS.php';
require_once $path . '/minify/src/JS.php';
require_once $path . '/minify/src/Exception.php';
require_once $path . '/path-converter/src/Converter.php';

if($type == 'javascript')
array_unshift($request['files'], 'console.log = function() {};');

foreach($request['files'] as $fileName) {

// if filename ends with '.php', evaluate it and add the result
if(substr_compare($fileName, '.php', -4) == 0) {
ob_start();
//$wd_was = getcwd();
chdir(dirname(const_path.$fileName));
include const_path.$fileName;
//chdir($wd_was);
chdir(dirname($_SERVER['SCRIPT_FILENAME']));
$rawcontent = ob_get_clean();
}
// otherwise just add it
else
$rawcontent = $fileName;

switch($type) {
case 'css':
$minifier = new MatthiasMullie\Minify\CSS($rawcontent);
break;
case 'js':
case 'javascript':
$minifier = new MatthiasMullie\Minify\JS($rawcontent);
break;
}

$content = "\n/* ".$fileName." */\n";

// get minified content
$content .= $minifier->execute("assets." . $type);

if($type == 'javascript')
$content .= ';';

$cache->append($content);
}

?>
143 changes: 121 additions & 22 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,104 @@
##v 2.8
## v 2.9

### New / Changed Widgets
- ID is now optional in most widgets
- New: basic.stateswitch (improves and supersedes basic.button, basic.dual, basic.multistate and basic.switch)
- New: basic.icon (shows an icon, optionally colored statically or dynamically by item)
- New: basic.input (displays an input field for text, number or date/time/duration)
- New: basic.print (improves and supersedes basic.float, basic.formula and basic.value)
- New: basic.select (select a value by menu or array of buttons)
- New: basic.color (supersedes basic.colordisc and basic.rgb) with new parameter 'colormodel' for HSV or HSL model and possibility to pass values as list in one item
- New: status.badge (displays a notification badge)
- New: basic.offset (button to increase or decrease a value)
- New: device.roofwindow (to show and control a roof window)
- New: device.uzsuicon (to control UZSU in smarthome.py and FHEM)
- New: device.uzsugraph (to control UZSU in smarthome.py and FHEM)
- New: device.smallshut (a line of small control and monitoring elements for shutters)
- New: calendar.waste (compact view of waste collection dates)
- New: multimedia.audio (plays a soundfile)
- New: multimedia.timeslider (to show and control the current time of a media file)
- New: multimedia.playpause (toggle between play and pause to control a music/video player)
- New: plot.gauge
- New: plot.pie
- New: icon.cistern
- New: icon.garagedoor
- New: icon.heating (displays a heating colored with dynamic gradient)
- New: icon.roofwindow
- New: popup.extpopup (to mix widgets in one popup)
- New: popup.locks (motion sensor and/or light priority in one popup)
- basic.symbol: Can also be used to show text only and to render as link, mode extended to adaptable formula (including thresholds), and - most important - may have multiple states now (so eventually, no series of symbols is needed anymore to cover mutiple states)
- plot.period: Among other things: merged functionality of plot.minmaxavg and plot.multiaxis into it, more options like logarithmic and boolean scale, units, an advanced zoom mode as in Highstock, individual count and mode per series and the possibility to set any additional chart options
- plot.temprose: New parameters 'series_label' and 'unit'
- plot.rtr: New parameters 'tmin', 'tmax' and 'state_max' (last one is used to set datatype of state item). Additionally the algorithm for guessing dataype has been improved.
- basic.slider: New parameters 'value_display', 'min_display' and 'max_display'
- device.blind & device.shutter: item_move is now optional
- basic.shutter & device.shutter: min/max are renamed to value_top/bottom and value_top may be less than value_bottom
- device.shutter: Value and text for pos1 and pos2 can be set by parameter
- basic.tank & icon.* (dynamic icons): min is now implemented and max may be less than min
- device.dimmer: New parameters to specify pic, color, 'min_display', 'max_display' and position of the switch (left or right)
- device.rtr: New parameters to specify separate offset item and additional content
- Use of dynamic icons in other widgets possible (e.g. basic.multiswitch or basic.symbol)
- calendar.list: New parameters to select and colorize calendars
- basic.checkbox & basic.flip: Value_on and value_off can be set by parameters
- multimedia.slideshow: Fix items, add control buttons and reverse parameter
- clock.miniclock: New parameter 'format'
- status.notify: New items for title, signal, level and acknowledgement
- multimedia.image: add items to define source and refresh trigger

### New / changed Widgets
### Other New Features
- Inline documentation can be called directly in system menu now (i.e. w/o changing pages in configuration)
- Allow pages selection by url parameter (e.g. index.php?pages=foo)
- Configuration can be overridden per page and per client. Options stored in .ini now. Redesign of configuration page
- Clear pagecache (by button and on disabling on configuration page)
- New dropins folder to add custom extensions and overrides (see details in [README.md](./dropins/README.md) inside dropins/)
- Custom widgets in a folder `widgets` inside own pages will be imported automatically (like in dropins)
- Language files can be overridden. This allows regional variations and custom extensions. And they are stored in clearer ini format
- Timezone is configurable now (was hardcoded to 'Europe/Berlin')
- Configurable time source (show time of server or client)
- Automatically return to home page after a configurable duration
- Template Checker
- Added 50 icons of jQuery Mobile - before they were just available on buttons as background (aka inline) icons
- New CalDav calendar service
- Auto-loading of any .js file inside subfolder 'js' and any .css file inside 'css' in current pages folder
- New driver for [ioBroker](http://www.iobroker.net)
- New weather service [darksky.net](https://darksky.net/)
- New Fritz!Box phone service using TR-064
- Updated Quad design with new features
- Twig function 'asset_exists' checks availability of files (to be used before importing these files)
- Documentation of custom widgets will be imported from dropins/widgets
- New structure of updated examples

### Improvements
- Replaced make.php by on-the-fly minification (needs page cache set on)
- Replaced Twig cache by output cache (makes html files cachable)
- Some performance optimizations
- ICal service: Multiple URLs and calendar naming possible
- Calendar coloring in configuration
- Google calendar authorization on configuration page
- Date format allows more patterns: l, D, j, F, M, n, G (the meaning is same as in php date function)
- Notification corner shows messages ordered by severity

### Updated Libraries
- jQuery Mobile to 1.4.5
- jQuery to 2.1.4
- Highcharts changed to Highstock (which includes Highcharts), updatet to 6.2.0 and migrated to styled mode

### Fixed Bugs
- Changes were not visible immediately after saving configuration
- Some other minor bugs fixed

### Now Deprecated
- basic.button, basic.dual, basic.multistate and basic.switch (use basic.stateswitch instead)
- basic.text (use basic.symbol instead)
- basic.float, basic.formula and basic.value (use basic.print instead)
- basic.colordisc and basic.rgb (use basic.color instead)
- plot.minmaxavg and plot.multiaxis (use plot.period instead)
- Calendar service GoogleV3 (use ICS/iCal instead)


## v 2.8 03.10.16

### New / Changed Widgets
- new widget: basic.multistate
- new widget: plot.multiaxes
- new widget: plot.minmaxavg
Expand All @@ -12,13 +110,14 @@
- basic.switch modified to allow color specification 'icon0' and 'icon1' for `color_on` and `color_off`
- dynamic icons: added option to set color of icon

### New / changed Icons
### New / Changed Icons
- New icon light_standing_light.svg

### Other New Features
- Added proxy settings in configuration
- Auto reconnect for drivers can be enabled in configuration
- Drivers for FHEM and openHAB2
- Template Checker

### Improvements
- Loading time seriously decreased
Expand All @@ -30,11 +129,11 @@
- switched many broken icons to SVG
- a bunch of bugs fixed

### Changed Libraries
### Updated Libraries
- highcharts updated to version 4.2.6


##v 2.7 03.11.13
## v 2.7 03.11.13

- new: SmartHome.py Montior page
- new: animations on/off for better performance on slow devices
Expand All @@ -53,7 +152,7 @@
see index.php?page=design/design_icons for examples
- update plot.highcharts 3.0.5

##v 2.6 06.08.13
## v 2.6 06.08.13

- dynamic icons: svg-icons for continuous values
- new: config splitted in lib/defaults.php and config.php (individual)
Expand All @@ -62,7 +161,7 @@
- update vendor/jquery 2.0.3 (IE 6, 7, 8 are no longer supported)
- update vendor/jquery.mobile 1.3.2

##v 2.5 01.06.13
## v 2.5 01.06.13

- new apps: tv-movie, tv-spielfilm
- new: rss-feed-reader (lib/feeds)
Expand All @@ -76,7 +175,7 @@
- new model-house: fleischer by Marco Fleischer
- new: animations :-) [beta]

##v 2.4 26.04.13 Happy Birthday smartVISU!
## v 2.4 26.04.13 Happy Birthday smartVISU!

- improved widget: basic.shutter, now with dynamic symbols
- improved design: cube v2, best viewed with solar_winds.png background
Expand All @@ -92,7 +191,7 @@
- improved drivers: only refresh if necessary
- update vendor/jquery.mobile 1.3.1

##v 2.3 04.03.13
## v 2.3 04.03.13

- device.rtr now with 3x bit-mode or 1x byte-mode
- undeprecated: basic.glue: used to glue widgets together
Expand All @@ -112,7 +211,7 @@
- improved speed: gzip compressed output
- improved speed: javascript separated

##v 2.2 01.02.13
## v 2.2 01.02.13

- new driver: SmartHome.py (with websocket)
- new driver: domotiga (with websocket)
Expand All @@ -128,7 +227,7 @@
- new smart.alert js-function for alerts and logging
- driver linknx: with error-handling

##v 2.1 09.01.12
## v 2.1 09.01.12

- new pages: otterstaetter (as model-home)
- widget: multimedia.music for a player
Expand All @@ -142,7 +241,7 @@
- improved design: weather and clock for small devices
- changed design: header now fixed on mobile devices

##v 2.0 14.12.12
## v 2.0 14.12.12

- realtime polling
- updated driver: 'linknx' for polling
Expand All @@ -153,7 +252,7 @@
- docu for popups
- new <?php tags in all files

##v 1.9 28.11.12
## v 1.9 28.11.12

- new widget-file: widgets/calendar.html for google calendar
use the google-calendar private xml-adress in the config dialog
Expand All @@ -165,7 +264,7 @@
- improved design of configuration
- fixes in phonelist

##v 1.8 02.11.12
## v 1.8 02.11.12

- new widget-file: widgets/phone.html for phonelists
A phone system is required. Supported are:
Expand All @@ -174,7 +273,7 @@
- add: apps now support more docu
- updated: jQuery plugins

##v 1.7 06.10.12
## v 1.7 06.10.12

- new feature: Apps (an app is a complete html-page, which can be easily
used in your project. Use lib.app('NAME OF APP') to show one on your page.
Expand All @@ -191,7 +290,7 @@
- update lib/jQueryMobile 1.2.0
- smartVISU moved to code.google.com

##v 1.6 25.09.12
## v 1.6 25.09.12

- weather-widget now configurable
- weather-widget with new service: wunderground.com
Expand All @@ -204,7 +303,7 @@
- update lib/jQuery 1.8.2
- update lib/Twig 1.9.2

##v 1.5 01.08.12
## v 1.5 01.08.12

- new basic-widget: "basic.smybol" to display a gad
- new device-widget: "device.blind" to control blinds, with 2 new slider
Expand All @@ -213,29 +312,29 @@
- more docu
- update lib/jQueryMobile 1.1.1

##v 1.4 02.07.12
## v 1.4 02.07.12

- new and official "smartVISU" - Logo
special thanks to Björn Bertschy
- position fixed on MainMenu
- smother scrolling, better responsive design

##v 1.3 19.06.12
## v 1.3 19.06.12

- background picture support (17 backgrounds in 'pics/bg' included)
- widget-documentation, with phpdoc based documentation
- update display mechanism
- basic language support

##v 1.2 18.05.12
## v 1.2 18.05.12

- clock and weather

##v 1.1 03.05.12
## v 1.1 03.05.12

- add config
- more designs

##v 1.0 26.04.12
## v 1.0 26.04.12

- first offical release
Loading

0 comments on commit 63e08ca

Please sign in to comment.