зеркало из https://github.com/mozilla/pjs.git
Bug #249967 --> Polish the RSS UI. Localize various dialogs. Re-design the subscription UI.
Add a feed properties dialog. If you try to open the subscription UI multiple times, we'll only open one window now.
This commit is contained in:
Родитель
62316f5751
Коммит
9865d0f530
|
@ -0,0 +1,53 @@
|
|||
/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is Mozilla Mail Code.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Scott MacGregor <mscott@mozilla.org>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
function onLoad()
|
||||
{
|
||||
if (window.arguments[0].feedName)
|
||||
document.getElementById('feedName').value = window.arguments[0].feedName;
|
||||
|
||||
if (window.arguments[0].feedLocation)
|
||||
document.getElementById('feedLocation').value = window.arguments[0].feedLocation;
|
||||
}
|
||||
|
||||
function onOk()
|
||||
{
|
||||
// eventually, add some validation code to make sure they've entered a location and a name
|
||||
// before trying to create a feed entry...
|
||||
|
||||
window.arguments[0].feedName = document.getElementById('feedName').value;
|
||||
window.arguments[0].feedLocation = document.getElementById('feedLocation').value
|
||||
window.arguments[0].result = true;
|
||||
|
||||
return true;
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
<?xml version="1.0"?>
|
||||
<!-- ***** BEGIN LICENSE BLOCK *****
|
||||
Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
||||
The contents of this file are subject to the Mozilla Public License Version
|
||||
1.1 (the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
http://www.mozilla.org/MPL/
|
||||
|
||||
Software distributed under the License is distributed on an "AS IS" basis,
|
||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
for the specific language governing rights and limitations under the
|
||||
License.
|
||||
|
||||
The Original Code is News and Blogs Feed Properties UI.
|
||||
|
||||
Contributor(s):
|
||||
Scott MacGregor <mscott@mozilla.org>
|
||||
|
||||
Alternatively, the contents of this file may be used under the terms of
|
||||
either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
of those above. If you wish to allow use of your version of this file only
|
||||
under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
use your version of this file under the terms of the MPL, indicate your
|
||||
decision by deleting the provisions above and replace them with the notice
|
||||
and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
the provisions above, a recipient may use your version of this file under
|
||||
the terms of any one of the MPL, the GPL or the LGPL.
|
||||
|
||||
***** END LICENSE BLOCK ***** -->
|
||||
|
||||
<?xml-stylesheet href="chrome://messenger/skin/" type="text/css"?>
|
||||
|
||||
|
||||
<!DOCTYPE dialog SYSTEM "chrome://messenger-newsblog/locale/feed-properties.dtd">
|
||||
|
||||
<dialog id="feedPropertyDialog"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
title="&window.title;"
|
||||
style="width: 27em;"
|
||||
buttons="accept,cancel"
|
||||
onload="onLoad();"
|
||||
ondialogaccept="return onOk();">
|
||||
|
||||
<script type="application/x-javascript" src="feed-properties.js"/>
|
||||
|
||||
<grid flex="1">
|
||||
<columns>
|
||||
<column/>
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
|
||||
<rows>
|
||||
<row>
|
||||
<label value="&feedName.label;" accesskey="&feedName.accesskey;" control="feedName"/>
|
||||
<hbox>
|
||||
<textbox flex="1" id="feedName"/>
|
||||
<spacer flex="4"/>
|
||||
</hbox>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<separator class="thin"/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<label value="&feedLocation.label;" accesskey="&feedLocation.accesskey;" control="feedLocation"/>
|
||||
<textbox id="feedLocation"/>
|
||||
</row>
|
||||
|
||||
<!-- Eventually we'll add a folder picker here to pick the folder associated with the feed -->
|
||||
</rows>
|
||||
</grid>
|
||||
</dialog>
|
|
@ -23,41 +23,56 @@ function doLoad() {
|
|||
tree.builder.rebuild();
|
||||
}
|
||||
|
||||
// opens the feed properties dialog
|
||||
// optionally, pass in the name and
|
||||
function openFeedEditor(feedProperties)
|
||||
{
|
||||
window.openDialog('feed-properties.xul', 'feedproperties', 'modal,titlebar,chrome,center', feedProperties);
|
||||
return feedProperties;
|
||||
}
|
||||
|
||||
function doAdd() {
|
||||
var url = window.prompt("Location:", "");
|
||||
if (url == null)
|
||||
var userAddedFeed = false;
|
||||
var feedProperties = { feedName: "", feedLocation: "", result: userAddedFeed};
|
||||
|
||||
feedProperties = openFeedEditor(feedProperties);
|
||||
|
||||
// if the user hit cancel, exit without doing anything
|
||||
if (!feedProperties.result)
|
||||
return;
|
||||
|
||||
if (!feedProperties.feedLocation)
|
||||
return;
|
||||
|
||||
const DEFAULT_FEED_TITLE = "feed title";
|
||||
const DEFAULT_FEED_URL = "feed location";
|
||||
|
||||
feed = new Feed(url || DEFAULT_FEED_URL);
|
||||
feed = new Feed(feedProperties.feedLocation || DEFAULT_FEED_URL);
|
||||
feed.download(false, false);
|
||||
if (!feed.title)
|
||||
feed.title = DEFAULT_FEED_TITLE;
|
||||
|
||||
if (!feedProperties.feedName)
|
||||
feedProperties.feedName = DEFAULT_FEED_TITLE;
|
||||
|
||||
var server = getIncomingServer();
|
||||
var folder;
|
||||
try {
|
||||
//var folder = server.rootMsgFolder.FindSubFolder(feed.name);
|
||||
folder = server.rootMsgFolder.getChildNamed(feed.name);
|
||||
folder = server.rootMsgFolder.getChildNamed(feedProperties.feedName);
|
||||
}
|
||||
catch(e) {
|
||||
// If we're here, it's probably because the folder doesn't exist yet,
|
||||
// so create it.
|
||||
debug("folder for new feed " + feed.title + " doesn't exist; creating");
|
||||
debug("creating " + feed.name + "as child of " + server.rootMsgFolder + "\n");
|
||||
server.rootMsgFolder.createSubfolder(feed.name, getMessageWindow());
|
||||
folder = server.rootMsgFolder.FindSubFolder(feed.name);
|
||||
debug("folder for new feed " + feedProperties.feedName + " doesn't exist; creating");
|
||||
debug("creating " + feedProperties.feedName + "as child of " + server.rootMsgFolder + "\n");
|
||||
server.rootMsgFolder.createSubfolder(feedProperties.feedName, getMessageWindow());
|
||||
folder = server.rootMsgFolder.FindSubFolder(feedProperties.feedName);
|
||||
var msgdb = folder.getMsgDatabase(null);
|
||||
var folderInfo = msgdb.dBFolderInfo;
|
||||
folderInfo.setCharPtrProperty("feedUrl", feed.url);
|
||||
folderInfo.setCharPtrProperty("feedUrl", feedProperties.feedLocation);
|
||||
}
|
||||
|
||||
// XXX This should be something like "subscribe to feed".
|
||||
dump ("feed name = " + feed.name + "\n");
|
||||
addFeed(feed.url, feed.title, null, folder);
|
||||
dump ("feed name = " + feedProperties.feedName + "\n");
|
||||
addFeed(feedProperties.feedLocation, feedProperties.feedName, null, folder);
|
||||
// XXX Maybe we can combine this with the earlier download?
|
||||
feed.download();
|
||||
}
|
||||
|
@ -77,10 +92,14 @@ function doEdit() {
|
|||
old_url =
|
||||
old_url ? old_url.QueryInterface(Components.interfaces.nsIRDFLiteral).Value : "";
|
||||
|
||||
new_title = window.prompt("Title:", old_title);
|
||||
if (new_title == null)
|
||||
var userModifiedFeed = false;
|
||||
var feedProperties = { feedName: old_title, feedLocation: old_url, result: userModifiedFeed};
|
||||
|
||||
feedProperties = openFeedEditor(feedProperties);
|
||||
if (!feedProperties.result) // did the user cancel?
|
||||
return;
|
||||
else if (new_title != old_title) {
|
||||
|
||||
if (feedProperties.feedName != old_title) {
|
||||
var server = getIncomingServer();
|
||||
var msgWindow = getMessageWindow();
|
||||
|
||||
|
@ -95,7 +114,7 @@ function doEdit() {
|
|||
} catch(e) {}
|
||||
var new_folder;
|
||||
try {
|
||||
new_folder = server.rootMsgFolder.getChildNamed(new_title);
|
||||
new_folder = server.rootMsgFolder.getChildNamed(feedProperties.feedName);
|
||||
new_folder = new_folder.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
} catch(e) {}
|
||||
|
||||
|
@ -132,36 +151,33 @@ function doEdit() {
|
|||
// whether they are or not (and perhaps even then), better to leave
|
||||
// the old folder as it is and merely create a new folder.
|
||||
//old_folder.rename(new_title, msgWindow);
|
||||
server.rootMsgFolder.createSubfolder(new_title, msgWindow);
|
||||
server.rootMsgFolder.createSubfolder(feedProperties.feedName, msgWindow);
|
||||
}
|
||||
else if (new_folder) {
|
||||
// Do nothing, as everything is as it should be.
|
||||
}
|
||||
else {
|
||||
// Neither old nor new folders exist, so just create the new one.
|
||||
server.rootMsgFolder.createSubfolder(new_title, msgWindow);
|
||||
server.rootMsgFolder.createSubfolder(feedProperties.feedName, msgWindow);
|
||||
}
|
||||
updateTitle(item.id, new_title);
|
||||
updateTitle(item.id, feedProperties.feedName);
|
||||
}
|
||||
|
||||
new_url = window.prompt("Location:", old_url);
|
||||
if (new_url == null) {
|
||||
if (!feedProperties.feedLocation) {
|
||||
// The user cancelled the edit, but not until after potentially changing
|
||||
// the title, so despite the cancellation we should still redownload
|
||||
// the feed if the title has changed.
|
||||
if (new_title != old_title) {
|
||||
feed = new Feed(old_url, null, new_title);
|
||||
feed = new Feed(old_url, null, feedProperties.feedName);
|
||||
feed.download();
|
||||
}
|
||||
return;
|
||||
}
|
||||
else if (new_url != old_url)
|
||||
updateURL(item.id, new_url);
|
||||
else if (feedProperties.feedLocation != old_url)
|
||||
updateURL(item.id, feedProperties.feedLocation);
|
||||
|
||||
feed = new Feed(new_url, null, new_title);
|
||||
feed = new Feed(feedProperties.feedLocation, null, feedProperties.feedName);
|
||||
feed.download();
|
||||
|
||||
//tree.builder.rebuild();
|
||||
}
|
||||
|
||||
function doRemove() {
|
||||
|
|
|
@ -1,73 +1,115 @@
|
|||
<?xml-stylesheet href="edittree.css" type="text/css"?>
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!-- ***** BEGIN LICENSE BLOCK *****
|
||||
Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
||||
The contents of this file are subject to the Mozilla Public License Version
|
||||
1.1 (the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
http://www.mozilla.org/MPL/
|
||||
|
||||
Software distributed under the License is distributed on an "AS IS" basis,
|
||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
for the specific language governing rights and limitations under the
|
||||
License.
|
||||
|
||||
The Original Code is Thunderbird RSS Integration code.
|
||||
|
||||
Contributor(s):
|
||||
Myk Melez <myk@melez.com>
|
||||
David Bienvenu <bienvenu@nventure.com>
|
||||
Scott MacGregor <mscott@mozilla.org>
|
||||
|
||||
Alternatively, the contents of this file may be used under the terms of
|
||||
either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
of those above. If you wish to allow use of your version of this file only
|
||||
under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
use your version of this file under the terms of the MPL, indicate your
|
||||
decision by deleting the provisions above and replace them with the notice
|
||||
and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
the provisions above, a recipient may use your version of this file under
|
||||
the terms of any one of the MPL, the GPL or the LGPL.
|
||||
|
||||
***** END LICENSE BLOCK ***** -->
|
||||
|
||||
<?xml-stylesheet href="chrome://messenger/skin/" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://messenger-newsblog/skin/subscriptions.css" type="text/css"?>
|
||||
|
||||
<!DOCTYPE dialog SYSTEM "chrome://messenger-newsblog/locale/newsblog.dtd">
|
||||
|
||||
<window id="subscriptionsDialog"
|
||||
title="newsBlogSubscriptions.label"
|
||||
<dialog id="subscriptionsDialog"
|
||||
title="&newsBlogSubscriptions.label;"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
width="400"
|
||||
height="400"
|
||||
style="width: 44em; height: 20em;"
|
||||
persist="width height"
|
||||
buttons="accept"
|
||||
onload="doLoad();"
|
||||
flex="1"
|
||||
windowtype="mail:3pane">
|
||||
windowtype="Mail:News-BlogSubscriptions"
|
||||
flex="1">
|
||||
|
||||
<script type="application/x-javascript" src="utils.js" />
|
||||
<script type="application/x-javascript" src="file-utils.js" />
|
||||
<script type="application/x-javascript" src="debug-utils.js" />
|
||||
<script type="application/x-javascript" src="subscriptions.js" />
|
||||
<script type="application/x-javascript" src="Feed.js" />
|
||||
<script type="application/x-javascript" src="FeedItem.js" />
|
||||
<script type="application/x-javascript" src="utils.js" />
|
||||
<script type="application/x-javascript" src="file-utils.js" />
|
||||
<script type="application/x-javascript" src="debug-utils.js" />
|
||||
<script type="application/x-javascript" src="subscriptions.js" />
|
||||
<script type="application/x-javascript" src="Feed.js" />
|
||||
<script type="application/x-javascript" src="FeedItem.js" />
|
||||
|
||||
<!-- The global Mozilla scripts that implement drag-and-drop support -->
|
||||
<!--
|
||||
<script src="chrome://global/content/nsDragAndDrop.js"/>
|
||||
<script src="chrome://global/content/nsTransferable.js"/>
|
||||
-->
|
||||
<!-- The global Mozilla scripts that implement drag-and-drop support -->
|
||||
<!--
|
||||
<script src="chrome://global/content/nsDragAndDrop.js"/>
|
||||
<script src="chrome://global/content/nsTransferable.js"/>
|
||||
-->
|
||||
|
||||
<hbox flex="1">
|
||||
<tree id="subscriptions" flex="1" seltype="single"
|
||||
datasources="rdf:null"
|
||||
style="width: 100%"
|
||||
ref="urn:forumzilla:root"
|
||||
onselect="this.treeBoxObject.view.selectionChanged();"
|
||||
ondraggesture="//nsDragAndDrop.startDrag(event, subscriptionsDragDropObserver);"
|
||||
ondragover="//nsDragAndDrop.dragOver(event, subscriptionsDragDropObserver);"
|
||||
ondragdrop="//nsDragAndDrop.drop(event, subscriptionsDragDropObserver);">
|
||||
<template>
|
||||
<rule>
|
||||
<conditions>
|
||||
<content uri="?root" />
|
||||
<triple subject="?root" predicate="urn:forumzilla:feeds" object="?feeds" />
|
||||
<member container="?feeds" child="?feed" />
|
||||
</conditions>
|
||||
<bindings>
|
||||
<binding subject="?feed" predicate="http://purl.org/dc/elements/1.1/title" object="?title" />
|
||||
<binding subject="?feed" predicate="http://purl.org/dc/elements/1.1/identifier" object="?url" />
|
||||
</bindings>
|
||||
<action>
|
||||
<treechildren flex="1">
|
||||
<treeitem uri="?feed">
|
||||
<treerow>
|
||||
<treecell src="" label="?title"/>
|
||||
<treecell src="" label="?url"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</action>
|
||||
</rule>
|
||||
</template>
|
||||
<treecols>
|
||||
<treecol id="subs-name-column" flex="1" label="Name" primary="true" />
|
||||
<treecol id="subs-url-column" flex="1" label="Location" hidden="false" />
|
||||
</treecols>
|
||||
</tree>
|
||||
<vbox>
|
||||
<button label="Add" oncommand="doAdd();" />
|
||||
<button label="Edit" oncommand="doEdit();" />
|
||||
<button label="Remove" oncommand="doRemove();" />
|
||||
<spring flex="1"/>
|
||||
<button label="Done" oncommand="window.close();" />
|
||||
</vbox>
|
||||
</hbox>
|
||||
<description>&subscriptionDesc.label;</description>
|
||||
|
||||
</window>
|
||||
<separator class="thin"/>
|
||||
|
||||
<hbox flex="1">
|
||||
<tree id="subscriptions" flex="1" seltype="single" hidecolumnpicker="true"
|
||||
datasources="rdf:null"
|
||||
style="width: 100%"
|
||||
ref="urn:forumzilla:root"
|
||||
onselect="this.treeBoxObject.view.selectionChanged();"
|
||||
ondraggesture="//nsDragAndDrop.startDrag(event, subscriptionsDragDropObserver);"
|
||||
ondragover="//nsDragAndDrop.dragOver(event, subscriptionsDragDropObserver);"
|
||||
ondragdrop="//nsDragAndDrop.drop(event, subscriptionsDragDropObserver);">
|
||||
<template>
|
||||
<rule>
|
||||
<conditions>
|
||||
<content uri="?root"/>
|
||||
<triple subject="?root" predicate="urn:forumzilla:feeds" object="?feeds"/>
|
||||
<member container="?feeds" child="?feed"/>
|
||||
</conditions>
|
||||
<bindings>
|
||||
<binding subject="?feed" predicate="http://purl.org/dc/elements/1.1/title" object="?title"/>
|
||||
<binding subject="?feed" predicate="http://purl.org/dc/elements/1.1/identifier" object="?url"/>
|
||||
</bindings>
|
||||
<action>
|
||||
<treechildren flex="1">
|
||||
<treeitem uri="?feed">
|
||||
<treerow>
|
||||
<treecell src="" label="?title"/>
|
||||
<treecell src="" label="?url"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</action>
|
||||
</rule>
|
||||
</template>
|
||||
<treecols>
|
||||
<treecol id="subs-name-column" flex="1" label="&feedNameTreeCol.label;" primary="true"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="subs-url-column" flex="3" label="&locationTreeCol.label;" hidden="false"/>
|
||||
</treecols>
|
||||
</tree>
|
||||
|
||||
<vbox>
|
||||
<button label="&addButton.label;" accesskey="&addButton.accesskey;" oncommand="doAdd();"/>
|
||||
<button label="&editButton.label;" accesskey="&editButton.accesskey;" oncommand="doEdit();"/>
|
||||
<button label="&deleteButton.label;" accesskey="&deleteButton.accesskey;" oncommand="doRemove();"/>
|
||||
</vbox>
|
||||
</hbox>
|
||||
|
||||
</dialog>
|
||||
|
|
|
@ -1,29 +1,38 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<!DOCTYPE overlay SYSTEM "chrome://messenger-newsblog/locale/newsblog.dtd">
|
||||
|
||||
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
|
||||
<script type="application/x-javascript">
|
||||
function openSubscriptionsDialog() {
|
||||
window.openDialog("chrome://messenger-newsblog/content/subscriptions.xul",
|
||||
"",
|
||||
"centerscreen,resizable=yes");
|
||||
|
||||
//check for an existing subscriptions window and focus it.
|
||||
const kWindowMediatorContractID = "@mozilla.org/appshell/window-mediator;1";
|
||||
const kWindowMediatorIID = Components.interfaces.nsIWindowMediator;
|
||||
const kWindowMediator = Components.classes[kWindowMediatorContractID].getService(kWindowMediatorIID);
|
||||
var lastSubscriptionWindow = kWindowMediator.getMostRecentWindow("Mail:News-BlogSubscriptions");
|
||||
|
||||
if (lastSubscriptionWindow)
|
||||
lastSubscriptionWindow.focus();
|
||||
else
|
||||
window.openDialog("chrome://messenger-newsblog/content/subscriptions.xul", "",
|
||||
"centerscreen,resizable=yes");
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<menupopup id="taskPopup">
|
||||
<menuitem id="newsAndBlogsCmd"
|
||||
label="&newsBlogMenu.label;"
|
||||
insertbefore="menu_preferences"
|
||||
accesskey="e"
|
||||
accesskey="&newsBlogMenu.accesskey;"
|
||||
oncommand="openSubscriptionsDialog();"/>
|
||||
</menupopup>
|
||||
|
||||
<toolbarpalette id="MailToolbarPalette">
|
||||
<toolbarbutton id="button-newsandblogs"
|
||||
label="News & Blogs"
|
||||
tooltiptext="manage news and blog feeds"
|
||||
label="&newsBlogMenu.label;"
|
||||
tooltiptext="&newsBlogMenu.tooltip;"
|
||||
oncommand="openSubscriptionsDialog();"/>
|
||||
</toolbarpalette>
|
||||
|
||||
|
|
|
@ -1,17 +1,20 @@
|
|||
newsblog.jar:
|
||||
* content/messenger-newsblog/toolbar-icon.xul (content/toolbar-icon.xul)
|
||||
* content/messenger-newsblog/forumzilla.xul (content/forumzilla.xul)
|
||||
* content/messenger-newsblog/forumzilla.js (content/forumzilla.js)
|
||||
* content/messenger-newsblog/subscriptions.xul (content/subscriptions.xul)
|
||||
* content/messenger-newsblog/edittree.xml (content/edittree.xml)
|
||||
* content/messenger-newsblog/debug-utils.js (content/debug-utils.js)
|
||||
* content/messenger-newsblog/Feed.js (content/Feed.js)
|
||||
* content/messenger-newsblog/FeedItem.js (content/FeedItem.js)
|
||||
* content/messenger-newsblog/file-utils.js (content/file-utils.js)
|
||||
* content/messenger-newsblog/subscriptions.js (content/subscriptions.js)
|
||||
* content/messenger-newsblog/utils.js (content/utils.js)
|
||||
* content/messenger-newsblog/contents.rdf (content/contents.rdf)
|
||||
* content/messenger-newsblog/forumzilla.xul (content/forumzilla.xul)
|
||||
* content/messenger-newsblog/forumzilla.js (content/forumzilla.js)
|
||||
* content/messenger-newsblog/subscriptions.xul (content/subscriptions.xul)
|
||||
* content/messenger-newsblog/edittree.xml (content/edittree.xml)
|
||||
* content/messenger-newsblog/debug-utils.js (content/debug-utils.js)
|
||||
* content/messenger-newsblog/Feed.js (content/Feed.js)
|
||||
* content/messenger-newsblog/FeedItem.js (content/FeedItem.js)
|
||||
* content/messenger-newsblog/file-utils.js (content/file-utils.js)
|
||||
* content/messenger-newsblog/subscriptions.js (content/subscriptions.js)
|
||||
* content/messenger-newsblog/utils.js (content/utils.js)
|
||||
* content/messenger-newsblog/feed-properties.xul (content/feed-properties.xul)
|
||||
* content/messenger-newsblog/feed-properties.js (content/feed-properties.js)
|
||||
* content/messenger-newsblog/contents.rdf (content/contents.rdf)
|
||||
|
||||
newsblog.jar:
|
||||
locale/en-US/messenger-newsblog/newsblog.dtd (locale/newsblog.dtd)
|
||||
* locale/en-US/messenger-newsblog/contents.rdf (locale/contents.rdf)
|
||||
locale/en-US/messenger-newsblog/newsblog.dtd (locale/newsblog.dtd)
|
||||
locale/en-US/messenger-newsblog/feed-properties.dtd (locale/feed-properties.dtd)
|
||||
* locale/en-US/messenger-newsblog/contents.rdf (locale/contents.rdf)
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
<!-- Feed Properties Dialog -->
|
||||
<!ENTITY window.title "News Feed Properties">
|
||||
|
||||
<!ENTITY feedName.label "Name: ">
|
||||
<!ENTITY feedName.accesskey "N">
|
||||
|
||||
<!ENTITY feedLocation.label "Location URL: ">
|
||||
<!ENTITY feedLocation.accesskey "L">
|
||||
|
||||
|
|
@ -1,2 +1,22 @@
|
|||
<!ENTITY newsBlogMenu.label "Feeds...">
|
||||
<!ENTITY newsBlogSubscriptions.label "Feeds">
|
||||
<!-- Tools Window Overlay -->
|
||||
<!ENTITY newsBlogMenu.label "News Feed Subscriptions...">
|
||||
<!ENTITY newsBlogMenu.accesskey "b">
|
||||
|
||||
<!-- customizeable toolbar button -->
|
||||
<!ENTITY newsBlogMenu.label "News & Blogs">
|
||||
<!ENTITY newsBlogMenu.tooltip "Manage news and blog feeds">
|
||||
|
||||
<!-- Subscription Dialog -->
|
||||
<!ENTITY newsBlogSubscriptions.label "News Feed Subscriptions">
|
||||
<!ENTITY subscriptionDesc.label "Manage your News & Blogs feeds.">
|
||||
<!ENTITY feedNameTreeCol.label "Name">
|
||||
<!ENTITY locationTreeCol.label "Location">
|
||||
<!ENTITY addButton.label "Add">
|
||||
<!ENTITY addButton.accesskey "A">
|
||||
<!ENTITY editButton.label "Edit">
|
||||
<!ENTITY editButton.accesskey "E">
|
||||
<!ENTITY deleteButton.label "Delete">
|
||||
<!ENTITY deleteButton.accesskey "D">
|
||||
|
||||
<!ENTITY feedNameTreeCol.label "Name">
|
||||
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
#button-newsandblogs {
|
||||
-moz-box-orient:vertical;
|
||||
/* from http://www.aaa-clipart.com/data/icons/mail/mail1.gif */
|
||||
list-style-image: url("chrome://messenger-newsblog/content/icon.gif");
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
classic.jar:
|
||||
skin/classic/messenger-newsblog/forumzilla.css (forumzilla.css)
|
||||
skin/classic/messenger-newsblog/subscriptions.css (subscriptions.css)
|
||||
skin/classic/messenger-newsblog/contents.rdf
|
|
@ -0,0 +1,39 @@
|
|||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is RSS News & Blogs subscription style rules.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Myk Melez <myk@melez.com>
|
||||
* Scott MacGregor <mscott@mozilla.org>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
||||
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
/* ::::: Subscription UI icons :::::: */
|
||||
|
||||
treechildren::-moz-tree-image(subs-name-column) {
|
||||
margin-right: 2px;
|
||||
list-style-image: url("chrome://messenger/skin/icons/folder-closed.png");
|
||||
}
|
Загрузка…
Ссылка в новой задаче