This is just some static backup of the original site, don't expect every link to work!

Ignore:
Timestamp:
Nov 3, 2014, 12:35:40 PM (8 years ago)
Author:
rene <rene@…>
Branches:
ng_0.9
Children:
7204cb
Parents:
3c9c29
Message:

code formatting (no code changes)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • content/prefDialog/vI_prefDialog_FolderPicker.js

    r3c9c29 r509348  
    1 
    21/**
    3 * some code copied and adapted from Thunderbird Sources
    4 * thanks to all Thunderbird Developers
    5 */
     2 * some code copied and adapted from Thunderbird Sources
     3 * thanks to all Thunderbird Developers
     4 */
    65
    76/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
     
    4443
    4544Components.utils.import("resource://v_identity/vI_nameSpaceWrapper.js");
    46 virtualIdentityExtension.ns(function() { with (virtualIdentityExtension.LIB) {
    47 
    48 var gFccRadioElemChoice, gDraftsRadioElemChoice, gTmplRadioElemChoice;
    49 var gFccRadioElemChoiceLocked, gDraftsRadioElemChoiceLocked, gTmplRadioElemChoiceLocked;
    50 var gDefaultPickerMode = "3";
    51 
    52 var gFccFolderWithDelim, gDraftsFolderWithDelim, gTemplatesFolderWithDelim;
    53 
    54 // Picker IDs
    55 var fccAccountPickerId = "msgFccAccountPicker";
    56 var fccFolderPickerId = "msgFccFolderPicker";
    57 var draftsAccountPickerId = "msgDraftsAccountPicker";
    58 var draftsFolderPickerId = "msgDraftsFolderPicker";
    59 var tmplAccountPickerId = "msgStationeryAccountPicker";
    60 var tmplFolderPickerId = "msgStationeryFolderPicker";
    61 
    62 var _GetMsgFolderFromUri = function(uri, checkFolderAttributes)
    63 {
    64     let msgfolder = null;
    65     if (typeof MailUtils != 'undefined') {
    66     return MailUtils.getFolderForURI(uri, checkFolderAttributes);
    67     }
    68     try { // Postbox
    69     let resource = GetResourceFromUri(uri);
    70     msgfolder = resource.QueryInterface(Components.interfaces.nsIMsgFolder);
    71     if (checkFolderAttributes) {
    72         if (!(msgfolder && (msgfolder.parent || msgfolder.isServer))) {
    73         msgfolder = null;
     45virtualIdentityExtension.ns(function () {
     46  with(virtualIdentityExtension.LIB) {
     47
     48    var gFccRadioElemChoice, gDraftsRadioElemChoice, gTmplRadioElemChoice;
     49    var gFccRadioElemChoiceLocked, gDraftsRadioElemChoiceLocked, gTmplRadioElemChoiceLocked;
     50    var gDefaultPickerMode = "3";
     51
     52    var gFccFolderWithDelim, gDraftsFolderWithDelim, gTemplatesFolderWithDelim;
     53
     54    // Picker IDs
     55    var fccAccountPickerId = "msgFccAccountPicker";
     56    var fccFolderPickerId = "msgFccFolderPicker";
     57    var draftsAccountPickerId = "msgDraftsAccountPicker";
     58    var draftsFolderPickerId = "msgDraftsFolderPicker";
     59    var tmplAccountPickerId = "msgStationeryAccountPicker";
     60    var tmplFolderPickerId = "msgStationeryFolderPicker";
     61
     62    var _GetMsgFolderFromUri = function (uri, checkFolderAttributes) {
     63      let msgfolder = null;
     64      if (typeof MailUtils != 'undefined') {
     65        return MailUtils.getFolderForURI(uri, checkFolderAttributes);
     66      }
     67      try { // Postbox
     68        let resource = GetResourceFromUri(uri);
     69        msgfolder = resource.QueryInterface(Components.interfaces.nsIMsgFolder);
     70        if (checkFolderAttributes) {
     71          if (!(msgfolder && (msgfolder.parent || msgfolder.isServer))) {
     72            msgfolder = null;
     73          }
    7474        }
    75     }
    76     }
    77     catch (ex) {
    78     //dump("failed to get the folder resource\n");
    79     }
    80     return msgfolder;
    81 }
    82  
    83 var setDefaultCopiesAndFoldersPrefs = function(identity, server, accountData)
    84 {
    85     var am = Components.classes["@mozilla.org/messenger/account-manager;1"].getService(Components.interfaces.nsIMsgAccountManager);
    86     var rootFolder = am.defaultAccount.incomingServer.rootFolder
    87 
    88     var fccElement = document.getElementById("VIdent_identity.fccFolder")
    89     var fccElementValue = fccElement.getAttribute("value");
    90     if (!fccElementValue || !GetMsgFolderFromUri(fccElementValue, false))
    91         fccElement.setAttribute("value", rootFolder.server.serverURI + gFccFolderWithDelim)
    92 
    93     var draftElement = document.getElementById("VIdent_identity.draftFolder")
    94     var draftElementValue = draftElement.getAttribute("value");
    95     if (!draftElementValue || !GetMsgFolderFromUri(draftElementValue, false))
    96         draftElement.setAttribute("value", rootFolder.server.serverURI + gDraftsFolderWithDelim)
    97 
    98     var stationeryElement = document.getElementById("VIdent_identity.stationeryFolder")
    99     var stationeryElementValue = stationeryElement.getAttribute("value");
    100     if (!stationeryElementValue || !GetMsgFolderFromUri(stationeryElementValue, false))
    101         stationeryElement.setAttribute("value", rootFolder.server.serverURI + gTemplatesFolderWithDelim)
    102 }
    103 
    104 
    105 var onInitCopiesAndFolders = function()
    106 {
    107     SetSpecialFolderNamesWithDelims();
    108     SetGlobalRadioElemChoices();
    109 
    110     setDefaultCopiesAndFoldersPrefs();
    111 
    112     SetFolderDisplay(gFccRadioElemChoice, gFccRadioElemChoiceLocked,
    113                      "VIdent_fcc",
    114                      fccAccountPickerId,
    115                      "VIdent_identity.fccFolder",
    116                      fccFolderPickerId);
    117 
    118     SetFolderDisplay(gDraftsRadioElemChoice, gDraftsRadioElemChoiceLocked,
    119                      "VIdent_draft",
    120                      draftsAccountPickerId,
    121                      "VIdent_identity.draftFolder",
    122                      draftsFolderPickerId);
    123 
    124     SetFolderDisplay(gTmplRadioElemChoice, gTmplRadioElemChoiceLocked,
    125                      "VIdent_tmpl",
    126                      tmplAccountPickerId,
    127                      "VIdent_identity.stationeryFolder",
    128                      tmplFolderPickerId);
    129 
    130     setupFccItems();
    131 }
    132 
    133 // Initialize the picker mode choices (account/folder picker) into global vars
    134 var SetGlobalRadioElemChoices = function()
    135 {
    136     var pickerModeElement = document.getElementById("VIdent_identity.fccFolderPickerMode");
    137     gFccRadioElemChoice = pickerModeElement.getAttribute("value");
    138     gFccRadioElemChoiceLocked = pickerModeElement.getAttribute("disabled");
    139     if (!gFccRadioElemChoice) gFccRadioElemChoice = gDefaultPickerMode;
    140 
    141     pickerModeElement = document.getElementById("VIdent_identity.draftFolderPickerMode");
    142     gDraftsRadioElemChoice = pickerModeElement.getAttribute("value");
    143     gDraftsRadioElemChoiceLocked = pickerModeElement.getAttribute("disabled");
    144     if (!gDraftsRadioElemChoice) gDraftsRadioElemChoice = gDefaultPickerMode;
    145 
    146     pickerModeElement = document.getElementById("VIdent_identity.stationeryFolderPickerMode");
    147     gTmplRadioElemChoice = pickerModeElement.getAttribute("value");
    148     gTmplRadioElemChoiceLocked = pickerModeElement.getAttribute("disabled");
    149     if (!gTmplRadioElemChoice) gTmplRadioElemChoice = gDefaultPickerMode;
    150 }
    151 
    152 /*
    153  * Set Account and Folder elements based on the values read from
    154  * preferences file. Default picker mode, if none specified at this stage, is
    155  * set to 1 i.e., Other picker displaying the folder value read from the
    156  * preferences file.
    157  */
    158 var SetFolderDisplay = function(pickerMode, disableMode,
    159                           radioElemPrefix,
    160                           accountPickerId,
    161                           folderPickedField,
    162                           folderPickerId)
    163 {
    164     if (!pickerMode)
     75      } catch (ex) {
     76        //dump("failed to get the folder resource\n");
     77      }
     78      return msgfolder;
     79    }
     80
     81    var setDefaultCopiesAndFoldersPrefs = function (identity, server, accountData) {
     82      var am = Components.classes["@mozilla.org/messenger/account-manager;1"].getService(Components.interfaces.nsIMsgAccountManager);
     83      var rootFolder = am.defaultAccount.incomingServer.rootFolder
     84
     85      var fccElement = document.getElementById("VIdent_identity.fccFolder")
     86      var fccElementValue = fccElement.getAttribute("value");
     87      if (!fccElementValue || !GetMsgFolderFromUri(fccElementValue, false))
     88        fccElement.setAttribute("value", rootFolder.server.serverURI + gFccFolderWithDelim)
     89
     90      var draftElement = document.getElementById("VIdent_identity.draftFolder")
     91      var draftElementValue = draftElement.getAttribute("value");
     92      if (!draftElementValue || !GetMsgFolderFromUri(draftElementValue, false))
     93        draftElement.setAttribute("value", rootFolder.server.serverURI + gDraftsFolderWithDelim)
     94
     95      var stationeryElement = document.getElementById("VIdent_identity.stationeryFolder")
     96      var stationeryElementValue = stationeryElement.getAttribute("value");
     97      if (!stationeryElementValue || !GetMsgFolderFromUri(stationeryElementValue, false))
     98        stationeryElement.setAttribute("value", rootFolder.server.serverURI + gTemplatesFolderWithDelim)
     99    }
     100
     101
     102    var onInitCopiesAndFolders = function () {
     103      SetSpecialFolderNamesWithDelims();
     104      SetGlobalRadioElemChoices();
     105
     106      setDefaultCopiesAndFoldersPrefs();
     107
     108      SetFolderDisplay(gFccRadioElemChoice, gFccRadioElemChoiceLocked,
     109        "VIdent_fcc",
     110        fccAccountPickerId,
     111        "VIdent_identity.fccFolder",
     112        fccFolderPickerId);
     113
     114      SetFolderDisplay(gDraftsRadioElemChoice, gDraftsRadioElemChoiceLocked,
     115        "VIdent_draft",
     116        draftsAccountPickerId,
     117        "VIdent_identity.draftFolder",
     118        draftsFolderPickerId);
     119
     120      SetFolderDisplay(gTmplRadioElemChoice, gTmplRadioElemChoiceLocked,
     121        "VIdent_tmpl",
     122        tmplAccountPickerId,
     123        "VIdent_identity.stationeryFolder",
     124        tmplFolderPickerId);
     125
     126      setupFccItems();
     127    }
     128
     129    // Initialize the picker mode choices (account/folder picker) into global vars
     130    var SetGlobalRadioElemChoices = function () {
     131      var pickerModeElement = document.getElementById("VIdent_identity.fccFolderPickerMode");
     132      gFccRadioElemChoice = pickerModeElement.getAttribute("value");
     133      gFccRadioElemChoiceLocked = pickerModeElement.getAttribute("disabled");
     134      if (!gFccRadioElemChoice) gFccRadioElemChoice = gDefaultPickerMode;
     135
     136      pickerModeElement = document.getElementById("VIdent_identity.draftFolderPickerMode");
     137      gDraftsRadioElemChoice = pickerModeElement.getAttribute("value");
     138      gDraftsRadioElemChoiceLocked = pickerModeElement.getAttribute("disabled");
     139      if (!gDraftsRadioElemChoice) gDraftsRadioElemChoice = gDefaultPickerMode;
     140
     141      pickerModeElement = document.getElementById("VIdent_identity.stationeryFolderPickerMode");
     142      gTmplRadioElemChoice = pickerModeElement.getAttribute("value");
     143      gTmplRadioElemChoiceLocked = pickerModeElement.getAttribute("disabled");
     144      if (!gTmplRadioElemChoice) gTmplRadioElemChoice = gDefaultPickerMode;
     145    }
     146
     147    /*
     148     * Set Account and Folder elements based on the values read from
     149     * preferences file. Default picker mode, if none specified at this stage, is
     150     * set to 1 i.e., Other picker displaying the folder value read from the
     151     * preferences file.
     152     */
     153    var SetFolderDisplay = function (pickerMode, disableMode,
     154      radioElemPrefix,
     155      accountPickerId,
     156      folderPickedField,
     157      folderPickerId) {
     158      if (!pickerMode)
    165159        pickerMode = gDefaultPickerMode;
    166160
    167     var selectAccountRadioId = radioElemPrefix + "_selectAccount";
    168     var selectAccountRadioElem = document.getElementById(selectAccountRadioId);
    169     var selectFolderRadioId = radioElemPrefix + "_selectFolder";
    170     var selectFolderRadioElem = document.getElementById(selectFolderRadioId);
    171     var accountPicker = document.getElementById(accountPickerId);
    172     var folderPicker = document.getElementById(folderPickerId);
    173     var rg = selectAccountRadioElem.radioGroup;
    174 
    175     var folderPickedElement = document.getElementById(folderPickedField);
    176     var uri = folderPickedElement.getAttribute("value");
    177     // Get message folder from the given uri. Second argument (false) siginifies
    178     // that there is no need to check for the existence of special folders as
    179     // these folders are created on demand at runtime in case of imap accounts.
    180     // For POP3 accounts, special folders are created at the account creation time.
    181     var msgFolder = GetMsgFolderFromUri(uri, false);
    182     vI.InitFolderDisplays(msgFolder, accountPickerId, folderPickerId)
    183 
    184     switch (pickerMode)
    185     {
    186         case "0" :
    187             rg.selectedItem = selectAccountRadioElem;
    188             SetPickerEnabling(accountPickerId, folderPickerId);
    189             break;
    190 
    191         case "1"  :
    192             rg.selectedItem = selectFolderRadioElem;
    193             SetPickerEnabling(folderPickerId, accountPickerId);
    194             break;
    195     case "2"  :
    196         rg.selectedItem = document.getElementById(radioElemPrefix + "_Settings_Of_Default");
    197         folderPicker.setAttribute("disabled", "true");
    198         accountPicker.setAttribute("disabled", "true");
    199             break;
    200     case "3"  :
    201         rg.selectedItem = document.getElementById(radioElemPrefix + "_Settings_Of_Account");
    202         folderPicker.setAttribute("disabled", "true");
    203         accountPicker.setAttribute("disabled", "true");
    204             break;
    205 
    206         default :
    207             alert("Error in setting initial folder display on pickers\n");
    208             break;
    209     }
    210 
    211     // Check to see if we need to lock page elements. Disable radio buttons
    212     // and account/folder pickers when locked.
    213     if (disableMode) {
    214       selectAccountRadioElem.setAttribute("disabled","true");
    215       selectFolderRadioElem.setAttribute("disabled","true");
    216       accountPicker.setAttribute("disabled","true");
    217       folderPicker.setAttribute("disabled","true");
    218     }
    219 }
    220 
    221 // Need to append special folders when account picker is selected.
    222 // Create a set of global special folder vars to be suffixed to the
    223 // server URI of the selected account.
    224 var SetSpecialFolderNamesWithDelims = function()
    225 {
    226     var folderDelim = "/";
    227     /* we use internal names known to everyone like "Sent", "Templates" and "Drafts" */
    228 
    229     gFccFolderWithDelim = folderDelim + "Sent";
    230     gDraftsFolderWithDelim = folderDelim + "Drafts";
    231     gTemplatesFolderWithDelim = folderDelim + "Templates";
    232 }
    233 
    234 var onSaveCopiesAndFolders = function()
    235 {
    236     vI.SaveFolderSettings( gFccRadioElemChoice,
    237                         "doFcc",
    238                         gFccFolderWithDelim,
    239                         fccAccountPickerId,
    240                         fccFolderPickerId,
    241                         "VIdent_identity.fccFolder",
    242                         "VIdent_identity.fccFolderPickerMode" );
    243 
    244     vI.SaveFolderSettings( gDraftsRadioElemChoice,
    245                         "messageDrafts",
    246                         gDraftsFolderWithDelim,
    247                         draftsAccountPickerId,
    248                         draftsFolderPickerId,
    249                         "VIdent_identity.draftFolder",
    250                         "VIdent_identity.draftFolderPickerMode" );
    251 
    252     vI.SaveFolderSettings( gTmplRadioElemChoice,
    253                         "messageTemplates",
    254                         gTemplatesFolderWithDelim,
    255                         tmplAccountPickerId,
    256                         tmplFolderPickerId,
    257                         "VIdent_identity.stationeryFolder",
    258                         "VIdent_identity.stationeryFolderPickerMode" );
    259 }
    260 
    261 // Check the Fcc Self item and setup associated picker state
    262 var setupFccItems = function()
    263 {
    264     var broadcaster = document.getElementById("VIdent_broadcaster_doFcc");
    265 
    266     var checked = document.getElementById("VIdent_identity.doFcc").checked;
    267     if (checked) {
     161      var selectAccountRadioId = radioElemPrefix + "_selectAccount";
     162      var selectAccountRadioElem = document.getElementById(selectAccountRadioId);
     163      var selectFolderRadioId = radioElemPrefix + "_selectFolder";
     164      var selectFolderRadioElem = document.getElementById(selectFolderRadioId);
     165      var accountPicker = document.getElementById(accountPickerId);
     166      var folderPicker = document.getElementById(folderPickerId);
     167      var rg = selectAccountRadioElem.radioGroup;
     168
     169      var folderPickedElement = document.getElementById(folderPickedField);
     170      var uri = folderPickedElement.getAttribute("value");
     171      // Get message folder from the given uri. Second argument (false) siginifies
     172      // that there is no need to check for the existence of special folders as
     173      // these folders are created on demand at runtime in case of imap accounts.
     174      // For POP3 accounts, special folders are created at the account creation time.
     175      var msgFolder = GetMsgFolderFromUri(uri, false);
     176      vI.InitFolderDisplays(msgFolder, accountPickerId, folderPickerId)
     177
     178      switch (pickerMode) {
     179      case "0":
     180        rg.selectedItem = selectAccountRadioElem;
     181        SetPickerEnabling(accountPickerId, folderPickerId);
     182        break;
     183
     184      case "1":
     185        rg.selectedItem = selectFolderRadioElem;
     186        SetPickerEnabling(folderPickerId, accountPickerId);
     187        break;
     188      case "2":
     189        rg.selectedItem = document.getElementById(radioElemPrefix + "_Settings_Of_Default");
     190        folderPicker.setAttribute("disabled", "true");
     191        accountPicker.setAttribute("disabled", "true");
     192        break;
     193      case "3":
     194        rg.selectedItem = document.getElementById(radioElemPrefix + "_Settings_Of_Account");
     195        folderPicker.setAttribute("disabled", "true");
     196        accountPicker.setAttribute("disabled", "true");
     197        break;
     198
     199      default:
     200        alert("Error in setting initial folder display on pickers\n");
     201        break;
     202      }
     203
     204      // Check to see if we need to lock page elements. Disable radio buttons
     205      // and account/folder pickers when locked.
     206      if (disableMode) {
     207        selectAccountRadioElem.setAttribute("disabled", "true");
     208        selectFolderRadioElem.setAttribute("disabled", "true");
     209        accountPicker.setAttribute("disabled", "true");
     210        folderPicker.setAttribute("disabled", "true");
     211      }
     212    }
     213
     214    // Need to append special folders when account picker is selected.
     215    // Create a set of global special folder vars to be suffixed to the
     216    // server URI of the selected account.
     217    var SetSpecialFolderNamesWithDelims = function () {
     218      var folderDelim = "/";
     219      /* we use internal names known to everyone like "Sent", "Templates" and "Drafts" */
     220
     221      gFccFolderWithDelim = folderDelim + "Sent";
     222      gDraftsFolderWithDelim = folderDelim + "Drafts";
     223      gTemplatesFolderWithDelim = folderDelim + "Templates";
     224    }
     225
     226    var onSaveCopiesAndFolders = function () {
     227      vI.SaveFolderSettings(gFccRadioElemChoice,
     228        "doFcc",
     229        gFccFolderWithDelim,
     230        fccAccountPickerId,
     231        fccFolderPickerId,
     232        "VIdent_identity.fccFolder",
     233        "VIdent_identity.fccFolderPickerMode");
     234
     235      vI.SaveFolderSettings(gDraftsRadioElemChoice,
     236        "messageDrafts",
     237        gDraftsFolderWithDelim,
     238        draftsAccountPickerId,
     239        draftsFolderPickerId,
     240        "VIdent_identity.draftFolder",
     241        "VIdent_identity.draftFolderPickerMode");
     242
     243      vI.SaveFolderSettings(gTmplRadioElemChoice,
     244        "messageTemplates",
     245        gTemplatesFolderWithDelim,
     246        tmplAccountPickerId,
     247        tmplFolderPickerId,
     248        "VIdent_identity.stationeryFolder",
     249        "VIdent_identity.stationeryFolderPickerMode");
     250    }
     251
     252    // Check the Fcc Self item and setup associated picker state
     253    var setupFccItems = function () {
     254      var broadcaster = document.getElementById("VIdent_broadcaster_doFcc");
     255
     256      var checked = document.getElementById("VIdent_identity.doFcc").checked;
     257      if (checked) {
    268258        broadcaster.removeAttribute("disabled");
    269259        SetupFccPickerState(gFccRadioElemChoice,
    270                             fccAccountPickerId,
    271                             fccFolderPickerId);
    272       }
    273     else
     260          fccAccountPickerId,
     261          fccFolderPickerId);
     262      } else
    274263        broadcaster.setAttribute("disabled", "true");
    275 }
    276 
    277 // Set up picker settings for Sent Folder
    278 var SetupFccPickerState = function(pickerMode, accountPickerId, folderPickerId)
    279 {
    280     switch (pickerMode) {
    281         case "0" :
    282             if (!gFccRadioElemChoiceLocked)
    283               SetPickerEnabling(accountPickerId, folderPickerId);
    284             SetRadioButtons("VIdent_fcc_selectAccount", "VIdent_fcc_selectFolder");
    285             break;
    286    
    287         case "1" :
    288             if (!gFccRadioElemChoiceLocked)
    289               SetPickerEnabling(folderPickerId, accountPickerId);
    290             SetRadioButtons("VIdent_fcc_selectFolder", "VIdent_fcc_selectAccount");
    291             break;
    292 
    293         default :
    294           document.getElementById(folderPickerId).setAttribute("disabled", "true");
    295           document.getElementById(accountPickerId).setAttribute("disabled", "true");
    296             break;
    297     }
    298 }
    299 
    300 // Enable and disable pickers based on the radio element clicked
    301 var SetPickerEnabling = function(enablePickerId, disablePickerId)
    302 {
    303     var activePicker = document.getElementById(enablePickerId);
    304     activePicker.removeAttribute("disabled");
    305 
    306     var inactivePicker = document.getElementById(disablePickerId);
    307     inactivePicker.setAttribute("disabled", "true");
    308 }
    309 
    310 // Set radio element choices and picker states
    311 var setPickersState = function(enablePickerId, disablePickerId, event)
    312 {
    313     SetPickerEnabling(enablePickerId, disablePickerId);
    314 
    315     var radioElemValue = event.target.value;
    316    
    317     switch (event.target.id) {
    318     case "VIdent_fcc_Settings_Of_Account":
    319     case "VIdent_fcc_Settings_Of_Default":
    320         document.getElementById(enablePickerId).setAttribute("disabled", "true");
    321         case "VIdent_fcc_selectAccount":
    322         case "VIdent_fcc_selectFolder" :
    323             gFccRadioElemChoice = radioElemValue;   
    324             break;
    325     case "VIdent_draft_Settings_Of_Account":
    326     case "VIdent_draft_Settings_Of_Default":
    327         document.getElementById(enablePickerId).setAttribute("disabled", "true");
    328         case "VIdent_draft_selectAccount":
    329         case "VIdent_draft_selectFolder" :
    330             gDraftsRadioElemChoice = radioElemValue;   
    331             break;
    332     case "VIdent_tmpl_Settings_Of_Account":
    333     case "VIdent_tmpl_Settings_Of_Default":
    334         document.getElementById(enablePickerId).setAttribute("disabled", "true");
    335         case "VIdent_tmpl_selectFolder" :
    336         case "VIdent_tmpl_selectAccount":
    337             gTmplRadioElemChoice = radioElemValue;   
    338             break;
    339         default :
    340             alert("Error in setting picker state. " + event.target.id + "\n");
    341             return;
    342     }
    343    
    344     switch (event.target.id) {
    345         case "VIdent_fcc_Settings_Of_Account":
    346     case "VIdent_fcc_Settings_Of_Default":
    347         document.getElementById("VIdent_identity.fccReplyFollowsParent").setAttribute("disabled","true");
    348         break;
    349         case "VIdent_fcc_selectAccount":
    350         case "VIdent_fcc_selectFolder" :
    351         document.getElementById("VIdent_identity.fccReplyFollowsParent").removeAttribute("disabled")
    352             break;
    353      }
    354 }
    355 
    356 // This routine is to restore the correct radio element
    357 // state when the fcc self checkbox broadcasts the change
    358 var SetRadioButtons = function(selectPickerId, unselectPickerId)
    359 {
    360     var activeRadioElem = document.getElementById(selectPickerId);
    361     activeRadioElem.radioGroup.selectedItem = activeRadioElem;
    362 }
    363 vI.onInitCopiesAndFolders = onInitCopiesAndFolders;
    364 vI.onSaveCopiesAndFolders = onSaveCopiesAndFolders;
    365 vI.setPickersState = setPickersState;
    366 vI.gFccRadioElemChoice = gFccRadioElemChoice;
    367 vI.gDraftsRadioElemChoice = gDraftsRadioElemChoice;
    368 vI.gTmplRadioElemChoice = gTmplRadioElemChoice;
    369 
    370 // patch for https://bugzilla.mozilla.org/show_bug.cgi?id=889022, see there
    371 Components.utils.import("resource:///modules/MailUtils.js");
    372 if (typeof(GetMsgFolderFromUri) != "function") {
    373     var GetMsgFolderFromUri = _GetMsgFolderFromUri;
    374 }
    375 
    376 }});
     264    }
     265
     266    // Set up picker settings for Sent Folder
     267    var SetupFccPickerState = function (pickerMode, accountPickerId, folderPickerId) {
     268      switch (pickerMode) {
     269      case "0":
     270        if (!gFccRadioElemChoiceLocked)
     271          SetPickerEnabling(accountPickerId, folderPickerId);
     272        SetRadioButtons("VIdent_fcc_selectAccount", "VIdent_fcc_selectFolder");
     273        break;
     274
     275      case "1":
     276        if (!gFccRadioElemChoiceLocked)
     277          SetPickerEnabling(folderPickerId, accountPickerId);
     278        SetRadioButtons("VIdent_fcc_selectFolder", "VIdent_fcc_selectAccount");
     279        break;
     280
     281      default:
     282        document.getElementById(folderPickerId).setAttribute("disabled", "true");
     283        document.getElementById(accountPickerId).setAttribute("disabled", "true");
     284        break;
     285      }
     286    }
     287
     288    // Enable and disable pickers based on the radio element clicked
     289    var SetPickerEnabling = function (enablePickerId, disablePickerId) {
     290      var activePicker = document.getElementById(enablePickerId);
     291      activePicker.removeAttribute("disabled");
     292
     293      var inactivePicker = document.getElementById(disablePickerId);
     294      inactivePicker.setAttribute("disabled", "true");
     295    }
     296
     297    // Set radio element choices and picker states
     298    var setPickersState = function (enablePickerId, disablePickerId, event) {
     299      SetPickerEnabling(enablePickerId, disablePickerId);
     300
     301      var radioElemValue = event.target.value;
     302
     303      switch (event.target.id) {
     304      case "VIdent_fcc_Settings_Of_Account":
     305      case "VIdent_fcc_Settings_Of_Default":
     306        document.getElementById(enablePickerId).setAttribute("disabled", "true");
     307      case "VIdent_fcc_selectAccount":
     308      case "VIdent_fcc_selectFolder":
     309        gFccRadioElemChoice = radioElemValue;
     310        break;
     311      case "VIdent_draft_Settings_Of_Account":
     312      case "VIdent_draft_Settings_Of_Default":
     313        document.getElementById(enablePickerId).setAttribute("disabled", "true");
     314      case "VIdent_draft_selectAccount":
     315      case "VIdent_draft_selectFolder":
     316        gDraftsRadioElemChoice = radioElemValue;
     317        break;
     318      case "VIdent_tmpl_Settings_Of_Account":
     319      case "VIdent_tmpl_Settings_Of_Default":
     320        document.getElementById(enablePickerId).setAttribute("disabled", "true");
     321      case "VIdent_tmpl_selectFolder":
     322      case "VIdent_tmpl_selectAccount":
     323        gTmplRadioElemChoice = radioElemValue;
     324        break;
     325      default:
     326        alert("Error in setting picker state. " + event.target.id + "\n");
     327        return;
     328      }
     329
     330      switch (event.target.id) {
     331      case "VIdent_fcc_Settings_Of_Account":
     332      case "VIdent_fcc_Settings_Of_Default":
     333        document.getElementById("VIdent_identity.fccReplyFollowsParent").setAttribute("disabled", "true");
     334        break;
     335      case "VIdent_fcc_selectAccount":
     336      case "VIdent_fcc_selectFolder":
     337        document.getElementById("VIdent_identity.fccReplyFollowsParent").removeAttribute("disabled")
     338        break;
     339      }
     340    }
     341
     342    // This routine is to restore the correct radio element
     343    // state when the fcc self checkbox broadcasts the change
     344    var SetRadioButtons = function (selectPickerId, unselectPickerId) {
     345      var activeRadioElem = document.getElementById(selectPickerId);
     346      activeRadioElem.radioGroup.selectedItem = activeRadioElem;
     347    }
     348    vI.onInitCopiesAndFolders = onInitCopiesAndFolders;
     349    vI.onSaveCopiesAndFolders = onSaveCopiesAndFolders;
     350    vI.setPickersState = setPickersState;
     351    vI.gFccRadioElemChoice = gFccRadioElemChoice;
     352    vI.gDraftsRadioElemChoice = gDraftsRadioElemChoice;
     353    vI.gTmplRadioElemChoice = gTmplRadioElemChoice;
     354
     355    // patch for https://bugzilla.mozilla.org/show_bug.cgi?id=889022, see there
     356    Components.utils.import("resource:///modules/MailUtils.js");
     357    if (typeof (GetMsgFolderFromUri) != "function") {
     358      var GetMsgFolderFromUri = _GetMsgFolderFromUri;
     359    }
     360
     361  }
     362});
Note: See TracChangeset for help on using the changeset viewer.