Subversion Repositories eFlore/Applications.del

Compare Revisions

No changes between revisions

Regard whitespace Rev 1688 → Rev 1689

/trunk/services/modules/0.1/observations/Observation.php
363,7 → 363,7
*
* @param array $ressources tableau des informations contenues dans l'url après le nom du service
* @param array $parametres contenu du post
* @return mixed Chaine "OK" en cas de succès, booléen "false" en cas d'échec
* @return mixed Chaine "OK" (en majuscule) en cas de succès, booléen "false" en cas d'échec
*/
public function modifier($ressources, $parametres) {
$retour = false;
372,7 → 372,8
$clientRest = $this->conteneur->getRestClient();
$urlTpl = $this->conteneur->getParametre('urlServiceCelObs');
$url = $urlTpl.$idObs;
$retour = $clientRest->modifier($url, $parametres);
$retourCel = $clientRest->modifier($url, $parametres);
$retour = preg_match('/^OK$/i', $retourCel) ? 'OK' : false;
}
return $retour;
}
/trunk/src/org/tela_botanica/del/client/i18n/Vocabulary.java
1519,11 → 1519,38
String vous();
 
/**
* Translated "Vous".
* Translated "Supprimer l'image définitivement".
*
* @return translated "Vous"
* @return translated "Supprimer l'image définitivement"
*/
@DefaultStringValue("Supprimer l'image définitivement")
@Key("supprimerImage")
String supprimerImage();
/**
* Translated "Êtes-vous certain de vouloir supprimer l'image DÉFINITIVEMENT ? L'image est-elle réellement inutilisable ? Avez-vous contacté son auteur au préalable ?".
*
* @return translated "Êtes-vous certain de vouloir supprimer l'image DÉFINITIVEMENT ? L'image est-elle réellement inutilisable ? Avez-vous contacté son auteur au préalable ?"
*/
@DefaultStringValue("Êtes-vous certain de vouloir supprimer l'image DÉFINITIVEMENT ? L'image est-elle réellement inutilisable ? Avez-vous contacté son auteur au préalable ?")
@Key("confirmationSuppressionImg")
String confirmationSuppressionImg();
/**
* Translated "Dépublier".
*
* @return translated "Dépublier"
*/
@DefaultStringValue("Dépublier")
@Key("depublierObs")
String depublierObs();
/**
* Translated "Avez-vous contacté l'auteur de l'observation ? Êtes-vous vraiment certain de vouloir dépublier le travail de cette personne ?".
*
* @return translated "Avez-vous contacté l'auteur de l'observation ? Êtes-vous vraiment certain de vouloir dépublier le travail de cette personne ?"
*/
@DefaultStringValue("Avez-vous contacté l'auteur de l'observation ? Êtes-vous vraiment certain de vouloir dépublier le travail de cette personne ?")
@Key("confirmationDepublicationObs")
String confirmationDepublicationObs();
}
/trunk/src/org/tela_botanica/del/client/i18n/Vocabulary.properties
93,6 → 93,8
lienAidePictoflora = http://www.tela-botanica.org/page:liste_projets?id_projet=112&act=wikini
lienAideIdentiplante = http://www.tela-botanica.org/page:liste_projets?id_projet=95&act=wikini
signalerIdentification = Signaler une mauvaise identification
supprimerImage = Supprimer l'image définitivement
confirmationSuppressionImg = Êtes-vous certain de vouloir supprimer l'image DÉFINITIVEMENT ? L'image est-elle réellement inutilisable ? Avez-vous contacté son auteur au préalable ?
 
#ecran recherche observation
rechercherObservation = Identifier une plante
131,6 → 133,8
confirmationSuppressionCommentaire = Êtes vous sur de vouloir supprimer ce commentaire ?
confirmationSuppressionDetermination = Êtes vous sur de vouloir supprimer cette détermination ?
confirmationValidationDetermination = Êtes vous sur de vouloir modifier votre observation pour le nom indiqué par cette proposition ?
depublierObs = Dépublier
confirmationDepublicationObs = Avez-vous contacté l'auteur de l'observation ? Êtes-vous vraiment certain de vouloir dépublier le travail de cette personne ?
 
#ecran comparaison
dateObservation = Date de la prise de vue
142,7 → 146,7
dateValidation = Date de dernière validation
transmisLe = Transmis le
 
#ecran votes protcoles
#ecran votes protocoles
votes = Moyenne des votes
votesMoyennePrecise = Moyenne pondérée des votes :
infoVotes = Voici la moyenne des votes en fonction du protocole choisi :
183,7 → 187,6
referentielIsfan = Flore d'Afrique du Nord
referentielApd = Flore d'Afrique de l'Ouest et du Centre
 
 
#composant pagination
afficher = Afficher
elements_par_page = éléments par page
/trunk/src/org/tela_botanica/del/client/navigation/evenement/depublierObs/GestionnaireEvenementDepublierObs.java
New file
0,0 → 1,7
package org.tela_botanica.del.client.navigation.evenement.depublierObs;
 
import com.google.gwt.event.shared.EventHandler;
 
public interface GestionnaireEvenementDepublierObs extends EventHandler {
public void onDepublicationObs(EvenementDepublierObs event);
}
/trunk/src/org/tela_botanica/del/client/navigation/evenement/depublierObs/EvenementDepublierObs.java
New file
0,0 → 1,27
package org.tela_botanica.del.client.navigation.evenement.depublierObs;
 
import org.tela_botanica.del.client.navigation.evenement.depublierObs.GestionnaireEvenementDepublierObs;
import com.google.gwt.event.shared.GwtEvent;
 
public class EvenementDepublierObs extends GwtEvent<GestionnaireEvenementDepublierObs>{
public static com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementDepublierObs> TYPE = new com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementDepublierObs>();
private String idObs;
 
public EvenementDepublierObs(String idObs) {
this.idObs = idObs;
}
 
@Override
protected void dispatch(GestionnaireEvenementDepublierObs handler) {
handler.onDepublicationObs(this);
}
 
public String getIdObs() {
return idObs;
}
 
@Override
public com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementDepublierObs> getAssociatedType() {
return TYPE;
}
}
/trunk/src/org/tela_botanica/del/client/navigation/evenement/rechercheobservation/EvenementRechercheObservation.java
4,10 → 4,9
 
public class EvenementRechercheObservation extends GwtEvent<GestionnaireEvenementRechercheObservation> {
 
public static com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementRechercheObservation> TYPE = new com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementRechercheObservation>();
public static Type<GestionnaireEvenementRechercheObservation> TYPE = new Type<GestionnaireEvenementRechercheObservation>();
 
public EvenementRechercheObservation() {
}
public EvenementRechercheObservation() {}
 
@Override
protected void dispatch(GestionnaireEvenementRechercheObservation handler) {
15,7 → 14,7
}
 
@Override
public com.google.gwt.event.shared.GwtEvent.Type<GestionnaireEvenementRechercheObservation> getAssociatedType() {
public Type<GestionnaireEvenementRechercheObservation> getAssociatedType() {
return TYPE;
}
 
/trunk/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/IdentiplanteDeterminationVue.java
8,7 → 8,6
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Hyperlink;
import com.google.gwt.user.client.ui.Label;
30,7 → 29,7
Hyperlink lienRetour;
@UiField
Button boutonAjoutProposition, boutonAjoutPropositionBas, boutonAjoutCommentaire, boutonAjoutCommentaireBas;
Button btnDepublierObs, boutonAjoutProposition, boutonAjoutPropositionBas, boutonAjoutCommentaire, boutonAjoutCommentaireBas;
@UiField
Panel metadonnees;
65,6 → 64,11
return boutonAjoutPropositionBas;
}
@Override
public HasClickHandlers getBoutonDepublierObs() {
return btnDepublierObs;
}
public Panel getMetadonnees() {
return metadonnees;
}
/trunk/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/determinationVue.css
5,6 → 5,13
margin-top:10px;
display:inline-block;
}
.limiteZoneMenu {
max-width:840px;
margin-bottom:10px;
}
.limiteZoneMetadonnees {
width:840px;
}
.zoneVote {
margin-left: 5px;
height: 100%;
16,17 → 23,13
padding-right:10px;
text-align:left;
}
 
.taxonPlusProbable {
float: left;
}
 
.zoneBarreRepartition {
border: solid 1px #DDD;
padding: 15px;
}
 
.zoneDetailImage {
height: 100%;
width: 255px;
35,22 → 38,18
text-align:left;
clear: left;
}
 
.zoneImage {
margin-bottom: 10px;
margin-right: 15px
}
 
.zoneImage div {
clear: left;
padding-top: 5px;
}
 
.zoneImage div img {
float: left;
padding: 0 5px 5px 0;
}
 
.boutonProposer {
float: left;
padding: 5px;
60,11 → 59,9
margin-right:10px;
margin-top:10px;
}
 
.boutonValiderTaxon {
margin-top: -7px;
}
 
.zoneOutils {
width: 15%;
padding-left:10px;
72,12 → 69,9
vertical-align:top;
text-align:left;
}
 
.boutons {
margin-bottom:15px;
}
 
 
.lienProposerObservation {
margin-left:65px;
margin-top:10px;
86,7 → 80,6
.nomTaxonProbable {
padding-left:3px;
}
 
.taxonProbable {
background: none repeat scroll 0 0 #F8F8C3;
clear: left;
94,11 → 87,9
margin-bottom: 5px;
padding: 13px 9px;
}
 
.voteProtocole div {
margin-bottom:10px;
}
 
.voteProtocole div div {
margin-bottom:0px;
border:solid 0px red
106,18 → 97,14
.autreOutils {
margin-top:15px;
}
 
.zonerss {
margin-top:5px;
}
 
 
.lienProposerImage {
margin-top:20px;
margin-left:70px;
margin-bottom:10px;
}
 
.lienAide {
margin-right:70px;
padding:4px 15px;
124,4 → 111,10
margin-top:10px;
float:right;
color:white;
}
}
.btnDepublierObs {
background:url("./img/16x16/depublier.png") 5px 5px no-repeat;
padding: 5px 5px 5px 23px;
}
.btnDepublierObs:hover {
background:#8EB533 url("./img/16x16/depublier_actif.png") 5px 5px no-repeat;
/trunk/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/IdentiplanteDeterminationVue.ui.xml
8,9 → 8,14
<ui:style src="determinationVue.css" />
<g:HTMLPanel styleName="{style.pageDetermination}">
<g:HTMLPanel styleName="limiteMax">
<g:Hyperlink ui:field="lienRetour" styleName="lien">Retour</g:Hyperlink>
<g:HTMLPanel styleName="{style.limiteZoneMenu}">
<g:Hyperlink ui:field="lienRetour" styleName="lienRetour">Retour</g:Hyperlink>
<g:Button ui:field="btnDepublierObs" text="{constants.depublierObs}" styleName="droite bouton {style.btnDepublierObs}" />
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.limiteZoneMetadonnees}">
<g:HTMLPanel ui:field="metadonnees" styleName="{style.metadonnees}"/>
</g:HTMLPanel>
</g:HTMLPanel>
<g:HTMLPanel styleName="contenuCentre">
<g:HTMLPanel styleName="{style.zoneDetailImage}">
<g:VerticalPanel ui:field="detailImageObservation" styleName="{style.zoneImage}"/>
46,9 → 51,7
<g:Label styleName="lienListe labelLien" ui:field="lienOuvrages">Flores numérisées</g:Label>
<g:Label styleName="lienListe labelLien" ui:field="lienBonnier">Flore Bonnier interactive</g:Label>
<g:Label styleName="lienListe labelLien" ui:field="lienCles">Clés de détermination</g:Label>
</g:HTMLPanel>
</g:HTMLPanel>
</g:HTMLPanel>
 
</ui:UiBinder>
/trunk/src/org/tela_botanica/del/client/vues/identiplante/plateformedetermination/IdentiplanteDeterminationPresenteur.java
38,6 → 38,9
import org.tela_botanica.del.client.navigation.evenement.changementEtatUtilisateur.GestionnaireEvenementChangementEtatUtilisateur;
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.EvenementChangementImageValidation;
import org.tela_botanica.del.client.navigation.evenement.changementimagevalidation.GestionnaireEvenementChangementImageValidation;
import org.tela_botanica.del.client.navigation.evenement.depublierObs.EvenementDepublierObs;
import org.tela_botanica.del.client.navigation.evenement.depublierObs.GestionnaireEvenementDepublierObs;
import org.tela_botanica.del.client.navigation.evenement.supprimerImage.EvenementSupprimerImage;
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.EvenementVoteDetermination;
import org.tela_botanica.del.client.navigation.evenement.voteDetermination.GestionnaireEvenementVoteDetermination;
import org.tela_botanica.del.client.services.CalculVoteDeterminationService;
44,13 → 47,17
import org.tela_botanica.del.client.services.rest.CommentaireServiceConcret;
import org.tela_botanica.del.client.services.rest.ObservationService;
import org.tela_botanica.del.client.services.rest.PropositionDeterminationServiceConcret;
import org.tela_botanica.del.client.services.rest.async.DepublicationObservationCallBack;
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
import org.tela_botanica.del.client.services.rest.async.SuppressionImageCallback;
import org.tela_botanica.del.client.services.rest.async.ValidationPropositionCallback;
import org.tela_botanica.del.client.utils.URLUtils;
import org.tela_botanica.del.client.navigation.evenement.rechercheobservation.EvenementRechercheObservation;
import org.tela_botanica.del.client.composants.formulairerechercheeflore.FormulaireRechercheEflorePresenteur;
import org.tela_botanica.del.client.composants.forum.ForumPresenteur;
import org.tela_botanica.del.client.composants.forum.ForumVue;
 
import com.google.gwt.core.shared.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
80,6 → 87,8
 
public Button getBoutonAjoutCommentaireBas();
 
public HasClickHandlers getBoutonDepublierObs();
 
public HasWidgets getMetadonnees();
 
public void afficherNomTaxonProbable(String nomTaxon);
103,6 → 112,7
public void viderMetadonnees();
}
 
private Observation observation;
private Vue vue;
private FenetreOverlaySimplePresenteur fenetreOverlaySimplePresenteur;
 
124,9 → 134,9
// car tout l'écran est asynchrone ici
String observationId = URLUtils.getURLSpecialParameterValue();
observationService.getObservation(observationId, new ObservationsCallback() {
 
@Override
public void surRetour(ObservationServiceResultat objetRetour) {
observation = cache.getObservationCourante();
afficherRss(cache.getObservationCourante());
// trouve l'image courante si elle n'est pas deja en cache
List<Image> listeImages = cache.getObservationCourante().getImages();
157,7 → 167,6
new RssPresenteur(new RssVue(), observation, "Suivre cette observation").go(vue.getZoneRss());
}
 
private void calculerEtAfficherVoteDeterminationPlusPopulaire() {
if(cache.getObservationCourante() != null) {
Observation observation = cache.getObservationCourante();
189,7 → 198,6
}
 
public void gererEvenements() {
BusEvenementiel.getInstance().addHandler(EvenementChangementEtatUtilisateur.TYPE, new GestionnaireEvenementChangementEtatUtilisateur() {
@Override
public void onModificationEtatUtilisateur(EvenementChangementEtatUtilisateur evenementChangementEtatUtilisateur) {
204,27 → 212,6
}
});
 
ClickHandler clicAjoutProposition = new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue(), new PropositionDeterminationServiceConcret()));
}
};
vue.getBoutonAjoutProposition().addClickHandler(clicAjoutProposition);
vue.getBoutonAjoutPropositionBas().addClickHandler(clicAjoutProposition);
 
ClickHandler clicAjoutCommentaire = new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(cache.getObservationCourante(), new CommentaireServiceConcret(), new FormulaireCommentaireVue());
fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
}
};
vue.getBoutonAjoutCommentaire().addClickHandler(clicAjoutCommentaire);
vue.getBoutonAjoutCommentaireBas().addClickHandler(clicAjoutCommentaire);
 
BusEvenementiel.getInstance().addHandler(EvenementAjoutDetermination.TYPE, new GestionnaireEvenementAjoutDetermination() {
@Override
public void onAjoutDetermination(EvenementAjoutDetermination event) {
235,7 → 222,6
});
 
BusEvenementiel.getInstance().addHandler(EvenementAjoutCommentaire.TYPE, new GestionnaireEvenementAjoutCommentaire() {
 
@Override
public void onAjoutCommentaire(EvenementAjoutCommentaire event) {
if (fenetreOverlaySimplePresenteur != null && fenetreOverlaySimplePresenteur.fenetreModaleEstOuverte()) {
245,7 → 231,6
});
 
BusEvenementiel.getInstance().addHandler(EvenementChangementImageValidation.TYPE, new GestionnaireEvenementChangementImageValidation() {
 
@Override
public void onChangementImage(EvenementChangementImageValidation event) {
vue.getDetailImageObservation().clear();
256,9 → 241,28
}
});
ClickHandler clicAjoutProposition = new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(new FormulairePropositionPresenteur(new FormulairePropositionVue(), new PropositionDeterminationServiceConcret()));
}
};
vue.getBoutonAjoutProposition().addClickHandler(clicAjoutProposition);
vue.getBoutonAjoutPropositionBas().addClickHandler(clicAjoutProposition);
ClickHandler clicAjoutCommentaire = new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
FormulaireCommentairePresenteur commentairePresenteur = new FormulaireCommentairePresenteur(cache.getObservationCourante(), new CommentaireServiceConcret(), new FormulaireCommentaireVue());
fenetreOverlaySimplePresenteur = new FenetreOverlaySimplePresenteur(new FenetreOverlayDefilanteVue());
fenetreOverlaySimplePresenteur.ouvrirFenetreModale(commentairePresenteur);
}
};
vue.getBoutonAjoutCommentaire().addClickHandler(clicAjoutCommentaire);
vue.getBoutonAjoutCommentaireBas().addClickHandler(clicAjoutCommentaire);
 
vue.getLienOuvrages().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Config config = new Config();
267,7 → 271,6
});
 
vue.getLienBonnier().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Config config = new Config();
276,7 → 279,6
});
vue.getLienCles().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Config config = new Config();
285,7 → 287,6
});
vue.getLienEflore().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Config config = new Config();
294,7 → 295,6
});
vue.getBoutonValidationTaxon().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if(Window.confirm(I18n.getVocabulary().confirmationValidationDetermination())) {
302,8 → 302,28
}
}
});
vue.getBoutonDepublierObs().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
GWT.log("Lancer evnt : EvenementDepublierObs");
BusEvenementiel.getInstance().fireEvent(new EvenementDepublierObs(observation.getId()));
}
});
BusEvenementiel.getInstance().addHandler(EvenementDepublierObs.TYPE, new GestionnaireEvenementDepublierObs() {
@Override
public void onDepublicationObs(EvenementDepublierObs event) {
GWT.log("Attraper evnt : EvenementDepublierObs (obs:"+event.getIdObs()+")");
if (event.getIdObs().equals(observation.getId())) {
if (Window.confirm(I18n.getVocabulary().confirmationDepublicationObs())) {
depublierObs();
}
}
}
});
}
private void validerPropositionPlusPopulaire() {
PropositionDeterminationServiceConcret propositionService = new PropositionDeterminationServiceConcret();
propositionService.validerProposition(propositionPlusPopulaire, new ValidationPropositionCallback() {
327,4 → 347,18
}
});
}
private void depublierObs() {
GWT.log("depublierObs :"+observation.getId());
observationService.depublier(observation, new DepublicationObservationCallBack() {
@Override
public void surRetour(String depublicationOk) {
GWT.log("Dépublication obs "+observation.getId()+" "+depublicationOk);
if (depublicationOk.equals("OK")) {
BusEvenementiel.getInstance().fireEvent(new EvenementRechercheObservation());
}
}
});
}
}
/trunk/src/org/tela_botanica/del/client/vues/pictoflora/resultats/images/ImagePresenteur.java
17,6 → 17,7
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVotePresenteur;
import org.tela_botanica.del.client.composants.votes.moyennevotes.MoyenneVoteVue;
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.i18n.I18n;
import org.tela_botanica.del.client.modeles.Commentaire;
import org.tela_botanica.del.client.modeles.Image;
import org.tela_botanica.del.client.modeles.ModeRecherche;
242,9 → 243,11
public void onSuppressionImage(EvenementSupprimerImage event) {
GWT.log("Attraper evnt : EvenementSupprimerImage (img:"+image.getIdImage()+")");
if (event.getIdImage().equals(image.getIdImage())) {
if (Window.confirm(I18n.getVocabulary().confirmationSuppressionImg())) {
supprimerImg();
}
}
}
});
vue.getBoutonSupprimerImage().addClickHandler(new ClickHandler() {
@Override
/trunk/src/org/tela_botanica/del/client/services/rest/ObservationService.java
1,13 → 1,18
package org.tela_botanica.del.client.services.rest;
 
import org.tela_botanica.del.client.modeles.InformationsRecherche;
import org.tela_botanica.del.client.modeles.Observation;
import org.tela_botanica.del.client.modeles.PropositionDetermination;
import org.tela_botanica.del.client.services.rest.async.DepublicationObservationCallBack;
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
import org.tela_botanica.del.client.services.rest.async.PropositionDeterminationCallBack;
 
public interface ObservationService {
 
public void getObservations(InformationsRecherche informationsRecherche, int debut, int fin, String statut, ObservationsCallback callback);
 
public void getObservation(String idObservation,
ObservationsCallback observationsCallback);
public void getObservation(String idObservation, ObservationsCallback observationsCallback);
 
public void depublier(Observation observation, DepublicationObservationCallBack callback);
 
}
/trunk/src/org/tela_botanica/del/client/services/rest/ObservationServiceConcret.java
2,9 → 2,11
 
import org.tela_botanica.del.client.config.Config;
import org.tela_botanica.del.client.modeles.InformationsRecherche;
import org.tela_botanica.del.client.modeles.Observation;
import org.tela_botanica.del.client.modeles.VoteDetermination;
import org.tela_botanica.del.client.services.rest.async.DepublicationObservationCallBack;
import org.tela_botanica.del.client.services.rest.async.ObservationsCallback;
import org.tela_botanica.del.client.services.rest.async.PHPCallback.ModeRequete;
 
import org.tela_botanica.del.client.services.RequestBuilderWithCredentials;
 
public class ObservationServiceConcret implements ObservationService {
32,7 → 34,6
}
 
private String assemblerChaineRequete(InformationsRecherche infos, int debut, int fin, String statut) {
 
String chaineRequete = "?navigation.depart=" + debut + "&navigation.limite=" + (fin - debut);
if (statut != null && !statut.equals("tous")) {
chaineRequete += "&masque.type=" + statut;
43,8 → 44,7
}
 
@Override
public void getObservation(String idObservation,
ObservationsCallback callback) {
public void getObservation(String idObservation, ObservationsCallback callback) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.GET, baseUrl + "observations/"+idObservation);
callback.setMode(ModeRequete.LECTURE);
try {
53,4 → 53,17
// TODO: handle exception
}
}
public void depublier(Observation observation, DepublicationObservationCallBack callback) {
String urlService = baseUrl+"observations/"+observation.getId();
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST, urlService);
callback.setMode(ModeRequete.MODIFICATION);
String chainePost = "transmission=0";
try {
rb.sendRequest(chainePost, callback);
} catch (Exception e) {
//TODO: quoi faire si la requete est mal formée coté client avant d'être envoyée ?
}
}
}
/trunk/src/org/tela_botanica/del/client/services/rest/async/DepublicationObservationCallBack.java
New file
0,0 → 1,13
package org.tela_botanica.del.client.services.rest.async;
 
import com.google.gwt.json.client.JSONParser;
 
public abstract class DepublicationObservationCallBack extends PHPCallback<String> {
@Override
public String parserJSON(String retourService) {
String reponse = JSONParser.parseStrict(retourService).isString().stringValue();
return reponse;
}
 
}
/trunk/src/org/tela_botanica/del/client/composants/metadonnees/MetadonneesEnLigneVue.ui.xml
26,6 → 26,11
<g:Label ui:field="localite" />
</g:HTMLPanel>
<g:HTMLPanel>
<g:Label text="le" styleName="{style.label}" />
<g:InlineLabel ui:field="dateReleve" />
</g:HTMLPanel>
<br/>
<g:HTMLPanel>
<g:Label text="par" styleName="{style.label}" />
<g:Label ui:field="auteur" title="Voir le profil" />
</g:HTMLPanel>
32,24 → 37,18
<g:HTMLPanel>
(<g:Anchor ui:field="courrielAuteur" />)
</g:HTMLPanel>
<g:HTMLPanel>
<g:Label text="le" styleName="{style.label}" />
<g:InlineLabel ui:field="dateReleve" />
</g:HTMLPanel>
</g:HTMLPanel>
<g:HTMLPanel styleName="{style.metaPart2}">
<g:HTMLPanel styleName="{style.zoneLieu}">
<g:Label text="Lieu :" />
<g:Label text="Lieu :" styleName="{style.labelGeo}"/>
<g:HTML ui:field="lieuDit" styleName="{style.lieuDit}" title="{constants.lieuDit}" />
/
</g:HTMLPanel>
<g:HTMLPanel>
<g:Label text="Station :" />
<g:HTMLPanel styleName="{style.zoneStation}">
<g:Label text="Station :" styleName="{style.labelGeo}"/>
<g:Label ui:field="station" title="{constants.station}" />
/
</g:HTMLPanel>
<g:HTMLPanel>
<g:Label text="Milieu :" />
<g:HTMLPanel styleName="{style.zoneMilieu}">
<g:Label text="Milieu :" styleName="{style.labelGeo}"/>
<g:Label ui:field="milieu" />
</g:HTMLPanel>
</g:HTMLPanel>
/trunk/src/org/tela_botanica/del/client/composants/metadonnees/MetadonneesEnLigneVue.java
145,10 → 145,10
 
@Override
public void masquerChampsVides() {
HasText[] champs = {nomRetenu, nomCommun, famille, localite, auteur, courrielAuteur, motsClefs, commentaire, lieuDit, station, milieu, dateReleve, dateTransmission};
HasText[] champs = {nomRetenu, referentiel, nomCommun, famille, localite, auteur, courrielAuteur, motsClefs, commentaire, lieuDit, station, milieu, dateReleve, dateTransmission};
for (int i = 0; i < champs.length; i ++) {
HasText champ = champs[i];
if ("".equals(champ.getText())) {
if ("".equals(champ.getText().trim())) {
Widget widget = (Widget) champ;
widget.getParent().setVisible(false);
}
/trunk/src/org/tela_botanica/del/client/composants/metadonnees/metadonneesEnLigne.css
20,15 → 20,18
content:")";
}
.metaPart1 {
line-height:20px;
clear:both;
font-size:15px;
}
.metaPart2 {
line-height:20px;
clear:both;
color:#777;
max-width:850px;
}
.metaPart3 {
line-height:20px;
display:none;
max-width:850px;
}
36,10 → 39,19
}
.zoneLieu {
}
.zoneStation {
padding-left: 5px;
}
.zoneMilieu {
padding-left: 5px;
}
.labelGeo {
font-weight:bold;
}
.espece {
color:#454341;
font-size:18px;
margin-top:-3px;
margin-top:-2px;
}
.label {
font-size:12px;
/trunk/war/del.css
88,6 → 88,25
height: 16px;
cursor: pointer;
}
.lienRetour {
display:inline-block;
}
.lienRetour a {
border: 1px solid #99C242 !important;
border-radius: 10px;
box-shadow: 1px 2px 2px #AAAAAA;
padding: 5px 5px 5px 23px;
background: url("./img/16x16/retour.png") no-repeat 5px 5px;
color: #598000;
cursor: pointer;
font-weight: bold;
text-decoration: none;
}
.lienRetour a:hover {
color:white !important;
background-color:#8EB533;
background: #8EB533 url("./img/16x16/retour_actif.png") no-repeat 3px 3px;
}
 
#navigation {
}
118,6 → 137,7
 
.labelLien {
border-bottom: 1px dotted #95AE5D;
line-height: 18px;
color: #598000;
cursor:pointer;
}
369,7 → 389,7
}
 
.limiteMax {
max-width:1000px;
max-width:1150px;
margin:0 auto;
}
 
/trunk/war/img/16x16/depublier.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/war/img/16x16/depublier.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/war/img/16x16/retour.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/war/img/16x16/retour.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/war/img/16x16/depublier_actif.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/war/img/16x16/depublier_actif.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/war/img/16x16/retour_actif.png
Cannot display: file marked as a binary type.
svn:mime-type = image/png
/trunk/war/img/16x16/retour_actif.png
New file
Property changes:
Added: svn:mime-type
+image/png
\ No newline at end of property
/trunk/.
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.2-lithium:r1631-1639