|
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.
|