home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / mozil06.zip / bin / chrome / messenger.jar / content / messenger / downloadheaders.js < prev    next >
Text File  |  2001-02-14  |  5KB  |  136 lines

  1. /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  * The contents of this file are subject to the Netscape Public
  4.  * License Version 1.1 (the "License"); you may not use this file
  5.  * except in compliance with the License. You may obtain a copy of
  6.  * the License at http://www.mozilla.org/NPL/
  7.  *
  8.  * Software distributed under the License is distributed on an "AS
  9.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  10.  * implied. See the License for the specific language governing
  11.  * rights and limitations under the License.
  12.  *
  13.  * The Original Code is mozilla.org code.
  14.  *
  15.  * The Initial Developer of the Original Code is Netscape
  16.  * Communications Corporation.  Portions created by Netscape are
  17.  * Copyright (C) 1998 Netscape Communications Corporation. All
  18.  * Rights Reserved.
  19.  *
  20.  * Contributor(s):
  21.  *    Seth Spitzer <sspitzer@netscape.com>
  22.  *  Ben Goodger <ben@netscape.com>
  23.  */  
  24.  
  25. var newmessages = "";
  26. var newsgroupname = "";
  27. var Bundle = srGetStrBundle("chrome://messenger/locale/news.properties");
  28. var prefs = Components.classes['@mozilla.org/preferences;1'].getService();
  29. prefs = prefs.QueryInterface(Components.interfaces.nsIPref); 
  30.  
  31. var serverid = null;
  32. var markreadElement = null;
  33. var numberElement = null;
  34.  
  35. var server = null;
  36. var nntpServer = null;
  37. var param = null;
  38.  
  39.  
  40. function OnLoad()
  41. {
  42.     doSetOKCancel(OkButtonCallback, CancelButtonCallback);
  43.  
  44.     if (window.arguments && window.arguments[0]) {
  45.         //dump ("param = " + window.arguments[0] + "\n");
  46.         param = window.arguments[0].QueryInterface( Components.interfaces.nsIDialogParamBlock );
  47.         //dump ("after QI param = " + window.arguments[0] + "\n");
  48.     
  49.         newmessages = param.GetInt(2);
  50.         newsgroupname = param.GetString(0);
  51.         serverid = param.GetString(1);
  52.  
  53.         param.SetInt(0, 0); /* by default, act like the user hit cancel */
  54.         param.SetInt(1, 0); /* by default, act like the user did not select download all */
  55.  
  56.         //dump("new message count = " + newmessages + "\n");
  57.         //dump("newsgroup name = " + newsgroupname + "\n");
  58.         //dump("serverid = " + serverid + "\n");
  59.  
  60.         var accountManager = Components.classes["@mozilla.org/messenger/account-manager;1"].getService(Components.interfaces.nsIMsgAccountManager);
  61.         server = accountManager.getIncomingServer(serverid);
  62.         nntpServer = server.QueryInterface(Components.interfaces.nsINntpIncomingServer);
  63.  
  64.         var downloadHeadersTitlePrefix = Bundle.GetStringFromName("downloadHeadersTitlePrefix");
  65.         var downloadHeadersInfoText1 = Bundle.GetStringFromName("downloadHeadersInfoText1");
  66.         var downloadHeadersInfoText2 = Bundle.GetStringFromName("downloadHeadersInfoText2");
  67.     var okButtonText = Bundle.GetStringFromName("okButtonText");
  68.  
  69.         // doesn't JS have a printf?
  70.         window.title = downloadHeadersTitlePrefix;
  71.         var infotext = downloadHeadersInfoText1 + " " + newmessages + " " + downloadHeadersInfoText2;
  72.         setText('info',infotext); 
  73.     var okbutton = document.getElementById("ok");
  74.     okbutton.setAttribute("value", okButtonText);
  75.     setText("newsgroupLabel", newsgroupname);
  76.     }
  77.  
  78.  
  79.     numberElement = document.getElementById("number");
  80.     numberElement.value = nntpServer.maxArticles;
  81.  
  82.     markreadElement = document.getElementById("markread");
  83.     markreadElement.checked = nntpServer.markOldRead;
  84.  
  85.     return true;
  86. }
  87.  
  88. function setText(id, value) {
  89.     var element = document.getElementById(id);
  90.     if (!element) return;
  91.        if (element.hasChildNodes())  
  92.       element.removeChild(element.firstChild);
  93.     var textNode = document.createTextNode(value);
  94.     element.appendChild(textNode);
  95. }
  96.  
  97. function OkButtonCallback() {
  98.     nntpServer.maxArticles = numberElement.value;
  99.     //dump("mark read checked?="+markreadElement.checked+"\n");
  100.     nntpServer.markOldRead = markreadElement.checked;
  101.  
  102.     var radio = document.getElementById("all");
  103.     if (radio) {
  104.         //dump("all radio value " + radio.checked + "\n");
  105.         if (radio.checked) {
  106.             param.SetInt(1, 1); /* the user selected download all */
  107.         }
  108.         else {
  109.             param.SetInt(1, 0); /* the user did not select download all */
  110.         }
  111.     }
  112.  
  113.     param.SetInt(0, 1); /* user hit OK */
  114.  
  115.     return true;
  116. }
  117.  
  118. function CancelButtonCallback() {
  119.     param.SetInt(0, 0); /* user hit Cancel */
  120.     return true;
  121. }
  122.  
  123. function doCheckboxEnabling() {
  124.   var allRadio = document.getElementById("all");
  125.   var checkbox = document.getElementById("markread");
  126.   var numberFld = document.getElementById("number");
  127.   if (allRadio && allRadio.checked) {
  128.     checkbox.setAttribute("disabled", "true");
  129.     numberFld.setAttribute("disabled", "true");
  130.   }
  131.   else {
  132.     checkbox.removeAttribute("disabled");
  133.     numberFld.removeAttribute("disabled");
  134.   }
  135. }
  136.