*RESOLU* [EDGE] Js inopérant depuis la restauration faite par fa

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

fascicularia
avatar
Administrateur

Messagefascicularia

  • 16px
  • 24px
  • Zoom
Bonjour à tous, 
j'ai ce js qui fonctionnait à merveille avant la restauration faite par fa. 

Il a pour fonction de permettre d'éditer directement sur le message rapide.

le soucis est effectif à l'envoi (la modification ne s'opère pas).

Code:
var edit = {
  init: function () {
    this.form = document.forms.post;
    this.button = this.form.preview;
    this.button_send = this.form.post;
    this.sceditor = $(this.form.message).sceditor('instance');
    this.click();
  },
  lang: {
    save: 'Envoyer avec la modification',
    notice_original: 'Le message ne contient pas de texte',
    editing: 'Vous êtes en train de modifier le sujet #',
    wait: 'veuillez patienter, le message modifié est en cours d\'envoi...',
    color_a: 'linear-gradient(to bottom, #febbbb 0%,#fe9090 45%,#ff5c5c 100%)',
    color_b: 'linear-gradient(to bottom, #ffaf4b 0%,#ff920a 100%)',
    color_c: 'linear-gradient(to bottom, #87e0fd 0%,#53cbf1 40%,#05abe0 100%)',
    color_d: 'linear-gradient(to bottom, #ff3019 0%,#cf0404 100%)',
    color_e: 'linear-gradient(to bottom, #d2ff52 0%,#91e842 100%)'
  },
  click: function () {
    var a = document.getElementsByTagName('a'),
      len = a.length;
    for (var i = 0; i < len; i++) {
      a[i].href.match(/post\?p=(\d+)&mode=editpost/g) && (a[i].setAttribute('onclick', 'edit.edit(this.href, edit.closest(this, \'.post\'));return false'));
    }
  },
  edit: function (d, f) {
    edit.sceditor.updateOriginal();
    if (this.sceditor.val() != '') {
      alert('Pour pouvoir éditer veuilliez supprimer le texte contenu dans l\'éditeur.')
    } else {
      this.XML('', d, function (x) {
        var o = x.responseXML,
          a = o.forms.post.message,
          e = o.forms.post.subject.value,
          b = document.createElement('input');
        edit.sceditor.val(a.value);
        edit.sC(edit.form, 300);
        b.value = edit.lang.save;
        b.type = 'submit';
        b.id = 'save';
        b.className = 'button';
        b.setAttribute('onclick', 'edit.save(this); return false');
        b.style.marginLeft = '20px';
        edit.button.parentNode.insertBefore(b, edit.button.nextSibling);
        edit.button_send.style.display = 'none';
        edit.url = d;
        edit.subject = e;
        edit.post = f;
        edit.id = edit.url.match(/p=(\d+)/)[1];
        edit.notice(edit.lang.editing + edit.id, edit.lang.color_c, 'on');
      });
    }
  },
  save: function (e) {
    var b,
      a = encodeURIComponent(this.sceditor.val()),
      c = encodeURIComponent(this.subject),
      p = 'message=' + a + '&subject=' + c + '&post=1&prevent_post=1¬ify=1';
    e.value = 'Chargement';
    this.notice(edit.lang.wait, edit.lang.color_b, 'off', 1000);
    this.cover('Chargement...');
    this.XML(p, edit.url, function (x) {
      b = document.getElementById('save');
      b && b.parentNode.removeChild(b);
      edit.button_send.style.display = 'initial';
      edit.sceditor.val('');
      edit.cover(false);
      edit.XML('', document.location.href, function (x) {
        var o = x.responseXML,
          a = o.getElementsByClassName('post--' + edit.id),
          b = a.length && a[0].innerHTML;
        edit.post.innerHTML = b;
        edit.sC(edit.post, 300);
        edit.click()
      })
    })
  },
  closest: function (t, e) {
    var n;
    ['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'].some(function (t) {
      return 'function' == typeof document.body[t] ? (n = t, !0) : !1
    });
    for (var r; t;) {
      if (r = t.parentElement, r && r[n](e)) return r;
      t = r
    }
    return null
  },
  cover: function (c) {
    var a = document.getElementsByClassName('sceditor-resize-cover')[0];
    a.style.display = c != false ? 'block' : 'none';
    a.innerHTML = c != false ? c : '';
    if (c != false) {
      a.style.color = '#fff';
      a.style.fontSize = '20px';
      a.style.lineHeight = '12';
      a.style.textAlign = 'center'
    }
  },
  notice: function (e, t, a, b) {
    var o, n, s, l, i;
    b = 'undefined' != typeof b ? b : '1000';
    i = document.getElementsByClassName('notice_reply');
    n = document.getElementsByClassName('sceditor-group')[0];
    s = n.parentNode, o = i.length ? i[0] : document.createElement('DIV');
    l = 'height:20px;line-height: 1.5;border-radius: 3px; text-shadow: 0 1px rgba(255, 255, 255, 0.46)';
    !i.length && (o.classList.add('notice_reply'), o.style.cssText = l, s.insertBefore(o, n));
    o.style.display = 'block';
    o.innerHTML = 'undefined' == typeof e ? edit.lang.notice_original : e;
    o.style.background = 'undefined' == typeof t ? edit.lang.color_a : t;
    if (a == 'off') {
      setTimeout(function () {
        'block' == o.style.display && (o.style.display = 'none')
      }, b)
    }
  },
  sC: function (o, e, t, s) {
    e = e || 500, s = s || window;
    var a = o.clientHeight < 150 ? o.clientHeight * 2 : o.clientHeight < 300 ? o.clientHeight : o.clientHeight > 400 && '',
      n = s.scrollTop - a || window.pageYOffset - a;
    if ('number' == typeof o) var r = parseInt(o);
    else var r = edit.gT(o, n);
    var l = Date.now(),
      i = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (o) {
        window.setTimeout(o, 15)
      },
      a = function () {
        var c = Date.now() - l;
        s !== window ? s.scrollTop = edit.pS(n, r, c, e) : window.scroll(0, edit.pS(n, r, c, e)), c > e ? 'function' == typeof t && t(o) : i(a)
      };
    a()
  },
  eC: function (t) {
    return t < .5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1
  },
  pS: function (o, e, s, r) {
    return o + (e - o) * edit.eC(s / r)
  },
  gT: function (o, e) {
    return 'HTML' === o.nodeName ? -e : o.getBoundingClientRect().top + e
  },
  XML: function (a, b, f) {
    var c;
    c = window.XMLHttpRequest ? new XMLHttpRequest : window.ActiveXObject && (new ActiveXObject('Microsoft.XMLHTTP'));
    'undefined' != typeof a ? c.open('POST', b) : c.open('GET', b, true);
    c.responseType = 'document';
    c.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    c.send('undefined' != typeof a ? a : '');
    c.onreadystatechange = function () {
      this.readyState == 4 && this.status == 200 && (f(this));
    };
  }
};
document.addEventListener('DOMContentLoaded', function () {
  /\/?t\d+.*/.test(window.location.pathname) && document.getElementById('logout') && edit.init();
});

Si jamais vous voyez ce qui cloche.

Merci par avance pour votre aide.


Dernière édition par fascicularia le Lun 28 Aoû 2017 - 19:33, édité 1 fois



Administrateur des forums



Milouze14
avatar
Fondateur

MessageMilouze14

  • 16px
  • 24px
  • Zoom
Hello Stéphane, je n'arrive pas comprendre le fonctionnement de ce script qui d'ailleurs sur mon fofo de test n'apporte strictement rien .
Aurais tu la source de ce dernier stp ?



-Le respect de nos semblables est la règle de notre conduite.-

Fondateur des forums





photoclic
avatar
Membre

Messagephotoclic

  • 16px
  • 24px
  • Zoom
Hello Stéphane et Philippe,

j'ai eu un problème du même style sur l'un de mes JS et après des jours de recherche, c'était Interdire les formulaires non officiels qui étaient passés à OUI.

Voir dans général->sécurité: Interdire les formulaires non officiels à poster des messages et messages privés sur le forum.

Si ça peut aider.
Milouze14
avatar
Fondateur

MessageMilouze14

  • 16px
  • 24px
  • Zoom
Hum je viens de comprendre le script,
en fait ce dernier au clic sur le bouton éditer apporte le contenu du message dans la réponse rapide.



Il est fonctionnel sur mon fofo de test Stéphane clin oeil .
As tu bien coché sur toutes les pages ?

Merci pour la remontée Serge  hinhin .
fascicularia
avatar
Administrateur

Messagefascicularia

  • 16px
  • 24px
  • Zoom
Bonjour à vous deux, 
Photoclic à tapé dans le mille super .
J'avais fait cette vérification sur Altitude tropicale et, tout était ok mais, sur prestaplant, la case avait été mise sur non.

Merci à vous deux.



Administrateur des forums



fascicularia
avatar
Administrateur

Messagefascicularia

  • 16px
  • 24px
  • Zoom
-Staff du Forum Milouze14-



  • Hello 
    Sujet résolu et déplacé dans le forum adéquat.

Pour toute information,merci de contacter un Membre du Staff



Administrateur des forums



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

Créer un compte ou se connecter pour répondre

Vous devez être membre pour répondre.

S'enregistrer

Rejoignez notre communauté ! C'est facile !


S'enregistrer

Connexion

Vous êtes déjà membre ? Aucun soucis, cliquez ici pour vous connecter.


Connexion

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