Subversion Repositories eFlore/Applications.del

Rev

Rev 2109 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.tela_botanica.del.client.utils;

import org.tela_botanica.del.client.Del;
import org.tela_botanica.del.client.config.Config;

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) {
                Config config = new Config();
                if (config.isProd()) {
                        //Del.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) {
                Config config = new Config();
                if (config.isProd()) {
                        //Del.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);
        }
}