Skip to content

Commit

Permalink
Support editable extension title
Browse files Browse the repository at this point in the history
  • Loading branch information
Per Øyvind Øygard committed Apr 24, 2012
1 parent 4626074 commit ed7a811
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 9 deletions.
3 changes: 2 additions & 1 deletion config.xml
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<widget xmlns="http://www.w3.org/ns/widgets" id="https://addons.opera.com/addons/extensions/details/live-news-feed/" version="1.11" viewmodes="minimized"> <widget xmlns="http://www.w3.org/ns/widgets" id="https://addons.opera.com/addons/extensions/details/live-news-feed/" version="1.12" viewmodes="minimized">
<name>Live news feed</name> <name>Live news feed</name>
<feature name="opera:speeddial"> <feature name="opera:speeddial">
<param name="url" value="http://opera.com"/> <param name="url" value="http://opera.com"/>
Expand All @@ -10,6 +10,7 @@
<preference name="count" value="5"/> <preference name="count" value="5"/>
<preference name="interval" value="7"/> <preference name="interval" value="7"/>
<preference name="defaultFeed" value=""/> <preference name="defaultFeed" value=""/>
<preference name="nameChecked" value="true"/>
<update-description href="https://extension-updates.opera.com/api/w3c-wd1/update/1b364c5a-f02e-4164-bbb5-14e014048672/"/> <update-description href="https://extension-updates.opera.com/api/w3c-wd1/update/1b364c5a-f02e-4164-bbb5-14e014048672/"/>
<license>Copyright 2011 Opera Software. All rights reserved.</license> <license>Copyright 2011 Opera Software. All rights reserved.</license>
<author href="https://addons.opera.com">Opera Software</author> <author href="https://addons.opera.com">Opera Software</author>
Expand Down
13 changes: 12 additions & 1 deletion index.html
Expand Up @@ -13,6 +13,7 @@
prefs : widget.preferences, prefs : widget.preferences,
items : [], items : [],
timer : null, timer : null,
title : '',
} }


// update feeds in the speed-dial // update feeds in the speed-dial
Expand All @@ -26,13 +27,20 @@
document.getElementById('desc').textContent = _data.items[ind].desc; document.getElementById('desc').textContent = _data.items[ind].desc;
document.getElementById('date').textContent = '(' + _data.items[ind].date + ')'; document.getElementById('date').textContent = '(' + _data.items[ind].date + ')';



var name = _data.prefs.getItem('nameCheckbox') === "true"
? _data.title
: _data.prefs.getItem('nameInput');
opera.contexts.speeddial.url = _data.items[ind].href; opera.contexts.speeddial.url = _data.items[ind].href;
opera.contexts.speeddial.title = name;
_data.feed = _data.prefs.getItem('feedUrl');


// switch feeds every X seconds // switch feeds every X seconds
_data.timer = setTimeout(function(){_updateFeeds(next)}, _data.interval * 1000); _data.timer = setTimeout(function(){_updateFeeds(next)}, _data.interval * 1000);
} }


function _clearData(message){ function _clearData(message){
opera.extension.title = "Live news feed";
document.getElementById('title').textContent = ''; document.getElementById('title').textContent = '';
document.getElementById('desc').textContent = ''; document.getElementById('desc').textContent = '';
document.getElementById('date').textContent = ''; document.getElementById('date').textContent = '';
Expand All @@ -51,7 +59,10 @@
// process the data received from the XHR // process the data received from the XHR
function _processData(xmlDoc) function _processData(xmlDoc)
{ {
var items = xmlDoc.getElementsByTagName('item'); var title = xmlDoc.querySelector('title');
_data.title = title.textContent || "No title";

var items = xmlDoc.querySelectorAll('item, entry');
var len = items.length; var len = items.length;
if (_data.count > len) _data.count = len; if (_data.count > len) _data.count = len;


Expand Down
49 changes: 42 additions & 7 deletions options.html
Expand Up @@ -64,7 +64,14 @@
font-size: 16px; font-size: 16px;
} }
.feed-url{ .feed-url{
width:450px; width:50%;
}
label {
display: inline-block;
width: 45%;
}
fieldset div {
margin-bottom: 0.5em;
} }
header{ header{
height:64px; height:64px;
Expand All @@ -89,7 +96,7 @@
font:normal normal 20px/20px sans-serif; font:normal normal 20px/20px sans-serif;
text-shadow:0 1px 0 #fff; text-shadow:0 1px 0 #fff;
} }
.feed-url{width:100%;} .feed-url {width:50%;}
legend legend
{ {
font:normal 14px sans-serif; font:normal 14px sans-serif;
Expand All @@ -104,7 +111,9 @@
<header class="view-mode"><h1><span id="widget-name">Extension name</span></h1><h2>by <a href="#" id="widget-author">Developer</a></h2></header> <header class="view-mode"><h1><span id="widget-name">Extension name</span></h1><h2>by <a href="#" id="widget-author">Developer</a></h2></header>
<div> <div>
<fieldset> <fieldset>
<legend>Choose feed from the list:</legend> <legend>Feed source</legend>
<div>
<label for=defaultFeed>Choose feed from the list:</label>
<select name="defaultFeed"> <select name="defaultFeed">
<option value=""></option> <option value=""></option>
<option value="http://rss.slashdot.org/Slashdot/slashdot">Slashdot</option> <option value="http://rss.slashdot.org/Slashdot/slashdot">Slashdot</option>
Expand All @@ -113,11 +122,22 @@
<option value="http://www.engadget.com/rss.xml">Engadget</option> <option value="http://www.engadget.com/rss.xml">Engadget</option>
<option value="http://feeds.reuters.com/reuters/topNews">Reuters</option> <option value="http://feeds.reuters.com/reuters/topNews">Reuters</option>
</select> </select>
</div>
<div>
<label for=feedUrl>Or add your favourite feed URL:</label>
<input class="feed-url" type="url" name="feedUrl" value=""/>
</div>
</fieldset> </fieldset>

<fieldset> <fieldset>
<legend>Or add your favourite feed URL:</legend> <legend>Feed name:</legend>
<input class="feed-url" type="url" name="feedUrl" value=""/> <div>
<label for=nameCheckbox>Use name from feed:</label>
<input type=checkbox id=name_checkbox name=nameCheckbox />
</div>
<div>
<label for=nameInput>Or assign name</label>
<input type=text id=name_input name=nameInput />
</fieldset> </fieldset>


<fieldset> <fieldset>
Expand Down Expand Up @@ -163,6 +183,18 @@
else if (type == 'url' && (!storage.getItem( 'defaultFeed') || storage.getItem( 'defaultFeed') == '')){ else if (type == 'url' && (!storage.getItem( 'defaultFeed') || storage.getItem( 'defaultFeed') == '')){
document.getElementsByName('feedUrl')[0].value = value; document.getElementsByName('feedUrl')[0].value = value;
} }
else if(element.name == "nameCheckbox") {
element.checked = storage.getItem(element.name) === "true";
element.addEventListener('change', function(e) {
document.getElementById('name_input').disabled = e.target.checked;
}, false);
if(element.checked) {
document.getElementById('name_input').disabled = true;
}
}
else if(element.name == "nameInput") {
element.value = storage.getItem(element.name);
}
element.addEventListener( 'change', changedElement, true ); element.addEventListener( 'change', changedElement, true );
} }
} }
Expand All @@ -188,6 +220,9 @@
document.getElementsByName('defaultFeed')[0].selectedIndex = 0; document.getElementsByName('defaultFeed')[0].selectedIndex = 0;
storage.setItem( 'defaultFeed', '' ); storage.setItem( 'defaultFeed', '' );
} }
else if(name === "nameCheckbox") {
value = !!element.checked;
}
storage.setItem( name, value ); storage.setItem( name, value );
} }


Expand All @@ -205,7 +240,7 @@
} }
} }
} }

$( 'widget-title', widget.name ); $( 'widget-title', widget.name );
$( 'widget-name', widget.name ); $( 'widget-name', widget.name );
$( 'widget-author', widget.author, widget.authorHref ); $( 'widget-author', widget.author, widget.authorHref );
Expand Down

0 comments on commit ed7a811

Please sign in to comment.