From 42dd6a1f6f1b9062b3c66a755857ec364524ee54 Mon Sep 17 00:00:00 2001 From: "loadrunner%betak.net" Date: Tue, 6 Aug 2002 19:27:20 +0000 Subject: [PATCH] b101869, [ProfileCreation]CA region should not be the default setting in Preferred Content dropdown menu. r=tao, sr=alecf --- profile/resources/content/selectLang.js | 141 ++++++++++++++++++++---- 1 file changed, 118 insertions(+), 23 deletions(-) diff --git a/profile/resources/content/selectLang.js b/profile/resources/content/selectLang.js index c3a33cdb6e4..e372e766980 100644 --- a/profile/resources/content/selectLang.js +++ b/profile/resources/content/selectLang.js @@ -1,45 +1,140 @@ -function Startup() +/* ***** 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 Netscape are + * Copyright (C) 1998-1999 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): Ben Goodger (ben@netscape.com) + * Joe Hewitt (hewitt@netscape.com) + * Blake Ross (blaker@netscape.com) + * Stephen Walker (walk84@usa.net) + * J.Betak (jbetak@netscape.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 ***** */ + + +function SelectListItem(listRef, itemValue) { - var selectedLanguage = window.arguments.length ? window.arguments[0] : null; - var listbox = document.getElementById("langList"); - if (selectedLanguage) { - var elements = listbox.getElementsByAttribute("value", selectedLanguage); - if (elements.length) - listbox.selectItem(elements[0]); - } - else { - listbox.selectedIndex = 0; + + try { + + var selectedItem; + + if (itemValue) { + var elements = listRef.getElementsByAttribute("value", itemValue); + selectedItem = elements.length ? elements[0] : null; + } + + if (selectedItem) + { + listRef.selectedItem = selectedItem; + return true; + } + else + return false; + } + + catch(e) + { + return false; } - var selectedRegion = window.arguments.length ? window.arguments[1] : null; - var list = document.getElementById("regionList"); - if (selectedRegion) { - elements = list.getElementsByAttribute("value", selectedRegion); - if (elements.length) - list.selectedItem = elements[0]; - } else { - list.selectedIndex = 1; - } } + +function Startup() +{ + + var prefInterface; + + var defaultLanguage; + var languageList = document.getElementById("langList"); + var selectedLanguage = window.arguments.length ? window.arguments[0] : null; + + var defaultRegion; + var regionList = document.getElementById("regionList"); + var selectedRegion = window.arguments.length ? window.arguments[1] : null; + + //get pref defaults + try + { + prefInterface = Components.classes["@mozilla.org/preferences;1"]. + getService(Components.interfaces.nsIPref); + + defaultLanguage = prefInterface. + getLocalizedUnicharPref("general.useragent.locale"); + + defaultRegion = prefInterface. + getLocalizedUnicharPref("general.useragent.contentlocale"); + } + + catch(e) + {} + + //persist previous user selection, highlight a default otherwise + if (!SelectListItem(languageList, selectedLanguage)) + if (!SelectListItem(languageList, defaultLanguage)) + languageList.selectedIndex = 0; + + + //persist previous user selection, highlight a default otherwise + if (!SelectListItem(regionList, selectedRegion)) + if (!SelectListItem(regionList, defaultRegion)) + regionList.selectedIndex = 1; + +} + + function onAccept() { //cache language on the parent window - var tree = document.getElementById("langList"); - var selectedItem = tree.selectedItems.length ? tree.selectedItems[0] : null; + var languageList = document.getElementById("langList"); + var selectedItem = languageList.selectedItems.length ? languageList.selectedItems[0] : null; + if (selectedItem) { var langName = selectedItem.getAttribute("value"); var langStore = opener.document.getElementById("ProfileLanguage"); + if (langStore) langStore.setAttribute("data", langName); } //cache region on the parent window - var list = document.getElementById("regionList"); - selectedItem = list.selectedItem; + var regionList = document.getElementById("regionList"); + selectedItem = regionList.selectedItem; + if (selectedItem) { var regionName = selectedItem.getAttribute("value"); var regionStore = opener.document.getElementById("ProfileRegion"); + if (regionStore) regionStore.setAttribute("data", regionName); }