home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 February / maximum-cd-2011-02.iso / DiscContents / Miro_Installer.exe / xulrunner / chrome / toolkit.jar / content / mozapps / update / history.js < prev    next >
Encoding:
Text File  |  2009-06-04  |  4.0 KB  |  105 lines

  1. /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2. /* ***** BEGIN LICENSE BLOCK *****
  3.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  4.  *
  5.  * The contents of this file are subject to the Mozilla Public License Version
  6.  * 1.1 (the "License"); you may not use this file except in compliance with
  7.  * the License. You may obtain a copy of the License at
  8.  * http://www.mozilla.org/MPL/
  9.  *
  10.  * Software distributed under the License is distributed on an "AS IS" basis,
  11.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  12.  * for the specific language governing rights and limitations under the
  13.  * License.
  14.  *
  15.  * The Original Code is the Update Service.
  16.  *
  17.  * The Initial Developer of the Original Code is Google Inc.
  18.  * Portions created by the Initial Developer are Copyright (C) 2005
  19.  * the Initial Developer. All Rights Reserved.
  20.  *
  21.  * Contributor(s):
  22.  *  Ben Goodger <ben@mozilla.org> (Original Author)
  23.  *
  24.  * Alternatively, the contents of this file may be used under the terms of
  25.  * either the GNU General Public License Version 2 or later (the "GPL"), or
  26.  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  27.  * in which case the provisions of the GPL or the LGPL are applicable instead
  28.  * of those above. If you wish to allow use of your version of this file only
  29.  * under the terms of either the GPL or the LGPL, and not to allow others to
  30.  * use your version of this file under the terms of the MPL, indicate your
  31.  * decision by deleting the provisions above and replace them with the notice
  32.  * and other provisions required by the GPL or the LGPL. If you do not delete
  33.  * the provisions above, a recipient may use your version of this file under
  34.  * the terms of any one of the MPL, the GPL or the LGPL.
  35.  *
  36.  * ***** END LICENSE BLOCK ***** */
  37.  
  38. const NS_XUL  = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
  39.  
  40. var gUpdateHistory = {
  41.   _view: null,
  42.   
  43.   /**
  44.    * Initialize the User Interface
  45.    */
  46.   onLoad: function() {
  47.     this._view = document.getElementById("historyItems");
  48.     
  49.     var um = 
  50.         Components.classes["@mozilla.org/updates/update-manager;1"].
  51.         getService(Components.interfaces.nsIUpdateManager);
  52.     var uc = um.updateCount;
  53.     if (uc) {
  54.       while (this._view.hasChildNodes())
  55.         this._view.removeChild(this._view.firstChild);
  56.     
  57.       var bundle = document.getElementById("updateBundle");
  58.       
  59.       for (var i = 0; i < uc; ++i) {
  60.         var update = um.getUpdateAt(i);
  61.         if (!update || !update.name)
  62.           continue;
  63.  
  64.         // Don't display updates that are downloading since they don't have
  65.         // valid statusText for the UI (bug 485493).
  66.         if (update.statusText == "" || update.statusText == "undefined")
  67.           continue;
  68.  
  69.         var element = document.createElementNS(NS_XUL, "update");
  70.         this._view.appendChild(element);
  71.         element.name = bundle.getFormattedString("updateFullName", 
  72.           [update.name, update.buildID]);
  73.         element.type = bundle.getString("updateType_" + update.type);
  74.         element.installDate = this._formatDate(update.installDate);
  75.         element.detailsURL = update.detailsURL;
  76.         element.status = update.statusText;
  77.       }
  78.     }
  79.     var cancelbutton = document.documentElement.getButton("cancel");
  80.     cancelbutton.focus();
  81.   },
  82.   
  83.   /**
  84.    * Formats a date into human readable form
  85.    * @param   seconds
  86.    *          A date in seconds since 1970 epoch
  87.    * @returns A human readable date string
  88.    */
  89.   _formatDate: function(seconds) {
  90.     var sdf = 
  91.         Components.classes["@mozilla.org/intl/scriptabledateformat;1"].
  92.         getService(Components.interfaces.nsIScriptableDateFormat);
  93.     var date = new Date(seconds);
  94.     return sdf.FormatDateTime("", sdf.dateFormatLong, 
  95.                               sdf.timeFormatSeconds,
  96.                               date.getFullYear(),
  97.                               date.getMonth() + 1,
  98.                               date.getDate(),
  99.                               date.getHours(),
  100.                               date.getMinutes(),
  101.                               date.getSeconds());
  102.   }
  103. };
  104.  
  105.