Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2845 → Rev 2846

/trunk/src/org/tela_botanica/client/util/Analytics.java
New file
0,0 → 1,68
package org.tela_botanica.client.util;
 
import org.tela_botanica.client.modeles.objets.Configuration;
import org.tela_botanica.client.util.Util;
 
public class Analytics {
 
/**
* Envoie une notification à Google Analytics, comme quoi la page "url" a été visitée;
* passer par pageVisitee() pour s'assurer qu'on est bien en prod
*
* @param url adresse ou surnom de la page visitée
*/
public static native void pageVisiteeNatif(String url) /*-{
if (url == "") {
url = $wnd.location.href;
}
$wnd.ga('send', 'pageview', url);
}-*/;
 
/**
* Proxy pour evenementNatif() qui n'envoie l'événement que si on est en prod
*/
public static void pageVisitee(String url) {
if (Configuration.isProd()) {
//Util.LogVersFirebug("Page vue: " + url);
Analytics.pageVisiteeNatif(url);
} else {
}
}
 
public static void pageVisitee() {
pageVisitee("");
}
 
/**
* Envoie une notification à Google Analytics, comme quoi l'événement "action" a été déclenché
* sur la ressource "categorie" - passer par evenement() pour s'assurer qu'on
* est bien en prod
*
* @param categorie - la ressource sur laquelle l'utilisateur a agi
* @param action - ce que l'utilisateur a fait avec cette ressource
* @param label - un bout de JSON avec des détails
* @param nombre - nombre d'actions à enregistrer
*/
public static native void evenementNatif(String categorie, String action, String label, int nombre) /*-{
$wnd.ga('send', 'event', categorie, action, label, nombre);
}-*/;
 
/**
* Proxy pour evenementNatif() qui n'envoie l'événement que si on est en prod
*/
public static void evenement(String categorie, String action, String label, int nombre) {
if (Configuration.isProd()) {
//Util.LogVersFirebug("Evenement: " + categorie + ", " + action + ", " + label + ", " + nombre);
Analytics.evenementNatif(categorie, action, label, nombre);
}
}
 
public static void evenement(String categorie, String action, String label) {
Analytics.evenement(categorie, action, label, 1);
}
 
public static void evenement(String categorie, String action) {
Analytics.evenement(categorie, action, "", 1);
}
}
/trunk/src/org/tela_botanica/client/cel2.java
3,6 → 3,7
import org.tela_botanica.client.i18n.Msg;
import org.tela_botanica.client.modeles.objets.Configuration;
import org.tela_botanica.client.util.Util;
import org.tela_botanica.client.util.Analytics;
 
import com.google.gwt.ajaxloader.client.AjaxLoader;
import com.google.gwt.ajaxloader.client.AjaxLoader.AjaxLoaderOptions;
44,6 → 45,9
Configuration config = new Configuration();
initialiserLangue();
 
// stats
Analytics.pageVisitee();
Element elem = DOM.getElementById("texte_chargement");
elem.setInnerText(Msg.get("chargement"));
/trunk/src/org/tela_botanica/client/modeles/dao/ObservationAsynchroneDAO.java
6,6 → 6,7
import org.tela_botanica.client.modeles.objets.Observation;
import org.tela_botanica.client.observation.ObservationModele;
import org.tela_botanica.client.util.Util;
import org.tela_botanica.client.util.Analytics;
 
import com.google.gwt.http.client.Request;
import org.tela_botanica.client.util.RequestBuilderWithCredentials;
13,7 → 14,6
import com.google.gwt.http.client.RequestException;
import com.google.gwt.http.client.Response;
import com.google.gwt.http.client.URL;
import com.google.gwt.user.client.Window;
 
 
/**
44,13 → 44,12
}
 
/**
* Envoie requete au serveur pour ajouter une observations
* Envoie une requete au serveur pour ajouter une observation
*
* @param motcle
* le mots clés à ajouter avec son parent et son identifiant
* le mot-clé à ajouter avec son parent et son identifiant
*/
public void ajouter(final Rafraichissable r, String utilisateur, final Observation obs) {
public void ajouter(final Rafraichissable r, final String utilisateur, final Observation obs) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST,Configuration.getServiceBaseUrl()+ "/Inventory/") ;
rb.setHeader("Content-type", "application/x-www-form-urlencoded");
90,6 → 89,9
if(response.getStatusCode() >= 400) {
com.google.gwt.user.client.Window.alert(response.getText());
}
// stats
Analytics.evenement("observation", "creation", "{\"utilisateur\": \"" + utilisateur + "\", \"nom_sci\": \"" + obs.getNomSaisi() + "\", \"referentiel\": \"" + obs.getCodeCourtReferentielTaxo() + "\"}");
 
r.rafraichir(obs,true);
}
}) ;
106,7 → 108,7
* le mots clés à ajouter avec son parent et son identifiant
*/
public void modifier(final Rafraichissable r, String utilisateur, final Observation obs) {
public void modifier(final Rafraichissable r, final String utilisateur, final Observation obs) {
RequestBuilderWithCredentials rb = new RequestBuilderWithCredentials(RequestBuilderWithCredentials.POST,Configuration.getServiceBaseUrl()+ "/Inventory/" + utilisateur + "/" + obs.getNumeroOrdre()+ "/") ;
rb.setHeader("Content-type", "application/x-www-form-urlencoded");
146,6 → 148,9
if(response.getStatusCode() >= 400) {
com.google.gwt.user.client.Window.alert(response.getText());
}
// stats
Analytics.evenement("observation", "modification", "{\"utilisateur\": \"" + utilisateur + "\", \"nom_sci\": \"" + obs.getNomSaisi() + "\", \"referentiel\": \"" + obs.getCodeCourtReferentielTaxo() + "\"}");
 
r.rafraichir(obs,true);
}
158,7 → 163,7
}
 
public void supprimer(Rafraichissable r, String identifiant, String numeroOrdre) {
public void supprimer(Rafraichissable r, final String identifiant, final String numeroOrdre) {
String postData = "";
postData += "&action=DELETE";
181,12 → 186,11
}
 
@Override
public void onResponseReceived(Request request,
Response response) {
public void onResponseReceived(Request request, Response response) {
 
if (response.getText().equals("OK")) {
 
// stats
Analytics.evenement("observation", "suppression", "{\"utilisateur\": \"" + identifiant + "\", \"numero_ordre\": \"" + numeroOrdre + "\"}");
} else {
com.google.gwt.user.client.Window.alert(Msg.get("probleme-mise-a-jour-donnees"));
return ;
/trunk/src/org/tela_botanica/client/modeles/dao/TransmissionObservationAsynchroneDAO.java
4,6 → 4,7
import org.tela_botanica.client.modeles.objets.Configuration;
import org.tela_botanica.client.modeles.objets.Utilisateur;
import org.tela_botanica.client.observation.ObservationModele;
import org.tela_botanica.client.util.Analytics;
 
import com.google.gwt.http.client.Request;
import org.tela_botanica.client.util.RequestBuilderWithCredentials;
19,7 → 20,7
om = observationModele ;
}
 
public void transmettreObservations(final Rafraichissable r, String identifiant, String idsObs, boolean publier) {
public void transmettreObservations(final Rafraichissable r, final String identifiant, final String idsObs, final boolean publier) {
// on envoie le get asynchrone
String post = "&transmission=";
45,8 → 46,16
}
 
@Override
public void onResponseReceived(Request request,
Response response) {
public void onResponseReceived(Request request, Response response) {
// stats
String action = "";
if (publier) {
action = "rendre-publiques";
} else {
action = "rendre-privees";
}
Analytics.evenement("observation", action, "{\"utilisateur\": \"" + identifiant + "\", \"observations\": \"" + idsObs + "\"}");
 
// Attention OK n'est pas un terme à traduire ici
r.rafraichir("OK",true);
}
/trunk/src/org/tela_botanica/client/modeles/objets/Configuration.java
1,18 → 1,10
package org.tela_botanica.client.modeles.objets;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
 
import com.google.gwt.i18n.client.Dictionary;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.Window.Location;
import com.sun.org.apache.bcel.internal.generic.RETURN;
 
/**
* Classe chargeant certains paramètres de configuration à partir d'un fichier
46,10 → 38,6
 
private static String lienEfloreBaseUrl;
private static String refTax;
private static String refTaxVersion;
private static String licence ="";
private static String formatOriginal = "";
84,6 → 72,8
private static String chorologieAvertissementCourriel = "";
 
private static boolean prod = false;
 
/**
* Constructeur sans argument
*/
166,6 → 156,8
languesDisponibles = Dictionary.getDictionary("configuration").get("languesDisponibles");
chorologieAvertissementCourriel = Dictionary.getDictionary("configuration").get("chorologieAvertissementCourriel");
prod = Boolean.parseBoolean(Dictionary.getDictionary("configuration").get("prod"));
// Pour test, l'activation de l'ajout des champs étendus est activable ou désactivable par
// l'url
341,4 → 333,8
public static String getChorologieAvertissementCourriel() {
return chorologieAvertissementCourriel;
}
 
public static boolean isProd() {
return prod;
}
}