Hébergeur de fichiers indépendant

script.js

À propos du fichier

Type de fichier
Fichier JS de 15 Ko (text/plain)
Confidentialité
Fichier public, envoyé le 12 avril 2024 à 09:31, depuis l'adresse IP 193.248.x.x (France)
Sécurité
Ne contient aucun Virus ou Malware connus - Dernière vérification: 24 heures
Statistiques
La présente page de téléchargement a été vue 214 fois depuis l'envoi du fichier
Page de téléchargement

Aperçu du fichier


// Fonction pour rendre les URL cliquables dans un élément
function renderClickableLinks(element, isSpan) {
    // Récupérer le texte de l'élément
    var text = isSpan ? element.textContent : element.value ? element.value :  false;

    // Vérifier si le texte commence par l'URL spécifiée
    if (text && text.startsWith('https://api.owner-academy.com')) {
        // Créer un élément de lien <a>
        var link = document.createElement('a');
        // Définir l'URL du lien
        link.href = text;
        // Définir le texte du lien
        link.textContent = text;
        link.setAttribute('target', '_blank');
        // Remplacer le contenu de l'élément par le lien
        element.innerHTML = '';
        if(isSpan) {
            element.appendChild(link);
        } else {
            element.after(link);
            element.hidden = true;
        }

    }
};

// Fonction pour observer les mutations dans le DOM
function observeDOM() {
        // Sélectionner le nœud racine pour observer les mutations
        var targetNode = document.body; // Vous pouvez changer cela pour correspondre à votre modal
    
        // Options pour l'observateur (qui mutations observer)
        var config = { childList: true, subtree: true };
    
        // Créer un nouvel observateur de mutations
        var observer = new MutationObserver(function(mutationsList, observer) {
            // Parcourir les mutations
            for(var mutation of mutationsList) {
                // Vérifier si des nœuds ont été ajoutés
                if (mutation.type === 'childList') {
                    // Parcourir les nœuds ajoutés
                    mutation.addedNodes.forEach(function(addedNode) {
                        // Vérifier si le nœud ajouté est un élément <span> avec la classe text-xs
                        if (addedNode instanceof Element && addedNode.classList.contains('text-xs')) {
                            // Rendre les URL cliquables dans cet élément
                            renderClickableLinks(addedNode, true);
                        }

                        if(addedNode.classList && addedNode.classList.contains('n-input__input-el') && addedNode.attr('placeholder').contains('lien bilan sport et santé')) {
                            renderClickableLinks(addedNode, false);
                        }

                        // Vérifier les nœuds enfants de l'élément ajouté
                        if (addedNode instanceof Element) {
                            var childSpans = addedNode.querySelectorAll('.text-xs');
                            let childInputs = addedNode.querySelectorAll('input.n-input__input-el[placeholder="lien bilan sport et santé"]');
                            childSpans.forEach(function(childSpan) {
                                renderClickableLinks(childSpan, true);
                            });
                            childInputs.forEach(function(childInput) {
                                renderClickableLinks(childInput, false);
                            });
                        }
                    });
                }
            }
        });
    
        // Commencer à observer le nœud cible pour les mutations spécifiées dans la configuration
        observer.observe(targetNode, config);
};

// Appeler la fonction pour observer les mutations dans le DOM
observeDOM();
// Sélectionner l'élément à déplacer
const elementToMove = document.getElementById("dfa5daf9-b016-41b4-9e32-88a700dec281");
// Sélectionner l'élément après lequel vous voulez déplacer elementToMove
const referenceElement = document.getElementById("sb_opportunities");

// Vérifier si les éléments existent
if (elementToMove && referenceElement) {
    // Insérer elementToMove après referenceElement
    referenceElement.parentNode.insertBefore(elementToMove, referenceElement.nextSibling);
}
// Fonction pour exécuter lorsque des mutations sont détectées dans le DOM
function handleMutations(mutationsList, observer) {
    executeWhenPageChanged();
}

// Fonction pour exécuter le code une fois que la page est modifiée
function executeWhenPageChanged() {
var smsTab = document.getElementById("sms-tab");

// Vérification si l'élément a la classe active
if (smsTab && smsTab.classList.contains("active")) {
    // Sélection de tous les éléments avec la classe tab-content
    var tabContents = document.querySelectorAll(".tab-content");

    // Parcours de chaque élément tab-content et masquage
    tabContents.forEach(function(tabContent) {
        tabContent.style.display = "none";
    });
} else {
    var tabContents = document.querySelectorAll(".tab-content");

    // Parcours de chaque élément tab-content et masquage
    tabContents.forEach(function(tabContent) {
        tabContent.style.display = "block";
    });
}
    // Définition du tableau de remplacement
let motsAChanger = [
{mot: "All courses", equivalent: "Tous les cours"},
{mot: "Appointments Report", equivalent: "Rapport de rendez-vous"},
{mot: "Send", equivalent: "Envoyer"},
{mot: "Clear", equivalent: "Effacer"},
{mot: "There has been no message initiated from user in past 24hrs. Please use a", equivalent: "Aucun message n'a été envoyé par le prospect depuis 24h."},
{mot: "template to initiate a chat", equivalent: "Clique ici pour sélectionner le modèle 'lancer conversation' "},
{mot: "Use Template", equivalent: "Utiliser modèle"},
{mot: " Marketing ", equivalent: " Réseaux sociaux"},
{mot: " Sites ", equivalent: " Widgets"},
{mot: "Booked by lead", equivalent: "Réservé par prospect"},
{mot: "Booked", equivalent: "Réservé"},
{mot: "Feb", equivalent: "Fév"},
{mot: "Apr", equivalent: "Avr"},
{mot: "May", equivalent: "Mai"},
{mot: "Jun", equivalent: "Juin"},
{mot: "Jul", equivalent: "Juil."},
{mot: "Aug", equivalent: "Août"},
{mot: "Confirmed", equivalent: "Confirmé"},
{mot: "Showed", equivalent: "Venu"},
{mot: "No Show", equivalent: "Non venu"},
{mot: "Cancelled", equivalent: "Annulé"},
{mot: "Cancel", equivalent: "Annuler"},
{mot: "Outcomes", equivalent: "Résultats"},
{mot: "Outcome", equivalent: "Résultat"},
{mot: "Requested Time", equivalent: "Date du RDV"},
{mot: "Date Added", equivalent: "Date d'ajout du RDV"},
{mot: "Contact Name", equivalent: "Nom du contact"},
{mot: "Funnels", equivalent: "Qualification clients"},
{mot: "Funnel", equivalent: "Qualification clients"},
{mot: "Listes intelligentes", equivalent: "Liste contacts"},
{mot: "Le client dépense", equivalent: "Dépense"},
{mot: "Il marque un but!", equivalent: "Score"},
{mot: "1 Les étoiles", equivalent: "1 Étoile"},
{mot: "Les étoiles", equivalent: "Étoiles"},    
{mot: "Inviter les tendances", equivalent: "Demandes d’avis"},
{mot: "Dernières critiques", equivalent: "Derniers avis"},
{mot: "Dernières demandes de révision", equivalent: "Dernières demandes de révision"},
{mot: "Analyse des tendances", equivalent: "Analyse des avis"},
{mot: "Prochain", equivalent: "Suivant"},
{mot: "In Library", equivalent: "Accéder"},
{mot: "Resume Course", equivalent: "Reprendre mon cours"},
{mot: "Lessons Completed", equivalent: "Cours complété(s)"},
{mot: "Start Quiz", equivalent: "Commencer"},
{mot: "Previous", equivalent: "Précédent"},
{mot: "Next", equivalent: "Suivant"},
{mot: "Lesson", equivalent: "Cours"},
{mot: " of ", equivalent: " de "},
{mot: "Mark As Complete", equivalent: "Marquer terminé"},
{mot: "My Courses", equivalent: "Mes cours"},
{mot: "Google Business Profile", equivalent: "Profil Google Business"},
{mot: "(Last 30 Days)", equivalent: "(30 derniers jours)"},
{mot: "Total views", equivalent: "Vues totales"},
{mot: "Bookings", equivalent: "Réservations"},
{mot: "Website visits", equivalent: "Visites site web"},
{mot: "Calls", equivalent: "Appels"},
{mot: "(Last 12 months)", equivalent: "(12 derniers mois)"},
{mot: "Tasks", equivalent: "Tâches"},
{mot: "Pending", equivalent: "En attente"},
{mot: "No data found", equivalent: "Aucune donnée disponible"},
{mot: "Google Ads Report", equivalent: "Rapport Google Ads"},
{mot: "Facebook Ads Report", equivalent: "Rapport Facebook Ads"},
    {mot: "Total Visitors", equivalent: "Total visiteurs"},
    {mot: "Total Page Views", equivalent: "Total pages vues"},
    {mot: "Direct Views", equivalent: "Vues directes"},
    {mot: "Paid Views", equivalent: "Vues sponsorisées"},
    {mot: "Social Views", equivalent: "Vues réseaux sociaux"},
    {mot: "Organic Views", equivalent: "Vue organiques"},
    {mot: "Stage Distribution", equivalent: "Résultats des appels"},
    {mot: "Win%", equivalent: "Signé%"},
    {mot: "Won", equivalent: "Signé"},
    {mot: "won", equivalent: "signé"},
    {mot: "Open", equivalent: "En cours"},
    {mot: "open", equivalent: "en cours"},
    {mot: "Lost", equivalent: "Perdu"},
    {mot: "lost", equivalent: "perdu"},
    {mot: "Abandoned", equivalent: "Abandonné"},
    {mot: "abandoned", equivalent: "abandonné"},
    {mot: "Total Values", equivalent: "Valeur totale"},
{mot: "Switch to Sub-Account", equivalent: "Passer au sous-compte"},
{mot: "All", equivalent: "Tous"},
{mot:"Active services", equivalent:"Services actifs"},
{mot:"Day", equivalent:"Jour"},
{mot:"Add New Service", equivalent:"Ajouter nouveau service"},
{mot:"Month", equivalent:"Mois"},
{mot:"Social Profiles", equivalent:"Profils réseaux sociaux"},
{mot:"Week", equivalent:"Semaine"},
{mot:"Task", equivalent:"Tâches"},
{mot:"Calendars", equivalent:"Calendriers"},
{mot:"Account Details", equivalent:"Détails du compte"},
{mot:"Today", equivalent:"Aujourd'hui"},
{mot:"January", equivalent:"Janvier"},
{mot:"February", equivalent:"Février"},
{mot:"March", equivalent:"Mars"},
{mot:"April", equivalent:"Avril"},
{mot:"May", equivalent:"May"},
{mot:"June", equivalent:"Juin"},
{mot:"July", equivalent:"Juillet"},
{mot:"August", equivalent:"Août"},
{mot:"September", equivalent:"Septembre"},
{mot:"October", equivalent:"Octobre"},
{mot:"November", equivalent:"Novembre"},
{mot:"December", equivalent:"Décembre"},
{mot:"Users", equivalent:"Utilisateurs"},
{mot:"User ", equivalent:"Utilisateur"},
{mot:"Search for", equivalent:"Rechercher"},
{mot:"Updates", equivalent:"Mises à jour "},
{mot:"Update ", equivalent:"Actualiser"},
{mot:"Confirmed", equivalent:"Confirmé"},
{mot:"Name", equivalent:"Nom"},
{mot:"Status", equivalent:"Statut"},
{mot:"Title", equivalent:"Titre"},
{mot:"Requested time", equivalent:"Temps requis"},
{mot:"Date added", equivalent:"Date ajoutée"},
{mot:"Appointment owner", equivalent:"Responsable du RDV"},
{mot:"Load more", equivalent:"Charger plus"},
{mot:"Latest - all", equivalent:"Tous les derniers"},
{mot:"Unread", equivalent:"Non lu"},
{mot:"Appointments", equivalent:"Rendez-vous"},
{mot:"All", equivalent:"Tous  "},
{mot:"Type a message", equivalent:"Rédiger un message"},
{mot:"Clear", equivalent:"Effacer"},
{mot:"Send", equivalent:"Envoyer"},
{mot:"No conversation selected", equivalent:"Aucune discussion sélectionnée"},
{mot:"No contact selected", equivalent:"Aucun contact sélectionné"},
{mot:"No unread conversation", equivalent:"Aucune discussion non lue"},
{mot:"First name", equivalent:"Prénom"},
{mot:"Last name", equivalent:"Nom  "},
{mot:"Phone", equivalent:"Téléphone"},
{mot:"Date of birth", equivalent:"Date de naissance"},
{mot:"Contact type", equivalent:"Type de contact"},
{mot:"Sex", equivalent:"Sexe"},
{mot:"General info", equivalent:"Infos générales"},
{mot:"Additional info", equivalent:"Infos supplémentaires"},
{mot:"Business name", equivalent:"Nom de l'entreprise"},
{mot:"Street address", equivalent:"Adresse postale"},
{mot:"City", equivalent:"Ville"},
{mot:"Country", equivalent:"Pays"},
{mot:"State", equivalent:"Etat"},
{mot:"Postal code", equivalent:"Code postal"},
{mot:"Website", equivalent:"Site Web"},
{mot:"Time zone", equivalent:"Fuseau horaire"},
{mot:"Alert", equivalent:"Alerte"},
{mot:"Report", equivalent:"Rapport"},
{mot:"Channel", equivalent:"Réseau "},
{mot:"Booked by lead", equivalent:"Réservé par le prospect"},
{mot:"Other", equivalent:"Autre"},
{mot:"Lost connection, make sure you are connected to the internet and refresh the page.", equivalent:"Connexion perdue, assurez-vous que vous êtes connecté à Internet"},
];

    // Sélectionne tous les éléments de la page
    let elements = document.getElementsByTagName('*');

    
    // Parcourt tous les éléments pour remplacer le texte
    for (let i = 0; i < elements.length; i++) {
        
        let element = elements[i];
       
        // Vérifie si l'élément est un noeud de texte
        if (element.nodeType === 3) {
            let texte = element.nodeValue;
            // Remplace toutes les occurrences des mots spécifiés par leurs équivalents
            motsAChanger.forEach(obj => {
                texte = texte.replace(new RegExp(obj.mot, 'g'), obj.equivalent);
            });
            // Assigne le nouveau texte à l'élément
            if (texte !== element.nodeValue) {
                element.nodeValue = texte;
            }
        } else if (element.hasChildNodes()) {
            // Récursivement, parcourt les enfants de l'élément
            for (let j = 0; j < element.childNodes.length; j++) {
                let childNode = element.childNodes[j];
                // Vérifie si le noeud enfant est un noeud de texte
                if (childNode.nodeType === 3) {
                    let texte = childNode.nodeValue;
                    // Remplace toutes les occurrences des mots spécifiés par leurs équivalents
                    motsAChanger.forEach(obj => {
                        texte = texte.replace(new RegExp(obj.mot, 'g'), obj.equivalent);
                    });
                    // Assigne le nouveau texte au noeud enfant
                    if (texte !== childNode.nodeValue) {
                        childNode.nodeValue = texte;
                    }
                }
            }
        }
    }
}

// Création d'un observateur de mutations pour surveiller les changements dans le DOM
const observer = new MutationObserver(handleMutations);

// Configuration de l'observateur pour observer les changements dans les nœuds enfants, les attributs et le texte des nœuds
const observerConfig = { childList: true, subtree: true, characterData: true };

// Démarrage de l'observation du DOM avec la configuration spécifiée
observer.observe(document.body, observerConfig);

// Exécuter la fonction initiale pour traiter les éléments existants lors de l'initialisation
executeWhenPageChanged();

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

if(gup("popup") == "confirm"){
    alert("Merci d'avoir mis votre contact à jour");
}


Partager le fichier script.js sur le Web et les réseaux sociaux:


Télécharger le fichier script.js


Télécharger script.js