From f5a4bf38ee051a8f50e6bd15fef959df76145736 Mon Sep 17 00:00:00 2001 From: Etienne Pallier Date: Mon, 13 May 2019 17:14:06 +0200 Subject: [PATCH] Ajout option "Librairie pdf utilisée" pour choisir entre fpdf et dompdf --- README.md | 9 +++++---- database/update/db-update-2019-05-10.sh | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ database/update/script_sql/db-update-2019-05-10.sql | 3 +++ src/Controller/MaterielsController.php | 1 + src/Template/Configurations/edit.ctp | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- src/Template/Configurations/view.ctp | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------ src/Template/Documents/admission.ctp | 5 +++-- src/Template/Documents/pdf/admission_pdf.ctp | 21 +++++++++++---------- src/Template/Materiels/view.ctp | 10 +++++----- webroot/js/script.js | 22 ++++++++++++++++++---- 10 files changed, 206 insertions(+), 92 deletions(-) create mode 100755 database/update/db-update-2019-05-10.sh create mode 100755 database/update/script_sql/db-update-2019-05-10.sql diff --git a/README.md b/README.md index 8e7955f..db4af56 100644 --- a/README.md +++ b/README.md @@ -53,10 +53,10 @@ Logiciel testé et validé sur les configurations suivantes : VERSION ACTUELLE -Date: 10/05/2019 -Version: 2.12.9 +Date: 13/05/2019 +Version: 2.12.10 Author: EP -Commentaire: production avec dompdf du doc admission (pdf) +Commentaire: Ajout de l'option "Librairie pdf utilisée" pour choisir entre fpdf et dompdf IMPORTANT : - Pour connaitre la version actuelle, taper "./VERSION" @@ -91,7 +91,8 @@ CHANGEMENTS IMPORTANTS (MILESTONES) La liste ci-dessous n'est plus à jour, elle est désormais en ligne ici : https://tinyurl.com/labinvent#heading=h.2r55bflctpt5 ----------------------------------------------------------------------------------------------------------- -10/05/2019 Version: 2.12.8-9 (EP) +13/05/2019 Version: 2.12.8-10 (EP) + Ajout de l'option "Librairie pdf utilisée" pour choisir entre fpdf et dompdf Génération des pdf avec 2 moteurs au choix (fpdf ou dompdf) Production des 3 docs pdf avec dompdf: admission, sortie, et fiche_materiel diff --git a/database/update/db-update-2019-05-10.sh b/database/update/db-update-2019-05-10.sh new file mode 100755 index 0000000..268f14e --- /dev/null +++ b/database/update/db-update-2019-05-10.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +#myname=`basename $0 .sh` +myname=`basename $0` +myname=${myname%%.*} + +# Pour Mac OS recent (>=10.10, Yosemite), la syntaxe du SED est differente +# Il faut donc exécuter ce script de la manière suivante : +# ./macos-db-update.sh + + +function abort() { + echo "******************************************************" + echo "!!! Script $0 aborté à cause d'une erreur d'exécution !!!" + echo "******************************************************" + exit 1 +} + + +if [ ! -f ../../config/app.php ] ; then +echo "Vous devez executer ce script depuis le dossier database/update/" +exit 1 +fi + + +# Get login, pass, dbname, and hostname +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4) || abort +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4) || abort +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4) || abort +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4) || abort + + +#cp -p ./script_sql/db-update-2016-07-01-irap.sql ./script_sql/db-update-2016-07-01-irap-build.sql +cp -p ./script_sql/$myname.sql ./script_sql/$myname-build.sql || abort + +# Execute sql update script +sed -e "s/database/$database/" -i ./script_sql/$myname-build.sql || abort +mysql --user=$username --password=$password -h $host < ./script_sql/$myname-build.sql || abort + +# Delete temporary file and cakephp cache (-f avoids warning if no file) +rm -f ./script_sql/$myname-build.sql +sudo rm -f ../../tmp/cache/models/* +sudo rm -f ../../tmp/cache/persistent/* + +# Faire ca aussi si ca suffit pas... +#sudo chmod -R 777 ../../tmp +#sudo chmod -R 777 ../../vendor +#sudo chmod -R 777 ../../webroot \ No newline at end of file diff --git a/database/update/script_sql/db-update-2019-05-10.sql b/database/update/script_sql/db-update-2019-05-10.sql new file mode 100755 index 0000000..ae86152 --- /dev/null +++ b/database/update/script_sql/db-update-2019-05-10.sql @@ -0,0 +1,3 @@ +use database; + +ALTER TABLE configurations ADD pdf_engine VARCHAR(10) NOT NULL DEFAULT 'FPDF'; diff --git a/src/Controller/MaterielsController.php b/src/Controller/MaterielsController.php index 4f26e3b..66e2393 100755 --- a/src/Controller/MaterielsController.php +++ b/src/Controller/MaterielsController.php @@ -687,6 +687,7 @@ class MaterielsController extends AppController $this->set('imgMateriel', $imgMateriel); } + $this->set('PDF_ENGINE', $this->confLabinvent->pdf_engine); $this->set('sites', $sites); $this->set('typeSuivis', $typeSuivis); $this->set('typeDocuments', $typeDocuments); diff --git a/src/Template/Configurations/edit.ctp b/src/Template/Configurations/edit.ctp index dc78a14..14cb076 100644 --- a/src/Template/Configurations/edit.ctp +++ b/src/Template/Configurations/edit.ctp @@ -1,3 +1,18 @@ +") +// Ex pour la section "emprunts" : $('#t_emprunts').click(function()... +function echoSection($title, $section) { + echo '

'; + echo ''; + echo ''.$title.''; + echo '

'; + echo '
'; +} +?> +
Form->create($configurationObj)?> @@ -7,11 +22,17 @@
'; echo ''; echo 'Modes'; echo ''; echo '
'; + */ echo $this->Form->control('mode_install'); //echo $this->Form->control('mode_debug'); echo $this->Form->control('mode_debug', [ @@ -19,11 +40,17 @@ ]); echo '
'; + + /* SECTION LABORATOIRE */ + + echoSection("Laboratoire", "informations_admin"); + /* echo '

'; echo ''; echo 'Laboratoire'; echo '

'; echo '
'; + */ echo $this->Form->control('labName', [ 'label' => 'Nom complet du Labo' ]); @@ -38,12 +65,26 @@ ]); echo '
'; + + /* SECTION DIVERS */ + + echoSection("Divers", "suivis"); + /* echo '

'; echo ''; echo 'Divers'; echo '

'; echo '
'; + */ + 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' ]); @@ -96,11 +137,17 @@ echo '
'; + + /* SECTION EMAILS */ + + echoSection("Emails", "emprunts"); + /* echo '

'; echo ''; echo 'Emails'; echo '

'; echo '
'; + */ echo $this->Form->control('envoi_mail', [ 'label' => 'Activer l\'envoi des mails général' @@ -144,12 +191,16 @@ echo '
'; - // LDAP SECTION + /* SECTION LDAP */ + + echoSection("LDAP", "fichiers"); + /* echo '

'; echo ''; echo 'LDAP'; echo '

'; echo '
'; + */ echo $this->Form->control('ldap_used', [ 'label' => 'Utilisation du LDAP', 'onchange' => 'display_ldap();' @@ -199,11 +250,16 @@ // END LDAP SECTION + /* SECTION AFFICHAGE */ + + echoSection("Affichage", "affichage"); + /* echo '

'; echo ''; echo 'Affichage'; echo '

'; echo '
'; + */ echo $this->Form->control('aff_par_defaut', [ 'options' => [ '20' => 20, @@ -216,6 +272,7 @@ 'label' => 'Nombre de materiel affichés par défaut' ]); echo '
'; + ?>
Form->submit(__('Valider'))?> diff --git a/src/Template/Configurations/view.ctp b/src/Template/Configurations/view.ctp index 5549467..a41632b 100644 --- a/src/Template/Configurations/view.ctp +++ b/src/Template/Configurations/view.ctp @@ -1,3 +1,25 @@ +") +// Ex pour la section "emprunts" : $('#t_emprunts').click(function()... +function echoSection($title, $section) { + echo '

'; + echo ''; + echo ''.$title.''; + echo '

'; + echo '
'; + echo ''; + echo ''; +} + +?>

Configuration générale de l'application

@@ -11,63 +33,9 @@ 'onclick' => 'return true;' ]); echo '

'; - - if (h($configurationObj->mode_install) == 1) { - $install = "Oui"; - } else { - $install = "Non"; - } - - if (h($configurationObj->mode_debug) == 1) { - $debug = "Oui"; - } else { - $debug = "Non"; - } - - if (h($configurationObj->hasPrinter) == 1) { - $print = "Oui"; - } else { - $print = "Non"; - } - if (h($configurationObj->ldap_used) == 1) { - $ldap = "Oui"; - } else { - $ldap = "Non"; - } - - if (h($configurationObj->envoi_mail) == 0) { - $mail_general = "Non"; - } else { - $mail_general = "Oui"; - } - - if (h($configurationObj->envoi_mail_guests) == 0) { - $mail_guests = "Non"; - } else { - $mail_guests = "Oui"; - } - - if (h($configurationObj->numero_labo_sans_annee) == 1) { - $numLab = "Oui"; - } else { - $numLab = "Non"; - } - if (h($configurationObj->date_commande_facultative) == 1) { - $dateObl = "Oui"; - } else { - $dateObl = "Non"; - } - if (h($configurationObj->metrologie) == 1) { - $metro = "Oui"; - } else { - $metro = "Non"; - } - if (h($configurationObj->procedure_sur_accueil) == 1) { - $procedure_acc = "Oui"; - } else { - $procedure_acc = "Non"; - } + echoSection("Modes", "informations"); + /* echo '

'; echo ''; echo 'Modes'; @@ -75,11 +43,16 @@ echo '
'; echo '

'; echo ''; - $displayElement(__('Mode install'), $install); - $displayElement(__('Mode debug'), $debug); + */ + //$displayElement(__('Mode install'), $install); + $displayElement(__('Mode install'), $configurationObj->mode_install==1?"Oui":"Non"); + //$displayElement(__('Mode debug'), $debug); + $displayElement(__('Mode debug'), $configurationObj->mode_debug==1?"Oui":"Non"); echo '
'; echo '
'; + echoSection("Laboratoire", "informations_admin"); + /* echo '

'; echo ''; echo 'Laboratoire'; @@ -87,6 +60,7 @@ echo '
'; echo ''; echo ''; + */ $displayElement(__('Nom complet du Labo'), h($configurationObj->labName)); $displayElement(__('Nom court du Labo'), h($configurationObj->labNameShort)); $displayElement(__('Liaison présentation nom du Labo'), h($configurationObj->labPresent)); @@ -94,6 +68,8 @@ echo '
'; echo '
'; + echoSection("Divers", "suivis"); + /* echo '

'; echo ''; echo 'Divers'; @@ -101,19 +77,23 @@ echo '
'; echo ''; echo ''; - $displayElement(__('Afficher la procédure à suivre sur l\'écran d\'accueil'), $procedure_acc); - $displayElement(__('Imprimante disponible'), $print); + */ + $displayElement(__('Librairie pdf utilisée'), $configurationObj->pdf_engine); + $displayElement(__('Afficher la procédure à suivre sur l\'écran d\'accueil'), $configurationObj->procedure_sur_accueil?'Oui':'Non'); + $displayElement(__('Imprimante disponible'), h($configurationObj->hasPrinter)?"Oui":"Non"); $displayElement(__('Numéro format étiquette'), h($configurationObj->label_format_num)); $displayElement(__('Seuil (prix) Matériel administratif'), h($configurationObj->prix_inventaire_administratif)); $displayElement(__('Taille max documents (octets)'), substr($configurationObj->taille_max_doc / (1024 * 1024), 0, 4) . ' Mo'); - $displayElement(__('Numero labo sans année'), $numLab); - $displayElement(__('Champ date commande facultatif'), $dateObl); + $displayElement(__('Numero labo sans année'), $configurationObj->numero_labo_sans_annee?'Oui':'Non'); + $displayElement(__('Champ date commande facultatif'), $configurationObj->date_commande_facultative?'Oui':'Non'); $displayElement(__('Label groupe thématique'), h($configurationObj->nom_groupe_thematique)); $displayElement(__('Label groupe métier'), h($configurationObj->nom_groupe_metier)); - $displayElement(__('Module métrologie'), $metro); + $displayElement(__('Module métrologie'), $configurationObj->metrologie?'Oui':'Non'); echo '
'; echo '
'; + echoSection("Emails", "emprunts"); + /* echo '

'; echo ''; echo 'Emails'; @@ -121,9 +101,10 @@ echo '
'; echo ''; echo ''; - $displayElement(__('Activer l\'envoi des mails général'), $mail_general); + */ + $displayElement(__('Activer l\'envoi des mails général'), h($configurationObj->envoi_mail)?'Oui':'Non'); $displayElement(__('Attribut "sender" (mail)'), h($configurationObj->sender_mail)); - $displayElement(__('Activer l\'envoi des mails pour la liste spécifique ci-dessous'), $mail_guests); + $displayElement(__('Activer l\'envoi des mails pour la liste spécifique ci-dessous'), h($configurationObj->envoi_mail_guests)?'Oui':'Non'); $displayElement(__('Mail guest 1'), h($configurationObj->emailGuest1)); $displayElement(__('Mail guest 2'), h($configurationObj->emailGuest2)); $displayElement(__('Mail guest 3'), h($configurationObj->emailGuest3)); @@ -137,7 +118,10 @@ echo '
'; echo '
'; + //if ($configuration->use_ldap) : + echoSection("LDAP", "fichiers"); + /* echo '

'; echo ''; echo 'LDAP'; @@ -145,7 +129,8 @@ echo '
'; echo ''; echo ''; - $displayElement(__('Utilisation du LDAP'), $ldap); + */ + $displayElement(__('Utilisation du LDAP'), h($configurationObj->ldap_used?"Oui":"Non")); $displayElement(__('Host du LDAP'), h($configurationObj->ldap_host)); $displayElement(__('Port du LDAP'), h($configurationObj->ldap_port)); $displayElement(__('Type d\'authentification du LDAP'), h($configurationObj->ldap_authenticationType)); @@ -162,6 +147,8 @@ echo ''; //endif; + echoSection("Affichage", "affichage"); + /* echo '

'; echo ''; echo 'Affichage'; @@ -169,6 +156,7 @@ echo '
'; echo '

'; echo ''; + */ $displayElement(__('Nombre de materiel affichés par défaut'), h($configurationObj->aff_par_defaut)); echo '
'; echo '
'; diff --git a/src/Template/Documents/admission.ctp b/src/Template/Documents/admission.ctp index 35b3021..dae9176 100644 --- a/src/Template/Documents/admission.ctp +++ b/src/Template/Documents/admission.ctp @@ -25,11 +25,12 @@ $texte = "Fiche d'inventaire"; $fpdf->Cell(190, 10, $texte, 0, 1, 'C'); $fpdf->SetLineWidth(0.5); $fpdf->Line(5, 35, 200, 35); -$texte = "Ce document ne doit être utilisé qu'en cas d'acquisition de matériels durables,"; +//$texte = "Ce document ne doit être utilisé qu'en cas d'acquisition de matériels durables,"; +$texte = "Ce document ne doit etre utilise qu'en cas d'acquisition de materiels durables,"; $fpdf->SetFont('Arial', '', 10); $fpdf->Cell(190, 10, $texte, 0, '', 'C'); $fpdf->Ln(5); -$texte = "d'une valeur égale ou superieure à 1000€ HT"; +$texte = "d'une valeur egale ou superieure a 1000E HT"; $fpdf->Cell(190, 10, $texte, 0, '', 'C'); /** diff --git a/src/Template/Documents/pdf/admission_pdf.ctp b/src/Template/Documents/pdf/admission_pdf.ctp index cba406b..5d470e7 100644 --- a/src/Template/Documents/pdf/admission_pdf.ctp +++ b/src/Template/Documents/pdf/admission_pdf.ctp @@ -27,17 +27,18 @@ $fpdf->AddPage(); // Entete doc // Logo tutelle concernee -if (strtoupper($data['organisme']) == 'CNRS') { - $imLogo = 'img/CNRS.jpg'; - //$fpdf->Image($imLogo, 10, 10, - 400); -} else { // UPS - $imLogo = "img/logo_ups.png"; // Logo tutelle concernee - //$fpdf->Image($imLogo, 10, 10, - 100); +if (strtoupper($data['organisme']) != '') { + if (strtoupper($data['organisme']) == 'CNRS') { + $imLogo = 'img/CNRS.jpg'; + //$fpdf->Image($imLogo, 10, 10, - 400); + } else { // UPS + $imLogo = "img/logo_ups.png"; // Logo tutelle concernee + //$fpdf->Image($imLogo, 10, 10, - 100); + } + // + echo ""; } -?> - -Ln(15); $fpdf->SetFont('Arial', 'B', 18); @@ -57,7 +58,7 @@ $fpdf->SetFont('Arial', '', 10); $fpdf->Cell(190, 10, $texte, 0, '', 'C'); $fpdf->Ln(5); */ -$texte2 = "d'une valeur égale ou superieure à 1000€ HT"; +$texte2 = "d'une valeur égale ou supérieure à 1000€ HT"; //$fpdf->Cell(190, 10, $texte, 0, '', 'C'); echo "
$texte1
"; echo "
$texte2
"; diff --git a/src/Template/Materiels/view.ctp b/src/Template/Materiels/view.ctp index 90bc1f0..813d5c0 100755 --- a/src/Template/Materiels/view.ctp +++ b/src/Template/Materiels/view.ctp @@ -3,8 +3,8 @@ use Cake\I18n\Time; use Cake\I18n\Date; use Cake\ORM\TableRegistry; -//$PDF_ENGINE = "fpdf"; -$PDF_ENGINE = "dompdf"; +//$PDF_ENGINE = "FPDF"; +//$PDF_ENGINE = "DOMPDF"; // EP // Set some useful global variables for this view @@ -324,7 +324,7 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : ''; // Doc admission (admin only) if ($IS_CREATED || $IS_VALIDATED) { - if ($PDF_ENGINE == "fpdf") { + if ($PDF_ENGINE == "FPDF") { // FPDF $action = 'admission'; $data = $materiel->numero_laboratoire; @@ -352,7 +352,7 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : ''; // Doc sortie (admin only) else if ($IS_ARCHIVED || $IS_TOBEARCHIVED) { - if ($PDF_ENGINE == "fpdf") { + if ($PDF_ENGINE == "FPDF") { // FPDF $action = 'sortie'; $data = $materiel->numero_laboratoire; @@ -519,7 +519,7 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : ''; echo "
"; echo "
"; // echo '
'; - if ($PDF_ENGINE == "fpdf") { + if ($PDF_ENGINE == "FPDF") { // FPDF $action = 'ficheMateriel'; $data = $materiel->numero_laboratoire; diff --git a/webroot/js/script.js b/webroot/js/script.js index bd362ee..175040c 100755 --- a/webroot/js/script.js +++ b/webroot/js/script.js @@ -51,9 +51,12 @@ function updateSelectOptionsFromAnother(selectId, otherSelectId, requestName, em }); } - +// Gestion des sections qu'on peut afficher ou masquer $(document).ready(function() { - //Page index de matériel + + + // Page index de matériel (et de configurations) + $('#t_informations').click(function() { $('#informations').toggle('fast'); toogleChevron('#i_informations'); @@ -73,9 +76,19 @@ $(document).ready(function() { $('#t_fichiers').click(function() { $('#fichiers').toggle('fast'); toogleChevron('#i_fichiers'); - }); + }); + + + // Page Configurations only + + $('#t_affichage').click(function() { + $('#affichage').toggle('fast'); + toogleChevron('#i_affichage'); + }); + + + // Page find de matériel - //Page find de matériel $('#t_filter').click(function() { $('#filter').toggle('fast'); toogleChevron('#i_filter'); @@ -84,6 +97,7 @@ $(document).ready(function() { $('#result').toggle('fast'); toogleChevron('#i_result'); }); + }); function toogleChevron(element) { -- libgit2 0.21.2