Index: main/plugin-explorer/plugin.xml
===================================================================
--- main/plugin-explorer/plugin.xml	(revision 28824)
+++ main/plugin-explorer/plugin.xml	(working copy)
@@ -19,6 +19,34 @@
         xsi:schemaLocation="http://www.ametys.org/schema/plugin http://www.ametys.org/schema/plugin-2.0.xsd"
         runtimeVersion="2.0" version="2.0">
     
+    <config>
+        <param id="org.ametys.plugins.explorer.calendar.view" type="string">
+            <label i18n="true">PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_LABEL</label>
+            <description i18n="true">PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_DESC</description>
+            <enumeration>
+                <entry>
+                    <label i18n="true">PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_MONTH</label>
+                    <value>2</value>
+                </entry>
+                <entry>
+                    <label i18n="true">PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_WEEK</label>
+                    <value>1</value>
+                </entry>
+                <entry>
+                    <label i18n="true">PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_DAY</label>
+                    <value>0</value>
+                </entry>
+            </enumeration>
+            <validation>
+                <mandatory/>
+            </validation>
+            <default-value>month</default-value>
+            <category i18n="true">PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_CATEGORY</category>
+            <group i18n="true">PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_GROUP</group>
+            <order>10</order>
+        </param>
+    </config>
+    
     <extension-points>
         <extension-point id="org.ametys.plugins.explorer.applications.ExplorerApplicationExtensionPoint"
                          class="org.ametys.plugins.explorer.applications.ExplorerApplicationExtensionPoint">
@@ -121,6 +149,9 @@
     </feature>
     
 	 <feature name="userinterface.explorer.applications">
+	    <config>
+	       <param-ref id="org.ametys.plugins.explorer.calendar.view" />
+	    </config>
         <components>
 	       <component role="org.ametys.plugins.explorer.calendar.workflow.AddEventFunction"
                        class="org.ametys.plugins.explorer.calendar.workflow.AddEventFunction">
Index: main/plugin-explorer/i18n/messages_en.xml
===================================================================
--- main/plugin-explorer/i18n/messages_en.xml	(revision 28824)
+++ main/plugin-explorer/i18n/messages_en.xml	(working copy)
@@ -88,6 +88,21 @@
          | CALENDAR 
          +-->
          
+    <!-- Config -->
+    <message key="PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_LABEL">View</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_DESC">Choice of the default calendar view</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_GROUP">Display</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_CATEGORY">Calendar</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_MONTH">Month</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_WEEK">Week</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_DAY">Day</message>
+    
+    <!-- Tooltip Event -->
+    <message key="PLUGINS_EXPLORER_CALENDAR_TOOLTIP_EVENT_BY">By</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_TOOLTIP_EVENT_CREATED">Created the</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_TOOLTIP_EVENT_MODIFIED">Last modification the</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_TOOLTIP_EVENT_AT">at</message>
+    
 	<!-- Format -->
     <message key="PLUGINS_EXPLORER_CALENDAR_FORMAT_FULL_DAY">l F j Y</message>
     <message key="PLUGINS_EXPLORER_CALENDAR_FORMAT_MEDIUM_DAY">j M Y</message>
Index: main/plugin-explorer/i18n/messages_fr.xml
===================================================================
--- main/plugin-explorer/i18n/messages_fr.xml	(revision 28824)
+++ main/plugin-explorer/i18n/messages_fr.xml	(working copy)
@@ -88,6 +88,21 @@
          | CALENDAR 
          +-->
     
+    <!-- Config -->
+    <message key="PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_LABEL">Vue</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_DESC">Choix de la vue par défaut</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_GROUP">Affichage</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_CATEGORY">Calendrier</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_MONTH">Mois</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_WEEK">Semaine</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_PARAM_VIEW_DAY">Jour</message>
+    
+    <!-- Tooltip Event -->
+    <message key="PLUGINS_EXPLORER_CALENDAR_TOOLTIP_EVENT_BY">Par</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_TOOLTIP_EVENT_CREATED">Crée le</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_TOOLTIP_EVENT_MODIFIED">Dernière modification le</message>
+    <message key="PLUGINS_EXPLORER_CALENDAR_TOOLTIP_EVENT_AT">à</message>
+    
     <!-- Format -->
     <message key="PLUGINS_EXPLORER_CALENDAR_FORMAT_FULL_DAY">l j F Y</message>
     <message key="PLUGINS_EXPLORER_CALENDAR_FORMAT_MEDIUM_DAY">j M Y</message>
Index: main/plugin-explorer/resources/js/org/ametys/explorer/applications/threads/PostsActions.i18n.js
===================================================================
--- main/plugin-explorer/resources/js/org/ametys/explorer/applications/threads/PostsActions.i18n.js	(revision 28824)
+++ main/plugin-explorer/resources/js/org/ametys/explorer/applications/threads/PostsActions.i18n.js	(working copy)
@@ -219,7 +219,7 @@
 		labelAlign: 'top',
 		
 		defaults: {
-			msgTarget: 'side',
+			msgTarget: 'side'
 		},
 		
 		items : [
Index: main/plugin-explorer/resources/js/org/ametys/explorer/applications/threads/ThreadsApplication.i18n.js
===================================================================
--- main/plugin-explorer/resources/js/org/ametys/explorer/applications/threads/ThreadsApplication.i18n.js	(revision 28824)
+++ main/plugin-explorer/resources/js/org/ametys/explorer/applications/threads/ThreadsApplication.i18n.js	(working copy)
@@ -128,7 +128,8 @@
 	});
 	
 	this._postsPanel = this._createGrid();
-	
+	var postPanel = this._postsPanel;
+	debugger;
 	this._panel = new Ext.Panel({
 		layout: "border",
 		autoScroll: true, 
@@ -450,20 +451,45 @@
 
 org.ametys.explorer.applications.threads.ThreadsApplication.prototype._getStore = function ()
 {
-	var store = new Ext.data.XmlStore({
-		autoDestroy: true,
-
-		url: getPluginDirectUrl(this.getPluginName()) + '/posts', // automatically configures a HttpProxy
-
-		record: 'post', 
-		idPath: 'id',
-		fields: [{name: 'id', mapping: 'id'},
+    // HTTP proxy
+    var proxy = new Ext.data.HttpProxy({
+        url: getPluginDirectUrl(this.getPluginName()) + '/posts',
+        method: 'post',
+        timeout: 0
+    });
+	
+    var store = new Ext.data.Store({
+        proxy: proxy,
+        data: [],
+        reader: new Ext.data.XmlReader({
+                record: 'post',
+                idProperty: 'id'
+            },
+            Ext.data.Record.create([
+                 {name: 'id', mapping: 'id'},
 		         {name: 'content', mapping: 'content', type: 'string'},
 		         {name: 'author', mapping: 'author', type: 'string'},
 		         {name: 'authorLogin', mapping: 'authorLogin', type: 'string'},
-		         {name: 'creationDate', type:'date', dateFormat:'c', mapping: 'creationDate'},
-		]
-	});
+		         {name: 'creationDate', type:'date', dateFormat:'c', mapping: 'creationDate'}
+            ])
+        )
+    });
+    
+//	var store = new Ext.data.XmlStore({
+//		autoDestroy: true,
+//
+//		url: getPluginDirectUrl(this.getPluginName()) + '/posts', // automatically configures a HttpProxy
+//
+//		record: 'post', 
+//		idPath: 'id',
+//		fields: [{name: 'id', mapping: 'id'},
+//		         {name: 'content', mapping: 'content', type: 'string'},
+//		         {name: 'author', mapping: 'author', type: 'string'},
+//		         {name: 'authorLogin', mapping: 'authorLogin', type: 'string'},
+//		         {name: 'creationDate', type:'date', dateFormat:'c', mapping: 'creationDate'},
+//		]
+//	});
+
 	return store;
 }
 
Index: main/plugin-explorer/resources/js/org/ametys/explorer/applications/calendar/EventActions.i18n.js
===================================================================
--- main/plugin-explorer/resources/js/org/ametys/explorer/applications/calendar/EventActions.i18n.js	(revision 28824)
+++ main/plugin-explorer/resources/js/org/ametys/explorer/applications/calendar/EventActions.i18n.js	(working copy)
@@ -599,8 +599,8 @@
 
 	org.ametys.explorer.applications.calendar.Event._fullDay.setValue(fullDay);
 	
-	var startDate = new Date(startDateAsString);
-	var endDate = new Date(endDateAsString);
+	var startDate = Date.parseDate(startDateAsString, Date.patterns.ISO8601Long);
+	var endDate = Date.parseDate(endDateAsString, Date.patterns.ISO8601Long);
 		
 	if (fullDay == "true")
 	{
Index: main/plugin-explorer/resources/js/org/ametys/explorer/applications/calendar/CalendarApplication.i18n.js
===================================================================
--- main/plugin-explorer/resources/js/org/ametys/explorer/applications/calendar/CalendarApplication.i18n.js	(revision 28824)
+++ main/plugin-explorer/resources/js/org/ametys/explorer/applications/calendar/CalendarApplication.i18n.js	(working copy)
@@ -68,19 +68,32 @@
 	                		}
 	                	}
 	                	
+	                	var dateCreator = Date.parseDate(record.selectSingleNode("creationDate")[org.ametys.servercomm.ServerComm.xmlTextContent], Date.patterns.ISO8601Long);
+	                	
+                		tooltip = "<i18n:text i18n:key="PLUGINS_EXPLORER_CALENDAR_TOOLTIP_EVENT_CREATED"/> " + dateCreator.format(Date.patterns.ShortDate) + " <i18n:text i18n:key="PLUGINS_EXPLORER_CALENDAR_TOOLTIP_EVENT_AT"/> " + dateCreator.format(Date.patterns.ShortTime);
+	                	tooltip += "\n<i18n:text i18n:key="PLUGINS_EXPLORER_CALENDAR_TOOLTIP_EVENT_BY"/> " + record.selectSingleNode("creator/user/firstname")[org.ametys.servercomm.ServerComm.xmlTextContent] + " " + record.selectSingleNode("creator/user/lastname")[org.ametys.servercomm.ServerComm.xmlTextContent] + " (" + record.selectSingleNode("creator").getAttribute("login") + ")";
+	                	var modification = record.selectSingleNode("lastModified");
+	                	if (modification != null)
+	                	{
+	                		var dateContributor = Date.parseDate(modification[org.ametys.servercomm.ServerComm.xmlTextContent], Date.patterns.ISO8601Long);
+	                		
+	                		tooltip += "\n\n<i18n:text i18n:key="PLUGINS_EXPLORER_CALENDAR_TOOLTIP_EVENT_MODIFIED"/> " + dateContributor.format(Date.patterns.ShortDate) + " <i18n:text i18n:key="PLUGINS_EXPLORER_CALENDAR_TOOLTIP_EVENT_AT"/> " + dateContributor.format(Date.patterns.ShortTime);
+		                	tooltip += "\n<i18n:text i18n:key="PLUGINS_EXPLORER_CALENDAR_TOOLTIP_EVENT_BY"/> " + record.selectSingleNode("contributor/user/firstname")[org.ametys.servercomm.ServerComm.xmlTextContent] + " " + record.selectSingleNode("contributor/user/lastname")[org.ametys.servercomm.ServerComm.xmlTextContent] + " (" + record.selectSingleNode("contributor").getAttribute("login") + ")";
+	                	}
+	                	
 	                	if (!noWorkflow)
 	                	{	var imgPath = context.contextPath + record.selectSingleNode("icon-small-workflow")[org.ametys.servercomm.ServerComm.xmlTextContent];
-	                		var text = "&lt;span class='calendar-event-icon-workflow-state'&gt;&lt;span style='background-image: url(" + imgPath + ");' &gt;&lt;/span&gt;&lt;/span&gt;&lt;span class='calendar-event-icon-workflow-state-placeholder'&gt;&lt;/span&gt;";
-	                		return text + v;
+	                		var text = "&lt;span title='" + tooltip + "' class='calendar-event-icon-workflow-state'&gt;&lt;span style='background-image: url(" + imgPath + ");' &gt;&lt;/span&gt;&lt;/span&gt;&lt;span class='calendar-event-icon-workflow-state-placeholder'&gt;&lt;/span&gt;";
+	                		return text + "&lt;span title='" + tooltip + "' &gt;" + v + "&lt;/span&gt;";
 	                	}
 	                	else
 	                	{
-	                		return v;
+	                		return "&lt;span title='" + tooltip + "' &gt;" + v + "&lt;/span&gt;";
 	                	}
                 	}
                 },
-            	{name:'StartDate', mapping: 'startDate', type: 'date'},
-                {name:'EndDate', mapping: 'endDate', type: 'date'},
+            	{name:'StartDate', mapping: 'startDate', type: 'date', dateFormat: Date.patterns.ISO8601Long},
+                {name:'EndDate', mapping: 'endDate', type: 'date', dateFormat: Date.patterns.ISO8601Long},
                 {name:'Notes', mapping: 'desc'},
                 {name:'CalendarId', mapping: '@color'},
                 {name:'TrueCalendarId', mapping: '@calendarId'},
@@ -120,7 +133,7 @@
 	    	  	{name: 'Desc', mapping: '@desc'},
 	    	  	{name: 'Color', mapping: '@color'}
 	    	  ])
-        ),     
+        ) 
     });
    
     this._calendar = new Ext.calendar.CalendarPanel({
@@ -131,12 +144,11 @@
         showMonthView: true,
         showNavBar: true,
         showTime: false,
-        activeItem: 2,
+        activeItem: calendarDefaultViewId,
         newId: 0,
         
         border: false,
         bodyBorder: false,
-       
         
         dayViewCfg: {
 	        todayText: Ext.DatePicker.prototype.todayText,
@@ -498,7 +510,7 @@
     		},
     		this._calendar.items.get(0)
     	);
-
+    
     return this._calendar;
 };
 
@@ -547,7 +559,6 @@
 org.ametys.explorer.applications.calendar.CalendarApplication.prototype.getSelectedEvents = function ()
 {
 	var selectedEvents = [];
-
 	for (var i = 0; i &lt; this._selectedEventRecordIds.length; i++)
 	{
 		var record = this._xmlStore.getById(this._selectedEventRecordIds[i]);
@@ -693,7 +704,7 @@
 		    	   handler: function () {
 		        	   org.ametys.explorer.applications.calendar.toolbar.Calendar.add (this.application);
 		       	   },
-				   rightId: 'Plugin_Explorer_Calendar_Add',
+				   rightId: 'Plugin_Explorer_Calendar_Add'
 		       },
 		       {
 		    	   xtype: 'container',
@@ -842,6 +853,7 @@
 					 toggleHandler: function (btn, state) {
 							org.ametys.explorer.applications.calendar.toolbar.View.chooseDayView (btn, state, this.application);
 					 },
+					 pressed: calendarDefaultViewId == 0,
 					 disabled: false
 				},
 				{
@@ -873,6 +885,7 @@
 					 toggleHandler: function (btn, state) {
 							org.ametys.explorer.applications.calendar.toolbar.View.chooseWeekView (btn, state, this.application);
 					 },
+					 pressed: calendarDefaultViewId == 1,
 					 disabled: false
 				},
 				{
@@ -955,7 +968,7 @@
 					 toggleHandler: function (btn, state) {
 							org.ametys.explorer.applications.calendar.toolbar.View.chooseMonthView (btn, state, this.application);
 					 },
-					 pressed: true,
+					 pressed: calendarDefaultViewId == 2,
 					 disabled: false
 				}
 		]
Index: main/plugin-explorer/resources/js/Ext/calendar-all-debug.js
===================================================================
--- main/plugin-explorer/resources/js/Ext/calendar-all-debug.js	(revision 28824)
+++ main/plugin-explorer/resources/js/Ext/calendar-all-debug.js	(working copy)
@@ -2344,11 +2344,9 @@
         M = Ext.calendar.EventMappings,
         evStart = (evt.data ? evt.data[M.StartDate.name] : evt[M.StartDate.name]).getTime(),
         evEnd = (evt.data ? evt.data[M.EndDate.name] : evt[M.EndDate.name]).add(Date.SECOND, -1).getTime(),
-
         startsInRange = (evStart >= start && evStart <= end),
         endsInRange = (evEnd >= start && evEnd <= end),
         spansRange = (evStart < start && evEnd > end);
-
         return (startsInRange || endsInRange || spansRange);
     },
 
@@ -2859,8 +2857,7 @@
     	        mediumDayFormat: this.mediumDayFormat,
     	        dayNMonthDayFormat: this.dayNMonthDayFormat,
     	        longDayFormat: this.longDayFormat,
-    	        shortDayFormat: this.shortDayFormat,
-
+    	        shortDayFormat: this.shortDayFormat
             });
         }
         this.tpl.compile();
Index: main/plugin-explorer/resources/css/explorer.css
===================================================================
--- main/plugin-explorer/resources/css/explorer.css	(revision 28824)
+++ main/plugin-explorer/resources/css/explorer.css	(working copy)
@@ -139,3 +139,7 @@
 .x-form-item.ametys-select .x-form-invalid {
 	border: 1px solid red !important;
 }
+
+.ext-strict .ext-ie7 .x-btn-mc {
+	height: none !important;
+}
\ No newline at end of file
Index: main/plugin-explorer/src/org/ametys/plugins/explorer/applications/ExplorerApplicationsGenerator.java
===================================================================
--- main/plugin-explorer/src/org/ametys/plugins/explorer/applications/ExplorerApplicationsGenerator.java	(revision 28824)
+++ main/plugin-explorer/src/org/ametys/plugins/explorer/applications/ExplorerApplicationsGenerator.java	(working copy)
@@ -28,6 +28,7 @@
 import org.apache.cocoon.xml.XMLUtils;
 import org.xml.sax.SAXException;
 
+import org.ametys.runtime.config.Config;
 import org.ametys.runtime.ui.ClientSideElement;
 import org.ametys.runtime.ui.SAXClientSideElementHelper;
 
@@ -56,6 +57,12 @@
         
         XMLUtils.startElement(contentHandler, "applications");
         
+        String defaultView = Config.getInstance().getValueAsString("org.ametys.plugins.explorer.calendar.view");
+        
+        XMLUtils.startElement(contentHandler, "config");
+        XMLUtils.createElement(contentHandler, "calendar-default-view", defaultView);
+        XMLUtils.endElement(contentHandler, "config");
+        
         if (id == null)
         {
             Set<String> ids = _appExtPt.getExtensionsIds();
