Index: /ether_megapoli/trunk/common/implementation/com/ether/EtherHelper.java
===================================================================
--- /ether_megapoli/trunk/common/implementation/com/ether/EtherHelper.java	(revision 474)
+++ /ether_megapoli/trunk/common/implementation/com/ether/EtherHelper.java	(revision 475)
@@ -6,4 +6,5 @@
 
 import java.io.BufferedWriter;
+import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
@@ -12,4 +13,5 @@
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.List;
 import java.util.Random;
@@ -196,3 +198,24 @@
     }
 
+
+    /**
+     * This method move all files from fromDirectory to toDirectory
+     * The toDirectory DOESN'T MUST exist !
+     * (otherwise it is renamed with date)
+     *
+     * @param fromDirectory
+     * @param toDirectory
+     * @return
+     */
+    public static boolean moveFiles( @NotNull final String fromDirectory, @NotNull final String toDirectory )
+    {
+        final File fromDirectoryFiles = new File( fromDirectory );
+        final File toDirectoryFiles = new File( toDirectory );
+
+        if( toDirectoryFiles.exists() )
+            toDirectoryFiles.renameTo( new File( toDirectory + "_" + Calendar.getInstance().getTimeInMillis() ) );
+
+        return fromDirectoryFiles.renameTo( toDirectoryFiles );
+    }
+
 }
Index: /ether_megapoli/trunk/common/implementation/com/medias/Context.java
===================================================================
--- /ether_megapoli/trunk/common/implementation/com/medias/Context.java	(revision 474)
+++ /ether_megapoli/trunk/common/implementation/com/medias/Context.java	(revision 475)
@@ -96,4 +96,16 @@
 
     /**
+     * This method returns from the servletContext the property initialized during the init() of MegapoliInitialisation.java
+     *
+     * @param request
+     * @param property
+     * @return
+     */
+    public static String getProperty( @NotNull final HttpServletRequest request, @NotNull final String property )
+    {
+        return (String) request.getSession().getServletContext().getAttribute( property );
+    }
+
+    /**
      * Permet de dÃ©finir le nom de la racine Ã  partir de laquelle les paths sont calculÃ©s.
      *
Index: /ether_megapoli/trunk/service/implementation/com/ether/EtherServiceImpl.java
===================================================================
--- /ether_megapoli/trunk/service/implementation/com/ether/EtherServiceImpl.java	(revision 474)
+++ /ether_megapoli/trunk/service/implementation/com/ether/EtherServiceImpl.java	(revision 475)
@@ -25,4 +25,5 @@
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.Date;
@@ -505,5 +506,5 @@
     @Nullable
     @Transactional(readOnly = true)
-    public PaginatedResult<Jeu> searchDatasets( @NotNull final JeuFilter filter )
+    public PaginatedResult<Jeu> searchJeux( @NotNull final JeuFilter filter )
             throws ServiceException
     {
@@ -514,6 +515,61 @@
         catch( PersistenceException e )
         {
-            throw new ServiceException( ServiceException.ServiceCode.DATASET_NOT_FOUND, e );
-        }
+            throw new ServiceException( ServiceException.ServiceCode.JEU_NOT_FOUND, e );
+        }
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void removeJeuById( @NotNull final Integer jeuId )
+            throws ServiceException
+    {
+        // TODO lancer moulinette Ã  VP
+        final String bob = "bib";
+//        try
+//        {
+//            _jeuDAO.deleteByPrimaryKey( jeuId );
+//        }
+//        catch( PersistenceException e )
+//        {
+//            throw new ServiceException( ServiceException.ServiceCode.PERSISTENCE, e );
+//        }
+    }
+
+    @Nullable
+    @Transactional(readOnly = true)
+    public Jeu getJeuById( @NotNull final Integer jeuId )
+            throws ServiceException
+    {
+        try
+        {
+            return _jeuDAO.selectByPrimaryKey( jeuId );
+        }
+        catch( PersistenceException e )
+        {
+            throw new ServiceException( ServiceException.ServiceCode.JEU_NOT_FOUND, e );
+        }
+    }
+
+    /**
+     * This method moves all dataset's files from download directory to upload directory
+     *
+     * @param jeu
+     * @param downloadDirectory
+     * @param uploadDirectory
+     */
+    public void moveFilesFromDownloadToUpload( @NotNull final Jeu jeu, @NotNull final String downloadDirectory, @NotNull final String uploadDirectory )
+            throws ServiceException
+    {
+        if( null == jeu.getCategorie() || null == jeu.getCategorie().getCategorieNom() )
+            throw new ServiceException( ServiceException.ServiceCode.JEU_NOT_CORRECT, "ERROR to move jeu to download directory to upload directory" + jeu );
+
+        final String downloadFilesPath = downloadDirectory + File.separatorChar + jeu.getCategorie().getCategorieNom() + File.separatorChar + jeu.getJeuNom();
+        final String uploadFilesPath = uploadDirectory + File.separatorChar + jeu.getCategorie().getCategorieNom() + File.separatorChar + jeu.getJeuNom();
+
+        final boolean success = EtherHelper.moveFiles( downloadFilesPath, uploadFilesPath );
+        if( !success )
+        {
+            // File was not successfully moved
+        }
+        final String bob = "bib";
     }
 
Index: /ether_megapoli/trunk/service/interface/com/ether/EtherService.java
===================================================================
--- /ether_megapoli/trunk/service/interface/com/ether/EtherService.java	(revision 474)
+++ /ether_megapoli/trunk/service/interface/com/ether/EtherService.java	(revision 475)
@@ -135,5 +135,14 @@
             throws ServiceException;
 
-    PaginatedResult<Jeu> searchDatasets( @NotNull final JeuFilter filter )
+    PaginatedResult<Jeu> searchJeux( @NotNull final JeuFilter filter )
+            throws ServiceException;
+
+    void removeJeuById( @NotNull final Integer jeuId )
+            throws ServiceException;
+
+    Jeu getJeuById( @NotNull final Integer jeuId )
+            throws ServiceException;
+
+    void moveFilesFromDownloadToUpload( @NotNull final Jeu jeu, @NotNull final String downloadDirectory, @NotNull final String uploadDirectory )
             throws ServiceException;
 }
Index: /ether_megapoli/trunk/service/interface/com/ether/ServiceException.java
===================================================================
--- /ether_megapoli/trunk/service/interface/com/ether/ServiceException.java	(revision 474)
+++ /ether_megapoli/trunk/service/interface/com/ether/ServiceException.java	(revision 475)
@@ -20,4 +20,9 @@
     }
 
+    public ServiceException( final Enum<? extends Code> code, final String message )
+    {
+        super( code, message );
+    }
+
     public static enum ServiceCode
             implements Code
@@ -38,5 +43,6 @@
         PERSON_NOT_FOUND,
         REQUEST_NOT_FOUND,
-        DATASET_NOT_FOUND
+        JEU_NOT_FOUND,
+        JEU_NOT_CORRECT
     }
 }
Index: /ether_megapoli/trunk/web/backoffice/dataInsertion-script.jsp
===================================================================
--- /ether_megapoli/trunk/web/backoffice/dataInsertion-script.jsp	(revision 474)
+++ /ether_megapoli/trunk/web/backoffice/dataInsertion-script.jsp	(revision 475)
@@ -1,24 +1,25 @@
+<%@ page import="com.medias.Context" %>
+<%@ page import="java.io.File" %>
 <script type="text/javascript">
-var interfaceBOMco = Class.create( {
-
-    initialize: function( requestNumber, jSonRequests, jSonRequestStates, jSonRequestTypes )
+var interfaceBODataInsertion = Class.create( {
+
+    initialize: function( datasetNumber, jSonDatasets )
     {
         // Values
-        this.jSonRequests = jSonRequests || null;
-        this.jSonRequestStates = jSonRequestStates || null;
-        this.jSonRequestTypes = jSonRequestTypes || null;
-        this.request = false;
-        this.nbRequests = requestNumber || false;
+        this.jSonDatasets = jSonDatasets || null;
+        this.dataset = false;
+        this.nbDatasets = datasetNumber || false;
+        this.downloadDirectory = '<%=Context.getProperty(request, "accessDir")%>';
+        this.uploadDirectory = '<%=Context.getProperty(request, "uploadDir")%>';
 
         // Containers
-        this.generalContainerRequests = $( "#generalContainerRequests" );
-        this.containerRequests = $( "#containerRequests" );
-        this.containerAddOrModifyTitle = $( "#addOrModifyTitle" );
+        this.generalContainerDatasets = $( "#generalContainerDatasets" );
+        this.containerDatasets = $( "#containerDataSets" );
         this.containerErrors = $( "#errors" );
-        this.containerRequestsNumber = $( "#nbResults" );
+        this.containerDatasetsNumber = $( "#nbResults" );
+        this.containerFilesMove = $( "#containerFilesMove" );
+        this.containerResultFilesMove = $( "#resultFilesMove" );
 
         this.containerSorts = $( "#containerSorts" );
-        this.containerSortsStates = $( "#containerSorts_states" );
-        this.containerSortsTypes = $( "#containerSorts_types" );
         this.containerSortsDisplay = $( "#containerSorts_display" );
         this.containerPage = $( "#page" );
@@ -28,71 +29,32 @@
         // Create loading object for users
         var param = new Object();
-        param.id = "loadingForRequest";
-        param.parent = this.generalContainerRequests;
-        this.loadingRequest = new Loading( param );
-        this.loadingRequest.display();
+        param.id = "loadingForDataset";
+        param.parent = this.generalContainerDatasets;
+        this.loadingDataset = new Loading( param );
+        this.loadingDataset.display();
 
         this.containerErrors.hide();
-        this.updateAddRequestButtonAndTitle();
         this.displaySorts();
-        this.managePartAddOrModify();
         this.managePagination();
-        this.displayRequests();
+        this.displayDatasets();
     },
 
     // REQUESTS ********************************************************
-    requestAddRequest: function()
-    {
-        if( !this.verifyFields() )
-        {
-            var parametersUrl = "code=" + stripVowelAccent( $( "#code" ).val() ) + "&email=" + $( "#email" ).val() + "&state=" + this.selectStates.getValue() + "&type=" + this.selectTypes.getValue() +
-                    "&title=" + stripVowelAccent( $( "#titleRequest" ).val() ) + "&informations=" + stripVowelAccent( $( "#informations" ).val() );
-            var request = $.ajax( {
-                url: "backoffice?methodName=addRequest&" + parametersUrl,
-                success:jQuery.proxy( this.handleRequest, this ),
-                error: jQuery.proxy( this.showErrors, [this] )
-            } );
-        }
-    },
-
-    requestCloseRequest: function()
-    {
-        if( this.request )
+    requestRemoveRequest: function()
+    {
+        if( this.dataset )
             $.ajax( {
-                url: "backoffice?methodName=closeRequest&id=" + this.request.id,
+                url: "backoffice?methodName=removeJeu&id=" + this.dataset.id,
                 success:jQuery.proxy( this.handleRequest, this )
             } );
     },
 
-    requestRemoveRequest: function()
-    {
-        if( this.request )
-            $.ajax( {
-                url: "backoffice?methodName=removeRequest&id=" + this.request.id,
-                success:jQuery.proxy( this.handleRequest, this )
-            } );
-    },
-
-    requestModifyRequest: function()
-    {
-        if( this.request && !this.verifyFields() )
-        {
-            var parametersUrl = "id=" + this.request.id + "&code=" + stripVowelAccent( $( "#code" ).val() ) + "&email=" + $( "#email" ).val() +
-                    "&type=" + this.selectTypes.getValue() + "&state=" + this.selectStates.getValue() + "&title=" + stripVowelAccent( $( "#titleRequest" ).val() ) + "&informations=" + stripVowelAccent( $( "#informations" ).val() );
-            $.ajax( {
-                url: "backoffice?methodName=modifyRequest&" + parametersUrl,
-                success:jQuery.proxy( this.handleRequest, this ),
-                error: jQuery.proxy( this.showErrors, [this] )
-            } );
-        }
-    },
-
-    requestSortRequest: function()
-    {
-        var parametersUrl = "sort=" + this.selectSorts.getValue() + "&sortState=" + this.selectSortsStates.getValue() + "&sortType=" + this.selectSortsTypes.getValue() +
+    requestSortDataset: function()
+    {
+        var parametersUrl = "sort=" + this.selectSorts.getValue() +
                 "&searchText=" + $( "#search_text" ).val() +
                 "&maxResults=" + this.selectSortsDisplay.getValue() + "&page=" + this.containerPage.html();
         var request = $.ajax( {
-            url: "backoffice?methodName=sortRequest&" + parametersUrl,
+            url: "backoffice?methodName=sortJeu&" + parametersUrl,
             success:jQuery.proxy( this.handleSortRequest, this ),
             error: jQuery.proxy( this.showErrors, [this] )
@@ -100,72 +62,64 @@
     },
 
+    requestFilesMove: function()
+    {
+        if( this.dataset )
+            $.ajax( {
+                url: "backoffice?methodName=moveJeu&id=" + this.dataset.id,
+                success:jQuery.proxy( this.handleFilesMove, this )
+            } );
+    },
+
     // HANDLES ********************************************************
     handleRequest: function()
     {
-        this.requestSortRequest();
+        this.requestSortDataset();
     },
 
     handleSortRequest: function( result )
     {
-        this.jSonRequests = jQuery.parseJSON( result ).jSonRequests;
-        this.nbRequests = jQuery.parseJSON( result ).requestNumber;
-        this.displayRequests();
-        this.clearAddOrModifyRequestFields();
-        this.updateAddRequestButtonAndTitle();
+        this.jSonDatasets = jQuery.parseJSON( result ).jSonDatasets;
+        this.nbDatasets = jQuery.parseJSON( result ).datasetNumber;
+        this.displayDatasets();
+        this.displayFilesMove();
+    },
+
+    handleFilesMove: function( result )
+    {
+        this.containerResultFilesMove.html( "OK" );
     },
 
     // DISPLAYS ********************************************************
-    displayTRForRequest: function( request )
+    displayTRForDataset: function( dataset )
     {
         var tr = $( document.createElement( "tr" ) );
         var tdId = $( document.createElement( "td" ) );
-        tdId.html( request.id );
+        tdId.html( dataset.id );
         tr.append( tdId );
-        var tdType = $( document.createElement( "td" ) );
-        tdType.html( interfaceTexts[request.type] );
-        tr.append( tdType );
-        var tdCode = $( document.createElement( "td" ) );
-        tdCode.html( request.code );
-        tr.append( tdCode );
+        var tdName = $( document.createElement( "td" ) );
+        tdName.html( dataset.name );
+        tr.append( tdName );
         var tdCreationDate = $( document.createElement( "td" ) );
-        tdCreationDate.html( formatDate( new Date( request.creationDate.time ) ) );
+        tdCreationDate.html( formatDate( new Date( dataset.creationDate.time ) ) );
         tr.append( tdCreationDate );
-        var tdEmail = $( document.createElement( "td" ) );
-        tdEmail.html( request.emailUser );
-        tr.append( tdEmail );
-        var tdState = $( document.createElement( "td" ) );
-        tdState.html( interfaceTexts[request.state] );
-        tr.append( tdState );
-        var tdClosingDate = $( document.createElement( "td" ) );
-//        if( request.closingDate )
-//            tdClosingDate.html( formatDate( new Date( request.closingDate.time ) ) );
-//        tr.append( tdClosingDate );
         return tr;
     },
 
-    displayRequests: function()
-    {
-        this.containerRequests.empty();
-
-        if( this.jSonRequests && 0 < this.jSonRequests.length )
+    displayDatasets: function()
+    {
+        this.containerDatasets.empty();
+
+        if( this.jSonDatasets && 0 < this.jSonDatasets.length )
         {
-            jQuery.each( this.jSonRequests, jQuery.proxy( function( i, request )
+            jQuery.each( this.jSonDatasets, jQuery.proxy( function( i, request )
             {
-                var tr = this.displayTRForRequest( request );
+                var tr = this.displayTRForDataset( request );
 
                 // Buttons
-                var tdModify = $( document.createElement( "td" ) );
-                new Button( {value:interfaceTexts["bo.modify"], parent:tdModify, id:"button_modify", className: "small positive action_button", contextToSave: request, onClick:jQuery.proxy( this.onClickModify, this )} );
-                tr.append( tdModify );
-
-                var tdClose = $( document.createElement( "td" ) );
-                new Button( {value:interfaceTexts["bo.close"], parent:tdClose, id:"button_close", className: "small action_button", contextToSave: request, onClick:jQuery.proxy( this.onClickClose, this )} );
-                tr.append( tdClose );
-
                 var tdRemove = $( document.createElement( "td" ) );
                 new Button( {value:interfaceTexts["bo.remove"], parent:tdRemove, id:"button_remove", className: "small negative action_button", contextToSave: request, onClick:jQuery.proxy( this.onClickRemove, this )} );
                 tr.append( tdRemove );
 
-                this.containerRequests.append( tr );
+                this.containerDatasets.append( tr );
 
             }, this ) );
@@ -175,14 +129,14 @@
             var tr = $( document.createElement( "tr" ) );
             var td = $( document.createElement( "td" ) );
-            td.attr( {colspan:"11"} );
-            td.html( "<center><BR/>" + interfaceTexts["bo.noRequest"] + "<BR/><BR/></center>" );
+            td.attr( {colspan:"4"} );
+            td.html( "<center><BR/>" + interfaceTexts["bo.noDataset"] + "<BR/><BR/></center>" );
             tr.append( td );
-            this.containerRequests.append( tr );
+            this.containerDatasets.append( tr );
         }
 
         // Update number of users and max pages
-        this.containerRequestsNumber.html( this.nbRequests );
-        this.containerMaxPage.html( Math.ceil( this.nbRequests / this.selectSortsDisplay.getValue() ) );
-        this.loadingRequest.hide();
+        this.containerDatasetsNumber.html( this.nbDatasets );
+        this.containerMaxPage.html( Math.ceil( this.nbDatasets / this.selectSortsDisplay.getValue() ) );
+        this.loadingDataset.hide();
     },
 
@@ -195,30 +149,7 @@
         this.selectSorts = new Select( paramSelect );
         this.selectSorts.add( "jeuId", interfaceTexts["bo.id"] );
+        this.selectSorts.add( "jeuNom", interfaceTexts["bo.name"] );
         this.selectSorts.add( "jeuDateinser", interfaceTexts["bo.user.creationDate"] );
         this.selectSorts.selectFirst( false );
-
-        // Sort by state
-        var paramSelect = new Object();
-        paramSelect.id = "select_sorts_states";
-        paramSelect.parent = this.containerSortsStates;
-        this.selectSortsStates = new Select( paramSelect );
-        this.selectSortsStates.add( "ALL", interfaceTexts["bo.all"] );
-        jQuery.each( this.jSonRequestStates, jQuery.proxy( function ( i, jSonRequestState )
-        {
-            this.selectSortsStates.add( jSonRequestState.value, interfaceTexts[jSonRequestState.text] );
-        }, this ) );
-        this.selectSortsStates.selectFirst( false );
-
-        // Sort by type
-        var paramSelect = new Object();
-        paramSelect.id = "select_sorts_types";
-        paramSelect.parent = this.containerSortsTypes;
-        this.selectSortsTypes = new Select( paramSelect );
-        this.selectSortsTypes.add( "ALL", interfaceTexts["bo.all"] );
-        jQuery.each( this.jSonRequestTypes, jQuery.proxy( function ( i, jSonRequestType )
-        {
-            this.selectSortsTypes.add( jSonRequestType.value, interfaceTexts[jSonRequestType.text] );
-        }, this ) );
-        this.selectSortsTypes.selectFirst( false );
 
         // Number of displays
@@ -237,38 +168,21 @@
     },
 
+    displayFilesMove: function()
+    {
+        if( this.dataset && this.dataset.categoryName )
+        {
+            this.containerFilesMove.html( "MOVE <span style='color:#FBE3E4'>" + this.downloadDirectory + "<%=File.separatorChar%>" + this.dataset.categoryName + "<%=File.separatorChar%>" + this.dataset.name + "<%=File.separatorChar%>* </span> <BR/>" +
+                    "TO &nbsp;&nbsp;&nbsp;&nbsp; <span style='color:#FBE3E4'>" + this.uploadDirectory + "<%=File.separatorChar%>" + this.dataset.categoryName + "<%=File.separatorChar%>" + this.dataset.name + "<%=File.separatorChar%>* </span>" );
+
+            new Button( {value:interfaceTexts["bo.move"], parent:this.containerFilesMove, id:"button_move", className: "small negative action_button", onClick:jQuery.proxy( this.onClickMove, this )} );
+        }
+    },
+
     // EVENTS ********************************************************
-    onClickModify: function( request )
-    {
-        this.request = request;
-        $( "#code" ).val( request.code );
-        $( "#creationDate" ).val( formatDate( new Date( request.creationDate.time ) ) );
-        if( request.closingDate )
-            $( "#closingDate" ).val( formatDate( new Date( request.closingDate.time ) ) );
-        $( "#email" ).val( request.emailUser );
-        $( "#titleRequest" ).val( request.title );
-        $( "#informations" ).val( request.informations );
-        this.selectTypes.select( request.type, false );
-        this.selectStates.select( request.state, false );
-
-        this.updateModifyRequestButtonAndTitle( request.id );
-    },
-
-    onClickClose: function( request )
-    {
-        this.request = request;
-        jQuery.proxy( this.requestCloseRequest(), this );
-    },
-
-    onClickRemove: function( request )
-    {
-        this.request = request;
-        if( window.confirm( interfaceTexts["bo.mco.remove.confirm"] + " " + request.code + " ?" ) )
-            jQuery.proxy( this.requestRemoveRequest(), this );
-    },
-
-    onClickInit: function()
-    {
-        this.updateAddRequestButtonAndTitle();
-        this.clearAddOrModifyRequestFields();
+    onClickRemove: function( dataset )
+    {
+        this.dataset = dataset;
+//        if( window.confirm( interfaceTexts["bo.dataset.remove.confirm"] + " " + dataset.name + " ?" ) )
+        jQuery.proxy( this.requestRemoveRequest(), this );
     },
 
@@ -276,5 +190,5 @@
     {
         this.containerPage.html( 1 );
-        this.requestSortRequest();
+        this.requestSortDataset();
     },
 
@@ -282,5 +196,5 @@
     {
         decrementPage( this.containerPage, this.containerMaxPage );
-        this.requestSortRequest();
+        this.requestSortDataset();
     },
 
@@ -288,5 +202,10 @@
     {
         incrementPage( this.containerPage, this.containerMaxPage );
-        this.requestSortRequest();
+        this.requestSortDataset();
+    },
+
+    onClickMove: function()
+    {
+        this.requestFilesMove();
     },
 
Index: /ether_megapoli/trunk/web/backoffice/dataInsertion.jsp
===================================================================
--- /ether_megapoli/trunk/web/backoffice/dataInsertion.jsp	(revision 474)
+++ /ether_megapoli/trunk/web/backoffice/dataInsertion.jsp	(revision 475)
@@ -30,5 +30,5 @@
     <tiles:put name="body" type="string">
         <%-- ****************** DATASETS REMOVE ****************** --%>
-        <div class="title2"><bean:message key="bo.dataset.remove"/> :</div>
+        <div class="title2">1st <bean:message key="bo.step"/>. <bean:message key="bo.dataset.remove"/> :</div>
         <BR/>
 
@@ -87,7 +87,14 @@
         <BR/>
         <HR width="50%">
+        <%-- ****************** FILES MOVE ****************** --%>
+        <div class="title2">2nd <bean:message key="bo.step"/>. <bean:message key="bo.file.move"/> :</div>
+        <BR/>
+        <div id="containerFilesMove"></div>
+        <div id="resultFilesMove"></div>
+        <BR/>
+        <HR width="50%">
 
         <%-- ****************** DATASETS INSERTION ****************** --%>
-        <div class="title2"><bean:message key="bo.dataset.remove"/> :</div>
+        <div class="title2">3rd <bean:message key="bo.step"/>.<bean:message key="bo.dataset.remove"/> :</div>
         <BR/>
 
@@ -96,37 +103,15 @@
         <script type="text/javascript">
             var interfaceTexts = $A( "" );
-            interfaceTexts["bo.noRequest"] = '<bean:message key="bo.noRequest"/>';
-            interfaceTexts["bo.add"] = '<bean:message key="bo.add"/>';
-            interfaceTexts["bo.modify"] = '<bean:message key="bo.modify"/>';
+            interfaceTexts["bo.noDataset"] = '<bean:message key="bo.noDataset"/>';
             interfaceTexts["bo.remove"] = '<bean:message key="bo.remove"/>';
-            interfaceTexts["bo.close"] = '<bean:message key="bo.close"/>';
-            interfaceTexts["bo.mco.remove.confirm"] = '<bean:message key="bo.mco.remove.confirm"/>';
+            interfaceTexts["bo.dataset.remove.confirm"] = '<bean:message key="bo.dataset.remove.confirm"/>';
             interfaceTexts["bo.id"] = '<bean:message key="bo.id"/>';
-            interfaceTexts["bo.mco.add"] = '<bean:message key="bo.mco.add"/>';
-            interfaceTexts["bo.mco.modify"] = '<bean:message key="bo.mco.modify"/>';
-            interfaceTexts["bo.user.email"] = '<bean:message key="bo.user.email"/>';
+            interfaceTexts["bo.name"] = '<bean:message key="bo.name"/>';
             interfaceTexts["bo.user.creationDate"] = '<bean:message key="bo.user.creationDate"/>';
-            interfaceTexts["bo.closingDate"] = '<bean:message key="bo.closingDate"/>';
             interfaceTexts["bo.all"] = '<bean:message key="bo.all"/>';
-            interfaceTexts["bo.field.code"] = '<bean:message key="bo.field.code"/>';
-            interfaceTexts["bo.field.email"] = '<bean:message key="bo.field.email"/>';
+            interfaceTexts["bo.go"] = '<bean:message key="bo.go"/>';
+            interfaceTexts["bo.move"] = '<bean:message key="bo.move"/>';
 
-            interfaceTexts["<%=McoState.A_OPENED%>"] = "<bean:message key="bo.opened"/>";
-            interfaceTexts["<%=McoState.C_REFUSED%>"] = "<bean:message key="bo.user.refused"/>";
-            interfaceTexts["<%=McoState.D_CLOSED%>"] = "<bean:message key="bo.closed"/>";
-            interfaceTexts["<%=McoState.B_IN_WORK%>"] = "<bean:message key="bo.inWork"/>";
-
-            interfaceTexts["<%=McoType.NEW_ACCOUNT%>"] = "<bean:message key="bo.new.account"/>";
-            interfaceTexts["<%=McoType.EMAIL_LOGIN%>"] = "<bean:message key="bo.email.login"/>";
-            interfaceTexts["<%=McoType.NO_ACCESS%>"] = "<bean:message key="bo.no.access"/>";
-            interfaceTexts["<%=McoType.PROBLEM%>"] = "<bean:message key="bo.problem"/>";
-            interfaceTexts["<%=McoType.PROBLEM_DATA%>"] = "<bean:message key="bo.problem.data"/>";
-            interfaceTexts["<%=McoType.PROBLEM_DATE%>"] = "<bean:message key="bo.problem.date"/>";
-            interfaceTexts["<%=McoType.BETA_TEST%>"] = "<bean:message key="bo.beta.test"/>";
-            interfaceTexts["<%=McoType.OTHER%>"] = "<bean:message key="bo.other"/>";
-
-            interfaceTexts["<%=WebException.WebCode.MCO_ALREADY_EXISTS%>"] = "<bean:message key="bo.mco.already.exist"/>";
-
-            new interfaceBOMco( ${requestNumber}, ${jSonRequests}, ${jSonRequestStates}, ${jSonRequestTypes} );
+            new interfaceBODataInsertion( ${datasetNumber}, ${jSonDatasets} );
         </script>
 
Index: /ether_megapoli/trunk/web/resources/css/backoffice.css
===================================================================
--- /ether_megapoli/trunk/web/resources/css/backoffice.css	(revision 474)
+++ /ether_megapoli/trunk/web/resources/css/backoffice.css	(revision 475)
@@ -73,5 +73,5 @@
 /** ************************ OTHER ********************** **/
 /** ***************************************************** **/
-#loadingForUser, #loadingForWaitingUser, #loadingForRequest {
+#loadingForUser, #loadingForWaitingUser, #loadingForRequest, #loadingForDataset {
     margin: auto;
 }
@@ -81,2 +81,7 @@
     font-weight: bold;
 }
+
+#button_move {
+    float: right;
+    margin-right: 11px;
+}
Index: /ether_megapoli/trunk/web/src/ApplicationResources_en.properties
===================================================================
--- /ether_megapoli/trunk/web/src/ApplicationResources_en.properties	(revision 474)
+++ /ether_megapoli/trunk/web/src/ApplicationResources_en.properties	(revision 475)
@@ -630,6 +630,11 @@
 bo.other=Other
 
+bo.step=step
 bo.data.insertion=Data insertion
 bo.dataset.remove=Dataset remove
 bo.dataset.list=List of datasets
 bo.name=Name
+bo.file.move=Move files from download directory to upload directory
+bo.noDataset=No dataset
+bo.dataset.remove.confirm=Do you really want to remove the dataset
+bo.move=Move
Index: /ether_megapoli/trunk/web/src/com/ether/ControllerBackoffice.java
===================================================================
--- /ether_megapoli/trunk/web/src/com/ether/ControllerBackoffice.java	(revision 474)
+++ /ether_megapoli/trunk/web/src/com/ether/ControllerBackoffice.java	(revision 475)
@@ -76,5 +76,5 @@
             throws WebException
     {
-        return sortDataSet( "jeuId", null, 5, 1 );
+        return sortJeu( "jeuId", null, 5, 1 );
     }
 
@@ -439,8 +439,8 @@
      */
     @ControllerMethod(jsonResult = true)
-    public JSONObject sortDataSet( @NotNull @ParamName("sort") final String sort,
-                                   @Nullable @ParamName("searchText") final String searchText,
-                                   @ParamName(ParameterConstants.PARAMETER_MAX_RESULTS) final Integer maxResults,
-                                   @ParamName(ParameterConstants.PARAMETER_PAGE) final Integer page )
+    public JSONObject sortJeu( @NotNull @ParamName("sort") final String sort,
+                               @Nullable @ParamName("searchText") final String searchText,
+                               @ParamName(ParameterConstants.PARAMETER_MAX_RESULTS) final Integer maxResults,
+                               @ParamName(ParameterConstants.PARAMETER_PAGE) final Integer page )
             throws WebException
     {
@@ -449,5 +449,5 @@
             final JeuFilter filter = new JeuFilter( sort, searchText, maxResults, page );
 
-            final PaginatedResult<Jeu> datasets = getEtherService().searchDatasets( filter );
+            final PaginatedResult<Jeu> datasets = getEtherService().searchJeux( filter );
 
             final JSONObject result = new JSONObject();
@@ -459,4 +459,35 @@
         {
             throw new WebException( WebException.WebCode.ERROR_NO_REQUEST_FOUND, e );
+        }
+    }
+
+    @ControllerMethod()
+    public void removeJeu( @NotNull @ParamName(ParameterConstants.PARAMETER_ID) final Integer jeuId )
+            throws WebException
+    {
+        try
+        {
+            getEtherService().removeJeuById( jeuId );
+        }
+        catch( ServiceException e )
+        {
+            throw new WebException( WebException.WebCode.ERROR_NO_JEU_FOUND, e );
+        }
+    }
+
+    @ControllerMethod()
+    public void moveJeu( @NotNull @ParamName(ParameterConstants.PARAMETER_ID) final Integer jeuId )
+            throws WebException
+    {
+        try
+        {
+            final Jeu jeu = getEtherService().getJeuById( jeuId );
+            final String downloadDirectory = (String) getServletContext().getAttribute( "accessDir" );
+            final String uploadDirectory = (String) getServletContext().getAttribute( "uploadDir" );
+            getEtherService().moveFilesFromDownloadToUpload( jeu, downloadDirectory, uploadDirectory );
+        }
+        catch( ServiceException e )
+        {
+            throw new WebException( WebException.WebCode.ERROR_NO_JEU_FOUND, e );
         }
     }
Index: /ether_megapoli/trunk/web/src/com/ether/WebException.java
===================================================================
--- /ether_megapoli/trunk/web/src/com/ether/WebException.java	(revision 474)
+++ /ether_megapoli/trunk/web/src/com/ether/WebException.java	(revision 475)
@@ -49,5 +49,6 @@
         MCO_ALREADY_EXISTS,
         ERROR_NO_USER_FOUND,
-        ERROR_NO_REQUEST_FOUND
+        ERROR_NO_REQUEST_FOUND,
+        ERROR_NO_JEU_FOUND
     }
 
Index: /ether_megapoli/trunk/web/src/json/serializers/JeuJsonSerializer.java
===================================================================
--- /ether_megapoli/trunk/web/src/json/serializers/JeuJsonSerializer.java	(revision 474)
+++ /ether_megapoli/trunk/web/src/json/serializers/JeuJsonSerializer.java	(revision 475)
@@ -15,4 +15,6 @@
         serialize( result, "name", jeu.getJeuNom(), jsonConfig );
         serialize( result, "creationDate", jeu.getJeuDateinser(), jsonConfig );
+        if( null != jeu.getCategorie() )
+            serialize( result, "categoryName", jeu.getCategorie().getCategorieNom(), jsonConfig );
 
         return result;
