Index: main/plugin-cms/resources/js/Ametys/plugins/cms/system/requesttracker/RequestTrackerTool.i18n.js
===================================================================
--- main/plugin-cms/resources/js/Ametys/plugins/cms/system/requesttracker/RequestTrackerTool.i18n.js	(revision 30944)
+++ main/plugin-cms/resources/js/Ametys/plugins/cms/system/requesttracker/RequestTrackerTool.i18n.js	(working copy)
@@ -110,8 +110,8 @@
 				autoScroll: true,
 			    columns: [
 			        {id: this.self.getName().replace(/\./g, "_") + '-msgrid-id', header: "<i18n:text i18n:key='REQUESTSTRACKER_TOOL_MESSAGE_COL_ID'/>", width: 40, sortable: true, dataIndex: 'id', hideable: false},
-			        {id: this.self.getName().replace(/\./g, "_") + '-msgrid-readabletype', header: "<i18n:text i18n:key='REQUESTSTRACKER_TOOL_MESSAGE_COL_READABLE_TYPE'/>", width: 70, sortable: true, dataIndex: 'id', renderer: Ext.bind(this._renderCallType, this)},
-			        {id: this.self.getName().replace(/\./g, "_") + '-msgrid-readablevalue', header: "<i18n:text i18n:key='REQUESTSTRACKER_TOOL_MESSAGE_COL_READABLE_VALUE'/>", width: 250, sortable: true, dataIndex: 'id', renderer: Ext.bind(this._renderCallValue, this)},
+			        {id: this.self.getName().replace(/\./g, "_") + '-msgrid-readabletype', header: "<i18n:text i18n:key='REQUESTSTRACKER_TOOL_MESSAGE_COL_READABLE_TYPE'/>", width: 70, sortable: true, dataIndex: 'readableCallType', renderer: Ext.bind(this._renderCallType, this)},
+			        {id: this.self.getName().replace(/\./g, "_") + '-msgrid-readablevalue', header: "<i18n:text i18n:key='REQUESTSTRACKER_TOOL_MESSAGE_COL_READABLE_VALUE'/>", width: 250, sortable: true, dataIndex: 'readableCallValue'},
 			        {id: this.self.getName().replace(/\./g, "_") + '-msgrid-plugin', header: "<i18n:text i18n:key='REQUESTSTRACKER_TOOL_MESSAGE_COL_PLUGIN'/>", width: 70, sortable: true, hidden: true, dataIndex: 'plugin'},
 			        {id: this.self.getName().replace(/\./g, "_") + '-msgrid-workspace', header: "<i18n:text i18n:key='REQUESTSTRACKER_TOOL_MESSAGE_COL_WORKSPACE'/>", width: 70, sortable: true, hidden: true, dataIndex: 'workspace'},
 			        {id: this.self.getName().replace(/\./g, "_") + '-msgrid-url', header: "<i18n:text i18n:key='REQUESTSTRACKER_TOOL_MESSAGE_COL_URL'/>", width: 180, sortable: true, hidden: true, dataIndex: 'url'},
@@ -172,32 +172,9 @@
 	     * @param {Ext.view.View} view The current view
 	     * @return {String} The HTML string to be rendered.
 	     */
-		_renderCallValue: function(value, metaData, record, rowIndex, colIndex, store, view)
-		{
-			if (record.get('url') == "client-call" && record.get('plugin') == "core")
-			{
-				return record.get('message').parameters.id + " # " + record.get('message').parameters.methodName;
-			}
-			else
-			{
-				return (record.get('workspace') ? ("_" + record.get('workspace')) : ('plugins/' + record.get('plugin'))) + "/" + record.get('url');
-			}
-		},
-		/**
-		 * @private
-		 * The renderer for the call column
-	     * @param {Object} value The data value for the current cell
-	     * @param {Object} metaData A collection of metadata about the current cell; can be used or modified by the renderer. Recognized properties are: tdCls, tdAttr, and style.
-	     * @param {Ext.data.Model} record The record for the current row
-	     * @param {Number} rowIndex The index of the current row
-	     * @param {Number} colIndex The index of the current column
-	     * @param {Ext.data.Store} store The data store
-	     * @param {Ext.view.View} view The current view
-	     * @return {String} The HTML string to be rendered.
-	     */
 		_renderCallType: function(value, metaData, record, rowIndex, colIndex, store, view)
 		{
-			if (record.get('url') == "client-call" && record.get('plugin') == "core")
+			if (record.get('readableCallType'))
 			{
 				return "<i18n:text i18n:key='REQUESTSTRACKER_TOOL_MESSAGE_COL_READABLE_VAL1'/>";
 			}
@@ -515,7 +492,7 @@
 			var store = this.store;
 			try
 			{
-				var record = this.store.query("id", sendOptions.observerId).get(0);
+				var record = this.store.query("id", sendOptions.observerId).getAt(0);
 				record.set("duration", (new Date().getTime() - record.get("date").getTime()) / 1000.0);
 				record.set("response", response);
 				switch (responseType)
Index: main/plugin-cms/resources/js/Ametys/plugins/cms/system/requesttracker/RequestTrackerTool/MessageEntry.js
===================================================================
--- main/plugin-cms/resources/js/Ametys/plugins/cms/system/requesttracker/RequestTrackerTool/MessageEntry.js	(revision 30944)
+++ main/plugin-cms/resources/js/Ametys/plugins/cms/system/requesttracker/RequestTrackerTool/MessageEntry.js	(working copy)
@@ -23,6 +23,30 @@
 	
     fields: [
         {name: 'id'},
+        {
+        	name: 'readableCallType', //True if the value to display is 'REQUESTSTRACKER_TOOL_MESSAGE_COL_READABLE_VAL1', 
+        								//false if 'REQUESTSTRACKER_TOOL_MESSAGE_COL_READABLE_VAL2'
+        	
+        	calculate: function(data) 
+        	{
+        		return (data.url == "client-call" && data.plugin == "core");
+        	}
+        },
+        {
+        	name: 'readableCallValue',
+        	
+        	calculate: function(data) 
+        	{
+	        	if (data.url == "client-call" && data.plugin == "core")
+				{
+					return data.message.parameters.id + " # " + data.message.parameters.methodName;
+				}
+				else
+				{
+					return (data.workspace ? ("_" + data.workspace) : ('plugins/' + data.plugin)) + "/" + data.url;
+				}
+        	}
+        },
         {name: 'plugin'},
         {name: 'workspace'},
         {name: 'url'},