From f52f0f0f748eddcc0fe959c6c1e8cbfbf6e8d511 Mon Sep 17 00:00:00 2001
From: wvhn <17801971+wvhn@users.noreply.github.com>
Date: Thu, 14 Dec 2023 18:14:20 +0100
Subject: [PATCH 001/112] prepare new develop
---
changelog.md | 20 ++++++++++++++++++++
readme.md | 6 +++++-
version-info.php | 2 +-
3 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/changelog.md b/changelog.md
index be13e915..54d64111 100755
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,23 @@
+## 3.4.a
+### New / Changed Widgets
+
+### Other New Features
+
+### Improvements
+
+### Updated Libraries
+
+### Deprecated
+
+### Removed Features
+
+### Fixed Bugs
+
+### Known Bugs
+- if item contains a stringified number (e.g. with leading zero). widget.set converts it back to numeric format - so basic.print can not print it as text
+- 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
+
+
## 3.4
### New / Changed Widgets
- quad.blind and quad.shutter can be configured to move the shutter on short- or longpress
diff --git a/readme.md b/readme.md
index 704a7e74..dd197458 100644
--- a/readme.md
+++ b/readme.md
@@ -2,6 +2,10 @@
[![Join the chat at https://gitter.im/sVISU/Lobby](https://badges.gitter.im/sVISU/Lobby.svg)](https://gitter.im/sVISU/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+## Warning ! The current version in this develop branch is experimental and should not be used in productive environments!
+Use version v3.4 from master branch instead.
+
+
## DESCRIPTION
smartVISU is a framework to create a visualisation for a knx-installation with simple html-pages.
To read and write group-telegrams special tags are used.
@@ -22,7 +26,7 @@ SEE: [smartvisu.de](http://www.smartvisu.de)
## SYSTEM REQUIREMENTS
* IP-Network, KNX-Bus
* [smarthomeNG](https://github.com/smarthomeNG), [linknx](http://sourceforge.net/projects/linknx/), [ioBroker](https://github.com/ioBroker/ioBroker), [openHAB](https://www.openhab.org/), [FHEM](https://fhem.de/) or [knxd](https://github.com/knxd/knxd) (deprecated: [eibd](http://www.auto.tuwien.ac.at/~mkoegler/index.php/eibd) ) backend or JSON interface
- * Webserver with PHP 7.3.2 and above. Compatibility with php v8.2 is verified. PHP packages required: libawl-php php-curl php php-json php-xml php-mbstring
+ * Webserver with PHP 7.3.2 and above. Compatibility with php v8.0 is verified. PHP packages required: libawl-php php-curl php php-json php-xml php-mbstring
* Firefox, Chrome, IE, Safari, iPhone, iPad, Android Phone or Android Tablet
diff --git a/version-info.php b/version-info.php
index 25341938..03315170 100644
--- a/version-info.php
+++ b/version-info.php
@@ -2,5 +2,5 @@
define ('config_visu', 'smartVISU');
define ('config_version_major', '3');
define ('config_version_minor', '4');
-define ('config_version_revision', '0');
+define ('config_version_revision', 'a');
?>
From 4cd13d7d6d728a8ed53b0329d038d1843fff366b Mon Sep 17 00:00:00 2001
From: wvhn <17801971+wvhn@users.noreply.github.com>
Date: Fri, 15 Dec 2023 16:18:07 +0100
Subject: [PATCH 002/112] dummy infoblock file for snarthome folder
---
changelog.md | 1 +
pages/smarthome/index.html | 4 ++--
pages/smarthome/infoblock.html | 29 +++++++++++++++++++++++++++++
3 files changed, 32 insertions(+), 2 deletions(-)
create mode 100644 pages/smarthome/infoblock.html
diff --git a/changelog.md b/changelog.md
index 54d64111..c844eb30 100755
--- a/changelog.md
+++ b/changelog.md
@@ -12,6 +12,7 @@
### Removed Features
### 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.
### Known Bugs
- if item contains a stringified number (e.g. with leading zero). widget.set converts it back to numeric format - so basic.print can not print it as text
diff --git a/pages/smarthome/index.html b/pages/smarthome/index.html
index 9f18a105..8ffac2ed 100644
--- a/pages/smarthome/index.html
+++ b/pages/smarthome/index.html
@@ -2,7 +2,7 @@
* -----------------------------------------------------------------------------
* @package smartVISU
* @author Martin Gleiß
-* @copyright 2012 - 2015
+* @copyright 2012 - 2023
* @license GPL [http://www.gnu.de]
* -----------------------------------------------------------------------------
*/
@@ -43,7 +43,7 @@
{% block content %}
- {% if config_lang != 'de' %}
+ {% if lang('baselang') != 'de' %}
Welcome to smartVISU !
You are just a few steps away from setting up your own visualization.
The folder you have just configured is for pages auto-generated by smarthoneNG or other backend systems. By now, it is still empty.
diff --git a/pages/smarthome/infoblock.html b/pages/smarthome/infoblock.html
new file mode 100644
index 00000000..d967ada3
--- /dev/null
+++ b/pages/smarthome/infoblock.html
@@ -0,0 +1,29 @@
+/**
+* -----------------------------------------------------------------------------
+* @package smartVISU
+* @author Wolfram v. Hülsen
+* @copyright 2021
+* @license GPL [http://www.gnu.de]
+*
+* dummy info block - to be displayed if user configured infoblock.html is missing
+* -----------------------------------------------------------------------------
+*/
+
+
{% filter trim|escape|nl2br %}{% verbatim %}
+ {% import "@widgets/mywidget.html" as mywidget %}
+ {% endverbatim %}{% endfilter %}
+ {% filter trim|escape|nl2br %}{% verbatim %}
+ ;define a title or delete the following line
+ ;@label My Language
+ ;define the base language
+ extends = "en"
+
+ ;do not forget the category names
+ [format]
+ kwh = "%01,3f kWh"
+ ...
+ {% endverbatim %}{% endfilter %}
+ Y Axis 1 | Y Axis 2 | Y Axis 3 | Y Axis 4 | +|
Activate axis | + | |||
Y-axis min value | + | |||
Y-axis max value | + | |||
Y-axis position | ++ | + | + | + |
Y-axis scale type | ++ | + | + | + |
Y-axis unit | + |
{% filter trim|escape|nl2br %}{% verbatim %}
+ {{ basic.flip('', 'bath.light.switch') }}
+ {{ basic.print('', 'bath.light.switch', 'text', 'VAR=="1"?"Schaltuhr ist an":"Schalter ist aus"','','','myFlip1','tooltip') }} {% endverbatim %}{% endfilter %}
+ {{ device.dimmer('', 'Dimmer', 'bath.light.switch', 'bath.light.value', '', '', '', '', '', '', '', '', '', '', 'left', 0, 'mini') }}
+ {{ txt|e }}
{{ basic.slider('', item_value, min, max, step, 'horizontal', value_display|default('none'), min_display, max_display, live) }}
+ .block .dimmer-left p {
+ text-align: left;
+ }
+
+ {% filter trim|escape|nl2br %}{% verbatim %}
{{ clock.countdown('t', 'bath.light.switch', 'bath.light.timestamp', 'bath.light.timer', '5s'}}
- {{ clock.countdown('t2', 'bath.light.switch2', 'bath.light.timestamp2', 'bath.light.timer2', '1s', 'zero', ' ') }}
+ {{ clock.countdown('t2', 'bath.light.switch2', 'bath.light.timestamp2', '15s', '1s', 'zero', ' ', 1) }}
{% endverbatim %}{% endfilter %}
+ blue bin[icon] = message_garbage
+ blue bin[color] = #0000FF
+
+
+ default_img_list[icon] = message_achtung
+ default_img_list[color] = "rgb(32, 178, 170)"
+
+
+ blue bin[icon] = message_garbage
+ blue bin[color] = #0000FF
+
+
+ default_img_waste[icon] = message_achtung
+ default_img_waste[color] = "rgb(32, 178, 170)"
+
+ Y Axis 1 | Y Axis 2 | Y Axis 3 | Y Axis 4 | +Y {{ lang('plot_analyser', 'Axis') }} 1 | Y {{ lang('plot_analyser', 'Axis') }} 2 | Y {{ lang('plot_analyser', 'Axis') }} 3 | Y {{ lang('plot_analyser', 'Axis') }} 4 | ||
Activate axis | + | {{ lang('plot_analyser', 'Axis') }} {{ lang('plot_analyser', 'active') }} | |||||||
Y-axis min value | + | Y min | |||||||
Y-axis max value | + | Y max | |||||||
Y-axis position | -- | - | - | + | Y {{ lang('plot_analyser', 'Axis') }} Position | ++ | + | + | |
Y-axis scale type | +Y {{ lang('plot_analyser', 'Axis') }} {{ lang('plot_analyser', 'scale') }} | ||||||||
Y-axis unit | + | Y {{ lang('plot_analyser', 'Axis') }} {{ lang('plot_analyser', 'Unit') }} |
This tool should help you to create widgets for your smartvisu-Web-Interface. -It will assist you with autocompletes for widgets, items, icons, and colors. -After you have selected a widget (like basic.symbol...) you will get a tooltip for this kind of widget. The actual parameter is highlighted in red and all the available details will be shown in the tooltip-window. -For icons and colors you will see a preview in the tooltip-window. -After completing the wiget you can render it in a new window. The widget in the rendered window is fully working, except there is an error in the created widget, you will get a TWIG-Error. +
This tool should help you to create widgets for your smartvisu-Web-Interface. It will assist you with autocompletes for widgets, items, icons and colors. The autocomplete mode can be selected.
+Just start entering a widget name in the editor or press CTRL-Space to open the widget autocomplete. After you have selected a widget (like basic.symbol...) and enter the opening bracket you will get a tooltip for this widget.
+The actual parameter is highlighted in red and all the available details will be shown in the tooltip-window. For icons and colors you will see a preview in the tooltip-window. Autocompletes will insert the parameters with quotes.
+If no autocomplete is present or you do not use it make sure to enter the quotes manually.
+After completing the wiget you can render it in a new window. The widget in the rendered window is fully working. If there is a syntax error in the created widget, you will get a TWIG-Error.
The final widget including the brackets "{{" + "}}" will be stored on rendering to the clipboard.
You can paste the widget-code directly to your html-file.
Right now you can render multiple widgets, you have to separate the different widgets
-by a <br>
-TAG
You can render multiple widgets by separating them by a <br>
-TAG
-plot.period('', ['licht.og.terrasse.screens.warm.dimmen', 'licht.og.terrasse.screens.kalt.dimmen', 'licht.og.terrasse.decke.dimmen'], 'max', '1w', 'now', '0', '110', '1000', ['Screens warm', 'Screens kalt', 'Decke'], ['#daa', '#aad', '#955'], ['stair', 'stair', 'stair'], ['Uhrzeit', 'Helligkeit'], 'advanced', '', '', '', '', '', { yAxis: [ { tickInterval: 40 } ], legend: {align: 'right', verticalAlign: 'top', y: 50, layout: 'vertical'}, chart: { marginRight: 110} })
+plot.period('', ['licht.og.terrasse.screens.warm.dimmen', 'licht.og.terrasse.screens.kalt.dimmen', 'licht.og.terrasse.decke.dimmen'], 'max', '1w', 'now', '0', '110', '1000', ['Screens warm', 'Screens kalt', 'Decke'], ['#daa', '#aad', '#955'], ['stair', 'stair', 'stair'], ['Uhrzeit', 'Helligkeit'], 'advanced', '', '', '', '', '', { yAxis: [ { tickInterval: 40 } ], legend: {align: 'right', verticalAlign: 'top', y: 50, layout: 'vertical'}, chart: { marginRight: 110} })
<br>
basic.stateswitch('','OG.Bad.Licht','midi','','light_ceiling_light','Licht Bad','','','','','')
<br>
quad.dimmer('Lueftungsstufe1', 'Lüftungsstufe', 'Haustechnik.Lueftung', 'Haustechnik.Lueftung.stufe', 0, 100, 5, icon.ventilation(), icon.ventilation('','','Haustechnik.Lueftung.stufe'), '', '', '', 0, 100, '', '', '', '', '', '', '', '', '', '', '', '', '', ['switch', 'value_popup'])
-
-Change-Log
-2021.05.01 - Version 1.2.0
-
-- added support for all valid values of widget-types from twig-docu
-- some optical changes
-- added widget specific colours to autocomplete dict for colors (for example 'hidden','blank' for basic.print)
-
-2021.01.18 - Version 1.1.0
-
-- changed handling for "render in new window" - if there is no Window a new one will be opened, else the opened window would be refreshed, also if there is a twig error
-- more fixes for "nasty", "nested" widgets
-- some optical changes
-
-2020.11.08 - Version 1.0.0
-
-- added support for multi-widget creation (widgets have to be separated by <br>-TAG)
-- fixed problem for "nasty", "nested" widgets
-- added check for all brackets closed before rendering
-
-2020.05.15 - Version 1.0.0
-
-- added switching for autoclose quotes
-- added filter for item-autocomplete based on item data-type
-- added checkbox to open agiain new window for the preview
-- added data-types to items in basic-widgets (basic.html)
-- added alert when receiving "strange" widget-informations (most based on README.html-Files in /dropins/widgets-folder)
-
-2020.05.03 - Version 1.0.0
-
-- added autocomplete dict for parameters with the following names "type", "mode", "style", "colormodel", "orientation", "valueType"
-
-2020.05.02 - Version 1.0.0
-
-- set filter to *svg while collectin icons in /icon/ws/ ( There is a stylesheet in the folder)
-- until no widget is selected the Widget-only dict is acive
-- added Close-Button to the Tooltip-Window
-- added closeBrackets feature for CodeMirror and solved problem with CSS
-- added direct copy of the final widget to the clipboard when rendering the widget
-
-2020.05.01 - Version 1.0.0
-
-- added support for nested widgets like
{{ basic.symbol('', 'bath.light.switch', '', icon.light('','','bath.light.value') ) }}
-
-- added bracket-matching
-- added autoswitch to dict depending on parameter -> type / you can switch to a dict using the Hot-Keys
-- removed deprecated widgets from widget generator
-
-2020.04.26 - Version 1.0.0
-
-- added search in autocompletes with wildcard (a word with 3 chars will match all entries in the acitve dict like
*your_chars*
-- added Hot-Key 'CTRL+Space' to activate the autocomplete-hint without entering a search key
-- added preview in tooltip for colors and icons
-
-2020.04.25 - launch of Version 1.0.0
-
-- Beta Version for tests distributed
-
-Requirements
-actual smartvisu-Version - you can find it here
Hot-Keys
@@ -150,12 +87,8 @@ Hot-Keys
-STRG+0
-switch OFF autocomplete-Dict
-
-
STRG+1
-switch ON autocomplete-Dict
+only Items in autocomplete-Dict
STRG+2
@@ -178,14 +111,6 @@ Hot-Keys
autocomplete-Dict is OFF
-STRG+7
-switch ON/OFF autocomplete for Ouotes (1) - take some time to build the autocomplete
-
-
-STRG+8
-only Items in autocomplete-Dict
-
-
STRG+9
switch ON/OFF Wildcard search in autocomplete dict
@@ -203,8 +128,6 @@ Hot-Keys
-(1) when autocomplete for quotes is on - the autocomplete dict will return all values without quotes
- when autocomplete for quotes is off - the autocomplete dictionary will return all values with quotes
Known Issues
It is possible to render the new widget into the iframe on the actual page.
@@ -215,8 +138,7 @@
Known Issues
Logic to create masteritem.json from shNG
Only needed for smarthomeNG <= v1.7.2. As of v1.8 the smartvisu plugin writes the file as default.
-
-#!/usr/bin/env python3
+#!/usr/bin/env python3
# create_master_item.py
import json
from lib.item import Items
diff --git a/lib/widget_assistant/README_DE.html b/lib/widget_assistant/README_DE.html
new file mode 100644
index 00000000..a672ceeb
--- /dev/null
+++ b/lib/widget_assistant/README_DE.html
@@ -0,0 +1,156 @@
+
+
+smartvisu - Widget Assistant
+Inhalt
+
+- Funktionsweise
+- Hot-Keys
+- Bekannte Probleme
+- Logik zum Erstellen der masteritem.json in shNG
+- Skript zum Erstellen der masteritem.json in FHEM
+
+
+Funktionsweise
+Dieses Tool hilft bei der Erstellung von Widgets für Ihre Visualisierung mit smartVISU.
+Es unterstützt mit Autovervollständigung vorhandener und im Kontext zulässiger Widgets, Items, Icons und Farben. Der Modus der Autovervollständigung kann ausgewählt werden.
+Beginnen Sie einfach im Editor mit der Eingabe eines Widget-Namens oder öffnen Sie die Liste mit CTRL-Leerzeichen. Nachdem Sie ein Widget ausgewählt haben (z.B. basic.symbol...) und die erste Klammer eintippen,
+wird ein Fenster mit Erläuterungen (Tooltip) für dieses Widget angezeigt. Der jeweils zu bearbeitende Parameter wird in roter Schrift angezeigt und alle dazu verfügbaren Details werden darunter gelistet.
+Für Icons und Farben wird eine Vorschau im Tooltip angezeigt. Alle Parameter müssen mit Anführungszeichen eingegeben werden, wobei die Autovervollständigung die Parameter automatisch in Anführungszeichen setzt.
+Nachdem das Widget vollständig eingegeben ist, können Sie es entweder auf dieser Seite, oder in einem neuen Fenster (empfohlen) anzeigen lassen und live testen. Das Widget ist voll funktionsfähig.
+Es wird lediglich ein Twig-Error angezeigt, wenn ein Fehler in der Syntax ist. Zudem wird der eingegebene Widget Code einschließlich der Klammern "{{" + "}}" in die Zwischenablage
+kopiert und kann direkt in Ihre Visu-Seiten eingefügt werden.
+Man kann mehrere Widgets gleichezitig rendern, indem man sie mit einem <br>
-TAG trennt.
+Beispiel:
+plot.period('', ['licht.og.terrasse.screens.warm.dimmen', 'licht.og.terrasse.screens.kalt.dimmen', 'licht.og.terrasse.decke.dimmen'], 'max', '1w', 'now', '0', '110', '1000', ['Screens warm', 'Screens kalt', 'Decke'], ['#daa', '#aad', '#955'], ['stair', 'stair', 'stair'], ['Uhrzeit', 'Helligkeit'], 'advanced', '', '', '', '', '', { yAxis: [ { tickInterval: 40 } ], legend: {align: 'right', verticalAlign: 'top', y: 50, layout: 'vertical'}, chart: { marginRight: 110} })
+<br>
+basic.stateswitch('','OG.Bad.Licht','midi','','light_ceiling_light','Licht Bad','','','','','')
+<br>
+quad.dimmer('Lueftungsstufe1', 'Lüftungsstufe', 'Haustechnik.Lueftung', 'Haustechnik.Lueftung.stufe', 0, 100, 5, icon.ventilation(), icon.ventilation('','','Haustechnik.Lueftung.stufe'), '', '', '', 0, 100, '', '', '', '', '', '', '', '', '', '', '', '', '', ['switch', 'value_popup'])
+
+
+Hot-Keys
+
+
+
+Kurzbefehl
+Funktion
+
+
+
+
+STRG+1
+Autovervollständigung nur für Items
+
+
+STRG+2
+Autovervollständigung nur für Widgets
+
+
+STRG+3
+Autovervollständigung nur für Icons
+
+
+STRG+4
+Autovervollständigung für alles
+
+
+STRG+5
+Autovervollständigung nur für Farben
+
+
+STRG+6
+Autovervollständigung AUS
+
+
+STRG+9
+Platzhaltersuche für Autovervollständigung ein/ausschalten
+
+
+STRG+Space
+öffnet die aktuelle Liste zur Autovervollständigung
+
+
+STRG+F
+Ausdruck im Code suchen
+
+
+STRG+SHIFT+R
+Ausdruck im Code ersetzen - ENTER wechselt zum Ersatz-Ausdruck
+
+
+
+
+Bekannte Probleme
+Man kann das neue Widget in den iframe auf der aktuellen Seite rendern. Dies wird jedoch die geladene index.php zerstören, so dass Probleme in der weiteren Navigation in smartVISU entstehen.
+Derzeit gibt es dafür nur die Lösung, die Seite neu zu laden (CTRL+F5 / CTRL + Shift + R).
+
+Logik zum Erstellen der masteritem.json in shNG
+Wird nur für shNG Versionen <= v1.7.2 benötigt. Ab v1.8 erstellt das smartvisu plugin die Datei standardmäßig.
+#!/usr/bin/env python3
+# create_master_item.py
+import json
+from lib.item import Items
+items = Items.get_instance()
+items_sorted = sorted(items.return_items(), key=lambda k: str.lower(k['_path']), reverse=False)
+item_list = []
+for item in items_sorted:
+ item_list.append(item._path + "|" + item._type )
+f = open("/var/www/html/smartvisu/pages/YOUR_PAGES/masteritem.json", "w")
+f.write(json.dumps(item_list))
+f.close()
+
+
+Skript zum Erstellen der masteritem.json in FHEM
+Ein Skript ist im fronthem / smartVISU Forum verfügbar
+https://forum.fhem.de/index.php/topic,118508.msg1135044.html#msg1135044
+
diff --git a/lib/widget_assistant/widget_assistant.js b/lib/widget_assistant/widget_assistant.js
index a4ab1fbe..6629607c 100644
--- a/lib/widget_assistant/widget_assistant.js
+++ b/lib/widget_assistant/widget_assistant.js
@@ -8,7 +8,7 @@
// in einem Popup angezeigt.
//
//
-// (c) Andre Kohler - 2020
+// (c) Andre Kohler 2020 - 2024
// license GPL [http://www.gnu.de]
//
@@ -84,42 +84,42 @@ function removeBalancedBrackets(text)
{
lastpos = BraceArray.pop()
txt2Replace = newText.substr(lastpos,i-lastpos+1)
- console.log(txt2Replace)
+ // console.log(txt2Replace)
replaceLength = txt2Replace.length
newText = newText.replace(txt2Replace, "")
i = i - replaceLength
Laenge = Laenge - replaceLength
- console.log(newText+"\n")
+ // console.log(newText+"\n")
continue
}
if (newText.substr(i,1) == "]" && SquareArray.length >0)
{
lastpos = SquareArray.pop()
txt2Replace = newText.substr(lastpos,i-lastpos+1)
- console.log(txt2Replace)
+ // console.log(txt2Replace)
replaceLength = txt2Replace.length
newText = newText.replace(txt2Replace, "")
i = i - replaceLength
Laenge = Laenge - replaceLength
- console.log(newText+"\n")
+ // console.log(newText+"\n")
continue
}
if (newText.substr(i,1) == "}" && CurlyArray.length >0)
{
lastpos = CurlyArray.pop()
txt2Replace = newText.substr(lastpos,i-lastpos+1)
- console.log(txt2Replace)
+ // console.log(txt2Replace)
replaceLength = txt2Replace.length
newText = newText.replace(txt2Replace, "")
i = i - replaceLength
Laenge = Laenge - replaceLength
- console.log(newText+"\n")
+ // console.log(newText+"\n")
continue
}
}
- console.log("\n"+"BraceCount : "+BraceArray.length)
- console.log("SquareCount : "+SquareArray.length)
- console.log("CurlyCount : "+CurlyArray.length)
+ // console.log("\n"+"BraceCount : "+BraceArray.length)
+ // console.log("SquareCount : "+SquareArray.length)
+ // console.log("CurlyCount : "+CurlyArray.length)
if (BraceArray.length == 0 && SquareArray == 0 && CurlyArray.length == 0)
{ allBracketsClosed = true }
else
@@ -189,7 +189,7 @@ function ChangeDict(selectedDict,myKey,displayKey,sl_SendNoChange)
last_Param = actParam
- console.log('Change Dict')
+ // console.log('Change Dict')
switch (selectedDict)
{
case 1:
@@ -594,7 +594,7 @@ function TooltipChecker(cm)
CursorPos = cm.getCursor()
actLine = CursorPos.line
actColumn = CursorPos.ch
- console.log('Line : ' + actLine+ ' Column : '+actColumn)
+ // console.log('Line : ' + actLine+ ' Column : '+actColumn)
txtCode = widgetCodeMirror.getValue()
realLength = txtCode.length
@@ -662,7 +662,7 @@ function TooltipChecker(cm)
{
try
{
- console.log('nothing to do for Preview of colors/icons in tooltip')
+ // console.log('nothing to do for Preview of colors/icons in tooltip')
myIcon =""
myIconVisible = "hidden"
myActColor = ""
@@ -772,7 +772,7 @@ function TooltipChecker(cm)
displayKey = ''
for (type in myWidgetJson[actWidgetName]['param'][actParam]['valid_values'])
{
- console.log("Type : " + myWidgetJson[actWidgetName]['param'][actParam]['valid_values'][type])
+ // console.log("Type : " + myWidgetJson[actWidgetName]['param'][actParam]['valid_values'][type])
myType = myWidgetJson[actWidgetName]['param'][actParam]['valid_values'][type]
myRegex = myRegex + '\\| Item.*'+myType+'|'
displayKey = displayKey + " " +myType +' |'
@@ -786,7 +786,7 @@ function TooltipChecker(cm)
if (actParam != last_Param && myWidgetJson[actWidgetName]['param'][actParam].hasOwnProperty("type"))
{
- console.log("found Parameter Type")
+ // console.log("found Parameter Type")
switch (true)
{
@@ -863,9 +863,9 @@ function TooltipChecker(cm)
myToolTipHdl.innerHTML +='deprecated :'+ myWidgetJson[actWidgetName]['deprecated']+'
'
}
myToolTipHdl.innerHTML += myToolMacro.replace('%param%',newParam)
- myToolTipHdl.innerHTML +='
Description
'+ myDescription
+ myToolTipHdl.innerHTML +='
'+ sv_lang['widgetassi']['description'] +'
'+ myDescription
paramKey = ("00" + CommaCount).slice(-2);
- myToolTipHdl.innerHTML +='
aktueller Parameter : '+actParam+'
'
+ myToolTipHdl.innerHTML +='
'+ sv_lang['widgetassi']['actual'] +'Parameter: '+actParam+'
'
// Display all the parameters
for (param in myWidgetJson[actWidgetName]['param'][actParam])
{
@@ -914,7 +914,7 @@ function registerAutocompleteHelper(name, curDict) {
var start = cur.ch,
end = start;
- console.log('Autocomplete called - autocompleteHint')
+ // console.log('Autocomplete called - autocompleteHint')
var charexp = /[\w\.\'\"$]+/;
while (end < curLine.length && charexp.test(curLine.charAt(end))) ++end;
while (start && charexp.test(curLine.charAt(start - 1))) --start;
@@ -1038,7 +1038,7 @@ function add_2_Dict(add2Dict,widget2check)
myDisplayText = myValue + " "
myCompleteDict.push({ text: ""+myValue+"", displayText: myDisplayText.substr(0,18)+" | " + myParamType+"@"+myWidget });
myCompleteDictwithQuotes.push({ text: "'"+myValue+"'", displayText: myDisplayText.substr(0,18)+" | " + myParamType+"@"+myWidget });
- console.log("added spec. Parameter to dict :" + myValue+" | " + myParamType+"@"+myWidget )
+ // console.log("added spec. Parameter to dict :" + myValue+" | " + myParamType+"@"+myWidget )
}
}
@@ -1060,7 +1060,7 @@ function CheckValidValues()
{
if(myWidgetJson[myWidget]['param'][actParam]['type'] != 'item')
{
- console.log(myWidget + '-> Param : '+actParam + '-> valid_values :' + myWidgetJson[myWidget]['param'][actParam]['valid_values']+'|')
+ // console.log(myWidget + '-> Param : '+actParam + '-> valid_values :' + myWidgetJson[myWidget]['param'][actParam]['valid_values']+'|')
myParamType = actParam
add_2_Dict(true,myWidget)
@@ -1071,9 +1071,9 @@ function CheckValidValues()
}
}
-//************************************************************************
-//function to change Dict to Auto-close quotes
-//***********************************************************************
+/*******************************************************************************************
+* function to change Dict to Auto-close quotes - deactivated after improvement of autoclose
+********************************************************************************************
function changeCloseBrackets(byKey)
{
quotestate = document.getElementById("switch_quotes").checked
@@ -1117,3 +1117,4 @@ function changeCloseBrackets(byKey)
}
console.log("changeCloseBrackets")
}
+*/
\ No newline at end of file
diff --git a/pages/base/widget_assistant.html b/pages/base/widget_assistant.html
index 200f24a5..33058929 100644
--- a/pages/base/widget_assistant.html
+++ b/pages/base/widget_assistant.html
@@ -107,100 +107,83 @@
{% set actPage = config_pages %}
-
-
-
-
+
+
+
-
-
+
+
- - | -
- Items loaded
- - - Colors loaded - - - Icons loaded - - Widgets loaded - |
- - - | -- - | -
-
-
-
- |
-
-
- - | -
- |
-
-
-
-
+ Items {{ lang('templatechecker', 'loaded') }} + {{ lang('widgetassi', 'colors') }} {{ lang('templatechecker', 'loaded') }} + Icons {{ lang('templatechecker', 'loaded') }} + Widgets {{ lang('templatechecker', 'loaded') }} + |
+ + + | ++ + | +
+
+
+
+ |
+
+ | +
+ |
+
- Thanks to all our supporters! Don't hesitate to contact me, if you have wishes or problems!
+ Thanks to all our supporters!
+ Jonathan Goode and team for the PHP ICS Parser
+ Licensed under the MIT license
+
Marijn Haverbeke and team for codemirror
Licensed under the MIT license
+ Soundar for the jQuery roundslider plugin
+ Licensed under the MIT license
+
+ Kamran Ahmed for the jQuery toast plugin
+ Licensed under the MIT license
+