Changeset d0fa65


Ignore:
Timestamp:
Aug 25, 2018, 12:05:39 PM (16 months ago)
Author:
rene <rene@…>
Branches:
ng_0.9
Children:
bc6c6b
Parents:
acf7ad
Message:

rewrite of the interface

Location:
content
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • content/bindings/v_identity.xml

    racf7ad rd0fa65  
    101101        <body><![CDATA[
    102102        if (!this._identityInfo) return;
    103         var width = document.getElementById("virtualIdentityExtension_msgIdentityClone").boxObject.width * 0.7;
     103        var width = document.getElementById("msgIdentity").boxObject.width * 0.7;
    104104        var height = this._tooltipBrowser.contentDocument.lastChild.scrollHeight + 5;
    105105        this.sizeTo(width, height);
    106         width = document.getElementById("virtualIdentityExtension_msgIdentityClone").boxObject.width * 0.75;
     106        width = document.getElementById("msgIdentity").boxObject.width * 0.75;
    107107        this.sizeTo(width, height);
    108108        ]]></body>
     
    276276   
    277277   
    278    
    279    
    280     <binding id="fromMenuList_clone" display="xul:menu" extends="chrome://messenger/content/mailWidgets.xml#menulist-description">
     278    <binding id="fromMenuList_new" extends="chrome://global/content/bindings/menulist.xml#menulist-editable">
    281279    <resources>
    282280            <stylesheet src="chrome://global/skin/menu.css"/>
     
    284282    </resources>
    285283    <content sizetopopup="pref">
    286         <xul:hbox class="contentHBox" anonid="contentHBox" flex="1"  >
    287             <xul:hbox id="identityHbox" class="identityHbox" flex="1">
    288                 <xul:vbox><xul:spacer flex="1" />
    289                     <xul:image class="menulist_clone-icon" id="virtualIdentityExtension_msgIdentityClone_image" xbl:inherits="src"/>
    290                 <xul:spacer flex="1" /></xul:vbox>
    291                 <xul:vbox flex="1" id="virtualIdentityExtension_msgIdentityClone_fromVbox"><xul:spacer flex="1" />
    292 <!--                    textbox is internally an html:input field which inherits the onblur event.
    293                     Thats why we have to search the textbox before calling blurEvent() -->
    294                     <xul:textbox anonid="textBox" type="search" id="virtualIdentityExtension_msgIdentityClonetextBoxElem" class="plain menulist_clone-textbox" allowevents="true" xbl:inherits="value=label,crop,accesskey,nomatch=vid" oncommand="event.stopPropagation(); document.getBindingParent(this).inputEvent();"
    295                     onblur="event.stopPropagation(); var elem = this; while (elem.localName != 'textbox') elem = elem.parentNode; document.getBindingParent(elem).blurEvent();"
    296                     crop="right" highlightnonmatches="true"/>
    297                 <xul:spacer flex="1" /></xul:vbox>
    298                 <xul:vbox id="virtualIdentityExtension_saveSwitch"><xul:spacer flex="1" />
    299                     <xul:checkbox class="vI_plain" allowevents="true" oncommand="event.stopPropagation();virtualIdentityExtension.vIprefs.set('storage_store', this.checked);" >
    300                         <xul:observes element="virtualIdentityExtension_statusMenu_storage_save" attribute="checked" />
    301                     </xul:checkbox>
    302                 <xul:spacer flex="1" /></xul:vbox>
    303                 <xul:vbox><xul:spacer flex="1" />
    304                     <xul:label value="&vident.accPane.prettyName.prefix;" class="menu_clone-vid virtIdLabel" xbl:inherits="vid" crop="right"/>
    305                 <xul:spacer flex="1" /></xul:vbox>
    306                 <xul:observes element="virtualIdentityExtension_statusMenu_storage_save" attribute="checked" />
    307             </xul:hbox>
    308             <xul:hbox id="baseIDHbox" class="baseIDHbox" >
    309                 <xul:vbox><xul:spacer flex="1" />
    310                     <xul:hbox>
    311                         <xul:label id="msgIdentity_base_id_label" class="menu_clone-description" xbl:inherits="value,hidden=base_id_key_hidden" crop="right" hidden="true"/>
    312                         <xul:label id="virtualIdentityExtension_msgIdentityClone_label" class="menu_clone-description" xbl:inherits="value=description" crop="right"/>
    313                     </xul:hbox>
    314                 <xul:spacer flex="1" /></xul:vbox>
    315                 <xul:vbox id="virtualIdentityExtension_saveBaseIDSwitch"><xul:spacer flex="1" />
    316                     <xul:checkbox class="vI_plain" allowevents="true" oncommand="event.stopPropagation();virtualIdentityExtension.vIprefs.set('storage_store_base_id', this.checked);" >
    317                         <xul:observes element="virtualIdentityExtension_statusMenu_storage_saveBaseID" attribute="checked" />
    318                         <xul:observes element="virtualIdentityExtension_statusMenu_storage_saveBaseID" attribute="disabled" />
    319                     </xul:checkbox>
    320                 <xul:spacer flex="1" /></xul:vbox>
    321                 <xul:observes element="virtualIdentityExtension_statusMenu_storage_saveBaseID" attribute="checked" />
    322                 <xul:observes element="virtualIdentityExtension_statusMenu_storage_saveBaseID" attribute="disabled" />
    323             </xul:hbox>
    324             <xul:hbox oncommand="event.stopPropagation();document.getBindingParent(this).smtp = this.smtp" xbl:inherits="showSmtp" anonid="smtpServerListHbox" class="smtpServerListHbox" />
    325         </xul:hbox>
    326         <children />
     284              <xul:moz-input-box id="identityHbox" anonid="inputBox" class="menulist-editable-box moz-input-box" xbl:inherits="context,disabled,readonly,focused" flex="1">
     285                <xul:vbox flex="1">
     286                  <!-- use type=search to activate trigger for inputevent -->
     287                <xul:textbox class="plain menulist-editable-input" anonid="input" type="search" allowevents="true"
     288                            oncommand="event.stopPropagation(); document.getBindingParent(this).inputEvent();"
     289                            onblur="event.stopPropagation(); var elem = this; while (elem.localName != 'textbox') elem = elem.parentNode; document.getBindingParent(elem).blurEvent();"
     290                            xbl:inherits="nomatch=vid,value=label,value,disabled,tabindex,readonly,placeholder"
     291                            crop="right" highlightnonmatches="true"/>
     292                </xul:vbox>
     293                <xul:vbox><xul:spacer flex="1" />
     294                        <xul:label value="&vident.accPane.prettyName.prefix; - " class="menu_clone-vid virtIdLabel" xbl:inherits="vid" crop="right"/>
     295                <xul:spacer flex="1" /></xul:vbox>
     296                <xul:observes element="virtualIdentityExtension_statusMenu_storage_save" attribute="checked" />
     297                <xul:hbox id="baseIDHbox" class="baseIDHbox" >
     298                        <xul:vbox><xul:spacer flex="1" />
     299                                <xul:hbox>
     300                                  <!--<xul:label id="msgIdentity_base_id_label" class="menu_clone-description" xbl:inherits="hidden=base_id_key_hidden" crop="right" hidden="true"/>-->
     301                                        <xul:label id="virtualIdentityExtension_msgIdentityClone_label" class="menu_clone-description" xbl:inherits="value=description" crop="right"/>
     302                                </xul:hbox>
     303                        <xul:spacer flex="1" /></xul:vbox>
     304                        <xul:observes element="virtualIdentityExtension_statusMenu_storage_saveBaseID" attribute="checked" />
     305                        <xul:observes element="virtualIdentityExtension_statusMenu_storage_saveBaseID" attribute="disabled" />
     306                </xul:hbox>
     307              </xul:moz-input-box>
     308              <!--<xul:hbox oncommand="event.stopPropagation();document.getBindingParent(this).smtp = this.smtp" xbl:inherits="showSmtp" anonid="smtpServerListHbox" class="smtpServerListHbox" />-->
     309              <xul:dropmarker class="menulist-dropmarker" type="menu" xbl:inherits="open,disabled,parentfocused=focused"/>
     310              <xul:popupset id="virtualIdentityExtension_tooltipPopupset" />
     311              <children includes="menupopup"/>
    327312    </content>
    328313        <implementation>
     314         
    329315    <constructor>
    330316        <![CDATA[       
    331         var inputTextbox = document.getAnonymousElementByAttribute(this, "class", "plain menulist_clone-textbox");
     317        var inputTextbox = document.getAnonymousElementByAttribute(this, "class", "plain menulist-editable-input");
    332318       
    333319        // check if 'search' textboxes are not implemented change to 'timed'
     
    340326       
    341327        virtualIdentityExtension.vIprefs.addObserver("show_smtp", this.observe, this);
    342         this.observe(this);
     328                this.observe(this);
    343329        ]]>
    344330    </constructor>
     
    349335        virtualIdentityExtension.vIprefs.removeObserver("show_smtp", this.observe);
    350336        ]]>
    351     </destructor>
    352 
    353     <!--
    354     double the Identity-Select Dropdown-Menu to be more flexible with modifying it
    355     the original Identity Dropdown Menu is hidden and stores the base Identity, on which one
    356     the Virtual Identity is build upon
    357     -->
    358     <method name="command">
    359         <body><![CDATA[
    360         virtualIdentityExtension.MyLog.debug("v_identity.xml msgIdentityCloneElem.doCommand()")
    361         // copy selected Menu-Value from clone to orig.
    362         virtualIdentityExtension.MyLog.debug("v_identity.xml copy selected Menu-Value from clone to orig. Searching for id=" + this.selectedMenuItem.identityData.id.key)
    363     if (typeof getCurrentIdentityKey == 'function') {
    364       // TB version after changeset 17696 35d9101cb3b1 (menuitem.value == email address)
    365           var id_attribute = "identitykey"
    366     } else {
    367           // TB version before changeset 17696 35d9101cb3b1 (menuitem.value == id)
    368           var id_attribute = "value"
    369     }
    370 
    371         if ( this.selectedMenuItem.identityData.id.key != null ) {
    372             var MenuItems = this._msgIdentityPopupElem.childNodes
    373             for (var index = 0; index < MenuItems.length; index++) {
    374                 if ( MenuItems[index].getAttribute(id_attribute) == this.selectedMenuItem.identityData.id.key ) {
    375                     this._msgIdentityElem.selectedItem = MenuItems[index];
    376                     this._msgIdentityElem.value = MenuItems[index].getAttribute("value");
    377           this._msgIdentityElem.identitykey = MenuItems[index].getAttribute("identitykey");
    378           this._msgIdentityPopupElem.doCommand();
    379                     break;
    380                 }
    381             }
    382         }
    383         this.identityData = this.selectedMenuItem.identityData.getDuplicate();
    384         virtualIdentityExtension.MyLog.debug("v_identity.xml msgIdentityCloneElem.doCommand() this.value=" + this.value);
    385         // if current SMTP is empty, take the one from current Identity
    386         if (this.identityData.smtp.hasNoDefinedSMTP()) {
    387             if (typeof getCurrentIdentityKey == 'function') {
    388               // TB version after changeset 17696 35d9101cb3b1 (menuitem.value == email address)
    389         if (!this.identitykey)
    390           this.identitykey = this.identityData.id.key
    391         if (this.identitykey) {
    392           virtualIdentityExtension.MyLog.debug("v_identity.xml msgIdentityCloneElem.doCommand() " + this.identitykey)
    393           this.identityData.smtp.key = this._AccountManager.getIdentity(this.identitykey).smtpServerKey;
    394           document.getAnonymousElementByAttribute(this, "anonid", "smtpServerListHbox").smtp = this.identityData.smtp.keyNice;
    395         }
    396             } else {
    397               // TB version before changeset 17696 35d9101cb3b1 (menuitem.value == id)
    398                 this.identityData.smtp.key = this._AccountManager.getIdentity(this.value).smtpServerKey;
    399                 document.getAnonymousElementByAttribute(this, "anonid", "smtpServerListHbox").smtp = this.identityData.smtp.keyNice;
    400             }
    401         }
    402     this.checkForVirtualIdentity();
    403     ]]></body>
    404     </method>   
    405     <method name="init">
    406     <body><![CDATA[
    407     virtualIdentityExtension.MyLog.debug("v_identity.xml msgIdentityCloneElem.init()")
    408         var MenuItems = this._msgIdentityPopupElem.childNodes
    409         for (var index = 0; index < MenuItems.length; index++) {
    410                         // TB version after changeset 17696 35d9101cb3b1 (menuitem.value == email address)
    411                         var identity = this._AccountManager.getIdentity(MenuItems[index].getAttribute("identitykey"));
    412                         if (!identity) continue;
    413 
    414             var description;
    415                        
    416                         virtualIdentityExtension.MyLog.debug("getServersForIdentity" + identity);
    417                        
    418                         var server = this._AccountManager.getServersForIdentity(identity).queryElementAt(0, Components.interfaces.nsIMsgIncomingServer);
    419 
    420                         // if (server.type == "nntp")
    421                 description = server.prettyName
    422             // else description = identity.description?"- "+identity.description:identity.accountname
    423            
    424       var newIdentity = new virtualIdentityExtension.identityData(window, identity.email, identity.fullName, identity.key,
    425                         identity.smtpServerKey, null, description, true)
    426             newIdentity.extras.readIdentityValues(identity);
    427                
    428             var menuItem = this.addIdentityToCloneMenu(newIdentity)
    429 
    430             if (this._msgIdentity_selectedItem == MenuItems[index]) {
    431                 this.selectedItem = menuItem;
    432                 this.identityData = newIdentity.getDuplicate();
    433         this._msgIdentityElem.identitykey = MenuItems[index].getAttribute("identitykey");
    434             }
    435         }
    436         this._popupMenu_separator = true;
    437     virtualIdentityExtension.MyLog.debug("v_identity.xml msgIdentityCloneElem.init() done.")
    438         ]]></body>
    439     </method>
    440     <method name="clean">
    441         <body><![CDATA[
    442         var MenuItems = this._popupElem.childNodes;
    443         while (MenuItems.length > 0) {
    444             try {MenuItems[0].clean();} catch (e) { };
    445             this._popupElem.removeChild(MenuItems[0])
    446         }
    447         this.selectedItem = null;
    448         this.identityData = null;
    449        
    450         this._menu_separator = null;
    451         ]]></body>
    452     </method>   
     337          </destructor>
     338
    453339    <method name="addIdentityToCloneMenu">
    454340        <parameter name="localIdentityData" />
    455341        <body><![CDATA[
    456         var existingItem = this._isExistingCloneMenuItem(localIdentityData);
     342//      var existingItem = this._isExistingCloneMenuItem(localIdentityData);
     343                var existingItem = localIdentityData.isExistingIdentity();
    457344        if (!existingItem) {
    458345            var MenuItem = document.createElement("menuitem");
    459                 MenuItem.identityData = localIdentityData;
    460             MenuItem.setAttribute("class", "identity_clone-popup-item");
    461             MenuItem.setAttribute("type", "vIdentity"); // to prevent overriding with menuitem:not([type])
    462             if (typeof getCurrentIdentityKey == 'function') {
    463               // TB version after changeset 17696 35d9101cb3b1 (menuitem.value == email address)
    464                 MenuItem.identitykey = localIdentityData.id.key; // might be accessed before item is constructed
    465             } else {
    466               // TB version before changeset 17696 35d9101cb3b1 (menuitem.value == id)
    467                 MenuItem.value = localIdentityData.id.key; // might be accessed before item is constructed
    468             }
    469 
    470             // set vid explicitely
    471             if (this._popupMenu_separator) MenuItem.setAttribute("vid", "true");
    472             else    MenuItem.setAttribute("vid", "false");
    473                        
    474346            this._popupElem.appendChild(MenuItem);
    475             return MenuItem;
     347            MenuItem.identityData = localIdentityData;
     348                        return MenuItem;
    476349        }
    477350        else return existingItem;
     
    489362        <parameter name="identitykey" />
    490363        <body><![CDATA[
     364                virtualIdentityExtension.MyLog.debug("v_identity.xml _getMenuItemForIdentity " + identitykey)
    491365        var MenuItems = this._popupElem.childNodes;
    492366        for (var index = 0; index < MenuItems.length; index++) {
    493             if (typeof getCurrentIdentityKey == 'function') {
    494               // TB version after changeset 17696 35d9101cb3b1 (menuitem.value == email address)
    495                 if (MenuItems[index].identitykey == identitykey)
    496                     return MenuItems[index]
    497             } else {
    498               // TB version before changeset 17696 35d9101cb3b1 (menuitem.value == id)
    499                 if (MenuItems[index].value == identitykey)
    500                     return MenuItems[index]
    501             }
     367                  if (MenuItems[index].getAttribute("identitykey") == identitykey)
     368                          return MenuItems[index]
    502369        }
    503370        return null;
    504371        ]]></body>
    505372    </method>
    506     <property name="_popupMenu_separator" >
    507         <getter><![CDATA[
    508             if (this._menu_separator) {
    509               this._menu_separator.removeAttribute("hidden");
    510               return this._menu_separator;
    511             }
    512             else return null;
    513         ]]></getter>
    514         <setter><![CDATA[
    515             if (!val) return;
    516             // add hidden separator as indicator that now only virtual identities are added
    517             this._menu_separator = document.createElement("menuseparator");
    518             this._menu_separator.setAttribute("hidden", "true");
    519             this._popupElem.appendChild(this._menu_separator)
    520         ]]></setter>   
    521     </property>
    522373    <property name="selectedMenuItem" >
    523374        <getter><![CDATA[
     
    525376        ]]></getter>
    526377        <setter><![CDATA[
     378                        virtualIdentityExtension.MyLog.debug("v_identity.xml selectedMenuItem setter. " + val)
     379                       
    527380            if (typeof(val) == "object") this.selectedItem = val
    528381            else if (val == "default")
    529382                this.selectedItem = this._getMenuItemForIdentity(this._AccountManager.defaultAccount.defaultIdentity.key)
    530383            else this.selectedItem = this._getMenuItemForIdentity(val)
    531             this.doCommand();
     384
     385                        this._identityDataStorage.takeOverAvailableData(this.selectedItem.identityData);
     386                       
     387                        LoadIdentity();
    532388        ]]></setter>   
    533389    </property>
     
    537393        var MenuItems = this._popupElem.childNodes
    538394        for (var j = 0; j < MenuItems.length; j++) {
    539             if (MenuItems[j].localName == "menuseparator") continue;
     395            if (!MenuItems[j].identityKey) continue;
    540396            if (MenuItems[j].identityData.equals(localIdentityData)) return MenuItems[j];
    541397        }
     
    543399        ]]></body>
    544400    </method>
    545     <field name="_msgIdentityElem">document.getElementById("msgIdentity")</field>
    546401    <field name="_msgIdentityPopupElem">document.getElementById("msgIdentityPopup")</field>
    547     <property name="_msgIdentity_selectedItem" >
    548         <getter><![CDATA[
    549             if (!this._msgIdentityElem.selectedItem) {
    550                 virtualIdentityExtension.MyLog.debug("v_identity.xml: msgIdentityElem.selectedItem not set, using first Menuitem");
    551                 this._msgIdentityElem.selectedItem = this._msgIdentityPopupElem.firstChild
    552                 virtualIdentityExtension.MyLog.debug("v_identity.xml: msgIdentityElem.doCommand()");
    553                 this._msgIdentityElem.doCommand();
    554             }
    555             return this._msgIdentityElem.selectedItem;
    556         ]]></getter>
    557     </property>
    558402    <property name="_AccountManager" >
    559403        <getter><![CDATA[
     
    578422       
    579423        var existingIdentity = this.checkForVirtualIdentity();
    580     if (typeof getCurrentIdentityKey == 'function') {
    581       // TB version after changeset 17696 35d9101cb3b1 (menuitem.value == email address)
    582       if (existingIdentity && this.selectedMenuItem.identitykey != existingIdentity) this.selectedMenuItem = existingIdentity;          } else {
    583       // TB version before changeset 17696 35d9101cb3b1 (menuitem.value == id)
    584       if (existingIdentity && this.selectedMenuItem.value != existingIdentity) this.selectedMenuItem = existingIdentity;
    585     }
    586 
     424                if (existingIdentity && this.selectedMenuItem.identitykey != existingIdentity)
     425                    this.selectedMenuItem = existingIdentity;           
    587426        ]]></body>
    588427    </method>
     
    599438        ]]></body>
    600439    </method>
    601     <property name="smtp" onget="return this.identityData.smtp.key;" > // used to detect changes from SMTP-Menu
     440        <property name="smtp" onget="return this.identityData.smtp.key;" > // used to detect changes from SMTP-Menu
    602441        <setter><![CDATA[
    603442        this.identityData.smtp.key = val;
     
    608447        if (existingIdentity) this.selectedMenuItem = existingIdentity;
    609448        ]]></setter>
    610     </property>
     449        </property>
    611450    <property name="identityData">
    612451        <getter><![CDATA[
    613     virtualIdentityExtension.MyLog.debug("v_identity.xml identityData getter")
    614     if (this._identityDataStorage) {
    615       this._identityDataStorage.extras.getValuesFromEnvironment(); // update with current data
    616     }
    617     else {
    618       virtualIdentityExtension.MyLog.debug("v_identity.xml identityData getter - _identityDataStorage not set")
    619     }
    620     return this._identityDataStorage;
     452                  virtualIdentityExtension.MyLog.debug("v_identity.xml identityData getter")
     453                  if (this._identityDataStorage) {
     454                    this._identityDataStorage.extras.getValuesFromEnvironment(); // update with current data
     455                  }
     456                  else {
     457                    virtualIdentityExtension.MyLog.debug("v_identity.xml identityData getter - _identityDataStorage not set")
     458                  }
     459                  return this._identityDataStorage;
    621460        ]]></getter>
    622461        <setter><![CDATA[
    623462        virtualIdentityExtension.MyLog.debug("v_identity.xml identityData setter")
    624         if (!val) this._identityDataStorage = null
    625         else {
    626             var oldIdentityData = this._identityDataStorage;
     463        if (val) {
    627464            this._identityDataStorage = val;
    628             if (oldIdentityData) { // indicates that it's not first time after clean
    629                 virtualIdentityExtension.MyLog.debug("v_identity.xml previousID: fullName='" + oldIdentityData.fullName + "' email='" + oldIdentityData.email + "' smtp='" + oldIdentityData.smtp.key + "' id='" + oldIdentityData.id.key + "' existingID='" + oldIdentityData.existingID + "'");
    630                 virtualIdentityExtension.MyLog.debug("v_identity.xml newID: fullName='" + this._identityDataStorage.fullName + "' email='" + this._identityDataStorage.email + "' smtp='" + this._identityDataStorage.smtp.key + "' id='" + this._identityDataStorage.id.key + "' existingID='" + this._identityDataStorage.existingID + "'");
    631                 if (!this._identityDataStorage.existingID && !this._identityDataStorage.combinedName)
    632                     this._identityDataStorage.fullName = oldIdentityData.fullName;
    633                 if (!this._identityDataStorage.existingID && !this._identityDataStorage.email)
    634                     this._identityDataStorage.email = oldIdentityData.email;
    635                 if (!this._identityDataStorage.smtp.key) this._identityDataStorage.smtp.key = oldIdentityData.smtp.key;
    636                 if (!this._identityDataStorage.id.key) {
    637                     this._identityDataStorage.id.key = oldIdentityData.id.key;
    638                     this._identityDataStorage.sideDescription = oldIdentityData.sideDescription;
    639                 }
    640                 this._identityDataStorage.extras.setValuesToEnvironment();
    641                 if (this._identityDataStorage.existingID) this.vid = false;
    642                 else this.checkForVirtualIdentity();
    643             }
    644             else    this.vid = false;       // first time after clean it's always a real identity
    645            
    646             this.label = this._identityDataStorage.combinedName;
    647             this.value = this._identityDataStorage.id.key;
    648             this.description = this._identityDataStorage.sideDescription;
    649             document.getAnonymousElementByAttribute(this, "anonid", "smtpServerListHbox").smtp = this._identityDataStorage.smtp.keyNice;
    650             virtualIdentityExtension.MyLog.debug("v_identity.xml resultingID: fullName='" + this._identityDataStorage.fullName + "' email='" + this._identityDataStorage.email + "' smtp='" + this._identityDataStorage.smtp.key + "' id='" + this._identityDataStorage.id.key + "' existingID='" + this._identityDataStorage.existingID + "'");
    651465        }
    652466        virtualIdentityExtension.MyLog.debug("v_identity.xml identityData setter done.")
    653467        ]]></setter>
    654468    </property>
    655     <field name="_popupElem">document.getElementById("virtualIdentityExtension_msgIdentityPopupClone")</field>
    656     <field name="tooltipElem">document.getAnonymousElementByAttribute(this, "anonid", "contentHBox")</field>
    657     <field name="textBoxElem">document.getAnonymousElementByAttribute(this, "anonid", "textBox");</field>
    658     <method name="observe">
    659       <parameter name="self" />
    660       <parameter name="aSubject" />
    661       <parameter name="aTopic" />
    662       <parameter name="aPrefName" />
    663       <body><![CDATA[
    664         self.showSmtp =
    665           virtualIdentityExtension.vIprefs.get("show_smtp");
    666         var MenuItems = self._popupElem.childNodes;
    667         for (var j = 0; j < MenuItems.length; j++) {
    668             if (MenuItems[j].localName == "menuseparator") continue;
    669             MenuItems[j].smtpStyle = "width:" + document.getElementById("virtualIdentityExtension_SmtpServerList").clientWidth + "px;";
    670         }
    671         ]]></body>
    672     </method>
     469    <field name="_popupElem">document.getElementById("msgIdentityPopup")</field>
     470    <field name="tooltipElem">document.getAnonymousElementByAttribute(this, "anonid", "inputBox")</field>
     471    <field name="textBoxElem">document.getAnonymousElementByAttribute(this, "anonid", "input");</field>
     472        <method name="observe">
     473          <parameter name="self" />
     474          <parameter name="aSubject" />
     475          <parameter name="aTopic" />
     476          <parameter name="aPrefName" />
     477          <body><![CDATA[
     478            self.showSmtp =
     479              virtualIdentityExtension.vIprefs.get("show_smtp");
     480            var MenuItems = self._popupElem.childNodes;
     481            for (var j = 0; j < MenuItems.length; j++) {
     482                if (MenuItems[j].localName == "menuseparator") continue;
     483                MenuItems[j].smtpStyle = "width:" + document.getElementById("virtualIdentityExtension_SmtpServerList").clientWidth + "px;";
     484            }
     485            ]]></body>
     486        </method>
    673487    <property name="email" onset="this.identityData.email = val; this.label = this.identityData.combinedName; this.inputEvent()" />
    674     <property name="vid" onget="return (this.getAttribute('vid') == 'true');" onset="this.setAttribute('vid',val?'true':'false'); return val;" />
    675     <property name="label" onget="return this.textBoxElem.value;" onset="this.textBoxElem.value = val; return val;" />
    676     <property name="value" onget="return this.getAttribute('value');" onset="this.setAttribute('value', val); return val;" />
    677     <property name="identitykey" onget="return this.getAttribute('identitykey');" onset="this.setAttribute('identitykey', val); return val;" />
     488    <property name="vid" onget="return (this.getAttribute('vid') == 'true');" onset="this.setAttribute('vid',val); return val;" />
     489        <property name="value" onget="return this.textBoxElem.value;" onset="this.textBoxElem.value = val; return val;" />
    678490    <property name="extras" onget="return this.identityData.extras;" />
    679491    <property name="description" onget="return this.getAttribute('description');" onset="this.setAttribute('description', val); return val;" />
    680     <property name="showSmtp" onget="return (this.getAttribute('showSmtp') == 'true');" onset="this.setAttribute('showSmtp',val?'true':'false'); return val;" />
     492        <!--<property name="showSmtp" onget="return (this.getAttribute('showSmtp') == 'true');" onset="this.setAttribute('showSmtp',val?'true':'false'); return val;" />-->
     493    </implementation>
     494    </binding>
     495
     496       
     497        <binding id="fromPopupItem_new" extends="chrome://global/content/bindings/menu.xml#menuitem">
     498    <content excludes="template,observes,menupopup">
     499        <xul:image class="menupopup_clone-icon" xbl:inherits="src"/>
     500        <xul:label class="menupopup_clone-text" xbl:inherits="value=label,accesskey,crop" crop="right" flex="1"/>
     501        <xul:label value="&vident.accPane.prettyName.prefix;" class="menupopup_clone-vid virtIdLabel" vid="false" xbl:inherits="vid" crop="right"/>
     502            <xul:label class="menupopup_clone-description" xbl:inherits="value=description" crop="right"/>
     503                <!--<xul:label class="menupopup_clone-smtp" xbl:inherits="value=smtp,style=smtpStyle" crop="right"/>-->
     504    </content>
     505    <implementation>
     506    <constructor>
     507        <![CDATA[
     508                document.getElementById("virtualIdentityExtension_tooltipPopupset").addTooltip(this, true);
     509                this.vid = "false"; // by default the item is no virtual identity
     510        ]]>
     511    </constructor>
     512        <destructor>
     513        <![CDATA[
     514        document.getElementById("virtualIdentityExtension_tooltipPopupset")
     515            .removeTooltip(this.tooltipElem.getAttribute("tooltip"));
     516        ]]>
     517        </destructor>
     518        <method name="createIdentityData">
     519        <body><![CDATA[
     520            var identity = this._AccountManager.getIdentity(this.getAttribute("identitykey"));
     521            if (identity) {
     522              this.identityData = new virtualIdentityExtension.identityData(window, identity.email,
     523                                    identity.fullName, identity.key,
     524                                    identity.smtpServerKey, null, null, true);
     525              this._identityData.extras.readIdentityValues(identity);
     526              }
     527            ]]></body>
     528        </method>
     529        <method name="_setAttributeIfNotEmpty">
     530            <parameter name="attribute" />
     531            <parameter name="value" />
     532            <body><![CDATA[
     533                if (!this.getAttribute(attribute))
     534                  this.setAttribute(attribute, value);
     535            ]]></body>
     536        </method>
     537        <property name="identityData">
     538          <setter><![CDATA[
     539            // if menuitem get's initialized with identityData,
     540            // attributes (label, value, description, identitykey, accountkey) have to be set accordingly
     541           
     542           
     543            virtualIdentityExtension.MyLog.debug("v_identity.xml fromPopupItem_new set identityData");
     544            this._identityData = val;
     545             
     546           
     547            this._setAttributeIfNotEmpty("identitykey", this._identityData.id.key);
     548            this._setAttributeIfNotEmpty("accountkey", this._identityData.id.accountkey);
     549
     550            this._setAttributeIfNotEmpty("label", this._identityData.combinedName);
     551            this._setAttributeIfNotEmpty("value", this._identityData.combinedName);
     552            this._setAttributeIfNotEmpty("smtp", this._identityData.smtp.value);
     553            this._setAttributeIfNotEmpty("description", "");
     554           
     555           
     556            this.setAttribute("vid", this._identityData.isExistingIdentity()?"false":"true");
     557
     558            virtualIdentityExtension.MyLog.debug("v_identity.xml fromPopupItem_new set identityData done.");
     559              ]]></setter>
     560            <getter><![CDATA[
     561              if (!this._identityData)
     562                this.createIdentityData();
     563
     564              return this._identityData;
     565            ]]></getter>
     566        </property>
     567       
     568        <property name="_AccountManager" >
     569          <getter><![CDATA[
     570            return Components.classes["@mozilla.org/messenger/account-manager;1"]
     571              .getService(Components.interfaces.nsIMsgAccountManager);
     572          ]]></getter>
     573        </property>
     574
     575    <field name="tooltipElem">this</field>
     576    <property name="vid" onget="return this.getAttribute('vid');" onset="this.setAttribute('vid', val); return val;" />
    681577    </implementation>
    682578    </binding>
  • content/vI_statusmenu.js

    racf7ad rd0fa65  
    4040      objStorageSaveMenuItem: null,
    4141      objStatusMenuSeparator: null,
    42       objSaveSwitch: null,
    43       objSaveBaseIDSwitch: null,
    44       objSaveSMTPSwitch: null,
    45       objFccSwitch: null,
     42//       objSaveSwitch: null,
     43//       objSaveBaseIDSwitch: null,
     44//       objSaveSMTPSwitch: null,
     45//       objFccSwitch: null,
    4646      objStatusText: null,
    4747      objStatusLogo: null,
     
    5454          statusmenu.objStatusLogo.setAttribute("hidden", !vI.vIprefs.get(data));
    5555          // no break, continue like with doFcc           
    56         case "fcc_show_switch":
    57           statusmenu.objFccSwitch.setAttribute("hidden", !vI.vIprefs.get(data));
    58           // no break, continue like with doFcc         
    59         case "doFcc":
    60           statusmenu.objFccSwitch.setAttribute("checked", vI.vIprefs.get(data));
    61           break;
    62         case "storage_show_switch":
    63           statusmenu.objSaveSwitch.setAttribute("hidden", !vI.vIprefs.get(data));
    64           break;
    65         case "storage_show_baseID_switch":
    66           statusmenu.objSaveBaseIDSwitch.setAttribute("hidden", !vI.vIprefs.get(data));
    67           break;
    68         case "storage_show_SMTP_switch":
    69           //                 Log.debug("changed storage_show_SMTP_switch to " + statusmenu.objSaveSMTPMenuItem + "=" + vI.vIprefs.get(data));
    70           statusmenu.objSaveSMTPSwitch.setAttribute("hidden", !vI.vIprefs.get(data));
    71           break;
     56//         case "fcc_show_switch":
     57//           statusmenu.objFccSwitch.setAttribute("hidden", !vI.vIprefs.get(data));
     58//           // no break, continue like with doFcc         
     59//         case "doFcc":
     60//           statusmenu.objFccSwitch.setAttribute("checked", vI.vIprefs.get(data));
     61//           break;
     62//         case "storage_show_switch":
     63//           statusmenu.objSaveSwitch.setAttribute("hidden", !vI.vIprefs.get(data));
     64//           break;
     65//         case "storage_show_baseID_switch":
     66//           statusmenu.objSaveBaseIDSwitch.setAttribute("hidden", !vI.vIprefs.get(data));
     67//           break;
     68//         case "storage_show_SMTP_switch":
     69//           //                 Log.debug("changed storage_show_SMTP_switch to " + statusmenu.objSaveSMTPMenuItem + "=" + vI.vIprefs.get(data));
     70//           statusmenu.objSaveSMTPSwitch.setAttribute("hidden", !vI.vIprefs.get(data));
     71//           break;
    7272        case "storage_store":
    7373          statusmenu.objStorageSaveMenuItem.setAttribute("checked", vI.vIprefs.get(data));
     
    8484          document.getElementById("identityHbox").setAttribute("colorize", vI.vIprefs.get(data))
    8585          document.getElementById("baseIDHbox").setAttribute("colorize", vI.vIprefs.get(data))
    86           document.getElementById("smtpServerHbox").setAttribute("colorize", vI.vIprefs.get(data))
     86//           document.getElementById("smtpServerHbox").setAttribute("colorize", vI.vIprefs.get(data))
    8787          break;
    8888        case "storage":
     
    9090            statusmenu.objStorageSaveMenuItem.removeAttribute("hidden");
    9191            statusmenu.objSaveBaseIDMenuItem.removeAttribute("hidden");
    92             statusmenu.objSaveSMTPMenuItem.removeAttribute("hidden");
     92//             statusmenu.objSaveSMTPMenuItem.removeAttribute("hidden");
    9393            statusmenu.objStatusMenuSeparator.removeAttribute("hidden");
    9494          } else {
    9595            statusmenu.objStorageSaveMenuItem.setAttribute("hidden", "true");
    9696            statusmenu.objSaveBaseIDMenuItem.setAttribute("hidden", "true");
    97             statusmenu.objSaveSMTPMenuItem.setAttribute("hidden", "true");
     97//             statusmenu.objSaveSMTPMenuItem.setAttribute("hidden", "true");
    9898            statusmenu.objStatusMenuSeparator.setAttribute("hidden", "true");
    9999          }
     
    105105      addObserver: function () {
    106106        vI.vIprefs.addObserver("show_status", this.observe, this);
    107         vI.vIprefs.addObserver("fcc_show_switch", this.observe, this);
     107//         vI.vIprefs.addObserver("fcc_show_switch", this.observe, this);
    108108        vI.vIprefs.addObserver("doFcc", this.observe, this);
    109109        vI.vIprefs.addObserver("storage", this.observe, this);
    110         vI.vIprefs.addObserver("storage_show_switch", this.observe, this);
    111         vI.vIprefs.addObserver("storage_show_baseID_switch", this.observe, this);
    112         vI.vIprefs.addObserver("storage_show_SMTP_switch", this.observe, this);
     110//         vI.vIprefs.addObserver("storage_show_switch", this.observe, this);
     111//         vI.vIprefs.addObserver("storage_show_baseID_switch", this.observe, this);
     112//         vI.vIprefs.addObserver("storage_show_SMTP_switch", this.observe, this);
    113113        vI.vIprefs.addObserver("storage_colorIndication", this.observe, this);
    114114        vI.vIprefs.addObserver("storage_store", this.observe, this);
    115115        vI.vIprefs.addObserver("storage_store_base_id", this.observe, this);
    116         vI.vIprefs.addObserver("storage_store_SMTP", this.observe, this);
     116//         vI.vIprefs.addObserver("storage_store_SMTP", this.observe, this);
    117117      },
    118118
    119119      removeObserver: function () {
    120120        vI.vIprefs.removeObserver("show_status", this.observe);
    121         vI.vIprefs.removeObserver("fcc_show_switch", this.observe);
     121//         vI.vIprefs.removeObserver("fcc_show_switch", this.observe);
    122122        vI.vIprefs.removeObserver("doFcc", this.observe);
    123123        vI.vIprefs.removeObserver("storage", this.observe);
    124         vI.vIprefs.removeObserver("storage_show_switch", this.observe);
    125         vI.vIprefs.removeObserver("storage_show_baseID_switch", this.observe);
    126         vI.vIprefs.removeObserver("storage_show_SMTP_switch", this.observe);
     124//         vI.vIprefs.removeObserver("storage_show_switch", this.observe);
     125//         vI.vIprefs.removeObserver("storage_show_baseID_switch", this.observe);
     126//         vI.vIprefs.removeObserver("storage_show_SMTP_switch", this.observe);
    127127        vI.vIprefs.removeObserver("storage_colorIndication", this.observe);
    128128        vI.vIprefs.removeObserver("storage_store", this.observe);
    129129        vI.vIprefs.removeObserver("storage_store_base_id", this.observe);
    130         vI.vIprefs.removeObserver("storage_store_SMTP", this.observe);
     130//         vI.vIprefs.removeObserver("storage_store_SMTP", this.observe);
    131131      },
    132132
     
    135135        statusmenu.objStatusLogo = document.getElementById("virtualIdentityExtension_Logo");
    136136        statusmenu.objSaveBaseIDMenuItem = document.getElementById("virtualIdentityExtension_statusMenu_storage_saveBaseID");
    137         statusmenu.objSaveSMTPMenuItem = document.getElementById("virtualIdentityExtension_statusMenu_storage_saveSMTP");
     137//         statusmenu.objSaveSMTPMenuItem = document.getElementById("virtualIdentityExtension_statusMenu_storage_saveSMTP");
    138138        statusmenu.objStorageSaveMenuItem = document.getElementById("virtualIdentityExtension_statusMenu_storage_save");
    139139        statusmenu.objStatusMenuSeparator = document.getElementById("virtualIdentityExtension_statusMenu_separator");
    140         statusmenu.objSaveSwitch = document.getElementById("virtualIdentityExtension_saveSwitch");
    141         statusmenu.objSaveBaseIDSwitch = document.getElementById("virtualIdentityExtension_saveBaseIDSwitch");
    142         statusmenu.objSaveSMTPSwitch = document.getElementById("virtualIdentityExtension_SaveSmtpSwitch");
    143         statusmenu.objFccSwitch = document.getElementById("virtualIdentityExtension_fccSwitch");
     140//         statusmenu.objSaveSwitch = document.getElementById("virtualIdentityExtension_saveSwitch");
     141//         statusmenu.objSaveBaseIDSwitch = document.getElementById("virtualIdentityExtension_saveBaseIDSwitch");
     142//         statusmenu.objSaveSMTPSwitch = document.getElementById("virtualIdentityExtension_SaveSmtpSwitch");
     143//         statusmenu.objFccSwitch = document.getElementById("virtualIdentityExtension_fccSwitch");
    144144        statusmenu.objStatusText = document.getElementById("statusText");
    145145        statusmenu.objStatusTooltipLine1 = document.getElementById("virtualIdentityExtension_statusMenuTooltip_StatusValueLine1");
     
    148148        statusmenu.addObserver();
    149149        statusmenu.observe(this, null, null, "show_status");
    150         statusmenu.observe(this, null, null, "fcc_show_switch");
    151         statusmenu.observe(this, null, null, "storage_show_switch");
    152         statusmenu.observe(this, null, null, "storage_show_baseID_switch");
    153         statusmenu.observe(this, null, null, "storage_show_SMTP_switch");
     150//         statusmenu.observe(this, null, null, "fcc_show_switch");
     151//         statusmenu.observe(this, null, null, "storage_show_switch");
     152//         statusmenu.observe(this, null, null, "storage_show_baseID_switch");
     153//         statusmenu.observe(this, null, null, "storage_show_SMTP_switch");
    154154        statusmenu.observe(this, null, null, "storage_colorIndication");
    155155        statusmenu.observe(this, null, null, "storage_store_base_id");
    156         statusmenu.observe(this, null, null, "storage_store_SMTP");
     156//         statusmenu.observe(this, null, null, "storage_store_SMTP");
    157157        statusmenu.observe(this, null, null, "storage_store");
    158158        statusmenu.observe(this, null, null, "storage");
     
    185185
    186186      changeSMTPStatus: function (elem) {
    187         statusmenu.objSaveSMTPMenuItem.setAttribute("checked", elem.getAttribute("checked"));
     187//         statusmenu.objSaveSMTPMenuItem.setAttribute("checked", elem.getAttribute("checked"));
    188188        statusmenu.menuConstraint();
    189189      },
     
    203203        var smtp = "off";
    204204        if (statusmenu.objStorageSaveMenuItem.getAttribute("checked") == "true") {
    205           statusmenu.objSaveSMTPMenuItem.removeAttribute("disabled");
     205//           statusmenu.objSaveSMTPMenuItem.removeAttribute("disabled");
    206206          statusmenu.objSaveBaseIDMenuItem.removeAttribute("disabled");
    207207          if (vI.vIprefs.get("storage")) {
    208208            if (statusmenu.objSaveBaseIDMenuItem.getAttribute("checked") == "true") save = "base";
    209209            else save = "ok";
    210             if (statusmenu.objSaveSMTPMenuItem.getAttribute("checked") == "true") smtp = "save";
     210//             if (statusmenu.objSaveSMTPMenuItem.getAttribute("checked") == "true") smtp = "save";
    211211          }
    212212        } else {
    213           statusmenu.objSaveSMTPMenuItem.setAttribute("disabled", "true");
     213//           statusmenu.objSaveSMTPMenuItem.setAttribute("disabled", "true");
    214214          statusmenu.objSaveBaseIDMenuItem.setAttribute("disabled", "true");
    215215        }
  • content/v_identity.js

    racf7ad rd0fa65  
    4141      timeStampID: null,
    4242      _smartIdentity: null,
    43 
     43     
    4444      headerParser: Components.classes["@mozilla.org/messenger/headerparser;1"]
    4545        .getService(Components.interfaces.nsIMsgHeaderParser),
     
    5454      // Those variables keep pointers to original functions which might get replaced later
    5555      original_functions: {
    56         GenericSendMessage: null,
    57         FillIdentityList: null
     56        LoadIdentity: null
    5857      },
    5958
     
    9291
    9392      replacement_functions: {
    94         FillIdentityList: function (menulist) {
    95           Log.debug("mod. FillIdentityList");
    96           var accounts = virtualIdentityExtension.getAccountsArray();
    97           for (let acc = 0; acc < accounts.length; acc++) {
    98             let server = accounts[acc].incomingServer;
    99             if (!server)
    100               continue;
    101 
    102             // check for VirtualIdentity Account
    103             try {
    104               vI.prefroot.getBoolPref("mail.account." + accounts[acc].key + ".vIdentity");
    105               continue;
    106             } catch (e) {};
    107             let account = accounts[acc];
    108             let identities = virtualIdentityExtension.getIdentitiesArray(account);
    109 
    110             if (identities.length == 0)
    111               continue;
    112 
    113             for (let i = 0; i < identities.length; i++) {
    114               let identity = identities[i];
    115               var item;
    116               if (typeof getCurrentIdentityKey == 'function') {
    117                 // TB version after changeset 17696 35d9101cb3b1 (menuitem.value == email address)
    118                 item = menulist.appendItem(identity.identityName, identity.identityName,
    119                   account.incomingServer.prettyName);
    120               } else {
    121                 // TB version before changeset 17696 35d9101cb3b1 (menuitem.value == id)
    122                 item = menulist.appendItem(identity.identityName, identity.key,
    123                   account.incomingServer.prettyName);
    124               }
    125               item.setAttribute("identitykey", identity.key);
    126               item.setAttribute("accountkey", account.key);
    127               if (i == 0) {
    128                 // Mark the first identity as default.
    129                 item.setAttribute("default", "true");
    130               }
    131             }
    132           }
    133         },
    134 
    135         GenericSendMessageInProgress: false,
    136         GenericSendMessage: function (msgType) {
    137           try {
    138             if (main.replacement_functions.GenericSendMessageInProgress) return;
    139             main.replacement_functions.GenericSendMessageInProgress = true;
    140 
    141             try { // nice, but not required for sending messages
    142               // if addressCol2 is focused while sending check storage for the entered address before continuing
    143               vI.storage.awOnBlur(vI.storage.focusedElement, window);
    144             } catch (e) {}
    145 
    146             Log.debug("VIdentity_GenericSendMessage");
    147 
    148             Log.debug("VIdentity_GenericSendMessage top=" + top);
    149 
    150             if (msgType == Components.interfaces.nsIMsgCompDeliverMode.Now)
    151               vI.addReplyToSelf(window);
    152 
    153             var vid = document.getElementById("virtualIdentityExtension_msgIdentityClone").vid
    154             var virtualIdentityData = document.getElementById("virtualIdentityExtension_msgIdentityClone").identityData;
    155 
    156             let returnValue = vI.vIaccount_prepareSendMsg(window, vid, msgType, virtualIdentityData,
    157               main.accountManager.getIdentity(main.elements.Obj_MsgIdentity.identitykey),
    158               main._getRecipients());
    159             if (returnValue.update == "abort") {
    160               main.replacement_functions.GenericSendMessageInProgress = false;
    161               Log.debug("sending: --------------  aborted  ---------------------------------")
    162               return;
    163             } else if (returnValue.update == "takeover") {
    164               var msgIdentityCloneElem = document.getElementById("virtualIdentityExtension_msgIdentityClone");
    165               msgIdentityCloneElem.selectedMenuItem = msgIdentityCloneElem.addIdentityToCloneMenu(returnValue.storedIdentity);
    166               main.replacement_functions.GenericSendMessageInProgress = false;
    167               Log.debug("sending: --------------  aborted  ---------------------------------")
    168               return;
    169             }
    170 
    171             if (vid) main.addVirtualIdentityToMsgIdentityMenu();
    172             // final check if eyerything is nice before we handover to the real sending...
    173             if (vI.vIaccount_finalCheck(window, virtualIdentityData, getCurrentIdentity())) {
    174               main.replacement_functions.GenericSendMessageInProgress = false;
    175               main.original_functions.GenericSendMessage(msgType);
    176             }
    177           } catch (e) {
    178             Log.warn("GenericSendMessage raised an error:", e);
    179             try {
    180               alert(
    181                 "virtualIdentity Extension Error\n\n" +
    182                 "sorry for the inconveniance\n" +
    183                 "try to save your email and restart!\n\n" +
    184                 "please send the bug-report to fix this issue");
    185               virtualIdentityExtension.errorReportEmail(e);
    186             } catch (e) {}
    187             // at least try to save the mail - even with the wrong senders id
    188             if (msgType == Components.interfaces.nsIMsgCompDeliverMode.Save || msgType == Components.interfaces.nsIMsgCompDeliverMode.SaveAs ||
    189               msgType == Components.interfaces.nsIMsgCompDeliverMode.SaveAsDraft || msgType == Components.interfaces.nsIMsgCompDeliverMode.SaveAsTemplate) {
    190               main.replacement_functions.GenericSendMessageInProgress = false;
    191               main.original_functions.GenericSendMessage(msgType);
    192             }
    193           }
    194           // sending or saving is done (or skipped), if aborted we must restore interface settings for further use
    195           main.removeVirtualIdentityFromMsgIdentityMenu();
    196           // restore enigmail 'current' identity - has been changed while trying to sent
    197           if (typeof Enigmail != 'undefined') Enigmail.msg.identity = getCurrentIdentity();
    198 
    199           main.replacement_functions.GenericSendMessageInProgress = false;
    200           //            Log.debug("original_functions.GenericSendMessage done");
    201         },
    202 
    203         replace_FillIdentityList: function () {
    204           //~ Log.debug("replace FillIdentityList");
    205 //           main.original_functions.FillIdentityList = FillIdentityList;
    206 //           FillIdentityList = main.replacement_functions.FillIdentityList;
    207         }
     93        LoadIdentity: function (startup) {
     94          var identityElement = document.getElementById("msgIdentity");
     95         
     96          // identitykey and accountkey might not be set on new selectedItem, if it's a virtual identity
     97          // on startup there might be no identitykey if a virtual identity is selected.
     98          Log.debug("run adapted LoadIdentity startup=" + startup);
     99         
     100          let hasBaseId = identityElement.selectedItem.identityData.id.key;
     101          if (hasBaseId == null) {
     102            identityElement.selectedItem.setAttribute("identitykey", identityElement.getAttribute("identitykey"));
     103            identityElement.selectedItem.setAttribute("accountkey", identityElement.getAttribute("accountkey"));
     104          }
     105          else {
     106            identityElement.setAttribute("description", identityElement.selectedItem.getAttribute("description"));
     107          }
     108         
     109          if (startup)
     110            identityElement.identityData = identityElement.selectedItem.identityData.getDuplicate();
     111          // else only values are copied into current identityData
     112          else
     113            identityElement.identityData.takeOverAvailableData(identityElement.selectedItem.identityData);
     114         
     115          gComposeNotificationBar.clearIdentityWarning();
     116         
     117          main.original_functions.LoadIdentity(startup);
     118         
     119          // store identitykey locally to enable restoring after selection of next virtual identity without identitykey
     120          identityElement.setAttribute("identitykey", identityElement.selectedItem.getAttribute("identitykey"));
     121         
     122          // we are not using the smtp display, smtp is selected based on base identity
     123          //dentityElement.setAttribute("smtp", identityElement.identityData.smtp.value);
     124         
     125          identityElement.vid = identityElement.selectedItem.vid;
     126        },
    208127      },
    209128
     
    260179        Log.debug("init.")
    261180        main.unicodeConverter.charset = "UTF-8";
    262         if (!main.adapt_genericSendMessage()) {
    263           Log.error("init failed.");
    264           return;
    265         }
    266        
    267         if (typeof getCurrentIdentityKey == 'function') {
    268           // TB version after changeset 17696 35d9101cb3b1 (menuitem.value == email address)
    269           Log.info("TB 38+")
    270         } else {
    271           // TB version before changeset 17696 35d9101cb3b1 (menuitem.value == id)
    272           Log.info("TB <38")
    273         }
    274 
    275         main.adapt_interface();
     181       
     182        // make msgIdentity editable
     183//         var identityElement = document.getElementById("msgIdentity");
     184//         identityElement.removeAttribute("type");
     185//         identityElement.editable = true;
     186//         identityElement.focus();
     187//         identityElement.value = identityElement.selectedItem.value;
     188//         identityElement.select();
     189//         identityElement.inputField.placeholder = getComposeBundle().getFormattedString("msgIdentityPlaceholder", [identityElement.selectedItem.value]);
     190//         
     191//         main.adapt_interface();
     192       
     193//         main.adapt_loadIdentity();
     194       
     195       
     196        let statusbarLabel = document.getElementById("v_identity_logo_statusbar");
     197        statusbarLabel.setAttribute("value", statusbarLabel.getAttribute("value") + vI.extensionVersion);
     198       
    276199        gMsgCompose.RegisterStateListener(main.ComposeStateListener);
    277200        document.getElementById("virtualIdentityExtension_tooltipPopupset")
    278           .addTooltip(document.getElementById("virtualIdentityExtension_msgIdentityClone"), false);
     201          .addTooltip(document.getElementById("msgIdentity"), false);
    279202        window.addEventListener('compose-window-reopen', main.reopen, true);
    280203        window.addEventListener('compose-window-close', main.close, true);
    281204
    282205        // append observer to virtualIdentityExtension_fccSwitch, because it does'n work with real identities (hidden by css)
    283         document.getElementById("virtualIdentityExtension_fccSwitch").appendChild(document.getElementById("virtualIdentityExtension_msgIdentityClone_observer").cloneNode(false));
     206//         document.getElementById("virtualIdentityExtension_fccSwitch").appendChild(document.getElementById("virtualIdentityExtension_msgIdentityClone_observer").cloneNode(false));
    284207
    285208        main.AccountManagerObserver.register();
     
    291214      initSystemStage1: function () {
    292215        Log.debug("initSystemStage1.");
    293         document.getElementById("virtualIdentityExtension_msgIdentityClone").init();
     216//         document.getElementById("msgIdentity").init();
    294217       
    295218        Log.debug("initSystemStage1 done.")
     
    298221      initSystemStage2: function () {
    299222        Log.debug("initSystemStage2.");
    300         Log.debug("document.title=" + document.title + " gMsgCompose=" + gMsgCompose + " msgIdentityClone=" + document.getElementById("virtualIdentityExtension_msgIdentityClone"))
    301         vI.initReplyTo(window);
     223        Log.debug("document.title=" + document.title + " gMsgCompose=" + gMsgCompose + " msgIdentityClone=" + document.getElementById("msgIdentity"))
     224//         vI.initReplyTo(window);
    302225        vI.storage.init();
    303226        vI.statusmenu.init();
     
    327250
    328251        //main.elements.Obj_MsgIdentity.setAttribute("hidden", "true");
    329         main.elements.Obj_MsgIdentity.previousSibling.setAttribute("control", "virtualIdentityExtension_msgIdentityClone");
     252        main.elements.Obj_MsgIdentity.previousSibling.setAttribute("control", "msgIdentity");
    330253
    331254        var access_label = parent_hbox.getElementsByAttribute("control", "msgIdentity")[0];
    332         if (access_label) access_label.setAttribute("control", "virtualIdentityExtension_msgIdentityClone");
     255        if (access_label) access_label.setAttribute("control", "msgIdentity");
    333256
    334257        // initialize the pointers to extension elements (initialize those earlier might brake the interface)
     
    336259      },
    337260
    338       adapt_genericSendMessage: function () {
    339         if (main.original_functions.GenericSendMessage) return true; // only initialize this once
    340         Log.debug("adapt GenericSendMessage");
    341         main.original_functions.GenericSendMessage = GenericSendMessage;
    342         GenericSendMessage = main.replacement_functions.GenericSendMessage;
     261      adapt_loadIdentity: function () {
     262        if (main.original_functions.LoadIdentity) return true; // only initialize this once
     263        Log.debug("adapt LoadIdentity");
     264        main.original_functions.LoadIdentity = LoadIdentity;
     265        LoadIdentity = main.replacement_functions.LoadIdentity;
    343266        return true;
    344267      },
     
    347270        vI.clearDebugOutput();
    348271        Log.debug("composeDialog reopened. (msgType " + gMsgCompose.type + ")")
    349         Log.debug("document.title=" + document.title + " gMsgCompose=" + gMsgCompose + " msgIdentityClone=" + document.getElementById("virtualIdentityExtension_msgIdentityClone"))
     272        Log.debug("document.title=" + document.title + " gMsgCompose=" + gMsgCompose + " msgIdentityClone=" + document.getElementById("msgIdentity"))
    350273
    351274        // clean all elements
    352         document.getElementById("virtualIdentityExtension_msgIdentityClone").clean();
     275        document.getElementById("msgIdentity").clean();
    353276        vI.storage.clean(); // just to be sure!
    354277        Log.debug("everything cleaned.")
     
    387310      },
    388311
    389       tempStorage: {
    390         BaseIdentity: null,
    391         NewIdentity: null
    392       },
    393 
    394       __setSelectedIdentity: function (menuItem) {
    395         main.elements.Obj_MsgIdentity.selectedItem = menuItem;
    396         main.elements.Obj_MsgIdentity.setAttribute("label", menuItem.getAttribute("label"));
    397         main.elements.Obj_MsgIdentity.setAttribute("accountname", menuItem.getAttribute("accountname"));
    398         main.elements.Obj_MsgIdentity.setAttribute("value", menuItem.getAttribute("value"));
    399         main.elements.Obj_MsgIdentity.setAttribute("identitykey", menuItem.getAttribute("identitykey"));
    400       },
    401 
    402       // sets the values of the dropdown-menu to the ones of the newly created account
    403       addVirtualIdentityToMsgIdentityMenu: function () {
    404         main.tempStorage.BaseIdentity = main.elements.Obj_MsgIdentity.selectedItem;
    405         main.tempStorage.NewIdentity = document.createElement("menuitem");
    406         main.tempStorage.NewIdentity.className = "identity-popup-item";
    407 
    408         // set the account name in the choosen menu item
    409         main.tempStorage.NewIdentity.setAttribute("label", vI.get_vIaccount().defaultIdentity.identityName);
    410         main.tempStorage.NewIdentity.setAttribute("accountname", " - " + vI.get_vIaccount().incomingServer.prettyName);
    411         main.tempStorage.NewIdentity.setAttribute("accountkey", vI.get_vIaccount().key);
    412         main.tempStorage.NewIdentity.setAttribute("identitykey", vI.get_vIaccount().defaultIdentity.key);
    413         if (typeof getCurrentIdentityKey == 'function') {
    414           // TB version after changeset 17696 35d9101cb3b1 (menuitem.value == email address)
    415           main.tempStorage.NewIdentity.setAttribute("value", vI.get_vIaccount().defaultIdentity.identityName);
    416         } else {
    417           // TB version before changeset 17696 35d9101cb3b1 (menuitem.value == id)
    418           main.tempStorage.NewIdentity.setAttribute("value", vI.get_vIaccount().defaultIdentity.key);
    419         }
    420 
    421         main.elements.Obj_MsgIdentityPopup.appendChild(main.tempStorage.NewIdentity);
    422         main.__setSelectedIdentity(main.tempStorage.NewIdentity);
    423       },
    424 
    425       removeVirtualIdentityFromMsgIdentityMenu: function () {
    426         if (!main.tempStorage.BaseIdentity) return; // don't try to remove Item twice
    427         try { // might not exist anymore (window closed), so just try to remove it
    428           document.getElementById("msgIdentity").firstChild.removeChild(main.tempStorage.NewIdentity);
    429           main.__setSelectedIdentity(main.tempStorage.BaseIdentity);
    430         } catch (e) {};
    431         main.tempStorage.NewIdentity = null;
    432         main.tempStorage.BaseIdentity = null;
    433       },
    434 
    435       prepareAccount: function () {
    436         main.removeVirtualIdentityFromMsgIdentityMenu(); // just to be sure that nothing is left (maybe last time sending was irregularily stopped)
    437         vI.vIaccount_createAccount(document.getElementById("virtualIdentityExtension_msgIdentityClone").identityData,
    438           main.accountManager.getIdentity(main.elements.Obj_MsgIdentity.value));
    439         main.addVirtualIdentityToMsgIdentityMenu();
    440       },
    441 
    442312      //  code adapted from http://xulsolutions.blogspot.com/2006/07/creating-uninstall-script-for.html
    443313      AccountManagerObserver: {
     
    446316          if (topic == "am-smtpChanges") {
    447317            Log.debug("smtp changes observed");
    448             var virtualIdentityExtension_msgIdentityClone = document.getElementById("virtualIdentityExtension_msgIdentityClone");
    449             document.getAnonymousElementByAttribute(virtualIdentityExtension_msgIdentityClone, "class", "smtpServerListHbox").refresh();
     318            var msgIdentity = document.getElementById("msgIdentity");
     319            document.getAnonymousElementByAttribute(msgIdentity, "class", "smtpServerListHbox").refresh();
    450320          }
    451321          if (topic == "am-acceptChanges") {
     
    459329              main.elements.Obj_MsgIdentityPopup.removeChild(MenuItems[0])
    460330            }
    461             main.replacement_functions.FillIdentityList(main.elements.Obj_MsgIdentity)
    462             let virtualIdentityExtension_msgIdentityClone = document.getElementById("virtualIdentityExtension_msgIdentityClone")
    463             let tmp_identity = virtualIdentityExtension_msgIdentityClone.identityData;
    464             virtualIdentityExtension_msgIdentityClone.clean();
    465             virtualIdentityExtension_msgIdentityClone.init();
     331            let msgIdentity = document.getElementById("msgIdentity")
     332            let tmp_identity = msgIdentity.identityData;
     333            msgIdentity.clean();
     334            msgIdentity.init();
    466335            Log.debug("cleaning original msgIdentityPopup done.");
    467336            tmp_identity.existingID = tmp_identity.isExistingIdentity(false)
     
    472341            }
    473342            Log.debug("adding previous identity to msgIdentityClone");
    474             virtualIdentityExtension_msgIdentityClone.selectedMenuItem = virtualIdentityExtension_msgIdentityClone.addIdentityToCloneMenu(tmp_identity);
     343            msgIdentity.selectedMenuItem = msgIdentity.addIdentityToCloneMenu(tmp_identity);
    475344            Log.debug("adding previous identity to msgIdentityClone done.");
    476345          }
     
    491360    }
    492361
    493 
    494     main.replacement_functions.replace_FillIdentityList();
     362    main.elements.init_base();
     363    main.elements.init_rest();
     364    main.adapt_loadIdentity();
     365   
    495366    window.addEventListener('compose-window-init', main.init, true);
    496367
  • content/v_identity.xul

    racf7ad rd0fa65  
    5151</toolbox>
    5252
    53 <vbox flex="1" id="addresses-box"> <!-- this is used as a strorage, elements will be rearranged by v_identity_init -->
     53<!--<vbox flex="1" id="addresses-box"> --><!-- this is used as a strorage, elements will be rearranged by v_identity_init -->
    5454
    55 <vbox id="virtualIdentityExtension_autoReplyToSelfLabelBox">
     55<!--<vbox id="virtualIdentityExtension_autoReplyToSelfLabelBox">
    5656  <spacer flex="1"/>
    5757  <label id="virtualIdentityExtension_autoReplyToSelfLabel" context="virtualIdentityExtension_vIAutoReplyToSelfMenu" value="&vident.composeDialog.autoReplyToSelf.label;" hidden="true" />
    58   <spacer flex="1"/>
    59 </vbox>
    60 <hbox id="virtualIdentityExtension_msgIdentityHbox" flex="1">
    61     <menulist id="virtualIdentityExtension_msgIdentityClone" class="identity_clone-menulist" vid="false"
     58<spacer flex="1"/>-->
     59  <!--</vbox>-->
     60<!--<hbox id="virtualIdentityExtension_msgIdentityHbox" flex="1">-->
     61 
     62<!-- 
     63              <menulist id="msgIdentity"
     64                      editable="true"
     65                      disableautoselect="true"
     66                      flex="1"
     67                      oncommand="LoadIdentity(false);">
     68              <menupopup id="msgIdentityPopup"/>
     69  -->
     70 
     71<!--    <menulist id="virtualIdentityExtension_msgIdentityClone" class="identity_clone-menulist" vid="false"
    6272        label="..." flex="1" oncommand="this.command();">
    6373        <menupopup id="virtualIdentityExtension_msgIdentityPopupClone"/>
     
    6676        tooltiptext="&vident.composeDialog.fcc_switch.tooltiptext;" hidden="true" doFcc="false"
    6777        oncommand="virtualIdentityExtension.vIprefs.set('doFcc', this.checked);" />
    68     <popupset id="virtualIdentityExtension_tooltipPopupset" />
    69 </hbox>
    70   </vbox>
     78   
     79</hbox>-->
     80<!--  </vbox>-->
    7181 
    7282  <popupset>
     
    7686          <menuitem type="checkbox" id="virtualIdentityExtension_statusMenu_storage_saveBaseID" label="&vident.vI_Menu.saveBaseID.label;"
    7787            oncommand="virtualIdentityExtension.vIprefs.set('storage_store_base_id', (this.getAttribute('checked') == 'true'));"/>
    78           <menuitem type="checkbox" id="virtualIdentityExtension_statusMenu_storage_saveSMTP" label="&vident.vI_Menu.saveSMTP.label;"
    79             oncommand="virtualIdentityExtension.vIprefs.set('storage_store_SMTP', (this.getAttribute('checked') == 'true'));"/>
     88<!--          <menuitem type="checkbox" id="virtualIdentityExtension_statusMenu_storage_saveSMTP" label="&vident.vI_Menu.saveSMTP.label;"
     89                  oncommand="virtualIdentityExtension.vIprefs.set('storage_store_SMTP', (this.getAttribute('checked') == 'true'));"/>-->
    8090          <menuseparator id="virtualIdentityExtension_statusMenu_separator" />
    8191          <menuitem class="menuitem-iconic" label="&vident.vI_Menu.Settings.label;"
     
    8595      </menupopup>
    8696  </popupset>
    87   <popupset>
     97<!--  <popupset>
    8898      <menupopup id="virtualIdentityExtension_vIAutoReplyToSelfMenu">
    8999          <menuitem type="menuitem-iconic" label="&vident.composeDialog.autoReplyToSelf.menuLabel;"
    90100            oncommand="document.getElementById('virtualIdentityExtension_autoReplyToSelfLabel').setAttribute('hidden', 'true');"/>
    91101        </menupopup>
    92   </popupset>
     102  </popupset>-->
    93103  <popupset>
    94104      <tooltip id="virtualIdentityExtension_statusMenuTooltip" orient="vertical" >
     
    106116              align="right"
    107117              hidden="true">
    108         <label class="v_identity_logo v_identity_logo_statusbar" value="&vident.vidLogo.label; &vident.version;" />
    109         <observes id="virtualIdentityExtension_msgIdentityClone_observer" element="virtualIdentityExtension_msgIdentityClone" attribute="vid" />
     118        <label id="v_identity_logo_statusbar" class="v_identity_logo v_identity_logo_statusbar" value="&vident.vidLogo.label; " />
     119        <observes id="virtualIdentityExtension_msgIdentityClone_observer" element="msgIdentity" attribute="vid" />
    110120    </statusbarpanel>
    111121      <statusbarpanel id="virtualIdentityExtension_vIStatusMenu" save="off"
Note: See TracChangeset for help on using the changeset viewer.