<?xml version="1.0"?>

# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is The Extension Manager.
#
# The Initial Developer of the Original Code is
# Ben Goodger.
# Portions created by the Initial Developer are Copyright (C) 2004
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#   Ben Goodger <ben@bengoodger.com>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> 

<!DOCTYPE dialog SYSTEM "chrome://mozapps/locale/extensions/errors.dtd">

<dialog id="errors"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        title="&errors.title;"
        onload="init()"
        style="width: 40em;"
        buttons="cancel">

  <script type="application/javascript">
  <![CDATA[
    function LOG(string) 
    {
      dump("*** " + string + "\n");
      var console = Components.classes["@mozilla.org/consoleservice;1"]
                              .getService(Components.interfaces.nsIConsoleService);  
      console.logStringMessage(string);
    }

    function init()
    {
      var state = window.arguments[0].state;
      var brandShortName = document.getElementById("brandStrings").getString("brandShortName");
      var updateStrings = document.getElementById("updateStrings");
      var str = updateStrings.getFormattedString(state + "Errors", [brandShortName]);
      document.getElementById("intro").appendChild(document.createTextNode(str));
      
      var xpinstallStrings = document.getElementById("xpinstallStrings");
      
      var items = window.arguments[0].errors;
      var listbox = document.getElementById("extensions");
      for (var i = 0; i < items.length; ++i) {
        if (items[i].error) {
          if (items[i].error == -207) {
            LOG("Error -207 (\"Not a valid install package\") generally implies\r\n" + 
                "a 404 at the URL specified for the update. Check for typos in\r\n" + 
                "your update manifest.");
          }
          var listitem = document.createElement("listitem");
          try {
            var errorString = xpinstallStrings.getString("error" + items[i].error);
            var label = updateStrings.getFormattedString("installErrorItemFormat", 
                                                         [items[i].name, errorString]);
          }
          catch (e) { label = items[i].name; }
          listitem.setAttribute("label", label);
          listbox.appendChild(listitem);
        }
      }
      var strings = document.getElementById("updateStrings");
      var cancel = document.documentElement.getButton("cancel");
      cancel.label = strings.getString("closeButton");
      cancel.focus();
    }
  ]]>
  </script>
  
  <stringbundleset id="updateSet">
    <stringbundle id="brandStrings" src="chrome://branding/locale/brand.properties"/>
    <stringbundle id="xpinstallStrings" src="chrome://global/locale/xpinstall/xpinstall.properties"/>
    <stringbundle id="updateStrings" src="chrome://mozapps/locale/extensions/update.properties"/>
  </stringbundleset>

  <description id="intro"/>
  <separator class="thin"/>
  <listbox id="extensions" rows="7"/>
  <separator class="thin"/>

</dialog>

