From 9ed089c171556440d0f52990c35f04531247d934 Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Sun, 8 Mar 2020 23:58:05 +0100
Subject: [PATCH] clean useless code

---
 apps/maarch_entreprise/_no_file.pdf           |  Bin 111108 -> 0 bytes
 apps/maarch_entreprise/css/styles.css         |  134 --
 apps/maarch_entreprise/img/loading.gif        |  Bin 8787 -> 0 bytes
 .../indexing_searching/choose_file.php        |  202 ---
 apps/maarch_entreprise/js/functions.js        |   33 -
 apps/maarch_entreprise/no_right.php           |   45 -
 modules/attachments/js/functions.js           |    6 -
 .../avis/class/avis_controler_Abstract.php    |  242 ---
 modules/avis/css/module.css                   |   18 -
 modules/avis/js/functions.js                  |  336 ----
 modules/avis/load_toolbar_avis.php            |   49 -
 modules/avis/saveAvisModel.php                |   50 -
 modules/avis/updateAvisWF.php                 |   55 -
 modules/avis/xml/IVS/requests_definitions.xml |    8 -
 modules/avis/xml/IVS/validation_rules.xml     |    7 -
 modules/basket/lang/en.php                    |    6 -
 modules/basket/lang/fr.php                    |    9 -
 modules/basket/lang/nl.php                    |    9 -
 .../class/class_modules_tools_Abstract.php    |  154 +-
 modules/notes/class/notes_controler.php       |   42 -
 .../notes/class/notes_controler_Abstract.php  |  111 --
 modules/notes/css/module.css                  |    3 -
 modules/notes/js/functions.js                 |   92 --
 modules/notes/lang/en.php                     |   13 -
 modules/notes/lang/fr.php                     |   12 -
 modules/notes/lang/nl.php                     |   51 -
 modules/notes/load_toolbar_notes.php          |   52 -
 modules/notes/note_details.php                |  360 -----
 modules/notes/notes.php                       |  324 ----
 modules/notes/notes_ajax_content.php          |  540 -------
 modules/notes/notes_tables.php                |   37 -
 .../notes/xml/IVS/requests_definitions.xml    |   10 -
 modules/notes/xml/IVS/validation_rules.xml    |   23 -
 modules/notes/xml/config.xml                  |    5 -
 modules/notifications/lang/en.php             |    2 -
 modules/notifications/lang/fr.php             |    2 -
 modules/notifications/lang/nl.php             |    6 -
 modules/sendmail/address_autocompletion.php   |  112 --
 .../sendmail/class/class_email_signatures.php |   26 -
 .../class/class_email_signatures_Abstract.php |   45 -
 .../class/class_modules_tools_Abstract.php    |  332 +---
 modules/sendmail/contact_autocompletion.php   |  105 --
 modules/sendmail/css/module.css               |   50 -
 modules/sendmail/js/functions.js              |  260 ---
 modules/sendmail/load_editor.php              |   34 -
 modules/sendmail/load_toolbar_sendmail.php    |   54 -
 modules/sendmail/mail_form.php                | 1389 -----------------
 modules/sendmail/sendmail.php                 |  366 -----
 modules/sendmail/sendmail_ajax_content.php    |  612 --------
 .../sendmail/xml/IVS/requests_definitions.xml |   11 -
 modules/sendmail/xml/IVS/validation_rules.xml |   33 -
 .../class/class_modules_tools_Abstract.php    |   33 -
 .../class/templates_controler_Abstract.php    |  140 --
 modules/templates/js/change_doctype.js        |   53 -
 .../templates_ajax_content_for_mails.php      |   55 -
 .../templates_ajax_content_for_notes.php      |   37 -
 .../xml/IVS/requests_definitions.xml          |   10 -
 .../templates/xml/IVS/validation_rules.xml    |   12 -
 modules/visa/checkAllAnsSigned.php            |   44 -
 modules/visa/class/class_modules_tools.php    |  137 --
 .../class/class_modules_tools_Abstract.php    | 1066 +------------
 modules/visa/create_sep.php                   |   36 -
 modules/visa/css/module.css                   |   45 -
 modules/visa/getVisaModelByTitle.php          |   34 -
 modules/visa/js/functions.js                  |  417 -----
 modules/visa/lang/en.php                      |   26 -
 modules/visa/lang/fr.php                      |   26 -
 modules/visa/lang/nl.php                      |   25 +-
 modules/visa/load_listmodel_visa.php          |  199 ---
 modules/visa/load_listmodel_visa_users.php    |   46 -
 modules/visa/load_toolbar_visa.php            |   48 -
 modules/visa/printFolder_ajax.php             |  316 ----
 modules/visa/saveVisaModel.php                |   79 -
 modules/visa/show_printFolder_tab.php         |   29 -
 modules/visa/show_visa_tab.php                |   78 -
 modules/visa/updateVisaWF.php                 |   72 -
 modules/visa/xml/IVS/requests_definitions.xml |   29 -
 modules/visa/xml/IVS/validation_rules.xml     |   16 -
 .../app/signature-book.component.scss         |   14 -
 79 files changed, 9 insertions(+), 9590 deletions(-)
 delete mode 100755 apps/maarch_entreprise/_no_file.pdf
 delete mode 100755 apps/maarch_entreprise/img/loading.gif
 delete mode 100755 apps/maarch_entreprise/indexing_searching/choose_file.php
 delete mode 100755 apps/maarch_entreprise/no_right.php
 delete mode 100755 modules/avis/load_toolbar_avis.php
 delete mode 100755 modules/avis/saveAvisModel.php
 delete mode 100755 modules/avis/updateAvisWF.php
 delete mode 100755 modules/notes/class/notes_controler.php
 delete mode 100755 modules/notes/class/notes_controler_Abstract.php
 delete mode 100755 modules/notes/load_toolbar_notes.php
 delete mode 100755 modules/notes/note_details.php
 delete mode 100755 modules/notes/notes.php
 delete mode 100755 modules/notes/notes_ajax_content.php
 delete mode 100755 modules/notes/notes_tables.php
 delete mode 100644 modules/sendmail/address_autocompletion.php
 delete mode 100755 modules/sendmail/class/class_email_signatures.php
 delete mode 100755 modules/sendmail/class/class_email_signatures_Abstract.php
 delete mode 100755 modules/sendmail/contact_autocompletion.php
 delete mode 100755 modules/sendmail/load_editor.php
 delete mode 100755 modules/sendmail/load_toolbar_sendmail.php
 delete mode 100755 modules/sendmail/mail_form.php
 delete mode 100755 modules/sendmail/sendmail.php
 delete mode 100755 modules/sendmail/sendmail_ajax_content.php
 delete mode 100755 modules/templates/templates_ajax_content_for_mails.php
 delete mode 100755 modules/templates/templates_ajax_content_for_notes.php
 delete mode 100755 modules/visa/checkAllAnsSigned.php
 delete mode 100755 modules/visa/create_sep.php
 delete mode 100755 modules/visa/getVisaModelByTitle.php
 delete mode 100755 modules/visa/load_listmodel_visa.php
 delete mode 100755 modules/visa/load_listmodel_visa_users.php
 delete mode 100755 modules/visa/load_toolbar_visa.php
 delete mode 100755 modules/visa/printFolder_ajax.php
 delete mode 100755 modules/visa/saveVisaModel.php
 delete mode 100755 modules/visa/show_printFolder_tab.php
 delete mode 100755 modules/visa/show_visa_tab.php
 delete mode 100755 modules/visa/updateVisaWF.php

diff --git a/apps/maarch_entreprise/_no_file.pdf b/apps/maarch_entreprise/_no_file.pdf
deleted file mode 100755
index 9d9232393111deba6f1d726a371da01b8fbcb52e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 111108
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

diff --git a/apps/maarch_entreprise/css/styles.css b/apps/maarch_entreprise/css/styles.css
index ccb8ee7caad..d679e2dece3 100755
--- a/apps/maarch_entreprise/css/styles.css
+++ b/apps/maarch_entreprise/css/styles.css
@@ -2274,22 +2274,6 @@ hr {
     margin-left: 330px;
 }
 
-#choose_exp_link {
-    margin-left: 0px;
-}
-
-#info_user_welcome {
-    width: 100%;
-    padding-top: 10px;
-    border: 1px solid #BBBBBB;
-    background-color: White;
-    padding-bottom: 20px;
-    margin: 0px 0px 15px 0px;
-    padding: 5px 5px 2px 5px;
-    line-height: 1.8em;
-}
-
-
 #info_user .button,
 #select_folder .button {
     width: 125px;
@@ -2332,21 +2316,6 @@ hr {
     font-size: 12px;
 }
 
-.dir_second_level {
-    margin-left: 20px;
-    margin-top: 0px;
-    margin-bottom: 15px;
-    font-size: 12px;
-}
-
-.dir_third_level {
-    margin-left: 20px;
-    margin-top: 0px;
-    margin-bottom: 10px;
-    font-size: 11px;
-
-}
-
 #link_right {
     text-align: right;
     margin-left: 100px;
@@ -2680,18 +2649,6 @@ margin-right: 12px;*/
     font-size: 14px;
 }
 
-.header_menu {
-    display: none;
-    background-color: #135F7F;
-    height: 23px;
-    color: white;
-
-    font-weight: bold;
-    font-size: 1.3em;
-    text-align: right;
-    border-bottom: 2px solid #FFFFFF;
-}
-
 .footer_menu {
     background-color: #135F7F;
     width: 100%;
@@ -2723,10 +2680,6 @@ margin-right: 12px;*/
     padding-right: 10px;
 }
 
-.header_menu_blank {
-    height: 10px;
-}
-
 .img_credits_maarch_box {
     width: 100%;
     position: relative;
@@ -3000,59 +2953,6 @@ height: 100%;*/
     margin-bottom: 10px;
 }
 
-#content_process {
-    text-align: left;
-}
-
-/***********  ScrollBox *********************/
-.scrollbox_scrollbar {
-    float: left;
-    width: 10px;
-    height: 380px;
-    padding: 0;
-    margin: 0;
-    background: url(static.php?filename=scrollbox_blank.gif) top left no-repeat;
-
-}
-
-.scrollbox_up_button {
-    background: url(static.php?filename=scrollbox_up.png) no-repeat scroll right top;
-    /*_background:none;
-    _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../static.php?filename=scrollbox_up.png', sizingMethod='crop');*/
-    height: 7px;
-
-    width: 10px;
-    display: block;
-
-    margin: 0;
-    padding: 0;
-    cursor: pointer;
-}
-
-.scrollbox_down_button {
-    background: url(static.php?filename=down.png) no-repeat scroll right top;
-    /*_background:none;
-    _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../static.php?filename=scrollbox_down.png', sizingMethod='crop');*/
-    height: 7px;
-    width: 10px;
-    display: block;
-    margin: 0;
-    padding: 0;
-    cursor: pointer;
-}
-
-.scrollbox_handle {
-    background: url(static.php?filename=scrollbox_middle.png) top left no-repeat;
-    /*  _background:none;
-    _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../static.php?filename=scrollbox_middle.png', sizingMethod='crop');*/
-    width: 10px;
-    height: 10px;
-    display: block;
-    margin: 0;
-    padding: 0;
-    cursor: pointer;
-}
-
 #hist_courrier_frame .listing {
     width: 100%;
 }
@@ -3075,40 +2975,6 @@ height: 100%;*/
     color: #000000;
 }
 
-#welcome_box_right {
-    border: 1px;
-    float: right;
-    /*min-width: 40%;*/
-    width: 38%;
-    margin: 0 10px 0 13px;
-    display: inline;
-    /*position:absolute;*/
-}
-
-#welcome_box_left_quick_lunch {
-    border: 1px;
-    float: left;
-    min-width: 55%;
-    margin: 0 10px 0 13px;
-    /*display:relative;*/
-}
-
-#welcome_box_left_baskets {
-    border: 1px;
-    float: left;
-    min-width: 55%;
-    margin: 0 10px 0 13px;
-    /*display:relative;*/
-}
-
-#welcome_box_left_text {
-    border: 100px;
-    /*float: left;*/
-    width: 97%;
-    margin: 0 10px 0 13px;
-    /*display:relative;*/
-}
-
 .scroll_div {
     overflow: auto;
 }
diff --git a/apps/maarch_entreprise/img/loading.gif b/apps/maarch_entreprise/img/loading.gif
deleted file mode 100755
index 068cce8533cdd9680ad57456ff79403d92e62868..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 8787
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

diff --git a/apps/maarch_entreprise/indexing_searching/choose_file.php b/apps/maarch_entreprise/indexing_searching/choose_file.php
deleted file mode 100755
index abbd9f5ca4d..00000000000
--- a/apps/maarch_entreprise/indexing_searching/choose_file.php
+++ /dev/null
@@ -1,202 +0,0 @@
-<?php
-
-/*
-*   Copyright 2008-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/>.
-*/
-
-/**
- * @brief  Frame to choose a file to index
- *
- * @file choose_file.php
- *
- * @author Claire Figueras <dev@maarch.org>
- * @date $date$
- *
- * @version $Revision$
- * @ingroup indexing_searching_mlb
- */
-$core_tools = new core_tools();
-$core_tools->load_lang();
-$func = new functions();
-$core_tools->load_html();
-$core_tools->load_header('', true, false);
-$upFileOK = false;
-$_SESSION['with_file'] = false;
-$_SESSION['upfile']['fileNamePdfOnTmp'] = '';
-?>
-    <body>
-    <?php
-    $_SESSION['upfile']['error'] = 0;
-    if (isset($_FILES['file']['error']) && $_FILES['file']['error'] == 1) {
-        $_SESSION['upfile']['error'] = $_FILES['file']['error'];
-        if ($_SESSION['upfile']['error'] == 1) {
-            ?>
-            <script language="javascript" type="text/javascript">
-                var test = window.top.document.getElementById('file_iframe');
-                if (test != null)
-                {
-                    test.src = '<?php
-                        echo $_SESSION['config']['businessappurl']; ?>index.php?display=true&dir=indexing_searching&page=file_iframe&#navpanes=0';
-                }
-            </script>
-            <?php
-        }
-    } elseif (!empty($_FILES['file']['tmp_name']) && $_FILES['file']['error'] != 1) {
-        $extension = explode('.', $_FILES['file']['name']);
-        $count_level = count($extension) - 1;
-        $the_ext = $extension[$count_level];
-        $fileNameOnTmp = 'tmp_file_'.$_SESSION['user']['UserId']
-            .'_'.rand().'.'.strtolower($the_ext);
-        $filePathOnTmp = $_SESSION['config']['tmppath'].$fileNameOnTmp;
-        if (!is_uploaded_file($_FILES['file']['tmp_name'])) {
-            $_SESSION['error'] = _FILE_NOT_SEND.'. '._TRY_AGAIN
-                    .'. '._MORE_INFOS.' (<a href="mailto:'
-                    .$_SESSION['config']['adminmail'].'">'
-                    .$_SESSION['config']['adminname'].'</a>)';
-        } else {
-            require_once 'core/docservers_tools.php';
-            $arrayIsAllowed = array();
-            $arrayIsAllowed = Ds_isFileTypeAllowed($_FILES['file']['tmp_name'], strtolower($the_ext));
-            if ($arrayIsAllowed['status'] == false) {
-                $_SESSION['error'] = _WRONG_FILE_TYPE.' '.$arrayIsAllowed['mime_type'];
-                $_SESSION['upfile'] = array();
-            } elseif (!@move_uploaded_file($_FILES['file']['tmp_name'], $filePathOnTmp)) {
-                $_SESSION['error'] = _FILE_NOT_SEND.'. '._TRY_AGAIN.'. '
-                    ._MORE_INFOS.' (<a href="mailto:'
-                    .$_SESSION['config']['adminmail'].'">'
-                    .$_SESSION['config']['adminname'].'</a>)';
-            } else {
-                $_SESSION['upfile']['size'] = $_FILES['file']['size'];
-                $_SESSION['upfile']['mime'] = $_FILES['file']['type'];
-                $_SESSION['upfile']['local_path'] = $filePathOnTmp;
-                //$_SESSION['upfile']['name'] = $_FILES['file']['name'];
-                $_SESSION['upfile']['name'] = $fileNameOnTmp;
-                $_SESSION['upfile']['format'] = $the_ext;
-                $upFileOK = true;
-            }
-        }
-    } elseif ($_REQUEST['with_file'] == 'true') {
-        $_SESSION['with_file'] = true;
-        $pathToFile = 'apps/'.$_SESSION['config']['app_id'].'/_no_file.pdf';
-
-        if (is_file('custom/'.$_SESSION['custom_override_id'].'/'.$pathToFile)) {
-            $pathToFile = 'custom/'.$_SESSION['custom_override_id'].'/'.$pathToFile;
-        }
-
-        $_SESSION['upfile']['size'] = filesize($pathToFile);
-        $_SESSION['upfile']['mime'] = 'application/pdf';
-        $fileNameOnTmp = 'tmp_file_'.$_SESSION['user']['UserId']
-            .'_'.rand().'.pdf';
-        $_SESSION['upfile']['name'] = $fileNameOnTmp;
-        $filePathOnTmp = $_SESSION['config']['tmppath'].$fileNameOnTmp;
-        $_SESSION['upfile']['local_path'] = $filePathOnTmp;
-        if (copy($pathToFile, $filePathOnTmp)) {
-            $upFileOK = true;
-        }
-    } elseif ($_REQUEST['with_file'] == 'false') {
-        $_SESSION['upfile'] = [];
-        $upFileOK = true;
-    }
-    //if ($upFileOK) {
-        ?>
-        <script language="javascript" type="text/javascript">
-            function refreshFrame(frameId) {
-                frameId.src = '<?php
-                    echo $_SESSION['config']['businessappurl'];
-                    ?>index.php?display=true&dir=indexing_searching&page=file_iframe';
-            }
-
-            var test = window.top.document.getElementById('file_iframe');
-            if (test.src == '<?php
-                echo $_SESSION['config']['businessappurl'];
-                ?>index.php?display=true&dir=indexing_searching&page=file_iframe&#navpanes=0') {
-                //test.location.refresh();
-                //test.src = '';
-                refreshFrame(test);
-            }
-
-            if (test != null) {
-                //fix pb with toolbar of pdf
-                test.src = '<?php
-                    echo $_SESSION['config']['businessappurl'];
-                    ?>index.php?display=true&dir=indexing_searching&page=file_iframe&#navpanes=0';
-            }
-        </script>
-        <?php
-    //}
-    ?>
-    <form name="select_file_form" id="select_file_form" method="get" enctype="multipart/form-data" action="<?php
-        echo $_SESSION['config']['businessappurl'];
-        ?>index.php?display=true&dir=indexing_searching&page=choose_file" class="forms">
-        <input type="hidden" name="display" value="true" />
-        <input type="hidden" name="dir" value="indexing_searching" />
-        <input type="hidden" name="page" value="choose_file" />
-        <p>
-            <label for="file" style="width:90%;margin-right: -12px;margin-top: -2px">
-            <?php
-            if (!empty($_SESSION['upfile']['local_path']) && empty($_SESSION['error'])) {
-                ?>
-                <i class="fa fa-check-square fa-2x" title="<?php echo _DOWNLOADED_FILE; ?>"></i>
-                <input type="button" id="fileButton" onclick="$j('#file').click();" class="button"
-                       value="<?php if ($_REQUEST['with_file'] == 'true') {
-                    echo _WITHOUT_FILE;
-                } else {
-                    echo _DOWNLOADED_FILE;
-                } ?>"
-                       style="width: 90%;margin: 0px;margin-top: -2px;font-size: 15px;text-align: center;">
-            <?php
-            } else {
-                ?>
-                <i class="fa fa-times fa-2x" title="<?php echo _NO_FILE_SELECTED; ?>"></i>
-                <input type="button" id="fileButton" onclick="$j('#file').click()" class="button" value="<?php echo _CHOOSE_FILE; ?>" style="width: 90%;margin: 0px;margin-top: -2px;font-size: 15px;text-align: center;">
-            <?php
-            } ?>
-            </label>
-            <?php
-            if ($_REQUEST['with_file'] == 'true') {
-                ?>
-                <i class="fa fa-ban fa-2x" id="with_file_icon" onclick="$j('#with_file').click();" title="<?php echo _WITHOUT_FILE; ?> (actif)" style="cursor:pointer;"></i>
-            <?php
-            } else {
-                ?>
-                <i class="fa fa-ban fa-2x" id="with_file_icon" onclick="$j('#with_file')[0].value='true';$j('#with_file2').click();" title="<?php echo _WITHOUT_FILE; ?>" style="cursor:pointer;"></i>
-            <?php
-            } ?>
-
-        </p>
-        <p style="display:none;">
-            <label for="with_file">
-                <?php echo _WITHOUT_FILE; ?>
-            </label>
-            <div align="center" style="display:none;">
-                <?php echo _YES; ?>
-                <input <?php if ($_REQUEST['with_file'] == 'true') {
-                                echo 'checked="checked"';
-                            } ?>
-                    type="radio" name="with_file" id="with_file2" value="true" onclick="this.form.method = 'post';this.form.submit();" />
-                <?php echo _NO; ?>
-                <input <?php if ($_REQUEST['with_file'] == 'false' || $_REQUEST['with_file'] == '') {
-                                echo 'checked="checked"';
-                            } ?>
-                    type="radio" name="with_file" id="with_file" value="false" onclick="this.form.method = 'post';this.form.submit();" />
-            </div>
-        </p>
-    </form>
-    <?php $core_tools->load_js();?>
-    </body>
-</html>
diff --git a/apps/maarch_entreprise/js/functions.js b/apps/maarch_entreprise/js/functions.js
index fc4e1e3b179..3e34183967a 100755
--- a/apps/maarch_entreprise/js/functions.js
+++ b/apps/maarch_entreprise/js/functions.js
@@ -2307,39 +2307,6 @@ function resetSelect(id) {
     $j('#' + id).trigger("chosen:updated");
 }
 
-function getChildrenHtml(branch_id, treeDiv, path_manage_script, opened, closed) {
-    var minus;
-    if ($j('#' + branch_id + ' i').first().prop('class') == closed) {
-        minus = false;
-    } else {
-        minus = true;
-    }
-
-    $j.ajax({
-        url: path_manage_script,
-        type: 'POST',
-        data: {
-            branch_id: branch_id
-        },
-        success: function (result) {
-            if (minus) {
-                BootstrapTree.removeSons($j('#' + branch_id + ' > ul'));
-                $j('#' + branch_id + ' i').first().prop('class', closed);
-            } else {
-                if (result != '') {
-                    BootstrapTree.addNode($j('#' + branch_id), $j(result), opened, closed);
-                    BootstrapTree.init($j('#' + treeDiv), opened, closed);
-                    $j('#' + branch_id + ' > ul').first().find('li').hide();
-                    $j('#' + branch_id + ' > ul').first().find('li').show('fast');
-                    $j('#' + branch_id + ' i').first().prop('class', opened);
-                } else {
-                    $j('#' + branch_id + ' i').first().prop('class', 'emptyNode');
-                }
-            }
-        }
-    });
-}
-
 function titleWithTooltipster(id) {
     $j(document).ready(function () {
         $j('#' + id).tooltipster({
diff --git a/apps/maarch_entreprise/no_right.php b/apps/maarch_entreprise/no_right.php
deleted file mode 100755
index 679580a0088..00000000000
--- a/apps/maarch_entreprise/no_right.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php  
-
-/*
-*    Copyright 2008,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/>.
-*/
-
-/**
-* File : no_right.php
-*
-* Default error of right page
-*
-* @package  Maarch PeopleBox 1.0
-* @version 2.1
-* @since 10/2005
-* @license GPL
-* @author  Claire Figueras  <dev@maarch.org>
-*/;
-
-$core_tools = new core_tools();
-
-unset($_SESSION['location_bar']['level2']);
-unset($_SESSION['location_bar']['level3']);
-unset($_SESSION['location_bar']['level4']);
-$core_tools->manage_location_bar();
-?>
-<h1><?php echo _NO_RIGHT;?></h1>
-<div id="inner_content" class="clearfix">
-<br/><br/>
-<div class="error"><?php echo _NO_RIGHT_TXT;?></div>
-</div>
diff --git a/modules/attachments/js/functions.js b/modules/attachments/js/functions.js
index b58ba4704b8..df00c72f140 100755
--- a/modules/attachments/js/functions.js
+++ b/modules/attachments/js/functions.js
@@ -1,9 +1,3 @@
-function cleanTitle(str) {
-    //permet de supprimer les # dans le titre qui bloque l'ouverture de l'applet java
-    var res = str.replace(/#/g, " ");
-    return(res);
-}
-
 function activePjTab(target) {
 
     $j('[id^=PjDocument_],#MainDocument').css('background-color', 'rgb(197, 197, 197)');
diff --git a/modules/avis/class/avis_controler_Abstract.php b/modules/avis/class/avis_controler_Abstract.php
index 14d31acdedd..8bccb708261 100755
--- a/modules/avis/class/avis_controler_Abstract.php
+++ b/modules/avis/class/avis_controler_Abstract.php
@@ -14,247 +14,5 @@
  */
 abstract class avis_controler_Abstract
 {
-    public function getAvis($resId)
-    {
-        //define avis limit date
-        $db = new Database();
 
-        $query = "SELECT notes.user_id,notes.note_text, opinion_limit_date FROM notes,res_letterbox WHERE identifier = ? AND note_text LIKE '[POUR AVIS]%' AND notes.identifier = res_letterbox.res_id";
-
-        $stmt = $db->query($query, array($resId));
-
-        $avis = $stmt->fetchObject();
-
-        return $avis;
-    }
-
-    //####################################
-    //# send avis
-    //####################################
-
-    public function getList($res_id, $coll_id, $bool_modif = false, $typeList, $isAvisStep = false, $fromDetail = '')
-    {
-        $circuit = $this->getWorkflow($res_id, $coll_id, $typeList);
-
-        $str = '<div class="error" id="divErrorAvis" onclick="this.hide();"></div>';
-        $str .= '<div class="info" id="divInfoAvis" onclick="this.hide();"></div>';
-
-        //AVIS USER LIST
-        if ($bool_modif == true) {
-            $str .= '<select data-placeholder="'._ADD_AVIS_ROLE.'" id="avisUserList" onchange="addAvisUser();">';
-            $str .= '<option value="" ></option>';
-
-            $tab_userentities = $this->getEntityAvis();
-            $tab_users = $this->getUsersAvis();
-            //Order by parent entity
-            foreach ($tab_userentities as $key => $value) {
-                $str .= '<optgroup label="'.$tab_userentities[$key]['entity_id'].'">';
-                foreach ($tab_users as $user) {
-                    if ($tab_userentities[$key]['entity_id'] == $user['entity_id']) {
-                        $selected = ' ';
-                        if ($user['id'] == $step['user_id']) {
-                            $selected = ' selected';
-                        }
-                        $str .= '<option value="'.$user['id'].'" '.$selected.'>'.$user['lastname'].' '.$user['firstname'].'</option>';
-                    }
-                }
-                $str .= '</optgroup>';
-            }
-            $str .= '</select>';
-            $str .= '<script>';
-            $str .= '$j("#avisUserList").chosen({width: "250px", disable_search_threshold: 10});';
-            $str .= '</script>';
-
-
-            $str .= ' <select data-placeholder="'._ADD_AVIS_MODEL.'" name="modelList" id="modelList" onchange="loadAvisModelUsers();">';
-            $str .= '<option value=""></option>';
-            $str .= '</select>';
-
-            $str .= '<script>';
-            $str .= '$j("#modelList").chosen({width: "250px", disable_search_threshold: 10});';
-            $str .= '</script>';
-            $str .= '<br/><br/>';
-        }
-
-        $str .= '<div id="avis_content">';
-        //AVIS USER IN DOCUMENT
-        $i = 1;
-        $lastUserAvis = true;
-
-        if (empty($circuit['avis']['users']) || !is_array($circuit['avis']['users']) || count($circuit['avis']['users']) == 0) {
-            $str .= '<div id="emptyAvis"><strong><em>'._EMPTY_AVIS_WORKFLOW.'</em></strong></div>';
-        } else {
-            $str .= '<div id="emptyAvis" style="display:none;"><strong><em>'._EMPTY_AVIS_WORKFLOW.'</em></strong></div>';
-            if (count($circuit['avis']['users']) > 0) {
-                foreach ($circuit['avis']['users'] as $it => $info_userAvis) {
-                    if (empty($info_userAvis['process_date'])) {
-                        if ($lastUserAvis == true && $isAvisStep == true) {
-                            $vised = ' currentAvis';
-                            $modif = 'false';
-                            $disabled = '';
-                            $link_vis = 'arrow-right ';
-                            $del_vis = '<div class="delete_avis"></div>';
-                            if ($info_userAvis['user_id'] != $_SESSION['user']['UserId']) {
-                                //$info_vised = '<p style="color:red;">Vous donnez votre avis à la place de ' . $info_userAvis['firstname'] . ' ' . $info_userAvis['lastname'] . '!</p>';
-                                $dropZone = '';
-                            } else {
-                                //$info_vised = 'Vous êtes l\'actuel conseiller';
-                                $dropZone = '';
-                            }
-                        } else {
-                            $dropZone = '<i class="fa fa-exchange-alt fa-2x fa-rotate-90" aria-hidden="true" title="'._DRAG_N_DROP_CHANGE_ORDER.'" style="cursor: pointer"></i>';
-                            $vised = '';
-                            if ($bool_modif == true) {
-                                $modif = 'true';
-                                $del_vis = '<i class="fa fa-trash-alt" aria-hidden="true" onclick="delAvisUser(this.parentElement.parentElement);" title="'._DELETE.'"></i>';
-                                $disabled = '';
-                            } else {
-                                $dropZone = '';
-                                $modif = 'false';
-                                $del_vis = '';
-                                $disabled = ' disabled="disabled"';
-                            }
-
-                            $info_vised = '';
-                            $link_vis = 'hourglass-half';
-                        }
-
-                        $lastUserAvis = false;
-                    } else {
-                        $lastUserAvis = true;
-                        $modif = 'false';
-                        $vised = ' vised';
-                        $link_vis = 'check';
-                        $disabled = ' disabled="disabled"';
-                        $info_vised = '<br/><sub>avis donné le : '.functions::format_date_db($info_userAvis['process_date'], '', '', true).'</sub>';
-                        $del_vis = '';
-                    }
-                    //AVIS USER LINE CIRCUIT
-                    $str .= '<div class="droptarget'.$vised.'" id="avis_'.$i.'" draggable="'.$modif.'">';
-                    $str .= '<span class="avisUserStatus">';
-                    $str .= '<i class="fa fa-'.$link_vis.'" aria-hidden="true"></i>';
-                    $str .= '</span>';
-                    $str .= '<span class="avisUserInfo">';
-                    $str .= '<sup class="avisUserPos nbResZero">'.$i.'</sup>&nbsp;&nbsp;';
-                    $str .= '<i class="fa fa-user fa-2x" aria-hidden="true"></i> '.$info_userAvis['lastname'].' '.$info_userAvis['firstname'].' <sup class="nbRes">'.$info_userAvis['entity_id'].'</sup>'.$info_vised;
-                    $str .= '</span>';
-                    $str .= '<span class="avisUserAction">';
-                    $str .= $del_vis;
-                    $str .= '</span>';
-                    $str .= '<span class="avisUserConsigne">';
-                    $str .= '<input class="userId" type="hidden" value="'.$info_userAvis['user_id'].'"/><input class="avisDate" type="hidden" value="'.$info_userAvis['process_date'].'"/><input'.$disabled.' class="consigne" type="text" value="'.$info_userAvis['process_comment'].'"/>';
-                    $str .= '</span>';
-                    $str .= '<span id="dropZone">';
-                    $str .= $dropZone;
-                    $str .= '</span>';
-                    $str .= '</div>';
-
-                    ++$i;
-                }
-            }
-        }
-
-        $str .= '</div>';
-
-        if ($bool_modif == true) {
-            //SAVE AVIS CIRCUIT
-            $str .= '<input type="button" name="send" id="send" value="'._SAVE_CHANGES.'" class="button" ';
-            $str .= 'onclick="updateAvisWorkflow('.$res_id.');" /> ';
-
-            //SAVE AS MODEL
-            $str .= '<input type="button" name="save" id="save" value="Enregistrer comme modèle" class="button" onclick="$(\'modalSaveAvisModel\').style.display = \'block\';" />';
-            $str .= '<div id="modalSaveAvisModel" >';
-            $str .= '<h3>'._SAVE_POSITION.' '._AVIS_WORKFLOW.'</h3><br/>';
-            $str .= '<label for="titleModel">'._TITLE.'</label> ';
-            $str .= '<input type="text" name="titleModel" id="titleModel"/><br/>';
-            $str .= '<input type="button" name="saveModel" id="saveModel" value="'._VALIDATE.'" class="button" onclick="saveAvisWorkflowAsModel();" /> ';
-            $str .= '<input type="button" name="cancelModel" id="cancelModel" value="'._CANCEL.'" class="button" onclick="$(\'modalSaveAvisModel\').style.display = \'none\';" />';
-            $str .= '</div>';
-        }
-        $str .= '<script>initDragNDropAvis();</script>';
-
-        return $str;
-    }
-
-    public function getWorkflow($res_id, $coll_id, $typeList)
-    {
-        require_once 'modules/entities/class/class_manage_listdiff.php';
-        $listdiff = new diffusion_list();
-        $roles = $listdiff->list_difflist_roles();
-        $circuitAvis = $listdiff->get_listinstance($res_id, false, $typeList);
-        if (isset($circuitAvis['copy'])) {
-            unset($circuitAvis['copy']);
-        }
-
-        return $circuitAvis;
-    }
-
-    public function getEntityAvis()
-    {
-        $db = new Database();
-
-        $stmt = $db->query("SELECT distinct(entities.entity_id) from users, usergroup_content, users_entities,entities WHERE users_entities.user_id = users.user_id and 
-            users_entities.primary_entity = 'Y' and users.user_id = usergroup_content.user_id AND entities.entity_id = users_entities.entity_id AND group_id IN 
-            (SELECT group_id FROM usergroups_services WHERE service_id = ?)  
-            order by entities.entity_id", array('avis_documents'));
-
-        $tab_userentities = array();
-
-        while ($res = $stmt->fetchObject()) {
-            array_push($tab_userentities, array('entity_id' => $res->entity_id));
-        }
-        //print_r($tab_userentities);
-        return $tab_userentities;
-    }
-
-    public function getUsersAvis($group_id = null)
-    {
-        $db = new Database();
-
-        if ($group_id != null) {
-            $stmt = $db->query("SELECT users.user_id, users.firstname, users.lastname, usergroup_content.group_id,entities.entity_id from users, usergroup_content, users_entities,entities WHERE users_entities.user_id = users.user_id and users.status <> 'DEL' and 
-                users_entities.primary_entity = 'Y' and users.user_id = usergroup_content.user_id AND entities.entity_id = users_entities.entity_id AND group_id IN 
-                (SELECT group_id FROM usergroups_services WHERE service_id = ? AND group_id = ?)  order by users.lastname", array('avis_documents', $group_id));
-        } else {
-            $stmt = $db->query("SELECT users.user_id, users.firstname, users.lastname, usergroup_content.group_id,entities.entity_id from users, usergroup_content, users_entities,entities WHERE users_entities.user_id = users.user_id and users.status <> 'DEL' and 
-                users_entities.primary_entity = 'Y' and users.user_id = usergroup_content.user_id AND entities.entity_id = users_entities.entity_id AND group_id IN 
-                (SELECT group_id FROM usergroups_services WHERE service_id = ?)  
-                order by users.lastname", array('avis_documents'));
-        }
-
-        $tab_users = array();
-
-        while ($res = $stmt->fetchObject()) {
-            array_push($tab_users, array('id' => $res->user_id, 'firstname' => $res->firstname, 'lastname' => $res->lastname, 'group_id' => $res->group_id, 'entity_id' => $res->entity_id));
-        }
-
-        return $tab_users;
-    }
-
-    public function saveModelWorkflow($id_list, $workflow, $typeList, $title)
-    {
-    }
-
-    public function saveWorkflow($res_id, $coll_id, $workflow, $typeList)
-    {
-        require_once 'modules/entities/class/class_manage_listdiff.php';
-        $diff_list = new diffusion_list();
-
-        $diff_list->save_listinstance(
-                $workflow,
-            $typeList,
-            $coll_id,
-            $res_id,
-            $_SESSION['user']['UserId'],
-            $_SESSION['user']['primaryentity']['id']
-        );
-    }
-
-    public function nbAvis($res_id, $coll_id)
-    {
-        $db = new Database();
-        $stmt = $db->query("SELECT listinstance_id from listinstance WHERE res_id= ? and coll_id = ? and item_mode = ? and difflist_type = 'AVIS_CIRCUIT'", array($res_id, $coll_id, 'avis'));
-
-        return $stmt->rowCount();
-    }
 }
diff --git a/modules/avis/css/module.css b/modules/avis/css/module.css
index 2dca093d379..b0ebe1a5e41 100755
--- a/modules/avis/css/module.css
+++ b/modules/avis/css/module.css
@@ -1,17 +1,3 @@
-#modalSaveAvisModel{
-	padding-top:20px;
-	z-index: 1050;
-	width: 300px;
-	height: 80px;
-	border: 2px solid #000;
-	display: none;
-	position: absolute;
-	background-color: #F2F2F2;
-	left: 40%;
-	top: 10%;
-	text-align: center;
-}
-
 [draggable=true]{
     cursor: move;
 }
@@ -21,10 +7,6 @@
 [draggable=false]:hover{
     cursor: not-allowed;
 }
-#avis_content{
-  display: block;
-  width: 100%;
-}
 .droptarget{
 	position: relative;
     background-color: #135F7F33;
diff --git a/modules/avis/js/functions.js b/modules/avis/js/functions.js
index 47438752725..e69de29bb2d 100755
--- a/modules/avis/js/functions.js
+++ b/modules/avis/js/functions.js
@@ -1,336 +0,0 @@
-function addAvisUser(users) {
-    if (!users) {
-        nb_avis = $j(".droptarget").length;
-        next_avis = nb_avis + 1;
-        if (nb_avis == 0) {
-            $j("#emptyAvis").hide();
-        }
-        $j("#avis_content").append('<div class="droptarget" id="avis_' + next_avis + '" draggable="true">'
-                + '<span class="avisUserStatus">'
-                + '<i class="fa fa-hourglass-half" aria-hidden="true"></i>'
-                + '</span>'
-                + '<span class="avisUserInfo">'
-                +'<sup class="avisUserPos nbResZero">'+next_avis+'</sup>&nbsp;&nbsp;'
-                + '<i class="fa fa-user fa-2x" aria-hidden="true"></i> ' + $j("select#avisUserList option:selected").text() + ' <sup class="nbRes">' + $j("select#avisUserList option:selected").parent().get(0).label + '</sup>'
-                + '<input class="userId" type="hidden" value="' + $j("select#avisUserList option:selected").val() + '"/><input class="avisDate" type="hidden" value=""/>'
-                + '</span>'
-                + '<span class="avisUserAction">'
-                + '<i class="fa fa-trash-alt" aria-hidden="true" onclick="delAvisUser(this.parentElement.parentElement);"></i>'
-                + '</span>'
-                + '<span class="avisUserConsigne">'
-                + '<input type="text" class="consigne" value=""/>'
-                + '</span>'
-                + '<span id="dropZone" title="Glisser/déposer pour modifier l\'ordre du circuit" style="cursor: pointer">'
-                + '<i class="fa fa-exchange-alt fa-2x fa-rotate-90" aria-hidden="true"></i>'
-                + '</span>'
-                + '</div>');
-
-        document.getElementById("avisUserList").selectedIndex = 0;
-        $j("#avisUserList").trigger("chosen:updated");
-    } else {
-        nb_avis = $j(".droptarget").length;
-        next_avis = nb_avis + 1;
-        if (nb_avis == 0) {
-            $j("#emptyAvis").hide();
-        }
-        $j("#avis_content").append('<div class="droptarget" id="avis_' + next_avis + '" draggable="true">'
-                + '<span class="avisUserStatus">'
-                + '<i class="fa fa-hourglass-half" aria-hidden="true"></i>'
-                + '</span>'
-                + '<span class="avisUserInfo">'
-                +'<sup class="avisUserPos nbResZero">'+next_avis+'</sup>&nbsp;&nbsp;'
-                + '<i class="fa fa-user fa-2x" aria-hidden="true"></i> ' + users.lastname + ' ' + users.firstname + ' <sup class="nbRes">' + users.entity_id + '</sup>'
-                + '<input class="userId" type="hidden" value="' + users.user_id + '"/><input class="avisDate" type="hidden" value=""/>'
-                + '</span>'
-                + '<span class="avisUserAction">'
-                + '<i class="fa fa-trash-alt" aria-hidden="true" onclick="delAvisUser(this.parentElement.parentElement);"></i>'
-                + '</span>'
-                + '<span class="avisUserConsigne">'
-                + '<input type="text" class="consigne" value="' + users.process_comment + '"/>'
-                + '</span>'
-                + '<span id="dropZone" title="Glisser/déposer pour modifier l\'ordre du circuit" style="cursor: pointer">'
-                + '<i class="fa fa-exchange-alt fa-2x fa-rotate-90" aria-hidden="true"></i>'
-                + '</span>'
-                + '</div>');
-
-    }
-    resetPosAvis();
-}
-function delAvisUser(target) {
-    console.log(target);
-    var id = '#' + target.id;
-
-    if ($j(".droptarget").length == 1) {
-        $j("#emptyAvis").show();
-    }
-    $j(id).remove();
-
-    resetPosAvis();
-
-}
-function resetPosAvis() {
-    i = 1;
-    $j(".droptarget").each(function () {
-        this.id = 'avis_' + i;
-        $j("#" + this.id).find(".avisUserPos").text(i);
-        i++;
-    });
-}
-function updateAvisWorkflow(resId) {
-    var $i = 0;
-    var userList = [];
-    if ($j(".droptarget").length) {
-        $j(".droptarget").each(function () {
-            //console.log('viseur : '+$j("#"+this.id+" .userdId").val());
-            userId = $j("#" + this.id).find(".userId").val();
-            userConsigne = $j("#" + this.id).find(".consigne").val();
-            userAvisDate = $j("#" + this.id).find(".avisDate").val();
-            userPos = $i;
-            userList.push({userId: userId, userPos: userPos, userConsigne: userConsigne, userAvisDate: userAvisDate});
-            $i++;
-        });
-    }
-
-    //EXEMPLE BIEN FAIT
-    $j.ajax({
-        url: 'index.php?display=true&module=avis&page=updateAvisWF',
-        type: 'POST',
-        dataType: 'JSON',
-        data: {
-            resId: resId,
-            userList: JSON.stringify(userList)
-        },
-        success: function (response) {
-            if (response.status == 0) {
-                $('divInfoAvis').innerHTML = 'Mise à jour du circuit effectuée';
-                $('divInfoAvis').style.display = 'table-cell';
-                Element.hide.delay(5, 'divInfoAvis');
-                eval(response.exec_js);
-            } else if (response.status != 1) {
-                alert(response.error_txt)
-            }
-        },
-        error: function (error) {
-            alert(error);
-        }
-
-    });
-}
-function saveAvisWorkflowAsModel() {
-    var $i = 0;
-    var userList = [];
-    var title = $j("#titleModel").val();
-
-    if ($j(".droptarget").length) {
-        $j(".droptarget").each(function () {
-            //console.log('viseur : '+$j("#"+this.id+" .userdId").val());
-            userId = $j("#" + this.id).find(".userId").val();
-            userConsigne = $j("#" + this.id).find(".consigne").val();
-            userAvisDate = $j("#" + this.id).find(".avisDate").val();
-            userPos = $i;
-            userList.push({userId: userId, userPos: userPos, userConsigne: userConsigne, userAvisDate: userAvisDate});
-            $i++;
-        });
-        $j.ajax({
-            url: 'index.php?display=true&module=avis&page=saveAvisModel',
-            type: 'POST',
-            dataType: 'JSON',
-            data: {
-                title: title,
-                userList: JSON.stringify(userList)
-            },
-            success: function (response) {
-                if (response.status == 0) {
-                    $('divInfoAvis').innerHTML = 'Modèle enregistré';
-                    $('divInfoAvis').style.display = 'table-cell';
-                    Element.hide.delay(5, 'divInfoAvis');
-                    $j('#modalSaveAvisModel').hide();
-                    eval(response.exec_js);
-                } else {
-                    alert(response.error_txt)
-                }
-            },
-            error: function (error) {
-                alert(error);
-            }
-
-        });
-
-    } else {
-        alert('Aucun utilisateur dans le circuit !');
-    }
-
-}
-function loadAvisModelUsers() {
-
-    var objectId = $j("select#modelList option:selected").val();
-    var objectType = 'AVIS_CIRCUIT';
-    $j.ajax({
-        url: 'index.php?display=true&module=avis&page=load_listmodel_avis_users',
-        type: 'POST',
-        dataType: 'JSON',
-        data: {
-            objectType: objectType,
-            objectId: objectId
-        },
-        success: function (response) {
-            if (response.status == 0) {
-
-                var userList = response.result;
-                if (userList) {
-                    userList.each(function (user, key) {
-                        addAvisUser(user);
-                    });
-                }
-
-
-            } else {
-                alert(response.error_txt);
-            }
-        },
-        error: function (error) {
-            alert(error);
-        }
-
-    });
-
-    //prototype
-    document.getElementById("modelList").selectedIndex = 0;
-    $j("#modelList").trigger("chosen:updated");
-}
-
-function initDragNDropAvis() {
-    document.getElementById("avis_content").addEventListener("dragstart", function (event) {
-        $j(".droptarget").not(".vised,.currentVis").css("border", "dashed 2px #135F7F33");
-        // The dataTransfer.setData() method sets the data type and the value of the dragged data
-        event.dataTransfer.setData("Text", event.target.id);
-
-        // Output some text when starting to drag the p element
-        //document.getElementById("demo").innerHTML = "Started to drag the p element.";
-
-        // Change the opacity of the draggable element
-        event.target.style.opacity = "0.4";
-    });
-
-    // While dragging the p element, change the color of the output text
-    document.getElementById("avis_content").addEventListener("drag", function (event) {
-        //document.getElementById("demo").style.color = "red";
-    });
-
-    // Output some text when finished dragging the p element and reset the opacity
-    document.getElementById("avis_content").addEventListener("dragend", function (event) {
-        //document.getElementById("demo").innerHTML = "Finished dragging the p element.";
-        $j(".droptarget").not(".vised,.currentVis").css("border", "dashed 2px #135F7F33");
-        event.target.style.opacity = "1";
-    });
-
-
-    /* Events fired on the drop target */
-
-    // When the draggable p element enters the droptarget, change the DIVS's border style
-    document.getElementById("avis_content").addEventListener("dragenter", function (event) {
-        if (event.target.className == "droptarget") {
-            event.target.style.border = "dashed 2px green";
-        }
-    });
-
-    // By default, data/elements cannot be dropped in other elements. To allow a drop, we must prevent the default handling of the element
-    document.getElementById("avis_content").addEventListener("dragover", function (event) {
-        event.preventDefault();
-    });
-
-    // When the draggable p element leaves the droptarget, reset the DIVS's border style
-    document.getElementById("avis_content").addEventListener("dragleave", function (event) {
-        if (event.target.className == "droptarget") {
-            event.target.style.border = "dashed 2px #ccc";
-        }
-    });
-
-    /* On drop - Prevent the browser default handling of the data (default is open as link on drop)
-     Reset the color of the output text and DIV's border color
-     Get the dragged data with the dataTransfer.getData() method
-     The dragged data is the id of the dragged element ("drag1")
-     Append the dragged element into the drop element
-     */
-    document.getElementById("avis_content").addEventListener("drop", function (event) {
-        event.preventDefault();
-        if (event.target.className == "droptarget") {
-            /*event.target.style.border = "";
-             var data = event.dataTransfer.getData("Text");
-             var oldContent = event.target.innerHTML;
-             var draggedConsigne = $j('#'+data+' .consigne').val();
-             var replaceConsigne = $j('#'+event.target.id+' .consigne').val();
-             event.target.innerHTML = document.getElementById(data).innerHTML;
-             $j('#'+event.target.id+' .consigne').val(draggedConsigne);
-             document.getElementById(data).innerHTML = oldContent;
-             $j('#'+data+' .consigne').val(replaceConsigne);*/
-            var data = event.dataTransfer.getData("Text");
-            var target = event.target.id;
-            posData = data.split("_");
-            posTarget = target.split("_");
-            if (posData[1] > posTarget[1]) {
-                $j('#' + target).before($j('#' + data));
-            } else {
-                $j('#' + target).after($j('#' + data));
-            }
-            resetPosAvis();
-
-
-        }
-    });
-    $j('#avis_content')
-        .on('focus', '.consigne', function(e) {
-            $j(this).closest('.droptarget').attr("draggable", false);
-            console.log($j(this).closest('.droptarget'));
-        })
-        .on('blur', '.consigne', function(e) {
-            $j(this).closest('.droptarget').attr("draggable", true);
-        });
-}
-
-function checkRealDateAvis() {
-
-    var processLimitDate;
-    var avisLimitDate;
-
-    var current_date = Date.now();
-
-    if ($j('#process_limit_date')) {
-        processLimitDate = $j('#process_limit_date').val();
-        var date4 = new Date();
-        date4.setFullYear(processLimitDate.substr(6, 4));
-        date4.setMonth(processLimitDate.substr(3, 2) - 1);
-        date4.setDate(processLimitDate.substr(0, 2));
-        date4.setHours(0);
-        date4.setMinutes(0);
-        date4.setSeconds(0);
-        var d4_processLimitDate = date4.getTime();
-    }
-
-
-    if ($j('#opinion_limit_date')) {
-        avisLimitDate = $j('opinion_limit_date_tr').val();
-        var date5 = new Date();
-        date5.setFullYear(avisLimitDate.substr(6, 4));
-        date5.setMonth(avisLimitDate.substr(3, 2) - 1);
-        date5.setDate(avisLimitDate.substr(0, 2));
-        date5.setHours(0);
-        date5.setMinutes(0);
-        date5.setSeconds(0);
-        var d5_avisLimitDate;
-        var d5_avisLimitDate = date5.getTime();
-    }
-
-    if (d4_processLimitDate != "" && avisLimitDate != "" && (d5_avisLimitDate > d4_processLimitDate && d4_processLimitDate > current_date)) {
-        alert("La date limite d'avis doit être antérieure à la date limite du courrier ");
-        $j('#opinion_limit_date').val("");
-        $j('#opinion_limit_date_tr').val("");
-
-    }
-
-    if (current_date > d5_avisLimitDate && avisLimitDate != "") {
-        alert("La date d'avis doit être supérieure à la date du jour ");
-        $j('#opinion_limit_date').val("");
-        $j('#opinion_limit_date_tr').val("");
-    }
-}
diff --git a/modules/avis/load_toolbar_avis.php b/modules/avis/load_toolbar_avis.php
deleted file mode 100755
index e36f995dbcd..00000000000
--- a/modules/avis/load_toolbar_avis.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-$targetTab = $_REQUEST['targetTab'];
-$res_id = $_REQUEST['resId'];
-$coll_id = $_REQUEST['collId'];
-
-require_once 'modules' . DIRECTORY_SEPARATOR . 'avis' . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR . 'avis_controler.php';
-
-$avis = new avis_controler();
-
-$nbAvis = $avis->nbAvis($res_id,$coll_id);
-
-if ($nbAvis == 0){
-    $class = 'nbResZero';
-    $style2 = 'display:none;';
-    $style = '0.5';
-    $styleDetail = '#9AA7AB';
-}
-else{
-    $class = 'nbRes';
-    $style = '';
-    $style2 = 'display:inherit;';
-    $styleDetail = '#666';
-}
-
-if($_SESSION['req'] == 'details'){
-    if($nbAvis == 0 && strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome')){
-            $nav = 'avis_tab';
-            $style2 = 'visibility:hidden;';
-
-        }
-    if($_REQUEST['origin'] == 'parent'){
-        $js .= 'parent.$(\''.$targetTab.'\').style.color=\''.$styleDetail.'\';parent.$(\''.$targetTab.'_badge\').innerHTML = \'<span id="nb_'.$targetTab.'" style="'.$style2.'font-size: 10px;" class="'.$class.'">'.$nbAvis.'</span>\'';
-
-    }else {
-       $js .= '$(\''.$targetTab.'\').style.color=\''.$styleDetail.'\';$(\''.$targetTab.'_badge\').innerHTML = \'<span id="nb_'.$targetTab.'" style="'.$style2.'font-size: 10px;" class="'.$class.'">'.$nbAvis.'</span>\'';
-
-    }
-}else{
-    if($_REQUEST['origin'] == 'parent'){
-        $js .= 'parent.$(\''.$targetTab.'_img\').style.opacity=\''.$style.'\';parent.$(\''.$targetTab.'_badge\').innerHTML = \'&nbsp;<sup><span id="nb_'.$targetTab.'" style="'.$style2.'" class="'.$class.'">'.$nbAvis.'</span></sup>\'';
-
-    }else {
-       $js .= '$(\''.$targetTab.'_img\').style.opacity=\''.$style.'\';$(\''.$targetTab.'_badge\').innerHTML = \'&nbsp;<sup><span id="nb_'.$targetTab.'" style="'.$style2.'" class="'.$class.'">'.$nbAvis.'</span></sup>\'';
-
-    }
-}
-      
-echo "{status : 0, nav : '".$nav."',content : '', error : '', exec_js : '".addslashes($js)."'}";
-exit ();
\ No newline at end of file
diff --git a/modules/avis/saveAvisModel.php b/modules/avis/saveAvisModel.php
deleted file mode 100755
index 4afc1b889b7..00000000000
--- a/modules/avis/saveAvisModel.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-/*
- * Copyright Maarch since 2008 under licence GPLv3.
- * See LICENCE.txt file at the root folder for more details.
- * This file is part of Maarch software.
- * 
- */
-
-/*
- * @brief saveAvisModel
- * @author dev@maarch.org
- * @ingroup avis
- * 
- */
-require_once "modules" . DIRECTORY_SEPARATOR . "avis" . DIRECTORY_SEPARATOR
-        . "class" . DIRECTORY_SEPARATOR
-        . "avis_controler.php";
-
-
-$title = $_REQUEST['title'];
-$id_list = 'AVIS_CIRCUIT_' . strtoupper(base_convert(date('U'), 10, 36));
-
-
-$userList = json_decode($_REQUEST['userList']);
-
-$avis = new avis_controler();
-$_SESSION['avis_wf']['diff_list']['avis']['users'] = array();
-$_SESSION['avis_wf']['diff_list']['sign']['users'] = array();
-
-$i = 0;
-foreach ($userList as $user) {
-
-    array_push(
-            $_SESSION['avis_wf']['diff_list']['avis']['users'], array(
-        'user_id' => $user->userId,
-        'process_comment' => $user->userConsigne,
-        'process_date' => $user->userAvisDate,
-        'viewed' => 0,
-        'visible' => 'Y',
-        'difflist_type' => 'AVIS_CIRCUIT'
-            )
-    );
-}
-$avis->saveModelWorkflow($id_list, $_SESSION['avis_wf']['diff_list'], 'AVIS_CIRCUIT', $title);
-
-echo "{\"status\" : 0}";
-
-exit();
-?>
\ No newline at end of file
diff --git a/modules/avis/updateAvisWF.php b/modules/avis/updateAvisWF.php
deleted file mode 100755
index 5eb31170948..00000000000
--- a/modules/avis/updateAvisWF.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-/*
- * Copyright Maarch since 2008 under licence GPLv3.
- * See LICENCE.txt file at the root folder for more details.
- * This file is part of Maarch software.
- * 
- */
-
-/*
- * @brief updateAvisWF
- * @author dev@maarch.org
- * @ingroup avis
- * 
- */
-require_once "modules" . DIRECTORY_SEPARATOR . "avis" . DIRECTORY_SEPARATOR
-        . "class" . DIRECTORY_SEPARATOR
-        . "avis_controler.php";
-
-
-$res_id = $_REQUEST['resId'];
-$coll_id = 'letterbox_coll';
-
-$userList = json_decode($_REQUEST['userList']);
-
-$avis = new avis_controler();
-$_SESSION['avis_wf']['diff_list']['avis']['users'] = array();
-
-$i = 0;
-if ($userList) {
-    foreach ($userList as $user) {
-
-        array_push(
-                $_SESSION['avis_wf']['diff_list']['avis']['users'], array(
-            'user_id' => $user->userId,
-            'process_comment' => $user->userConsigne,
-            'process_date' => $user->userAvisDate,
-            'viewed' => 0,
-            'visible' => 'Y',
-            'difflist_type' => 'AVIS_CIRCUIT'
-                )
-        );
-    }
-}
-
-$avis->saveWorkflow($res_id, $coll_id, $_SESSION['avis_wf']['diff_list'], 'AVIS_CIRCUIT');
-
-//LOAD TOOLBAR BADGE
-$toolbarBagde_script = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=avis&page=load_toolbar_avis&origin=parent&resId=' . $res_id . '&collId=' . $coll_id;
-$js = 'loadToolbarBadge(\'avis_tab\',\'' . $toolbarBagde_script . '\');';
-
-
-echo "{\"status\" : 0, \"exec_js\" : \"" . $js . "\"}";
-exit();
-?>
\ No newline at end of file
diff --git a/modules/avis/xml/IVS/requests_definitions.xml b/modules/avis/xml/IVS/requests_definitions.xml
index 1701e854820..71544fbeeb5 100755
--- a/modules/avis/xml/IVS/requests_definitions.xml
+++ b/modules/avis/xml/IVS/requests_definitions.xml
@@ -1,14 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <inputValidation xmlns:xi="http://www.w3.org/2001/XInclude">
 <requestDefinitions>
-    <requestDefinition method="POST" path="/apps/maarch_entreprise/index.php" validationRule="saveAvisModel" >
-        <parameter name="page" value="saveAvisModel"/>
-        <parameter name="module" value="Avis"/>
-    </requestDefinition>
-    <requestDefinition method="GET" path="/apps/maarch_entreprise/index.php" validationRule="saveAvisModel" >
-        <parameter name="page" value="saveAvisModel"/>
-        <parameter name="module" value="Avis"/>
-    </requestDefinition>
     <requestDefinition method="POST" path="/apps/maarch_entreprise/index.php" validationRule="sign_ans" >
         <parameter name="page" value="sign_ans"/>
         <parameter name="module" value="Avis"/>
diff --git a/modules/avis/xml/IVS/validation_rules.xml b/modules/avis/xml/IVS/validation_rules.xml
index f709fe7f2b1..89f446f200a 100755
--- a/modules/avis/xml/IVS/validation_rules.xml
+++ b/modules/avis/xml/IVS/validation_rules.xml
@@ -3,13 +3,6 @@
     	<parameter name="objectType" type="identifier" />
 		<parameter name="objectId" type="identifier" />
     </validationRule>
-    <validationRule name="saveAvisModel" extends="standardForm" mode="error">
-    	<parameter name="id_list" type="string" />
-    	<parameter name="title" type="string" />
-    	<parameter name="conseillers" type="string" />
-    	<parameter name="consignes" type="string" />
-		<parameter name="list_sign" type="string" />
-    </validationRule>
     <validationRule name="update_AvisPage" extends="standardForm" mode="error">
     	<parameter name="res_id" type="integer" />
     	<parameter name="coll_id" type="collection_list" />
diff --git a/modules/basket/lang/en.php b/modules/basket/lang/en.php
index ad91095b1a0..704e3f8308a 100755
--- a/modules/basket/lang/en.php
+++ b/modules/basket/lang/en.php
@@ -233,12 +233,6 @@ if (!defined("_MISSING"))
     define("_MISSING", "Absent");
 if (!defined("_BACK_FROM_VACATION"))
     define("_BACK_FROM_VACATION", "Back from his/her absence");
-if (!defined("_MISSING_ADVERT_TITLE"))
-    define("_MISSING_ADVERT_TITLE","Absences management");
-if (!defined("_MISSING_ADVERT_01"))
-    define("_MISSING_ADVERT_01","This account is currently defined as absent and the mails are redirected to an other user.");
-if (!defined("_MISSING_ADVERT_02"))
-    define("_MISSING_ADVERT_02","If you want to connect with this account, the 'absent' mode will be deleted then.<br/> The mails redirection will come at its end and the application will be reactivated");
 if (!defined("_MISSING_CHOOSE"))
     define("_MISSING_CHOOSE"," Do you want to continue ?");
 if (!defined("_CHOOSE_PERSON_TO_REDIRECT"))
diff --git a/modules/basket/lang/fr.php b/modules/basket/lang/fr.php
index c91f5962b38..2d354023ab8 100755
--- a/modules/basket/lang/fr.php
+++ b/modules/basket/lang/fr.php
@@ -178,15 +178,6 @@ if (!defined("_MISSING")) {
 if (!defined("_BACK_FROM_VACATION")) {
     define("_BACK_FROM_VACATION", "de retour de son absence");
 }
-if (!defined("_MISSING_ADVERT_TITLE")) {
-    define("_MISSING_ADVERT_TITLE", "Gestion des absences");
-}
-if (!defined("_MISSING_ADVERT_01")) {
-    define("_MISSING_ADVERT_01", "Ce compte est actuellement défini en mode 'absent'.");
-}
-if (!defined("_MISSING_ADVERT_02")) {
-    define("_MISSING_ADVERT_02", "Si vous desirez vous connecter avec ce compte, le mode 'absent' sera alors supprimé.<br/> La redirection des courriers arrivera à son terme et l'application sera réactivée");
-}
 if (!defined("_MISSING_CHOOSE")) {
     define("_MISSING_CHOOSE", "Souhaitez-vous continuer?");
 }
diff --git a/modules/basket/lang/nl.php b/modules/basket/lang/nl.php
index dc43e993f2e..1e790a7867e 100755
--- a/modules/basket/lang/nl.php
+++ b/modules/basket/lang/nl.php
@@ -303,15 +303,6 @@ if (!defined('_MISSING')) {
 if (!defined('_BACK_FROM_VACATION')) {
     define('_BACK_FROM_VACATION', 'bij terugkeer na afwezigheid');
 }
-if (!defined('_MISSING_ADVERT_TITLE')) {
-    define('_MISSING_ADVERT_TITLE', 'Afwezigheidsbeheer');
-}
-if (!defined('_MISSING_ADVERT_01')) {
-    define('_MISSING_ADVERT_01', 'Deze account is momenteel in “afwezigheids”modus gezet en de brieven worden naar een andere gebruiker omgeleid.');
-}
-if (!defined('_MISSING_ADVERT_02')) {
-    define('_MISSING_ADVERT_02', 'Indien u zich met deze account wil verbinden, zal de modus “afwezig” verwijderd worden.<br/> De omleiding van de brieven zal voltooid worden en de applicatie zal opnieuw ingeschakeld worden');
-}
 if (!defined('_MISSING_CHOOSE')) {
     define('_MISSING_CHOOSE', 'Wilt u verdergaan?');
 }
diff --git a/modules/notes/class/class_modules_tools_Abstract.php b/modules/notes/class/class_modules_tools_Abstract.php
index f519b81e3ca..c82dbee9ad5 100755
--- a/modules/notes/class/class_modules_tools_Abstract.php
+++ b/modules/notes/class/class_modules_tools_Abstract.php
@@ -36,7 +36,6 @@
 // Loads the required class
 try {
     require_once("core/class/class_db.php");
-    require_once("modules/notes/notes_tables.php");
     require_once("modules/entities/entities_tables.php");
     require_once ("modules/notes/class/class_modules_tools.php");
     require_once "modules/entities/class/EntityControler.php";
@@ -57,16 +56,6 @@ abstract class notes_Abstract
     */
     public static $ent;
     
-     /**
-    * Notes table
-    */
-    public static $notes_table ;
-
-    /**
-    * Notes_entities table
-    */
-    public static $notes_entities_table ;
-    
     /**
     * Entities table
     */
@@ -78,33 +67,7 @@ abstract class notes_Abstract
     */
     public function build_modules_tables()
     {
-        if (file_exists(
-            $_SESSION['config']['corepath'] . 'custom' . DIRECTORY_SEPARATOR
-            . $_SESSION['custom_override_id'] . DIRECTORY_SEPARATOR . "modules"
-            . DIRECTORY_SEPARATOR . "notes" . DIRECTORY_SEPARATOR . "xml"
-            . DIRECTORY_SEPARATOR . "config.xml"
-        )
-        ) {
-            $path = $_SESSION['config']['corepath'] . 'custom'
-                  . DIRECTORY_SEPARATOR . $_SESSION['custom_override_id']
-                  . DIRECTORY_SEPARATOR . "modules" . DIRECTORY_SEPARATOR
-                  . "notes" . DIRECTORY_SEPARATOR . "xml" . DIRECTORY_SEPARATOR
-                  . "config.xml";
-        } else {
-            $path = "modules" . DIRECTORY_SEPARATOR . "notes"
-                  . DIRECTORY_SEPARATOR . "xml" . DIRECTORY_SEPARATOR
-                  . "config.xml";
-        }
-        $xmlconfig = simplexml_load_file($path);
-        foreach ($xmlconfig->TABLENAME as $tableName) {
-            $_SESSION['tablename']['not_notes'] = (string) $tableName->not_notes;
-            $_SESSION['tablename']['note_entities'] = (string) $tableName->note_entities;
-        }
-        $hist = $xmlconfig->HISTORY;
-        $_SESSION['history']['noteadd'] = (string) $hist->noteadd;
-        $_SESSION['history']['noteup'] = (string) $hist->noteup;
-        $_SESSION['history']['notedel'] = (string) $hist->notedel;
-    } 
+    }
     
     /**
      * Function to get which user can see a note
@@ -115,127 +78,22 @@ abstract class notes_Abstract
         $db = new Database();
         $ent = new EntityControler();
         
-        $query = "SELECT entity_id, entity_label, short_label FROM ".NOTE_ENTITIES_TABLE." , entities WHERE item_id LIKE entity_id and note_id = ?";
+        $query = "SELECT entity_id, entity_label, short_label FROM note_entities , entities WHERE item_id LIKE entity_id and note_id = ?";
         
-        try{
+        try {
             $stmt = $db->query($query, array($id));
-        } catch (Exception $e){}
-        
+        } catch (Exception $e) {
+        }
 
         $entitiesList = array();
         $entitiesChosen = array();
         $entitiesList = $ent->getAllEntities();
         
 
-        while($res = $stmt->fetchObject())
-        {
+        while ($res = $stmt->fetchObject()) {
             array_push($entitiesChosen, $ent->get($res->entity_id));
         }
         
-        //self::disconnect();
         return $entitiesChosen;
     }
-    
-    public function getNotes($noteId, $userId, $userPrimaryEntity)
-    {
-        $query = "SELECT id FROM notes WHERE id in ("
-                  . "SELECT note_id FROM ". NOTE_ENTITIES_TABLE. " WHERE (item_id in ("
-                      ."SELECT entity_id FROM users_entities WHERE user_id = ?) and note_id = ?))"
-            . "or (id = ? and user_id = ?)";
-        $db = new Database();
-        $stmt = $db->query($query, array($userId, $noteId, $noteId, $userId));
-
-        if ($stmt->rowCount() > 0) {
-            return true;
-         } else {
-            // test if public
-            $query = "SELECT note_id FROM ". NOTE_ENTITIES_TABLE. " WHERE note_id = ?";
-            $stmt = $db->query($query, array($noteId));
-            if ($stmt->rowCount() == 0) {
-                return true;
-            } else {
-                return false;
-            }
-         }
-    }
-    
-    public function countUserNotes($id, $type = 'resource') {
-        $not_nbr = 0;
-        $db = new Database();
-
-        $stmt = $db->query("SELECT id, identifier, user_id, creation_date, note_text FROM "
-                            . NOTES_TABLE 
-                            . " WHERE identifier = ? and type = ? order by creation_date desc", array($id, $type));
-
-       while ($res = $stmt->fetchObject())
-       {
-           $query = "SELECT id FROM ". NOTE_ENTITIES_TABLE. " WHERE note_id = ?";
-                    
-           $stmt2 = $db->query($query, array($res->id));
-                        
-           if($stmt2->rowCount()==0)
-            $not_nbr++;
-           else
-           {
-             $stmt2 = $db->query( "SELECT id FROM notes WHERE id in ("
-                . "SELECT note_id FROM ". NOTE_ENTITIES_TABLE. " WHERE (item_id in ("
-                      ."SELECT entity_id FROM users_entities WHERE user_id = ?) and note_id = ?))"
-                . "or (id = ? and user_id = ?)",
-                array($_SESSION['user']['UserId'], $res->id, $res->id, $_SESSION['user']['UserId']));
-            
-                if($stmt2->rowCount()<>0)
-                $not_nbr++;
-            }
-        }
-        
-        return $not_nbr;
-    } 
-    
-    public function getUserNotes($id, $coll_id) {
-        $userNotes = array();
-        $db = new Database();
-
-        $stmt = $db->query("SELECT id, identifier, user_id, creation_date, note_text FROM "
-                            . NOTES_TABLE 
-                            . " WHERE identifier = ? order by creation_date desc",
-                            array($id));
-
-       while ($res = $stmt->fetchObject())
-       {
-           $query = "SELECT id FROM ".NOTE_ENTITIES_TABLE." WHERE note_id = ?";
-                    
-           $stmt2 = $db->query($query, array($res->id));
-
-           $stmt3 = $db->query("SELECT id FROM USERS WHERE user_id = ?", array($_SESSION['user']['UserId']));
-           $userInfo = $stmt3->fetchObject();
-                        
-            if($stmt2->rowCount()==0) {
-                array_push($userNotes,
-                    array('id' => $res->id, //ID
-                          'label' => functions::show_string($res->note_text), //Label
-                          'author' => $res->user_id, //Author 
-                          'date' => $res->creation_date //Date
-                        )
-                );
-           } else {
-             $stmt2 = $db->query( "SELECT id FROM notes WHERE id in ("
-                . "select note_id from ". NOTE_ENTITIES_TABLE. " where (item_id in ("
-                      ."SELECT entity_id FROM users_entities WHERE user_id = ?) and note_id = ?))"
-                . "or (id = ? and user_id = ?)",
-                array($userInfo->id, $res->id, $res->id, $userInfo->id));
-            
-                if($stmt2->rowCount()<>0) {
-                    array_push($userNotes,
-                        array('id' => $res->id, //ID
-                              'label' => functions::show_string($res->note_text), //Label
-                              'author' => $res->user_id, //Author 
-                              'date' => $res->creation_date //Date
-                            )
-                    );
-                }
-            }
-        }
-        
-        return $userNotes;
-    }
 }
diff --git a/modules/notes/class/notes_controler.php b/modules/notes/class/notes_controler.php
deleted file mode 100755
index e0539c49e5f..00000000000
--- a/modules/notes/class/notes_controler.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/*
-*   Copyright 2013-2016 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/>.
-*/
-
-/**
-* @brief  Contains the controler of the note Object
-*
-*
-* @file
-* @author Laurent Giovannoni <dev@maarch.org>
-* @date $date$
-* @version $Revision$
-* @ingroup notes
-*/
-
-require_once 'modules/notes/class/notes_controler_Abstract.php';
-
-/**
-* @brief  Controler of the note Object
-*
-* @ingroup notes
-*/
-class notes_controler extends notes_controler_Abstract
-{
-    // custom
-}
diff --git a/modules/notes/class/notes_controler_Abstract.php b/modules/notes/class/notes_controler_Abstract.php
deleted file mode 100755
index 137ca3d5262..00000000000
--- a/modules/notes/class/notes_controler_Abstract.php
+++ /dev/null
@@ -1,111 +0,0 @@
-<?php
-/*
-*   Copyright 2013-2016 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/>.
-*/
-
-/**
-* @brief  Contains the controler of the note Object
-*
-*
-* @file
-* @author Laurent Giovannoni <dev@maarch.org>
-* @date $date$
-* @version $Revision$
-* @ingroup notes
-*/
-
-/**
-* @brief  Controler of the note Object
-*
-* @ingroup notes
-*/
-abstract class notes_controler_Abstract
-{
-    #####################################
-    ## add note on a resource
-    #####################################
-    public function addNote($resId, $collId, $noteContent, $typist='')
-    {
-        if(empty($typist)){
-            $typist = $_SESSION['user']['UserId'];
-        }
-        $status = 'ok';
-        $error = '';
-        //control parameters
-        if (isset($resId) && empty($resId)) {
-            $status = 'ko';
-            $error = 'resId empty ';
-        }
-        if (isset($collId) && empty($collId)) {
-            $status = 'ko';
-            $error = 'collId empty ';
-        }
-        if (isset($noteContent) && empty($noteContent)) {
-            $status = 'ko';
-            $error .= 'noteContent empty ';
-        }
-        //process
-        if ($status == 'ok') {
-            require_once 'core/class/class_security.php';
-            require_once 'modules/notes/notes_tables.php';
-            $security = new security();
-            $view = $security->retrieve_view_from_coll_id($collId);
-            $table = $security->retrieve_table_from_coll($collId);
-            $db = new Database();
-            $query = "SELECT res_id FROM " . $view . " WHERE res_id = ?";
-            $stmt = $db->query($query, array($resId));
-            if ($stmt->rowCount() == 0) {
-                $status = 'ko';
-                $error .= 'resId not exists';
-            } else {
-                $query =
-                    "INSERT INTO " . NOTES_TABLE . "(identifier, note_text, "
-                    . "creation_date, user_id) values"
-                    . " (?, ?, CURRENT_TIMESTAMP, ?)";
-                    
-                    $stmt = $db->query($query, array($resId, $noteContent, $typist));
-
-                    $hist = new history();
-                    $stmt = $db->query(
-                        "SELECT id FROM " . NOTES_TABLE . " WHERE "
-                        . "identifier = ? and user_id = ? order by id desc",
-                        array($resId, $typist)
-                    );
-                    $res = $stmt->fetchObject();
-                    $id = $res->id;
-                    $hist->add(
-                        $view, $resId, 'UP', 'resup', _ADDITION_NOTE
-                        . _ON_DOC_NUM . $resId . ' (' . $id . ') ' . _FROM_WS,
-                        $_SESSION['config']['databasetype'], 'notes'
-                    );
-                    $hist->add(
-                        NOTES_TABLE, $id, 'ADD', 'noteadd', _NOTES_ADDED
-                        . ' (' . $id . ') ' . _FROM_WS,
-                        $_SESSION['config']['databasetype'], 'notes'
-                    );
-
-            }
-        }
-        $returnArray = array(
-            'status' => $status,
-            'value' => $id,
-            'error' => $error,
-        );
-        return $returnArray;
-    }
-}
diff --git a/modules/notes/css/module.css b/modules/notes/css/module.css
index a97d7af7c0b..fab06031e8c 100755
--- a/modules/notes/css/module.css
+++ b/modules/notes/css/module.css
@@ -1,4 +1 @@
 /* menu */
-
-
-/* admin modules board */
diff --git a/modules/notes/js/functions.js b/modules/notes/js/functions.js
index 434517a222d..e69de29bb2d 100755
--- a/modules/notes/js/functions.js
+++ b/modules/notes/js/functions.js
@@ -1,92 +0,0 @@
-function showNotesForm(path, width, height) {
-    
-    if(typeof(width)==='undefined'){
-        var width = '800';
-    }   
-
-
-    if(typeof(height)==='undefined'){
-        height = '480';
-    }  
-
-    $j.ajax({
-        url: path,
-        type: 'POST',
-        success: function (answer) {
-           eval("response = "+answer);
-            if(response.status == 0){
-                var modal_content = convertToTextVisibleNewLine(response.content);
-                createModal(modal_content, 'form_notes', height, width); 
-            } else {
-                window.top.$j('main_error').html( response.error);
-            }
-        },
-        error: function (error) {
-            alert(error);
-        }
-
-    });
-}
-
-function validNotesForm(path, form_id) {
-
-    new Ajax.Request(path,
-    {
-        asynchronous:false,
-        method:'post',
-        parameters: Form.serialize(form_id),
-        encoding: 'UTF-8',                       
-        onSuccess: function(answer){
-            eval("response = "+answer.responseText);
-            if(response.status == 0){
-                if (typeof window.parent['angularSignatureBookComponent'] != "undefined") {
-                    // window.parent.angularSignatureBookComponent.componentAfterNotes();
-                }
-                destroyModal('form_notes');
-                var modInfo = $j('<div class="info" id="main_info" onclick="this.remove();">'+response.msg_result+'</div>');
-                modInfo.appendTo('body');
-                modInfo.css({'display' : 'table-cell'});
-                setTimeout(function() {
-                    modInfo.remove();
-                }, 5000);
-
-                if(parent.$j('.contentShow iframe').length){
-                    parent.$j('.contentShow iframe')[0].contentWindow.location.reload(true);
-                } else {
-                    eval(response.exec_js);
-                }
-            } else {
-                alert(response.error);
-            }
-        },
-        error: function (error) {
-            alert(error);
-        }
-
-    });
-}
-
-function addTemplateToNote(templateNotes, path)
-{
-    
-    $j.ajax({
-        url: path,
-        type: 'POST',
-        data : {templateId : templateNotes},
-        success: function (answer) {
-           eval("response = "+answer);
-            if (response.status == 0) {
-                var strContent = response.content;
-                var reg = new RegExp(/\\n/gi);
-                var strContentReplace = strContent.replace(reg, '\n');
-                $j('#notes').val($j('#notes').val() + ' ' + strContentReplace) ;
-            } else {
-                window.top.$j('main_error').html(response.error);
-            }
-        },
-        error: function (error) {
-            alert(error);
-        }
-
-    });
-}
diff --git a/modules/notes/lang/en.php b/modules/notes/lang/en.php
index 4426bfbcfa7..3dadb4e0ba4 100755
--- a/modules/notes/lang/en.php
+++ b/modules/notes/lang/en.php
@@ -33,9 +33,6 @@ if (!defined("_READ")) {
 if (!defined("_ADDITION_NOTE")) {
     define("_ADDITION_NOTE", "Note addition");
 }
-if (!defined("_ADDITION_NOTE_PRIVATE")) {
-    define("_ADDITION_NOTE_PRIVATE", "Private note addition");
-}
 if (!defined("_NOTES_ADDED")) {
     define("_NOTES_ADDED", "Added note");
 }
@@ -57,21 +54,11 @@ if (!defined("_NOTES_COMMENT")) {
 if (!defined("_OF")) {
     define("_OF", "of");
 }
-if (!defined("_NOTE_DONT_EXIST")) {
-    define("_NOTE_DONT_EXIST", "This note doesn't exist");
-}
-if (!defined("_THIS_NOTE_IS_VISIBLE_BY")) {
-    define("_THIS_NOTE_IS_VISIBLE_BY", "Limit this note to the following departments (if it's empty, the note is public)");
-}
 
 //TEMPLATES FOR NOTES
 if (!defined("_NOTE_TEMPLATE")) {
     define("_NOTE_TEMPLATE", "Note template");
 }
-if (!defined("_SELECT_NOTE_TEMPLATE")) {
-    define("_SELECT_NOTE_TEMPLATE", "Select a note template");
-}
-
 
 if (!defined("_NOTE")) {
     define("_NOTE", "Note");
diff --git a/modules/notes/lang/fr.php b/modules/notes/lang/fr.php
index f1fb6144eb2..2438d95690a 100755
--- a/modules/notes/lang/fr.php
+++ b/modules/notes/lang/fr.php
@@ -33,9 +33,6 @@ if (!defined("_READ")) {
 if (!defined("_ADDITION_NOTE")) {
     define("_ADDITION_NOTE", "Ajout d'une annotation");
 }
-if (!defined("_ADDITION_NOTE_PRIVATE")) {
-    define("_ADDITION_NOTE_PRIVATE", "Ajout d'une annotation privée");
-}
 if (!defined("_NOTES_ADDED")) {
     define("_NOTES_ADDED", "Annotation ajoutée");
 }
@@ -57,20 +54,11 @@ if (!defined("_NOTES_COMMENT")) {
 if (!defined("_OF")) {
     define("_OF", "de");
 }
-if (!defined("_NOTE_DONT_EXIST")) {
-    define("_NOTE_DONT_EXIST", "Cette annotation n'existe pas");
-}
-if (!defined("_THIS_NOTE_IS_VISIBLE_BY")) {
-    define("_THIS_NOTE_IS_VISIBLE_BY", "Restreindre cette annotation aux entités suivantes (si vide alors l'annotation est publique)");
-}
 
 //TEMPLATES FOR NOTES
 if (!defined("_NOTE_TEMPLATE")) {
     define("_NOTE_TEMPLATE", "Modèle d'annotation");
 }
-if (!defined("_SELECT_NOTE_TEMPLATE")) {
-    define("_SELECT_NOTE_TEMPLATE", "Sélectionner un modèle d'annotation");
-}
 
 if (!defined("_NOTE")) {
     define("_NOTE", "Annotation");
diff --git a/modules/notes/lang/nl.php b/modules/notes/lang/nl.php
index d43551d4d0e..29c08bd7551 100755
--- a/modules/notes/lang/nl.php
+++ b/modules/notes/lang/nl.php
@@ -19,9 +19,6 @@ if (!defined('_READ')) {
 if (!defined('_ADDITION_NOTE')) {
     define('_ADDITION_NOTE', 'Toevoeging van een aantekening');
 }
-if (!defined('_ADDITION_NOTE_PRIVATE')) {
-    define('_ADDITION_NOTE_PRIVATE', 'Toevoeging van een privéaantekening');
-}
 if (!defined('_NOTES_ADDED')) {
     define('_NOTES_ADDED', 'Toegevoegde aantekening');
 }
@@ -43,60 +40,12 @@ if (!defined('_NOTES_COMMENT')) {
 if (!defined('_OF')) {
     define('_OF', 'van');
 }
-if (!defined('_NOTE_DONT_EXIST')) {
-    define('_NOTE_DONT_EXIST', 'Deze aantekening bestaat niet');
-}
-if (!defined('_THIS_NOTE_IS_VISIBLE_BY')) {
-    define('_THIS_NOTE_IS_VISIBLE_BY', 'Deze aantekening beperken tot de volgende eenheden (indien leeg, is de aantekening openbaar)');
-}
 if (!defined('_NOTE_TEMPLATE')) {
     define('_NOTE_TEMPLATE', 'Aantekeningmodel');
 }
-if (!defined('_SELECT_NOTE_TEMPLATE')) {
-    define('_SELECT_NOTE_TEMPLATE', 'Een aantekeningmodel selecteren');
-}
-if (!defined('_RESTRICTED_SERVICES')) {
-    define('_RESTRICTED_SERVICES', 'Beperkt tot de eenheid (eenheden)');
-}
 if (!defined('_ADD_NOTE')) {
     define('_ADD_NOTE', 'Toevoeging van een opmerking');
 }
-if (!defined('_ADDITION_NOTE')) {
-    define('_ADDITION_NOTE', 'Toevoeging van een opmerking');
-}
-if (!defined('_ADDITION_NOTE_PRIVATE')) {
-    define('_ADDITION_NOTE_PRIVATE', 'Toevoeging van een privé-opmerking');
-}
-if (!defined('_NOTES_ADDED')) {
-    define('_NOTES_ADDED', 'Opmerking toegevoegd');
-}
-if (!defined('_NOTES_DELETED')) {
-    define('_NOTES_DELETED', 'Opmerking verwijderd');
-}
-if (!defined('_NOTES_MODIFIED')) {
-    define('_NOTES_MODIFIED', 'Opmerking gewijzigd');
-}
-if (!defined('_NOTE_UPDATED')) {
-    define('_NOTE_UPDATED', 'Opmerking gewijzigd');
-}
-if (!defined('_NOTES')) {
-    define('_NOTES', 'Opmerkingen');
-}
-if (!defined('_NOTES_COMMENT')) {
-    define('_NOTES_COMMENT', 'Opmerkingen');
-}
-if (!defined('_NOTE_DONT_EXIST')) {
-    define('_NOTE_DONT_EXIST', 'Deze opmerking bestaat niet');
-}
-if (!defined('_THIS_NOTE_IS_VISIBLE_BY')) {
-    define('_THIS_NOTE_IS_VISIBLE_BY', 'Deze opmerking beperken tot de volgende eenheden (indien leeg, is de opmerking openbaar');
-}
-if (!defined('_NOTE_TEMPLATE')) {
-    define('_NOTE_TEMPLATE', 'Opmerkingsmodel');
-}
-if (!defined('_SELECT_NOTE_TEMPLATE')) {
-    define('_SELECT_NOTE_TEMPLATE', 'Een opmerkingsmodel selecteren');
-}
 if (!defined('_NOTE')) {
     define('_NOTE', 'Opmerking');
 }
diff --git a/modules/notes/load_toolbar_notes.php b/modules/notes/load_toolbar_notes.php
deleted file mode 100755
index 21f04a963a1..00000000000
--- a/modules/notes/load_toolbar_notes.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-$targetTab = $_REQUEST['targetTab'];
-$res_id = $_REQUEST['resId'];
-
-require_once 'modules/notes/class/class_modules_tools.php';
-$notes_tools    = new notes();
-//Count notes
-$nbr_notes = $notes_tools->countUserNotes($res_id);
-if ($nbr_notes == 0){
-    $class = 'nbResZero';
-    $style2 = 'display:none;';
-    $style = '0.5';
-    $styleDetail = '#9AA7AB';
-}
-else{
-    $class = 'nbRes';
-    $style = '';
-    $style2 = 'display:inherit;';
-    $styleDetail = '#666';
-}
-
-if($_SESSION['req'] == 'details'){
-    
-    if($nbr_notes == 0 && strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome')){
-            $nav = 'notes_tab';
-            $style2 = 'visibility:hidden;';
-
-        }
-
-    if($_REQUEST['origin'] == 'parent'){
-        $js .= 'parent.$(\''.$targetTab.'\').style.color=\''.$styleDetail.'\';parent.$(\''.$targetTab.'_badge\').innerHTML = \'<span id="nb_'.$targetTab.'" style="'.$style2.'font-size: 10px;" class="'.$class.'">'.$nbr_notes.'</span>\'';
-
-    }else {
-        
-       $js .= '$(\''.$targetTab.'\').style.color=\''.$styleDetail.'\';$(\''.$targetTab.'_badge\').innerHTML = \'<span id="nb_'.$targetTab.'" style="'.$style2.'font-size: 10px;" class="'.$class.'">'.$nbr_notes.'</span>\'';
-
-    }
-}else{
-    if($_REQUEST['origin'] == 'parent'){
-        $js .= 'parent.$(\''.$targetTab.'_img\').style.opacity=\''.$style.'\';parent.$(\''.$targetTab.'_badge\').innerHTML = \'&nbsp;<sup><span id="nb_'.$targetTab.'" style="'.$style2.'" class="'.$class.'">'.$nbr_notes.'</span></sup>\'';
-
-    }else {
-       $js .= '$(\''.$targetTab.'_img\').style.opacity=\''.$style.'\';$(\''.$targetTab.'_badge\').innerHTML = \'&nbsp;<sup><span id="nb_'.$targetTab.'" style="'.$style2.'" class="'.$class.'">'.$nbr_notes.'</span></sup>\'';
-
-    }
-}
-      
-//echo '{status : 0, nav : "'.$nav.'",content : "", error : "", exec_js : "'.addslashes($js).'"}';
-//echo "{status : 0, nav : '".$nav."',content : '', error : '', exec_js : '".addslashes($js)."'}";
-//echo '{"status" : 0, "nav" : "'.$nav.'","content" : "", "error" : "", "exec_js" : "'.addslashes($js).'"}';
-echo "{status : 0, nav : '".$nav."',content : '', error : '', exec_js : '".addslashes($js)."'}";
-exit ();
\ No newline at end of file
diff --git a/modules/notes/note_details.php b/modules/notes/note_details.php
deleted file mode 100755
index 25e022f1486..00000000000
--- a/modules/notes/note_details.php
+++ /dev/null
@@ -1,360 +0,0 @@
-<?php
-/**
-* File : notes_details.php
-*
-* Popup to show the notes
-*
-* @package Maarch LetterBox 2.3
-* @version 1.0
-* @since 06/2007
-* @license GPL
-* @author  Claire Figueras  <dev@maarch.org>
-*/
-require_once "core/class/class_security.php";
-require_once "core/class/class_request.php";
-require_once "core/class/class_history.php";
-require_once "modules/entities/class/EntityControler.php";
-require_once 'core/core_tables.php';
-require_once 'modules/notes/notes_tables.php';
-require_once "modules" . DIRECTORY_SEPARATOR . "notes" . DIRECTORY_SEPARATOR
-    . "class" . DIRECTORY_SEPARATOR
-    . "class_modules_tools.php";
-$core = new core_tools();
-$core->load_lang();
-$sec = new security();
-$req = new request();
-$ent = new EntityControler();
-$notes_mod_tools = new notes;
-$func = new functions();
-$db = new Database();
-$table = '';
-$collId = "";
-$user = '';
-$text = "";
-$userId = '';
-$date = "";
-$identifier = '';
-if (empty($_SESSION['collection_id_choice'])) {
-    $_SESSION['collection_id_choice'] = $_SESSION['user']['collections'][0];
-    $collId = $_SESSION['collection_id_choice'] ;
-} else if (isset($_REQUEST['coll_id'])&& empty($collId)) {
-    $collId = $_REQUEST['coll_id'];
-}
-$view = $sec->retrieve_view_from_coll_id($collId);
-$table = $sec->retrieve_table_from_coll($collId);
-
-$error = '';
-if (isset($_REQUEST['modify'])) {
-    $id = $_REQUEST['id'];
-    $identifier = $_REQUEST['identifier'];
-    $table = $_REQUEST['table'];
-    $collId = $_REQUEST['coll_id'];
-
-    if (empty($_REQUEST['notes'])) {
-        $error = _NOTES . ' ' . _EMPTY;
-    } else if (empty($error)) {
-        $text = $_REQUEST['notes'];
-        $db->query(
-            "UPDATE ".NOTES_TABLE." SET note_text = ?, creation_date = CURRENT_TIMESTAMP WHERE id = ?",
-            array($text, $id)
-        );
-
-        echo "<pre>";
-        //print_r($_REQUEST['entities_chosen']);
-        //print_r($_SESSION['notes']['entities']);
-        echo "</pre>";
-        
-        if (isset($_REQUEST['entities_chosen']) && !empty($_REQUEST['entities_chosen']))
-        {
-            for ($i=0; $i<count($_REQUEST['entities_chosen']); $i++) 
-            {
-                $stmt = $db->query(
-                    "SELECT id FROM " .NOTE_ENTITIES_TABLE. " WHERE item_id = ? and note_id = ?",
-                    array($_REQUEST['entities_chosen'][$i], $id)
-                );
-                $result = $stmt->fetchObject();
-                $note_entity_id = $result->id;
-                
-                if ($stmt->rowCount() == 0) 
-                {
-                    $db->query(
-                        "INSERT INTO " . NOTE_ENTITIES_TABLE . "(note_id, item_id) VALUES"
-                        . " (?, ?)",
-                        array($id, $_REQUEST['entities_chosen'][$i])
-                    );
-                }
-                else
-                {
-                    $db->query(
-                        "UPDATE ".NOTE_ENTITIES_TABLE." SET item_id = ? WHERE id = ?",
-                        array($_REQUEST['entities_chosen'][$i], $note_entity_id)
-                    );
-                }
-
-            }
-        }
-        elseif (empty($_REQUEST['entities_chosen']))
-        {
-            $db->query(
-                    "DELETE FROM " . NOTE_ENTITIES_TABLE . " where note_id = ?",
-                    array($id)
-            );
-        }
-        if ($_SESSION['history']['noteup']) {
-            $hist = new history();
-            $hist->add(
-                NOTES_TABLE, $id , "UP", 'noteup', _NOTE_UPDATED . ' (' . $id . ')',
-                $_SESSION['config']['databasetype'], 'notes'
-            );
-            if ($_SESSION['origin'] == "show_folder" ) {
-                $hist->add(
-                    $table, $identifier, "UP", 'noteup', _NOTE_UPDATED . _ON_FOLDER_NUM
-                    . $identifier . ' (' . $id . ')',
-                    $_SESSION['config']['databasetype'], 'notes'
-                );
-            } else {
-                $hist->add(
-                    $view, $identifier, "UP", 'noteup', _NOTE_UPDATED . _ON_DOC_NUM
-                    . $identifier . ' (' . $id . ')',
-                    $_SESSION['config']['databasetype'], 'notes'
-                );
-            }
-        }
-        //$_SESSION['error'] = _NOTES_MODIFIED;
-        ?>
-        <script type="text/javascript">window.opener.location.reload();self.close();</script>
-        <?php
-        exit();
-    }
-
-}
-if (isset($_REQUEST['delete'])) {
-    $id = $_REQUEST['id'];
-    $identifier = $_REQUEST['identifier'];
-
-    $db->query("DELETE FROM " . NOTE_ENTITIES_TABLE . " WHERE note_id = ?", array($id));
-    $db->query("DELETE FROM " . NOTES_TABLE . " WHERE id = ?", array($id));
-
-    if ($_SESSION['history']['notedel']) {
-        $hist = new history();
-        $hist->add(
-            NOTES_TABLE, $id, "DEL", 'notedel', _NOTES_DELETED . ' (' . $id . ')',
-            $_SESSION['config']['databasetype'], 'notes'
-        );
-        if ($_SESSION['origin'] == "show_folder" ) {
-            $hist->add(
-                $table, $identifier, "DEL", 'notedel', _NOTES_DELETED . _ON_FOLDER_NUM
-                . $identifier . ' (' . $id . ')',
-                $_SESSION['config']['databasetype'], 'notes'
-            );
-        } else {
-            $hist->add(
-                $view, $identifier, "DEL", 'notedel',  _NOTES_DELETED . _ON_DOC_NUM
-                . $identifier . ' (' . $id . ')',
-                $_SESSION['config']['databasetype'], 'notes'
-            );
-        }
-    }
-    //$_SESSION['error'] = _NOTES_DELETED;
-    ?>
-    <script type="text/javascript">window.opener.location.reload();self.close();</script>
-    <?php
-    exit();
-}
-
-if (isset($_REQUEST['id'])) {
-    $sId = $_REQUEST['id'];
-} else {
-    $sId = "";
-}
-if (isset($_REQUEST['identifier'])) {
-    $identifier = $_REQUEST['identifier'];
-}
-if (isset($_REQUEST['table']) && empty($table)) {
-    $table = $_REQUEST['table'];
-}
-if (isset($_REQUEST['coll_id']) && empty($collId)) {
-    $collId = $_REQUEST['coll_id'];
-}
-
-$core->load_html();
-//here we building the header
-$core->load_header(_NOTES);
-$time = $core->get_session_time_expire();
-?>
-<body id="pop_up" onload="setTimeout(window.close, <?php echo $time;?>*60*1000);">
-<?php
-if (empty($table) && empty($collId)) {
-    $error = _PB_TABLE_COLL;
-} else {
-
-    $stmt = $db->query(
-        "SELECT n.identifier, n.creation_date, n.user_id, n.note_text, u.lastname, "
-        . "u.firstname FROM " . NOTES_TABLE . " n inner join ". USERS_TABLE
-        . " u on n.user_id  = u.user_id WHERE n.id = :sId ", [":sId" => $sId]
-    );
-
-    $line = $stmt->fetchObject();
-    $user = $func->show_string($line->lastname . " " . $line->firstname);
-    $text = $func->show_string($line->note_text);
-    $userId = $line->user_id;
-    $date = $line->creation_date;
-    $identifier = $line->identifier;
-}
-
-$canModify = false;
-if (trim($userId) == $_SESSION['user']['UserId']) {
-    $canModify = true;
-}
-?>
-<div class="error"><?php
-echo $error;
-$error = '';
-?></div>
-<h2 class="tit" style="padding:10px;"><?php echo _NOTES;?> </h2>
-    <h2 class="sstit" style="padding:10px;"><?php
-echo _NOTES . " " . _OF . " " . $user . " (" . $core->format_date_db($date, false, '', true) . ") ";
-?></h2>
-
-    <div class="block" style="padding:10px">
-      <form name="form1" method="post" class="forms" action="<?php
-echo $_SESSION['config']['businessappurl'] . "index.php?display=true"
-    . "&module=notes&page=note_details";
-?>">
-        <input type="hidden" name="display" value="true" />
-        <input type="hidden" name="modules" value="notes" />
-        <input type="hidden" name="page" value="note_details" />
-        <textarea  <?php
-if (! $canModify) {
-    ?>readonly="readonly" class="readonly" <?php
-}
-?>style="width:380px" cols="70" rows="10"  name="notes"  id="notes"><?php
-functions::xecho($text);
-?></textarea>
-
-        <input type="hidden" name="id" id="id" value="<?php functions::xecho($sId);?>"/>
-        <input type="hidden" name="identifier" id="identifier" value="<?php
-functions::xecho($identifier);
-?>"/>
-        <input type="hidden" name="table" id="table" value="<?php
-functions::xecho($table);
-?>"/>
-        <input type="hidden" name="coll_id" id="coll_id" value="<?php
-functions::xecho($collId);
-?>"/>
-       <br/>
-       <p class="buttons">
-    <?php
-if ($canModify) {
-    ?>
-    <input type="submit" name="modify" id="modify" value="<?php
-    echo _MODIFY;
-    ?>"  class="button"/>
-    <input type="submit" name="delete" id="delete" value="<?php
-    echo _DELETE;
-    ?>"  class="button"/>
-    <?php
-}
-?>
-    <input type="button" name="close_button" value="<?php
-echo _CLOSE_WINDOW;
-?>" onclick="javascript:self.close();" class="button"/>
-    </p>
-    <?php
-
-if ($canModify) {
-    ?>
-    <div>
-        <h3 class="sstit" style="color: red"><?php echo _THIS_NOTE_IS_VISIBLE_BY;?></h3>
-    </div>
-    <table>
-        <tr>
-            <td>
-                <div  id="config_entities" class ="scrollbox" style=" width: 700px; margin-left:auto; margin-right: auto; height:140px; border: 1px solid #999;">
-                    <table align="center" width="100%" id="template_entities" >
-                        <tr>
-                            <td width="10%" align="center">
-                            <?php 
-                                $notesEntities = array();
-                                $entitiesList = array();
-                                $_SESSION['notes']['entities'] = array();
-                                $_SESSION['notes']['entities'] = $notes_mod_tools->getNotesEntities($sId);
-                                //$notesEntities = $notes_mod_tools->getNotesEntities($sId);
-                                $entitiesList = $ent->getAllEntities();
-                                echo "<pre>";
-                                echo "</pre>";
-                                if ($canModify) {
-                            ?>
-                                <select name="entitieslist[]" id="entitieslist" size="7" 
-                                        ondblclick='moveclick($(entitieslist), $(entities_chosen));' multiple="multiple" >
-                                <?php
-                                    
-                                    for ($j=0;$j<count($entitiesList);$j++) {
-                                            $state_entity = false;
-                                            
-                                            if (in_array($entitiesList[$j], $_SESSION['notes']['entities'])) {
-                                                $state_entity = true;
-                                            } else {
-                                                $state_entity = false;
-                                            }
-
-                                        if ($state_entity == false) {
-                                    ?>
-                                            <option value="<?php 
-                                                echo $entitiesList[$j]->entity_id;
-                                                ?>"><?php 
-                                                echo $entitiesList[$j]->entity_label;
-                                                ?></option>
-                                        <?php
-                                        }
-                                    }
-                                        ?>  
-                                </select>
-                                <br/>
-                            </td>
-                            <td width="10%" align="center">
-                                <input type="button" class="button" value="<?php 
-                                    echo _ADD; 
-                                    ?> &gt;&gt;" onclick='Move($(entitieslist), $(entities_chosen));' />
-                                <br />
-                                <br />
-                                <input type="button" class="button" value="&lt;&lt; <?php 
-                                    echo _REMOVE;
-                                    ?>" onclick='Move($(entities_chosen), $(entitieslist));' />
-                            </td>
-    <?php
-}
-?>
-                            <td width="10%" align="center">
-                                <select name="entities_chosen[]" id="entities_chosen" size="7" 
-                                        ondblclick='moveclick($(entities_chosen), $(entitieslist));' multiple="multiple">
-                                    <?php
-                                        for ($i=0;$i<count($_SESSION['notes']['entities']);$i++) {
-                                            $state_entity = false;
-                                            if ($state_entity == false) {
-                                        ?>
-                                                <option value="<?php 
-                                                    echo $_SESSION['notes']['entities'][$i]->entity_id;
-                                                ?>" selected="selected" ><?php 
-                                                    echo $_SESSION['notes']['entities'][$i]->entity_label; 
-                                                ?></option>
-                                        <?php
-                                            }
-                                        }
-                                    ?>
-                                </select>
-                            </td>
-                        </tr>
-                    </table>
-                </div>
-            </td>
-        </tr>
-    </table>
-    <?php
-    }
-    ?>
-      </form>
-    </div>
-    <div class="block_end">&nbsp;</div>
-</body>
-</html>
diff --git a/modules/notes/notes.php b/modules/notes/notes.php
deleted file mode 100755
index 03b859e38dc..00000000000
--- a/modules/notes/notes.php
+++ /dev/null
@@ -1,324 +0,0 @@
-<?php
-/**
-* Copyright Maarch since 2008 under licence GPLv3.
-* See LICENCE.txt file at the root folder for more details.
-* This file is part of Maarch software.
-*
-*/
-
-/**
-* @brief notes
-* @author <dev@maarch.org>
-* @ingroup notes
-*/
-
-require_once "core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_request.php";
-require_once "apps".DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR
-            ."class".DIRECTORY_SEPARATOR."class_lists.php";
-require_once "modules".DIRECTORY_SEPARATOR."notes".DIRECTORY_SEPARATOR."notes_tables.php";
-require_once "modules" . DIRECTORY_SEPARATOR . "notes" . DIRECTORY_SEPARATOR
-    . "class" . DIRECTORY_SEPARATOR
-    . "class_modules_tools.php";
-
-$core_tools = new core_tools();
-$request    = new request();
-$list       = new lists();
-$notes_tools = new notes();
-
-$identifier = '';
-$origin = '';
-$parameters = '';
-
-//Collection ID
-if (isset($_REQUEST['coll_id']) && !empty($_REQUEST['coll_id'])) {
-    $parameters = "&coll_id=".$_REQUEST['coll_id'];
-}
-
-//Identifier
-if (isset($_REQUEST['identifier']) && !empty($_REQUEST['identifier'])) {
-    $identifier = $_REQUEST['identifier'];
-} else {
-    echo '<span class="error">'._IDENTIFIER.' '._IS_EMPTY.'</span>';
-    exit();
-}
-
-//Origin
-if (isset($_REQUEST['origin']) && !empty($_REQUEST['origin'])) {
-    $origin = $_REQUEST['origin'];
-}
-
-if (empty($origin)) {
-    $user = \User\models\UserModel::getByLogin(['login' => $_SESSION['user']['UserId'], 'select' => ['id']]);
-    $right = \Resource\controllers\ResController::hasRightByResId(['resId' => [$identifier], 'userId' => $user['id']]);
-    if (!$right) {
-        exit(_NO_RIGHT_TXT);
-    }
-}
-
-//Extra parameters
-if (isset($_REQUEST['size']) && !empty($_REQUEST['size'])) {
-    $parameters .= '&size='.$_REQUEST['size'];
-}
-if (isset($_REQUEST['order']) && !empty($_REQUEST['order'])) {
-    $parameters .= '&order='.$_REQUEST['order'];
-}
-if (isset($_REQUEST['order_field']) && !empty($_REQUEST['order_field'])) {
-    $parameters .= '&order_field='.$_REQUEST['order_field'];
-}
-if (isset($_REQUEST['what']) && !empty($_REQUEST['what'])) {
-    $parameters .= '&what='.$_REQUEST['what'];
-}
-
-if (isset($_REQUEST['load'])) {
-    $core_tools->load_lang();
-    $core_tools->load_html();
-    $core_tools->load_header('', true, false); ?>
-
-<body><?php
-    $core_tools->load_js();
-
-    //Load list
-    if (!empty($identifier) && !empty($origin)) {
-        $target = $_SESSION['config']['businessappurl']
-                .'index.php?module=notes&page=notes&identifier='
-                .$identifier.'&origin='.$origin.$parameters;
-            
-        $listContent = $list->loadList($target);
-        echo $listContent;
-    } else {
-        echo '<span class="error">'._ERROR_IN_PARAMETERS.'</span>';
-    } ?>
-    <div id="container" style="width:100%;min-height:0px;height:0px;"></div>
-</body>
-
-</html><?php
-} else {
-        //If size is full change some parameters
-        if (isset($_REQUEST['size'])
-        && ($_REQUEST['size'] == "full")
-    ) {
-            $sizeUser = "10";
-            $sizeText = "40";
-            $css = "listing spec";
-            $cutString = 150;
-        } elseif (isset($_REQUEST['size'])
-        && ($_REQUEST['size'] == "medium")
-    ) {
-            $sizeUser = "15";
-            $sizeText = "30";
-            $css = "listingsmall";
-            $cutString = 100;
-        } else {
-            $sizeUser = "10";
-            $sizeText = "10";
-            $css = "listingsmall";
-            $cutString = 20;
-        }
-    
-        //Table or view
-    $select[NOTES_TABLE] = array(); //Notes
-    $select[USERS_TABLE] = array(); //Users
-        
-    //Fields
-    array_push($select[NOTES_TABLE], "id", "identifier", "creation_date", "user_id", "note_text", "note_text as note_short");    //Notes
-    array_push($select[USERS_TABLE], "user_id", "lastname || ' ' || firstname as user", "lastname as visibleBy");           //Users
-        
-    //Where clause
-        $where_tab = array();
-        
-        $rawUserEntities = \Entity\models\EntityModel::getByLogin(['login' => $_SESSION['user']['UserId'], 'select' => ['entity_id']]);
-        $userEntities = array_column($rawUserEntities, 'entity_id');
-        $userEntities = !empty($userEntities) ? $userEntities : [''];
-
-        $db = new Database();
-        $stmt3 = $db->query("SELECT id FROM USERS WHERE user_id = ?", array($_SESSION['user']['UserId']));
-        $userInfo = $stmt3->fetchObject();
-
-        $where_tab[] = "identifier = ?";
-        $where_tab[] = "type = ?";
-        $where_tab[] = "notes.id in (select notes.id from notes left join note_entities on notes.id = note_entities.note_id where item_id IS NULL OR item_id in (?) or notes.user_id = ".$userInfo->id.")";
-        $arrayPDO = array($identifier);
-        $arrayPDO[] = 'resource';
-        $arrayPDO[] = $userEntities;
-
-        //Build where
-        $where = implode(' and ', $where_tab);
-    
-        //Order
-        $order = $order_field = '';
-        $order = $list->getOrder();
-        $order_field = $list->getOrderField();
-        if (!empty($order_field) && !empty($order)) {
-            $orderstr = "order by ".$order_field." ".$order;
-        } else {
-            $list->setOrder();
-            $list->setOrderField('creation_date');
-            $orderstr = "order by creation_date desc";
-        }
-
-        if (isset($_REQUEST['start']) && !empty($_REQUEST['start'])) {
-            $parameters .= '&start='.$_REQUEST['start'];
-            $start = $_REQUEST['start'];
-        } else {
-            $start = $list->getStart();
-            $parameters .= '&start='.$start;
-        }
-    
-        //Request
-    //     $tabNotes=$request->PDOselect(
-    //     $select,
-    //     $where,
-    //     $arrayPDO,
-    //     $orderstr,
-    //     $_SESSION['config']['databasetype'],
-    //     "default",
-    //     true,
-    //     NOTES_TABLE,
-    //     USERS_TABLE,
-    //     "user_id",
-    //     true,
-    //     false,
-    //     false,
-    //     $start
-    // );
-        
-        // $request->show_array($tabNotes);
-        for ($indNotes1 = 0; $indNotes1 < count($tabNotes); $indNotes1 ++) {
-            for ($indNotes2 = 0; $indNotes2 < count($tabNotes[$indNotes1]); $indNotes2 ++) {
-                foreach (array_keys($tabNotes[$indNotes1][$indNotes2]) as $value) {
-                    if ($tabNotes[$indNotes1][$indNotes2][$value] == "id") {
-                        $tabNotes[$indNotes1][$indNotes2]["id"] = $tabNotes[$indNotes1][$indNotes2]['value'];
-                        $tabNotes[$indNotes1][$indNotes2]["label"] = 'ID';
-                        $tabNotes[$indNotes1][$indNotes2]["size"] = 1;
-                        $tabNotes[$indNotes1][$indNotes2]["label_align"] = "left";
-                        $tabNotes[$indNotes1][$indNotes2]["align"] = "left";
-                        $tabNotes[$indNotes1][$indNotes2]["valign"] = "bottom";
-                        $tabNotes[$indNotes1][$indNotes2]["show"] = false;
-                        $tabNotes[$indNotes1][$indNotes2]["order"] = "id";
-                        $indNotes1d = $tabNotes[$indNotes1][$indNotes2]['value'];
-                    }
-                    if ($tabNotes[$indNotes1][$indNotes2][$value] == "user_id") {
-                        $tabNotes[$indNotes1][$indNotes2]["user_id"] = $tabNotes[$indNotes1][$indNotes2]['value'];
-                        $tabNotes[$indNotes1][$indNotes2]["label"] = _ID;
-                        $tabNotes[$indNotes1][$indNotes2]["size"] = 5;
-                        $tabNotes[$indNotes1][$indNotes2]["label_align"] = "left";
-                        $tabNotes[$indNotes1][$indNotes2]["align"] = "left";
-                        $tabNotes[$indNotes1][$indNotes2]["valign"] = "bottom";
-                        $tabNotes[$indNotes1][$indNotes2]["show"] = false;
-                        $tabNotes[$indNotes1][$indNotes2]["order"] = "user_id";
-                    }
-                
-                    if ($tabNotes[$indNotes1][$indNotes2][$value] == "creation_date") {
-                        $tabNotes[$indNotes1][$indNotes2]["creation_date"] = $tabNotes[$indNotes1][$indNotes2]['value'];
-                        $tabNotes[$indNotes1][$indNotes2]["value"] = $core_tools->format_date_db($tabNotes[$indNotes1][$indNotes2]['value'], false, '', true);
-                        $tabNotes[$indNotes1][$indNotes2]["label"] = _DATE;
-                        $tabNotes[$indNotes1][$indNotes2]["size"] = 10;
-                        $tabNotes[$indNotes1][$indNotes2]["label_align"] = "left";
-                        $tabNotes[$indNotes1][$indNotes2]["align"] = "left";
-                        $tabNotes[$indNotes1][$indNotes2]["valign"] = "bottom";
-                        $tabNotes[$indNotes1][$indNotes2]["show"] = true;
-                        $tabNotes[$indNotes1][$indNotes2]["order"] = "creation_date";
-                    }
-                    if ($tabNotes[$indNotes1][$indNotes2][$value] == "user") {
-                        $tabNotes[$indNotes1][$indNotes2]["user"] = $tabNotes[$indNotes1][$indNotes2]['value'];
-                        $tabNotes[$indNotes1][$indNotes2]["label"] = _USER;
-                        $tabNotes[$indNotes1][$indNotes2]["size"] = 10;
-                        $tabNotes[$indNotes1][$indNotes2]["label_align"] = "left";
-                        $tabNotes[$indNotes1][$indNotes2]["align"] = "left";
-                        $tabNotes[$indNotes1][$indNotes2]["valign"] = "bottom";
-                        $tabNotes[$indNotes1][$indNotes2]["show"] = true;
-                        $tabNotes[$indNotes1][$indNotes2]["order"] = "lastname";
-                    }
-                    if ($tabNotes[$indNotes1][$indNotes2][$value] == "note_text") {
-                        //$tabNotes[$indNotes1][$indNotes2]["note_text"] = $tabNotes[$indNotes1][$indNotes2]['value'];
-                        $tabNotes[$indNotes1][$indNotes2]["note_text"] = $request->cut_string($request->show_string($tabNotes[$indNotes1][$indNotes2]['value']), $cutString);
-                        $tabNotes[$indNotes1][$indNotes2]["label"] = _NOTES;
-                        $tabNotes[$indNotes1][$indNotes2]["size"] = 60;
-                        $tabNotes[$indNotes1][$indNotes2]["label_align"] = "left";
-                        $tabNotes[$indNotes1][$indNotes2]["align"] = "left";
-                        $tabNotes[$indNotes1][$indNotes2]["valign"] = "bottom";
-                        $tabNotes[$indNotes1][$indNotes2]["show"] = true;
-                        $tabNotes[$indNotes1][$indNotes2]["order"] = "note_text";
-                    }
-
-                    if ($tabNotes[$indNotes1][$indNotes2][$value] == "visibleby") {
-                        $noteEntities = $notes_tools->getNotesEntities($indNotes1d);
-                        $tabEntityLabel = [];
-                        $tabEntityId = [];
-                        $allEntities = '';
-                        $allEntitiesId = '';
-
-                        foreach ($noteEntities as $value) {
-                            $tabEntityLabel[] = $value->short_label;
-                            $tabEntityId[] = $value->entity_id;
-                        }
-
-                        if (!empty($tabEntityLabel)) {
-                            $allEntities = implode(' - ', $tabEntityLabel);
-                            if (count($tabEntityId) > 3) {
-                                $allEntitiesId = $tabEntityId[0] .'<br/>'.$tabEntityId[1].'<br/>'.$tabEntityId[2].'<br/>...';
-                            } else {
-                                $allEntitiesId = implode('<br/>', $tabEntityId);
-                            }
-                        }
-                    
-
-                        $tabNotes[$indNotes1][$indNotes2]['value'] = '<div style="cursor:pointer;text-overflow: ellipsis;clear:both;white-space: nowrap;overflow: hidden;"><i title="'.$allEntities.'" >'.$allEntitiesId.'</i></div>';
-                        $tabNotes[$indNotes1][$indNotes2]["label"] = _VISIBLEBY;
-                        $tabNotes[$indNotes1][$indNotes2]["size"] = 10;
-                        $tabNotes[$indNotes1][$indNotes2]["label_align"] = "left";
-                        $tabNotes[$indNotes1][$indNotes2]["align"] = "left";
-                        $tabNotes[$indNotes1][$indNotes2]["valign"] = "bottom";
-                        $tabNotes[$indNotes1][$indNotes2]["show"] = true;
-                    }
-                }
-            }
-        }
-
-    //List
-    $listKey = 'id';                                                                    //Clé de la liste
-    $paramsTab = array();                                                               //Initialiser le tableau de paramètres
-    $paramsTab['bool_sortColumn'] = true;                                               //Affichage Tri
-    $paramsTab['pageTitle'] ='';                                                        //Titre de la page
-    $paramsTab['bool_bigPageTitle'] = false;                                            //Affichage du titre en grand
-    $paramsTab['urlParameters'] = 'identifier='.$identifier
-            ."&origin=".$origin.'&display=true'.$parameters;                            //Parametres d'url supplementaires
-    $paramsTab['filters'] = array();                                                   //Filtres
-    $paramsTab['listHeight'] = '100%';                                                 //Hauteur de la liste
-    $paramsTab['start'] = $start;
-        $paramsTab['listCss'] = $css;                                                       //CSS
-    $paramsTab['tools'] = array();                                                      //Icones dans la barre d'outils
-        
-    $add = array(
-            "script"        =>  "showNotesForm('".$_SESSION['config']['businessappurl']
-                                    . "index.php?display=true&module=notes&page=notes_ajax_content"
-                                    . "&mode=add&identifier=".$identifier."&origin=".$origin
-                                    . $parameters."')",
-            "icon"          =>  'pencil-alt',
-            "tooltip"       =>  _ADD_NOTE,
-            "alwaysVisible" =>  true
-            );
-        array_push($paramsTab['tools'], $add);
-    
-        //Action icons array
-        $paramsTab['actionIcons'] = array();
-    
-        $read = array(
-        "script"        => "showNotesForm('".$_SESSION['config']['businessappurl']
-                                ."index.php?display=true&module=notes&page=notes_ajax_content"
-                                ."&mode=up&id=@@id@@&identifier=".$identifier."&origin=".$origin
-                                . $parameters."');",
-        "class"         =>  "read",
-        "icon"          =>  "pencil-alt",
-        // "label"         =>  _UPDATE.'/'._DELETE,
-        "tooltip"       =>  _UPDATE.'/'._DELETION,
-        "disabledRules" => "@@user_id@@ != '".$_SESSION['user']['UserId']."'"
-        );
-        array_push($paramsTab['actionIcons'], $read);
-        
-        //Output
-        $status = 0;
-        $content = $list->showList($tabNotes, $paramsTab, $listKey);
-
-        echo "{status : " . $status . ", content : '" . addslashes($debug.$content) . "', error : '" . addslashes($error) . "'}";
-    }
diff --git a/modules/notes/notes_ajax_content.php b/modules/notes/notes_ajax_content.php
deleted file mode 100755
index 4750096086f..00000000000
--- a/modules/notes/notes_ajax_content.php
+++ /dev/null
@@ -1,540 +0,0 @@
-<?php
-/*
-*
-*    Copyright 2012 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/>.
-*/
-
-/**
-* @brief    Script to return ajax result
-*
-* @file     notes_ajax_content.php
-* @author   Yves Christian Kpakpo <dev@maarch.org>
-* @date     $date$
-* @version  $Revision$
-* @ingroup  notes
-*/
-
-require_once "core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_request.php";
-require_once "modules".DIRECTORY_SEPARATOR."entities"
-        .DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."EntityControler.php";
-require_once "apps".DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR
-        ."class".DIRECTORY_SEPARATOR."class_lists.php";
-require_once 'modules/notes/notes_tables.php';
-require_once "modules" . DIRECTORY_SEPARATOR . "notes" . DIRECTORY_SEPARATOR
-    . "class" . DIRECTORY_SEPARATOR . "class_modules_tools.php";
-    
-$core_tools = new core_tools();
-$request    = new request();
-$db         = new Database();
-$sec        = new security();
-$ent        = new EntityControler();
-$notesTools = new notes();
-$list       = new lists();
-
-$destination = '';
-
-function _parse($text) {
-    //...
-    $text = str_replace("\r\n", "\n", $text);
-    $text = str_replace("\r", "\n", $text);
-
-    //
-    $text = str_replace("\n", "\\n ", $text);
-    return $text;
-}
-    
-$core_tools->load_lang();
-
-$status = 0;
-$error = $content = $js = $parameters = '';
-
-$labels_array = array();
-
-if (isset($_REQUEST['mode']) && !empty($_REQUEST['mode'])) {
-    $mode = $_REQUEST['mode'];
-} else {
-    $error = _ERROR_IN_NOTES_FORM_GENERATION;
-    $status = 1;
-}
-
-//Identifier of the element wich is noted
-$identifier = '';
-if (isset($_REQUEST['identifier']) && ! empty($_REQUEST['identifier'])) {
-    $identifier = trim($_REQUEST['identifier']);
-}
-
-//Collection
-if (isset($_REQUEST['coll_id']) && ! empty($_REQUEST['coll_id'])) {
-    $collId = trim($_REQUEST['coll_id']);
-    $parameters .= '&coll_id='.$_REQUEST['coll_id'];
-    $view = $sec->retrieve_view_from_coll_id($collId);
-    $table = $sec->retrieve_table_from_coll($collId);
-    //retrieve the process entity of document
-    $stmt = $db->query(
-        "SELECT destination FROM " . $table . " WHERE res_id = ?", array($identifier)
-    );
-    $resultDest = $stmt->fetchObject();
-    $destination = $resultDest->destination;
-}
-
-//Keep some origin parameters
-if (isset($_REQUEST['size']) && !empty($_REQUEST['size'])) $parameters .= '&size='.$_REQUEST['size'];
-if (isset($_REQUEST['order']) && !empty($_REQUEST['order'])) {
-    $parameters .= '&order='.$_REQUEST['order'];
-    if (isset($_REQUEST['order_field']) && !empty($_REQUEST['order_field'])) $parameters .= '&order_field='.$_REQUEST['order_field'];
-}
-if (isset($_REQUEST['what']) && !empty($_REQUEST['what'])) $parameters .= '&what='.$_REQUEST['what'];
-if (isset($_REQUEST['template']) && !empty($_REQUEST['template'])) $parameters .= '&template='.$_REQUEST['template'];
-if (isset($_REQUEST['start']) && !empty($_REQUEST['start'])) $parameters .= '&start='.$_REQUEST['start'];
-
-//Keep the origin to reload the origin list
-$list_origin = $origin = '';
-if (isset($_REQUEST['origin']) && !empty($_REQUEST['origin'])) {
-    //
-    $origin = $_REQUEST['origin'];
-
-    if ($_REQUEST['origin'] == "document") {
-        //From document
-        $list_origin = "loadList('".$_SESSION['config']['businessappurl']
-                ."index.php?display=true&module=notes&page=notes&identifier="
-                .$identifier."&origin=document".$parameters."', 'divList', true);";
-    }
-}
-
-//Path to actual script
-$path_to_script = $_SESSION['config']['businessappurl']
-            ."index.php?display=true&module=notes&page=notes_ajax_content&identifier="
-            .$identifier."&origin=".$origin.$parameters;
-
-require 'modules/templates/class/templates_controler.php';
-$templatesControler = new templates_controler();
-$templates = array();
-if ($destination <> '') {
-    $templates = $templatesControler->getAllTemplatesForProcess($destination);
-} else {
-    $templates = $templatesControler->getAllTemplatesForSelect();
-}            
-switch ($mode) {
-    case 'add':
-        if (empty($identifier)) {
-            $error = $request->wash_html(_IDENTIFIER.' '._IS_EMPTY.'!','NONE');
-            $status = 1;
-        } else {
-            $entitiesList = array();
-            $entitiesList = $ent->getAllEntities();
-            $content .= '<div class="block">';
-            $content .= '<form name="formNotes" id="formNotes" method="post" action="#">';
-            $content .= '<input type="hidden" value="'.$identifier.'" name="identifier" id="identifier">';
-            $content .= '<h2>'._ADD_NOTE.'</h2>';
-            $content .= '<label for="templateNotes">' . _NOTE_TEMPLATE .' : </label>';
-            $content .= '<select name="templateNotes" id="templateNotes" style="width:250px" '
-                . 'onchange="addTemplateToNote($(\'templateNotes\').value, \''
-                            . $_SESSION['config']['businessappurl'] . 'index.php?display=true'
-                            . '&module=templates&page=templates_ajax_content_for_notes\');">';
-            $content .= '<option value="">' . _SELECT_NOTE_TEMPLATE . '</option>';
-                for ($i=0;$i<count($templates);$i++) {
-                    if ($templates[$i]['TYPE'] == 'TXT' && ($templates[$i]['TARGET'] == 'notes' || $templates[$i]['TARGET'] == '')) {
-                        $content .= '<option value="';
-                            $content .= $templates[$i]['ID'];
-                            $content .= '">';
-                            $content .= $templates[$i]['LABEL'];
-                        }
-                    $content .= '</option>';
-                }
-            $content .= '</select><br />';
-            $content .= '<textarea style="width:500px" cols="70" rows="10"  name="notes"  id="notes" ></textarea>';
-            $content .= '<h3 class="sstit" style="color: red">'._THIS_NOTE_IS_VISIBLE_BY.'</h3>';
-            $content .= '<table align="center" width="100%" id="template_entities">';
-            $content .= '<tr><td width="20%" align="center">';
-            $content .= '<select name="entitieslist[]" id="entitieslist" size="7" style="width: 206px" ';
-            $content .= 'ondblclick=\'moveclick($(entitieslist), $(entities_chosen));\' multiple="multiple">';
-            $entitiesForRestriction = null;
-            if (!empty($_SESSION['user']['entities'])) {
-                foreach ($_SESSION['user']['entities'] as $tmpEntity) {
-                    //if($tmpEntity['ENTITY_ID'] == $_SESSION['user']['primaryentity']['id']){
-                        $entitiesForRestriction[] = $tmpEntity['ENTITY_ID'];
-                    //}
-                }
-            }
-            $entitiesForRestriction[] = $destination;
-            for ($i=0;$i<count($entitiesList);$i++) {
-                if ($entitiesForRestriction && in_array($entitiesList[$i]->entity_id, $entitiesForRestriction)) {
-                    $state_entity = true;
-                } else {
-                    $state_entity = false;
-                }
-
-                if ($state_entity == false) {
-                    $content .= '<option value="'
-                        .$entitiesList[$i]->entity_id.'" alt="'
-                        .functions::xssafe($entitiesList[$i]->short_label).'" title="'
-                        .functions::xssafe($entitiesList[$i]->short_label).'">'
-                        .functions::xssafe($entitiesList[$i]->short_label).'</option>';
-                }
-            }
-            $content .= '</select><br/> </td>';
-            $content .= '<td width="20%" align="center">';
-            $content .= '<input type="button" class="button" value="'._ADD.' &gt;&gt;" onclick=\'Move($(entitieslist), $(entities_chosen));\' />';
-            $content .= '<br /><br />';
-            $content .= '<input type="button" class="button" value="&lt;&lt; '._REMOVE.'" onclick=\'Move($(entities_chosen), $(entitieslist));\' />';
-            $content .= '</td>';
-            $content .= '<td width="30%" align="center">';
-            $content .= '<select name="entities_chosen[]" id="entities_chosen" size="7" style="width: 206px" ';
-            $content .= 'ondblclick=\'moveclick($(entities_chosen), $(entitieslist));\' multiple="multiple">';
-            for ($i=0;$i<count($entitiesList);$i++) {
-               $state_entity = false;
-               if ($state_entity == true || ($entitiesForRestriction && in_array($entitiesList[$i]->entity_id, $entitiesForRestriction))) {
-                    $content .= '<option value="'
-                        .$entitiesList[$i]->entity_id.'" alt="'
-                        .functions::xssafe($entitiesList[$i]->short_label).'" title="'
-                        .functions::xssafe($entitiesList[$i]->short_label).'" selected="selected">'
-                        .functions::xssafe($entitiesList[$i]->short_label).'</option>';
-                }
-            }
-            $content .= '</select></td>';
-            $content .= '</tr></table>';
-            // Buttons
-            $content .='<hr />';
-            $content .='<div align="center">';
-            $content .=' <input type="button" name="valid" value="&nbsp;'._VALIDATE
-                        .'&nbsp;" id="valid" class="button" onclick="'
-                        .'selectall($(\'entities_chosen\'));validNotesForm(\''
-                        .$path_to_script.'&mode=added\', \'formNotes\');" />&nbsp;';
-            $content .='<input type="button" name="cancel" id="cancel" class="button" value="'
-                        ._CANCEL.'" onclick="destroyModal(\'form_notes\');"/>';
-            $content .='</div">';
-            $content .= '</form>';
-            $content .= '</div>';
-        }
-    break;
-    case 'added':
-        if (strlen(trim($_REQUEST['notes'])) > 0) {
-            //Identifier?
-            if (empty($identifier)) {
-                $error = $request->wash_html(_IDENTIFIER.' '._IS_EMPTY.'!','NONE');
-                $status = 1;
-            } else {
-                
-                //Add notes
-                $notes = $_REQUEST['notes'];
-                $userId = $_SESSION['user']['UserId'];
-                $type = 'resource';
-
-                $db->query(
-                    "INSERT INTO " . NOTES_TABLE . "(identifier, note_text, creation_date, user_id, type) VALUES (?, ?, CURRENT_TIMESTAMP, ?, ?)",
-                    array($identifier, $notes, $userId, $type)
-                );
-                
-                //Last insert ID from sequence
-                $id = $db->lastInsertId('notes_id_seq');
-                
-                //Entities selected
-                if (!empty($id) && isset($_REQUEST['entities_chosen']) && !empty($_REQUEST['entities_chosen']))
-                {
-                    for ($i=0; $i<count($_REQUEST['entities_chosen']); $i++) 
-                    {  
-                        $db->query(
-                            "INSERT INTO " . NOTE_ENTITIES_TABLE . "(note_id, item_id) VALUES"
-                            . " (?, ?)",
-                            array($id, $_REQUEST['entities_chosen'][$i])
-                        );
-                    }
-                }
-                
-                //History
-                if ($_SESSION['history']['noteadd']) {
-                    $hist = new history();
-
-                if (isset($_REQUEST['origin']) && $_REQUEST['origin'] == "folder") {
-                        if (!empty($id) && isset($_REQUEST['entities_chosen']) && !empty($_REQUEST['entities_chosen'])){
-
-                            $hist->add(
-                                    $table, $identifier, "UP", 'folderup', _ADDITION_NOTE_PRIVATE . _ON_FOLDER_NUM
-                                    . $identifier . ' (' . $id . ')',
-                                    $_SESSION['config']['databasetype'], 'notes'
-                                );
-                        }else{
-                            $hist->add(
-                                $table, $identifier, "UP", 'folderup', _ADDITION_NOTE . _ON_FOLDER_NUM
-                                . $identifier . ' (' . $id . ') : "' . $request->cut_string($notes, 254) .'"',
-                                $_SESSION['config']['databasetype'], 'notes'
-                            );
-                        }
-                    } else if (isset($_REQUEST['origin']) && $_REQUEST['origin'] == "document") {
-                        if (!empty($id) && isset($_REQUEST['entities_chosen']) && !empty($_REQUEST['entities_chosen'])){
-                        /*show restricted services*/
-                        $allEntity = '';
-                        foreach ($_REQUEST['entities_chosen'] as $value){
-
-                            $allEntity .= $value." | ";
-
-                        }
-                            $hist->add(
-                                    $table, $identifier, "UP", 'folderup', _ADDITION_NOTE_PRIVATE . _ON_DOC_NUM
-                                    . $identifier . ' (' . $id . ')'._VISIBLEBY.' '.$allEntity,
-                                    $_SESSION['config']['databasetype'], 'notes'
-                                );
-                        }else{
-                            $hist->add(
-                                $view, $identifier, "UP", 'resup',  _ADDITION_NOTE . _ON_DOC_NUM
-                                . $identifier . ' (' . $id . ') : "' . $request->cut_string($notes, 254) .'"',
-                                $_SESSION['config']['databasetype'], 'notes'
-                            );
-                        }
-                    }
-
-                    $hist->add(
-                        NOTES_TABLE, $id, "ADD", 'noteadd', _NOTES_ADDED . ' (' . $id . ')',
-                        $_SESSION['config']['databasetype'], 'notes'
-                    );
-                }
-                
-                //Reload and show message
-                $js =  $list_origin;
-                $msgResult = _NOTES_ADDED;
-                //Count notes
-                $toolbarBagde_script = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=notes&page=load_toolbar_notes&origin=parent&resId='.$identifier.'&collId='.$collId;
-                $js .='loadToolbarBadge(\'notes_tab\',\''.$toolbarBagde_script.'\');';
-            }
-        } else {
-            $error = $request->wash_html(_NOTES.' '._IS_EMPTY.'!','NONE');
-            $status = 1;
-        }
-    break;
-    case 'up':
-        if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) {
-            
-            $id = $_REQUEST['id'];
-            //Check if ID exists
-            $stmt = $db->query(
-                "SELECT n.identifier, n.creation_date, n.user_id, n.note_text, u.lastname, "
-                . "u.firstname FROM " . NOTES_TABLE . " n inner join ". USERS_TABLE
-                . " u on n.user_id  = u.user_id WHERE n.id = :Id ", [":Id" => $id]
-            );
-            
-            if($stmt->rowCount() > 0) {
-                
-                $line = $stmt->fetchObject();
-                
-                $user = $request->show_string($line->lastname . " " . $line->firstname);
-                $notes = $line->note_text;
-                $userId = $line->user_id;
-                $date = $line->creation_date;
-                $identifier = $line->identifier;
-    
-                $notesEntities = array();
-                $entitiesList = array();
-                $notesEntities = $notesTools->getNotesEntities($id);
-                $entitiesList = $ent->getAllEntities();
-                //Form
-                $content .= '<div class="block">';
-                $content .= '<form name="formNotes" id="formNotes" method="post" action="#">';
-                $content .= '<input type="hidden" value="'.$identifier.'" name="identifier" id="identifier">';
-                $content .= '<input type="hidden" value="'.$id.'" name="id" id="id">';
-                $content .= '<h2 class="sstit">'._NOTES . " " . _OF . " " . $user . " (" . $date . ")".'</h2>';
-                $content .= '<label for="templateNotes">' . _NOTE_TEMPLATE .' : </label>';
-                $content .= '<select name="templateNotes" id="templateNotes" style="width:250px" '
-                             . 'onchange="addTemplateToNote($(\'templateNotes\').value, \''
-                             . $_SESSION['config']['businessappurl'] . 'index.php?display=true'
-                             . '&module=templates&page=templates_ajax_content_for_notes\');">';
-                $content .= '<option value="">' . _SELECT_NOTE_TEMPLATE . '</option>';
-                for ($i=0;$i<count($templates);$i++) {
-                    if ($templates[$i]['TYPE'] == 'TXT' && ($templates[$i]['TARGET'] == 'notes' || $templates[$i]['TARGET'] == '')) {
-                        $content .= '<option value="';
-                            $content .= $templates[$i]['ID'];
-                            $content .= '">';
-                            $content .= $templates[$i]['LABEL'];
-                        }
-                    $content .= '</option>';
-                }
-                $content .= '</select><br />';
-                $content .= '<textarea style="width:500px" cols="70" rows="10"  name="notes"  id="notes">'.functions::xssafe($notes).'</textarea>';
-                $content .= '<h3 class="sstit" style="color: red">'._THIS_NOTE_IS_VISIBLE_BY.'</h3>';
-                $content .= '<table align="center" width="100%" id="template_entities">';
-                $content .= '<tr><td width="20%" align="center">';
-                $content .= '<select name="entitieslist[]" id="entitieslist" size="7" style="width: 206px" ';
-                $content .= 'ondblclick=\'moveclick($(entitieslist), $(entities_chosen));\' multiple="multiple">';
-                for ($i=0;$i<count($entitiesList);$i++) {
-                    if (!in_array($entitiesList[$i], $notesEntities)) {
-                        $content .= '<option value="'
-                            .$entitiesList[$i]->entity_id.'" alt="'
-                            .functions::xssafe($entitiesList[$i]->short_label).'" title="'
-                            .functions::xssafe($entitiesList[$i]->short_label).'">'
-                            .functions::xssafe($entitiesList[$i]->short_label).'</option>';
-                    }
-                }
-                $content .= '</select><br/> </td>';
-                $content .= '<td width="20%" align="center">';
-                $content .= '<input type="button" class="button" value="'._ADD.' &gt;&gt;" onclick=\'Move($(entitieslist), $(entities_chosen));\' />';
-                $content .= '<br /><br />';
-                $content .= '<input type="button" class="button" value="&lt;&lt; '._REMOVE.'" onclick=\'Move($(entities_chosen), $(entitieslist));\' />';
-                $content .= '</td>';
-                $content .= '<td width="30%" align="center">';
-                $content .= '<select name="entities_chosen[]" id="entities_chosen" size="7" style="width: 206px" ';
-                $content .= 'ondblclick=\'moveclick($(entities_chosen), $(entitieslist));\' multiple="multiple">';
-                for ($i=0;$i<count($notesEntities);$i++) {
-                    $content .= '<option value="'
-                        .$notesEntities[$i]->entity_id.'" alt="'
-                        .functions::xssafe($notesEntities[$i]->short_label).'" title="'
-                        .functions::xssafe($notesEntities[$i]->short_label).'" selected="selected">'
-                        .functions::xssafe($notesEntities[$i]->short_label).'</option>';
-                }
-                $content .= '</select></td>';
-                $content .= '</tr></table>';
-                // Buttons
-                $content .='<hr />';
-                $content .='<div align="center">';
-                $content .=' <input type="button" name="valid" value="&nbsp;'._VALIDATE
-                         .'&nbsp;" id="valid" class="button" onclick="'
-                         .'selectall($(\'entities_chosen\'));validNotesForm(\''
-                         .$path_to_script.'&mode=updated\', \'formNotes\');" />&nbsp;';
-                $content .=' <input type="button" name="valid" value="&nbsp;'._DELETE
-                         .'&nbsp;" id="valid" class="button" onclick="if(confirm(\''._REALLY_DELETE.': '
-                         .$request->cut_string(str_replace(array("'", "\n","\"","\r"),array("\'", " ", "&quot;", " "), $notes), 250).' ?\')) validNotesForm(\''
-                         .$path_to_script.'&mode=del\', \'formNotes\');" />&nbsp;';
-                $content .='<input type="button" name="cancel" id="cancel" class="button" value="'
-                    ._CANCEL.'" onclick="destroyModal(\'form_notes\');"/>';
-                $content .='</div">';
-                $content .= '</form>';
-                $content .= '</div>';
-            } else {
-                $error = $request->wash_html($id.': '._NOTE_DONT_EXIST.'!','NONE');
-                $status = 1;
-            }
-        
-        } else {
-            $error = $request->wash_html(_ID.' '._IS_EMPTY.'!','NONE');
-            $status = 1;
-        }
-    break;
-    case 'updated':
-        if (strlen(trim($_REQUEST['notes'])) > 0) {
-            //ID?
-            if (empty($_REQUEST['id'])) {
-                $error = $request->wash_html(_ID.' '._IS_EMPTY.'!','NONE');
-                $status = 1;
-            } else {
-                $id = $_REQUEST['id'];
-                //Identifier?
-                if (empty($identifier)) {
-                    $error = $request->wash_html(_IDENTIFIER.' '._IS_EMPTY.'!','NONE');
-                    $status = 1;
-                } else {
-                    
-                    $notes = $_REQUEST['notes'];
-
-                    $db->query(
-                        "UPDATE ".NOTES_TABLE." SET note_text = ?, creation_date = CURRENT_TIMESTAMP WHERE id = ?",
-                        array($notes, $id)
-                    );
-                    
-                    //Entities selected
-                    $db->query(
-                            "DELETE FROM " . NOTE_ENTITIES_TABLE . " WHERE note_id = ?", array($id)
-                        );
-                    if (isset($_REQUEST['entities_chosen']) && !empty($_REQUEST['entities_chosen'])) {
-                    
-                        for ($i=0; $i<count($_REQUEST['entities_chosen']); $i++) 
-                        {  
-                            $db->query(
-                                "INSERT INTO " . NOTE_ENTITIES_TABLE . "(note_id, item_id) VALUES"
-                                . " (?, ?)",
-                            array($id, $_REQUEST['entities_chosen'][$i])
-                            );
-                        }
-                    }
-                    
-                    //History
-                    if ($_SESSION['history']['noteup']) {
-                        $hist = new history();
-                        if (isset($_REQUEST['origin']) && $_REQUEST['origin'] == "folder") {
-                            $hist->add(
-                                $table, $identifier, "UP", 'folderup', _NOTE_UPDATED . _ON_FOLDER_NUM
-                                . $identifier . ' (' . $id . ') : "' . $request->cut_string($notes, 254) .'"',
-                                $_SESSION['config']['databasetype'], 'notes'
-                            );
-                        } else if (isset($_REQUEST['origin']) && $_REQUEST['origin'] == "document") {
-                            $hist->add(
-                                $view, $identifier, "UP", 'resup',  _NOTE_UPDATED . _ON_DOC_NUM
-                                . $identifier . ' (' . $id . ') ',
-                                $_SESSION['config']['databasetype'], 'notes'
-                            );
-                        }
-
-                        $hist->add(
-                            NOTES_TABLE, $id, "UP", 'noteup', _NOTE_UPDATED . ' (' . $id . ')',
-                            $_SESSION['config']['databasetype'], 'notes'
-                        );
-                    }
-                    
-                    //Reload and show message
-                    $js =  $list_origin;
-                    $msgResult = _NOTE_UPDATED;
-                }
-            }
-        } else {
-            $error = $request->wash_html(_NOTES.' '._IS_EMPTY.'!','NONE');
-            $status = 1;
-        }
-    break;
-    case 'del':
-        //ID?
-        if (empty($_REQUEST['id'])) {
-            $error = $request->wash_html(_ID.' '._IS_EMPTY.'!','NONE');
-            $status = 1;
-        } else {
-            $id = $_REQUEST['id'];
-
-            $db->query("DELETE FROM " . NOTE_ENTITIES_TABLE . " WHERE note_id = ?", array($id));
-            $db->query("DELETE FROM " . NOTES_TABLE . " WHERE id = ?", array($id));
-
-            if ($_SESSION['history']['notedel']) {
-                $hist = new history();
-                $hist->add(
-                    NOTES_TABLE, $id, "DEL", 'notedel', _NOTES_DELETED . ' (' . $id . ')',
-                    $_SESSION['config']['databasetype'], 'notes'
-                );
-                if (isset($_REQUEST['origin']) && $_REQUEST['origin'] == "folder") {
-                    $hist->add(
-                        $table, $identifier, "UP", 'folderup', _NOTES_DELETED . _ON_FOLDER_NUM
-                        . $identifier . ' (' . $id . ')',
-                        $_SESSION['config']['databasetype'], 'notes'
-                    );
-                } else if (isset($_REQUEST['origin']) && $_REQUEST['origin'] == "document") {
-                    $hist->add(
-                        $view, $identifier, "UP", 'resup',  _NOTES_DELETED . _ON_DOC_NUM
-                        . $identifier . ' (' . $id . ')',
-                        $_SESSION['config']['databasetype'], 'notes'
-                    );
-                }
-            }
-            
-            //Reload and show message
-            $js =  $list_origin;
-            $msgResult = _NOTES_DELETED;
-
-            //Count notes
-            $toolbarBagde_script = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=notes&page=load_toolbar_notes&origin=parent&resId='.$identifier;
-            $js .='loadToolbarBadge(\'notes_tab\',\''.$toolbarBagde_script.'\');';
-        }
-    break;
-}
-
-echo "{status : " . $status . ", msg_result : '" . $msgResult . "', content : '" . addslashes(_parse($content)) . "', error : '" . addslashes($error) . "', exec_js : '".addslashes($js)."'}";
-exit ();
-?>
diff --git a/modules/notes/notes_tables.php b/modules/notes/notes_tables.php
deleted file mode 100755
index 0a111df7446..00000000000
--- a/modules/notes/notes_tables.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/*
-*    Copyright 2008 - 2011 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/>.
-*/
-
-/**
-* @brief Notes tables declarations
-*
-*
-* @file
-* @author  Claire Figueras  <dev@maarch.org>
-* @date $date$
-* @version $Revision$
-* @ingroup notes
-*/
-if (! defined('NOTES_TABLE')) {
-    define('NOTES_TABLE', 'notes');
-}
-
-if (! defined('NOTE_ENTITIES_TABLE')) {
-    define('NOTE_ENTITIES_TABLE', 'note_entities');
-}
diff --git a/modules/notes/xml/IVS/requests_definitions.xml b/modules/notes/xml/IVS/requests_definitions.xml
index 0470daec930..87c36b040c3 100755
--- a/modules/notes/xml/IVS/requests_definitions.xml
+++ b/modules/notes/xml/IVS/requests_definitions.xml
@@ -1,9 +1,4 @@
 <requestDefinitions>
-	<requestDefinition method="POST" path="/apps/maarch_entreprise/index.php" validationRule="notes_ajax_content" >
-        <parameter name="page" value="notes_ajax_content"/>
-        <parameter name="module" value="notes"/>
-        <parameter name="display" value="true" />
-    </requestDefinition>
 	<requestDefinition method="GET" path="/apps/maarch_entreprise/index.php" validationRule="notes" >
         <parameter name="page" value="notes"/>
         <parameter name="module" value="notes"/>
@@ -19,9 +14,4 @@
         <parameter name="module" value="notes"/>
         <parameter name="display" value="true" />
     </requestDefinition>
-	<requestDefinition method="GET" path="/apps/maarch_entreprise/index.php" validationRule="note_details" >
-        <parameter name="page" value="note_details"/>
-        <parameter name="module" value="notes"/>
-        <parameter name="display" value="true"/>
-    </requestDefinition>
 </requestDefinitions>
diff --git a/modules/notes/xml/IVS/validation_rules.xml b/modules/notes/xml/IVS/validation_rules.xml
index 587b5e573ae..af0edac910b 100755
--- a/modules/notes/xml/IVS/validation_rules.xml
+++ b/modules/notes/xml/IVS/validation_rules.xml
@@ -1,19 +1,4 @@
 <validationRules>
-	<validationRule name="notes_ajax_content" extends="standardForm" mode="error">
-		<parameter name="module" type="identifier" />
-		<parameter name="coll_id" type="collection_list" />
-		<parameter name="identifier" type="integer" />
-		<parameter name="origin" type="identifier" />
-		<parameter name="size" type="size" />
-		<parameter name="cancel" type="identifier" />
-		<parameter name="entities_chosen" type="identifier" />
-		<parameter name="entitieslist" type="string" />
-		<parameter name="notes" type="string" />
-		<parameter name="templateNotes" type="identifier" />
-		<parameter name="valid" type="string" />
-		<parameter name="url" type="url" />
-		<parameter name="id" type="integer" />
-	</validationRule>
 	<validationRule name="notes" extends="standardForm" mode="error">
 		<parameter name="module" type="identifier" />
 		<parameter name="coll_id" type="collection_list" />
@@ -24,12 +9,4 @@
 		<parameter name="size" type="size" />
 		<parameter name="url" type="url" />
 	</validationRule>
-	<validationRule name="note_details" extends="standardForm" mode="error">
-		<parameter name="module" type="identifier" />
-		<parameter name="coll_id" type="collection_list" />
-		<parameter name="modify" type="identifier" />
-		<parameter name="id" type="identifier" />
-		<parameter name="resid" type="integer" />
-		<parameter name="size" type="identifier" />
-	</validationRule>
 </validationRules>
diff --git a/modules/notes/xml/config.xml b/modules/notes/xml/config.xml
index 69fe2c4b77a..1340e70494d 100755
--- a/modules/notes/xml/config.xml
+++ b/modules/notes/xml/config.xml
@@ -10,9 +10,4 @@
 		<not_notes>notes</not_notes>
 		<note_entities>note_entities</note_entities>
 	</TABLENAME>
-	<HISTORY>
-		<noteadd>true</noteadd>
-		<noteup>true</noteup>
-		<notedel>true</notedel>
-	</HISTORY>
 </root>
diff --git a/modules/notifications/lang/en.php b/modules/notifications/lang/en.php
index b4a242bc5dd..a8a0f139d5a 100755
--- a/modules/notifications/lang/en.php
+++ b/modules/notifications/lang/en.php
@@ -159,8 +159,6 @@ if (!defined("_HELLO_NOTE"))
     define("_HELLO_NOTE", "Hello, you have a new annotation for the mail");
 if (!defined("_NOTE_BODY"))
     define("_NOTE_BODY", "The note is the next one: ");
-if (!defined("_NOTE_DETAILS"))
-    define("_NOTE_DETAILS", "This note has been added by");
 if (!defined("_NOTE_DATE_DETAILS"))
     define("_NOTE_DATE_DETAILS", "On");
 if (!defined("_LINK_TO_MAARCH"))
diff --git a/modules/notifications/lang/fr.php b/modules/notifications/lang/fr.php
index 9fb0ac7421c..7d57aef0611 100755
--- a/modules/notifications/lang/fr.php
+++ b/modules/notifications/lang/fr.php
@@ -159,8 +159,6 @@ if (!defined("_HELLO_NOTE"))
     define("_HELLO_NOTE", "Bonjour, vous avez une nouvelle annotation pour le courrier");
 if (!defined("_NOTE_BODY"))
     define("_NOTE_BODY", "L'annotation est la suivante : ");
-if (!defined("_NOTE_DETAILS"))
-    define("_NOTE_DETAILS", "Cette annotation à été ajoutée par : ");
 if (!defined("_NOTE_DATE_DETAILS"))
     define("_NOTE_DATE_DETAILS", "le");
 if (!defined("_LINK_TO_MAARCH"))
diff --git a/modules/notifications/lang/nl.php b/modules/notifications/lang/nl.php
index 15189d14c35..fa29149fe3e 100755
--- a/modules/notifications/lang/nl.php
+++ b/modules/notifications/lang/nl.php
@@ -195,9 +195,6 @@ if (!defined('_HELLO_NOTE')) {
 if (!defined('_NOTE_BODY')) {
     define('_NOTE_BODY', 'De opmerking is de volgende:');
 }
-if (!defined('_NOTE_DETAILS')) {
-    define('_NOTE_DETAILS', 'Deze opmerking werd toegevoegd door:');
-}
 if (!defined('_NOTE_DATE_DETAILS')) {
     define('_NOTE_DATE_DETAILS', 'op');
 }
@@ -405,6 +402,3 @@ if (!defined('_DEPARTMENT')) {
 if (!defined('_NOTE_BODY')) {
     define('_NOTE_BODY', 'De opmerking is de volgende: ');
 }
-if (!defined('_NOTE_DETAILS')) {
-    define('_NOTE_DETAILS', 'Deze opmerking werd toegevoegd door: ');
-}
diff --git a/modules/sendmail/address_autocompletion.php b/modules/sendmail/address_autocompletion.php
deleted file mode 100644
index f3a2d304ee4..00000000000
--- a/modules/sendmail/address_autocompletion.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-/**
-* Copyright Maarch since 2008 under licence GPLv3.
-* See LICENCE.txt file at the root folder for more details.
-* This file is part of Maarch software.
-
-* @brief   address_autocompletion
-* @author  dev <dev@maarch.org>
-* @ingroup sendmail
-*/
-
-require_once("core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_request.php");
-
-$db = new Database();
-
-$timestart=microtime(true);
-   
-$args = explode(' ', $_REQUEST['what']);
-$args[] = $_REQUEST['what'];
-$num_args = count($args);
-if ($num_args == 0) {
-    return "<ul></ul>";
-}
-       
-$query = "SELECT result, SUM(confidence) AS score, count(1) AS num FROM (";
-$subQuery = array();
-$subQuery[1] = "SELECT UPPER(lastname) || ' ' || firstname || ' (' || mail || ')' AS result, "
-            . ' %d AS confidence, mail AS email '
-            . "FROM users"
-            . " WHERE status != 'SPD' AND "
-    . "(LOWER(lastname) LIKE LOWER('%s') OR LOWER(firstname) LIKE LOWER('%s') OR LOWER(user_id) LIKE LOWER('%s') OR LOWER(user_id) LIKE LOWER('%s') OR LOWER(user_id) LIKE LOWER('%s') OR LOWER(user_id) LIKE LOWER('%s') OR LOWER(mail) LIKE LOWER('%s'))";
-
-$subQuery[2]=
-    "SELECT CASE WHEN contact_lastname = '' THEN UPPER(lastname) ELSE UPPER(contact_lastname) END || ' ' || CASE WHEN contact_firstname = '' THEN firstname ELSE contact_firstname END || CASE WHEN society = '' THEN '' ELSE ' - '||society END || "
-        . "' (' || email || ')' AS result, "
-        . ' %d AS confidence, email'
-    . " FROM view_contacts"
-    . " WHERE  "
-        . " enabled = 'Y' AND email <> ''"
-        . " AND ("
-            . " (LOWER(contact_lastname) LIKE LOWER('%s') OR LOWER(lastname) LIKE LOWER('%s'))"
-            . " OR (LOWER(contact_firstname) LIKE LOWER('%s') OR LOWER(firstname) LIKE LOWER('%s'))"
-            . " OR LOWER(society) LIKE LOWER('%s')"
-            . " OR LOWER(society_short) LIKE LOWER('%s')"
-    . " OR LOWER(email) LIKE LOWER('%s')"
-        .")"
-    ."and (is_private = 'N' or ( user_id = '".$_SESSION['user']['UserId']."' and is_private = 'Y'))";
-
-$queryParts = array();
-
-for ($i=1; $i<3; $i++) {
-    foreach ($args as $arg) {
-        if (strlen($arg) == 0) {
-            continue;
-        }
-        # Full match of one given arg
-        $expr = $arg;
-        $conf = 100;
-        $queryParts[] = sprintf($subQuery[$i], $conf, $expr, $expr, $expr, $expr, $expr, $expr, $expr);
-
-        # Partial match (starts with)
-        $expr = $arg . "%";
-        ;
-        $conf = 34; # If found, partial match contains will also be so score is sum of both confidences, i.e. 67)
-        $queryParts[] = sprintf($subQuery[$i], $conf, $expr, $expr, $expr, $expr, $expr, $expr, $expr);
-      
-        # Partial match (contains)
-        $expr = "%" . $arg . "%";
-        $conf = 33;
-        $queryParts[] = sprintf($subQuery[$i], $conf, $expr, $expr, $expr, $expr, $expr, $expr, $expr);
-    }
-}
-
-$query .= implode(' UNION ALL ', $queryParts);
-$query .= ") matches"
-    . " GROUP BY result "
-    . " ORDER BY score DESC, result ASC";
-
-$stmt = $db->query($query);
-$nb = $stmt->rowCount();
-$m = 30;
-if ($nb >= $m) {
-    $l = $m;
-} else {
-    $l = $nb;
-}
-    
-$timeend=microtime(true);
-$time = number_format(($timeend-$timestart), 3);
-
-$found = false;
-echo "<ul title='$l contacts found in " . $time."sec'>";
-for ($i=0; $i<$l; $i++) {
-    $res = $stmt->fetchObject();
-    $score = round($res->score / $num_args);
-    if ($i%2==1) {
-        $color = 'LightYellow';
-    } else {
-        $color = 'white';
-    }
-    echo "<li style='font-size: 8pt; background-color:$color;' title='confiance:".$score."%' id='".$res->email."'>". $res->result ."</li>";
-}
-if ($nb == 0) {
-    echo "<li></li>";
-}
-echo "</ul>";
-if ($nb == 0) {
-    echo "<p align='left' style='background-color:LemonChiffon;' title=\"Aucun résultat trouvé, veuillez compléter votre recherche.\" >...</p>";
-}
-if ($nb > $m) {
-    echo "<p align='left' style='background-color:LemonChiffon;' title=\"La liste n'a pas pu être affichée intégralement, veuillez compléter votre recherche.\" >...</p>";
-}
diff --git a/modules/sendmail/class/class_email_signatures.php b/modules/sendmail/class/class_email_signatures.php
deleted file mode 100755
index 6f82fbb8759..00000000000
--- a/modules/sendmail/class/class_email_signatures.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/*
-*    Copyright 2008-2016 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/sendmail/class/class_email_signatures_Abstract.php';
-
-class EmailSignatures extends EmailSignaturesAbstract
-{
-    // custom
-}
\ No newline at end of file
diff --git a/modules/sendmail/class/class_email_signatures_Abstract.php b/modules/sendmail/class/class_email_signatures_Abstract.php
deleted file mode 100755
index a64153f94df..00000000000
--- a/modules/sendmail/class/class_email_signatures_Abstract.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/*
-*    Copyright 2008-2016 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/>.
-*/
-
-abstract class EmailSignaturesAbstract extends Database
-{
-
-    protected function rawToHtml($text) {
-        $text = str_replace("\r\n", PHP_EOL, $text);
-        $text = str_replace("\r", PHP_EOL, $text);
-        $text = str_replace('###', ';', $text);
-        $text = str_replace('___', '--', $text);
-
-        return $text;
-    }
-
-    public function getForCurrentUser() {
-        $db = new Database();
-
-        $stmt = $db->query('SELECT * FROM users_email_signatures WHERE user_id = ? order by title',
-            [$_SESSION['user']['UserId']]
-        );
-        $mailSignatures = [];
-        while($res = $stmt->fetchObject())
-            $mailSignatures[] = ['id' => $res->id, 'title' => $res->title, 'signature' => $this->rawToHtml($res->html_body)];
-
-        return $mailSignatures;
-    }
-}
\ No newline at end of file
diff --git a/modules/sendmail/class/class_modules_tools_Abstract.php b/modules/sendmail/class/class_modules_tools_Abstract.php
index 7425600b29f..6a32f5c1bf3 100755
--- a/modules/sendmail/class/class_modules_tools_Abstract.php
+++ b/modules/sendmail/class/class_modules_tools_Abstract.php
@@ -57,132 +57,6 @@ abstract class SendmailAbstract extends Database
         $_SESSION['history']['maildel'] = (string) $hist->maildel;
     }
 
-    public function CheckEmailAdress($adress)
-    {
-        $error = '';
-        if (!empty($adress)) {
-            $adressArray = explode(',', trim($adress));
-            for ($i=0; $i < count($adressArray); $i++) {
-                if (!empty($adressArray[$i])) {
-                    $this->wash($adressArray[$i], 'mail', _EMAIL.": ".$adressArray[$i], 'yes', 0, 255);
-                    if (!empty($_SESSION['error'])) {
-                        $error .= $_SESSION['error'];
-                        $_SESSION['error']='';
-                    }
-                }
-            }
-            $error = str_replace("<br />", "###", $error);
-        }
-        return $error;
-    }
-
-    public function getJoinedFiles($coll_id, $table, $id, $from_res_attachment = false)
-    {
-        // $joinedFiles = array();
-        // $db = new Database();
-        // if ($from_res_attachment === false) {
-        //     $stmt = $db->query(
-        //         "select res_id, description, subject, title, format, filesize, relation from "
-        //         . $table . " where res_id = ? and status <> 'DEL'",
-        //         array($id)
-        //     );
-        // } else {
-        //     include_once 'modules/attachments/attachments_tables.php';
-        //     $stmt = $db->query(
-        //         "SELECT rva.res_id, rva.res_id_version, rva.description, rva.subject, rva.title, rva.format, rva.filesize, rva.res_id_master, rva.attachment_type, rva.identifier, cv2.society, cv2.firstname, cv2.lastname, rva.filename, rva.path
-        //         FROM res_view_attachments rva LEFT JOIN contacts_v2 cv2 ON rva.dest_contact_id = cv2.contact_id WHERE rva.res_id_master = ? and rva.coll_id = ? and rva.status <> 'DEL' and rva.status <> 'OBS' and rva.attachment_type NOT IN ('converted_pdf','print_folder') ORDER BY rva.attachment_type, rva.description",
-        //         array($id, $coll_id)
-        //     );
-        // }
-
-        // while ($res = $stmt->fetchObject()) {
-        //     $pdf_exist = true;
-        //     if ($from_res_attachment) {
-        //         require_once 'modules/attachments/class/attachments_controler.php';
-        //         $ac = new attachments_controler();
-        //         if ($res->res_id != 0) {
-        //             $idFile = $res->res_id;
-        //             $isVersion = false;
-        //         } else {
-        //             $idFile = $res->res_id_version;
-        //             $isVersion = true;
-        //         }
-        //         $convertedDocument =  \Convert\models\AdrModel::getConvertedDocumentById(['select' => ['docserver_id', 'path', 'filename'], 'type' => 'PDF', 'resId' => $idFile, 'collId' => 'attachments_coll', 'isVersion' => $isVersion]);
-        //         $viewLink = $_SESSION['config']['businessappurl']
-        //                 .'index.php?display=true&module=attachments&page=view_attachment&res_id_master='
-        //                 .$id.'&id='.$res->res_id;
-                
-        //         if (!empty($convertedDocument)) {
-        //             $docserver = \Docserver\models\DocserverModel::getByDocserverId(['docserverId' => $convertedDocument['docserver_id'], 'select' => ['path_template']]);
-        //             $pathToDocument = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $convertedDocument['path']) . $convertedDocument['filename'];
-                    
-                    
-        //             if (!file_exists($pathToDocument)) {
-        //                 $pdf_exist = false;
-        //             }
-        //         } else {
-        //             $pdf_exist = false;
-        //         }
-        //     } else {
-        //         $idFile = $res->res_id;
-        //         $convertedDocument =  \Convert\models\AdrModel::getConvertedDocumentById(['select' => ['docserver_id', 'path', 'filename'], 'type' => 'PDF', 'resId' => $idFile, 'collId' => 'letterbox_coll', 'isVersion' => $isVersion]);
-        //         $viewLink = $_SESSION['config']['businessappurl']
-        //                 .'index.php?display=true&dir=indexing_searching&page=view_resource_controler&id='
-        //                 .$id;
-        //         if (!empty($convertedDocument)) {
-        //             $docserver = \Docserver\models\DocserverModel::getByDocserverId(['docserverId' => $convertedDocument['docserver_id'], 'select' => ['path_template']]);
-        //             $pathToDocument = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $convertedDocument['path']) . $convertedDocument['filename'];
-                    
-        //             if (!file_exists($pathToDocument)) {
-        //                 $pdf_exist = false;
-        //             }
-        //         } else {
-        //             $pdf_exist = false;
-        //         }
-        //     }
-        //     $label = '';
-        //     //Tile, or subject or description
-        //     if (strlen(trim($res->title)) > 0) {
-        //         $label = $res->title;
-        //     } elseif (strlen(trim($res->subject)) > 0) {
-        //         $label = $res->subject;
-        //     } elseif (strlen(trim($res->description)) > 0) {
-        //         $label = $res->description;
-        //     }
-
-        //     array_push(
-        //         $joinedFiles,
-        //         array('id'            => $idFile, //ID
-        //             'label'           => $this->show_string($label), //Label
-        //             'format'          => $res->format, //Format
-        //             'filesize'        => $res->filesize, //Filesize
-        //             'is_version'      => $isVersion,
-        //             'pdf_exist'       => $pdf_exist,
-        //             'version'         => '',
-        //             'attachment_type' => $res->attachment_type,
-        //             'identifier'      => $res->identifier,
-        //             'society'         => $res->society,
-        //             'firstname'       => $res->firstname,
-        //             'lastname'        => $res->lastname,
-        //         )
-        //     );
-        // }
-
-        // return $joinedFiles;
-    }
-
-    public function rawToHtml($text)
-    {
-        //...
-        $text = str_replace("\r\n", PHP_EOL, $text);
-        $text = str_replace("\r", PHP_EOL, $text);
-        //
-
-        //$text = str_replace(PHP_EOL, "<br />", $text);
-        //
-        return $text;
-    }
-
     public function htmlToRaw($text)
     {
         //
@@ -194,57 +68,11 @@ abstract class SendmailAbstract extends Database
         return $text;
     }
 
-    public function updateAdressInputField($ajaxPath, $adressArray, $inputField, $readOnly = false)
-    {
-        $content = '';
-        //Init with loading div
-        $content .= '<div id="loading_'.$inputField.'" style="display:none;"><i class="fa fa-spinner fa-spin" title="loading..."></i></div>';
-        //Get info from session array and display tag
-        if (isset($adressArray[$inputField]) && count($adressArray[$inputField]) > 0) {
-            foreach ($adressArray[$inputField] as $key => $adress) {
-                if (!empty($adress)) {
-                    $content .= '<div class="email_element" id="'.$key.'_'.$adress.'">'.$adress;
-                    if ($readOnly === false) {
-                        $content .= '&nbsp;<div class="email_delete_button" id="'.$key.'"'
-                            . 'onclick="updateAdress(\''.$ajaxPath
-                            .'&mode=adress\', \'del\', \''.$adress.'\', \''
-                            .$inputField.'\', this.id);" alt="'._DELETE.'" title="'
-                            ._DELETE.'">x</div>';
-                    }
-                    $content .= '</div>';
-                }
-            }
-        }
-        return $content;
-    }
-
-    public function updateContactInputField($ajaxPath, $adressArray, $inputField, $readOnly = false)
-    {
-        $content = '<div id="loading_'.$inputField.'" style="display:none;"><i class="fa fa-spinner fa-spin" title="loading..."></i></div>';
-        //Get info from session array and display tag
-        if (isset($adressArray[$inputField]) && count($adressArray[$inputField]) > 0) {
-            foreach ($adressArray[$inputField] as $key => $adress) {
-                if (!empty($adress)) {
-                    $content .= '<div class="email_element" id="'.$key.'_'.$adress.'">'.$adress;
-                    if ($readOnly === false) {
-                        $content .= '&nbsp;<div class="email_delete_button" id="'.$key.'"'
-                            . 'onclick="updateDestUser(\''.$ajaxPath
-                            .'&mode=destUser\', \'del\', this.id, \''
-                            .$inputField.'\', this.id);" alt="'._DELETE.'" title="'
-                            ._DELETE.'">x</div>';
-                    }
-                    $content .= '</div>';
-                }
-            }
-        }
-        return $content;
-    }
-
     public function getResource($collectionArray, $coll_id, $res_id)
     {
         $viewResourceArr = array();
 
-        for ($i=0;$i<count($collectionArray);$i++) {
+        for ($i=0; $i<count($collectionArray); $i++) {
             if ($collectionArray[$i]['id'] == $coll_id) {
                 //Get table
                 $table = $collectionArray[$i]['table'];
@@ -387,131 +215,6 @@ abstract class SendmailAbstract extends Database
         return $viewAttachmentArr;
     }
 
-    public function getVersion($collectionArray, $coll_id, $res_id_master, $res_version)
-    {
-        $viewVersionArr = array();
-
-        //Parse collection
-        for ($i=0;$i<count($collectionArray);$i++) {
-            if ($collectionArray[$i]['id'] == $coll_id) {
-                //Get table
-                $table = $collectionArray[$i]['table'];
-                //Get adress
-                $adrTable = $collectionArray[$i]['adr'];
-                //Get versions table
-                $versionTable = $collectionArray[$i]['version_table'];
-                break;
-            }
-        }
-
-        //Have version table
-        if ($versionTable <> '') {
-            $db = new Database();
-            $stmt = $db->query(
-                "select res_id, description, subject, title, docserver_id, "
-                . "path, filename,format, filesize, relation from "
-                . $versionTable . " where res_id = ? and res_id_master = ? and status <> 'DEL'",
-                array($res_version, $res_id_master)
-            );
-            //$db->show();
-            //Have new version
-            if ($stmt->rowCount() > 0) {
-                $line = $stmt->fetchObject();
-                //Tile, or subject or description
-                if (strlen(trim($line->title)) > 0) {
-                    $label = $line->title;
-                } elseif (strlen(trim($line->subject)) > 0) {
-                    $label = $line->subject;
-                } elseif (strlen(trim($line->description)) > 0) {
-                    $label = $line->description;
-                }
-
-                //Get file from docserver
-                include_once 'core/core_tables.php';
-                include_once 'core/docservers_tools.php';
-
-                $docserver = $line->docserver_id;
-                $path = $line->path;
-                $filename = $line->filename;
-                $format = $line->format;
-                $stmt = $db->query(
-                    "select path_template from " . _DOCSERVERS_TABLE_NAME
-                    . " where docserver_id = ? ",
-                    array($docserver)
-                );
-                //$db->show();
-                $lineDoc = $stmt->fetchObject();
-                $docserver = $lineDoc->path_template;
-                $file = $docserver . $path . $filename;
-                $file = str_replace("#", DIRECTORY_SEPARATOR, $file);
-
-                //Is there a corresponding file?
-                if (file_exists($file)) {
-                    $mimeType = Ds_getMimeType($file);
-
-                    $fileNameOnTmp = 'tmp_file_' . rand()
-                        . '.' . strtolower($format);
-                    $filePathOnTmp = $_SESSION['config']
-                        ['tmppath'] . DIRECTORY_SEPARATOR
-                        . $fileNameOnTmp;
-                    copy($file, $filePathOnTmp);
-
-                    $viewVersionArr = array(
-                        'status' => 'ok',
-                        'label' => $this->show_string($label),
-                        'mime_type' => $mimeType,
-                        'ext' => $format,
-                        'file_content' => '',
-                        'tmp_path' => $_SESSION['config']
-                        ['tmppath'],
-                        'file_path' => $filePathOnTmp,
-                        'called_by_ws' => '',
-                        'error' => ''
-                    );
-                } else {
-                    $viewVersionArr = array(
-                        'status' => 'ko',
-                        'label' => '',
-                        'mime_type' => '',
-                        'ext' => '',
-                        'file_content' => '',
-                        'tmp_path' => '',
-                        'file_path' => '',
-                        'called_by_ws' => '',
-                        'error' => _FILE_NOT_EXISTS_ON_THE_SERVER
-                    );
-                }
-            } else {
-                $viewVersionArr = array(
-                    'status' => 'ko',
-                    'label' => '',
-                    'mime_type' => '',
-                    'ext' => '',
-                    'file_content' => '',
-                    'tmp_path' => '',
-                    'file_path' => '',
-                    'called_by_ws' => '',
-                    'error' => _NO_RIGHT_ON_RESOURCE_OR_RESOURCE_NOT_EXISTS
-                );
-            }
-        } else {
-            $viewVersionArr = array(
-                'status' => 'ko',
-                'label' => '',
-                'mime_type' => '',
-                'ext' => '',
-                'file_content' => '',
-                'tmp_path' => '',
-                'file_path' => '',
-                'called_by_ws' => '',
-                'error' => _NO_VERSION_TABLE_FOR_THIS_COLLECTION
-            );
-        }
-        // $this->show_array($viewVersionArr);
-
-        return $viewVersionArr;
-    }
-
     public function createFilename($label, $extension)
     {
         $search = array(
@@ -597,26 +300,6 @@ abstract class SendmailAbstract extends Database
         return $arrayEntitiesMails;
     }
 
-    public function checkAttachedEntitiesMails()
-    {
-        $db = new Database;
-        $core_tools = new core_tools();
-
-        $entitiesMails = array();
-        if ($core_tools->test_service('use_mail_services', 'sendmail', false)) {
-            $entitiesMails = $this->getAttachedEntitiesMails($_SESSION['user']['UserId']);
-        }
-
-        $stmt = $db->query("SELECT mail FROM users WHERE user_id = ? ", array($_SESSION['user']['UserId']));
-        $res = $stmt->fetchObject();
-
-        if ($res->mail<>"") {
-            $entitiesMails[$res->mail] = "";
-        }
-
-        return $entitiesMails;
-    }
-
     public function explodeSenderEmail($senderEmail)
     {
         if (strpos($senderEmail, ",") === false) {
@@ -626,17 +309,4 @@ abstract class SendmailAbstract extends Database
             return $explode[1];
         }
     }
-
-    public function emailStatus(array $args)
-    {
-        if ($args['status'] == 'SENT') {
-            return _EMAIL_SENT;
-        } elseif ($args['status'] == 'ERROR') {
-            return _EMAIL_ERROR;
-        } elseif ($args['status'] == 'WAITING') {
-            return _EMAIL_WAIT;
-        } else {
-            return _EMAIL_DRAFT;
-        }
-    }
 }
diff --git a/modules/sendmail/contact_autocompletion.php b/modules/sendmail/contact_autocompletion.php
deleted file mode 100755
index 4c69f5cbe9b..00000000000
--- a/modules/sendmail/contact_autocompletion.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-/**
-* Copyright Maarch since 2008 under licence GPLv3.
-* See LICENCE.txt file at the root folder for more details.
-* This file is part of Maarch software.
-*
-*/
-
-/**
-* @brief    List of contact informations for autocompletion
-*
-* @file     contact_autocompletion.php
-* @date     $date$
-* @version  $Revision$
-* @ingroup  sendmail
-*/
-
-$db = new Database();
-
-$args     = explode(' ', $_REQUEST['what']);
-$args[]   = $_REQUEST['what'];
-$num_args = count($args);
-if ($num_args == 0) {
-    return "<ul></ul>";
-}
-   
-$query    = "SELECT result, SUM(confidence) AS score, ca_id FROM (";
-
-$subQuery[1]=
-    "SELECT CASE WHEN is_corporate_person = 'Y' THEN UPPER(society) ELSE COALESCE(contact_firstname, '') || ' ' || UPPER(COALESCE(contact_lastname, '')) END || "
-    . " ' - ' || CAST (external_id->>'m2m' as VARCHAR) || ' - ' || COALESCE(contact_purpose_label, '') || ' : ' || "
-    . " COALESCE(firstname, '') || ' ' || UPPER(COALESCE(lastname, ''))|| ' ' || COALESCE(address_num, '') || ' ' || COALESCE(address_street, '') || ' ' || COALESCE(address_postal_code, '')|| ' ' || COALESCE(address_town, '')|| ' ' || UPPER(COALESCE(address_country, ''))"
-    ." || '(Moyen de communication : ' || cc.value || ')' AS result, "
-        . ' %d AS confidence, ca_id'
-    . " FROM view_contacts left join contact_communication cc on view_contacts.contact_id = cc.contact_id"
-    . " WHERE  "
-        . " enabled = 'Y' AND cc.value <> '' AND external_id->>'m2m' <> '' AND external_id->>'m2m' IS NOT NULL"
-        . " AND ("
-            . " (LOWER(contact_lastname) LIKE LOWER('%s') OR LOWER(lastname) LIKE LOWER('%s'))"
-            . " OR (LOWER(contact_firstname) LIKE LOWER('%s') OR LOWER(firstname) LIKE LOWER('%s'))"
-            . " OR LOWER(society) LIKE LOWER('%s')"
-            . " OR LOWER(society_short) LIKE LOWER('%s')"
-    . " OR LOWER(email) LIKE LOWER('%s')"
-        .")"
-    ."and (is_private = 'N' or ( user_id = '".$_SESSION['user']['UserId']."' and is_private = 'Y'))";
-
-$queryParts = array();
-
-foreach ($args as $arg) {
-    if (strlen($arg) == 0) {
-        continue;
-    }
-    # Full match of one given arg
-    $expr = $arg;
-    $conf = 100;
-    $queryParts[] = sprintf($subQuery[1], $conf, $expr, $expr, $expr, $expr, $expr, $expr, $expr);
-
-    # Partial match (starts with)
-    $expr = $arg . "%";
-    $conf = 34; # If found, partial match contains will also be so score is sum of both confidences, i.e. 67)
-    $queryParts[] = sprintf($subQuery[1], $conf, $expr, $expr, $expr, $expr, $expr, $expr, $expr);
-  
-    # Partial match (contains)
-    $expr = "%" . $arg . "%";
-    $conf = 33;
-    $queryParts[] = sprintf($subQuery[1], $conf, $expr, $expr, $expr, $expr, $expr, $expr, $expr);
-}
-
-$query .= implode(' UNION ALL ', $queryParts);
-$query .= ") matches"
-    . " GROUP BY result, ca_id "
-    . " ORDER BY score DESC, result ASC";
-
-$stmt = $db->query($query);
-$nb   = $stmt->rowCount();
-$m    = 30;
-if ($nb >= $m) {
-    $l = $m;
-} else {
-    $l = $nb;
-}
-
-echo "<ul title='$l contacts found'>";
-for ($i=0; $i<$l; $i++) {
-    $res   = $stmt->fetchObject();
-    $score = round($res->score / $num_args);
-    if ($i%2==1) {
-        $color = 'LightYellow';
-    } else {
-        $color = 'white';
-    }
-    echo "<li style='font-size: 8pt; background-color:$color;' title='confiance:".$score."%' id='".$res->ca_id."'>". $res->result ."</li>";
-}
-if ($nb == 0) {
-    echo "<li></li>";
-}
-echo "</ul>";
-
-if ($nb == 0) {
-    echo "<p align='left' style='background-color:LemonChiffon;' title=\"Aucun résultat trouvé, veuillez compléter votre recherche.\" >...</p>";
-}
-if ($nb > $m) {
-    echo "<p align='left' style='background-color:LemonChiffon;' title=\"La liste n'a pas pu être affichée intégralement, veuillez compléter votre recherche.\" >...</p>";
-}
diff --git a/modules/sendmail/css/module.css b/modules/sendmail/css/module.css
index 542f6c29c7d..248169ea3e1 100755
--- a/modules/sendmail/css/module.css
+++ b/modules/sendmail/css/module.css
@@ -1,51 +1 @@
 /* Sendmail module */
-/* menu */
-.emailInput {
-    -moz-appearance: textfield;
-    -webkit-appearance: textfield;
-    background-color: white;
-    background-color: -moz-field;
-    border: 1px solid darkgray;
-    box-shadow: 1px 1px 1px 0 lightgray inset;  
-    font: -moz-field;
-    font: -webkit-small-control;
-    margin-top: 2px;
-    padding: 2px 2px;
-    width: 700px;
-    min-height: 13px;    
-}
-
-textarea.emailInput {
-    width: 770px;
-}
-
-input.emailInput {
-    width: 700px;
-}
-
-input.emailSelect {
-    width: 250px;
-}
-
-.email_element {
-	display:inline-block; 
-	margin:3px;
-    padding: 1px 3px 2px 3px;
-	/*color:white;*/
-    font-size: .9em;
-	background-color: #BAD1E2;
-	border-radius: 5px;
-}
-
-.email_delete_button {
-	color:grey;
-	display:inline;
-	padding: 1px 1px 2px 1px;
-	background-color:#BAD1E2;
-	font-weight:bold; 
-    font-size: 1.2em;
-    cursor: pointer;
-}
-.email_delete_button:hover {
-    background-image: url(static.php?filename=black_0.1.png);
-}
\ No newline at end of file
diff --git a/modules/sendmail/js/functions.js b/modules/sendmail/js/functions.js
index 0614a7fb782..362c159c986 100755
--- a/modules/sendmail/js/functions.js
+++ b/modules/sendmail/js/functions.js
@@ -24,240 +24,6 @@ var addEmailAdress = function (idField, idList, theUrlToListScript, paramNameSrv
          });
  };
 
-function addTemplateToEmail(templateMails, path){
-
-    new Ajax.Request(path,
-    {
-        method      :'post',
-        parameters  :{
-                        templateId : templateMails,
-                        mode : mode
-                     },
-        onSuccess   :function(answer){
-            eval("response = " + answer.responseText);
-            if (response.status == 0) {
-                var strContent = response.content;
-                if(mode == 'html'){
-                    var strContentReplace = strContent.replace(/\\n/g, '');
-                    tinyMCE.execCommand('mceSetContent', false, strContentReplace);
-                } else {
-                    var strContentReplace = strContent.replace(/\\n/g, '\n');
-                    $j("textarea#body_from_raw").html(strContentReplace);
-                }
-            } 
-        }
-    });
-}
-
-function changeSignature(selected, mailSignaturesJS){
-    var nb = selected.getAttribute('data-nb');
-    var body = $('body_from_html_ifr').contentWindow.document.getElementById("tinymce");
-    var customTag = body.getElementsByTagName("mailSignature");
-
-    if (mode == 'html' && customTag.length == 0) {
-        body.innerHTML += "<mailSignature>t</mailSignature>";
-        customTag = body.getElementsByTagName("mailSignature");
-    }
-
-    if (nb >= 0) {
-        var strContent = mailSignaturesJS[nb].signature;
-        if(mode == 'html'){
-            customTag[0].innerHTML = strContent;
-        } else {
-            var text = $j(strContent).text();
-            $j("textarea#body_from_raw").append(text);
-        }
-        
-    } else {
-        customTag[0].innerHTML = "";
-    }
-}
-
-function showEmailForm(path, width, height, iframe_container_id) {
-    
-    if(typeof(width)==='undefined'){
-        width = '820px';
-    }
-    
-    if(typeof(height)==='undefined'){
-        height = '545px';
-    }  
-	
-    if(typeof(iframe_container_id)==='undefined'){
-        iframe_container_id = '';
-    }  
-    new Ajax.Request(path,
-    {
-        method:'post',
-        parameters: { url : path
-                    },  
-        onSuccess: function(answer) {
-            eval("response = "+answer.responseText);
-           
-            if(response.status == 0){
-				console.log('Height = '+height);
-				console.log('Width = '+width);
-                var modal_content = convertToTextVisibleNewLine(response.content);
-                createModal(modal_content, 'form_email', height, width,'',iframe_container_id); 
-            } else {
-                window.top.$('main_error').innerHTML = response.error;
-            }
-        }
-    });
-}
-
-function updateAdress(path, action, adress, target, array_index, email_format_text_error) {
-    
-    if (validateEmail(adress) === true) {
-        
-        new Ajax.Request(path,
-        {
-            method:'post',
-            parameters: { url : path,
-                          'for': action,
-                          email: adress,
-                          field: target,
-                          index: array_index
-                        },
-            onLoading: function(answer) {
-                $('loading_' + target).style.display='inline';
-            },
-            onSuccess: function(answer) {
-                eval("response = "+answer.responseText);
-                if(response.status == 0){
-                    $(target).innerHTML = response.content;
-                    if (action == 'add') {$('email').value = '';}
-                } else {
-                    alert(response.error);
-                    eval(response.exec_js);
-                }
-            }
-        });
-    } else {
-        if(typeof(email_format_text_error) == 'undefined'){
-            email_format_text_error = 'Email format is not available!';
-        }
-        alert(email_format_text_error);
-    }
-}
-
-function updateDestUser(path, action, adress, target, array_index) {
-     
-    new Ajax.Request(path,
-    {
-        method:'post',
-        parameters: { url : path,
-                      'for': action,
-                      contactAddress: adress,
-                      field: target,
-                      index: array_index
-                    },
-        onLoading: function(answer) {
-            $('loading_' + target).style.display='inline';
-        },
-        onSuccess: function(answer) {
-            eval("response = "+answer.responseText);
-            if(response.status == 0){
-                $(target).innerHTML = response.content;
-                if (action == 'add') {$('user').value = '';}
-            } else {
-                alert(response.error);
-                eval(response.exec_js);
-            }
-        }
-    });
-}
-
-function validEmailForm(path, form_id) {
-
-    var attachments = $j("#joined_files input.check");
-
-    if (attachments.length > 0 && (path.includes("for=send") || path.includes("formContent=messageExchange"))) {
-        var hasOneChecked = false;
-        for (var i = 0; i < attachments.length; i++) {
-            if (attachments[i].checked == true) {
-                hasOneChecked = true;
-                break;
-            }
-        }
-
-        if (!hasOneChecked) {
-            if(path.includes("formContent=messageExchange")){
-                alert('Aucune pièce jointe sélectionnée');
-                return;
-            } else if(path.includes("for=send")){
-                var cfm = confirm('Aucune pièce jointe sélectionnée. Voulez-vous quand même envoyer le mail ?');
-                if (!cfm) {
-                    return;
-                }
-            }
-        }
-    }
-
-    if (typeof($j('input[name=main_exchange_doc]:checked', '#formEmail').val()) === 'undefined' && path.includes("formContent=messageExchange")) {
-        alert('Aucun document principal sélectionné');
-        return;
-    }
-
-    $j("input#valid.button").prop("disabled", true).css("opacity", "0.5");
-
-    tinyMCE.triggerSave();
-    new Ajax.Request(path,
-    {
-        asynchronous:false,
-        method:'post',
-        parameters: Form.serialize(form_id),
-        encoding: 'UTF-8',
-        onSuccess: function(answer){
-            eval("response = "+answer.responseText);
-            if(response.status == 0){
-                eval(response.exec_js);
-               window.parent.destroyModal('form_email');
-            } else {
-                $j("input#valid.button").prop("disabled", false).css("opacity", "1");
-                alert(response.error);
-                eval(response.exec_js);
-            }
-        }
-    });
-}
-
-function validEmailFormForSendToContact(path, form_id, path2, status) {
-    tinyMCE.triggerSave();
-    new Ajax.Request(path,
-    {
-        asynchronous:false,
-        method:'post',
-        parameters: Form.serialize(form_id),
-        encoding: 'UTF-8',                       
-        onSuccess: function(answer){
-            eval("response = "+answer.responseText);
-            if(response.status == 0){
-                eval(response.exec_js);
-                changeStatusForActionSendToContact(path2, status);
-                window.parent.destroyModal('form_email');
-            } else {
-                alert(response.error);
-                eval(response.exec_js);
-            }
-        }
-    });
-}
-
-function changeStatusForActionSendToContact(path, status){
-    console.log(path);
-    new Ajax.Request(path,
-    {
-        asynchronous:false,
-        method:'post',
-        parameters: {status : status},   
-        encoding: 'UTF-8',                       
-        onSuccess : function(){
-          parent.document.getElementById('storage').click();
-        }
-    });
-}
-
 function extractEmailAdress(field, item) {
     var fullAdress = item.innerHTML;
     field.value = fullAdress.match(/\(([^)]+)\)/)[1];
@@ -268,22 +34,6 @@ function extractDestUser(field, item) {
     $j('#valid').click();
 }
 
-function validateEmail(email) { 
-    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
-    return re.test(email);
-}
- 
-function switchMode(action) {
-    var div = document.getElementById(mode+"_mode");
-    div.style.display = "block";
-    if(action == "show") {
-        div.style.display = "none"; // Hide the current div.
-        mode = (mode === 'html')? 'raw' : 'html';      // switch the mode
-        document.getElementById("is_html").value = (mode === 'html')? 'Y' : 'N'; //Update the hidden field
-        document.getElementById(mode+"_mode").style.display = "block"; // Show the other div.
-    }
-}
-
 var MyAjax = { };
 MyAjax.Autocompleter = Class.create(Ajax.Autocompleter, {
     updateChoices: function(choices) {
@@ -313,13 +63,3 @@ MyAjax.Autocompleter = Class.create(Ajax.Autocompleter, {
         }
     }
 });
-
-function clickAttachments(id){
-    $("join_file_"+id).click();
-}
-function clickAttachmentsInput(id){
-    $("join_attachment_"+id).click();
-}
-function clickAttachmentsNotes(id){
-    $("note_"+id).click();
-}
diff --git a/modules/sendmail/load_editor.php b/modules/sendmail/load_editor.php
deleted file mode 100755
index 704e49583b8..00000000000
--- a/modules/sendmail/load_editor.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php  
-?>
-<!-- tinyMCE -->
-<script type="text/javascript">
-    tinymce.baseURL = "../../node_modules/tinymce";
-    tinymce.suffix = '.min';
-    tinymce.init({
-        selector: "textarea#body_from_html",
-        statusbar : false,
-        language : "fr_FR",
-        language_url: "tools/tinymce/langs/fr_FR.js",
-        height : "150",
-        plugins: [
-                 "advlist autolink link lists charmap print preview hr",
-                 "searchreplace visualblocks visualchars code fullscreen insertdatetime nonbreaking",
-                 "save table contextmenu directionality paste textcolor"
-        ],
-        external_plugins: {
-            'bdesk_photo': "../../apps/maarch_entreprise/tools/tinymce/bdesk_photo/plugin.min.js"
-        },
-        toolbar: "undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | preview fullpage | forecolor backcolor", 
-        //save_callback : "customSave",
-        paste_data_images: true,
-        images_upload_handler: function (blobInfo, success, failure) {
-            success("data:" + blobInfo.blob().type + ";base64," + blobInfo.base64());
-        }
-    });
-
-    // Custom save callback, gets called when the contents is to be submitted
-    function customSave(id, content) {
-        alert(id + "=" + content);
-    }
-</script>
-<!-- /tinyMCE -->
diff --git a/modules/sendmail/load_toolbar_sendmail.php b/modules/sendmail/load_toolbar_sendmail.php
deleted file mode 100755
index ab27719c827..00000000000
--- a/modules/sendmail/load_toolbar_sendmail.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-/**
-* Copyright Maarch since 2008 under licence GPLv3.
-* See LICENCE.txt file at the root folder for more details.
-* This file is part of Maarch software.
-*
-*/
-
-$targetTab = $_REQUEST['targetTab'];
-$res_id    = $_REQUEST['resId'];
-$coll_id   = $_REQUEST['collId'];
-
-require_once "modules" . DIRECTORY_SEPARATOR . "sendmail" . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_modules_tools.php";
-
-$sendmail_tools = new sendmail();
-
-//Count mails
-$nbr_emails = 0;
-if ($nbr_emails == 0) {
-    $class       = 'nbResZero';
-    $style2      = 'display:none;';
-    $style       = '0.5';
-    $styleDetail = '#9AA7AB';
-} else {
-    $class       = 'nbRes';
-    $style       = '';
-    $style2      = 'display:inherit;';
-    $styleDetail = '#666';
-}
-if ($_SESSION['req'] == 'details') {
-    if ($_REQUEST['origin'] == 'parent') {
-        if ($nbr_emails == 0 && strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome')) {
-            $nav = 'sendmail_tab';
-            $style2 = 'visibility:hidden;';
-        }
-        $js .= 'parent.$(\''.$targetTab.'\').style.color=\''.$styleDetail.'\';parent.$(\''.$targetTab.'_badge\').innerHTML = \'<span id="nb_'.$targetTab.'" style="'.$style2.'font-size: 10px;" class="'.$class.'">'.$nbr_emails.'</span>\'';
-    } else {
-        if ($nbr_emails == 0 && strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome')) {
-            $nav = 'sendmail_tab';
-            $style2 = 'visibility:hidden;';
-        }
-        $js .= '$(\''.$targetTab.'\').style.color=\''.$styleDetail.'\';$(\''.$targetTab.'_badge\').innerHTML = \'<span id="nb_'.$targetTab.'" style="'.$style2.'font-size: 10px;" class="'.$class.'">'.$nbr_emails.'</span>\'';
-    }
-} else {
-    if ($_REQUEST['origin'] == 'parent') {
-        $js .= 'parent.$(\''.$targetTab.'_img\').style.opacity=\''.$style.'\';parent.$(\''.$targetTab.'_badge\').innerHTML = \'&nbsp;<sup><span id="nb_'.$targetTab.'" style="'.$style2.'" class="'.$class.'">'.$nbr_emails.'</span></sup>\'';
-    } else {
-        $js .= '$(\''.$targetTab.'_img\').style.opacity=\''.$style.'\';$(\''.$targetTab.'_badge\').innerHTML = \'&nbsp;<sup><span id="nb_'.$targetTab.'" style="'.$style2.'" class="'.$class.'">'.$nbr_emails.'</span></sup>\'';
-    }
-}
-
-echo "{status : 0, nav : '".$nav."',content : '', error : '', exec_js : '".addslashes($js)."'}";
-exit();
diff --git a/modules/sendmail/mail_form.php b/modules/sendmail/mail_form.php
deleted file mode 100755
index c7128e568db..00000000000
--- a/modules/sendmail/mail_form.php
+++ /dev/null
@@ -1,1389 +0,0 @@
-<?php
-
-/**
-* Copyright Maarch since 2008 under licence GPLv3.
-* See LICENCE.txt file at the root folder for more details.
-* This file is part of Maarch software.
-*
-*/
-
-/**
- * @brief    Script to return ajax result
- *
- * @file     sendmail_ajax_content.php
- *
- * @author   Yves Christian Kpakpo <dev@maarch.org>
- * @date     $date$
- *
- * @version  $Revision$
- * @ingroup  sendmail
- */
-
-require_once 'core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_request.php';
-require_once 'core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_security.php';
-require_once 'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id']
-    .DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR
-    .'class_indexing_searching_app.php';
-require_once 'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id']
-    .DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR
-    .'class_users.php';
-
-require_once 'modules'.DIRECTORY_SEPARATOR.'sendmail'.DIRECTORY_SEPARATOR
-    .'class'.DIRECTORY_SEPARATOR.'class_modules_tools.php';
-require_once 'modules/sendmail/class/class_email_signatures.php';
-
-$core_tools     = new core_tools();
-$request        = new request();
-$sec            = new security();
-$is             = new indexing_searching_app();
-$users_tools    = new class_users();
-$sendmail_tools = new sendmail();
-$db             = new Database();
-
-$parameters = '';
-
-if (isset($_REQUEST['mode']) && !empty($_REQUEST['mode'])) {
-    $mode = $_REQUEST['mode'];
-} else {
-    echo _ERROR_IN_SENDMAIL_FORM_GENERATION;
-    exit;
-}
-
-//Identifier of the element wich is noted
-$identifier = '';
-if (isset($_REQUEST['identifier']) && !empty($_REQUEST['identifier'])) {
-    $identifier = trim($_REQUEST['identifier']);
-}
-
-//Collection
-if (isset($_REQUEST['coll_id']) && !empty($_REQUEST['coll_id'])) {
-    $collId = trim($_REQUEST['coll_id']);
-    $parameters .= '&coll_id='.$_REQUEST['coll_id'];
-    $view   = $sec->retrieve_view_from_coll_id($collId);
-    $table  = $sec->retrieve_table_from_coll($collId);
-}
-
-//Keep some origin parameters
-if (isset($_REQUEST['size']) && !empty($_REQUEST['size'])) {
-    $parameters .= '&size='.$_REQUEST['size'];
-}
-if (isset($_REQUEST['order']) && !empty($_REQUEST['order'])) {
-    $parameters .= '&order='.$_REQUEST['order'];
-    if (isset($_REQUEST['order_field']) && !empty($_REQUEST['order_field'])) {
-        $parameters .= '&order_field='.$_REQUEST['order_field'];
-    }
-}
-if (isset($_REQUEST['what']) && !empty($_REQUEST['what'])) {
-    $parameters .= '&what='.$_REQUEST['what'];
-}
-if (isset($_REQUEST['template']) && !empty($_REQUEST['template'])) {
-    $parameters .= '&template='.$_REQUEST['template'];
-}
-if (isset($_REQUEST['start']) && !empty($_REQUEST['start'])) {
-    $parameters .= '&start='.$_REQUEST['start'];
-}
-
-if (isset($_REQUEST['formContent']) && !empty($_REQUEST['formContent'])) {
-    $formContent = $_GET['formContent'];
-} else {
-    $formContent = 'mail';
-}
-
-//Keep the origin
-$origin = '';
-if (isset($_REQUEST['origin']) && !empty($_REQUEST['origin'])) {
-    $origin = $_REQUEST['origin'];
-}
-
-//Path to actual script
-$path_to_script = $_SESSION['config']['businessappurl']
-    .'index.php?display=true&module=sendmail&page=sendmail_ajax_content&identifier='
-    .$identifier.'&origin='.$origin.'&formContent='.$formContent.$parameters;
-
-$core_tools->load_lang();
-$core_tools->load_html();
-$core_tools->load_header('', true, false);
-?>
-
-<body><?php
-$core_tools->load_js();
-
-$aUserEntities = \User\models\UserModel::getEntitiesByLogin(['login' => $_SESSION['user']['UserId']]);
-$userEntities = [];
-foreach ($aUserEntities as $value) {
-    $userEntities[] = $value['entity_id'];
-}
-
-if (empty($userEntities)) {
-    $userEntities = [''];
-}
-
-$userTemplates = \SrcCore\models\DatabaseModel::select([
-    'select'    => ['distinct t.template_id', 't.template_label', 't.template_content'],
-    'table'     => ['templates t', 'templates_association ta'],
-    'left_join' => ['t.template_id = ta.template_id'],
-    'where'     => ['t.template_target = \'sendmail\'', 'value_field in (?)'],
-    'data'      => [$userEntities],
-    'order_by'  => ['t.template_label asc']
-]);
-
-//ADD
-if ($mode == 'add') {
-    $content .= '<div style="padding: 10px;">';
-    $content .= '<form name="formEmail" id="formEmail" method="post" action="#">';
-    $content .= '<input type="hidden" value="'.$identifier.'" name="identifier" id="identifier">';
-    if ($formContent == 'messageExchange') {
-        $content .= '<input type="hidden" value="N" name="is_html" id="is_html">';
-    } else {
-        $content .= '<input type="hidden" value="Y" name="is_html" id="is_html">';
-    }
-    $content .= '<input type="hidden" value="'.$_GET['formContent'].'" name="formContent" id="formContent">';
-    $content .= '<table border="0" align="left" width="100%" cellspacing="5" ';
-    if ($formContent == 'messageExchange') {
-        $content .= 'style="margin-left: -30px;" ';
-    }
-    $content .= '>';
-    $content .= '<tr>';
-    $content .= '<td align="right" nowrap width="10%"><b>'.ucfirst(_FROM_SHORT).' </b></td><td>';
-
-    $content .= '<select name="sender_email" id="sender_email">';
-    $userEntitiesMails = array();
-
-    if ($formContent != 'messageExchange') {
-        if ($core_tools->test_service('use_mail_services', 'sendmail', false)) {
-            $userEntitiesMails = $sendmail_tools->getAttachedEntitiesMails($_SESSION['user']['UserId']);
-        }
-
-        $content .= '<option value="'.$_SESSION['user']['Mail'].'" ';
-        if (empty($userEntitiesMails)) {
-            $content .= 'selected="selected"';
-        }
-        $content .= '>'.functions::xssafe($_SESSION['user']['FirstName']).' '.functions::xssafe($_SESSION['user']['LastName']).' ('.$_SESSION['user']['Mail'].')</option>';
-        foreach ($userEntitiesMails as $key => $value) {
-            $primaryentity = explode(',', $key);
-            if ($primaryentity[0] == $_SESSION['user']['primaryentity']['id']) {
-                $content .= '<option value="'.$key.'" selected="selected" >'.$value.'</option>';
-            } else {
-                $content .= '<option value="'.$key.'" >'.$value.'</option>';
-            }
-        }
-    } else {
-        $userEntitiesMails = \Entity\models\EntityModel::getWithUserEntities(['where' => ['user_id = ?'], 'data' => [$_SESSION['user']['UserId']]]);
-        if (empty($userEntitiesMails)) {
-            $content .= '<option value="" >'._NO_SENDER.'</option>';
-        } else {
-            foreach ($userEntitiesMails as $value) {
-                if (!empty($value['business_id'])) {
-                    if ($value['entity_id'] == $_SESSION['user']['primaryentity']['id']) {
-                        $content .= '<option value="'.$value['entity_id'].'" selected="selected" >'.$value['entity_label'].' ('.$value['business_id'].')</option>';
-                    } else {
-                        $content .= '<option value="'.$value['entity_id'].'" >'.$value['entity_label'].' ('.$value['business_id'].')</option>';
-                    }
-                }
-            }
-        }
-    }
-
-    $content .= '</select>';
-    $content .= '</td>';
-    $content .= '</tr>';
-    if ($formContent != 'messageExchange') {
-        $content .= '<tr>';
-        $content .= '<td align="right" >'._EMAIL.'</label></td>';
-        $content .= '<td colspan="2"><input type="text" name="email" id="email" value="" class="emailSelect" />';
-        $content .= '<div id="adressList" class="autocomplete"></div>';
-        $content .= '<script type="text/javascript">addEmailAdress(\'email\', \'adressList\', \''
-            .$_SESSION['config']['businessappurl']
-            .'index.php?display=true&module=sendmail&page=address_autocompletion\', \'what\', \'2\');</script>';
-        $content .= ' <select name="target" id="target">'
-            .'<option id="target_target_to" value="to">'._SEND_TO_SHORT.'</option>'
-            .'<option id="target_cc" value="cc">'._COPY_TO_SHORT.'</option>'
-            .'<option id="target_cci" value="cci">'._COPY_TO_INVISIBLE_SHORT.'</option>'
-            .'</select>';
-        $content .= ' <input type="button" name="add" value="&nbsp;'._ADD
-                        .'&nbsp;" id="valid" class="button" onclick="updateAdress(\''.$path_to_script
-                        .'&mode=adress\', \'add\', document.getElementById(\'email\').value, '
-                        .'document.getElementById(\'target\').value, false, \''.(addslashes(_EMAIL_WRONG_FORMAT)).'\');" />&nbsp;';
-        $content .= '</td>';
-        $content .= '</tr>';
-    } else {
-        $content .= '<tr>';
-        $content .= '<td align="right" >Contact</label></td>';
-        $content .= '<td colspan="2"><input type="text" name="user" id="user" style="width:96%" />';
-        $content .= '<div id="destUSer" class="autocomplete"></div>';
-        $content .= '<script type="text/javascript">addDestUser(\'user\', \'destUSer\', \'index.php?display=true&module=sendmail&page=contact_autocompletion\', \'what\', \'2\');</script>';
-        $content .= ' <input type="hidden" id="valid" onclick="updateDestUser(\''.$path_to_script
-                        .'&mode=destUser\', \'add\', document.getElementById(\'user\').value, \'to\', false);" />&nbsp;';
-        $content .= '</td>';
-        $content .= '</tr>';
-    }
-    $content .= '<tr>';
-    $content .= '<td align="right" nowrap width="10%"><span class="red_asterisk"><i class="fa fa-star"></i></span> <label>'
-        ._SEND_TO_SHORT.'</label></td>';
-
-    $exp_user_id     = null;
-    $dest_user_id    = null;
-    $exp_contact_id  = null;
-    $dest_contact_id = null;
-    $db              = new Database();
-    $stmt = $db->query('SELECT res_id, category_id, address_id, exp_user_id, dest_user_id, admission_date, exp_contact_id, dest_contact_id
-                FROM res_letterbox 
-                WHERE (( exp_contact_id is not null 
-                or dest_contact_id is not null 
-                or exp_user_id is not null 
-                or dest_user_id is not null) 
-                and  res_id = ?)', array($_SESSION['doc_id']));
-    $res = $stmt->fetchObject();
-
-    $res_id = $res->res_id;
-    $category_id = $res->category_id;
-    $address_id = $res->address_id;
-    $exp_user_id = $res->exp_user_id;
-    $dest_user_id = $res->dest_user_id;
-    $admission_date = $res->admission_date;
-    $exp_contact_id = $res->exp_contact_id;
-    $dest_contact_id = $res->dest_contact_id;
-
-    if ($res_id != null) {
-        $stmt = $db->query('SELECT subject FROM res_letterbox WHERE res_id = ?', array($res_id));
-        $rawSubject = $stmt->fetchObject();
-        $subject = $rawSubject->subject;
-    }
-    if ($formContent != 'messageExchange') {
-        if ($address_id != null) {
-            $adr = \Contact\models\ContactModel::getById(['select' => ['email'], 'id' => $address_id]);
-            $adress_mail = $adr['email'];
-        } elseif ($exp_user_id != null) {
-            $stmt = $db->query('SELECT mail FROM users WHERE user_id = ?', array($exp_user_id));
-            $adr = $stmt->fetchObject();
-            $adress_mail = $adr->mail;
-        } elseif ($dest_user_id != null) {
-            $stmt = $db->query('SELECT mail FROM users WHERE user_id = ?', array($dest_user_id));
-            $adr = $stmt->fetchObject();
-            $adress_mail = $adr->mail;
-        }
-    } elseif ($address_id != null) {
-        if ($exp_contact_id != null) {
-            $contact_id = $exp_contact_id;
-        } else {
-            $contact_id = $dest_contact_id;
-        }
-        if (!empty($contact_id)) {
-            $communicationTypeModel = \Contact\models\ContactModel::getContactCommunication(['contactId' => $contact_id]);
-            $contactInfo = \Contact\models\ContactModel::getByAddressId(['select' => ['external_id'], 'addressId' => $address_id]);
-            $externalId = (array)json_decode($contactInfo['external_id']);
-        }
-    }
-    if ($adress_mail != null and $_SESSION['user']['UserId'] != $exp_user_id and $_SESSION['user']['UserId'] != $dest_user_id) {
-        if ($formContent == 'messageExchange') {
-            $_SESSION['adresses']['to'][$address_id] = $adress_mail;
-            $onclickfunction = 'updateDestUser';
-            $elementToDel = $address_id;
-            $modeUrl = 'destUser';
-            $idToDel = $address_id;
-        } else {
-            $_SESSION['adresses']['to'][0] = $adress_mail;
-            $onclickfunction = 'updateAdress';
-            $elementToDel = $adress_mail;
-            $idToDel = 0;
-            $modeUrl = 'adress';
-        }
-        $content .= '<td width="90%" colspan="2"><div name="to" id="to" class="emailInput"><div id="loading_to" style="display:none;"></div><div class="email_element" id="0_'.$adress_mail.'">'.
-        $adress_mail.'&nbsp;<div class="email_delete_button" id="'.$idToDel.'" onclick="'.$onclickfunction.'(\''.$path_to_script
-                .'&mode='.$modeUrl.'\', \'del\', \''.$elementToDel.'\', \'to\', this.id);"
-             alt=\"Supprimer\" title=\"Supprimer\">x</div></div></div>'
-        .'<div id="loading_to" style="display:none;"><i class="fa fa-spinner fa-spin" title="loading..."></div></div></td>';
-    } else {
-        $content .= '<td width="90%" colspan="2"><div name="to" id="to" class="emailInput">'
-        .'<div id="loading_to" style="display:none;"><i class="fa fa-spinner fa-spin" title="loading..."></div></div></td>';
-    }
-
-    $content .= '</tr>';
-
-    if ($formContent != 'messageExchange') {
-        $content .= '<tr><td colspan="3"><a href="javascript://" '
-            .'onclick="new Effect.toggle(\'tr_cc\', \'blind\', {delay:0.2});'
-            .'new Effect.toggle(\'tr_cci\', \'blind\', {delay:0.2});">'
-            ._SHOW_OTHER_COPY_FIELDS.'</a></td></tr>';
-        $content .= '<tr id="tr_cc" style="display:none">';
-        $content .= '<td align="right" nowrap><label>'._COPY_TO_SHORT.'</label></td>';
-        $content .= '<td colspan="2"><div name="cc" id="cc" class="emailInput">'
-            .'<div id="loading_cc" style="display:none;"><i class="fa fa-spinner fa-spin" title="loading..."></div></div></td>';
-        $content .= '</tr>';
-        $content .= '<tr id="tr_cci" style="display:none">';
-        $content .= '<td align="right" nowrap><label>'._COPY_TO_INVISIBLE_SHORT.'</label></td>';
-        $content .= '<td colspan="2"><div name="cci" id="cci" class="emailInput">'
-            .'<div id="loading_cci" style="display:none;"><i class="fa fa-spinner fa-spin" title="loading..."></div></div></td>';
-        $content .= '</tr>';
-        $content .= '<tr>';
-    }
-    $content .= '<td align="right" nowrap><span class="red_asterisk"><i class="fa fa-star"></i></span><label> '._EMAIL_OBJECT.' </label></td>';
-
-    $content .= '<td colspan="2">';
-
-    if ($category_id == 'outgoing') {
-        $content .= '<input name="object" id="object" class="emailInput" type="text" value="'.$subject.'" '.$readOnlyObject.'/>';
-    } else {
-        $content .= '<input name="object" id="object" class="emailInput" type="text" value="'._EMAIL_OBJECT_ANSWER.' '.functions::format_date_db($admission_date).'" '.$readOnlyObject.'/>';
-    }
-
-    $content .= '</td></tr>';
-    $content .= '</table><br />';
-    $content .= '<hr />';
-    $content .= '<h4 onclick="new Effect.toggle(\'joined_files\', \'blind\', {delay:0.2});'
-        .'whatIsTheDivStatus(\'joined_files\', \'divStatus_joined_files\');" '
-        .'class="categorie" style="width:90%;" onmouseover="this.style.cursor=\'pointer\';">';
-    $content .= ' <span id="divStatus_joined_files" style="color:#1C99C5;"><i class="fa fa-plus-square"></i></span>&nbsp;'
-        ._JOINED_FILES;
-    $content .= '</h4>';
-
-    $all_joined_files = "\n \n";
-    $content .= '<div id="joined_files" style="display:none">';
-    //Document
-    $joined_files = $sendmail_tools->getJoinedFiles($collId, $table, $identifier);
-    if (count($joined_files) > 0) {
-        $content .= '<br/>';
-        $content .= '<div><span style="color:rgb(22, 173, 235);font-weight:bold;">'._DOC.'</span>';
-        if ($formContent == 'messageExchange') {
-            $content .= '<span style="float: right;font-weight:bold">Principal</span>';
-        }
-        $content .= '</div>';
-        for ($i = 0; $i < count($joined_files); ++$i) {
-            //Get data
-            $id = $joined_files[$i]['id'];
-            $description = $joined_files[$i]['label'];
-            $format = $joined_files[$i]['format'];
-            $format = $joined_files[$i]['format'];
-            $mime_type = $is->get_mime_type($joined_files[$i]['format']);
-            $att_type = $joined_files[$i]['format'];
-            $filesize = $joined_files[$i]['filesize'] / 1024;
-            ($filesize > 1) ? $filesize = ceil($filesize).' Ko' : $filesize = round($filesize, 2).' Octets';
-            //Show data
-            $version = '';
-            $content .= '<table cellspacing="3" id="main_document" style="border-collapse:collapse;width:100%;"><tr>';
-            if ($joined_files[$i]['is_version'] === true) {
-                //Version
-                $version = ' - '._VERSION.' '.$joined_files[$i]['version'];
-                //Contents
-                $content .= '<th style="width:25px;border: dashed 1px grey;border-right:none;vertical-align:middle;" alt="'.$description
-                    .'" title="'.$description
-                    .'"><input type="checkbox" id="join_file_'.$id
-                    .'_V'.$joined_files[$i]['version'].'" name="join_version[]"'
-                    .' class="check" value="'
-                    .$id.'" ></th>'
-                    .'<td style="cursor:pointer;border: dashed 1px grey;border-left:none;padding:5px;text-align:left;"';
-                $content .= ' onclick="clickAttachments('.$id.')" ';
-                $content .= '><strong>'.$description.'</strong> <span style="font-size: 10px;color: grey;">('.$att_type.' - '.$filesize.')</span></</td>';
-            } else {
-                $content .= '<th style="width:25px;border: dashed 1px grey;border-right:none;vertical-align:middle;" alt="'.$description
-                    .'" title="'.$description
-                    .'"><input type="checkbox" id="join_file_'.$id.'" name="join_file[]"'
-                    .' class="check" value="'
-                    .$id.'" ></th>'
-                    .'<td style="cursor:pointer;border: dashed 1px grey;border-left:none;padding:5px;text-align:left;"';
-                $content .= ' onclick="clickAttachments('.$id.')" ';
-                $content .= '><strong>'.$description.'</strong> <span style="font-size: 10px;color: grey;">('.$att_type.' - '.$filesize.')</span></td>';
-            }
-            if ($formContent == 'messageExchange') {
-                $content .= '<td style="width:1%;text-align:center;width: 8%;margin-right: 2px;vertical-align: middle"><input type=radio name="main_exchange_doc" value="res_letterbox__'.$id.'">';
-                $content .= '</td>';
-            }
-            $content .= '</tr></table>';
-            $filename = $sendmail_tools->createFilename($description.$version, $format);
-            $all_joined_files .= $description.': '.$filename.PHP_EOL;
-        }
-    }
-
-    //Attachments
-    if ($core_tools->is_module_loaded('attachments')) {
-        $attachment_files = $sendmail_tools->getJoinedFiles($collId, $table, $identifier, true);
-        if (count($attachment_files) > 0) {
-            $content .= '<br/>';
-            $content .= '<div style="color:rgb(22, 173, 235);font-weight:bold;">'._ATTACHMENTS.'</div>';
-            $content .= '<table cellspacing="3" id="show_pj_mail" style="border-collapse:collapse;width:100%;">';
-
-            for ($i = 0; $i < count($attachment_files); ++$i) {
-                $content .= '<tr style="vertical-align:top;">';
-
-                //Get data
-                $id = $attachment_files[$i]['id'];
-                $isVersion = $attachment_files[$i]['is_version'];
-                $description = $attachment_files[$i]['label'];
-                if (strlen($description) > 73) {
-                    $description = substr($description, 0, 70);
-                    $description .= '...';
-                }
-                $format = $attachment_files[$i]['format'];
-                $mime_type = $is->get_mime_type($attachment_files[$i]['format']);
-                $att_type = $attachment_files[$i]['format'];
-                $filesize = $attachment_files[$i]['filesize'] / 1024;
-                $attachment_type = $_SESSION['attachment_types'][$attachment_files[$i]['attachment_type']];
-                $chrono = $attachment_files[$i]['identifier'];
-                $dest_society = $attachment_files[$i]['society'];
-                $dest_firstname = $attachment_files[$i]['firstname'];
-                $dest_lastname = $attachment_files[$i]['lastname'];
-                ($filesize > 1) ? $filesize = ceil($filesize).' Ko' : $filesize = $filesize.' Octets';
-
-                if ($isVersion) {
-                    $inputName = 'join_version_attachment[]';
-                    $mainExchangeDocValue = 'res_version_attachments';
-                } else {
-                    $inputName = 'join_attachment[]';
-                    $mainExchangeDocValue = 'res_attachments';
-                }
-
-                $content .= '<th style="width:25px;border: dashed 1px grey;border-right:none;vertical-align:middle;" alt="'.$description
-                    .'" title="'.$description
-                    .'"><input style="margin-left: 3px" type="checkbox" id="join_attachment_'.$i.'" name="'.$inputName.'"'
-                    .' class="check" value="'
-                    .$id.'"';
-
-                // avec la condition ci-dessous, toutes les réponses signées sont cochées lorsqu'on veut envoyer le courrier par mail
-                if ($attachment_type == _SIGNED_RESPONSE) {
-                    $content .= ' checked="checked" ';
-                }
-                $content .= '/></th>';
-
-                if (!$attachment_files[$i]['pdf_exist']) {
-                    $content .= '<td style="cursor:pointer;border: dashed 1px grey;border-left:none;padding:5px;"';
-                    $content .= ' onclick="clickAttachmentsInput('.$i.')" ';
-                } else {
-                    $content .= '<td style="border: dashed 1px grey;border-left:none;padding:5px;"';
-                }
-
-                $content .= '><span style="font-size: 10px;color: rgb(22, 173, 235);">'.$attachment_type.'</span> <span style="font-size: 10px;color: grey;">('.$att_type.' - '.$filesize.')</span><br/><strong>'.$description.'</strong>';
-                if ($attachment_files[$i]['pdf_exist'] && $format != 'pdf' && $formContent != 'messageExchange') {
-                    $content .= ' (<input style="margin: 0px" title="envoyer la version PDF" type="checkbox" id="join_attachment_'.$i.'" name="'.$inputName.'"'
-                    .' class="check" value="'
-                    .$id.'#PDF" />version pdf)';
-                }
-                $content .= '<br/>';
-                if ($chrono != '') {
-                    $content .= "<span style='font-size: 10px;color: rgb(22, 173, 235);font-style:italic;'>".$chrono.'</span> - ';
-                }
-                $content .= "<span style='font-size: 10px;color: grey;font-style:italic;'>".$dest_firstname.' '.$dest_lastname.' '.$dest_society.'</span>';
-                $content .= '</td>';
-                if ($formContent == 'messageExchange') {
-                    $content .= '<td style="width:1%;text-align:center;width: 8%;margin-right: 2px;vertical-align: middle"><input type=radio name="main_exchange_doc" value="'.$mainExchangeDocValue.'__'.$id.'">';
-                    $content .= '</td>';
-                }
-
-                $content .= '</tr>';
-
-                $filename = $sendmail_tools->createFilename($description, $format);
-            }
-            $content .= '</table>';
-        }
-    }
-    //Notes
-    if ($core_tools->is_module_loaded('notes')) {
-        require_once 'modules'.DIRECTORY_SEPARATOR.'notes'.DIRECTORY_SEPARATOR
-            .'class'.DIRECTORY_SEPARATOR
-            .'class_modules_tools.php';
-        $notes_tools = new notes();
-        $user_notes = $notes_tools->getUserNotes($identifier, $collId);
-        if (count($user_notes) > 0) {
-            $content .= '<br/>';
-            $content .= '<div style="color:rgb(22, 173, 235);font-weight:bold;">'._NOTES.'</div>';
-            $content .= '<table cellspacing="3" style="border-collapse:collapse;width:100%;">';
-            for ($i = 0; $i < count($user_notes); ++$i) {
-                $content .= '<tr style="vertical-align:top;">';
-
-                //Get data
-                $id = $user_notes[$i]['id'];
-                $noteShort = functions::xssafe($request->cut_string($user_notes[$i]['label'], 50));
-                $note = functions::xssafe($user_notes[$i]['label']);
-                $userArray = $users_tools->get_user($user_notes[$i]['author']);
-                $date = $request->dateformat($user_notes[$i]['date']);
-
-                $content .= '<th style="width:25px;border: dashed 1px grey;border-right:none;vertical-align:middle;" alt="'.$note
-                    .'" title="'.$note
-                    .'"><input type="checkbox" id="note_'.$id.'" name="notes[]"'
-                    .' class="check" value="'
-                    .$id.'"></th><td style="cursor:pointer;border: dashed 1px grey;border-left:none;padding:5px;"';
-                $content .= ' onclick="clickAttachmentsNotes('.$id.')" ';
-                $content .= 'title="'.$note.'"><span style="font-size: 10px;color: rgb(22, 173, 235);">'.$userArray['firstname'].' '.$userArray['lastname'].' </span><span style="font-size: 10px;color: grey;">'.$date.'</span><br/>'
-                    .'<strong>'.$noteShort.'</strong></td>';
-
-                $content .= '</tr>';
-            }
-
-            $content .= '</table>';
-        }
-    }
-
-    $content .= '</div>';
-    $content .= '<hr />';
-
-    $content .= '<tr>';
-    $content .= '<td><label style="padding-right:10px">'._Label_ADD_TEMPLATE_MAIL.'</label></td>';
-    $content .= '<select name="templateMail" id="templateMail" style="width:200px" '
-                .'onchange="addTemplateToEmail($(\'templateMail\').value, \''
-                            .$_SESSION['config']['businessappurl'].'index.php?display=true'
-                            .'&module=templates&page=templates_ajax_content_for_mails&id='.$_REQUEST['identifier'].'\');">';
-
-    $content .= '<option value="">'._ADD_TEMPLATE_MAIL.'</option>';
-
-    foreach ($userTemplates as $result) {
-        $content .= "<option value='".$result['template_id']."'>".$result['template_label'].'</option>';
-    }
-    $content .= '</select>';
-    $content .= '<label style="margin-left: 15%;padding-right:10px">'.'Signature : '.'</label>';
-    $emailSignaturesClass = new EmailSignatures();
-
-    $mailSignatures = $emailSignaturesClass->getForCurrentUser();
-    $content .= '<script type="text/javascript">var mailSignaturesJS = '.json_encode($mailSignatures).';</script>';
-    $content .= '<select style="width: 20%;" name="selectSignatures" id ="selectSignatures" onchange="changeSignature(this.options[this.selectedIndex], mailSignaturesJS)">';
-    $content .= '<option value="none" data-nb="-1" selected >Sans signature</option>';
-    for ($i = 0; $mailSignatures[$i]; ++$i) {
-        $content .= '<option value="'.$mailSignatures[$i]['id'].'" data-nb="'.$i.'">'.$mailSignatures[$i]['title'].'</option>';
-    }
-    $content .= '</select>';
-    $content .= '</tr></br></br>';
-
-    //Body
-
-    if ($formContent != 'messageExchange') {
-        $displayHtml = 'block';
-        $displayRaw = 'none';
-        $textAreaMode = 'html';
-    } else {
-        $displayHtml = 'none';
-        $displayRaw = 'block';
-        $textAreaMode = 'raw';
-    }
-
-    $content .= '<script type="text/javascript">var mode="'.$textAreaMode.'";</script>';
-
-    //Show/hide html VS raw mode
-    if ($formContent != 'messageExchange') {
-        $content .= '<a href="javascript://" onclick="switchMode(\'show\');"><em>'._HTML_OR_RAW.'</em></a>';
-    }
-
-    //load tinyMCE editor
-    ob_start();
-    include 'modules/sendmail/load_editor.php';
-    $content .= ob_get_clean();
-    ob_end_flush();
-    $content .= '<div id="html_mode" style="display:'.$displayHtml.'">';
-    $content .= '<textarea name="body_from_html" id="body_from_html" style="width:100%" rows="15" cols="60">'
-        ._DEFAULT_BODY.$sendmail_tools->rawToHtml($all_joined_files).'</textarea>';
-    $content .= '</div>';
-
-    //raw text arera
-    $content .= '<div id="raw_mode" style="display:'.$displayRaw.'">';
-    $content .= '<textarea name="body_from_raw" id="body_from_raw" class="emailInput" cols="60" rows="14">'
-        ._DEFAULT_BODY.$sendmail_tools->htmlToRaw($all_joined_files).'</textarea>';
-    $content .= '</div>';
-
-    //Buttons
-    $content .= '<hr style="margin-top:2px;" />';
-    $content .= '<div align="center">';
-    //Send
-    $content .= ' <input type="button" name="valid" value="&nbsp;'._SEND_EMAIL
-                .'&nbsp;" id="valid" class="button" onclick="validEmailForm(\''
-                .$path_to_script.'&mode=added&for=send\', \'formEmail\');" />&nbsp;';
-    if ($formContent != 'messageExchange') {
-        //Save
-        $content .= ' <input type="button" name="valid" value="&nbsp;'._SAVE_EMAIL
-                    .'&nbsp;" id="valid" class="button" onclick="validEmailForm(\''
-                    .$path_to_script.'&mode=added&for=save\', \'formEmail\');" />&nbsp;';
-    }
-    //Cancel
-    $content .= '<input type="button" name="cancel" id="cancel" class="button" value="'
-                ._CANCEL.'" onclick="window.parent.destroyModal(\'form_email\');"/>';
-    $content .= '</div>';
-    $content .= '</form>';
-    $content .= '</div>';
-
-//UPDATE OR TRANSFER
-} elseif ($mode == 'up' || $mode == 'transfer') {
-    if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) {
-        $id = $_REQUEST['id'];
-        $user = \User\models\UserModel::getByLogin(['login' => $_SESSION['user']['UserId'], 'select' => ['id']]);
-        $emailArray = [];
-
-        //Check if mail exists
-        if (count($emailArray) > 0) {
-            $content .= '<div>';
-            $content .= '<form name="formEmail" id="formEmail" method="post" action="#">';
-            $content .= '<input type="hidden" value="'.$identifier.'" name="identifier" id="identifier">';
-            $content .= '<input type="hidden" value="'.$id.'" name="id" id="id">';
-            $content .= '<input type="hidden" value="'.$emailArray['isHtml'].'" name="is_html" id="is_html">';
-            $content .= '<table border="0" align="left" width="100%" cellspacing="5">';
-            $content .= '<tr>';
-            $content .= '<td align="right" nowrap width="10%"><b>'.ucfirst(_FROM_SHORT).' </b></td><td>';
-
-            $userEntitiesMails = array();
-
-            if ($core_tools->test_service('use_mail_services', 'sendmail', false)) {
-                $userEntitiesMails = $sendmail_tools->getAttachedEntitiesMails($_SESSION['user']['UserId']);
-            }
-
-            $content .= '<select name="sender_email" id="sender_email">
-                            <option value="'.$_SESSION['user']['Mail'].'" ';
-
-            if ($emailArray['sender_email'] == $_SESSION['user']['Mail']) {
-                $content .= ' selected="selected" ';
-            }
-
-            $content .= '>'.functions::xssafe($_SESSION['user']['FirstName']).' '.functions::xssafe($_SESSION['user']['LastName']).' ('.$_SESSION['user']['Mail'].')</option>';
-            foreach ($userEntitiesMails as $key => $value) {
-                $content .= '<option value="'.$key.'" ';
-
-                if ($emailArray['sender_email'] == $key) {
-                    $content .= ' selected="selected" ';
-                }
-                $content .= '>'.$value.'</option>';
-            }
-            $content .= '</select>';
-            $content .= '</td>';
-
-            $content .= '</tr>';
-            $content .= '<tr>';
-            $content .= '<td align="right">'._EMAIL.'</label></td>';
-            $content .= '<td colspan="2"><input type="text" name="email" id="email" value="" class="emailSelect" />';
-            $content .= '<div id="adressList" class="autocomplete"></div>';
-            $content .= '<script type="text/javascript">addEmailAdress(\'email\', \'adressList\', \''
-                .$_SESSION['config']['businessappurl']
-                .'index.php?display=true&module=sendmail&page=address_autocompletion\', \'what\', \'2\');</script> ';
-            $content .= '<select name="target" id="target">'
-                .'<option id="target_target_to" value="to">'._SEND_TO_SHORT.'</option>'
-                .'<option id="target_cc" value="cc">'._COPY_TO_SHORT.'</option>'
-                .'<option id="target_cci" value="cci">'._COPY_TO_INVISIBLE_SHORT.'</option>'
-                .'</select>';
-            $content .= ' <input type="button" name="add" value="&nbsp;'._ADD
-                            .'&nbsp;" id="valid" class="button" onclick="updateAdress(\''.$path_to_script
-                            .'&mode=adress\', \'add\', document.getElementById(\'email\').value, '
-                            .'document.getElementById(\'target\').value, false, \''.(addslashes(_EMAIL_WRONG_FORMAT)).'\');" />&nbsp;';
-            $content .= '</td>';
-            $content .= '</tr>';
-            //To
-            if (count($emailArray['to']) > 0) {
-                $_SESSION['adresses']['to'] = array();
-                $_SESSION['adresses']['to'] = $emailArray['to'];
-            }
-            $content .= '<tr>';
-            $content .= '<td align="right" nowrap width="10%"><span class="red_asterisk"><i class="fa fa-star"></i></span> <label>'
-                ._SEND_TO_SHORT.'</label></td>';
-            $content .= '<td width="90%" colspan="2"><div name="to" id="to" class="emailInput">';
-            $content .= $sendmail_tools->updateAdressInputField($path_to_script, $_SESSION['adresses'], 'to');
-            $content .= '</div></td>';
-            $content .= '</tr>';
-            //CC
-            if (count($emailArray['cc']) > 0) {
-                $_SESSION['adresses']['cc'] = array();
-                $_SESSION['adresses']['cc'] = $emailArray['cc'];
-            }
-            $content .= '<tr><td colspan="3"><a href="javascript://" '
-                .'onclick="new Effect.toggle(\'tr_cc\', \'blind\', {delay:0.2});'
-                .'new Effect.toggle(\'tr_cci\', \'blind\', {delay:0.2});">'
-                ._SHOW_OTHER_COPY_FIELDS.'</a></td></tr>';
-            $content .= '<tr id="tr_cc" style="display:none">';
-            $content .= '<td align="right" nowrap><label>'._COPY_TO_SHORT.'</label></td>';
-            $content .= '<td colspan="2"><div name="cc" id="cc" class="emailInput">';
-            $content .= $sendmail_tools->updateAdressInputField($path_to_script, $_SESSION['adresses'], 'cc');
-            $content .= '</div></td>';
-            $content .= '</tr>';
-            //CCI
-            if (count($emailArray['cci']) > 0) {
-                $_SESSION['adresses']['cci'] = array();
-                $_SESSION['adresses']['cci'] = $emailArray['cci'];
-            }
-            $content .= '<tr id="tr_cci" style="display:none">';
-            $content .= '<td align="right" nowrap><label>'._COPY_TO_INVISIBLE_SHORT.'</label></td>';
-            $content .= '<td colspan="2"><div name="cci" id="cci" class="emailInput">';
-            $content .= $sendmail_tools->updateAdressInputField($path_to_script, $_SESSION['adresses'], 'cci');
-            $content .= '</div></td>';
-            $content .= '</tr>';
-            //Object
-            $content .= '<tr>';
-            $content .= '<td align="right" nowrap><span class="red_asterisk"><i class="fa fa-star"></i></span> <label>'._EMAIL_OBJECT.' </label></td>';
-            $content .= '<td colspan="2"><input name="object" id="object" class="emailInput" type="text" value="'
-                .(($mode == 'transfer') ? 'Fw: '.$emailArray['object'] : $emailArray['object']).'" /></td>';
-            $content .= '</tr>';
-            $content .= '</table><br />';
-            $content .= '<hr />';
-            //Show hide joined info
-            $content .= '<h4 onclick="new Effect.toggle(\'joined_files\', \'blind\', {delay:0.2});'
-                .'whatIsTheDivStatus(\'joined_files\', \'divStatus_joined_files\');" '
-                .'class="categorie" style="width:90%;" onmouseover="this.style.cursor=\'pointer\';">';
-            $content .= ' <span id="divStatus_joined_files" style="color:#1C99C5;"><i class="fa fa-plus-square"></i></span>&nbsp;'
-                ._JOINED_FILES;
-            $content .= '</h4>';
-
-            $content .= '<div id="joined_files" style="display:none">';
-            //Document
-            $joined_files = $sendmail_tools->getJoinedFiles($collId, $table, $identifier);
-            if (count($joined_files) > 0) {
-                $content .= '<br/>';
-                $content .= '<div style="color:rgb(22, 173, 235);font-weight:bold;">'._DOC.'</div>';
-                for ($i = 0; $i < count($joined_files); ++$i) {
-                    //Get data
-                    $id = $joined_files[$i]['id'];
-                    $description = $joined_files[$i]['label'];
-                    $format = $joined_files[$i]['format'];
-                    $format = $joined_files[$i]['format'];
-                    $mime_type = $is->get_mime_type($joined_files[$i]['format']);
-                    $att_type = $joined_files[$i]['format'];
-                    $filesize = $joined_files[$i]['filesize'] / 1024;
-                    ($filesize > 1) ? $filesize = ceil($filesize).' Ko' : $filesize = round($filesize, 2).' Octets';
-
-                    //Show data
-                    $version = '';
-                    $content .= '<table cellspacing="3" id="main_document" style="border-collapse:collapse;width:100%;"><tr>';
-                    if ($joined_files[$i]['is_version'] === true) {
-                        //Version
-                        $version = ' - '._VERSION.' '.$joined_files[$i]['version'];
-                        //Contents
-                        $content .= '<th style="width:25px;border: dashed 1px grey;border-right:none;vertical-align:middle;" alt="'.$description
-                            .'" title="'.$description
-                            .'"><input type="checkbox" id="join_file_'.$id
-                            .'_V'.$joined_files[$i]['version'].'" name="join_version[]"';
-                        //Checked?
-                        (in_array($id, $emailArray['version'])) ? $checked = ' checked="checked"' : $checked = '';
-                        $content .= ' '.$checked
-                            .' class="check" value="'
-                            .$id.'" ></th>'
-                            .'<td style="cursor:pointer;border: dashed 1px grey;border-left:none;padding:5px;text-align:left;"';
-                        $content .= ' onclick="clickAttachments('.$id.')" ';
-                        $content .= '><strong>'.$description.'</strong> <span style="font-size: 10px;color: grey;">('.$att_type.' - '.$filesize.')</span></</td>';
-                    } else {
-                        $content .= '<th style="width:25px;border: dashed 1px grey;border-right:none;vertical-align:middle;" alt="'.$description
-                            .'" title="'.$description
-                            .'"><input type="checkbox" id="join_file_'.$id.'" name="join_file[]"';
-                        ($emailArray['resMasterAttached'] == 'Y') ? $checked = ' checked="checked"' : $checked = '';
-                        $content .= ' '.$checked
-                            .' class="check" value="'
-                            .$id.'" ></th>'
-                            .'<td style="cursor:pointer;border: dashed 1px grey;border-left:none;padding:5px;text-align:left;"';
-                        $content .= ' onclick="clickAttachments('.$id.')" ';
-                        $content .= '><strong>'.$description.'</strong> <span style="font-size: 10px;color: grey;">('.$att_type.' - '.$filesize.')</span></td>';
-                    }
-                    $content .= '</tr></table>';
-                    //Filename
-                    $filename = $sendmail_tools->createFilename($description.$version, $format);
-                    $all_joined_files .= $description.': '.$filename.PHP_EOL;
-                }
-            }
-
-            //Attachments
-            if ($core_tools->is_module_loaded('attachments')) {
-                $attachment_files = $sendmail_tools->getJoinedFiles($collId, $table, $identifier, true);
-                if (count($attachment_files) > 0) {
-                    $content .= '<br/>';
-                    $content .= '<div style="color:rgb(22, 173, 235);font-weight:bold;">'._ATTACHMENTS.'</div>';
-                    $content .= '<table cellspacing="3" id="show_pj_mail" style="border-collapse:collapse;width:100%;">';
-                    for ($i = 0; $i < count($attachment_files); ++$i) {
-                        $content .= '<tr style="vertical-align:top;">';
-
-                        //Get data
-                        $id = $attachment_files[$i]['id'];
-                        $isVersion = $attachment_files[$i]['is_version'];
-                        $id_converted = $attachment_files[$i]['converted_pdf'];
-                        $description = $attachment_files[$i]['label'];
-                        if (strlen($description) > 73) {
-                            $description = substr($description, 0, 70);
-                            $description .= '...';
-                        }
-                        $format = $attachment_files[$i]['format'];
-                        $mime_type = $is->get_mime_type($attachment_files[$i]['format']);
-                        $att_type = $attachment_files[$i]['format'];
-                        $filesize = $attachment_files[$i]['filesize'] / 1024;
-                        $attachment_type = $_SESSION['attachment_types'][$attachment_files[$i]['attachment_type']];
-                        $chrono = $attachment_files[$i]['identifier'];
-                        $dest_society = $attachment_files[$i]['society'];
-                        $dest_firstname = $attachment_files[$i]['firstname'];
-                        $dest_lastname = $attachment_files[$i]['lastname'];
-                        ($filesize > 1) ? $filesize = ceil($filesize).' Ko' : $filesize = $filesize.' Octets';
-
-                        if ($isVersion) {
-                            $inputName = 'join_version_attachment[]';
-                        } else {
-                            $inputName = 'join_attachment[]';
-                        }
-
-                        $content .= '<th style="width:25px;border: dashed 1px grey;border-right:none;vertical-align:middle;" alt="'.$description
-                            .'" title="'.$description
-                            .'"><input style="margin-left: 3px" type="checkbox" id="join_attachment_'.$id.'" name="'.$inputName.'"';
-
-                        $checked = '';
-                        if (($isVersion && in_array($id, $emailArray['attachments_version'])) || (!$isVersion && in_array($id, $emailArray['attachments']))) {
-                            $checked = ' checked="checked"';
-                        }
-
-                        $content .= ' '.$checked
-                            .' class="check" value="'
-                            .$id.'"';
-
-                        //avec la condition ci-dessous, toutes les réponses signées sont cochées lorsqu'on veut envoyer le courrier par mail
-                        if ($attachment_type == _SIGNED_RESPONSE && $mode == 'transfer') {
-                            $content .= ' checked="checked" ';
-                        }
-                        $content .= '/></th>';
-
-                        if (!$id_converted) {
-                            $content .= '<td style="cursor:pointer;border: dashed 1px grey;border-left:none;padding:5px;"';
-                            $content .= ' onclick="clickAttachmentsInput('.$id.')" ';
-                        } else {
-                            $content .= '<td style="border: dashed 1px grey;border-left:none;padding:5px;"';
-                        }
-
-                        $content .= '><span style="font-size: 10px;color: rgb(22, 173, 235);">'.$attachment_type.'</span> <span style="font-size: 10px;color: grey;">('.$att_type.' - '.$filesize.')</span><br/><strong>'.$description.'</strong>';
-                        if ($id_converted) {
-                            $content .= ' (<input style="margin: 0px" title="envoyer la version PDF" type="checkbox" id="join_attachment_'.$id_converted.'" name="join_attachment[]"'
-                            .' class="check"';
-
-                            (in_array($id_converted, $emailArray['attachments'])) ? $checked = ' checked="checked"' : $checked = '';
-                            $content .= ' '.$checked
-                            .' value="'
-                            .$id_converted.'" />version pdf)';
-                        }
-                        $content .= "<br/><span style='font-size: 10px;color: rgb(22, 173, 235);font-style:italic;'>";
-                        if ($chrono != '') {
-                            $content .= "<span style='font-size: 10px;color: rgb(22, 173, 235);font-style:italic;'>".$chrono.'</span> - ';
-                        }
-                        $content .= "<span style='font-size: 10px;color: grey;font-style:italic;'>".$dest_firstname.' '.$dest_lastname.' '.$dest_society.'</span>';
-                        $content .= '</td>';
-
-                        $content .= '</tr>';
-
-                        //Filename
-                        $filename = $sendmail_tools->createFilename($description, $format);
-                        $all_joined_files .= $description.': '.$filename.PHP_EOL;
-                    }
-                    $content .= '</table>';
-                }
-            }
-
-            //Notes
-            if ($core_tools->is_module_loaded('notes')) {
-                require_once 'modules'.DIRECTORY_SEPARATOR.'notes'.DIRECTORY_SEPARATOR
-                    .'class'.DIRECTORY_SEPARATOR
-                    .'class_modules_tools.php';
-                $notes_tools = new notes();
-                $user_notes = $notes_tools->getUserNotes($identifier, $collId);
-                if (count($user_notes) > 0) {
-                    $content .= '<br/>';
-                    $content .= '<div style="color:rgb(22, 173, 235);font-weight:bold;">'._NOTES.'</div>';
-                    $content .= '<table cellspacing="3" style="border-collapse:collapse;width:100%;">';
-                    for ($i = 0; $i < count($user_notes); ++$i) {
-                        $content .= '<tr style="vertical-align:top;">';
-
-                        //Get data
-                        $id = $user_notes[$i]['id'];
-                        $noteShort = functions::xssafe($request->cut_string($user_notes[$i]['label'], 50));
-                        $note = functions::xssafe($user_notes[$i]['label']);
-                        $userArray = $users_tools->get_user($user_notes[$i]['author']);
-                        $date = $request->dateformat($user_notes[$i]['date']);
-
-                        $content .= '<th style="width:25px;border: dashed 1px grey;border-right:none;vertical-align:middle;" alt="'.$note
-                            .'" title="'.$note
-                            .'"><input type="checkbox" id="note_'.$id.'" name="notes[]"';
-
-                        if (!empty($emailArray['notes']) && in_array($id, $emailArray['notes'])) {
-                            $checked = ' checked="checked"' ;
-                        } else {
-                            $checked = '';
-                        }
-
-                        $content .= ' '.$checked
-                            .' class="check" value="'
-                            .$id.'"></th><td style="cursor:pointer;border: dashed 1px grey;border-left:none;padding:5px;"';
-                        $content .= ' onclick="clickAttachmentsNotes('.$id.')" ';
-                        $content .= 'title="'.$note.'"><span style="font-size: 10px;color: rgb(22, 173, 235);">'.$userArray['firstname'].' '.$userArray['lastname'].' </span><span style="font-size: 10px;color: grey;">'.$date.'</span><br/>'
-                            .'<strong>'.$noteShort.'</strong></td>';
-
-                        $content .= '</tr>';
-                    }
-
-                    $content .= '</table>';
-                    //Filename
-                    $filename = 'notes_'.$identifier.'_'.date('dmY').'.html';
-                    $all_joined_files .= _NOTES.': '.$filename.PHP_EOL;
-                }
-            }
-            $content .= '</div>';
-            $content .= '<hr />';
-
-            $content .= '<tr>';
-            $content .= '<td><label style="padding-right:10px">'._Label_ADD_TEMPLATE_MAIL.'</label></td>';
-            $content .= '<select name="templateMail" id="templateMail" style="width:200px" '
-                        .'onchange="addTemplateToEmail($(\'templateMail\').value, \''
-                                    .$_SESSION['config']['businessappurl'].'index.php?display=true'
-                                    .'&module=templates&page=templates_ajax_content_for_mails&id='.$_REQUEST['identifier'].'\');">';
-
-            $content .= '<option value="">'._ADD_TEMPLATE_MAIL.'</option>';
-
-            foreach ($userTemplates as $result) {
-                $content .= "<option value='".$result['template_id']."'>".$result['template_label'].'</option>';
-            }
-            $content .= '</select>';
-            $content .= '<label style="margin-left: 15%;padding-right:10px">'.'Signature de mail'.'</label>';
-            $emailSignaturesClass = new EmailSignatures();
-
-            $mailSignatures = $emailSignaturesClass->getForCurrentUser();
-            $content .= '<script type="text/javascript">var mailSignaturesJS = '.json_encode($mailSignatures).';</script>';
-            $content .= '<select style="width: 20%;" name="selectSignatures" id ="selectSignatures" onchange="changeSignature(this.options[this.selectedIndex], mailSignaturesJS)">';
-            $content .= '<option value="none" data-nb="-1" selected >Sans signature</option>';
-            for ($i = 0; $mailSignatures[$i]; ++$i) {
-                $content .= '<option value="'.$mailSignatures[$i]['id'].'" data-nb="'.$i.'">'.$mailSignatures[$i]['title'].'</option>';
-            }
-            $content .= '</select>';
-            $content .= '</tr></br></br>';
-
-            //Body
-            if ($emailArray['isHtml'] == 'Y') {
-                $displayRaw = 'none';
-                $displayHtml = 'block';
-                $textAreaMode = 'html';
-            } else {
-                $displayRaw = 'block';
-                $displayHtml = 'none';
-                $textAreaMode = 'raw';
-            }
-            $content .= '<script type="text/javascript">var mode="'.$textAreaMode.'";</script>';
-            //Show/hide html VS raw mode
-            $content .= '<a href="javascript://" onclick="switchMode(\'show\');"><em>'._HTML_OR_RAW.'</em></a>';
-
-            //load tinyMCE editor
-            ob_start();
-            include 'modules/sendmail/load_editor.php';
-            $content .= ob_get_clean();
-            ob_end_flush();
-            $content .= '<div id="html_mode" style="display:'.$displayHtml.'">';
-            $content .= '<textarea name="body_from_html" id="body_from_html" style="width:100%" rows="15" cols="60">'
-                .$sendmail_tools->rawToHtml($emailArray['body']).'</textarea>';
-            $content .= '</div>';
-
-            //raw textarera
-            $content .= '<div id="raw_mode" style="display:'.$displayRaw.'">';
-            $content .= '<textarea name="body_from_raw" id="body_from_raw" class="emailInput" cols="60" rows="14">'
-                .$sendmail_tools->htmlToRaw($emailArray['body']).'</textarea>';
-            $content .= '</div>';
-
-            //Buttons
-            $content .= '<hr style="margin-top:5px;margin-bottom:2px;" />';
-            $content .= '<div align="center">';
-
-            if ($emailArray['status'] != 'SENT') {
-                //Send button
-                $content .= ' <input type="button" name="valid" value="&nbsp;'._SEND_EMAIL
-                    .'&nbsp;" id="valid" class="button" onclick="validEmailForm(\''
-                    .$path_to_script.'&mode=updated&for=send\', \'formEmail\');" />&nbsp;';
-                //Save button
-                $content .= ' <input type="button" name="valid" value="&nbsp;'._SAVE_EMAIL
-                    .'&nbsp;" id="valid" class="button" onclick="validEmailForm(\''
-                    .$path_to_script.'&mode=updated&for=save\', \'formEmail\');" />&nbsp;';
-                //Delete button
-                $content .= ' <input type="button" name="valid" value="&nbsp;'._REMOVE_EMAIL
-                    .'&nbsp;" id="valid" class="button" onclick="if(confirm(\''
-                    ._REALLY_DELETE.': '.$request->cut_string($emailArray['object'], 50)
-                    .' ?\')) validEmailForm(\''.$path_to_script
-                    .'&mode=del\', \'formEmail\');" />&nbsp;';
-            } else {
-                //Re-send button
-                $content .= ' <input type="button" name="valid" value="&nbsp;'._RESEND_EMAIL
-                    .'&nbsp;" id="valid" class="button" onclick="validEmailForm(\''
-                    .$path_to_script.'&mode=added&for=send\', \'formEmail\');" />&nbsp;';
-                //Save copy button
-                $content .= ' <input type="button" name="valid" value="&nbsp;'._SAVE_COPY_EMAIL
-                    .'&nbsp;" id="valid" class="button" onclick="validEmailForm(\''
-                    .$path_to_script.'&mode=added&for=save\', \'formEmail\');" />&nbsp;';
-            }
-
-            //Cancel button
-            $content .= '<input type="button" name="cancel" id="cancel" class="button" value="'
-                        ._CANCEL.'" onclick="window.parent.destroyModal(\'form_email\');"/>';
-            $content .= '</div>';
-            $content .= '</form>';
-            $content .= '</div>';
-        } else {
-            $content = $request->wash_html($id.': '._EMAIL_DONT_EXIST.'!', 'NONE');
-        }
-    } else {
-        $content = $request->wash_html(_ID.' '._IS_EMPTY.'!', 'NONE');
-    }
-} elseif ($mode == 'read') {
-    if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) {
-        $id = $_REQUEST['id'];
-        if ($formContent == 'messageExchange') {
-        } else {
-            $user = \User\models\UserModel::getByLogin(['login' => $_SESSION['user']['UserId'], 'select' => ['id']]);
-            $emailArray = [];
-        }
-
-        //Check if mail exists
-        if (count($emailArray) > 0 && $emailArray['type'] != 'ArchiveTransferReplySent') {
-            $content .= '<div>';
-            $content .= '<table border="0" align="left" width="100%" cellspacing="5">';
-            $content .= '<tr>';
-
-            $content .= '<td width="10%" align="right" nowrap><b>'.ucfirst(_FROM_SHORT).' </b></td><td width="90%" colspan="2">';
-
-            if ($formContent == 'messageExchange') {
-                $content .= $emailArray['from'];
-            } else {
-                $usermailArray = $users_tools->get_user($emailArray['userId']);
-                $mailEntities = $sendmail_tools->getAttachedEntitiesMails();
-
-                if (in_array($emailArray['sender_email'], array_keys($mailEntities))) {
-                    $content .= $mailEntities[$emailArray['sender_email']];
-                } elseif ($emailArray['sender_email'] == $usermailArray['mail']) {
-                    $content .= $usermailArray['firstname'].' '.$usermailArray['lastname'].' ('.$emailArray['sender_email'].')';
-                } else {
-                    $content .= $sendmail_tools->explodeSenderEmail($emailArray['sender_email']);
-                }
-            }
-
-            $content .= '<br/></td>';
-            $content .= '</tr>';
-            //To
-            if (!empty($emailArray['to']) && count($emailArray['to']) > 0) {
-                $_SESSION['adresses']['to'] = array();
-                $_SESSION['adresses']['to'] = $emailArray['to'];
-            }
-            $content .= '<tr>';
-            $content .= '<td align="right" nowrap width="10%"><span class="red_asterisk"><i class="fa fa-star"></i></span> <label>'
-                ._SEND_TO_SHORT.'</label></td>';
-            $content .= '<td width="90%" colspan="2"><div name="to" id="to" class="emailInput">';
-            if ($formContent == 'messageExchange') {
-                $content .= $emailArray['contactInfo'];
-            } else {
-                $content .= $sendmail_tools->updateAdressInputField($path_to_script, $_SESSION['adresses'], 'to', true);
-            }
-            $content .= '</div></td>';
-            $content .= '</tr>';
-            if ($formContent == 'messageExchange') {
-                $content .= '<tr><td align="right" nowrap width="10%"></td><td width="90%">'._COMMUNICATION_TYPE.' : '.$emailArray['communicationType'].'</td></tr>';
-            } else {
-                //CC
-                if (!empty($emailArray['cc']) && count($emailArray['cc']) > 0) {
-                    $_SESSION['adresses']['cc'] = array();
-                    $_SESSION['adresses']['cc'] = $emailArray['cc'];
-                }
-                $content .= '<tr>';
-                $content .= '<td align="right" nowrap><label>'._COPY_TO_SHORT.'</label></td>';
-                $content .= '<td colspan="2"><div name="cc" id="cc" class="emailInput">';
-                $content .= $sendmail_tools->updateAdressInputField($path_to_script, $_SESSION['adresses'], 'cc', true);
-                $content .= '</div></td>';
-                $content .= '</tr>';
-                //CCI
-                if (!empty($emailArray['cci']) && count($emailArray['cci']) > 0) {
-                    $_SESSION['adresses']['cci'] = array();
-                    $_SESSION['adresses']['cci'] = $emailArray['cci'];
-                }
-                $content .= '<tr>';
-                $content .= '<td align="right" nowrap><label>'._COPY_TO_INVISIBLE_SHORT.'</label></td>';
-                $content .= '<td colspan="2"><div name="cci" id="cci" class="emailInput">';
-                $content .= $sendmail_tools->updateAdressInputField($path_to_script, $_SESSION['adresses'], 'cci', true);
-                $content .= '</div></td>';
-                $content .= '</tr>';
-            }
-            //Object
-            $content .= '<tr>';
-            $content .= '<td align="right" nowrap><span class="red_asterisk"><i class="fa fa-star"></i></span> <label>'._EMAIL_OBJECT.' </label></td>';
-            $content .= '<td colspan="2"><div name="object" id="object" class="emailInput">'
-                .$emailArray['object'].'</div></td>';
-            $content .= '</tr>';
-            if ($formContent == 'messageExchange') {
-                $content .= '<tr><td width="10%" align="right" nowrap>'._IDENTIFIER.'</td><td><div class="emailInput">'.$emailArray['reference'].'</div></td></tr>';
-            }
-            $content .= '</table><br />';
-
-            $content .= '<hr />';
-            //Show hide joined info
-            $content .= '<h4 onclick="new Effect.toggle(\'joined_files\', \'blind\', {delay:0.2});'
-                .'whatIsTheDivStatus(\'joined_files\', \'divStatus_joined_files\');" '
-                .'class="categorie" style="width:90%;" onmouseover="this.style.cursor=\'pointer\';">';
-            $content .= ' <span id="divStatus_joined_files" style="color:#1C99C5;"><i class="fa fa-plus-square"></i></span>&nbsp;'
-                ._JOINED_FILES;
-            $content .= '</h4>';
-
-            $content .= '<div id="joined_files" style="display:none">';
-            //Document
-            $joined_files = $sendmail_tools->getJoinedFiles($collId, $table, $identifier);
-            if (count($joined_files) > 0) {
-                $content .= '<br/>';
-                $content .= '<div><span style="color:rgb(22, 173, 235);font-weight:bold;">'._DOC.'</span>';
-                if ($formContent == 'messageExchange') {
-                    $content .= '<span style="float: right;font-weight:bold">Principal</span>';
-                }
-                $content .= '</div>';
-                for ($i = 0; $i < count($joined_files); ++$i) {
-                    //Get data
-                    $id          = $joined_files[$i]['id'];
-                    $description = $joined_files[$i]['label'];
-                    $format      = $joined_files[$i]['format'];
-                    $format      = $joined_files[$i]['format'];
-                    $mime_type   = $is->get_mime_type($joined_files[$i]['format']);
-                    $att_type    = $joined_files[$i]['format'];
-                    $filesize    = $joined_files[$i]['filesize'] / 1024;
-                    ($filesize > 1) ? $filesize = ceil($filesize).' Ko' : $filesize = round($filesize, 2).' Octets';
-
-                    //Show data
-                    $version = '';
-                    $content .= '<table cellspacing="3" id="main_document" style="border-collapse:collapse;width:100%;"><tr>';
-                    if ($joined_files[$i]['is_version'] === true) {
-                        //Version
-                        $version = ' - '._VERSION.' '.$joined_files[$i]['version'];
-                        //Contents
-                        $content .= '<th style="width:25px;border: dashed 1px grey;border-right:none;vertical-align:middle;" alt="'.$description
-                            .'" title="'.$description
-                            .'"><input type="checkbox" disabled="disabled" id="join_file_'.$id
-                            .'_V'.$joined_files[$i]['version'].'" name="join_version[]"';
-                        //Checked?
-                        (in_array($id, $emailArray['version'])) ? $checked = ' checked="checked"' : $checked = '';
-                        $content .= ' '.$checked
-                            .' class="check" value="'
-                            .$id.'" ></th>'
-                            .'<td style="cursor:pointer;border: dashed 1px grey;border-left:none;padding:5px;text-align:left;"';
-                        $content .= ' onclick="clickAttachments('.$id.')" ';
-                        $content .= '><strong>'.$description.'</strong> <span style="font-size: 10px;color: grey;">('.$att_type.' - '.$filesize.')</span></</td>';
-                    } else {
-                        $content .= '<th style="width:25px;border: dashed 1px grey;border-right:none;vertical-align:middle;" alt="'.$description
-                            .'" title="'.$description
-                            .'"><input type="checkbox" disabled="disabled" id="join_file_'.$id.'" name="join_file[]"';
-                        ($emailArray['resMasterAttached'] == 'Y') ? $checked = ' checked="checked"' : $checked = '';
-                        $content .= ' '.$checked
-                            .' class="check" value="'
-                            .$id.'" ></th>'
-                            .'<td style="cursor:pointer;border: dashed 1px grey;border-left:none;padding:5px;text-align:left;"';
-                        $content .= ' onclick="clickAttachments('.$id.')" ';
-                        $content .= '><strong>'.$description.'</strong> <span style="font-size: 10px;color: grey;">('.$att_type.' - '.$filesize.')</span></td>';
-                    }
-                    if ($formContent == 'messageExchange') {
-                        $content .= '<td style="width:1%;text-align:center;width: 8%;margin-right: 2px;vertical-align: middle"><input type=radio name="main_exchange_doc" disabled ';
-                        if ($emailArray['disposition']->tablename == 'res_letterbox' && $emailArray['disposition']->res_id == $id) {
-                            $content .= ' checked ';
-                        }
-                        $content .= '></td>';
-                    }
-                    $content .= '</tr></table>';
-                    //Filename
-                    $filename = $sendmail_tools->createFilename($description.$version, $format);
-                    $all_joined_files .= $description.': '.$filename.PHP_EOL;
-                }
-            }
-
-            //Attachments
-            if ($core_tools->is_module_loaded('attachments')) {
-                $attachment_files = $sendmail_tools->getJoinedFiles($collId, $table, $identifier, true);
-                if (count($attachment_files) > 0) {
-                    $content .= '<br/>';
-                    $content .= '<div style="color:rgb(22, 173, 235);font-weight:bold;">'._ATTACHMENTS.'</div>';
-                    $content .= '<table cellspacing="3" id="show_pj_mail" style="border-collapse:collapse;width:100%;">';
-                    for ($i = 0; $i < count($attachment_files); ++$i) {
-                        $content .= '<tr style="vertical-align:top;">';
-
-                        //Get data
-                        $id = $attachment_files[$i]['id'];
-                        $isVersion = $attachment_files[$i]['is_version'];
-                        $id_converted = $attachment_files[$i]['converted_pdf'];
-                        $description = $attachment_files[$i]['label'];
-                        if (strlen($description) > 73) {
-                            $description = substr($description, 0, 70);
-                            $description .= '...';
-                        }
-                        $format = $attachment_files[$i]['format'];
-                        $mime_type = $is->get_mime_type($attachment_files[$i]['format']);
-                        $att_type = $attachment_files[$i]['format'];
-                        $filesize = $attachment_files[$i]['filesize'] / 1024;
-                        $attachment_type = $_SESSION['attachment_types'][$attachment_files[$i]['attachment_type']];
-                        $chrono = $attachment_files[$i]['identifier'];
-                        $dest_society = $attachment_files[$i]['society'];
-                        $dest_firstname = $attachment_files[$i]['firstname'];
-                        $dest_lastname = $attachment_files[$i]['lastname'];
-                        ($filesize > 1) ? $filesize = ceil($filesize).' Ko' : $filesize = $filesize.' Octets';
-
-                        if ($isVersion) {
-                            $inputName = 'join_version_attachment[]';
-                        } else {
-                            $inputName = 'join_attachment[]';
-                        }
-
-                        $content .= '<th style="width:25px;border: dashed 1px grey;border-right:none;vertical-align:middle;" alt="'.$description
-                            .'" title="'.$description
-                            .'"><input style="margin-left: 3px" disabled="disabled" type="checkbox" id="join_attachment_'.$id.'" name="'.$inputName.'"';
-
-                        $checked = '';
-                        if (($isVersion && in_array($id, $emailArray['attachments_version'])) || (!$isVersion && in_array($id, $emailArray['attachments']))) {
-                            $checked = ' checked="checked"';
-                        }
-
-                        $content .= ' '.$checked
-                            .' class="check" value="'
-                            .$id.'"';
-
-                        $content .= '/></th>';
-
-                        if (!$id_converted) {
-                            $content .= '<td style="cursor:pointer;border: dashed 1px grey;border-left:none;padding:5px;"';
-                            $content .= ' onclick="clickAttachmentsInput('.$id.')" ';
-                        } else {
-                            $content .= '<td style="border: dashed 1px grey;border-left:none;padding:5px;"';
-                        }
-
-                        $content .= '><span style="font-size: 10px;color: rgb(22, 173, 235);">'.$attachment_type.'</span> <span style="font-size: 10px;color: grey;">('.$att_type.' - '.$filesize.')</span><br/><strong>'.$description.'</strong>';
-                        if ($id_converted) {
-                            $content .= ' (<input style="margin: 0px" title="envoyer la version PDF" disabled="disabled" type="checkbox" id="join_attachment_'.$id_converted.'" name="join_attachment[]"'
-                            .' class="check"';
-
-                            (in_array($id_converted, $emailArray['attachments'])) ? $checked = ' checked="checked"' : $checked = '';
-                            $content .= ' '.$checked
-                            .' value="'
-                            .$id_converted.'" />version pdf)';
-                        }
-                        $content .= "<br/><span style='font-size: 10px;color: rgb(22, 173, 235);font-style:italic;'>";
-                        if ($chrono != '') {
-                            $content .= "<span style='font-size: 10px;color: rgb(22, 173, 235);font-style:italic;'>".$chrono.'</span> - ';
-                        }
-                        $content .= "<span style='font-size: 10px;color: grey;font-style:italic;'>".$dest_firstname.' '.$dest_lastname.' '.$dest_society.'</span>';
-                        $content .= '</td>';
-                        if ($formContent == 'messageExchange') {
-                            $content .= '<td style="width:1%;text-align:center;width: 8%;margin-right: 2px;vertical-align: middle"><input type=radio name="main_exchange_doc" disabled ';
-                            if ($emailArray['disposition']->res_id == $id && ($emailArray['disposition']->tablename == 'res_attachments' && !$isVersion)
-                                || ($emailArray['disposition']->tablename == 'res_version_attachments' && $isVersion)) {
-                                $content .= ' checked ';
-                            }
-                            $content .= '></td>';
-                        }
-                        $content .= '</tr>';
-
-                        //Filename
-                        $filename = $sendmail_tools->createFilename($description, $format);
-                        $all_joined_files .= $description.': '.$filename.PHP_EOL;
-                    }
-                    $content .= '</table>';
-                }
-            }
-
-            //Notes
-            if ($core_tools->is_module_loaded('notes')) {
-                require_once 'modules'.DIRECTORY_SEPARATOR.'notes'.DIRECTORY_SEPARATOR
-                    .'class'.DIRECTORY_SEPARATOR.'class_modules_tools.php';
-                $notes_tools = new notes();
-                $user_notes = $notes_tools->getUserNotes($identifier, $collId);
-                if (count($user_notes) > 0) {
-                    $content .= '<br/>';
-                    $content .= '<div style="color:rgb(22, 173, 235);font-weight:bold;">'._NOTES.'</div>';
-                    $content .= '<table cellspacing="3" style="border-collapse:collapse;width:100%;">';
-                    for ($i = 0; $i < count($user_notes); ++$i) {
-                        $content .= '<tr style="vertical-align:top;">';
-
-                        //Get data
-                        $id = $user_notes[$i]['id'];
-                        $noteShort = functions::xssafe($request->cut_string($user_notes[$i]['label'], 50));
-                        $note = functions::xssafe($user_notes[$i]['label']);
-                        $userArray = $users_tools->get_user($user_notes[$i]['author']);
-                        $date = $request->dateformat($user_notes[$i]['date']);
-
-                        $content .= '<th style="width:25px;border: dashed 1px grey;border-right:none;vertical-align:middle;" alt="'.$note
-                            .'" title="'.$note
-                            .'"><input type="checkbox" disabled="disabled" id="note_'.$id.'" name="notes[]"';
-
-                        if (!empty($emailArray['notes']) && in_array($id, $emailArray['notes'])) {
-                            $checked = ' checked="checked"' ;
-                        } else {
-                            $checked = '';
-                        }
-
-                        $content .= ' '.$checked
-                            .' class="check" value="'
-                            .$id.'"></th><td style="cursor:pointer;border: dashed 1px grey;border-left:none;padding:5px;"';
-                        $content .= ' onclick="clickAttachmentsNotes('.$id.')" ';
-                        $content .= 'title="'.$note.'"><span style="font-size: 10px;color: rgb(22, 173, 235);">'.$userArray['firstname'].' '.$userArray['lastname'].' </span><span style="font-size: 10px;color: grey;">'.$date.'</span><br/>'
-                            .'<strong>'.$noteShort.'</strong></td>';
-
-                        $content .= '</tr>';
-                    }
-
-                    $content .= '</table>';
-                    //Filename
-                    $filename = 'notes_'.$identifier.'_'.date('dmY').'.html';
-                    $all_joined_files .= _NOTES.': '.$filename.PHP_EOL;
-                }
-            }
-            $content .= '</div>';
-            $content .= '<hr />';
-            //Body (html or raw mode)
-            if ($emailArray['isHtml'] == 'Y') {
-                $content .= '<script type="text/javascript">var mode="html";</script>';
-                //load tinyMCE editor
-                ob_start();
-                include 'modules/sendmail/load_editor.php';
-                $content .= ob_get_clean();
-                ob_end_flush();
-                $content .= '<div id="html_mode" style="display:block">';
-                $content .= '<textarea name="body_from_html" id="body_from_html" style="width:100%" '
-                    .'rows="15" cols="60" readonly="readonly">'
-                    .$sendmail_tools->rawToHtml($emailArray['body']).'</textarea>';
-                $content .= '</div>';
-            } else {
-                $content .= '<script type="text/javascript">var mode="raw";</script>';
-                //raw textarera
-                $content .= '<div id="raw_mode" style="display:block">';
-                $content .= '<textarea name="body_from_raw" id="body_from_raw" class="emailInput" '
-                    .'cols="60" rows="14" readonly="readonly">'
-                    .$sendmail_tools->htmlToRaw($emailArray['body']).'</textarea>';
-                $content .= '</div>';
-            }
-
-            if (!empty($emailArray['receptionDate'])) {
-                $content .= '<br><hr style="margin-top:2px;" />';
-                $content .= '<b>'._RECEPTION_DATE.' : </b>'.$emailArray['receptionDate'].'<br><br>';
-                $content .= '<div onclick="new Effect.toggle(\'operationCommentsDiv\', \'blind\', {delay:0.2});" onmouseover="this.style.cursor=\'pointer\';">
-                                <span id="divStatus_operationComments" style="color:#1C99C5;"><i class="fa fa-plus-square"></i></span>&nbsp;'._MORE_INFORMATIONS.'
-                            </div>';
-                $content .= '<div id="operationCommentsDiv" style="display:none">';
-                foreach ($emailArray['operationComments'] as $value) {
-                    $content .= $value->value.'<br>';
-                }
-            }
-            if (!empty($emailArray['operationDate'])) {
-                $content .= '</div><br>';
-                $content .= '<b>'._OPERATION_DATE.' : </b>'.$emailArray['operationDate'].'<br><br>';
-            }
-            if (!empty($emailArray['messageReview'])) {
-                $content .= '<h4>'._M2M_FOLLOWUP_REQUEST.'</h4>';
-                $content .= '<div>';
-                foreach ($emailArray['messageReview'] as $value) {
-                    $content .= $value.'<br>';
-                }
-                $content .= '</div>';
-            }
-            //Buttons
-            $content .= '<br><hr style="margin-top:2px;" />';
-            $content .= '<div align="center">';
-            //Close button
-            $content .= '<input type="button" name="cancel" id="cancel" class="button" value="'
-                            ._CLOSE.'" onclick="window.parent.destroyModal(\'form_email\');"/>';
-            $content .= '</div>';
-            $content .= '</div>';
-        } elseif ($emailArray['type'] == 'ArchiveTransferReplySent') {
-            $content .= '<b>'._REPLY_RESPONSE_SENT.' : </b>'.$emailArray['creationDate'].'<br><br>';
-
-            foreach ($emailArray['operationComments'] as $value) {
-                $content .= $value->value.'<br>';
-            }
-
-            //Buttons
-            $content .= '<br><hr style="margin-top:2px;" />';
-            $content .= '<div align="center">';
-            //Close button
-            $content .= '<input type="button" name="cancel" id="cancel" class="button" value="'
-                        ._CLOSE.'" onclick="window.parent.destroyModal(\'form_email\');"/>';
-            $content .= '</div>';
-        } else {
-            $content = $request->wash_html($id.': '._EMAIL_DONT_EXIST.'!', 'NONE');
-        }
-    } else {
-        $content = $request->wash_html(_ID.' '._IS_EMPTY.'!', 'NONE');
-    }
-}
-echo $content;
-
-?>
-</body>
-
-</html>
diff --git a/modules/sendmail/sendmail.php b/modules/sendmail/sendmail.php
deleted file mode 100755
index 0abda462117..00000000000
--- a/modules/sendmail/sendmail.php
+++ /dev/null
@@ -1,366 +0,0 @@
-<?php
-/**
-* Copyright Maarch since 2008 under licence GPLv3.
-* See LICENCE.txt file at the root folder for more details.
-* This file is part of Maarch software.
-
-* @brief   sendmail.php
-* @author  dev <dev@maarch.org>
-* @ingroup sendmail
-*/
-
-require_once 'core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_request.php';
-require_once 'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id'].DIRECTORY_SEPARATOR
-            .'class'.DIRECTORY_SEPARATOR.'class_lists.php';
-require_once 'modules'.DIRECTORY_SEPARATOR.'sendmail'.DIRECTORY_SEPARATOR
-    .'class'.DIRECTORY_SEPARATOR.'class_modules_tools.php';
-
-$core_tools     = new core_tools();
-$request        = new request();
-$list           = new lists();
-$sendmail_tools = new sendmail();
-
-$identifier = '';
-$origin     = '';
-$parameters = '';
-
-//Collection ID
-if (isset($_REQUEST['coll_id']) && !empty($_REQUEST['coll_id'])) {
-    $parameters = '&coll_id='.$_REQUEST['coll_id'];
-} elseif ((isset($_SESSION['collection_id_choice']) && !empty($_SESSION['collection_id_choice']))) {
-    $parameters = '&coll_id='.$_SESSION['collection_id_choice'];
-}
-
-//Identifier
-if (isset($_REQUEST['identifier']) && !empty($_REQUEST['identifier'])) {
-    $identifier = $_REQUEST['identifier'];
-} elseif (isset($_SESSION['doc_id']) && !empty($_SESSION['doc_id'])) {
-    $identifier = $_SESSION['doc_id'];
-} else {
-    echo '<span class="error">'._IDENTIFIER.' '._IS_EMPTY.'</span>';
-    exit();
-}
-
-$security = new security();
-$right = $security->test_right_doc('letterbox_coll', $identifier);
-if (!$right) {
-    exit(_NO_RIGHT_TXT);
-}
-
-//Origin
-if (isset($_REQUEST['origin']) && !empty($_REQUEST['origin'])) {
-    $origin = $_REQUEST['origin'];
-} else {
-    $origin = 'document';
-}
-
-//Extra parameters
-if (isset($_REQUEST['size']) && !empty($_REQUEST['size'])) {
-    $parameters .= '&size='.$_REQUEST['size'];
-} else {
-    $parameters .= '&size=full';
-}
-if (isset($_REQUEST['order']) && !empty($_REQUEST['order'])) {
-    $parameters .= '&order='.$_REQUEST['order'];
-}
-if (isset($_REQUEST['order_field']) && !empty($_REQUEST['order_field'])) {
-    $parameters .= '&order_field='.$_REQUEST['order_field'];
-}
-if (isset($_REQUEST['what']) && !empty($_REQUEST['what'])) {
-    $parameters .= '&what='.$_REQUEST['what'];
-}
-if (isset($_REQUEST['start']) && !empty($_REQUEST['start'])) {
-    $parameters .= '&start='.$_REQUEST['start'];
-} else {
-    $_REQUEST['start'] = 0;
-}
-
-if (isset($_REQUEST['load'])) {
-    $core_tools->load_lang();
-    $core_tools->load_html();
-    $core_tools->load_header('', true, false);
-
-    echo '<body>';
-
-    $core_tools->load_js();
-
-    //Load list
-    if (!empty($identifier)) {
-        $target = $_SESSION['config']['businessappurl']
-        .'index.php?module=sendmail&page=sendmail&identifier='
-        .$identifier.'&origin='.$origin.$parameters;
-
-        $listContent = $list->loadList($target);
-        echo $listContent;
-    } else {
-        echo '<span class="error">'._ERROR_IN_PARAMETERS.'</span>';
-    }
-    echo '<div id="container" style="width:100%;min-height:0px;height:0px;"></div>';
-
-    echo '</body>';
-    echo '</html>';
-} else {
-    //If size is full change some parameters
-    if (isset($_REQUEST['size'])
-        && ($_REQUEST['size'] == 'full')
-    ) {
-        $sizeUser = '10';
-        $sizeObject = '30';
-        $css = 'listing spec';
-        $cutString = 150;
-    } elseif (isset($_REQUEST['size'])
-        && ($_REQUEST['size'] == 'medium')
-    ) {
-        $sizeUser = '15';
-        $sizeObject = '30';
-        $css = 'listingsmall';
-        $cutString = 100;
-    } else {
-        $sizeUser = '10';
-        $sizeObject = '10';
-        $css = 'listingsmall';
-        $cutString = 20;
-    }
-
-    //Table or view
-        $select['emails'] = array(); //Emails
-        $select[USERS_TABLE] = array(); //Users
-
-    //Fields
-    array_push(
-        $select['emails'],
-        'id as email_id',
-        'document->>\'id\' as res_id',
-        'creation_date',
-        'user_id',
-        'object as email_object_short',
-        'sender as sender_email',
-        'recipients as email_destinataire',
-        'id',
-        'status',
-        'status as status_label'
-    );
-
-    array_push($select[USERS_TABLE], 'user_id', 'firstname', 'lastname', 'mail');  //Users
-
-    //Where clause
-    $where_tab = array();
-
-    $where_tab[] = ' document->>\'id\' = \''.$identifier.'\' ';
-    $where_tab[] = 'emails.user_id = users.id';
-
-    //Build where
-    $where = implode(' and ', $where_tab);
-
-    //Order
-    $order = $order_field = '';
-    $order = $list->getOrder();
-    $order_field = $list->getOrderField();
-    if (!empty($order_field) && !empty($order)) {
-        $orderstr = 'order by '.$order_field.' '.$order;
-    } else {
-        $list->setOrder();
-        $list->setOrderField('creation_date');
-        $orderstr = 'order by creation_date desc';
-    }
-
-    if (isset($_REQUEST['lines'])) {
-        $limit = $_REQUEST['lines'];
-    } else {
-        $limit = 'default';
-    }
-
-    //Request
-    $tab = $request->PDOselect(
-        $select,
-        $where,
-        array(),
-        $orderstr,
-        $_SESSION['config']['databasetype'],
-        $limit,
-        false,
-        '',
-        '',
-        '',
-        true,
-        false,
-        false,
-        $_REQUEST['start']
-    );
-
-    //Result Array
-    if (!empty($tab)) {
-        for ($i = 0; $i < count($tab); ++$i) {
-            for ($j = 0; $j < count($tab[$i]); ++$j) {
-                foreach (array_keys($tab[$i][$j]) as $value) {
-                    if ($tab[$i][$j][$value] == 'email_id') {
-                        $tab[$i][$j]['email_id'] = $tab[$i][$j]['value'];
-                        $tab[$i][$j]['label'] = 'ID';
-                        $tab[$i][$j]['size'] = '1';
-                        $tab[$i][$j]['label_align'] = 'left';
-                        $tab[$i][$j]['align'] = 'left';
-                        $tab[$i][$j]['valign'] = 'bottom';
-                        $tab[$i][$j]['show'] = false;
-                        $tab[$i][$j]['order'] = 'id';
-                    }
-                    if ($tab[$i][$j][$value] == 'creation_date') {
-                        $tab[$i][$j]['value'] = $request->dateformat($tab[$i][$j]['value']);
-                        $tab[$i][$j]['label'] = _CREATION_DATE;
-                        $tab[$i][$j]['size'] = '11';
-                        $tab[$i][$j]['label_align'] = 'left';
-                        $tab[$i][$j]['align'] = 'left';
-                        $tab[$i][$j]['valign'] = 'bottom';
-                        $tab[$i][$j]['show'] = true;
-                        $tab[$i][$j]['order'] = 'creation_date';
-                    }
-                    if ($tab[$i][$j][$value] == 'user_id') {
-                        $tab[$i][$j]['label'] = _USER_ID;
-                        $tab[$i][$j]['size'] = '5';
-                        $tab[$i][$j]['label_align'] = 'left';
-                        $tab[$i][$j]['align'] = 'left';
-                        $tab[$i][$j]['valign'] = 'bottom';
-                        $tab[$i][$j]['show'] = false;
-                        $tab[$i][$j]['order'] = 'user_id';
-                    }
-                    if ($tab[$i][$j][$value] == 'email_destinataire') {
-                        $tab_dest = (array)json_decode(htmlspecialchars_decode($tab[$i][$j]['value'], ENT_QUOTES | ENT_HTML401));
-                        $tab[$i][$j]['value'] = implode(', ', $tab_dest);
-                        $tab[$i][$j]['label'] = _RECIPIENT;
-                        $tab[$i][$j]['size'] = $sizeObject;
-                        $tab[$i][$j]['label_align'] = 'left';
-                        $tab[$i][$j]['align'] = 'left';
-                        $tab[$i][$j]['valign'] = 'bottom';
-                        $tab[$i][$j]['show'] = true;
-                        $tab[$i][$j]['order'] = 'email_destinataire';
-                    }
-                    if ($tab[$i][$j][$value] == 'email_object_short') {
-                        $tab[$i][$j]['value'] = $request->cut_string($request->show_string($tab[$i][$j]['value']), $cutString);
-                        $tab[$i][$j]['label'] = _EMAIL_OBJECT;
-                        $tab[$i][$j]['size'] = $sizeObject;
-                        $tab[$i][$j]['label_align'] = 'left';
-                        $tab[$i][$j]['align'] = 'left';
-                        $tab[$i][$j]['valign'] = 'bottom';
-                        $tab[$i][$j]['show'] = true;
-                        $tab[$i][$j]['order'] = 'email_object_short';
-                    }
-                    if ($tab[$i][$j][$value] == 'status_label') {
-                        $tab[$i][$j]['value'] = $sendmail_tools->emailStatus(['status' => $tab[$i][$j]['value']]);
-                        $tab[$i][$j]['label'] = _STATUS;
-                        $tab[$i][$j]['size'] = '10';
-                        $tab[$i][$j]['label_align'] = 'left';
-                        $tab[$i][$j]['align'] = 'left';
-                        $tab[$i][$j]['valign'] = 'bottom';
-                        $tab[$i][$j]['show'] = true;
-                        $tab[$i][$j]['order'] = 'status_label';
-                    }
-                    if ($tab[$i][$j][$value] == 'sender_email') {
-                        $senderInfo = (array)json_decode(htmlspecialchars_decode($tab[$i][$j]['value'], ENT_QUOTES | ENT_HTML401));
-                        $tab[$i][$j]['value'] = $senderInfo['email'];
-
-                        $tab[$i][$j]['label'] = _SENDER;
-                        $tab[$i][$j]['size'] = '20';
-                        $tab[$i][$j]['label_align'] = 'left';
-                        $tab[$i][$j]['align'] = 'left';
-                        $tab[$i][$j]['valign'] = 'bottom';
-                        $tab[$i][$j]['show'] = true;
-                        $tab[$i][$j]['order'] = 'sender_email';
-                    }
-                    if ($tab[$i][$j][$value] == 'id') {
-                        $tab[$i][$j]['value'] = (\Email\models\EmailModel::hasJoinFiles(['id' => $tab[$i][$j]['value']])) ?
-                                '<i class="fa fa-paperclip fa-2x" title="'._JOINED_FILES.'"></i>' :
-                                    '';
-                        $tab[$i][$j]['label'] = false;
-                        $tab[$i][$j]['size'] = '1';
-                        $tab[$i][$j]['label_align'] = 'left';
-                        $tab[$i][$j]['align'] = 'left';
-                        $tab[$i][$j]['valign'] = 'bottom';
-                        $tab[$i][$j]['show'] = true;
-                        $tab[$i][$j]['order'] = false;
-                    }
-                }
-            }
-        }
-    }
-
-    //List
-    $listKey = 'email_id';                                                              // Cle de la liste
-    $paramsTab = array();                                                               // Initialiser le tableau de parametres
-    $paramsTab['bool_sortColumn'] = true;                                               // Affichage Tri
-    $paramsTab['pageTitle'] = '';                                                       // Titre de la page
-    $paramsTab['bool_bigPageTitle'] = false;                                            // Affichage du titre en grand
-    $paramsTab['urlParameters'] = 'identifier='.$identifier
-            .'&origin='.$origin.'&display=true'.$parameters;                            // Parametres d'url supplementaires
-    $paramsTab['filters'] = array();                                                    // Filtres
-    $paramsTab['listHeight'] = '100%';                                                  // Hauteur de la liste
-    $paramsTab['start'] = $_REQUEST['start'];
-    $paramsTab['listCss'] = $css;                                                       // CSS
-    $paramsTab['tools'] = array();                                                      // Icones dans la barre d'outils
-
-    $addMail = array(
-        'script' => "showEmailForm('".$_SESSION['config']['businessappurl']
-                                .'index.php?display=true&module=sendmail&page=sendmail_ajax_content'
-                                .'&mode=add&identifier='.$identifier.'&origin='.$origin.'&formContent=email'
-                                .$parameters."')",
-        'icon' => 'envelope',
-        'tooltip' => _NEW_EMAIL,
-        'alwaysVisible' => true,
-    );
-
-    $addExchangeMessage = array(
-        'script' => "showEmailForm('".$_SESSION['config']['businessappurl']
-                                .'index.php?display=true&module=sendmail&page=sendmail_ajax_content'
-                                .'&mode=add&identifier='.$identifier.'&origin='.$origin.'&formContent=messageExchange'
-                                .$parameters."')",
-        'icon' => 'exchange-alt',
-        'tooltip' => _NEW_NUMERIC_PACKAGE,
-        'alwaysVisible' => true,
-    );
-
-    array_push($paramsTab['tools'], $addMail, $addExchangeMessage);
-
-    //Action icons array
-    $paramsTab['actionIcons'] = array();
-    $read = array(
-        'script' => "showEmailForm('".$_SESSION['config']['businessappurl']
-                                    .'index.php?display=true&module=sendmail&page=sendmail_ajax_content'
-                                    .'&mode=read&id=@@email_id@@&identifier='.$identifier.'&origin='.$origin
-                                    .$parameters."');",
-        'icon' => 'eye',
-        'tooltip' => _READ,
-    );
-    array_push($paramsTab['actionIcons'], $read);
-    $update = array(
-        'script' => "showEmailForm('".$_SESSION['config']['businessappurl']
-                                    .'index.php?display=true&module=sendmail&page=sendmail_ajax_content'
-                                    .'&mode=up&id=@@email_id@@&identifier='.$identifier.'&origin='.$origin
-                                    .$parameters."');",
-        'class' => 'change',
-        'tooltip' => _UPDATE,
-        'disabledRules' => "@@user_id@@ != '".$_SESSION['user']['UserId']."'",
-    );
-    array_push($paramsTab['actionIcons'], $update);
-    $transfer = array(
-        'script' => "showEmailForm('".$_SESSION['config']['businessappurl']
-                                .'index.php?display=true&module=sendmail&page=sendmail_ajax_content'
-                                .'&mode=transfer&id=@@email_id@@&identifier='.$identifier.'&origin='.$origin
-                                .$parameters."');",
-        'icon' => 'share',
-        'tooltip' => _TRANSFER_EMAIL,
-        'disabledRules' => "@@user_id@@ != '".$_SESSION['user']['UserId']."' || @@status@@ != 'SENT'",
-    );
-    array_push($paramsTab['actionIcons'], $transfer);
-
-    //Output
-    $status = 0;
-    $content = $list->showList($tab, $paramsTab, $listKey);
-
-    $toolbarBagde_script = $_SESSION['config']['businessappurl'].'index.php?display=true&module=sendmail&page=load_toolbar_sendmail&origin=parent&resId='.$identifier.'&collId=letterbox_coll';
-
-    $content .= '<script>loadToolbarBadge(\'sendmail_tab\',\''.$toolbarBagde_script.'\');</script>';
-
-    // /********* MESSAGE EXCHANGE PART ***************/
-    // include_once 'modules/sendmail/messageExchangeList.php';
-    // include_once 'modules/sendmail/acknowledgementReceiptsList.php';
-
-    echo '{status : '.$status.", content : '".addslashes($debug.$content.$contentMessageExchange.$contentAcknowledgementReceipts)."', error : '".addslashes($error)."'}";
-}
diff --git a/modules/sendmail/sendmail_ajax_content.php b/modules/sendmail/sendmail_ajax_content.php
deleted file mode 100755
index 059d6a3aafa..00000000000
--- a/modules/sendmail/sendmail_ajax_content.php
+++ /dev/null
@@ -1,612 +0,0 @@
-<?php
-/*
-*
-*    Copyright 2013 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/>.
-*/
-
-/**
-* @brief    Script to return ajax result
-*
-* @file     sendmail_ajax_content.php
-* @author   Yves Christian Kpakpo <dev@maarch.org>
-* @date     $date$
-* @version  $Revision$
-* @ingroup  sendmail
-*/
-
-require_once "core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_request.php";
-require_once "core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_db_pdo.php";
-require_once "core".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_security.php";
-require_once 'apps' . DIRECTORY_SEPARATOR . $_SESSION['config']['app_id']
-    . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR
-    . 'class_indexing_searching_app.php';
-require_once 'apps' . DIRECTORY_SEPARATOR . $_SESSION['config']['app_id']
-    . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR
-    . 'class_users.php';
-require_once 'modules/notifications/notifications_tables_definition.php';
-require_once "modules" . DIRECTORY_SEPARATOR . "sendmail" . DIRECTORY_SEPARATOR
-    . "class" . DIRECTORY_SEPARATOR . "class_modules_tools.php";
-require_once 'modules/sendmail/Controllers/SendMessageExchangeController.php';
-
-$core_tools                = new core_tools();
-$request                   = new request();
-$db                        = new Database();
-$sec                       = new security();
-$is                        = new indexing_searching_app();
-$users_tools               = new class_users();
-$sendmail_tools            = new sendmail();
-
-if ($_SESSION['features']['send_to_contact_with_mandatory_attachment'] == true && !isset($_REQUEST['join_attachment']) && $_REQUEST['action'] == 'send_to_contact_with_mandatory_attachment') {
-    $error = $request->wash_html(_PLEASE_CHOOSE_AN_ATTACHMENT, 'NONE');
-    $status = 1;
-    echo "{status : " . $status . ", content : '" . addslashes(_parse($content)) . "', error : '" . addslashes(_parse_error($error)) . "', exec_js : '".addslashes($js)."'}";
-    exit();
-}
-
-
-function _parse($text)
-{
-    $text = str_replace("\r\n", PHP_EOL, $text);
-    $text = str_replace("\r", PHP_EOL, $text);
-    $text = str_replace(PHP_EOL, "\\n ", $text);
-    return $text;
-}
-function _parse_error($text)
-{
-    $text = str_replace("###", "\\n ", $text);
-    return $text;
-}
-    
-$core_tools->load_lang();
-
-$status = 0;
-$error = $content = $js = $parameters = '';
-
-$labels_array = array();
-
-if (isset($_REQUEST['mode']) && !empty($_REQUEST['mode'])) {
-    $mode = $_REQUEST['mode'];
-} else {
-    $error = _ERROR_IN_SENDMAIL_FORM_GENERATION;
-    $status = 1;
-}
-
-//Identifier of the element wich is noted
-$identifier = '';
-if (isset($_REQUEST['identifier']) && ! empty($_REQUEST['identifier'])) {
-    $identifier = trim($_REQUEST['identifier']);
-}
-
-//formContent of the element wich is noted
-$formContent = '';
-if (isset($_GET['formContent']) && ! empty($_GET['formContent'])) {
-    $formContent = trim($_GET['formContent']);
-}
-
-//Collection
-if (isset($_REQUEST['coll_id']) && ! empty($_REQUEST['coll_id'])) {
-    $collId = trim($_REQUEST['coll_id']);
-    $parameters .= '&coll_id='.$_REQUEST['coll_id'];
-    $view = $sec->retrieve_view_from_coll_id($collId);
-    $table = $sec->retrieve_table_from_coll($collId);
-}
-
-//Keep some origin parameters
-if (isset($_REQUEST['size']) && !empty($_REQUEST['size'])) {
-    $parameters .= '&size='.$_REQUEST['size'];
-}
-if (isset($_REQUEST['order']) && !empty($_REQUEST['order'])) {
-    $parameters .= '&order='.$_REQUEST['order'];
-    if (isset($_REQUEST['order_field']) && !empty($_REQUEST['order_field'])) {
-        $parameters .= '&order_field='.$_REQUEST['order_field'];
-    }
-}
-if (isset($_REQUEST['what']) && !empty($_REQUEST['what'])) {
-    $parameters .= '&what='.$_REQUEST['what'];
-}
-if (isset($_REQUEST['template']) && !empty($_REQUEST['template'])) {
-    $parameters .= '&template='.$_REQUEST['template'];
-}
-if (isset($_REQUEST['start']) && !empty($_REQUEST['start'])) {
-    $parameters .= '&start='.$_REQUEST['start'];
-}
-
-//Keep the origin to reload the origin list
-$list_origin = $origin = '';
-if (isset($_REQUEST['origin']) && !empty($_REQUEST['origin'])) {
-    //
-    $origin = $_REQUEST['origin'];
-
-    if ($_REQUEST['origin'] == "document") {
-        //From document
-        $list_origin = "window.parent.loadList('".$_SESSION['config']['businessappurl']
-                ."index.php?display=true&module=sendmail&page=sendmail&identifier="
-                .$identifier."&origin=document".$parameters."', 'divList', true);";
-    }
-}
-
-//Path to actual script
-$path_to_script = $_SESSION['config']['businessappurl']
-            ."index.php?display=true&module=sendmail&page=sendmail_ajax_content&identifier="
-            .$identifier."&origin=".$origin.$parameters;
-
-switch ($mode) {
-    case 'up':
-    case 'read':
-    case 'transfer':
-        if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) {
-            $parameters .= '&id='.$_REQUEST['id'];
-        } else {
-            $error = $request->wash_html(_ID.' '._IS_EMPTY.'!', 'NONE');
-            $status = 1;
-            //Close the modal
-            $js =  "window.parent.destroyModal('form_email');";
-            break;
-        }
-        // no break
-    case 'add':
-        if (empty($identifier)) {
-            $error = $request->wash_html(_IDENTIFIER.' '._IS_EMPTY.'!', 'NONE');
-            $status = 1;
-            //Close the modal
-            $js =  "window.parent.destroyModal('form_email');";
-        } else {
-            //Reset arry of adresses
-            unset($_SESSION['adresses']);
-            $_SESSION['adresses'] = array();
-            //Show iframe
-            $content .='<iframe name="form_mail" id="form_mail" src="'
-                . $_SESSION['config']['businessappurl']
-                . 'index.php?display=true&module=sendmail&page=mail_form&identifier='
-                . $identifier.'&origin=document&coll_id='.$collId.'&mode='.$mode.$parameters.'&formContent='.$_GET['formContent'].'" '
-                . 'frameborder="0" width="100%" style="height:540px;padding:0px;overflow-x:hidden;overflow-y: auto;"></iframe>';
-        }
-    break;
-        
-    case 'added':
-        if ($formContent == 'messageExchange') {
-            $return = SendMessageExchangeController::createMessageExchange($_REQUEST);
-            if (!empty($return['errors'])) {
-                if (is_array($return['errors'])) {
-                    $error = implode(", ", $return['errors']);
-                } else {
-                    $error = $return['errors'];
-                }
-                $status = 1;
-            }
-            //Reload and show message
-            $js =  $list_origin."window.parent.top.$('main_info').innerHTML = '"._EMAIL_ADDED."';";
-        } else {
-            $userEntitiesMails = array();
-            if ($core_tools->test_service('use_mail_services', 'sendmail', false)) {
-                $userEntitiesMails = $sendmail_tools->checkAttachedEntitiesMails($_SESSION['user']['UserId']);
-            }
-            if (empty($identifier)) {
-                $error = $request->wash_html(_IDENTIFIER.' '._IS_EMPTY.'!', 'NONE');
-                $status = 1;
-            } elseif (!in_array($_REQUEST['sender_email'], array_keys($userEntitiesMails)) && $core_tools->test_service('use_mail_services', 'sendmail', false)) {
-                $error = $request->wash_html(_INCORRECT_SENDER, 'NONE');
-                $status = 1;
-            } else {
-                if (isset($_SESSION['adresses']['to']) && count($_SESSION['adresses']['to']) > 0) {
-                    if (!empty($_REQUEST['object'])) {
-                        
-                        //Check adress for to
-                        $to =  join(',', $_SESSION['adresses']['to']);
-                        $error = $sendmail_tools->CheckEmailAdress($to);
-                        
-                        if (empty($error)) {
-                            
-                            //Check adress for cc
-                            (isset($_SESSION['adresses']['cc']) && count($_SESSION['adresses']['cc']) > 0)?
-                                $cc =  join(',', $_SESSION['adresses']['cc']) : $cc = '';
-                            $error = $sendmail_tools->CheckEmailAdress($cc);
-                            
-                            if (empty($error)) {
-                            
-                                //Check adress for cci
-                                (isset($_SESSION['adresses']['cci']) && count($_SESSION['adresses']['cci']) > 0)?
-                                    $cci =  join(',', $_SESSION['adresses']['cci']) : $cci = '';
-                                $error = $sendmail_tools->CheckEmailAdress($cci);
-                                
-                                if (empty($error)) {
-                                    //Data
-                                    (
-                                        isset($_REQUEST['join_file'])
-                                        && count($_REQUEST['join_file']) > 0
-                                    )? $res_master_attached = true : $res_master_attached = false;
-
-                                    $document = ['id' => $identifier, 'isLinked' => $res_master_attached, 'original' => false];
-
-                                    $attachments = [];
-                                    //attachment
-                                    if (isset($_REQUEST['join_attachment']) && count($_REQUEST['join_attachment']) > 0) {
-                                        foreach ($_REQUEST['join_attachment'] as $rawAttachment) {
-                                            $id = $rawAttachment;
-                                            $original = true;
-                                            if (strpos($rawAttachment, '#') !== false) {
-                                                $id = substr($rawAttachment, 0, strpos($rawAttachment, '#'));
-                                                $original = false;
-                                            }
-                                            $attachments[] = [
-                                                'id'        => (int)$id,
-                                                'isVersion' => false,
-                                                'original'  => $original,
-                                            ];
-                                        }
-                                    }
-
-                                    //Version attachment
-                                    if (isset($_REQUEST['join_version_attachment']) && count($_REQUEST['join_version_attachment']) > 0) {
-                                        foreach ($_REQUEST['join_version_attachment'] as $rawAttachment) {
-                                            $id = $rawAttachment;
-                                            $original = true;
-                                            if (strpos($rawAttachment, '#') !== false) {
-                                                $id = substr($rawAttachment, 0, strpos($rawAttachment, '#'));
-                                                $original = false;
-                                            }
-                                            $attachments[] = [
-                                                    'id'        => (int)$id,
-                                                    'isVersion' => true,
-                                                    'original'  => $original,
-                                                ];
-                                        }
-                                    }
-                                    if (!empty($attachments)) {
-                                        $document['attachments'] = $attachments;
-                                    }
-
-                                    //Notes
-                                    if (isset($_REQUEST['notes']) && count($_REQUEST['notes']) > 0) {
-                                        $document['notes'] = [];
-                                        foreach ($_REQUEST['notes'] as $note) {
-                                            $document['notes'][] = (int)$note;
-                                        }
-                                    }
-
-                                    if (!empty($_REQUEST['is_html']) && $_REQUEST['is_html'] == 'Y') {
-                                        $isHtml = true;
-                                        $body = $_REQUEST['body_from_html'];
-                                    } else {
-                                        $isHtml = false;
-                                        $body = $_REQUEST['body_from_raw'];
-                                    }
-                                    
-                                    //Status
-                                    if ($_REQUEST['for'] == 'save') {
-                                        $email_status = 'DRAFT';
-                                    } elseif ($_REQUEST['for'] == 'send') {
-                                        $email_status = 'TO_SEND';
-                                    }
-
-                                    $userInfo = \User\models\UserModel::getByLogin(['login' => $_SESSION['user']['UserId'], 'select' => ['id', 'mail']]);
-                                    
-                                    $aSenderInfo = explode(",", $_REQUEST['sender_email']);
-                                    if (!empty($aSenderInfo[1]) && !empty($aSenderInfo[0])) {
-                                        $entityInfo = \Entity\models\EntityModel::getByEntityId(['entityId' => $aSenderInfo[0], 'select' => ['id']]);
-                                    }
-                                    $isSent = \Email\controllers\EmailController::createEmail([
-                                        'userId'    => $userInfo['id'],
-                                        'data'      => [
-                                            'sender'        => empty($entityInfo) ? ['email' => $userInfo['mail']] : ['email' => $aSenderInfo[1], 'entityId' => $entityInfo['id']],
-                                            'recipients'    => explode(",", $to),
-                                            'cc'            => explode(",", $cc),
-                                            'cci'           => explode(",", $cci),
-                                            'object'        => (empty($_REQUEST['object']) ? '' : substr($_REQUEST['object'], 0, 100)),
-                                            'body'          => $body,
-                                            'document'      => $document,
-                                            'isHtml'        => $isHtml,
-                                            'status'        => $email_status
-                                        ]
-                                    ]);
-                        
-                                    if (!empty($isSent['errors'])) {
-                                        $error = $isSent['errors'];
-                                    }
-                                    
-                                    //Reload and show message
-                                    $js =  $list_origin."window.parent.top.$('main_info').innerHTML = '"._EMAIL_ADDED."';";
-                                } else {
-                                    $status = 1;
-                                }
-                            } else {
-                                $status = 1;
-                            }
-                        } else {
-                            $status = 1;
-                        }
-                    } else {
-                        $error = $request->wash_html(_EMAIL_OBJECT.' '._IS_EMPTY.'!', 'NONE');
-                        $status = 1;
-                    }
-                } else {
-                    $error = $request->wash_html(_SEND_TO.' '._IS_EMPTY.'!', 'NONE');
-                    $status = 1;
-                }
-            }
-        }
-    break;
-    
-    case 'updated':
-        if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) {
-            //Email ID
-            $id = $_REQUEST['id'];
-            $userEntitiesMails = array();
-            if ($core_tools->test_service('use_mail_services', 'sendmail', false)) {
-                $userEntitiesMails = $sendmail_tools->checkAttachedEntitiesMails($_SESSION['user']['UserId']);
-            }
-            //Res ID
-            if (empty($identifier)) {
-                $error = $request->wash_html(_IDENTIFIER.' '._IS_EMPTY.'!', 'NONE');
-                $status = 1;
-            } elseif (!in_array($_REQUEST['sender_email'], array_keys($userEntitiesMails)) && $core_tools->test_service('use_mail_services', 'sendmail', false)) {
-                $error = $request->wash_html(_INCORRECT_SENDER, 'NONE');
-                $status = 1;
-            } else {
-                if ((isset($_SESSION['adresses']['to']) && count($_SESSION['adresses']['to']) > 0) || $_REQUEST['for'] == 'save') {
-                    if (!empty($_REQUEST['object']) || $_REQUEST['for'] == 'save') {
-                        
-                        //Check adress for to
-                        if (!empty($_SESSION['adresses']['to'])) {
-                            $to =  join(',', $_SESSION['adresses']['to']);
-                            $error = $sendmail_tools->CheckEmailAdress($to);
-                        }
-                        
-                        if (empty($error)) {
-                            
-                            //Check adress for cc
-                            (isset($_SESSION['adresses']['cc']) && count($_SESSION['adresses']['cc']) > 0)?
-                                $cc =  join(',', $_SESSION['adresses']['cc']) : $cc = '';
-                            $error = $sendmail_tools->CheckEmailAdress($cc);
-                            
-                            if (empty($error)) {
-                            
-                                //Check adress for cci
-                                (isset($_SESSION['adresses']['cci']) && count($_SESSION['adresses']['cci']) > 0)?
-                                    $cci =  join(',', $_SESSION['adresses']['cci']) : $cci = '';
-                                $error = $sendmail_tools->CheckEmailAdress($cci);
-                                
-                                if (empty($error)) {
-                                
-                                    //Data
-                                    (
-                                        isset($_REQUEST['join_file'])
-                                        && count($_REQUEST['join_file']) > 0
-                                    )? $res_master_attached = true : $res_master_attached = false;
-
-                                    $document = ['id' => $identifier, 'isLinked' => $res_master_attached, 'original' => false];
-
-                                    $attachments = [];
-                                    //attachment
-                                    if (isset($_REQUEST['join_attachment']) && count($_REQUEST['join_attachment']) > 0) {
-                                        foreach ($_REQUEST['join_attachment'] as $rawAttachment) {
-                                            $id = $rawAttachment;
-                                            $original = true;
-                                            if (strpos($rawAttachment, '#') !== false) {
-                                                $id = substr($rawAttachment, 0, strpos($rawAttachment, '#'));
-                                                $original = false;
-                                            }
-                                            $attachments[] = [
-                                                'id'        => (int)$id,
-                                                'isVersion' => false,
-                                                'original'  => $original,
-                                            ];
-                                        }
-                                    }
-
-                                    //Version attachment
-                                    if (isset($_REQUEST['join_version_attachment']) && count($_REQUEST['join_version_attachment']) > 0) {
-                                        foreach ($_REQUEST['join_version_attachment'] as $rawAttachment) {
-                                            $id = $rawAttachment;
-                                            $original = true;
-                                            if (strpos($rawAttachment, '#') !== false) {
-                                                $id = substr($rawAttachment, 0, strpos($rawAttachment, '#'));
-                                                $original = false;
-                                            }
-                                            $attachments[] = [
-                                                    'id'        => (int)$id,
-                                                    'isVersion' => true,
-                                                    'original'  => $original,
-                                                ];
-                                        }
-                                    }
-                                    if (!empty($attachments)) {
-                                        $document['attachments'] = $attachments;
-                                    }
-
-                                    //Notes
-                                    if (isset($_REQUEST['notes']) && count($_REQUEST['notes']) > 0) {
-                                        $document['notes'] = [];
-                                        foreach ($_REQUEST['notes'] as $note) {
-                                            $document['notes'][] = (int)$note;
-                                        }
-                                    }
-
-                                    if (!empty($_REQUEST['is_html']) && $_REQUEST['is_html'] == 'Y') {
-                                        $isHtml = true;
-                                        $body = $_REQUEST['body_from_html'];
-                                    } else {
-                                        $isHtml = false;
-                                        $body = $_REQUEST['body_from_raw'];
-                                    }
-                                    
-                                    //Status
-                                    if ($_REQUEST['for'] == 'save') {
-                                        $email_status = 'DRAFT';
-                                    } elseif ($_REQUEST['for'] == 'send') {
-                                        $email_status = 'TO_SEND';
-                                    }
-
-                                    $userInfo = \User\models\UserModel::getByLogin(['login' => $_SESSION['user']['UserId'], 'select' => ['id', 'mail']]);
-                                    
-                                    $aSenderInfo = explode(",", $_REQUEST['sender_email']);
-                                    if (!empty($aSenderInfo[1])) {
-                                        $entityInfo = \Entity\models\EntityModel::getByEntityId(['entityId' => $aSenderInfo[0], 'select' => ['id']]);
-                                    }
-
-
-                                    if (!empty($isSent['errors'])) {
-                                        $error = $isSent['errors'];
-                                    }
-                                    
-                                    //Reload and show message
-                                    $js =  $list_origin."window.parent.top.$('main_info').innerHTML = '"._EMAIL_UPDATED."';";
-                                } else {
-                                    $status = 1;
-                                }
-                            } else {
-                                $status = 1;
-                            }
-                        } else {
-                            $status = 1;
-                        }
-                    } else {
-                        $error = $request->wash_html(_EMAIL_OBJECT.' '._IS_EMPTY.'!', 'NONE');
-                        $status = 1;
-                    }
-                } else {
-                    $error = $request->wash_html(_SEND_TO.' '._IS_EMPTY.'!', 'NONE');
-                    $status = 1;
-                }
-            }
-        } else {
-            $error = $request->wash_html(_ID.' '._IS_EMPTY.'!', 'NONE');
-            $status = 1;
-            //Close the modal
-            $js =  "window.parent.destroyModal('form_email');";
-        }
-    break;
-    
-    case 'del':
-        if (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) {
-            $id = $_REQUEST['id'];
-            
-            $environment   = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
-            $request       = \Slim\Http\Request::createFromEnvironment($environment);
-            \Email\controllers\EmailController::delete($request, new \Slim\Http\Response(), ['id' => $id]);
-            
-            //Reload and show message
-            $js =  $list_origin."window.parent.top.$('main_info').innerHTML = '"._EMAIL_REMOVED."';";
-        } else {
-            $error = $request->wash_html(_ID.' '._IS_EMPTY.'!', 'NONE');
-            $status = 1;
-            //Close the modal
-            $js =  "window.parent.destroyModal('form_email');";
-        }
-    break;
-    case 'adress':
-        if (isset($_REQUEST['for']) && isset($_REQUEST['field']) && isset($_REQUEST['email'])) {
-            if (isset($_REQUEST['email']) && !empty($_REQUEST['email'])) {
-                //Clean up email
-                $email = trim($_REQUEST['email']);
-                //Reset session adresses if necessary
-                if (!isset($_SESSION['adresses'][$_REQUEST['field']])) {
-                    $_SESSION['adresses'][$_REQUEST['field']] = array();
-                }
-                //For ADD
-                if ($_REQUEST['for'] == 'add') {
-                    array_push($_SESSION['adresses'][$_REQUEST['field']], $email);
-                //For DEL
-                } elseif ($_REQUEST['for'] == 'del') {
-                    //unset adress in array
-                    unset($_SESSION['adresses'][$_REQUEST['field']][$_REQUEST['index']]);
-                    //If no adresse for field, unset the entire sub-array
-                    if (count($_SESSION['adresses'][$_REQUEST['field']]) == 0) {
-                        unset($_SESSION['adresses'][$_REQUEST['field']]);
-                    }
-                }
-                //Get content
-                $content = $sendmail_tools->updateAdressInputField($path_to_script, $_SESSION['adresses'], $_REQUEST['field']);
-            } else {
-                $error = $request->wash_html(_EMAIL.' '._IS_EMPTY.'!', 'NONE');
-                $status = 1;
-            }
-        } else {
-            $error = $request->wash_html(_UNKNOW_ERROR.'!', 'NONE');
-            $status = 1;
-        }
-    break;
-    case 'destUser':
-        if (isset($_REQUEST['for']) && isset($_REQUEST['field']) && isset($_REQUEST['contactAddress'])) {
-            if (isset($_REQUEST['contactAddress']) && !empty($_REQUEST['contactAddress'])) {
-                $contactAddress = trim($_REQUEST['contactAddress']);
-                if (!isset($_SESSION['adresses'][$_REQUEST['field']])) {
-                    $_SESSION['adresses'][$_REQUEST['field']] = array();
-                }
-
-                if ($_REQUEST['for'] == 'add') {
-//                    $contactLabel         = \Contact\models\ContactModel::getContactFullLabel(['addressId' => $contactAddress]); //TODO
-//                    $contactInfo          = \Contact\models\ContactModel::getFullAddressById(['addressId' => $contactAddress]);
-//                    $contactCommunication = \Contact\models\ContactModel::getContactCommunication(['contactId' => $contactInfo[0]['contact_id']]);
-                    $_SESSION['adresses'][$_REQUEST['field']][$contactAddress] = $contactLabel.'. ('._COMMUNICATION_TYPE.' : '.$contactCommunication['value'].'))';
-                } elseif ($_REQUEST['for'] == 'del') {
-                    unset($_SESSION['adresses'][$_REQUEST['field']][$_REQUEST['index']]);
-                    //If no adresse for field, unset the entire sub-array
-                    if (count($_SESSION['adresses'][$_REQUEST['field']]) == 0) {
-                        unset($_SESSION['adresses'][$_REQUEST['field']]);
-                    }
-                }
-
-                $content = $sendmail_tools->updateContactInputField($path_to_script, $_SESSION['adresses'], $_REQUEST['field']);
-            } else {
-                $error = $request->wash_html(_EMAIL.' '._IS_EMPTY.'!', 'NONE');
-                $status = 1;
-            }
-        } else {
-            $error = $request->wash_html(_UNKNOW_ERROR.'!', 'NONE');
-            $status = 1;
-        }
-    break;
-    case 'download':
-        require_once 'modules/export_seda/RequestSeda.php';
-        $RequestSeda         = new RequestSeda();
-        $messageExchangeData = $RequestSeda->getMessageByIdentifierAndResId(['message_id' => $_GET['id'], 'res_id_master' => $_GET['identifier']]);
-
-        $docserver     = \Docserver\models\DocserverModel::getByDocserverId(['docserverId' => $messageExchangeData->docserver_id]);
-        $docserverType = \Docserver\models\DocserverTypeModel::getById(['id' => $docserver['docserver_type_id']]);
-
-        $pathDirectory = str_replace('#', DIRECTORY_SEPARATOR, $messageExchangeData->path);
-        $filePath      = $docserver['path_template'] . $pathDirectory . $messageExchangeData->filename;
-        $fingerprint   = \Resource\controllers\StoreController::getFingerPrint([
-            'filePath' => $filePath,
-            'mode'     => $docserverType['fingerprint_mode'],
-        ]);
-
-        if ($fingerprint != $messageExchangeData->fingerprint) {
-            echo _PB_WITH_FINGERPRINT_OF_DOCUMENT;
-            exit;
-        }
-
-        if (file_exists($filePath)) {
-            header('Pragma: public');
-            header('Expires: 0');
-            header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
-            header('Cache-Control: public');
-            header('Content-Description: File Transfer');
-            header('Content-Type: ' . strtolower(mime_content_type($filePath)));
-            header("Content-length: " . filesize($filePath));
-            header('Content-Disposition: attachment; filename=' . basename($messageExchangeData->reference.'.zip') . ';');
-            header("Content-Type: application/force-download");
-            header('Content-Transfer-Encoding: binary');
-            readfile($filePath);
-            exit();
-        }
-        exit();
-}
-echo "{status : " . $status . ", content : '" . addslashes(_parse($content)) . "', error : '" . addslashes(_parse_error($error)) . "', exec_js : '".addslashes($js)."'}";
-exit();
diff --git a/modules/sendmail/xml/IVS/requests_definitions.xml b/modules/sendmail/xml/IVS/requests_definitions.xml
index 5b1b6123d61..eb83ffbbf81 100755
--- a/modules/sendmail/xml/IVS/requests_definitions.xml
+++ b/modules/sendmail/xml/IVS/requests_definitions.xml
@@ -1,9 +1,4 @@
 <requestDefinitions>
-	<requestDefinition method="POST" path="/apps/maarch_entreprise/index.php" validationRule="sendmail_ajax_content" >
-        <parameter name="page" value="sendmail_ajax_content"/>
-        <parameter name="module" value="sendmail"/>
-        <parameter name="display" value="true" />
-    </requestDefinition> 
 	<requestDefinition method="POST" path="/apps/maarch_entreprise/index.php" validationRule="mail_form" >
         <parameter name="page" value="mail_form"/>
         <parameter name="module" value="sendmail"/>
@@ -24,12 +19,6 @@
         <parameter name="module" value="sendmail"/>
         <parameter name="display" value="true" />
     </requestDefinition>
-	<requestDefinition method="POST" path="/apps/maarch_entreprise/index.php" validationRule="adress_comletion" >
-        <parameter name="page" value="address_autocompletion"/>
-        <parameter name="module" value="sendmail"/>
-        <parameter name="display" value="true" />
-    </requestDefinition> 
-
 </requestDefinitions>
 
 
diff --git a/modules/sendmail/xml/IVS/validation_rules.xml b/modules/sendmail/xml/IVS/validation_rules.xml
index 3f9807cd976..5f0ad04b520 100755
--- a/modules/sendmail/xml/IVS/validation_rules.xml
+++ b/modules/sendmail/xml/IVS/validation_rules.xml
@@ -1,37 +1,4 @@
 <validationRules>
-	<validationRule name="sendmail_ajax_content" extends="standardForm" mode="error">
-		<parameter name="module" type="identifier" />
-		<parameter name="id" type="base64" />
-		<parameter name="identifier" type="integer" />
-		<parameter name="origin" type="identifier" />
-		<parameter name="coll_id" type="collection_list" />
-		<parameter name="size" type="size" />
-		<parameter name="url" type="url" />
-		<parameter name="for" type="identifier" />
-		<parameter name="email" type="string" />
-		<parameter name="field" type="identifier" />
-		<parameter name="index" type="identifier" />
-		<parameter name="is_html" type="YN" />
-		<parameter name="add" type="string" />
-		<parameter name="target" type="identifier" />
-		<parameter name="body_from_html" type="string" />
-		<parameter name="body_from_raw" type="string" />
-		<parameter name="cancel" type="identifier" />
-		<parameter name="join_attachment" type="string" />
-		<parameter name="join_version_attachment" type="string" />
-		<parameter name="join_file" type="identifier" />
-		<parameter name="notes" type="string" />
-		<parameter name="object" type="string" />
-		<parameter name="valid" type="string" />
-		<parameter name="sender_email" type="string" />
-		<parameter name="templateMail" type="integer" />
-		<parameter name="selectSignatures" type="string" />
-		<parameter name="action" type="string" />
-		<parameter name="formContent" type="string" />
-		<parameter name="main_exchange_doc" type="string" />
-		<parameter name="contactAddress" type="integer" />
-	</validationRule>
-
 	<validationRule name="mail_form" extends="standardForm" mode="error">
 		<parameter name="module" type="identifier" />
 		<parameter name="identifier" type="integer" />
diff --git a/modules/templates/class/class_modules_tools_Abstract.php b/modules/templates/class/class_modules_tools_Abstract.php
index 05159a8edfe..63bc1dd3d14 100755
--- a/modules/templates/class/class_modules_tools_Abstract.php
+++ b/modules/templates/class/class_modules_tools_Abstract.php
@@ -79,37 +79,4 @@ abstract class templates_Abstract extends Database
             
         return $return;
     }
-    
-    
-    public function getAllItemsLinkedToModel($template_id, $field ='')
-    {
-        $db = new Database();
-        $items = array();
-        if (empty($template_id)) {
-            return $items;
-        }
-
-        if (empty($field)) {
-            $items['destination'] = [];
-            foreach (array_keys($items) as $key) {
-                $stmt2 = $db->query(
-                    "select value_field from ".$_SESSION['tablename']['temp_templates_association']." where template_id = ? ",
-                                    array($template_id)
-                        );
-                while ($res = $stmt2->fetchOject()) {
-                    array_push($items[$key], $res->value_field);
-                }
-            }
-        } else {
-            $items[$field] = [];
-            $stmt = $db->query(
-                "select value_field from ".$_SESSION['tablename']['temp_templates_association']." where template_id = ? ",
-                            array($template_id)
-                    );
-            while ($res = $stmt->fetchObject()) {
-                array_push($items[$field], $res->value_field);
-            }
-        }
-        return $items;
-    }
 }
diff --git a/modules/templates/class/templates_controler_Abstract.php b/modules/templates/class/templates_controler_Abstract.php
index ccde9401c83..90c9c2f7fbd 100755
--- a/modules/templates/class/templates_controler_Abstract.php
+++ b/modules/templates/class/templates_controler_Abstract.php
@@ -498,41 +498,6 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
         return $return;
     }
     
-    /**
-    * Return all templates in an array for an entity
-    *
-    * @param $entityId entity identifier
-    * @return array of templates
-    */
-    public function getAllTemplatesForProcess($entityId)
-    {
-        include_once 'core/class/docservers_controler.php';
-
-        $db = new Database();
-        $stmt = $db->query(
-            'select * from ' . _TEMPLATES_TABLE_NAME . ' t, ' . _TEMPLATES_ASSOCIATION_TABLE_NAME . ' ta '
-            . 'where t.template_id = ta.template_id and ta.value_field = ? ORDER BY t.template_label',
-            [$entityId]
-        );
-        $docservers_controler = new docservers_controler();
-        $docserverTemplate = $docservers_controler->get('TEMPLATES');
-        $templates = [];
-        while ($res = $stmt->fetchObject()) {
-            array_push(
-                $templates,
-                array(
-                    'ID' => $res->template_id,
-                    'LABEL' => $res->template_label,
-                    'TYPE' => $res->template_type,
-                    'TARGET' => $res->template_target,
-                    'ATTACHMENT_TYPE' => $res->template_attachment_type,
-                    'FILE' => $docserverTemplate->path_template.str_replace('#', '/', $res->template_path).$res->template_file_name
-                )
-            );
-        }
-        return $templates;
-    }
-    
     public function updateTemplateEntityAssociation($templateId)
     {
         $db = new Database();
@@ -551,65 +516,6 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
         }
     }
     
-    public function getAllItemsLinkedToModel($templateId, $field ='')
-    {
-        $db = new Database();
-        $items = array();
-        if (empty($templateId)) {
-            return $items;
-        }
-        if (empty($field)) {
-            $items['destination'] = [];
-            $stmt = $db->query(
-                "select value_field from "
-                . _TEMPLATES_ASSOCIATION_TABLE_NAME
-                . " where template_id = ?",
-                array($templateId)
-            );
-            while ($res = $stmt->fetchObject()) {
-                array_push($items['destination'], $res->value_field);
-            }
-        } else {
-            $items[$field] = [];
-            $stmt = $db->query(
-                "select value_field from "
-                . _TEMPLATES_ASSOCIATION_TABLE_NAME
-                . " where template_id = ?",
-                array($templateId)
-            );
-            while ($res = $stmt->fetchObject()) {
-                array_push($items[$field], $res->value_field);
-            }
-        }
-        return $items;
-    }
-    
-    public function getTemplatesStyles($dir, $stylesArray)
-    {
-        $this->stylesArray = $stylesArray;
-        //Browse all files of the style template dir
-        $classScan = dir($dir);
-        while (($filescan = $classScan->read()) != false) {
-            if ($filescan == '.' || $filescan == '..' || $filescan == '.svn') {
-                continue;
-            } elseif (is_dir($dir . $folder . $filescan)) {
-                $this->getTemplatesStyles($dir . $folder . $filescan . '/', $this->stylesArray);
-            } else {
-                $filePath = $dir . $folder . '/' . $filescan;
-                $info = pathinfo($filePath);
-                array_push(
-                    $this->stylesArray,
-                    array(
-                        'fileName' => basename($filePath, '.' . $info['extension']),
-                        'fileExt'  => strtoupper($info['extension']),
-                        'filePath' => $filePath,
-                    )
-                );
-            }
-        }
-        return $this->stylesArray;
-    }
-    
     public function getTemplatesDatasources($configXml)
     {
         $datasources = array();
@@ -634,52 +540,6 @@ abstract class templates_controler_Abstract extends ObjectControler implements O
         return $datasources;
     }
     
-    public function getTemplatesTargets()
-    {
-        $targets = array();
-        //attachments
-        array_push(
-            $targets,
-            array(
-                'id' => 'attachments',
-                'label'  => _ATTACHMENTS,
-            )
-        );
-        //notifications
-        array_push(
-            $targets,
-            array(
-                'id' => 'notifications',
-                'label'  => _NOTIFICATIONS,
-            )
-        );
-        //doctypes
-        array_push(
-            $targets,
-            array(
-                'id' => 'doctypes',
-                'label'  => _DOCTYPES,
-            )
-        );
-        //notes
-        array_push(
-            $targets,
-            array(
-                'id' => 'notes',
-                'label'  => _NOTES,
-            )
-        );
-        //sendmail
-        array_push(
-             $targets,
-             array(
-                 'id' => 'sendmail',
-                 'label'  => _SENDMAIL,
-             )
-         );
-        return $targets;
-    }
-    
     //returns file ext
     public function extractFileExt($sFullPath)
     {
diff --git a/modules/templates/js/change_doctype.js b/modules/templates/js/change_doctype.js
index e94e1c36da7..e69de29bb2d 100755
--- a/modules/templates/js/change_doctype.js
+++ b/modules/templates/js/change_doctype.js
@@ -1,53 +0,0 @@
-
-function doctype_template(args)
-{
-	//alert(print_r(args));
-	var choose_file_div = $('choose_file_div');
-	var file_iframe = $('file_iframe');
-
-	var template = '';
-	var is_generated = false;
-	var doc_frame = '';
-	var model_frame = '';
-	for(var i=0; i< args.length; i++)
-	{
-		if(args[i]['id'] == 'template_id')
-		{
-			template = args[i]['value'];
-		}
-		if(args[i]['id'] == 'is_generated' && args[i]['value'] == 'Y')
-		{
-			is_generated = true;
-		}
-		if(args[i]['id'] == 'doc_frame')
-		{
-			doc_frame = args[i]['value'];
-		}
-		if(args[i]['id'] == 'model_frame')
-		{
-			model_frame = args[i]['value'];
-		}
-	}
-
-	if(is_generated == true)
-	{
-		if(choose_file_div != null)
-		{
-			choose_file_div.style.display = 'none';
-		}
-		if(file_iframe != null && model_frame!= '' && model_frame != null)
-		{
-			file_iframe.src = model_frame;
-		}
-	}
-	else
-	{
-		if(file_iframe.src.includes("display=true&module=templates&page=file_iframe&model_id")){
-			choose_file_div.style.display = 'block';
-			if(file_iframe != null && doc_frame!= '' && doc_frame != null)
-			{
-				file_iframe.src = doc_frame;
-			}
-		}
-	}
-}
diff --git a/modules/templates/templates_ajax_content_for_mails.php b/modules/templates/templates_ajax_content_for_mails.php
deleted file mode 100755
index 3b8de783bae..00000000000
--- a/modules/templates/templates_ajax_content_for_mails.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-/*
-*   Copyright 2008-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/templates/class/templates_controler.php';
-require_once 'core/class/class_security.php';
-$templateController = new templates_controler();
-
-if ((! isset($_REQUEST['templateId']) || empty($_REQUEST['templateId']))) {
-    $error = _TEMPLATE_ID . ' ' . _EMPTY;
-    echo "{status : 1, error_txt : '" . addslashes($error) . "'}";
-    exit();
-}
-
-$sec = new security();
-$res_view = $sec->retrieve_view_from_coll_id('letterbox_coll');
-
-$params = array(
-    'res_id' => $_GET['id'],
-    'coll_id'=> "letterbox_coll",
-    'res_view'=> $res_view
-    );
-
-$template = $templateController->get($_REQUEST['templateId']);
-$template->template_content =  $templateController->merge($_REQUEST['templateId'], $params, 'content', 'email');
-$template->template_content = str_replace("\r\n", "\n", $template->template_content);
-$template->template_content = str_replace("\r", "\n", $template->template_content);
-$template->template_content = str_replace("\n", "\\n ", $template->template_content);
-$template->template_content = str_replace("''", "'", $template->template_content);
-
-if ($_REQUEST['mode'] == 'raw') {
-    $template->template_content = str_replace("<br>", "\\n", $template->template_content);
-    $template->template_content = str_replace("<br />", "\\n", $template->template_content);
-    $template->template_content = strip_tags($template->template_content);
-}
-
-echo "{status : 0, content : '" . addslashes($template->template_content) . "'}";
-exit();
diff --git a/modules/templates/templates_ajax_content_for_notes.php b/modules/templates/templates_ajax_content_for_notes.php
deleted file mode 100755
index 1fc9500077a..00000000000
--- a/modules/templates/templates_ajax_content_for_notes.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
-*   Copyright 2008-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/templates/class/templates_controler.php';
-$templateController = new templates_controler();
-
-if ((! isset($_REQUEST['templateId']) || empty($_REQUEST['templateId']))) {
-    $error = _TEMPLATE_ID . ' ' . _EMPTY;
-    echo "{status : 1, error_txt : '" . addslashes($error) . "'}";
-    exit();
-}
-$template = $templateController->get($_REQUEST['templateId']);
-
-$template->template_content = str_replace("\r\n", "\n", $template->template_content);
-$template->template_content = str_replace("\r", "\n", $template->template_content);
-$template->template_content = str_replace("\n", "\\n ", $template->template_content);
-
-echo "{status : 0, content : '" . addslashes($template->template_content) . "'}";
-exit();
diff --git a/modules/templates/xml/IVS/requests_definitions.xml b/modules/templates/xml/IVS/requests_definitions.xml
index 430ae760b58..f2489e4e711 100755
--- a/modules/templates/xml/IVS/requests_definitions.xml
+++ b/modules/templates/xml/IVS/requests_definitions.xml
@@ -16,16 +16,6 @@
     <requestDefinition method="GET" path="/apps/maarch_entreprise/index.php" validationRule="template_manage_add" >
         <parameter name="page" value="templates_management_controler"/>
         <parameter name="module" value="templates"/>
-    </requestDefinition>
-	<requestDefinition method="POST" path="/apps/maarch_entreprise/index.php" validationRule="templates_ajax_content_for_mails" >
-        <parameter name="page" value="templates_ajax_content_for_mails"/>
-        <parameter name="module" value="templates"/>
-        <parameter name="display" value="true"/>
-    </requestDefinition>
-	<requestDefinition method="POST" path="/apps/maarch_entreprise/index.php" validationRule="templates_ajax_content_for_notes" >
-        <parameter name="page" value="templates_ajax_content_for_notes"/>
-        <parameter name="module" value="templates"/>
-        <parameter name="display" value="true"/>
     </requestDefinition>
     <requestDefinition method="GET" path="/apps/maarch_entreprise/index.php" validationRule="file_iframe" >
         <parameter name="page" value="file_iframe"/>
diff --git a/modules/templates/xml/IVS/validation_rules.xml b/modules/templates/xml/IVS/validation_rules.xml
index acfd768e35a..0dd8fea2bed 100755
--- a/modules/templates/xml/IVS/validation_rules.xml
+++ b/modules/templates/xml/IVS/validation_rules.xml
@@ -22,18 +22,6 @@
 		<parameter name="template_path" type="docserver_path" />
 		<parameter name="entitieslist" type="identifier" />
 	</validationRule>
-	
-	<validationRule name="templates_ajax_content_for_mails" extends="standardForm" mode="error">
-		<parameter name="module" type="identifier" />
-		<parameter name="id" type="integer" />
-		<parameter name="templateId" type="integer" />
-        <parameter name="mode" type="string" />
-	</validationRule>
-
-	<validationRule name="templates_ajax_content_for_notes" extends="standardForm" mode="error">
-		<parameter name="module" type="identifier" />
-		<parameter name="templateId" type="integer" />
-	</validationRule>
 
 	<validationRule name="admin_change_templates" extends="standardForm" mode="error">
 		<parameter name="template_style" type="string" />
diff --git a/modules/visa/checkAllAnsSigned.php b/modules/visa/checkAllAnsSigned.php
deleted file mode 100755
index 363eb140aa2..00000000000
--- a/modules/visa/checkAllAnsSigned.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
-*    Copyright 2008 - 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('core' . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR 
-        . 'class_request.php');
-	require_once('core' . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR 
-        . 'class_db.php');
-		
-	require_once 'modules/attachments/attachments_tables.php';
-	
-	$core_tools = new core_tools();
-	$core_tools->test_user();
-
-	$db = new Database();
-	$stmt = $db->query("SELECT status from res_attachments where attachment_type= ? and res_id_master = ? ", array('response_project', $_REQUEST['res_id']));
-	while($line = $stmt->fetchObject()){
-		if ($line->status == 'TRA' || $line->status == 'A_TRA' ){
-			echo "{status:0}";	
-			exit();			
-		}
-	}
-	
-	echo "{status:1}";	
-	exit();	
-	
-?>
\ No newline at end of file
diff --git a/modules/visa/class/class_modules_tools.php b/modules/visa/class/class_modules_tools.php
index e9632003531..2664e319f27 100755
--- a/modules/visa/class/class_modules_tools.php
+++ b/modules/visa/class/class_modules_tools.php
@@ -46,141 +46,4 @@ class ConcatPdf extends ConcatPdf_Abstract
     // custom
 }
 
-/* EXEMPLE TAB VISA_CIRCUIT
-
-Array
-(
-    [coll_id] => letterbox_coll
-    [res_id] => 190
-    [difflist_type] => entity_id
-    [sign] => Array
-        (
-            [users] => Array
-                (
-                    [0] => Array
-                        (
-                            [user_id] => sgros
-                            [lastname] => GROS
-                            [firstname] => Sébastien
-                            [entity_id] => CHEFCABINET
-                            [entity_label] => Chefferie
-                            [visible] => Y
-                            [viewed] => 0
-                            [difflist_type] => VISA_CIRCUIT
-                            [process_date] => 
-                            [process_comment] => 
-                        )
-
-                )
-
-        )
-
-    [visa] => Array
-        (
-            [users] => Array
-                (
-                    [0] => Array
-                        (
-                            [user_id] => sbes
-                            [lastname] => BES
-                            [firstname] => Stéphanie
-                            [entity_id] => CHEFCABINET
-                            [entity_label] => Chefferie
-                            [visible] => Y
-                            [viewed] => 0
-                            [difflist_type] => VISA_CIRCUIT
-                            [process_date] => 
-                            [process_comment] => 
-                        )
-
-                    [1] => Array
-                        (
-                            [user_id] => fbenrabia
-                            [lastname] => BENRABIA
-                            [firstname] => Fadela
-                            [entity_id] => POLESOCIAL
-                            [entity_label] => Pôle social
-                            [visible] => Y
-                            [viewed] => 0
-                            [difflist_type] => VISA_CIRCUIT
-                            [process_date] => 
-                            [process_comment] => 
-                        )
-
-                    [2] => Array
-                        (
-                            [user_id] => bpont
-                            [lastname] => PONT
-                            [firstname] => Brieuc
-                            [entity_id] => POLEAFFAIRESETRANGERES
-                            [entity_label] => Pôle affaires étrangères
-                            [visible] => Y
-                            [viewed] => 0
-                            [difflist_type] => VISA_CIRCUIT
-                            [process_date] => 
-                            [process_comment] => 
-                        )
-
-                )
-
-        )
-
-)
-
-
-
-
-
-<h3>Document</h3><pre>Array
-(
-    [0] => Array
-        (
-            [id] => 197
-            [label] => 123456
-            [format] => pdf
-            [filesize] => 46468
-            [attachment_type] => 
-            [is_version] => 
-            [version] => 
-        )
-
-)
-</pre><h3>Document</h3><pre>Array
-(
-    [0] => Array
-        (
-            [id] => 400
-            [label] => reponse 1 v5
-            [format] => docx
-            [filesize] => 36219
-            [attachment_type] => response_project
-            [is_version] => 
-            [version] => 
-        )
-
-    [1] => Array
-        (
-            [id] => 409
-            [label] => Nouvelle PJ
-            [format] => pdf
-            [filesize] => 1204460
-            [attachment_type] => simple_attachment
-            [is_version] => 
-            [version] => 
-        )
-
-    [2] => Array
-        (
-            [id] => 410
-            [label] => pj 2
-            [format] => pdf
-            [filesize] => 361365
-            [attachment_type] => simple_attachment
-            [is_version] => 
-            [version] => 
-        )
-
-)
-
-*/
 ?>
diff --git a/modules/visa/class/class_modules_tools_Abstract.php b/modules/visa/class/class_modules_tools_Abstract.php
index 2a909f4c0cc..857c68e830e 100755
--- a/modules/visa/class/class_modules_tools_Abstract.php
+++ b/modules/visa/class/class_modules_tools_Abstract.php
@@ -90,938 +90,12 @@ abstract class visa_Abstract extends Database
 
         $_SESSION['modules_loaded']['visa']['routing_template'] = $routing_template;
     }
-
-    public function checkResponseProject($res_id, $coll_id)
-    {
-        $this->errorMessageVisa = null;
-
-        $attachmentTypes = \Attachment\models\AttachmentModel::getAttachmentsTypesByXML();
-
-        $noSignableAttachments = [];
-        foreach ($attachmentTypes as $key => $value) {
-            if (!$value['sign']) {
-                $noSignableAttachments[] = $key;
-            }
-        }
-
-        $db = new Database();
-        if (empty($noSignableAttachments)) {
-            $stmt = $db->query("SELECT * FROM res_attachments WHERE res_id_master = ? AND status NOT IN ('DEL','OBS','TMP') AND in_signature_book = ?", [$res_id, true]);
-        } else {
-            $stmt = $db->query("SELECT * FROM res_attachments WHERE res_id_master = ? AND status NOT IN ('DEL','OBS','TMP') AND attachment_type NOT IN (?) AND in_signature_book = ? ", [$res_id, $noSignableAttachments, true]);
-        }
-        if ($stmt->rowCount() <= 0) {
-            $this->errorMessageVisa = _NO_RESPONSE_PROJECT_VISA;
-
-            return false;
-        }
-
-        return true;
-    }
-
-    public function getWorkflow($res_id, $coll_id, $typeList)
-    {
-        require_once 'modules/entities/class/class_manage_listdiff.php';
-        $listdiff = new diffusion_list();
-        $roles = $listdiff->list_difflist_roles();
-        $circuit = $listdiff->get_listinstance($res_id, false, $typeList);
-        if (isset($circuit['copy'])) {
-            unset($circuit['copy']);
-        }
-
-        return $circuit;
-    }
-
-    public function saveWorkflow($res_id, $coll_id, $workflow, $typeList)
-    {
-        require_once 'modules/entities/class/class_manage_listdiff.php';
-        $diff_list = new diffusion_list();
-
-        $diff_list->save_listinstance(
-            $workflow,
-            $typeList,
-            $coll_id,
-            $res_id,
-            $_SESSION['user']['UserId'],
-            $_SESSION['user']['primaryentity']['id']
-        );
-    }
-
-    public function saveModelWorkflow($id_list, $workflow, $typeList, $title)
-    {
-    }
-
-    protected function getWorkflowsNumberByTitle($title)
-    {
-        $db = new Database();
-        $stmt = $db->query('SELECT * FROM listmodels WHERE title = ?', array($title));
-
-        return $stmt->rowCount();
-    }
-
-    public function isWorkflowTitleFree($title)
-    {
-        $nb = $this->getWorkflowsNumberByTitle($title);
-        if ($nb == 0) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    public function nbVisa($res_id, $coll_id)
-    {
-        $db = new Database();
-        $stmt = $db->query('SELECT listinstance_id from listinstance WHERE res_id= ? and coll_id = ? and item_mode = ?', array($res_id, $coll_id, 'visa'));
-
-        return $stmt->rowCount();
-    }
-
-    public function getCurrentStep($res_id, $coll_id, $listDiffType)
-    {
-        $db = new Database();
-        $where = 'res_id= ? and coll_id = ? and difflist_type = ? and process_date IS NULL';
-        $order = 'ORDER BY listinstance_id ASC';
-        $query = $db->limit_select(0, 1, 'sequence, item_mode', 'listinstance', $where, '', '', $order);
-
-        $stmt = $db->query($query, array($res_id, $coll_id, $listDiffType));
-        $res = $stmt->fetchObject();
-        if ($res->item_mode == 'sign') {
-            return $this->nbVisa($res_id, $coll_id);
-        }
-
-        return $res->sequence;
-    }
-
-    public function getUsersCurrentVis($res_id)
-    {
-        $db = new Database();
-        $result = array();
-        $stmt = $db->query("SELECT item_id from listinstance WHERE res_id= ? and difflist_type = 'VISA_CIRCUIT'  ORDER BY sequence ASC", array($res_id));
-        while ($res = $stmt->fetchObject()) {
-            $result[] = $res->item_id;
-        }
-
-        return $result;
-    }
-
-    public function getCurrentUserStep($res_id)
-    {
-        $db = new Database();
-        $stmt = $db->query('SELECT item_id from listinstance WHERE res_id= ? and coll_id = ? and difflist_type = ? and process_date ISNULL ORDER BY listinstance_id ASC LIMIT 1', array($res_id, 'letterbox_coll', 'VISA_CIRCUIT'));
-        $res = $stmt->fetchObject();
-
-        return $res->item_id;
-    }
-
-    public function getStepDetails($res_id, $coll_id, $listDiffType, $sequence)
-    {
-        $stepDetails = array();
-        $db = new Database();
-        $order = 'ORDER by listinstance_id ASC';
-        $where = 'res_id= ? and coll_id = ? and difflist_type = ? and sequence = ? ';
-        $query = $db->limit_select(0, 1, '*', 'listinstance', $where, '', '', $order);
-
-        $stmt = $db->query($query, array($res_id, $coll_id, $listDiffType, $sequence));
-
-        $res = $stmt->fetchObject();
-        $stepDetails['listinstance_id'] = $res->listinstance_id;
-        $stepDetails['coll_id'] = $res->coll_id;
-        $stepDetails['res_id'] = $res->res_id;
-        $stepDetails['sequence'] = $res->sequence;
-        $stepDetails['item_id'] = $res->item_id;
-        $stepDetails['item_type'] = $res->item_type;
-        $stepDetails['item_mode'] = $res->item_mode;
-        $stepDetails['added_by_user'] = $res->added_by_user;
-        $stepDetails['visible'] = $res->visible;
-        $stepDetails['viewed'] = $res->viewed;
-        $stepDetails['difflist_type'] = $res->difflist_type;
-        $stepDetails['process_date'] = $res->process_date;
-        $stepDetails['process_comment'] = $res->process_comment;
-
-        return $stepDetails;
-    }
-
-    public function processVisaWorkflow($aArgs = [])
-    {
-        $message = [];
-        $db = new Database();
-        //enables to process the visa if i am not the item_id
-        if ($aArgs['stepDetails']['item_id'] != $_SESSION['user']['UserId']) {
-            $db->query(
-                'UPDATE listinstance SET process_date = CURRENT_TIMESTAMP '
-                .' WHERE listinstance_id = ? AND item_mode = ? AND res_id = ? AND item_id = ? AND difflist_type = ?',
-                array($aArgs['stepDetails']['listinstance_id'], $aArgs['stepDetails']['item_mode'], $aArgs['res_id'], $aArgs['stepDetails']['item_id'], 'VISA_CIRCUIT')
-            );
-
-            $stmt = $db->query('SELECT firstname, lastname, user_id FROM users WHERE user_id IN (?)', array([$_SESSION['user']['UserId'], $aArgs['stepDetails']['item_id']]));
-            foreach ($stmt as $value) {
-                if ($value['user_id'] == $_SESSION['user']['UserId']) {
-                    $user1 = $value['firstname'].' '.$value['lastname'];
-                } else {
-                    $user2 = $value['firstname'].' '.$value['lastname'];
-                }
-            }
-
-            $message[] = ' '._VISA_BY.' '.$user1.' '._INSTEAD_OF.' '.$user2;
-        } else {
-            $db->query(
-                'UPDATE listinstance SET process_date = CURRENT_TIMESTAMP '
-                .' WHERE listinstance_id = ? AND item_mode = ? AND res_id = ? AND item_id = ? AND difflist_type = ?',
-                array($aArgs['stepDetails']['listinstance_id'], $aArgs['stepDetails']['item_mode'], $aArgs['res_id'], $_SESSION['user']['UserId'], 'VISA_CIRCUIT')
-            );
-            $message[] = '';
-        }
-
-        return $message;
-    }
-
-    public function getUsersVis($group_id = null)
-    {
-        $db = new Database();
-
-        if ($group_id != null) {
-            $stmt = $db->query("SELECT users.user_id, users.firstname, users.lastname, usergroup_content.group_id,entities.entity_id from users, usergroup_content, users_entities,entities WHERE users_entities.user_id = users.user_id and users.status <> 'DEL' and 
-				users_entities.primary_entity = 'Y' and users.user_id = usergroup_content.user_id AND entities.entity_id = users_entities.entity_id AND group_id IN 
-				(SELECT group_id FROM usergroups_services WHERE service_id = ? AND group_id = ?)  order by users.lastname", array('visa_documents', $group_id));
-        } else {
-            $stmt = $db->query("SELECT distinct on(users.user_id) users.user_id, users.firstname, users.lastname, usergroup_content.group_id,entities.entity_id from users, usergroup_content, users_entities,entities WHERE users_entities.user_id = users.user_id and users.status <> 'DEL' and 
-				users_entities.primary_entity = 'Y' and users.user_id = usergroup_content.user_id AND entities.entity_id = users_entities.entity_id AND group_id IN 
-				(SELECT group_id FROM usergroups_services WHERE service_id = ?)  
-				order by users.user_id,users.lastname", array('visa_documents'));
-        }
-
-        $tab_users = array();
-
-        while ($res = $stmt->fetchObject()) {
-            array_push($tab_users, array('id' => $res->user_id, 'firstname' => $res->firstname, 'lastname' => $res->lastname, 'group_id' => $res->group_id, 'entity_id' => $res->entity_id));
-        }
-
-        return $tab_users;
-    }
-
-    public function getEntityVis()
-    {
-        $db = new Database();
-
-        $stmt = $db->query("SELECT distinct(entities.entity_id) FROM users, usergroup_content, users_entities,entities WHERE users_entities.user_id = users.user_id and 
-			users_entities.primary_entity = 'Y' and users.user_id = usergroup_content.user_id AND entities.entity_id = users_entities.entity_id AND group_id IN 
-			(SELECT group_id FROM usergroups_services WHERE service_id = ?)  
-			order by entities.entity_id", array('visa_documents'));
-
-        $tab_userentities = array();
-
-        while ($res = $stmt->fetchObject()) {
-            array_push($tab_userentities, array('entity_id' => $res->entity_id));
-        }
-
-        return $tab_userentities;
-    }
-
-    public function setStatusVisa($res_id, $coll_id, $inDetails = false)
-    {
-        $curr_visa_wf = $this->getWorkflow($res_id, $coll_id, 'VISA_CIRCUIT');
-
-        $db = new Database();
-        $where = 'res_id= ? and coll_id = ? and difflist_type = ? and process_date IS NULL';
-        $order = 'ORDER BY listinstance_id ASC';
-        $query = $db->limit_select(0, 1, 'requested_signature', 'listinstance', $where, '', '', $order);
-
-        $stmt = $db->query($query, array($res_id, $coll_id, 'VISA_CIRCUIT'));
-        $resListDiffVisa = $stmt->fetchObject();
-
-        // If there is only one step in the visa workflow, we set status to ESIG
-        if ($resListDiffVisa->requested_signature) {
-            $mailStatus = 'ESIG';
-        } else {
-            $mailStatus = 'EVIS';
-        }
-
-        $db->query('UPDATE res_letterbox SET status = ? WHERE res_id = ? ', array($mailStatus, $res_id));
-    }
-
-    public function getList($res_id, $coll_id, $bool_modif = false, $typeList, $isVisaStep = false, $fromDetail = '')
-    {
-        $core = new core_tools();
-        $circuit = $this->getWorkflow($res_id, $coll_id, $typeList);
-        $sAllAttachmentSigned = $this->isAllAttachementSigned($res_id);
-        if ($sAllAttachmentSigned == 'noAttachment') {
-            $str = '<input type="hidden" id="isAllAttachementSigned" value="false"/>';
-            $isAllAttachementSigned = '';
-            $isAllAttachementSignedInfo = '';
-        } elseif ($sAllAttachmentSigned == 'yes') {
-            $str = '<input type="hidden" id="isAllAttachementSigned" value="allsigned"/>';
-            $isAllAttachementSigned = '';
-            $isAllAttachementSignedInfo = _IS_ALL_ATTACHMENT_SIGNED_INFO2;
-        } else {
-            $str = '<input type="hidden" id="isAllAttachementSigned" value="false"/>';
-            $isAllAttachementSigned = '';
-        }
-
-        $str .= '<div class="error" id="divErrorVisa" onclick="this.hide();"></div>';
-        $str .= '<div class="info" id="divInfoVisa" onclick="this.hide();"></div>';
-
-        //VISA USER LIST
-        if ($bool_modif == true) {
-            $str .= '<select data-placeholder="'._ADD_VISA_ROLE.'" id="visaUserList" onchange="addVisaUser();">';
-            $str .= '<option value="" ></option>';
-
-            $tab_userentities = $this->getEntityVis();
-            $tab_users = $this->getUsersVis();
-            /* Order by parent entity **/
-            foreach ($tab_userentities as $key => $value) {
-                $str .= '<optgroup label="'.$tab_userentities[$key]['entity_id'].'">';
-                foreach ($tab_users as $user) {
-                    if ($tab_userentities[$key]['entity_id'] == $user['entity_id']) {
-                        $selected = ' ';
-                        if ($user['id'] == $step['user_id']) {
-                            $selected = ' selected';
-                        }
-                        $str .= '<option value="'.$user['id'].'" '.$selected.'>'.$user['lastname'].' '.$user['firstname'].'</option>';
-                    }
-                }
-                $str .= '</optgroup>';
-            }
-            $str .= '</select>';
-            $str .= '<script>';
-            $str .= ' $j("#visaUserList").chosen({width: "250px", disable_search_threshold: 10});';
-            $str .= '</script>';
-
-            $str .= ' <select data-placeholder="'._ADD_VISA_MODEL.'" name="modelList" id="modelList" onchange="loadVisaModelUsers();">';
-            $str .= '<option value=""></option>';
-            $str .= '</select>';
-
-            $str .= '<script>';
-            $str .= ' $j("#modelList").chosen({width: "250px", disable_search_threshold: 10});';
-            $str .= '</script>';
-            $str .= '<br/><br/>';
-        }
-        if (!empty($isAllAttachementSignedInfo)) {
-            $str .= '<b style="color:red;">'.$isAllAttachementSignedInfo.'</b>';
-        }
-        $str .= '<div id="visa_content">';
-        //VISA USER IN DOCUMENT
-        $i = 1;
-        $lastUserVis = true;
-
-        if ((empty($circuit['visa']['users']) || !is_array($circuit['visa']['users']) || count($circuit['visa']['users']) == 0) && (empty($circuit['sign']['users']) || !is_array($circuit['sign']['users']) || count($circuit['sign']['users']) == 0)) {
-            $str .= '<div id="emptyVisa"><strong><em>'._EMPTY_VISA_WORKFLOW.'</em></strong></div>';
-        } else {
-            $str .= '<div id="emptyVisa" style="display:none;"><strong><em>'._EMPTY_VISA_WORKFLOW.'</em></strong></div>';
-            if (!empty($circuit['visa']['users']) && is_array($circuit['visa']['users']) && count($circuit['visa']['users']) > 0) {
-                $isCurrentVisa = false;
-                foreach ($circuit['visa']['users'] as $it => $info_userVis) {
-                    if (empty($info_userVis['process_date'])) {
-                        if ($lastUserVis == true && $isVisaStep == true && $isCurrentVisa === false) {
-                            $vised = ' currentVis';
-                            $disabled = '';
-                            $link_vis = 'arrow-right ';
-                            $del_vis = '<div class="delete_visa"></div>';
-                            if ($info_userVis['requested_signature'] && $info_userVis['user_id'] != $_SESSION['user']['UserId']) {
-                                $info_vised = '<p style="color:red;">'._SIGN_USER_COU_DESC.' '.$info_userVis['firstname'].' '.$info_userVis['lastname'].'</p>';
-                                $dropZone = '';
-                            } elseif ($info_userVis['requested_signature'] && $info_userVis['user_id'] == $_SESSION['user']['UserId']) {
-                                $info_vised = '<p style="font-weight:normal;">'._SIGN_USER_COU.'</p>';
-                                $dropZone = '';
-                            } elseif (!$info_userVis['requested_signature'] && $info_userVis['user_id'] != $_SESSION['user']['UserId']) {
-                                $info_vised = '<p style="color:red;">'._VISA_USER_COU_DESC.' '.$info_userVis['firstname'].' '.$info_userVis['lastname'].'</p>';
-                                $dropZone = '';
-                            } else {
-                                $info_vised = '<p style="font-weight:normal;">'._VISA_USER_COU.'</p>';
-                                $dropZone = '';
-                            }
-                            if ($core->test_service('modify_visa_in_signatureBook', 'visa', false)) {
-                                $modif = 'true';
-                                $dropZone = '<i class="fa fa-exchange-alt fa-2x fa-rotate-90" aria-hidden="true" title="'._DRAG_N_DROP_CHANGE_ORDER.'" style="cursor: pointer"></i>';
-                                $del_vis = '<i class="fa fa-trash-alt" aria-hidden="true" onclick="delVisaUser(this.parentElement.parentElement);" title="'._DELETE.'"></i>';
-                            } else {
-                                $modif = 'false';
-                            }
-
-                            $info_vised .= '<select style="display:none;" id="signRequest_'.$i.'" '.$isAllAttachementSigned;
-                            $info_vised .= ' disabled="disabled" ';
-                            $info_vised .= '>';
-                            $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>';
-
-                            $info_vised .= '<option value="true"';
-                            if (!empty($info_userVis['requested_signature'])) {
-                                $info_vised .= ' selected="selected" ';
-                            }
-                            $info_vised .= '>'._SIGNATORY.'</option>';
-                            $info_vised .= '</select>';
-                        } else {
-                            $dropZone = '<i class="fa fa-exchange-alt fa-2x fa-rotate-90" aria-hidden="true" title="'._DRAG_N_DROP_CHANGE_ORDER.'" style="cursor: pointer"></i>';
-                            $vised = '';
-                            if ($bool_modif == true) {
-                                $modif = 'true';
-                                $del_vis = '<i class="fa fa-trash-alt" aria-hidden="true" onclick="delVisaUser(this.parentElement.parentElement);" title="'._DELETE.'"></i>';
-                                $disabled = '';
-                            } else {
-                                $modif = 'false';
-                                $dropZone = '';
-                                $del_vis = '';
-                                $disabled = ' disabled="disabled"';
-                            }
-
-                            $info_vised = '<br/><select id="signRequest_'.$i.'" '.$isAllAttachementSigned;
-                            if (!empty($info_userVis['signatory'])) {
-                                $info_vised .= ' disabled="disabled" ';
-                            }
-                            $info_vised .= '>';
-                            $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>';
-
-                            $info_vised .= '<option value="true"';
-                            if (!empty($info_userVis['requested_signature'])) {
-                                $info_vised .= ' selected="selected" ';
-                            }
-                            $info_vised .= '>'._SIGNATORY.'</option>';
-                            $info_vised .= '</select>';
-                            $link_vis = 'hourglass-half';
-                        }
-
-                        $lastUserVis = false;
-                        $isCurrentVisa = true;
-                    } else {
-                        $lastUserVis = true;
-                        $modif = 'false';
-
-                        $disabled = ' disabled="disabled"';
-                        if (preg_match("/\[DEL\]/", $info_userVis['process_comment'])) {
-                            $info_vised = '<br/><select id="signRequest_'.$i.'" '.$isAllAttachementSigned;
-                            if (!empty($info_userVis['signatory'])) {
-                                $info_vised .= ' disabled="disabled" ';
-                            }
-                            $info_vised .= '>';
-                            $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>';
-
-                            $info_vised .= '<option value="true"';
-                            if (!empty($info_userVis['requested_signature'])) {
-                                $info_vised .= ' selected="selected" ';
-                            }
-                            $info_vised .= '>'._SIGNATORY.'</option>';
-                            $info_vised .= '</select>';
-                            $link_vis = 'times';
-                            $vised = ' moved vised';
-                            $del_vis = '<i class="fa fa-trash-alt" aria-hidden="true" onclick="delVisaUser(this.parentElement.parentElement);" title="'._DELETE.'"></i>';
-                        } else {
-                            if (!empty($info_userVis['signatory'])) {
-                                $info_vised = '<br/><sub>signé le : '.functions::format_date_db($info_userVis['process_date'], '', '', true).'</sub>';
-                                $info_vised .= '<br/><select id="signRequest_'.$i.'" style="width:auto;display:none;" disabled="disabled" '.$isAllAttachementSigned;
-                                $info_vised .= '>';
-                                $info_vised .= '<option value="false" selected="selected">'._VISA_USER_SEARCH.'</option>';
-
-                                $info_vised .= '<option value="true"';
-                                $info_vised .= '>'._SIGNATORY.'</option>';
-                                $info_vised .= '</select>';
-                            } else {
-                                $info_vised = '<br/><sub>visé le : '.functions::format_date_db($info_userVis['process_date'], '', '', true).'</sub>';
-
-                                $info_vised .= '<br/><select id="signRequest_'.$i.'" style="width:auto;display:none;" disabled="disabled" '.$isAllAttachementSigned;
-                                $info_vised .= '>';
-                                $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>';
-
-                                $info_vised .= '<option value="true" selected="selected"';
-                                $info_vised .= '>'._SIGNATORY.'</option>';
-                                $info_vised .= '</select>';
-                            }
-
-                            $link_vis = 'check';
-                            $vised = ' vised';
-                            $del_vis = '';
-                        }
-                    }
-                    //VISA USER LINE CIRCUIT
-                    $str .= '<div class="droptarget'.$vised.'" id="visa_'.$i.'" draggable="'.$modif.'">';
-                    $str .= '<span class="visaUserStatus">';
-                    $str .= '<i class="fa fa-'.$link_vis.'" aria-hidden="true"></i>';
-                    $str .= '</span>';
-                    $str .= '<span class="visaUserInfo">';
-                    $str .= '<sup class="visaUserPos nbResZero">'.$i.'</sup>&nbsp;&nbsp;';
-                    $str .= '<i class="fa fa-user fa-2x" aria-hidden="true"></i> '.$info_userVis['lastname'].' '.$info_userVis['firstname'].' <sup class="nbRes">'.$info_userVis['entity_id'].'</sup>';
-                    $str .= '&nbsp;&nbsp; <sub><i id="signedUser_'.$i.'" title="au moins un document a été signé par cet utilisateur" class="visaUserSign fa fa-certificate" aria-hidden="true" style="color:#F99830;';
-                    if (empty($info_userVis['signatory'])) {
-                        $str .= 'visibility:hidden';
-                    }
-                    $str .= '"></i>'.$info_vised;
-                    $str .= '</span>';
-                    $str .= '<span class="visaUserAction">';
-                    $str .= $del_vis;
-                    $str .= '</span>';
-                    $str .= '<span class="visaUserConsigne">';
-                    $str .= '<input class="userId" type="hidden" value="'.$info_userVis['user_id'].'"/><input class="visaDate" type="hidden" value="'.$info_userVis['process_date'].'"/><input'.$disabled.' class="consigne" type="text" value="'.$info_userVis['process_comment'].'"/>';
-                    $str .= '</span>';
-
-                    $str .= '<span id="dropZone">';
-                    $str .= $dropZone;
-                    $str .= '</span>';
-                    $str .= '</div>';
-
-                    ++$i;
-                }
-            }
-
-            //FOR USER SIGN
-            if (!empty($circuit['sign']['users'])) {
-                foreach ($circuit['sign']['users'] as $info_userSign) {
-                    if (empty($info_userSign['process_date'])) {
-                        if (($lastUserVis == true && $isVisaStep == true)) {
-                            $vised = ' currentVis';
-                            $modif = 'false';
-                            $disabled = '';
-                            $del_vis = '';
-                            $link_vis = 'arrow-right ';
-                            if ($info_userSign['requested_signature'] && $info_userSign['user_id'] != $_SESSION['user']['UserId']) {
-                                $dropZone = '';
-                                $info_vised = '<p style="color:red;">'._SIGN_USER_COU_DESC.' '.$info_userSign['firstname'].' '.$info_userSign['lastname'].'</p>';
-                            } elseif ($info_userSign['requested_signature'] && $info_userSign['user_id'] == $_SESSION['user']['UserId']) {
-                                $dropZone = '';
-                                $info_vised = '<p style="font-weight:normal;">'._SIGN_USER_COU.'</p>';
-                            } elseif (!$info_userSign['requested_signature'] && $info_userSign['user_id'] != $_SESSION['user']['UserId']) {
-                                $dropZone = '';
-                                $info_vised = '<p style="color:red;">'._VISA_USER_COU_DESC.' '.$info_userSign['firstname'].' '.$info_userSign['lastname'].'</p>';
-                            } else {
-                                $dropZone = '';
-                                $info_vised = '<p style="font-weight:normal;">'._VISA_USER_COU.'</p>';
-                            }
-                            if ($core->test_service('modify_visa_in_signatureBook', 'visa', false)) {
-                                $modif = 'true';
-                                $dropZone = '<i class="fa -alt fa-2x fa-rotate-90" aria-hidden="true" title="'._DRAG_N_DROP_CHANGE_ORDER.'" style="cursor: pointer"></i>';
-                                $del_vis = '<i class="fa fa-trash-alt" aria-hidden="true" onclick="delVisaUser(this.parentElement.parentElement);" title="'._DELETE.'"></i>';
-                            } else {
-                                $modif = 'false';
-                            }
-                            $info_vised .= '<select style="display:none;" id="signRequest_'.$i.'" '.$isAllAttachementSigned;
-                            $info_vised .= ' disabled="disabled" ';
-                            $info_vised .= '>';
-                            $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>';
-    
-                            $info_vised .= '<option value="true"';
-                            if (!empty($info_userSign['requested_signature'])) {
-                                $info_vised .= ' selected="selected" ';
-                            }
-                            $info_vised .= '>'._SIGNATORY.'</option>';
-                            $info_vised .= '</select>';
-                        } else {
-                            $dropZone = '<i class="fa fa-exchange-alt fa-2x fa-rotate-90" aria-hidden="true" title="'._DRAG_N_DROP_CHANGE_ORDER.'" style="cursor: pointer"></i>';
-                            $vised = '';
-                            if ($bool_modif == true) {
-                                $modif = 'true';
-                                $del_vis = '<i class="fa fa-trash-alt" aria-hidden="true" onclick="delVisaUser(this.parentElement.parentElement);" title="'._DELETE.'"></i>';
-                                $disabled = '';
-                            } else {
-                                $dropZone = '';
-                                $modif = 'false';
-                                $del_vis = '';
-                                $disabled = ' disabled="disabled"';
-                            }
-    
-                            $info_vised = '<br/><select id="signRequest_'.$i.'" '.$isAllAttachementSigned;
-                            if (!empty($info_userSign['signatory'])) {
-                                $info_vised .= ' disabled="disabled" ';
-                            }
-                            $info_vised .= '>';
-                            $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>';
-    
-                            $info_vised .= '<option value="true"';
-                            if (!empty($info_userSign['requested_signature'])) {
-                                $info_vised .= ' selected="selected" ';
-                            }
-                            $info_vised .= '>'._SIGNATORY.'</option>';
-                            $info_vised .= '</select>';
-                            $link_vis = 'hourglass-half';
-                        }
-                    } else {
-                        $modif = 'false';
-                        if (preg_match("/\[DEL\]/", $info_userSign['process_comment'])) {
-                            $info_vised = '<br/><select id="signRequest_'.$i.'" '.$isAllAttachementSigned;
-                            if (!empty($info_userSign['signatory'])) {
-                                $info_vised .= ' disabled="disabled" ';
-                            }
-                            $info_vised .= '>';
-                            $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>';
-    
-                            $info_vised .= '<option value="true"';
-                            if (!empty($info_userSign['requested_signature'])) {
-                                $info_vised .= ' selected="selected" ';
-                            }
-                            $info_vised .= '>'._SIGNATORY.'</option>';
-                            $info_vised .= '</select>';
-    
-                            $link_vis = 'hourglass-half';
-                            $link_vis = 'times';
-                            $vised = ' moved vised';
-                            $del_vis = '<i class="fa fa-trash-alt" aria-hidden="true" onclick="delVisaUser(this.parentElement.parentElement);" title="'._DELETE.'"></i>';
-                        } else {
-                            $vised = ' vised';
-                            $link_vis = 'check';
-                            
-                            if (!empty($info_userSign['signatory'])) {
-                                $info_vised = '<br/><sub>signé le : '.functions::format_date_db($info_userSign['process_date'], '', '', true).'</sub>';
-    
-                                $info_vised .= '<br/><select id="signRequest_'.$i.'" style="width:auto;display:none;" '.$isAllAttachementSigned;
-                                $info_vised .= ' disabled="disabled" ';
-                                $info_vised .= '>';
-                                $info_vised .= '<option value="false">'._VISA_USER_SEARCH.'</option>';
-                                $info_vised .= '<option value="true"';
-                                $info_vised .= ' selected="selected" ';
-                                $info_vised .= '>'._SIGNATORY.'</option>';
-                                $info_vised .= '</select>';
-                            } else {
-                                $info_vised = '<br/><sub>visé le : '.functions::format_date_db($info_userSign['process_date'], '', '', true).'</sub>';
-    
-                                $info_vised .= '<br/><select id="signRequest_'.$i.'" style="width:auto;display:none;" '.$isAllAttachementSigned;
-                                $info_vised .= ' disabled="disabled" ';
-                                $info_vised .= '>';
-                                $info_vised .= '<option value="false" selected="selected">'._VISA_USER_SEARCH.'</option>';
-                                $info_vised .= '<option value="true"';
-                                $info_vised .= '>'._SIGNATORY.'</option>';
-                                $info_vised .= '</select>';
-                            }
-                        }
-                    }
-                    //VISA USER LINE CIRCUIT
-                    $str .= '<div class="droptarget'.$vised.'" id="visa_'.$i.'" draggable="'.$modif.'">';
-                    $str .= '<span class="visaUserStatus">';
-                    $str .= '<i class="fa fa-'.$link_vis.'" aria-hidden="true"></i>';
-                    $str .= '</span>';
-                    $str .= '<span class="visaUserInfo">';
-                    $str .= '<sup class="visaUserPos nbResZero">'.$i.'</sup>&nbsp;&nbsp;';
-                    $str .= '<i class="fa fa-user fa-2x" aria-hidden="true"></i> '.$info_userSign['lastname'].' '.$info_userSign['firstname'].' <sup class="nbRes">'.$info_userSign['entity_id'].'</sup>';
-                    $str .= '&nbsp;&nbsp; <sub><i id="signedUser_'.$i.'" title="au moins un document a été signé par cet utilisateur" class="visaUserSign fa fa-certificate" aria-hidden="true" style="color:#F99830;';
-                    if (empty($info_userSign['signatory'])) {
-                        $str .= 'visibility:hidden';
-                    }
-                    $str .= '"></i>'.$info_vised;
-                    $str .= '</span>';
-                    $str .= '<span class="visaUserAction">';
-                    $str .= $del_vis;
-                    $str .= '</span>';
-                    $str .= '<span class="visaUserConsigne">';
-                    $str .= '<input class="userId" type="hidden" value="'.$info_userSign['user_id'].'"/><input class="visaDate" type="hidden" value="'.$info_userSign['process_date'].'"/><input'.$disabled.' class="consigne" type="text" value="'.$info_userSign['process_comment'].'"/>';
-                    $str .= '</span>';
-                    $str .= '<span id="dropZone">';
-                    $str .= $dropZone;
-                    $str .= '</span>';
-                    $str .= '</div>';
-                    ++$i;
-                }
-            }
-        }
-
-        $str .= '</div>';
-
-        if ($bool_modif == true) {
-            //SAVE VISA CIRCUIT
-            $str .= '<input type="button" name="send" id="send" value="'._SAVE_CHANGES.'" class="button" ';
-            $str .= 'onclick="updateVisaWorkflow('.$res_id.');" /> ';
-
-            //SAVE AS MODEL
-            $str .= '<input type="button" name="save" id="save" value="Enregistrer comme modèle" class="button" onclick="$(\'modalSaveVisaModel\').style.display = \'block\';" />';
-            $str .= '<div id="modalSaveVisaModel" >';
-            $str .= '<h3>'._SAVE_POSITION.' '._VISA_WORKFLOW.'</h3><br/>';
-            $str .= '<label for="titleModel">'._TITLE.'</label> ';
-            $str .= '<input type="text" name="titleModel" id="titleModel"/><br/>';
-            $str .= '<input type="button" name="saveModel" id="saveModel" value="'._VALIDATE.'" class="button" onclick="saveVisaWorkflowAsModel();" /> ';
-            $str .= '<input type="button" name="cancelModel" id="cancelModel" value="'._CANCEL.'" class="button" onclick="$(\'modalSaveVisaModel\').style.display = \'none\';" />';
-            $str .= '</div>';
-        }
-        $str .= '<script>initDragNDropVisa();</script>';
-
-        return $str;
-    }
-
-    /* DOSSIER IMPRESSION */
-    public function getJoinedFiles($coll_id, $table, $id, $from_res_attachment = false, $filter_attach_type = 'all')
-    {
-        $joinedFiles = array();
-        $db = new Database();
-        if ($from_res_attachment === false) {
-            $stmt = $db->query(
-                'select res_id, description, subject, title, format, filesize, relation, creation_date from '
-                . " res_letterbox where res_id = ? and status <> 'DEL'",
-                array($id)
-            );
-        } else {
-            require_once 'modules/attachments/attachments_tables.php';
-            if ($filter_attach_type == 'all') {
-                $stmt = $db->query(
-                    'select res_id, description, subject, title, format, filesize, res_id_master, attachment_type, creation_date, typist from '
-                    ." res_attachments where res_id_master = ? and attachment_type <> 'converted_pdf' and attachment_type <> 'print_folder' and status <> 'DEL' order by attachment_type, creation_date",
-                    array($id)
-                );
-            } else {
-                $stmt = $db->query(
-                    'select res_id, description, subject, title, format, filesize, res_id_master, attachment_type, creation_date, typist from '
-                    .' res_attachments '
-                    ." where res_id_master = ? and attachment_type = '"
-                    .$filter_attach_type."' and status not in ('DEL', 'OBS') order by creation_date",
-                    array($id)
-                );
-            }
-        }
-
-        while ($res = $stmt->fetchObject()) {
-            $pdf_exist = true;
-            if ($from_res_attachment) {
-                require_once 'modules/attachments/class/attachments_controler.php';
-                $ac = new attachments_controler();
-                $idFile = $res->res_id;
-                $convertedDocument =  \Convert\models\AdrModel::getConvertedDocumentById(['select' => ['docserver_id', 'path', 'filename'], 'type' => 'PDF', 'resId' => $idFile, 'collId' => 'attachments_coll']);
-                $viewLink = $_SESSION['config']['businessappurl']
-                        .'index.php?display=true&module=attachments&page=view_attachment&res_id_master='
-                        .$id.'&id='.$res->res_id;
-                
-                if (!empty($convertedDocument)) {
-                    $docserver = \Docserver\models\DocserverModel::getByDocserverId(['docserverId' => $convertedDocument['docserver_id'], 'select' => ['path_template']]);
-                    $pathToDocument = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $convertedDocument['path']) . $convertedDocument['filename'];
-                    
-                    
-                    if (!file_exists($pathToDocument)) {
-                        $pdf_exist = false;
-                    }
-                } else {
-                    $pdf_exist = false;
-                }
-            } else {
-                $idFile = $res->res_id;
-                $convertedDocument =  \Convert\models\AdrModel::getConvertedDocumentById(['select' => ['docserver_id', 'path', 'filename'], 'type' => 'PDF', 'resId' => $idFile, 'collId' => 'letterbox_coll']);
-                $viewLink = $_SESSION['config']['businessappurl']
-                        .'index.php?display=true&dir=indexing_searching&page=view_resource_controler&id='
-                        .$id;
-                if (!empty($convertedDocument)) {
-                    $docserver = \Docserver\models\DocserverModel::getByDocserverId(['docserverId' => $convertedDocument['docserver_id'], 'select' => ['path_template']]);
-                    $pathToDocument = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $convertedDocument['path']) . $convertedDocument['filename'];
-                    
-                    if (!file_exists($pathToDocument)) {
-                        $pdf_exist = false;
-                    }
-                } else {
-                    $pdf_exist = false;
-                }
-            }
-            $label = '';
-            //Tile, or subject or description
-            if (strlen(trim($res->title)) > 0) {
-                $label = $res->title;
-            } elseif (strlen(trim($res->subject)) > 0) {
-                $label = $res->subject;
-            } elseif (strlen(trim($res->description)) > 0) {
-                $label = $res->description;
-            }
-
-            if (isset($res->attachment_type) && $res->attachment_type != '') {
-                $attachment_type = $res->attachment_type;
-            } else {
-                $attachment_type = '';
-            }
-
-            if (isset($res->typist) && $res->typist != '') {
-                $typist = $res->typist;
-            } else {
-                $typist = '';
-            }
-
-            if ($pdf_exist == false) {
-                $collIdConv = ($from_res_attachment) ? 'attachments_coll' : 'letterbox_coll';
-                
-                $viewLinkHtml = '<a id="gen_'.$idFile.'" style="cursor:pointer;" title="'._GENERATE_PDF .'" target="_blank" onclick="generatePdf(\''.$idFile.'\',\''.$collIdConv.'\')">'
-                    .'<i id="spinner_'.$idFile.'" class="fa fa-sync-alt fa-2x" title="'._GENERATE_PDF.'"></i>'
-                    .'</a>';
-            } else {
-                $viewLinkHtml = '';
-            }
-            array_push(
-                $joinedFiles,
-                array('id' => $idFile, //ID
-                      'label' => $label, //Label
-                      'format' => $res->format, //Format
-                      'filesize' => $res->filesize, //Filesize
-                      'creation_date' => $res->creation_date, //Filesize
-                      'attachment_type' => $attachment_type, //attachment_type
-                      'typist' => $typist, //attachment_type
-                      'pdf_exist' => $pdf_exist,
-                      'version' => '',
-                      'viewLink' => $viewLinkHtml,
-                    )
-            );
-        }
-
-        return $joinedFiles;
-    }
-
-    public function showPrintFolder($coll_id, $table, $id)
-    {
-        require_once 'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id']
-        .DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR
-        .'class_indexing_searching_app.php';
-        $is = new indexing_searching_app();
-
-        require_once 'apps'.DIRECTORY_SEPARATOR.$_SESSION['config']['app_id']
-                .DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR
-                .'class_users.php';
-
-        $users_tools = new class_users();
-
-        require_once 'core/class/class_request.php';
-
-        $request = new request();
-
-        require_once 'core/class/class_security.php';
-        $sec = new security();
-        $view = $sec->retrieve_view_from_coll_id($coll_id);
-        $stmt = $this->query("select subject, contact_society, category_id from $view where res_id = ?", array($id));
-        $res = $stmt->fetchObject();
-        $str = '';
-        $str .= '<div align="left" class="block">';
-        $str .= '<div class="error" id="divErrorPrint" name="divErrorPrint" onclick="this.hide();"></div>';
-
-        $str .= '<p><b>Requérant</b> : '.$res->contact_society.'</p>';
-        $str .= '<p><b>'._SUBJECT.'</b> : '.$res->subject.'</p>';
-        $str .= '<hr/>';
-        $str .= '<form style="width:99%;" name="print_folder_form" id="print_folder_form" action="#" method="post">';
-        $str .= '<table style="width:99%;" name="print_folder" id="print_folder" >';
-        $str .= '<thead><tr><th style="width:25%;text-align:left;"></th><th style="width:40%;text-align:left;">Titre</th><th style="width:20%;text-align:left;">Rédacteur</th><th style="width:10%;text-align:left;">Date</th><th style="width:5%;text-align:left;"><input title="'._SELECT_ALL.'" id="allPrintFolder" type="checkbox" onclick="selectAllPrintFolder();"></th></tr></thead>';
-        $str .= '<tbody>';
-
-        if ($res->category_id != 'outgoing') {
-            $str .= '<tr><td><h3>+ Courrier entrant</h3></td><td></td><td></td><td></td><td></td></tr>';
-            $joined_files = $this->getJoinedFiles($coll_id, $table, $id, false);
-            for ($i = 0; $i < count($joined_files); ++$i) {
-                //Get data
-                $id_doc = $joined_files[$i]['id'];
-                $description = $joined_files[$i]['label'];
-                $format = $joined_files[$i]['format'];
-
-                $contact = $users_tools->get_user($joined_files[$i]['typist']);
-                $dateFormat = explode(' ', $joined_files[$i]['creation_date']);
-                $creation_date = $request->dateformat($dateFormat[0]);
-                if ($joined_files[$i]['pdf_exist']) {
-                    $check = 'class="check checkPrintFolder" checked="checked"';
-                } else {
-                    $check = ' disabled title="'._NO_PDF_FILE.'"';
-                }
-                //Show data
-                $str .= '<tr><td></td><td>'.$description.'</td><td>'.$res->contact_society
-                            .'</td><td>'.$creation_date.'</td><td><input id="join_file_'
-                            .$id_doc.'" type="checkbox" name="join_file[]" value="'.$id_doc.'"  '.$check
-                            .'/>'.$joined_files[$i]['viewLink'].'</td></tr>';
-            }
-        }
-        //ATTACHMENTS TYPES LOOP
-        foreach ($_SESSION['attachment_types'] as $attachmentTypeId => $attachmentTypeLabel) {
-            if ($attachmentTypeId != 'print_folder' && $attachmentTypeId != 'converted_pdf') {
-                $joined_files = $this->getJoinedFiles($coll_id, $table, $id, true, $attachmentTypeId);
-                if (count($joined_files) > 0) {
-                    $str .= '<tr><td><h3>+ '.$attachmentTypeLabel.'</h3></td><td></td><td></td><td></td><td></td></tr>';
-                    for ($i = 0; $i < count($joined_files); ++$i) {
-                        $id_doc = $joined_files[$i]['id'];
-                        $description = $joined_files[$i]['label'];
-                        $format = $joined_files[$i]['format'];
-                        $contact = $users_tools->get_user($joined_files[$i]['typist']);
-                        $dateFormat = explode(' ', $joined_files[$i]['creation_date']);
-                        $creation_date = $request->dateformat($dateFormat[0]);
-                        if ($joined_files[$i]['pdf_exist']) {
-                            $check = 'class="check checkPrintFolder" checked="checked"';
-                        } else {
-                            $check = ' disabled title="'._NO_PDF_FILE.'"';
-                        }
-                        
-                        $str .= '<tr><td></td><td>'.$description.'</td><td>'.$contact['firstname'].' '
-                            .$contact['lastname'].'</td><td>'.$creation_date.'</td><td><input id="join_file_'
-                            .$id_doc.'" type="checkbox" name="join_attachment[]"  value="'.$id_doc.'"  '.$check
-                            .'/>'.$joined_files[$i]['viewLink'].'</td></tr>';
-                    }
-                }
-            }
-        }
-
-        //NOTES
-        $core_tools = new core_tools();
-        if ($core_tools->is_module_loaded('notes')) {
-            require_once 'modules'.DIRECTORY_SEPARATOR.'notes'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_modules_tools.php';
-
-            $notes_tools = new notes();
-            $user_notes = $notes_tools->getUserNotes($id, $coll_id);
-            if (count($user_notes) > 0) {
-                $str .= '<tr><td><h3>+ '._NOTES.'</h3></td><td></td><td></td><td></td><td></td></tr>';
-                for ($i = 0; $i < count($user_notes); ++$i) {
-                    //Get data
-                    $idNote = $user_notes[$i]['id'];
-                    //$noteShort = $request->cut_string($user_notes[$i]['label'], 50);
-                    $noteShort = $request->cut_string(
-                        str_replace(array("'", "\r", "\n", '"'), array("'", ' ', ' ', '&quot;'), $user_notes[$i]['label']),
-                        50
-                    );
-                    $noteShort = functions::xssafe($noteShort);
-                    $note = $user_notes[$i]['label'];
-                    $userArray = $users_tools->get_user($user_notes[$i]['author']);
-                    $date = $request->dateformat($user_notes[$i]['date']);
-
-                    $check = ' ';
-
-                    $str .= '<tr><td></td><td>'.$noteShort.'</td><td>'
-                                 .$userArray['firstname'].' '.$userArray['lastname']
-                                 .'</td><td>'.$date.'</td><td><input id="note_'.$idNote.'" class="checkPrintFolder" type="checkbox" name="notes[]"  value="'
-                                 .$idNote.'"  '.$check.'/></td></tr>';
-                }
-            }
-        }
-
-        $str .= '</body>';
-        $str .= '</table>';
-
-        $path_to_script = $_SESSION['config']['businessappurl']
-        .'index.php?display=true&module=visa&page=printFolder_ajax';
-
-        $str .= '<hr/>';
-        $str .= '<input style="margin-left:44%" type="button" name="send" id="send" value="Imprimer" class="button" onclick="printFolder(\''.$id.'\', \''.$coll_id.'\', \'print_folder_form\', \''.$path_to_script.'\');" /> ';
-        $str .= '</form>';
-        $str .= '</div>';
-
-        return $str;
-    }
-
-    public function isAllAttachementSigned($res_id)
-    {
-        $db = new Database();
-        $stmt2 = $db->query("SELECT count(1) as nb from res_attachments WHERE in_signature_book = true AND signatory_user_serial_id IS NULL AND status NOT IN ('DEL','OBS','TMP') AND attachment_type NOT IN ('converted_pdf','print_folder','signed_response') AND res_id_master = ?", array($res_id));
-        $res2 = $stmt2->fetchObject();
-        $stmt3 = $db->query("SELECT count(1) as nb from res_attachments WHERE in_signature_book = true AND status NOT IN ('DEL','OBS','TMP') AND attachment_type NOT IN ('converted_pdf','print_folder','signed_response') AND res_id_master = ?", array($res_id));
-        $res3 = $stmt3->fetchObject();
-        if ($res3->nb == 0) {
-            return 'noAttachment';
-        } elseif ($res2->nb == 0) {
-            return 'yes';
-        } else {
-            return false;
-        }
-    }
-
-    public function currentUserSignRequired($res_id)
-    {
-        $user_id = $this->getCurrentUserStep($res_id);
-        if ($_SESSION['user']['UserId'] != $user_id) {
-            return 'false';
-        }
-        $db = new Database();
-        $stmt = $db->query("SELECT count(listinstance_id) as nb from listinstance l where l.res_id=? AND l.item_id=? AND l.difflist_type='VISA_CIRCUIT' AND l.requested_signature='true'", array($res_id, $user_id));
-        $res = $stmt->fetchObject();
-        $stmt2 = $db->query("SELECT count(1) as nb from res_attachments r where r.res_id_master=? AND r.signatory_user_serial_id = (select id from users where user_id = ?) AND status NOT IN ('DEL','OBS','TMP') AND attachment_type NOT IN ('converted_pdf','print_folder')", array($res_id, $user_id));
-        $res2 = $stmt2->fetchObject();
-
-        if ($res->nb > 0 && $res2->nb == 0) {
-            return 'true';
-        } else {
-            return 'false';
-        }
-    }
 }
 
 abstract class PdfNotes_Abstract extends FPDI
 {
     public function LoadData($tab, $collId)
     {
-        require_once 'modules/notes/notes_tables.php';
         require_once 'core/class/class_request.php';
         $request = new request();
         // Lecture des lignes du fichier
@@ -1032,7 +106,7 @@ abstract class PdfNotes_Abstract extends FPDI
             //Check if ID exists
             $stmt2 = $db2->query(
                 'SELECT n.identifier, n.creation_date, n.user_id, n.note_text, u.lastname, '
-                .'u.firstname FROM '.NOTES_TABLE.' n inner join '.USERS_TABLE
+                .'u.firstname FROM notes n inner join '.USERS_TABLE
                 .' u on n.user_id  = u.user_id WHERE n.id = :Id ',
                 [':Id' => $id]
             );
@@ -1165,141 +239,3 @@ abstract class ConcatPdf_Abstract extends FPDI
         }
     }
 }
-
-/* EXEMPLE TAB VISA_CIRCUIT
-
-Array
-(
-    [coll_id] => letterbox_coll
-    [res_id] => 190
-    [difflist_type] => entity_id
-    [sign] => Array
-        (
-            [users] => Array
-                (
-                    [0] => Array
-                        (
-                            [user_id] => sgros
-                            [lastname] => GROS
-                            [firstname] => Sébastien
-                            [entity_id] => CHEFCABINET
-                            [entity_label] => Chefferie
-                            [visible] => Y
-                            [viewed] => 0
-                            [difflist_type] => VISA_CIRCUIT
-                            [process_date] =>
-                            [process_comment] =>
-                        )
-
-                )
-
-        )
-
-    [visa] => Array
-        (
-            [users] => Array
-                (
-                    [0] => Array
-                        (
-                            [user_id] => sbes
-                            [lastname] => BES
-                            [firstname] => Stéphanie
-                            [entity_id] => CHEFCABINET
-                            [entity_label] => Chefferie
-                            [visible] => Y
-                            [viewed] => 0
-                            [difflist_type] => VISA_CIRCUIT
-                            [process_date] =>
-                            [process_comment] =>
-                        )
-
-                    [1] => Array
-                        (
-                            [user_id] => fbenrabia
-                            [lastname] => BENRABIA
-                            [firstname] => Fadela
-                            [entity_id] => POLESOCIAL
-                            [entity_label] => Pôle social
-                            [visible] => Y
-                            [viewed] => 0
-                            [difflist_type] => VISA_CIRCUIT
-                            [process_date] =>
-                            [process_comment] =>
-                        )
-
-                    [2] => Array
-                        (
-                            [user_id] => bpont
-                            [lastname] => PONT
-                            [firstname] => Brieuc
-                            [entity_id] => POLEAFFAIRESETRANGERES
-                            [entity_label] => Pôle affaires étrangères
-                            [visible] => Y
-                            [viewed] => 0
-                            [difflist_type] => VISA_CIRCUIT
-                            [process_date] =>
-                            [process_comment] =>
-                        )
-
-                )
-
-        )
-
-)
-
-
-
-
-
-<h3>Document</h3><pre>Array
-(
-    [0] => Array
-        (
-            [id] => 197
-            [label] => 123456
-            [format] => pdf
-            [filesize] => 46468
-            [attachment_type] =>
-            [is_version] =>
-            [version] =>
-        )
-
-)
-</pre><h3>Document</h3><pre>Array
-(
-    [0] => Array
-        (
-            [id] => 400
-            [label] => reponse 1 v5
-            [format] => docx
-            [filesize] => 36219
-            [attachment_type] => response_project
-            [is_version] =>
-            [version] =>
-        )
-
-    [1] => Array
-        (
-            [id] => 409
-            [label] => Nouvelle PJ
-            [format] => pdf
-            [filesize] => 1204460
-            [attachment_type] => simple_attachment
-            [is_version] =>
-            [version] =>
-        )
-
-    [2] => Array
-        (
-            [id] => 410
-            [label] => pj 2
-            [format] => pdf
-            [filesize] => 361365
-            [attachment_type] => simple_attachment
-            [is_version] =>
-            [version] =>
-        )
-
-)
-
-*/
diff --git a/modules/visa/create_sep.php b/modules/visa/create_sep.php
deleted file mode 100755
index 5b503250598..00000000000
--- a/modules/visa/create_sep.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-$core_path = $_SESSION['config']['corepath'];
-$core_path = str_replace("\\", "/", $core_path);
-define('FPDF_FONTPATH',$core_path.'apps/maarch_entreprise/tools/pdflib/font/');
-//above line is import to define, otherwise it gives an error : Could not include font metric file
-require($core_path.'apps/maarch_entreprise/tools/pdflib/fpdf.php');
-
-
-if(isset($argv[1])){
-	$service = $argv[1];
-	$dossier = $argv[2];
-	$label = $argv[3];
-}
-else {
-	$service = $_REQUEST['service'];
-	$dossier = $_REQUEST['path'];
-	$label = $_REQUEST['label'];
-}
-
-
-$pdf = new FPDF();
-$pdf->AddPage();
-$pdf->Cell(180,10,'',0,1, 'C');
-$pdf->Cell(180,10,'',0,1, 'C');
-$pdf->Cell(180,10,'',0,1, 'C');
-$pdf->Cell(180,10,'',0,1, 'C');
-$pdf->Cell(180,10,'',0,1, 'C');
-$pdf->Cell(180,10,'',0,1, 'C');
-$pdf->Cell(180,10,'',0,1, 'C');
-$pdf->Cell(180,10,'',0,1, 'C');
-$pdf->SetFont('Arial','B',12);
-$pdf->Cell(180,10, utf8_decode($label),1,1, 'C');
-
-$filename = $dossier."/sep_".$service.".pdf";
-$pdf->Output($filename, 'F');
-?>
\ No newline at end of file
diff --git a/modules/visa/css/module.css b/modules/visa/css/module.css
index cad0c3c9e33..85371ed27c9 100755
--- a/modules/visa/css/module.css
+++ b/modules/visa/css/module.css
@@ -48,55 +48,10 @@
 	width:100%;
 }
 
-#modalPIN{
-	padding-top:50px;
-	z-index: 1050;
-	width: 300px;
-	height: 80px;
-	border: 2px solid #000;
-	display: none;
-	position: absolute;
-	background-color: #F2F2F2;
-	left: 40%;
-	top: 40%;
-	text-align: center;
-}
-
-#modalSaveVisaModel{
-	padding-top:20px;
-	z-index: 1050;
-	width: 300px;
-	height: 80px;
-	border: 2px solid #000;
-	display: none;
-	position: absolute;
-	background-color: #F2F2F2;
-	left: 40%;
-	top: 10%;
-	text-align: center;
-}
-
-.listDocsBasket{
-	border-collapse: collapse;
-	height: 96%;
-	width: 100%;
-	overflow-y: scroll;
-}
-
-.listDocsBasket div{
-	width:100%;
-	border-bottom: thin solid black;
-}
-
 .selectedId{
 	background-color:#F99830;
 }
 
-
-.listDocsBasket li{
-	padding:5px;
-}
-
 #tab_visaSetWorkflow td{
 	white-space: pre;
 }
diff --git a/modules/visa/getVisaModelByTitle.php b/modules/visa/getVisaModelByTitle.php
deleted file mode 100755
index ff41e1636c6..00000000000
--- a/modules/visa/getVisaModelByTitle.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-    /*
-    *   Copyright 2008-2015 Maarch and Document Image Solutions
-    *
-    *   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' . DIRECTORY_SEPARATOR . 'visa' . DIRECTORY_SEPARATOR
-            . 'class' . DIRECTORY_SEPARATOR . 'class_modules_tools.php';
-
-$core = new core_tools();
-$core->test_user();
-
-$title = $_REQUEST['title'];
-
-$visa = new visa();
-$isFree = $visa->isWorkflowTitleFree($title);
-$response = ['isWorkflowTitleFree' => $isFree];
-
-echo json_encode($response);
-exit();
\ No newline at end of file
diff --git a/modules/visa/js/functions.js b/modules/visa/js/functions.js
index 1ce45cc7305..8b137891791 100755
--- a/modules/visa/js/functions.js
+++ b/modules/visa/js/functions.js
@@ -1,418 +1 @@
-function addVisaUser(users) {
-    if (!users) {
-        nb_visa = $j(".droptarget").length;
-        next_visa = nb_visa + 1;
-        if(nb_visa == 0){
-            $j("#emptyVisa").hide();      
-        }
 
-        selected = ' selected="selected" ';
-
-        if($j("#isAllAttachementSigned").val() == 'allsigned' || $j("#isAllAttachementSigned").val() == 'false'){
-            signRequest = '<br/><sub><select id="signRequest_'+next_visa+'"><option value="false" '+selected+'>VISEUR</option><option value="true">SIGNATAIRE</option></select></sub>';
-        } else {
-            signRequest = '<br/><sub><select id="signRequest_'+next_visa+'" disabled="disabled"><option value="false" '+selected+'>VISEUR</option><option value="true">SIGNATAIRE</option></select></sub>';
-        }
-
-        $j("#visa_content").append('<div class="droptarget" id="visa_' + next_visa + '" draggable="true">'
-            +'<span class="visaUserStatus">'
-                +'<i class="fa fa-hourglass-half" aria-hidden="true"></i>'
-            +'</span>'
-            +'<span class="visaUserInfo">'
-                +'<sup class="visaUserPos nbResZero">'+next_visa+'</sup>&nbsp;&nbsp;'
-                +'<i class="fa fa-user fa-2x" aria-hidden="true"></i> '+ $j("select#visaUserList option:selected").text() +' <sup class="nbRes">'+$j("select#visaUserList option:selected").parent().get( 0 ).label+'</sup>'
-                +'<input class="userId" type="hidden" value="' + $j("select#visaUserList option:selected").val() + '"/><input class="visaDate" type="hidden" value=""/>'
-                +'&nbsp;&nbsp; <i id="signedUser_'+next_visa+'" title="Personne signataire" class="visaUserSign fa fa-certificate" aria-hidden="true" style="color:#F99830;visibility:hidden;"></i>'
-                + signRequest      
-            +'</span>'
-            +'<span class="visaUserAction">'
-                +'<i class="fa fa-trash-alt" aria-hidden="true" onclick="delVisaUser(this.parentElement.parentElement);"></i>'
-            +'</span>'
-            +'<span class="visaUserConsigne">'
-                +'<input type="text" class="consigne" value=""/>'
-            +'</span>'
-            +'<span id="dropZone" title="Glisser/déposer pour modifier l\'ordre du circuit" style="cursor: pointer">'
-                +'<i class="fa fa-exchange-alt fa-2x fa-rotate-90" aria-hidden="true"></i>'
-            +'</span>'
-        +'</div>');
-        
-        //prototype
-        document.getElementById("visaUserList").selectedIndex = 0;
-        $j('#visaUserList').trigger("chosen:updated");
-    } else {
-        nb_visa = $j(".droptarget").length;
-        next_visa = nb_visa + 1;
-        if(nb_visa == 0){
-            $j("#emptyVisa").hide();      
-        }
-
-        selected = ' selected="selected" ';
-
-        if($j("#isAllAttachementSigned").val() == 'allsigned' || $j("#isAllAttachementSigned").val() == 'false'){
-            if (users.requested_signature == true) {
-                signRequest = '<br/><sub><select id="signRequest_'+next_visa+'"><option value="false">VISEUR</option><option value="true" '+selected+'>SIGNATAIRE</option></select></sub>';
-            } else {
-                signRequest = '<br/><sub><select id="signRequest_'+next_visa+'"><option value="false" '+selected+'>VISEUR</option><option value="true">SIGNATAIRE</option></select></sub>';
-            }
-        } else {
-            signRequest = '<br/><sub><select id="signRequest_'+next_visa+'" disabled="disabled"><option value="false" '+selected+'>VISEUR</option><option value="true">SIGNATAIRE</option></select></sub>';
-        }
-        $j("#visa_content").append('<div class="droptarget" id="visa_' + next_visa + '" draggable="true">'
-            +'<span class="visaUserStatus">'
-                +'<i class="fa fa-hourglass-half" aria-hidden="true"></i>'
-            +'</span>'
-            +'<span class="visaUserInfo">'
-                +'<sup class="visaUserPos nbResZero">'+next_visa+'</sup>&nbsp;&nbsp;'
-                +'<i class="fa fa-user fa-2x" aria-hidden="true"></i> ' + users.lastname + ' ' + users.firstname + ' <sup class="nbRes">'+users.entity_id+'</sup>'
-                +'<input class="userId" type="hidden" value="' + users.user_id + '"/><input class="visaDate" type="hidden" value=""/>'
-                +'&nbsp;&nbsp; <i id="signedUser_'+next_visa+'" title="Personne signataire" class="visaUserSign fa fa-certificate" aria-hidden="true" style="color:#F99830;visibility:hidden;"></i>'
-                + signRequest 
-                +'</span>'
-            +'<span class="visaUserAction">'
-                +'<i class="fa fa-trash-alt" aria-hidden="true" onclick="delVisaUser(this.parentElement.parentElement);"></i>'
-            +'</span>'
-            +'<span class="visaUserConsigne">'
-                +'<input type="text" class="consigne" value="' + users.process_comment + '"/>'
-            +'</span>'
-            +'<span id="dropZone" title="Glisser/déposer pour modifier l\'ordre du circuit" style="cursor: pointer">'
-                +'<i class="fa fa-exchange-alt fa-2x fa-rotate-90" aria-hidden="true"></i>'
-            +'</span>'
-        +'</div>');
-        
-    }
-    resetPosVisa();
-}
-function delVisaUser(target) {
-    var id = '#' + target.id;
-
-    if ($j(".droptarget").length == 1) {
-        $j("#emptyVisa").show();
-    }
-    $j(id).remove();
-
-    resetPosVisa();
-
-}
-function resetPosVisa () {
-    i = 1;
-    $j(".droptarget").each(function() {
-        this.id = 'visa_' + i;
-        $j("#" + this.id).find("select[id^=signRequest_]")[0].id='signRequest_'+i;
-        $j("#" + this.id).find("[id^=signedUser_]")[0].id='signedUser_'+i;
-        $j("#" + this.id).find(".visaUserPos").text(i);
-        i++;
-    });
-    i--;            
-
-}
-function updateVisaWorkflow(resId) {
-    var i = 0;
-    var userList = [];
-    var hasSignatory = false;
-    if (($j("select[id^=signRequest_] option:selected[value=true]").length == 0) && $j(".droptarget").length != 0) {
-        $j('#signRequest_'+i).val("true");
-    }
-    if ($j(".droptarget").length) {
-        $j(".droptarget").each(function () {
-            if ($j("#signRequest_"+(i+1)+" option:selected[value=true]").length) {
-                userRequestSign=true;
-            } else {
-                userRequestSign=false;
-            }
-            if ($j("#signedUser_"+(i+1)).css('visibility') == 'visible') {
-                userSignatory=true;
-            } else {
-                userSignatory=false;
-            }
-
-            userId = $j("#" + this.id).find(".userId").val();
-            userConsigne = $j("#" + this.id).find(".consigne").val();
-            userVisaDate = $j("#" + this.id).find(".visaDate").val();
-            userPos = i;
-            // last one is signatory if no one selected
-            if(userRequestSign || userSignatory){
-                hasSignatory = true;
-            }
-            if ($j("#signRequest_"+(i+2)).length == 0 && !hasSignatory) {
-                userRequestSign=true;
-                $j('#signRequest_'+(i+1)).val("true");
-            }
-            userList.push({userId: userId, userPos: userPos, userConsigne: userConsigne, userVisaDate: userVisaDate, userRequestSign: userRequestSign, userSignatory: userSignatory});
-            i++;
-        });
-    }
-    $j.ajax({
-       url : 'index.php?display=true&module=visa&page=updateVisaWF',
-       type : 'POST',
-       dataType : 'JSON',
-       data: {
-           resId: resId,
-            userList: JSON.stringify(userList)
-       },
-       success : function(response){
-            if (response.status == 0) {
-                var modInfo = $j('<div class="info" id="main_info" onclick="this.remove();">Mise à jour du circuit effectuée</div>');
-                modInfo.appendTo('body');
-                modInfo.css({'display' : 'table-cell'});
-                setTimeout(function() {
-                    modInfo.remove();
-                }, 5000);
-                
-                if(parent.$j('#visa_tab').length){
-                    eval(response.exec_js);
-                }
-                if(parent.$j('.contentShow iframe').length){
-                    parent.$j('.contentShow iframe')[0].contentWindow.location.reload(true);
-                }
-            } else if (response.status != 1) {
-                alert(response.error_txt)
-            }
-       },
-       error : function(error){
-           alert(error);
-       }
-
-    });
-    
-}
-function saveVisaWorkflowAsModel () {
-    var $i = 0;
-    var userList = [];
-    var title = $j("#titleModel").val();
-    
-    if($j(".droptarget").length){
-        $j(".droptarget").each(function() {
-            //console.log('viseur : '+$j("#"+this.id+" .userdId").val());
-            userId = $j("#"+this.id).find(".userId").val();
-            userConsigne = $j("#"+this.id).find(".consigne").val();
-            userVisaDate = $j("#"+this.id).find(".visaDate").val();
-            userPos = $i;
-            userList.push({userId:userId, userPos:userPos, userConsigne:userConsigne, userVisaDate:userVisaDate});        
-            $i++;
-        });
-        $j.ajax({
-            url : 'index.php?display=true&module=visa&page=saveVisaModel',
-            type : 'POST',
-            dataType : 'JSON',
-            data: {
-                title: title,
-                userList: JSON.stringify(userList)
-            },
-            success : function(response){
-                if (response.status == 0) {
-                    $('divInfoVisa').innerHTML = 'Modèle enregistré';
-                    $('divInfoVisa').style.display = 'table-cell';
-                    Element.hide.delay(5, 'divInfoVisa');
-                    $j('#modalSaveVisaModel').hide();
-                    eval(response.exec_js);
-                } else {
-                    alert(response.error_txt)
-                }
-            },
-            error : function(error){
-                alert(error);
-            }
-
-         });
-   
-    }else{
-        alert('Aucun utilisateur dans le circuit !');
-    }
-    
-}
-function loadVisaModelUsers() {
-    
-    var objectId = $j("select#modelList option:selected").val();
-    var objectType = 'VISA_CIRCUIT';
-    $j.ajax({
-            url : 'index.php?display=true&module=visa&page=load_listmodel_visa_users',
-            type : 'POST',
-            dataType : 'JSON',
-            data: {
-                objectType: objectType,
-                objectId: objectId
-            },
-            success : function(response){
-                if (response.status == 0) {
-                    
-                    var userList = response.result;
-                    if(userList){
-                        userList.each(function(user, key) {
-                            addVisaUser(user);
-                         });  
-                    }
-                    
-
-                } else {
-                    alert(response.error_txt);
-                }
-            },
-            error : function(error){
-                alert(error);
-            }
-
-         });
-         
-    //prototype
-    document.getElementById("modelList").selectedIndex = 0;
-    $j('#modelList').trigger("chosen:updated");
-}
-
-function initDragNDropVisa() {
-    document.getElementById("visa_content").addEventListener("dragstart", function(event) {
-        $j(".droptarget").not(".vised,.currentVis").css("border","dashed 2px #135F7F33");
-        // The dataTransfer.setData() method sets the data type and the value of the dragged data
-        event.dataTransfer.setData("Text", event.target.id);
-
-        // Output some text when starting to drag the p element
-        //document.getElementById("demo").innerHTML = "Started to drag the p element.";
-
-        // Change the opacity of the draggable element
-        event.target.style.opacity = "0.4";
-    });
-
-    // While dragging the p element, change the color of the output text
-    document.getElementById("visa_content").addEventListener("drag", function(event) {
-        //document.getElementById("demo").style.color = "red";
-    });
-
-    // Output some text when finished dragging the p element and reset the opacity
-    document.getElementById("visa_content").addEventListener("dragend", function(event) {
-        //document.getElementById("demo").innerHTML = "Finished dragging the p element.";
-        $j(".droptarget").not(".vised,.currentVis").css("border","dashed 2px #135F7F33");
-        event.target.style.opacity = "1";
-    });
-
-
-    /* Events fired on the drop target */
-
-    // When the draggable p element enters the droptarget, change the DIVS's border style
-    document.getElementById("visa_content").addEventListener("dragenter", function(event) {
-        if ( event.target.className == "droptarget") {
-            event.target.style.border = "dashed 2px green";
-        }
-    });
-
-    // By default, data/elements cannot be dropped in other elements. To allow a drop, we must prevent the default handling of the element
-    document.getElementById("visa_content").addEventListener("dragover", function(event) {
-        event.preventDefault();
-    });
-
-    // When the draggable p element leaves the droptarget, reset the DIVS's border style
-    document.getElementById("visa_content").addEventListener("dragleave", function(event) {
-        if ( event.target.className == "droptarget" ) {
-            event.target.style.border = "dashed 2px #ccc";
-        }
-    });
-
-    /* On drop - Prevent the browser default handling of the data (default is open as link on drop)
-       Reset the color of the output text and DIV's border color
-       Get the dragged data with the dataTransfer.getData() method
-       The dragged data is the id of the dragged element ("drag1")
-       Append the dragged element into the drop element
-    */
-    document.getElementById("visa_content").addEventListener("drop", function(event) {
-        event.preventDefault();
-        if ( event.target.className == "droptarget" ) {
-            /*event.target.style.border = "";
-            var data = event.dataTransfer.getData("Text");
-            var oldContent = event.target.innerHTML;
-            var draggedConsigne = $j('#'+data+' .consigne').val();
-            var replaceConsigne = $j('#'+event.target.id+' .consigne').val();
-            event.target.innerHTML = document.getElementById(data).innerHTML;
-            $j('#'+event.target.id+' .consigne').val(draggedConsigne);
-            document.getElementById(data).innerHTML = oldContent;
-            $j('#'+data+' .consigne').val(replaceConsigne);*/
-            var data = event.dataTransfer.getData("Text");
-            var target =event.target.id;
-            posData = data.split("_");
-            posTarget = target.split("_");
-            if(posData[1] > posTarget[1]){
-                $j('#'+target).before($j('#'+data));
-            }else{
-                $j('#'+target).after($j('#'+data));
-            }
-            resetPosVisa();
-            
-
-        }
-    });
-    $j('#visa_content')
-        .on('focus', '.consigne', function(e) {
-            $j(this).closest('.droptarget').attr("draggable", false);
-            console.log($j(this).closest('.droptarget'));
-        })
-        .on('blur', '.consigne', function(e) {
-            $j(this).closest('.droptarget').attr("draggable", true);
-        });
-}
-
-function setTitle(input) {
-	input.title = input.value;
-}
-
-//load applet in a modal
-function loadAppletSign(url){
-    displayModal(url, 'VisaApplet', 300, 300);
-}
-
-function printFolder(res_id, coll_id, form_id, path) {
-    //console.log("printFolder");
-    new Ajax.Request(path,
-            {
-                asynchronous: false,
-                method: 'post',
-                parameters: Form.serialize(form_id),
-                encoding: 'UTF-8',
-                onSuccess: function (answer) {
-                    eval("response = " + answer.responseText);
-                    if (response.status == 0) {
-                        var id_folder = response.id_folder;
-                        var winPrint = window.open('index.php?display=true&module=attachments&page=view_attachment&res_id_master=' + res_id + '&id=' + id_folder, '', 'height=800, width=700,scrollbars=yes,resizable=yes');
-                        /*winPrint.focus();
-                         winPrint.print();*/
-                    }
-                    else if (response.status == 1 || response.status == -1) {
-                        $('divErrorPrint').innerHTML = response.error_txt;
-                        $('divErrorPrint').style.display = 'table-cell';
-                        Element.hide.delay(5, 'divErrorPrint');
-                    }
-                }
-            });
-
-}
-
-function selectAllPrintFolder() {
-    console.log($j('#allPrintFolder')[0].checked);
-    if($j('#allPrintFolder')[0].checked == true){
-        $j('.checkPrintFolder').prop('checked', true);
-    }else{
-        $j('.checkPrintFolder').prop('checked', false);
-    }
-}
-
-function generatePdf(resId, collId) {
-    $j("#spinner_"+resId).addClass( "fa-spin" );
-    $j.ajax({
-        url: '?display=true&module=visa&page=generatePdf',
-        type : 'POST',
-        dataType : 'json',
-        data: {
-            res_id : resId,
-            coll_id : collId
-        },
-        success: function(result) {
-            if (result.status == "0") {
-                parent.document.getElementById('uniqueDetailsIframe').contentWindow.location.reload();
-            } else {
-                $j("#spinner_"+resId).removeClass( "fa-spin" );
-                $j("#spinner_"+resId).removeClass( "fa-sync-alt" );
-                $j("#spinner_"+resId).addClass( "fa-exclamation-triangle" );
-                $j("#spinner_"+resId).css({"cursor":"initial"})
-                $j("#spinner_"+resId).prop('title', result.error_txt);
-                $j("#gen_"+resId).prop("onclick", null).off("click");
-                alert(result.error_txt);
-            }
-        }
-    });
-}
diff --git a/modules/visa/lang/en.php b/modules/visa/lang/en.php
index baac6cf3358..5a1eb2e39f8 100755
--- a/modules/visa/lang/en.php
+++ b/modules/visa/lang/en.php
@@ -1,13 +1,5 @@
 <?php
 
-if (!defined('_PRINTFOLDER')) {
-    define('_PRINTFOLDER', 'Print folder');
-}
-
-if (!defined('_NO_PDF_FILE')) {
-    define('_NO_PDF_FILE', 'No pdf file for this file');
-}
-
 // CIRCUIT DE VISA
 if (!defined('_VISA_WORKFLOW')) {
     define('_VISA_WORKFLOW', 'Visa workflow');
@@ -18,18 +10,6 @@ if (!defined('_INTERRUPT_WORKFLOW')) {
 if (!defined('_VISA_WORKFLOW_COMMENT')) {
     define('_VISA_WORKFLOW_COMMENT', 'Visa workflow management');
 }
-if (!defined('_VIEW_VISA_WORKFLOW')) {
-    define('_VIEW_VISA_WORKFLOW', 'Visa workflow view');
-}
-if (!defined('_VIEW_VISA_WORKFLOW_DESC')) {
-    define('_VIEW_VISA_WORKFLOW_DESC', 'Allows to view the visa workflow in the parts of diffusion list and in those of progress.');
-}
-if (!defined('_EMPTY_USER_LIST')) {
-    define('_EMPTY_USER_LIST', 'Users list is empty');
-}
-if (!defined('_EMPTY_VISA_WORKFLOW')) {
-    define('_EMPTY_VISA_WORKFLOW', 'No set visa flow');
-}
 
 if (!defined('_NO_VISA')) {
     define('_NO_VISA', 'No designed person on visa');
@@ -37,12 +17,6 @@ if (!defined('_NO_VISA')) {
 if (!defined('_NO_RESPONSE_PROJECT_VISA')) {
     define('_NO_RESPONSE_PROJECT_VISA', 'Please, integrate at least one attachment to signature book');
 }
-if (!defined('_NO_CONVERTED_PDF_VISA')) {
-    define('_NO_CONVERTED_PDF_VISA', 'Please edit your attachment(s)');
-}
-if (!defined('_PLEASE_CONVERT_PDF_VISA')) {
-    define('_PLEASE_CONVERT_PDF_VISA', 'Please edit the following attachments : ');
-}
 
 // CIRCUIT D"AVIS
 if (!defined('_AVIS_WORKFLOW')) {
diff --git a/modules/visa/lang/fr.php b/modules/visa/lang/fr.php
index 0d6cab89f50..3a13f44f118 100755
--- a/modules/visa/lang/fr.php
+++ b/modules/visa/lang/fr.php
@@ -1,13 +1,5 @@
 <?php
 
-if (!defined('_PRINTFOLDER')) {
-    define('_PRINTFOLDER', "Dossier d'impression");
-}
-
-if (!defined('_NO_PDF_FILE')) {
-    define('_NO_PDF_FILE', 'Aucun PDF présent pour ce fichier');
-}
-
 // CIRCUIT DE VISA
 if (!defined('_VISA_WORKFLOW')) {
     define('_VISA_WORKFLOW', 'Circuit de visa');
@@ -18,18 +10,6 @@ if (!defined('_INTERRUPT_WORKFLOW')) {
 if (!defined('_VISA_WORKFLOW_COMMENT')) {
     define('_VISA_WORKFLOW_COMMENT', 'Gestion du circuit de visa');
 }
-if (!defined('_VIEW_VISA_WORKFLOW')) {
-    define('_VIEW_VISA_WORKFLOW', 'Visualisation du circuit de visa');
-}
-if (!defined('_VIEW_VISA_WORKFLOW_DESC')) {
-    define('_VIEW_VISA_WORKFLOW_DESC', "Permet de visualiser le circuit de visa dans les parties de liste de diffusion et dans celles d'avancement.");
-}
-if (!defined('_EMPTY_USER_LIST')) {
-    define('_EMPTY_USER_LIST', 'La liste des utilisateurs est vide');
-}
-if (!defined('_EMPTY_VISA_WORKFLOW')) {
-    define('_EMPTY_VISA_WORKFLOW', 'Aucun circuit de visa paramétré');
-}
 
 if (!defined('_NO_VISA')) {
     define('_NO_VISA', 'Aucune personne désignée en visa');
@@ -37,12 +17,6 @@ if (!defined('_NO_VISA')) {
 if (!defined('_NO_RESPONSE_PROJECT_VISA')) {
     define('_NO_RESPONSE_PROJECT_VISA', 'Veuillez intégrer au moins une pièce jointe au parapheur.');
 }
-if (!defined('_NO_CONVERTED_PDF_VISA')) {
-    define('_NO_CONVERTED_PDF_VISA', 'Veuillez éditer votre/vos pièce(s) jointe(s)');
-}
-if (!defined('_PLEASE_CONVERT_PDF_VISA')) {
-    define('_PLEASE_CONVERT_PDF_VISA', 'Veuillez éditer les pièces jointes suivantes : ');
-}
 
 // CIRCUIT D"AVIS
 if (!defined('_AVIS_WORKFLOW')) {
diff --git a/modules/visa/lang/nl.php b/modules/visa/lang/nl.php
index 5474d5dd5fc..29d7385e74c 100755
--- a/modules/visa/lang/nl.php
+++ b/modules/visa/lang/nl.php
@@ -4,12 +4,7 @@
  * See LICENCE.txt file at the root folder for more details.
  * This file is part of Maarch software.
  */
-if (!defined('_PRINTFOLDER')) {
-    define('_PRINTFOLDER', 'Afdrukmap');
-}
-if (!defined('_NO_PDF_FILE')) {
-    define('_NO_PDF_FILE', 'Geen PDF voor dit bestand aanwezig');
-}
+
 if (!defined('_VISA_WORKFLOW')) {
     define('_VISA_WORKFLOW', 'Goedkeuringscircuit');
 }
@@ -19,30 +14,12 @@ if (!defined('_INTERRUPT_WORKFLOW')) {
 if (!defined('_VISA_WORKFLOW_COMMENT')) {
     define('_VISA_WORKFLOW_COMMENT', 'Beheer van het goedkeuringscircuit');
 }
-if (!defined('_VIEW_VISA_WORKFLOW')) {
-    define('_VIEW_VISA_WORKFLOW', 'Weergave van het goedkeuringscircuit');
-}
-if (!defined('_VIEW_VISA_WORKFLOW_DESC')) {
-    define('_VIEW_VISA_WORKFLOW_DESC', 'Om het goedkeuringscircuit weer te geven in de delen van de verdelingslijst en in de vooruitgangslijsten.');
-}
-if (!defined('_EMPTY_USER_LIST')) {
-    define('_EMPTY_USER_LIST', 'De lijst van gebruikers is leeg');
-}
-if (!defined('_EMPTY_VISA_WORKFLOW')) {
-    define('_EMPTY_VISA_WORKFLOW', 'Geen ingesteld berichtencircuit');
-}
 if (!defined('_NO_VISA')) {
     define('_NO_VISA', 'Geen persoon aangeduid in de goedkeuring');
 }
 if (!defined('_NO_RESPONSE_PROJECT_VISA')) {
     define('_NO_RESPONSE_PROJECT_VISA', 'Gelieve minstens één bijlage in de parafeerder te integreren.');
 }
-if (!defined('_NO_CONVERTED_PDF_VISA')) {
-    define('_NO_CONVERTED_PDF_VISA', 'Bewerk uw bijlage(n)');
-}
-if (!defined('_PLEASE_CONVERT_PDF_VISA')) {
-    define('_PLEASE_CONVERT_PDF_VISA', 'Bewerk de volgende bijlagen:');
-}
 if (!defined('_AVIS_WORKFLOW')) {
     define('_AVIS_WORKFLOW', 'Berichtencircuit');
 }
diff --git a/modules/visa/load_listmodel_visa.php b/modules/visa/load_listmodel_visa.php
deleted file mode 100755
index 4fe6c6a5beb..00000000000
--- a/modules/visa/load_listmodel_visa.php
+++ /dev/null
@@ -1,199 +0,0 @@
-<?php
-/**
-* File : change_doctype.php.
-*
-* Script called by an ajax object to process the document type change during
-* indexing (index_mlb.php)
-*
-* @version 1
-*
-* @since 10/2005
-*
-* @license GPL v3
-* @author  Cyril Vazquez  <dev@maarch.org>
-*/
-require_once 'modules/entities/class/class_manage_listdiff.php';
-require_once 'modules'.DIRECTORY_SEPARATOR.'visa'.DIRECTORY_SEPARATOR
-            .'class'.DIRECTORY_SEPARATOR
-            .'class_modules_tools.php';
-
-    $db = new Database();
-    $core = new core_tools();
-    $core->load_lang();
-    $diffList = new diffusion_list();
-
-    $objectType = $_REQUEST['objectType'];
-    $objectId = $_REQUEST['objectId'];
-    $origin = 'visa';
-
-    // Get listmodel_parameters
-    $_SESSION[$origin]['difflist_type'] = $diffList->get_difflist_type($objectType);
-
-    if ($objectId != '') {
-        $_SESSION[$origin]['difflist_object']['object_id'] = $objectId;
-        if ($objectType == 'entity_id') {
-            $stmt = $db->query('select entity_label from entities where entity_id = ?', array($objectId));
-            $res = $stmt->fetchObject();
-            if ($res->entity_label != '') {
-                $_SESSION[$origin]['difflist_object']['object_label'] = $res->entity_label;
-            }
-        }
-    }
-
-    $roles = $diffList->list_difflist_roles();
-    $circuit = $_SESSION[$origin]['diff_list'];
-    if (!isset($circuit['visa']['users']) && !isset($circuit['sign']['users'])) {
-        echo "{status : 1, error_txt : 'Modèle inexistant'}";
-        exit();
-    }
-    if ($circuit['object_type'] == 'VISA_CIRCUIT') {
-        $id_tab = 'tab_visaSetWorkflow';
-        $id_form = 'form_visaSetWorkflow';
-    } else {
-        $id_tab = 'tab_avisSetWorkflow';
-        $id_form = 'form_avisSetWorkflow';
-    }
-
-    $content = '';
-
-    $content .= '<thead><tr>';
-    $content .= '<th style="width:40%;" align="left" valign="bottom"><span>Visa</span></th>';
-    $content .= '<th style="width:5%;"></th>';
-    $content .= '<th style="width:5%;"></th>';
-    $content .= '<th style="width:5%;"></th>';
-    $content .= '<th style="width:5%;"></th>';
-    $content .= '<th style="width:45%;" align="left" valign="bottom"><span>Consigne</span></th>';
-    $content .= '<th style="width:0;display:none" align="left" valign="bottom"></th>';
-    $content .= '<th style="width:0;display:none" align="center" valign="bottom"></th>';
-
-    $content .= '</tr></thead>';
-    $content .= '<tbody>';
-    $color = '';
-    $visa = new visa();
-    if (isset($circuit['visa']['users'])) {
-        foreach ($circuit['visa']['users'] as $seq => $step) {
-            if ($color == ' class="col"') {
-                $color = '';
-            } else {
-                $color = ' class="col"';
-            }
-
-            $content .= '<tr '.$color.'>';
-            $content .= '<td>';
-
-            $content .= '<span id="rank_'.$seq.'"> <span class="nbResZero" style="font-weight:bold;opacity:0.5;">'.($seq + 1).'</span> </span>';
-            $content .= '<select id="conseiller_'.$seq.'" name="conseiller_'.$seq.'" >';
-            $content .= '<option value="" >Sélectionnez un utilisateur</option>';
-
-            $tab_userentities = $visa->getEntityVis();
-            $tab_users = $visa->getUsersVis();
-
-            /* Order by parent entity **/
-            foreach ($tab_userentities as $key => $value) {
-                $content .= '<optgroup label="'.$tab_userentities[$key]['entity_id'].'">';
-                foreach ($tab_users as $user) {
-                    if ($tab_userentities[$key]['entity_id'] == $user['entity_id']) {
-                        $selected = ' ';
-                        if ($user['id'] == $step['user_id']) {
-                            $selected = ' selected';
-                        }
-                        $content .= '<option value="'.$user['id'].'" '.$selected.'>'.$user['lastname'].', '.$user['firstname'].'</option>';
-                    }
-                }
-                $content .= '</optgroup>';
-            }
-            $content .= '</select>';
-
-            $content .= '</select>';
-            $content .= '<span id="signatory_'.$seq.'">';
-            if (empty($circuit['sign']['users']) && $seq == count($circuit['visa']['users']) - 1) {
-                $content .= ' <i title="Signataire" style="color : #F99830" class="fa fa-certificate fa-lg fa-fw"></i>';
-            }
-            $content .= '</span></td>';
-
-            $up = ' style="visibility:visible"';
-            $down = ' style="visibility:visible"';
-            if (empty($circuit['sign']['users']) && $seq == count($circuit['visa']['users']) - 1) {
-                $add = ' style="visibility:visible"';
-                $down = ' style="visibility:hidden"';
-            } else {
-                $add = ' style="visibility:hidden"';
-            }
-            if ($seq == 0) {
-                $up = ' style="visibility:hidden"';
-            }
-
-            $content .= '<td><a href="javascript://"  '.$down.' id="down_'.$seq.'" name="down_'.$seq.'" onclick="deplacerLigne(this.parentNode.parentNode.rowIndex, this.parentNode.parentNode.rowIndex+2,\''.$id_tab.'\')" ><i class="fa fa-arrow-down fa-2x"></i></a></td>';
-            $content .= '<td><a href="javascript://"   '.$up.' id="up_'.$seq.'" name="up_'.$seq.'" onclick="deplacerLigne(this.parentNode.parentNode.rowIndex, this.parentNode.parentNode.rowIndex-1,\''.$id_tab.'\')" ><i class="fa fa-arrow-up fa-2x"></i></a></td>';
-            $content .= '<td><a href="javascript://" onclick="delRow(this.parentNode.parentNode.rowIndex,\''.$id_tab.'\')" id="suppr_'.$j.'" name="suppr_'.$j.'" style="visibility:visible;" ><i class="fa fa-user-times fa-2x"></i></a></td>';
-            $content .= '<td><a href="javascript://" '.$add.'  id="add_'.$seq.'" name="add_'.$seq.'" onclick="addRow(\''.$id_tab.'\')" ><i class="fa fa-user-plus fa-2x"></i></a></td>';
-            $content .= '<td><input type="text" id="consigne_'.$seq.'" name="consigne_'.$seq.'" value="'.$step['process_comment'].'" onmouseover="setTitle(this);" style="width:95%;"/></td>';
-            $content .= '<td style="display:none"><input type="hidden" value="'.$step['process_date'].'" id="date_'.$seq.'" name="date_'.$seq.'"/></td>';
-            $content .= '<td style="display:none"><input type="checkbox" style="visibility:hidden" id="isSign_'.$seq.'" name="isSign_'.$seq.'" /></td>';
-            $content .= '<td><i class="fa fa-plus fa-lg" title="Nouvel utilisateur ajouté"></i></td>';
-            $content .= '</tr>';
-        }
-    }
-
-//ajout signataire
-    if (!empty($circuit['sign']['users'])) {
-        $seq = count($circuit['visa']['users']);
-
-        if ($color == ' class="col"') {
-            $color = '';
-        } else {
-            $color = ' class="col"';
-        }
-
-        $content .= '<tr '.$color.'>';
-
-        $content .= '<td>';
-        $content .= '<span id="rank_'.$seq.'"> <span class="nbResZero" style="font-weight:bold;opacity:0.5;">'.($seq + 1).'</span> </span>';
-        $content .= '<select id="conseiller_'.$seq.'" name="conseiller_'.$seq.'" >';
-        $content .= '<option value="" >Sélectionnez un utilisateur</option>';
-
-        $tab_users = $visa->getUsersVis();
-        $tab_userentities = $visa->getEntityVis();
-
-        /* Order by parent entity **/
-        foreach ($tab_userentities as $key => $value) {
-            $content .= '<optgroup label="'.$tab_userentities[$key]['entity_id'].'">';
-            foreach ($tab_users as $user) {
-                if ($tab_userentities[$key]['entity_id'] == $user['entity_id']) {
-                    $selected = ' ';
-                    if ($user['id'] == $circuit['sign']['users'][0]['user_id']) {
-                        $selected = ' selected';
-                    }
-                    $content .= '<option value="'.$user['id'].'" '.$selected.'>'.$user['lastname'].', '.$user['firstname'].'</option>';
-                }
-            }
-            $content .= '</optgroup>';
-        }
-        $content .= '</select>';
-        $content .= "<span id=\"signatory_' . $j . '\"> <i title=\"Signataire\" style=\"color : #F99830\" class=\"fa fa-certificate fa-lg fa-fw\"></i></span>";
-        $content .= '</td>';
-
-        $up = 'style="visibility:visible"';
-        $down = 'style="visibility:hidden"';
-        $add = 'style="visibility:visible"';
-        $del = 'style="visibility:visible"';
-        if (count($circuit['visa']['users']) == 0) {
-            $up = 'style="visibility:hidden"';
-            $del = 'style="visibility:hidden"';
-        }
-
-        $content .= '<td><a href="javascript://" '.$down." id=\"down_$seq\" name=\"down_$seq\"".' onclick="deplacerLigne(this.parentNode.parentNode.rowIndex, this.parentNode.parentNode.rowIndex+2,\''.$id_tab.'\')" ><i class="fa fa-arrow-down fa-2x"></i></a></td>';
-        $content .= '<td><a href="javascript://" '.$up." id=\"up_$seq\" name=\"up_$seq\"".' onclick="deplacerLigne(this.parentNode.parentNode.rowIndex, this.parentNode.parentNode.rowIndex-1,\''.$id_tab.'\')" ><i class="fa fa-arrow-up fa-2x"></i></a></td>';
-        $content .= '<td><a href="javascript://" '.$del." id=\"suppr_$seq\" name=\"suppr_$seq\"".' onclick="delRow(this.parentNode.parentNode.rowIndex,\''.$id_tab."')\" ><i class='fa fa-user-times fa-2x'></i></a></td>";
-        $content .= '<td><a href="javascript://" '.$add." id=\"add_$seq\" name=\"add_$seq\"".' onclick="addRow(\''.$id_tab.'\')" ><i class="fa fa-user-plus fa-2x"></i></a></td>';
-        $content .= '<td><input type="text" id="consigne_'.$seq.'" name="consigne_'.$seq.'" value="'.$circuit['sign']['users'][0]['process_comment'].'" onmouseover="setTitle(this);" style="width:95%;"/></td>';
-        $content .= '<td style="display:none"><input type="hidden" id="date_'.$seq.'" name="date_'.$seq.'" value="'.$circuit['sign']['users'][0]['process_date'].'" /></td>';
-        $content .= '<td style="display:none"><input type="checkbox" style="visibility:hidden" id="isSign_'.$seq.'" name="isSign_'.$seq.'" checked/></td>';
-        $content .= '<td><i class="fa fa-plus fa-lg" title="Nouvel utilisateur ajouté"></i></td>';
-        $content .= '</tr>';
-    }
-
-    $content .= '</tbody>';
-
-    echo "{status : 0, div_content : '".addslashes($content.'<br>')."'}";
-    exit();
diff --git a/modules/visa/load_listmodel_visa_users.php b/modules/visa/load_listmodel_visa_users.php
deleted file mode 100755
index 22b9930e838..00000000000
--- a/modules/visa/load_listmodel_visa_users.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
-* File : load_listmodel_visa_users.php
-*
-* Script called by an ajax object to retrieve users in visa circuit
-*
-*
-* @package  maarch
-* @version 1
-* @since 10/2005
-* @license GPL v3
-* @author  Alex ORLUC <dev@maarch.org>
-*/
-require_once 'modules/entities/class/class_manage_listdiff.php';
-require_once "modules" . DIRECTORY_SEPARATOR . "visa" . DIRECTORY_SEPARATOR
-    . "class" . DIRECTORY_SEPARATOR
-    . "class_modules_tools.php";
-
-
-$db = new Database();
-$core = new core_tools();
-$core->load_lang();
-$diffList = new diffusion_list();
-
-$objectType = $_REQUEST['objectType'];
-$objectId = $_REQUEST['objectId'];
-$origin = 'visa';
-
-// Get listmodel_parameters
-$contentListModel = $diffList->get_listmodel($objectType, $objectId);
-
-if(!$contentListModel['visa']['users']){
-    $contentListModel['visa']['users'] = array();
-}
-
-if(!$contentListModel['sign']['users']){
-    $contentListModel['sign']['users'] = array();
-}
-
-$userList = array_merge($contentListModel['visa']['users'],$contentListModel['sign']['users']);
-
-$userList = json_encode($userList);
-
-
-echo "{\"status\" : 0, \"result\" :" . $userList . "}";
-exit();
diff --git a/modules/visa/load_toolbar_visa.php b/modules/visa/load_toolbar_visa.php
deleted file mode 100755
index 3a0e0686901..00000000000
--- a/modules/visa/load_toolbar_visa.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-$targetTab = $_REQUEST['targetTab'];
-$res_id = $_REQUEST['resId'];
-$coll_id = $_REQUEST['collId'];
-
-require_once "modules" . DIRECTORY_SEPARATOR . "visa" . DIRECTORY_SEPARATOR . "class" . DIRECTORY_SEPARATOR . "class_modules_tools.php";
-
-$db = new Database();
-$stmt = $db->query("SELECT listinstance_id from listinstance WHERE res_id= ? and coll_id = ? and (item_mode = ? OR item_mode = ?)", array($res_id, $coll_id, 'visa', 'sign'));
-$nbVisa = $stmt->rowCount();
-
-if ($nbVisa == 0){
-    $class = 'nbResZero';
-    $style2 = 'display:none;';
-    $style = '0.5';
-    $styleDetail = '#9AA7AB';
-}
-else{
-    $class = 'nbRes';
-    $style = '';
-    $style2 = 'display:inherit;';
-    $styleDetail = '#666';
-}
-if($_SESSION['req'] == 'details'){
-    if($nbVisa == 0 && strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome')){
-            $nav = 'visa_tab';
-            $style2 = 'visibility:hidden;';
-
-        }
-    if($_REQUEST['origin'] == 'parent'){
-        $js .= 'parent.$(\''.$targetTab.'\').style.color=\''.$styleDetail.'\';parent.$(\''.$targetTab.'_badge\').innerHTML = \'<span id="nb_'.$targetTab.'" style="'.$style2.'font-size: 10px;" class="'.$class.'">'.$nbVisa.'</span>\'';
-
-    }else {
-       $js .= '$(\''.$targetTab.'\').style.color=\''.$styleDetail.'\';$(\''.$targetTab.'_badge\').innerHTML = \'<span id="nb_'.$targetTab.'" style="'.$style2.'font-size: 10px;" class="'.$class.'">'.$nbVisa.'</span>\'';
-
-    }
-}else{
-    if($_REQUEST['origin'] == 'parent'){
-        $js .= 'parent.$(\''.$targetTab.'_img\').style.opacity=\''.$style.'\';parent.$(\''.$targetTab.'_badge\').innerHTML = \'&nbsp;<sup><span id="nb_'.$targetTab.'" style="'.$style2.'" class="'.$class.'">'.$nbVisa.'</span></sup>\'';
-
-    }else {
-       $js .= '$(\''.$targetTab.'_img\').style.opacity=\''.$style.'\';$(\''.$targetTab.'_badge\').innerHTML = \'&nbsp;<sup><span id="nb_'.$targetTab.'" style="'.$style2.'" class="'.$class.'">'.$nbVisa.'</span></sup>\'';
-
-    }
-}
-   
-echo "{status : 0, nav : '".$nav."',content : '', error : '', exec_js : '".addslashes($js)."'}";
-exit ();
\ No newline at end of file
diff --git a/modules/visa/printFolder_ajax.php b/modules/visa/printFolder_ajax.php
deleted file mode 100755
index eb7cd3e4158..00000000000
--- a/modules/visa/printFolder_ajax.php
+++ /dev/null
@@ -1,316 +0,0 @@
-<?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/>.
-*/
-
-function createPdfNotes($list_notes, $coll_id)
-{
-    require_once("modules".DIRECTORY_SEPARATOR."visa".DIRECTORY_SEPARATOR."class".DIRECTORY_SEPARATOR."class_modules_tools.php");
-    $pdf = new PdfNotes();
-    $pdf->addPage();
-    $data = $pdf->LoadData($list_notes, $coll_id);
-    $header = array('Nom', 'Consigne', 'Date');
-    $pdf->SetFont('Arial', 'B', 12);
-    $pdf->SetY(30);
-    //$pdf->Table($header, $data);
-    $pdf->SetWidths(array(40,30,100));
-    $pdf->SetAligns(array('C','C','C'));
-    $pdf->Row(array('Nom', 'Date', 'Note'));
-    $pdf->SetAligns(array('L','C','L'));
-    $pdf->SetFont('Arial', '', 10);
-    foreach ($data as $d) {
-        $pdf->Row($d);
-    }
-    
-    $filePathOnTmp = $_SESSION['config']['tmppath'] . DIRECTORY_SEPARATOR . "listNotes".$_SESSION['user']['UserId'].".pdf";
-    $pdf->Output($filePathOnTmp, 'F');
-    return $filePathOnTmp;
-}
-
-    
-function concat_files($folder)
-{
-    $tmpFileName = 'tmp_print_folder_' . rand() . '.pdf';
-    $filePathOnTmp = $_SESSION['config']['tmppath'] . $tmpFileName;
-
-    $command = "pdfunite " . implode(" ", $folder) . ' ' . $filePathOnTmp;
-
-        
-    exec($command.' 2>&1', $output, $return);
-
-    if (!file_exists($filePathOnTmp)) {
-        return $output[0];
-    } else {
-        return $filePathOnTmp;
-    }
-}
-
-function ajout_bdd($tmpFolderFile, $res_id_master)
-{
-    require_once 'modules/attachments/attachments_tables.php';
-    require_once 'core/class/docservers_controler.php';
-    require_once "core/class/class_security.php";
-
-    $sec = new security();
-    $docserverControler = new docservers_controler();
-    if (! isset($_SESSION['collection_id_choice'])
-        || empty($_SESSION['collection_id_choice'])
-    ) {
-        $_SESSION['collection_id_choice'] = $_SESSION['user']['collections'][0];
-    }
-
-    $docserver = $docserverControler->getDocserverToInsert(
-        $_SESSION['collection_id_choice']
-    );
-    if (empty($docserver)) {
-        $_SESSION['error'] = _DOCSERVER_ERROR . ' : '
-            . _NO_AVAILABLE_DOCSERVER . ". " . _MORE_INFOS . ".";
-        $location = "";
-    } else {
-        $filesize = filesize($tmpFolderFile);
-        $newSize = $docserverControler->checkSize(
-            $docserver,
-            $filesize
-        );
-        if ($newSize == 0) {
-            $_SESSION['error'] = _DOCSERVER_ERROR . ' : '
-                . _NOT_ENOUGH_DISK_SPACE . ". " . _MORE_INFOS . ".";
-        } else {
-            $basename = pathinfo($tmpFolderFile, PATHINFO_BASENAME);
-            $fileInfos = array(
-                "tmpDir"      => $_SESSION['config']['tmppath'],
-                "size"        => $filesize,
-                "format"      => 'pdf',
-                "tmpFileName" => $basename
-            );
-            
-            $storeResult = array();
-            $storeResult = $docserverControler->storeResourceOnDocserver(
-                $_SESSION['collection_id_choice'],
-                $fileInfos
-            );
-                    
-            if (isset($storeResult['error']) && $storeResult['error'] <> '') {
-                $_SESSION['error'] = $storeResult['error'];
-            } else {
-                $resAttach = new resource();
-                $title = "Dossier du document n°".$_SESSION['doc_id'];
-                $_SESSION['data'] = array();
-                array_push(
-                    $_SESSION['data'],
-                    array(
-                        'column' => "typist",
-                        'value' => $_SESSION['user']['UserId'],
-                        'type' => "string",
-                    )
-                );
-                array_push(
-                    $_SESSION['data'],
-                    array(
-                        'column' => "format",
-                        'value' => 'pdf',
-                        'type' => "string",
-                    )
-                );
-                array_push(
-                    $_SESSION['data'],
-                    array(
-                        'column' => "docserver_id",
-                        'value' => $storeResult['docserver_id'],
-                        'type' => "string",
-                    )
-                );
-                array_push(
-                    $_SESSION['data'],
-                    array(
-                        'column' => "status",
-                        'value' => 'TRA',
-                        'type' => "string",
-                    )
-                );
-                array_push(
-                    $_SESSION['data'],
-                    array(
-                        'column' => "offset_doc",
-                        'value' => ' ',
-                        'type' => "string",
-                    )
-                );
-                array_push(
-                    $_SESSION['data'],
-                    array(
-                        'column' => "title",
-                        'value' => $title,
-                        'type' => "string",
-                    )
-                );
-                array_push(
-                    $_SESSION['data'],
-                    array(
-                        'column' => "attachment_type",
-                        'value' => 'print_folder',
-                        'type' => "string",
-                    )
-                );
-                array_push(
-                    $_SESSION['data'],
-                    array(
-                        'column' => "coll_id",
-                        'value' => $_SESSION['collection_id_choice'],
-                        'type' => "string",
-                    )
-                );
-                array_push(
-                    $_SESSION['data'],
-                    array(
-                        'column' => "res_id_master",
-                        'value' => $_SESSION['doc_id'],
-                        'type' => "integer",
-                    )
-                );
-                
-                
-                array_push(
-                    $_SESSION['data'],
-                    array(
-                        'column' => "type_id",
-                        'value' => 0,
-                        'type' => "int",
-                    )
-                );
-
-                array_push(
-                    $_SESSION['data'],
-                    array(
-                        'column' => "relation",
-                        'value' => 1,
-                        'type' => "int",
-                    )
-                );
-                
-                $id = $resAttach->load_into_db(
-                    RES_ATTACHMENTS_TABLE,
-                    $storeResult['destination_dir'],
-                    $storeResult['file_destination_name'],
-                    $storeResult['path_template'],
-                    $storeResult['docserver_id'],
-                    $_SESSION['data'],
-                    $_SESSION['config']['databasetype']
-                );
-                
-                if ($id == false) {
-                    $_SESSION['error'] = $resAttach->get_error();
-                } else {
-                    /*if ($_SESSION['history']['attachadd'] == "true") {
-                        $hist = new history();
-                        $view = $sec->retrieve_view_from_coll_id(
-                            $_SESSION['collection_id_choice']
-                        );
-                        $hist->add(
-                            $view, $_SESSION['doc_id'], "ADD", 'attachadd',
-                            ucfirst(_DOC_NUM) . $id . ' '
-                            . _NEW_ATTACH_ADDED . ' ' . _TO_MASTER_DOCUMENT
-                            . $_SESSION['doc_id'],
-                            $_SESSION['config']['databasetype'],
-                            'apps'
-                        );
-                        $_SESSION['info'] = _NEW_ATTACH_ADDED;
-                        $hist->add(
-                            RES_ATTACHMENTS_TABLE, $id, "ADD",'attachadd',
-                            $_SESSION['info'] . " (" . $title
-                            . ") ",
-                            $_SESSION['config']['databasetype'],
-                            'attachments'
-                        );
-                    }*/
-                    return $id;
-                }
-            }
-        }
-    }
-}
-
-require_once "core/class/class_security.php";
-require_once 'modules/attachments/class/attachments_controler.php';
-require_once 'core/class/class_request.php';
-require_once 'core/class/class_resource.php';
-
-$sec = new security();
-$ac = new attachments_controler();
-$resource = new resource();
-(
-    isset($_REQUEST['join_file'])
-    && count($_REQUEST['join_file']) > 0
-)? $res_master_attached = 'Y' : $res_master_attached = 'N';
-//Version attached
-if (isset($_REQUEST['join_attachment']) && count($_REQUEST['join_attachment']) > 0) {
-    $attachment_list = join(',', $_REQUEST['join_attachment']);
-}
-//Attachments
-if (isset($_REQUEST['join_version']) && count($_REQUEST['join_version']) > 0) {
-    $version_list = join(',', $_REQUEST['join_version']);
-}
-//Notes
-if (isset($_REQUEST['notes']) && count($_REQUEST['notes']) > 0) {
-    $note_list = join(',', $_REQUEST['notes']);
-}
-$list_path_folder =  array();
-if ($res_master_attached == 'Y') {
-    $convertedDocument =  \Convert\models\AdrModel::getConvertedDocumentById(['select' => ['docserver_id', 'path', 'filename'], 'resId' => (int)$_REQUEST['join_file'][0], 'type' => 'PDF', 'collId' => 'letterbox_coll']);
-    $docserver = \Docserver\models\DocserverModel::getByDocserverId(['docserverId' => $convertedDocument['docserver_id'], 'select' => ['path_template']]);
-    $pathToDocument = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $convertedDocument['path']) . $convertedDocument['filename'];
-    
-    array_push($list_path_folder, $pathToDocument);
-}
-if (isset($_REQUEST['join_attachment']) && count($_REQUEST['join_attachment']) > 0) {
-    foreach ($_REQUEST['join_attachment'] as $id_attach) {
-        $convertedDocument =  \Convert\models\AdrModel::getConvertedDocumentById(['select' => ['docserver_id', 'path', 'filename'], 'resId' => $id_attach, 'type' => 'PDF', 'collId' => 'attachments_coll']);
-        $docserver = \Docserver\models\DocserverModel::getByDocserverId(['docserverId' => $convertedDocument['docserver_id'], 'select' => ['path_template']]);
-        $pathToDocument = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $convertedDocument['path']) . $convertedDocument['filename'];
-                
-        array_push($list_path_folder, $pathToDocument);
-    }
-}
-if (isset($_REQUEST['join_version']) && count($_REQUEST['join_version']) > 0) {
-    foreach ($_REQUEST['join_version'] as $id_attach) {
-        $convertedDocument =  \Convert\models\AdrModel::getConvertedDocumentById(['select' => ['docserver_id', 'path', 'filename'], 'resId' => $id_attach, 'type' => 'PDF', 'collId' => 'attachments_coll']);
-        $docserver = \Docserver\models\DocserverModel::getByDocserverId(['docserverId' => $convertedDocument['docserver_id'], 'select' => ['path_template']]);
-        $pathToDocument = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $convertedDocument['path']) . $convertedDocument['filename'];
-                
-        array_push($list_path_folder, $pathToDocument);
-    }
-}
-if (isset($_REQUEST['notes']) && count($_REQUEST['notes']) > 0) {
-    $path_file_notes = createPdfNotes($_REQUEST['notes'], $_SESSION['user']['collections'][0]);
-    array_push($list_path_folder, $path_file_notes);
-}
-
-if (count($list_path_folder) == 0) {
-    echo "{status : 1, error_txt : '"._NO_FILE_PRINT."'}";
-    exit();
-} else {
-    $out_file = concat_files($list_path_folder);
-    if (!file_exists($out_file)) {
-        echo "{status : -1, error_txt : \"{$out_file}\"}";
-    } else {
-        $id_folder = ajout_bdd($out_file, $_SESSION['doc_id']);
-        echo "{status : 0, id_folder : $id_folder}";
-    }
-    exit();
-}
diff --git a/modules/visa/saveVisaModel.php b/modules/visa/saveVisaModel.php
deleted file mode 100755
index c6d6eb17839..00000000000
--- a/modules/visa/saveVisaModel.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-/*
- *   Copyright 2008-2015 Maarch and Document Image Solutions
- *
- *   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/>.
- */
-
-/**
- * @brief   Save the visa diffusion list
- *
- * Save the visa diffusion list
- *
- * @file
- * @author Nicolas Couture <couture@docimsol.com>
- * @date $date$
- * @version $Revision$
- * @ingroup apps
- */
-require_once "modules" . DIRECTORY_SEPARATOR . "visa" . DIRECTORY_SEPARATOR
-        . "class" . DIRECTORY_SEPARATOR
-        . "class_modules_tools.php";
-
-
-$title = $_REQUEST['title'];
-$id_list = 'VISA_CIRCUIT_'. strtoupper(base_convert(date('U'), 10, 36));
-
-
-$userList = json_decode($_REQUEST['userList']);
-
-$visa = new visa();
-$_SESSION['visa_wf']['diff_list']['visa']['users'] = array();
-$_SESSION['visa_wf']['diff_list']['sign']['users'] = array();
-
-$i = 0;
-foreach ($userList as $user) {
-    if (++$i === count($userList)) {
-        array_push(
-                $_SESSION['visa_wf']['diff_list']['sign']['users'], array(
-            'user_id' => $user->userId,
-            'process_comment' => $user->userConsigne,
-            'process_date' => $user->userVisaDate,
-            'viewed' => 0,
-            'visible' => 'Y',
-            'difflist_type' => 'VISA_CIRCUIT'
-                )
-        );
-    } else {
-        array_push(
-                $_SESSION['visa_wf']['diff_list']['visa']['users'], array(
-            'user_id' => $user->userId,
-            'process_comment' => $user->userConsigne,
-            'process_date' => $user->userVisaDate,
-            'viewed' => 0,
-            'visible' => 'Y',
-            'difflist_type' => 'VISA_CIRCUIT'
-                )
-        );
-    }
-}
-$visa->saveModelWorkflow($id_list, $_SESSION['visa_wf']['diff_list'], 'VISA_CIRCUIT', $title);
-
-echo "{\"status\" : 0}";
-
-exit();
-?>
\ No newline at end of file
diff --git a/modules/visa/show_printFolder_tab.php b/modules/visa/show_printFolder_tab.php
deleted file mode 100755
index fa16ac06685..00000000000
--- a/modules/visa/show_printFolder_tab.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-require_once 'core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_request.php';
-require_once 'core' . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR . 'class_security.php';
-require_once "modules" . DIRECTORY_SEPARATOR . "visa" . DIRECTORY_SEPARATOR
-    . "class" . DIRECTORY_SEPARATOR
-    . "class_modules_tools.php";
-
-$res_id = $_REQUEST["resId"];
-$coll_id = $_REQUEST["collId"];
-$table = $_REQUEST["table"];
-
-$security = new security();
-$right = $security->test_right_doc($coll_id, $res_id);
-
-if(!$right){
-    exit(_NO_RIGHT_TXT);
-}
-
-$core_tools = new core_tools();
-$core_tools->load_lang();
-$core_tools->load_html();
-$core_tools->load_header('', true, false);
-$core_tools->load_js();
-    
-$print_folder = new visa();
-$frm_str .= $print_folder->showPrintFolder($coll_id, $table, $res_id);
-
-echo $frm_str;
\ No newline at end of file
diff --git a/modules/visa/show_visa_tab.php b/modules/visa/show_visa_tab.php
deleted file mode 100755
index 1363636bbe4..00000000000
--- a/modules/visa/show_visa_tab.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-require_once 'core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_request.php';
-require_once 'core'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_security.php';
-require_once 'modules'.DIRECTORY_SEPARATOR.'visa'.DIRECTORY_SEPARATOR.'class'.DIRECTORY_SEPARATOR.'class_modules_tools.php';
-
-$res_id = $_REQUEST['resId'];
-$coll_id = $_REQUEST['collId'];
-$destination = $_REQUEST['destination'];
-
-$security = new security();
-$right = $security->test_right_doc($coll_id, $res_id);
-
-if (!$right) {
-    exit(_NO_RIGHT_TXT);
-}
-
-if (isset($_REQUEST['fromDetail']) && $_REQUEST['fromDetail'] == true) {
-    $from_detail = true;
-} else {
-    $from_detail = false;
-}
-
-if (isset($_REQUEST['visaStep']) && $_REQUEST['visaStep'] == true) {
-    $visaStep = true;
-} else {
-    $visaStep = false;
-}
-
-$core_tools = new core_tools();
-$core_tools->load_lang();
-$core_tools->load_html();
-$core_tools->load_header('', true, false);
-$core_tools->load_js();
-
-$modifVisaWorkflow = false;
-if ($from_detail == true) {
-    if ($core_tools->test_service('config_visa_workflow_in_detail', 'visa', false)) {
-        $modifVisaWorkflow = true;
-    }
-} else {
-    if ($core_tools->test_service('config_visa_workflow', 'visa', false)) {
-        $modifVisaWorkflow = true;
-    }
-}
-
-$frm_str .= '<div class="error" id="divError" name="divError"></div>';
-$frm_str .= '<div style="text-align:center;">';
-$visa = new visa();
-$frm_str .= $visa->getList($res_id, $coll_id, $modifVisaWorkflow, 'VISA_CIRCUIT', $visaStep, $from_detail);
-
-$frm_str .= '</div><br>';
-/* Historique diffusion visa */
-$frm_str .= '<br/>';
-$frm_str .= '<br/>';
-$frm_str .= '<span class="diff_list_visa_history" style="width: 90%; cursor: pointer;" onmouseover="this.style.cursor=\'pointer\';" onclick="new Effect.toggle(\'diff_list_visa_history_div\', \'blind\', {delay:0.2});whatIsTheDivStatus(\'diff_list_visa_history_div\', \'divStatus_diff_list_visa_history_div\');return false;">';
-$frm_str .= '<span id="divStatus_diff_list_visa_history_div" style="color:#1C99C5;"><i class="fa fa-plus-square"></i></span>';
-$frm_str .= '<b>&nbsp;<small>'._DIFF_LIST_VISA_HISTORY.'</small></b>';
-$frm_str .= '</span>';
-
-$frm_str .= '<div id="diff_list_visa_history_div" style="display:none">';
-
-$s_id = $res_id;
-$return_mode = true;
-$diffListType = 'VISA_CIRCUIT';
-require_once 'modules/entities/difflist_visa_history_display.php';
-
-$frm_str .= '</div>';
-
-//script
-$curr_visa_wf = $visa->getWorkflow($res_id, $coll_id, 'VISA_CIRCUIT');
-if ((empty($curr_visa_wf['visa']) || !is_array($curr_visa_wf['visa']) || count($curr_visa_wf['visa']) == 0) && (empty($curr_visa_wf['sign']) || !is_array($curr_visa_wf['sign']) || count($curr_visa_wf['sign']) == 0)) {
-    $frm_str .= '<script>';
-    $frm_str .= '$j("#modelList").val(\''.$destination.'\');$j("#modelList").change();';
-    $frm_str .= '</script>';
-}
-
-echo $frm_str;
diff --git a/modules/visa/updateVisaWF.php b/modules/visa/updateVisaWF.php
deleted file mode 100755
index d79fb32e14d..00000000000
--- a/modules/visa/updateVisaWF.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-/**
-* Copyright Maarch since 2008 under licence GPLv3.
-* See LICENCE.txt file at the root folder for more details.
-* This file is part of Maarch software.
-
-* @brief   updateVisaWF
-* @author  dev <dev@maarch.org>
-* @ingroup visa
-*/
-
-require_once "modules" . DIRECTORY_SEPARATOR . "visa" . DIRECTORY_SEPARATOR
-        . "class" . DIRECTORY_SEPARATOR
-        . "class_modules_tools.php";
-
-$res_id  = $_REQUEST['resId'];
-$coll_id = 'letterbox_coll';
-
-$userList = json_decode($_REQUEST['userList']);
-
-$visa = new visa();
-$_SESSION['visa_wf']['diff_list']['visa']['users'] = array();
-$_SESSION['visa_wf']['diff_list']['sign']['users'] = array();
-
-$i = 0;
-if ($userList) {
-    foreach ($userList as $user) {
-        if (++$i === count($userList)) {
-            array_push(
-                $_SESSION['visa_wf']['diff_list']['sign']['users'], array(
-                    'user_id'               => $user->userId,
-                    'process_comment'       => $user->userConsigne,
-                    'process_date'          => $user->userVisaDate,
-                    'viewed'                => 0,
-                    'visible'               => 'Y',
-                    'difflist_type'         => 'VISA_CIRCUIT',
-                    'signatory'             => $user->userSignatory,
-                    'requested_signature'   => $user->userRequestSign
-                    )
-            );
-        } else {
-            array_push(
-                $_SESSION['visa_wf']['diff_list']['visa']['users'], array(
-                    'user_id'               => $user->userId,
-                    'process_comment'       => $user->userConsigne,
-                    'process_date'          => $user->userVisaDate,
-                    'viewed'                => 0,
-                    'visible'               => 'Y',
-                    'difflist_type'         => 'VISA_CIRCUIT',
-                    'signatory'             => $user->userSignatory,
-                    'requested_signature'   => $user->userRequestSign
-                    )
-            );
-        }
-    }
-}
-$visa->saveWorkflow($res_id, $coll_id, $_SESSION['visa_wf']['diff_list'], 'VISA_CIRCUIT');
-
-$db   = new Database();
-$stmt = $db->query("SELECT status FROM res_letterbox WHERE res_id = ?", array($res_id));
-$res  = $stmt->fetchObject();
-if ($res->status == 'EVIS' || $res->status == 'ESIG') {
-    $visa->setStatusVisa($res_id, $coll_id, true);
-}
-
-//LOAD TOOLBAR BADGE
-$toolbarBagde_script = $_SESSION['config']['businessappurl'] . 'index.php?display=true&module=visa&page=load_toolbar_visa&origin=parent&resId=' . $res_id . '&collId=' . $coll_id;
-$js ='loadToolbarBadge(\'visa_tab\',\'' . $toolbarBagde_script . '\');';
-
-
-echo "{\"status\" : 0, \"exec_js\" : \"" . $js . "\"}";
-exit();
diff --git a/modules/visa/xml/IVS/requests_definitions.xml b/modules/visa/xml/IVS/requests_definitions.xml
index 7979de938ee..65262b9ffae 100755
--- a/modules/visa/xml/IVS/requests_definitions.xml
+++ b/modules/visa/xml/IVS/requests_definitions.xml
@@ -15,14 +15,6 @@
         <parameter name="page" value="checkSignFile"/>
         <parameter name="module" value="visa"/>
     </requestDefinition>
-    <requestDefinition method="POST" path="/apps/maarch_entreprise/index.php" validationRule="vi_create_sep" >
-        <parameter name="page" value="create_sep"/>
-        <parameter name="module" value="visa"/>
-    </requestDefinition>
-    <requestDefinition method="GET" path="/apps/maarch_entreprise/index.php" validationRule="vi_create_sep" >
-        <parameter name="page" value="create_sep"/>
-        <parameter name="module" value="visa"/>
-    </requestDefinition>
     <requestDefinition method="POST" path="/apps/maarch_entreprise/index.php" validationRule="vi_encodePinCode" >
         <parameter name="page" value="encodePinCode"/>
         <parameter name="module" value="visa"/>
@@ -31,27 +23,6 @@
         <parameter name="page" value="encodePinCode"/>
         <parameter name="module" value="visa"/>
     </requestDefinition>
-    <requestDefinition method="POST" path="/apps/maarch_entreprise/index.php" validationRule="vi_load_listmodel_visa" >
-        <parameter name="page" value="load_listmodel_visa"/>
-        <parameter name="module" value="visa"/>
-    </requestDefinition>
-    <requestDefinition method="GET" path="/apps/maarch_entreprise/index.php" validationRule="vi_load_listmodel_visa" >
-        <parameter name="page" value="load_listmodel_visa"/>
-        <parameter name="module" value="visa"/>
-    </requestDefinition>
-    <requestDefinition method="POST" path="/apps/maarch_entreprise/index.php" validationRule="vi_saveVisaModel" >
-        <parameter name="page" value="saveVisaModel"/>
-        <parameter name="module" value="visa"/>
-    </requestDefinition>
-    <requestDefinition method="GET" path="/apps/maarch_entreprise/index.php" validationRule="vi_saveVisaModel" >
-        <parameter name="page" value="saveVisaModel"/>
-        <parameter name="module" value="visa"/>
-    </requestDefinition>
-    <requestDefinition method="GET" path="/apps/maarch_entreprise/index.php" validationRule="vi_getVisaModelByTitle" >
-      <parameter name="display" value="true"/>
-      <parameter name="module" value="visa"/>
-      <parameter name="page" value="getVisaModelByTitle"/> 
-    </requestDefinition>
     <requestDefinition method="POST" path="/apps/maarch_entreprise/index.php" validationRule="vi_saveVisaWF" >
         <parameter name="page" value="saveVisaWF"/>
         <parameter name="module" value="visa"/>
diff --git a/modules/visa/xml/IVS/validation_rules.xml b/modules/visa/xml/IVS/validation_rules.xml
index 249b2d6e95d..2233f56fdce 100755
--- a/modules/visa/xml/IVS/validation_rules.xml
+++ b/modules/visa/xml/IVS/validation_rules.xml
@@ -23,25 +23,9 @@
     <validationRule name="vi_checkSignFile" extends="standardForm" mode="error">
     	<parameter name="res_id" type="integer" />
     </validationRule>
-    <validationRule name="vi_create_sep" extends="standardForm" mode="error">
-    	<parameter name="service" type="string" />
-    	<parameter name="path" type="string" />
-    	<parameter name="label" type="string" />
-    </validationRule>
     <validationRule name="vi_encodePinCode" extends="standardForm" mode="error">
     	<parameter name="pinCode" type="string" />
     </validationRule>
-    <validationRule name="vi_load_listmodel_visa" extends="standardForm" mode="error">
-    	<parameter name="objectType" type="identifier" />
-		<parameter name="objectId" type="identifier" />
-    </validationRule>
-    <validationRule name="vi_getVisaModelByTitle" extends="standardForm" mode="error">
-        <parameter name="title" type="string" />
-    </validationRule>
-    <validationRule name="vi_saveVisaModel" extends="standardForm" mode="error">
-    	<parameter name="title" type="string" />
-    	<parameter name="userList" type="string" />
-    </validationRule>
     <validationRule name="vi_saveVisaWF" extends="standardForm" mode="error">
     	<parameter name="res_id" type="integer" />
     	<parameter name="coll_id" type="collection_list" />
diff --git a/src/frontend/app/signature-book.component.scss b/src/frontend/app/signature-book.component.scss
index bc2f681531d..619e6d7cbe5 100755
--- a/src/frontend/app/signature-book.component.scss
+++ b/src/frontend/app/signature-book.component.scss
@@ -1,19 +1,5 @@
 @import "../css/vars.scss";
 
-#modalSaveVisaModel{
-	padding-top:20px;
-	z-index: 1050;
-	width: 300px;
-	height: 80px;
-	border: 2px solid #000;
-	display: none;
-	position: absolute;
-	background-color: #fbfbfb;
-	left: 40%;
-	top: 10%;
-	text-align: center;
-}
-
 .selectedId{
 	background-color:$secondary;
 }
-- 
GitLab