diff --git a/fhem/contrib/YAF/FHEM/YAF/widgets/fht80/fht80.pm b/fhem/contrib/YAF/FHEM/YAF/widgets/fht80/fht80.pm
index e14f02b49..69ed02965 100644
--- a/fhem/contrib/YAF/FHEM/YAF/widgets/fht80/fht80.pm
+++ b/fhem/contrib/YAF/FHEM/YAF/widgets/fht80/fht80.pm
@@ -71,6 +71,8 @@ sub fht80_get_widgetcss() {
sub fht80_get_widgetjs() {
my $output = '
+ function fht80_on_click(view_id, widget_id) {
+ }
function fht80_update_widget(view_id, widget_id) {
$.ajax({
type: "GET",
@@ -206,8 +208,8 @@ sub fht80_get_temp() {
my $desi = fht80_isdef($defs{$fhemname}{READINGS}{"desired-temp"}{VAL}, "");
my $battery = fht80_isdef($defs{$fhemname}{READINGS}{battery}{VAL}, "");
my $nomode = YAF_getWidgetAttribute($viewid, $widgetid, "nomode", 0);
- my $labeltype = YAF_getWidgetAttribute($viewid, $widgetid, "labeltype", "");
- $ret[1] = YAF_getWidgetAttribute($viewid, $widgetid, "size", 1); #we don't process the size, so put it in the return array right away.
+ my $labeltype = YAF_getWidgetAttribute($viewid, $widgetid, "labeltype", "");
+ $ret[1] = YAF_getWidgetAttribute($viewid, $widgetid, "size", 1); #we don't process the size, so put it in the return array right away.
#process data
my $label = "";
diff --git a/fhem/contrib/YAF/FHEM/YAF/widgets/fhttk/fhttk.pm b/fhem/contrib/YAF/FHEM/YAF/widgets/fhttk/fhttk.pm
index 4706d36c6..2bd961859 100644
--- a/fhem/contrib/YAF/FHEM/YAF/widgets/fhttk/fhttk.pm
+++ b/fhem/contrib/YAF/FHEM/YAF/widgets/fhttk/fhttk.pm
@@ -70,9 +70,11 @@ sub fhttk_get_widgetcss() {
sub fhttk_get_widgetjs() {
my $output = '
- function endsWith(str, suffix) {
+ function fhttk_endsWith(str, suffix) {
return str.indexOf(suffix, str.length - suffix.length) !== -1;
}
+ function fhttk_on_click(view_id, widget_id) {
+ }
function fhttk_update_widget(view_id, widget_id) {
$.ajax({
type: "GET",
@@ -83,7 +85,7 @@ sub fhttk_get_widgetjs() {
success: function(get_state) {
var widget = $("#widget_"+view_id+"_"+widget_id);
$("#widget_"+view_id+"_"+widget_id).attr("title",get_state);
- if (endsWith(get_state,"Open")) {
+ if (fhttk_endsWith(get_state,"Open")) {
if (widget.hasClass("widget_fhttk_closed")) {
widget.removeClass("widget_fhttk_closed");
}
@@ -92,7 +94,7 @@ sub fhttk_get_widgetjs() {
}
widget.html(" ");
}
- else if (endsWith(get_state,"Closed")) {
+ else if (fhttk_endsWith(get_state,"Closed")) {
if (!widget.hasClass("widget_fhttk_closed")) {
widget.addClass("widget_fhttk_closed");
}
diff --git a/fhem/contrib/YAF/FHEM/YAF/widgets/generic/generic.pm b/fhem/contrib/YAF/FHEM/YAF/widgets/generic/generic.pm
new file mode 100644
index 000000000..9cce2a166
--- /dev/null
+++ b/fhem/contrib/YAF/FHEM/YAF/widgets/generic/generic.pm
@@ -0,0 +1,296 @@
+########################################################################################
+#
+# generic.pm
+#
+# YAF - Yet Another Floorplan
+# FHEM Projektgruppe Hochschule Karlsruhe, 2013
+# Markus Mangei, Daniel Weisensee, Prof. Dr. Peter A. Henning
+#
+# generic Widget: Marc Pro
+#
+########################################################################################
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+########################################################################################
+package main;
+
+use strict;
+use warnings;
+
+my $yaf_version = 0.41;
+
+use vars qw(%_GET);
+use vars qw(%defs);
+
+#######################################################################################
+#
+# generic_get_widgetcss - Create the CSS code for this widget
+#
+# no parameter
+#
+########################################################################################
+sub generic_get_widgetcss() {
+ my $output = "
+ .widget_generic {
+ width: 200px;
+ height: 50px;
+ background-repeat:no-repeat;
+ background-position:center center;
+ opacity:1 !important;
+ text-align: center;
+ }
+ ";
+ return $output;
+}
+
+########################################################################################
+#
+# generic_get_widgetjs - Create the javascript code for this widget
+#
+# no parameter
+#
+########################################################################################
+
+sub generic_get_widgetjs() {
+
+ my $output = '
+ function generic_endsWith(str, suffix) {
+ if(!str) {
+ return false;
+ }
+ return str.indexOf(suffix, str.length - suffix.length) !== -1;
+ }
+ function generic_on_click(view_id, widget_id) {
+ }
+ function generic_update_widget(view_id, widget_id) {
+ $.ajax({
+ type: "GET",
+ async: true,
+ url: "../../ajax/widget/generic/get_state",
+ data: "view_id="+view_id+"&widget_id="+widget_id,
+ context: document.body,
+ success: function(get_state) {
+ var data = jQuery.parseJSON(get_state);
+ var label = data[0];
+ var icon = data[1];
+ var statesave = $("#widget_generic_state_"+view_id+"_"+widget_id);
+ var state = data[2];
+ var statespan = data[3];
+ var fhemname = data[4];
+ var widget = $("#widget_"+view_id+"_"+widget_id);
+
+ if (!statesave.hasClass("widget_generic_"+state)) {
+ if(generic_endsWith(icon,"png")) {
+ var iconstring = label+" "+statespan;
+ widget.html(iconstring);
+ } else {
+ var textstring = ""+label+" " + state;
+ widget.html(textstring+" "+statespan);
+ }
+ }
+ }
+ });
+ }';
+
+ # $output .='
+ # function generic_get_reading_keys() {
+ # $.ajax({
+ # type: "GET",
+ # async: true,
+ # url: "../../ajax/widget/generic/get_reading_keys",
+ # data: "fhemname="+$("#combobox").val(),
+ # context: document.body,
+ # success: function(dataarr) {
+ # var data = jQuery.parseJSON(dataarr);
+ # //alert(data[0]);
+ # var mySelect = $("#generic_combobox_readings");
+ # mySelect
+ # .find("option")
+ # .remove()
+ # .end()
+ # ;
+# ;
+ # $.each(data, function(val,text) {
+ # mySelect.append(
+ # $(" ").val(text).html(text)
+ # );
+ # });
+ # }
+ # });
+ # }
+ # ';
+ return $output;
+}
+
+########################################################################################
+#
+# generic_getwidgethtml - HTML code for this widget
+#
+# no parameter
+#
+########################################################################################
+
+sub generic_get_widgethtml() {
+ my $output = " ";
+ return $output;
+}
+
+########################################################################################
+#
+# generic_get_addwidget_setup_html - Create the selection of devices for this widget
+#
+# no parameter
+#
+########################################################################################
+
+sub generic_get_addwidget_setup_html() {
+ my $output = "";
+ $output = "";
+ $output .="";
+ my @list = (keys %defs);
+
+ foreach my $d (sort @list) {
+ my $type = $defs{$d}{TYPE};
+ my $name = $defs{$d}{NAME};
+ if(defined $name) {
+ $output .= "$name ";
+ }
+ }
+
+ $output .= " ";
+ # $output .= " Use Reading as state: ";
+ # $output .= "TEST ";
+ return $output;
+}
+
+# sub generic_get_reading_keys() {
+ # my $fhemname = $_GET{"fhemname"};
+
+ # my @ret = ();
+ # Log 3, "Loading Shit";
+ # foreach my $r (keys %{$defs{$fhemname}{READINGS}}) {
+ # Log 3,$r;
+ # push(@ret,$r);
+ # }
+
+ # return encode_json(\@ret);
+# }
+
+########################################################################################
+#
+# generic_get_addwidget_prepare_attributes -
+#
+#
+# no parameter
+#
+########################################################################################
+
+sub generic_get_addwidget_prepare_attributes() {
+ my $output = '
+ var temp_array = new Array();
+ temp_array[0] = "fhemname";
+ temp_array[1] = $("#combobox option:selected").val()
+ attributes_array[0] = temp_array;
+ ';
+ return $output;
+}
+
+########################################################################################
+#
+# generic_getwidget_html - HTML code for this widget. DO WE NEED THIS ? SEE ABOVE
+# DO WE NEED IT? WHO KNOWS. (It looks like this one fills the initial html of the
+# widget, so let's keep it for science.)
+#
+# no parameter
+#
+########################################################################################
+
+sub generic_getwidget_html() {
+ my $output = " ";
+ return $output;
+}
+
+########################################################################################
+#
+# generic_get_lamp_status - return the state of the lamp
+#
+# no parameter
+#
+########################################################################################
+
+sub generic_get_state() {
+ my $fhemname = YAF_getWidgetAttribute($_GET{"view_id"}, $_GET{"widget_id"}, "fhemname");
+ my $labeltype = YAF_getWidgetAttribute($_GET{"view_id"}, $_GET{"widget_id"}, "labeltype","");
+ my $statetype = YAF_getWidgetAttribute($_GET{"view_id"}, $_GET{"widget_id"}, "statetype","");
+ my $showlabel = YAF_getWidgetAttribute($_GET{"view_id"}, $_GET{"widget_id"}, "showlabel","1");
+ my $showicon = YAF_getWidgetAttribute($_GET{"view_id"}, $_GET{"widget_id"}, "showicon","1");
+
+ my $d = $defs{$fhemname};
+ my $state = $d->{STATE};
+ my $iconpath = "/fhem/images/default/";
+ my @ret = ();
+
+ if(!defined $state) {
+ $state = "no-state-defined";
+ }
+
+ if(defined $d) {
+ my $devStateIcon = AttrVal($fhemname,"devStateIcon",undef);
+ if(defined $devStateIcon) {
+ foreach my $entry (split (/ /,$devStateIcon)) {
+ my @keyval = split(/:/,$entry);
+ if($keyval[0] =~ $state) {
+ $iconpath .= $keyval[1] . ".png";
+ }
+ }
+ $ret[1] = $iconpath;
+ }
+
+ if($labeltype ne "") {
+ $ret[0] = AttrVal($fhemname,$labeltype,$fhemname);
+ } else {
+ $ret[0] = $fhemname;
+ }
+ $ret[0] =~ s/( )/ /g;
+
+ if($statetype ne "") {
+ $ret[2] = generic_isdef($defs{$fhemname}{READINGS}{$statetype}{VAL}, "no-reading");
+ } else {
+ $ret[2] = $state;
+ }
+
+ $ret[3] = " ";
+
+ if($showlabel==0) {
+ $ret[0] = "";
+ }
+
+ if($showicon==0) {
+ $ret[1] = "";
+ }
+
+ $ret[4] = $fhemname;
+
+ return encode_json(\@ret);
+ } else {
+ return "Widget not found. Maybe reload this page?";
+ }
+}
+
+sub generic_isdef() {
+ return ((defined $_[0]) ? $_[0] : $_[1]);
+}
+1;
+
diff --git a/fhem/contrib/YAF/FHEM/YAF/widgets/generic/www/.gitkeep b/fhem/contrib/YAF/FHEM/YAF/widgets/generic/www/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/fhem/contrib/YAF/FHEM/YAF/www/js/yaf-basics.js b/fhem/contrib/YAF/FHEM/YAF/www/js/yaf-basics.js
index 895b96dd4..2519534f7 100644
--- a/fhem/contrib/YAF/FHEM/YAF/www/js/yaf-basics.js
+++ b/fhem/contrib/YAF/FHEM/YAF/www/js/yaf-basics.js
@@ -25,128 +25,128 @@
* ########################################################################################
*/
function get_current_view_id() {
- return current_view_id;
+ return current_view_id;
}
function get_current_widget_id() {
- return current_widget_id;
+ return current_widget_id;
}
// Ändert den Modus der Oberfläche
// mode: id des Modus
function switch_mode(new_mode) {
- view_mode = new_mode;
- if (new_mode == 0) {
- // Live Modus
- $(".widgets").draggable("disable");
- } else if (new_mode == 1) {
- // Positionierungsmodus
- $(".widgets").draggable("enable");
- }
+ view_mode = new_mode;
+ if (new_mode == 0) {
+ // Live Modus
+ $(".widgets").draggable("disable");
+ } else if (new_mode == 1) {
+ // Positionierungsmodus
+ $(".widgets").draggable("enable");
+ }
}
// Timer für den Reload
// Wenn startIntervall = 1 ist, dann wird die Schleife gestartet,
// ansonsten ist es ein einmaliger aufruf
function refreshWidgets() {
- $.each(widgets, function (index, widget) {
- update_widget(widget[0], widget[1], widget[2])
- });
- setTimeout(function () {
- refreshWidgets();
- },
- refreshTime * 1000);
+ $.each(widgets, function (index, widget) {
+ update_widget(widget[0], widget[1], widget[2])
+ });
+ setTimeout(function () {
+ refreshWidgets();
+ },
+ refreshTime * 1000);
}
function init_RefreshWidgets() {
- $.ajax({
- async: true,
- url: "../../ajax/global/getRefreshTime",
- context: document.body,
- success: function (_refreshTime) {
- refreshTime = _refreshTime;
- refreshWidgets();
- }
- });
+ $.ajax({
+ async: true,
+ url: "../../ajax/global/getRefreshTime",
+ context: document.body,
+ success: function (_refreshTime) {
+ refreshTime = _refreshTime;
+ refreshWidgets();
+ }
+ });
}
// Läd die Sichten über AJAX vom Server.
// callback: wird aufgerufen, wenn der Server geantwortet hat
function load_views(callback) {
- console.log("called load_views()");
- $.ajax({
- async: true,
- url: "../../ajax/global/getViews",
- context: document.body,
- success: function (jsondata) {
- views = jQuery.parseJSON(jsondata);
- console.log(views);
- if (callback) {
- callback();
- }
- }
- });
- return;
+ //console.log("called load_views()");
+ $.ajax({
+ async: true,
+ url: "../../ajax/global/getViews",
+ context: document.body,
+ success: function (jsondata) {
+ views = jQuery.parseJSON(jsondata);
+ //console.log(views);
+ if (callback) {
+ callback();
+ }
+ }
+ });
+ return;
}
// Fügt eine neue Sicht zu den Tabs hinzu.
// id: Id der Sicht
// name: Name der Sicht
function add_tab(id, name) {
- console.log("called add_tab()");
- // Neues Div nur erzeugen, wenn es noch keins mit der entsprechenden Id gibt
- if ($("#tabs-" + id).length <= 0) {
- $("#tabs").append("
");
- }
- $("#views").append("" + name + " ");
- $("#tabs").tabs("refresh");
- return;
+ //console.log("called add_tab()");
+ // Neues Div nur erzeugen, wenn es noch keins mit der entsprechenden Id gibt
+ if ($("#tabs-" + id).length <= 0) {
+ $("#tabs").append("
");
+ }
+ $("#views").append("" + name + " ");
+ $("#tabs").tabs("refresh");
+ return;
}
// Löscht eine Sicht aus den Tabs.
// Das sowie der
Eintrag werden gelöscht.
// id: Id der zu löschenden Sicht
function delete_tab(id) {
- // Kann noch optimiert werden!
- console.log("called delete_tab()");
- $("#tabs-" + id).remove();
- $("#tabs_li-" + id).remove();
- load_views(show_views);
- return;
+ // Kann noch optimiert werden!
+ //console.log("called delete_tab()");
+ $("#tabs-" + id).remove();
+ $("#tabs_li-" + id).remove();
+ load_views(show_views);
+ return;
}
// Zeigt alle Tabs neu an.
// Zuerst werden alle Tabs gelöscht und anschließend neu anzeigen.
function show_views() {
- console.log("called show_views()");
- $("#views").html("");
-
- if (views.length == 0) {
- $('#views').hide();
- $('#tabs_error').html("Es wurden keine Sichten gefunden!");
- $('#tabs_error').show();
- } else {
- $('#tabs_error').hide();
- $('#views').show();
- var selected_view_id = get_current_view_id();
- var selected = 0;
- var minId = 999;
- $.each(views, function (index, view) {
- add_tab(view[0], view[1]);
- if (selected_view_id == view[0]) {
- $('#tabs').tabs("select", "#tabs-" + view[0]);
- selected = 1;
- }
- if (view[0] < minId) {
- minId = view[0];
- }
- });
- if (! selected) {
- $('#tabs').tabs("select", "#tabs-" + minId);
- }
- }
-
- return;
+ //console.log("called show_views()");
+ $("#views").html("");
+
+ if (views.length == 0) {
+ $('#views').hide();
+ $('#tabs_error').html("Es wurden keine Sichten gefunden!");
+ $('#tabs_error').show();
+ } else {
+ $('#tabs_error').hide();
+ $('#views').show();
+ var selected_view_id = get_current_view_id();
+ var selected = 0;
+ var minId = 999;
+ $.each(views, function (index, view) {
+ add_tab(view[0], view[1]);
+ if (selected_view_id == view[0]) {
+ $('#tabs').tabs("select", "#tabs-" + view[0]);
+ selected = 1;
+ }
+ if (view[0] < minId) {
+ minId = view[0];
+ }
+ });
+ if (! selected) {
+ $('#tabs').tabs("select", "#tabs-" + minId);
+ }
+ }
+
+ return;
}
// Zeigt ein neues Hintergrundbild in einer bestimmten Sicht an.
@@ -155,17 +155,17 @@ function show_views() {
// x_pos: x Positon
// y_pos: y Position
function add_background_image(view_id, file, x_pos, y_pos) {
- $("#tabs-" + view_id).append(" ");
+ $("#tabs-" + view_id).append(" ");
}
function update_widget(name, view_id, widget_id) {
- console.log("update_widget " + name);
- try {
- eval(name + "_update_widget(" + view_id + ", " + widget_id + ")");
- }
- catch (exception) {
- console.log("Error in update_widget()");
- }
+ //console.log("update_widget " + name);
+ try {
+ eval(name + "_update_widget(" + view_id + ", " + widget_id + ")");
+ }
+ catch (exception) {
+ console.log("Error in update_widget()");
+ }
}
// Zeigt ein neues Widget in einer bestimmten Sicht an.
@@ -175,264 +175,275 @@ function update_widget(name, view_id, widget_id) {
// y_pos: y Position
// attr_array: Ein Array mit den Attributen des Widgets.
function add_widget(view_id, widget_id, name, x_pos, y_pos, attr_array) {
- var widget_html = "";
- $.ajax({
- type: "GET",
- async: false,
- url: "../../ajax/widget/" + name + "/getwidget_html",
- context: document.body,
- success: function (result) {
- widget_html = result;
- }
- });
- $("#tabs-" + view_id).append("" + widget_html + "
");
-
- update_widget(name, view_id, widget_id);
-
- $("#widget_" + view_id + "_" + widget_id).click(function () {
- if (view_mode == 0) {
- try {
- eval(name + "_on_click(" + view_id + ", " + widget_id + ")");
- }
- catch (exception) {
- console.log("Error in on_click()");
- }
- } else if (view_mode == 1) {
- if (! widgetWasMoved) {
- $("#widget_menue").show();
- current_widget_id = widget_id;
- var top = $("#widget_" + view_id + "_" + widget_id).position().top;
- var left = $("#widget_" + view_id + "_" + widget_id).position().left;
- // Nach links anzeigen
- var offsetLeft = $("#widget_" + view_id + "_" + widget_id).width();
- var positionLeft = left + offsetLeft - 10;
- var positionTop = top - 23;
- $("#widget_menue").css("top", positionTop);
- $("#widget_menue").css("left", positionLeft);
- setTimeout(function () {
- if (close_widget_menue) {
- $("#widget_menue").hide();
- }
- },
- 2500);
- }
- }
- });
-
- $("#widget_" + view_id + "_" + widget_id).draggable({
- containment: "parent",
- start: function (event, ui) {
- close_widget_menue = true;
- $("#widget_menue").hide();
- },
- stop: function (event, ui) {
- widgetWasMoved = true;
- setTimeout(function () {
- widgetWasMoved = false;
- },
- 500);
- // Neue Position des Widget speichern. Kommastellen werden abgeschnitten.
- x_pos = parseInt(ui.position.left);
- y_pos = parseInt(ui.position.top);
- widget_id = $(event.target).attr("id").split("_")[2];
- view_id = $(event.target).attr("id").split("_")[1];
- console.log("view-id: " + get_current_view_id() + " widget-id: " + widget_id + " x-pos: " + x_pos + " y-pos: " + y_pos);
- $.ajax({
- type: "GET",
- async: true,
- url: "../../ajax/global/setWidgetPosition",
- data: "view_id=" + view_id + "&widget_id=" + widget_id + "&x_pos=" + x_pos + "&y_pos=" + y_pos,
- context: document.body,
- success: function (jsondata) {
- console.log("Widget Position geändert: " + jsondata)
- }
- });
- }
- });
-
- // widget in Widgetliste einfügen
- var widget = new Array(name, get_current_view_id(), widget_id);
- widgets[widgets.length] = widget;
+ var widget_html = "";
+ $.ajax({
+ type: "GET",
+ async: false,
+ url: "../../ajax/widget/" + name + "/getwidget_html",
+ context: document.body,
+ success: function (result) {
+ widget_html = result;
+ }
+ });
+ $("#tabs-" + view_id).append("" + widget_html + "
");
+
+ update_widget(name, view_id, widget_id);
+
+ $("#widget_" + view_id + "_" + widget_id).click(function () {
+ if (view_mode == 0) {
+ try {
+ eval(name + "_on_click(" + view_id + ", " + widget_id + ")");
+ }
+ catch (exception) {
+ console.log("Error in on_click()");
+ }
+ } else if (view_mode == 1) {
+ if (! widgetWasMoved) {
+ $("#widget_menue").show();
+ current_widget_id = widget_id;
+ var top = $("#widget_" + view_id + "_" + widget_id).position().top;
+ var left = $("#widget_" + view_id + "_" + widget_id).position().left;
+ // Nach links anzeigen
+ var offsetLeft = $("#widget_" + view_id + "_" + widget_id).width();
+ var positionLeft = left + offsetLeft - 10;
+ var positionTop = top - 23;
+ $("#widget_menue").css("top", positionTop);
+ $("#widget_menue").css("left", positionLeft);
+ setTimeout(function () {
+ if (close_widget_menue) {
+ $("#widget_menue").hide();
+ }
+ },
+ 2500);
+ }
+ }
+ });
+
+ $("#widget_" + view_id + "_" + widget_id).draggable({
+ containment: "parent",
+ start: function (event, ui) {
+ close_widget_menue = true;
+ $("#widget_menue").hide();
+ },
+ stop: function (event, ui) {
+ widgetWasMoved = true;
+ setTimeout(function () {
+ widgetWasMoved = false;
+ },
+ 500);
+ // Neue Position des Widget speichern. Kommastellen werden abgeschnitten.
+ x_pos = parseInt(ui.position.left);
+ y_pos = parseInt(ui.position.top);
+ widget_id = $(event.target).attr("id").split("_")[2];
+ view_id = $(event.target).attr("id").split("_")[1];
+ //console.log("view-id: " + get_current_view_id() + " widget-id: " + widget_id + " x-pos: " + x_pos + " y-pos: " + y_pos);
+ $.ajax({
+ type: "GET",
+ async: true,
+ url: "../../ajax/global/setWidgetPosition",
+ data: "view_id=" + view_id + "&widget_id=" + widget_id + "&x_pos=" + x_pos + "&y_pos=" + y_pos,
+ context: document.body,
+ success: function (jsondata) {
+ //console.log("Widget Position geändert: " + jsondata)
+ }
+ });
+ }
+ });
+
+ // widget in Widgetliste einfügen
+ var widget = new Array(name, get_current_view_id(), widget_id);
+ widgets[widgets.length] = widget;
}
// Behandelt das öffnen eines Tabs
// Entweder der Inhalt wurde bereits geladen, oder er muss über
// Ajax nachgeladen werden.
function activate_tab(view_id) {
- if (! $("#tabs-" + view_id).hasClass("isLoaded")) {
- current_view_id = view_id;
- console.log("activate tab: " + view_id);
- console.log("load widgets");
- $("#tabs-" + view_id).html("");
- // Speichern, dass view bereits geladen wurde
- $("#tabs-" + view_id).addClass("isLoaded");
- $("#tabs-" + view_id).html("");
- $.ajax({
- async: false,
- url: "../../ajax/global/getView",
- data: "id=" + view_id,
- context: document.body,
- success: function (jsondata) {
- var view_data = jQuery.parseJSON(jsondata);
- // background images laden
- if (view_data.backgrounds) {
- $.each(view_data.backgrounds, function (index, background) {
- add_background_image(view_id, background.img_url, background.x_pos, background.y_pos);
- });
- } else {
- console.log("keine Hintergrundbilder vorhanden!");
- }
- // widgets laden
- if (view_data.widgets) {
- $.each(view_data.widgets, function (index, widget) {
- widget_x_pos = widget.x_pos;
- widget_y_pos = widget.y_pos;
- widget_name = widget.name;
- widget_id = widget.id;
- add_widget(view_id, widget_id, widget_name, widget_x_pos, widget_y_pos, 0);
- });
- // Aktueller View Mode für alle Widgets aktualisiert
- switch_mode(view_mode);
- } else {
- console.log("keine widgets vorhanden!");
- }
- }
- });
- } else {
- current_view_id = view_id;
- console.log("switch to activated tab: " + view_id);
- }
-
- return;
+ if (! $("#tabs-" + view_id).hasClass("isLoaded")) {
+ current_view_id = view_id;
+ //console.log("activate tab: " + view_id);
+ //console.log("load widgets");
+ $("#tabs-" + view_id).html("");
+ // Speichern, dass view bereits geladen wurde
+ $("#tabs-" + view_id).addClass("isLoaded");
+ $("#tabs-" + view_id).html("");
+ $.ajax({
+ async: false,
+ url: "../../ajax/global/getView",
+ data: "id=" + view_id,
+ context: document.body,
+ success: function (jsondata) {
+ var view_data = jQuery.parseJSON(jsondata);
+ // background images laden
+ if (view_data.backgrounds) {
+ $.each(view_data.backgrounds, function (index, background) {
+ add_background_image(view_id, background.img_url, background.x_pos, background.y_pos);
+ });
+ } else {
+ console.log("keine Hintergrundbilder vorhanden!");
+ }
+ // widgets laden
+ if (view_data.widgets) {
+ $.each(view_data.widgets, function (index, widget) {
+ widget_x_pos = widget.x_pos;
+ widget_y_pos = widget.y_pos;
+ widget_name = widget.name;
+ widget_id = widget.id;
+ add_widget(view_id, widget_id, widget_name, widget_x_pos, widget_y_pos, 0);
+ });
+ // Aktueller View Mode für alle Widgets aktualisiert
+ switch_mode(view_mode);
+ } else {
+ console.log("keine Widgets vorhanden!");
+ }
+ }
+ });
+ } else {
+ current_view_id = view_id;
+ //console.log("switch to activated tab: " + view_id);
+ }
+
+ return;
}
// Initialisiert die Tabs. Diese Funktion muss nur einmal aufgerufen werden.
// Sobald das Tab gewechselt wird, wird die Funktion activate_tab(id)
// aufgerufen.
function init_tabs() {
- $("#tabs").tabs({
- activate: function (event, ui) {
- activate_tab(ui.newPanel.selector.substr(6));
- },
- create: function (event, ui) {
- //activate_tab(ui.panel.selector.substr(6));
- }
- });
- $("#tabs").resizable({
- containment: $(".widgets")
- });
+ $("#tabs").tabs({
+ activate: function (event, ui) {
+ activate_tab(ui.newPanel.selector.substr(6));
+ },
+ create: function (event, ui) {
+ //activate_tab(ui.panel.selector.substr(6));
+ }
+ });
+ $("#tabs").resizable({
+ containment: $(".widgets")
+ });
}
// Initialisiert das Menü.
function init_menue() {
- $("#button_back").button({
- icons: {
- secondary: "ui-icon-circle-arrow-w"
- }
- });
-
- $("#button_addview").button({
- icons: {
- secondary: "ui-icon-plusthick"
- }
- });
-
- $("#button_manageviews").button({
- icons: {
- secondary: "ui-icon-plusthick"
- }
- });
-
- $("#button_addwidget").button({
- icons: {
- secondary: "ui-icon-plusthick"
- }
- });
-
- $("#button_managewidgets").button({
- icons: {
- secondary: "ui-icon-plusthick"
- }
- });
-
- $("#button_settings").button({
- icons: {
- secondary: "ui-icon-pencil"
- }
- });
-
- $("#widget_menue_edit").button({
- icons: {
- secondary: "ui-icon-pencil"
- }
- });
-
- $("#widget_menue_delete").button({
- icons: {
- secondary: "ui-icon-trash"
- }
- });
-
- $("#button_editview").buttonset();
+ $("#button_back").button({
+ icons: {
+ secondary: "ui-icon-circle-arrow-w"
+ }
+ });
+
+ $("#button_addview").button({
+ icons: {
+ secondary: "ui-icon-plusthick"
+ }
+ });
+
+ $("#button_manageviews").button({
+ icons: {
+ secondary: "ui-icon-plusthick"
+ }
+ });
+
+ $("#button_addwidget").button({
+ icons: {
+ secondary: "ui-icon-plusthick"
+ }
+ });
+
+ $("#button_managewidgets").button({
+ icons: {
+ secondary: "ui-icon-plusthick"
+ }
+ });
+
+ $("#button_settings").button({
+ icons: {
+ secondary: "ui-icon-pencil"
+ }
+ });
+
+ $("#widget_menue_edit").button({
+ icons: {
+ secondary: "ui-icon-pencil"
+ }
+ });
+
+ $("#widget_menue_delete").button({
+ icons: {
+ secondary: "ui-icon-trash"
+ }
+ });
+
+ $("#button_editview").buttonset();
+
+ $("#button_saveconfig").button({
+ icons: {
+ secondary: "ui-icon-pencil"
+ }
+ });
}
// Initialisiert die Handler
function init_handlers() {
- $("#button_back").click(function () {
- window.location.href = "../../../../fhem";
- return false;
- });
-
- $("#button_settings").click(function () {
- $("#dialog_settings").dialog("open");
- return false;
- });
-
- $("#button_addview").click(function () {
- $("#dialog_addview").dialog("open");
- return false;
- });
-
- $("#button_manageviews").click(function () {
- $("#dialog_manageviews").dialog("open");
- return false;
- });
-
- $("#button_addwidget").click(function () {
- $("#dialog_addwidget").dialog("open");
- return false;
- });
-
- $("#button_switchmode_0").click(function () {
- if (view_mode != 0) {
- switch_mode(0);
- }
- });
-
- $("#button_switchmode_1").click(function () {
- if (view_mode != 1) {
- switch_mode(1);
- }
- });
-
- $("#widget_menue_delete").click(function () {
- $("#label_deletewidget").html(get_current_widget_id());
- $("#dialog_deletewidget").dialog("open");
- });
-
- $("#widget_menue_edit").click(function () {
- $("#label_editwidget").html(get_current_widget_id());
- $("#dialog_editwidget").dialog("open");
- $("#widget_menue").hide();
- close_widget_menue = true;
- });
-
- $("#widget_menue").mouseenter(function () {
- close_widget_menue = false;
- });
-
- $("#widget_menue").mouseleave(function () {
- close_widget_menue = true;
- $("#widget_menue").hide();
- });
+ $("#button_back").click(function () {
+ window.location.href = "../../../../fhem";
+ return false;
+ });
+
+ $("#button_settings").click(function () {
+ $("#dialog_settings").dialog("open");
+ return false;
+ });
+
+ $("#button_addview").click(function () {
+ $("#dialog_addview").dialog("open");
+ return false;
+ });
+
+ $("#button_manageviews").click(function () {
+ $("#dialog_manageviews").dialog("open");
+ return false;
+ });
+
+ $("#button_addwidget").click(function () {
+ $("#dialog_addwidget").dialog("open");
+ return false;
+ });
+
+ $("#button_switchmode_0").click(function () {
+ if (view_mode != 0) {
+ switch_mode(0);
+ }
+ });
+
+ $("#button_switchmode_1").click(function () {
+ if (view_mode != 1) {
+ switch_mode(1);
+ }
+ });
+
+ $("#button_saveconfig").click(function () {
+ window.location.href = "../../../../fhem?cmd=save";
+ return false;
+ });
+
+ $("#widget_menue_delete").click(function () {
+ $("#label_deletewidget").html(get_current_widget_id());
+ $("#dialog_deletewidget").dialog("open");
+ });
+
+ $("#widget_menue_edit").click(function () {
+ $("#label_editwidget").html(get_current_widget_id());
+ $("#dialog_editwidget").dialog("open");
+ $("#widget_menue").hide();
+ close_widget_menue = true;
+ });
+
+ $("#widget_menue").mouseenter(function () {
+ close_widget_menue = false;
+ });
+
+ $("#widget_menue").mouseleave(function () {
+ close_widget_menue = true;
+ $("#widget_menue").hide();
+ });
}
\ No newline at end of file
diff --git a/fhem/contrib/YAF/FHEM/YAF/www/js/yaf-dialogs.js b/fhem/contrib/YAF/FHEM/YAF/www/js/yaf-dialogs.js
index 324e96c0e..9e48565a9 100644
--- a/fhem/contrib/YAF/FHEM/YAF/www/js/yaf-dialogs.js
+++ b/fhem/contrib/YAF/FHEM/YAF/www/js/yaf-dialogs.js
@@ -26,346 +26,346 @@
*/
// Initialisiert die Dialoge
function init_dialogs() {
- $("#dialog_addview").dialog({
- autoOpen: false,
- resizable: true,
- height: 300,
- width: 400,
- modal: true,
- buttons: {
- "Hinzufügen": function (event) {
- console.log("before: " + views);
- $("#dialog_addview_loading").show();
- $.ajax({
- type: "GET",
- async: true,
- url: "../../ajax/global/addView",
- data: "name=" + $("#dialog_addview_name").val(),
- context: document.body,
- success: function (jsondata) {
- $("#dialog_addview").dialog("close");
- load_views(show_views);
- $("#dialog_addview_loading").hide();
- console.log("after: " + views);
- }
- });
- $(this).dialog("close");
- },
- "Abbrechen": function () {
- $(this).dialog("close");
- }
- }
- });
-
- $("#dialog_deleteview").dialog({
- autoOpen: false,
- resizable: true,
- height: 300,
- width: 400,
- modal: true,
- buttons: {
- "Löschen": function (ui) {
- $.ajax({
- type: "GET",
- async: false,
- url: "../../ajax/global/deleteView",
- data: "id=" + delete_view_id,
- context: document.body,
- success: function (jsondata) {
- delete_tab(delete_view_id);
- $("#dialog_deleteview").dialog("close");
- $("#manageviews_tr_" + delete_view_id).remove();
- }
- });
- $(this).dialog("close");
- },
- "Abbrechen": function () {
- $(this).dialog("close");
- }
- }
- });
-
- $("#dialog_editview").dialog({
- autoOpen: false,
- resizable: true,
- height: 300,
- width: 400,
- modal: true,
- buttons: {
- "Speichern": function (ui) {
- console.log("before: " + views);
- $("#dialog_editview_loading").show();
- $.ajax({
- type: "GET",
- async: true,
- url: "../../ajax/global/editView",
- data: "id=" + edit_view_id + "&name=" + $("#dialog_editview_name").val(),
- context: document.body,
- success: function (jsondata) {
- load_views(show_views);
- $($("#manageviews_tr_" + edit_view_id).children().get(0)).text($("#dialog_editview_name").val());
- $("#dialog_editview_loading").hide();
- $("#dialog_editview").dialog("close");
- }
- });
- $(this).dialog("close");
- },
- "Abbrechen": function () {
- $(this).dialog("close");
- }
- }
- });
-
-
- $("#dialog_addwidget").dialog({
- autoOpen: false,
- resizable: true,
- height: 500,
- width: 600,
- modal: true,
- buttons: {
- "Schließen": function () {
- $(this).dialog("close");
- }
- },
- open: function (event, ui) {
- $("#dialog_addwidget_loading").show();
- $.ajax({
- type: "GET",
- async: true,
- url: "../../ajax/global/getWidgets",
- context: document.body,
- success: function (jsondata) {
- var widgets = jQuery.parseJSON(jsondata);
- $("#dialog_addwidget_table").html(" ");
- if (widgets) {
- $.each(widgets, function (index, widget) {
- $("#dialog_addwidget_table").append("" + widget + " ");
- });
- $(".button_addwidget").button({
- icons: {
- primary: "ui-icon-circle-plus"
- },
- text: false
- });
- $(".button_addwidget").click(function (ui) {
- add_widget_name = $(ui.currentTarget).attr("id").substr(10);
- $("#dialog_addwidget_setup_widget").html(add_widget_name);
- $("#dialog_addwidget_setup").dialog("open");
- $("#dialog_addwidget_setup_loading").show();
- $.ajax({
- type: "GET",
- async: true,
- url: "../../ajax/widget/" + add_widget_name + "/get_addwidget_setup_html",
- context: document.body,
- success: function (html_result) {
- if (html_result != 0) {
- $("#dialog_addwidget_setup_form").html(html_result);
- } else {
- $("#dialog_addwidget_setup_form").html("Das Widget stellt keine Konfigurationsmöglichkeiten bereit!")
- }
- $("#dialog_addwidget_setup_loading").hide();
- }
- });
- console.log("widget hinzufügen: " + add_widget_name)
- return false;
- });
- } else {
- console.log("keine Widgets vorhanden!")
- }
- $("#dialog_addwidget_loading").hide();
- }
- });
- }
- });
-
- $("#dialog_addwidget_setup").dialog({
- autoOpen: false,
- resizable: true,
- height: 350,
- width: 400,
- modal: true,
- buttons: {
- "Hinzufügen": function (event) {
- $("#dialog_addwidget_setup_loading").show();
- var attributes_array = new Array();
- $.ajax({
- type: "GET",
- async: false,
- url: "../../ajax/widget/" + add_widget_name + "/get_addwidget_prepare_attributes",
- context: document.body,
- success: function (js_result) {
- try {
- eval(js_result);
- }
- catch (exception) {
- console.log("exception in dialog_addwidget_setup dialog event");
- }
- }
- });
- console.log(JSON.stringify(attributes_array));
- $.ajax({
- type: "GET",
- async: false,
- url: "../../ajax/global/addWidget",
- data: "view_id=" + current_view_id + "&widget=" + add_widget_name + "&attributes=" + JSON.stringify(attributes_array),
- context: document.body,
- success: function (widgetId) {
- // Position links oben x= 28 y = 69, muss auch in 01_YAF.pm in addWidget() Methode angepasst werden!
- add_widget(current_view_id, widgetId, add_widget_name, 28, 69, attributes_array);
- // Aktueller View Mode für alle Widgets aktualisiert
- switch_mode(view_mode);
- }
- });
- $("#dialog_addwidget_setup_loading").hide();
-
- $(this).dialog("close");
- },
- "Abbrechen": function () {
- $(this).dialog("close");
- }
- },
- open: function (event, ui) {
- console.log("dialog widget hinzufügen geöffnet => inhalt laden");
- }
- });
-
- $("#dialog_deletewidget").dialog({
- autoOpen: false,
- resizable: true,
- height: 300,
- width: 400,
- modal: true,
- buttons: {
- "Löschen": function (ui) {
- var view_id = get_current_view_id();
- var widget_id = get_current_widget_id();
- console.log("delete view " + view_id + " widget " + widget_id);
- $.ajax({
- type: "GET",
- async: false,
- url: "../../ajax/global/deleteWidget",
- data: "view_id=" + view_id + "&widget_id=" + widget_id,
- context: document.body,
- success: function (jsondata) {
- console.log("widget deleted");
- $("#dialog_deletewidget").dialog("close");
- $("#widget_menue").hide();
- $("#widget_" + view_id + "_" + widget_id).remove();
- }
- });
- $(this).dialog("close");
- },
- "Abbrechen": function () {
- $(this).dialog("close");
- }
- }
- });
-
- $("#dialog_editwidget").dialog({
- autoOpen: false,
- resizable: true,
- height: 300,
- width: 400,
- modal: true,
- buttons: {
- "Speichern": function (ui) {
- $(this).dialog("close");
- },
- "Abbrechen": function () {
- $(this).dialog("close");
- }
- }
- });
-
-
- $("#dialog_manageviews").dialog({
- autoOpen: false,
- resizable: true,
- height: 500,
- width: 600,
- modal: true,
- buttons: {
- "Schließen": function () {
- $(this).dialog("close");
- }
- },
- open: function (event, ui) {
- $("#dialog_manageviews-table").html(" ");
- $.each(views, function (index, view) {
- $("#dialog_manageviews-table").append("" + view[1] + " ");
- });
- $(".button_edit").button({
- icons: {
- primary: "ui-icon-pencil"
- },
- text: false
- });
- $(".button_delete").button({
- icons: {
- primary: "ui-icon-trash"
- },
- text: false
- });
- $(".button_delete").click(function (ui) {
- var sichtName = $(ui.currentTarget.parentNode.parentNode.firstChild).html();
- delete_view_id = $(ui.currentTarget).attr("id").substr(12);
- $("#label_deleteview").html(sichtName);
- $("#dialog_deleteview").dialog("open");
- return false;
- });
- $(".button_edit").click(function (ui) {
- edit_view_name = $(ui.currentTarget.parentNode.parentNode.firstChild).html();
- edit_view_id = $(ui.currentTarget).attr("id").substr(12);
- $("#dialog_editview_name").val(edit_view_name);
- $("#dialog_editview").dialog("open");
- return false;
- });
- }
- });
-
- $("#dialog_settings").dialog({
- autoOpen: false,
- resizable: true,
- height: 500,
- width: 600,
- modal: true,
- buttons: {
- "Speichern": function () {
- $("#dialog_settings_loading").show();
- console.log("update widget refresh interval");
- $.ajax({
- type: "GET",
- async: true,
- url: "../../ajax/global/setRefreshTime",
- data: "interval=" + $("#dialog_settings_intervall").val(),
- context: document.body,
- success: function () {
- refreshTime = $("#dialog_settings_intervall").val();
- $("#dialog_settings_loading").hide();
- $("#dialog_settings").dialog("close");
- }
- });
- $(this).dialog("close");
- },
- "Abbrechen": function () {
- $(this).dialog("close");
- }
- },
- open: function (event, ui) {
- console.log("dialog settings opened");
- $("#dialog_settings_loading").show();
- $.ajax({
- type: "GET",
- async: true,
- url: "../../ajax/global/getRefreshTime",
- data: "interval=" + $("#dialog_settings_intervall").val(),
- context: document.body,
- success: function (refreshInterval) {
- $("#dialog_settings_intervall").val(refreshInterval);
- $("#dialog_settings_loading").hide();
- }
- });
- }
- });
+ $("#dialog_addview").dialog({
+ autoOpen: false,
+ resizable: true,
+ height: 300,
+ width: 400,
+ modal: true,
+ buttons: {
+ "Hinzufügen": function (event) {
+ //console.log("before: " + views);
+ $("#dialog_addview_loading").show();
+ $.ajax({
+ type: "GET",
+ async: true,
+ url: "../../ajax/global/addView",
+ data: "name=" + $("#dialog_addview_name").val(),
+ context: document.body,
+ success: function (jsondata) {
+ $("#dialog_addview").dialog("close");
+ load_views(show_views);
+ $("#dialog_addview_loading").hide();
+ //console.log("after: " + views);
+ }
+ });
+ $(this).dialog("close");
+ },
+ "Abbrechen": function () {
+ $(this).dialog("close");
+ }
+ }
+ });
+
+ $("#dialog_deleteview").dialog({
+ autoOpen: false,
+ resizable: true,
+ height: 300,
+ width: 400,
+ modal: true,
+ buttons: {
+ "Löschen": function (ui) {
+ $.ajax({
+ type: "GET",
+ async: false,
+ url: "../../ajax/global/deleteView",
+ data: "id=" + delete_view_id,
+ context: document.body,
+ success: function (jsondata) {
+ delete_tab(delete_view_id);
+ $("#dialog_deleteview").dialog("close");
+ $("#manageviews_tr_" + delete_view_id).remove();
+ }
+ });
+ $(this).dialog("close");
+ },
+ "Abbrechen": function () {
+ $(this).dialog("close");
+ }
+ }
+ });
+
+ $("#dialog_editview").dialog({
+ autoOpen: false,
+ resizable: true,
+ height: 300,
+ width: 400,
+ modal: true,
+ buttons: {
+ "Speichern": function (ui) {
+ //console.log("before: " + views);
+ $("#dialog_editview_loading").show();
+ $.ajax({
+ type: "GET",
+ async: true,
+ url: "../../ajax/global/editView",
+ data: "id=" + edit_view_id + "&name=" + $("#dialog_editview_name").val(),
+ context: document.body,
+ success: function (jsondata) {
+ load_views(show_views);
+ $($("#manageviews_tr_" + edit_view_id).children().get(0)).text($("#dialog_editview_name").val());
+ $("#dialog_editview_loading").hide();
+ $("#dialog_editview").dialog("close");
+ }
+ });
+ $(this).dialog("close");
+ },
+ "Abbrechen": function () {
+ $(this).dialog("close");
+ }
+ }
+ });
+
+
+ $("#dialog_addwidget").dialog({
+ autoOpen: false,
+ resizable: true,
+ height: 500,
+ width: 600,
+ modal: true,
+ buttons: {
+ "Schließen": function () {
+ $(this).dialog("close");
+ }
+ },
+ open: function (event, ui) {
+ $("#dialog_addwidget_loading").show();
+ $.ajax({
+ type: "GET",
+ async: true,
+ url: "../../ajax/global/getWidgets",
+ context: document.body,
+ success: function (jsondata) {
+ var widgets = jQuery.parseJSON(jsondata);
+ $("#dialog_addwidget_table").html(" ");
+ if (widgets) {
+ $.each(widgets, function (index, widget) {
+ $("#dialog_addwidget_table").append("" + widget + " ");
+ });
+ $(".button_addwidget").button({
+ icons: {
+ primary: "ui-icon-circle-plus"
+ },
+ text: false
+ });
+ $(".button_addwidget").click(function (ui) {
+ add_widget_name = $(ui.currentTarget).attr("id").substr(10);
+ $("#dialog_addwidget_setup_widget").html(add_widget_name);
+ $("#dialog_addwidget_setup").dialog("open");
+ $("#dialog_addwidget_setup_loading").show();
+ $.ajax({
+ type: "GET",
+ async: true,
+ url: "../../ajax/widget/" + add_widget_name + "/get_addwidget_setup_html",
+ context: document.body,
+ success: function (html_result) {
+ if (html_result != 0) {
+ $("#dialog_addwidget_setup_form").html(html_result);
+ } else {
+ $("#dialog_addwidget_setup_form").html("Das Widget stellt keine Konfigurationsmöglichkeiten bereit!")
+ }
+ $("#dialog_addwidget_setup_loading").hide();
+ }
+ });
+ //console.log("widget hinzufügen: " + add_widget_name)
+ return false;
+ });
+ } else {
+ console.log("keine Widgets vorhanden!")
+ }
+ $("#dialog_addwidget_loading").hide();
+ }
+ });
+ }
+ });
+
+ $("#dialog_addwidget_setup").dialog({
+ autoOpen: false,
+ resizable: true,
+ height: 350,
+ width: 400,
+ modal: true,
+ buttons: {
+ "Hinzufügen": function (event) {
+ $("#dialog_addwidget_setup_loading").show();
+ var attributes_array = new Array();
+ $.ajax({
+ type: "GET",
+ async: false,
+ url: "../../ajax/widget/" + add_widget_name + "/get_addwidget_prepare_attributes",
+ context: document.body,
+ success: function (js_result) {
+ try {
+ eval(js_result);
+ }
+ catch (exception) {
+ console.log("exception in dialog_addwidget_setup dialog event");
+ }
+ }
+ });
+ //console.log(JSON.stringify(attributes_array));
+ $.ajax({
+ type: "GET",
+ async: false,
+ url: "../../ajax/global/addWidget",
+ data: "view_id=" + current_view_id + "&widget=" + add_widget_name + "&attributes=" + JSON.stringify(attributes_array),
+ context: document.body,
+ success: function (widgetId) {
+ // Position links oben x= 28 y = 69, muss auch in 01_YAF.pm in addWidget() Methode angepasst werden!
+ add_widget(current_view_id, widgetId, add_widget_name, 28, 69, attributes_array);
+ // Aktueller View Mode für alle Widgets aktualisiert
+ switch_mode(view_mode);
+ }
+ });
+ $("#dialog_addwidget_setup_loading").hide();
+
+ $(this).dialog("close");
+ },
+ "Abbrechen": function () {
+ $(this).dialog("close");
+ }
+ },
+ open: function (event, ui) {
+ //console.log("dialog widget hinzufügen geöffnet => inhalt laden");
+ }
+ });
+
+ $("#dialog_deletewidget").dialog({
+ autoOpen: false,
+ resizable: true,
+ height: 300,
+ width: 400,
+ modal: true,
+ buttons: {
+ "Löschen": function (ui) {
+ var view_id = get_current_view_id();
+ var widget_id = get_current_widget_id();
+ //console.log("delete view " + view_id + " widget " + widget_id);
+ $.ajax({
+ type: "GET",
+ async: false,
+ url: "../../ajax/global/deleteWidget",
+ data: "view_id=" + view_id + "&widget_id=" + widget_id,
+ context: document.body,
+ success: function (jsondata) {
+ //console.log("widget deleted");
+ $("#dialog_deletewidget").dialog("close");
+ $("#widget_menue").hide();
+ $("#widget_" + view_id + "_" + widget_id).remove();
+ }
+ });
+ $(this).dialog("close");
+ },
+ "Abbrechen": function () {
+ $(this).dialog("close");
+ }
+ }
+ });
+
+ $("#dialog_editwidget").dialog({
+ autoOpen: false,
+ resizable: true,
+ height: 300,
+ width: 400,
+ modal: true,
+ buttons: {
+ "Speichern": function (ui) {
+ $(this).dialog("close");
+ },
+ "Abbrechen": function () {
+ $(this).dialog("close");
+ }
+ }
+ });
+
+
+ $("#dialog_manageviews").dialog({
+ autoOpen: false,
+ resizable: true,
+ height: 500,
+ width: 600,
+ modal: true,
+ buttons: {
+ "Schließen": function () {
+ $(this).dialog("close");
+ }
+ },
+ open: function (event, ui) {
+ $("#dialog_manageviews-table").html(" ");
+ $.each(views, function (index, view) {
+ $("#dialog_manageviews-table").append("" + view[1] + " ");
+ });
+ $(".button_edit").button({
+ icons: {
+ primary: "ui-icon-pencil"
+ },
+ text: false
+ });
+ $(".button_delete").button({
+ icons: {
+ primary: "ui-icon-trash"
+ },
+ text: false
+ });
+ $(".button_delete").click(function (ui) {
+ var sichtName = $(ui.currentTarget.parentNode.parentNode.firstChild).html();
+ delete_view_id = $(ui.currentTarget).attr("id").substr(12);
+ $("#label_deleteview").html(sichtName);
+ $("#dialog_deleteview").dialog("open");
+ return false;
+ });
+ $(".button_edit").click(function (ui) {
+ edit_view_name = $(ui.currentTarget.parentNode.parentNode.firstChild).html();
+ edit_view_id = $(ui.currentTarget).attr("id").substr(12);
+ $("#dialog_editview_name").val(edit_view_name);
+ $("#dialog_editview").dialog("open");
+ return false;
+ });
+ }
+ });
+
+ $("#dialog_settings").dialog({
+ autoOpen: false,
+ resizable: true,
+ height: 500,
+ width: 600,
+ modal: true,
+ buttons: {
+ "Speichern": function () {
+ $("#dialog_settings_loading").show();
+ //console.log("update widget refresh interval");
+ $.ajax({
+ type: "GET",
+ async: true,
+ url: "../../ajax/global/setRefreshTime",
+ data: "interval=" + $("#dialog_settings_intervall").val(),
+ context: document.body,
+ success: function () {
+ refreshTime = $("#dialog_settings_intervall").val();
+ $("#dialog_settings_loading").hide();
+ $("#dialog_settings").dialog("close");
+ }
+ });
+ $(this).dialog("close");
+ },
+ "Abbrechen": function () {
+ $(this).dialog("close");
+ }
+ },
+ open: function (event, ui) {
+ //console.log("dialog settings opened");
+ $("#dialog_settings_loading").show();
+ $.ajax({
+ type: "GET",
+ async: true,
+ url: "../../ajax/global/getRefreshTime",
+ data: "interval=" + $("#dialog_settings_intervall").val(),
+ context: document.body,
+ success: function (refreshInterval) {
+ $("#dialog_settings_intervall").val(refreshInterval);
+ $("#dialog_settings_loading").hide();
+ }
+ });
+ }
+ });
}
diff --git a/fhem/contrib/YAF/FHEM/YAF/www/yaf.htm b/fhem/contrib/YAF/FHEM/YAF/www/yaf.htm
index 9ea4fddf1..20aae6cf8 100755
--- a/fhem/contrib/YAF/FHEM/YAF/www/yaf.htm
+++ b/fhem/contrib/YAF/FHEM/YAF/www/yaf.htm
@@ -73,6 +73,9 @@
init_handlers();
load_views(show_views);
init_RefreshWidgets();
+ if(window.location != window.parent.location) {
+ $('#menue').toggle();
+ }
return;
}
@@ -82,6 +85,13 @@
$(document).ready(function() {
init();
});
+
+ $(document).keydown(function(e){
+ if (e.keyCode == 32) {
+ $('#menue').toggle();
+ return false;
+ }
+ });