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.js

    r3c9c29 r509348  
    2424
    2525Components.utils.import("resource://v_identity/vI_nameSpaceWrapper.js");
    26 virtualIdentityExtension.ns(function() { with (virtualIdentityExtension.LIB) {
    27 
    28 Components.utils.import("resource://gre/modules/AddonManager.jsm");
    29 let Log = vI.setupLogging("virtualIdentity.prefDialog");
    30 
    31 var prefDialog = {
    32     toggleHelp : function() {
    33         var browserElem = document.getElementById("virtualIdentityExtension_remoteBrowserBox");
    34         if (browserElem.getAttribute("hidden")) {
    35             window.resizeBy( 200, 0);
    36             browserElem.removeAttribute("hidden");
    37         } else {
    38             window.resizeBy( -(browserElem.clientWidth+7), 0);
    39             browserElem.setAttribute("hidden", "true");
    40         }
    41         prefDialog.updateHelpUrl();
    42     },
    43 
    44     updateHelpUrl : function(tabpanel) {
    45         var browserElem = document.getElementById("virtualIdentityExtension_remoteBrowserBox");
    46         if (browserElem.getAttribute("hidden")) return;             // don't load any url if browser is hidden
    47         var panelIndex = (tabpanel)?tabpanel:document.getElementById('prefTabbox').selectedIndex
    48         var prefTree = document.getElementById('prefTabbox').selectedPanel.getElementsByAttribute("class", "vIprefTree")[0];
    49         var currentVersion = document.getElementById("virtualIdentityExtension_extVersion").getAttribute("value").split(/\./);
    50         var extVersion = currentVersion[0] + "." + currentVersion[1];
    51         var url = "https://www.absorb.it/virtual-id/wiki/docs/" + extVersion + "/tab" + panelIndex + "/tree" + prefTree.currentIndex;
    52         document.getElementById("virtualIdentityExtension_remoteBrowserBox").url = url;
    53     },
    54 
    55     preferences : Components.classes["@mozilla.org/preferences-service;1"]
    56                 .getService(Components.interfaces.nsIPrefService)
    57                 .getBranch("extensions.virtualIdentity."),
    58                
    59     unicodeConverter : Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
    60                 .createInstance(Components.interfaces.nsIScriptableUnicodeConverter),
    61    
    62     selectFile : function(elementID) {
     26virtualIdentityExtension.ns(function () {
     27  with(virtualIdentityExtension.LIB) {
     28
     29    Components.utils.import("resource://gre/modules/AddonManager.jsm");
     30    let Log = vI.setupLogging("virtualIdentity.prefDialog");
     31
     32    var prefDialog = {
     33      toggleHelp: function () {
     34        var browserElem = document.getElementById("virtualIdentityExtension_remoteBrowserBox");
     35        if (browserElem.getAttribute("hidden")) {
     36          window.resizeBy(200, 0);
     37          browserElem.removeAttribute("hidden");
     38        } else {
     39          window.resizeBy(-(browserElem.clientWidth + 7), 0);
     40          browserElem.setAttribute("hidden", "true");
     41        }
     42        prefDialog.updateHelpUrl();
     43      },
     44
     45      updateHelpUrl: function (tabpanel) {
     46        var browserElem = document.getElementById("virtualIdentityExtension_remoteBrowserBox");
     47        if (browserElem.getAttribute("hidden")) return; // don't load any url if browser is hidden
     48        var panelIndex = (tabpanel) ? tabpanel : document.getElementById('prefTabbox').selectedIndex
     49        var prefTree = document.getElementById('prefTabbox').selectedPanel.getElementsByAttribute("class", "vIprefTree")[0];
     50        var currentVersion = document.getElementById("virtualIdentityExtension_extVersion").getAttribute("value").split(/\./);
     51        var extVersion = currentVersion[0] + "." + currentVersion[1];
     52        var url = "https://www.absorb.it/virtual-id/wiki/docs/" + extVersion + "/tab" + panelIndex + "/tree" + prefTree.currentIndex;
     53        document.getElementById("virtualIdentityExtension_remoteBrowserBox").url = url;
     54      },
     55
     56      preferences: Components.classes["@mozilla.org/preferences-service;1"]
     57        .getService(Components.interfaces.nsIPrefService)
     58        .getBranch("extensions.virtualIdentity."),
     59
     60      unicodeConverter: Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
     61        .createInstance(Components.interfaces.nsIScriptableUnicodeConverter),
     62
     63      selectFile: function (elementID) {
    6364        dump("selectFile\n");
    6465        var filePicker = Components.classes["@mozilla.org/filepicker;1"]
    65             .createInstance(Components.interfaces.nsIFilePicker);
     66          .createInstance(Components.interfaces.nsIFilePicker);
    6667        var file = Components.classes["@mozilla.org/file/local;1"]
    67             .createInstance(Components.interfaces.nsIFile);
     68          .createInstance(Components.interfaces.nsIFile);
    6869        var defaultPath = Components.classes["@mozilla.org/file/directory_service;1"]
    69                     .getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path;
     70          .getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path;
    7071
    7172        try {
    72             file.initWithPath(document.getElementById(elementID).value);
     73          file.initWithPath(document.getElementById(elementID).value);
     74          filePicker.displayDirectory = file.parent;
     75          filePicker.defaultString = file.leafName;
     76        } catch (NS_ERROR_FILE_UNRECOGNIZED_PATH) {
     77          try {
     78            // try linux delimiter
     79            file.initWithPath(defaultPath + "/" + document.getElementById(elementID).value);
    7380            filePicker.displayDirectory = file.parent;
    7481            filePicker.defaultString = file.leafName;
     82          } catch (NS_ERROR_FILE_UNRECOGNIZED_PATH) {
     83            try {
     84              // use windows delimiter
     85              file.initWithPath(defaultPath + "\\" + document.getElementById(elementID).value);
     86              filePicker.displayDirectory = file.parent;
     87              filePicker.defaultString = file.leafName;
     88            } catch (NS_ERROR_FILE_UNRECOGNIZED_PATH) {};
     89          }
    7590        }
    76         catch(NS_ERROR_FILE_UNRECOGNIZED_PATH) {
    77             try {
    78                 // try linux delimiter
    79                 file.initWithPath(defaultPath + "/" + document.getElementById(elementID).value);
    80                 filePicker.displayDirectory = file.parent;
    81                 filePicker.defaultString = file.leafName;
    82             } catch (NS_ERROR_FILE_UNRECOGNIZED_PATH) {
    83                 try {
    84                     // use windows delimiter
    85                     file.initWithPath(defaultPath + "\\" + document.getElementById(elementID).value);
    86                     filePicker.displayDirectory = file.parent;
    87                     filePicker.defaultString = file.leafName;
    88                 } catch (NS_ERROR_FILE_UNRECOGNIZED_PATH) { };
     91
     92        filePicker.init(window, "", Components.interfaces.nsIFilePicker.modeSave);
     93
     94        if (filePicker.show() != Components.interfaces.nsIFilePicker.returnCancel) {
     95          if (filePicker.file.parent.path == defaultPath)
     96            document.getElementById(elementID).setAttribute("value", filePicker.file.leafName);
     97          else
     98            document.getElementById(elementID).setAttribute("value", filePicker.file.path);
     99        }
     100      },
     101
     102      base: {
     103        _elementIDs: ["VIdent_identity.doFcc",
     104          "VIdent_identity.fccFolderPickerMode",
     105          "VIdent_identity.fccFolder",
     106          "VIdent_identity.fccReplyFollowsParent",
     107          "VIdent_identity.draftFolderPickerMode",
     108          "VIdent_identity.draftFolder",
     109          "VIdent_identity.stationeryFolderPickerMode",
     110          "VIdent_identity.stationeryFolder",
     111          "VIdent_identity.copySMIMESettings",
     112          "VIdent_identity.copyAttachVCardSettings",
     113          "VIdent_identity.smart_reply",
     114          "VIdent_identity.smart_detectByReceivedHeader",
     115          "VIdent_identity.smart_reply_for_newsgroups",
     116          "VIdent_identity.show_status",
     117          "VIdent_identity.show_smtp",
     118          "VIdent_identity.fcc_show_switch",
     119          "VIdent_identity.menu_entry",
     120          "VIdent_identity.smart_reply_headers",
     121          "VIdent_identity.smart_reply_filter",
     122          "VIdent_identity.smart_draft",
     123          "VIdent_identity.smart_reply_notification",
     124          "VIdent_identity.get_header_notification",
     125          "VIdent_identity.smart_reply_defaultFullName",
     126          "VIdent_identity.smart_reply_ignoreFullName",
     127          "VIdent_identity.smart_reply_searchBaseIdentity",
     128          "VIdent_identity.autoTimestamp",
     129          "VIdent_identity.autoTimeString",
     130          "VIdent_identity.autoTimeFormat",
     131          "VIdent_identity.notification_timeout",
     132          "VIdent_identity.debug_notification",
     133          "VIdent_identity.debug_to_file",
     134          "VIdent_identity.debug_to_file_path",
     135          "VIdent_identity.warn_nonvirtual",
     136          "VIdent_identity.warn_virtual",
     137          "VIdent_identity.hide_signature",
     138          "VIdent_identity.hide_sMime_messageSignature",
     139          "VIdent_identity.hide_openPGP_messageSignature",
     140          "VIdent_identity.storage",
     141          "VIdent_identity.storage_store",
     142          "VIdent_identity.storage_store_base_id",
     143          "VIdent_identity.storage_store_SMTP",
     144          "VIdent_identity.storage_dont_update_multiple",
     145          "VIdent_identity.storage_show_switch",
     146          "VIdent_identity.storage_show_baseID_switch",
     147          "VIdent_identity.storage_show_SMTP_switch",
     148          "VIdent_identity.storage_colorIndication",
     149          "VIdent_identity.storage_warn_update",
     150          "VIdent_identity.storage_warn_vI_replace",
     151          "VIdent_identity.storage_notification",
     152          "VIdent_identity.storage_getOneOnly",
     153          "VIdent_identity.storage_timeFormat",
     154          "VIdent_identity.storageExtras_returnReciept",
     155          "VIdent_identity.storageExtras_fcc",
     156          "VIdent_identity.storageExtras_characterEncoding",
     157          "VIdent_identity.storageExtras_messageFormat",
     158          "VIdent_identity.storageExtras_sMime_messageEncryption",
     159          "VIdent_identity.storageExtras_sMime_messageSignature",
     160          "VIdent_identity.storageExtras_openPGP_messageEncryption",
     161          "VIdent_identity.storageExtras_openPGP_messageSignature",
     162          "VIdent_identity.storageExtras_openPGP_PGPMIME",
     163          "VIdent_identity.idSelection_storage_prefer_smart_reply",
     164          "VIdent_identity.idSelection_storage_ignore_smart_reply",
     165          "VIdent_identity.idSelection_ask",
     166          "VIdent_identity.idSelection_ask_always",
     167          "VIdent_identity.idSelection_autocreate",
     168          "VIdent_identity.idSelection_preferExisting",
     169          "VIdent_identity.idSelection_ignoreIDs",
     170          "VIdent_identity.autoReplyToSelf"
     171        ],
     172
     173        init: function () {
     174          // initialize the default window values...
     175          for (var i = 0; i < prefDialog.base._elementIDs.length; i++) {
     176            var elementID = prefDialog.base._elementIDs[i];
     177            var element = document.getElementById(elementID);
     178            if (!element) break;
     179            var eltType = element.localName;
     180            //              try {
     181            if (eltType == "radiogroup")
     182              element.selectedItem = element.childNodes[
     183                prefDialog.preferences.getIntPref(element.getAttribute("prefstring"))];
     184            else if (eltType == "checkbox")
     185              element.checked =
     186              prefDialog.preferences.getBoolPref(element.getAttribute("prefstring"));
     187            else if (eltType == "textbox")
     188              if (element.getAttribute("preftype") == "int")
     189                element.setAttribute("value",
     190                  prefDialog.preferences.getIntPref(element.getAttribute("prefstring")));
     191              else {
     192                element.setAttribute("value",
     193                  prefDialog.unicodeConverter.ConvertToUnicode(prefDialog.preferences.getCharPref(element.getAttribute("prefstring"))));
     194              } else if (eltType == "listbox")
     195              element.value =
     196              prefDialog.preferences.getCharPref(element.getAttribute("prefstring"));
     197            //              } catch (ex) {}
     198            //             dump("setting textbox value: " + element.getAttribute("prefstring") + " " + element.getAttribute("value") + "\n");
     199          }
     200        },
     201
     202        savePrefs: function () {
     203          for (var i = 0; i < prefDialog.base._elementIDs.length; i++) {
     204            var elementID = prefDialog.base._elementIDs[i];
     205            var element = document.getElementById(elementID);
     206            if (!element) break;
     207            var eltType = element.localName;
     208            if (eltType == "radiogroup")
     209              prefDialog.preferences.setIntPref(
     210                element.getAttribute("prefstring"), parseInt(element.value));
     211            else if (eltType == "checkbox")
     212              prefDialog.preferences.setBoolPref(
     213                element.getAttribute("prefstring"), element.checked);
     214            else if (eltType == "textbox") {
     215              if (element.getAttribute("preftype") == "int")
     216                prefDialog.preferences.setIntPref(
     217                  element.getAttribute("prefstring"), element.value);
     218              else prefDialog.preferences.setCharPref(
     219                element.getAttribute("prefstring"), prefDialog.unicodeConverter.ConvertFromUnicode(element.value));
     220            } else if (eltType == "listbox")
     221              prefDialog.preferences.setCharPref(element.getAttribute("prefstring"), element.value);
     222          }
     223        },
     224
     225        modifyAttribute: function (elemID, attribute, value) {
     226          if (value) document.getElementById(elemID).removeAttribute(attribute);
     227          else document.getElementById(elemID).setAttribute(attribute, "true");
     228        },
     229
     230        constraints: function () {
     231          var storage = document.getElementById("VIdent_identity.storage").checked;
     232          var smartDraft = document.getElementById("VIdent_identity.smart_draft").checked;
     233          var smartReply = document.getElementById("VIdent_identity.smart_reply").checked;
     234          var mAttr = prefDialog.base.modifyAttribute;
     235
     236          // idSelectionConstraint
     237          var idSelectionConstraint = (storage || smartReply || smartDraft);
     238          mAttr("VIdent_identity.idSelection_ask", "disabled", idSelectionConstraint);
     239          mAttr("VIdent_identity.idSelection_ask_always", "disabled", idSelectionConstraint);
     240          mAttr("VIdent_identity.idSelection_autocreate", "disabled", idSelectionConstraint);
     241          mAttr("VIdent_identity.idSelection_autocreate.desc", "disabled", idSelectionConstraint);
     242          mAttr("VIdent_identity.idSelection_preferExisting", "disabled", idSelectionConstraint);
     243          mAttr("selection", "featureDisabled", idSelectionConstraint);
     244          mAttr("toCompose", "featureDisabled", idSelectionConstraint);
     245
     246          // idSelectionInputConstraint
     247          var idSelectionInputConstraint = (storage && smartReply);
     248          mAttr("VIdent_identity.idSelection_storage_prefer_smart_reply", "disabled", idSelectionInputConstraint);
     249          mAttr("VIdent_identity.idSelection_storage_ignore_smart_reply", "disabled", idSelectionInputConstraint);
     250          if (idSelectionInputConstraint) prefDialog.base.idSelectionResultConstraint();
     251
     252          // sourceEmailConstraint
     253          var sourceEmailConstraint = (smartReply || smartDraft);
     254          mAttr("sourceEmail", "featureDisabled", sourceEmailConstraint);
     255          mAttr("toSelection", "featureDisabled", sourceEmailConstraint);
     256
     257        },
     258
     259        idSelectionResultConstraint: function () {
     260          var ask = document.getElementById("VIdent_identity.idSelection_ask")
     261          var ask_always = document.getElementById("VIdent_identity.idSelection_ask_always")
     262          var autocreate = document.getElementById("VIdent_identity.idSelection_autocreate")
     263          var autocreate_desc = document.getElementById("VIdent_identity.idSelection_autocreate.desc")
     264          ask_always.setAttribute("disabled", (autocreate.checked || !ask.checked))
     265          autocreate.setAttribute("disabled", (ask.checked && ask_always.checked))
     266          autocreate_desc.setAttribute("disabled", (ask.checked && ask_always.checked))
     267          autocreate_desc.setAttribute("hidden", !ask.checked)
     268        },
     269
     270        smartReplyConstraint: function (element) {
     271          var mAttr = prefDialog.base.modifyAttribute;
     272          mAttr("VIdent_identity.smart_reply_for_newsgroups", "disabled", element.checked);
     273          mAttr("VIdent_identity.smart_reply_headers", "disabled", element.checked);
     274          mAttr("VIdent_identity.smart_reply_filter", "disabled", element.checked);
     275          mAttr("VIdent_identity.smart_reply_defaultFullName", "disabled", element.checked);
     276          mAttr("VIdent_identity.smart_reply_ignoreFullName", "disabled", element.checked);
     277          mAttr("VIdent_identity.smart_reply_headers_reset", "disabled", element.checked);
     278          mAttr("VIdent_identity.smart_detectByReceivedHeader", "disabled", element.checked);
     279          prefDialog.base.constraints();
     280        },
     281
     282        smartReplyHeaderReset: function () {
     283          var textfield = document.getElementById("VIdent_identity.smart_reply_headers")
     284          textfield.value = "envelope-to\nx-original-to\nto\ncc"
     285        },
     286
     287        smartReplyHideSignature: function () {
     288          // check for signature_switch extension
     289          AddonManager.getAddonByID("{2ab1b709-ba03-4361-abf9-c50b964ff75d}", function (addon) {
     290            if (addon && !addon.userDisabled && !addon.appDisable) {
     291              document.getElementById("VIdent_identity.HideSignature.warning").setAttribute("hidden", "true");
     292              document.getElementById("VIdent_identity.hide_signature").setAttribute("disabled", "false");
    89293            }
     294          });
     295        },
     296
     297        autoTimestampConstraint: function (element) {
     298          var mAttr = prefDialog.base.modifyAttribute;
     299          mAttr("VIdent_identity.autoTimestamp.options", "hidden", element.checked);
     300        },
     301
     302        storageConstraint: function (element) {
     303          var mAttr = prefDialog.base.modifyAttribute;
     304          mAttr("VIdent_identity.storage_store", "disabled", element.checked);
     305          mAttr("VIdent_identity.storage_store_base_id", "disabled", element.checked);
     306          mAttr("VIdent_identity.storage_store_SMTP", "disabled", element.checked);
     307          mAttr("VIdent_identity.storage_dont_update_multiple", "disabled", element.checked);
     308          mAttr("VIdent_identity.storage_show_switch", "disabled", element.checked);
     309          mAttr("VIdent_identity.storage_show_baseID_switch", "disabled", element.checked);
     310          mAttr("VIdent_identity.storage_show_SMTP_switch", "disabled", element.checked);
     311          mAttr("VIdent_identity.storage_colorIndication", "disabled", element.checked);
     312          mAttr("VIdent_identity.storage_warn_update", "disabled", element.checked);
     313          mAttr("VIdent_identity.storage_warn_vI_replace", "disabled", element.checked);
     314          mAttr("VIdent_identity.storage_notification", "disabled", element.checked);
     315          mAttr("VIdent_identity.storage_getOneOnly", "disabled", element.checked);
     316          mAttr("VIdent_identity.storageExtras_returnReciept", "disabled", element.checked);
     317          mAttr("VIdent_identity.storageExtras_fcc", "disabled", element.checked);
     318          mAttr("VIdent_identity.storageExtras_characterEncoding", "disabled", element.checked);
     319          mAttr("VIdent_identity.storageExtras_messageFormat", "disabled", element.checked);
     320          mAttr("VIdent_identity.storageExtras_sMime_messageEncryption", "disabled", element.checked);
     321          mAttr("VIdent_identity.storageExtras_sMime_messageSignature", "disabled", element.checked);
     322          mAttr("VIdent_identity.storageExtras_openPGP_messageEncryption", "disabled", element.checked);
     323          mAttr("VIdent_identity.storageExtras_openPGP_messageSignature", "disabled", element.checked);
     324          mAttr("VIdent_identity.storageExtras_openPGP_PGPMIME", "disabled", element.checked);
     325          mAttr("storageOut", "featureDisabled", element.checked);
     326          mAttr("storageUp", "featureDisabled", element.checked);
     327          mAttr("storageUpDown", "featureDisabled", element.checked);
     328          prefDialog.base.constraints();
     329        },
     330
     331        menuButtonConstraints: function (elem) {
     332          var mAttr = prefDialog.base.modifyAttribute;
     333          var valueParam = (document.getElementById("viewGroup").getAttribute("hidden") == "true"); // true -> removeAttribute
     334          var dialogElem = document.getElementById("vI_prefDialog");
     335          mAttr("logoButton2", "hidden", valueParam);
     336          mAttr("toggleIcon", "open", valueParam);
     337          document.getAnonymousElementByAttribute(dialogElem, "class", "box-inherit dialog-content-box").removeAttribute("flex");
     338        },
     339
     340        flipMenuButtons: function (elem) {
     341          var mAttr = prefDialog.base.modifyAttribute;
     342          var valueParam = (elem.getAttribute("open") == "true");
     343          var dialogElem = document.getElementById("vI_prefDialog");
     344          var oldContentElemHeight = document.getAnonymousElementByAttribute(dialogElem, "class", "box-inherit dialog-content-box").clientHeight;
     345          mAttr("viewGroup", "hidden", !valueParam);
     346          mAttr("logoButton2", "hidden", valueParam);
     347          mAttr(elem.id, "open", valueParam);
     348          window.resizeBy(0, document.getAnonymousElementByAttribute(dialogElem, "class", "box-inherit dialog-content-box").clientHeight - oldContentElemHeight);
     349        },
     350
     351        initTreeValues: function () {
     352          var prefTrees = document.getElementById("prefTabbox").getElementsByAttribute("class", "vIprefTree");
     353          for (var i = 0; i < prefTrees.length; i++) prefTrees[i].currentIndex = 0;
    90354        }
    91        
    92         filePicker.init(window, "", Components.interfaces.nsIFilePicker.modeSave);
    93        
    94         if (filePicker.show() != Components.interfaces.nsIFilePicker.returnCancel) {
    95             if (filePicker.file.parent.path == defaultPath)
    96                 document.getElementById(elementID).setAttribute("value", filePicker.file.leafName);
    97             else
    98                 document.getElementById(elementID).setAttribute("value", filePicker.file.path);
    99         }
    100     },
    101                            
    102     base : {
    103         _elementIDs : [ "VIdent_identity.doFcc",
    104                 "VIdent_identity.fccFolderPickerMode",
    105                 "VIdent_identity.fccFolder",
    106                 "VIdent_identity.fccReplyFollowsParent",
    107                 "VIdent_identity.draftFolderPickerMode",
    108                 "VIdent_identity.draftFolder",
    109                 "VIdent_identity.stationeryFolderPickerMode",
    110                 "VIdent_identity.stationeryFolder",
    111                 "VIdent_identity.copySMIMESettings",
    112                 "VIdent_identity.copyAttachVCardSettings",
    113                 "VIdent_identity.smart_reply",
    114                 "VIdent_identity.smart_detectByReceivedHeader",
    115                 "VIdent_identity.smart_reply_for_newsgroups",
    116                 "VIdent_identity.show_status",
    117                 "VIdent_identity.show_smtp",
    118                 "VIdent_identity.fcc_show_switch",
    119                 "VIdent_identity.menu_entry",
    120                 "VIdent_identity.smart_reply_headers",
    121                 "VIdent_identity.smart_reply_filter",
    122                 "VIdent_identity.smart_draft",
    123                 "VIdent_identity.smart_reply_notification",
    124                 "VIdent_identity.get_header_notification",
    125                 "VIdent_identity.smart_reply_defaultFullName",
    126                 "VIdent_identity.smart_reply_ignoreFullName",
    127                 "VIdent_identity.smart_reply_searchBaseIdentity",
    128                 "VIdent_identity.autoTimestamp",
    129                 "VIdent_identity.autoTimeString",
    130                 "VIdent_identity.autoTimeFormat",
    131                 "VIdent_identity.notification_timeout",
    132                 "VIdent_identity.debug_notification",
    133                 "VIdent_identity.debug_to_file",
    134                 "VIdent_identity.debug_to_file_path",
    135                 "VIdent_identity.warn_nonvirtual",
    136                 "VIdent_identity.warn_virtual",
    137                 "VIdent_identity.hide_signature",
    138                 "VIdent_identity.hide_sMime_messageSignature",
    139                 "VIdent_identity.hide_openPGP_messageSignature",
    140                 "VIdent_identity.storage",
    141                 "VIdent_identity.storage_store",
    142                 "VIdent_identity.storage_store_base_id",
    143                 "VIdent_identity.storage_store_SMTP",
    144                 "VIdent_identity.storage_dont_update_multiple",
    145                 "VIdent_identity.storage_show_switch",
    146                 "VIdent_identity.storage_show_baseID_switch",
    147                 "VIdent_identity.storage_show_SMTP_switch",
    148                 "VIdent_identity.storage_colorIndication",
    149                 "VIdent_identity.storage_warn_update",
    150                 "VIdent_identity.storage_warn_vI_replace",
    151                 "VIdent_identity.storage_notification",
    152                 "VIdent_identity.storage_getOneOnly",
    153                 "VIdent_identity.storage_timeFormat",
    154                 "VIdent_identity.storageExtras_returnReciept",
    155                 "VIdent_identity.storageExtras_fcc",
    156                 "VIdent_identity.storageExtras_characterEncoding",
    157                 "VIdent_identity.storageExtras_messageFormat",
    158                 "VIdent_identity.storageExtras_sMime_messageEncryption",
    159                 "VIdent_identity.storageExtras_sMime_messageSignature",
    160                 "VIdent_identity.storageExtras_openPGP_messageEncryption",
    161                 "VIdent_identity.storageExtras_openPGP_messageSignature",
    162                 "VIdent_identity.storageExtras_openPGP_PGPMIME",
    163                 "VIdent_identity.idSelection_storage_prefer_smart_reply",
    164                 "VIdent_identity.idSelection_storage_ignore_smart_reply",
    165                 "VIdent_identity.idSelection_ask",
    166                 "VIdent_identity.idSelection_ask_always",
    167                 "VIdent_identity.idSelection_autocreate",
    168                 "VIdent_identity.idSelection_preferExisting",
    169                 "VIdent_identity.idSelection_ignoreIDs",
    170                 "VIdent_identity.autoReplyToSelf"],
    171    
    172         init : function() {
    173         // initialize the default window values...
    174             for( var i = 0; i < prefDialog.base._elementIDs.length; i++ ) {
    175                 var elementID = prefDialog.base._elementIDs[i];
    176                 var element = document.getElementById(elementID);
    177                 if (!element) break;
    178                 var eltType = element.localName;
    179 //              try {
    180                     if (eltType == "radiogroup")
    181                         element.selectedItem = element.childNodes[
    182                             prefDialog.preferences.getIntPref(element.getAttribute("prefstring"))];
    183                     else if (eltType == "checkbox")
    184                         element.checked =
    185                             prefDialog.preferences.getBoolPref(element.getAttribute("prefstring"));
    186                     else if (eltType == "textbox")
    187                         if (element.getAttribute("preftype") == "int")
    188                             element.setAttribute("value",
    189                             prefDialog.preferences.getIntPref(element.getAttribute("prefstring")) );
    190                         else {
    191                             element.setAttribute("value",
    192                             prefDialog.unicodeConverter.ConvertToUnicode(prefDialog.preferences.getCharPref(element.getAttribute("prefstring"))) );
    193                         }
    194                     else if (eltType == "listbox")
    195                         element.value =
    196                             prefDialog.preferences.getCharPref(element.getAttribute("prefstring"));
    197 //              } catch (ex) {}
    198 //             dump("setting textbox value: " + element.getAttribute("prefstring") + " " + element.getAttribute("value") + "\n");
    199             }
    200         },
    201 
    202         savePrefs : function() {
    203             for( var i = 0; i < prefDialog.base._elementIDs.length; i++ ) {
    204                 var elementID = prefDialog.base._elementIDs[i];
    205                 var element = document.getElementById(elementID);
    206                 if (!element) break;
    207                 var eltType = element.localName;
    208                 if (eltType == "radiogroup")
    209                     prefDialog.preferences.setIntPref(
    210                         element.getAttribute("prefstring"), parseInt(element.value));
    211                 else if (eltType == "checkbox")
    212                     prefDialog.preferences.setBoolPref(
    213                         element.getAttribute("prefstring"), element.checked);
    214                 else if (eltType == "textbox") {
    215                     if (element.getAttribute("preftype") == "int")
    216                         prefDialog.preferences.setIntPref(
    217                             element.getAttribute("prefstring"), element.value);
    218                     else prefDialog.preferences.setCharPref(
    219                             element.getAttribute("prefstring"), prefDialog.unicodeConverter.ConvertFromUnicode(element.value));
    220                 }
    221                 else if (eltType == "listbox")
    222                     prefDialog.preferences.setCharPref(element.getAttribute("prefstring"), element.value);
    223             }
    224         },
    225        
    226         modifyAttribute : function(elemID, attribute, value) {
    227             if (value) document.getElementById(elemID).removeAttribute(attribute);
    228             else document.getElementById(elemID).setAttribute(attribute, "true");
    229         },
    230 
    231         constraints : function() {
    232             var storage = document.getElementById("VIdent_identity.storage").checked;
    233             var smartDraft = document.getElementById("VIdent_identity.smart_draft").checked;
    234             var smartReply = document.getElementById("VIdent_identity.smart_reply").checked;
    235             var mAttr = prefDialog.base.modifyAttribute;
    236 
    237             // idSelectionConstraint
    238             var idSelectionConstraint = (storage || smartReply || smartDraft);
    239             mAttr("VIdent_identity.idSelection_ask","disabled",idSelectionConstraint);
    240             mAttr("VIdent_identity.idSelection_ask_always","disabled",idSelectionConstraint);
    241             mAttr("VIdent_identity.idSelection_autocreate","disabled",idSelectionConstraint);
    242             mAttr("VIdent_identity.idSelection_autocreate.desc","disabled",idSelectionConstraint);
    243             mAttr("VIdent_identity.idSelection_preferExisting","disabled",idSelectionConstraint);
    244             mAttr("selection","featureDisabled",idSelectionConstraint);
    245             mAttr("toCompose","featureDisabled",idSelectionConstraint);
    246 
    247             // idSelectionInputConstraint
    248             var idSelectionInputConstraint = (storage && smartReply);
    249             mAttr("VIdent_identity.idSelection_storage_prefer_smart_reply","disabled",idSelectionInputConstraint);
    250             mAttr("VIdent_identity.idSelection_storage_ignore_smart_reply","disabled",idSelectionInputConstraint);
    251             if (idSelectionInputConstraint) prefDialog.base.idSelectionResultConstraint();
    252 
    253             // sourceEmailConstraint
    254             var sourceEmailConstraint = (smartReply || smartDraft);
    255             mAttr("sourceEmail","featureDisabled",sourceEmailConstraint);
    256             mAttr("toSelection","featureDisabled",sourceEmailConstraint);
    257 
    258         },
    259 
    260         idSelectionResultConstraint : function() {
    261             var ask = document.getElementById("VIdent_identity.idSelection_ask")
    262             var ask_always = document.getElementById("VIdent_identity.idSelection_ask_always")
    263             var autocreate = document.getElementById("VIdent_identity.idSelection_autocreate")
    264             var autocreate_desc = document.getElementById("VIdent_identity.idSelection_autocreate.desc")
    265             ask_always.setAttribute("disabled", (autocreate.checked || !ask.checked))
    266             autocreate.setAttribute("disabled", (ask.checked && ask_always.checked))
    267             autocreate_desc.setAttribute("disabled", (ask.checked && ask_always.checked))
    268             autocreate_desc.setAttribute("hidden", !ask.checked)
    269         },
    270 
    271         smartReplyConstraint : function(element) {
    272             var mAttr = prefDialog.base.modifyAttribute;
    273             mAttr("VIdent_identity.smart_reply_for_newsgroups","disabled",element.checked);
    274             mAttr("VIdent_identity.smart_reply_headers","disabled",element.checked);
    275             mAttr("VIdent_identity.smart_reply_filter","disabled",element.checked);
    276             mAttr("VIdent_identity.smart_reply_defaultFullName","disabled",element.checked);
    277             mAttr("VIdent_identity.smart_reply_ignoreFullName","disabled",element.checked);
    278             mAttr("VIdent_identity.smart_reply_headers_reset","disabled",element.checked);
    279             mAttr("VIdent_identity.smart_detectByReceivedHeader","disabled",element.checked);
    280             prefDialog.base.constraints();
    281         },
    282        
    283         smartReplyHeaderReset : function() {
    284             var textfield = document.getElementById("VIdent_identity.smart_reply_headers")
    285             textfield.value = "envelope-to\nx-original-to\nto\ncc"
    286         },
    287        
    288         smartReplyHideSignature : function() {
    289           // check for signature_switch extension
    290           AddonManager.getAddonByID("{2ab1b709-ba03-4361-abf9-c50b964ff75d}", function(addon) {
    291             if (addon && !addon.userDisabled && !addon.appDisable) {
    292                 document.getElementById("VIdent_identity.HideSignature.warning").setAttribute("hidden", "true");
    293                 document.getElementById("VIdent_identity.hide_signature").setAttribute("disabled", "false");
    294             }
    295           });
    296         },
    297        
    298         autoTimestampConstraint : function(element) {
    299             var mAttr = prefDialog.base.modifyAttribute;
    300             mAttr("VIdent_identity.autoTimestamp.options","hidden",element.checked);
    301         },
    302        
    303         storageConstraint : function(element) {
    304             var mAttr = prefDialog.base.modifyAttribute;
    305             mAttr("VIdent_identity.storage_store","disabled",element.checked);
    306             mAttr("VIdent_identity.storage_store_base_id","disabled",element.checked);
    307             mAttr("VIdent_identity.storage_store_SMTP","disabled",element.checked);
    308             mAttr("VIdent_identity.storage_dont_update_multiple","disabled",element.checked);
    309             mAttr("VIdent_identity.storage_show_switch","disabled",element.checked);
    310             mAttr("VIdent_identity.storage_show_baseID_switch","disabled",element.checked);
    311             mAttr("VIdent_identity.storage_show_SMTP_switch","disabled",element.checked);
    312             mAttr("VIdent_identity.storage_colorIndication","disabled",element.checked);
    313             mAttr("VIdent_identity.storage_warn_update","disabled",element.checked);
    314             mAttr("VIdent_identity.storage_warn_vI_replace","disabled",element.checked);
    315             mAttr("VIdent_identity.storage_notification","disabled",element.checked);
    316             mAttr("VIdent_identity.storage_getOneOnly","disabled",element.checked);
    317             mAttr("VIdent_identity.storageExtras_returnReciept","disabled",element.checked);
    318             mAttr("VIdent_identity.storageExtras_fcc","disabled",element.checked);
    319             mAttr("VIdent_identity.storageExtras_characterEncoding","disabled",element.checked);
    320             mAttr("VIdent_identity.storageExtras_messageFormat","disabled",element.checked);
    321             mAttr("VIdent_identity.storageExtras_sMime_messageEncryption","disabled",element.checked);
    322             mAttr("VIdent_identity.storageExtras_sMime_messageSignature","disabled",element.checked);
    323             mAttr("VIdent_identity.storageExtras_openPGP_messageEncryption","disabled",element.checked);
    324             mAttr("VIdent_identity.storageExtras_openPGP_messageSignature","disabled",element.checked);
    325             mAttr("VIdent_identity.storageExtras_openPGP_PGPMIME","disabled",element.checked);
    326             mAttr("storageOut","featureDisabled",element.checked);
    327             mAttr("storageUp","featureDisabled",element.checked);
    328             mAttr("storageUpDown","featureDisabled",element.checked);
    329             prefDialog.base.constraints();
    330         },
    331 
    332         menuButtonConstraints : function(elem) {
    333             var mAttr = prefDialog.base.modifyAttribute;
    334             var valueParam = (document.getElementById("viewGroup").getAttribute("hidden") == "true");   // true -> removeAttribute
    335             var dialogElem = document.getElementById("vI_prefDialog");
    336             mAttr("logoButton2","hidden", valueParam);
    337             mAttr("toggleIcon","open", valueParam);
    338             document.getAnonymousElementByAttribute(dialogElem, "class", "box-inherit dialog-content-box").removeAttribute("flex");
    339         },
    340 
    341         flipMenuButtons : function(elem) {
    342             var mAttr = prefDialog.base.modifyAttribute;
    343             var valueParam = (elem.getAttribute("open") == "true");
    344             var dialogElem = document.getElementById("vI_prefDialog");
    345             var oldContentElemHeight = document.getAnonymousElementByAttribute(dialogElem, "class", "box-inherit dialog-content-box").clientHeight;
    346             mAttr("viewGroup","hidden", !valueParam);
    347             mAttr("logoButton2","hidden", valueParam);
    348             mAttr(elem.id,"open", valueParam);
    349             window.resizeBy( 0, document.getAnonymousElementByAttribute(dialogElem, "class", "box-inherit dialog-content-box").clientHeight - oldContentElemHeight);
    350         },
    351        
    352         initTreeValues : function() {
    353             var prefTrees = document.getElementById("prefTabbox").getElementsByAttribute("class", "vIprefTree");
    354             for (var i=0 ; i<prefTrees.length; i++) prefTrees[i].currentIndex = 0;
    355         }
    356     },
    357 
    358     init : function() {
    359         prefDialog.unicodeConverter.charset="UTF-8";
    360         prefDialog.base.init();
    361         vI.onInitCopiesAndFolders()
     355      },
     356
     357      init: function () {
     358        prefDialog.unicodeConverter.charset = "UTF-8";
     359        prefDialog.base.init();
     360        vI.onInitCopiesAndFolders()
    362361
    363362        // check for enigmail extension
    364         AddonManager.getAddonByID("{847b3a00-7ab1-11d4-8f02-006008948af5}", function(addon) {
     363        AddonManager.getAddonByID("{847b3a00-7ab1-11d4-8f02-006008948af5}", function (addon) {
    365364          if (addon && !addon.userDisabled && !addon.appDisable) {
    366365            document.getElementById("openPGPencryption").removeAttribute("hidden");
    367366            document.getElementById("VIdent_identity.hide_openPGP_messageSignature").removeAttribute("hidden");
    368367          }
    369         }); 
    370 
    371         prefDialog.base.smartReplyConstraint(document.getElementById("VIdent_identity.smart_reply"));
    372         prefDialog.base.smartReplyHideSignature();
    373         prefDialog.base.storageConstraint(document.getElementById("VIdent_identity.storage"));
    374         prefDialog.base.autoTimestampConstraint(document.getElementById("VIdent_identity.autoTimestamp"));
    375         prefDialog.base.constraints();
    376         prefDialog.base.menuButtonConstraints();
    377         prefDialog.base.initTreeValues();
    378 
    379     },
    380    
    381     savePrefs : function() {
    382         // Copy all changes to Elements
    383         vI.onSaveCopiesAndFolders();
    384         prefDialog.base.savePrefs();
    385     },
    386 
    387     openURL : function(aURL) {
     368        });
     369
     370        prefDialog.base.smartReplyConstraint(document.getElementById("VIdent_identity.smart_reply"));
     371        prefDialog.base.smartReplyHideSignature();
     372        prefDialog.base.storageConstraint(document.getElementById("VIdent_identity.storage"));
     373        prefDialog.base.autoTimestampConstraint(document.getElementById("VIdent_identity.autoTimestamp"));
     374        prefDialog.base.constraints();
     375        prefDialog.base.menuButtonConstraints();
     376        prefDialog.base.initTreeValues();
     377
     378      },
     379
     380      savePrefs: function () {
     381        // Copy all changes to Elements
     382        vI.onSaveCopiesAndFolders();
     383        prefDialog.base.savePrefs();
     384      },
     385
     386      openURL: function (aURL) {
    388387        var uri = Components.classes["@mozilla.org/network/standard-url;1"].createInstance(Components.interfaces.nsIURI);
    389388        var protocolSvc = Components.classes["@mozilla.org/uriloader/external-protocol-service;1"].getService(Components.interfaces.nsIExternalProtocolService);
     
    391390        uri.spec = aURL;
    392391        protocolSvc.loadUrl(uri);
     392      }
    393393    }
    394 }
    395 vI.prefDialog = prefDialog;
    396 }});
     394    vI.prefDialog = prefDialog;
     395  }
     396});
Note: See TracChangeset for help on using the changeset viewer.