You can subscribe to this list here.
| 2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(121) |
Dec
(58) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2011 |
Jan
(38) |
Feb
(36) |
Mar
(7) |
Apr
(2) |
May
(32) |
Jun
(24) |
Jul
(16) |
Aug
(21) |
Sep
(17) |
Oct
(62) |
Nov
(60) |
Dec
(70) |
| 2012 |
Jan
(54) |
Feb
(41) |
Mar
(21) |
Apr
(38) |
May
(76) |
Jun
(47) |
Jul
(25) |
Aug
(72) |
Sep
(29) |
Oct
(64) |
Nov
(93) |
Dec
(97) |
| 2013 |
Jan
(100) |
Feb
(168) |
Mar
(115) |
Apr
(59) |
May
(37) |
Jun
(32) |
Jul
(45) |
Aug
(42) |
Sep
(24) |
Oct
(73) |
Nov
(64) |
Dec
(4) |
| 2014 |
Jan
(14) |
Feb
(57) |
Mar
(58) |
Apr
(10) |
May
(18) |
Jun
(12) |
Jul
(7) |
Aug
(12) |
Sep
(15) |
Oct
(6) |
Nov
(32) |
Dec
(17) |
| 2015 |
Jan
(50) |
Feb
(5) |
Mar
(1) |
Apr
(26) |
May
(10) |
Jun
(3) |
Jul
(3) |
Aug
(2) |
Sep
(3) |
Oct
(18) |
Nov
(18) |
Dec
(8) |
| 2016 |
Jan
(33) |
Feb
(35) |
Mar
(50) |
Apr
(20) |
May
(25) |
Jun
(17) |
Jul
(8) |
Aug
(73) |
Sep
(64) |
Oct
(51) |
Nov
(20) |
Dec
(14) |
| 2017 |
Jan
(41) |
Feb
(57) |
Mar
(44) |
Apr
(136) |
May
(32) |
Jun
(39) |
Jul
(2) |
Aug
(12) |
Sep
(32) |
Oct
(103) |
Nov
(12) |
Dec
(4) |
| 2018 |
Jan
(9) |
Feb
(1) |
Mar
(60) |
Apr
(24) |
May
(15) |
Jun
(1) |
Jul
(2) |
Aug
(23) |
Sep
(15) |
Oct
(57) |
Nov
(21) |
Dec
(77) |
| 2019 |
Jan
(62) |
Feb
(99) |
Mar
(98) |
Apr
(49) |
May
(6) |
Jun
(3) |
Jul
(6) |
Aug
(18) |
Sep
(9) |
Oct
(15) |
Nov
(30) |
Dec
(6) |
| 2020 |
Jan
(14) |
Feb
(2) |
Mar
(22) |
Apr
(33) |
May
(47) |
Jun
(12) |
Jul
|
Aug
|
Sep
(4) |
Oct
(2) |
Nov
(5) |
Dec
(5) |
| 2021 |
Jan
(4) |
Feb
(101) |
Mar
(13) |
Apr
(32) |
May
(40) |
Jun
|
Jul
(3) |
Aug
|
Sep
|
Oct
(25) |
Nov
(12) |
Dec
|
| 2022 |
Jan
(154) |
Feb
(82) |
Mar
(63) |
Apr
(27) |
May
(26) |
Jun
(5) |
Jul
(12) |
Aug
(23) |
Sep
(17) |
Oct
(37) |
Nov
(13) |
Dec
(21) |
| 2023 |
Jan
(43) |
Feb
(43) |
Mar
(15) |
Apr
(8) |
May
(3) |
Jun
(25) |
Jul
(6) |
Aug
(38) |
Sep
(5) |
Oct
(20) |
Nov
(9) |
Dec
(28) |
| 2024 |
Jan
(15) |
Feb
(2) |
Mar
(12) |
Apr
(2) |
May
(8) |
Jun
(10) |
Jul
(10) |
Aug
(2) |
Sep
(3) |
Oct
(15) |
Nov
(6) |
Dec
(20) |
| 2025 |
Jan
|
Feb
(2) |
Mar
(6) |
Apr
(2) |
May
(2) |
Jun
|
Jul
|
Aug
(1) |
Sep
(1) |
Oct
(11) |
Nov
(2) |
Dec
|
|
From: <j-...@us...> - 2012-02-02 18:59:12
|
Revision: 680
http://openautomation.svn.sourceforge.net/openautomation/?rev=680&view=rev
Author: j-n-k
Date: 2012-02-02 18:59:06 +0000 (Thu, 02 Feb 2012)
Log Message:
-----------
Fixed wrong function name in diagramplugin (.setWidgetLayout instead of .setWidgetStyle)
Modified Paths:
--------------
CometVisu/trunk/visu/plugins/diagram/structure_plugin.js
Modified: CometVisu/trunk/visu/plugins/diagram/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/diagram/structure_plugin.js 2012-02-02 16:42:10 UTC (rev 679)
+++ CometVisu/trunk/visu/plugins/diagram/structure_plugin.js 2012-02-02 18:59:06 UTC (rev 680)
@@ -33,7 +33,7 @@
var id = "diagram_" + uniqid();
var ret_val = $('<div class="widget clearfix diagram" />');
- ret_val.setWidgetLayout($p).makeWidgetLabel($p);
+ ret_val.setWidgetStyle($p).makeWidgetLabel($p);
var actor = $("<div class=\"actor\"><div class=\"diagram_inline\" id=\"" + id + "\">loading...</div></div>");
var diagram = $("#" + id, actor);
@@ -98,7 +98,7 @@
var id = "diagram_" + uniqid();
var ret_val = $('<div class="widget clearfix diagram" />');
- ret_val.setWidgetLayout($p).makeWidgetLabel($p);
+ ret_val.setWidgetStyle($p).makeWidgetLabel($p);
var actor = $("<div class=\"actor\"><div class=\"diagram_preview\" id=\"" + id + "\">loading...</div></div>");
var diagram = $("#" + id, actor);
@@ -220,7 +220,7 @@
var id = "diagram_" + uniqid();
var ret_val = $('<div class="widget clearfix diagram" />');
- ret_val.setWidgetLayout($p).makeWidgetLabel($p);
+ ret_val.setWidgetStyle($p).makeWidgetLabel($p);
var actor = '<div class="actor switchUnpressed ';
if ( $p.attr( 'align' ) )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-02-02 16:42:21
|
Revision: 679
http://openautomation.svn.sourceforge.net/openautomation/?rev=679&view=rev
Author: j-n-k
Date: 2012-02-02 16:42:10 +0000 (Thu, 02 Feb 2012)
Log Message:
-----------
Added yaxismin/yaxismax parameters to diagram plugin
Fixed missing / in makeWidgetLabel
Modified Paths:
--------------
CometVisu/trunk/visu/designs/structure_pure.js
CometVisu/trunk/visu/plugins/diagram/structure_plugin.js
CometVisu/trunk/visu/visu_config.xsd
Modified: CometVisu/trunk/visu/designs/structure_pure.js
===================================================================
--- CometVisu/trunk/visu/designs/structure_pure.js 2012-02-01 20:58:36 UTC (rev 678)
+++ CometVisu/trunk/visu/designs/structure_pure.js 2012-02-02 16:42:10 UTC (rev 679)
@@ -70,7 +70,7 @@
$.fn.makeWidgetLabel = function(page) {
var labelElement = page.find('label')[0]; // get first label element
if (labelElement) { // if exists, add it
- this.append($('<div class="label">' + labelElement.textContent + '<div>'));
+ this.append($('<div class="label">' + labelElement.textContent + '</div>'));
}
return this;
}
Modified: CometVisu/trunk/visu/plugins/diagram/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/diagram/structure_plugin.js 2012-02-01 20:58:36 UTC (rev 678)
+++ CometVisu/trunk/visu/plugins/diagram/structure_plugin.js 2012-02-02 16:42:10 UTC (rev 679)
@@ -32,10 +32,9 @@
var id = "diagram_" + uniqid();
- var ret_val = $('<div class="widget clearfix" />');
- ret_val.addClass( 'diagram' );
- var labelElement = $p.find('label')[0];
- var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
+ var ret_val = $('<div class="widget clearfix diagram" />');
+ ret_val.setWidgetLayout($p).makeWidgetLabel($p);
+
var actor = $("<div class=\"actor\"><div class=\"diagram_inline\" id=\"" + id + "\">loading...</div></div>");
var diagram = $("#" + id, actor);
@@ -46,7 +45,7 @@
diagram.css("height", $p.attr("height"));
}
- ret_val.append(label).append(actor);
+ ret_val.append(actor);
diagram.data("id", id);
diagram.data("rrd", $p.attr("rrd"));
@@ -54,8 +53,10 @@
diagram.data("series", $p.attr("series") || "day");
diagram.data("period", $p.attr("period") || 1);
diagram.data("datasource", $p.attr("datasource") || "AVERAGE");
- diagram.data("label", $p.find('label')[0] ? $p.find('label')[0].textContent : '');
+ diagram.data("label", $('.label', ret_val).text() || '');
diagram.data("refresh", $p.attr("refresh"));
+ diagram.data("yaxismin", $p.attr("yaxismin"));
+ diagram.data("yaxismax", $p.attr("yaxismax"));
diagram.data("linecolor", $p.attr("linecolor") || "");
diagram.data("gridcolor", $p.attr("gridcolor") || "");
@@ -72,7 +73,11 @@
period: {type: "numeric", required: false},
datasource: {type: "list", required: false, list: {'MIN': "Min", 'AVERAGE': "Avg", 'MAX': "Max"}},
refresh: {type: "numeric", required: false},
+ yaxismin: {type: "numeric", required: false},
+ yaxismax: {type: "numeric", required: false},
linecolor: {type: "string", required: false},
+ colspan: {type: "numeric", required: false},
+ rowspan: {type: "numeric", required: false},
gridcolor: {type: "string", required: false}
},
elements: {
@@ -92,10 +97,9 @@
var id = "diagram_" + uniqid();
- var ret_val = $('<div class="widget clearfix" />');
- ret_val.addClass( 'diagram' );
- var labelElement = $p.find('label')[0];
- var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
+ var ret_val = $('<div class="widget clearfix diagram" />');
+ ret_val.setWidgetLayout($p).makeWidgetLabel($p);
+
var actor = $("<div class=\"actor\"><div class=\"diagram_preview\" id=\"" + id + "\">loading...</div></div>");
var diagram = $("#" + id, actor);
@@ -106,7 +110,7 @@
diagram.css("height", $p.attr("height"));
}
- ret_val.append(label).append(actor);
+ ret_val.append(actor);
diagram.data("id", id);
diagram.data("rrd", $p.attr("rrd"));
@@ -114,8 +118,10 @@
diagram.data("series", $p.attr("series") || "day");
diagram.data("period", $p.attr("period") || 1);
diagram.data("datasource", $p.attr("datasource") || "AVERAGE");
- diagram.data("label", $p.find('label')[0] ? $p.find('label')[0].textContent : '');
+ diagram.data("label", $('.label', ret_val).text() || '');
diagram.data("refresh", $p.attr("refresh"));
+ diagram.data("yaxismin", $p.attr("yaxismin"));
+ diagram.data("yaxismax", $p.attr("yaxismax"));
diagram.data("linecolor", $p.attr("linecolor") || "");
diagram.data("gridcolor", $p.attr("gridcolor") || "");
@@ -183,6 +189,8 @@
period: {type: "numeric", required: false},
datasource: {type: "list", required: false, list: {'MIN': "Min", 'AVERAGE': "Avg", 'MAX': "Max"}},
refresh: {type: "numeric", required: false},
+ yaxismin: {type: "numeric", required: false},
+ yaxismax: {type: "numeric", required: false},
linecolor: {type: "string", required: false},
gridcolor: {type: "string", required: false},
tooltip: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
@@ -211,11 +219,8 @@
var id = "diagram_" + uniqid();
- var ret_val = $('<div class="widget clearfix" />');
- ret_val.addClass( 'diagram' );
-
- var labelElement = $p.find('label')[0];
- var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
+ var ret_val = $('<div class="widget clearfix diagram" />');
+ ret_val.setWidgetLayout($p).makeWidgetLabel($p);
var actor = '<div class="actor switchUnpressed ';
if ( $p.attr( 'align' ) )
@@ -236,7 +241,7 @@
});
for( var addr in address ) $actor.bind( addr, this.update );
- ret_val.append(label).append($actor);
+ ret_val.append($actor);
$actor.addClass("clickable");
@@ -248,8 +253,10 @@
bDiagram.data("series", $p.attr("series") || "day");
bDiagram.data("period", $p.attr("period") || 1);
bDiagram.data("datasource", $p.attr("datasource") || "AVERAGE");
- bDiagram.data("label", labelElement.textContent);
+ bDiagram.data("label", $('.label', ret_val).text() || '');
bDiagram.data("refresh", $p.attr("refresh"));
+ bDiagram.data("yaxismin", $p.attr("yaxismin"));
+ bDiagram.data("yaxismax", $p.attr("yaxismax"));
bDiagram.data("linecolor", $p.attr("linecolor") || "");
bDiagram.data("gridcolor", $p.attr("gridcolor") || "");
@@ -259,7 +266,7 @@
bDiagram.data(data);
bDiagram.css({height: "90%"});
- showPopup("unknown", {title: labelElement.textContent, content: bDiagram});
+ showPopup("unknown", {title: bDiagram.data('label'), content: bDiagram});
bDiagram.parent("div").css({height: "100%", width: "90%", margin: "auto"}); // define parent as 100%!
var bDiagramOpts = {yaxis: {labelWidth: null}};
@@ -320,6 +327,8 @@
tooltip: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
linecolor: {type: "string", required: false},
gridcolor: {type: "string", required: false},
+ yaxismin: {type: "numeric", required: false},
+ yaxismax: {type: "numeric", required: false},
format: { type: 'format', required: false },
mapping: { type: 'mapping', required: false },
styling: { type: 'styling', required: false }
@@ -357,6 +366,8 @@
var period = diagram.data("period") || 1;
var linecolor = diagram.data("linecolor") || diagramColors.data;
var gridcolor = diagram.data("gridcolor") || "#81664B";
+ var yaxismin = diagram.data("yaxismin") || null;
+ var yaxismax = diagram.data("yaxismax") || null;
var series = {
hour: {label: "hour", res: "60", start: "hour", end: "now"},
@@ -369,7 +380,9 @@
var options = jQuery.extend(true,
{
yaxes: [{
- tickFormatter: function (v, axis) { return v.toFixed(axis.tickDecimals) + unit; }
+ tickFormatter: function (v, axis) { return v.toFixed(axis.tickDecimals) + unit; },
+ min: yaxismin,
+ max: yaxismax,
}],
xaxes: [{
mode: "time"
Modified: CometVisu/trunk/visu/visu_config.xsd
===================================================================
--- CometVisu/trunk/visu/visu_config.xsd 2012-02-01 20:58:36 UTC (rev 678)
+++ CometVisu/trunk/visu/visu_config.xsd 2012-02-02 16:42:10 UTC (rev 679)
@@ -399,7 +399,9 @@
<xsd:attribute name="period" type="xsd:string" use="optional" />
<xsd:attribute name="datasource" type="xsd:string" use="optional" />
<xsd:attribute name="linecolor" type="xsd:string" use="optional" />
- <xsd:attribute name="gridcolor" type="xsd:string" use="optional" />
+ <xsd:attribute name="gridcolor" type="xsd:string" use="optional" />
+ <xsd:attribute name="yaxismin" type="xsd:string" use="optional" />
+ <xsd:attribute name="yaxismax" type="xsd:string" use="optional" />
</xsd:complexType>
<xsd:complexType name="diagram_popup" >
@@ -415,6 +417,8 @@
<xsd:attribute name="tooltip" type="xsd:string" use="optional" />
<xsd:attribute name="linecolor" type="xsd:string" use="optional" />
<xsd:attribute name="gridcolor" type="xsd:string" use="optional" />
+ <xsd:attribute name="yaxismin" type="xsd:string" use="optional" />
+ <xsd:attribute name="yaxismax" type="xsd:string" use="optional" />
</xsd:complexType>
<xsd:complexType name="diagram_info" >
@@ -434,6 +438,8 @@
<xsd:attribute name="tooltip" type="xsd:string" use="optional" />
<xsd:attribute name="linecolor" type="xsd:string" use="optional" />
<xsd:attribute name="gridcolor" type="xsd:string" use="optional" />
+ <xsd:attribute name="yaxismin" type="xsd:string" use="optional" />
+ <xsd:attribute name="yaxismax" type="xsd:string" use="optional" />
</xsd:complexType>
<xsd:complexType name="gweather" >
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mr...@us...> - 2012-02-01 20:58:43
|
Revision: 678
http://openautomation.svn.sourceforge.net/openautomation/?rev=678&view=rev
Author: mrremy
Date: 2012-02-01 20:58:36 +0000 (Wed, 01 Feb 2012)
Log Message:
-----------
add playlists.php to upnpcontroller
Added Paths:
-----------
CometVisu/trunk/visu/plugins/upnpcontroller/playlists.php
Added: CometVisu/trunk/visu/plugins/upnpcontroller/playlists.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/playlists.php (rev 0)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/playlists.php 2012-02-01 20:58:36 UTC (rev 678)
@@ -0,0 +1,91 @@
+<?php
+/* playlists.php (c) 2012 by Mark K. [mr dot remy at gmx dot de]
+ *
+ * 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, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+*/
+
+require 'upnpctrl_util.php';
+
+$format = $_GET['format'];
+
+if($format == 'html'){
+ header("content-type: text/html");
+}else{
+ header("content-type: text/json");
+}
+
+$cmd_playlist='POST /MediaServer/ContentDirectory/Control HTTP/1.1
+CONNECTION: close
+HOST: '.$address.':'.$port.'
+CONTENT-LENGTH: 416
+CONTENT-TYPE: text/xml; charset="utf-8"
+SOAPACTION: "urn:schemas-upnp-org:service:ContentDirectory:1#Browse"
+
+<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:Browse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1"><ObjectID>SQ:</ObjectID><BrowseFlag>BrowseDirectChildren</BrowseFlag><Filter></Filter><StartingIndex>0</StartingIndex><RequestedCount>100</RequestedCount><SortCriteria></SortCriteria></u:Browse></s:Body></s:Envelope>';
+
+
+$actionResponse = sendUpnpAction($cmd_playlist, $address, $port);
+
+//echo "actionResponse xml: ";
+//print_r($actionResponse);
+//echo "</br>'";
+
+$xmlParser = xml_parser_create("UTF-8");
+xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8");
+xml_parse_into_struct($xmlParser, $actionResponse, $actionResponseArray, $index);
+xml_parser_free($xmlParser);
+
+//print_r($actionResponseArray);
+//print_r($index);
+
+$totalMatches = getValueOfResponse($actionResponseArray, "TOTALMATCHES");
+$playListsMeta = getValueOfResponse($actionResponseArray, "RESULT");
+
+$xmlParser = xml_parser_create("UTF-8");
+xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8");
+xml_parse_into_struct($xmlParser, $playListsMeta, $playListsArray, $index);
+xml_parser_free($xmlParser);
+
+//print_r($playListsArray);
+
+$arraySize = count($playListsArray);
+$playLists = array();
+$j = 0;
+
+for($i=0; $i < $arraySize; $i++)
+{
+ $tag = $playListsArray[$i]['tag'];
+
+ if($tag == "DC:TITLE"){
+ $playLists[$j]['name'] = $playListsArray[$i]['value'];
+ $playLists[$j]['url'] = $playListsArray[$i + 1]['value'];
+ $playLists[$j]['urlenc'] = urlencode((string)$playListsArray[$i + 1]['value']);
+
+ $j++;
+ }
+}
+
+//print_r($playLists);
+
+$json_result = "{\"actionstatus\" : \"OK\", \"totalMatches\": " . $totalMatches;
+
+$json_result .= ", \"playLists\": ";
+$json_result .= json_encode($playLists);
+
+$json_result .= "}";
+
+print_r($json_result);
+
+?>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mr...@us...> - 2012-02-01 20:57:25
|
Revision: 677
http://openautomation.svn.sourceforge.net/openautomation/?rev=677&view=rev
Author: mrremy
Date: 2012-02-01 20:57:18 +0000 (Wed, 01 Feb 2012)
Log Message:
-----------
add port to config of upnpcontroller
Modified Paths:
--------------
CometVisu/trunk/visu/plugins/upnpcontroller/mute.php
CometVisu/trunk/visu/plugins/upnpcontroller/next.php
CometVisu/trunk/visu/plugins/upnpcontroller/pause.php
CometVisu/trunk/visu/plugins/upnpcontroller/play.php
CometVisu/trunk/visu/plugins/upnpcontroller/prev.php
CometVisu/trunk/visu/plugins/upnpcontroller/status.php
CometVisu/trunk/visu/plugins/upnpcontroller/structure_plugin.js
CometVisu/trunk/visu/plugins/upnpcontroller/upnpctrl_util.php
CometVisu/trunk/visu/plugins/upnpcontroller/volume.php
Modified: CometVisu/trunk/visu/plugins/upnpcontroller/mute.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/mute.php 2012-02-01 18:34:01 UTC (rev 676)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/mute.php 2012-02-01 20:57:18 UTC (rev 677)
@@ -24,7 +24,7 @@
$cmd_setmute='POST /MediaRenderer/RenderingControl/Control HTTP/1.1
CONNECTION: close
-HOST: '.$address.':1400
+HOST: '.$address.':'.$port.'
CONTENT-LENGTH: 314
CONTENT-TYPE: text/xml; charset="utf-8"
SOAPACTION: "urn:schemas-upnp-org:service:RenderingControl:1#SetMute"
Modified: CometVisu/trunk/visu/plugins/upnpcontroller/next.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/next.php 2012-02-01 18:34:01 UTC (rev 676)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/next.php 2012-02-01 20:57:18 UTC (rev 677)
@@ -23,7 +23,7 @@
$cmd_next='POST /MediaRenderer/AVTransport/Control HTTP/1.1
CONNECTION: close
-HOST: '.$address.':1400
+HOST: '.$address.':'.$port.'
CONTENT-LENGTH: 250
CONTENT-TYPE: text/xml; charset="utf-8"
SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Next"
Modified: CometVisu/trunk/visu/plugins/upnpcontroller/pause.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/pause.php 2012-02-01 18:34:01 UTC (rev 676)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/pause.php 2012-02-01 20:57:18 UTC (rev 677)
@@ -23,7 +23,7 @@
$cmd_pause='POST /MediaRenderer/AVTransport/Control HTTP/1.1
CONNECTION: close
-HOST: '.$address.':1400
+HOST: '.$address.':'.$port.'
CONTENT-LENGTH: 252
CONTENT-TYPE: text/xml; charset="utf-8"
SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Pause"
Modified: CometVisu/trunk/visu/plugins/upnpcontroller/play.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/play.php 2012-02-01 18:34:01 UTC (rev 676)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/play.php 2012-02-01 20:57:18 UTC (rev 677)
@@ -23,7 +23,7 @@
$cmd_play='POST /MediaRenderer/AVTransport/Control HTTP/1.1
CONNECTION: close
-HOST: '.$address.':1400
+HOST: '.$address.':'.$port.'
CONTENT-LENGTH: 266
CONTENT-TYPE: text/xml; charset="utf-8"
SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Play"
Modified: CometVisu/trunk/visu/plugins/upnpcontroller/prev.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/prev.php 2012-02-01 18:34:01 UTC (rev 676)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/prev.php 2012-02-01 20:57:18 UTC (rev 677)
@@ -23,7 +23,7 @@
$cmd_prev = 'POST /MediaRenderer/AVTransport/Control HTTP/1.1
CONNECTION: close
-HOST: '.$address.':1400
+HOST: '.$address.':'.$port.'
CONTENT-LENGTH: 258
CONTENT-TYPE: text/xml; charset="utf-8"
SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Previous"
Modified: CometVisu/trunk/visu/plugins/upnpcontroller/status.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/status.php 2012-02-01 18:34:01 UTC (rev 676)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/status.php 2012-02-01 20:57:18 UTC (rev 677)
@@ -18,12 +18,17 @@
require 'upnpctrl_util.php';
-//header("content-type: text/html");
-header("content-type: text/json");
+$format = $_GET['format'];
+if($format == 'html'){
+ header("content-type: text/html");
+}else{
+ header("content-type: text/json");
+}
+
$cmd_getvolume='POST /MediaRenderer/RenderingControl/Control HTTP/1.1
CONNECTION: close
-HOST: '.$address.':1400
+HOST: '.$address.':'.$port.'
CONTENT-LENGTH: 296
CONTENT-TYPE: text/xml; charset="utf-8"
SOAPACTION: "urn:schemas-upnp-org:service:RenderingControl:1#GetVolume"
@@ -32,7 +37,7 @@
$cmd_getmute='POST /MediaRenderer/RenderingControl/Control HTTP/1.1
CONNECTION: close
-HOST: '.$address.':1400
+HOST: '.$address.':'.$port.'
CONTENT-LENGTH: 288
CONTENT-TYPE: text/xml; charset="utf-8"
SOAPACTION: "urn:schemas-upnp-org:service:RenderingControl:1#GetMute"
@@ -41,7 +46,7 @@
$cmd_getpositioninfo='POST /MediaRenderer/AVTransport/Control HTTP/1.1
CONNECTION: close
-HOST: '.$address.':1400
+HOST: '.$address.':'.$port.'
CONTENT-LENGTH: 299
CONTENT-TYPE: text/xml; charset="utf-8"
SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#GetPositionInfo"
@@ -50,7 +55,7 @@
$cmd_gettransportinfo='POST /MediaRenderer/AVTransport/Control HTTP/1.1
CONNECTION: close
-HOST: '.$address.':1400
+HOST: '.$address.':'.$port.'
CONTENT-LENGTH: 274
CONTENT-TYPE: text/xml; charset="utf-8"
SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#GetTransportInfo"
Modified: CometVisu/trunk/visu/plugins/upnpcontroller/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/structure_plugin.js 2012-02-01 18:34:01 UTC (rev 676)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/structure_plugin.js 2012-02-01 20:57:18 UTC (rev 677)
@@ -19,6 +19,8 @@
$( 'head' ).append( '<link rel="stylesheet" href="plugins/upnpcontroller/upnpcontroller.css" type="text/css" />' );
var upnpcontroller_uid;
+var upnpcontroller_trace_flag;
+var upnpcontroller_song_process_rel;
VisuDesign_Custom.prototype.addCreator("upnpcontroller", {
@@ -45,6 +47,7 @@
controller.append( "<div id='" + id + "_artist' class='upnplabelgroup'><div class='upnplabel'>Artist</div><div class='value'>-</div></div>");
controller.append( "<div id='" + id + "_album' class='upnplabelgroup'><div class='upnplabel'>Album</div><div class='value'>-</div></div>");
controller.append( "<div id='" + id + "_time' class='upnplabelgroup'><div class='upnplabel'></div><div class='value'>-</div></div>");
+ controller.append( "<div style='float: left;'><progress id='" + id + "_progress' max='100' value='0'></progress></div>" );
controller.append( "<div style='float: left;'><div id='" + id + "_volumedown' class='actor center switchUnpressed'><div class='value'>-</div></div>"
+ "<div id='" + id + "_volume' class='actor center switchInvisible' style='text-align: center;'><div class='value'>20</div></div>"
+ "<div id='" + id + "_volumeup' class='actor center switchUnpressed'><div class='value'>+</div></div></div>" );
@@ -52,6 +55,8 @@
+ "<div id='" + id + "_muteButton' class='actor switchUnpressed center'><div class='value'>-</div></div>" );
controller.append( "<div style='float: left;'><div id='" + id + "_prev' class='actor switchUnpressed center'><div class='value'>prev</div></div>"
+ "<div id='" + id + "_next' class='actor switchUnpressed center'><div class='value'>next</div></div></div>" );
+ controller.append( "<div style='float: left;'><div id='" + id + "_getplaylists' class='actor switchUnpressed center'><div class='value'>play lists</div></div></div>" );
+ controller.append( "<div style='float: left;'><div id='" + id + "_playlistsresult'><div class='value'></div></div></div>" );
upnpcontroller.html(controller);
@@ -64,7 +69,15 @@
upnpcontroller.data("refresh", $p.attr("refresh"));
upnpcontroller.data("player_ip", $p.attr("player_ip_addr"));
upnpcontroller.data("debug", $p.attr("debug"));
+
+ if($p.attr("player_port") != undefined){
+ upnpcontroller.data("player_port", $p.attr("player_port"));
+ }else{
+ upnpcontroller.data("player_port", '1400');
+ }
+ upnpcontroller_trace_flag = $p.attr("debug");
+
refreshUpnpcontroller(upnpcontroller, {}, false);
return ret_val;
@@ -72,6 +85,7 @@
attributes: {
label: {type: "string", required: true},
player_ip_addr: {type: "string", required: true},
+ player_port: {type: "string", required: false},
refresh: {type: "numeric", required: true},
debug: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
},
@@ -83,17 +97,15 @@
var upnpcontroller = $(upnpcontroller);
var playerIp = upnpcontroller.data("player_ip");
+ var playerPort = upnpcontroller.data("player_port");
var id = upnpcontroller.data("id");
- var debug = upnpcontroller.data("debug");
var eventsRegistered = upnpcontroller.data("eventsRegistered");
var label = upnpcontroller.data("label");
var refresh = upnpcontroller.data("refresh");
- console.log("debug: " + debug);
-
- if(debug == 'true'){
- console.log("playerIp: " + playerIp);
- }
+ trace("debug : " + upnpcontroller_trace_flag);
+ trace("playerIp : " + playerIp);
+ trace("playerPort: " + playerPort);
function updateContoller( volume, mute, playMode, title, reltime, duration, artist, album){
@@ -121,15 +133,19 @@
$('#' + id + '_album div.value').text(album);
$('#' + id + '_time div.value').text(reltime + ' of ' + duration);
+ upnpcontroller_song_process_rel = calculateSongProcessed(reltime, duration);
+ trace("song_process_rel: " + upnpcontroller_song_process_rel);
+ $('#' + id + '_progress').attr({value: upnpcontroller_song_process_rel});
+
}
$.ajax({
type: "GET",
datatype: "JSON",
- url: "plugins/upnpcontroller/status.php?player_ip_addr=" + playerIp,
+ url: "plugins/upnpcontroller/status.php?player_ip_addr=" + playerIp + "&port=" + playerPort,
success: function(data){
- if(debug == 'true'){
+ if(upnpcontroller_trace_flag == 'true'){
console.log("volume : " + data.volume);
console.log("reltime : " + data.reltimeResponse);
console.log("durationResponse: " + data.durationResponse);
@@ -150,9 +166,11 @@
$('#' + upnpcontroller_uid + '_prev').bind('click', callPrev);
$('#' + upnpcontroller_uid + '_volumedown').bind('click', callvolumedown);
$('#' + upnpcontroller_uid + '_volumeup').bind('click', callvolumeup);
+ $('#' + upnpcontroller_uid + '_getplaylists').bind('click', callgetplaylists);
upnpcontroller.data("eventsRegistered", eventsRegistered + 1);
}
+
//refresh regularly
if (typeof (refresh) != "undefined" && refresh && oneTimeCall == false) {
@@ -165,20 +183,88 @@
return false;
}
+function calculateSongProcessed(reltime, duration) {
+ var result = 0;
+ var secondsTotal = 0;
+ var secondsProcessed = 0;
+ trace("calculateSongProcessed");
+
+ durationParts = duration.split(':');
+ secondsTotal = Number(durationParts[2]) + Number(durationParts[1]) * 60 + Number(durationParts[0]) * 60 * 60;
+ reltimeParts = reltime.split(':');
+ secondsProcessed = Number(reltimeParts[2]) + Number(reltimeParts[1]) * 60 + Number(reltimeParts[0]) * 60 * 60;
+ trace("secondsTotal : " + secondsTotal);
+ trace("secondsProcessed: " + secondsProcessed);
+
+ result = Math.floor(secondsProcessed * 100 / secondsTotal);
+
+ return result;
+}
+
+function callgetplaylists() {
+ trace("click callgetplaylists");
+ var upnpctrl = $("#" + upnpcontroller_uid);
+ var playerIp = upnpctrl.data("player_ip");
+ var playerPort = upnpctrl.data("player_port");
+ var currentValue= $('#' + upnpcontroller_uid + '_getplaylists').attr('value');
+
+ trace("currentValue: " + currentValue);
+ trace("playerPort : " + playerPort);
+
+ $.ajax({
+ type: "GET",
+ datatype: "JSON",
+ url: "plugins/upnpcontroller/playlists.php?player_ip_addr=" + playerIp,
+ success: function(data){
+ var playlists = '';
+
+ trace("totalMatches: " + data.totalMatches);
+
+ for(var i = 0; i < data.playLists.length; i++){
+ playlists += "<a href='"
+ + "plugins/upnpcontroller/selectplaylist.php?player_ip_addr=" + playerIp
+ + "&listurl=" + data.playLists[i].urlenc + "&port=" + playerPort + "'>"
+ + data.playLists[i].name + "</a></br>";
+
+ if(upnpcontroller_trace_flag == 'true'){
+ console.log("name: " + data.playLists[i].name);
+ console.log("url: " + data.playLists[i].url);
+ }
+ }
+
+ if(currentValue != 'pressed'){
+ $('#' + upnpcontroller_uid + '_playlistsresult div.value').html(playlists);
+ $('#' + upnpcontroller_uid + '_getplaylists').attr({value: 'pressed'});
+ $('#' + upnpcontroller_uid + '_getplaylists').removeClass('switchUnpressed');
+ $('#' + upnpcontroller_uid + '_getplaylists').addClass('switchPressed');
+ }else{
+ $('#' + upnpcontroller_uid + '_playlistsresult div.value').text('');
+ $('#' + upnpcontroller_uid + '_getplaylists').attr({value: 'unpressed'});
+ $('#' + upnpcontroller_uid + '_getplaylists').removeClass('switchPressed');
+ $('#' + upnpcontroller_uid + '_getplaylists').addClass('switchUnpressed');
+ }
+
+
+ }
+ });
+}
+
function callvolumedown() {
- console.log("click callvolumedown");
+ trace("click callvolumedown");
var upnpctrl = $("#" + upnpcontroller_uid);
var playerIp = upnpctrl.data("player_ip");
+ var playerPort = upnpctrl.data("player_port");
var currentVolume = $('#' + upnpcontroller_uid + '_volume div.value').text();
- console.log("currentVolume: " + currentVolume);
-
+ trace("currentVolume: " + currentVolume);
+ trace("playerPort : " + playerPort);
+
var volume = Number(currentVolume) - 5;
$.ajax({
type: "GET",
datatype: "JSON",
- url: "plugins/upnpcontroller/volume.php?player_ip_addr=" + playerIp + "&volume=" + volume,
+ url: "plugins/upnpcontroller/volume.php?player_ip_addr=" + playerIp + "&volume=" + volume + "&port=" + playerPort,
success: function(data){
console.log("data: " + data);
}
@@ -186,63 +272,73 @@
}
function callvolumeup() {
- console.log("click callvolumeup");
+ trace("click callvolumeup");
var upnpctrl = $("#" + upnpcontroller_uid);
var playerIp = upnpctrl.data("player_ip");
+ var playerPort = upnpctrl.data("player_port");
var currentVolume = $('#' + upnpcontroller_uid + '_volume div.value').text();
- console.log("currentVolume: " + currentVolume);
-
+ trace("currentVolume: " + currentVolume);
+ trace("playerPort : " + playerPort);
+
var volume = Number(currentVolume) + 5;
$.ajax({
type: "GET",
datatype: "JSON",
- url: "plugins/upnpcontroller/volume.php?player_ip_addr=" + playerIp + "&volume=" + volume,
+ url: "plugins/upnpcontroller/volume.php?player_ip_addr=" + playerIp + "&volume=" + volume + "&port=" + playerPort,
success: function(data){
- console.log("data: " + data);
+ trace("data: " + data);
}
});
}
function callNext() {
- console.log("click next");
+ trace("click next");
var upnpctrl = $("#" + upnpcontroller_uid);
var playerIp = upnpctrl.data("player_ip");
+ var playerPort = upnpctrl.data("player_port");
+
+ trace("playerPort : " + playerPort);
$.ajax({
type: "GET",
datatype: "JSON",
- url: "plugins/upnpcontroller/next.php?player_ip_addr=" + playerIp,
+ url: "plugins/upnpcontroller/next.php?player_ip_addr=" + playerIp + "&port=" + playerPort,
success: function(data){
- console.log("data: " + data);
+ trace("data: " + data);
}
});
}
function callPrev() {
- console.log("click prev");
+ trace("click prev");
var upnpctrl = $("#" + upnpcontroller_uid);
var playerIp = upnpctrl.data("player_ip");
+ var playerPort = upnpctrl.data("player_port");
+
+ trace("playerPort : " + playerPort);
$.ajax({
type: "GET",
datatype: "JSON",
- url: "plugins/upnpcontroller/prev.php?player_ip_addr=" + playerIp,
+ url: "plugins/upnpcontroller/prev.php?player_ip_addr=" + playerIp + "&port=" + playerPort,
success: function(data){
- console.log("data: " + data);
+ trace("data: " + data);
}
});
}
function toggleMute() {
- console.log("click mute");
+ trace("click mute");
var upnpctrl = $("#" + upnpcontroller_uid);
var playerIp = upnpctrl.data("player_ip");
+ var playerPort = upnpctrl.data("player_port");
var muteValue = $('#' + upnpcontroller_uid + '_muteButton div.value').text();
-
- console.log("current muteValue: " + muteValue);
+
+ trace("current muteValue: " + muteValue);
+ trace("playerPort : " + playerPort);
if(muteValue == 0){
muteValue = 1;
@@ -257,9 +353,9 @@
$.ajax({
type: "GET",
datatype: "JSON",
- url: "plugins/upnpcontroller/mute.php?mute=" + muteValue + "&player_ip_addr=" + playerIp,
+ url: "plugins/upnpcontroller/mute.php?mute=" + muteValue + "&player_ip_addr=" + playerIp + "&port=" + playerPort,
success: function(data){
- console.log("data: " + data);
+ trace("data: " + data);
}
});
@@ -267,13 +363,15 @@
}
function togglePlay() {
- console.log("click play");
+ trace("click play");
var upnpctrl = $("#" + upnpcontroller_uid);
var playerIp = upnpctrl.data("player_ip");
+ var playerPort = upnpctrl.data("player_port");
var playValue = $('#' + upnpcontroller_uid + '_playButton div.value').text();
var cmd;
- console.log("current playValue: " + playValue);
+ trace("current playValue: " + playValue);
+ trace("playerPort : " + playerPort);
if(playValue == 'Play'){
cmd = 'pause';
@@ -288,12 +386,18 @@
$.ajax({
type: "GET",
datatype: "JSON",
- url: "plugins/upnpcontroller/" + cmd + ".php?player_ip_addr=" + playerIp,
+ url: "plugins/upnpcontroller/" + cmd + ".php?player_ip_addr=" + playerIp + "&port=" + playerPort,
success: function(data){
- console.log("data: " + data);
+ trace("data: " + data);
}
});
refreshUpnpcontroller(upnpctrl, {}, true);
}
+function trace(msg){
+ if(upnpcontroller_trace_flag == 'true'){
+ console.log(msg);
+ }
+}
+
Modified: CometVisu/trunk/visu/plugins/upnpcontroller/upnpctrl_util.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/upnpctrl_util.php 2012-02-01 18:34:01 UTC (rev 676)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/upnpctrl_util.php 2012-02-01 20:57:18 UTC (rev 677)
@@ -17,6 +17,7 @@
*/
$address = $_GET['player_ip_addr'];
+$port = $_GET['port'];
$port = 1400;
$error_msg;
Modified: CometVisu/trunk/visu/plugins/upnpcontroller/volume.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/volume.php 2012-02-01 18:34:01 UTC (rev 676)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/volume.php 2012-02-01 20:57:18 UTC (rev 677)
@@ -24,7 +24,7 @@
$cmd_setvolume='POST /MediaRenderer/RenderingControl/Control HTTP/1.1
CONNECTION: close
-HOST: '.$address.':1400
+HOST: '.$address.':'.$port.'
CONTENT-LENGTH: 32'.strlen($volume).'
CONTENT-TYPE: text/xml; charset="utf-8"
SOAPACTION: "urn:schemas-upnp-org:service:RenderingControl:1#SetVolume"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mr...@us...> - 2012-02-01 18:34:12
|
Revision: 676
http://openautomation.svn.sourceforge.net/openautomation/?rev=676&view=rev
Author: mrremy
Date: 2012-02-01 18:34:01 +0000 (Wed, 01 Feb 2012)
Log Message:
-----------
added upnpcontroller to the visu_config.xsd
Modified Paths:
--------------
CometVisu/trunk/visu/visu_config.xsd
Modified: CometVisu/trunk/visu/visu_config.xsd
===================================================================
--- CometVisu/trunk/visu/visu_config.xsd 2012-01-31 20:42:01 UTC (rev 675)
+++ CometVisu/trunk/visu/visu_config.xsd 2012-02-01 18:34:01 UTC (rev 676)
@@ -182,6 +182,7 @@
<xsd:element name="gweather" type="gweather" />
<xsd:element name="rss" type="rss" />
<xsd:element name="jqclock" type="jqclock" />
+ <xsd:element name="upnpcontroller" type="upnpcontroller" />
<xsd:element ref="page" />
</xsd:choice>
<xsd:attribute name="name" type="xsd:string" use="required" />
@@ -228,6 +229,7 @@
<xsd:element name="gweather" type="gweather" />
<xsd:element name="rss" type="rss" />
<xsd:element name="jqclock" type="jqclock" />
+ <xsd:element name="upnpcontroller" type="upnpcontroller" />
<xsd:element ref="page" />
</xsd:choice>
<xsd:attribute name="name" type="xsd:string" use="required" />
@@ -478,6 +480,14 @@
<xsd:attribute name="date" type="xsd:string" use="optional" />
</xsd:complexType>
+<xsd:complexType name="upnpcontroller" >
+ <xsd:attribute name="label" type="xsd:string" use="required"/>
+ <xsd:attribute name="player_ip_addr" type="xsd:string" use="required"/>
+ <xsd:attribute name="player_port" type="xsd:string" use="optional" />
+ <xsd:attribute name="refresh" type="xsd:string" use="required" />
+ <xsd:attribute name="debug" type="xsd:string" use="optional" />
+</xsd:complexType>
+
<xsd:complexType name="break" />
<xsd:complexType name="line" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-31 20:42:12
|
Revision: 675
http://openautomation.svn.sourceforge.net/openautomation/?rev=675&view=rev
Author: j-n-k
Date: 2012-01-31 20:42:01 +0000 (Tue, 31 Jan 2012)
Log Message:
-----------
Fix $.fn.setWidgetStyling (was broken when no styling defined)
Modified Paths:
--------------
CometVisu/trunk/visu/designs/structure_pure.js
Modified: CometVisu/trunk/visu/designs/structure_pure.js
===================================================================
--- CometVisu/trunk/visu/designs/structure_pure.js 2012-01-31 19:14:25 UTC (rev 674)
+++ CometVisu/trunk/visu/designs/structure_pure.js 2012-01-31 20:42:01 UTC (rev 675)
@@ -29,10 +29,9 @@
*/
$.fn.setWidgetStyling = function(value) {
- if (this.data('styling')) {
- var styling = stylings[this.data('styling')];
+ var styling = stylings[this.data('styling')];
+ if (styling) {
this.removeClass(styling['classnames']); // remove only styling classes
-
if (styling[value]) { // fixed value
this.addClass(styling[value]);
} else { //
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-31 19:14:31
|
Revision: 674
http://openautomation.svn.sourceforge.net/openautomation/?rev=674&view=rev
Author: j-n-k
Date: 2012-01-31 19:14:25 +0000 (Tue, 31 Jan 2012)
Log Message:
-----------
Mssing second file for changeset 673
Modified Paths:
--------------
CometVisu/trunk/visu/lib/templateengine.js
Modified: CometVisu/trunk/visu/lib/templateengine.js
===================================================================
--- CometVisu/trunk/visu/lib/templateengine.js 2012-01-31 19:10:49 UTC (rev 673)
+++ CometVisu/trunk/visu/lib/templateengine.js 2012-01-31 19:14:25 UTC (rev 674)
@@ -295,8 +295,10 @@
// then the stylings
$( 'meta > stylings styling', xml ).each( function(i){
var name = $(this).attr('name');
+ var classnames = '';
stylings[ name ] = {};
$(this).find('entry').each( function(){
+ classnames += $(this).text() + ' ';
if( $(this).attr('value') )
{
stylings[ name ][ $(this).attr('value') ] = $(this).text();
@@ -304,8 +306,10 @@
if( ! stylings[ name ][ 'range' ] ) stylings[ name ][ 'range' ] = {};
stylings[ name ][ 'range' ][ parseFloat($(this).attr('range_min')) ] =
[ parseFloat( $(this).attr('range_max') ), $(this).text() ];
+
}
});
+ stylings[ name ]['classnames'] = classnames;
});
// then the status bar
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-31 19:11:00
|
Revision: 673
http://openautomation.svn.sourceforge.net/openautomation/?rev=673&view=rev
Author: j-n-k
Date: 2012-01-31 19:10:49 +0000 (Tue, 31 Jan 2012)
Log Message:
-----------
Added .setWidgetStyling($(page)) : apply stylings to widgets
implemented in trigger and default_update
Modified Paths:
--------------
CometVisu/trunk/visu/designs/structure_pure.js
Modified: CometVisu/trunk/visu/designs/structure_pure.js
===================================================================
--- CometVisu/trunk/visu/designs/structure_pure.js 2012-01-31 09:44:42 UTC (rev 672)
+++ CometVisu/trunk/visu/designs/structure_pure.js 2012-01-31 19:10:49 UTC (rev 673)
@@ -23,11 +23,38 @@
};
/**
- * this function implements all widget stylings that are identical (JNK)
+ * this function implements widget stylings
*
+ * implemented in: default_update, trigger-widget
+ */
+
+$.fn.setWidgetStyling = function(value) {
+ if (this.data('styling')) {
+ var styling = stylings[this.data('styling')];
+ this.removeClass(styling['classnames']); // remove only styling classes
+
+ if (styling[value]) { // fixed value
+ this.addClass(styling[value]);
+ } else { //
+ value = parseFloat(value);
+ var range = styling['range'];
+ for( var min in range ) {
+ if( min > value ) continue;
+ if( range[min][0] < value ) continue; // check max
+ this.addClass( range[min][1] );
+ break;
+ }
+ }
+ }
+ return this;
+}
+
+/**
+ * this function implements all widget layouts that are identical (JNK)
+ *
* implemented: rowspan, colspan
*/
-
+
$.fn.setWidgetStyle = function(page) {
this.data('colspanClass', colspanClass(page.attr('colspan') || 1));
if (page.attr('rowspan')) {
@@ -271,11 +298,7 @@
var ret_val = $('<div class="widget clearfix info" ' + style + ' />');
ret_val.setWidgetStyle($p).makeWidgetLabel($p);
var address = makeAddressList($p);
- /*$p.find('address').each( function(){
- var src = this.textContent;
- ga_list.push( src )
- address[ '_' + src ] = [ this.getAttribute('transform') ];
- }); */
+
var actor = '<div class="actor"><div class="value">-</div></div>';
var $actor = $(actor).data({
'address' : address,
@@ -709,7 +732,7 @@
$(this).removeClass('switchUnpressed').addClass('switchPressed');
} ).bind( 'mouseup mouseout', function(){ // not perfect but simple
$(this).removeClass('switchPressed').addClass('switchUnpressed');
- } );
+ } ).setWidgetStyling(value);
ret_val.append( label ).append( $actor );
return ret_val;
},
@@ -1174,38 +1197,15 @@
return { x: 0, y: 0 }; // sanity return
}
+
function defaultUpdate( e, data, passedElement )
{
var element = passedElement || $(this);
var thisTransform = element.data().address[ e.type ][0];
var value = transformDecode( element.data().address[ e.type ][0], data );
-
- var styling = element.data('styling');
- if( styling && stylings[styling] && (stylings[styling][value] || stylings[styling]['range']) )
- {
- if( stylings[styling]['range'] ) value = parseFloat( value );
- element.removeClass();
- if( stylings[styling][value] )
- {
- element.addClass( 'actor ' + stylings[styling][value] );
- } else {
- var range = stylings[styling]['range'];
- var not_found = true;
- for( var min in range )
- {
- if( min > value ) continue;
- if( range[min][0] < value ) continue; // check max
- element.addClass( 'actor ' + range[min][1] );
- not_found = false;
- break;
- }
- if( not_found ) element.addClass( 'actor ' );
- }
- } else {
- element.removeClass();
- element.addClass( 'actor ' );
- }
-
+
+ element.setWidgetStyling(value);
+
if( element.data( 'align' ) )
element.addClass(element.data( 'align' ) );
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-31 09:44:53
|
Revision: 672
http://openautomation.svn.sourceforge.net/openautomation/?rev=672&view=rev
Author: j-n-k
Date: 2012-01-31 09:44:42 +0000 (Tue, 31 Jan 2012)
Log Message:
-----------
Added function for address-parsing (makeAddressList($(page)))
Modified Paths:
--------------
CometVisu/trunk/visu/designs/structure_pure.js
Modified: CometVisu/trunk/visu/designs/structure_pure.js
===================================================================
--- CometVisu/trunk/visu/designs/structure_pure.js 2012-01-30 20:29:19 UTC (rev 671)
+++ CometVisu/trunk/visu/designs/structure_pure.js 2012-01-31 09:44:42 UTC (rev 672)
@@ -48,8 +48,25 @@
}
return this;
}
-
+
/**
+ * this function extracts all addresses with attributes (JNK)
+ */
+
+function makeAddressList(page) {
+ var address = {};
+ page.find('address').each( function(){
+ var src = this.textContent;
+ var transform = this.getAttribute('transform');
+ var readonly = this.getAttribute('readonly');
+ var writeonly = this.getAttribute('writeonly');
+ ga_list.push( src )
+ address[ '_' + src ] = [ transform, readonly=='true', writeonly=='true' ];
+ });
+ return address;
+}
+
+/**
* This class defines all the building blocks for a Visu in the "Pure" design
*/
@@ -253,12 +270,12 @@
var style = layout ? 'style="' + extractLayout( layout ) + '"' : '';
var ret_val = $('<div class="widget clearfix info" ' + style + ' />');
ret_val.setWidgetStyle($p).makeWidgetLabel($p);
- var address = {};
- $p.find('address').each( function(){
+ var address = makeAddressList($p);
+ /*$p.find('address').each( function(){
var src = this.textContent;
ga_list.push( src )
address[ '_' + src ] = [ this.getAttribute('transform') ];
- });
+ }); */
var actor = '<div class="actor"><div class="value">-</div></div>';
var $actor = $(actor).data({
'address' : address,
@@ -409,15 +426,7 @@
ret_val.setWidgetStyle($p)
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
- var address = {};
- $p.find('address').each( function(){
- var src = this.textContent;
- var transform = this.getAttribute('transform');
- var readonly = this.getAttribute('readonly');
- var writeonly = this.getAttribute('writeonly');
- ga_list.push( src )
- address[ '_' + src ] = [ transform, readonly=='true', writeonly=='true' ];
- });
+ var address = makeAddressList($p);
var actor = '<div class="actor switchUnpressed"><div class="value">-</div></div>';
var $actor = $(actor).data( {
'address' : address,
@@ -474,14 +483,7 @@
ret_val.setWidgetStyle($p);
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
- var address = {};
- $p.find('address').each( function(){
- var src = this.textContent;
- var transform = this.getAttribute('transform');
- var readonly = this.getAttribute('readonly');
- ga_list.push( src )
- address[ '_' + src ] = [ transform, readonly=='true' ];
- });
+ var address = makeAddressList($p);
var actor = '<div class="actor switchUnpressed"><div class="value">-</div></div>';
var $actor = $(actor).data( {
'address' : address,
@@ -541,15 +543,8 @@
ret_val.setWidgetStyle($p)
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
- var address = {};
+ var address = makeAddressList($p);
var showstatus = $p.attr("showstatus") || "false";
- $p.find('address').each( function(){
- var src = this.textContent;
- var transform = this.getAttribute('transform');
- var readonly = this.getAttribute('readonly');
- ga_list.push( src )
- address[ '_' + src ] = [ transform, readonly=='true' ];
- });
ret_val.append( label );
var buttons = $('<div style="float:left"/>');
var buttonCount = 0;
@@ -692,14 +687,7 @@
ret_val.setWidgetStyle($p);
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
- var address = {};
- $p.find('address').each( function(){
- var src = this.textContent;
- var transform = this.getAttribute('transform');
- var readonly = this.getAttribute('readonly');
- ga_list.push( src )
- address[ '_' + src ] = [ transform, readonly=='true' ];
- });
+ var address = makeAddressList($p);
var actor = '<div class="actor switchUnpressed ';
if ( $p.attr( 'align' ) )
actor += $p.attr( 'align' );
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-30 20:29:25
|
Revision: 671
http://openautomation.svn.sourceforge.net/openautomation/?rev=671&view=rev
Author: j-n-k
Date: 2012-01-30 20:29:19 +0000 (Mon, 30 Jan 2012)
Log Message:
-----------
Restore default behaviour: widget-size depends on content
Modified Paths:
--------------
CometVisu/trunk/visu/designs/structure_pure.js
Modified: CometVisu/trunk/visu/designs/structure_pure.js
===================================================================
--- CometVisu/trunk/visu/designs/structure_pure.js 2012-01-30 20:25:43 UTC (rev 670)
+++ CometVisu/trunk/visu/designs/structure_pure.js 2012-01-30 20:29:19 UTC (rev 671)
@@ -30,8 +30,10 @@
$.fn.setWidgetStyle = function(page) {
this.data('colspanClass', colspanClass(page.attr('colspan') || 1));
- this.data('rowspanClass', rowspanClass(page.attr('rowspan') || 1));
- this.addClass(innerRowspanClass(page.attr('rowspan') || 1));
+ if (page.attr('rowspan')) {
+ this.data('rowspanClass', rowspanClass(page.attr('rowspan') || 1));
+ this.addClass(innerRowspanClass(page.attr('rowspan') || 1));
+ }
return this;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-30 20:25:50
|
Revision: 670
http://openautomation.svn.sourceforge.net/openautomation/?rev=670&view=rev
Author: j-n-k
Date: 2012-01-30 20:25:43 +0000 (Mon, 30 Jan 2012)
Log Message:
-----------
Re-engineered colspan/rowspan-calculation (avoid rendering problems)
Re-engineered colspan/rowspan (added .setWidgetStyle)
Re-engineered label creation (added .makeWidgetLabel)
Modified Paths:
--------------
CometVisu/trunk/visu/designs/structure_pure.js
CometVisu/trunk/visu/lib/templateengine.js
CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js
CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js
Modified: CometVisu/trunk/visu/designs/structure_pure.js
===================================================================
--- CometVisu/trunk/visu/designs/structure_pure.js 2012-01-28 21:33:09 UTC (rev 669)
+++ CometVisu/trunk/visu/designs/structure_pure.js 2012-01-30 20:25:43 UTC (rev 670)
@@ -23,8 +23,34 @@
};
/**
+ * this function implements all widget stylings that are identical (JNK)
+ *
+ * implemented: rowspan, colspan
+ */
+
+$.fn.setWidgetStyle = function(page) {
+ this.data('colspanClass', colspanClass(page.attr('colspan') || 1));
+ this.data('rowspanClass', rowspanClass(page.attr('rowspan') || 1));
+ this.addClass(innerRowspanClass(page.attr('rowspan') || 1));
+ return this;
+ }
+
+ /**
+ * this function implements the widget label (JNK)
+ */
+
+$.fn.makeWidgetLabel = function(page) {
+ var labelElement = page.find('label')[0]; // get first label element
+ if (labelElement) { // if exists, add it
+ this.append($('<div class="label">' + labelElement.textContent + '<div>'));
+ }
+ return this;
+}
+
+/**
* This class defines all the building blocks for a Visu in the "Pure" design
*/
+
function VisuDesign() {
this.creators = {};
@@ -82,8 +108,8 @@
if ($p.attr('visible')=='false') {
ret_val=$('');
} else { // default is visible
- ret_val = $('<div class="widget clearfix"/>');
- ret_val.addClass( 'link' ).addClass('pagelink');
+ ret_val = $('<div class="widget clearfix link pagelink"/>');
+ ret_val.setWidgetStyle($p);
ret_val.append( '<div ' + wstyle + '><a href="javascript:scrollToPage(\''+path+'\')">' + name + '</a></div>' );
}
@@ -201,12 +227,7 @@
create: function( page, path ) {
var $p = $(page);
var ret_val = $('<div class="widget clearfix text" />');
- if ($p.attr("rowspan")) { // add rowspan only if not default
- ret_val.addClass(rowspanClass($p.attr("rowspan")));
- }
- if ($p.attr("colspan")) { // add colspan only if not default
- ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
- }
+ ret_val.setWidgetStyle($p);
var style = '';
if( $p.attr('align') ) style += 'text-align:' + $p.attr('align') + ';';
if( style != '' ) style = 'style="' + style + '"';
@@ -229,14 +250,7 @@
var layout = $p.find('layout')[0];
var style = layout ? 'style="' + extractLayout( layout ) + '"' : '';
var ret_val = $('<div class="widget clearfix info" ' + style + ' />');
- if ($p.attr("rowspan")) { // add rowspan only if not default
- ret_val.addClass(rowspanClass($p.attr("rowspan")));
- }
- if ($p.attr("colspan")) { // add colspan only if not default
- ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
- }
- var labelElement = $p.find('label')[0];
- var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
+ ret_val.setWidgetStyle($p).makeWidgetLabel($p);
var address = {};
$p.find('address').each( function(){
var src = this.textContent;
@@ -251,7 +265,7 @@
'styling' : $p.attr('styling')
});
for( var addr in address ) $actor.bind( addr, this.update );
- ret_val.append( label ).append( $actor );
+ ret_val.append( $actor );
return ret_val;
},
update: defaultUpdate,
@@ -276,14 +290,7 @@
var layout = $p.find('layout')[0];
var style = layout ? 'style="' + extractLayout( layout ) + '"' : '';
var ret_val = $('<div class="widget clearfix slide" ' + style + ' />');
- if ($p.attr("rowspan")) { // add rowspan only if not default
- ret_val.addClass(rowspanClass($p.attr("rowspan")));
- }
- if ($p.attr("colspan")) { // add colspan only if not default
- ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
- }
- var labelElement = $p.find('label')[0];
- var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
+ ret_val.setWidgetStyle($p).makeWidgetLabel($p);
var address = {};
var datatype_min = undefined;
var datatype_max = undefined;
@@ -325,7 +332,7 @@
start: this.slideStart,
change: this.slideChange
});
- ret_val.append( label ).append( $actor );
+ ret_val.append( $actor );
return ret_val;
},
update: function( e, data ) {
@@ -397,12 +404,7 @@
create: function( page, path ) {
var $p = $(page);
var ret_val = $('<div class="widget clearfix switch" />');
- if ($p.attr("rowspan")) { // add rowspan only if not default
- ret_val.addClass(rowspanClass($p.attr("rowspan")));
- }
- if ($p.attr("colspan")) { // add colspan only if not default
- ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
- }
+ ret_val.setWidgetStyle($p)
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
var address = {};
@@ -467,12 +469,7 @@
create: function( page, path ) {
var $p = $(page);
var ret_val = $('<div class="widget clearfix toggle" />');
- if ($p.attr("rowspan")) { // add rowspan only if not default
- ret_val.addClass(rowspanClass($p.attr("rowspan")));
- }
- if ($p.attr("colspan")) { // add colspan only if not default
- ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
- }
+ ret_val.setWidgetStyle($p);
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
var address = {};
@@ -539,12 +536,7 @@
create: function( page, path ) {
var $p = $(page);
var ret_val = $('<div class="widget clearfix switch" />');
- if ($p.attr("rowspan")) { // add rowspan only if not default
- ret_val.addClass(rowspanClass($p.attr("rowspan")));
- }
- if ($p.attr("colspan")) { // add colspan only if not default
- ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
- }
+ ret_val.setWidgetStyle($p)
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
var address = {};
@@ -695,12 +687,7 @@
var $p = $(page);
var value = $p.attr('value') ? $p.attr('value') : 0;
var ret_val = $('<div class="widget clearfix switch" />');
- if ($p.attr("rowspan")) { // add rowspan only if not default
- ret_val.addClass(rowspanClass($p.attr("rowspan")));
- }
- if ($p.attr("colspan")) { // add colspan only if not default
- ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
- }
+ ret_val.setWidgetStyle($p);
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
var address = {};
@@ -763,14 +750,7 @@
create: function( page, path ) {
var $p = $(page);
var ret_val = $('<div class="widget clearfix image" />');
-
- if ($p.attr("rowspan")) { // add rowspan only if not default
- ret_val.addClass(rowspanClass($p.attr("rowspan")));
- }
- if ($p.attr("colspan")) { // add colspan only if not default
- ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
- }
-
+ ret_val.setWidgetStyle($p);
var labelElement = $p.find('label')[0];
ret_val.append( labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '' );
var style = '';
@@ -806,12 +786,7 @@
create: function( page, path ) {
var $p = $(page);
var ret_val = $('<div class="widget clearfix video" />');
- if ($p.attr("rowspan")) { // add rowspan only if not default
- ret_val.addClass(rowspanClass($p.attr("rowspan")));
- }
- if ($p.attr("colspan")) { // add colspan only if not default
- ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
- }
+ ret_val.setWidgetStyle($p);
var labelElement = $p.find('label')[0];
ret_val.append( labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '' );
var autoplay = ($p.attr('autoplay') && $p.attr('autoplay')=='true') ? ' autoplay="autoplay"' : '';
@@ -841,14 +816,7 @@
create: function( page, path ) {
var $p = $(page);
var ret_val = $('<div class="widget iframe" />');
-
- if ($p.attr("rowspan")) { // add rowspan only if not default
- ret_val.addClass(rowspanClass($p.attr("rowspan")));
- }
- if ($p.attr("colspan")) { // add colspan only if not default
- ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
- }
-
+ ret_val.setWidgetStyle($p);
ret_val.append( '<div class="label">' + page.textContent + '</div>' );
var style = '';
if( $p.attr('width' ) ) {
@@ -888,12 +856,7 @@
create: function( page, path ) {
var $p = $(page);
var ret_val = $('<div class="widget clearfix switch" />');
- if ($p.attr("rowspan")) { // add rowspan only if not default
- ret_val.addClass(rowspanClass($p.attr("rowspan")));
- }
- if ($p.attr("colspan")) { // add colspan only if not default
- ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
- }
+ ret_val.setWidgetStyle($p);
// handle label
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
Modified: CometVisu/trunk/visu/lib/templateengine.js
===================================================================
--- CometVisu/trunk/visu/lib/templateengine.js 2012-01-28 21:33:09 UTC (rev 669)
+++ CometVisu/trunk/visu/lib/templateengine.js 2012-01-30 20:25:43 UTC (rev 670)
@@ -37,13 +37,13 @@
var configSuffix = "";
if ($.getUrlVar("config")) {
- configSuffix = "_" + $.getUrlVar("config");
+ configSuffix = "_" + $.getUrlVar("config");
}
var clientDesign = "";
if (typeof forceReload == "undefined") {
- var forceReload = false;
+ var forceReload = false;
}
if( $.getUrlVar('forceReload') ) {
forceReload = $.getUrlVar('forceReload') != 'false'; // true unless set to false
@@ -73,24 +73,20 @@
}
$(document).ready(function() {
-
// get the data once the page was loaded
$.ajaxSetup({cache: !forceReload});
window.setTimeout("$.get( 'visu_config" + configSuffix + ".xml', parseXML );", 200);
-
} );
$(window).unload(function() {
visu.stop();
});
-function transformEncode( transformation, value )
-{
+function transformEncode( transformation, value ) {
var basetrans = transformation.split('.')[0];
return transformation in Transform ?
Transform[ transformation ].encode( value ) :
- (basetrans in Transform ? Transform[ basetrans ].encode( value ) : value);
-
+ (basetrans in Transform ? Transform[ basetrans ].encode( value ) : value);
}
function transformDecode( transformation, value )
@@ -147,38 +143,48 @@
var className = 'rowspan'+ rowspan;
if ( $('<div class="' + className + '" />').height() == 0 ) {
- var dummyDiv = $('<div id="calcrowspan" ><div class="widget clearfix text" id="innerDiv" /></div>')
+ var dummyDiv = $('<div class="clearfix" id="calcrowspan"><div id="containerDiv" class="widget_container"><div class="widget clearfix text" id="innerDiv" /></div></div>')
.appendTo(document.body).show();
- // get css settings of single object
- var paddingTop = parseFloat($('#innerDiv').css('padding-top'));
- var paddingBottom = parseFloat($('#innerDiv').css('padding-bottom'));
- var marginTop = parseFloat($('#innerDiv').css('margin-top'));
- var marginBottom = parseFloat($('#innerDiv').css('margin-bottom'));
- var borderTop = parseFloat($('#innerDiv').css('border-top-width'));
- var borderBottom = parseFloat($('#innerDiv').css('border-bottom-width'));
- var singleHeight = parseFloat($('#innerDiv').css('height'));
+ var singleHeight = parseFloat($('#containerDiv').css('height'));
$('#calcrowspan').remove();
- // calculate total height
- var totalHeight = (rowspan-1) * Math.round((singleHeight+
- + marginTop + paddingTop + borderTop
- + marginBottom + paddingBottom + borderBottom))
- + singleHeight;
-
// append css style
- $('head').append('<style>.rowspan' + rowspan + ' { height: ' + totalHeight + 'px; overflow:hidden;} </style>');
+ $('head').append('<style>.rowspan' + rowspan + ' { height: ' + rowspan*Math.round(singleHeight) + 'px; overflow:hidden;} </style>');
}
return className;
}
+function innerRowspanClass(rowspan) {
+ var className = 'innerrowspan'+ rowspan;
+
+ if ( $('<div class="' + className + '" />').height() == 0 ) {
+ var dummyDiv = $('<div class="clearfix" id="calcinnerrowspan"><div id="containerDiv" class="widget_container"><div class="widget clearfix text" id="innerDiv" /></div></div>')
+ .appendTo(document.body).show();
+ $('#containerDiv').addClass(rowspanClass(rowspan));
+
+ var outerHeight = parseFloat($('#containerDiv').css('height'));
+ var innerDiv=$('#innerDiv');
+ var margin=Math.round(parseFloat(innerDiv.css('marginTop')))+Math.round(parseFloat(innerDiv.css('marginBottom')));
+ var padding=Math.round(parseFloat(innerDiv.css('paddingTop')))+Math.round(parseFloat(innerDiv.css('paddingBottom')));
+ var border=Math.round(parseFloat(innerDiv.css('borderTopWidth')))+Math.round(parseFloat(innerDiv.css('borderBottomWidth')));
+ var innerHeight=outerHeight-margin-padding-border;
+ $('#calcinnerrowspan').remove();
+
+ // append css style
+ $('head').append('<style>.innerrowspan' + rowspan + ' { height: ' + innerHeight + 'px;} </style>');
+ }
+
+ return className;
+}
+
function colspanClass(colspan) {
var className = 'colspan'+ colspan;
- if ( $('<div class="' + className + '" />').width() == 0 ) { // only if not defined
+ if ( $('<div class="' + className + '" />').width() == 0 ) {
var singleWidth=0;
// loop over all stylesheets and classes and find .widget_container
@@ -186,7 +192,7 @@
if (sheet.href ? (sheet.href.search(/basic.css/) > 0) : false) {
$.each(sheet.cssRules, function(idx, cssclass) {
if (cssclass.selectorText=='.widget_container') {
- singleWidth = parseInt((cssclass.style.width).match(/[0-9]*/)[0]);
+ singleWidth = parseFloat((cssclass.style.width).match(/[0-9.]*/)[0]);
return;
}
});
@@ -204,13 +210,12 @@
totalWidth=100;
}
- $('head').append('<style>.colspan' + colspan + ' { width: ' + totalWidth +
- '%; overflow:hidden;} </style>');
+ $('head').append('<style>.colspan' + colspan + ' { width: ' +
+ totalWidth + '%; overflow:hidden;} </style>');
}
return className;
}
-
function parseXML(xml) {
// erst mal den Cache für AJAX-Requests wieder aktivieren
$.ajaxSetup({cache: true});
@@ -416,7 +421,7 @@
.data("textContent", page.textContent);
if (jQuery(retval).is(".widget")) {
- retval = jQuery("<div class='widget_container "+retval.data("colspanClass")+"' />").append(retval);
+ retval = jQuery("<div class='widget_container "+(retval.data("colspanClass") ? retval.data("colspanClass") : '')+" "+(retval.data("rowspanClass") ? retval.data("rowspanClass") : '')+"' />").append(retval);
}
return retval;
Modified: CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js 2012-01-28 21:33:09 UTC (rev 669)
+++ CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js 2012-01-30 20:25:43 UTC (rev 670)
@@ -23,9 +23,8 @@
VisuDesign_Custom.prototype.addCreator("colorchooser", {
create: function( page, path ) {
var $p = $(page);
- var ret_val = $('<div class="widget clearfix" />');
- ret_val.addClass( 'colorChooser' );
-
+ var ret_val = $('<div class="widget clearfix colorChooser" />');
+ ret_val.setWidgetStyle($p);
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
var address = {};
@@ -163,6 +162,8 @@
jQuery.farbtastic( element ).setColor( color );
},
attributes: {
+ rowspan: { type: 'numeric', required: false },
+ colspan: { type: 'numeric', required: false }
},
elements: {
label: { type: 'string', required: true, multi: false },
Modified: CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js 2012-01-28 21:33:09 UTC (rev 669)
+++ CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js 2012-01-30 20:25:43 UTC (rev 670)
@@ -41,16 +41,9 @@
var id = "rss_" + uniqid();
- var ret_val = $('<div class="widget clearfix" />');
- ret_val.addClass( 'rsslog' );
+ var ret_val = $('<div class="widget clearfix rsslog" />');
+ ret_val.setWidgetStyle($p);
- if ($p.attr("rowspan")) { // add rowspan only if not default
- ret_val.addClass(rowspanClass($p.attr("rowspan")));
- }
-
- if ($p.attr("colspan")) { // add colspan only if not default
- ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
- }
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
@@ -71,9 +64,10 @@
rss.data("label", labelElement ? labelElement.textContent : '' );
rss.data("refresh", $p.attr("refresh"));
rss.data("content", $p.attr("content")) || true;
- rss.data("title", $p.attr("title")) || true;
+ rss.data("datetime", $p.attr("datetime")) || true;
rss.data("mode", $p.attr("mode") || "last");
rss.data("timeformat", $p.attr("timeformat"));
+
rss.data("itemoffset", 0);
@@ -87,7 +81,7 @@
height: {type: "string", required: false},
refresh: {type: "numeric", required: false},
content: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
- title: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
+ datetime: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
mode: {type: "list", required: false, list: {'first': 'first', 'last': 'last', 'rollover':'rollover' }},
timeformat: {type: "string", required: false},
},
@@ -107,7 +101,7 @@
$(rss).rssfeedlocal({
src: src,
content: rss.data("content"),
- title: eval(rss.data("title")),
+ datetime: eval(rss.data("datetime")),
mode: rss.data("mode"),
timeformat: rss.data("timeformat"),
});
@@ -129,12 +123,17 @@
var defaults = {
src: '',
- html: '{date}: {text}',
+ html: '{text}',
wrapper: 'li',
dataType: 'xml',
- title: true
+ title: true,
+ datetime: true
}
var options = jQuery.extend(defaults, options);
+
+ if (options.datetime) {
+ options.html = '{date}: ' + options.html;
+ }
return this.each(function() {
var o = options;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <mr...@us...> - 2012-01-28 21:33:16
|
Revision: 669
http://openautomation.svn.sourceforge.net/openautomation/?rev=669&view=rev
Author: mrremy
Date: 2012-01-28 21:33:09 +0000 (Sat, 28 Jan 2012)
Log Message:
-----------
initial version of upnpcontroller
Modified Paths:
--------------
CometVisu/trunk/visu/visu_config.xml
Added Paths:
-----------
CometVisu/trunk/visu/plugins/upnpcontroller/
CometVisu/trunk/visu/plugins/upnpcontroller/mute.php
CometVisu/trunk/visu/plugins/upnpcontroller/next.php
CometVisu/trunk/visu/plugins/upnpcontroller/pause.php
CometVisu/trunk/visu/plugins/upnpcontroller/play.php
CometVisu/trunk/visu/plugins/upnpcontroller/prev.php
CometVisu/trunk/visu/plugins/upnpcontroller/status.php
CometVisu/trunk/visu/plugins/upnpcontroller/structure_plugin.js
CometVisu/trunk/visu/plugins/upnpcontroller/upnpcontroller.css
CometVisu/trunk/visu/plugins/upnpcontroller/upnpctrl_util.php
CometVisu/trunk/visu/plugins/upnpcontroller/volume.php
Added: CometVisu/trunk/visu/plugins/upnpcontroller/mute.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/mute.php (rev 0)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/mute.php 2012-01-28 21:33:09 UTC (rev 669)
@@ -0,0 +1,50 @@
+<?php
+/* mute.php (c) 2012 by Mark K. [mr dot remy at gmx dot de]
+ *
+ * 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, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+*/
+
+require 'upnpctrl_util.php';
+
+header("content-type: text/html");
+//header("content-type: text/json");
+$mute = $_GET['mute'];
+
+$cmd_setmute='POST /MediaRenderer/RenderingControl/Control HTTP/1.1
+CONNECTION: close
+HOST: '.$address.':1400
+CONTENT-LENGTH: 314
+CONTENT-TYPE: text/xml; charset="utf-8"
+SOAPACTION: "urn:schemas-upnp-org:service:RenderingControl:1#SetMute"
+
+<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:SetMute xmlns:u="urn:schemas-upnp-org:service:RenderingControl:1"><InstanceID>0</InstanceID><Channel>Master</Channel><DesiredMute>'.$mute.'</DesiredMute></u:SetMute></s:Body></s:Envelope>';
+
+$actionResponse = sendUpnpAction($cmd_setmute, $address, $port);
+
+//echo "actionResponse xml: ";
+//print_r($actionResponse);
+//echo "</br>'";
+
+$xmlParser = xml_parser_create("UTF-8");
+xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8");
+xml_parse_into_struct($xmlParser, $actionResponse, $actionResponseArray, $index);
+xml_parser_free($xmlParser);
+
+//print_r($actionResponseArray);
+//print_r($index);
+
+print_r("{\"actionstatus\" : 'OK'}");
+
+?>
\ No newline at end of file
Added: CometVisu/trunk/visu/plugins/upnpcontroller/next.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/next.php (rev 0)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/next.php 2012-01-28 21:33:09 UTC (rev 669)
@@ -0,0 +1,49 @@
+<?php
+/* next.php (c) 2012 by Mark K. [mr dot remy at gmx dot de]
+ *
+ * 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, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+*/
+
+require 'upnpctrl_util.php';
+
+//header("content-type: text/html");
+header("content-type: text/json");
+
+$cmd_next='POST /MediaRenderer/AVTransport/Control HTTP/1.1
+CONNECTION: close
+HOST: '.$address.':1400
+CONTENT-LENGTH: 250
+CONTENT-TYPE: text/xml; charset="utf-8"
+SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Next"
+
+<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:Next xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:Next></s:Body></s:Envelope>';
+
+$actionResponse = sendUpnpAction($cmd_next, $address, $port);
+
+//echo "actionResponse xml: ";
+//print_r($actionResponse);
+//echo "</br>'";
+
+$xmlParser = xml_parser_create("UTF-8");
+xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8");
+xml_parse_into_struct($xmlParser, $actionResponse, $actionResponseArray, $index);
+xml_parser_free($xmlParser);
+
+//print_r($actionResponseArray);
+//print_r($index);
+
+print_r("{\"actionstatus\" : 'OK'}");
+
+?>
\ No newline at end of file
Added: CometVisu/trunk/visu/plugins/upnpcontroller/pause.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/pause.php (rev 0)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/pause.php 2012-01-28 21:33:09 UTC (rev 669)
@@ -0,0 +1,49 @@
+<?php
+/* pause.php (c) 2012 by Mark K. [mr dot remy at gmx dot de]
+ *
+ * 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, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+*/
+
+require 'upnpctrl_util.php';
+
+//header("content-type: text/html");
+header("content-type: text/json");
+
+$cmd_pause='POST /MediaRenderer/AVTransport/Control HTTP/1.1
+CONNECTION: close
+HOST: '.$address.':1400
+CONTENT-LENGTH: 252
+CONTENT-TYPE: text/xml; charset="utf-8"
+SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Pause"
+
+<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:Pause xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:Pause></s:Body></s:Envelope>';
+
+$actionResponse = sendUpnpAction($cmd_pause, $address, $port);
+
+//echo "actionResponse xml: ";
+//print_r($actionResponse);
+//echo "</br>'";
+
+$xmlParser = xml_parser_create("UTF-8");
+xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8");
+xml_parse_into_struct($xmlParser, $actionResponse, $actionResponseArray, $index);
+xml_parser_free($xmlParser);
+
+//print_r($actionResponseArray);
+//print_r($index);
+
+print_r("{\"actionstatus\" : 'OK'}");
+
+?>
\ No newline at end of file
Added: CometVisu/trunk/visu/plugins/upnpcontroller/play.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/play.php (rev 0)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/play.php 2012-01-28 21:33:09 UTC (rev 669)
@@ -0,0 +1,49 @@
+<?php
+/* play.php (c) 2012 by Mark K. [mr dot remy at gmx dot de]
+ *
+ * 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, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+*/
+
+require 'upnpctrl_util.php';
+
+//header("content-type: text/html");
+header("content-type: text/json");
+
+$cmd_play='POST /MediaRenderer/AVTransport/Control HTTP/1.1
+CONNECTION: close
+HOST: '.$address.':1400
+CONTENT-LENGTH: 266
+CONTENT-TYPE: text/xml; charset="utf-8"
+SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Play"
+
+<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:Play xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><Speed>1</Speed></u:Play></s:Body></s:Envelope>';
+
+$actionResponse = sendUpnpAction($cmd_play, $address, $port);
+
+//echo "actionResponse xml: ";
+//print_r($actionResponse);
+//echo "</br>'";
+
+$xmlParser = xml_parser_create("UTF-8");
+xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8");
+xml_parse_into_struct($xmlParser, $actionResponse, $actionResponseArray, $index);
+xml_parser_free($xmlParser);
+
+//print_r($actionResponseArray);
+//print_r($index);
+
+print_r("{\"actionstatus\" : 'OK'}");
+
+?>
\ No newline at end of file
Added: CometVisu/trunk/visu/plugins/upnpcontroller/prev.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/prev.php (rev 0)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/prev.php 2012-01-28 21:33:09 UTC (rev 669)
@@ -0,0 +1,49 @@
+<?php
+/* prev.php (c) 2012 by Mark K. [mr dot remy at gmx dot de]
+ *
+ * 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, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+*/
+
+require 'upnpctrl_util.php';
+
+//header("content-type: text/html");
+header("content-type: text/json");
+
+$cmd_prev = 'POST /MediaRenderer/AVTransport/Control HTTP/1.1
+CONNECTION: close
+HOST: '.$address.':1400
+CONTENT-LENGTH: 258
+CONTENT-TYPE: text/xml; charset="utf-8"
+SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Previous"
+
+<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:Previous xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:Previous></s:Body></s:Envelope>';
+
+$actionResponse = sendUpnpAction($cmd_prev, $address, $port);
+
+//echo "actionResponse xml: ";
+//print_r($actionResponse);
+//echo "</br>'";
+
+$xmlParser = xml_parser_create("UTF-8");
+xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8");
+xml_parse_into_struct($xmlParser, $actionResponse, $actionResponseArray, $index);
+xml_parser_free($xmlParser);
+
+//print_r($actionResponseArray);
+//print_r($index);
+
+print_r("{\"actionstatus\" : 'OK'}");
+
+?>
\ No newline at end of file
Added: CometVisu/trunk/visu/plugins/upnpcontroller/status.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/status.php (rev 0)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/status.php 2012-01-28 21:33:09 UTC (rev 669)
@@ -0,0 +1,144 @@
+<?php
+/* status.php (c) 2012 by Mark K. [mr dot remy at gmx dot de]
+ *
+ * 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, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+*/
+
+require 'upnpctrl_util.php';
+
+//header("content-type: text/html");
+header("content-type: text/json");
+
+$cmd_getvolume='POST /MediaRenderer/RenderingControl/Control HTTP/1.1
+CONNECTION: close
+HOST: '.$address.':1400
+CONTENT-LENGTH: 296
+CONTENT-TYPE: text/xml; charset="utf-8"
+SOAPACTION: "urn:schemas-upnp-org:service:RenderingControl:1#GetVolume"
+
+<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><ns0:GetVolume xmlns:ns0="urn:schemas-upnp-org:service:RenderingControl:1"><InstanceID>0</InstanceID><Channel>Master</Channel></ns0:GetVolume></s:Body></s:Envelope>';
+
+$cmd_getmute='POST /MediaRenderer/RenderingControl/Control HTTP/1.1
+CONNECTION: close
+HOST: '.$address.':1400
+CONTENT-LENGTH: 288
+CONTENT-TYPE: text/xml; charset="utf-8"
+SOAPACTION: "urn:schemas-upnp-org:service:RenderingControl:1#GetMute"
+
+<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetMute xmlns:u="urn:schemas-upnp-org:service:RenderingControl:1"><InstanceID>0</InstanceID><Channel>Master</Channel></ns0:GetMute></s:Body></s:Envelope>';
+
+$cmd_getpositioninfo='POST /MediaRenderer/AVTransport/Control HTTP/1.1
+CONNECTION: close
+HOST: '.$address.':1400
+CONTENT-LENGTH: 299
+CONTENT-TYPE: text/xml; charset="utf-8"
+SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#GetPositionInfo"
+
+<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetPositionInfo xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><Channel>Master</Channel></ns0:GetPositionInfo></s:Body></s:Envelope>';
+
+$cmd_gettransportinfo='POST /MediaRenderer/AVTransport/Control HTTP/1.1
+CONNECTION: close
+HOST: '.$address.':1400
+CONTENT-LENGTH: 274
+CONTENT-TYPE: text/xml; charset="utf-8"
+SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#GetTransportInfo"
+
+<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetTransportInfo xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:GetTransportInfo></s:Body></s:Envelope>';
+
+
+ $actionResponse = sendUpnpAction($cmd_getvolume, $address, $port);
+
+ //echo "actionResponse xml: ";
+ //print_r($actionResponse);
+ //echo "</br>'";
+
+ $xmlParser = xml_parser_create("UTF-8");
+ xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8");
+ xml_parse_into_struct($xmlParser, $actionResponse, $actionResponseArray, $index);
+ xml_parser_free($xmlParser);
+
+ //print_r($actionResponseArray);
+ //print_r($index);
+
+ $volume = getValueOfResponse($actionResponseArray, "CURRENTVOLUME");
+
+ $actionResponse = sendUpnpAction($cmd_getmute, $address, $port);
+ $xmlParser = xml_parser_create("UTF-8");
+ xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8");
+ xml_parse_into_struct($xmlParser, $actionResponse, $actionResponseArray, $index);
+ xml_parser_free($xmlParser);
+
+ //print_r($actionResponseArray);
+
+ $muteState = getValueOfResponse($actionResponseArray, "CURRENTMUTE");
+
+ $actionResponse = sendUpnpAction($cmd_gettransportinfo, $address, $port);
+ $xmlParser = xml_parser_create("UTF-8");
+ xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8");
+ xml_parse_into_struct($xmlParser, $actionResponse, $actionResponseArray, $index);
+ xml_parser_free($xmlParser);
+
+// print_r($actionResponseArray);
+
+ $transportStateResponse = getValueOfResponse($actionResponseArray, "CURRENTTRANSPORTSTATE");
+
+ if($transportStateResponse == "PAUSED_PLAYBACK"){
+ $transportState = 'Pause';
+ }else if($transportStateResponse == "PLAYING"){
+ $transportState = 'Play';
+ }else if($transportStateResponse == "STOPPED"){
+ $transportState = 'Stop';
+ }else{
+ $transportState = 'unknown';
+ }
+
+ $actionResponse = sendUpnpAction($cmd_getpositioninfo, $address, $port);
+ $xmlParser = xml_parser_create("UTF-8");
+ xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8");
+ xml_parse_into_struct($xmlParser, $actionResponse, $actionResponseArray, $index);
+ xml_parser_free($xmlParser);
+
+// print_r($actionResponseArray);
+
+ $reltimeResponse = getValueOfResponse($actionResponseArray, "RELTIME");
+ $durationResponse = getValueOfResponse($actionResponseArray, "TRACKDURATION");
+ $trackMetaDataResponse = getValueOfResponse($actionResponseArray, "TRACKMETADATA");
+
+// print_r($trackMetaDataResponse);
+
+ $xmlParser = xml_parser_create("UTF-8");
+ xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8");
+ xml_parse_into_struct($xmlParser, $trackMetaDataResponse, $actionResponseArray, $index);
+ xml_parser_free($xmlParser);
+
+// print_r($actionResponseArray);
+
+ $title = getValueOfResponse($actionResponseArray, "TITLE");
+ $artist = getValueOfResponse($actionResponseArray, "ALBUMARTIST");
+ $album = getValueOfResponse($actionResponseArray, "ALBUM");
+
+ //
+ // create JSON response
+ //
+ print_r("{\"volume\" : " . $volume . ", \"muteState\" : " . $muteState
+ . ", \"transportState\" : \"" . $transportState
+ . "\" , \"reltimeResponse\" : \"" . $reltimeResponse
+ . "\" , \"durationResponse\" : \"" . $durationResponse
+ . "\" , \"title\" : \"" . $title
+ . "\" , \"artist\" : \"" . $artist
+ . "\" , \"album\" : \"" . $album
+ . "\" , \"error_msg\" : \"" . $error_msg . "\"}");
+
+?>
\ No newline at end of file
Added: CometVisu/trunk/visu/plugins/upnpcontroller/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/structure_plugin.js (rev 0)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/structure_plugin.js 2012-01-28 21:33:09 UTC (rev 669)
@@ -0,0 +1,299 @@
+/* structure_plugin.js (c) 2012 by Mark K. [mr dot remy at gmx dot de]
+ *
+ * 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, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+*/
+
+
+$( 'head' ).append( '<link rel="stylesheet" href="plugins/upnpcontroller/upnpcontroller.css" type="text/css" />' );
+
+var upnpcontroller_uid;
+
+
+VisuDesign_Custom.prototype.addCreator("upnpcontroller", {
+ create: function( page, path ) {
+ var $p = $(page);
+
+ function uniqid() {
+ var newDate = new Date;
+ return newDate.getTime();
+ }
+
+ var id = "upnpcontroller_" + uniqid();
+ upnpcontroller_uid = id;
+
+ var ret_val = $('<div class="widget" />');
+ ret_val.addClass( 'upnpcontroller' );
+ var label = '<div class="label">' + $p.attr("label") + '</div>';
+ var actor = $("<div class=\"actor\"><div class=\"upnpcontroller\" id=\"" + id + "\">loading</div></div>");
+ var upnpcontroller = $("#" + id, actor);
+
+ controller = $("<div></div>");
+
+ controller.append( "<div id='" + id + "_title' class='upnplabelgroup'><div class='upnplabel'>Title</div><div class='value'>-</div></div>");
+ controller.append( "<div id='" + id + "_artist' class='upnplabelgroup'><div class='upnplabel'>Artist</div><div class='value'>-</div></div>");
+ controller.append( "<div id='" + id + "_album' class='upnplabelgroup'><div class='upnplabel'>Album</div><div class='value'>-</div></div>");
+ controller.append( "<div id='" + id + "_time' class='upnplabelgroup'><div class='upnplabel'></div><div class='value'>-</div></div>");
+ controller.append( "<div style='float: left;'><div id='" + id + "_volumedown' class='actor center switchUnpressed'><div class='value'>-</div></div>"
+ + "<div id='" + id + "_volume' class='actor center switchInvisible' style='text-align: center;'><div class='value'>20</div></div>"
+ + "<div id='" + id + "_volumeup' class='actor center switchUnpressed'><div class='value'>+</div></div></div>" );
+ controller.append( "<div style='float: left;'><div id='" + id + "_playButton' class='actor switchUnpressed center'><div class='value'>-</div></div>"
+ + "<div id='" + id + "_muteButton' class='actor switchUnpressed center'><div class='value'>-</div></div>" );
+ controller.append( "<div style='float: left;'><div id='" + id + "_prev' class='actor switchUnpressed center'><div class='value'>prev</div></div>"
+ + "<div id='" + id + "_next' class='actor switchUnpressed center'><div class='value'>next</div></div></div>" );
+
+ upnpcontroller.html(controller);
+
+ ret_val.append(label).append(actor);
+// console.log("loaded plugin upnpcontroller");
+
+ upnpcontroller.data("id", id);
+ upnpcontroller.data("eventsRegistered", 0);
+ upnpcontroller.data("label", $p.attr("label"));
+ upnpcontroller.data("refresh", $p.attr("refresh"));
+ upnpcontroller.data("player_ip", $p.attr("player_ip_addr"));
+ upnpcontroller.data("debug", $p.attr("debug"));
+
+ refreshUpnpcontroller(upnpcontroller, {}, false);
+
+ return ret_val;
+ },
+ attributes: {
+ label: {type: "string", required: true},
+ player_ip_addr: {type: "string", required: true},
+ refresh: {type: "numeric", required: true},
+ debug: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
+ },
+ content: false
+});
+
+
+function refreshUpnpcontroller(upnpcontroller, data, oneTimeCall) {
+ var upnpcontroller = $(upnpcontroller);
+
+ var playerIp = upnpcontroller.data("player_ip");
+ var id = upnpcontroller.data("id");
+ var debug = upnpcontroller.data("debug");
+ var eventsRegistered = upnpcontroller.data("eventsRegistered");
+ var label = upnpcontroller.data("label");
+ var refresh = upnpcontroller.data("refresh");
+
+ console.log("debug: " + debug);
+
+ if(debug == 'true'){
+ console.log("playerIp: " + playerIp);
+ }
+
+ function updateContoller( volume, mute, playMode, title, reltime, duration, artist, album){
+
+ if(mute == 0){
+ $('#' + upnpcontroller_uid + '_muteButton').removeClass('switchPressed');
+ $('#' + upnpcontroller_uid + '_muteButton').addClass('switchUnpressed');
+ }else{
+ $('#' + upnpcontroller_uid + '_muteButton').removeClass('switchUnpressed');
+ $('#' + upnpcontroller_uid + '_muteButton').addClass('switchPressed');
+ }
+
+ if(playMode == 'Play'){
+ $('#' + upnpcontroller_uid + '_playButton').removeClass('switchUnpressed');
+ $('#' + upnpcontroller_uid + '_playButton').addClass('switchPressed');
+ }else{
+ $('#' + upnpcontroller_uid + '_playButton').removeClass('switchPressed');
+ $('#' + upnpcontroller_uid + '_playButton').addClass('switchUnpressed');
+ }
+
+ $('#' + id + '_muteButton div.value').text(mute);
+ $('#' + id + '_playButton div.value').text(playMode);
+ $('#' + id + '_volume div.value').text(volume);
+ $('#' + id + '_title div.value').text(title);
+ $('#' + id + '_artist div.value').text(artist);
+ $('#' + id + '_album div.value').text(album);
+ $('#' + id + '_time div.value').text(reltime + ' of ' + duration);
+
+ }
+
+ $.ajax({
+ type: "GET",
+ datatype: "JSON",
+ url: "plugins/upnpcontroller/status.php?player_ip_addr=" + playerIp,
+ success: function(data){
+
+ if(debug == 'true'){
+ console.log("volume : " + data.volume);
+ console.log("reltime : " + data.reltimeResponse);
+ console.log("durationResponse: " + data.durationResponse);
+ console.log("title : " + data.title);
+ }
+
+ updateContoller(data.volume, data.muteState, data.transportState, data.title
+ , data.reltimeResponse, data.durationResponse, data.artist, data.album);
+ }
+ });
+
+ if(eventsRegistered < 2) {
+// console.log("eventsRegistered: " + eventsRegistered);
+
+ $('#' + upnpcontroller_uid + '_muteButton').bind('click', toggleMute);
+ $('#' + upnpcontroller_uid + '_playButton').bind('click', togglePlay);
+ $('#' + upnpcontroller_uid + '_next').bind('click', callNext);
+ $('#' + upnpcontroller_uid + '_prev').bind('click', callPrev);
+ $('#' + upnpcontroller_uid + '_volumedown').bind('click', callvolumedown);
+ $('#' + upnpcontroller_uid + '_volumeup').bind('click', callvolumeup);
+
+ upnpcontroller.data("eventsRegistered", eventsRegistered + 1);
+ }
+
+ //refresh regularly
+ if (typeof (refresh) != "undefined" && refresh && oneTimeCall == false) {
+ // reload regularly
+ window.setTimeout(function(upnpcontroller, data) {
+ refreshUpnpcontroller(upnpcontroller, data, false)
+ }, refresh * 1000, upnpcontroller, data);
+ }
+
+ return false;
+}
+
+function callvolumedown() {
+ console.log("click callvolumedown");
+ var upnpctrl = $("#" + upnpcontroller_uid);
+ var playerIp = upnpctrl.data("player_ip");
+ var currentVolume = $('#' + upnpcontroller_uid + '_volume div.value').text();
+
+ console.log("currentVolume: " + currentVolume);
+
+ var volume = Number(currentVolume) - 5;
+
+ $.ajax({
+ type: "GET",
+ datatype: "JSON",
+ url: "plugins/upnpcontroller/volume.php?player_ip_addr=" + playerIp + "&volume=" + volume,
+ success: function(data){
+ console.log("data: " + data);
+ }
+ });
+}
+
+function callvolumeup() {
+ console.log("click callvolumeup");
+ var upnpctrl = $("#" + upnpcontroller_uid);
+ var playerIp = upnpctrl.data("player_ip");
+ var currentVolume = $('#' + upnpcontroller_uid + '_volume div.value').text();
+
+ console.log("currentVolume: " + currentVolume);
+
+ var volume = Number(currentVolume) + 5;
+
+ $.ajax({
+ type: "GET",
+ datatype: "JSON",
+ url: "plugins/upnpcontroller/volume.php?player_ip_addr=" + playerIp + "&volume=" + volume,
+ success: function(data){
+ console.log("data: " + data);
+ }
+ });
+}
+
+function callNext() {
+ console.log("click next");
+ var upnpctrl = $("#" + upnpcontroller_uid);
+ var playerIp = upnpctrl.data("player_ip");
+
+ $.ajax({
+ type: "GET",
+ datatype: "JSON",
+ url: "plugins/upnpcontroller/next.php?player_ip_addr=" + playerIp,
+ success: function(data){
+ console.log("data: " + data);
+ }
+ });
+}
+
+function callPrev() {
+ console.log("click prev");
+ var upnpctrl = $("#" + upnpcontroller_uid);
+ var playerIp = upnpctrl.data("player_ip");
+
+ $.ajax({
+ type: "GET",
+ datatype: "JSON",
+ url: "plugins/upnpcontroller/prev.php?player_ip_addr=" + playerIp,
+ success: function(data){
+ console.log("data: " + data);
+ }
+ });
+}
+
+function toggleMute() {
+ console.log("click mute");
+ var upnpctrl = $("#" + upnpcontroller_uid);
+ var playerIp = upnpctrl.data("player_ip");
+
+ var muteValue = $('#' + upnpcontroller_uid + '_muteButton div.value').text();
+
+ console.log("current muteValue: " + muteValue);
+
+ if(muteValue == 0){
+ muteValue = 1;
+ $('#' + upnpcontroller_uid + '_muteButton').removeClass('switchUnpressed');
+ $('#' + upnpcontroller_uid + '_muteButton').addClass('switchPressed');
+ }else{
+ muteValue = 0;
+ $('#' + upnpcontroller_uid + '_muteButton').removeClass('switchPressed');
+ $('#' + upnpcontroller_uid + '_muteButton').addClass('switchUnpressed');
+ }
+
+ $.ajax({
+ type: "GET",
+ datatype: "JSON",
+ url: "plugins/upnpcontroller/mute.php?mute=" + muteValue + "&player_ip_addr=" + playerIp,
+ success: function(data){
+ console.log("data: " + data);
+ }
+ });
+
+ refreshUpnpcontroller(upnpctrl, {}, true);
+}
+
+function togglePlay() {
+ console.log("click play");
+ var upnpctrl = $("#" + upnpcontroller_uid);
+ var playerIp = upnpctrl.data("player_ip");
+ var playValue = $('#' + upnpcontroller_uid + '_playButton div.value').text();
+ var cmd;
+
+ console.log("current playValue: " + playValue);
+
+ if(playValue == 'Play'){
+ cmd = 'pause';
+ $('#' + upnpcontroller_uid + '_playButton').removeClass('switchUnpressed');
+ $('#' + upnpcontroller_uid + '_playButton').addClass('');
+ }else{
+ cmd = 'play';
+ $('#' + upnpcontroller_uid + '_playButton').removeClass('switchPressed');
+ $('#' + upnpcontroller_uid + '_playButton').addClass('switchUnpressed');
+ }
+
+ $.ajax({
+ type: "GET",
+ datatype: "JSON",
+ url: "plugins/upnpcontroller/" + cmd + ".php?player_ip_addr=" + playerIp,
+ success: function(data){
+ console.log("data: " + data);
+ }
+ });
+
+ refreshUpnpcontroller(upnpctrl, {}, true);
+}
+
Added: CometVisu/trunk/visu/plugins/upnpcontroller/upnpcontroller.css
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/upnpcontroller.css (rev 0)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/upnpcontroller.css 2012-01-28 21:33:09 UTC (rev 669)
@@ -0,0 +1,40 @@
+.upnpController {
+/* overflow: auto; */
+}
+
+.upnpController div.name {
+ font-weight: bold;
+ height: 24px;
+ padding: 4px 4px 4px 4px;
+}
+
+.upnpControllerList {
+ margin: 0;
+ padding: 0;
+ position: relative;
+}
+
+.upnpControllerList li {
+ background-color:#eeeeee;
+ display: inline;
+ list-style: none outside none;
+ padding-left: 2px;
+ padding-right: 2px;
+ margin-bottom: 2px;
+ position: relative;
+}
+
+.upnplabelgroup {
+ float: left;
+ padding-left: 1em;
+ text-align: left;
+ width: 100%;
+ line-height: 2em;
+}
+
+.upnplabel {
+ text-align: left;
+ float: left;
+ width: 14%;
+ line-height: 2em;
+}
Added: CometVisu/trunk/visu/plugins/upnpcontroller/upnpctrl_util.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/upnpctrl_util.php (rev 0)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/upnpctrl_util.php 2012-01-28 21:33:09 UTC (rev 669)
@@ -0,0 +1,116 @@
+<?php
+/* upnpctrl_util.php (c) 2012 by Mark K. [mr dot remy at gmx dot de]
+ *
+ * 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, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+*/
+
+$address = $_GET['player_ip_addr'];
+$port = 1400;
+$error_msg;
+
+
+function handleError($errno, $errstr, $errfile, $errline)
+{
+ switch ($errno) {
+
+ case E_USER_ERROR:
+ $error_msg = "Error [" . $errno . "] " . $errstr;
+ break;
+
+ case E_USER_WARNING:
+ $error_msg = "WARNING [" . $errno . "] " . $errstr;
+ break;
+
+ case E_USER_NOTICE:
+ $error_msg = "NOTICE [" . $errno . "] " . $errstr;
+ break;
+
+ default:
+ $error_msg = "Unknown error [" . $errno . "] " . $errstr;
+ break;
+ }
+
+ return true;
+}
+
+set_error_handler('handleError');
+
+
+ function sendUpnpAction($content, $address, $port)
+ {
+ $plainActionResponse = "";
+ $recieveBuffer = "";
+
+ try {
+ $fp = fsockopen($address, $port, $errno, $errstr, 10);
+ }
+ catch (Exception $e)
+ {
+ if(empty($error_msg)){
+ $error_msg = "Error on opening the socket " . $address . ":" . $port;
+ }
+
+ return $array[0];
+ }
+
+
+ if (!$fp){
+ if(empty($error_msg)){
+ $error_msg = "Error on opening the socket " . $address . ":" . $port;
+ }
+
+ return $array[0];
+ }
+
+ fputs ($fp, $content);
+
+ while (!feof($fp)) {
+ $recieveBuffer = fgets($fp, 256);
+ $plainActionResponse .= $recieveBuffer;
+ }
+
+ fclose($fp);
+
+ $array = preg_split("/\n/", $plainActionResponse);
+
+ //debug trace
+// print_r($array);
+
+ if(strpos($array[0], "200 OK") === false){
+ if(empty($error_msg)){
+ $error_msg = "Action response is not valid!";
+ }
+
+ return $array[0];
+ }
+
+ return $array[count($array) - 1];
+ }
+
+ function getValueOfResponse($responseArray, $name){
+// print_r('name: ' . $name);
+
+ for($i = 0; $i < count($responseArray); $i++)
+ {
+// print_r($responseArray[$i]['tag'] . '</br>');
+
+ if(ereg($name."$", $responseArray[$i]['tag']) == false){
+ continue;
+ }else{
+ return $responseArray[$i]['value'];
+ }
+ }
+ }
+?>
\ No newline at end of file
Added: CometVisu/trunk/visu/plugins/upnpcontroller/volume.php
===================================================================
--- CometVisu/trunk/visu/plugins/upnpcontroller/volume.php (rev 0)
+++ CometVisu/trunk/visu/plugins/upnpcontroller/volume.php 2012-01-28 21:33:09 UTC (rev 669)
@@ -0,0 +1,50 @@
+<?php
+/* volume.php (c) 2012 by Mark K. [mr dot remy at gmx dot de]
+ *
+ * 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, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+*/
+
+require 'upnpctrl_util.php';
+
+//header("content-type: text/html");
+header("content-type: text/json");
+$volume = $_GET['volume'];
+
+$cmd_setvolume='POST /MediaRenderer/RenderingControl/Control HTTP/1.1
+CONNECTION: close
+HOST: '.$address.':1400
+CONTENT-LENGTH: 32'.strlen($volume).'
+CONTENT-TYPE: text/xml; charset="utf-8"
+SOAPACTION: "urn:schemas-upnp-org:service:RenderingControl:1#SetVolume"
+
+<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:SetVolume xmlns:u="urn:schemas-upnp-org:service:RenderingControl:1"><InstanceID>0</InstanceID><Channel>Master</Channel><DesiredVolume>'.$volume.'</DesiredVolume></u:SetVolume></s:Body></s:Envelope>';
+
+$actionResponse = sendUpnpAction($cmd_setvolume, $address, $port);
+
+//echo "actionResponse xml: ";
+//print_r($actionResponse);
+//echo "</br>'";
+
+$xmlParser = xml_parser_create("UTF-8");
+xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8");
+xml_parse_into_struct($xmlParser, $actionResponse, $actionResponseArray, $index);
+xml_parser_free($xmlParser);
+
+//print_r($actionResponseArray);
+//print_r($index);
+
+print_r("{\"actionstatus\" : 'OK'}");
+
+?>
\ No newline at end of file
Modified: CometVisu/trunk/visu/visu_config.xml
===================================================================
--- CometVisu/trunk/visu/visu_config.xml 2012-01-25 17:18:43 UTC (rev 668)
+++ CometVisu/trunk/visu/visu_config.xml 2012-01-28 21:33:09 UTC (rev 669)
@@ -4,6 +4,7 @@
<plugins>
<plugin name="colorchooser"/>
<plugin name="diagram"/>
+ <plugin name="upnpcontroller"/>
</plugins>
<mappings>
<mapping name="Open_Close">
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-25 17:18:54
|
Revision: 668
http://openautomation.svn.sourceforge.net/openautomation/?rev=668&view=rev
Author: j-n-k
Date: 2012-01-25 17:18:43 +0000 (Wed, 25 Jan 2012)
Log Message:
-----------
jqclock ( missing in former commit)
Modified Paths:
--------------
CometVisu/trunk/visu/plugins/jqclock/structure_plugin.js
Modified: CometVisu/trunk/visu/plugins/jqclock/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/jqclock/structure_plugin.js 2012-01-25 17:16:18 UTC (rev 667)
+++ CometVisu/trunk/visu/plugins/jqclock/structure_plugin.js 2012-01-25 17:18:43 UTC (rev 668)
@@ -23,45 +23,52 @@
$('head').append('<link rel="stylesheet" href="plugins/jqclock/jqclock.css" type="text/css" />');
VisuDesign_Custom.prototype.addCreator("jqclock", {
- create: function( page, path ) {
- var $p = $(page);
- function uniqid() {
- var newDate = new Date;
- return newDate.getTime();
- }
- var id = "jqclock_" + uniqid();
+ create: function( page, path ) {
+ var $p = $(page);
+ function uniqid() {
+ var newDate = new Date;
+ return newDate.getTime();
+ }
+ var id = "jqclock_" + uniqid();
- var ret_val = $('<div class="widget clearfix" />');
- ret_val.addClass( 'jqclock' );
- var label = '<div class="label">' + page.textContent + '</div>';
- var actor = $("<div class=\"actor\"><div class=\"jqclock_inline\" id=\"" + id + "\"></div></div>");
- var jqclock = $("#"+id,actor);
+ var ret_val = $('<div class="widget clearfix jqclock" />');
+ if ($p.attr("rowspan")) { // add rowspan only if not default
+ ret_val.addClass(rowspanClass($p.attr("rowspan")));
+ }
+ if ($p.attr("colspan")) { // add colspan only if not default
+ ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
+ }
+
+ var label = '<div class="label">' + page.textContent + '</div>';
+ var actor = $("<div class=\"actor\"><div class=\"jqclock_inline\" id=\"" + id + "\"></div></div>");
+ var jqclock = $("#"+id,actor);
- if ($p.attr("width")) {
- jqclock.css("width", $p.attr("width"));
- }
- if ($p.attr("height")) {
- jqclock.css("height", $p.attr("height"));
- }
+ if ($p.attr("width")) {
+ jqclock.css("width", $p.attr("width"));
+ }
+ if ($p.attr("height")) {
+ jqclock.css("height", $p.attr("height"));
+ }
- //start the clock in statusbar - if any
- $("div#jqclock_status").clock({"langSet":$("div#jqclock_status").attr('lang'),"calendar":$("div#jqclock_status").attr('date')});
+ //start the clock in statusbar - if any
+ $("div#jqclock_status").clock({"langSet":$("div#jqclock_status").attr('lang'),"calendar":$("div#jqclock_status").attr('date')});
- window.setTimeout(function() {
- //start myself after 1 sec? a quirk?
- $("#"+id).clock({"langSet":$p.attr("lang"), "calendar":$p.attr("date")});
- }, 1000);
+ window.setTimeout(function() {
+ //start myself after 1 sec? a quirk?
+ $("#"+id).clock({"langSet":$p.attr("lang"), "calendar":$p.attr("date")});
+ }, 1000);
- ret_val.append(label).append(actor);
- return ret_val;
- },
- attributes: {
- width: {type: "string", required: false},
- height: {type: "string", required: false},
- //refresh: {type: "numeric", required: false},
- lang: {type: "list", required: true, list: {'de':'Deutsch','en':'English','es':'Espanol','fr':'Francais','it':'Italiano','ru':'Ruski'}},
- date: {type: "list", required: false, list: {'true': "yes", 'false': "no"}}
- },
- content: {type: "string", required: false}
+ ret_val.append(label).append(actor);
+ return ret_val;
+ },
+ attributes: {
+ width: {type: "string", required: false},
+ height: {type: "string", required: false},
+ lang: {type: "list", required: true, list: {'de':'Deutsch','en':'English','es':'Espanol','fr':'Francais','it':'Italiano','ru':'Ruski'}},
+ date: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
+ colspan: { type: 'numeric', required: false },
+ rowspan: { type: 'numeric', required: false }
+ },
+ content: false
});
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-25 17:16:25
|
Revision: 667
http://openautomation.svn.sourceforge.net/openautomation/?rev=667&view=rev
Author: j-n-k
Date: 2012-01-25 17:16:18 +0000 (Wed, 25 Jan 2012)
Log Message:
-----------
Changed colspan-calculation, CSS-Entries no longer needed,
added colspan-support fot jqclock-Plugin
Modified Paths:
--------------
CometVisu/trunk/visu/designs/alaska/basic.css
CometVisu/trunk/visu/designs/alaska_slim/basic.css
CometVisu/trunk/visu/designs/discreet/basic.css
CometVisu/trunk/visu/designs/discreet_sand/basic.css
CometVisu/trunk/visu/designs/discreet_slim/basic.css
CometVisu/trunk/visu/designs/pure/basic.css
CometVisu/trunk/visu/designs/structure_custom.js
CometVisu/trunk/visu/lib/templateengine.js
Modified: CometVisu/trunk/visu/designs/alaska/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/alaska/basic.css 2012-01-24 17:18:10 UTC (rev 666)
+++ CometVisu/trunk/visu/designs/alaska/basic.css 2012-01-25 17:16:18 UTC (rev 667)
@@ -92,10 +92,6 @@
float: left;
}
-.colspan2 {
- width:100%;
-}
-
.widget_container .widget_container {
width: 100%;
}
Modified: CometVisu/trunk/visu/designs/alaska_slim/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/alaska_slim/basic.css 2012-01-24 17:18:10 UTC (rev 666)
+++ CometVisu/trunk/visu/designs/alaska_slim/basic.css 2012-01-25 17:16:18 UTC (rev 667)
@@ -87,14 +87,6 @@
float: left;
}
-.colspan2 {
- width:66%;
-}
-
-.colspan3 {
- width:99%;
-}
-
.widget_container .widget_container {
width: 100%;
}
Modified: CometVisu/trunk/visu/designs/discreet/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/discreet/basic.css 2012-01-24 17:18:10 UTC (rev 666)
+++ CometVisu/trunk/visu/designs/discreet/basic.css 2012-01-25 17:16:18 UTC (rev 667)
@@ -86,10 +86,6 @@
float: left;
}
-.colspan2 {
- width:100%;
-}
-
.widget_container .widget_container {
width: 100%;
}
Modified: CometVisu/trunk/visu/designs/discreet_sand/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/discreet_sand/basic.css 2012-01-24 17:18:10 UTC (rev 666)
+++ CometVisu/trunk/visu/designs/discreet_sand/basic.css 2012-01-25 17:16:18 UTC (rev 667)
@@ -79,10 +79,6 @@
float: left;
}
-.colspan2 {
- width:100%;
-}
-
.widget_container .widget_container {
width: 100%;
}
Modified: CometVisu/trunk/visu/designs/discreet_slim/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/discreet_slim/basic.css 2012-01-24 17:18:10 UTC (rev 666)
+++ CometVisu/trunk/visu/designs/discreet_slim/basic.css 2012-01-25 17:16:18 UTC (rev 667)
@@ -79,14 +79,6 @@
float: left;
}
-.colspan2 {
- width:66%;
-}
-
-.colspan3 {
- width:99%;
-}
-
.widget_container .widget_container {
width: 100%;
}
Modified: CometVisu/trunk/visu/designs/pure/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/pure/basic.css 2012-01-24 17:18:10 UTC (rev 666)
+++ CometVisu/trunk/visu/designs/pure/basic.css 2012-01-25 17:16:18 UTC (rev 667)
@@ -67,10 +67,6 @@
float: left;
}
-.colspan2 {
- width:100%;
-}
-
.widget_container .widget_container {
width: 100%;
}
Modified: CometVisu/trunk/visu/designs/structure_custom.js
===================================================================
--- CometVisu/trunk/visu/designs/structure_custom.js 2012-01-24 17:18:10 UTC (rev 666)
+++ CometVisu/trunk/visu/designs/structure_custom.js 2012-01-25 17:16:18 UTC (rev 667)
@@ -61,20 +61,19 @@
var designs = [ 'pure', 'discreet', 'discreet_sand', 'discreet_slim', 'alaska', 'alaska_slim' ];
var oldDesign = $('.value',this).text();
var newDesign = designs[ (designs.indexOf(oldDesign) + 1) % designs.length ];
- $('.value',this).text(newDesign);
- $('link[href*="designs"]').each(function(){
- this.href = this.href.replace( oldDesign, newDesign );
- });
-
- setTimeout(function() {
- $('style').each(function(style) {
- var txt = this.textContent;
- var idx = txt.search('rowspan');
- if (idx>0) {
- rowspanClass(parseInt(txt[idx+7]), this);
- }
- });
- }, 100);
+
+ var URL = window.location.href;
+ var regexp = new RegExp("design="+oldDesign)
+ if (URL.search(regexp) != -1) { // has URL-parameter design
+ window.location.href=URL.replace(regexp, "design="+newDesign);
+ } else {
+ if (URL.indexOf("?") != -1) { // has other parameters, append design
+ window.location.href=URL+"&design="+newDesign;
+ } else { // has now parameters
+ window.location.href=URL+"?design="+newDesign;
+ }
+ }
+
})
);
return ret_val;
Modified: CometVisu/trunk/visu/lib/templateengine.js
===================================================================
--- CometVisu/trunk/visu/lib/templateengine.js 2012-01-24 17:18:10 UTC (rev 666)
+++ CometVisu/trunk/visu/lib/templateengine.js 2012-01-25 17:16:18 UTC (rev 667)
@@ -143,10 +143,10 @@
}
$( window ).bind( 'resize', handleResize );
-function rowspanClass(rowspan, elem) {
+function rowspanClass(rowspan) {
var className = 'rowspan'+ rowspan;
- if (( $('<div class="' + className + '" />').height() == 0 ) || elem ) {
+ if ( $('<div class="' + className + '" />').height() == 0 ) {
var dummyDiv = $('<div id="calcrowspan" ><div class="widget clearfix text" id="innerDiv" /></div>')
.appendTo(document.body).show();
@@ -169,20 +169,48 @@
// append css style
- if (elem) {
- $(elem).remove();
- }
-
$('head').append('<style>.rowspan' + rowspan + ' { height: ' + totalHeight + 'px; overflow:hidden;} </style>');
}
return className;
}
-function colspanClass(colspan, elem) {
- var className = 'colspan'+ colspan; // mostly dummy, has to be defined in design-CSS
+function colspanClass(colspan) {
+ var className = 'colspan'+ colspan;
+
+ if ( $('<div class="' + className + '" />').width() == 0 ) { // only if not defined
+ var singleWidth=0;
+
+ // loop over all stylesheets and classes and find .widget_container
+ $.each(document.styleSheets, function(idx, sheet) {
+ if (sheet.href ? (sheet.href.search(/basic.css/) > 0) : false) {
+ $.each(sheet.cssRules, function(idx, cssclass) {
+ if (cssclass.selectorText=='.widget_container') {
+ singleWidth = parseInt((cssclass.style.width).match(/[0-9]*/)[0]);
+ return;
+ }
+ });
+ }
+ if (singleWidth > 0) { // match already found
+ return;
+ }
+ });
+
+ var totalWidth = singleWidth * colspan;
+
+ if (totalWidth>100) { // check if totalWidth is <=100
+ alert('colspan="'+colspan+'" leads to width:' + totalWidth +
+ '% which is >100% and not allowed. Corrected to 100%');
+ totalWidth=100;
+ }
+
+ $('head').append('<style>.colspan' + colspan + ' { width: ' + totalWidth +
+ '%; overflow:hidden;} </style>');
+ }
+
return className;
}
+
function parseXML(xml) {
// erst mal den Cache für AJAX-Requests wieder aktivieren
$.ajaxSetup({cache: true});
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-24 17:18:16
|
Revision: 666
http://openautomation.svn.sourceforge.net/openautomation/?rev=666&view=rev
Author: j-n-k
Date: 2012-01-24 17:18:10 +0000 (Tue, 24 Jan 2012)
Log Message:
-----------
Added colspan/rowspan-support for standrad-widgets
Modified Paths:
--------------
CometVisu/trunk/visu/designs/structure_pure.js
Modified: CometVisu/trunk/visu/designs/structure_pure.js
===================================================================
--- CometVisu/trunk/visu/designs/structure_pure.js 2012-01-23 17:59:41 UTC (rev 665)
+++ CometVisu/trunk/visu/designs/structure_pure.js 2012-01-24 17:18:10 UTC (rev 666)
@@ -201,6 +201,12 @@
create: function( page, path ) {
var $p = $(page);
var ret_val = $('<div class="widget clearfix text" />');
+ if ($p.attr("rowspan")) { // add rowspan only if not default
+ ret_val.addClass(rowspanClass($p.attr("rowspan")));
+ }
+ if ($p.attr("colspan")) { // add colspan only if not default
+ ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
+ }
var style = '';
if( $p.attr('align') ) style += 'text-align:' + $p.attr('align') + ';';
if( style != '' ) style = 'style="' + style + '"';
@@ -208,7 +214,9 @@
return ret_val;
},
attributes: {
- align: { type: 'string', required: false }
+ align: { type: 'string', required: false },
+ colspan: { type: 'numeric', required: false },
+ rowspan: { type: 'numeric', required: false }
},
elements: {
},
@@ -221,6 +229,12 @@
var layout = $p.find('layout')[0];
var style = layout ? 'style="' + extractLayout( layout ) + '"' : '';
var ret_val = $('<div class="widget clearfix info" ' + style + ' />');
+ if ($p.attr("rowspan")) { // add rowspan only if not default
+ ret_val.addClass(rowspanClass($p.attr("rowspan")));
+ }
+ if ($p.attr("colspan")) { // add colspan only if not default
+ ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
+ }
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
var address = {};
@@ -244,7 +258,9 @@
attributes: {
format: { type: 'format', required: false },
mapping: { type: 'mapping', required: false },
- styling: { type: 'styling', required: false }
+ styling: { type: 'styling', required: false },
+ colspan: { type: 'numeric', required: false },
+ rowspan: { type: 'numeric', required: false }
},
elements: {
label: { type: 'string', required: true, multi: false },
@@ -260,6 +276,12 @@
var layout = $p.find('layout')[0];
var style = layout ? 'style="' + extractLayout( layout ) + '"' : '';
var ret_val = $('<div class="widget clearfix slide" ' + style + ' />');
+ if ($p.attr("rowspan")) { // add rowspan only if not default
+ ret_val.addClass(rowspanClass($p.attr("rowspan")));
+ }
+ if ($p.attr("colspan")) { // add colspan only if not default
+ ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
+ }
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
var address = {};
@@ -359,7 +381,9 @@
max: { type: 'numeric', required: false },
step: { type: 'numeric', required: false },
mapping: { type: 'mapping', required: false },
- styling: { type: 'styling', required: false }
+ styling: { type: 'styling', required: false },
+ colspan: { type: 'numeric', required: false },
+ rowspan: { type: 'numeric', required: false }
},
elements: {
label: { type: 'string', required: true, multi: false },
@@ -373,6 +397,12 @@
create: function( page, path ) {
var $p = $(page);
var ret_val = $('<div class="widget clearfix switch" />');
+ if ($p.attr("rowspan")) { // add rowspan only if not default
+ ret_val.addClass(rowspanClass($p.attr("rowspan")));
+ }
+ if ($p.attr("colspan")) { // add colspan only if not default
+ ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
+ }
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
var address = {};
@@ -421,7 +451,9 @@
off_value: { type: 'string' , required: false },
mapping: { type: 'mapping' , required: false },
styling: { type: 'styling' , required: false },
- align: { type: 'string' , required: false }
+ align: { type: 'string' , required: false },
+ colspan: { type: 'numeric', required: false },
+ rowspan: { type: 'numeric', required: false }
},
elements: {
label: { type: 'string', required: true, multi: false },
@@ -435,6 +467,12 @@
create: function( page, path ) {
var $p = $(page);
var ret_val = $('<div class="widget clearfix toggle" />');
+ if ($p.attr("rowspan")) { // add rowspan only if not default
+ ret_val.addClass(rowspanClass($p.attr("rowspan")));
+ }
+ if ($p.attr("colspan")) { // add colspan only if not default
+ ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
+ }
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
var address = {};
@@ -486,7 +524,9 @@
attributes: {
mapping: { type: 'mapping' , required: false },
styling: { type: 'styling' , required: false },
- align: { type: 'string' , required: false }
+ align: { type: 'string' , required: false },
+ colspan: { type: 'numeric', required: false },
+ rowspan: { type: 'numeric', required: false }
},
elements: {
label: { type: 'string', required: true, multi: false },
@@ -499,6 +539,12 @@
create: function( page, path ) {
var $p = $(page);
var ret_val = $('<div class="widget clearfix switch" />');
+ if ($p.attr("rowspan")) { // add rowspan only if not default
+ ret_val.addClass(rowspanClass($p.attr("rowspan")));
+ }
+ if ($p.attr("colspan")) { // add colspan only if not default
+ ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
+ }
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
var address = {};
@@ -633,7 +679,9 @@
mapping: { type: 'mapping' , required: false },
styling: { type: 'styling' , required: false },
align: { type: 'string' , required: false },
- showstatus: { type: 'list' , required: true, list: {'true': "yes", 'false': "no"} }
+ showstatus: { type: 'list' , required: true, list: {'true': "yes", 'false': "no"} },
+ colspan: { type: 'numeric', required: false },
+ rowspan: { type: 'numeric', required: false }
},
elements: {
label: { type: 'string', required: false, multi: false },
@@ -647,6 +695,12 @@
var $p = $(page);
var value = $p.attr('value') ? $p.attr('value') : 0;
var ret_val = $('<div class="widget clearfix switch" />');
+ if ($p.attr("rowspan")) { // add rowspan only if not default
+ ret_val.addClass(rowspanClass($p.attr("rowspan")));
+ }
+ if ($p.attr("colspan")) { // add colspan only if not default
+ ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
+ }
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
var address = {};
@@ -695,6 +749,8 @@
mapping: { type: 'mapping' , required: false },
styling: { type: 'styling' , required: false },
align: { type: 'string' , required: false },
+ colspan: { type: 'numeric', required: false },
+ rowspan: { type: 'numeric', required: false }
},
elements: {
label: { type: 'string', required: true, multi: false },
@@ -711,6 +767,9 @@
if ($p.attr("rowspan")) { // add rowspan only if not default
ret_val.addClass(rowspanClass($p.attr("rowspan")));
}
+ if ($p.attr("colspan")) { // add colspan only if not default
+ ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
+ }
var labelElement = $p.find('label')[0];
ret_val.append( labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '' );
@@ -733,7 +792,9 @@
src: { type: 'uri' , required: true },
width: { type: 'string' , required: false },
height: { type: 'string' , required: false },
- refresh: { type: 'numeric', required: false }
+ refresh: { type: 'numeric', required: false },
+ colspan: { type: 'numeric', required: false },
+ rowspan: { type: 'numeric', required: false }
},
elements: {
label: { type: 'string', required: false, multi: false }
@@ -745,6 +806,12 @@
create: function( page, path ) {
var $p = $(page);
var ret_val = $('<div class="widget clearfix video" />');
+ if ($p.attr("rowspan")) { // add rowspan only if not default
+ ret_val.addClass(rowspanClass($p.attr("rowspan")));
+ }
+ if ($p.attr("colspan")) { // add colspan only if not default
+ ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
+ }
var labelElement = $p.find('label')[0];
ret_val.append( labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '' );
var autoplay = ($p.attr('autoplay') && $p.attr('autoplay')=='true') ? ' autoplay="autoplay"' : '';
@@ -760,7 +827,9 @@
src: { type: 'uri' , required: true },
width: { type: 'string' , required: false },
height: { type: 'string' , required: false },
- autoplay:{ type: 'list' , required: true, list: {'true': "yes", 'false': "no"} }
+ autoplay:{ type: 'list' , required: true, list: {'true': "yes", 'false': "no"} },
+ colspan: { type: 'numeric', required: false },
+ rowspan: { type: 'numeric', required: false }
},
elements: {
label: { type: 'string', required: false, multi: false }
@@ -771,8 +840,15 @@
this.addCreator('iframe', {
create: function( page, path ) {
var $p = $(page);
- var ret_val = $('<div class="widget" />');
- ret_val.addClass( 'iframe' );
+ var ret_val = $('<div class="widget iframe" />');
+
+ if ($p.attr("rowspan")) { // add rowspan only if not default
+ ret_val.addClass(rowspanClass($p.attr("rowspan")));
+ }
+ if ($p.attr("colspan")) { // add colspan only if not default
+ ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
+ }
+
ret_val.append( '<div class="label">' + page.textContent + '</div>' );
var style = '';
if( $p.attr('width' ) ) {
@@ -798,7 +874,9 @@
height: { type: 'string', required: false },
frameborder: { type: 'list' , required: false, list: {'true': "yes", 'false': "no"} },
background: { type: 'string', required: false },
- refresh: { type: 'numeric', required: false }
+ refresh: { type: 'numeric', required: false },
+ colspan: { type: 'numeric', required: false },
+ rowspan: { type: 'numeric', required: false }
},
elements: {
label: { type: 'string', required: false, multi: false }
@@ -810,7 +888,12 @@
create: function( page, path ) {
var $p = $(page);
var ret_val = $('<div class="widget clearfix switch" />');
-
+ if ($p.attr("rowspan")) { // add rowspan only if not default
+ ret_val.addClass(rowspanClass($p.attr("rowspan")));
+ }
+ if ($p.attr("colspan")) { // add colspan only if not default
+ ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
+ }
// handle label
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
@@ -947,7 +1030,9 @@
format: { type: 'string' , required: false },
change: { type: 'list' , required: false , list: {'relative': 'Send relative/delta values', 'absolute': 'Send absolute values'} },
min: { type: 'numeric' , required: false },
- max: { type: 'numeric' , required: false }
+ max: { type: 'numeric' , required: false },
+ colspan: { type: 'numeric', required: false },
+ rowspan: { type: 'numeric', required: false }
},
elements: {
label: { type: 'string', required: false, multi: false },
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-23 17:59:52
|
Revision: 665
http://openautomation.svn.sourceforge.net/openautomation/?rev=665&view=rev
Author: j-n-k
Date: 2012-01-23 17:59:41 +0000 (Mon, 23 Jan 2012)
Log Message:
-----------
Added support for colspan, usage: colspan="x" in widget-defintion
Each design has to implement all possible multi-columncolspan-classes:
single-column-designs: none
two-column-designs: colspan2
three-column-designs: colspan2, colspan3
etc.
Basic support: currently only in rsslog-plugin
Modified Paths:
--------------
CometVisu/trunk/visu/designs/alaska/basic.css
CometVisu/trunk/visu/designs/alaska_slim/basic.css
CometVisu/trunk/visu/designs/discreet/basic.css
CometVisu/trunk/visu/designs/discreet_sand/basic.css
CometVisu/trunk/visu/designs/discreet_slim/basic.css
CometVisu/trunk/visu/designs/pure/basic.css
CometVisu/trunk/visu/lib/templateengine.js
CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js
Modified: CometVisu/trunk/visu/designs/alaska/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/alaska/basic.css 2012-01-21 17:23:16 UTC (rev 664)
+++ CometVisu/trunk/visu/designs/alaska/basic.css 2012-01-23 17:59:41 UTC (rev 665)
@@ -92,6 +92,10 @@
float: left;
}
+.colspan2 {
+ width:100%;
+}
+
.widget_container .widget_container {
width: 100%;
}
Modified: CometVisu/trunk/visu/designs/alaska_slim/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/alaska_slim/basic.css 2012-01-21 17:23:16 UTC (rev 664)
+++ CometVisu/trunk/visu/designs/alaska_slim/basic.css 2012-01-23 17:59:41 UTC (rev 665)
@@ -87,6 +87,14 @@
float: left;
}
+.colspan2 {
+ width:66%;
+}
+
+.colspan3 {
+ width:99%;
+}
+
.widget_container .widget_container {
width: 100%;
}
Modified: CometVisu/trunk/visu/designs/discreet/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/discreet/basic.css 2012-01-21 17:23:16 UTC (rev 664)
+++ CometVisu/trunk/visu/designs/discreet/basic.css 2012-01-23 17:59:41 UTC (rev 665)
@@ -86,6 +86,10 @@
float: left;
}
+.colspan2 {
+ width:100%;
+}
+
.widget_container .widget_container {
width: 100%;
}
Modified: CometVisu/trunk/visu/designs/discreet_sand/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/discreet_sand/basic.css 2012-01-21 17:23:16 UTC (rev 664)
+++ CometVisu/trunk/visu/designs/discreet_sand/basic.css 2012-01-23 17:59:41 UTC (rev 665)
@@ -79,6 +79,10 @@
float: left;
}
+.colspan2 {
+ width:100%;
+}
+
.widget_container .widget_container {
width: 100%;
}
Modified: CometVisu/trunk/visu/designs/discreet_slim/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/discreet_slim/basic.css 2012-01-21 17:23:16 UTC (rev 664)
+++ CometVisu/trunk/visu/designs/discreet_slim/basic.css 2012-01-23 17:59:41 UTC (rev 665)
@@ -79,6 +79,14 @@
float: left;
}
+.colspan2 {
+ width:66%;
+}
+
+.colspan3 {
+ width:99%;
+}
+
.widget_container .widget_container {
width: 100%;
}
Modified: CometVisu/trunk/visu/designs/pure/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/pure/basic.css 2012-01-21 17:23:16 UTC (rev 664)
+++ CometVisu/trunk/visu/designs/pure/basic.css 2012-01-23 17:59:41 UTC (rev 665)
@@ -67,6 +67,10 @@
float: left;
}
+.colspan2 {
+ width:100%;
+}
+
.widget_container .widget_container {
width: 100%;
}
Modified: CometVisu/trunk/visu/lib/templateengine.js
===================================================================
--- CometVisu/trunk/visu/lib/templateengine.js 2012-01-21 17:23:16 UTC (rev 664)
+++ CometVisu/trunk/visu/lib/templateengine.js 2012-01-23 17:59:41 UTC (rev 665)
@@ -173,12 +173,16 @@
$(elem).remove();
}
- $('head').append('<style>.rowspan' + rowspan + ' { height: ' + totalHeight + 'px; } </style>');
+ $('head').append('<style>.rowspan' + rowspan + ' { height: ' + totalHeight + 'px; overflow:hidden;} </style>');
}
return className;
}
+function colspanClass(colspan, elem) {
+ var className = 'colspan'+ colspan; // mostly dummy, has to be defined in design-CSS
+ return className;
+}
function parseXML(xml) {
// erst mal den Cache für AJAX-Requests wieder aktivieren
$.ajaxSetup({cache: true});
@@ -384,7 +388,7 @@
.data("textContent", page.textContent);
if (jQuery(retval).is(".widget")) {
- retval = jQuery("<div class='widget_container' />").append(retval);
+ retval = jQuery("<div class='widget_container "+retval.data("colspanClass")+"' />").append(retval);
}
return retval;
Modified: CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js 2012-01-21 17:23:16 UTC (rev 664)
+++ CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js 2012-01-23 17:59:41 UTC (rev 665)
@@ -48,6 +48,9 @@
ret_val.addClass(rowspanClass($p.attr("rowspan")));
}
+ if ($p.attr("colspan")) { // add colspan only if not default
+ ret_val.data("colspanClass", colspanClass($p.attr("colspan")));
+ }
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
@@ -152,15 +155,6 @@
success: function(feed){
jQuery(c).html('');
-/* FIXME: Header gets added on each refresh, unsupported in rssfeedlocal for now..
- if (options.header)
- jQuery(c).parent().parent().prepend( '<p><div class="rssHeader">' +
- '<a href="' + jQuery(feed).find('link:first').text()
- +'" title="'+ jQuery(feed).find('description:first').text()
- +'" target="' + o.linktarget + '">'
- + jQuery(feed).find('title:first').text()
- +'</a>' + '</div></p>');
-*/
// get height of one entry, calc max num of display items in widget
var dummyDiv = $('<' + o.wrapper + ' class="rssRow odd" id="dummydiv">').append('<li />').appendTo($(c));
var itemheight = dummyDiv.height();
@@ -203,7 +197,7 @@
var entryDate = new Date($(item).find('pubDate').text());
if (entryDate) {
itemHtml = (o.timeformat) ?
- (itemHtml.replace(/{date}/, entryDate.toLocaleFormat(o.timeformat) + ' ')) :
+ (itemHtml.replace(/{date}/, entryDate.strftime(o.timeformat) + ' ')) :
(itemHtml.replace(/{date}/, entryDate.toLocaleDateString() + ' ' + entryDate.toLocaleTimeString() + ' '));
} else {
itemHtml = itemHtml.replace(/{date}/, '');
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-21 17:23:22
|
Revision: 664
http://openautomation.svn.sourceforge.net/openautomation/?rev=664&view=rev
Author: j-n-k
Date: 2012-01-21 17:23:16 +0000 (Sat, 21 Jan 2012)
Log Message:
-----------
Fix design-toggle issue for rowspan
Modified Paths:
--------------
CometVisu/trunk/visu/designs/structure_custom.js
CometVisu/trunk/visu/lib/templateengine.js
Modified: CometVisu/trunk/visu/designs/structure_custom.js
===================================================================
--- CometVisu/trunk/visu/designs/structure_custom.js 2012-01-21 16:41:52 UTC (rev 663)
+++ CometVisu/trunk/visu/designs/structure_custom.js 2012-01-21 17:23:16 UTC (rev 664)
@@ -41,35 +41,46 @@
* to demonstrate all available
*/
VisuDesign_Custom.prototype.addCreator("designtoggle", {
- create: function( page, path ) {
- var ret_val = $('<div class="widget clearfix" />');
- ret_val.addClass( 'switch' );
- var label = '<div class="label">' + page.textContent + '</div>';
- var actor = '<div class="actor switchUnpressed">';
- var value = $('link[href*="designs"]').attr('href').split('/')[1];
- actor += '<div class="value">' + value + '</div>';
- actor += '</div>';
- ret_val.append(label).append($(actor)
- .data({
- 'mapping' : $(page).attr('mapping'),
- 'styling' : $(page).attr('styling'),
- 'value' : value,
- 'type' : 'toggle'
- })
- .bind('click', function() {
- var designs = [ 'pure', 'discreet', 'discreet_sand', 'discreet_slim', 'alaska', 'alaska_slim' ];
- var oldDesign = $('.value',this).text();
- var newDesign = designs[ (designs.indexOf(oldDesign) + 1) % designs.length ];
- $('.value',this).text(newDesign);
- $('link[href*="designs"]').each(function(){
- this.href = this.href.replace( oldDesign, newDesign );
- });
- })
- );
- return ret_val;
- },
- attributes: {
- },
- content: {type: "string", required: true}
+ create: function( page, path ) {
+
+ var ret_val = $('<div class="widget clearfix" />');
+ ret_val.addClass( 'switch' );
+ var label = '<div class="label">' + page.textContent + '</div>';
+ var actor = '<div class="actor switchUnpressed">';
+ var value = $('link[href*="designs"]').attr('href').split('/')[1];
+ actor += '<div class="value">' + value + '</div>';
+ actor += '</div>';
+ ret_val.append(label).append($(actor)
+ .data({
+ 'mapping' : $(page).attr('mapping'),
+ 'styling' : $(page).attr('styling'),
+ 'value' : value,
+ 'type' : 'toggle'
+ })
+ .bind('click', function() {
+ var designs = [ 'pure', 'discreet', 'discreet_sand', 'discreet_slim', 'alaska', 'alaska_slim' ];
+ var oldDesign = $('.value',this).text();
+ var newDesign = designs[ (designs.indexOf(oldDesign) + 1) % designs.length ];
+ $('.value',this).text(newDesign);
+ $('link[href*="designs"]').each(function(){
+ this.href = this.href.replace( oldDesign, newDesign );
+ });
+
+ setTimeout(function() {
+ $('style').each(function(style) {
+ var txt = this.textContent;
+ var idx = txt.search('rowspan');
+ if (idx>0) {
+ rowspanClass(parseInt(txt[idx+7]), this);
+ }
+ });
+ }, 100);
+ })
+ );
+ return ret_val;
+ },
+ attributes: {
+ },
+ content: true
});
Modified: CometVisu/trunk/visu/lib/templateengine.js
===================================================================
--- CometVisu/trunk/visu/lib/templateengine.js 2012-01-21 16:41:52 UTC (rev 663)
+++ CometVisu/trunk/visu/lib/templateengine.js 2012-01-21 17:23:16 UTC (rev 664)
@@ -98,7 +98,7 @@
var basetrans = transformation.split('.')[0];
return transformation in Transform ?
Transform[ transformation ].decode( value ) :
- (basetrans in Transform ? Transform[ basetrans ].decode( value ) : value);
+ (basetrans in Transform ? Transform[ basetrans ].decode( value ) : value);
}
function map( value, element )
@@ -143,12 +143,13 @@
}
$( window ).bind( 'resize', handleResize );
-function rowspanClass(rowspan) {
+function rowspanClass(rowspan, elem) {
var className = 'rowspan'+ rowspan;
- if ( $('<div class="' + className + '" />').height() == 0 ) {
- var dummyDiv = $('<div><div class="widget clearfix text" id="innerDiv" /></div>')
- .appendTo($('body'));
-
+
+ if (( $('<div class="' + className + '" />').height() == 0 ) || elem ) {
+ var dummyDiv = $('<div id="calcrowspan" ><div class="widget clearfix text" id="innerDiv" /></div>')
+ .appendTo(document.body).show();
+
// get css settings of single object
var paddingTop = parseFloat($('#innerDiv').css('padding-top'));
var paddingBottom = parseFloat($('#innerDiv').css('padding-bottom'));
@@ -158,7 +159,7 @@
var borderBottom = parseFloat($('#innerDiv').css('border-bottom-width'));
var singleHeight = parseFloat($('#innerDiv').css('height'));
- dummyDiv.remove();
+ $('#calcrowspan').remove();
// calculate total height
var totalHeight = (rowspan-1) * Math.round((singleHeight+
@@ -167,8 +168,14 @@
+ singleHeight;
// append css style
+
+ if (elem) {
+ $(elem).remove();
+ }
+
$('head').append('<style>.rowspan' + rowspan + ' { height: ' + totalHeight + 'px; } </style>');
}
+
return className;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <csc...@us...> - 2012-01-21 16:41:58
|
Revision: 663
http://openautomation.svn.sourceforge.net/openautomation/?rev=663&view=rev
Author: cschleiffer
Date: 2012-01-21 16:41:52 +0000 (Sat, 21 Jan 2012)
Log Message:
-----------
Option to show current status in multitrigger widget
Modified Paths:
--------------
CometVisu/trunk/visu/designs/structure_pure.js
CometVisu/trunk/visu/visu_config.xsd
Modified: CometVisu/trunk/visu/designs/structure_pure.js
===================================================================
--- CometVisu/trunk/visu/designs/structure_pure.js 2012-01-19 19:35:25 UTC (rev 662)
+++ CometVisu/trunk/visu/designs/structure_pure.js 2012-01-21 16:41:52 UTC (rev 663)
@@ -430,6 +430,7 @@
content: false
});
+
this.addCreator('toggle', {
create: function( page, path ) {
var $p = $(page);
@@ -501,6 +502,7 @@
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
var address = {};
+ var showstatus = $p.attr("showstatus") || "false";
$p.find('address').each( function(){
var src = this.textContent;
var transform = this.getAttribute('transform');
@@ -529,6 +531,9 @@
'align' : $p.attr('align'),
'type' : 'switch'
} ).bind( 'click', this.action );
+ if( showstatus == "true" ) {
+ for( var addr in address ) $actor.bind( addr, this.update );
+ }
buttons.append( $actor );
if( 1 == (buttonCount++ % 2) ) buttons.append( $('<br/>') );
}
@@ -548,6 +553,9 @@
'type' : 'switch',
'align' : $p.attr('align')
} ).bind( 'click', this.action );
+ if( showstatus == "true" ) {
+ for( var addr in address ) $actor.bind( addr, this.update );
+ }
buttons.append( $actor );
if( 1 == (buttonCount++ % 2) ) buttons.append( $('<br/>') );
}
@@ -566,6 +574,9 @@
'value' : $p.attr('button3value'),
'type' : 'switch'
} ).bind( 'click', this.action );
+ if( showstatus == "true" ) {
+ for( var addr in address ) $actor.bind( addr, this.update );
+ }
buttons.append( $actor );
if( 1 == buttonCount++ % 2 ) buttons.append( $('<br/>') );
}
@@ -584,6 +595,9 @@
'value' : $p.attr('button4value'),
'type' : 'switch',
} ).bind( 'click', this.action );
+ if( showstatus == "true" ) {
+ for( var addr in address ) $actor.bind( addr, this.update );
+ }
buttons.append( $actor );
if( 1 == buttonCount++ % 2 ) buttons.append( $('<br/>') );
}
@@ -593,9 +607,11 @@
},
update: function(e,d) {
var element = $(this);
- var value = defaultUpdate( e, d, element );
- element.removeClass( value == 0 ? 'switchPressed' : 'switchUnpressed' );
- element.addClass( value == 0 ? 'switchUnpressed' : 'switchPressed' );
+ //var value = defaultUpdate( e, d, element );
+ var thisTransform = element.data().address[ e.type ][0];
+ var value = transformDecode( element.data().address[ e.type ][0], d );
+ element.removeClass( value == element.data().value ? 'switchUnpressed' : 'switchPressed' );
+ element.addClass( value == element.data().value ? 'switchPressed' : 'switchUnpressed' );
},
action: function() {
var data = $(this).data();
@@ -616,7 +632,8 @@
button4value: { type: 'string' , required: false },
mapping: { type: 'mapping' , required: false },
styling: { type: 'styling' , required: false },
- align: { type: 'string' , required: false }
+ align: { type: 'string' , required: false },
+ showstatus: { type: 'list' , required: true, list: {'true': "yes", 'false': "no"} }
},
elements: {
label: { type: 'string', required: false, multi: false },
@@ -861,9 +878,9 @@
} );
var actorinfo = '<div class="actor switchInvisible" ';
- if ( $p.attr( 'align' ) )
+ if ( $p.attr( 'align' ) )
actorinfo += 'style="text-align: '+$p.attr( 'align' )+'" ';
- actorinfo += '" ><div class="value">-</div></div>';
+ actorinfo += '" ><div class="value">-</div></div>';
var $actorinfo = $(actorinfo).data({
'address' : address,
'format' : $p.attr('format'),
Modified: CometVisu/trunk/visu/visu_config.xsd
===================================================================
--- CometVisu/trunk/visu/visu_config.xsd 2012-01-19 19:35:25 UTC (rev 662)
+++ CometVisu/trunk/visu/visu_config.xsd 2012-01-21 16:41:52 UTC (rev 663)
@@ -66,7 +66,6 @@
<xsd:attribute name="variant" type="xsd:string" />
<!-- complex elements -->
-
<xsd:element name="pages">
<xsd:complexType>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
@@ -260,8 +259,8 @@
</xsd:choice>
<xsd:attribute ref="styling" use="optional" />
<xsd:attribute ref="mapping" use="optional" />
- <xsd:attribute name="on_value" type="xsd:string" use="optional" />
- <xsd:attribute name="off_value" type="xsd:string" use="optional" />
+ <xsd:attribute name="on_value" type="xsd:string" use="optional" />
+ <xsd:attribute name="off_value" type="xsd:string" use="optional" />
<xsd:attribute ref="align" use="optional" />
</xsd:complexType>
@@ -311,6 +310,7 @@
</xsd:choice>
<xsd:attribute ref="mapping" use="optional" />
<xsd:attribute ref="styling" use="optional" />
+ <xsd:attribute name="showstatus" type="xsd:string" use="optional" />
<xsd:attribute name="button1label" type="xsd:string" use="optional" />
<xsd:attribute name="button1value" type="xsd:string" use="optional" />
<xsd:attribute name="button2label" type="xsd:string" use="optional" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-19 19:35:31
|
Revision: 662
http://openautomation.svn.sourceforge.net/openautomation/?rev=662&view=rev
Author: j-n-k
Date: 2012-01-19 19:35:25 +0000 (Thu, 19 Jan 2012)
Log Message:
-----------
Inital commit for rowspan
Use .addClass(rowspanClass(rowspan)) on your widget-div to add
a CSS class that sets the height to rowspan-rows. Example: image
Modified Paths:
--------------
CometVisu/trunk/visu/designs/structure_pure.js
CometVisu/trunk/visu/lib/templateengine.js
CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js
Modified: CometVisu/trunk/visu/designs/structure_pure.js
===================================================================
--- CometVisu/trunk/visu/designs/structure_pure.js 2012-01-18 19:10:46 UTC (rev 661)
+++ CometVisu/trunk/visu/designs/structure_pure.js 2012-01-19 19:35:25 UTC (rev 662)
@@ -690,6 +690,11 @@
create: function( page, path ) {
var $p = $(page);
var ret_val = $('<div class="widget clearfix image" />');
+
+ if ($p.attr("rowspan")) { // add rowspan only if not default
+ ret_val.addClass(rowspanClass($p.attr("rowspan")));
+ }
+
var labelElement = $p.find('label')[0];
ret_val.append( labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '' );
var style = '';
Modified: CometVisu/trunk/visu/lib/templateengine.js
===================================================================
--- CometVisu/trunk/visu/lib/templateengine.js 2012-01-18 19:10:46 UTC (rev 661)
+++ CometVisu/trunk/visu/lib/templateengine.js 2012-01-19 19:35:25 UTC (rev 662)
@@ -59,17 +59,17 @@
// This can be overwritten in the URL with the parameter "maturity"
var use_maturity;
if ($.getUrlVar('maturity')) {
- var url_maturity = $.getUrlVar('maturity');
- if (!isNaN(url_maturity - 0)) {
- use_maturity = url_maturity - 0; // given directly as number
- }
- else {
- use_maturity = Maturity[url_maturity]; // or as the ENUM name
- }
+ var url_maturity = $.getUrlVar('maturity');
+ if (!isNaN(url_maturity - 0)) {
+ use_maturity = url_maturity - 0; // given directly as number
+ }
+ else {
+ use_maturity = Maturity[url_maturity]; // or as the ENUM name
+ }
}
if (isNaN(use_maturity)) {
- use_maturity = Maturity.release; // default to release
+ use_maturity = Maturity.release; // default to release
}
$(document).ready(function() {
@@ -143,6 +143,35 @@
}
$( window ).bind( 'resize', handleResize );
+function rowspanClass(rowspan) {
+ var className = 'rowspan'+ rowspan;
+ if ( $('<div class="' + className + '" />').height() == 0 ) {
+ var dummyDiv = $('<div><div class="widget clearfix text" id="innerDiv" /></div>')
+ .appendTo($('body'));
+
+ // get css settings of single object
+ var paddingTop = parseFloat($('#innerDiv').css('padding-top'));
+ var paddingBottom = parseFloat($('#innerDiv').css('padding-bottom'));
+ var marginTop = parseFloat($('#innerDiv').css('margin-top'));
+ var marginBottom = parseFloat($('#innerDiv').css('margin-bottom'));
+ var borderTop = parseFloat($('#innerDiv').css('border-top-width'));
+ var borderBottom = parseFloat($('#innerDiv').css('border-bottom-width'));
+ var singleHeight = parseFloat($('#innerDiv').css('height'));
+
+ dummyDiv.remove();
+
+ // calculate total height
+ var totalHeight = (rowspan-1) * Math.round((singleHeight+
+ + marginTop + paddingTop + borderTop
+ + marginBottom + paddingBottom + borderBottom))
+ + singleHeight;
+
+ // append css style
+ $('head').append('<style>.rowspan' + rowspan + ' { height: ' + totalHeight + 'px; } </style>');
+ }
+ return className;
+}
+
function parseXML(xml) {
// erst mal den Cache für AJAX-Requests wieder aktivieren
$.ajaxSetup({cache: true});
Modified: CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js 2012-01-18 19:10:46 UTC (rev 661)
+++ CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js 2012-01-19 19:35:25 UTC (rev 662)
@@ -28,7 +28,7 @@
$.get("plugins/rsslog/rsslog.css", function(css) {
$("head").append("<style>"+css+"</style>");
- });
+});
VisuDesign_Custom.prototype.addCreator("rsslog", {
create: function( page, path ) {
@@ -41,10 +41,17 @@
var id = "rss_" + uniqid();
- var ret_val = $('<div class="widget clearfix" style="height:205px"/>');
+ var ret_val = $('<div class="widget clearfix" />');
ret_val.addClass( 'rsslog' );
- var label = '<div class="label" style="clear:both;">' + page.textContent + '</div>';
- var actor = $('<div class="actor" style="clear:left;"><div class="rsslog_inline" id="' + id + '"></div></div>');
+
+ if ($p.attr("rowspan")) { // add rowspan only if not default
+ ret_val.addClass(rowspanClass($p.attr("rowspan")));
+ }
+
+ var labelElement = $p.find('label')[0];
+ var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
+
+ var actor = $('<div class="actor rsslogBody"><div class="rsslog_inline" id="' + id + '"></div></div>');
var rss = $("#" + id, actor);
if ($p.attr("width")) {
@@ -58,22 +65,15 @@
rss.data("id", id);
rss.data("src", $p.attr("src"));
- rss.data("label", page.textContent);
+ rss.data("label", labelElement ? labelElement.textContent : '' );
rss.data("refresh", $p.attr("refresh"));
- rss.data("limit", $p.attr("limit")) || 10;
- rss.data("header", $p.attr("header")) || true;
- rss.data("date", $p.attr("date")) || true;
rss.data("content", $p.attr("content")) || true;
- rss.data("snippet", $p.attr("snippet")) || true;
- rss.data("showerror", $p.attr("showerror")) || true;
- rss.data("ssl", $p.attr("ssl")) || false;
- rss.data("linktarget", $p.attr("linktarget")) || "_new";
- rss.data("link", $p.attr("link")) || true;
rss.data("title", $p.attr("title")) || true;
rss.data("mode", $p.attr("mode") || "last");
- rss.data("itemoffset", 0);
rss.data("timeformat", $p.attr("timeformat"));
+ rss.data("itemoffset", 0);
+
refreshRSSlog(rss, {});
return ret_val;
@@ -83,19 +83,12 @@
width: {type: "string", required: false},
height: {type: "string", required: false},
refresh: {type: "numeric", required: false},
- limit: {type: "numeric", required: false},
- header: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
- date: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
content: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
- snippet: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
- showerror: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
- ssl: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
- linktarget: {type: "list", required: false, list: {"_new": "_new", "_self": "_self"}},
- link: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
title: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
- mode: {type: "list", required: false, list: {'first': 'first', 'last': 'last', 'rollover':'rollover' }}
+ mode: {type: "list", required: false, list: {'first': 'first', 'last': 'last', 'rollover':'rollover' }},
+ timeformat: {type: "string", required: false},
},
- content: {type: "string", required: true}
+ content: false
});
function refreshRSSlog(rss, data) {
@@ -105,25 +98,17 @@
var label = rss.data("label");
var refresh = rss.data("refresh");
var limit = rss.data("limit");
- //FIXME: eval really needed?? to convert string true/false to bool?
+
- jQuery(function() {
- $(rss).rssfeedlocal({
- src: src,
- limit: rss.data("limit"),
- header: eval(rss.data("header")),
- date: eval(rss.data("date")),
- content: rss.data("content"),
- snippet: eval(rss.data("snippet")),
- showerror: eval(rss.data("showerror")),
- ssl: eval(rss.data("ssl")),
- linktarget: rss.data("linktarget"),
- link: eval(rss.data("link")),
- title: eval(rss.data("title")),
- mode: rss.data("mode"),
- timeformat: rss.data("timeformat"),
- });
- });
+ $(function() {
+ $(rss).rssfeedlocal({
+ src: src,
+ content: rss.data("content"),
+ title: eval(rss.data("title")),
+ mode: rss.data("mode"),
+ timeformat: rss.data("timeformat"),
+ });
+ });
if (typeof (refresh) != "undefined" && refresh) {
// reload regularly
@@ -131,7 +116,7 @@
refreshRSSlog(rss, data)
}, refresh * 1000, rss, data);
}
- //rss.data("itemoffset") = itemoffset;
+
return false;
}
@@ -141,14 +126,9 @@
var defaults = {
src: '',
- header: false,
html: '{date}: {text}',
wrapper: 'li',
dataType: 'xml',
- limit: 10,
- linktarget: 'new',
- date: true,
- link: true,
title: true
}
var options = jQuery.extend(defaults, options);
@@ -193,7 +173,6 @@
var itemnum = items.length;
var itemoffset = 0; // correct if mode='first' or itemnum<=displayrows
-
if (itemnum>displayrows) { // no need to check mode if items are less than rows
if (o.mode=='last') {
itemoffset=itemnum-displayrows;
@@ -207,51 +186,33 @@
}
}
- var row = 'odd';
+ var row = 'rsslogodd';
var last = itemoffset+displayrows;
if (last>itemnum) {
last=itemnum;
}
for (var i=itemoffset; i<last; i++) {
var idx = i;
- if (i>=itemnum) {
- idx = idx - itemnum;
- }
+ idx = (i>=itemnum) ? (idx = idx - itemnum) : idx;
var item = items[idx];
var itemHtml=o.html;
- /*if (o.link)
- itemHtml = o.html.replace(/{title}/, '<a href="'
- + jQuery(item).find('guid').text()
- + '" target="' + o.linktarget + '">'
- + jQuery(item).find('title').text() + '</a><br />');
- else if (o.title)
- itemHtml = o.html.replace(/{title}/,
- jQuery(item).find('title').text() + '<br />');
- else
- itemHtml = o.html.replace(/{title}/, ''); */
-
+
itemHtml = itemHtml.replace(/{text}/, jQuery(item).find('description').text());
var entryDate = new Date($(item).find('pubDate').text());
- if (o.date && entryDate) {
- if (o.timeformat) {
- itemHtml = itemHtml.replace(/{date}/, entryDate.toLocaleFormat(o.timeformat) + ' ');
- } else {
- itemHtml = itemHtml.replace(/{date}/, entryDate.toLocaleDateString() + ' ' + entryDate.toLocaleTimeString() + ' ');
- }
+ if (entryDate) {
+ itemHtml = (o.timeformat) ?
+ (itemHtml.replace(/{date}/, entryDate.toLocaleFormat(o.timeformat) + ' ')) :
+ (itemHtml.replace(/{date}/, entryDate.toLocaleDateString() + ' ' + entryDate.toLocaleTimeString() + ' '));
} else {
itemHtml = itemHtml.replace(/{date}/, '');
}
- jQuery(c).append(jQuery('<' + o.wrapper + ' class="rssRow ' + row + '">').append(itemHtml));
+ jQuery(c).append(jQuery('<' + o.wrapper + ' class="rsslogRow ' + row + '">').append(itemHtml));
// Alternate row classes
- if (row == 'odd') {
- row = 'even';
- } else {
- row = 'odd';
- }
+ row = (row == 'rsslogodd') ? 'rsslogeven' : 'rsslogodd';
};
$('li', c).wrapAll("<ul>");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-18 19:10:52
|
Revision: 661
http://openautomation.svn.sourceforge.net/openautomation/?rev=661&view=rev
Author: j-n-k
Date: 2012-01-18 19:10:46 +0000 (Wed, 18 Jan 2012)
Log Message:
-----------
Added seperate Plugin-CSS for rsslog-plugin. Design-CSS can overwrite
default styles by redefining them
Modified Paths:
--------------
CometVisu/trunk/visu/designs/alaska/basic.css
CometVisu/trunk/visu/designs/alaska_slim/basic.css
CometVisu/trunk/visu/designs/discreet/basic.css
CometVisu/trunk/visu/designs/discreet_sand/basic.css
CometVisu/trunk/visu/designs/discreet_slim/basic.css
CometVisu/trunk/visu/designs/pure/basic.css
CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js
Added Paths:
-----------
CometVisu/trunk/visu/plugins/rsslog/rsslog.css
Modified: CometVisu/trunk/visu/designs/alaska/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/alaska/basic.css 2012-01-18 17:57:12 UTC (rev 660)
+++ CometVisu/trunk/visu/designs/alaska/basic.css 2012-01-18 19:10:46 UTC (rev 661)
@@ -385,11 +385,6 @@
text-decoration: none;
}
-.rss_inline>ul {
- padding-left:1em;
- margin: 0px;
-}
-
/* styles for the preview */
div#demo_1, div#demo_2, div#demo_3 {
width: 100%;
Modified: CometVisu/trunk/visu/designs/alaska_slim/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/alaska_slim/basic.css 2012-01-18 17:57:12 UTC (rev 660)
+++ CometVisu/trunk/visu/designs/alaska_slim/basic.css 2012-01-18 19:10:46 UTC (rev 661)
@@ -330,11 +330,6 @@
cursor: pointer;
}
-.rss_inline>ul {
- padding-left:1em;
- margin: 0px;
-}
-
.diagram_inline
{
width: 320px;
Modified: CometVisu/trunk/visu/designs/discreet/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/discreet/basic.css 2012-01-18 17:57:12 UTC (rev 660)
+++ CometVisu/trunk/visu/designs/discreet/basic.css 2012-01-18 19:10:46 UTC (rev 661)
@@ -389,11 +389,6 @@
opacity: 0.80;
}
-.rss_inline>ul {
- padding-left:1em;
- margin: 0px;
-}
-
/* styles for the preview */
div#demo_1, div#demo_2 {
width: 100%;
Modified: CometVisu/trunk/visu/designs/discreet_sand/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/discreet_sand/basic.css 2012-01-18 17:57:12 UTC (rev 660)
+++ CometVisu/trunk/visu/designs/discreet_sand/basic.css 2012-01-18 19:10:46 UTC (rev 661)
@@ -375,10 +375,6 @@
color: #453420;
}
-.rss_inline>ul {
- padding-left:1em;
- margin: 0px;
-}
#diagramTooltip {
z-index: 1000;
color: black;
Modified: CometVisu/trunk/visu/designs/discreet_slim/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/discreet_slim/basic.css 2012-01-18 17:57:12 UTC (rev 660)
+++ CometVisu/trunk/visu/designs/discreet_slim/basic.css 2012-01-18 19:10:46 UTC (rev 661)
@@ -368,11 +368,6 @@
border-bottom: 1px solid;
}
-.rss_inline>ul {
- padding-left:1em;
- margin: 0px;
-}
-
.popup_background.error {
background: #800000;
border: #f00;
Modified: CometVisu/trunk/visu/designs/pure/basic.css
===================================================================
--- CometVisu/trunk/visu/designs/pure/basic.css 2012-01-18 17:57:12 UTC (rev 660)
+++ CometVisu/trunk/visu/designs/pure/basic.css 2012-01-18 19:10:46 UTC (rev 661)
@@ -363,19 +363,14 @@
}
#diagramTooltip {
- z-index: 1000;
- color: black;
- border: 1px solid #fdd;
- padding: 2px;
- background-color: #fee;
- opacity: 0.80;
+ z-index: 1000;
+ color: black;
+ border: 1px solid #fdd;
+ padding: 2px;
+ background-color: #fee;
+ opacity: 0.80;
}
-.rss_inline>ul {
- padding-left:1em;
- margin: 0px;
-}
-
/*****************************************************************************/
/* The definition of the flavours - overwrite the generic settings */
/*****************************************************************************/
Added: CometVisu/trunk/visu/plugins/rsslog/rsslog.css
===================================================================
--- CometVisu/trunk/visu/plugins/rsslog/rsslog.css (rev 0)
+++ CometVisu/trunk/visu/plugins/rsslog/rsslog.css 2012-01-18 19:10:46 UTC (rev 661)
@@ -0,0 +1,10 @@
+.rssBody, .rsslog_inline {
+ padding-left:0.15em;
+}
+
+.rssBody>ul, .rsslog_inline>ul {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+
+}
Property changes on: CometVisu/trunk/visu/plugins/rsslog/rsslog.css
___________________________________________________________________
Added: svn:executable
+ *
Modified: CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js 2012-01-18 17:57:12 UTC (rev 660)
+++ CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js 2012-01-18 19:10:46 UTC (rev 661)
@@ -26,6 +26,10 @@
* <rss src="/visu/plugins/rss/tagesschau-rss2.xml" refresh="300" header="true" date="true"></rss>
*/
+$.get("plugins/rsslog/rsslog.css", function(css) {
+ $("head").append("<style>"+css+"</style>");
+ });
+
VisuDesign_Custom.prototype.addCreator("rsslog", {
create: function( page, path ) {
var $p = $(page);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-18 17:57:18
|
Revision: 660
http://openautomation.svn.sourceforge.net/openautomation/?rev=660&view=rev
Author: j-n-k
Date: 2012-01-18 17:57:12 +0000 (Wed, 18 Jan 2012)
Log Message:
-----------
As discussed in the forum: split rss / rsslog. Use rss-plugin for external
(web) RSS feeds, use rsslog for local feeds (e.g. by rsslog.php)
Modified Paths:
--------------
CometVisu/trunk/visu/plugins/rss/structure_plugin.js
Added Paths:
-----------
CometVisu/trunk/visu/plugins/rsslog/
CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js
Modified: CometVisu/trunk/visu/plugins/rss/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/rss/structure_plugin.js 2012-01-15 21:53:11 UTC (rev 659)
+++ CometVisu/trunk/visu/plugins/rss/structure_plugin.js 2012-01-18 17:57:12 UTC (rev 660)
@@ -42,7 +42,7 @@
var ret_val = $('<div class="widget clearfix" />');
ret_val.addClass( 'rss' );
var label = '<div class="label">' + page.textContent + '</div>';
- var actor = $("<div class=\"actor\"><div class=\"rss_inline\" id=\"" + id + "\"><div class='ul'></div></div></div>");
+ var actor = $("<div class=\"actor\"><div class=\"rss_inline\" id=\"" + id + "\"></div>");
var rss = $("#" + id, actor);
if ($p.attr("width")) {
@@ -68,9 +68,7 @@
rss.data("linktarget", $p.attr("linktarget")) || "_new";
rss.data("link", $p.attr("link")) || true;
rss.data("title", $p.attr("title")) || true;
- rss.data("mode", $p.attr("mode") || "last");
- rss.data("itemoffset", 0);
-
+
refreshRSS(rss, {});
return ret_val;
@@ -90,7 +88,6 @@
linktarget: {type: "list", required: false, list: {"_new": "_new", "_self": "_self"}},
link: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
title: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
- mode: {type: "list", required: false, list: {'first': 'first', 'last': 'last', 'rollover':'rollover' }}
},
content: {type: "string", required: true}
});
@@ -103,8 +100,7 @@
var refresh = rss.data("refresh");
var limit = rss.data("limit");
//FIXME: eval really needed?? to convert string true/false to bool?
- if (src.match(/^http/)) {
- //use zrssfeed
+
jQuery(function() {
$(rss).rssfeed(src, {
limit: rss.data("limit"),
@@ -117,25 +113,7 @@
linktarget: rss.data("linktarget"),
});
});
- } else {
- jQuery(function() {
- $(rss).rssfeedlocal({
- src: src,
- limit: rss.data("limit"),
- header: eval(rss.data("header")),
- date: eval(rss.data("date")),
- content: rss.data("content"),
- snippet: eval(rss.data("snippet")),
- showerror: eval(rss.data("showerror")),
- ssl: eval(rss.data("ssl")),
- linktarget: rss.data("linktarget"),
- link: eval(rss.data("link")),
- title: eval(rss.data("title")),
- mode: rss.data("mode"),
- });
- });
- }
- if (typeof (refresh) != "undefined" && refresh) {
+ if (typeof (refresh) != "undefined" && refresh) {
// reload regularly
window.setTimeout(function(rss, data) {
refreshRSS(rss, data)
@@ -144,122 +122,3 @@
//rss.data("itemoffset") = itemoffset;
return false;
}
-
-(function($){
- jQuery.fn.extend({
- rssfeedlocal: function(options) {
-
- var defaults = {
- src: '',
- header: false,
- html: '{title}{date}{text}',
- wrapper: 'li',
- dataType: 'xml',
- limit: 10,
- linktarget: 'new',
- date: true,
- link: true,
- title: true
- }
- var options = jQuery.extend(defaults, options);
-
- return this.each(function() {
- var o = options;
- var c = jQuery(this);
-
- if (o.src == '') {
- console.log('rssfeedlocal: no src URL');
- return; // avoid the request
- }
-
- jQuery.ajax({
- url: o.src,
- type: 'GET',
- dataType: o.dataType,
- error: function (xhr, status, e) {
- console.log('C: #%s, Error: %s, Feed: %s', $(c).attr('id'), e, o.src);
- },
- success: function(feed){
- jQuery(c).html('');
-
-/* FIXME: Header gets added on each refresh, unsupported in rssfeedlocal for now..
- if (options.header)
- jQuery(c).parent().parent().prepend( '<p><div class="rssHeader">' +
- '<a href="' + jQuery(feed).find('link:first').text()
- +'" title="'+ jQuery(feed).find('description:first').text()
- +'" target="' + o.linktarget + '">'
- + jQuery(feed).find('title:first').text()
- +'</a>' + '</div></p>');
-*/
- // get height of one entry, calc max num of display items in widget
- var dummyDiv = $('<' + o.wrapper + ' class="rssRow odd" id="dummydiv">').append('l1<br />l2').appendTo($(c));
- var itemheight = dummyDiv.height();
- dummyDiv.remove();
- var displayheight = $(c).height();
- var displayrows = Math.floor(displayheight/itemheight);
-
- var items = $(feed).find('item');
- var itemnum = items.length;
- var itemoffset = 0; // correct if mode='first' or itemnum<=displayrows
-
-
- if (itemnum>displayrows) { // no need to check mode if items are less than rows
- if (o.mode=='last') {
- itemoffset=itemnum-displayrows;
- }
- if (o.mode=='rollover') {
- itemoffset = $(c).data("itemoffset") || 0;
- if (itemoffset==itemnum) {
- itemoffset = 0;
- }
- $(c).data("itemoffset", itemoffset+1);
- }
- }
-
- var row = 'odd';
-
- for (var i=itemoffset; i<itemoffset+displayrows; i++) {
- var idx = i;
- if (i>=itemnum) {
- idx = idx - itemnum;
- }
-
- var item = items[idx];
-
- var itemHtml;
- if (o.link)
- itemHtml = o.html.replace(/{title}/, '<a href="'
- + jQuery(item).find('guid').text()
- + '" target="' + o.linktarget + '">'
- + jQuery(item).find('title').text() + '</a><br />');
- else if (o.title)
- itemHtml = o.html.replace(/{title}/,
- jQuery(item).find('title').text() + '<br />');
- else
- itemHtml = o.html.replace(/{title}/, '');
-
- itemHtml = itemHtml.replace(/{text}/, jQuery(item).find('description').text());
- var entryDate = new Date($(item).find('pubDate').text());
- if (o.date && entryDate)
- itemHtml = itemHtml.replace(/{date}/, entryDate.toLocaleDateString() + ' ' + entryDate.toLocaleTimeString() + ' ');
- else
- itemHtml = itemHtml.replace(/{date}/, '');
-
- jQuery(c).append(jQuery('<' + o.wrapper + ' class="rssRow ' + row + '">').append(itemHtml));
-
- // Alternate row classes
- if (row == 'odd') {
- row = 'even';
- } else {
- row = 'odd';
- }
- };
- $('li').wrapAll("<ul>");
- }
- });
- });
- return this;
- }
- });
-})(jQuery);
-
Added: CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js (rev 0)
+++ CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js 2012-01-18 17:57:12 UTC (rev 660)
@@ -0,0 +1,261 @@
+/* structure_plugin.js (c) 2011 by Michael Markstaller [de...@wi...]
+ *
+ * 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, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+*/
+
+/**
+ * This plugins integrates zrssfeed to display RSS-Feeds via Google-API
+ * *and* a parser for local feeds using jQuery 1.5+ into CometVisu.
+ * rssfeedlocal is derived from simplerss and zrssfeed
+ * rssfeedlocal is mainly meant to be used with rsslog.php and plugins
+ * Examples
+ * <rss src="/visu/plugins/rss/rsslog.php" refresh="300" link="false" title="false"></rss>
+ * <rss src="http://www.tagesschau.de/xml/rss2" refresh="300">Test API</rss>
+ * <rss src="/visu/plugins/rss/tagesschau-rss2.xml" refresh="300" header="true" date="true"></rss>
+ */
+
+VisuDesign_Custom.prototype.addCreator("rsslog", {
+ create: function( page, path ) {
+ var $p = $(page);
+
+ function uniqid() {
+ var newDate = new Date;
+ return newDate.getTime();
+ }
+
+ var id = "rss_" + uniqid();
+
+ var ret_val = $('<div class="widget clearfix" style="height:205px"/>');
+ ret_val.addClass( 'rsslog' );
+ var label = '<div class="label" style="clear:both;">' + page.textContent + '</div>';
+ var actor = $('<div class="actor" style="clear:left;"><div class="rsslog_inline" id="' + id + '"></div></div>');
+ var rss = $("#" + id, actor);
+
+ if ($p.attr("width")) {
+ rss.css("width", $p.attr("width"));
+ }
+ if ($p.attr("height")) {
+ rss.css("height", $p.attr("height"));
+ }
+
+ ret_val.append(label).append(actor);
+
+ rss.data("id", id);
+ rss.data("src", $p.attr("src"));
+ rss.data("label", page.textContent);
+ rss.data("refresh", $p.attr("refresh"));
+ rss.data("limit", $p.attr("limit")) || 10;
+ rss.data("header", $p.attr("header")) || true;
+ rss.data("date", $p.attr("date")) || true;
+ rss.data("content", $p.attr("content")) || true;
+ rss.data("snippet", $p.attr("snippet")) || true;
+ rss.data("showerror", $p.attr("showerror")) || true;
+ rss.data("ssl", $p.attr("ssl")) || false;
+ rss.data("linktarget", $p.attr("linktarget")) || "_new";
+ rss.data("link", $p.attr("link")) || true;
+ rss.data("title", $p.attr("title")) || true;
+ rss.data("mode", $p.attr("mode") || "last");
+ rss.data("itemoffset", 0);
+ rss.data("timeformat", $p.attr("timeformat"));
+
+ refreshRSSlog(rss, {});
+
+ return ret_val;
+ },
+ attributes: {
+ src: {type: "string", required: true},
+ width: {type: "string", required: false},
+ height: {type: "string", required: false},
+ refresh: {type: "numeric", required: false},
+ limit: {type: "numeric", required: false},
+ header: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
+ date: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
+ content: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
+ snippet: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
+ showerror: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
+ ssl: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
+ linktarget: {type: "list", required: false, list: {"_new": "_new", "_self": "_self"}},
+ link: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
+ title: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
+ mode: {type: "list", required: false, list: {'first': 'first', 'last': 'last', 'rollover':'rollover' }}
+ },
+ content: {type: "string", required: true}
+});
+
+function refreshRSSlog(rss, data) {
+ var rss = $(rss);
+
+ var src = rss.data("src");
+ var label = rss.data("label");
+ var refresh = rss.data("refresh");
+ var limit = rss.data("limit");
+ //FIXME: eval really needed?? to convert string true/false to bool?
+
+ jQuery(function() {
+ $(rss).rssfeedlocal({
+ src: src,
+ limit: rss.data("limit"),
+ header: eval(rss.data("header")),
+ date: eval(rss.data("date")),
+ content: rss.data("content"),
+ snippet: eval(rss.data("snippet")),
+ showerror: eval(rss.data("showerror")),
+ ssl: eval(rss.data("ssl")),
+ linktarget: rss.data("linktarget"),
+ link: eval(rss.data("link")),
+ title: eval(rss.data("title")),
+ mode: rss.data("mode"),
+ timeformat: rss.data("timeformat"),
+ });
+ });
+
+ if (typeof (refresh) != "undefined" && refresh) {
+ // reload regularly
+ window.setTimeout(function(rss, data) {
+ refreshRSSlog(rss, data)
+ }, refresh * 1000, rss, data);
+ }
+ //rss.data("itemoffset") = itemoffset;
+ return false;
+}
+
+(function($){
+ jQuery.fn.extend({
+ rssfeedlocal: function(options) {
+
+ var defaults = {
+ src: '',
+ header: false,
+ html: '{date}: {text}',
+ wrapper: 'li',
+ dataType: 'xml',
+ limit: 10,
+ linktarget: 'new',
+ date: true,
+ link: true,
+ title: true
+ }
+ var options = jQuery.extend(defaults, options);
+
+ return this.each(function() {
+ var o = options;
+ var c = jQuery(this);
+
+ if (o.src == '') {
+ console.log('rssfeedlocal: no src URL');
+ return; // avoid the request
+ }
+
+ jQuery.ajax({
+ url: o.src,
+ type: 'GET',
+ dataType: o.dataType,
+ error: function (xhr, status, e) {
+ console.log('C: #%s, Error: %s, Feed: %s', $(c).attr('id'), e, o.src);
+ },
+ success: function(feed){
+ jQuery(c).html('');
+
+/* FIXME: Header gets added on each refresh, unsupported in rssfeedlocal for now..
+ if (options.header)
+ jQuery(c).parent().parent().prepend( '<p><div class="rssHeader">' +
+ '<a href="' + jQuery(feed).find('link:first').text()
+ +'" title="'+ jQuery(feed).find('description:first').text()
+ +'" target="' + o.linktarget + '">'
+ + jQuery(feed).find('title:first').text()
+ +'</a>' + '</div></p>');
+*/
+ // get height of one entry, calc max num of display items in widget
+ var dummyDiv = $('<' + o.wrapper + ' class="rssRow odd" id="dummydiv">').append('<li />').appendTo($(c));
+ var itemheight = dummyDiv.height();
+ dummyDiv.remove();
+ var widget=$(c).parent().parent(); // get the parent widget
+ var displayheight = widget.height()-$('.label', widget).height(); // max. height of actor is widget-label(if exists)
+ var displayrows = Math.floor(displayheight/itemheight);
+
+ var items = $(feed).find('item');
+ var itemnum = items.length;
+ var itemoffset = 0; // correct if mode='first' or itemnum<=displayrows
+
+
+ if (itemnum>displayrows) { // no need to check mode if items are less than rows
+ if (o.mode=='last') {
+ itemoffset=itemnum-displayrows;
+ }
+ if (o.mode=='rollover') {
+ itemoffset = $(c).data("itemoffset") || 0;
+ if (itemoffset==itemnum) {
+ itemoffset = 0;
+ }
+ $(c).data("itemoffset", itemoffset+1);
+ }
+ }
+
+ var row = 'odd';
+ var last = itemoffset+displayrows;
+ if (last>itemnum) {
+ last=itemnum;
+ }
+ for (var i=itemoffset; i<last; i++) {
+ var idx = i;
+ if (i>=itemnum) {
+ idx = idx - itemnum;
+ }
+
+ var item = items[idx];
+
+ var itemHtml=o.html;
+ /*if (o.link)
+ itemHtml = o.html.replace(/{title}/, '<a href="'
+ + jQuery(item).find('guid').text()
+ + '" target="' + o.linktarget + '">'
+ + jQuery(item).find('title').text() + '</a><br />');
+ else if (o.title)
+ itemHtml = o.html.replace(/{title}/,
+ jQuery(item).find('title').text() + '<br />');
+ else
+ itemHtml = o.html.replace(/{title}/, ''); */
+
+ itemHtml = itemHtml.replace(/{text}/, jQuery(item).find('description').text());
+ var entryDate = new Date($(item).find('pubDate').text());
+ if (o.date && entryDate) {
+ if (o.timeformat) {
+ itemHtml = itemHtml.replace(/{date}/, entryDate.toLocaleFormat(o.timeformat) + ' ');
+ } else {
+ itemHtml = itemHtml.replace(/{date}/, entryDate.toLocaleDateString() + ' ' + entryDate.toLocaleTimeString() + ' ');
+ }
+ } else {
+ itemHtml = itemHtml.replace(/{date}/, '');
+ }
+
+ jQuery(c).append(jQuery('<' + o.wrapper + ' class="rssRow ' + row + '">').append(itemHtml));
+
+ // Alternate row classes
+ if (row == 'odd') {
+ row = 'even';
+ } else {
+ row = 'odd';
+ }
+ };
+
+ $('li', c).wrapAll("<ul>");
+ }
+ });
+ });
+ return this;
+ }
+ });
+})(jQuery);
+
Property changes on: CometVisu/trunk/visu/plugins/rsslog/structure_plugin.js
___________________________________________________________________
Added: svn:executable
+ *
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ma...@us...> - 2012-01-15 21:53:18
|
Revision: 659
http://openautomation.svn.sourceforge.net/openautomation/?rev=659&view=rev
Author: mayerch
Date: 2012-01-15 21:53:11 +0000 (Sun, 15 Jan 2012)
Log Message:
-----------
Move to the rooms by clicking on them - and move to a overview by clicking outside
Modified Paths:
--------------
JSFloorPlan/trunk/src/jsfloorplan.js
JSFloorPlan/trunk/src/jsfloorplan_example_helper.js
Modified: JSFloorPlan/trunk/src/jsfloorplan.js
===================================================================
--- JSFloorPlan/trunk/src/jsfloorplan.js 2012-01-15 20:47:26 UTC (rev 658)
+++ JSFloorPlan/trunk/src/jsfloorplan.js 2012-01-15 21:53:11 UTC (rev 659)
@@ -685,11 +685,12 @@
JSFloorPlan3D.buildingProperties.x_center = (JSFloorPlan3D.buildingProperties.x_max - JSFloorPlan3D.buildingProperties.x_min) / 2;
JSFloorPlan3D.buildingProperties.y_center = (JSFloorPlan3D.buildingProperties.y_max - JSFloorPlan3D.buildingProperties.y_min) / 2;
+ JSFloorPlan3D.buildingProperties.size = Math.max( JSFloorPlan3D.buildingProperties.x_center, JSFloorPlan3D.buildingProperties.y_center );
imageCenter.x = JSFloorPlan3D.buildingProperties.x_center;
imageCenter.y = JSFloorPlan3D.buildingProperties.y_center;
imageCenter.z = JSFloorPlan3D.buildingProperties.z_max / 2;
- JSFloorPlan3D.show3D( 35*Math.PI/180, 30*Math.PI/180 );
+ JSFloorPlan3D.show3D( 35*Math.PI/180, 30*Math.PI/180, 10, new THREE.Vector3( imageCenter.x, imageCenter.y, imageCenter.z ) );
//}
};
@@ -842,6 +843,10 @@
var room = new Object;
room.name = node.getAttribute('name');
room.zones = new Array;
+ room.center = { x: 0, y: 0 };
+ var centerCount = 0;
+ var min = {};
+ var max = {};
for( var j=0; j < node.childNodes.length; j++ )
{
@@ -857,10 +862,25 @@
{
var corner = zone.childNodes[k];
if (corner.nodeType != ELEMENT_NODE) continue;
- thiszone.corners.push( corner.getAttribute('nodeid') );
+ var id = corner.getAttribute('nodeid')
+ thiszone.corners.push( id );
+ var x = floorNodes[ id ].x;
+ var y = floorNodes[ id ].y;
+ room.center.x += x;
+ room.center.y += y;
+ if( x < min.x || (!min.x) ) min.x = x;
+ if( y < min.y || (!min.y) ) min.y = y;
+ if( x > max.x || (!max.x) ) max.x = x;
+ if( y > max.y || (!max.y) ) max.y = y;
+ centerCount++;
}
room.zones.push( thiszone );
}
+ room.center.x /= centerCount;
+ room.center.y /= centerCount;
+ var min_dist = Math.sqrt( (room.center.x - min.x)*(room.center.x - min.x) + (room.center.y - min.y)*(room.center.y - min.y) );
+ var max_dist = Math.sqrt( (room.center.x - max.x)*(room.center.x - max.x) + (room.center.y - max.y)*(room.center.y - max.y) );
+ room.size = min_dist < max_dist ? max_dist : min_dist;
rooms[floor].push( room );
}
}
@@ -906,18 +926,18 @@
$container.append(renderer.domElement);
// Init after the scene was set up
- selectChange( 'showNodes' );
- selectChange( 'showWallLines' );
- selectChange( 'showFloor' );
+ selectChange( 'showNodes' , 0, true );
+ selectChange( 'showWallLines' , 0, true );
+ selectChange( 'showFloor' , 0, true );
}
- function setupCamera( azimut, elevation, height, target )
+ function setupCamera( azimut, elevation, distance, target )
{
var cx = Math.sin(azimut) * Math.cos(elevation);
var cy = Math.cos(azimut) * Math.cos(elevation);
var cz = Math.sin(elevation);
camera.up = new THREE.Vector3( -Math.sin(azimut) * Math.sin(elevation), -Math.cos(azimut) * Math.sin(elevation), Math.cos(elevation) );
- camera.position = new THREE.Vector3( cx*dist + JSFloorPlan3D.buildingProperties.x_center, cy*dist + JSFloorPlan3D.buildingProperties.y_center, dist * cz + height );
+ camera.position = new THREE.Vector3( cx*distance + target.x, cy*distance + target.y, distance * cz + target.z );
camera.lookAt( target );
pointLight.position = camera.position;
}
@@ -926,30 +946,31 @@
* Show the floor plan by updating the relevant view parameters and calling
* the render() method
* @method show3D
- * @param {Integer} azmiut The direction of the camera. 0° = North, 90° =
- * East.
- * @param {Integer} elevation The amount of tilting the view. 0° = no tilt,
- * 90° = bird eyes view
+ * @param {Integer} azmiut The direction of the camera. 0° = North,
+ * 90° = East.
+ * @param {Integer} elevation The amount of tilting the view. 0° = no tilt,
+ * 90° = bird eyes view
+ * @param {Number} distnce Distance between camera and <code>target</code>
+ * @param {THREE.Vector3} target The point to look at
*/
- JSFloorPlan3D.show3D = function( azimut, elevation )
+ JSFloorPlan3D.show3D = function( azimut, elevation, distance, target )
{
+ showStates.currentAzimut = azimut;
+ showStates.currentElevation = elevation;
+ showStates.currentDistance = distance;
+ showStates.currentTarget = target.clone(); //JSFloorPlan3D.buildingProperties.x_center;
+
if( noSetup ) setup3D();
// set up camera
- var heightOfGround = JSFloorPlan3D.buildingProperties.floor[ showStates.showFloor ].heightOfGround;
- var target = new THREE.Vector3( JSFloorPlan3D.buildingProperties.x_center, JSFloorPlan3D.buildingProperties.y_center, heightOfGround );
- setupCamera( azimut, elevation, heightOfGround, target );
+ setupCamera( azimut, elevation, distance, target );
- showStates.currentAzimut = azimut;
- showStates.currentElevation = elevation;
- showStates.currentHeight = heightOfGround;
-
// set up sun
var sx = Math.sin(lightAzimut) * Math.cos(lightElevation);
var sy = Math.cos(lightAzimut) * Math.cos(lightElevation);
var sz = Math.sin(lightElevation);
sunLight.target.position = target;
- sunLight.position = new THREE.Vector3( sx * lightDistance, sy * lightDistance, sz * lightDistance + heightOfGround);
+ sunLight.position = new THREE.Vector3( sx * lightDistance, sy * lightDistance, sz * lightDistance + target.z );
sunLight.intensity = lightStrength / 100.0;
sunLightViewLine.geometry.vertices[0].position = sunLight.position;
sunLightViewLine.geometry.vertices[1].position = sunLight.target.position;
@@ -1001,65 +1022,93 @@
/**
* Move the displayed part of the floor plan to a new part
* @method moveTo
- * @param {Integer} floor The number of the floor to show
- * @param {Integer} azmiut The direction of the camera. 0° = North, 90° =
- * East.
- * @param {Integer} elevation The amount of tilting the view. 0° = no tilt,
- * 90° = bird eyes view
- * @param {Function} delayedFn (optional) Function to call after animation is
- * finished
+ * @param {Integer} floor The number of the floor to show
+ * @param {Integer} azmiut The direction of the camera. 0° = North,
+ * 90° = East.
+ * @param {Integer} elevation The amount of tilting the view. 0° = no tilt,
+ * 90° = bird eyes view
+ * @param {Number} distance The distance of the camera
+ * @param {THREE.Vector3} target The point to look at (only <code>x</code>
+ * and <code>y</code> are used the <code>z</code>
+ * is taken from the parameter <code>floor</code>
+ * @param {Function} delayedFn (optional) Function to call after animation is
+ * finished
*/
- JSFloorPlan3D.moveTo = function( floor, azimut, elevation, delayedFn )
+ JSFloorPlan3D.moveTo = function( floor, azimut, elevation, distance, target, delayedFn )
{
if( noSetup ) setup3D();
- var height = JSFloorPlan3D.buildingProperties.floor[ floor ].heightOfGround;
-
// speed of the changing
var steps = 100;
- var rate = { azimut: 0.0, elevation: 0.0, height: 0.0 };
+ var rate = { azimut: 0.0, elevation: 0.0, distance: 0.0, target: new THREE.Vector3 };
function calcRate()
{
- rate = {
- azimut: ( azimut - showStates.currentAzimut ) / steps,
- elevation: ( elevation - showStates.currentElevation ) / steps,
- height: ( height - showStates.currentHeight ) / steps
- };
+ rate.azimut = ( azimut - showStates.currentAzimut ) / steps;
+ rate.elevation = ( elevation - showStates.currentElevation ) / steps;
+ rate.distance = ( distance - showStates.currentDistance ) / steps;
+ rate.target.sub( target, showStates.currentTarget );
+ rate.target.multiplyScalar( 1.0 / steps );
+ return (
+ ( Math.abs( rate.azimut * steps ) < 1e-5 ) &&
+ ( Math.abs( rate.elevation * steps ) < 1e-5 ) &&
+ ( Math.abs( rate.distance * steps ) < 1e-4 ) &&
+ ( Math.abs( rate.target.x * steps ) < 1e-4 ) &&
+ ( Math.abs( rate.target.y * steps ) < 1e-4 ) &&
+ ( Math.abs( rate.target.z * steps ) < 1e-4 )
+ );
}
function doMove()
{
JSFloorPlan3D.inAnimation = true;
var done = true;
- if( Math.abs( azimut - showStates.currentAzimut ) > Math.abs( rate.azimut ) )
+ if( (showStates.currentAzimut + rate.azimut) * rate.azimut < azimut * rate.azimut )
{
- if( rate.azimut == 0.0 ) calcRate();
showStates.currentAzimut += rate.azimut;
- if( Math.abs( azimut - showStates.currentAzimut ) < 1e-5 ) // clamp if close enough
- showStates.currentAzimut = azimut;
done = false;
+ } else {
+ showStates.currentAzimut = azimut;
}
- if( Math.abs( elevation - showStates.currenteElevation ) > Math.abs( rate.elevation ) )
+ if( (showStates.currentElevation + rate.elevation) * rate.elevation < elevation * rate.elevation )
{
- if( rate.elevation == 0.0 ) calcRate();
showStates.currentElevation += rate.elevation;
- if( Math.abs( elevation - showStates.currenteElevation ) < 1e-5 ) // clamp if close enough
- showStates.currenteElevation = elevation;
done = false;
+ } else {
+ showStates.currenteElevation = elevation;
}
- if( Math.abs( height - showStates.currentHeight ) > Math.abs( rate.height ) )
+ if( (showStates.currentDistance + rate.distance) * rate.distance < distance * rate.distance )
{
- if( rate.height == 0.0 ) calcRate();
- showStates.currentHeight += rate.height;
- if( Math.abs( height - showStates.currentHeight ) < 1e-4 ) // clamp if close enough
- showStates.currentHeight = height;
+ showStates.currentDistance += rate.distance;
done = false;
+ } else {
+ showStates.currentDistance = distance;
}
+ if( (showStates.currentTarget.x + rate.target.x) * rate.target.x < target.x * rate.target.x )
+ {
+ showStates.currentTarget.x += rate.target.x;
+ done = false;
+ } else {
+ showStates.currentTarget.x = target.x;
+ }
+ if( (showStates.currentTarget.y + rate.target.y) * rate.target.y < target.y * rate.target.y )
+ {
+ showStates.currentTarget.y += rate.target.y;
+ done = false;
+ } else {
+ showStates.currentTarget.y = target.y;
+ }
+ if( (showStates.currentTarget.z + rate.target.z) * rate.target.z < target.z * rate.target.z )
+ {
+ showStates.currentTarget.z += rate.target.z;
+ done = false;
+ } else {
+ showStates.currentTarget.z = target.z;
+ }
- var target = new THREE.Vector3( JSFloorPlan3D.buildingProperties.x_center, JSFloorPlan3D.buildingProperties.y_center, showStates.currentHeight );
- setupCamera( showStates.currentAzimut, showStates.currentElevation, showStates.currentHeight, target );
+ setupCamera( showStates.currentAzimut, showStates.currentElevation, showStates.currentDistance, showStates.currentTarget );
render();
+
if( !done )
window.requestAnimationFrame( doMove );
else {
@@ -1069,9 +1118,8 @@
}
}
- if( JSFloorPlan3D.inAnimation )
- calcRate();
- else
+ calcRate();
+ if( !JSFloorPlan3D.inAnimation )
doMove();
}
@@ -1178,6 +1226,7 @@
var thisFloor = JSFloorPlan3D.buildingProperties.floor[showStates.showFloor];
var height = thisFloor.heightOfGround + thisFloor.height;
var intersec = JSFloorPlan3D.sceen2building( event.offsetX, event.offsetY, height );
- JSFloorPlan3D.selectRoom( intersec, showStates.showFloor );
+ event.room = JSFloorPlan3D.selectRoom( intersec, showStates.showFloor );
+ if( event.data.callback ) event.data.callback( event );
}
};//());
\ No newline at end of file
Modified: JSFloorPlan/trunk/src/jsfloorplan_example_helper.js
===================================================================
--- JSFloorPlan/trunk/src/jsfloorplan_example_helper.js 2012-01-15 20:47:26 UTC (rev 658)
+++ JSFloorPlan/trunk/src/jsfloorplan_example_helper.js 2012-01-15 21:53:11 UTC (rev 659)
@@ -30,7 +30,12 @@
j = new JSFLOORPLAN3D();
function loadFloorplan()
{
- $.get('floorplan01.xml', j.parseXMLFloorPlan, 'xml');
+ $.ajax({
+ url: 'floorplan01.xml',
+ success: j.parseXMLFloorPlan,
+ dataType: 'xml',
+ async: false
+ });
}
@@ -195,7 +200,7 @@
function animate() {
requestAnimationFrame( animate );
//render();
- j.show3D( roll, tilt );
+ j.show3D( roll, tilt, dist, target );
//stats.update();
}
@@ -206,10 +211,27 @@
//}
+function handleMouseClickEvent( event )
+{
+ if( event.room.room )
+ {
+ var room = event.room.room;
+ var zone = event.room.zone;
+ target.x = room.center.x;
+ target.y = room.center.y;
+ dist = room.size / Math.tan( VIEW_ANGLE * Math.PI/180 / 2 );
+ } else {
+ target.x = j.buildingProperties.x_center;
+ target.y = j.buildingProperties.y_center;
+ dist = j.buildingProperties.size / Math.tan( VIEW_ANGLE * Math.PI/180 / 2 );
+ }
+ updateSlider();
+ j.moveTo( showStates['showFloor'], roll, tilt, dist, target );
+}
/////////////////////////////////////////////////////////////////////////////
$(function() {
three_init();
- $('#top_level').click( 'foo', j.translateMouseEvent );
+ $('#top_level').css('border','1px solid black').click( {callback:handleMouseClickEvent}, j.translateMouseEvent );
});
/////////////////////////////////////////////////////////////////////////////
// setup script here:
@@ -235,6 +257,7 @@
var tilt = 30*Math.PI/180;
var tilt_dir = 1;
var dist = 10;
+var target = new THREE.Vector3();
//var plan = createSVGElement( "g" );
var f_avr = 0;
var m_avr = 0;
@@ -253,7 +276,7 @@
showStates[ e.target.name ] = e.target.checked;
if( selectChange( e.target.name, old ) )
{
- j.show3D( roll, tilt );
+ j.show3D( roll, tilt, dist, target );
}
}).each(function(){
showStates[ this.name ] = this.checked; // init
@@ -263,17 +286,20 @@
showStates[ e.target.name ] = e.target.value;
if( selectChange( e.target.name, old ) )
{
- j.show3D( roll, tilt );
+ j.show3D( roll, tilt, dist, target );
}
}).each(function(){
showStates[ this.name ] = this.value; // init
});
loadFloorplan();
+ target.x = j.buildingProperties.x_center;
+ target.y = j.buildingProperties.y_center;
createSlider();
+ render();
}
-function selectChange( name, old )
+function selectChange( name, old, onlyInit )
{
switch( name )
{
@@ -295,6 +321,17 @@
case 'showFloor':
//showStates['showFloor'] = Number( showStates['showFloor'] );
+ if( onlyInit )
+ {
+ $( j.buildingProperties.floor ).each( function( number ){
+ THREE.SceneUtils.traverseHierarchy( this.wallGroup, function( object ) {
+ object.visible = ( showStates['showFloor'] == number );
+ });
+ });
+ target.z = j.buildingProperties.floor[ showStates['showFloor'] ].heightOfGround +
+ j.buildingProperties.floor[ showStates['showFloor'] ].height / 2;
+ return false;
+ }
var min = old < showStates['showFloor'] ? old : showStates['showFloor'];
var max = old > showStates['showFloor'] ? old : showStates['showFloor'];
$( j.buildingProperties.floor ).each( function( number ){
@@ -302,13 +339,15 @@
object.visible = ( (min <= number) && (number <= max) );
});
});
- j.moveTo( showStates['showFloor'], roll, tilt, function(){
+ target.z = j.buildingProperties.floor[ showStates['showFloor'] ].heightOfGround +
+ j.buildingProperties.floor[ showStates['showFloor'] ].height / 2;
+ j.moveTo( showStates['showFloor'], roll, tilt, dist, target, function(){
$( j.buildingProperties.floor ).each( function( number ){
THREE.SceneUtils.traverseHierarchy( this.wallGroup, function( object ) {
object.visible = ( showStates['showFloor'] == number );
});
});
- j.show3D( roll, tilt );
+ j.show3D( roll, tilt, dist, target );
});
return false;
break;
@@ -348,7 +387,7 @@
if( tilt < 0 )
tilt_dir = 1;
- j.show3D( roll, tilt );
+ j.show3D( roll, tilt, dist, target );
//////
var middle = new Date();
@@ -429,7 +468,7 @@
if( redraw )
{
- j.show3D( roll, tilt, plan );
+ j.show3D( roll, tilt, dist, plan );
}
}
*/
@@ -453,7 +492,7 @@
if( redraw )
{
- j.show3D( roll, tilt, plan );
+ j.show3D( roll, tilt, dist, plan );
}
}
*/
@@ -494,49 +533,49 @@
{
if( globalInUpdateSlider ) return true;
roll = ui.value * Math.PI / 180;
- j.show3D( roll, tilt );
+ j.show3D( roll, tilt, dist, target );
}
function tiltChange( event, ui )
{
if( globalInUpdateSlider ) return true;
tilt = ui.value * Math.PI / 180;
- j.show3D( roll, tilt );
+ j.show3D( roll, tilt, dist, target );
}
function distChange( event, ui )
{
if( globalInUpdateSlider ) return true;
dist = ui.value;
- j.show3D( roll, tilt );
+ j.show3D( roll, tilt, dist, target );
}
function lightDirectionChange( event, ui )
{
if( globalInUpdateSlider ) return true;
lightAzimut = ui.value * Math.PI / 180;
- j.show3D( roll, tilt );
+ j.show3D( roll, tilt, dist, target );
}
function lightHeightChange( event, ui )
{
if( globalInUpdateSlider ) return true;
lightElevation = ui.value * Math.PI / 180;
- j.show3D( roll, tilt );
+ j.show3D( roll, tilt, dist, target );
}
function lightStrengthChange( event, ui )
{
if( globalInUpdateSlider ) return true;
lightStrength = ui.value;
- j.show3D( roll, tilt );
+ j.show3D( roll, tilt, dist, target );
}
function lightDistanceChange( event, ui )
{
if( globalInUpdateSlider ) return true;
lightDistance = ui.value;
- j.show3D( roll, tilt );
+ j.show3D( roll, tilt, dist, target );
}
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-15 20:47:32
|
Revision: 658
http://openautomation.svn.sourceforge.net/openautomation/?rev=658&view=rev
Author: j-n-k
Date: 2012-01-15 20:47:26 +0000 (Sun, 15 Jan 2012)
Log Message:
-----------
Added "mode"-attribute to rss-plugin, mode=first,last,rollover last=default
Modified Paths:
--------------
CometVisu/trunk/visu/plugins/rss/structure_plugin.js
Modified: CometVisu/trunk/visu/plugins/rss/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/rss/structure_plugin.js 2012-01-15 20:46:47 UTC (rev 657)
+++ CometVisu/trunk/visu/plugins/rss/structure_plugin.js 2012-01-15 20:47:26 UTC (rev 658)
@@ -68,6 +68,8 @@
rss.data("linktarget", $p.attr("linktarget")) || "_new";
rss.data("link", $p.attr("link")) || true;
rss.data("title", $p.attr("title")) || true;
+ rss.data("mode", $p.attr("mode") || "last");
+ rss.data("itemoffset", 0);
refreshRSS(rss, {});
@@ -87,7 +89,8 @@
ssl: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
linktarget: {type: "list", required: false, list: {"_new": "_new", "_self": "_self"}},
link: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
- title: {type: "list", required: false, list: {'true': "yes", 'false': "no"}}
+ title: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
+ mode: {type: "list", required: false, list: {'first': 'first', 'last': 'last', 'rollover':'rollover' }}
},
content: {type: "string", required: true}
});
@@ -127,17 +130,18 @@
ssl: eval(rss.data("ssl")),
linktarget: rss.data("linktarget"),
link: eval(rss.data("link")),
- title: eval(rss.data("title"))
+ title: eval(rss.data("title")),
+ mode: rss.data("mode"),
});
});
}
if (typeof (refresh) != "undefined" && refresh) {
- // reload regularly
- window.setTimeout(function(rss, data) {
- refreshRSS(rss, data)
- }, refresh * 1000, rss, data);
- }
-
+ // reload regularly
+ window.setTimeout(function(rss, data) {
+ refreshRSS(rss, data)
+ }, refresh * 1000, rss, data);
+ }
+ //rss.data("itemoffset") = itemoffset;
return false;
}
@@ -187,23 +191,55 @@
+ jQuery(feed).find('title:first').text()
+'</a>' + '</div></p>');
*/
+ // get height of one entry, calc max num of display items in widget
+ var dummyDiv = $('<' + o.wrapper + ' class="rssRow odd" id="dummydiv">').append('l1<br />l2').appendTo($(c));
+ var itemheight = dummyDiv.height();
+ dummyDiv.remove();
+ var displayheight = $(c).height();
+ var displayrows = Math.floor(displayheight/itemheight);
+
+ var items = $(feed).find('item');
+ var itemnum = items.length;
+ var itemoffset = 0; // correct if mode='first' or itemnum<=displayrows
+
+
+ if (itemnum>displayrows) { // no need to check mode if items are less than rows
+ if (o.mode=='last') {
+ itemoffset=itemnum-displayrows;
+ }
+ if (o.mode=='rollover') {
+ itemoffset = $(c).data("itemoffset") || 0;
+ if (itemoffset==itemnum) {
+ itemoffset = 0;
+ }
+ $(c).data("itemoffset", itemoffset+1);
+ }
+ }
+
var row = 'odd';
- jQuery(feed).find('item').each(function(i) {
+
+ for (var i=itemoffset; i<itemoffset+displayrows; i++) {
+ var idx = i;
+ if (i>=itemnum) {
+ idx = idx - itemnum;
+ }
+ var item = items[idx];
+
var itemHtml;
if (o.link)
itemHtml = o.html.replace(/{title}/, '<a href="'
- + jQuery(this).find('guid').text()
+ + jQuery(item).find('guid').text()
+ '" target="' + o.linktarget + '">'
- + jQuery(this).find('title').text() + '</a><br />');
+ + jQuery(item).find('title').text() + '</a><br />');
else if (o.title)
itemHtml = o.html.replace(/{title}/,
- jQuery(this).find('title').text() + '<br />');
+ jQuery(item).find('title').text() + '<br />');
else
itemHtml = o.html.replace(/{title}/, '');
- itemHtml = itemHtml.replace(/{text}/, jQuery(this).find('description').text());
- var entryDate = new Date($(this).find('pubDate').text());
+ itemHtml = itemHtml.replace(/{text}/, jQuery(item).find('description').text());
+ var entryDate = new Date($(item).find('pubDate').text());
if (o.date && entryDate)
itemHtml = itemHtml.replace(/{date}/, entryDate.toLocaleDateString() + ' ' + entryDate.toLocaleTimeString() + ' ');
else
@@ -217,11 +253,7 @@
} else {
row = 'odd';
}
- if (i == o.limit-1) {
- return false;
- }
-
- });
+ };
$('li').wrapAll("<ul>");
}
});
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ma...@us...> - 2012-01-15 20:46:53
|
Revision: 657
http://openautomation.svn.sourceforge.net/openautomation/?rev=657&view=rev
Author: makki1
Date: 2012-01-15 20:46:47 +0000 (Sun, 15 Jan 2012)
Log Message:
-----------
rsslog: missing commit of sort-order
Modified Paths:
--------------
tools/rsslog/rsslog.php
Modified: tools/rsslog/rsslog.php
===================================================================
--- tools/rsslog/rsslog.php 2012-01-15 20:13:17 UTC (rev 656)
+++ tools/rsslog/rsslog.php 2012-01-15 20:46:47 UTC (rev 657)
@@ -196,7 +196,8 @@
{
// $q = "SELECT content, strftime('%s', t, 'localtime') AS t FROM Logs";
$q = "SELECT title, content, tags, strftime('%s', t) AS t FROM Logs " .
- "WHERE tags LIKE '%" . sqlite_escape_string($filter) . "%'";
+ "WHERE tags LIKE '%" . sqlite_escape_string($filter) . "%' " .
+ "ORDER by t DESC";
return sqlite_query( $db, $q, SQLITE_ASSOC );
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <j-...@us...> - 2012-01-15 20:13:23
|
Revision: 656
http://openautomation.svn.sourceforge.net/openautomation/?rev=656&view=rev
Author: j-n-k
Date: 2012-01-15 20:13:17 +0000 (Sun, 15 Jan 2012)
Log Message:
-----------
Fix errors in scheme
Modified Paths:
--------------
CometVisu/trunk/visu/visu_config.xsd
Modified: CometVisu/trunk/visu/visu_config.xsd
===================================================================
--- CometVisu/trunk/visu/visu_config.xsd 2012-01-15 17:36:05 UTC (rev 655)
+++ CometVisu/trunk/visu/visu_config.xsd 2012-01-15 20:13:17 UTC (rev 656)
@@ -386,7 +386,7 @@
<xsd:complexType name="diagram_inline">
<xsd:choice maxOccurs="unbounded" minOccurs="1">
- <xsd:element name="label" type="xsd:string" maxOccurs="1" />
+ <xsd:element name="label" type="xsd:string" maxOccurs="1" />
</xsd:choice>
<xsd:attribute name="rrd" type="xsd:string" use="required" />
<xsd:attribute name="unit" type="xsd:string" use="optional" />
@@ -423,7 +423,6 @@
<xsd:attribute ref="format" use="optional" />
<xsd:attribute ref="styling" use="optional" />
<xsd:attribute ref="mapping" use="optional" />
- <xsd:element name="label" type="xsd:string" maxOccurs="1" />
<xsd:attribute name="rrd" type="xsd:string" use="required" />
<xsd:attribute name="unit" type="xsd:string" use="optional" />
<xsd:attribute name="series" type="xsd:string" use="optional" />
@@ -445,7 +444,6 @@
<xsd:attribute name="city" type="xsd:string" use="required" />
<xsd:attribute name="lang" type="xsd:string" use="optional" />
<xsd:attribute name="image_url" type="xsd:string" use="optional" />
- <xsd:attribute name="refresh" type="xsd:integer" use="optional" />
<xsd:attribute name="current" type="xsd:string" use="optional" />
<xsd:attribute name="forecast" type="xsd:string" use="optional" />
</xsd:complexType>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|