1 /* ***** BEGIN LICENSE BLOCK ***** 2 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 3 * 4 * The contents of this file are subject to the Mozilla Public License Version 5 * 1.1 (the "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * http://www.mozilla.org/MPL/ 8 * 9 * Software distributed under the License is distributed on an "AS IS" basis, 10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 11 * for the specific language governing rights and limitations under the 12 * License. 13 * 14 * The Original Code is gContactSync. 15 * 16 * The Initial Developer of the Original Code is 17 * Josh Geenen <gcontactsync@pirules.org>. 18 * Portions created by the Initial Developer are Copyright (C) 2010 19 * the Initial Developer. All Rights Reserved. 20 * 21 * Contributor(s): 22 * 23 * Alternatively, the contents of this file may be used under the terms of 24 * either the GNU General Public License Version 2 or later (the "GPL"), or 25 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 26 * in which case the provisions of the GPL or the LGPL are applicable instead 27 * of those above. If you wish to allow use of your version of this file only 28 * under the terms of either the GPL or the LGPL, and not to allow others to 29 * use your version of this file under the terms of the MPL, indicate your 30 * decision by deleting the provisions above and replace them with the notice 31 * and other provisions required by the GPL or the LGPL. If you do not delete 32 * the provisions above, a recipient may use your version of this file under 33 * the terms of any one of the MPL, the GPL or the LGPL. 34 * 35 * ***** END LICENSE BLOCK ***** */ 36 37 if (!com) var com = {}; // A generic wrapper variable 38 // A wrapper for all GCS functions and variables 39 if (!com.gContactSync) com.gContactSync = {}; 40 41 /** 42 * Stores synchronization summary data. 43 * 44 * @class 45 */ 46 com.gContactSync.SyncSummaryData = function gCS_SyncSummaryData() { 47 48 this.mLocal = { 49 mAdded: 0, 50 mRemoved: 0, 51 mUpdated: 0, 52 mConflicted: 0, 53 mIgnored: 0 54 }; 55 this.mRemote = { 56 mAdded: 0, 57 mRemoved: 0, 58 mUpdated: 0, 59 mIgnored: 0 60 }; 61 this.mNotChanged = 0; 62 this.mConflicted = 0; 63 } 64 65 /** 66 * Adds another SyncSummaryData's counts to this one's. 67 * 68 * @param aSummaryData {SyncSummaryData} The SyncSummaryData to add. 69 */ 70 com.gContactSync.SyncSummaryData.prototype.addSummary = function SyncSummaryData_addSummary(aSummaryData) { 71 72 // Local data 73 this.mLocal.mAdded += aSummaryData.mLocal.mAdded; 74 this.mLocal.mRemoved += aSummaryData.mLocal.mRemoved; 75 this.mLocal.mUpdated += aSummaryData.mLocal.mUpdated; 76 this.mLocal.mConflicted += aSummaryData.mLocal.mConflicted; 77 this.mLocal.mIgnored += aSummaryData.mLocal.mIgnored; 78 79 // Remote data 80 this.mRemote.mAdded += aSummaryData.mRemote.mAdded; 81 this.mRemote.mRemoved += aSummaryData.mRemote.mRemoved; 82 this.mRemote.mUpdated += aSummaryData.mRemote.mUpdated; 83 this.mRemote.mConflicted += aSummaryData.mRemote.mConflicted; 84 this.mRemote.mIgnored += aSummaryData.mRemote.mIgnored; 85 86 // Both 87 this.mNotChanged += aSummaryData.mNotChanged; 88 this.mConflicted += aSummaryData.mConflicted; 89 } 90 91 /** 92 * Prints summary data to the log and optionally shows an alert dialog. 93 * 94 * @param aAlert {boolean} Set this to true to show the summary in an alert 95 * dialog. 96 */ 97 com.gContactSync.SyncSummaryData.prototype.print = function SyncSummaryData_print(aAlert) { 98 99 var getStr = function specialGetStr(aName) { 100 return com.gContactSync.StringBundle.getStr(aName).replace(/%/g, " "); 101 } 102 var msg = "*****"; 103 if (aAlert) { 104 msg += getStr('countOverallSummary'); 105 } else { 106 msg += 107 getStr('countSummaryFor') + " '" + 108 com.gContactSync.Sync.mCurrentAb.getName() + 109 "'"; 110 } 111 msg += "*****" + 112 "\n - " + getStr('countNotChanged') + 113 this.mNotChanged + 114 "\n - " + getStr('countConflicted') + 115 this.mConflicted + 116 "\t" + getStr('countConflictedDesc') + 117 // Local summary 118 "\n" + getStr('countLocalChanges') + 119 "\n - " + getStr('countAdded') + 120 this.mLocal.mAdded + 121 "\n - " + getStr('countUpdated') + 122 this.mLocal.mUpdated + 123 "\n - " + getStr('countRemoved') + 124 this.mLocal.mRemoved + 125 "\n - " + getStr('countIgnored') + 126 this.mLocal.mIgnored + 127 "\t" + getStr('countReadOnlyMode') + 128 // Remote summary 129 "\n" + getStr('countRemoteChanges') + 130 "\n - " + getStr('countAdded') + 131 this.mRemote.mAdded + 132 "\n - " + getStr('countUpdated') + 133 this.mRemote.mUpdated + 134 "\n - " + getStr('countRemoved') + 135 this.mRemote.mRemoved + 136 "\n - " + getStr('countIgnored') + 137 this.mRemote.mIgnored + 138 "\t" + getStr('countWriteOnlyMode') + 139 "\n*****" + getStr('countEndSummary') + "*****"; 140 com.gContactSync.LOGGER.LOG("\n" + msg + "\n"); 141 if (aAlert) { 142 // Alert dialogs aren't monospaced so replace all whitespace with a single 143 // space 144 com.gContactSync.alert(msg.replace(/[ ]{2,}/g, " ")); 145 } 146 }