зеркало из https://github.com/mozilla/gecko-dev.git
more changes for the new subscribe dialog.
This commit is contained in:
Родитель
a0b141afcc
Коммит
9e2b1200cd
|
@ -273,11 +273,16 @@ function SubscribeOKCallback(serverURI, changeTable)
|
||||||
|
|
||||||
for (var name in changeTable) {
|
for (var name in changeTable) {
|
||||||
dump(name + " = " + changeTable[name] + "\n");
|
dump(name + " = " + changeTable[name] + "\n");
|
||||||
if (changeTable[name] == 1) {
|
if (changeTable[name] == true) {
|
||||||
|
dump("subscribe to " + name +"\n");
|
||||||
|
// should this be SubscribeFolder()?
|
||||||
NewFolder(name,serverURI);
|
NewFolder(name,serverURI);
|
||||||
}
|
}
|
||||||
else if (changeTable[name] == -1) {
|
else if (changeTable[name] == false) {
|
||||||
dump("unsuscribe\n");
|
dump("unsubscribe to " + name +"\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
dump("no change to " + name + "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
var gSubscribeTree = null;
|
var gSubscribeTree = null;
|
||||||
var gCurrentServer = null;
|
|
||||||
var okCallback = null;
|
var okCallback = null;
|
||||||
var gChangeTable = {};
|
var gChangeTable = {};
|
||||||
var gServerURI = null;
|
var gServerURI = null;
|
||||||
var RDF = null;
|
var RDF = null;
|
||||||
var SubscribeDS = null;
|
var gSubscribeDS = null;
|
||||||
var gCurrentServerURI = null;
|
|
||||||
|
|
||||||
function Stop()
|
function Stop()
|
||||||
{
|
{
|
||||||
|
@ -13,23 +11,45 @@ function Stop()
|
||||||
dump("we need to stop the news url that is running.\n");
|
dump("we need to stop the news url that is running.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function onServerClick(event)
|
||||||
|
{
|
||||||
|
var item = event.target;
|
||||||
|
gServerURI = item.id;
|
||||||
|
|
||||||
|
SetUpTree();
|
||||||
|
}
|
||||||
|
|
||||||
|
function SetUpServerMenu()
|
||||||
|
{
|
||||||
|
dump("SetUpServerMenu()\n");
|
||||||
|
|
||||||
|
var serverMenu = document.getElementById("serverMenu");
|
||||||
|
var menuitems = serverMenu.getElementsByAttribute("id", gServerURI);
|
||||||
|
|
||||||
|
serverMenu.selectedItem = menuitems[0];
|
||||||
|
}
|
||||||
|
|
||||||
function SetUpTree()
|
function SetUpTree()
|
||||||
{
|
{
|
||||||
dump("SetUpTree()\n");
|
dump("SetUpTree()\n");
|
||||||
|
|
||||||
|
var folder = GetMsgFolderFromUri(gServerURI);
|
||||||
|
var server = folder.server;
|
||||||
|
|
||||||
|
/* todo: this should be server.buildSubscribeDatasource() which does the right thing with its server. for imap */
|
||||||
var nntpService = Components.classes['component://netscape/messenger/nntpservice'].getService(Components.interfaces.nsINntpService);
|
var nntpService = Components.classes['component://netscape/messenger/nntpservice'].getService(Components.interfaces.nsINntpService);
|
||||||
nntpService = nntpService.QueryInterface(Components.interfaces.nsINntpService);
|
nntpService = nntpService.QueryInterface(Components.interfaces.nsINntpService);
|
||||||
nntpService.buildSubscribeDatasource(gCurrentServer);
|
nntpService.buildSubscribeDatasource(server);
|
||||||
|
|
||||||
gCurrentServerURI = "news://" + gCurrentServer.hostName;
|
dump("root subscribe tree at: "+ gServerURI +"\n");
|
||||||
dump("root subscribe tree at: "+gCurrentServerURI+"\n");
|
gSubscribeTree.setAttribute('ref',gServerURI);
|
||||||
gSubscribeTree.setAttribute('ref',gCurrentServerURI);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function SubscribeOnLoad()
|
function SubscribeOnLoad()
|
||||||
{
|
{
|
||||||
dump("SubscribeOnLoad()\n");
|
dump("SubscribeOnLoad()\n");
|
||||||
|
|
||||||
gSubscribeTree = document.getElementById('subscribetree');
|
gSubscribeTree = document.getElementById('subscribetree');
|
||||||
|
|
||||||
doSetOKCancel(subscribeOK,subscribeCancel);
|
doSetOKCancel(subscribeOK,subscribeCancel);
|
||||||
|
|
||||||
|
@ -45,21 +65,25 @@ function SubscribeOnLoad()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (window.arguments[0].preselectedURI) {
|
if (window.arguments[0].preselectedURI) {
|
||||||
gServerURI = window.arguments[0].preselectedURI;
|
var uri = window.arguments[0].preselectedURI;
|
||||||
dump("subscribe: got a uri," + gServerURI + "\n");
|
dump("subscribe: got a uri," + uri + "\n");
|
||||||
folder = GetMsgFolderFromUri(window.arguments[0].preselectedURI);
|
folder = GetMsgFolderFromUri(uri);
|
||||||
gCurrentServer = folder.server;
|
gServerURI = folder.server.serverURI;
|
||||||
|
|
||||||
SetUpTree();
|
|
||||||
|
|
||||||
RDF = Components.classes["component://netscape/rdf/rdf-service"].getService();
|
|
||||||
RDF = RDF.QueryInterface(Components.interfaces.nsIRDFService);
|
|
||||||
|
|
||||||
SubscribeDS = RDF.GetDataSource("rdf:subscribe");
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
dump("subscribe: no uri\n");
|
dump("subscribe: no uri\n");
|
||||||
|
var serverMenu = document.getElementById("serverMenu");
|
||||||
|
var menuitems = serverMenu.getElementsByTagName("menuitem");
|
||||||
|
gServerURI = menuitems[1].id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SetUpServerMenu();
|
||||||
|
SetUpTree();
|
||||||
|
|
||||||
|
RDF = Components.classes["component://netscape/rdf/rdf-service"].getService();
|
||||||
|
RDF = RDF.QueryInterface(Components.interfaces.nsIRDFService);
|
||||||
|
|
||||||
|
gSubscribeDS = RDF.GetDataSource("rdf:subscribe");
|
||||||
}
|
}
|
||||||
|
|
||||||
function subscribeOK()
|
function subscribeOK()
|
||||||
|
@ -78,24 +102,23 @@ function subscribeCancel()
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function SetState(uri, state)
|
function SetState(uri,state,stateStr)
|
||||||
{
|
{
|
||||||
dump("SetState(" + uri +"," + state + ")\n");
|
dump("SetState(" + uri +"," + state + "," + stateStr + ")\n");
|
||||||
if (!uri || !state) return;
|
if (!uri || !stateStr) return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var src = RDF.GetResource(uri, true);
|
var src = RDF.GetResource(uri, true);
|
||||||
var prop = RDF.GetResource("http://home.netscape.com/NC-rdf#Subscribed", true);
|
var prop = RDF.GetResource("http://home.netscape.com/NC-rdf#Subscribed", true);
|
||||||
var oldLiteral = SubscribeDS.GetTarget(src, prop, true);
|
var oldLiteral = gSubscribeDS.GetTarget(src, prop, true);
|
||||||
var newLiteral = RDF.GetLiteral(state);
|
|
||||||
dump("oldLiteral="+oldLiteral+"\n");
|
dump("oldLiteral="+oldLiteral+"\n");
|
||||||
|
|
||||||
if (oldLiteral) {
|
oldValue = oldLiteral.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
|
||||||
dump("oldLiteral.Value="+oldLiteral.Value+"\n");
|
dump("oldLiteral.Value="+oldValue+"\n");
|
||||||
SubscribeDS.Change(src, prop, oldLiteral, newLiteral);
|
if (oldValue != stateStr) {
|
||||||
}
|
var newLiteral = RDF.GetLiteral(stateStr);
|
||||||
else {
|
gSubscribeDS.Change(src, prop, oldLiteral, newLiteral);
|
||||||
SubscribeDS.Assert(src,prop, newLiteral, true);
|
StateChanged(name,state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (ex) {
|
catch (ex) {
|
||||||
|
@ -106,26 +129,38 @@ function SetState(uri, state)
|
||||||
function StateChanged(name,state)
|
function StateChanged(name,state)
|
||||||
{
|
{
|
||||||
dump("StateChanged(" + name + "," + state + ")\n");
|
dump("StateChanged(" + name + "," + state + ")\n");
|
||||||
if (!gChangeTable[name]) {
|
dump("start val=" +gChangeTable[name] + "\n");
|
||||||
gChangeTable[name] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (state == 'true') {
|
if (gChangeTable[name] == undefined) {
|
||||||
gChangeTable[name] = gChangeTable[name] + 1;
|
dump(name+" not in table yet\n");
|
||||||
|
gChangeTable[name] = state;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
gChangeTable[name] = gChangeTable[name] - 1;
|
var oldValue = gChangeTable[name];
|
||||||
|
dump(name+" already in table\n");
|
||||||
|
if (oldValue != state) {
|
||||||
|
gChangeTable[name] = undefined;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dump(gChangeTable[name] + "\n");
|
|
||||||
|
dump("end val=" +gChangeTable[name] + "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
function SetSubscribeState(state)
|
function SetSubscribeState(state)
|
||||||
{
|
{
|
||||||
dump("SetSubscribedState()\n");
|
dump("SetSubscribedState()\n");
|
||||||
|
|
||||||
|
var stateStr;
|
||||||
|
if (state) {
|
||||||
|
stateStr = 'true';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
stateStr = 'false';
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
dump("subscribe button clicked\n");
|
dump("subscribe button clicked\n");
|
||||||
|
|
||||||
var groupList = gSubscribeTree.selectedItems;
|
var groupList = gSubscribeTree.selectedItems;
|
||||||
for (i=0;i<groupList.length;i++) {
|
for (i=0;i<groupList.length;i++) {
|
||||||
group = groupList[i];
|
group = groupList[i];
|
||||||
|
@ -133,8 +168,7 @@ function SetSubscribeState(state)
|
||||||
dump(uri + "\n");
|
dump(uri + "\n");
|
||||||
name = group.getAttribute('name');
|
name = group.getAttribute('name');
|
||||||
dump(name + "\n");
|
dump(name + "\n");
|
||||||
SetState(uri, state);
|
SetState(uri,state,stateStr);
|
||||||
StateChanged(name,state);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (ex) {
|
catch (ex) {
|
||||||
|
@ -142,10 +176,17 @@ function SetSubscribeState(state)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function ReverseState(uri)
|
||||||
|
{
|
||||||
|
dump("ReverseState("+uri+")\n");
|
||||||
|
}
|
||||||
|
|
||||||
function SubscribeOnClick(event)
|
function SubscribeOnClick(event)
|
||||||
{
|
{
|
||||||
dump("subscribe tree clicked\n");
|
if (event.clickCount == 2) {
|
||||||
dump(event.target.parentNode.parentNode.getAttribute("id") + "\n");
|
var uri = event.target.parentNode.parentNode.getAttribute("id");
|
||||||
|
ReverseState(uri);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function RefreshList()
|
function RefreshList()
|
||||||
|
|
|
@ -45,24 +45,18 @@ Rights Reserved.
|
||||||
|
|
||||||
<box orient="horizontal" flex="100%">
|
<box orient="horizontal" flex="100%">
|
||||||
<box orient="vertical" flex="100%">
|
<box orient="vertical" flex="100%">
|
||||||
<box orient="horizontal" flex="100%">
|
<box orient="horizontal">
|
||||||
<text class="label" value="&server.label;" for="currentserver"/>
|
<text value="&server.label;"/>
|
||||||
<menulist id="currentserver" value="...">
|
<menulist oncommand="onServerClick(event);" id="serverMenu">
|
||||||
<menupopup>
|
<menupopup rdf:datasources="rdf:msgaccountmanager"
|
||||||
<menuitem value="news.mozilla.org" uri="news://news.mozilla.org" />
|
rdf:containment="http://home.netscape.com/NC-rdf#child"
|
||||||
<menuitem value="news.fresmeat.net" uri="news://news.freshmeat.net" />
|
ref="msgaccounts:/">
|
||||||
<menuitem value="news.mcom.com" uri="news://news.mcom.com" />
|
<template>
|
||||||
<!--
|
<menuitem uri="..." value="rdf:http://home.netscape.com/NC-rdf#Name"/>
|
||||||
<menupopup datasources="rdf:msgaccountmanager" ref="msgaccounts:/">
|
</template>
|
||||||
<template>
|
</menupopup>
|
||||||
<rule>
|
</menulist>
|
||||||
<menuitem value="..."/>
|
</box>
|
||||||
</rule>
|
|
||||||
</template>
|
|
||||||
-->
|
|
||||||
</menupopup>
|
|
||||||
</menulist>
|
|
||||||
</box>
|
|
||||||
<box orient="horizontal" flex="100%">
|
<box orient="horizontal" flex="100%">
|
||||||
<text class="label" value="&folders.label;" for="name"/>
|
<text class="label" value="&folders.label;" for="name"/>
|
||||||
<textfield id="name"/>
|
<textfield id="name"/>
|
||||||
|
@ -109,8 +103,8 @@ Rights Reserved.
|
||||||
</box>
|
</box>
|
||||||
<box orient="vertical" flex="20%">
|
<box orient="vertical" flex="20%">
|
||||||
<spring flex="100%"/>
|
<spring flex="100%"/>
|
||||||
<titledbutton id="subscribe" class="push" value="&subscribeButton.label;" onclick="SetSubscribeState('true')"/>
|
<titledbutton id="subscribe" class="push" value="&subscribeButton.label;" onclick="SetSubscribeState(true)"/>
|
||||||
<titledbutton id="unsubscribe" class="push" value="&unsubscribeButton.label;" onclick="SetSubscribeState('false')"/>
|
<titledbutton id="unsubscribe" class="push" value="&unsubscribeButton.label;" onclick="SetSubscribeState(false)"/>
|
||||||
<titledbutton id="refresh" class="push" value="&refreshButton.label;" onclick="RefreshList()"/>
|
<titledbutton id="refresh" class="push" value="&refreshButton.label;" onclick="RefreshList()"/>
|
||||||
<titledbutton id="stop" class="push" value="&stopButton.label;" onclick="Stop()"/>
|
<titledbutton id="stop" class="push" value="&stopButton.label;" onclick="Stop()"/>
|
||||||
<spring flex="100%"/>
|
<spring flex="100%"/>
|
||||||
|
|
Загрузка…
Ссылка в новой задаче