- From: Mercurial notifier <nobody@w3.org>
- Date: Fri, 06 Aug 2010 02:17:45 +0000
- To: Unicorn Updates <www-validator-cvs@w3.org>
changeset: 1429:12b0b32da7cc
tag: tip
user: Thomas Gambet <tgambet@w3.org>
date: Thu Aug 05 22:09:42 2010 -0400
files: WebContent/WEB-INF/resources/templates/includes/footer.vm WebContent/scripts/w3c_unicorn_index.js WebContent/scripts/w3c_unicorn_results.js WebContent/style/base_ucn.css src/org/w3c/unicorn/Framework.java src/org/w3c/unicorn/action/IndexAction.java src/org/w3c/unicorn/action/ObserveAction.java
description:
~ dropdown menu for language selection instead of list
diff -r 77c330f4173e -r 12b0b32da7cc WebContent/WEB-INF/resources/templates/includes/footer.vm
--- a/WebContent/WEB-INF/resources/templates/includes/footer.vm Thu Aug 05 15:28:10 2010 +0200
+++ b/WebContent/WEB-INF/resources/templates/includes/footer.vm Thu Aug 05 22:09:42 2010 -0400
@@ -4,21 +4,30 @@
<li><a href="http://code.w3.org/unicorn/#Feedback" title="$feedback_title">$feedback</a></li>
<li><a href="${baseUri}translations" hreflang="en" title="$translations_title">$translations</a></li>
</ul>
- <ul id="lang_choice">
+ <form action="$!{language_action}" method="get" id="lang_choice">
+ <fieldset>
+#foreach( $key in $requestParameters.keySet() )
+ #if($key != 'ucn_lang')
+ <input type="hidden" name="$key" value="$requestParameters.get($key)"/>
+ #end
+#end
+ <select name="ucn_lang">
#foreach( $locale in $languages )
#if ($locale.getName() != "lolcat" && $locale.getName() != "l33t" && $locale.getName() != "buccaneer")
- <li>
- #set($localeName = $strUtils.capitalize($locale.getDisplayName($locale)))
- #if ($locale.getName() == $lang)
- $localeName
- #else
- #set($langKey = $strUtils.replace($locale.getName(), '_', '-'))
- <a href="${queryString}ucn_lang=$langKey" lang="$langKey" xml:lang="$langKey" hreflang="$langKey" rel="alternate">$localeName</a>
- #end
- </li>
+#set($localeName = $locale.getDisplayName($locale))
+#if ($locale.getName() == $lang)
+ <option value="$lang" selected="selected">$localeName</option>
+#else
+#set($langKey = $strUtils.replace($locale.getName(), '_', '-'))
+ <option value="$langKey">$localeName ($locale.getDisplayName($currentLocale))</option>
#end
#end
- </ul>
+#end
+ </select>
+ <input id="lang_change" type="submit" value="OK" />
+ </fieldset>
+ </form>
+
<div id="footer">
<p id="activity_logos">
<a href="http://www.w3.org/Status" title="$download_title">
diff -r 77c330f4173e -r 12b0b32da7cc WebContent/scripts/w3c_unicorn_index.js
--- a/WebContent/scripts/w3c_unicorn_index.js Thu Aug 05 15:28:10 2010 +0200
+++ b/WebContent/scripts/w3c_unicorn_index.js Thu Aug 05 22:09:42 2010 -0400
@@ -11,6 +11,8 @@
W3C.TaskOptions = W3C.TaskSelect.getChildren('option');
W3C.TaskDescrip = $('task_descrip');
W3C.TaskInputs = $$('input.task');
+
+ W3C.LanguagesForm = $('lang_choice');
W3C.LangParameter = $$('html').getProperty('lang')[0];
@@ -39,11 +41,16 @@
prepareDocument: function(){
$$('input#task_change').setStyle('display', 'none');
+ $$('input#lang_change').setStyle('display', 'none');
W3C.TaskSelect.addEvent('change', function (event) {
event.stop();
W3C.selectTask(this.selectedIndex, true);
W3C.updateHash();
+ });
+
+ W3C.LanguagesForm.addEvent('change', function(event) {
+ window.location = "./" + W3C.LanguagesForm.getProperty('action') + "?" + this.toQueryString() + window.location.hash;
});
W3C.TabLinks.each(function(link, i) {
@@ -73,12 +80,6 @@
}
});
- $$('ul#lang_choice').getElements('a').each(function (a) {
- a.addEvent('click', function(event) {
- this.setProperty('href', this.getProperty('href') + window.location.hash);
- });
- });
-
W3C.Forms.filter('form[method=get]').each(function (form) {
new FormValidator(form, {
onFormValidate: function(passed, form, event) {
@@ -100,7 +101,7 @@
}
});
});
-
+
},
addOptionEvents: function () {
diff -r 77c330f4173e -r 12b0b32da7cc WebContent/scripts/w3c_unicorn_results.js
--- a/WebContent/scripts/w3c_unicorn_results.js Thu Aug 05 15:28:10 2010 +0200
+++ b/WebContent/scripts/w3c_unicorn_results.js Thu Aug 05 22:09:42 2010 -0400
@@ -3,12 +3,18 @@
var W3C = {
start: function() {
-
+
W3C.cleanHash();
-
+
W3C.ContextsToShow = 7;
W3C.Observers = $$('.observer');
+
+ $$('input#lang_change').setStyle('display', 'none');
+ W3C.LanguagesForm = $('lang_choice');
+ W3C.LanguagesForm.addEvent('change', function(event) {
+ window.location = "./" + W3C.LanguagesForm.getProperty('action') + "?" + this.toQueryString() + window.location.hash;
+ });
var slideDuration = 500;
var invalidObservers = $$('.observer.invalid');
@@ -98,8 +104,8 @@
});
var mySmoothScroll = new Fx.SmoothScroll({
- links: '.smooth',
- wheelStops: true
+ links: '.smooth',
+ wheelStops: true
});
W3C.parseHash();
@@ -109,18 +115,18 @@
var re = new RegExp(/contextShow:'[^']*'/);
var m = re.exec(classes);
var s = "";
- for (i = 0; i < m.length; i++) {
- s = s + m[i];
- }
- var showString = s.replace('contextShow:', '').replace(/'/g, '');
-
- var re = new RegExp(/contextHide:'[^']*'/);
+ for (i = 0; i < m.length; i++) {
+ s = s + m[i];
+ }
+ var showString = s.replace('contextShow:', '').replace(/'/g, '');
+
+ var re = new RegExp(/contextHide:'[^']*'/);
var m = re.exec(classes);
var s = "";
- for (i = 0; i < m.length; i++) {
- s = s + m[i];
- }
- var hideString = s.replace('contextHide:', '').replace(/'/g, '');
+ for (i = 0; i < m.length; i++) {
+ s = s + m[i];
+ }
+ var hideString = s.replace('contextHide:', '').replace(/'/g, '');
$$('td.message').each(function (td) {
if (td.getProperty('rowspan') > W3C.ContextsToShow) {
@@ -180,7 +186,6 @@
}
});
-
}
tr = tr.getNext('tr');
@@ -197,23 +202,23 @@
toggle: function(section) {
var title = section.getElement('.title');
var slide = section.retrieve('fxSlide');
- if (section.retrieve('open')) {
- W3C.close(section, true);
- } else {
- W3C.open(section, true);
- }
+ if (section.retrieve('open')) {
+ W3C.close(section, true);
+ } else {
+ W3C.open(section, true);
+ }
},
close: function(section, withFx) {
var opened = section.retrieve('open');
var title = section.getElement('.title');
var slide = section.retrieve('fxSlide');
- title.removeClass('toggled');
- section.store('open', false);
+ title.removeClass('toggled');
+ section.store('open', false);
if (withFx && opened) {
slide.slideOut().chain(function(){
section.getElement('div').setStyle('display', 'none');
- slide.callChain();
+ slide.callChain();
});
} else {
slide.hide();
@@ -225,18 +230,18 @@
var closed = !section.retrieve('open');
var title = section.getElement('.title');
var slide = section.retrieve('fxSlide');
- title.addClass('toggled');
- section.store('open', true);
- section.getElement('div').setStyle('display', '');
- if (withFx && closed) {
- slide.slideIn().chain(function(){
- section.getElement('div').setStyle('height', 'auto');
- slide.callChain();
+ title.addClass('toggled');
+ section.store('open', true);
+ section.getElement('div').setStyle('display', '');
+ if (withFx && closed) {
+ slide.slideIn().chain(function(){
+ section.getElement('div').setStyle('height', 'auto');
+ slide.callChain();
});
} else {
- slide.show();
- section.getElement('div').setStyle('height', 'auto');
- }
+ slide.show();
+ section.getElement('div').setStyle('height', 'auto');
+ }
},
closeAllObserversBut: function(observer, withFx) {
diff -r 77c330f4173e -r 12b0b32da7cc WebContent/style/base_ucn.css
--- a/WebContent/style/base_ucn.css Thu Aug 05 15:28:10 2010 +0200
+++ b/WebContent/style/base_ucn.css Thu Aug 05 22:09:42 2010 -0400
@@ -202,19 +202,15 @@
text-decoration:underline;
}
#lang_choice {
- margin-right:3em;
- min-width:40em;
- padding:0.5em 0;
+ margin-right:2em;
position:absolute;
right:0;
top:0;
- text-align:right;
+ height:1em;
+}
+#lang_choice select {
font-size:0.7em;
- line-height:100%;
-}
-#lang_choice li {
- display:inline;
- padding-left:0.5em;
+ height:2em;
}
#menu {
text-align:center;
diff -r 77c330f4173e -r 12b0b32da7cc src/org/w3c/unicorn/Framework.java
--- a/src/org/w3c/unicorn/Framework.java Thu Aug 05 15:28:10 2010 +0200
+++ b/src/org/w3c/unicorn/Framework.java Thu Aug 05 22:09:42 2010 -0400
@@ -558,6 +558,7 @@
context.put("param_prefix", Property.get("UNICORN_PARAMETER_PREFIX"));
context.put("languages", Language.getUiLocales());
context.put("lang", locale.getName());
+ context.put("currentLocale", locale);
context.put("direction", Language.getLocaleDirection(locale));
context.put("defaultLocale", Language.getDefaultLocale());
context.put("year", (new SimpleDateFormat("yyyy")).format(new Date()));
diff -r 77c330f4173e -r 12b0b32da7cc src/org/w3c/unicorn/action/IndexAction.java
--- a/src/org/w3c/unicorn/action/IndexAction.java Thu Aug 05 15:28:10 2010 +0200
+++ b/src/org/w3c/unicorn/action/IndexAction.java Thu Aug 05 22:09:42 2010 -0400
@@ -54,6 +54,7 @@
velocityContext.put("current_task", Framework.mapOfTask.get(task));
velocityContext.put("default_task", Framework.mapOfTask.getDefaultTask());
velocityContext.put("baseUri", "./");
+ velocityContext.put("language_action", "./");
Enumeration<?> paramEnum = req.getParameterNames();
while (paramEnum.hasMoreElements()) {
diff -r 77c330f4173e -r 12b0b32da7cc src/org/w3c/unicorn/action/ObserveAction.java
--- a/src/org/w3c/unicorn/action/ObserveAction.java Thu Aug 05 15:28:10 2010 +0200
+++ b/src/org/w3c/unicorn/action/ObserveAction.java Thu Aug 05 22:09:42 2010 -0400
@@ -107,6 +107,7 @@
mapOfStringObject.put("messages", messages);
mapOfStringObject.put("unicorncall", aUnicornCall);
mapOfStringObject.put("baseUri", "./");
+ mapOfStringObject.put("language_action", "./");
// Retrieve the parameters from the request
Map<String, Object> reqParams;
@@ -119,6 +120,8 @@
aOutputModule.produceError(mapOfStringObject, resp.getWriter());
return;
}
+
+ mapOfStringObject.put("requestParameters", reqParams);
// Process the parameters
for (String key : reqParams.keySet()) {
@@ -175,6 +178,7 @@
else
uriParam = req.getHeader("Referer");
}
+ mapOfStringObject.put("language_action", "check");
logger.trace("Uri parameter: " + key + " - " + uriParam);
aUnicornCall.setInputParameter(new URIInputParameter(uriParam));
} else if (paramName.equals("text")) {
Received on Friday, 6 August 2010 02:17:47 UTC