Système d'alertes en temps réel ne fonctionne pas

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Système d'alertes en temps réel ne fonctionne pas

Message par Arcadia-forum le Sam 5 Mar 2016 - 18:31

Détails techniques


Version du forum : Invision
Poste occupé : Fondateur
Navigateur(s) concerné(s) : Mozilla Firefox
Personnes concernées par le problème : Tous les utilisateurs
Lien du forum : http://www.arcadia-forum.com

Description du problème

Bonsoir,
Le système d'alerte en temps réel ne semble pas fonctionner sur le forum. En effet, j'ai fait tous les réglages nécessaires; les permissions du sous-forum concerné, les modifications dans le JS etc.

Auriez-vous une idée ?

Le JS:
Code:
function realTime_alert() {
        var version="invision";
        var topicAlertId="1308";
        jQuery.ajax({
                url: "/t"+topicAlertId+"-?view=newest",
                success: function(result) {
                    var html = jQuery(result);
       
                 
                    if (version=="phpbb3") {
                      var alertBody= html.find("div.post .content .codebox code").eq(-1).text();
                      var id = html.find("div.post").eq(-1).attr("id");
                    }
                 
                    if (version=="phpbb2") {
                      var alertBody= html.find("tr.post .postbody .codebox .cont_code").eq(-1).text();
                      var id = html.find("tr.post").eq(-1).attr("id");
                    }
                 
                    if (version=="punbb") {
                      var alertBody= html.find("div.post .postbody .entry-content .codebox .cont_code code").eq(-1).text();
                      var id = html.find("div.post .postmain .posthead").eq(-1).attr("id");
                    }
                 
                    if (version=="invision") {
                      var alertBody= html.find("div.post .post-entry .codebox.contcode dd code").eq(-1).text();
                      var id = html.find("div.post").eq(-1).attr("id");
                    }
                 
                    if(localStorage.getItem(id)!='read' && sessionStorage.getItem(id)!=location.pathname) {
                          $('body').append(alertBody);
                          $('.realTime_alert .close').click(function() {
                            $(this).closest('.realTime_alert').fadeOut();
                            localStorage.setItem(id,"read");
                          });
                    }
                  if(sessionStorage.getItem(id)!=location.pathname) {
                      sessionStorage.setItem(id, location.pathname);
                  } else {
                      sessionStorage.setItem(id, location.pathname);
                  }
                },
        });
        return topicAlertId;
        }
       
        $(function(){
          realTime_alert();
          setInterval('realTime_alert();', 30000); // Reactualisation toutes les 30s
        });

Le HTML:
Code:
<br /><style>
        .progress-bar {
        height: 12px;
        margin-bottom: 20px;
        overflow: hidden;
        background-color: #F5F5FB;
        border-radius: 9px;
        -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
        box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
        }
       
        .progress-bar span {
        float: left;
        height: 100%;
        font-size: 12px;
        line-height: 20px;
        color: #fff;
        text-align: center;
        background-color: #0787DD;
        -webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
        box-shadow: inset 0 -1px 0 rgba(0,0,0,.15);
        -webkit-transition: width .6s ease;
        -o-transition: width .6s ease;
        transition: width .6s ease;
        }
       
          .result {
        font-size: 25px;
        max-width: 350px;
        height: 60px;
        margin: auto;
        padding-top: 80px;
        text-align: center;
        }
       
        .result.done {
        background: url(https://cdn2.iconfinder.com/data/icons/color-svg-vector-icons-part-2/512/ok_check_yes_tick_accept_success-64.png) no-repeat top center;
        }
       
        .result.fail {
        background: url(https://cdn2.iconfinder.com/data/icons/color-svg-vector-icons-part-2/512/wrong_table_no_navigator_formula-64.png) no-repeat top center;
        }
        </style>
       
        <form id="form">
          <label for="alert_name">Titre de l'alerte</label> <input type="text" name="alert_name" id="alert_name" placeholder="Exemple: Impossible de changer de mot de passe" style="width: 60%;"/>
          <br /><br />
          <label for="alert_content">Contenu du message</label> <input type="text" name="alert_message" id="alert_message" placeholder="" style="width: 70%;" />
          <br /><br />
          <label for="alert_image">Image</label> <input type="text" name="alert_image" id="alert_image" placeholder="http://" style="width: 70%;"/>
          <br /><br /><br />
          <button class="button1" id="send">Envoyer l'alerte</button>
        </form><div class="result"></div><div class="progress-bar"><span style="width: 200px;"></span></div>
       
        <script>
          var _param = function(obj, modifier) { var buildParams = function(prefix, obj, traditional, add) { var name; if (jQuery.isArray(obj)) { jQuery.each(obj, function(i, v) { if (traditional || /\[\]$/.test(prefix)) { add(prefix, v); } else { buildParams(prefix + "[" + (typeof v === "object" ? i : "") + "]", v, traditional, add); } }); } else { if (!traditional && jQuery.type(obj) === "object") { for (name in obj) { buildParams(prefix + "[" + name + "]", obj[name], traditional, add); } } else { add(prefix, obj); } } }; var prefix, s = [], add = function(key, value) { var nvalue; if (modifier) { if ((nvalue = modifier(key, value)) === null) { return; } else if (nvalue !== undefined) value = nvalue } value = jQuery.isFunction(value) ? value() : value == null ? "" : value; s[s.length] = _encodeURIComponent(key) + "=" + _encodeURIComponent(value); }; if (jQuery.isArray(obj) || obj.jquery && !jQuery.isPlainObject(obj)) { jQuery.each(obj, function() { add(this.name, this.value); }); } else { for (prefix in obj) { buildParams(prefix, obj[prefix], undefined, add); } } return s.join("&").replace(/%20/g, "+"); }, _encodeURIComponent = function(str) { if ((document.charset ? document.charset : document.characterSet).toLowerCase() != "utf-8") { return encodeURIComponent(escape(str).replace(/%u[A-F0-9]{4}/g, function(x) { return "&#" + parseInt(x.substr(2), 16) + ";"; })).replace(/%25/g, "%"); } else { return encodeURIComponent(str); } };
          $('.progress-bar').hide();
          $('.reslt').hide();
        $('form#form').submit(function() {
          var message="[code]<div class='realTime_alert' style='display: block; background-image: url("+document.getElementById('alert_image').value+");'><span class='close'>×</span><b>"+document.getElementById('alert_name').value+"</b>\n<span class='inner'>"+document.getElementById('alert_message').value+"</span></div>[/code]";
          $('.progress-bar').show();
          $('form#form').hide();
          if($('.progress-bar span').css('width')!='100%') {setTimeout("$('.progress-bar span').css('width', '80%');", 100);}
          $.post( "/post", _param({ mode: "reply", t: realTime_alert(), post: 1, notify: 0, message: message }))
                .done(function() {
                  $('.progress-bar span').css('width', '100%');
              $('.result').fadeIn().text('Envoyée avec succès');
              $('.result').addClass('done');
                })
              .fail(function() {
                  $('.progress-bar span').css('width', '0%');
              $('.result').fadeIn().text('Erreur lors du traitement');
              $('.progress-bar').fadeOut();
              $('.result').addClass('fail');
              alert('Il semblerait qu\'une erreur se soit produite ! Vérifiez votre connexion internet et réessayez ultérieurement <img src="http://r23.imgfast.net/users/2316/18/97/34/smiles/1371890812.gif" alt="Sad" longdesc="3" />');
                });
          return false;
        });
       
        </script>


Merci d'avance.

Arcadia-forum
Nouveau membre

Messages : 21
Inscrit(e) le : 05/03/2016

http://www.arcadia-forum.com
Arcadia-forum a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par Arcadia-forum le Mar 8 Mar 2016 - 13:48

Oy,
Je remonte le sujet, le problème étant toujours d'actualité.

Merci :>

Arcadia-forum
Nouveau membre

Messages : 21
Inscrit(e) le : 05/03/2016

http://www.arcadia-forum.com
Arcadia-forum a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par Miettes le Mar 8 Mar 2016 - 14:19

Coucou Smile

Tu as regardé dans tes autres js ? La console affiche une erreur :
Code:
Uncaught ReferenceError: recupFrame is not defined

ça expliquerait peut etre pourquoi ça ne fonctionne pas.

Miettes
****

Féminin
Messages : 382
Inscrit(e) le : 01/09/2008

http://www.school-of-progress.fr/
Miettes a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par Arcadia-forum le Mar 8 Mar 2016 - 17:00

Oy,
Avec ou sans les codes concernés qui afficheraient cette erreur, les alertes n'apparaissent pas. :l


Arcadia-forum
Nouveau membre

Messages : 21
Inscrit(e) le : 05/03/2016

http://www.arcadia-forum.com
Arcadia-forum a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par Miettes le Mar 8 Mar 2016 - 17:26

Bon j'ai tout testé et ça fonctionne sur mon forum de test :/:

tu as bien affiché le js sur toutes les pages ?

EDIT : ah bah non, pas sur Firefox :/

Miettes
****

Féminin
Messages : 382
Inscrit(e) le : 01/09/2008

http://www.school-of-progress.fr/
Miettes a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par Milouze14 le Mar 8 Mar 2016 - 17:28

Salut à vous deux,
j'ai le même soucis et cela est dû au template viewtopic_body:
http://forum.forumactif.com/t384530-script-alerte-en-temps-reel-fonctionnel-mais-pas-de-notification#3235318

Si ce template est vierge les notifications réapparaissent.


a++

Milouze14
+ Hyperactif +

Masculin
Messages : 4564
Inscrit(e) le : 18/04/2005

http://www.milouze14.com/
Milouze14 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par Arcadia-forum le Mar 8 Mar 2016 - 17:56

Oy,
Il me faudrait une solution plutôt que d'avoir un code vierge. :l

J'ai essayé de modifier le JS convenablement (en renommant et ajoutant ce qu'il faut), mais rien. Voir partie invision:

Code:
function realTime_alert() {
        var version="invision";
        var topicAlertId="1308";
        jQuery.ajax({
                url: "/t"+topicAlertId+"-?view=newest",
                success: function(result) {
                    var html = jQuery(result);
       
                 
                    if (version=="phpbb3") {
                      var alertBody= html.find("div.post .content .codebox code").eq(-1).text();
                      var id = html.find("div.post").eq(-1).attr("id");
                    }
                 
                    if (version=="phpbb2") {
                      var alertBody= html.find("tr.post .postbody .codebox .cont_code").eq(-1).text();
                      var id = html.find("tr.post").eq(-1).attr("id");
                    }
                 
                    if (version=="punbb") {
                      var alertBody= html.find("div.post .postbody .entry-content .codebox .cont_code code").eq(-1).text();
                      var id = html.find("div.post .postmain .posthead").eq(-1).attr("id");
                    }
                 
                    if (version=="invision") {
                      var alertBody= html.find("div.post .postbody .ppp dl.codebox.contcode dd code").eq(-1).text();
                      var id = html.find("div.post").eq(-1).attr("id");
                    }
                 
                    if(localStorage.getItem(id)!='read' && sessionStorage.getItem(id)!=location.pathname) {
                          $('body').append(alertBody);
                          $('.realTime_alert .close').click(function() {
                            $(this).closest('.realTime_alert').fadeOut();
                            localStorage.setItem(id,"read");
                          });
                    }
                  if(sessionStorage.getItem(id)!=location.pathname) {
                      sessionStorage.setItem(id, location.pathname);
                  } else {
                      sessionStorage.setItem(id, location.pathname);
                  }
                },
        });
        return topicAlertId;
        }
       
        $(function(){
          realTime_alert();
          setInterval('realTime_alert();', 30000); // Reactualisation toutes les 30s
        });

Merci d'avance pour votre aide. :/

Arcadia-forum
Nouveau membre

Messages : 21
Inscrit(e) le : 05/03/2016

http://www.arcadia-forum.com
Arcadia-forum a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par Milouze14 le Mar 8 Mar 2016 - 17:57

Re,
Il me faudrait une solution plutôt que d'avoir un code vierge. :l

au moins , tu sais d’où vient le soucis.
a++

Milouze14
+ Hyperactif +

Masculin
Messages : 4564
Inscrit(e) le : 18/04/2005

http://www.milouze14.com/
Milouze14 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par Arcadia-forum le Mar 8 Mar 2016 - 18:02

En effet, je t'en remercie. Je continue les essais de mon côté.

Arcadia-forum
Nouveau membre

Messages : 21
Inscrit(e) le : 05/03/2016

http://www.arcadia-forum.com
Arcadia-forum a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par Arcadia-forum le Mar 8 Mar 2016 - 19:53


Arcadia-forum
Nouveau membre

Messages : 21
Inscrit(e) le : 05/03/2016

http://www.arcadia-forum.com
Arcadia-forum a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Système d'alertes en temps réel ne fonctionne pas

Message par Chacha le Mar 15 Mar 2016 - 14:45

Bonjour,

Afin de faciliter la gestion des problèmes, si le vôtre est résolu, pensez à :
  • éditer votre premier message,
  • cocher l'icône résolu et enregistrer
Vous pouvez également remercier les personnes qui vous ont aidé, en cliquant sur le bouton


Règles Générales du Forum - Le Staff de ForumActif
Questions & Réponses Fréquentes - Trucs & Astuces
Outils Fondateurs - Perte de Mot de Passe

Chacha
Modéractif
Modéractif

Masculin
Messages : 49774
Inscrit(e) le : 21/08/2010

http://forum.forumactif.com/
Chacha a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum