Bug 220891 Create Profile Wizard overhaul

patch by borggraefe@despammed.com r=neil sr=roc
This commit is contained in:
timeless%mozdev.org 2003-11-06 13:33:51 +00:00
Родитель 19c719917b
Коммит 245c412b56
17 изменённых файлов: 269 добавлений и 202 удалений

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

@ -14,7 +14,6 @@
<?xml-stylesheet href="chrome://communicator/skin/toolbar.css"?> <?xml-stylesheet href="chrome://communicator/skin/toolbar.css"?>
<?xml-stylesheet href="chrome://communicator/skin/bookmarks/bookmarks.css"?> <?xml-stylesheet href="chrome://communicator/skin/bookmarks/bookmarks.css"?>
<?xml-stylesheet href="chrome://communicator/skin/directory/directory.css"?> <?xml-stylesheet href="chrome://communicator/skin/directory/directory.css"?>
<?xml-stylesheet href="chrome://communicator/skin/profile/newProfile1_2.css"?>
<?xml-stylesheet href="chrome://communicator/skin/profile/profile.css"?> <?xml-stylesheet href="chrome://communicator/skin/profile/profile.css"?>
<?xml-stylesheet href="chrome://communicator/skin/profile/profileManager.css"?> <?xml-stylesheet href="chrome://communicator/skin/profile/profileManager.css"?>
<?xml-stylesheet href="chrome://communicator/skin/regviewer/regviewer.css"?> <?xml-stylesheet href="chrome://communicator/skin/regviewer/regviewer.css"?>
@ -55,7 +54,6 @@
<?xml-stylesheet href="chrome://global/skin/textfield.css"?> <?xml-stylesheet href="chrome://global/skin/textfield.css"?>
<?xml-stylesheet href="chrome://global/skin/toolbar.css"?> <?xml-stylesheet href="chrome://global/skin/toolbar.css"?>
<?xml-stylesheet href="chrome://global/skin/tree.css"?> <?xml-stylesheet href="chrome://global/skin/tree.css"?>
<?xml-stylesheet href="chrome://global/skin/wizardOverlay.css"?>
<?xml-stylesheet href="chrome://messenger/skin/AccountManager.css"?> <?xml-stylesheet href="chrome://messenger/skin/AccountManager.css"?>
<?xml-stylesheet href="chrome://messenger/skin/fieldMapImport.css"?> <?xml-stylesheet href="chrome://messenger/skin/fieldMapImport.css"?>
<?xml-stylesheet href="chrome://messenger/skin/folderPane.css"?> <?xml-stylesheet href="chrome://messenger/skin/folderPane.css"?>

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

@ -20,159 +20,205 @@
* Contributor(s): * Contributor(s):
* Ben Goodger (30/09/99) * Ben Goodger (30/09/99)
* Brant Gurganus (23/03/03) * Brant Gurganus (23/03/03)
* Stefan Borggraefe (17/10/03)
*/ */
// The WIZARD of GORE var gProfile = Components.classes["@mozilla.org/profile/manager;1"].getService(Components.interfaces.nsIProfileInternal);
var profile = Components.classes["@mozilla.org/profile/manager;1"].getService();
profile = profile.QueryInterface(Components.interfaces.nsIProfileInternal);
var gCreateProfileWizardBundle;
var gProfileManagerBundle; var gProfileManagerBundle;
// Navigation Set for pages contained in wizard // The directory where the profile will be created.
var wizardMap = { var gProfileRoot;
newProfile1_1: { previous: null, next: "newProfile1_2", finish: false },
newProfile1_2: { previous: "newProfile1_1", next: null, finish: true } // Text node to display the location and name of the profile to create.
var gProfileDisplay;
// Called once when the wizard is opened.
function initWizard()
{
gProfileManagerBundle = document.getElementById("bundle_profileManager");
// Initialize the profile location display.
gProfileDisplay = document.getElementById("profileDisplay").firstChild;
setDisplayToDefaultFolder();
} }
// page specific variables // Called every time the second wizard page is displayed.
var profName = ""; function initSecondWizardPage()
var profDir = "";
var wizardManager = null;
// startup procedure
function Startup( startPage, frame_id )
{ {
if( frame_id == "" ) { var profileName = document.getElementById("profileName");
dump("Please supply a content_frame ID!"); profileName.select();
profileName.focus();
// Initialize profile name validation.
checkCurrentInput(profileName.value);
}
function setDisplayToDefaultFolder()
{
setDisplayToFolder(gProfile.defaultProfileParentDir);
document.getElementById("useDefault").disabled = true;
}
function setDisplayToFolder(profileRoot)
{
var profileName = document.getElementById("profileName");
profileName.focus();
gProfileRoot = profileRoot;
}
function updateProfileDisplay()
{
var currentProfileName = document.getElementById("profileName").value;
var profilePathAndName = gProfileRoot.clone();
profilePathAndName.append(currentProfileName);
gProfileDisplay.data = profilePathAndName.path;
}
// Shows the Language/Region Selection dialog and updates the data-Attributes to
// the selected values.
function showLangDialog()
{
var languageCode = document.getElementById("profileLanguage").getAttribute("data");
var regionCode = document.getElementById("profileRegion").getAttribute("data");
window.openDialog("chrome://communicator/content/profile/selectLang.xul",
"", "centerscreen,modal,titlebar",
languageCode, regionCode);
}
// Invoke a folder selection dialog for choosing the directory of profile storage.
function chooseProfileFolder()
{
var newProfileRoot;
try {
var dirChooser = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
dirChooser.init(window, gProfileManagerBundle.getString("chooseFolder"), Components.interfaces.nsIFilePicker.modeGetFolder);
dirChooser.appendFilters(Components.interfaces.nsIFilePicker.filterAll);
dirChooser.show();
newProfileRoot = dirChooser.file;
}
catch(e) {
// If something fails, change nothing.
return; return;
} }
gCreateProfileWizardBundle = document.getElementById("bundle_createProfileWizard");
gProfileManagerBundle = document.getElementById("bundle_profileManager");
// instantiate the Wizard Manager
wizardManager = new WizardManager( frame_id, null, null, wizardMap );
wizardManager.URL_PagePrefix = "chrome://communicator/content/profile/";
wizardManager.URL_PagePostfix = ".xul";
// set the button handler functions // Disable the "Default Folder..." button when the default profile folder
wizardManager.SetHandlers( null, null, onFinish, onCancel, null, null ); // was selected manually in the File Picker.
// load the start page // This is always false on Windows, until bug 221872 is fixed.
wizardManager.LoadPage (startPage, false); document.getElementById("useDefault").disabled = (newProfileRoot.equals(gProfile.defaultProfileParentDir));
// move to center of screen if no opener, otherwise, to center of opener
if( window.opener ) setDisplayToFolder(newProfileRoot);
moveToAlertPosition(); updateProfileDisplay();
else }
centerWindowOnScreen();
// Checks the current user input for validity and triggers an error message accordingly.
function checkCurrentInput(currentInput)
{
var finishButton = document.documentElement.getButton("finish");
var finishText = document.getElementById("finishText");
var canAdvance;
var errorMessage = checkProfileName(currentInput);
if (!errorMessage) {
finishText.className = "";
finishText.firstChild.data = gProfileManagerBundle.getString("profileFinishText");
canAdvance = true;
}
else {
finishText.className = "error";
finishText.firstChild.data = errorMessage;
canAdvance = false;
}
document.documentElement.canAdvance = canAdvance;
finishButton.disabled = !canAdvance;
updateProfileDisplay();
}
// Checks whether the given string is a valid profile name.
// Returns an error message describing the error in the name or "" when it's valid.
function checkProfileName(profileNameToCheck)
{
// Check for emtpy profile name.
if (!/\S/.test(profileNameToCheck))
return gProfileManagerBundle.getString("profileNameEmpty");
// Check whether all characters in the profile name are allowed.
if (/([\\*:?<>|\/\"])/.test(profileNameToCheck))
return gProfileManagerBundle.getFormattedString("invalidChar", [RegExp.$1]);
// Check whether a profile with the same name already exists.
if (gProfile.profileExists(profileNameToCheck))
return gProfileManagerBundle.getString("profileExists");
// profileNameToCheck is valid.
return "";
}
// Called when the first wizard page is shown.
function enableNextButton()
{
document.documentElement.canAdvance = true;
} }
function onCancel() function onCancel()
{ {
if( top.window.opener ) // window.opener is false if the Create Profile Wizard was opened from the command line.
window.close(); if (!window.opener)
else { return true;
try {
profile.forgetCurrentProfile(); try {
} gProfile.forgetCurrentProfile();
catch (ex) {
dump("failed to forget current profile.\n");
}
window.close();
} }
catch (ex) {
}
return true;
} }
function onFinish() function onFinish()
{ {
var profileName = document.getElementById("profileName").value;
var languageCode = document.getElementById("profileLanguage").getAttribute("data");
var regionCode = document.getElementById("profileRegion").getAttribute("data");
// check if we're at final stage var proceed = processCreateProfileData(profileName, gProfileRoot, languageCode, regionCode);
if( !wizardManager.wizardMap[wizardManager.currentPageTag].finish )
return;
var tag = wizardManager.WSM.GetTagFromURL( wizardManager.content_frame.src, "/", ".xul" ); // Error on profile creation. Don't leave the wizard so the user can correct his input.
wizardManager.WSM.SavePageData( tag, null, null, null ); if (!proceed)
return false;
var profName = wizardManager.WSM.PageData["newProfile1_2"].ProfileName.value; // window.opener is false if the Create Profile Wizard was opened from the command line.
var profDir = wizardManager.WSM.PageData["newProfile1_2"].ProfileDir.value; if (window.opener)
var profLang = wizardManager.WSM.PageData["newProfile1_2"].ProfileLanguage.value; // Add new profile to the list in the Profile Manager.
var profRegion = wizardManager.WSM.PageData["newProfile1_2"].ProfileRegion.value; window.opener.CreateProfile(profileName, gProfileRoot);
// Get & select langcode
var proceed = processCreateProfileData(profName, profDir, profLang, profRegion);
if( proceed ) {
if( window.opener ) {
window.opener.CreateProfile(profName, profDir);
}
else {
profile.currentProfile = profName;
}
window.close();
}
else else
return; // Use the newly created Profile.
gProfile.currentProfile = profileName;
// Exit the wizard.
return true;
} }
/** void processCreateProfileData( void ) ; // Create profile named profileName in profileRoot.
* - purpose: function processCreateProfileData(profileName, profileRoot, languageCode, regionCode)
* - in: nothing
* - out: nothing
**/
function processCreateProfileData( aProfName, aProfDir, langcode, regioncode)
{ {
try { try {
// note: deleted check for empty profName string here as this should be var profileLocation = profileRoot.clone();
// done by panel. -bmg (31/10/99) profileLocation.append(profileName);
// todo: move this check into the panel itself, activated ontyping :P gProfile.createNewProfileWithLocales(profileName, profileRoot.path, languageCode, regionCode, profileLocation.exists());
// this should definetly be moved to that page.. but how about providing
// user with some feedback about what's wrong. .. TOOLTIP! o_O
// or.. some sort of onblur notification. like a dialog then, or a
// dropout layery thing. yeah. something like that to tell them when
// it happens, not when the whole wizard is complete. blah.
if (profile.profileExists(aProfName)) {
alert(gCreateProfileWizardBundle.getString("profileExists"));
// this is a bad but probably acceptable solution for now.
// when we add more panels, we will want a better solution.
window.frames["content"].document.getElementById("ProfileName").focus();
return false;
}
var invalidChars = ["/", "\\", "*", ":"];
for( var i = 0; i < invalidChars.length; i++ )
{
if( aProfName.indexOf( invalidChars[i] ) != -1 ) {
var aString = gProfileManagerBundle.getString("invalidCharA");
var bString = gProfileManagerBundle.getString("invalidCharB");
bString = bString.replace(/\s*<html:br\/>/g,"\n");
var lString = aString + invalidChars[i] + bString;
alert( lString );
window.frames["content"].document.getElementById("ProfileName").focus();
return false;
}
}
// Adding code to see if the profile directory already exists....
// XXXX - Further modifications like adding propmt dialog are required - XXXX
var useExistingDir = false;
var fileSpec = Components.classes["@mozilla.org/file/local;1"].createInstance();
if ( fileSpec )
fileSpec = fileSpec.QueryInterface( Components.interfaces.nsILocalFile );
if (aProfDir == null)
fileSpec.initWithPath(profile.defaultProfileParentDir.path);
else
fileSpec.initWithPath(aProfDir);
fileSpec.append(aProfName);
if (fileSpec != null && fileSpec.exists())
useExistingDir = true;
dump("*** going to create a new profile called " + aProfName + " in folder: " + aProfDir + "\n");
profile.createNewProfileWithLocales(aProfName, aProfDir, langcode, regioncode, useExistingDir);
return true; return true;
} }
catch(e) { catch (e) {
dump("*** Failed to create a profile\n"); var profileCreationFailed = gProfileManagerBundle.getString("profileCreationFailed");
var profileCreationFailedTitle = gProfileManagerBundle.getString("profileCreationFailedTitle");
var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
promptService.alert(window, profileCreationFailedTitle, profileCreationFailed);
return false; return false;
} }
} }

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

@ -1,43 +1,70 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?> <?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://communicator/skin/profile/profile.css" type="text/css"?> <?xml-stylesheet href="chrome://communicator/skin/profile/profile.css" type="text/css"?>
<?xul-overlay href="chrome://global/content/wizardOverlay.xul"?>
<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?>
<!DOCTYPE window [ <!DOCTYPE wizard [
<!ENTITY % brandDTD SYSTEM "chrome://global/locale/brand.dtd"> <!ENTITY % brandDTD SYSTEM "chrome://global/locale/brand.dtd">
%brandDTD; %brandDTD;
<!ENTITY % profileDTD SYSTEM "chrome://communicator/locale/profile/createProfileWizard.dtd"> <!ENTITY % profileDTD SYSTEM "chrome://communicator/locale/profile/createProfileWizard.dtd">
%profileDTD; %profileDTD;
]> ]>
<wizard id="createProfileWizard"
<window title="&newprofile.title;" orient="vertical" title="&newprofile.title;"
class="color-dialog"
xmlns:html="http://www.w3.org/1999/xhtml" xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onclose="onCancel();" onwizardcancel="return onCancel();"
onload="Startup('newProfile1_1','content');"> onwizardfinish="return onFinish();"
onload="initWizard();"
style="&window.size;">
<stringbundle id="bundle_createProfileWizard"
src="chrome://communicator/locale/profile/createProfileWizard.properties"/>
<stringbundle id="bundle_profileManager" <stringbundle id="bundle_profileManager"
src="chrome://communicator/locale/profile/profileManager.properties"/> src="chrome://communicator/locale/profile/profileManager.properties"/>
<!-- XXX: strres.js is needed so that wizardManager.js will work -->
<script type="application/x-javascript" src="chrome://global/content/strres.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/profile/createProfileWizard.js"/> <script type="application/x-javascript" src="chrome://communicator/content/profile/createProfileWizard.js"/>
<script type="application/x-javascript" src="chrome://global/content/wizardOverlay.js"/>
<script type="application/x-javascript" src="chrome://global/content/wizardHandlerSet.js"/>
<script type="application/x-javascript" src="chrome://global/content/wizardManager.js"/>
<script type="application/x-javascript" src="chrome://global/content/widgetStateManager.js"/>
<hbox class="box-header" id="header" title="&window.title.label;" description="&profileWizard.title;"/> <wizardpage id="explanation" onpageshow="enableNextButton();">
<hbox class="wizard-box" flex="1"> <description>&profileCreationExplanation_1.text;</description>
<html:iframe src="about:blank" style="width: 40em; height: 23em; overflow: auto;" name="content" id="content" flex="1"/> <description>&profileCreationExplanation_2.text;</description>
</hbox> <description>&profileCreationExplanation_3.text;</description>
<separator class="groove"/> <spacer flex="1"/>
<hbox id="wizardButtons"/> <description>&profileCreationExplanation_4.text;</description>
</wizardpage>
</window> <wizardpage id="createProfile" onpageshow="initSecondWizardPage();">
<description>&profileCreationIntro.text;</description>
<label accesskey="&profilePrompt.accesskey;" control="ProfileName">&profilePrompt.label;</label>
<textbox id="profileName" value="&profileDefaultName;"
oninput="checkCurrentInput(this.value);"/>
<separator/>
<description>&profileDirExplanation.text;</description>
<vbox class="indent" flex="1" style="overflow: auto;">
<description id="profileDisplay">*</description>
</vbox>
<hbox>
<button label="&button.choosefolder.label;" oncommand="chooseProfileFolder();"
accesskey="&button.choosefolder.accesskey;"/>
<button id="useDefault" label="&button.usedefault.label;"
oncommand="setDisplayToDefaultFolder(); updateProfileDisplay();"
accesskey="&button.usedefault.accesskey;" disabled="true"/>
<button label="&button.langSelection.label;" oncommand="showLangDialog();"
accesskey="&button.langSelection.accesskey;"/>
</hbox>
<separator/>
<description id="finishText">*</description>
<data id="profileLanguage"/>
<data id="profileRegion"/>
</wizardpage>
</wizard>

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

@ -33,8 +33,8 @@ var set = null;
// invoke the createProfile Wizard // invoke the createProfile Wizard
function CreateProfileWizard() function CreateProfileWizard()
{ {
// Need to call CreateNewProfile xuls window.openDialog('chrome://communicator/content/profile/createProfileWizard.xul',
window.openDialog('chrome://communicator/content/profile/createProfileWizard.xul', 'CPW', 'centerscreen,chrome,modal=yes,titlebar=yes'); '', 'centerscreen,chrome,modal,titlebar');
} }
// update the display to show the additional profile // update the display to show the additional profile
@ -74,7 +74,7 @@ function RenameProfile()
var errorMessage = gProfileManagerBundle.getString("sourceProfileDirMissing"); var errorMessage = gProfileManagerBundle.getString("sourceProfileDirMissing");
var profileDirMissingTitle = gProfileManagerBundle.getString("sourceProfileDirMissingTitle"); var profileDirMissingTitle = gProfileManagerBundle.getString("sourceProfileDirMissingTitle");
promptService.alert(window, profileDirMissingTitle, errorMessage); promptService.alert(window, profileDirMissingTitle, errorMessage);
return false; return false;
} }
} }
} }
@ -93,18 +93,16 @@ function RenameProfile()
var rv = promptService.prompt(window, dialogTitle, msg, newName, null, {value:0}); var rv = promptService.prompt(window, dialogTitle, msg, newName, null, {value:0});
if (rv) { if (rv) {
newName = newName.value; newName = newName.value;
if (!newName) return false;
var invalidChars = ["/", "\\", "*", ":"]; // User hasn't changed the profile name. Treat as if cancel was pressed.
for( var i = 0; i < invalidChars.length; i++ ) if (newName == oldName)
{ return false;
if( newName.indexOf( invalidChars[i] ) != -1 ) {
var aString = gProfileManagerBundle.getString("invalidCharA"); var errorMessage = checkProfileName(newName);
var bString = gProfileManagerBundle.getString("invalidCharB"); if (errorMessage) {
bString = bString.replace(/\s*<html:br\/>/g,"\n"); var profileNameInvalidTitle = gProfileManagerBundle.getString("profileNameInvalidTitle");
lString = aString + invalidChars[i] + bString; promptService.alert(window, profileNameInvalidTitle, errorMessage);
alert( lString ); return false;
return false;
}
} }
var migrate = selected.getAttribute("rowMigrate"); var migrate = selected.getAttribute("rowMigrate");

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

@ -54,6 +54,7 @@
<script type="application/x-javascript" src="chrome://communicator/content/profile/profileSelection.js"/> <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/profileManager.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/profile/createProfileWizard.js"/>
<keyset id="dialogKeys"/> <keyset id="dialogKeys"/>

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

@ -3,13 +3,7 @@ comm.jar:
content/communicator/profile/confirmMigration.xul (content/confirmMigration.xul) content/communicator/profile/confirmMigration.xul (content/confirmMigration.xul)
content/communicator/profile/createProfileWizard.js (content/createProfileWizard.js) content/communicator/profile/createProfileWizard.js (content/createProfileWizard.js)
content/communicator/profile/createProfileWizard.xul (content/createProfileWizard.xul) content/communicator/profile/createProfileWizard.xul (content/createProfileWizard.xul)
content/communicator/profile/deleteProfile.js (content/deleteProfile.js)
content/communicator/profile/deleteProfile.xul (content/deleteProfile.xul)
content/communicator/profile/migrateAllProfile.xul (content/migrateAllProfile.xul) content/communicator/profile/migrateAllProfile.xul (content/migrateAllProfile.xul)
content/communicator/profile/newProfile1_1.js (content/newProfile1_1.js)
content/communicator/profile/newProfile1_1.xul (content/newProfile1_1.xul)
content/communicator/profile/newProfile1_2.js (content/newProfile1_2.js)
content/communicator/profile/newProfile1_2.xul (content/newProfile1_2.xul)
content/communicator/profile/profileManager.js (content/profileManager.js) content/communicator/profile/profileManager.js (content/profileManager.js)
content/communicator/profile/profileSelection.js (content/profileSelection.js) content/communicator/profile/profileSelection.js (content/profileSelection.js)
content/communicator/profile/profileSelection.xul (content/profileSelection.xul) content/communicator/profile/profileSelection.xul (content/profileSelection.xul)
@ -19,13 +13,8 @@ comm.jar:
en-US.jar: en-US.jar:
locale/en-US/communicator/profile/confirmMigration.dtd (locale/en-US/confirmMigration.dtd) locale/en-US/communicator/profile/confirmMigration.dtd (locale/en-US/confirmMigration.dtd)
locale/en-US/communicator/profile/createProfileWizard.dtd (locale/en-US/createProfileWizard.dtd) locale/en-US/communicator/profile/createProfileWizard.dtd (locale/en-US/createProfileWizard.dtd)
locale/en-US/communicator/profile/createProfileWizard.properties (locale/en-US/createProfileWizard.properties)
locale/en-US/communicator/profile/migration.properties (locale/en-US/migration.properties) locale/en-US/communicator/profile/migration.properties (locale/en-US/migration.properties)
locale/en-US/communicator/profile/newProfile1_1.dtd (locale/en-US/newProfile1_1.dtd)
locale/en-US/communicator/profile/newProfile1_2.dtd (locale/en-US/newProfile1_2.dtd)
locale/en-US/communicator/profile/newProfile1_2.properties (locale/en-US/newProfile1_2.properties)
locale/en-US/communicator/profile/profileManager.properties (locale/en-US/profileManager.properties) locale/en-US/communicator/profile/profileManager.properties (locale/en-US/profileManager.properties)
locale/en-US/communicator/profile/profileManagerDelete.dtd (locale/en-US/profileManagerDelete.dtd)
locale/en-US/communicator/profile/profileManagerMigrateAll.dtd (locale/en-US/profileManagerMigrateAll.dtd) locale/en-US/communicator/profile/profileManagerMigrateAll.dtd (locale/en-US/profileManagerMigrateAll.dtd)
locale/en-US/communicator/profile/profileSelection.dtd (locale/en-US/profileSelection.dtd) locale/en-US/communicator/profile/profileSelection.dtd (locale/en-US/profileSelection.dtd)
locale/en-US/communicator/profile/selectLang.dtd (locale/en-US/selectLang.dtd) locale/en-US/communicator/profile/selectLang.dtd (locale/en-US/selectLang.dtd)

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

@ -1,11 +1,23 @@
<!-- extracted from cpw.xul -->
<!ENTITY profileWizard.title "Create Profile">
<!-- LOCALIZATION NOTE (window.title.label): Don't translate "&brandShortName" --> <!-- LOCALIZATION NOTE (window.title.label): Don't translate "&brandShortName" -->
<!ENTITY window.title.label "&brandShortName; Profile Manager"> <!ENTITY window.title.label "&brandShortName; Profile Manager">
<!ENTITY newprofile.title "Create Profile"> <!ENTITY newprofile.title "Create Profile Wizard">
<!ENTITY dialup.title "Dialup"> <!ENTITY window.size "width: 45em; height: 32em;">
<!ENTITY mailnews.title "Mail News">
<!ENTITY addrbook.title "Address Book">
<!-- First wizard page -->
<!ENTITY profileCreationExplanation_1.text "&brandShortName; stores information about your settings, preferences, bookmarks, and mail in your personal profile.">
<!ENTITY profileCreationExplanation_2.text "If you are sharing this copy of &brandShortName; with other users, you can use profiles to keep each user's information separate. To do this, each user should create his or her own profile.">
<!ENTITY profileCreationExplanation_3.text "If you are the only person using this copy of &brandShortName;, you must have at least one profile. If you would like, you can create multiple profiles for yourself to store different sets of settings and preferences. For example, you may want to have separate profiles for business and personal use.">
<!ENTITY profileCreationExplanation_4.text "To begin creating your profile, click Next.">
<!-- Second wizard page -->
<!ENTITY profileCreationIntro.text "If you create several profiles you can tell them apart by the profile names. You may use the name provided here or use one of your own.">
<!ENTITY profilePrompt.label "Enter new profile name:">
<!ENTITY profilePrompt.accesskey "E">
<!ENTITY profileDirExplanation.text "Your user settings, preferences, bookmarks and mail will be stored in:">
<!ENTITY profileDefaultName "Default User">
<!ENTITY button.choosefolder.label "Choose Folder...">
<!ENTITY button.choosefolder.accesskey "C">
<!ENTITY button.usedefault.label "Use Default Folder">
<!ENTITY button.usedefault.accesskey "U">
<!ENTITY button.langSelection.label "Region Selection...">
<!ENTITY button.langSelection.accesskey "R">

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

@ -10,6 +10,7 @@ migrateallprofilestitle=Migrate All Profiles
renameProfilePrompt=Rename the profile "%oldProfileName%" to: renameProfilePrompt=Rename the profile "%oldProfileName%" to:
renameprofiletitle=Rename Profile renameprofiletitle=Rename Profile
chooseFolder=Choose Profile Folder
deletetitle=Delete Profile 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/> 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? 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?
@ -31,11 +32,15 @@ exitButton=Exit
cancel=Cancel cancel=Cancel
invalidCharA=You cannot create or rename a profile to a name containing the character: " invalidChar=The character "%S" is not allowed in profile names. Please choose a different name.
invalidCharB="<html:br/><html:br/>Please choose a different name for the profile.
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. profileExists=A profile with this name already exists. Please choose another name.
profileExistsTitle=Profile Exists 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. 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. 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. profileSwitchFailed=%S cannot switch to profile "%S" automatically.<html:br/><html:br/>%S will now exit.<html:br/><html:br/>Please start %S again.

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

@ -32,10 +32,6 @@ window.dialog {
padding: 0; padding: 0;
} }
.dimmed-highcontrast {
color: #99cccc ! important;
}
#profiles > listitem { #profiles > listitem {
list-style-image: url("chrome://communicator/skin/profile/profileicon-large.gif"); list-style-image: url("chrome://communicator/skin/profile/profileicon-large.gif");
} }
@ -69,3 +65,7 @@ box#wizardButtons {
box.selection { box.selection {
margin-top: 4px; margin-top: 4px;
} }
description.error {
color: #FF0000;
}

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

@ -30,7 +30,6 @@ classic.jar:
skin/classic/global/toolbarbutton.css skin/classic/global/toolbarbutton.css
skin/classic/global/tree.css skin/classic/global/tree.css
skin/classic/global/wizard.css skin/classic/global/wizard.css
skin/classic/global/wizardOverlay.css
skin/classic/global/icons/alert-exclam.gif (icons/alert-exclam.gif) skin/classic/global/icons/alert-exclam.gif (icons/alert-exclam.gif)
skin/classic/global/icons/alert-error.gif (icons/alert-error.gif) skin/classic/global/icons/alert-error.gif (icons/alert-error.gif)
skin/classic/global/icons/alert-message.gif (icons/alert-message.gif) skin/classic/global/icons/alert-message.gif (icons/alert-message.gif)

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

@ -25,7 +25,6 @@ classic.jar:
skin/classic/global/toolbarbutton.css skin/classic/global/toolbarbutton.css
skin/classic/global/tree.css skin/classic/global/tree.css
skin/classic/global/wizard.css skin/classic/global/wizard.css
skin/classic/global/wizardOverlay.css
skin/classic/global/button.css skin/classic/global/button.css
skin/classic/global/menu.css skin/classic/global/menu.css
skin/classic/global/toolbar.css skin/classic/global/toolbar.css

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

@ -34,7 +34,6 @@ classic.jar:
skin/classic/communicator/directory/folder-open.gif (communicator/directory/folder-open.gif) skin/classic/communicator/directory/folder-open.gif (communicator/directory/folder-open.gif)
skin/classic/communicator/directory/file.gif (communicator/directory/file.gif) skin/classic/communicator/directory/file.gif (communicator/directory/file.gif)
skin/classic/communicator/profile/migrate.gif (communicator/profile/migrate.gif) skin/classic/communicator/profile/migrate.gif (communicator/profile/migrate.gif)
skin/classic/communicator/profile/newProfile1_2.css (communicator/profile/newProfile1_2.css)
skin/classic/communicator/profile/profile.css (communicator/profile/profile.css) skin/classic/communicator/profile/profile.css (communicator/profile/profile.css)
skin/classic/communicator/profile/profileManager.css (communicator/profile/profileManager.css) skin/classic/communicator/profile/profileManager.css (communicator/profile/profileManager.css)
skin/classic/communicator/profile/profileicon-large.gif (communicator/profile/profileicon-large.gif) skin/classic/communicator/profile/profileicon-large.gif (communicator/profile/profileicon-large.gif)

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

@ -26,7 +26,6 @@
======================================================================= */ ======================================================================= */
@import url("chrome://messenger/skin/"); @import url("chrome://messenger/skin/");
@import url("chrome://global/skin/wizardOverlay.css");
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

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

@ -70,3 +70,7 @@ box.selection {
#finishtext { #finishtext {
margin-top: -20px; margin-top: -20px;
} }
description.error {
color: #FF0000;
}

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

@ -46,7 +46,6 @@ modern.jar:
skin/modern/communicator/icons/search.gif (communicator/icons/search.gif) skin/modern/communicator/icons/search.gif (communicator/icons/search.gif)
skin/modern/communicator/profile/migrate.gif (communicator/profile/migrate.gif) skin/modern/communicator/profile/migrate.gif (communicator/profile/migrate.gif)
skin/modern/communicator/profile/profile.gif (communicator/profile/profile.gif) skin/modern/communicator/profile/profile.gif (communicator/profile/profile.gif)
skin/modern/communicator/profile/newProfile1_2.css (communicator/profile/newProfile1_2.css)
skin/modern/communicator/profile/profile.css (communicator/profile/profile.css) skin/modern/communicator/profile/profile.css (communicator/profile/profile.css)
skin/modern/communicator/related/sitemap.gif (communicator/related/sitemap.gif) skin/modern/communicator/related/sitemap.gif (communicator/related/sitemap.gif)
skin/modern/communicator/related/related.css (communicator/related/related.css) skin/modern/communicator/related/related.css (communicator/related/related.css)
@ -147,7 +146,6 @@ modern.jar:
skin/modern/global/toolbarbutton.css (global/toolbarbutton.css) skin/modern/global/toolbarbutton.css (global/toolbarbutton.css)
skin/modern/global/tree.css (global/tree.css) skin/modern/global/tree.css (global/tree.css)
skin/modern/global/wizard.css (global/wizard.css) skin/modern/global/wizard.css (global/wizard.css)
skin/modern/global/wizardOverlay.css (global/wizardOverlay.css)
skin/modern/global/autocomplete.css (global/autocomplete.css) skin/modern/global/autocomplete.css (global/autocomplete.css)
skin/modern/global/global.css (global/global.css) skin/modern/global/global.css (global/global.css)
skin/modern/global/popup.css (global/popup.css) skin/modern/global/popup.css (global/popup.css)

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

@ -40,7 +40,6 @@
======================================================================= */ ======================================================================= */
@import url("chrome://messenger/skin/"); @import url("chrome://messenger/skin/");
@import url("chrome://global/skin/wizardOverlay.css");
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

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

@ -24,10 +24,6 @@ toolkit.jar:
content/global/selectDialog.xul (resources/content/selectDialog.xul) content/global/selectDialog.xul (resources/content/selectDialog.xul)
content/global/nsWidgetStateManager.js (resources/content/nsWidgetStateManager.js) content/global/nsWidgetStateManager.js (resources/content/nsWidgetStateManager.js)
content/global/widgetStateManager.js (resources/content/widgetStateManager.js) content/global/widgetStateManager.js (resources/content/widgetStateManager.js)
content/global/wizardHandlerSet.js (resources/content/wizardHandlerSet.js)
content/global/wizardManager.js (resources/content/wizardManager.js)
content/global/wizardOverlay.js (resources/content/wizardOverlay.js)
content/global/wizardOverlay.xul (resources/content/wizardOverlay.xul)
content/global/nsTreeController.js (resources/content/nsTreeController.js) content/global/nsTreeController.js (resources/content/nsTreeController.js)
content/global/nsTreeSorting.js (resources/content/nsTreeSorting.js) content/global/nsTreeSorting.js (resources/content/nsTreeSorting.js)
content/global/nsClipboard.js (resources/content/nsClipboard.js) content/global/nsClipboard.js (resources/content/nsClipboard.js)
@ -88,8 +84,6 @@ en-US.jar:
locale/en-US/global/brand.dtd (resources/locale/en-US/brand.dtd) locale/en-US/global/brand.dtd (resources/locale/en-US/brand.dtd)
locale/en-US/global/tabbrowser.dtd (resources/locale/en-US/tabbrowser.dtd) locale/en-US/global/tabbrowser.dtd (resources/locale/en-US/tabbrowser.dtd)
locale/en-US/global/tabbrowser.properties (resources/locale/en-US/tabbrowser.properties) locale/en-US/global/tabbrowser.properties (resources/locale/en-US/tabbrowser.properties)
locale/en-US/global/wizardManager.properties (resources/locale/en-US/wizardManager.properties)
locale/en-US/global/wizardOverlay.dtd (resources/locale/en-US/wizardOverlay.dtd)
locale/en-US/global/keys.properties (resources/locale/en-US/keys.properties) locale/en-US/global/keys.properties (resources/locale/en-US/keys.properties)
locale/en-US/global/config.properties (resources/locale/en-US/config.properties) locale/en-US/global/config.properties (resources/locale/en-US/config.properties)
locale/en-US/global/config.dtd (resources/locale/en-US/config.dtd) locale/en-US/global/config.dtd (resources/locale/en-US/config.dtd)