Externalize properties
authorymh <ymh.work@gmail.com>
Fri, 15 Mar 2013 23:19:50 +0100
changeset 87 6c810f746837
parent 86 0fe9045d25b7
child 88 6067b3960608
Externalize properties
server/pom.xml
server/src/main/webapp/WEB-INF/applicationContext.xml
server/src/main/webapp/WEB-INF/i18n/messages_en.properties
server/src/main/webapp/WEB-INF/i18n/messages_fr.properties
server/src/main/webapp/WEB-INF/mongo-config.xml
server/src/main/webapp/WEB-INF/renkan.properties
server/src/main/webapp/WEB-INF/templates/projectIndex.html
server/src/main/webapp/WEB-INF/templates/renkanIndex.html
server/src/main/webapp/static/css/index.css
--- a/server/pom.xml	Fri Mar 15 17:11:44 2013 +0100
+++ b/server/pom.xml	Fri Mar 15 23:19:50 2013 +0100
@@ -14,7 +14,7 @@
         <jersey-version>1.17</jersey-version>
         <spring-version>3.2.1.RELEASE</spring-version>
         <spring-security-version>3.1.3.RELEASE</spring-security-version>
-        <jetty-version>8.1.9.v20130131</jetty-version>
+        <jetty-version>8.1.10.v20130312</jetty-version>
         <junit-version>4.10</junit-version>
         <thymeleaf-version>2.0.16</thymeleaf-version>
         <cometd-version>2.5.1</cometd-version>
--- a/server/src/main/webapp/WEB-INF/applicationContext.xml	Fri Mar 15 17:11:44 2013 +0100
+++ b/server/src/main/webapp/WEB-INF/applicationContext.xml	Fri Mar 15 23:19:50 2013 +0100
@@ -9,6 +9,8 @@
 	
 	<!-- Activates various annotations to be detected in bean classes -->
 	<context:annotation-config />
+	<context:property-placeholder  order="1000" ignore-unresolvable="true" ignore-resource-not-found="false" location="WEB-INF/renkan.properties"/>
+	<context:property-placeholder  order="1" ignore-unresolvable="true" ignore-resource-not-found="true" location="classpath:renkan_run.properties"/>
 	
 	<!-- Configures the annotation-driven Spring MVC Controller programming model.
 	Note that, with Spring 3.0, this tag works in Servlet MVC only!  -->
--- a/server/src/main/webapp/WEB-INF/i18n/messages_en.properties	Fri Mar 15 17:11:44 2013 +0100
+++ b/server/src/main/webapp/WEB-INF/i18n/messages_en.properties	Fri Mar 15 23:19:50 2013 +0100
@@ -1,23 +1,21 @@
 
 date.format = yyyy/MM/dd HH:mm
 
-renkanIndex.new_renkan = New Renkan
-renkanIndex.new_space = New Space
-renkanIndex.renkan_exp = or create/open a Renkan with the title
-renkanIndex.project_list = Project list
+renkanIndex.renkan_exp = Create a Renkan
+renkanIndex.project_list = Renkan list
 renkanIndex.project_name = Name
 renkanIndex.project_creation = Creation
 renkanIndex.project_edit = Edit
 renkanIndex.project_copy = Copy
 renkanIndex.project_delete = Delete
 renkanIndex.project_render = View
-renkanIndex.project_edit_link = Edit project
-renkanIndex.project_copy_link = Copy project
-renkanIndex.project_delete_link = Delete project
-renkanIndex.project_render_link = View project
-renkanIndex.project_delete_confirm = Delete project "<%= title %>" ?
+renkanIndex.project_edit_link = Edit renkan
+renkanIndex.project_copy_link = Copy renkan
+renkanIndex.project_delete_link = Delete renkan
+renkanIndex.project_render_link = View renkan
+renkanIndex.project_delete_confirm = Delete renkan "<%= title %>" ?
 
-renkanIndex.space_exp = or create/open a space with the title
+renkanIndex.space_exp = Create a space
 renkanIndex.renkan_spaces = Renkan Spaces
 renkanIndex.renkan_space = Renkan Space
 renkanIndex.space_list = Space list
@@ -26,7 +24,7 @@
 renkanIndex.space_creation = Creation date
 renkanIndex.space_open = Open
 renkanIndex.space_open_link = Open space
-renkanIndex.space_proj_count = Proj. count
+renkanIndex.space_proj_count = Renkan count
 
 
 renkanIndex.js.empty_name_error = Please enter a title
\ No newline at end of file
--- a/server/src/main/webapp/WEB-INF/i18n/messages_fr.properties	Fri Mar 15 17:11:44 2013 +0100
+++ b/server/src/main/webapp/WEB-INF/i18n/messages_fr.properties	Fri Mar 15 23:19:50 2013 +0100
@@ -1,9 +1,7 @@
 
 date.format = dd/MM/yyyy HH:mm
 
-renkanIndex.new_renkan = Nouveau&nbsp;Renkan
-renkanIndex.new_space = Nouvel Espace
-renkanIndex.renkan_exp = ou bien créer un Renkan avec le titre
+renkanIndex.renkan_exp = Créer un Renkan
 
 renkanIndex.project_list = Liste des projets
 renkanIndex.project_title = Titre
@@ -12,13 +10,13 @@
 renkanIndex.project_copy = Copier
 renkanIndex.project_delete = Eff.
 renkanIndex.project_render = Consult.
-renkanIndex.project_edit_link = Editer proj.
-renkanIndex.project_copy_link = Copier proj.
-renkanIndex.project_delete_link = Eff. proj.
-renkanIndex.project_render_link = Consult. proj.
-renkanIndex.project_delete_confirm = Voulez-vous effacer le projet "<%= title %>" ?
+renkanIndex.project_edit_link = Editer renkan
+renkanIndex.project_copy_link = Copier renkan
+renkanIndex.project_delete_link = Eff. renkan
+renkanIndex.project_render_link = Consult. renkan
+renkanIndex.project_delete_confirm = Voulez-vous effacer le renkan "<%= title %>" ?
 
-renkanIndex.space_exp = ou bien créer un espace avec le titre
+renkanIndex.space_exp = Créer un espace
 renkanIndex.renkan_spaces = Espaces Renkan
 renkanIndex.renkan_space = Espace Renkan
 renkanIndex.space_list = Liste des espaces
--- a/server/src/main/webapp/WEB-INF/mongo-config.xml	Fri Mar 15 17:11:44 2013 +0100
+++ b/server/src/main/webapp/WEB-INF/mongo-config.xml	Fri Mar 15 23:19:50 2013 +0100
@@ -14,13 +14,16 @@
     		http://www.springframework.org/schema/data/mongo/spring-mongo-1.2.xsd
             http://www.springframework.org/schema/data/jpa
             http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd">	
+	
+	<context:property-placeholder order="1000" ignore-unresolvable="true" ignore-resource-not-found="false" location="WEB-INF/renkan.properties"/>
+	<context:property-placeholder  order="1" ignore-unresolvable="true" ignore-resource-not-found="true" location="classpath:renkan_run.properties"/>
 	<!-- Default bean name is 'mongo' -->
-	<mongo:mongo host="localhost" port="27017"/>
+	<mongo:mongo host="${mongodb.host.name}" port="${mongodb.host.port}" />
 		
 	<!-- Offers convenience methods and automatic mapping between MongoDB JSON documents and your domain classes. -->
   	<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
   	    <constructor-arg ref="mongo"/>
-  		<constructor-arg value="renkan"/>
+  		<constructor-arg value="${mongodb.db.name}"/>
   		<property name="writeResultChecking" value="EXCEPTION"/>
   	</bean>
   	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/main/webapp/WEB-INF/renkan.properties	Fri Mar 15 23:19:50 2013 +0100
@@ -0,0 +1,5 @@
+mongodb.host.name = localhost
+mongodb.host.port = 27017
+mongodb.db.name = renkan
+
+renkan.pagination.size = 10
\ No newline at end of file
--- a/server/src/main/webapp/WEB-INF/templates/projectIndex.html	Fri Mar 15 17:11:44 2013 +0100
+++ b/server/src/main/webapp/WEB-INF/templates/projectIndex.html	Fri Mar 15 23:19:50 2013 +0100
@@ -18,15 +18,28 @@
         <div id="wrapper">
         	<h1><span th:text="#{renkanIndex.renkan_space}">Renkan Space</span>: <span th:text="${space.title}">Titre</span></h1>
             <div id="inner">
-                <div id="button" onclick="go2Random()" class="translate" th:utext="#{renkanIndex.new_renkan}">New Renkan</div>
-                <div id="label" class="translate" th:text="#{renkanIndex.renkan_exp}">Create a Renkan with the title</div> 
+                <div id="label" class="translate" th:text="#{renkanIndex.renkan_exp}">Create a Renkan</div> 
                 <form action="#" onsubmit="go2Title();return false;"> 
                     <input type="text" id="renkantitle" autofocus="autofocus" x-webkit-speech="x-webkit-speech"/> 
                     <button type="submit">OK</button>
                 </form>
             </div>
             <h2 th:text="#{renkanIndex.project_list}">Project list</h2>
-            <div th:include="fragment/paginationFragment :: paginationFragment"></div>
+            <div th:include="fragment/paginationFragment :: paginationFragment" class="pagination-container">
+                <div>               
+                    <a href="#?p.page=1">&lt;&lt;</a>                    
+                    <a href="#?p.page=3">&lt;</a>
+                    <span>...</span>
+                    <a href="#?p.page=2">2</a>
+                    <a href="#?p.page=3">3</a>
+                    <span>4</span>
+                    <a href="#?p.page=5">5</a>
+                    <a href="#?p.page=6">6</a>
+                    <span>...</span>
+                    <a href="#?p.page=5">&gt;</a>
+                    <a href="#?p.page=7">&gt;&gt;</a> 
+                </div>
+            </div>
             <table>
               <thead>
                 <tr>
--- a/server/src/main/webapp/WEB-INF/templates/renkanIndex.html	Fri Mar 15 17:11:44 2013 +0100
+++ b/server/src/main/webapp/WEB-INF/templates/renkanIndex.html	Fri Mar 15 23:19:50 2013 +0100
@@ -18,15 +18,28 @@
         <div id="wrapper">
         	<h1 th:text="#{renkanIndex.renkan_spaces}">Renkan Spaces</h1>
             <div id="inner">
-                <div id="button" onclick="go2Random()" class="translate" th:utext="#{renkanIndex.new_space}">New Space</div>
-                <div id="label" class="translate" th:text="#{renkanIndex.space_exp}">Create a Space with the title</div> 
-                <form action="#" onsubmit="go2Title();return false;"> 
+                <div id="label" class="translate" th:text="#{renkanIndex.space_exp}">Create a Space</div> 
+                <form action="#" onsubmit="go2Title();return false;">
                     <input type="text" id="renkantitle" autofocus="autofocus"/> 
                     <button type="submit">OK</button>
                 </form>
             </div>
             <h2 th:text="#{renkanIndex.space_list}">Space list</h2>
-            <div th:include="fragment/paginationFragment :: paginationFragment"></div>
+            <div th:include="fragment/paginationFragment :: paginationFragment" class="pagination-container">
+                <div>               
+                    <a href="#?p.page=1">&lt;&lt;</a>                    
+                    <a href="#?p.page=3">&lt;</a>
+                    <span>...</span>
+                    <a href="#?p.page=2">2</a>
+                    <a href="#?p.page=3">3</a>
+                    <span>4</span>
+                    <a href="#?p.page=5">5</a>
+                    <a href="#?p.page=6">6</a>
+                    <span>...</span>
+                    <a href="#?p.page=5">&gt;</a>
+                    <a href="#?p.page=7">&gt;&gt;</a> 
+                </div>
+            </div>
             <table>
               <thead>
                 <tr>
--- a/server/src/main/webapp/static/css/index.css	Fri Mar 15 17:11:44 2013 +0100
+++ b/server/src/main/webapp/static/css/index.css	Fri Mar 15 23:19:50 2013 +0100
@@ -46,10 +46,20 @@
     background: #ffffff;
 }
 
- #inner {
+.pagination-container {
+	margin: 12px 15px 2px;
+	font-size: 14px;
+}
+
+.pagination-container a, .pagination-container span {
+	margin: 0 1px 0 1px;
+}
+
+#inner {
    width: 300px;
    margin: 10px auto;
  }
+ 
  #button {
    margin: 0 auto;
    border-radius: 3px;
@@ -66,6 +76,7 @@
    background: -o-linear-gradient(#5F5F5F,#565656 50%,#4C4C4C 51%,#373737);
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.9);
  }
+ 
  #button:hover {
    cursor: pointer;
    background: #666;
@@ -74,41 +85,45 @@
    background: -ms-linear-gradient(#707070,#666666 50%,#5B5B5B 51%,#474747);
    background: -o-linear-gradient(#707070,#666666 50%,#5B5B5B 51%,#474747);
  }
+ 
  #button:active {
    box-shadow: inset 0 1px 12px rgba(0,0,0,0.9);
    background: #444;
  }
+ 
  #label {
-   text-align: left;
+   font: 30px verdana,arial,sans-serif bold;
+   text-align: center;
    text-shadow: 0 1px 1px #fff;
+   height: 70px;
+   line-height: 70px;   
    margin: 16px auto 0;
  }
  form {
-   height: 38px;
-   background: #fff;
-   border: 1px solid #bbb;
-   border-radius: 3px;
+   height: 38px;   
    position: relative;
  }
  button, input {
    font-weight: bold;
    font-size: 15px;
  }
+  
  input[type="text"] {
+   background: #fff;
+   border: 1px solid #bbb;
    border-radius: 3px;
    box-sizing: border-box;
    -moz-box-sizing: border-box;   
-   padding: 0 45px 0 10px;
+   padding: 0 10px 0 10px;
    *padding: 0; /* IE7 hack */
    width: 100%;
    height: 100%;
    outline: none;
-   border: none;
    position: absolute;
  }
  button[type="submit"] {
    position: absolute;
-   right: 0;
+   right: -45px;
    width: 45px;
    height: 38px;
  }
\ No newline at end of file