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

source: content/vI_upgrade.js

ng_0.9 0.10.3
Last change on this file was e4b836, checked in by rene <rene@…>, 4 years ago

removed reply-to-self option

  • Property mode set to 100644
File size: 7.3 KB
Line 
1/* ***** BEGIN LICENSE BLOCK *****
2    This program is free software; you can redistribute it and/or modify
3    it under the terms of the GNU General Public License as published by
4    the Free Software Foundation; either version 2 of the License, or
5    (at your option) any later version.
6
7    This program is distributed in the hope that it will be useful,
8    but WITHOUT ANY WARRANTY; without even the implied warranty of
9    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10    GNU General Public License for more details.
11
12    You should have received a copy of the GNU General Public License
13    along with this program; if not, write to the Free Software
14    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
15
16    The Original Code is the Virtual Identity Extension.
17
18    The Initial Developer of the Original Code is Rene Ejury.
19    Portions created by the Initial Developer are Copyright (C) 2007
20    the Initial Developer. All Rights Reserved.
21
22    Contributor(s):
23 * ***** END LICENSE BLOCK ***** */
24
25Components.utils.import("resource://v_identity/vI_nameSpaceWrapper.js");
26virtualIdentityExtension.ns(function () {
27  with(virtualIdentityExtension.LIB) {
28
29    let Log = vI.setupLogging("virtualIdentity.upgrade");
30    Components.utils.import("resource://v_identity/vI_rdfDatasource.js", virtualIdentityExtension);
31    Components.utils.import("resource://v_identity/vI_account.js", virtualIdentityExtension);
32    Components.utils.import("resource://v_identity/vI_prefs.js", virtualIdentityExtension);
33
34    var upgrade = {
35      versionChecker: Components.classes["@mozilla.org/xpcom/version-comparator;1"]
36        .getService(Components.interfaces.nsIVersionComparator),
37
38      rdfDatasource: null,
39
40      quickUpgrade: function (rdfDatasource) {
41        upgrade.rdfDatasource = rdfDatasource;
42        if (upgrade.rdfDatasource.extUpgradeRequired())
43          upgrade.extUpgrade();
44        upgrade.rdfDatasource.refreshAccountInfo();
45        return true;
46      },
47
48      extUpgrade: function () {
49        var currentVersion = upgrade.rdfDatasource.getCurrentExtFileVersion();
50        Log.debug("checking for previous version, found " +
51          currentVersion + "... extension-upgrade required.")
52        switch (currentVersion) {
53        case null:
54          // import pre-0.10 rdf
55          var vI_localRdfDatasource = 
56            new virtualIdentityExtension.rdfDatasourceImporter(window, 'virtualIdentity_0.10.rdf', false);
57          vI_localRdfDatasource.importFileByName("virtualIdentity.rdf");
58         
59          // cleanup created accounts for the last time :)
60          vI.vIaccount_cleanupSystem(); // always clean leftover accounts and directories
61
62          // no break
63        default:
64          upgrade.__transferMovedUserPrefs(currentVersion);
65          upgrade.__removeObsoleteUserPrefs(currentVersion);
66        }
67        upgrade.rdfDatasource.storeExtVersion();
68        Log.debug("extension-upgrade to " + upgrade.rdfDatasource.getCurrentExtFileVersion() + " done.");
69      },
70
71      __transferMovedUserPrefs: function (currentVersion) {
72        // transfer renamed preferences
73        var transferPrefs = [
74//         {
75//           version: "0.5.3",
76//           prefs: Array({
77//             sourcePref: "smart_reply_ask",
78//             targetPref: "idSelection_ask"
79//           }, {
80//             sourcePref: "smart_reply_ask_always",
81//             targetPref: "idSelection_ask_always"
82//           }, {
83//             sourcePref: "smart_reply_autocreate",
84//             targetPref: "idSelection_autocreate"
85//           }, {
86//             sourcePref: "smart_timestamp",
87//             targetPref: "autoTimestamp"
88//           }, {
89//             sourcePref: "storage_prefer_smart_reply",
90//             targetPref: "idSelection_storage_prefer_smart_reply"
91//           }, {
92//             sourcePref: "storage_ignore_smart_reply",
93//             targetPref: "idSelection_storage_ignore_smart_reply"
94//           })
95//         }
96        ];
97        // remove obsolete preference-tree virtualIdentity
98        for (var i = 0; i < transferPrefs.length; i++) {
99          // if former version of extension was at least 0.5.0, start with WizardPage 0.5.2
100          if (!currentVersion || (upgrade.versionChecker.compare(currentVersion, transferPrefs[i].version) < 0)) {
101            // remove any obsolete preferences under extensions.virtualIdentity
102            Log.debug("transfer changed preferences of pre-" + transferPrefs[i].version + " release...")
103            for (let transferPref of transferPrefs[i].prefs) {
104              try {
105                vI.vIprefs.commit(transferPref.targetPref,
106                  vI.vIprefs.get(transferPref.sourcePref));
107                vI.vIprefs.clearUserPref(transferPref.sourcePref);
108              } catch (e) {};
109            }
110            Log.debug("done.")
111          }
112        }
113      },
114
115      __removeObsoleteUserPrefs: function (currentVersion) {
116        var obsoletePrefs = [
117        {
118          version: "0.10",
119          prefs: Array(
120            "extensions.virtualIdentity.show_smtp",
121            "extensions.virtualIdentity.storage_store_SMTP",
122            "extensions.virtualIdentity.storage_show_SMTP_switch",
123            "extensions.virtualIdentity.doFcc",
124            "extensions.virtualIdentity.fccFolder",
125            "extensions.virtualIdentity.fccFolderPickerMode",
126            "extensions.virtualIdentity.fccReplyFollowsParent",
127            "extensions.virtualIdentity.draftFolder",
128            "extensions.virtualIdentity.draftFolderPickerMode",
129            "extensions.virtualIdentity.stationeryFolder",
130            "extensions.virtualIdentity.stationeryFolderPickerMode",
131            "extensions.virtualIdentity.fcc_show_switch",
132            "extensions.virtualIdentity.storage_show_switch",
133            "extensions.virtualIdentity.storage_show_baseID_switch",
134            "extensions.virtualIdentity.copySMIMESettings",
135            "extensions.virtualIdentity.copyAttachVCardSettings",
136            "extensions.virtualIdentity.copyNewEnigmailSettings",
137            "extensions.virtualIdentity.storageExtras_fcc",
138            "extensions.virtualIdentity.storageExtras_openPGP_messageEncryption",
139            "extensions.virtualIdentity.storageExtras_openPGP_messageSignature",
140            "extensions.virtualIdentity.storageExtras_openPGP_PGPMIME",
141            "extensions.virtualIdentity.hide_signature",
142            "extensions.virtualIdentity.hide_sMime_messageSignature",
143            "extensions.virtualIdentity.hide_openPGP_messageSignature",
144            "extensions.virtualIdentity.autoReplyToSelf"
145            )
146        }
147        ];
148        // remove obsolete preference-tree virtualIdentity
149        for (var i = 0; i < obsoletePrefs.length; i++) {
150          // if former version of extension was at least 0.5.0, start with WizardPage 0.5.2
151          if (!currentVersion || (upgrade.versionChecker.compare(currentVersion, obsoletePrefs[i].version) < 0)) {
152            // remove any obsolete preferences under extensions.virtualIdentity
153            Log.debug("removing obsolete preferences of pre-" + obsoletePrefs[i].version + " release...")
154            for (let pref of obsoletePrefs[i].prefs) {
155              try {
156                vI.vIprefs.clearUserPref(pref);
157                Log.debug(".")
158              } catch (e) {};
159            }
160            Log.debug("done.")
161          }
162        }
163      },
164    }
165    vI.upgrade = upgrade;
166  }
167});
Note: See TracBrowser for help on using the repository browser.