Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1678 → Rev 1679

/trunk/jrest/services/CelWidgetExport.php
53,7 → 53,8
'limite' => 'limite',
'format' => 'format',
'colonnes' => 'colonnes',
'transmission' => 'transmission'
'transmission' => 'transmission',
'obsids' => 'obsids',
);
private $limite_decoupage_defaut = 9000;
152,16 → 153,20
}
$chercheur_observations = new RechercheObservation($this->config);
$debut = isset($criteres['debut']) ? $criteres['debut'] : 0;
$limite = isset($criteres['limite']) ? $criteres['limite'] : 0;
$debut = isset($criteres['debut']) ? intval($criteres['debut']) : 0;
$limite = isset($criteres['limite']) ? intval($criteres['limite']) : 0;
$colonnes = isset($criteres['colonnes']) ? $criteres['colonnes'] : 'standard,avance';
 
if($criteres['obsids']) $criteres['sql_brut'] = sprintf('id_observation IN (%s)',
implode(',', $criteres['obsids']));
unset($criteres['limite']);
unset($criteres['debut']);
unset($criteres['format']);
unset($criteres['colonnes']);
$observations = $chercheur_observations->rechercherObservations(null, $criteres, $debut, $limite)->get();
unset($criteres['obsids']);
 
$observations = $chercheur_observations->rechercherObservations(null, $criteres, $debut, $limite, TRUE)->get();
$ids = array();
foreach($observations as &$obs) {
$ids[] = $obs['id_observation'];
200,6 → 205,7
$parametres_traites[$this->parametres_autorises[$cle]] = $valeur;
}
}
$parametres_traites['obsids'] = @self::traiterObsIds($parametres['obsids']);
return $parametres_traites;
}
353,5 → 359,33
$utilisateur['id_utilisateur'] != '' &&
$id_utilisateur == $utilisateur['id_utilisateur'];
}
 
static function traiterObsIds($range_param) {
if (!isset($range_param)) return NULL;
// trim() car: `POST http://url<<<"range=*"`
if (trim($range_param) == '*') return NULL;
return self::rangeToList(trim($range_param));
}
 
/*
* @param $fieldSets: un range, eg: 1-5,8,32,58-101
* @return un tableau trié, eg: 1,2,3,4,5,8,32,58,...,101
* http://stackoverflow.com/questions/7698664/converting-a-range-or-partial-array-in-the-form-3-6-or-3-6-12-into-an-arra
*/
static function rangeToList($in = '') {
$inSets = explode(',', trim($in, ','));
$outSets = array();
 
foreach($inSets as $inSet) {
list($start,$end) = explode('-', $inSet . '-' . $inSet);
// ignore les ranges trop importants
if($start > 10000000 || $end > 10000000 || abs($start-$end) > 10000) continue;
$outSets = array_merge($outSets,range($start,$end));
}
$outSets = array_unique($outSets);
$outSets = array_filter($outSets, 'is_numeric');
sort($outSets);
return $outSets;
}
}
?>
/trunk/src/org/tela_botanica/client/vues/observation/ListeObservationVue.java
187,6 → 187,7
});
ToolbarTextItem exporter = new ToolbarTextItem("<a href=\"#\" id=\"lienExport\"> Exporter </a>");
ToolbarTextItem exporterPDF = new ToolbarTextItem("<a href=\"#\" id=\"lienExportPDF\" title=\"Génération d'étiquettes au format PDF pour la sélection\"> Étiquettes </a>");
barreActions.addButton(publier);
barreActions.addButton(privatiser);
196,6 → 197,7
barreActions.addButton(importer);
barreActions.addSpacer();
barreActions.addItem(exporter);
barreActions.addItem(exporterPDF);
this.setTopToolbar(barreActions) ;
this.setBottomToolbar(bt);
386,14 → 388,19
ExtElement lienExport = Ext.get("lienExport") ;
lienExport.addListener("click", new EventCallback() {
 
@Override
public void execute(EventObject e) {
observationMediateur.exporterObservations();
}
});
 
ExtElement lienExportPDF = Ext.get("lienExportPDF") ;
lienExportPDF.addListener("click", new EventCallback() {
@Override
public void execute(EventObject e) {
observationMediateur.exporterObservationsPDF();
}
});
}
});
/trunk/src/org/tela_botanica/client/modeles/dao/ExportObservationsDAO.java
14,7 → 14,7
om = observationModele ;
}
 
public void exporterObservations(String identifiant, String[][] criteres) {
public void exporterObservations(String identifiant, String[][] criteres, String format) {
String requete = "" ;
38,7 → 38,7
if(requete != "") {
requete += "&";
}
requete += "id_utilisateur="+identifiant+"&format=xls";
requete += "id_utilisateur="+identifiant+"&format="+format;
Window.open(Configuration.getServiceBaseUrl()+"/CelWidgetExport/export/?"+requete,"Export",null) ;
}
/trunk/src/org/tela_botanica/client/observation/ObservationModele.java
331,18 → 331,33
 
 
public void exporterObservations() {
String[][] criteres = {{"",""}} ;
criteres = observationMediateur.renvoyerFiltres() ;
criteres = observationMediateur.renvoyerFiltres();
// on rassemble les critères
// on les crée un DAO auquel on les transmet et qui demande le nombre d'images correspondantes (pour les pages)
ExportObservationsDAO exoDAO = new ExportObservationsDAO(this) ;
exoDAO.exporterObservations(Utilisateur.getInstance().getIdentifiantUtilisateurConsulte(), criteres) ;
exoDAO.exporterObservations(Utilisateur.getInstance().getIdentifiantUtilisateurConsulte(), criteres, "xls") ;
}
 
public void exporterObservationsPDF(String[] ordres) {
String[][] criteres = {{"",""}} ;
criteres = observationMediateur.renvoyerFiltres();
String ids = "";
for (int j = 0; j < ordres.length; j++) {
ids += getIdPourOrdreObs(ordres[j]) + ",";
}
 
String[] fmt = {"obsids", ids};
String[][] tous_criteres = new String[criteres.length + 1][];
System.arraycopy(criteres, 0, tous_criteres, 0, criteres.length);
tous_criteres[tous_criteres.length - 1] = fmt;
 
ExportObservationsDAO exoDAO = new ExportObservationsDAO(this) ;
exoDAO.exporterObservations(Utilisateur.getInstance().getIdentifiantUtilisateurConsulte(), tous_criteres, "pdf") ;
}
 
 
 
public void supprimerLiaisonImages(String idImg, String idObs) {
LienImageAsynchroneDAO lienDAO = new LienImageAsynchroneDAO(this) ;
/trunk/src/org/tela_botanica/client/observation/ObservationMediateur.java
782,7 → 782,21
observationModele.exporterObservations() ;
}
 
public void exporterObservationsPDF() {
if(listeObservation.getIdSelectionnees() > 300) {
// com.google.gwt.user.client
Window.alert("Les étiquettes ne peuvent être générées pour plus de 300 observations d'un coup.");
return;
}
// TODO: nombre en fonction des filtres actifs, combien d'éléments seraient envoyés ?
if(listeObservation.getIdSelectionnees() == 0) {
//import com.google.gwt.core.client.GWT.log( XXX éléments);
}
observationModele.exporterObservationsPDF(listeObservation.getIdSelectionnees());
 
}
 
 
public void deconnecterUtilisateur() {
if(panneauPrincipalObservation == null || panneauPrincipalObservation.isCreated() || !panneauPrincipalObservation.isVisible())