• הרשמה
    • התחברות
    • חיפוש
    • דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • קבלת התראות מהדפדפן
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private

    סקריפט ל-Tampermonkey להוספת כפתור של מעבר מהיר לעריכת רשימת התפוצה

    טיפים עצות והדגמות מהמשתמשים
    2
    5
    97
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • C
      CUBASE נערך לאחרונה על ידי CUBASE

      לבקשת @פישל כתבתי סקריפט ל-Tampermonkey בעזרת ChatGPT, הסקריפט מוסיף כפתור בדף שיגור הודעות לעריכת רשימת התפוצה במקום ללחוץ עריכה ואז רשימת התפוצה

      תוכלו לראות כאן איך מתקינים את זה

      // ==UserScript==
      // @name         Add button of campaing list
      // @namespace    http://tampermonkey.net/
      // @version      1.9
      // @description  Adds a button to automate clicks on Call2All campaign pages
      // @author       Jonny
      // @match        https://www.call2all.co.il/ym/index.php?view=customer_select_campaign
      // @match        https://private.call2all.co.il/ym/index.php?view=customer_select_campaign
      // @grant        none
      // ==/UserScript==
      
      (function() {
          'use strict';
      
          // ממתינים שהדף יטען חלקית או באופן מלא
          const waitForElements = () => {
              const rows = document.querySelectorAll('table.admin-table.customer-templates tbody tr');
              if (rows.length > 0) {
                  addCustomButtons(rows); // אם יש שורות בטבלה, נוסיף כפתור
              } else {
                  setTimeout(waitForElements, 500); // אם לא מצאנו שורות, ננסה שוב בעוד חצי שניה
              }
          };
      
          function addCustomButtons(rows) {
              rows.forEach(row => {
                  let editButton = row.querySelector('a.edit-button');
                  if (!editButton) return;
      
                  let actionsCell = row.querySelector('td:last-child');
                  let newButton = document.createElement('a');  // שינינו ל-a כדי להתאים לסגנון הקיים
                  newButton.classList.add('ui-button', 'ui-widget', 'ui-state-default', 'ui-corner-all', 'ui-button-text-icon-secondary');
                  newButton.style.margin = '5px';
                  newButton.style.padding = '2px 10px';  // הקטנה של ה-padding כדי להקטין את הכפתור
                  newButton.style.fontSize = '18px';  // נשאיר את ה-font-size בגודל המקורי
                  newButton.style.minWidth = '160px'; // שמירה על רוחב מינימלי בכפתור
      
                  // יצירת אלמנט של אייקון עיפרון
                  let pencilIcon = document.createElement('span');
                  pencilIcon.classList.add('ui-button-icon-secondary', 'ui-icon', 'ui-icon-pencil');
      
                  // יצירת הטקסט של הכפתור
                  let buttonText = document.createElement('span');
                  buttonText.classList.add('ui-button-text');
                  buttonText.innerText = 'רשימת התפוצה';
      
                  // הוספת האייקון והטקסט לכפתור
                  newButton.appendChild(buttonText);
                  newButton.appendChild(pencilIcon);
      
                  // הוספת עיצוב על hover כמו כל כפתור אחר
                  newButton.style.transition = 'background-color 0.3s, border-color 0.3s';  // אפקט החלקה
                  newButton.onmouseover = function() {
                      newButton.style.backgroundColor = '#16638f'; // צבע כהה כשעומדים על הכפתור
                      newButton.style.borderColor = '#16638f'; // גבול כהה
                  };
                  newButton.onmouseout = function() {
                      newButton.style.backgroundColor = ''; // ברירת מחדל
                      newButton.style.borderColor = ''; // גבול ברירת מחדל
                  };
      
                  newButton.onclick = function(event) {
                      event.preventDefault();
                      fetch(editButton.href) // מבצע את הלחיצה מאחורי הקלעים
                          .then(() => {
                              setTimeout(() => {
                                  let listButton = document.querySelector('a[href="index.php?view=campaign_phone_list"]');
                                  if (listButton) listButton.click();
                              }, 500); // מחכה קצת כדי לוודא שהדף נטען
                          }).catch(() => {
                              console.log("לא ניתן לגשת לכתובת");
                          });
                  };
      
                  // למצוא את ה-div הקיים של הכפתורים
                  let buttonContainer = document.querySelector('#buttonContainer');
                  if (buttonContainer) {
                      buttonContainer.appendChild(newButton); // מוסיף את הכפתור החדש מימין לכפתור קיים
                  } else {
                      // אם לא נמצא אז פשוט מוסיף אותו בתא הפעולות
                      actionsCell.appendChild(newButton);
                  }
              });
          }
      
          // מתחילים לחפש את האלמנטים ברגע שהדף מתחיל לטעון
          waitForElements();
      })();
      
      
      פ תגובה 1 תגובה אחרונה תגובה ציטוט 2
      • הוזכר על-ידי  C CUBASE 
      • פ
        פישל מומחה @CUBASE נערך לאחרונה על ידי

        @CUBASE אהבתי שבסקריפט שבנית בלחיצה על רשימת התפוצה הוא נותן ישר את כל הרשימה ולא רק 20

        C 2 תגובות תגובה אחרונה תגובה ציטוט 0
        • C
          CUBASE @פישל נערך לאחרונה על ידי

          @פישל אין לי מושג, לא ביקשתי ממנו דבר כזה אבל אדרבה - אם יש את זה אז מצויין!

          פ תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • פ
            פישל מומחה @CUBASE נערך לאחרונה על ידי

            @CUBASE אם יש מישהו שמקשיב לבקשות שלי, יש לי עוד אתגר בשבילך.
            לבנות סקריפט שמסדר את הבאג של רצף השלוחות מעל שלוחה 9 דהיינו ששלוחה 10 לא תהיה אחרי שלוחה 1 אלא אחרי שלוחה 9 גם בראשי וגם בתתי שלוחות.
            אתגר לא פשוט...😉

            תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • C
              CUBASE @פישל נערך לאחרונה על ידי CUBASE

              @פישל עדכנתי את הסקריפט כך שיעבוד גם במצב אנונימי (סתם שיגעון של פרפקציוניסטים😊)

              תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • פוסט ראשון
                פוסט אחרון