Bug 78274 Convert profile manager into a <dialog> r=jag sr=sspitzer

This commit is contained in:
neil%parkwaycc.co.uk 2004-07-14 21:51:09 +00:00
Родитель c0bb9b1745
Коммит c317c8f1df
10 изменённых файлов: 51 добавлений и 319 удалений

Просмотреть файл

@ -245,9 +245,11 @@ function SwitchProfileManagerMode()
captionLine = "Manage Profiles *";
}
var manage = document.getElementById( "manage" ); // hide the manage profiles button...
var manageParent = manage.parentNode;
manageParent.removeChild( manage );
var profileList = document.getElementById("profiles");
profileList.focus();
// hide the manage profiles button...
document.documentElement.getButton("extra2").hidden = true;
profileManagerMode = "manager"; // swap the mode
}
else {
@ -283,7 +285,7 @@ function DoEnabling()
{
var renbutton = document.getElementById( "renbutton" );
var delbutton = document.getElementById( "delbutton" );
var start = document.getElementById( "ok" );
var start = document.documentElement.getButton( "accept" );
var profileList = document.getElementById( "profiles" );
if (profileList.view.selection.count == 0)
@ -326,7 +328,7 @@ function HandleKeyEvent( aEvent )
return;
ConfirmDelete();
break;
case "VK_F2":
case KeyEvent.DOM_VK_F2:
if( profileManagerMode != "manager" )
return;
RenameProfile();

Просмотреть файл

@ -59,26 +59,24 @@ function StartUp()
gProfileManagerBundle = document.getElementById("bundle_profileManager");
gBrandBundle = document.getElementById("bundle_brand");
SetUpOKCancelButtons();
centerWindowOnScreen();
if (gStartupMode) {
document.documentElement.setAttribute("buttonlabelcancel",
document.documentElement.getAttribute("buttonlabelexit"));
document.documentElement.setAttribute("buttonlabelaccept",
document.documentElement.getAttribute("buttonlabelstart"));
}
if(window.location && window.location.search && window.location.search == "?manage=true" )
SwitchProfileManagerMode();
// Set up the intro text, depending on our context
var introTextItem = document.getElementById("intro");
var introText, insertText;
if (gStartupMode) {
insertText = gProfileManagerBundle.getFormattedString("startButton",
[gBrandBundle.getString("brandShortName")]);
introText = gProfileManagerBundle.getFormattedString("intro_start",
[insertText]);
else {
// Set up the intro text, depending on our context
var introTextItem = document.getElementById("intro");
var insertText = document.documentElement.getAttribute("buttonlabelaccept");
var introText = gProfileManagerBundle.getFormattedString(
gStartupMode ? "intro_start" : "intro_switch",
[insertText]);
introTextItem.textContent = introText;
}
else {
insertText = gProfileManagerBundle.getString("selectButton");
introText = gProfileManagerBundle.getFormattedString("intro_switch",
[insertText]);
}
introTextItem.childNodes[0].nodeValue = introText;
var dirServ = Components.classes['@mozilla.org/file/directory_service;1']
.getService(Components.interfaces.nsIProperties);
@ -287,32 +285,3 @@ function onExit()
gDialogParams.SetInt(0, 0); // 0 == cancel
return true;
}
function SetUpOKCancelButtons()
{
doSetOKCancel( onStart, onExit, null, null );
var okButton = document.getElementById("ok");
var cancelButton = document.getElementById("cancel");
var okButtonString;
var cancelButtonString;
try {
if (gStartupMode) {
okButtonString = gProfileManagerBundle.getFormattedString("startButton",
[gBrandBundle.getString("brandShortName")]);
cancelButtonString = gProfileManagerBundle.getString("exitButton");
}
else {
okButtonString = gProfileManagerBundle.getString("selectButton");
cancelButtonString = gProfileManagerBundle.getString("cancel");
}
} catch (e) {
okButtonString = "Start Yah";
cancelButtonString = "Exit Yah";
}
okButton.setAttribute( "label", okButtonString );
okButton.setAttribute( "class", ( okButton.getAttribute("class") + " padded" ) );
cancelButton.setAttribute( "label", cancelButtonString );
}

Просмотреть файл

@ -43,24 +43,30 @@
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://communicator/skin/profile/profile.css" type="text/css"?>
<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?>
<!DOCTYPE window [
<!DOCTYPE dialog [
<!ENTITY % brandDTD SYSTEM "chrome://global/locale/brand.dtd">
%brandDTD;
<!ENTITY % profileDTD SYSTEM "chrome://communicator/locale/profile/profileSelection.dtd">
%profileDTD;
]>
<window
<dialog
id="profileWindow"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
class="color-dialog non-resizable"
title="&windowtitle.label;"
windowtype="mozilla:profileSelection"
orient="vertical"
style="width: 42em;"
onclose="onExit();"
spacerflex="1"
buttons="accept,cancel,extra2"
buttonlabelstart="&start.label;"
buttonlabelexit="&exit.label;"
buttonlabelaccept="&select.label;"
buttonlabelextra2="&manage.label;"
buttonaccesskeyextra2="&manage.accesskey;"
ondialogaccept="onStart();"
ondialogcancel="onExit();"
ondialogextra2="SwitchProfileManagerMode();"
onload="StartUp();">
<stringbundle id="bundle_profileManager"
@ -71,8 +77,6 @@
<script type="application/x-javascript" src="chrome://communicator/content/profile/profileSelection.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/profile/profileManager.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/profile/createProfileWizard.js"/>
<keyset id="dialogKeys"/>
<dialogheader class="header-large" id="header" title="&profilemanager.label;" description="&windowtitle.label;"/>
@ -80,7 +84,7 @@
<!-- instructions -->
<deck id="prattle">
<description id="intro" style="width: 17em;border:1px solid transparent;" flex="1">""</description>
<description id="intro" style="width: 17em;"/>
<vbox id="manager">
<description style="width: 17em;" class="label">&pmTextA.label;</description>
<separator/>
@ -114,16 +118,4 @@
</vbox>
</hbox>
<hbox class="selection">
<separator class="thin" orient="vertical"/>
<button id="manage" label="&manage.label;" accesskey="&manage.accesskey;" oncommand="SwitchProfileManagerMode();"/>
<spacer flex="1"/>
<hbox id="okCancelButtons"/>
<separator class="thin" orient="vertical"/>
</hbox>
<separator class="thin" />
<hbox id="profileManager-status" class="box-status" value="&profilemanager.label;" progress=""/>
</window>
</dialog>

Просмотреть файл

@ -1,50 +0,0 @@
# LOCALIZATION NOTE: Do not translate <html:br/>
migratebeforestart=The profile you selected was created with a previous version of Netscape and must be copied and converted before you can use it with %brandShortName%.<html:br/><html:br/> Your original Netscape profile will not be altered. <html:br/><html:br/> Do you want to copy and convert this profile?
migratebeforerename=The profile you selected was created with a previous version of Netscape and must be copied and converted to a %brandShortName% profile before it can be renamed.<html:br/><html:br/> Your original Netscape profile will not be altered. <html:br/><html:br/> Do you want to convert this profile?<html:br/><html:br/>
migratebeforedelete=The profile you selected was created with a previous version of Netscape. %brandShortName% can remove this profile from the list of profiles that it maintains but you must remove it from your system using the version of Netscape that created it, or by hand.<html:br/><html:br/> Your original Netscape profile will not be altered. <html:br/><html:br/> Do you want to remove this profile from the list of profiles?<html:br/><html:br/>
migratetitle=Migrate Profile
migrateallprofilestitle=Migrate All Profiles
renameProfilePrompt=Rename the profile "%oldProfileName%" to:
renameprofiletitle=Rename Profile
chooseFolder=Choose Profile Folder
deletetitle=Delete Profile
delete4xprofile=The profile you selected was created with a previous version of Netscape. %S can remove this profile from the list of profiles that it maintains but you must remove it from your system using the version of Netscape that created it, or by hand.<html:br/><html:br/> Do you want to remove this profile from the list of profiles?<html:br/><html:br/>
deleteprofile=Deleting a profile will remove the profile from the list of available profiles and cannot be undone.<html:br/>You may also choose to delete the profile data files, including your saved mail, settings, and certificates. This option will delete the folder "%S" and cannot be undone.<html:br/><html:br/>Would you like to delete the profile data files?
deleteFiles=Delete Files
dontDeleteFiles=Don't Delete Files
pm_title=Manage User Profiles
ps_title=Select User Profile
intro_start=To access your personal profile, which contains your stored messages, settings and other personalized information, please choose your profile from the list, and click %S to begin your session.
intro_switch=To switch to another profile, which contains stored messages, settings and other personalized information, please choose that profile from the list, and click %S to begin using that profile.
pm_button=Back...
ps_button=Manage Profiles...
selectButton=Use Profile
startButton=Start %S
exitButton=Exit
cancel=Cancel
invalidChar=The character "%S" is not allowed in profile names. Please choose a different name.
profileCreationFailed=Profile couldn't be created. Probably the chosen folder isn't writable.
profileCreationFailedTitle=Profile Creation failed
profileNameInvalidTitle=Invalid profile name
profileNameEmpty=An empty profile name is not allowed.
profileExists=A profile with this name already exists. Please choose another name.
profileExistsTitle=Profile Exists
profileFinishText=Click Finish to create this new profile.
profDirMissing=%S cannot use the profile "%S" because the directory containing the profile cannot be found.<html:br/><html:br/> Please choose another profile or create a new one.
profDirLocked=%S cannot use the profile "%S" because it is in use.<html:br/><html:br/> Please choose another profile or create a new one.
profileSwitchFailed=%S cannot switch to profile "%S" automatically.<html:br/><html:br/>%S will now exit.<html:br/><html:br/>Please start %S again.
sourceProfileDirMissing=This profile cannot be migrated because the directory containing the profile information could not be found. Choose another profile or create a new one.
sourceProfileDirMissingTitle=Profile Directory Missing

Просмотреть файл

@ -1,74 +0,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.org code.
The Initial Developer of the Original Code is
Netscape Communications Corporation.
Portions created by the Initial Developer are Copyright (C) 1998
the Initial Developer. All Rights Reserved.
Contributor(s):
Ben Goodger (28/10/99)
Alternatively, the contents of this file may be used under the terms of
either of 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 ***** -->
<!ENTITY windowtitle.label "Select User Profile">
<!ENTITY welcome.label "Welcome to &brandShortName;">
<!ENTITY profilemanager.label "&brandShortName; Profile Manager">
<!ENTITY profilename.label "Profile Name:">
<!ENTITY password.label "Password:">
<!ENTITY start.label "Start &vendorShortName;">
<!ENTITY exit.label "Exit">
<!ENTITY manage.label "Manage Profiles...">
<!ENTITY manage.accesskey "M">
<!ENTITY availprofiles.label "Available Profiles">
<!ENTITY deleteButton.label "Delete Profile...">
<!ENTITY deleteButton.accesskey "D">
<!ENTITY renameButton.label "Rename Profile...">
<!ENTITY renameButton.accesskey "R">
<!ENTITY newButton.label "Create Profile...">
<!ENTITY newButton.accesskey "C">
<!-- manager entities -->
<!ENTITY pmTextA.label "&brandShortName; stores information about your settings, preferences, bookmarks, stored messages and other user items in your user profile.">
<!ENTITY pmTextC.label "You must select a profile, or create a new profile, the first time you start &brandShortName;.">
<!ENTITY pmTextB.label "Indicates a profile created with a previous version of Netscape. These profiles must be copied and converted before they can be loaded with &brandShortName;. This is an automated process.">
<!ENTITY offlineState.label "Work offline">
<!ENTITY offlineState.accesskey "o">
<!ENTITY autoSelectLastProfile.label "Don't ask at startup">
<!ENTITY autoSelectLastProfile.accesskey "s">

Просмотреть файл

@ -78,7 +78,7 @@ dialogheader {
.header-large {
-moz-box-orient: vertical;
margin: 0;
margin: -8px -10px 8px -10px;
border-left: none;
border-right: none;
border-top: 1px solid;

Просмотреть файл

@ -77,7 +77,7 @@ dialogheader {
.header-large {
-moz-box-orient: vertical;
margin: 0;
margin: -8px -10px 8px -10px;
border-left: none;
border-right: none;
border-top: none;

Просмотреть файл

@ -1,92 +0,0 @@
/* ***** 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.org code.
*
* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 1998
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Joe Hewitt <hewitt@netscape.com>
*
* Alternatively, the contents of this file may be used under the terms of
* either of 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 ***** */
/* ===== dialog.css =====================================================
== Styles used by the XUL dialog element.
======================================================================= */
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
/* ::::: dialog ::::: */
dialog {
padding: 7px 5px 5px 5px;
}
/* ::::: dialog header ::::: */
dialogheader {
margin: 0px 5px 5px 5px;
border: 2px solid;
-moz-border-top-colors: #858B97 #2D3B49;
-moz-border-right-colors: #ECEFF2 #2D3B49;
-moz-border-bottom-colors: #ECEFF2 #2D3B49;
-moz-border-left-colors: #858B97 #2D3B49;
padding: 5px 8px;
background-color: #90A1B3;
color: #000000;
}
.dialogheader-title {
margin: 0px !important;
font-size: larger;
font-weight: bold;
}
/* ::::: large dialog header ::::: */
.header-large {
-moz-box-orient: vertical;
margin: 0;
border-left: none;
border-right: none;
border-top: none;
border-bottom-width: 1px;
-moz-border-bottom-colors: #000000;
padding: 12px 5px 12px 25px;
background-color: #90A1B3;
color: #000000;
}
.header-large > .dialogheader-title {
font: inherit;
font-weight: bold;
}
.header-large > .dialogheader-description {
margin-left: 12px !important;
}

Просмотреть файл

@ -19,12 +19,13 @@
<xul:hbox class="dialog-button-box" pack="end" anonid="buttons"
xbl:inherits="pack=buttonpack,align=buttonalign,dir=buttondir,orient=buttonorient">
<xul:button dlgtype="accept" class="dialog-button"/>
<xul:button dlgtype="extra1" class="dialog-button" hidden="true" label=""/>
<xul:button dlgtype="extra2" class="dialog-button" hidden="true" label=""/>
<xul:button dlgtype="cancel" class="dialog-button"/>
<xul:button dlgtype="help" class="dialog-button" hidden="true"/>
<xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
<xul:button dlgtype="extra2" class="dialog-button" hidden="true" label="" xbl:inherits="label=buttonlabelextra2,accesskey=buttonaccesskeyextra2"/>
<xul:spacer xbl:inherits="flex=spacerflex"/>
<xul:button dlgtype="accept" class="dialog-button" xbl:inherits="label=buttonlabelaccept,accesskey=buttonaccesskeyaccept"/>
<xul:button dlgtype="extra1" class="dialog-button" hidden="true" label="" xbl:inherits="label=buttonlabelextra1,accesskey=buttonaccesskeyextra1"/>
<xul:button dlgtype="cancel" class="dialog-button" xbl:inherits="label=buttonlabelcancel,accesskey=buttonaccesskeycancel"/>
<xul:button dlgtype="help" class="dialog-button" hidden="true" xbl:inherits="label=buttonlabelhelp,accesskey=buttonaccesskeyhelp"/>
<xul:button dlgtype="disclosure" class="dialog-button" hidden="true" xbl:inherits="label=buttonlabeldisclosure,accesskey=buttonaccesskeydisclosure"/>
</xul:hbox>
</content>
@ -243,22 +244,6 @@
</method>
<method name="_doButtonCommand">
<parameter name="aDlgType"/>
<body>
<![CDATA[
// calling window.close() while an oncommand event
// call is on the stack fails to close the window,
// so we need to do this ugly setTimeout hack
window.setTimeout(
function(aDlgType) {
document.documentElement._reallyDoButtonCommand(aDlgType);
},
0, aDlgType);
]]>
</body>
</method>
<method name="_reallyDoButtonCommand">
<parameter name="aDlgType"/>
<body>
<![CDATA[

Просмотреть файл

@ -13,13 +13,13 @@
<xul:hbox class="dialog-button-box"
xbl:inherits="pack=buttonpack,align=buttonalign,dir=buttondir,orient=buttonorient">
<xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
<xul:button dlgtype="help" class="dialog-button" hidden="true"/>
<xul:button dlgtype="extra2" class="dialog-button" hidden="true" label=""/>
<xul:button dlgtype="extra1" class="dialog-button" hidden="true" label=""/>
<xul:button dlgtype="disclosure" class="dialog-button" hidden="true" xbl:inherits="label=buttonlabeldisclosure,accesskey=buttonaccesskeydisclosure"/>
<xul:button dlgtype="help" class="dialog-button" hidden="true" xbl:inherits="label=buttonlabelhelp,accesskey=buttonaccesskeyhelp"/>
<xul:button dlgtype="extra2" class="dialog-button" hidden="true" label="" xbl:inherits="label=buttonlabelextra2,accesskey=buttonaccesskeyextra2"/>
<xul:button dlgtype="extra1" class="dialog-button" hidden="true" label="" xbl:inherits="label=buttonlabelextra1,accesskey=buttonaccesskeyextra1"/>
<xul:spacer flex="1"/>
<xul:button dlgtype="cancel" class="dialog-button"/>
<xul:button dlgtype="accept" class="dialog-button"/>
<xul:button dlgtype="cancel" class="dialog-button" xbl:inherits="label=buttonlabelcancel,accesskey=buttonaccesskeycancel"/>
<xul:button dlgtype="accept" class="dialog-button" xbl:inherits="label=buttonlabelaccept,accesskey=buttonaccesskeyaccept"/>
</xul:hbox>
</content>