Index: wiki/src/main/resources/XWSCode/Translations
===================================================================
--- wiki/src/main/resources/XWSCode/Translations	(revision 10117)
+++ wiki/src/main/resources/XWSCode/Translations	(working copy)
@@ -12,8 +12,8 @@
 <customClass></customClass>
 <contentAuthor>XWiki.Admin</contentAuthor>
 <creationDate>1206992640000</creationDate>
-<date>1212160466000</date>
-<contentUpdateDate>1212160466000</contentUpdateDate>
+<date>1212673781000</date>
+<contentUpdateDate>1212673781000</contentUpdateDate>
 <version>3.1</version>
 <title>Translations</title>
 <template></template>
@@ -224,6 +224,10 @@
 xws.members.managemembers=Manage members
 xws.members.managemembers.title=Manage members for this workspace
 
+xws.directory.users=Utilisateurs
+
+xws.directory.users=Users 
+
 xws.mydashboard.recentactivity=Recent activity on my spaces
 xws.mydashboard.help=Your dashboard shows you the recent activity on the spaces you are involved with a role : either you are an admin, writer, or a reader. If you want to see the full list of the spaces you can access including public and restricted spaces in which you don't have a specific role, please visit your My spaces page. There's a button too, in the top action bar, to access this list anytime.
 
Index: wiki/src/main/resources/XWSCode/UserTableView
===================================================================
--- wiki/src/main/resources/XWSCode/UserTableView	(revision 0)
+++ wiki/src/main/resources/XWSCode/UserTableView	(revision 0)
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<xwikidoc>
+<web>XWSCode</web>
+<name>UserTableView</name>
+<language></language>
+<defaultLanguage>en</defaultLanguage>
+<translation>0</translation>
+<parent></parent>
+<creator>XWiki.Admin</creator>
+<author>XWiki.Admin</author>
+<customClass></customClass>
+<contentAuthor>XWiki.Admin</contentAuthor>
+<creationDate>1212675053000</creationDate>
+<date>1212743657000</date>
+<contentUpdateDate>1212743657000</contentUpdateDate>
+<version>15.1</version>
+<title></title>
+<template></template>
+<defaultTemplate></defaultTemplate>
+<validationScript></validationScript>
+<comment></comment>
+<minorEdit>false</minorEdit>
+<object>
+<class>
+<name>XWiki.TagClass</name>
+<customClass></customClass>
+<customMapping></customMapping>
+<defaultViewSheet></defaultViewSheet>
+<defaultEditSheet></defaultEditSheet>
+<defaultWeb></defaultWeb>
+<nameField></nameField>
+<validationScript></validationScript>
+<tags>
+<cache>0</cache>
+<displayType>input</displayType>
+<multiSelect>1</multiSelect>
+<name>tags</name>
+<number>1</number>
+<prettyName>Tags</prettyName>
+<relationalStorage>1</relationalStorage>
+<separator> </separator>
+<separators> ,|</separators>
+<size>30</size>
+<unmodifiable>0</unmodifiable>
+<values></values>
+<classType>com.xpn.xwiki.objects.classes.StaticListClass</classType>
+</tags>
+</class>
+<name>XWSCode.UserTableView</name>
+<number>0</number>
+<className>XWiki.TagClass</className>
+<property>
+<tags/>
+</property>
+</object>
+<content>&lt;div id="ajax-loader"&gt;$msg.get("ui.ajaxTable.loading")&lt;br /&gt;
+  &lt;img src="$xwiki.getSkinFile('icons/ajax-loader.gif')" alt="$msg.get('ui.ajaxTable.loading')" title="" /&gt;
+&lt;/div&gt;
+&lt;table id="alluserstable" style="width: 100%"&gt;
+&lt;tr&gt;
+ &lt;td colspan="2" style="padding-top:10px;"&gt;
+   &lt;span id="showLimits"&gt;&lt;/span&gt;
+ &lt;/td&gt;
+&lt;/tr&gt;
+&lt;tr&gt;&lt;td style="width:100%"&gt;
+      &lt;table class="display"&gt;
+       &lt;thead class="theader"&gt;
+          &lt;tr&gt;
+            &lt;td class="headerlabel"&gt;$msg.get("avatar")&lt;/td&gt;
+            &lt;td class="headerlabel"&gt;$msg.get("firstname")&lt;/td&gt;
+            &lt;td class="headerlabel"&gt;$msg.get("lastname")&lt;/td&gt;
+            &lt;td class="headerlabel"&gt;$msg.get("email")&lt;/td&gt;
+          &lt;/tr&gt;
+          &lt;tr id="table-filters"&gt;
+              &lt;td&gt;&lt;/td&gt;
+              &lt;td&gt;&lt;input name="firstname" type="text"/&gt;&lt;/td&gt;
+              &lt;td&gt;&lt;input name="lastname" type="text"/&gt;&lt;/td&gt;
+              &lt;td&gt;&lt;input name="email" type="text" /&gt;&lt;/td&gt;
+          &lt;/tr&gt;
+       &lt;/thead&gt;
+       &lt;tbody id="display1"&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;
+      &lt;/table&gt;&lt;/td&gt;
+      &lt;td valign="top"&gt;
+        &lt;div id="scrollbar1" class="scrollbar"&gt;&lt;div class="inscrollbar"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+      &lt;/td&gt;
+    &lt;td id="buff"&gt;&lt;/td&gt;
+&lt;/tr&gt;
+&lt;/table&gt;
+#set($url = "$xwiki.getURL('XWSCode.UserTableResults')?xpage=plain")
+{pre}
+&lt;script type="text/javascript"&gt;
+//&lt;![CDATA[
+function displayAllUsers(row, i, table)
+{
+    var ava = new Element('img', {'src' : row.avatarurl});
+    if(row.avatarurl.substring(row.avatarurl.lastIndexOf('/') + 1) == "nophoto.png"){
+      ava.style.width="45px";
+    }
+    var avatar = new Element('td', {'class' : 'avatar'}).update(ava);
+    avatar.style.textAlign="center";
+    var fna = new Element('a', {'href' : row.url}).update(row.firstname);
+    var firstname = new Element('td', {'class' : 'firstname'}).update(fna);
+    var lna = new Element('a', {'href' : row.url}).update(row.lastname);
+    var lastname = new Element('td', {'class' : 'lastname'}).update(lna);
+    var emaila = new Element('a', {'href' : row.url}).update(row.email);
+    var email = new Element('td', {'class' : 'email'}).update(emaila);
+    var tr = new Element('tr', {'class' : (i % 2 == 0) ? 'even' : 'odd'} ).update(firstname);
+    tr.appendChild(avatar);    
+    tr.appendChild(firstname);
+    tr.appendChild(lastname);
+    tr.appendChild(email);
+
+    return tr;
+}
+
+var ta = new ASSTable("$url", 10, "display1", "scrollbar1", "alluserstable", displayAllUsers, true);
+
+//]]&gt;
+&lt;/script&gt;
+{/pre}</content>
+</xwikidoc>
Index: wiki/src/main/resources/XWSCode/XWSDirectory
===================================================================
--- wiki/src/main/resources/XWSCode/XWSDirectory	(revision 10117)
+++ wiki/src/main/resources/XWSCode/XWSDirectory	(working copy)
@@ -12,14 +12,15 @@
 <customClass></customClass>
 <contentAuthor>XWiki.Admin</contentAuthor>
 <creationDate>1200931553000</creationDate>
-<date>1201003544000</date>
-<contentUpdateDate>1202988797000</contentUpdateDate>
-<version>1.1</version>
+<date>1212675047000</date>
+<contentUpdateDate>1212675047000</contentUpdateDate>
+<version>6.1</version>
 <title>XWSDirectory</title>
 <template></template>
 <defaultTemplate></defaultTemplate>
 <validationScript></validationScript>
 <comment></comment>
+<minorEdit>false</minorEdit>
 <object>
 <class>
 <name>XWiki.TagClass</name>
@@ -53,27 +54,14 @@
 <tags/>
 </property>
 </object>
-<content>#set($howMany=50)
-#if($request.offset)
- #set($offset=$xwiki.parseInt($request.offset))
-#else
- #set($offset=0)
-#end
-#set($withLinks=true)
-
-&lt;div style="text-align:center"&gt;
-[0-9&gt;$doc.fullName?view=index&amp;amp;letter=09] -
-#foreach($letter in ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'])
-  [$letter&gt;$doc.fullName?letter=${letter}&amp;offset=${offset}] -
-#end 
-[#&gt;$doc.fullName?offset=${offset}]
-&lt;/div&gt;
-
-#if($request.letter &amp;&amp; $request.letter!="")
- #set($whereLetter = "and doc.name like '${request.letter}%'")
-#end
-
-#set($hql = ", BaseObject as obj where obj.name=doc.fullName and obj.className='XWiki.XWikiUsers' and doc.web='XWiki' $!whereLetter order by doc.name asc")
-
-#includeInContext("XWSCode.XWSPeopleResult")</content>
+<content>1 $msg.get("xws.directory.users")
+#if((!$view) || ($view == ""))
+  #set($view = $request.getParameter("view"))
+  #if((!$view) || ($view == ""))
+    #set ($view = "index")
+  #end
+#end
+&lt;div id="xwikieditcontent" class="clear"&gt;
+#includeTopic("XWSCode.UserTableView")
+&lt;/div&gt;</content>
 </xwikidoc>
Index: wiki/src/main/resources/XWSCode/UserTableResults
===================================================================
--- wiki/src/main/resources/XWSCode/UserTableResults	(revision 0)
+++ wiki/src/main/resources/XWSCode/UserTableResults	(revision 0)
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<xwikidoc>
+<web>XWSCode</web>
+<name>UserTableResults</name>
+<language></language>
+<defaultLanguage>en</defaultLanguage>
+<translation>0</translation>
+<parent></parent>
+<creator>XWiki.Admin</creator>
+<author>XWiki.Admin</author>
+<customClass></customClass>
+<contentAuthor>XWiki.Admin</contentAuthor>
+<creationDate>1212675125000</creationDate>
+<date>1212743638000</date>
+<contentUpdateDate>1212743638000</contentUpdateDate>
+<version>41.1</version>
+<title></title>
+<template></template>
+<defaultTemplate></defaultTemplate>
+<validationScript></validationScript>
+<comment></comment>
+<minorEdit>false</minorEdit>
+<object>
+<class>
+<name>XWiki.TagClass</name>
+<customClass></customClass>
+<customMapping></customMapping>
+<defaultViewSheet></defaultViewSheet>
+<defaultEditSheet></defaultEditSheet>
+<defaultWeb></defaultWeb>
+<nameField></nameField>
+<validationScript></validationScript>
+<tags>
+<cache>0</cache>
+<displayType>input</displayType>
+<multiSelect>1</multiSelect>
+<name>tags</name>
+<number>1</number>
+<prettyName>Tags</prettyName>
+<relationalStorage>1</relationalStorage>
+<separator> </separator>
+<separators> ,|</separators>
+<size>30</size>
+<unmodifiable>0</unmodifiable>
+<values></values>
+<classType>com.xpn.xwiki.objects.classes.StaticListClass</classType>
+</tags>
+</class>
+<name>XWSCode.UserTableResults</name>
+<number>0</number>
+<className>XWiki.TagClass</className>
+<property>
+<tags/>
+</property>
+</object>
+<content>{pre}
+## ============================================================================================
+## This page is called from live grids via Ajax with the argument xpage=plain. It returns a
+## set of results serialized in JSON.
+## You can see an example of live grid in XWSCode.UserTableView (note : this grid doesn't use  
+## all the serialized fields).
+## ============================================================================================
+#if ($request.get("xpage") &amp;&amp; $request.get("xpage") == "plain")
+  #set( $offset = $xwiki.parseInt( $request.get( "offset" ) ) )
+  ## offset starts from 0 in velocity and 1 in javascript
+  #set( $off = $offset - 1 )
+  #set( $limit = $xwiki.parseInt( $request.get( "limit" ) ) )
+  #set($firstname = $request.get("firstname"))
+  #set($lastname = $request.get("lastname"))
+  #set($email = $request.get("email"))
+  #if($firstname)
+    #set($wheresqlfn = " and propFN.id.name='first_name' and upper(propFN.value) like upper('%${firstname}%')")
+  #end
+  #if($lastname)
+    #set($wheresqlln = " and propLN.id.name='last_name' and upper(propLN.value) like upper('%${lastname}%')")
+  #end
+  #if($email)
+    #set($wheresqlm = " and propM.id.name='email' and upper(propM.value) like upper('%${email}%')")
+  #end
+  #set($sql = ", BaseObject as obj, StringProperty propFN, StringProperty propLN, StringProperty propM where obj.name=doc.fullName and obj.className='XWiki.XWikiUsers' and doc.web='XWiki' and obj.id=propFN.id.id  and obj.id=propLN.id.id  and obj.id=propM.id.id $!wheresqlfn $!wheresqlln $!wheresqlm")
+  #set($items = $xwiki.searchDocuments($sql, $limit, $off))
+  #set($totalItems = $xwiki.searchDocuments($sql).size())
+  #set($returnedItems = $items.size())
+  ## ==============================================
+  ## json starts
+  ## ==============================================
+  {"totalrows": $totalItems,
+  "returnedrows": #if($returnedItems &lt; $limit) $returnedItems #else $limit #end,
+  "offset": $offset,
+  "reqNo": $request.reqNo,
+  "rows": [
+    #foreach($item in $items)
+     #set($udoc = $xwiki.getDocument($item))
+     #set($uobj = $udoc.getObject("XWiki.XWikiUsers"))
+     ## ==============================================
+     ## Avatar
+     ## ==============================================
+     #if($uobj.get("avatar") != "")
+       #set($width=$xwiki.image.getWidth($item,$uobj.get("avatar")))
+       #set($height=$xwiki.image.getHeight($item,$uobj.get("avatar")))
+       #set($maxsize=45)
+       #if($width &gt; $height)
+       #set($itemavatarurl=$udoc.getAttachmentURL($uobj.get("avatar"),"download","width=$maxsize"))
+       #else
+       #set($itemavatarurl=$udoc.getAttachmentURL($uobj.get("avatar"),"download","height=$maxsize"))
+       #end
+     #else
+       #set($itemavatarurl=$xwiki.getSkinFile("images/nophoto.png"))
+     #end
+     ## ==============================================
+     ## First Name
+     ## ==============================================
+     #set($itemfirstname = $uobj.get("first_name"))
+     ## ==============================================
+     ## Last Name
+     ## ==============================================
+     #set($itemlastname = $uobj.get("last_name"))
+     ## ==============================================
+     ## Email
+     ## ==============================================
+     #set($itememail = $uobj.get("email"))
+     ## ==============================================
+     ## URL
+     ## ==============================================
+     #set($itemurl = $xwiki.getURL($item))
+     ## ==============================================
+     #if($velocityCount &gt; 1) , #end
+     {"avatarurl" : "$itemavatarurl",
+      "firstname" : "$itemfirstname",
+      "lastname"  : "$itemlastname",
+      "email"     : "$itememail",
+      "url"       : "$itemurl"
+     }
+    #end
+  ]}
+  ## ==============================================
+  ## json ended
+  ## ==============================================
+#end
+{/pre}
+</content></xwikidoc>
\ No newline at end of file
Index: web/src/main/webapp/skins/workspaces/style.css
===================================================================
--- web/src/main/webapp/skins/workspaces/style.css	(revision 10117)
+++ web/src/main/webapp/skins/workspaces/style.css	(working copy)
@@ -3251,6 +3251,17 @@
   line-height: 1em;
 }
 
+#alluserstable{
+  width: 100%;
+}
+#alluserstable td.headerlabel{
+  padding: 5px 0px 5px 10px;
+  color: #fff;
+}
+#alluserstable td{
+  padding-left:10px;
+}
+
 /* IE 7 */
 *+html #actionmenu a#globaladminbutton span,
 *+html #actionmenu a#logoutbutton span{
