Zitat von Hochpass
Beitrag anzeigen
Noch mal danke fürs Widget.

/**
* Widget for usage of uzsu plugin
* (c) Michael Würtenberger 2014, 2015
*
* develop v3 RC1
*
* läuft zusammen mit dem visu.js ab v2.8
*
* @param unique id for this widget
* @param a gad/item
* @param headline for popup (optional), default UZSZ
* @param designType for popup design (optional), default = '0',
* expert mode = '1' (value, time, rrule direct input)
* @param pic on (optional), default = clock
* @param pic off (optional), default = clock
* @param valueType (optional), default = bool, supported types are 'bool', 'num', 'text', 'list'
* @param valueParameterList (optional), default set in js depending on valueType
* @param optional color
*/
{% macro uzsu_icon(id, gad_uzsu, gad_headline, gad_designType, pic_on, pic_off, gad_valueType, gad_valueParameterList, color) %}
<span
id="{{ uid(page, id) }}"
data-widget="uzsu.uzsu_icon"
data-item="{{ gad_uzsu }}"
data-headline="{{ gad_headline|default('UZSU') }}"
data-designType="{{ gad_designType | default('0') }}"
data-pic-on="{{ pic_on|deficon('time_timer_switch.svg') }}"
data-pic-off="{{ pic_off|deficon('time_timer_switch.svg') }}"
data-valueType="{{ gad_valueType|default('bool') }}"
data-valueParameterList="{{ implode(gad_valueParameterList) }}"
class="switch">
<a>
<img id="{{ uid }}-off" class="icon" src="{{ pic_off|deficon('time_timer_switch.svg') }}" />
{% if color is empty %}
<img id="{{ uid }}-on" class="icon icon1 hide" src="{{ pic_on|deficon('time_timer_switch.svg') }}" />
{% elseif color == 'icon1' %}
<img id="{{ uid }}-on" class="icon icon1 hide" src="{{ pic_on|deficon('time_timer_switch.svg') }}" />
{% else %}
<img id="{{ uid }}-on" class="icon icon1 hide" style="stroke:{{ color }}; fill:{{ color }};" src="{{ pic_on|deficon('time_timer_switch.svg') }}" />
{% endif %}
</a>
</span>
{% endmacro %}
// Verankerung als Callback in den DOM Elementen
$(document).on('update','[data-widget="uzsu.uzsu_icon"]', uzsuDomUpdate);
$(document).on('click','[data-widget="uzsu.uzsu_icon"]', uzsuDomClick);
$(document).delegate('span[data-widget="uzsu.uzsu_icon"]', {
'draw': function(event) {
if($(this).val() == $(this).attr('data-val-on')) {
$('#' + this.id + '-off').hide();
$('#' + this.id + '-on').show();
}
else {
$('#' + this.id + '-on').hide();
$('#' + this.id + '-off').show();
}
}
});
//----------------------------------------------------------------------------
//Funktionen für das Verankern des Popup auf den Webseiten
//----------------------------------------------------------------------------
function uzsuDomUpdate(event, response) {
// Initialisierung zunächst wird festgestellt, ob Item mit Eigenschaft vorhanden. Wenn nicht: active = false
// ansonsten ist der Status von active gleich dem gesetzten Status
var active = response.length > 0 ? response[0].active : false;
$(this).trigger('draw');
// wenn keine Daten vorhanden, dann ist kein item mit den eigenschaften hinterlegt und es wird nichts gemacht
if (response.length === 0){
alert('DOM Daten für UZSU nicht vorhanden in uzsuDomUpdate !');
return;
}
// Wenn ein Update erfolgt, dann werden die Daten erneut in die Variable uzsu geladen damit sind die UZSU objekte auch in der click Funktion verfügbar
if (response[0].list instanceof Array) {
$(this).data('uzsu', response[0]);
}
else {$(this).data('uzsu', {active : true,list : [] });
}
}
[I][B]- $('#' + this.id + ' img').attr('src', (response == $(this).attr('data-val-on') ? $(this).attr('data-pic-on') : $(this).attr('data-pic-off')));[/B][/I]
+ $(this).val(response);
+ $(this).trigger('draw');
function uzsuDomUpdate(event, response) {
// Initialisierung zunächst wird festgestellt, ob Item mit Eigenschaft vorhanden. Wenn nicht: active = false
// ansonsten ist der Status von active gleich dem gesetzten Status
var active = response.length > 0 ? response[0].active : false;
// Das Icon wird aktiviert, falls Status auf aktiv, ansonsten deaktiviert angezeigt
[I][B] $('#' + this.id + ' img').attr('src',(active ? $(this).attr('data-pic-on') : $(this).attr('data-pic-off')));[/B][/I]
// wenn keine Daten vorhanden, dann ist kein item mit den eigenschaften hinterlegt und es wird nichts gemacht
function uzsuDomUpdate(event, response) {
// Initialisierung zunächst wird festgestellt, ob Item mit Eigenschaft vorhanden. Wenn nicht: active = false
// ansonsten ist der Status von active gleich dem gesetzten Status
var active = response.length > 0 ? response[0].active : false;
// Das Icon wird aktiviert, falls Status auf aktiv, ansonsten deaktiviert angezeigt
[I][B] $(this).val(active);
$(this).trigger('draw');[/B][/I]
// wenn keine Daten vorhanden, dann ist kein item mit den eigenschaften hinterlegt und es wird nichts gemacht

DOM Daten für UZSU nicht vorhanden in uzsuDomClick!
SyntaxError: Using //@ to indicate sourceMappingURL pragmas is deprecated. Use //# instead jquery-2.0.3.min.js:1 Error: http://localhost/smartVISU/vendor/jquery/jquery-2.0.3.min.js is being assigned a //# sourceMappingURL, but already has one SyntaxError: Using //@ to indicate sourceMappingURL pragmas is deprecated. Use //# instead jquery.mobile-1.3.2.min.js:7 Error: http://localhost/smartVISU/vendor/jquery.mobile/jquery.mobile-1.3.2.min.js is being assigned a //# sourceMappingURL, but already has one getPreventDefault() sollte nicht mehr verwendet werden. Verwenden Sie stattdessen defaultPrevented. jquery-2.0.3.min.js:5 Leerer String an getElementById() übergeben. jquery.mobile-1.3.2.min.js:6
getPreventDefault() sollte nicht mehr verwendet werden. Verwenden Sie stattdessen defaultPrevented. jquery-2.0.3.min.js:5:0 Leerer String an getElementById() übergeben. jquery.mobile-1.3.2.min.js:6:0 TypeError: response.list is undefined --> visu.js
for (var numberOfEntry = 0; numberOfEntry < response.list.length; numberOfEntry++) {
timeCron = '';
tabsTime = response.list[numberOfEntry].time.split('<');
# items/my.conf
[eg]
[[Treppe]]
[[[An_Aus]]]
type = bool
[[[[Schaltuhr]]]]
type=dict
uzsu_item=eg.Treppe.An_Aus
cache=True
visu_acl=rw
# plugin.conf
[knx]
class_name = KNX
class_path = plugins.knx
host = 127.0.0.1
port = 6720
# send_time = 600 # update date/time every 600 seconds, default none
# time_ga = 1/1/1 # default none
# date_ga = 1/1/2 # default none
[ow]
class_name = OneWire
class_path = plugins.onewire
[visu]
class_name = WebSocket
class_path = plugins.visu
smartvisu_dir = /var/www/smartVISU
# for Ubuntu 14.04 upwards the base for html has changed
# smartvisu_dir = /var/www/html/smartVISU
[cli]
class_name = CLI
class_path = plugins.cli
ip = 0.0.0.0
update = True
[sql]
class_name = SQL
class_path = plugins.sqlite
[uzsu]
class_name = UZSU
class_path = plugins.uzsu
{% extends "rooms.html" %}
{% block content %}
{% import "widget_uzsu.html" as uzsu %}
{{ uzsu.uzsu_icon('IrgendeinName', 'eg.Treppe.Schaltuhr', 'NameDerUhr') }}
{% endblock %}
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.


Kommentar