diff options
| author | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2009-02-23 17:18:48 +0000 | 
|---|---|---|
| committer | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2009-02-23 17:18:48 +0000 | 
| commit | 962902de23ef6ae1e6bae9795c7cd13e5cbcabe5 (patch) | |
| tree | 8075f241a872cdf0fa3a67e7eee7be36ce453751 /api/widgetUWA.html | |
| parent | 63dc7fee8e73f65137ba191b7419dd5a8666b63f (diff) | |
| download | semanticscuttle-962902de23ef6ae1e6bae9795c7cd13e5cbcabe5.tar.gz semanticscuttle-962902de23ef6ae1e6bae9795c7cd13e5cbcabe5.tar.bz2 | |
New Feature: add widget API for Netvibes.
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@296 b3834d28-1941-0410-a4f8-b48e95affb8f
Diffstat (limited to 'api/widgetUWA.html')
| -rw-r--r-- | api/widgetUWA.html | 234 | 
1 files changed, 234 insertions, 0 deletions
| diff --git a/api/widgetUWA.html b/api/widgetUWA.html new file mode 100644 index 0000000..25ec898 --- /dev/null +++ b/api/widgetUWA.html @@ -0,0 +1,234 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:widget="http://www.netvibes.com/ns/"> +<head> + +<title>SemanticScuttle</title> + +<meta name="author" content="Benjamin HKB (inspired by Florent Solt)" /> +<meta name="description" content="" /> +<meta name="keywords" content="semanticscuttle delicious del.icio.us" /> + +<meta name="apiVersion" content="1.0" /> +<meta name="inline" content="true" /> +<meta name="autoRefresh" content="20" /> +<meta name="debugMode" content="false" /> + +<link rel="icon" href="http://semanticscuttle.sourceforge.net/icon.png"/> + +<link rel="stylesheet" type="text/css" href="http://www.netvibes.com/themes/uwa/style.css" /> +<script type="text/javascript" src="http://www.netvibes.com/js/UWA/load.js.php?env=Standalone"></script> + +<widget:preferences> +    <preference name="website" label="URL of the SemanticScuttle website" type="text" defaultValue="http://example.com" /> +    <preference name="websiteTitle" label="Website's title" type="text" defaultValue="Website Name" /> +    <preference name="account" label="User" type="text" defaultValue="" /> +    <preference name="tags" label="Tags (optionally separated by +)" type="text" defaultValue="tag1+tag2" /> +    <preference name="thumb" label="Show thumbnails" type="boolean" defaultValue="true" /> +    <preference name="limit" type="range" label="Number of items to display" defaultValue="20" step="1" min="1" max="50" /> +    <preference name="offset" type="hidden" defaultValue="0" /> +</widget:preferences> + +<style type="text/css"> +.container ul { +    padding: 0px; +} +.container .clear { +    clear: both; +    height: 1px; +    font-size: 1px; +    line-height: 1px; +} +.container li { +    background-image: none; +    padding: 2px; +    clear: both; +    margin: 0px; +} +.container li a { +    font-weight: bold; +} +.container li em { +    display: block; +} +.container li img { +    display: block; +    float: left; +    margin-right: 4px; +    margin-bottom: 4px; +} +.container li img.thumb { +    width: 60px; +    height: 45px; +    border: 1px solid #ccc; +} +.container li.cal { +    padding-left: 20px; +    background-image: url(http://www.netvibes.com/img/icons/time.png); +    background-repeat: no-repeat; +    background-position: left 1em; +    line-height: 16px; +    margin-bottom: 0.5em; +    padding-top: 1em; +    font-size: 1.3em; +    border-bottom: 1px dotted #aaa; +} + +</style> + +<script type="text/javascript"> +if (document.location && document.location.hostname == 'mymodules.local') { +  UWA.proxies.ajax = 'ajaxProxy.php'; +} + +widget.months = { +    1:_('January'), '2':_('February'), 3:_('March'), 4:_('April'), 5:_('May'), 6:_('June'), +    7:_('July'), 8:_('August'), 9:_('September'), 10:_('October'), 11:_('November'), 12:_('December') +} + +widget.onLoad =  function() { +    widget.onRefresh(); +} + +widget.onRefresh = function() { +  widget.setBody( _("Loading ... (if loading is too long, check preferences: URL must be exact, user and tags must exist.)") ); +  var website = widget.getValue('website'); +  if(website.charAt(website.length-1) != '/') { +      website = website +'/'; +  } +   +  var websiteTitle = widget.getValue('websiteTitle'); +   +  var account = widget.getValue('account'); +  if(account == undefined || account == '') { +      account = 'all'; +  } +  var tags = widget.getValue('tags'); +  if(tags != undefined && tags != '') { +      tags = '/' + tags; +      var reg=new RegExp(" ", "g"); +      tags = tags.replace(reg, "%20"); +  } +  if (website == undefined || website == 'http://example.com/') { +      widget.setBody(_("Edit the widget please.")); +  } else { +      //widget.setBody(website + 'rss/' + account + tags); +      var title = '<a href="' + website + '">' + websiteTitle +'</a>'; +      title+= ' / <a href="http://sourceforge.net/projects/semanticscuttle/">'+ 'SemanticScuttle</a>'; +      widget.setTitle(title); +      UWA.Data.getFeed(website + 'rss/' + account + tags, widget.onData); +  } +} + +widget.onData = function(data) { +    widget.items = data.items; +    //widget.log(data.items); +    widget.display(); +}     + +widget.display = function() { +    // Main container +    var container = widget.createElement('div'); +    container.className = 'container'; +     +    // Prev date +    var prev_date = null; +     +    // Items +    var ul = widget.createElement('ul'); +    var limit = parseInt(widget.getValue('limit')); +    var offset = parseInt(widget.getValue('offset')); +    for (var i=offset; i<widget.items.length && i<limit+offset; i++) { +         +        var date = new Date(widget.items[i].date) + +        // Cal +        if (prev_date == null || +            date.getMonth() != prev_date.getMonth() || +            date.getDate() != prev_date.getDate() || +            date.getYear() != prev_date.getYear()) { +            prev_date = date; +            var cal = widget.createElement('li'); +            cal.className = 'cal'; + +            var relative_to = new Date(); +            var delta = parseInt((relative_to.getTime() - date.getTime()) / 1000); +            if (delta < 24*60*60) { +                cal.appendText(_('Today')); +            } else if (delta < 48*60*60) { +                cal.appendText(_('Yesterday')); +            } else { +                cal.appendText(date.getDate() + ' ' + widget.months[date.getMonth() + 1]) +            } +            ul.appendChild(cal); +        } +         +        // Li +        var li = widget.createElement('li'); +        if (i%2 == 1) li.className = 'even'; +         +        if (widget.getValue('thumb') == 'true') { +            // Img +            var img = widget.createElement('img'); +            img.src = "http://open.thumbshots.org/image.pxf?url=" + widget.items[i].link.replace(/^(http:\/\/[^\/]+).*$/, '$1'); +            img.className = 'thumb'; +            li.appendChild(img); +        } else { +            var img = widget.createElement('img'); +            img.src = 'http://semanticscuttle.sourceforge.net/bookmark.gif' +            li.appendChild(img); +        } +         +        // Title +        var title = widget.createElement('a'); +        title.setContent(widget.items[i].title); +        title.href = widget.items[i].link; +        if(widget.items[i].content == '') { +            widget.items[i].content = _("No description"); +        } +        title.title= widget.items[i].content; +        li.appendChild(title); + +        // // Tags +        // console.log(widget.items[i]); +        // var tagsText = widget.items[i].subject; +        // if (tagsText != null) { +        //     tags = widget.createElement('em'); +        //     tags.appendText(tagsText.nodeValue); +        //     li.appendChild(tags);             +        // } +         +        // Clear +        var clear = widget.createElement('div'); +        clear.className = 'clear'; +        li.appendChild(clear); +         +        ul.appendChild(li); +    } +    container.appendChild(ul); + +    // Pager +    var pager = widget.createElement('div'); +     +    var pager_ctrl = new UWA.Controls.Pager( { +      module: this, +      limit: widget.getValue('limit'), +      offset: widget.getValue('offset'), +      dataArray: widget.items +    } ); +     +    pager_ctrl.onChange = function(newOffset) { +      widget.setValue('offset', newOffset); +      widget.display(); +    } +    pager.setContent(pager_ctrl.getContent()); +    container.appendChild(pager); +     +    widget.setBody(container); +} + +</script> + +</head> +<body> +</body> +</html> | 
