Changeset cc4b19
- Timestamp:
- Aug 22, 2008, 5:04:02 PM (12 years ago)
- Branches:
- master
- Children:
- 086fb7
- Parents:
- 3e173f
- Location:
- chrome/content/v_identity
- Files:
-
- 7 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
chrome/content/v_identity/vI_context.xul
r3e173f rcc4b19 57 57 <menu id="vI_Menu" hidden="true" label="&vident.vI_Menu.label;"> 58 58 <menupopup> 59 <menuitem id="vI_settingsMenu"label="&vident.vI_Menu.Settings.label;"60 oncommand="window.openDialog('chrome://v_identity/content/vI_prefDialog.xul', '', 'chrome,modal');" />61 <menuitem id="vI_rdfDataTree"label="&vident.vI_Menu.DataEditor.label;"59 <menuitem label="&vident.vI_Menu.Settings.label;" 60 oncommand="var chromeURL=(!vI_helper.olderVersion('TB', null) || vI_helper.olderVersion('TB', '3.0a1pre'))?'preTB3.xul':'TB3.xul'; window.openDialog('chrome://v_identity/content/vI_prefDialog_' + chromeURL, '', 'chrome,modal');" /> 61 <menuitem label="&vident.vI_Menu.DataEditor.label;" 62 62 oncommand="window.open('chrome://v_identity/content/vI_rdfDataTree.xul', '', 'chrome,modal');" /> 63 63 </menupopup> -
chrome/content/v_identity/vI_prefDialog.js
r3e173f rcc4b19 311 311 } 312 312 } 313 314 /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-315 * ***** BEGIN LICENSE BLOCK *****316 * Version: MPL 1.1/GPL 2.0/LGPL 2.1317 *318 * The contents of this file are subject to the Mozilla Public License Version319 * 1.1 (the "License"); you may not use this file except in compliance with320 * the License. You may obtain a copy of the License at321 * http://www.mozilla.org/MPL/322 *323 * Software distributed under the License is distributed on an "AS IS" basis,324 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License325 * for the specific language governing rights and limitations under the326 * License.327 *328 * The Original Code is Mozilla Communicator client code, released329 * March 31, 1998.330 *331 * The Initial Developer of the Original Code is332 * Netscape Communications Corporation.333 * Portions created by the Initial Developer are Copyright (C) 1998-1999334 * the Initial Developer. All Rights Reserved.335 *336 * Contributor(s):337 *338 * Alternatively, the contents of this file may be used under the terms of339 * either of the GNU General Public License Version 2 or later (the "GPL"),340 * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),341 * in which case the provisions of the GPL or the LGPL are applicable instead342 * of those above. If you wish to allow use of your version of this file only343 * under the terms of either the GPL or the LGPL, and not to allow others to344 * use your version of this file under the terms of the MPL, indicate your345 * decision by deleting the provisions above and replace them with the notice346 * and other provisions required by the GPL or the LGPL. If you do not delete347 * the provisions above, a recipient may use your version of this file under348 * the terms of any one of the MPL, the GPL or the LGPL.349 *350 * ***** END LICENSE BLOCK ***** */351 352 var gFccRadioElemChoice, gDraftsRadioElemChoice, gTmplRadioElemChoice;353 var gFccRadioElemChoiceLocked, gDraftsRadioElemChoiceLocked, gTmplRadioElemChoiceLocked;354 var gDefaultPickerMode = "3";355 356 var gFccFolderWithDelim, gDraftsFolderWithDelim, gTemplatesFolderWithDelim;357 358 // Picker IDs359 var fccAccountPickerId = "msgFccAccountPicker";360 var fccFolderPickerId = "msgFccFolderPicker";361 var draftsAccountPickerId = "msgDraftsAccountPicker";362 var draftsFolderPickerId = "msgDraftsFolderPicker";363 var tmplAccountPickerId = "msgStationeryAccountPicker";364 var tmplFolderPickerId = "msgStationeryFolderPicker";365 366 function setDefaultCopiesAndFoldersPrefs(identity, server, accountData)367 {368 var am = Components.classes["@mozilla.org/messenger/account-manager;1"].getService(Components.interfaces.nsIMsgAccountManager);369 var rootFolder = am.defaultAccount.incomingServer.rootFolder370 371 var fccElement = document.getElementById("VIdent_identity.fccFolder")372 var fccElementValue = fccElement.getAttribute("value");373 if (!fccElementValue) fccElement.setAttribute("value", rootFolder.server.serverURI + gFccFolderWithDelim)374 375 var draftElement = document.getElementById("VIdent_identity.draftFolder")376 var draftElementValue = draftElement.getAttribute("value");377 if (!draftElementValue) draftElement.setAttribute("value", rootFolder.server.serverURI + gDraftsFolderWithDelim)378 379 var stationeryElement = document.getElementById("VIdent_identity.stationeryFolder")380 var stationeryElementValue = stationeryElement.getAttribute("value");381 if (!stationeryElementValue) stationeryElement.setAttribute("value", rootFolder.server.serverURI + gTemplatesFolderWithDelim)382 }383 384 385 function onInitCopiesAndFolders()386 {387 SetSpecialFolderNamesWithDelims();388 SetGlobalRadioElemChoices();389 390 setDefaultCopiesAndFoldersPrefs();391 392 SetFolderDisplay(gFccRadioElemChoice, gFccRadioElemChoiceLocked,393 "VIdent_fcc",394 fccAccountPickerId,395 "VIdent_identity.fccFolder",396 fccFolderPickerId);397 398 SetFolderDisplay(gDraftsRadioElemChoice, gDraftsRadioElemChoiceLocked,399 "VIdent_draft",400 draftsAccountPickerId,401 "VIdent_identity.draftFolder",402 draftsFolderPickerId);403 404 SetFolderDisplay(gTmplRadioElemChoice, gTmplRadioElemChoiceLocked,405 "VIdent_tmpl",406 tmplAccountPickerId,407 "VIdent_identity.stationeryFolder",408 tmplFolderPickerId);409 410 setupFccItems();411 }412 413 // Initialize the picker mode choices (account/folder picker) into global vars414 function SetGlobalRadioElemChoices()415 {416 var pickerModeElement = document.getElementById("VIdent_identity.fccFolderPickerMode");417 gFccRadioElemChoice = pickerModeElement.getAttribute("value");418 gFccRadioElemChoiceLocked = pickerModeElement.getAttribute("disabled");419 if (!gFccRadioElemChoice) gFccRadioElemChoice = gDefaultPickerMode;420 421 pickerModeElement = document.getElementById("VIdent_identity.draftFolderPickerMode");422 gDraftsRadioElemChoice = pickerModeElement.getAttribute("value");423 gDraftsRadioElemChoiceLocked = pickerModeElement.getAttribute("disabled");424 if (!gDraftsRadioElemChoice) gDraftsRadioElemChoice = gDefaultPickerMode;425 426 pickerModeElement = document.getElementById("VIdent_identity.stationeryFolderPickerMode");427 gTmplRadioElemChoice = pickerModeElement.getAttribute("value");428 gTmplRadioElemChoiceLocked = pickerModeElement.getAttribute("disabled");429 if (!gTmplRadioElemChoice) gTmplRadioElemChoice = gDefaultPickerMode;430 }431 432 /*433 * Set Account and Folder elements based on the values read from434 * preferences file. Default picker mode, if none specified at this stage, is435 * set to 1 i.e., Other picker displaying the folder value read from the436 * preferences file.437 */438 function SetFolderDisplay(pickerMode, disableMode,439 radioElemPrefix,440 accountPickerId,441 folderPickedField,442 folderPickerId)443 {444 if (!pickerMode)445 pickerMode = gDefaultPickerMode;446 447 var selectAccountRadioId = radioElemPrefix + "_selectAccount";448 var selectAccountRadioElem = document.getElementById(selectAccountRadioId);449 var selectFolderRadioId = radioElemPrefix + "_selectFolder";450 var selectFolderRadioElem = document.getElementById(selectFolderRadioId);451 var accountPicker = document.getElementById(accountPickerId);452 var folderPicker = document.getElementById(folderPickerId);453 var rg = selectAccountRadioElem.radioGroup;454 455 var folderPickedElement = document.getElementById(folderPickedField);456 var uri = folderPickedElement.getAttribute("value");457 // Get message folder from the given uri. Second argument (false) siginifies458 // that there is no need to check for the existence of special folders as459 // these folders are created on demand at runtime in case of imap accounts.460 // For POP3 accounts, special folders are created at the account creation time.461 var msgFolder = GetMsgFolderFromUri(uri, false);462 SetFolderPicker(msgFolder.server.serverURI, accountPickerId);463 SetFolderPicker(uri, folderPickerId);464 465 switch (pickerMode)466 {467 case "0" :468 rg.selectedItem = selectAccountRadioElem;469 SetPickerEnabling(accountPickerId, folderPickerId);470 break;471 472 case "1" :473 rg.selectedItem = selectFolderRadioElem;474 SetPickerEnabling(folderPickerId, accountPickerId);475 break;476 case "2" :477 rg.selectedItem = document.getElementById(radioElemPrefix + "_Settings_Of_Default");478 document.getElementById(folderPickerId).setAttribute("disabled", "true");479 document.getElementById(accountPickerId).setAttribute("disabled", "true");480 break;481 case "3" :482 rg.selectedItem = document.getElementById(radioElemPrefix + "_Settings_Of_Account");483 document.getElementById(folderPickerId).setAttribute("disabled", "true");484 document.getElementById(accountPickerId).setAttribute("disabled", "true");485 break;486 487 default :488 alert("Error in setting initial folder display on pickers\n");489 break;490 }491 492 // Check to see if we need to lock page elements. Disable radio buttons493 // and account/folder pickers when locked.494 if (disableMode) {495 selectAccountRadioElem.setAttribute("disabled","true");496 selectFolderRadioElem.setAttribute("disabled","true");497 accountPicker.setAttribute("disabled","true");498 folderPicker.setAttribute("disabled","true");499 }500 }501 502 // Capture any menulist changes503 function noteSelectionChange(radioItemId)504 {505 var checkedElem = document.getElementById(radioItemId);506 var modeValue = checkedElem.getAttribute("value");507 var radioGroup = checkedElem.radioGroup.getAttribute("id");508 switch (radioGroup)509 {510 case "VIdent_doFcc" :511 gFccRadioElemChoice = modeValue;512 break;513 514 case "VIdent_messageDrafts" :515 gDraftsRadioElemChoice = modeValue;516 break;517 518 case "VIdent_messageTemplates" :519 gTmplRadioElemChoice = modeValue;520 break;521 522 default :523 alert("Error capturing menulist changes. " + radioGroup + "\n");524 break;525 }526 }527 528 // Need to append special folders when account picker is selected.529 // Create a set of global special folder vars to be suffixed to the530 // server URI of the selected account.531 function SetSpecialFolderNamesWithDelims()532 {533 var folderDelim = "/";534 /* we use internal names known to everyone like "Sent", "Templates" and "Drafts" */535 536 gFccFolderWithDelim = folderDelim + "Sent";537 gDraftsFolderWithDelim = folderDelim + "Drafts";538 gTemplatesFolderWithDelim = folderDelim + "Templates";539 }540 541 function onSaveCopiesAndFolders()542 {543 SaveFolderSettings( gFccRadioElemChoice,544 "doFcc",545 gFccFolderWithDelim,546 fccAccountPickerId,547 fccFolderPickerId,548 "VIdent_identity.fccFolder",549 "VIdent_identity.fccFolderPickerMode" );550 551 SaveFolderSettings( gDraftsRadioElemChoice,552 "messageDrafts",553 gDraftsFolderWithDelim,554 draftsAccountPickerId,555 draftsFolderPickerId,556 "VIdent_identity.draftFolder",557 "VIdent_identity.draftFolderPickerMode" );558 559 SaveFolderSettings( gTmplRadioElemChoice,560 "messageTemplates",561 gTemplatesFolderWithDelim,562 tmplAccountPickerId,563 tmplFolderPickerId,564 "VIdent_identity.stationeryFolder",565 "VIdent_identity.stationeryFolderPickerMode" );566 }567 568 // Save folder settings and radio element choices569 function SaveFolderSettings(radioElemChoice,570 radioGroupId,571 folderSuffix,572 accountPickerId,573 folderPickerId,574 folderElementId,575 folderPickerModeId)576 {577 var formElement;578 var uri;579 var picker;580 581 switch (radioElemChoice)582 {583 case "0" :584 picker = document.getElementById(accountPickerId);585 uri = picker.getAttribute("uri");586 if (uri) {587 uri = uri + folderSuffix; // Create Folder URI588 formElement = document.getElementById(folderElementId);589 formElement.setAttribute("value",uri);590 }591 break;592 593 case "1" :594 picker = document.getElementById(folderPickerId);595 uri = picker.getAttribute("uri");596 if (uri) {597 formElement = document.getElementById(folderElementId);598 formElement.setAttribute("value",uri);599 }600 break;601 602 default :603 break;604 }605 606 formElement = document.getElementById(folderPickerModeId);607 formElement.setAttribute("value", radioElemChoice);608 }609 610 // Check the Fcc Self item and setup associated picker state611 function setupFccItems()612 {613 var broadcaster = document.getElementById("VIdent_broadcaster_doFcc");614 615 var checked = document.getElementById("VIdent_identity.doFcc").checked;616 if (checked) {617 broadcaster.removeAttribute("disabled");618 SetupFccPickerState(gFccRadioElemChoice,619 fccAccountPickerId,620 fccFolderPickerId);621 }622 else623 broadcaster.setAttribute("disabled", "true");624 }625 626 // Set up picker settings for Sent Folder627 function SetupFccPickerState(pickerMode, accountPickerId, folderPickerId)628 {629 switch (pickerMode) {630 case "0" :631 if (!gFccRadioElemChoiceLocked)632 SetPickerEnabling(accountPickerId, folderPickerId);633 SetRadioButtons("VIdent_fcc_selectAccount", "VIdent_fcc_selectFolder");634 break;635 636 case "1" :637 if (!gFccRadioElemChoiceLocked)638 SetPickerEnabling(folderPickerId, accountPickerId);639 SetRadioButtons("VIdent_fcc_selectFolder", "VIdent_fcc_selectAccount");640 break;641 642 default :643 document.getElementById(folderPickerId).setAttribute("disabled", "true");644 document.getElementById(accountPickerId).setAttribute("disabled", "true");645 break;646 }647 }648 649 // Enable and disable pickers based on the radio element clicked650 function SetPickerEnabling(enablePickerId, disablePickerId)651 {652 var activePicker = document.getElementById(enablePickerId);653 activePicker.removeAttribute("disabled");654 655 var inactivePicker = document.getElementById(disablePickerId);656 inactivePicker.setAttribute("disabled", "true");657 }658 659 // Set radio element choices and picker states660 function setPickersState(enablePickerId, disablePickerId, event)661 {662 SetPickerEnabling(enablePickerId, disablePickerId);663 664 var radioElemValue = event.target.value;665 666 switch (event.target.id) {667 case "VIdent_fcc_Settings_Of_Account":668 case "VIdent_fcc_Settings_Of_Default":669 document.getElementById(enablePickerId).setAttribute("disabled", "true");670 case "VIdent_fcc_selectAccount":671 case "VIdent_fcc_selectFolder" :672 gFccRadioElemChoice = radioElemValue;673 break;674 case "VIdent_draft_Settings_Of_Account":675 case "VIdent_draft_Settings_Of_Default":676 document.getElementById(enablePickerId).setAttribute("disabled", "true");677 case "VIdent_draft_selectAccount":678 case "VIdent_draft_selectFolder" :679 gDraftsRadioElemChoice = radioElemValue;680 break;681 case "VIdent_tmpl_Settings_Of_Account":682 case "VIdent_tmpl_Settings_Of_Default":683 document.getElementById(enablePickerId).setAttribute("disabled", "true");684 case "VIdent_tmpl_selectFolder" :685 case "VIdent_tmpl_selectAccount":686 gTmplRadioElemChoice = radioElemValue;687 break;688 default :689 alert("Error in setting picker state. " + event.target.id + "\n");690 return;691 }692 693 switch (event.target.id) {694 case "VIdent_fcc_Settings_Of_Account":695 case "VIdent_fcc_Settings_Of_Default":696 document.getElementById("VIdent_identity.fccReplyFollowsParent").setAttribute("disabled","true");697 break;698 case "VIdent_fcc_selectAccount":699 case "VIdent_fcc_selectFolder" :700 document.getElementById("VIdent_identity.fccReplyFollowsParent").removeAttribute("disabled")701 break;702 }703 }704 705 // This routine is to restore the correct radio element706 // state when the fcc self checkbox broadcasts the change707 function SetRadioButtons(selectPickerId, unselectPickerId)708 {709 var activeRadioElem = document.getElementById(selectPickerId);710 activeRadioElem.radioGroup.selectedItem = activeRadioElem;711 } -
chrome/content/v_identity/vI_prefDialog.xul
r3e173f rcc4b19 23 23 - Contributor(s): 24 24 - ***** END LICENSE BLOCK ***** --> 25 26 <?xul-overlay href="chrome://messenger/content/msgFolderPickerOverlay.xul"?>27 25 28 26 <!DOCTYPE page [ … … 44 42 <?xml-stylesheet href="chrome://v_identity/skin/v_identity.css" type="text/css"?> 45 43 46 <dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 47 onload="vI_prefDialog.init();" 48 buttons="accept,cancel" 49 ondialogaccept="vI_prefDialog.savePrefs();" 50 persist="screenX screenY" 51 title="&vI_prefDialog.dlgTitle.label;"> 44 <overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 45 46 <dialog id="vI_prefDialog"> 52 47 53 48 <script type="application/x-javascript" 54 49 src="chrome://v_identity/content/vI_prefDialog.js" /> 50 <script type="application/x-javascript" 51 src="chrome://v_identity/content/vI_prefDialog_FolderPicker.js" /> 55 52 <script type="application/x-javascript" 56 53 src="chrome://v_identity/content/vI_storageExtras.js" /> … … 184 181 oncommand="setPickersState('msgFccFolderPicker', 'msgFccAccountPicker', event)" 185 182 observes="VIdent_broadcaster_doFcc"/> 186 <row align="center" >183 <row align="center" id="msgFccAccountPickerRow"> 187 184 <radio id="VIdent_fcc_selectAccount" 188 185 value="0" label="&sentFolderOn.label;" … … 190 187 oncommand="setPickersState('msgFccAccountPicker', 'msgFccFolderPicker', event)" 191 188 observes="VIdent_broadcaster_doFcc"/> 192 <menulist id="msgFccAccountPicker"193 oncommand="noteSelectionChange('VIdent_fcc_selectAccount')"194 flex="1" observes="VIdent_broadcaster_doFcc"/>195 189 </row> 196 <row align="center" >190 <row align="center" id="msgFccFolderPickerRow"> 197 191 <radio id="VIdent_fcc_selectFolder" 198 192 value="1" label="&sentInOtherFolder.label;" … … 200 194 oncommand="setPickersState('msgFccFolderPicker', 'msgFccAccountPicker', event)" 201 195 observes="VIdent_broadcaster_doFcc"/> 202 <menulist id="msgFccFolderPicker"203 oncommand="noteSelectionChange('VIdent_fcc_selectFolder')"204 flex="1" observes="VIdent_broadcaster_doFcc"/>205 196 </row> 206 197 </rows> … … 234 225 value="2" label="&vI_prefDialog.vidFccDefault.label;" 235 226 oncommand="setPickersState('msgDraftsFolderPicker', 'msgDraftsAccountPicker', event)" /> 236 <row align="center" >227 <row align="center" id="msgDraftsAccountPickerRow"> 237 228 <radio id="VIdent_draft_selectAccount" 238 229 value="0" label="&draftsFolderOn.label;" 239 230 accesskey="&draftsFolderOn.accesskey;" 240 231 oncommand="setPickersState('msgDraftsAccountPicker', 'msgDraftsFolderPicker', event)" /> 241 <menulist id="msgDraftsAccountPicker"242 oncommand="noteSelectionChange('VIdent_draft_selectAccount')" />243 232 </row> 244 <row align="center" >233 <row align="center" id="msgDraftsFolderPickerRow"> 245 234 <radio id="VIdent_draft_selectFolder" 246 235 value="1" label="&draftInOtherFolder.label;" 247 236 accesskey="&draftInOtherFolder.accesskey;" 248 237 oncommand="setPickersState('msgDraftsFolderPicker', 'msgDraftsAccountPicker', event)" /> 249 <menulist id="msgDraftsFolderPicker"250 oncommand="noteSelectionChange('VIdent_draft_selectFolder')"251 flex="1" />252 238 </row> 253 239 </rows> … … 273 259 value="2" label="&vI_prefDialog.vidFccDefault.label;" 274 260 oncommand="setPickersState('msgStationeryFolderPicker', 'msgStationeryAccountPicker', event)" /> 275 <row align="center" >261 <row align="center" id="msgStationeryAccountPickerRow"> 276 262 <radio id="VIdent_tmpl_selectAccount" 277 263 value="0" label="&templatesFolderOn.label;" 278 264 accesskey="&templatesFolderOn.accesskey;" 279 265 oncommand="setPickersState('msgStationeryAccountPicker', 'msgStationeryFolderPicker', event)" /> 280 <menulist id="msgStationeryAccountPicker"281 oncommand="noteSelectionChange('VIdent_tmpl_selectAccount')"282 flex="1" />283 266 </row> 284 <row align="center" >267 <row align="center" id="msgStationeryFolderPickerRow"> 285 268 <radio id="VIdent_tmpl_selectFolder" 286 269 value="1" label="&templateInOtherFolder.label;" 287 270 accesskey="&templateInOtherFolder.accesskey;" 288 271 oncommand="setPickersState('msgStationeryFolderPicker', 'msgStationeryAccountPicker', event)" /> 289 <menulist id="msgStationeryFolderPicker"290 oncommand="noteSelectionChange('VIdent_tmpl_selectFolder')"291 flex="1" />292 272 </row> 293 273 </rows> … … 507 487 </tabbox> 508 488 </dialog> 489 </overlay> -
chrome/content/v_identity/v_identity.xul
r3e173f rcc4b19 93 93 <popupset> 94 94 <popup id="vI_statusMenu"> 95 <menuitem type="checkbox" id="vI_statusMenu_storage_save" label="&vident.vI_Menu.storageSave.label;" oncommand="vI_statusmenu.menuConstraint(this);"/>96 <menuitem type="checkbox" id="vI_statusMenu_storage_saveBaseID" label="&vident.vI_Menu.saveBaseID.label;" oncommand="vI_statusmenu.menuConstraint(vI_statusmenu.objStorageSaveMenuItem);"/>95 <menuitem type="checkbox" id="vI_statusMenu_storage_save" label="&vident.vI_Menu.storageSave.label;" oncommand="vI_statusmenu.menuConstraint(this);"/> 96 <menuitem type="checkbox" id="vI_statusMenu_storage_saveBaseID" label="&vident.vI_Menu.saveBaseID.label;" oncommand="vI_statusmenu.menuConstraint(vI_statusmenu.objStorageSaveMenuItem);"/> 97 97 <menuseparator id="vI_statusMenu_separator" /> 98 <menuitem id="vI_settingsMenu"class="menuitem-iconic" label="&vident.vI_Menu.Settings.label;"99 oncommand="window.openDialog('chrome://v_identity/content/vI_prefDialog.xul', '', 'chrome,modal');" />100 <menuitem id="vI_rdfDataTree"class="menuitem-iconic" label="&vident.vI_Menu.DataEditor.label;"101 98 <menuitem class="menuitem-iconic" label="&vident.vI_Menu.Settings.label;" 99 oncommand="var chromeURL=(!vI_helper.olderVersion('TB', null) || vI_helper.olderVersion('TB', '3.0a1pre'))?'preTB3.xul':'TB3.xul'; window.openDialog('chrome://v_identity/content/vI_prefDialog_' + chromeURL, '', 'chrome,modal');" /> 100 <menuitem class="menuitem-iconic" label="&vident.vI_Menu.DataEditor.label;" 101 oncommand="window.open('chrome://v_identity/content/vI_rdfDataTree.xul', '', 'chrome,modal');" /> 102 102 </popup> 103 103 </popupset>
Note: See TracChangeset
for help on using the changeset viewer.