diff --git a/apps/maarch_entreprise/admin/priorities/admin_priorities.php b/apps/maarch_entreprise/admin/priorities/admin_priorities.php
index 5b5b00c748b90ce690e1b8816ba4d13de715f830..0bb778ced6a4852d3818716cfbef7552bfecf418 100755
--- a/apps/maarch_entreprise/admin/priorities/admin_priorities.php
+++ b/apps/maarch_entreprise/admin/priorities/admin_priorities.php
@@ -62,7 +62,7 @@ $admin->manage_location_bar($page_path, $page_label, $page_id, $init, $level);
                 <?php
                 for ($i = 0; $_SESSION['mail_priorities'][$i]; $i++) {
                     $wdays = ($_SESSION['mail_priorities_wdays'][$i] == 'true' ? '' : 'selected');
-                    echo "<tr><td align='left'><input name='label_{$i}' id='label_{$i}' placeholder='Priority label' size='18' value='{$_SESSION['mail_priorities'][$i]}'></td>";
+                    echo "<tr><td align='left'><input name='label_{$i}' id='label_{$i}' placeholder='Priority label' size='18' value='{$_SESSION['mail_priorities'][$i]}'><input type='color' name='color_{$i}' id='color_{$i}' value='".$_SESSION['mail_priorities_color'][$i]."' style='background:none;border:none;width:45px;'/></td>";
                     if ($_SESSION['mail_priorities_attribute'][$i] == 'false') {
                         echo "<td align='left'><input name='priority_{$i}' id='priority_{$i}' size='6' value='*'>";
                     } else {
@@ -74,7 +74,7 @@ $admin->manage_location_bar($page_path, $page_label, $page_id, $init, $level);
                 ?>
                 <tr style="display: none" id="priorityAddField">
                     <td align="left">
-                        <input name='label_new0' id='label_new0' placeholder='Nom priorité' size='18'>
+                        <input name='label_new0' id='label_new0' placeholder='Nom priorité' size='18'> <input name='color_new0' id='color_new0' type='color' style='background:none;border:none;width:45px;'>
                     </td>
                     <td align="left">
                         <input name='priority_new0' id='priority_new0' size='6' value='*'>
diff --git a/apps/maarch_entreprise/admin/priorities/class_priorities_Abstract.php b/apps/maarch_entreprise/admin/priorities/class_priorities_Abstract.php
index 00f4df2577432b789e3378bf31022c85b3223f04..84aadeae4c062c319abf17cdda37bd3fb8750587 100644
--- a/apps/maarch_entreprise/admin/priorities/class_priorities_Abstract.php
+++ b/apps/maarch_entreprise/admin/priorities/class_priorities_Abstract.php
@@ -56,6 +56,7 @@ abstract class PrioritiesAbstract extends Database
                 else
                     $mailPriorities->priority[$i]['with_delay'] = $priorities[$i]['number'];
                 $mailPriorities->priority[$i]['working_days'] = $priorities[$i]['wdays'];
+                $mailPriorities->priority[$i]['color'] = $priorities[$i]['color'];
             } else {
                 $newPriority = $mailPriorities->addChild('priority', $priorities[$i]['label']);
                 if ($priorities[$i]['number'] === '*')
@@ -63,6 +64,7 @@ abstract class PrioritiesAbstract extends Database
                 else
                     $newPriority->addAttribute('with_delay', $priorities[$i]['number']);
                 $newPriority->addAttribute('working_days', $priorities[$i]['wdays']);
+                $newPriority->addAttribute('color', $priorities[$i]['color']);
             }
         }
 
@@ -83,17 +85,20 @@ abstract class PrioritiesAbstract extends Database
         $_SESSION['mail_priorities'] = [];
         $_SESSION['mail_priorities_attribute'] = [];
         $_SESSION['mail_priorities_wdays'] = [];
+        $_SESSION['mail_priorities_color'] = [];
 
         for ($i = 0; $mailPriorities->priority[$i]; $i++) {
             $label = (string) $mailPriorities->priority[$i];
             $attribute = (string) $mailPriorities->priority[$i]['with_delay'];
             $workingDays = (string) $mailPriorities->priority[$i]['working_days'];
+            $color = (string) $mailPriorities->priority[$i]['color'];
             if (!empty($label) && defined($label) && constant($label) != NULL) {
                 $label = constant($label);
             }
             $_SESSION['mail_priorities'][$i] = $label;
             $_SESSION['mail_priorities_attribute'][$i] = $attribute;
             $_SESSION['mail_priorities_wdays'][$i] = ($workingDays != 'false' ? 'true' : 'false');
+            $_SESSION['mail_priorities_color'][$i] = $color;
         }
     }
 
@@ -117,11 +122,12 @@ abstract class PrioritiesAbstract extends Database
 
     public function updatePriorities() {
         $priorities = [];
-        for ($i = 0; isset($_REQUEST[('label_' . $i)]) && isset($_REQUEST[('priority_' . $i)]) && isset($_REQUEST[('working_' . $i)]); $i++) {
-            $priorities[] = ['label' => $_REQUEST[('label_' . $i)], 'number' => $_REQUEST[('priority_' . $i)], 'wdays' => $_REQUEST[('working_' . $i)]];
+       
+        for ($i = 0; isset($_REQUEST[('label_' . $i)]) && isset($_REQUEST[('priority_' . $i)]) && isset($_REQUEST[('working_' . $i)]) && isset($_REQUEST[('color_' . $i)]); $i++) {
+            $priorities[] = ['label' => $_REQUEST[('label_' . $i)], 'number' => $_REQUEST[('priority_' . $i)], 'wdays' => $_REQUEST[('working_' . $i)], 'color' => $_REQUEST[('color_' . $i)]];
         }
-        for ($i = 0; !empty($_REQUEST[('label_new' . $i)]) && !empty($_REQUEST[('priority_new' . $i)]) && !empty($_REQUEST[('working_new' . $i)]); $i++) {
-            $priorities[] = ['add' => 'add', 'label' => $_REQUEST[('label_new' . $i)], 'number' => $_REQUEST[('priority_new' . $i)], 'wdays' => $_REQUEST[('working_new' . $i)]];
+        for ($i = 0; !empty($_REQUEST[('label_new' . $i)]) && !empty($_REQUEST[('priority_new' . $i)]) && !empty($_REQUEST[('working_new' . $i)]) && !empty($_REQUEST[('color_new' . $i)]); $i++) {
+            $priorities[] = ['add' => 'add', 'label' => $_REQUEST[('label_new' . $i)], 'number' => $_REQUEST[('priority_new' . $i)], 'wdays' => $_REQUEST[('working_new' . $i)], 'color' => $_REQUEST[('color_new' . $i)]];
         }
         if ($this->checkPriorities($priorities)) {
             $this->setXML($priorities);
diff --git a/apps/maarch_entreprise/js/functions.js b/apps/maarch_entreprise/js/functions.js
index ce00b3c76fc269c212d31f4eb099b8614de4adeb..36eb095f8a93a417880ac65fbf71bfd42650b468 100755
--- a/apps/maarch_entreprise/js/functions.js
+++ b/apps/maarch_entreprise/js/functions.js
@@ -79,7 +79,7 @@ function addNewRowPriority(buttonRow) {
         $("minusButton").style.display = "";
     } else {
         var newRow = $("prioritiesTable").insertRow(index);
-        newRow.innerHTML = "<td align='left'><input name='label_new" + indexDiff + "' id='label_new" + indexDiff + "' placeholder='Nom priorité' size='18'></td>" +
+        newRow.innerHTML = "<td align='left'><input name='label_new" + indexDiff + "' id='label_new" + indexDiff + "' placeholder='Nom priorité' size='18'> <input style='background:none;border:none;width:45px;' name='color_new" + indexDiff + "' id='color_new" + indexDiff + "' type='color' value=''></td>" +
                             "<td align='left'><input name='priority_new" + indexDiff + "' id='priority_new" + indexDiff + "' size='6' value='*'></td>" +
                             "<td align='left'><select name='working_new" + indexDiff + "' id='working_new" + indexDiff + "'><option value='true'>Jours ouvrés</option><option value='false' >Jours calendaires</option></select></td>";
     }
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;