|
From: <ma...@us...> - 2012-01-08 19:36:02
|
Revision: 647
http://openautomation.svn.sourceforge.net/openautomation/?rev=647&view=rev
Author: makki1
Date: 2012-01-08 19:35:55 +0000 (Sun, 08 Jan 2012)
Log Message:
-----------
CV-Plugin RSS: add local options to display title/links, fixes
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-08 19:33:07 UTC (rev 646)
+++ CometVisu/trunk/visu/plugins/rss/structure_plugin.js 2012-01-08 19:35:55 UTC (rev 647)
@@ -19,6 +19,11 @@
* 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>
*/
$("body").append("<script type=\"text/javascript\" src=\"plugins/rss/zrssfeed/jquery.zrssfeed.js\"></script>");
@@ -62,6 +67,7 @@
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;
refreshRSS(rss, {});
@@ -80,7 +86,8 @@
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"}}
+ link: {type: "list", required: false, list: {'true': "yes", 'false': "no"}},
+ title: {type: "list", required: false, list: {'true': "yes", 'false': "no"}}
},
content: {type: "string", required: true}
});
@@ -119,7 +126,8 @@
showerror: eval(rss.data("showerror")),
ssl: eval(rss.data("ssl")),
linktarget: rss.data("linktarget"),
- link: eval(rss.data("link"))
+ link: eval(rss.data("link")),
+ title: eval(rss.data("title"))
});
});
}
@@ -146,9 +154,11 @@
limit: 10,
linktarget: 'new',
date: true,
- link: true
+ link: true,
+ title: true
}
var options = jQuery.extend(defaults, options);
+
return this.each(function() {
var o = options;
var c = jQuery(this);
@@ -166,15 +176,16 @@
console.log('C: #%s, Error: %s, Feed: %s', $(c).attr('id'), e, o.src);
},
success: function(feed){
-
- if (o.header)
- jQuery(c).parent().parent().prepend( '<p><div class="rssHeader">' +
+ 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>');
-
+*/
jQuery(feed).find('item').each(function(i){
var row = 'odd';
var itemHtml;
@@ -183,7 +194,10 @@
+ jQuery(this).find('guid').text()
+ '" target="' + o.linktarget + '">'
+ jQuery(this).find('title').text() + '</a><br />');
- else
+ else if (o.title)
+ itemHtml = o.html.replace(/{title}/,
+ jQuery(this).find('title').text() + '<br />');
+ else
itemHtml = o.html.replace(/{title}/, '');
itemHtml = itemHtml.replace(/{text}/, jQuery(this).find('description').text());
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.
|