diff --git a/src/frontend/app/app-routing.module.ts b/src/frontend/app/app-routing.module.ts
index 1de7102e906ffb946d3c42eb5741e4d7c9e2da05..e9fb98ca2b074917c09e0fbbed7a6b9edc9cf313 100755
--- a/src/frontend/app/app-routing.module.ts
+++ b/src/frontend/app/app-routing.module.ts
@@ -11,7 +11,8 @@ import { SignatureBookComponent }           from './signature-book.component';
 import { SaveNumericPackageComponent }      from './save-numeric-package.component';
 import { PrintSeparatorComponent }          from './separator/print-separator/print-separator.component';
 import { AppGuard }                         from '../service/app.guard';
-import { FolderDocumentListComponent } from './folder/document-list/folder-document-list.component';
+import { FolderDocumentListComponent }      from './folder/document-list/folder-document-list.component';
+import { IndexationComponent }              from './indexation/indexation.component';
 
 @NgModule({
     imports: [
@@ -26,6 +27,7 @@ import { FolderDocumentListComponent } from './folder/document-list/folder-docum
             { path: 'saveNumericPackage', canActivate: [AppGuard], component: SaveNumericPackageComponent },
             { path: 'separators/print', canActivate: [AppGuard], component: PrintSeparatorComponent },
             { path: 'signatureBook/users/:userId/groups/:groupId/baskets/:basketId/resources/:resId', canActivate: [AppGuard],component: SignatureBookComponent },
+            { path: 'indexing/:group', canActivate: [AppGuard],component: IndexationComponent },
             { path: '**',  redirectTo: 'home', pathMatch: 'full' },
         ], { useHash: true }),
     ],
diff --git a/src/frontend/app/app.module.ts b/src/frontend/app/app.module.ts
index 1fecd88464f38f0f80798f160b31e9db8ed6e3df..0d2a578d2a508a8d680e307dd9fe4174b906795d 100755
--- a/src/frontend/app/app.module.ts
+++ b/src/frontend/app/app.module.ts
@@ -65,6 +65,8 @@ import { AvisWorkflowComponent }             from './avis/avis-workflow.componen
 
 import { PrintSeparatorComponent }                        from './separator/print-separator/print-separator.component';
 
+import { IndexationComponent }                        from './indexation/indexation.component';
+
 
 @NgModule({
     imports: [
@@ -123,7 +125,8 @@ import { PrintSeparatorComponent }                        from './separator/prin
         FolderDocumentListComponent,
         FolderMenuComponent,
         FolderUpdateComponent,
-        FolderActionListComponent
+        FolderActionListComponent,
+        IndexationComponent
     ],
     entryComponents: [
         CustomSnackbarComponent,
diff --git a/src/frontend/app/indexation/indexation.component.html b/src/frontend/app/indexation/indexation.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..e22cddd3a0428416053ce371b124a242cb7c3099
--- /dev/null
+++ b/src/frontend/app/indexation/indexation.component.html
@@ -0,0 +1,74 @@
+<mat-sidenav-container class="maarch-container">
+    <mat-sidenav #snavLeft class="panel-left" #snav [mode]="appService.getViewMode() ? 'over' : 'side'"
+        [fixedInViewport]="appService.getViewMode()" [opened]="appService.getViewMode() ? false : true"
+        autoFocus="false" style="overflow-x:hidden;" [ngStyle]="{'width': appService.getViewMode() ? '95%' : '600px'}">
+        <header-panel [snavLeft]="snav"></header-panel>
+        <div style="background: #F9F9F9;display: flex;padding: 10px;padding-left: 40px;padding-right: 40px;">
+            <button mat-button class="button-form-primary" [matMenuTriggerFor]="menu" style="flex:1;margin-right:20px;">
+                <span class="menu-label">
+                    Mon modèle (par défaut)
+                </span>
+                <i class="fa fa-chevron-down menu-icon"></i></button>
+            <mat-menu #menu="matMenu" [class]="'menuForm'">
+                <button mat-menu-item>Item 1</button>
+                <button mat-menu-item>Item 2</button>
+            </mat-menu>
+            <button mat-button class="button-form-primary"
+                style="flex:1;align-items: center;justify-content: center;text-align: center;display: flex;">Enregistrer
+                comme modèle</button>
+        </div>
+        <div class="indexing-form-container">
+            <app-indexing-form #indexingForm [indexingFormId]="1"></app-indexing-form>
+        </div>
+        <div class="actions-indexing-form">
+            <button mat-button class="button-form-primary" [matMenuTriggerFor]="menu" style="flex:1;margin-right:20px;">
+                <span class="menu-label">
+                    Enregistrer (par défaut)
+                </span>
+                <i class="fa fa-chevron-down menu-icon"></i></button>
+            <mat-menu #menu="matMenu" [class]="'menuForm'">
+                <button mat-menu-item>Item 1</button>
+                <button mat-menu-item>Item 2</button>
+            </mat-menu>
+            <button mat-button class="button-form-primary"
+                style="width: 150px;align-items: center;justify-content: center;text-align: center;display: flex;">Valider</button>
+        </div>
+    </mat-sidenav>
+    <mat-sidenav-content>
+        <div class="bg-head">
+            <div class="bg-head-title" [class.customContainerRight]="appService.getViewMode()">
+                <div class="bg-head-title-label">
+                    <header-left [snavLeft]="snav"></header-left>
+                </div>
+                <div class="bg-head-title-tool">
+                    <header-right></header-right>
+                </div>
+            </div>
+        </div>
+        <div class="document-container" [class.fullContainer]="appService.getViewMode()">
+            <div class="content">
+                <i class="fa fa-file-upload upload-icon"></i><br />
+                Glisser-déposer<br />ou
+                <div style="display: flex;">
+                    <button mat-button class="button-form-primary" [matMenuTriggerFor]="menu"
+                        style="margin-right:20px;align-items: center;justify-content: center;text-align: center;display: flex;">
+                        <span class="menu-label">
+                            Choisir un modèle
+                        </span>
+                        <i class="fa fa-chevron-down menu-icon"></i>
+                    </button>
+                    <mat-menu #menu="matMenu" [class]="'menuForm'">
+                        <button mat-menu-item>Item 1</button>
+                        <button mat-menu-item>Item 2</button>
+                    </mat-menu>
+                    <button mat-button class="button-form-primary" style="align-items: center;justify-content: center;text-align: center;display: flex;">Choisissez votre fichier</button>
+                </div>
+            </div>
+        </div>
+    </mat-sidenav-content>
+    <mat-sidenav #snav2 [fixedInViewport]="appService.getViewMode()" position='end'
+        [opened]="appService.getViewMode() ? false : false" [mode]="appService.getViewMode() ? 'over' : 'side'"
+        class="panel-right" style="overflow-x:hidden;" [class.docView]="!filtersListService.filterMode"
+        [ngStyle]="{'width': appService.getViewMode() ? '80%' : '30%'}" autoFocus="false">
+    </mat-sidenav>
+</mat-sidenav-container>
\ No newline at end of file
diff --git a/src/frontend/app/indexation/indexation.component.scss b/src/frontend/app/indexation/indexation.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..13c8adc0c3b832a9a4a251ea6cfad12aecc7026e
--- /dev/null
+++ b/src/frontend/app/indexation/indexation.component.scss
@@ -0,0 +1,61 @@
+@import '../../css/vars.scss';
+
+.panel-left {
+    ::ng-deep.mat-drawer-inner-container {
+        display: flex;
+        flex-direction: column;
+    }
+}
+
+.document-container {
+    flex: 1;
+    padding-left: 50px;
+    padding-right: 50px;
+    color: white;
+    margin-top: 0px;
+    width: 100%;
+    overflow: hidden;
+    background-color: $primary;
+
+    .content {
+        overflow-y: auto;
+        overflow-x: hidden;
+        position: relative;
+        height: 100%;
+        min-height: 200px;
+        width: 100%;
+        border-radius: 0px;
+        box-shadow: none;
+        border: solid 1px white;
+        justify-content: center;
+        display: flex;
+        align-items: center;
+        text-align: center;
+        font-weight: bold;
+        flex-direction: column;
+    }
+}
+
+.upload-icon {
+    font-size: 180px;
+    opacity: 0.4;
+    margin-bottom: 30px;
+}
+
+.indexing-form-container {
+    height: 100%;
+    overflow: auto;
+    padding-left: 20px;
+    padding-right: 20px;
+    padding-bottom: 20px;
+}
+
+.actions-indexing-form {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    padding: 10px;
+    box-shadow: 0 -5px 10px 0 rgba(0, 0, 0, 0.07);
+    padding-left: 40px;
+    padding-right: 40px;
+}
\ No newline at end of file
diff --git a/src/frontend/app/indexation/indexation.component.ts b/src/frontend/app/indexation/indexation.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3ea0d8ab26c4c3c1041311d501b2837ef2277a24
--- /dev/null
+++ b/src/frontend/app/indexation/indexation.component.ts
@@ -0,0 +1,59 @@
+import { Component, OnInit, ViewChild, ViewContainerRef } from '@angular/core';
+import { HttpClient } from '@angular/common/http';
+import { LANG } from '../translate.component';
+import { NotificationService } from '../notification.service';
+import { MatDialog } from '@angular/material/dialog';
+import { MatSidenav } from '@angular/material/sidenav';
+
+import { DomSanitizer } from '@angular/platform-browser';
+import { ActivatedRoute, Router } from '@angular/router';
+import { HeaderService } from '../../service/header.service';
+import { FiltersListService } from '../../service/filtersList.service';
+
+import { Overlay } from '@angular/cdk/overlay';
+import { AppService } from '../../service/app.service';
+
+@Component({
+    templateUrl: "indexation.component.html",
+    styleUrls: [
+        'indexation.component.scss',
+        'indexing-form/indexing-form.component.scss'
+    ],
+    providers: [NotificationService, AppService],
+})
+export class IndexationComponent implements OnInit {
+
+    lang: any = LANG;
+
+    loading: boolean = false;
+
+
+    @ViewChild('snav', { static: true }) sidenavLeft: MatSidenav;
+    @ViewChild('snav2', { static: true }) sidenavRight: MatSidenav;
+
+    currentSelectedChrono: string = '';
+
+    constructor(
+        private route: ActivatedRoute,
+        public http: HttpClient,
+        public dialog: MatDialog,
+        private headerService: HeaderService,
+        public filtersListService: FiltersListService,
+        private notify: NotificationService,
+        public overlay: Overlay,
+        public viewContainerRef: ViewContainerRef,
+        public appService: AppService) { }
+
+    ngOnInit(): void {
+        this.loading = false;
+
+        this.headerService.setHeader("Enregistrement d'un courrer");
+
+        this.route.params.subscribe(params => {
+
+        },
+        (err: any) => {
+            this.notify.handleErrors(err);
+        });
+    }
+}
\ No newline at end of file
diff --git a/src/frontend/app/indexation/indexing-form/indexing-form.component.html b/src/frontend/app/indexation/indexing-form/indexing-form.component.html
index de612608513183e787810ff44e45b282caa4a1be..3eab00d1c4042ea12ad361f1cf9e01451cfead02 100644
--- a/src/frontend/app/indexation/indexing-form/indexing-form.component.html
+++ b/src/frontend/app/indexation/indexing-form/indexing-form.component.html
@@ -2,6 +2,11 @@
     <mat-spinner style="margin:auto;"></mat-spinner>
 </div>
 <ng-container *ngIf="!loading">
+    <div *ngIf="!adminMode" style="display: flex;align-items: center;justify-content: flex-end;">
+        <button mat-icon-button>
+            <mat-icon color="primary" class="far fa-star" style="font-size: 20px;"></mat-icon>
+        </button>
+    </div>
     <div class="banner" *ngFor="let category of fieldCategories">
         <div class="title">
             {{lang[category] | uppercase}}
@@ -10,15 +15,17 @@
         <div class="content">
             <div cdkDropList id="indexingModelsCustomFieldsList_{{category}}"
                 [cdkDropListConnectedTo]="['indexingModelsCustomFieldsList_mail','indexingModelsCustomFieldsList_contact','indexingModelsCustomFieldsList_process','indexingModelsCustomFieldsList_classement','customFieldsList','fieldsList']"
-                [cdkDropListData]="this['indexingModels_'+category]" (cdkDropListDropped)="drop($event)"
-                class="indexingModelsCustomFieldsList" style="min-height: 50px;">
+                [cdkDropListData]="this['indexingModels_'+category]" [cdkDropListDisabled]="!adminMode"
+                (cdkDropListDropped)="drop($event)" class="indexingModelsCustomFieldsList" style="min-height: 50px;">
                 <ng-container *ngFor="let field of this['indexingModels_'+category];let i=index">
                     <div class="fieldRow" *ngIf="field.unit === category" cdkDrag cdkDragLockAxis="y"
                         [cdkDragData]="field">
                         <div class="fieldLabel">
-                            <i class="fas fa-bars fa-2x" color="primary" style="cursor: move" cdkDragHandle></i>&nbsp;
+                            <i *ngIf="adminMode" class="fas fa-bars fa-2x" color="primary" style="cursor: move"
+                                cdkDragHandle></i>&nbsp;
                             {{field.label}}
-                            <button mat-icon-button [matMenuTriggerFor]="fieldActions" *ngIf="!field.system">
+                            <button *ngIf="adminMode && !field.system" mat-icon-button
+                                [matMenuTriggerFor]="fieldActions">
                                 <mat-icon class="fa fa-ellipsis-v" color="secondary"></mat-icon>
                             </button>
                             <mat-menu #fieldActions="matMenu">
diff --git a/src/frontend/app/indexation/indexing-form/indexing-form.component.scss b/src/frontend/app/indexation/indexing-form/indexing-form.component.scss
index fb92f7310ffb58f117b60c2f90c794f5658acaa7..a7901750cbb4a6076d07ee5f318fcef60a6ecc36 100644
--- a/src/frontend/app/indexation/indexing-form/indexing-form.component.scss
+++ b/src/frontend/app/indexation/indexing-form/indexing-form.component.scss
@@ -141,6 +141,127 @@
     }
 }
 
+.button-form-primary {
+    background: $primary;
+    border: solid 1px white;
+    color: white;
+    border-radius: 30px;
+    padding: 5px;
+    padding-left: 20px;
+    padding-right: 20px;
+    width: 240px;
+    transition: all 0.1s;
+    ::ng-deep.mat-button-wrapper {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        width: 100%;
+        
+        .menu-label {
+            display: flex;
+            flex: 1;
+        }
+        
+        .menu-icon {
+            display: flex;
+        }
+    }
+}
+
+.button-form-primary-alt {
+    font-size: 13px;
+    background: white;
+    border: solid 1px $primary;
+    color: $primary;
+    border-radius: 30px;
+    padding: 5px;
+    padding-left: 20px;
+    padding-right: 20px;
+    width: 240px;
+    transition: all 0.1s;
+
+    ::ng-deep.mat-button-wrapper {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        width: 100%;
+
+        .menu-label {
+            display: flex;
+            flex: 1;
+        }
+        
+        .menu-icon {
+            display: flex;
+        }
+    }
+    
+}
+
+
+
+.button-form-primary:hover {
+    color: $primary;
+    background: white;
+    transition: all 0.1s;
+    border: solid 1px $primary;
+}
+
+
+.button-form-primary[aria-expanded=true] {
+    color: $primary;
+    background: white;
+    transition: all 0.1s;
+    border: solid 1px $primary;
+    /*border-bottom-left-radius: 0px;
+    border-bottom-right-radius: 0px;
+    border-top-left-radius: 30px;
+    border-top-right-radius: 30px;*/
+}
+
+.button-form {
+    background: white;
+    color: $primary;
+    border-radius: 30px;
+    padding: 5px;
+    padding-left: 20px;
+    padding-right: 20px;
+    width: 240px;
+    transition: all 0.1s; 
+}
+
+.button-form[aria-expanded=true] {
+    transition: all 0.1s; 
+    border-bottom-left-radius: 0px;
+    border-bottom-right-radius: 0px;
+    border-top-left-radius: 30px;
+    border-top-right-radius: 30px;
+}
+
+::ng-deep.menuForm {
+    width: 240px;
+    border-radius: 30px;
+
+    border: solid 1px white;
+
+    .mat-menu-content {
+        padding-top: 0px;
+        padding-bottom: 0px;
+
+        .mat-menu-item {
+            transition: all 0.1s;
+            font-size: 12px;
+            color: #666;
+        }
+
+        .mat-menu-item:hover {
+            transition: all 0.1s;
+            color: white;
+            background: $primary;
+        }
+    }
+}
+
 .mat-form-field-disabled {
     ::ng-deep.mat-input-element {
         cursor: not-allowed;
diff --git a/src/frontend/app/indexation/indexing-form/indexing-form.component.ts b/src/frontend/app/indexation/indexing-form/indexing-form.component.ts
index 24247e446b276686d5289d2a220d385ad0987c70..a0603ff149668900e72385ab482ce4bc33db31fd 100644
--- a/src/frontend/app/indexation/indexing-form/indexing-form.component.ts
+++ b/src/frontend/app/indexation/indexing-form/indexing-form.component.ts
@@ -24,6 +24,7 @@ export class IndexingFormComponent implements OnInit {
     loading: boolean = true;
 
     @Input('indexingFormId') indexingFormId: number;
+    @Input('admin') adminMode: boolean;
 
     fieldCategories: any[] = ['mail', 'contact', 'process', 'classement'];
 
@@ -160,7 +161,8 @@ export class IndexingFormComponent implements OnInit {
     }
 
     ngOnInit(): void {
-
+        this.adminMode === undefined ? this.adminMode = false : this.adminMode = true;
+        
         this.fieldCategories.forEach(category => {
             this['indexingModels_' + category] = [];
         });
diff --git a/src/frontend/app/menu/menu-shortcut.component.ts b/src/frontend/app/menu/menu-shortcut.component.ts
index 8215c3da1fb11b147abcfb6189c244b173b4df7a..d2f90deb08f30d0da228edf890bc72ea78a37d43 100755
--- a/src/frontend/app/menu/menu-shortcut.component.ts
+++ b/src/frontend/app/menu/menu-shortcut.component.ts
@@ -39,11 +39,14 @@ export class MenuShortcutComponent implements OnInit {
     }
 
     onSpeedDialFabClicked(group: any, shortcut:any) {
-        location.href = shortcut.servicepage+'&groupId='+group.id;
+        this.router.navigate(['/indexing/' + group.id]);
+        // location.href = shortcut.servicepage+'&groupId='+group.id;
     }
 
     gotToMenu(shortcut:any) {
-        if (shortcut.angular == 'true') {
+        if (shortcut.id === 'indexing') {
+            this.router.navigate([shortcut.servicepage + '/' + shortcut.groups[0].id]);
+        } else if (shortcut.angular == 'true') {
             this.router.navigate([shortcut.servicepage]);
         } else {
             location.href = shortcut.servicepage;
diff --git a/src/frontend/service/header.service.ts b/src/frontend/service/header.service.ts
index 2263743601cdf65cf801682d3a56e5dc6c60c0a0..3488c9579578f713b719432bbe412fe805ce43d7 100755
--- a/src/frontend/service/header.service.ts
+++ b/src/frontend/service/header.service.ts
@@ -37,6 +37,7 @@ export class HeaderService {
         if (this.shortcut === null) {
             this.http.get('../../rest/shortcuts').pipe(
                 tap((data: any) => this.setShortcut(data.shortcuts)),
+                tap((data: any) => console.log(this.shortcut)),
                 catchError((err: any) => {
                     console.log(err);
                     return of(false);
@@ -72,7 +73,7 @@ export class HeaderService {
     setShortcut(shortcuts: any) {
         this.shortcut = [];
         shortcuts.forEach((element: any) => {
-            if (['indexing', 'search'].indexOf(element.id) > -1) {
+            if (['search'].indexOf(element.id) > -1) {
                 // TO DO : DELETE AFTER FULL V2
                 this.setShortcutV1(element);
             } else {