Changeset 239:559ff2f3434c

Show
Ignore:
Timestamp:
09/01/09 13:39:41 (4 years ago)
Author:
tgambet
Branch:
default
convert_revision:
svn:cdcfb263-7567-472c-a848-e2c2df3466e7/trunk@240
Message:

added languages merging
+ messages on index

Files:
1 added
7 modified

Legend:

Unmodified
Added
Removed
  • WebContent/WEB-INF/resources/templates/includes/head.vm

    r223 r239  
    44<head> 
    55        <title>$noEscape_title</title> 
     6        <link rel="shortcut icon" href="http://www.w3.org/2008/site/images/favicon.ico" type="image/x-icon" /> 
    67        <link rev="start" href="./" title="Home Page" /> 
    78#foreach( $sheet in $css ) 
     
    1314         
    1415        <link rev="made" href="mailto:www-validator@w3.org" /> 
    15         <link rel="shortcut icon" href="http://www.w3.org/2008/site/images/favicon.ico" type="image/x-icon" /> 
    1616        <link rev="start" href="./" title="Home Page" /> 
    1717</head> 
  • WebContent/WEB-INF/resources/templates/includes/macros_index.vm

    r214 r239  
     1#macro(displayMessages $messages) 
     2<div id="messages"> 
     3#foreach ($message in $messages) 
     4        #if ($message.Level == "ERROR") 
     5        <div class="error"> 
     6                <h4>$message.Message</h4> 
     7                #if ($message.Content) 
     8                <pre>$message.Content</pre> 
     9                #end 
     10        </div> 
     11        #end 
     12#end 
     13#foreach ($message in $messages) 
     14        #if ($message.Level == "WARNING") 
     15        <div class="warning"> 
     16                <h4>$message.Message</h4> 
     17                #if ($message.Content) 
     18                <pre>$message.Content</pre> 
     19                #end 
     20        </div> 
     21        #end 
     22#end 
     23#foreach ($message in $messages) 
     24        #if ($message.Level == "INFO") 
     25        <div class="info"> 
     26                <h4>$message.Message</h4> 
     27                #if ($message.Content) 
     28                <pre>$message.Content</pre> 
     29                #end 
     30        </div> 
     31        #end 
     32#end 
     33</div> 
     34 
     35 
     36#end 
     37 
     38#macro(createParameter $param) 
     39#set($type = $param.getType()) 
     40#if($type == "CHECKBOX") 
     41#createCheckbox($param) 
     42#elseif($type == "CHECKBOXLIST") 
     43#createCheckboxList($param) 
     44#elseif($type == "DROPDOWN") 
     45#createDropdown($param, false) 
     46#elseif($type == "DROPDOWNLIST") 
     47#createDropdown($param, true) 
     48#elseif($type == "RADIO") 
     49#createRadio($param, true) 
     50#elseif($type == "TEXTAREA") 
     51#createTextarea($param, true) 
     52#elseif($type == "TEXTFIELD") 
     53#createTextfield($param, true) 
     54#end 
     55#end 
     56 
    157#macro(createCheckbox $param) 
    258#set($defaults = $param.getMapOfDefaultValue()) 
     
    55111#end 
    56112 
    57 #macro(createParameter $param) 
    58 #set($type = $param.getType()) 
    59 #if($type == "CHECKBOX") 
    60 #createCheckbox($param) 
    61 #elseif($type == "CHECKBOXLIST") 
    62 #createCheckboxList($param) 
    63 #elseif($type == "DROPDOWN") 
    64 #createDropdown($param, false) 
    65 #elseif($type == "DROPDOWNLIST") 
    66 #createDropdown($param, true) 
    67 #elseif($type == "RADIO") 
    68 #createRadio($param, true) 
    69 #elseif($type == "TEXTAREA") 
    70 #createTextarea($param, true) 
    71 #elseif($type == "TEXTFIELD") 
    72 #createTextfield($param, true) 
    73 #end 
    74 #end 
  • WebContent/WEB-INF/resources/templates/index.vm

    r234 r239  
    1212#end 
    1313 
    14 #if ($message) 
    15         <div id="messages"> 
    16                 <div class="error"> 
    17                         <h4>$message.Message</h4> 
    18                         #if ($message.Content) 
    19                         <pre>$message.Content</pre> 
    20                         #end 
    21                 </div> 
    22         </div> 
     14#if ($messages) 
     15#displayMessages($messages) 
    2316#end 
    2417        <div id="frontforms"> 
     
    9386                                                </p>  
    9487                                        </div> 
    95 #parse( 'parameters.vm' ) 
     88#parse('parameters.vm') 
    9689#submit_button 
    9790                                </fieldset> 
  • WebContent/scripts/w3c_unicorn_index.js

    r235 r239  
    3131                W3C.addOptionEvents(); 
    3232                 
    33                 console.log(W3C.isUrl("http://www.w3.org")); 
     33                /*console.log(W3C.isUrl("http://www.w3.org")); 
    3434                console.log(W3C.isUrl("http://jigsaw.w3.org/css-validator/validator?uri=www.w3.org&profile=css3&usermedium=all&warning=1&lang=fr&output=ucn")); 
    3535                console.log(W3C.isUrl("http://localhost:8080/unicorn_dev/#validate-by-uri+task_full-css+with_options")); 
    3636                console.log(W3C.isUrl("http://www.%w3.org/TR/CSS21/colors.html#propdef-color")); 
    3737                console.log(W3C.isUrl("/w3.org")); 
    38                 console.log(W3C.isUrl("www.w3.org")); 
     38                console.log(W3C.isUrl("www.w3.org"));*/ 
    3939        }, 
    4040         
     
    6565                }); 
    6666                 
    67                 $$('div.error pre').slide('hide'); 
    68                  
    69                 $$('div.error').each(function(error) { 
    70                         error.addClass('pointer'); 
    71                         error.addEvent('click', function(event) { 
    72                                 error.getElement('pre').slide('toggle'); 
    73                         }); 
     67                $$('div#messages pre').slide('hide'); 
     68                 
     69                $$('div#messages div').each(function(message) { 
     70                        //if (message.getElement('pre')) { 
     71                        if (message.getElement('pre')) { 
     72                                console.log(message); 
     73                                console.log(message.getElement('pre')); 
     74                                message.addClass('pointer'); 
     75                                message.addEvent('click', function(event) { 
     76                                        console.log("Mess: " + message); 
     77                                        console.log("Pre: " + message.getElement('pre')); 
     78                                        message.getElement('pre').slide('toggle'); 
     79                                         
     80                                }); 
     81                        } 
    7482                }); 
    7583                 
  • src/org/w3c/unicorn/Framework.java

    r231 r239  
    1 // $Id: Framework.java,v 1.5 2009-08-31 12:00:31 tgambet Exp $ 
     1// $Id: Framework.java,v 1.6 2009-09-01 13:39:41 tgambet Exp $ 
    22// Author: Damien LEROY. 
    33// (c) COPYRIGHT MIT, ERCIM ant Keio, 2006. 
     
    3636import org.w3c.unicorn.exceptions.InitializationFailedException; 
    3737import org.w3c.unicorn.exceptions.UnknownParserException; 
    38 import org.w3c.unicorn.language.Language; 
    3938import org.w3c.unicorn.response.parser.ResponseParser; 
    4039import org.w3c.unicorn.tasklist.RDFUnmarshaller; 
     
    4443import org.w3c.unicorn.tasklist.Tasklist; 
    4544import org.w3c.unicorn.tasklist.TasksListUnmarshaller; 
     45import org.w3c.unicorn.util.Language; 
    4646import org.w3c.unicorn.util.ListFiles; 
    4747import org.w3c.unicorn.util.Property; 
     
    421421                 
    422422                File defaultLanguageFile = new File(Property.get("PATH_TO_LANGUAGE_FILES", "DEFAULT_LANGUAGE") + ".properties"); 
    423                 if (!defaultLanguageFile.exists()) { 
    424                         throw new InitializationFailedException("Default language file does not exists: " + Property.get("PATH_TO_LANGUAGE_FILES", "DEFAULT_LANGUAGE") + ".properties"); 
    425                 } 
    426                  
    427                 File[] languageFiles = ListFiles.listFiles(Property 
    428                                 .get("PATH_TO_LANGUAGE_FILES"), "\\.properties$"); 
     423                Properties defaultProps = new Properties(); 
     424                 
     425                try { 
     426                        defaultProps = Language.load(defaultLanguageFile); 
     427                        logger.debug("> Found language (default): " + defaultProps.getProperty("lang") + " - " + defaultProps.getProperty("language")); 
     428                        defaultProps.put("complete", "true"); 
     429                        languageProperties.put(Property.get("DEFAULT_LANGUAGE"), defaultProps); 
     430                } catch (IllegalArgumentException e) { 
     431                        logger.warn(e.getMessage()); 
     432                } catch (FileNotFoundException e) { 
     433                        throw new InitializationFailedException("Default language file does not exists: " + defaultLanguageFile.getPath()); 
     434                } catch (IOException e) { 
     435                        throw new InitializationFailedException("Unable to read default language file. " + defaultLanguageFile.getPath()); 
     436                } 
     437                 
     438                 
     439                File[] languageFiles = ListFiles.listFiles(Property.get("PATH_TO_LANGUAGE_FILES"), "\\.properties$"); 
    429440                 
    430441                for (File langFile : languageFiles) { 
     442                        if (langFile.equals(defaultLanguageFile)) 
     443                                continue; 
     444                         
     445                        try { 
     446                                Properties props = Language.load(langFile); 
     447                                logger.debug("> Found language: " + props.getProperty("lang") + " - " + props.getProperty("language")); 
     448                                Language.complete(props, defaultProps); 
     449                                languageProperties.put(props.getProperty("lang"), props); 
     450                        } catch (IllegalArgumentException e) { 
     451                                logger.warn(e.getMessage()); 
     452                        } catch (FileNotFoundException e) { 
     453                                // Should not happen 
     454                                logger.error(e.getMessage(), e); 
     455                        } catch (IOException e) { 
     456                                logger.error("Unable to read language file. " + langFile + ". This file will be skiped."); 
     457                        } 
     458                         
     459                } 
     460                 
     461                /*for (File langFile : languageFiles) { 
     462                        if (langFile == defaultLanguageFile) 
     463                                continue; 
     464 
    431465                        String localeString = langFile.getName().split("\\.")[0]; 
    432466                        if (!Language.isISOLanguageCode(localeString)) 
     
    440474                                        props.load(isr); 
    441475                                        props.put("lang", localeString); 
    442                                         props.put("tasklist", mapOfTask); 
     476                                        //props.put("tasklist", mapOfTask); 
     477                                        //Language.complete(props); 
    443478                                        languageProperties.put(localeString, props); 
    444479                                        String s; 
     
    464499                                } 
    465500                        } 
    466                 } 
     501                }*/ 
     502                 
    467503                if (languageProperties.size() == 0) { 
    468504                        throw new InitializationFailedException("No language have been loaded. Check language files in: " + Property.get("PATH_TO_LANGUAGE_FILES")); 
  • src/org/w3c/unicorn/action/IndexAction.java

    r234 r239  
    22 
    33import java.io.IOException; 
     4import java.util.ArrayList; 
    45 
    56import javax.servlet.ServletException; 
     
    910import org.apache.velocity.VelocityContext; 
    1011import org.w3c.unicorn.Framework; 
    11 import org.w3c.unicorn.language.Language; 
     12import org.w3c.unicorn.util.Language; 
    1213import org.w3c.unicorn.util.Message; 
    1314import org.w3c.unicorn.util.Property; 
     
    4243                velocityContext = new VelocityContext(Language.getContext(langParameter)); 
    4344                 
     45                ArrayList<Message> messages = new ArrayList<Message>(); 
     46                 
     47                /*messages.add(new Message(Message.Level.WARNING, "un warning", null)); 
     48                messages.add(new Message(Message.Level.ERROR, "une error", null)); 
     49                messages.add(new Message(Message.Level.INFO, "une info", null)); 
     50                messages.add(new Message(Message.Level.WARNING, "un warning avec long message", "le long message\nle long message\nle long message\nle long message\nle long message\nle long message\n")); 
     51                messages.add(new Message(Message.Level.ERROR, "une error avec long message",  "le long message\nle long message\nle long message\nle long message\nle long message\nle long message\n")); 
     52                messages.add(new Message(Message.Level.INFO, "une info avec long message",  "le long message\nle long message\nle long message\nle long message\nle long message\nle long message\nle long message\n"));*/ 
     53                 
     54                if (!Language.isComplete(langParameter)) { 
     55                        Message mess = new Message(Message.Level.INFO, "incomplete language", null); 
     56                        messages.add(mess); 
     57                        //velocityContext.put("message", mess); 
     58                } 
     59                 
     60                if (req.getAttribute("unicorn_message") != null) 
     61                        //velocityContext.put("message", req.getAttribute("unicorn_message")); 
     62                        messages.add((Message) req.getAttribute("unicorn_message")); 
     63                 
     64                velocityContext.put("messages", messages); 
     65                 
    4466                String taskParameter = req.getParameter(Property.get("UNICORN_PARAMETER_PREFIX") + "task"); 
    4567                if (taskParameter == null || !Framework.mapOfTask.containsKey(taskParameter)) 
     
    4870                velocityContext.put("current_task", Framework.mapOfTask.get(taskParameter)); 
    4971                 
    50                 if (req.getAttribute("unicorn_message") != null) 
    51                         //System.out.println("TOM: " + ((Message) req.getAttribute("unicorn_message")).getMessage()); 
    52                         velocityContext.put("message", req.getAttribute("unicorn_message")); 
     72                 
    5373                 
    5474                if (req.getHeader("X-Requested-With") != null && req.getHeader("X-Requested-With").equals("XMLHttpRequest")) { 
  • src/org/w3c/unicorn/output/XMLOutputFormater.java

    r223 r239  
    1 // $Id: XMLOutputFormater.java,v 1.3 2009-08-28 16:11:41 jean-gui Exp $ 
     1// $Id: XMLOutputFormater.java,v 1.4 2009-09-01 13:39:41 tgambet Exp $ 
    22// Author: Damien LEROY. 
    33// (c) COPYRIGHT MIT, ERCIM ant Keio, 2006. 
     
    3535         * Apache velocity context 
    3636         */ 
    37         private static VelocityContext aVelocityContext; 
     37        private VelocityContext aVelocityContext; 
    3838         
    3939        private String sOutputFormat;