Subversion Repositories Applications.referentiel

Compare Revisions

Ignore whitespace Rev 37 → Rev 38

/trunk/interfaces/configurations/config.default.ini
12,6 → 12,10
info.framework.version = 0.2
;Encodage de l'application
appli_encodage = "UTF-8"
; Paramêtres indiquant que l'on est en français pour permettre l'affichage des dates en français.
i18n_locale_systeme = "php:setlocale(LC_TIME, 'fr_FR.UTF-8')"
; Paramêtres indiquant la zone horaire locale
i18n_zone_horaire_systeme = "php:date_default_timezone_set('Europe/Paris')"
; Nom de domaine pour l'URL de base de l'application : 162.38.234.6
domaine = "localhost"
; URL de base de l'application, si elle est laissée vide, l'application fonctionnera en Stand-alone
/trunk/interfaces/configurations/referentiel_v2.1.ini
73,4 → 73,11
; Liste des statuts d'introduction
codes_statuts_introduction = "ISDECAX"
; Liste des statuts de culture
codes_statuts_culture = "CISDECX"
codes_statuts_culture = "CISDECX"
 
; Liste des domaines géographiques
domaine_geo="France métro & Corse;Océan Indien;Martinique;Guadeloupe;Guyane;Nouvelle-Calédonie;Polynésie française;St Martin & St Barth;St Pierre et Miquelon;Terres Australes"
; Liste des domaines taxonomiques
domaine_taxo="Trachéophytes;Bryophytes;Champignons;Lichens;Algues"
; Liste des codes de nomenclatures
domaine_code="CINB;CINPC"
/trunk/interfaces/index.php
15,8 → 15,8
<meta name="description" content="<?php echo Referentiel::getMetaDescription();?>" />
<meta name="keywords" content="<?php echo Referentiel::getMetaTags();?>" />
<meta name="revisit-after" content="15 days" />
<meta name="robots" content="index,follow" />
<meta name="revisit-after" content="150 days" />
<meta name="robots" content="noindex,nofollow" />
<meta name="author" content="Tela Botanica" />
 
<link rel="shortcut icon" type="image/x-icon" href="http://www.tela-botanica.org/favicon.ico" />
/trunk/interfaces/squelettes/css/referentiel/referentiel.css
16,12 → 16,25
background-color:#E9584C !important;}
.espace{
background-color:yellow !important;}
 
.case-a-cocher-scroll {
height:6em;
padding:2px;
overflow:auto;
border:1px solid #ccc}
.liste-simple li, ul.liste-simple{
list-style-type:none;
padding:0;
margin:0 !important;}
.liste-champs li, ul.liste-champs{
list-style-type:none;
padding:0;
margin:0 !important;}
.liste-champs li{
padding:2px;}
/*--------------------------------------------------------------------------------------------------------------*/
/* Demande de traitements */
#zone-form form{
display:inline;}
 
/*--------------------------------------------------------------------------------------------------------------*/
/* Traitement */
#resultats {
41,4 → 54,6
width:800px;
padding:5px;}
#ref-resultat .message p{
background-color:#f0f0f0;}
background-color:#f0f0f0;}
 
/trunk/interfaces/squelettes/form_version.tpl.html
New file
0,0 → 1,141
<!-- REF - DEBUT VERSIONNAGE -->
<script type="text/javascript">
$(document).ready(function() {
$('#ref-dem-ok').click(function(e) {
var ok = false;
if (confirm('Êtes vous sûr de vouloir versionner le référentiel actuellement en cours de travail ?')) {
ok = true;
}
return ok;
});
});
</script>
<h1>Versionnage du référentiel «&nbsp;<?=$ref;?>&nbsp;»</h1>
 
<?php if (isset($messages)) : ?>
<h2>Messages</h2>
<?php foreach ($messages as $message) : ?>
<p class="information"><?=$message;?></p>
<?php endforeach; ?>
<?php endif; ?>
 
<div id="zone-form-version">
<form id="ref-demande-versionnage" name="ref-demande-versionnage" action="<?=$url_form;?>" method="get">
<input name="module" type="hidden" value="<?=$url_module;?>" />
<input name="action" type="hidden" value="<?=$url_action_demande;?>" />
<input name="ref" type="hidden" value="<?=$ref;?>" />
<fieldset>
<legend>Général</legend>
<ul class="liste-champs">
<li>
<label for="titre">Titre</label>
<input id="titre" type="text" value=""/>
</li>
<li>
<label for="acronyme">Acronyme</label>
<input id="acronyme" type="text" value=""/>
</li>
<li>
<label for="version">Version</label>
<input id="version" type="text" value=""/>
</li>
</ul>
</fieldset>
<fieldset>
<legend>Date</legend>
<label for="date_prod">Date de production</label>
<input id="date_prod" name="date_prod" type="text" value="<?=$date_prod?>" readonly="readonly"/>
</fieldset>
 
<fieldset>
<legend>Domaines couverts par le référentiel</legend>
<p> Vous pouvez choisir plusieurs éléments par liste.</p>
<label for="ref-ver-dom-tax">Domaine taxonomique</label>
<div id="ref-ver-dom-tax" class="case-a-cocher-scroll" style="width:150px;"/>
<ul class="liste-simple">
<? foreach ($domaine_taxo as $taxo) : ?>
<li><label><input type="checkbox" name="dom_tax" value="<?=$taxo?>" /><?=$taxo?></label></li>
<? endforeach; ?>
</ul>
</div>
<label for="ref-ver-dom-geo">Domaine géographique</label>
<div id="ref-ver-dom-geo" class="case-a-cocher-scroll" style="width:250px;"/>
<ul class="liste-simple">
<? foreach ($domaine_geo as $geo) : ?>
<li><label><input type="checkbox" name="dom_geo" value="<?=$geo?>" /><?=$geo?></label></li>
<? endforeach; ?>
</ul>
</div>
<label for="ref-ver-dom-code">Codes botaniques utilisés</label>
<div id="ref-ver-dom-code" class="case-a-cocher-scroll" style="width:150px;"/>
<ul class="liste-simple">
<? foreach ($domaine_code as $code) : ?>
<li><label><input type="checkbox" name="dom_code" value="<?=$code?>" /><?=$code?></label></li>
<? endforeach; ?>
</ul>
</div>
</fieldset>
 
<fieldset>
<legend>Contacts</legend>
<ul class="liste-champs">
<li>
<label for="auteur_principal">Auteur principal</label>
<input type="text" id="auteur_principal" name="auteur_principal" value="" />
</li>
<li>
<label for="coordinateur">Coordinateur</label>
<input type="text" id="coordinateur" name="coordinateur" value="" />
</li>
<li>
<label for="contributeur">Auteurs/Contributeurs</label>
<textarea id="contributeur" name="contributeur" rows="5" cols="50"></textarea>
</li>
<li>
<label for="editeur">Éditeur</label>
<input type="text" id="editeur" name="editeur" value="" />
</li>
<li>
<label for="contact">Courriel de contact</label>
<input type="text" name="contact" value="" />
</li>
</ul>
</fieldset>
 
<fieldset>
<legend>Citation</legend>
<ul class="liste-champs">
<li>
<label for="source">Source</label>
<textarea id="source" name="source" rows="5" cols="50"></textarea>
</li>
<li>
<label for="mention_legale">Mention légale</label>
<input type="text" id="mention_legale" name="mention_legale" value="" />
</li>
<li>
<label for="ref-ver-licence">Licence</label>
<div class="case-a-cocher-scroll" style="width:350px;">
<ul id="ref-ver-licence" class="liste-simple">
<? foreach ($licences as $licence) : ?>
<li><label><input type="checkbox" name="licence" value="<?=$licence['url']?>" /><a href="<?=$licence['url']?>" onclick="window.open(this.href); return false;"><?=$licence['nom']?></a></label></li>
<? endforeach; ?>
</ul>
</div>
</li>
<li>
<label for="referencement">Comment citer ce référentiel?</label>
<textarea id="referencement" name="referencement" rows="5" cols="50"></textarea>
</li>
</ul>
</fieldset>
<input id="ref-versionnage-ok" type="submit" value="Versionner" />
</form>
</div>
<!-- REF - FIN VERSIONNAGE -->
/trunk/interfaces/squelettes/form_traitement.tpl.html
19,7 → 19,7
<input name="module" type="hidden" value="<?=$url_module;?>" />
<input name="action" type="hidden" value="<?=$url_action_demande;?>" />
<input name="ref" type="hidden" value="<?=$ref;?>" />
<label id="ref-dem-label"for="ref-dem-ok">Faire une demande de traitement</label>
<label id="ref-dem-label" for="ref-dem-ok">Faire une demande de traitement</label>
<input id="ref-dem-ok" type="submit" value="Demander" />
</form>
<form id="ref-rafraichir" name="ref-rafraichir" action="<?=$url_form;?>" method="get">
38,6 → 38,29
<?php endforeach; ?>
<?php endif; ?>
 
<h2>Traitements en attente <?=strftime('à %H:%M:%S le %d %B %Y')?></h2>
<?php if (isset($traitements_en_attente)) : ?>
<table>
<caption>Traitements en attente</caption>
<thead>
<tr>
<th>Nom (#)</th>
<th>Date de la demande</th>
</tr>
</thead>
<tbody>
<?php foreach ($traitements_en_attente as $traitement) : ?>
<tr>
<td><?=$traitement['nom']?> <span class="discretion">(id:<?=$traitement['id_traitement']?>)</span></td>
<td><?=$traitement['meta_date_creation']?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php else : ?>
<p class="information">Aucun traitement en attente.</p>
<?php endif; ?>
 
<h2>Traitements en cours</h2>
<?php if (isset($traitements_en_cours)) : ?>
<table>
/trunk/interfaces/controleurs/Test.php
53,14 → 53,21
// Traitement de l'info sur le code du référentiel
if (isset($this->referentiel)) {
$donnees['ref'] = $this->referentiel;
// Recherche des traitements en attente
$resultat = $this->traitementDao->getTraitementsEnAttente($this->referentiel);
if (is_array($resultat)) {
$donnees['traitements_en_attente'] = $resultat;
}
// Recherche des traitements en cours d'éxecution
$resultat = $this->traitementDao->getTraitementsEnCours($this->referentiel);
if ($resultat != false) {
if (is_array($resultat)) {
$donnees['traitements_en_cours'] = $resultat;
}
// Recherche des traitements déjà effectué
$resultat = $this->traitementDao->getTraitementsTermines($this->referentiel);
if ($resultat != false) {
if (is_array($resultat)) {
// Ajout de l'url vers la fiche du traitement
foreach ($resultat as &$traitement) {
$traitement['url'] = $this->obtenirUrlFicheTraitement($this->referentiel, $traitement['id_traitement']);
92,17 → 99,21
if (!isset($this->referentiel)) {
$this->addMessage("Aucun code de projet de référentiel n'est indiqué (Ex. bdnff).");
} else {
// TODO : vérifier qu'il n'y a pas déjà un traitement en cours pour ce projet.
$resultat_traitement_en_cours = $this->traitementDao->getTraitementsEnCours($this->referentiel);
if ($resultat_traitement_en_cours) {
$this->addMessage("Un traitement est déjà en cours...");
$resultat_traitement_en_attente = $this->traitementDao->getTraitementsEnAttente($this->referentiel);
if ($resultat_traitement_en_attente) {
$this->addMessage("Un traitement est déjà en attente...");
} else {
$resultat = $this->traitementDao->ajouterTraitement($this->referentiel);
if ($resultat != false) {
$this->addMessage("Le traitement #'$resultat' a été ajouté.");
$this->lancerScript();
$resultat_traitement_en_cours = $this->traitementDao->getTraitementsEnCours($this->referentiel);
if ($resultat_traitement_en_cours) {
$this->addMessage("Un traitement est déjà en cours...");
} else {
$this->addMessage("Un problème est survenu lors de la tentative d'ajout du traitement.");
$resultat = $this->traitementDao->ajouterTraitement($this->referentiel);
if ($resultat != false) {
$this->addMessage("Le traitement #'$resultat' a été ajouté.");
$this->lancerScript();
} else {
$this->addMessage("Un problème est survenu lors de la tentative d'ajout du traitement.");
}
}
}
}
118,7 → 129,7
$projet = $this->referentiel;
$action = 'tout';
$log = Config::get('chemin_script_log');
$commande = "$php -f $exe $script -p $projet -a $action > $log &";
$commande = "$php -d memory_limit=1073741824 -f $exe $script -p $projet -a $action > $log &";
 
$message_erreur_tpl = "%s\n.".
"Il est nécessaire de configurer le lancement du script via une tache dans le cron.\n".
/trunk/interfaces/controleurs/Versionnage.php
14,6 → 14,7
*/
class Versionnage extends AppliControleur {
private $manuel = null;
private $referentiel = null;
public function __construct() {
23,6 → 24,8
if (isset($_GET['ref'])) { // code du projet courrant
$this->referentiel = strtolower($_GET['ref']);
}
$this->manuel = parse_ini_file(Config::get('chemin_appli').DS.'..'.DS.'configurations'.DS.'referentiel_v2.1.ini');
}
//+----------------------------------------------------------------------------------------------------------------+
31,9 → 34,41
* Fonction d'affichage par défaut
*/
public function executerActionParDefaut() {
return $this->afficherInterface();
}
 
/**
* Affiche le formulaire de demande de versionnage
*/
public function afficherInterface() {
$donnees = array();
// Paramêtres pour l'url du formulaire
$this->url->unsetVariablesRequete(array('module', 'action', 'ref'));
$donnees['url_form'] = $this->url->getUrl();
$donnees['url_module'] = 'Versionnage';
$donnees['url_action_demande'] = 'demanderTraitement';
$donnees['url_action_rafraichir'] = 'afficherInterface';
// Date de production de la version
$donnees['date_prod'] = date('Y-m-d');
// Récupération des paramètres de configuration du manuel des référentiels
$donnees['domaine_geo'] = explode(';', $this->manuel['domaine_geo']);
$donnees['domaine_taxo'] = explode(';', $this->manuel['domaine_taxo']);
$donnees['domaine_code'] = explode(';', $this->manuel['domaine_code']);
$licences = explode(';', $this->manuel['licences']);
foreach ($licences as $licence) {
if (preg_match('/^([^<]+)<([^>]+)>/', $licence, $match)) {
$info_licence = array();
$info_licence['nom'] = $match[1];
$info_licence['url'] = $match[2];
$donnees['licences'][] = $info_licence;
}
}
$this->setSortie(self::RENDU_CORPS, $this->getVue('form_version', $donnees), false);
$this->construireMenu($this->referentiel);
$this->construireFilAriane($this->referentiel);
$this->setSortie(self::RENDU_CORPS, '<p>En cours de réalisation...</p>', false);
}
}
}
?>