зеркало из https://github.com/mozilla/pjs.git
more checkins for the new subscribe dialog.
make it so only subscribable servers show up in the server picker. make it so "newsgroup" turns to "folder" if subscribing to imap. do the basic wiring to imap servers are hooked in. clean up my css.
This commit is contained in:
Родитель
a76d125ae2
Коммит
02f1da358b
|
@ -11,11 +11,31 @@ function Stop()
|
|||
dump("we need to stop the news url that is running.\n");
|
||||
}
|
||||
|
||||
var Bundle = srGetStrBundle("chrome://messenger/locale/subscribe.properties");
|
||||
|
||||
function SetServerTypeSpecificTextValues()
|
||||
{
|
||||
var serverType = GetMsgFolderFromUri(gServerURI).server.type;
|
||||
dump("serverType="+serverType+"\n");
|
||||
|
||||
/* set the server specific ui elements */
|
||||
var element = document.getElementById("foldertextlabel");
|
||||
var stringName = "foldertextfor-" + serverType;
|
||||
var stringval = Bundle.GetStringFromName(stringName);
|
||||
element.setAttribute('value',stringval);
|
||||
|
||||
stringName = "foldersheaderfor-" + serverType;
|
||||
stringval = Bundle.GetStringFromName(stringName);
|
||||
element = document.getElementById("foldersheaderlabel");
|
||||
element.setAttribute('value',stringval);
|
||||
}
|
||||
|
||||
function onServerClick(event)
|
||||
{
|
||||
var item = event.target;
|
||||
gServerURI = item.id;
|
||||
|
||||
SetServerTypeSpecificTextValues();
|
||||
SetUpTree();
|
||||
}
|
||||
|
||||
|
@ -27,6 +47,8 @@ function SetUpServerMenu()
|
|||
var menuitems = serverMenu.getElementsByAttribute("id", gServerURI);
|
||||
|
||||
serverMenu.selectedItem = menuitems[0];
|
||||
|
||||
SetServerTypeSpecificTextValues();
|
||||
}
|
||||
|
||||
var MySubscribeListener = {
|
||||
|
|
|
@ -19,8 +19,6 @@ Communications Corporation. Portions created by Netscape are
|
|||
Rights Reserved.
|
||||
-->
|
||||
|
||||
<?xml-stylesheet href="chrome://messenger/skin/messenger.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://messenger/skin/folderPane.css" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://messenger/skin/subscribe.css" type="text/css"?>
|
||||
|
||||
<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?>
|
||||
|
@ -39,6 +37,7 @@ Rights Reserved.
|
|||
onload="SubscribeOnLoad()"
|
||||
style="padding:10px">
|
||||
|
||||
<html:script language="JavaScript" src="chrome://global/content/strres.js"/>
|
||||
<html:script language="JavaScript" src="chrome://messenger/content/widgetglue.js"/>
|
||||
<html:script language="JavaScript" src="chrome://messenger/content/subscribe.js"/>
|
||||
|
||||
|
@ -48,18 +47,22 @@ Rights Reserved.
|
|||
<box orient="vertical" flex="100%">
|
||||
<box orient="horizontal">
|
||||
<text value="&server.label;"/>
|
||||
<menulist oncommand="onServerClick(event);" id="serverMenu">
|
||||
<menupopup rdf:datasources="rdf:msgaccountmanager"
|
||||
<menulist oncommand="onServerClick(event);" id="serverMenu"
|
||||
rdf:datasources="rdf:msgaccountmanager rdf:mailnewsfolders"
|
||||
rdf:ignore="http://home.netscape.com/NC-rdf#MessageChild"
|
||||
rdf:containment="http://home.netscape.com/NC-rdf#child"
|
||||
ref="msgaccounts:/">
|
||||
<template>
|
||||
<rule NC:CanSubscribe="true">
|
||||
<menupopup>
|
||||
<menuitem uri="..." value="rdf:http://home.netscape.com/NC-rdf#Name"/>
|
||||
</template>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menulist>
|
||||
</box>
|
||||
<box orient="horizontal" flex="100%">
|
||||
<text class="label" value="&folders.label;" for="name"/>
|
||||
<text id="foldertextlabel" class="label" value="..." for="name"/>
|
||||
<textfield id="name"/>
|
||||
</box>
|
||||
</box>
|
||||
|
@ -78,7 +81,7 @@ Rights Reserved.
|
|||
<treeitem uri="..." name="rdf:http://home.netscape.com/NC-rdf#Name" Subscribed="rdf:http://home.netscape.com/NC-rdf#Subscribed">
|
||||
<treerow>
|
||||
<treecell indent="true" class="treecell-indent" value="rdf:http://home.netscape.com/NC-rdf#Name"/>
|
||||
<treecell allowevents="true" class="subscribedcol image" onclick="return top.ReverseStateFromNode(event.target.parentNode.parentNode.parentNode)"/>
|
||||
<treecell class="treecell-image subscribedcol" allowevents="true" onclick="return top.ReverseStateFromNode(event.target.parentNode.parentNode.parentNode)" value="rdf:http://home.netscape.com/NC-rdf#Subscribed"/>
|
||||
<treecell value="rdf:http://home.netscape.com/NC-rdf#TotalMessages"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
|
@ -94,7 +97,7 @@ Rights Reserved.
|
|||
|
||||
<treehead>
|
||||
<treerow id="headRow">
|
||||
<treecell value="&foldersHeader.label;" />
|
||||
<treecell id="foldersheaderlabel" value="..." />
|
||||
<treecell value="&subscribedHeader.label;"/>
|
||||
<treecell value="&messagesHeader.label;"/>
|
||||
</treerow>
|
||||
|
|
|
@ -4,6 +4,7 @@ threadpane.dtd
|
|||
folderpane.dtd
|
||||
newFolderNameDialog.dtd
|
||||
subscribe.dtd
|
||||
subscribe.properties
|
||||
subscribeDialog.dtd
|
||||
sidebar-messenger.dtd
|
||||
sidebar-messenger-rdf.dtd
|
||||
|
|
|
@ -35,6 +35,7 @@ EXPORT_RESOURCE_CONTENT = \
|
|||
$(srcdir)/newFolderNameDialog.dtd \
|
||||
$(srcdir)/subscribeDialog.dtd \
|
||||
$(srcdir)/subscribe.dtd \
|
||||
$(srcdir)/subscribe.properties \
|
||||
$(srcdir)/sidebar-messenger.dtd \
|
||||
$(srcdir)/sidebar-messenger-rdf.dtd \
|
||||
$(srcdir)/msgFolderPickerOverlay.dtd \
|
||||
|
|
|
@ -34,6 +34,7 @@ install::
|
|||
$(MAKE_INSTALL) newFolderNameDialog.dtd $(LOCALEDIR)
|
||||
$(MAKE_INSTALL) subscribeDialog.dtd $(LOCALEDIR)
|
||||
$(MAKE_INSTALL) subscribe.dtd $(LOCALEDIR)
|
||||
$(MAKE_INSTALL) subscribe.properties $(LOCALEDIR)
|
||||
$(MAKE_INSTALL) sidebar-messenger.dtd $(LOCALEDIR)
|
||||
$(MAKE_INSTALL) sidebar-messenger-rdf.dtd $(LOCALEDIR)
|
||||
$(MAKE_INSTALL) msgFolderPickerOverlay.dtd $(LOCALEDIR)
|
||||
|
|
|
@ -22,8 +22,6 @@ Rights Reserved.
|
|||
<!ENTITY unsubscribeButton.label "Unsubscribe">
|
||||
<!ENTITY refreshButton.label "Refresh">
|
||||
<!ENTITY stopButton.label "Stop">
|
||||
<!ENTITY folders.label "Newsgroup:">
|
||||
<!ENTITY server.label "Server:">
|
||||
<!ENTITY foldersHeader.label "newsgroup">
|
||||
<!ENTITY subscribedHeader.label "subscribed">
|
||||
<!ENTITY messagesHeader.label "messages">
|
||||
<!ENTITY subscribedHeader.label "Subscribe">
|
||||
<!ENTITY messagesHeader.label "Messages">
|
||||
|
|
|
@ -18,10 +18,12 @@
|
|||
* Rights Reserved.
|
||||
*/
|
||||
|
||||
treeitem[Subscribed="false"] > treerow > treecell.subscribedcol > .tree-button {
|
||||
@import url(chrome://global/skin/global.css);
|
||||
|
||||
.subscribedcol {
|
||||
list-style-image: url("chrome://messenger/skin/dot.gif");
|
||||
}
|
||||
|
||||
treeitem[Subscribed="true"] > treerow > treecell.subscribedcol > .tree-button {
|
||||
.subscribedcol[value="true"] {
|
||||
list-style-image: url("chrome://messenger/skin/check.gif");
|
||||
}
|
||||
|
|
|
@ -18,6 +18,11 @@
|
|||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* David Bienvenu <bienvenu@netscape.com>
|
||||
* Jeff Tsai <jefft@netscape.com>
|
||||
* Scott MacGregor <mscott@netscape.com>
|
||||
* Seth Spitzer <sspitzer@netscape.com>
|
||||
* Alecf Flett <alecf@netscape.com>
|
||||
* Pierre Phaneuf <pp@ludusdesign.com>
|
||||
*/
|
||||
|
||||
|
@ -66,32 +71,12 @@ static NS_DEFINE_CID(kMsgLogonRedirectorServiceCID, NS_MSGLOGONREDIRECTORSERVICE
|
|||
NS_IMPL_ADDREF_INHERITED(nsImapIncomingServer, nsMsgIncomingServer)
|
||||
NS_IMPL_RELEASE_INHERITED(nsImapIncomingServer, nsMsgIncomingServer)
|
||||
|
||||
NS_IMETHODIMP nsImapIncomingServer::QueryInterface(REFNSIID aIID, void** aInstancePtr)
|
||||
{
|
||||
if (!aInstancePtr) return NS_ERROR_NULL_POINTER;
|
||||
*aInstancePtr = nsnull;
|
||||
|
||||
if (aIID.Equals(NS_GET_IID(nsIImapServerSink)))
|
||||
{
|
||||
*aInstancePtr = NS_STATIC_CAST(nsIImapServerSink*, this);
|
||||
}
|
||||
else if(aIID.Equals(NS_GET_IID(nsIImapIncomingServer)))
|
||||
{
|
||||
*aInstancePtr = NS_STATIC_CAST(nsIImapIncomingServer*, this);
|
||||
}
|
||||
else if (aIID.Equals(NS_GET_IID(nsIMsgLogonRedirectionRequester)))
|
||||
{
|
||||
*aInstancePtr = NS_STATIC_CAST(nsIMsgLogonRedirectionRequester*, this);
|
||||
}
|
||||
if(*aInstancePtr)
|
||||
{
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return nsMsgIncomingServer::QueryInterface(aIID, aInstancePtr);
|
||||
}
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN(nsImapIncomingServer)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIImapServerSink)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIImapIncomingServer)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIMsgLogonRedirectionRequester)
|
||||
NS_INTERFACE_MAP_ENTRY(nsISubscribableServer)
|
||||
NS_INTERFACE_MAP_END_INHERITING(nsMsgIncomingServer)
|
||||
|
||||
nsImapIncomingServer::nsImapIncomingServer()
|
||||
{
|
||||
|
@ -1762,3 +1747,32 @@ NS_IMETHODIMP nsImapIncomingServer::OnLogonRedirectionReply(const PRUnichar *pHo
|
|||
return rv;
|
||||
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsImapIncomingServer::PopulateSubscribeDatasource(nsIMsgWindow *aMsgWindow)
|
||||
{
|
||||
nsresult rv;
|
||||
#ifdef DEBUG_sspitzer
|
||||
printf("in PopulateSubscribeDatasource()\n");
|
||||
#endif
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsImapIncomingServer::SetSubscribeListener(nsISubscribeListener *aListener)
|
||||
{
|
||||
if (!aListener) return NS_ERROR_NULL_POINTER;
|
||||
mSubscribeListener = aListener;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsImapIncomingServer::GetSubscribeListener(nsISubscribeListener **aListener)
|
||||
{
|
||||
if (!aListener) return NS_ERROR_NULL_POINTER;
|
||||
if (mSubscribeListener) {
|
||||
*aListener = mSubscribeListener;
|
||||
NS_ADDREF(*aListener);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
|
@ -30,12 +30,14 @@
|
|||
#include "nsIImapServerSink.h"
|
||||
#include "nsIStringBundle.h"
|
||||
#include "nsIMsgLogonRedirector.h"
|
||||
#include "nsISubscribableServer.h"
|
||||
|
||||
/* get some implementation from nsMsgIncomingServer */
|
||||
class nsImapIncomingServer : public nsMsgIncomingServer,
|
||||
public nsIImapIncomingServer,
|
||||
public nsIImapServerSink,
|
||||
public nsIMsgLogonRedirectionRequester
|
||||
public nsIMsgLogonRedirectionRequester,
|
||||
public nsISubscribableServer
|
||||
|
||||
{
|
||||
public:
|
||||
|
@ -51,6 +53,7 @@ public:
|
|||
NS_DECL_NSIIMAPINCOMINGSERVER
|
||||
NS_DECL_NSIIMAPSERVERSINK
|
||||
NS_DECL_NSIMSGLOGONREDIRECTIONREQUESTER
|
||||
NS_DECL_NSISUBSCRIBABLESERVER
|
||||
|
||||
NS_IMETHOD PerformBiff();
|
||||
NS_IMETHOD CloseCachedConnections();
|
||||
|
@ -82,6 +85,7 @@ private:
|
|||
PRBool m_waitingForConnectionInfo;
|
||||
PRInt32 m_redirectedLogonRetries;
|
||||
nsCOMPtr<nsIMsgLogonRedirector> m_logonRedirector;
|
||||
nsCOMPtr <nsISubscribeListener> mSubscribeListener;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -1081,6 +1081,21 @@ nsImapMailFolder::GetCanCreateSubfolders(PRBool *aResult)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsImapMailFolder::GetCanSubscribe(PRBool *aResult)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aResult);
|
||||
*aResult = PR_FALSE;
|
||||
|
||||
PRBool isImapServer = PR_FALSE;
|
||||
nsresult rv = GetIsServer(&isImapServer);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
// you can only subscribe to imap servers, not imap folders
|
||||
*aResult = isImapServer;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult nsImapMailFolder::GetServerKey(char **serverKey)
|
||||
{
|
||||
// look for matching imap folders, then pop folders
|
||||
|
|
|
@ -140,6 +140,7 @@ public:
|
|||
NS_IMETHOD GetSizeOnDisk(PRUint32 * size);
|
||||
|
||||
NS_IMETHOD GetCanCreateSubfolders(PRBool *aResult);
|
||||
NS_IMETHOD GetCanSubscribe(PRBool *aResult);
|
||||
|
||||
NS_IMETHOD UserNeedsToAuthenticateForFolder(PRBool displayOnly, PRBool *authenticate);
|
||||
NS_IMETHOD RememberPassword(const char *password);
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
* Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Seth Spitzer <sspitzer@netscape.com>
|
||||
* David Bienvenu <bienvenu@netscape.com>
|
||||
*/
|
||||
|
||||
#include "nsNntpIncomingServer.h"
|
||||
|
@ -517,7 +519,7 @@ nsNntpIncomingServer::SetNewsgroupAsSubscribed(const char *aName)
|
|||
NS_ASSERTION(aName,"newsgroup with no name");
|
||||
if (!aName) return NS_ERROR_FAILURE;
|
||||
|
||||
#ifdef DEBUG_NEWS
|
||||
#ifdef DEBUG_sspitzer
|
||||
printf("SetNewsgroupAsSubscribed(%s)\n",aName);
|
||||
#endif
|
||||
nsXPIDLCString serverUri;
|
||||
|
@ -602,6 +604,9 @@ nsNntpIncomingServer::AddNewNewsgroup(const char *aName)
|
|||
|
||||
nsCOMPtr<nsIRDFResource> newsgroupResource;
|
||||
rv = rdfService->GetResource((const char *) groupUri, getter_AddRefs(newsgroupResource));
|
||||
#ifdef DEBUG_sspitzer
|
||||
printf("child=%s\n",(const char *)groupUri);
|
||||
#endif
|
||||
|
||||
nsCOMPtr<nsIRDFLiteral> nameLiteral;
|
||||
nsAutoString nameString; nameString.AssignWithConversion(aName);
|
||||
|
@ -642,10 +647,16 @@ nsNntpIncomingServer::AddNewNewsgroup(const char *aName)
|
|||
if (dotpos > slashpos) {
|
||||
groupUri.Truncate(dotpos);
|
||||
|
||||
#ifdef DEBUG_sspitzer
|
||||
printf("parent=%s\n\n",(const char *)groupUri);
|
||||
#endif
|
||||
rv = rdfService->GetResource((const char *)groupUri, getter_AddRefs(parent));
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
}
|
||||
else {
|
||||
#ifdef DEBUG_sspitzer
|
||||
printf("parent=%s\n\n",(const char *)serverUri);
|
||||
#endif
|
||||
rv = rdfService->GetResource((const char *)serverUri, getter_AddRefs(parent));
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
}
|
||||
|
@ -848,7 +859,9 @@ NS_IMETHODIMP
|
|||
nsNntpIncomingServer::PopulateSubscribeDatasource(nsIMsgWindow *aMsgWindow)
|
||||
{
|
||||
nsresult rv;
|
||||
#ifdef DEBUG_sspitzer
|
||||
printf("in PopulateSubscribeDatasource()\n");
|
||||
#endif
|
||||
nsCOMPtr<nsINntpService> nntpService = do_GetService(kNntpServiceCID, &rv);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
if (!nntpService) return NS_ERROR_FAILURE;
|
||||
|
|
Загрузка…
Ссылка в новой задаче