diff --git a/apps/maarch_entreprise/services/Table.php b/apps/maarch_entreprise/services/Table.php
index 2e8465ca84b16d0eafcf95cf51a19ee09277315c..55728e7733a956e643b72a68c4491496cc539a51 100644
--- a/apps/maarch_entreprise/services/Table.php
+++ b/apps/maarch_entreprise/services/Table.php
@@ -255,29 +255,6 @@ class Apps_Table_Service extends Core_Abstract_Service {
         return $db->query($queryExt, $queryExtValues);
     }
 
-    /**
-     * Supprime un row dans la base de données
-     * @param array $aWhere données where
-     * @param array $table table de l'ajout
-     * @return [type]        [description]
-     */
-    public static function deleteInto(array $aWhere, $table){
-        if ( ! is_string($table) ) {
-            throw new Core_MaarchException_Service('$table not a string');
-        }
-        $queryExtWhere = [];
-        $queryExtValues = [];
-        // Where :
-        foreach ($aWhere as $key => $value) {
-            $queryExtWhere[$key] = "{$key}=?";
-            $queryExtValues[] = $value;
-        }
-        $sWhere = empty($aWhere)?'': ' WHERE '.implode(' AND ', $queryExtWhere);
-        $queryExt = 'DELETE FROM '.$table.$sWhere;
-        $db = new Database();
-        return $db->query($queryExt, $queryExtValues);
-    }
-
     /**
      * Fonction de suppression dans la base de données
      * @param array $args
diff --git a/apps/maarch_entreprise/xml/IVS/data_types.xml b/apps/maarch_entreprise/xml/IVS/data_types.xml
index 48a269fa6f9ea5ecb175c1457ac756fbb7544a02..591d4a9f46f8da4376f495601624a783878ed357 100755
--- a/apps/maarch_entreprise/xml/IVS/data_types.xml
+++ b/apps/maarch_entreprise/xml/IVS/data_types.xml
@@ -60,6 +60,8 @@
     </dataType>
     <dataType name="collection_list" base="string">
       <enumeration value="letterbox_coll" />
+      <enumeration value="attachments_coll" />
+      <enumeration value="version_attachments_coll" />
       <enumeration value="business_coll" />
       <enumeration value="res_coll" />
       <enumeration value="apa_coll" />
diff --git a/modules/attachments/services/Attachments.php b/modules/attachments/services/Attachments.php
new file mode 100644
index 0000000000000000000000000000000000000000..7d11fb2f37868cbebeb6b8e14aae8919e652d0a0
--- /dev/null
+++ b/modules/attachments/services/Attachments.php
@@ -0,0 +1,26 @@
+<?php
+
+/*
+*    Copyright 2015 Maarch
+*
+*  This file is part of Maarch Framework.
+*
+*   Maarch Framework is free software: you can redistribute it and/or modify
+*   it under the terms of the GNU General Public License as published by
+*   the Free Software Foundation, either version 3 of the License, or
+*   (at your option) any later version.
+*
+*   Maarch Framework is distributed in the hope that it will be useful,
+*   but WITHOUT ANY WARRANTY; without even the implied warranty of
+*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+*   GNU General Public License for more details.
+*
+*   You should have received a copy of the GNU General Public License
+*    along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+require_once 'modules/attachments/services/AttachmentsAbstract.php';
+
+class Attachments_Attachments_Service extends Attachments_AttachmentsAbstract_Service {
+    // Do your stuff in this class
+}
\ No newline at end of file
diff --git a/modules/attachments/services/AttachmentsAbstract.php b/modules/attachments/services/AttachmentsAbstract.php
new file mode 100644
index 0000000000000000000000000000000000000000..7f74c16d4f9e481d153754c43aa149d7e6035ba6
--- /dev/null
+++ b/modules/attachments/services/AttachmentsAbstract.php
@@ -0,0 +1,113 @@
+<?php
+
+/*
+*    Copyright 2015 Maarch
+*
+*  This file is part of Maarch Framework.
+*
+*   Maarch Framework is free software: you can redistribute it and/or modify
+*   it under the terms of the GNU General Public License as published by
+*   the Free Software Foundation, either version 3 of the License, or
+*   (at your option) any later version.
+*
+*   Maarch Framework is distributed in the hope that it will be useful,
+*   but WITHOUT ANY WARRANTY; without even the implied warranty of
+*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+*   GNU General Public License for more details.
+*
+*   You should have received a copy of the GNU General Public License
+*    along with Maarch Framework.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+require_once('apps/maarch_entreprise/services/Table.php');
+
+class Attachments_AttachmentsAbstract_Service extends Apps_Table_Service {
+
+    /**
+     * Récupération de la liste des méthodes disponibles via api
+     *
+     * @return string[] La liste des méthodes
+     */
+    public static function getApiMethod() {
+        $aApiMethod = parent::getApiMethod();
+
+        return $aApiMethod;
+    }
+
+    public static function getAttachmentsForThumbnails(array $aArgs = []) {
+        static::checkRequired($aArgs, ['resIdMaster']);
+        static::checkNumeric($aArgs, ['resIdMaster']);
+
+
+        $attachments = static::select([
+            'select'    => ['res_id', 'res_id_version', 'attachment_type'],
+            'table'     => ['res_view_attachments'],
+            'where'     => ['res_id_master = ?', 'attachment_type != ?', 'status not in (?)'],
+            'data'      => [$aArgs['resIdMaster'], 'converted_pdf', ['DEL', 'TMP', 'OBS']]
+        ]);
+
+        foreach ($attachments as $key => $value) {
+            $attachments[$key]['collId'] = '';
+            $attachments[$key]['realId'] = 0;
+
+            if ($value['res_id'] == 0) {
+                $attachments[$key]['collId'] = 'version_attachments_coll';
+                $attachments[$key]['realId'] = $value['res_id_version'];
+            } elseif ($value['res_id_version'] == 0) {
+                $attachments[$key]['collId'] = 'attachments_coll';
+                $attachments[$key]['realId'] = $value['res_id'];
+            }
+
+            $attachments[$key]['thumbnailLink'] = "index.php?page=doc_thumb&module=thumbnails&res_id={$attachments[$key]['realId']}&coll_id={$attachments[$key]['collId']}&display=true&advanced=true";
+
+            unset($attachments[$key]['res_id']);
+            unset($attachments[$key]['res_id_version']);
+        }
+
+        return $attachments;
+    }
+
+    public static function getAttachmentsForViewer(array $aArgs = []) {
+        static::checkRequired($aArgs, ['resIdMaster']);
+        static::checkNumeric($aArgs, ['resIdMaster']);
+
+
+        $attachments = static::select([
+            'select'    => ['res_id', 'res_id_version', 'title', 'identifier', 'attachment_type', 'status', 'typist', 'path', 'filename'],
+            'table'     => ['res_view_attachments'],
+            'where'     => ['res_id_master = ?', 'status not in (?)'],
+            'data'      => [$aArgs['resIdMaster'], ['DEL', 'TMP', 'OBS']]
+        ]);
+
+        foreach ($attachments as $key => $value) {
+            if ($value['attachment_type'] == 'converted_pdf') {
+                continue;
+            }
+
+            $attachments[$key]['realId'] = 0;
+            if ($value['res_id'] == 0) {
+                $attachments[$key]['realId'] = $value['res_id_version'];
+            } elseif ($value['res_id_version'] == 0) {
+                $attachments[$key]['realId'] = $value['res_id'];
+            }
+
+            $viewerId = $attachments[$key]['realId'];
+            $pathToFind = $value['path'] . str_replace(strrchr($value['filename'], '.'), '.pdf', $value['filename']);
+            foreach ($attachments as $tmpKey => $tmpValue) {
+                if ($tmpValue['attachment_type'] == 'converted_pdf' && ($tmpValue['path'] . $tmpValue['filename'] == $pathToFind)) {
+                    $viewerId = $tmpValue['res_id'];
+                    unset($attachments[$tmpKey]);
+                }
+            }
+
+            $attachments[$key]['viewerLink'] = "index.php?display=true&module=visa&page=view_pdf_attachement&res_id_master={$aArgs['resIdMaster']}&id={$viewerId}";
+
+            unset($attachments[$key]['res_id']);
+            unset($attachments[$key]['res_id_version']);
+            unset($attachments[$key]['path']);
+            unset($attachments[$key]['filename']);
+        }
+
+        return $attachments;
+    }
+}
\ No newline at end of file
diff --git a/modules/basket/js/aController.js b/modules/basket/js/aController.js
index 60ef60e3663e53c3507fac08f34068b439abc686..5a34bbc7ffb78eab4f0b002e4613fd8668a9cd5c 100644
--- a/modules/basket/js/aController.js
+++ b/modules/basket/js/aController.js
@@ -23,6 +23,11 @@ mainApp.controller("basketCtrl", ["$scope", "$http", "$compile", function($scope
 
   $scope.changeSignatureBookLeftContent = function(id) {
     $scope.signatureBook.headerTab = id;
-  }
+  };
+
+  $scope.changeRightViewer = function(index) {
+    $scope.signatureBook.viewerLink = $scope.signatureBook.viewerAttachments[index].viewerLink;
+    $scope.signatureBook.selectedThumbnail = index;
+  };
 
 }]);
\ No newline at end of file
diff --git a/modules/thumbnails/class/class_modules_tools.php b/modules/thumbnails/class/class_modules_tools.php
index 8644dd73ae8c5019b30d059e2413eb91eb552ac0..49283d2a6d148063c10649364b3be17c811df341 100644
--- a/modules/thumbnails/class/class_modules_tools.php
+++ b/modules/thumbnails/class/class_modules_tools.php
@@ -1,5 +1,7 @@
 <?php
 
+require_once 'apps/maarch_entreprise/services/Table.php';
+
 class thumbnails
 {
 	/*function __construct()
@@ -93,5 +95,68 @@ class thumbnails
 		return $path;
 	}
 
+	/**
+	 * Retrieve the path of source file to process
+	 * @param array $aArgs
+	 * @return string
+	 */
+	public function getTnlPathWithColl(array $aArgs = []) {
+		if (empty($aArgs['resId'])) {
+			throw new \Exception('resId empty');
+		}
+		if (empty($aArgs['collId'])) {
+			throw new \Exception('collId empty');
+		}
+
+		$resId = $aArgs['resId'];
+		$collId = $aArgs['collId'];
+
+		for ($i=0;$i < count($_SESSION['collections']);$i++) {
+			if ($_SESSION['collections'][$i]['id'] == $collId) {
+				$resTable = $_SESSION['collections'][$i]['table'];
+			}
+		}
+		if (empty($resTable)) {
+			return false;
+		}
+
+		$oRowSet = Apps_Table_Service::select([
+			'select'    => ['path_template'],
+			'table'     => ['docservers'],
+			'where'     => ['docserver_id = ?'],
+			'data'      => ['TNL']
+		]);
+
+		if (empty($oRowSet[0]['path_template'])) {
+			throw new \Exception('TNL docserver path empty');
+		}
+
+		$docserverPath = $oRowSet[0]['path_template'];
+
+		$oRowSet = Apps_Table_Service::select([
+			'select'    => ['tnl_path', 'tnl_filename'],
+			'table'     => [$resTable],
+			'where'     => ['res_id = ?'],
+			'data'      => [$resId]
+		]);
+
+		if (empty($oRowSet)) {
+			return false;
+		}
+
+		$path          = '';
+		$filename      = '';
+		if (!empty($oRowSet[0]['tnl_path'])) {
+			$path = $oRowSet[0]['tnl_path'];
+		}
+		if (!empty($oRowSet[0]['tnl_filename'])) {
+			$filename = $oRowSet[0]['tnl_filename'];
+		}
+		$sourceFilePath = $docserverPath . $path . $filename;
+		$sourceFilePath = str_replace('#', DIRECTORY_SEPARATOR, $sourceFilePath);
+
+		return $sourceFilePath;
+	}
+
 }
 
diff --git a/modules/thumbnails/doc_thumb.php b/modules/thumbnails/doc_thumb.php
index a5f4c036c1164a86e3259692ae36b521e161335c..af6e74855c3c71abc04682d263ca44b12f2c70c8 100644
--- a/modules/thumbnails/doc_thumb.php
+++ b/modules/thumbnails/doc_thumb.php
@@ -1,14 +1,16 @@
 <?php
-	
-	require_once "modules" . DIRECTORY_SEPARATOR . "thumbnails" . DIRECTORY_SEPARATOR
-			. "class" . DIRECTORY_SEPARATOR
-			. "class_modules_tools.php";
+	require_once 'modules/thumbnails/class/class_modules_tools.php';
 			
-	$res_id = $_REQUEST['res_id'];
-	$coll_id = $_REQUEST['coll_id'];
-	
+	$resId    = $_REQUEST['res_id'];
+	$collId   = $_REQUEST['coll_id'];
+	$advanced = $_REQUEST['advanced'];
+
 	$tnl = new thumbnails();
-	$path = $tnl->getPathTnl($res_id, $coll_id);
+	if (empty($advanced)) {
+		$path = $tnl->getPathTnl($resId, $collId); // Old Behaviour
+	} else {
+		$path = $tnl->getTnlPathWithColl(['resId' => $resId, 'collId' => $collId]); // New Behaviour
+	}
 	if (!is_file($path)){
 		//$path = 'modules'. DIRECTORY_SEPARATOR . 'thumbnails' . DIRECTORY_SEPARATOR . 'no_thumb.png';
 		exit();
@@ -22,10 +24,8 @@
 	header("Cache-Control: max-age=".$time.", must-revalidate");
 	header("Content-Description: File Transfer");
 	header("Content-Type: ".$mime_type);
-	header("Content-Disposition: inline; filename=".$tnlFilename.";");
+	header("Content-Disposition: inline; filename=filename;");
 	header("Content-Transfer-Encoding: binary");
 	readfile($path);
 		
 	exit();
-	
-?>
\ No newline at end of file
diff --git a/modules/thumbnails/xml/IVS/requests_definitions.xml b/modules/thumbnails/xml/IVS/requests_definitions.xml
index b4d61dfe01a9b1baa353e01192f5573773462cf7..145ee52eabbb48aeda6e80be93e3676a1bc0183e 100755
--- a/modules/thumbnails/xml/IVS/requests_definitions.xml
+++ b/modules/thumbnails/xml/IVS/requests_definitions.xml
@@ -5,5 +5,6 @@
       <parameter name="res_id"/>
       <parameter name="coll_id"/>
       <parameter name="display" value="true"/>
+      <parameter name="advanced"/>
     </requestDefinition>
 </requestDefinitions>
\ No newline at end of file
diff --git a/modules/thumbnails/xml/IVS/validation_rules.xml b/modules/thumbnails/xml/IVS/validation_rules.xml
index e698a63e6f962183a6e93d8bbc763e680e1a97ff..bfe7afe0d7c5c7c55b6f5803c1f521395ddace8e 100755
--- a/modules/thumbnails/xml/IVS/validation_rules.xml
+++ b/modules/thumbnails/xml/IVS/validation_rules.xml
@@ -3,5 +3,6 @@
       <parameter name="coll_id" type="collection_list" />
       <parameter name="res_id" type="integer" />
       <parameter name="module" type="identifier" />
+      <parameter name="advanced" type="string" />
     </validationRule>
 </validationRules>
\ No newline at end of file
diff --git a/modules/visa/Views/signatureBook.html b/modules/visa/Views/signatureBook.html
index b6d976e9f71bc3255d246a750b81a67447cdc239..d96c41462851436e161da26d19fb42dbd8ee5c63 100644
--- a/modules/visa/Views/signatureBook.html
+++ b/modules/visa/Views/signatureBook.html
@@ -4,9 +4,6 @@ html{
 }
 	  label{
     font-size: 9px;margin-top: 0px;
-  }
-  .thumbnails{
-    
   }
   #leftPanelThumbnails{
   	height:100px;
@@ -15,19 +12,18 @@ html{
   	text-align:center;
   	overflow:auto;
   }
-  .thumbnails #thumnails_img{
+  .rightPanelThumbnails{
     border:solid 1px;
     width:90%;
   }
-  .thumbnails #thumnails_img:hover{
-    opacity: 0.5;
+  .rightPanelThumbnails:hover{
+      width:95%;
   }
-  .thumbnails:hover label{
+  .rightPanelThumbnails:hover label{
     font-weight: bold;
   }
-  .thumbnails #thumnails_img_selected{
+  .rightPanelSelectedThumbnail{
     border:solid 3px;
-    width:90%;
   }
   .thumbnails_mails{
     height: 100%;
@@ -64,7 +60,7 @@ html{
   #signatureBookContent{
   	border: solid 1px black;
   	/*display:table;*/
-  	height: 75vh;
+  	height: 80vh;
   	width:100%;
   	overflow: hidden;
   }
@@ -201,67 +197,31 @@ html{
 
         </div>
     </div>
-  <div style="cursor:w-resize;display:table-cell;width:auto;height:100%;margin:10px;background:#ccc;vertical-align:middle;">
-    <i class="fa fa-caret-right" style="font-size:9px;cursor:pointer;" aria-hidden="true"></i>
-    <i class="fa fa-caret-left" style="font-size:9px;cursor:pointer;" aria-hidden="true"></i>
-  </div>
+    <div style="cursor:w-resize;display:table-cell;width:auto;height:100%;margin:10px;background:#ccc;vertical-align:middle;">
+        <i class="fa fa-caret-right" style="font-size:9px;cursor:pointer;" aria-hidden="true"></i>
+        <i class="fa fa-caret-left" style="font-size:9px;cursor:pointer;" aria-hidden="true"></i>
+    </div>
     <div id="rightPanel">
-      <div style="display:table;height:98%;margin:5px;">
-        <div id="rightPanelThumbnails" style="display:table-cell;width:15%;height:100%;margin:10px;background:white;vertical-align:top;">
-          <div style="height:68vh;overflow:auto;text-align:center;">
-            <span class="thumbnails">
-              <img id="thumnails_img_selected" src="http://www.linux-france.org/article/pro/entrepreneur-howto/01_letters/demission/lettre-dem.png">
-             <label>projet de réponse</label>
-            </span>
-            <span class="thumbnails">
-              <img id="thumnails_img" src="http://www.linux-france.org/article/pro/entrepreneur-howto/01_letters/demission/lettre-dem.png">
-             <label>projet de réponse</label>
-            </span>
-            <span class="thumbnails">
-              <img id="thumnails_img" src="http://www.linux-france.org/article/pro/entrepreneur-howto/01_letters/demission/lettre-dem.png">
-             <label>projet de réponse</label>
-            </span>
-            <span class="thumbnails">
-              <img id="thumnails_img" src="http://www.linux-france.org/article/pro/entrepreneur-howto/01_letters/demission/lettre-dem.png">
-             <label>projet de réponse</label>
-            </span>
-            <span class="thumbnails">
-              <img id="thumnails_img" src="http://www.linux-france.org/article/pro/entrepreneur-howto/01_letters/demission/lettre-dem.png">
-             <label>projet de réponse</label>
-            </span>
-            <span class="thumbnails">
-              <img id="thumnails_img" src="http://www.linux-france.org/article/pro/entrepreneur-howto/01_letters/demission/lettre-dem.png">
-             <label>projet de réponse</label>
-            </span>
-            <span class="thumbnails">
-              <img id="thumnails_img" src="http://www.linux-france.org/article/pro/entrepreneur-howto/01_letters/demission/lettre-dem.png">
-             <label>projet de réponse</label>
-            </span>
-            <span class="thumbnails">
-              <img id="thumnails_img" src="http://www.linux-france.org/article/pro/entrepreneur-howto/01_letters/demission/lettre-dem.png">
-             <label>projet de réponse</label>
-            </span>
-            <span class="thumbnails">
-              <img id="thumnails_img" src="http://www.linux-france.org/article/pro/entrepreneur-howto/01_letters/demission/lettre-dem.png">
-             <label>projet de réponse</label>
-            </span>
-          </div>
-          <div style="height:30px;text-align:center;">
-            <i class="fa fa-plus fa-2x" aria-hidden="true"></i>
-          </div>
-
-        </div>
-        <div style="cursor:w-resize;display:table-cell;width:auto;height:100%;margin:10px;background:#ccc;vertical-align:middle;" onclick="hideRightPanelThumnails('rightPanelThumbnails','rightPanelShow');">
-          <i class="fa fa-caret-right" style="font-size:9px;cursor:pointer;" aria-hidden="true"></i>
-          <i class="fa fa-caret-left" style="font-size:9px;cursor:pointer;" aria-hidden="true"></i>
-        </div>
-        <div id="rightPanelShow" style="display:table-cell;width:85%;height:100%;margin:10px;background:white;text-align:center;">
-          <div style="width:95%;height:20%;">
-
-          </div>
-          <iframe src="http://www.lefigaro.fr/assets/pdf/lettre-v-peillon.pdf"></iframe>
+        <div style="display:table;height:98%;margin:5px;">
+            <div id="rightPanelThumbnails" style="display:table-cell;width:15%;height:100%;margin:10px;background:white;vertical-align:top;">
+                <div style="height:68vh;overflow:auto;text-align:center;">
+                    <span ng-repeat="(index, attachment) in signatureBook.thumbnailsAttachments" ng-click="changeRightViewer(index)">
+                        <img ng-src="{{attachment.thumbnailLink}}" class="rightPanelThumbnails" ng-class="{'rightPanelSelectedThumbnail': index == signatureBook.selectedThumbnail}">
+                        <label>{{attachment.attachment_type}}</label>
+                    </span>
+                </div>
+                <div style="height:30px;text-align:center;">
+                    <i class="fa fa-plus fa-2x" aria-hidden="true"></i>
+                </div>
+            </div>
+            <div style="cursor:w-resize;display:table-cell;width:auto;height:100%;margin:10px;background:#ccc;vertical-align:middle;">
+                <i class="fa fa-caret-right" style="font-size:9px;cursor:pointer;" aria-hidden="true"></i>
+            </div>
+            <div id="rightPanelShow" style="display:table-cell;width:85%;height:100%;margin:10px;background:white;text-align:center;">
+                <div style="width:95%;height:20%;">
+                </div>
+                <iframe ng-src="{{signatureBook.viewerLink}}"></iframe>
+            </div>
         </div>
-      </div>
-
     </div>
 </div>
\ No newline at end of file
diff --git a/modules/visa/services/SignatureBookAbstract.php b/modules/visa/services/SignatureBookAbstract.php
index f6259be22875b74462052e76d5d1392f14617b4e..0c3e3edac766e45e9842b1e835a1d07aaf95ac6d 100644
--- a/modules/visa/services/SignatureBookAbstract.php
+++ b/modules/visa/services/SignatureBookAbstract.php
@@ -21,6 +21,7 @@
 
 require_once 'apps/maarch_entreprise/services/Table.php';
 require_once 'modules/basket/class/class_modules_tools.php';
+require_once 'modules/attachments/services/Attachments.php';
 
 
 class Visa_SignatureBookAbstract_Service extends Apps_Table_Service {
@@ -53,12 +54,19 @@ class Visa_SignatureBookAbstract_Service extends Apps_Table_Service {
             $actionsData[] = ['value' => $value['VALUE'], 'label' => $value['LABEL']];
         }
 
+        $thumbnailsAttachments = Attachments_Attachments_Service::getAttachmentsForThumbnails(['resIdMaster' => $resId]);
+        $viewerAttachments = Attachments_Attachments_Service::getAttachmentsForViewer(['resIdMaster' => $resId]);
+
 
         $datas = [];
         $datas['view'] = file_get_contents('modules/visa/Views/signatureBook.html');
         $datas['datas'] = [];
         $datas['datas']['resId'] = $resId;
         $datas['datas']['actions'] = $actionsData;
+        $datas['datas']['thumbnailsAttachments'] = $thumbnailsAttachments;
+        $datas['datas']['selectedThumbnail'] = 0;
+        $datas['datas']['viewerAttachments'] = $viewerAttachments;
+        $datas['datas']['viewerLink'] = $viewerAttachments[0]['viewerLink'];
         $datas['datas']['linkNotes'] = 'index.php?display=true&module=notes&page=notes&identifier=' .$resId. '&origin=document&coll_id=' .$collId. '&load&size=medium';
         $datas['datas']['displayLeftMainDoc'] = 'index.php?display=true&dir=indexing_searching&page=view_resource_controler&visu&id=' .$resId. '&collid=' .$collId;
         $datas['datas']['headerTab'] = 1;