Changeset 7dbac2


Ignore:
Timestamp:
Jun 24, 2008, 11:39:37 PM (13 years ago)
Author:
rene <rene@…>
Branches:
master
Children:
0872b5
Parents:
23d242
Message:

changed to use always the menuitem as a base to set the new identity.

Location:
chrome/content/v_identity
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • chrome/content/v_identity/vI_msgIdentityClone.js

    r23d242 r7dbac2  
    2828    text_usualId_class : "plain menulist_clone-textbox",
    2929    text_virtualId_class : "plain menulist_clone-textbox vIactiv",
     30   
     31    localIdentityData : null,
    3032   
    3133    elements : {
     
    4547            vI_msgIdentityClone.elements.Obj_MsgIdentityPopup_clone = document.getElementById("msgIdentityPopup_clone");
    4648        }
     49
     50        vI_msgIdentityClone.localIdentityData = new identityData(null, null, null, null, null)
     51
    4752        vI_msgIdentityClone.clone_Obj_MsgIdentity();
    4853        if (!reopen) {
    49             vI_msgIdentityClone.elements.Obj_MsgIdentity.setAttribute("hidden", "true");
     54//          vI_msgIdentityClone.elements.Obj_MsgIdentity.setAttribute("hidden", "true");
    5055            vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.setAttribute("hidden", "false");
    5156            vI_msgIdentityClone.elements.Obj_MsgIdentity.previousSibling.setAttribute("control", "msgIdentity_clone");
     
    5762        MenuItems = vI_msgIdentityClone.elements.Obj_MsgIdentityPopup_clone.childNodes
    5863        while (MenuItems.length > 0) vI_msgIdentityClone.elements.Obj_MsgIdentityPopup_clone.removeChild(MenuItems[0])
     64        vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.selectedItem == null;
    5965    },
    6066   
     
    97103    },
    98104
     105    setMenuToMenuItem : function (menuItem) {
     106        vI_notificationBar.dump("## vI_msgIdentityClone: setMenuToMenuItem '" +
     107            menuItem.getAttribute("accountname") + "'\n");
     108        vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.selectedItem = menuItem;
     109        vI_notificationBar.dump("## vI_msgIdentityClone: setMenuToMenuItem MsgIdentityPopup_clone.doCommand()\n");
     110        vI_msgIdentityClone.elements.Obj_MsgIdentityPopup_clone.doCommand();
     111    },
     112
    99113    setMenuToIdentity : function (identitykey) {
    100114        vI_notificationBar.dump("## vI_msgIdentityClone: setMenuToIdentity key " + identitykey + "\n");
     115        vI_msgIdentityClone.setMenuToMenuItem(vI_msgIdentityClone.getMenuItemForIdentity(identitykey));
     116    },
     117
     118    getMenuItemForIdentity : function (identitykey) {
    101119        MenuItems = vI_msgIdentityClone.elements.Obj_MsgIdentityPopup_clone.childNodes
    102120        for (var index = 0; index < MenuItems.length; index++) {
    103             if (MenuItems[index].getAttribute("value") ==
    104                 identitykey) {
    105                     vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.selectedItem =
    106                         MenuItems[index];
    107                     break;
    108             }
    109         }
    110         vI_notificationBar.dump("## vI_msgIdentityClone: setMenuToIdentity MsgIdentityPopup_clone.doCommand()\n");
    111         vI_msgIdentityClone.elements.Obj_MsgIdentityPopup_clone.doCommand();
     121            if (MenuItems[index].getAttribute("value") == identitykey)
     122                return MenuItems[index]
     123        }
     124
    112125    },
    113126   
     
    122135    },
    123136
    124     addIdentityToCloneMenu: function(name, id, smtp, extras) {
    125         vI_notificationBar.dump("## vI_msgIdentityClone: addIdentityToCloneMenu '" + id + "'\n");
    126         var accountname = null; var separator = null;
    127         // if a base-id exists, search the account related to this id
    128         MenuItems = vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.firstChild.childNodes
    129         for (var j = 0; j < MenuItems.length; j++) {
    130             if (MenuItems[j].localName == "menuseparator") {
    131                 separator = true; break;
    132             }
    133             if (id && MenuItems[j].getAttribute("value") == id )
    134                 accountname = MenuItems[j].getAttribute("accountname")
    135         }
    136         if (!separator) vI_msgIdentityClone.addSeparatorToCloneMenu();
    137        
    138         if (!accountname) accountname = vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.getAttribute("accountname")
    139         accountname = document.getElementById("prettyName-Prefix").getAttribute("label") + accountname
    140        
    141         vI_helper.addIdentityMenuItem(vI_msgIdentityClone.elements.Obj_MsgIdentityPopup_clone,
    142             name, accountname, "", "vid", id, smtp, extras)
     137    addIdentityToCloneMenu: function(localIdentityData) {
     138        vI_notificationBar.dump("## vI_msgIdentityClone: addIdentityToCloneMenu '" + localIdentityData.id + "'\n");
     139       
     140        var existingId = localIdentityData.isExistingIdentity();
     141        vI_notificationBar.dump("## vI_msgIdentityClone: addIdentityToCloneMenu existingId '" + existingId + "'\n");
     142        if (!existingId) {
     143            var separator = null;
     144            if (!localIdentityData.id) localIdentityData.id = gAccountManager.defaultAccount.defaultIdentity.key
     145            // search the account related to this id
     146            MenuItems = vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.firstChild.childNodes
     147            for (var j = 0; j < MenuItems.length; j++) {
     148                if (MenuItems[j].localName == "menuseparator") {
     149                    separator = true; break;
     150                }
     151                if (MenuItems[j].getAttribute("value") == localIdentityData.id )
     152                    accountname = document.getElementById("prettyName-Prefix").getAttribute("label") + MenuItems[j].getAttribute("accountname")
     153            }
     154            if (!separator) vI_msgIdentityClone.addSeparatorToCloneMenu();
     155       
     156            return vI_helper.addIdentityMenuItem(vI_msgIdentityClone.elements.Obj_MsgIdentityPopup_clone,
     157                vI_helper.combineNames(localIdentityData.fullName, localIdentityData.email),
     158                accountname, "", "vid", localIdentityData.id, localIdentityData.smtp, localIdentityData.extras)
     159        }
     160        else return vI_msgIdentityClone.getMenuItemForIdentity(existingId)
    143161    },
    144162   
    145163    // adds MenuItem for Identities to the cloned Identity-Select Dropdown Menu
    146164    addIdentitiesToCloneMenu: function(all_addresses) {
    147         var separator = null;
    148         for (var index = 0; index < all_addresses.number; index++) {
    149             if (vI_msgIdentityClone.__isNewAddress(
    150                 all_addresses.fullNames[index], all_addresses.emails[index], all_addresses.smtp_keys[index])) {
    151                     if (!separator) separator = vI_msgIdentityClone.addSeparatorToCloneMenu();
    152                     vI_msgIdentityClone.addIdentityToCloneMenu(
    153                         all_addresses.combinedNames[index], all_addresses.id_keys[index],
    154                         all_addresses.smtp_keys[index], all_addresses.extras[index])
    155                 }
    156         }
     165        for (var index = 0; index < all_addresses.number; index++)
     166            all_addresses.menuItems[index] =
     167                vI_msgIdentityClone.addIdentityToCloneMenu(all_addresses.getIdentityData(index))
    157168    },
    158169   
     
    189200       
    190201        if (vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.selectedItem.value != "vid") {
     202            vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.base_id_key = null;
    191203            vI_msgIdentityClone.copySelectedIdentity(
    192204                vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.selectedItem.value);
     
    199211        }
    200212        else {
     213            vI_notificationBar.dump("## vI_msgIdentityClone: LoadIdentity virtual Identity\n");
     214            vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.base_id_key =
     215                vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.selectedItem.base_id_key
    201216            vI_msgIdentityClone.copySelectedIdentity(
    202                 vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.selectedItem.base_id_key);
    203             vI_smtpSelector.resetMenuToMsgIdentity(
    204                 vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.selectedItem.base_id_key);
     217                vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.base_id_key);
    205218            vI_smtpSelector.setMenuToKey(
    206219                vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.selectedItem.smtp_key);
     
    214227        vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.setAttribute("accountname",
    215228            vI_helper.getAccountname(vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.selectedItem));
    216         vI_msgIdentityClone.markAsNewAccount(vI_msgIdentityClone.isNewIdentity());
     229        vI_msgIdentityClone.markAsNewAccount(vI_msgIdentityClone.isExistingIdentity());
    217230        vI_msgIdentityClone.initReplyToFields();
    218231    },
     
    223236        vI_msgIdentityClone.elements.Obj_MsgIdentityTextbox_clone.value = newName;
    224237        vI_msgIdentityClone.blurEvent()
    225         var newIdentity = vI_msgIdentityClone.isNewIdentity();
    226         window.setTimeout(vI_msgIdentityClone.markAsNewAccount, 0, newIdentity);
    227         if (!newIdentity) window.setTimeout(vI_msgIdentityClone.setMenuToIdentity, 0,
    228             vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.getAttribute("value"));
     238        var existingIdentity = vI_msgIdentityClone.isExistingIdentity();
     239        window.setTimeout(vI_msgIdentityClone.markAsNewAccount, 0, existingIdentity);
     240        if (existingIdentity) window.setTimeout(vI_msgIdentityClone.setMenuToIdentity, 0, existingIdentity);
    229241        else vI_msgIdentityClone.elements.Obj_MsgIdentity_clone
    230242                        .setAttribute("timeStamp",timeStamp)
    231         return newIdentity;
     243        return existingIdentity;
    232244    },
    233245   
     
    247259        vI_msgIdentityClone.initMsgIdentityTextbox_clone();
    248260        // compare Identity with existant ones and prepare Virtual-Identity if nonexistant found
    249         var newIdentity = vI_msgIdentityClone.isNewIdentity();
    250         vI_msgIdentityClone.markAsNewAccount(newIdentity);
     261        var existingIdentity = vI_msgIdentityClone.isExistingIdentity();
     262        vI_msgIdentityClone.markAsNewAccount(existingIdentity);
    251263        vI_msgIdentityClone.elements.Obj_MsgIdentity_clone
    252264                        .setAttribute("timeStamp",null)
    253         if (!newIdentity) vI_msgIdentityClone.setMenuToIdentity(vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.getAttribute("value"));
     265        if (existingIdentity) vI_msgIdentityClone.setMenuToIdentity(existingIdentity);
    254266    },
    255267   
     
    326338   
    327339    // updateReplyTo is called on every change in the From: field, if its a virtual Identity
    328     updateReplyTo : function(newIdentity) {
     340    updateReplyTo : function() {
    329341        if (!vI.preferences.getBoolPref("autoReplyToSelf")) return
    330342        if (!vI_msgIdentityClone.replyToSynchronize) {
     
    354366    },
    355367   
    356     markAsNewAccount : function(newIdentity) {
    357         vI_msgIdentityClone.initMsgIdentityTextbox_clone();
    358         if (newIdentity) {
     368    markAsNewAccount : function(existingIdentity) {
     369        vI_msgIdentityClone.initMsgIdentityTextbox_clone();
     370        if (!existingIdentity) {
    359371            vI.replacement_functions.replaceGenericFunction()
    360372            if (vI.elements.Obj_vILogo.getAttribute("hidden") != "false") {
     
    365377                if (vI_msgIdentityClone.elements.Obj_MsgIdentity_clone
    366378                    .getAttribute("value") != "vid") {
    367                     vI_msgIdentityClone.elements.Obj_MsgIdentity_clone
    368                         .setAttribute("oldvalue",vI_msgIdentityClone.elements.Obj_MsgIdentity_clone
    369                                 .getAttribute("value"))
     379                    vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.base_id_key =
     380                        vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.getAttribute("value")
    370381                    vI_msgIdentityClone.elements.Obj_MsgIdentity_clone
    371382                        .setAttribute("value","vid")
     
    386397            } catch(vErr) { };
    387398            // set reply-to according to Virtual Identity
    388             vI_msgIdentityClone.updateReplyTo(newIdentity)
     399            vI_msgIdentityClone.updateReplyTo()
    389400        }
    390401        else {
     
    398409                //~ vI_storage.elements.Obj_storageSave.setAttribute("hidden",
    399410                    //~ !vI.preferences.getBoolPref("storage_show_switch"));
    400                 vI_msgIdentityClone.elements.Obj_MsgIdentity_clone
    401                     .setAttribute("oldvalue",null)
     411                vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.base_id_key = null;
    402412                //~ vI_msgIdentityClone.elements.Obj_MsgIdentityPopup_clone.doCommand();
     413                vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.setAttribute("value",existingIdentity)
    403414            }
    404415            // code to show the signature
     
    407418        }
    408419    },
    409    
    410     __isNewAddress : function(name, email, smtp) {
    411         var accounts = queryISupportsArray(gAccountManager.accounts, Components.interfaces.nsIMsgAccount);
    412         for (var i in accounts) {
    413             // check for VirtualIdentity Account
    414             try {   vI_account.prefroot.getBoolPref("mail.account." + accounts[i].key + ".vIdentity");
    415                 continue; } catch (e) { };
    416            
    417             var identites = queryISupportsArray(accounts[i].identities, Components.interfaces.nsIMsgIdentity);
    418             for (var j in identites) {
    419                 var identity = identites[j];
    420                 var smtpKey = identity.smtpServerKey;
    421                 if (    identity.getUnicharAttribute("fullName") == name &&
    422                     identity.getUnicharAttribute("useremail") == email &&
    423                     smtpKey == smtp) {
    424                         // all values are identical to an existing Identity
    425                         // set Identity combobox to this value
    426                         vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.setAttribute("value", identity.key);
    427                         vI_notificationBar.dump("## vI_msgIdentityClone: matchingIdentity key " + identity.key + "\n");
    428                         return false;
    429                     }
    430                 }
    431             }
    432         return true;   
    433     },
    434    
    435     // checks if the Identity currently described by the extension-area fields i still available as
     420       
     421    // checks if the Identity currently described by the extension-area fields i already available as
    436422    // a stored identity. If so, use the stored one.
    437     isNewIdentity : function()
     423    isExistingIdentity : function()
    438424    {
    439425        vI_msgIdentityClone.initMsgIdentityTextbox_clone();
    440426        var address = vI_helper.getAddress();
    441427        var smtp = vI_smtpSelector.elements.Obj_SMTPServerList.selectedItem.getAttribute('key')
    442         return vI_msgIdentityClone.__isNewAddress(address.name, address.email, smtp);
     428        var id_key = vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.base_id_key;
     429        if (!id_key) id_key = vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.getAttribute("value");
     430       
     431        vI_msgIdentityClone.localIdentityData.email = address.email;
     432        vI_msgIdentityClone.localIdentityData.fullName = address.name;
     433        vI_msgIdentityClone.localIdentityData.id = id_key;
     434        vI_msgIdentityClone.localIdentityData.smtp = smtp;
     435       
     436        var existingIdentity = localIdentityData.isExistingIdentity();
     437        vI_notificationBar.dump("## vI_msgIdentityClone: isExistingIdentity " + existingIdentity + "\n");
     438        return existingIdentity
    443439    },
    444440}
  • chrome/content/v_identity/vI_rdfDatasource.js

    r23d242 r7dbac2  
    205205    updateRDFFromVIdentity : function(recDescription, recType) {
    206206        var address = vI_helper.getAddress();   
    207         var id = vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.getAttribute("oldvalue");
     207        var id = vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.base_id_key;
    208208        if (!id) id = vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.getAttribute("value");
    209209        // unset id if using default identity
  • chrome/content/v_identity/vI_smartIdentity.js

    r23d242 r7dbac2  
    170170                            smartIdentities.emails[j],
    171171                            smartIdentities.fullNames[j],
    172                             smartIdentities.combinedNames[j], null, null)
     172                            smartIdentities.combinedNames[j],
     173                            null, null, null)
    173174            }
    174175        }
     
    308309   
    309310    changeIdentityToSmartIdentity : function(allIdentities, selectedValue) {
    310         if (allIdentities.id_keys[selectedValue]) {
    311             vI_msgIdentityClone.setMenuToIdentity(allIdentities.id_keys[selectedValue])
    312             vI_smtpSelector.setMenuToKey(allIdentities.smtp_keys[selectedValue])
    313             allIdentities.extras[selectedValue].setValues();
    314         }
    315         vI_msgIdentityClone.setIdentity(allIdentities.combinedNames[selectedValue], null);
     311        vI_msgIdentityClone.setMenuToMenuItem(allIdentities.menuItems[selectedValue])
     312       
    316313        if (vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.getAttribute("value") == "vid") {
    317314            var label=vI.elements.strings.getString("vident.smartIdentity.vIUsage");
  • chrome/content/v_identity/vI_storage.js

    r23d242 r7dbac2  
    5151        return A + ", " + B;
    5252    },
     53   
    5354    identityDescription : function(index) {
    5455        var senderName = vI_helper.combineNames(this.fullName, this.email);
     
    5960            this.__combineStrings(this.__combineStrings(idName, smtpName), extras) +  ")"
    6061    },
     62   
    6163    __equalCurrentSMTP : function() {
    6264        var smtp_key = vI_smtpSelector.elements.Obj_SMTPServerList.selectedItem.getAttribute('key');
     
    6466            smtp_key == this.smtp)
    6567    },
     68   
    6669    __equalCurrentID : function() {
    67         var id_key = vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.getAttribute("oldvalue");
     70        var id_key = vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.base_id_key;
    6871        if (!id_key) id_key = vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.getAttribute("value");
    6972        return ((!this.__keyTranslator.getID(this.id) && (id_key == gAccountManager.defaultAccount.defaultIdentity.key)) ||
    7073            id_key == this.id)
    7174    },
     75   
    7276    equalsCurrentIdentity : function() {
    7377        var curAddress = vI_helper.getAddress();       
    7478        var curExtras = new vI_storageExtras();
    7579        curExtras.readValues(); // initialize with current MsgComposeDialog Values
    76        
     80        vI_notificationBar.dump("## identityData: __equalCurrentID = '" + this.__equalCurrentID() + "'.\n")
     81        vI_notificationBar.dump("## identityData: __equalCurrentSMTP = '" + this.__equalCurrentSMTP() + "'.\n")
     82        vI_notificationBar.dump("## identityData: curAddress.email = '" + (curAddress.email == this.email) + "'.\n")
     83        vI_notificationBar.dump("## identityData: curAddress.name = '" + (curAddress.name == this.fullName) + "'.\n")
     84        vI_notificationBar.dump("## identityData: this.extras.equal(curExtras) = '" + this.extras.equal(curExtras) + "'.\n")
     85
    7786        var equal = (   (this.__equalCurrentID()) &&
    7887                (this.__equalCurrentSMTP()) &&
     
    8392        else vI_notificationBar.dump("## identityData: Identities differ.\n")
    8493        return equal;
     94    },
     95
     96    isExistingIdentity : function() {
     97        var identity = gAccountManager.defaultAccount.defaultIdentity
     98        if (this.__keyTranslator.getID(this.id))
     99            identity = gAccountManager.getIdentity(this.id)
     100       
     101        var defaultSMTP = null;
     102        for (var i in gAccountManager.accounts) {
     103            for (var j in gAccountManager.accounts[i].identities) {
     104                if (this.id == gAccountManager.accounts[i].identities[j].key)
     105                    defaultSMTP = gAccountManager.accounts[i].defaultIdentity.smtpServerKey;
     106            }
     107        }
     108        if (!defaultSMTP) defaultSMTP = gAccountManager.defaultAccount.defaultIdentity.smtpServerKey
     109
     110        equal = ((this.smtp == identity.smtpServerKey ||
     111            (!this.__keyTranslator.getSMTP(this.smtp) && identity.smtpServerKey == defaultSMTP) ||
     112            (!this.__keyTranslator.getSMTP(identity.smtpServerKey) && this.smtp == defaultSMTP)) &&
     113            identity.getUnicharAttribute("fullName") == this.fullName &&
     114            identity.getUnicharAttribute("useremail") == this.email)
     115       
     116        if (equal) return identity.key
     117        else return null
    85118    }
    86119}
     
    96129    smtp_keys : {},
    97130    extras : {},
     131    menuItems : {},
    98132   
    99133    mergeWithoutDuplicates : function(addIdentityCollection) {
     
    108142    },
    109143
    110     addWithoutDuplicates : function(email, fullName, combinedName, id_key, smtp_key, extra) {
     144    addWithoutDuplicates : function(email, fullName, combinedName, id_key, smtp_key, extras) {
    111145        for (index = 0; index < this.number; index++) {
    112146            if (this.emails[index] == email &&
     
    125159                    this.id_keys[index] = id_key;
    126160                    this.smtp_keys[index] = smtp_key;
    127                     this.extras[index] = extra;
     161                    this.extras[index] = extras;
    128162                    vI_notificationBar.dump("## identityCollection:   added id '" + id_key
    129                         + "' smtp '" + smtp_key + "' (+extra) to stored email '" + email +"'\n")
     163                        + "' smtp '" + smtp_key + "' (+extras) to stored email '" + email +"'\n")
    130164                }
    131165                return;
     
    138172        this.id_keys[index] = id_key;
    139173        this.smtp_keys[index] = smtp_key;
     174        this.extras[index] = extras;
    140175        this.number = index + 1;
    141176    },
     
    149184        this.smtp_keys = newIdentityCollection.smtp_keys
    150185        this.extras = newIdentityCollection.extras
     186    },
     187
     188    getIdentityData : function(index) {
     189        var newIdentityData =
     190            new identityData(this.emails[index],
     191                this.fullNames[index],
     192                this.id_keys[index],
     193                this.smtp_keys[index],
     194                this.extras[index])
     195        return newIdentityData
    151196    }
    152197};
     
    175220        vI_storage.lastCheckedEmail = {};
    176221        vI_storage.firstUsedInputElement = null;
    177         vI_storage.firstUsedStorageData = null;
    178222        awSetInputAndPopupValue = vI_storage.original_functions.awSetInputAndPopupValue;
    179223    },
     
    252296   
    253297    firstUsedInputElement : null,   // this stores the first Element for which a Lookup in the Storage was successfull
    254     firstUsedStorageData : null,    // stores the used storage-entry to show a warning if the Identities differ
    255298    updateVIdentityFromStorage: function(inputElement) {       
    256299        if (!vI.preferences.getBoolPref("storage"))
     
    262305        var row = inputElement.id.replace(/^addressCol2#/,"")
    263306        if (recipientType == "addr_reply" || recipientType == "addr_followup" || vI_storage.__isDoBcc(row)) {
    264             // reset firstUsedInputElement and firstUsedStorageData if recipientType was changed (and don't care about doBcc fields)
    265             if (vI_storage.firstUsedInputElement == inputElement) {
     307            // reset firstUsedInputElement if recipientType was changed (and don't care about doBcc fields)
     308            if (vI_storage.firstUsedInputElement == inputElement)
    266309                vI_storage.firstUsedInputElement = null;
    267                 vI_storage.firstUsedStorageData = null;
    268             }
    269310            vI_notificationBar.dump("## vI_storage: field is a 'reply-to' or 'followup-to' or preconfigured 'doBcc'. not searched.\n")
    270311            return;
     
    289330        vI_notificationBar.dump("## vI_storage: compare with current Identity\n");
    290331       
    291         if (vI_storage.firstUsedInputElement == inputElement)
    292             vI_storage.firstUsedStorageData = storageData
    293332        if (vI.preferences.getBoolPref("storage_getOneOnly") && vI_storage.firstUsedInputElement &&
    294333            vI_storage.firstUsedInputElement != inputElement) {
    295334            vI_notificationBar.dump("## vI_storage: retrieved Identity for other recipient-field before. ignoring\n");
    296             if (    vI_storage.firstUsedStorageData.email != storageData.email ||
    297                 vI_storage.firstUsedStorageData.fullName != storageData.fullName ||
    298                 vI_storage.firstUsedStorageData.id != storageData.id ||
    299                 vI_storage.firstUsedStorageData.smtp != storageData.smtp ||
    300                 !vI_storage.firstUsedStorageData.extras.equal(storageData.extras) ) {
     335            if (!storageData.equalsCurrentIdentity()) {
    301336                    // add Identity to dropdown-menu
    302                     vI_msgIdentityClone.addIdentityToCloneMenu(
    303                         vI_helper.combineNames(storageData.fullName, storageData.email),
    304                         storageData.id, storageData.smtp, storageData.extras)
     337                    vI_msgIdentityClone.addIdentityToCloneMenu(storageData)
    305338                    vI_notificationBar.setNote(vI.elements.strings.getString("vident.smartIdentity.vIStorageCollidingIdentity"),
    306339                    "storage_notification");
     
    310343        else if (!storageData.equalsCurrentIdentity()) {
    311344            // add Identity to dropdown-menu
    312             vI_msgIdentityClone.addIdentityToCloneMenu(
    313                 vI_helper.combineNames(storageData.fullName, storageData.email),
    314                 storageData.id, storageData.smtp, storageData.extras)
     345            var menuItem = vI_msgIdentityClone.addIdentityToCloneMenu(storageData)
    315346            var warning = vI_storage.__getReplaceVIdentityWarning(recipient, storageData);
    316347           
     
    318349                vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.getAttribute("value") != "vid" ||
    319350                !vI.preferences.getBoolPref("storage_warn_vI_replace") ||
    320                 vI_storage.promptService.confirm(window,"Warning",warning)) {                       
    321                     vI_msgIdentityClone.setMenuToIdentity(storageData.id);
     351                vI_storage.promptService.confirm(window,"Warning",warning)) {
     352                    vI_msgIdentityClone.setMenuToMenuItem(menuItem)
     353/*                  vI_msgIdentityClone.setMenuToIdentity(storageData.id);
    322354                    vI_smtpSelector.setMenuToKey(storageData.smtp);
    323                     storageData.extras.setValues();
    324                     if (vI_msgIdentityClone.setIdentity(
    325                         vI_helper.combineNames(storageData.fullName, storageData.email), null))
    326                     vI_notificationBar.setNote(vI.elements.strings.getString("vident.smartIdentity.vIStorageUsage") + ".",
     355                    storageData.extras.setValues();*/
     356/*                  if (vI_msgIdentityClone.setIdentity(
     357                        vI_helper.combineNames(storageData.fullName, storageData.email), null))*/
     358                    if (vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.getAttribute("value") == "vid")
     359                        vI_notificationBar.setNote(vI.elements.strings.getString("vident.smartIdentity.vIStorageUsage") + ".",
    327360                        "storage_notification");
    328361            }
     
    391424    __getVIdentityString : function() {
    392425        var old_address = vI_helper.getAddress();
    393         var id_key = vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.getAttribute("oldvalue");
     426        var id_key = vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.base_id_key;
    394427        if (!id_key) id_key = vI_msgIdentityClone.elements.Obj_MsgIdentity_clone.getAttribute("value");
    395428        var smtp_key = vI_smtpSelector.elements.Obj_SMTPServerList.selectedItem.getAttribute('key');
     
    541574                vI_helper.combineNames(storageData.fullName, storageData.email),
    542575                storageData.id,
    543                 storageData.smtp)
     576                storageData.smtp,
     577                storageData.extras)
    544578        }
    545579        vI_notificationBar.dump("## vI_storage: found " + allIdentities.number + " address(es)\n")
Note: See TracChangeset for help on using the changeset viewer.