edit.ctp 13.2 KB
<?php 

// Ces sections sont affichées ou cachées en cliquant dessus
// Ce comportement est géré par le javascript webroot/js/script.js
// qui contient une fonction pour chaque section (avec le nom "t_<nom de la section>")
// Ex pour la section "emprunts" : $('#t_emprunts').click(function()...
function echoSection($title, $section) {
    echo '<h3 id="t_'.$section.'" style="cursor: pointer;">';
    echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_'.$section.'"></i>';
    echo '<span style="text-decoration: underline;">'.$title.'</span>';
    echo '</h3>';
    echo '<div id="'.$section.'" style="margin-bottom: 20px;">';
}
?>

<div class="configurations form">
    <?=$this->Form->create($configurationObj)?>

        <h2>
		<i class="icon-edit"></i> Editer la configuration
	</h2>

	<fieldset>
        <?php
        
        /* SECTION MODES */
        
        echoSection("Modes", "informations");
        /*
        echo '<h3 id="t_informations" style="cursor: pointer;">';
        echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations"></i>';
        echo '<span style="text-decoration: underline;">Modes</span>';
        echo '</h3>';
        echo '<div id="informations" style="margin-bottom: 20px;">';
        */
        echo $this->Form->control('mode_install');
        //echo $this->Form->control('mode_debug');
        echo $this->Form->control('mode_debug', [
            'label' => 'Mode DEBUG (via la table "configurations")'
        ]);
        echo '</div>';
        
        
        /* SECTION LABORATOIRE */
        
        echoSection("Laboratoire", "informations_admin");
        /*
        echo '<h3 id="t_informations_admin" style="cursor: pointer;">';
        echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_admin"></i>';
        echo '<span style="text-decoration: underline;">Laboratoire</span>';
        echo '</h3>';
        echo '<div id="informations_admin" style="margin-bottom: 20px;">';
        */
        echo $this->Form->control('labName', [
            'label' => 'Nom complet du Labo'
        ]);
        echo $this->Form->control('labNameShort', [
            'label' => 'Nom court du Labo (10 caractères max)'
        ]);
        echo $this->Form->control('labPresent', [
            // Label avec du code de formatage html
            'label' =>  'Article devant nom du Labo ("inventaire <u>DU</u> LATMOS" ou "inventaire <u>DE L\'</u> IRAP")',
            /*
            'label' => [
                //'Article devant nom du Labo : "inventaire <u>DU</u> LATMOS" ou bien "inventaire "DE L\'" IRAP"',
                "Article devant nom du <u>Labo</u>",
                //'escape' => false
            ],
            */
            "escape" => false
        ]);
        echo $this->Form->control('labUmr', [
            'label' => 'UMR du Labo'
        ]);
        echo '</div>';
        
        
        /* SECTION DIVERS */
        
        echoSection("Divers", "suivis");
        /*
        echo '<h3 id="t_suivis" style="cursor: pointer;">';
        echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_suivis"></i>';
        echo '<span style="text-decoration: underline;">Divers</span>';
        echo '</h3>';
        echo '<div id="suivis" style="margin-bottom: 20px;">';
        */
        
        echo $this->Form->control('pdf_engine', [
            'options' => [
                'FPDF' => "FPDF",
                'DOMPDF' => "DOMPDF",
            ],
            'label' => 'Librairie pdf'
        ]);

        echo $this->Form->control('procedure_sur_accueil', [
            'label' => 'Afficher la procédure à suivre sur l\'écran d\'accueil'
        ]);
        
        echo $this->Form->control('hasPrinter', [
            'label' => 'Imprimante disponible'
        ]);
        echo $this->Form->control('label_format_num', [
            'options' => [
                '1' => '1 - Etiquette 19mm, texte sur 3 lignes avec QrCode (ruban, DYMO LabelManager420P ou MobileLabeler, pour logiciel DCD 1.3.x sur Windows 10)',
                '2' => '2 - Etiquette 19mm, texte sur 2 lignes avec QrCode (ruban, Dymo LabelManager PCII, CRAL)',
                '3' => '3 - (idem 1 mais avec logiciel DLS au lieu de DCD) Etiquette 19mm, texte sur 3 lignes avec QrCode (ruban, DYMO LabelManager420P ou MobileLabeler, pour logiciel DLS 8.7.x sur Mac ou Win)',
                '4' => '4 - Etiquette 12mm, texte sur 2 lignes avec LOGO laboratoire (ruban, DYMO LabelManager PnP, logiciel DLS Mac/Win)',
                '5' => '5 - Etiquette 12mm, texte sur 2 lignes avec QrCode (ruban, DYMO LabelManager PnP, logiciel DLS Mac/Win, mais QrCode trop petit pour être identifiable)',
                /*
                '1' => '1 - Etiquette 12mm, texte sur 2 lignes avec LOGO laboratoire (ruban, DYMO LabelManager PnP)',
                '2' => '2 - Etiquette 19mm, texte sur 2 lignes avec QrCode (ruban, Dymo LabelManager PCII, CRAL)',
                '3' => '3 - Etiquette 19mm, texte sur 3 lignes avec QrCode (ruban, DYMO LabelManager420P ou MobileLabeler, pour logiciel DLS 8.7.x sur Mac ou Win)',
                '4' => '4 - Etiquette 12mm, texte sur 2 lignes avec QrCode (ruban, DYMO LabelManager PnP, IRAP)',
                '5' => '5 - Etiquette 19mm, texte sur 3 lignes avec QrCode (ruban, DYMO LabelManager420P ou MobileLabeler, pour logiciel DCD 1.3.x sur Windows 10)',
                */
                //'6' => '6 - Etiquette 19mm, texte sur 3 lignes avec QrCode (ruban, DYMO LabelManager420P ou MobileLabeler avec DLS, test)',
                /*
                '6' => 6,
                '7' => 7,
                '8' => 8,
                '9' => 9,
                '10' => 10,
                */
            ],
            'label' => 'Numéro Format Etiquette'
        ]);
        
        echo $this->Form->control('numero_labo_sans_annee', [
            'label' => 'Numero labo sans année'
        ]);
        
        echo "Si vous cochez la case ci-dessous, assurez-vous que la case au-dessus soit cochée aussi.";
        
        echo $this->Form->control('date_commande_facultative', [
            'label' => 'Champ date commande facultatif'
        ]);
        
        echo $this->Form->control('prix_inventaire_administratif', [
            'label' => 'Seuil (prix) Matériel administratif'
        ]);
        echo $this->Form->control('taille_max_doc', [
            'label' => 'Taille max documents (octets)'
        ]);
        
        echo $this->Form->control('nom_groupe_thematique', [
            'label' => 'Label groupe thématique'
        ]);
        echo $this->Form->control('nom_groupe_metier', [
            'label' => 'Label groupe métier'
        ]);
        echo $this->Form->control('metrologie', [
            'label' => 'Module métrologie'
        ]);
        
        echo '</div>';
        
        
        /* SECTION EMAILS */
        
        echoSection("Emails", "emprunts");
        /*
        echo '<h3 id="t_emprunts" style="cursor: pointer;">';
        echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_emprunts"></i>';
        echo '<span style="text-decoration: underline;">Emails</span>';
        echo '</h3>';
        echo '<div id="emprunts" style="margin-bottom: 20px;">';
        */
        
        echo $this->Form->control('sender_mail', [
            'label' => "Attribut 'sender' (expéditeur)"
        ]);
        echo $this->Form->control('envoi_mail', [
            'label' => "Activer l'envoi 'général' des mails"
        ]);
        echo $this->Form->control('envoi_mail_guests', [
            'label' => "Activer l'envoi 'spécifique' des mails pour la liste ci-dessous"
        ]);
        // (EP202009) non mais, faudrait arrêter d'être fainénant aussi...
        for ($i=1 ; $i<=10; $i++) {
            echo $this->Form->control('emailGuest'.$i, [
                'label' => "Destinataire $i"
            ]);
        }
        /*
        echo $this->Form->control('emailGuest1', [
            'label' => 'Destinataire 1'
        ]);
        echo $this->Form->control('emailGuest2', [
            'label' => 'Mail guest 2'
        ]);
        echo $this->Form->control('emailGuest3', [
            'label' => 'Mail guest 3'
        ]);
        echo $this->Form->control('emailGuest4', [
            'label' => 'Mail guest 4'
        ]);
        echo $this->Form->control('emailGuest5', [
            'label' => 'Mail guest 5'
        ]);
        echo $this->Form->control('emailGuest6', [
            'label' => 'Mail guest 6'
        ]);
        echo $this->Form->control('emailGuest7', [
            'label' => 'Mail guest 7'
        ]);
        echo $this->Form->control('emailGuest8', [
            'label' => 'Mail guest 8'
        ]);
        echo $this->Form->control('emailGuest9', [
            'label' => 'Mail guest 9'
        ]);
        echo $this->Form->control('emailGuest10', [
            'label' => 'Mail guest 10'
        ]);
        */
        echo '</div>';
        
        
        /* SECTION LDAP */
        
        echoSection("LDAP", "fichiers");
        /*
        echo '<h3 id="t_fichiers" style="cursor: pointer;">';
        echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i>';
        echo '<span style="text-decoration: underline;">LDAP</span>';
        echo '</h3>';
        echo '<div id="fichiers" style="margin-bottom: 20px;">';
        */
        echo $this->Form->control('ldap_used', [
            'label' => 'Utilisation du LDAP',
            'onchange' => 'display_ldap();'
        ]);

        // start LDAP DIV
        echo '<div id="ldap" style="border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; margin-bottom: 0; background: #EEE; ' . $disp . '">';
        echo $this->Form->control('ldap_host', [
            'label' => 'Host du LDAP'
        ]);
        echo $this->Form->control('ldap_port', [
            'label' => 'Port du LDAP'
        ]);
        echo $this->Form->control('ldap_authenticationType', [
            'label' => 'Type d\'authentification du LDAP'
        ]);
        echo $this->Form->control('ldap_baseDn', [
            'label' => 'Base DN du LDAP'
        ]);
        echo $this->Form->control('ldap_filter', [
            'label' => 'Filtre du LDAP'
        ]);
        
        /*MCM*/
        // start LDAP auth subsection (DIV)
        echo $this->Form->control('ldap_authentified', [
            //'id' => 'ldap-authentified',
            'label' => 'LDAP authentifié (non anonyme)',
            //'onchange' => 'display_ldap_auth();'
            'onchange' => 'toggle_ldap_auth();'
            ]);
        echo '<div id="ldap_auth" style="border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; margin-bottom: 0; background: #EEE; ' . $disp . '">';
            echo $this->Form->control('ldap_bindDn', [
                'label' => 'Bind du LDAP'
            ]);
            echo $this->Form->control('ldap_bindPass', [
                'label' => 'Password Bind du LDAP'
            ]);
        echo '</div>';
        // end LDAP auth subsection (DIV)
        /* fin MCM */

        /* LDAP optimisation */
        echo $this->Form->control('ldap_cached', [
            'label' => "Optimisation accès LDAP (utilisation cache en BD)"
        ]);
        /*
        echo $this->Form->control('ldap_cache_last_update', [
            'label' => 'Date de dernière mise à jour du cache LDAP'
        ]);
        */
        echo $this->Form->control('ldap_cache_validity_duration', [
            'label' => 'Durée de validité du cache LDAP (mn)'
        ]);
        
        // end LDAP DIV
        echo '</div>';
        
        // END LDAP SECTION
        echo '</div>';
        
        
        /* SECTION AFFICHAGE */
        
        echoSection("Affichage", "affichage");
        /*
        echo '<h3 id="t_fichiers" style="cursor: pointer;">';
        echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i>';
        echo '<span style="text-decoration: underline;">Affichage</span>';
        echo '</h3>';
        echo '<div id="fichiers" style="margin-bottom: 20px;">';
        */
        echo $this->Form->control('aff_par_defaut', [
            'options' => [
                '20' => 20,
                '30' => 30,
                '50' => 50,
                '100' => 100,
                '150' => 150,
                '200' => 200
            ],
            'label' => 'Nombre de materiel affichés par défaut'
        ]);
        echo '</div>';
        
        ?>
    </fieldset>
    <?= $this->Form->button('Valider', ['class'=>'btn btn-outline-success', 'type'=>'submit'])?>
    <?=$this->Form->end()?>
</div>

<!--
<div class="actions">
	<php
echo $this->element('menu');
echo $this->element('menu_form', [
    'pluralHumanName' => 'Configuration générale'
]);
?>
</div>
-->

<script type="text/javascript">
$(document).ready(function(){
	// (EP) Bugfix: uniquement nécessaire dans un seul cas => pour que la section ldap-authentified soit fermée à l'ouverture de cette page si l'option n'est pas cochée !!! 
	toggle_ldap_auth();
	
	$( ".form" ).submit(function( event ) {
		if($("#date-commande-facultative").is(':checked') && !$("#numero-labo-sans-annee").is(':checked')){
			alert("La case \"Numéro labo sans année\" dans la catégorie \"Divers\" doit être cochée");
			//$("#numero-labo-sans-annee").attr('required',true);
			event.preventDefault();
		}
	});
});
</script>