annexe.ctp 12.1 KB
Newer Older
1 2 3 4
<!-- Onglet Annexe(s) -->
<div id="annexe" class="tab-pane">
    <br/>
    <?php
5 6 7 8 9 10 11 12
    if ($this->request->params['action'] != 'show') {
        ?>
        <!-- Texte Ajouter une pièce jointe -->
        <h4>
            <?php echo __d('fiche', 'fiche.textAjouterPieceJointe'); ?>
        </h4>

        <br/>
13 14

        <?php
15 16 17 18 19 20
        $extentionsAccepter = __d('fiche', 'fiche.textTypeFichierAccepter');

        if ($formulaireOLD['Formulaire']['oldformulaire'] === false) {
            if ($useAllExtensionFiles['Formulaire']['useallextensionfiles'] === true) {
                $extentionsAccepter = __d('formulaire', 'formulaire.infoExtentionUtilisable');
            }
21 22 23
        }
        ?>

24 25
        <!-- Texte format fichier accepté -->
        <div class="alert alert-warning" role="alert">
26
            <?php echo $extentionsAccepter; ?>
27
        </div>
28 29

        <?php
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
        $i = $this->Html->tag(
            'i',
            '<!---->',
            ['class' => 'fa fa-cloud-upload fa-4x text-primary']
        );

        $p = $this->Html->tag(
            'p',
            ('Glissez-déposez vos fichiers ici')
        );

        echo $this->Html->tag(
            'div',
            $i . $p,
            ['class' => 'dropbox']
        );
        ?>
47

48
        <br/>
49

50 51 52 53 54 55 56
        <table class="table" id="render">
            <tbody>
            <?php
            if (!empty($files)) {
                foreach ($files as $key => $file) {
                    ?>
                    <tr id="rowFiche<?php echo $key; ?>">
57

58
                        <td class="col-md-2">
59 60
                            <i class="fa fa-file-text-o fa-lg"><!----></i>
                        </td>
61

62
                        <td class="col-md-4 tdleft">
63 64 65
                            <?php echo $file ?>
                        </td>

66 67 68
                        <td class="col-md-4 tdleft">
                            <?php
                            if (!empty($typages)) {
69 70
                                echo $this->WebcilForm->input('Fichier.typage_tmp_' . $key, [
                                    'id' => 'typage_tmp_' . $key,
71 72 73
                                    'label' => [
                                        'text' => ''
                                    ],
74
                                    'class' => 'form-control typeAnnexeSelected',
75 76 77 78 79 80 81 82 83
                                    'options' => $typages,
                                    'empty' => __d('fiche', 'fiche.emptySelectTypeFile'),
                                    'required' => false,
                                    'placeholder' => false
                                ]);
                            }
                            ?>
                        </td>

84 85 86 87 88 89 90 91 92 93 94
                        <td class="col-md-2">
                            <button type="button" class="btn btn-warning"
                                    onclick="deleteFile('<?php echo $file ?>','<?php echo $key ?>')">
                                <i class="fa fa-times-circle"><!----></i>
                                Annuler
                            </button>
                        </td>

                    </tr>
                    <?php
                }
95
            }
96 97 98 99
            ?>
            </tbody>
        </table>
        <?php
100 101 102 103

        echo $this->element('Fiches/modal/modalErrorExtentionAnnexe', [
            'extentionsAccepter' => $extentionsAccepter
        ]);
104 105
    }
    ?>
106 107

    <?php
108 109 110 111 112 113 114 115 116
    if (empty($filesSave)) {
        ?>
        <div class="col-md-12 top30">
            <h4>
                <?php echo __d('fiche', 'fiche.textInfoAucunePieceJointe'); ?>
            </h4>
        </div>
        <?php
    } else {
117 118 119 120 121 122 123 124
        ?>
        <div class="col-md-12 top30">
            <h4>
                <?php echo __d('fiche', 'fiche.textInfoPieceJointe'); ?>
            </h4>
            <table class="table">
                <tbody>
                <?php
125
                foreach ($filesSave as $key => $val) {
126 127
                    ?>
                    <tr id="rowFichier<?php echo $val['Fichier']['id']; ?>">
128
                        <td class="col-md-2">
129 130
                            <i class="fa fa-file-text-o fa-lg"><!----></i>
                        </td>
131 132

                        <td class="col-md-4 tdleft">
133 134
                            <?php echo $val['Fichier']['nom']; ?>
                        </td>
135 136 137 138

                        <td class="col-md-4 tdleft">
                            <?php
                            if (!empty($typages)) {
139 140 141 142 143
                                echo $this->WebcilForm->input('Fichier.typage_' . $key, [
                                    'id' => 'typage_' . $key,
                                    'label' => [
                                        'text' => ''
                                    ],
144
                                    'class' => 'form-control typeAnnexeSelected',
145 146 147 148 149
                                    'options' => $typages,
                                    'empty' => __d('fiche', 'fiche.emptySelectTypeFile'),
                                    'required' => false,
                                    'placeholder' => false
                                ]);
150 151 152 153
                            }
                            ?>
                        </td>

154 155 156 157 158 159 160 161 162 163 164 165 166
                        <td class="col-md-2 boutonsFile boutonsFile"<?php echo $val['Fichier']['id']; ?>>
                            <?php
                            echo $this->Html->link('<span class="fa fa-download fa-lg"><!----></span>', [
                                'controller' => 'fiches',
                                'action' => 'download',
                                $val['Fichier']['url'],
                                $val['Fichier']['nom']
                            ], [
                                'class' => 'btn btn-default-default boutonShow btn-sm my-tooltip',
                                'title' => 'Télécharger le fichier',
                                'escapeTitle' => false
                            ]);

167 168 169 170 171
                            if ($this->request->params['action'] != 'show') {
                                ?>
                                <button type="button"
                                        class="btn btn-default-danger btn-sm my-tooltip left5 btn-del-file"
                                        onclick="deleteFileSave('<?php echo $val['Fichier']['id'] ?>','<?php echo $val['Fichier']['url'] ?>')">
172
                                    <i class="fa fa-trash fa-lg"></i>
173 174 175 176
                                </button>
                                <?php
                            }
                            ?>
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
                        </td>
                    </tr>
                    <?php
                }
                ?>
                </tbody>
            </table>
        </div>
        <hr/>
        <?php
    }
    ?>
</div>
<!-- Fin onglet Annexe(s) -->

<script type="text/javascript">

    $(document).ready(function () {
        $.fn.extend({
196
            logEvents: function () {
197
                return this.each(function () {
198
                    $(this).onAny(function (event) {
199 200 201 202 203 204
                        console.log(event.target, event.type);
                    });
                });
            }
        });

205
        $.fn.onAny = function (cb) {
206
            for (let k in this[0])
207 208
                if (k.search('on') === 0)
                    this.on(k.slice(2), function (e) {
209
                        // Probably there's a better way to call a callback function with right context, $.proxy() ?
210
                        cb.apply(this, [e]);
211 212 213 214
                    });
            return this;
        };

215
        $('.dropbox').onAny(function (event) {
216 217 218 219
            event.preventDefault();
            $(this).removeClass('dragover');
        });

220
        $('.dropbox').on('dragover', function () {
221 222 223
            $(this).addClass('dragover');
        });

224
        $('.dropbox').on('dragout, dragleave, dragexit', function () {
225 226 227
            $(this).removeClass('dragover');
        });

228
        $('.dropbox').on('drop', function (event) {
229
            let formData = new FormData(),
230 231
                files = [];

232
            for (let key in event.originalEvent.dataTransfer.files) {
233 234 235
                formData.append('fichiers[]', event.originalEvent.dataTransfer.files[key]);
            }

236
            let idFormulaire = <?php echo json_encode($formulaire_id);?>;
237

238
            $.ajax({
239
                url: '/fiches/saveFileTmp/'+idFormulaire,
240 241 242 243
                method: 'POST',
                data: formData,
                processData: false,
                contentType: false,
244 245
                success: function (data) {
                    try {
246 247 248
                        let content = JSON.parse(data);
                        for (let key in content) {
                            let tr = $('<tr id="rowFiche' + key + '"><\/tr>')
249 250 251
                                .append('<td class="col-md-2"><i class="fa fa-file-text-o fa-lg"><!----><\/i><\/td>')
                                .append('<td class="col-md-4 tdleft">' + content[key].filename + '<\/td>')
                                .append('<td class="col-md-4 tdleft">'+ content[key].optionType +'<\/td>')
252
                                .append('<td class="col-md-2"><button type="button" class="btn btn-warning" onclick=\"deleteFile(\'' + content[key].filename + '\',\'' + key + '\')\"><i class="fa fa-times-circle"><!----><\/i> Annuler<\/button><\/td>')
253
                            $('#render').find('tbody').append(tr);
254 255

                            changeValueFieldsAIPD();
256
                        }
257
                    } catch (e) {
258 259
                        // alert("error");
                        $('#errorExtentionAnnexe').modal('show');
260 261 262
                        return;
                    }
                },
263
                error: function () {
264
                    alert('error');
265
                    // $('#errorExtentionAnnexe').modal('show');
266 267 268
                }
            });
        });
269 270

        changeValueFieldsAIPD();
271 272
    });

273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293
    function changeValueFieldsAIPD() {
        $('.typeAnnexeSelected').on('change', function () {
            if ($(this).find('option:selected').text() === 'AIPD') {
                let realisationAIPD = $('#realisation_pia').val();
                let depotAIPD = $('#depot_pia').val();

                if (realisationAIPD != true && depotAIPD != true ||
                    realisationAIPD == true && depotAIPD != true
                ) {
                    let validationAIPD = confirm("Le document que vous venez de typer en 'AIPD', correspond réellement à l'analyse d'impact ?\n\nSi 'OK' les champs correspondant à la réalistation et au dépôt de l'AIPD seront modifier à 'Oui'");

                    if (validationAIPD === true) {
                        $('#realisation_pia').val(1);
                        $('#depot_pia').parent().parent().show();
                        $('#depot_pia').val(1);
                    }
                }
            }
        });
    }

294
    function deleteFile(file, key) {
295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310
        let validation = confirm("Voulez vous supprimer l'annexe ?");

        if (validation === true) {
            $.ajax({
                url: '/fiches/deleteFile',
                method: 'POST',
                data: {filename: file},
                success: function () {
                    let row = document.getElementById("rowFiche" + key);
                    row.parentNode.removeChild(row);
                },
                error: function () {
                    alert('Erreur lors de la suppression du fichier');
                }
            });
        }
311 312
    }

313
    function deleteFileSave(idFile, urlFile) {
314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332
        let validation = confirm("Voulez vous supprimer l'annexe ?");

        if (validation === true) {
            $.ajax({
                url: '/fiches/deleteRecordingFile',
                method: 'POST',
                data: {
                    idFile: idFile,
                    urlFile: urlFile
                },
                success: function () {
                    let row = document.getElementById("rowFichier" + idFile);
                    row.parentNode.removeChild(row);
                },
                error: function () {
                    alert('Erreur lors de la suppression du fichier');
                }
            });
        }
333 334 335
    }

</script>