made changes in menu structure

git-svn-id: file:///tmp/snv/trunk@15 12951d8a-c33d-4b7c-b961-822215c816e1
master
Abhinav Sarkar 2008-12-05 22:26:49 +00:00
parent 507406c079
commit 7a6d415228
3 changed files with 43 additions and 74 deletions

View File

@ -2,6 +2,5 @@ move to JSON data format -- done
XBL -- done XBL -- done
format JS/refactor JS/Use FUEL -- done format JS/refactor JS/Use FUEL -- done
caching, notifier-observer -- done caching, notifier-observer -- done
search? new UI, icons -- done
new UI, icons, thumbnails
put license put license

View File

@ -63,73 +63,54 @@ var DiggSidebar = {
populateMenu: function(e) { populateMenu: function(e) {
var XHR = e.target; var XHR = e.target;
var data = DiggSidebar.Utils.decodeJson(XHR.responseText); var data = DiggSidebar.Utils.decodeJson(XHR.responseText);
var topics = data.topics; var containers = data.containers;
var containers = new Array();
DiggSidebar.Utils.removeAllChildren(DiggSidebar.UI.topicPopup);
topics.forEach(function (topic) {
var menu = document.createElement('menu');
menu.setAttribute('id', topic.short_name + 'Menu');
menu.setAttribute('label', topic.name);
menu.setAttribute('accesskey', topic.name.charAt(0));
var menupopup = document.createElement('menupopup');
menupopup.setAttribute('id', topic.short_name + 'Popup');
DiggSidebar.categories.forEach(
function (label) {
var menuitem = document.createElement('menuitem');
menuitem.setAttribute('label', label);
menuitem.setAttribute('value', '/topic/' + topic.short_name + '/' + label.toLowerCase());
menuitem.setAttribute('accesskey', label.charAt(0));
menuitem.setAttribute('oncommand', "DiggSidebar.setEndPoint(this.value)");
menupopup.appendChild(menuitem);
}
);
menu.appendChild(menupopup);
DiggSidebar.UI.topicPopup.appendChild(menu);
containers.push(topic.container);
});
DiggSidebar.Utils.removeAllChildren(DiggSidebar.UI.containerPopup);
var filteredContainers = {name: [], short_name: []};
containers.forEach(function (container) { containers.forEach(function (container) {
var name = container.name; var cmenu = document.createElement('menu');
var short_name = container.short_name; cmenu.setAttribute('id', container.short_name + 'Menu');
if (filteredContainers.name.indexOf(name) == -1) { cmenu.setAttribute('label', container.name);
filteredContainers.name.push(name); cmenu.setAttribute('accesskey', container.name.charAt(0));
filteredContainers.short_name.push(short_name);
}
});
for (var i=0; i<filteredContainers.name.length; i++) { var cmenupopup = document.createElement('menupopup');
var menu = document.createElement('menu'); cmenupopup.setAttribute('id', container.short_name + 'Popup');
menu.setAttribute('id', filteredContainers.short_name[i] + 'Menu');
menu.setAttribute('label', filteredContainers.name[i]);
menu.setAttribute('accesskey', filteredContainers.name[i].charAt(0));
var menupopup = document.createElement('menupopup');
menupopup.setAttribute('id', filteredContainers.short_name[i] + 'Popup');
DiggSidebar.categories.forEach( DiggSidebar.categories.forEach(
function (label) { function (category) {
var menuitem = document.createElement('menuitem'); var cmenuitem = document.createElement('menuitem');
menuitem.setAttribute('label', label); cmenuitem.setAttribute('label', category);
menuitem.setAttribute('value', '/container/' + cmenuitem.setAttribute('value', '/container/' + container.short_name + '/' + category.toLowerCase());
filteredContainers.short_name[i] + '/' + label.toLowerCase()); cmenuitem.setAttribute('accesskey', category.charAt(0));
menuitem.setAttribute('accesskey', label.charAt(0)); cmenuitem.setAttribute('oncommand', "DiggSidebar.setEndPoint(this.value)");
menuitem.setAttribute('oncommand', "DiggSidebar.setEndPoint(this.value)"); cmenupopup.appendChild(cmenuitem);
menupopup.appendChild(menuitem);
} }
); );
cmenupopup.appendChild(document.createElement('menuseparator'));
var topics = container.topics;
topics.forEach(function (topic) {
var tmenu = document.createElement('menu');
tmenu.setAttribute('id', topic.short_name + 'Menu');
tmenu.setAttribute('label', topic.name);
tmenu.setAttribute('accesskey', topic.name.charAt(0));
menu.appendChild(menupopup); var tmenupopup = document.createElement('menupopup');
DiggSidebar.UI.containerPopup.appendChild(menu); tmenupopup.setAttribute('id', topic.short_name + 'Popup');
}
//DiggSidebar.indicateInactivity(); DiggSidebar.categories.forEach(
function (category) {
var tmenuitem = document.createElement('menuitem');
tmenuitem.setAttribute('label', category);
tmenuitem.setAttribute('value', '/topic/' + topic.short_name + '/' + category.toLowerCase());
tmenuitem.setAttribute('accesskey', category.charAt(0));
tmenuitem.setAttribute('oncommand', "DiggSidebar.setEndPoint(this.value)");
tmenupopup.appendChild(tmenuitem);
}
);
tmenu.appendChild(tmenupopup);
cmenupopup.appendChild(tmenu);
});
cmenu.appendChild(cmenupopup);
DiggSidebar.UI.storiesPopup.appendChild(cmenu);
});
}, },
populateStoryList: function() { populateStoryList: function() {
@ -252,7 +233,7 @@ var DiggSidebar = {
}, },
createMenu: function() { createMenu: function() {
DiggSidebar.fetchData("http://services.digg.com/topics" + "?type=json" + DiggSidebar.fetchData("http://services.digg.com/containers" + "?type=json" +
"&appkey=" + encodeURIComponent("http://diggsidebar.googlepages.com"), "&appkey=" + encodeURIComponent("http://diggsidebar.googlepages.com"),
DiggSidebar.populateMenu); DiggSidebar.populateMenu);
}, },
@ -353,8 +334,7 @@ var DiggSidebar = {
DiggSidebar.UI = {}; DiggSidebar.UI = {};
DiggSidebar.UI.notificationBox = $('dsNotificationBox'); DiggSidebar.UI.notificationBox = $('dsNotificationBox');
DiggSidebar.UI.indicator = $('dsBusyIndicator'); DiggSidebar.UI.indicator = $('dsBusyIndicator');
DiggSidebar.UI.topicPopup = $('dsTopicPopup'); DiggSidebar.UI.storiesPopup = $('dsStoriesPopup');
DiggSidebar.UI.containerPopup = $('dsContainerPopup');
DiggSidebar.UI.storyListBox = $('dsStoryListBox'); DiggSidebar.UI.storyListBox = $('dsStoryListBox');
DiggSidebar.UI.endPointDesc = $('dsEndPointDesc'); DiggSidebar.UI.endPointDesc = $('dsEndPointDesc');

View File

@ -27,16 +27,6 @@
<menuitem label="Top" value="/top" <menuitem label="Top" value="/top"
oncommand="DiggSidebar.setEndPoint(this.value)" accesskey="T" /> oncommand="DiggSidebar.setEndPoint(this.value)" accesskey="T" />
<menuseparator /> <menuseparator />
<menu id="dsContainerMenu" label="Containers" accesskey="C">
<menupopup id="dsContainerPopup">
<menuitem label="Populating..." />
</menupopup>
</menu>
<menu id="dsTopicMenu" label="Topics" accesskey="T">
<menupopup id="dsTopicPopup">
<menuitem label="Populating..." />
</menupopup>
</menu>
</menupopup> </menupopup>
</menu> </menu>
</menubar> </menubar>