<?xml version="1.0"?> <!-- -*- Mode: SGML; indent-tabs-mode: nil -*- -->
<!-- ***** 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 Mozilla Communicator client code, released
   - March 31, 1998.
   -
   - The Initial Developer of the Original Code is
   - Netscape Communications Corporation.
   - Portions created by the Initial Developer are Copyright (C) 1998-1999
   - the Initial Developer. All Rights Reserved.
   -
   - Contributor(s):
   -   Ben Goodger
   -   Brian Ryner <bryner@brianryner.com>
   -   Neil Rashbrook <neil@parkwaycc.co.uk>
   -
   - 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://communicator/skin/" type="text/css"?>

<!DOCTYPE dialog [
<!ENTITY % managerDTD SYSTEM "chrome://communicator/locale/passwordManager.dtd">
%managerDTD;
<!ENTITY % mgrDTD SYSTEM "chrome://passwordmgr/locale/passwordManager.dtd">
%mgrDTD;
]>

<dialog id="SignonViewerDialog"
        windowtype="Toolkit:PasswordManager"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        buttons="accept,help"
        buttonlabelaccept="&closebutton.label;"
        onload="Startup(); SignonsStartup(); RejectsStartup();"
        onunload="Shutdown();"
        ondialoghelp="openHelp('password_mgr', 'chrome://communicator/locale/help/suitehelp.rdf');"
        title="&windowtitle.label;"
        persist="width height screenX screenY">

  <script type="application/javascript"
          src="chrome://passwordmgr/content/passwordManagerCommon.js"/>
  <script type="application/javascript"
          src="chrome://passwordmgr/content/passwordManager.js"/>
  <script type="application/javascript"
          src="chrome://passwordmgr/content/passwordManagerExceptions.js"/>
  <script type="application/javascript"
          src="chrome://help/content/contextHelp.js"/>

  <stringbundle id="signonBundle"
                src="chrome://passwordmgr/locale/passwordmgr.properties"/>
  <keyset>
    <key key="&windowClose.key;" modifiers="accel" oncommand="window.close();"/>
    <key key="&focusSearch1.key;" modifiers="accel"
         oncommand="if (document.getElementById('signonsTab').selected) FocusFilterBox();"/>
  </keyset>

  <popupset id="signonsTreeContextSet">
    <menupopup id="signonsTreeContextMenu"
               onpopupshowing="UpdateCopyPassword();">
      <menuitem id="context-copypassword"
                label="&copyPasswordCmd.label;"
                accesskey="&copyPasswordCmd.accesskey;"
                oncommand="CopyPassword();"/>
    </menupopup>
  </popupset>

  <tabbox flex="1">
    <tabs>
      <tab id="signonsTab" label="&tab.signonsstored.label;"/>
      <tab id="signonsitesTab" label="&tab.signonsnotstored.label;"/>
    </tabs>
    <tabpanels flex="1">

    <!-- saved signons -->
      <vbox id="savedsignons" flex="1">
        <!-- filter -->
        <hbox align="center">
          <textbox id="filter" flex="1" type="search"
                   aria-controls="signonsTree"
                   placeholder="&search.placeholder;"
                   oncommand="_filterPasswords();"/>
        </hbox>
        <separator class="thin"/>

        <label control="signonsTree" id="signonsIntro"/>
        <separator class="thin"/>
        <tree id="signonsTree" flex="1"
              style="height: 20em;" hidecolumnpicker="true"
              onkeypress="HandleSignonKeyPress(event)"
              onselect="SignonSelected();"
              context="signonsTreeContextMenu">
          <treecols>
            <treecol id="siteCol" label="&treehead.site.label;" flex="5"
                     onclick="SignonColumnSort('hostname');"
                     persist="width" sortDirection="ascending"/>
            <splitter class="tree-splitter"/>
            <treecol id="userCol" label="&treehead.username.label;" flex="2"
                     onclick="SignonColumnSort('username');" persist="width"/>
            <splitter class="tree-splitter"/>
            <treecol id="passwordCol" label="&treehead.password.label;" flex="2"
                     onclick="SignonColumnSort('password');" persist="width"
                     hidden="true"/>
          </treecols>
          <treechildren/>
        </tree>
        <separator class="thin"/>
        <hbox id="SignonViewerButtons">
          <button id="removeSignon" disabled="true" icon="remove"
                  label="&remove.label;" accesskey="&remove.accesskey;"
                  oncommand="DeleteSignon();"/>
          <button id="removeAllSignons" icon="clear"
                  label="&removeall.label;" accesskey="&removeall.accesskey;"
                  oncommand="DeleteAllSignons();"/>
          <spacer flex="1"/>
          <button id="togglePasswords"
                  oncommand="TogglePasswordVisible();"/>
        </hbox>
      </vbox>

      <!-- rejected sites -->
      <vbox id="rejectedsites" flex="1">
        <description control="rejectsTree">&loginsSpielExceptions.label;</description>
        <separator class="thin"/>
        <tree id="rejectsTree" flex="1" style="height: 20em;" hidecolumnpicker="true"
              onkeypress="HandleRejectKeyPress(event)"
              onselect="RejectSelected();">
          <treecols>
            <treecol id="rejectCol" label="&treehead.site.label;" flex="5"
                     onclick="RejectColumnSort('host');" sortDirection="ascending"/>
          </treecols>
          <treechildren/>
        </tree>
        <separator class="thin"/>
        <hbox>
          <button id="removeReject" disabled="true" icon="remove"
                  accesskey="&remove.accesskey;"
                  label="&remove.label;" oncommand="DeleteReject();"/>
          <button id="removeAllRejects"
                  accesskey="&removeall.accesskey;"
                  icon="clear" label="&removeall.label;"
                  oncommand="DeleteAllRejects();"/>
        </hbox>
      </vbox>
    </tabpanels>
  </tabbox>
</dialog>
