Skip to content

Commit

Permalink
Merge pull request #1012 from Martin-Gleiss/develop
Browse files Browse the repository at this point in the history
Release v3.5
  • Loading branch information
wvhn authored Nov 30, 2024
2 parents 443b2a1 + 50693db commit ce3f729
Show file tree
Hide file tree
Showing 199 changed files with 6,481 additions and 2,512 deletions.
464 changes: 464 additions & 0 deletions apps/app_analyse_plots.html

Large diffs are not rendered by default.

24 changes: 13 additions & 11 deletions apps/app_demo.html
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
/**
* -----------------------------------------------------------------------------
* @package smartVISU
* @author YOUR NAME
* @copyright 2012 - 2015
* @license GPL
* @version 1.0
* @package smartVISU
* @author YOUR NAME
* @copyright 2012 - 2024
* @license GPL
* @version 1.0
*
* @title Demo
* @category weather
* @icon icons/ws/scene_summerhouse.svg
* @color #222
* @description Here is some description that explains what the app does. It will be shown if you hover over the app-icon.
* @title Demo
* @category weather
* @icon icons/ws/scene_summerhouse.svg
* @color #222
* @description Here is some description that explains what the app does. It will be shown if you hover over the app-icon.
* @description_de Hier steht eine Beschreibung der Funktion der App. Sie wird angezeigt, wenn man mit der Maus über das App-Symbol fährt.
*
* @info Additional information or copyright to then content
* @info Here is additional information, e.g. copyright
* @info_de Hier steht zusätzliche Informationen, z.B. Copyright
* @link http://www.smartvisu.de
* -----------------------------------------------------------------------------
*/
Expand Down
21 changes: 11 additions & 10 deletions apps/app_slideshow.html
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
/**
* -----------------------------------------------------------------------------
* @package smartVISU
* @author Martin Gleiß
* @copyright 2012 - 2015
* @license GPL
* @version 1.0
* @package smartVISU
* @author Martin Gleiß
* @copyright 2012 - 2024
* @license GPL
* @version 1.0
*
* @title Slideshow
* @category slideshow
* @icon icons/ws/control_zoom_in.svg
* @color #00a700
* @description A slideshow
* @title Slideshow
* @category slideshow
* @icon icons/ws/control_zoom_in.svg
* @color #00a700
* @description A slideshow of all images in ./pics/slideshow folder
* @description_de Eine Diaschau aller Bilder im Ordner ./pics/slideshow
* -----------------------------------------------------------------------------
*/

Expand Down
8 changes: 4 additions & 4 deletions apps/app_tv_spielfilm.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@
* -----------------------------------------------------------------------------
* @package smartVISU
* @author Martin Gleiß
* @copyright 2012 - 2022
* @copyright 2012 - 2024
* @license GPL [http://www.gnu.de]
* @version 1.1
*
* @title TV-Spielfilm
* @category tv
* @icon icons/ws/it_television.svg
* @color #b00
* @description List of all tv-stations from www.TVSpielfilm.de
* @description Fernsehprogramme von www.TVSpielfilm.de
*
* @info More feeds on
* @link http://www.tvspielfilm.de/services/widgets/rss-feeds/rss-feeds-im-ueberblick,3538128,ApplicationArticle.html
* @info Mehr Info auf
* @link http://www.tvspielfilm.de
* -----------------------------------------------------------------------------
*/

Expand Down
6 changes: 3 additions & 3 deletions apps/app_weather.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@
* -----------------------------------------------------------------------------
* @package smartVISU
* @author Martin Gleiß, Wolfram v. Hülsen
* @copyright 2012 - 2023
* @copyright 2012 - 2024
* @license GPL [http://www.gnu.de]
* @version 1.2
*
* @title Tagesschau Wetter
* @category weather
* @icon icons/ws/weather_sun.svg
* @color #2f5bc4
* @description Weather prognosis and maps from Tagesschau.de
* @description Wetterprognosen und -karten von Tagesschau.de
*
* @info More feeds on
* @info Mehr Info auf
* @link http://www.tagesschau.de
* -----------------------------------------------------------------------------
*/
Expand Down
21 changes: 11 additions & 10 deletions apps/app_webcam_f.html
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
/**
* -----------------------------------------------------------------------------
* @package smartVISU
* @author Martin Gleiß
* @copyright 2012 - 2015
* @license GPL
* @version 1.0
* @package smartVISU
* @author Martin Gleiß
* @copyright 2012 - 2024
* @license GPL
* @version 1.0
*
* @title Frankfurt
* @category webcam
* @icon icons/ws/it_camera.svg
* @color #da0
* @description Some webcams with live-impressions from Frankfurt
* @title Frankfurt
* @category webcam
* @icon icons/ws/it_camera.svg
* @color #da0
* @description Some webcams with live-impressions from Frankfurt
* @description_de Webcams mit Live-Impressionen aus Frankfurt
* -----------------------------------------------------------------------------
*/

Expand Down
26 changes: 14 additions & 12 deletions apps/app_webcam_seiseralm.html
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
/**
* -----------------------------------------------------------------------------
* @package smartVISU
* @author Frank Berlenz
* @copyright 2012 - 2015
* @license GPL
* @version 1.1
* @package smartVISU
* @author Frank Berlenz
* @copyright 2012 - 2024
* @license GPL
* @version 1.1
*
* @title Seiser Alm
* @category webcam
* @icon icons/ws/it_camera.svg
* @color #da0
* @description Webcam for Seiser Alm (Dolomitisuperski)
* @title Seiser Alm
* @category webcam
* @icon icons/ws/it_camera.svg
* @color #da0
* @description Webcams and weather for Seiser Alm (Dolomitisuperski)
* @description_de Webcams und Wetter für die Seiser Alm (Dolomitisuperski)
*
* @info Additional information to the Dolomitisuperski area
* @link http://www.dolomitisuperski.com
* @info Additional information on the Dolomitisuperski area
* @info_de Weitere Informationen zum Dolomitisuperski-Gebiet
* @link http://www.dolomitisuperski.com
* -----------------------------------------------------------------------------
*/

Expand Down
20 changes: 11 additions & 9 deletions assets.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,18 @@
require_once $path . '/path-converter/src/ConverterInterface.php';
require_once $path . '/path-converter/src/Converter.php';

if($type == 'javascript')
if($type == 'javascript' && \defined('config_debug') && !config_debug)
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();
chdir(\dirname(const_path.$fileName));
include const_path.$fileName;
chdir(\dirname($_SERVER['SCRIPT_FILENAME']));
$rawcontent = ob_get_clean();
}
// otherwise just add it
else
Expand All @@ -59,8 +57,12 @@

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

// get minified content
$content .= $minifier->execute("assets." . $type);
// avoid errors thrown by minifying already minified highcharts .js files
if ( $type != 'css' && substr_compare($fileName, 'vendor/plot.highcharts', 0, 22) == 0 )
$content .= preg_replace('#\/\*\*.*?\*\/#s', '', file_get_contents($fileName), 1);
else
// get minified content and strip first multiline comment
$content .= preg_replace('#\/\*[\*!].*?\*\/\n?#s', '', $minifier->execute("assets." . $type), 1);

if($type == 'javascript')
$content .= ';';
Expand Down
92 changes: 91 additions & 1 deletion changelog.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,101 @@
## 3.5
### Important for the current release to avoid breaking changes
- imports of widgets must be deleted from the visu pages or the namespace @widgets must be used.
Visit https://knx-user-forum.de/forum/supportforen/smartvisu/1920060-handlungsbedarf-ma%C3%9Fnahmen-gegen-seitenladefehler-ab-v3-4-a-v3-5

### New / Changed Widgets
- basic.tank is now able to change colors according to reached thresholds
- additional option for basic.select to support activity indicator like basic.stateswitch
- basic.icon accepts alpha values for rgb(a)/hsl(a)/hsv(a) and also hex rgb(a) values in items
- new app analyse_plots enables live parametrizing of plot.period plus travelling through time with plot.timeshift
- basic.print can be used to generate a tooltip on a linked widget (parameter href = widget-id, rel = 'tooltip')
- additional color and indicator options for basic.trigger
- plot.sparkline can now open links and popups. Tooltip shows parameter "id" as curve name (label)
- device.dimmer extended with an option "type" to display the switch as button (midi, mini, micro, icon)
- indicator option introduced in all quad design widgets using basic.stateswitch or basic.select
- clock.countdown now accepts ISO time strings, fixed countdown duration instead of an item and a new comparative value as starting condition
- calendar.list uses a new format called "calendardate" in the language file which can be defined to show "today" and "tomorrow" with other date information.
- device.uzsuicon, device.uzsugraph and device.uzsutable are prepared for one-time events (provided by smarthomeNG UZSU plugin as of version 2.1.0)

### Other New Features
- improved spline display for the starting point in device.uzsugraph
- new icons scene_cooking_drink and scene_robovac_dock (thanks to @Pacifia15))
- smarthomeNG and ioBroker drivers: new configurable option "signalBusy" lets "VISU" logo in the top-right corner blink after a new page is loaded (i.e. "monitor" command has been sent) until all subscribed items have been received.
- new weatherservice open-meteo.com
- ioBroker driver now supports subscribing and unsubscribing series for individual plots which enables usage of plot.timeshift with ioBroker (thanks to YellowFlash for testing!)
- new weather service VisualCrossing
- improved vertical alignment of slider track in device.dimmer when no text is configured
- ioBroker driver is now able to provide item properties from the "state" object using the keyword "property", e.g. "myItem.property.lc" to get the "last changed" property for that item
- digest authentication method integrated in CalDav calendar service. Logfile for cURL messages if service is called with debug parameter.
- new design "lightblue" (inspired by ramann)
- new design "darkmode_blue" as combination of darkblue.css and lightblue.css supports dark mode of the device. Custom darkmode combinations can be defined in ./dropins/designs.
- new date format "t" shows "today" and "tomorrow", if applicable. It replaces format definition given in brackets. Example: "t(l), d.m." shows "today, 23.09." or "Wednesday, 25.09."
- smarthomeNG driver has a new ping function to improve stability of websocket connections on sleepy devices. Set an optional config key "ping_interval" in seconds (0 = disabled)

### Improvements
- allowed database modes for series moved into the individual backend drivers
- parameter type "mode" introduced. Templatechecker reads available database modes individually for configured backend.
- docu page design>icons shows all icons in dropins/icons/ws (or .../sw, whatever is configured)
- Highcharts module boost.js is activated on demand for series with 5000 or more data points to speed up rendering (plot.period, plot.sparkline). In plot.xyplot we can not do this since there is no size info. But most likely list items with xy-data are not so big.
- templatechecker now checks the twig syntax of html pages
- console.log is activated in cache mode if parameter "debug" is set to "1" in config.ini
- active elements are allowed on menu buttons in rooms_menu
- offline driver initializes UZSU data for items ending on ".uzsu" if no data are available
- import of black/white jQuery mobile mini icons moved from root.html into <design>.css (for preparation of dark mode support)
- all examples adapted to support dark mode (v3.3 icon handling in menu.html and sides menus)
- use global namespace with native php functions profiting from OpCache (for faster code execution)
- added "advanced" zoom for multiple x axes
- avoid minifying of already minified highcharts files which throws errors in cache mode on new highcharts versions
- templatechecker now directly checks system requirements on page show - not any more only after starting the complete test program
- language support for system checks, lib.updatecheck(), templatechecker and widget assistant
- improved location search for weather services avoids display of company names instead of city names

### Updated Libraries
- Twig template engine: manually inserted security fixes (v1.44.6 -> v1.44.8) and CS (Coding Standard) fixes as preparation for php 8.4 release
- ICS Parser v3.4.1

### Deprecated

### Removed Features
- old widget pathnames w/o namespace (deprecated in v3.3)

### Fixed Bugs
- system page was not shown due to missing infoblock.html if pages were configured to "Smarthome" but pages had not been created yet by the "smartvisu" plugin of smarthomeNG.
- behaviour of device.uzsugraph interpolation style was inconsistent if more than one uzsugraph widget was on a page.
- device.uzsugraph threw an error while a point was dragged
- status.activelist did not display texts if no svg icon was selected, i.e. the default icon "trans.png" was displayed
- corrected background image name "scale_pallets.png" to "scale_pellets.png"
- basic.print did not print timestamps correctly as dates and was not able to colorize them
- links on same page with anchor did not work under all conditions, e.g. href="index.php?page=myPage&anchor=myAnchor"
- config page overwrote the global driver configuration when called from docu or example pages
- small icons on tiles in quad design got too big in v3.3 due to missing CSS definitions for SVG icon
- template checker did not check parameters in double quotes correctly
- template checker gave faulty replacement hint for removed widget basic.text
- template checker threw errors if an item property was not in the properties class
- plot.period and plot.xyplot drawed the plots twice after series update
- notify.add() notification threw errors if message was not of type "text"
- basic.trigger showed oversized button instead of specified type "icon"
- device.uzsutable did not display correctly during and after supersize mode
- widgets used within listviews placed their icons not in the center
- clock.iconclock / icon.clock rounded the position of the short pointer to full hours. Now the pointer moves constantly like on any other analog clock.
- basic.shutter used same CSS classes for positive and negative blade angles in "half" mode.
- plot.period threw errors in advanced zoom mode if multiple x axes were given in the chartoptions parameter
- if item contained a stringified number with leading zero widget.set converted it back to numeric format
- some shortcuts in widget assistant did not work as expected

### Known Bugs
- smartVISU versions 3.3.1 and older display incorrect version info in the update messages since the deprecated format has been removed from version-info.php
- background images defined with "url(myImageLocation)" - used e.g. on tabs - do not yet support dark mode. This can be individually corrected in visu.css.


## 3.4
### New / Changed Widgets
- quad.blind and quad.shutter can be configured to move the shutter on short- or longpress
- new widget plot.timeshift scrolls a plot in time-range by cancelling actual series in this plot and subscribing new series fo the same item(s) with changed start / end times.
- plot.rtr now accepts Highcharts chartOptions object as parameter like plot.period
- IDs are now optional in basic.roundslider and device.rtrslider
- new dynamic icon "icon.slidinggate"
- new widget / dynamic icon "basic.skylight" for a roof window with closed / tilt status and shutter position (thanks to raman)
- new widget / dynamic icon "basic.skylight" for a roof window with closed / tilt status and shutter position (thanks to ramann)
- id parameter is now fully optional in status toast, even with multiple toasts on a page
- new "live" parameters in device.blind, device.dimmer, device.window, quad.dimmer, quad.color, quad.shutter, quad.blind and quad.playercontrol enable the usage of the live mode feture of basic.slider
- new live / silent mode for basic.roundslider (similar to basic.slider)
Expand Down
3 changes: 1 addition & 2 deletions designs/FlatDarkBlue.css
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
*
*/

@import '../icons/ws/jquery.mobile.icons.min.css';

/* Globals */
/* Font
Expand Down Expand Up @@ -1239,7 +1240,6 @@ span.rs-number {
top: -8px;
left: -30px;
font-size: 0.8em;
font-style: bold;
font-family: Arial;
color: #fff;
}
Expand Down Expand Up @@ -1298,5 +1298,4 @@ span.rs-number {
}
.rs-tooltip-text {
font-size: 2.7em;
font-style: bold;
}
17 changes: 8 additions & 9 deletions designs/cube.css
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
*
*/

@import '../icons/ws/jquery.mobile.icons.min.css';

/* Globals */
/* Font
Expand Down Expand Up @@ -207,7 +208,7 @@ html .ui-alt-icon .ui-radio-off:after {
width: 8px;
height: 8px;
border-width: 5px;
border-style: solid;
border-style: solid;
}
.ui-alt-icon.ui-btn.ui-radio-on:after,
.ui-alt-icon .ui-btn.ui-radio-on:after {
Expand Down Expand Up @@ -1077,7 +1078,7 @@ button[disabled],
}

/***********************************************************************************************************
Non-themeroller styles
Non-themeroller styles
************************************************************************************************************/

/* Gradients as in jQuery Mobile 1.3.2
Expand Down Expand Up @@ -1777,7 +1778,7 @@ html .ui-btn.icon5,
background-image: url(images/webkit_clock_ws.svg);
}

/* jQuery Roundslider
/* jQuery Roundslider
-----------------------------------------------------------------------------------------------------------*/

/*** SVG mode - theming - colors ***/
Expand Down Expand Up @@ -1806,14 +1807,13 @@ span.rs-number {
top: -8px;
left: -30px;
font-size: 0.8em;
font-style: bold;
font-family: Arial;
color: #fff;
}

.rs-bar.rs-custom .rs-seperator {
border: 2px solid #875010;
margin-left: -10px;
.rs-bar.rs-custom .rs-seperator {
border: 2px solid #875010;
margin-left: -10px;
}
.rs-bar.rs-custom_1 .rs-seperator {
border: 1px solid #d7d7d7;
Expand All @@ -1830,7 +1830,7 @@ span.rs-number {
}

.rs-handle {
background-color: #838383;
background-color: #838383;
background-image: -webkit-gradient(linear, left top, left bottom, from( #444444 /*{a-bup-background-start}*/), to( #2d2d2d /*{a-bup-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #444444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image: -moz-linear-gradient( #444444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); /* FF3.6 */
Expand Down Expand Up @@ -1868,5 +1868,4 @@ span.rs-number {
}
.rs-tooltip-text {
font-size: 2.7em;
font-style: bold;
}
Loading

0 comments on commit ce3f729

Please sign in to comment.