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

    סקריפט ל-Tampermonkey בדף רשימות צינתוקים

    טיפים עצות והדגמות מהמשתמשים
    3
    11
    222
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • פ
      פישל מומחה @CUBASE נערך לאחרונה על ידי

      @CUBASE תודה רבה...
      c736c2d5-b8db-4f14-9102-ef70efa23d0f-image.png

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

        @פישל חחח 😀

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

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

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

            @פישל יכול להיות שהסקריפט לא מספיק מחכה שהטבלה תטען, אבדוק את זה..

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

              @CUBASE כתב בסקריפט ל-Tampermonkey בדף רשימות צינתוקים:

              בעורך הקוד שנפתח יש להדביק את הסקריפט:

              אין אפשרות לייבא ישר קוד להגדרות של התוספים בגוגל?

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

                @פישל כתב בסקריפט ל-Tampermonkey בדף רשימות צינתוקים:

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

                תבדוק אם זה עובד:

                // ==UserScript==
                // @name       הוספת כפתורים ברשימות צינתוקים - ימות
                // @version    0.6
                // @author     Shlomo and Jonny
                // @match      https://www.call2all.co.il/ym/index.php?view=Tzintukim
                // @match      https://private.call2all.co.il/ym/index.php?view=Tzintukim
                // ==/UserScript==
                
                (() => {
                    // פונקציה להסתרת כפתורים כאשר אנחנו בדף של "צפה בדוח פעילות"
                    const hideButtonsIfInLogPage = () => {
                        if (location.search.includes('action=getLogList')) {
                            $('#buttonContainer').hide();  // הסתרת הכפתורים
                            $('#filterContainer').hide(); // הסתרת תיבת הסימון
                        } else {
                            $('#buttonContainer').show();  // הצגת הכפתורים מחדש אם אנחנו לא בדף של "צפה בדוח פעילות"
                            $('#filterContainer').show(); // הצגת תיבת הסימון מחדש
                        }
                    };
                
                    // פונקציה שמביאה את התאריך מתוך העמודה הרביעית של כל שורת צינתוק
                    const getLastTzintukDate = (row) => {
                        const dateElement = row.querySelector('td:nth-child(4)'); // העמודה הרביעית בה נמצא התאריך
                        if (!dateElement) return null;
                
                        const lastDate = dateElement.textContent.trim();
                        return new Date(lastDate); // מחזיר את התאריך
                    };
                
                    // פונקציה שתסדר את הצינתוקים לפי תאריך הצינתוק האחרון
                    const sortTzintukimByDate = async () => {
                        const rows = document.querySelectorAll('tr.listR');
                        const rowsWithDates = [];
                
                        for (let row of rows) {
                            const lastTzintukDate = getLastTzintukDate(row);
                            if (lastTzintukDate) {
                                rowsWithDates.push({ row, date: lastTzintukDate });
                            }
                        }
                
                        // מיון הרשימות לפי תאריך הצינתוק
                        rowsWithDates.sort((a, b) => b.date - a.date);
                
                        // הצגת הרשימות המסודרות
                        const sortedRows = rowsWithDates.map(item => item.row);
                        document.querySelector('.scrollContent').append(...sortedRows);
                    };
                
                    // פונקציה שתסתיר את הרשימות שמתחילות ב-05 או 08 אם תיבת הסימון מסומנת
                    const filterTzintukimByStart = () => {
                        const rows = document.querySelectorAll('tr.listR');
                        const shouldHide = $('#filterCheckbox').is(':checked');
                
                        rows.forEach(row => {
                            const name = row.querySelector('td:nth-child(1)').textContent.trim();
                            if (shouldHide && (name.startsWith('05') || name.startsWith('08'))) {
                                row.style.display = 'none';  // הסתרת השורה
                            } else {
                                row.style.display = '';  // הצגת השורה
                            }
                        });
                    };
                
                    // תיבת הסימון שתאפשר לסנן את הרשימות שמתחילות ב-05 או 08
                    const filterCheckbox = $('<input type="checkbox" id="filterCheckbox" />');
                    const filterLabel = $('<label for="filterCheckbox">הסתר רשימות צינתוקים אישיות</label>');
                    filterLabel.css({
                        'color': '#16638f',  // הצבע של הכפתורים
                        'font-size': '18px',
                        'margin-left': '10px',
                        'cursor': 'pointer',
                    });
                
                    const filterContainer = $('<div id="filterContainer" />');
                    filterContainer.css({
                        'display': 'flex',
                        'align-items': 'center',
                        'justify-content': 'center',
                        'margin-top': '20px',
                    });
                
                    filterContainer.append(filterCheckbox);
                    filterContainer.append(filterLabel);
                
                    // כפתור לסידור לפי שם הרשימה
                    const sortNameButton = $('<button id="sortNameTzintukim">סדר לפי שם הרשימה ▼</button>');
                    sortNameButton.css({
                        'padding': '10px',
                        'background-color': '#16638f',
                        'color': 'white',
                        'border': 'none',
                        'border-radius': '5px',
                        'cursor': 'pointer',
                        'width': 'auto',
                        'z-index': '1000',
                        'margin': '10px',
                    });
                
                    // כפתור לסידור לפי גודל הרשימה
                    const sortSizeButton = $('<button id="sortSizeTzintukim">סדר לפי גודל הרשימה ▼</button>');
                    sortSizeButton.css({
                        'padding': '10px',
                        'background-color': '#16638f',
                        'color': 'white',
                        'border': 'none',
                        'border-radius': '5px',
                        'cursor': 'pointer',
                        'width': 'auto',
                        'z-index': '1000',
                        'margin': '10px',
                    });
                
                    // כפתור לסידור לפי פעולה אחרונה ברשימה
                    const sortDateButton = $('<button id="sortDateTzintukim">סדר לפי פעולה אחרונה ברשימה ▼</button>');
                    sortDateButton.css({
                        'padding': '10px',
                        'background-color': '#16638f',
                        'color': 'white',
                        'border': 'none',
                        'border-radius': '5px',
                        'cursor': 'pointer',
                        'width': 'auto',
                        'z-index': '1000',
                        'margin': '10px',
                    });
                
                    // יצירת container עם flexbox עבור הכפתורים
                    const buttonContainer = $('<div id="buttonContainer"></div>');
                    buttonContainer.css({
                        'display': 'flex',
                        'justify-content': 'center',
                        'gap': '20px',
                        'margin-top': '20px',
                    });
                
                    // הוספת הכפתורים לדף
                    buttonContainer.append(sortNameButton);
                    buttonContainer.append(sortSizeButton);
                    buttonContainer.append(sortDateButton);
                
                    // הוספת תיבת הסימון והכפתורים לדף
                    $('.admin-section').after(buttonContainer);
                    $('.admin-section').after(filterContainer);
                
                    // פעולה שתתבצע כאשר לוחצים על כפתור "סדר לפי שם הרשימה"
                    let nameSortOrder = 'asc'; // ברירת המחדל היא מיון עולה
                    sortNameButton.click(() => {
                        const items = $('tr.listR')
                            .detach()
                            .sort((a, b) => {
                                const aName = a.querySelector('td:nth-child(1)').innerText.toLowerCase();
                                const bName = b.querySelector('td:nth-child(1)').innerText.toLowerCase();
                                if (nameSortOrder === 'asc') {
                                    return aName.localeCompare(bName);
                                } else {
                                    return bName.localeCompare(aName);
                                }
                            });
                
                        // הצגת הרשימות המסודרות
                        $('.scrollContent').append(items);
                        nameSortOrder = nameSortOrder === 'asc' ? 'desc' : 'asc'; // מתחלף בין עולה ויורד
                        sortNameButton.text(nameSortOrder === 'asc' ? 'סדר לפי שם הרשימה ▲' : 'סדר לפי שם הרשימה ▼');
                        resetFiltersAndSorting();
                    });
                
                    // פעולה שתתבצע כאשר לוחצים על כפתור "סדר לפי גודל הרשימה"
                    let sizeSortOrder = 'asc'; // ברירת המחדל היא מיון עולה
                    sortSizeButton.click(() => {
                        const items = $('tr.listR')
                            .detach()
                            .sort((a, b) => {
                                const aSize = parseInt(a.querySelector('td:nth-child(2)').innerText);
                                const bSize = parseInt(b.querySelector('td:nth-child(2)').innerText);
                                if (sizeSortOrder === 'asc') {
                                    return aSize - bSize;
                                } else {
                                    return bSize - aSize;
                                }
                            });
                
                        // הצגת הרשימות המסודרות
                        $('.scrollContent').append(items);
                        sizeSortOrder = sizeSortOrder === 'asc' ? 'desc' : 'asc'; // מתחלף בין עולה ויורד
                        sortSizeButton.text(sizeSortOrder === 'asc' ? 'סדר לפי גודל הרשימה ▲' : 'סדר לפי גודל הרשימה ▼');
                        resetFiltersAndSorting();
                    });
                
                    // פעולה שתתבצע כאשר לוחצים על כפתור "סדר לפי פעולה אחרונה ברשימה"
                    let dateSortOrder = 'asc'; // ברירת המחדל היא מיון עולה
                    sortDateButton.click(() => {
                        const items = $('tr.listR')
                            .detach()
                            .sort((a, b) => {
                                const aDate = getLastTzintukDate(a);
                                const bDate = getLastTzintukDate(b);
                                if (dateSortOrder === 'asc') {
                                    return aDate - bDate;
                                } else {
                                    return bDate - aDate;
                                }
                            });
                
                        // הצגת הרשימות המסודרות
                        $('.scrollContent').append(items);
                        dateSortOrder = dateSortOrder === 'asc' ? 'desc' : 'asc'; // מתחלף בין עולה ויורד
                        sortDateButton.text(dateSortOrder === 'asc' ? 'סדר לפי פעולה אחרונה ברשימה ▲' : 'סדר לפי פעולה אחרונה ברשימה ▼');
                        resetFiltersAndSorting();
                    });
                
                    // פונקציה שתאפס את המיונים והמסננים
                    const resetFiltersAndSorting = () => {
                        filterTzintukimByStart();
                    };
                
                    // עדכון תיבת הסימון
                    filterCheckbox.change(() => {
                        filterTzintukimByStart();
                    });
                
                    // קריאה כפולה להפעלת המיון ברירת מחדל לפי שם רשימה בסדר יורד
                    sortNameButton.click();
                    sortNameButton.click();
                
                    // בדיקה אם אנחנו בדף של "צפה בדוח פעילות" ואיפוס כל מה שקשור למיון ומסננים
                    hideButtonsIfInLogPage();
                })();
                
                
                פ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • פ
                  פישל מומחה @CUBASE נערך לאחרונה על ידי

                  @CUBASE מבדיקה שלי עדיין לא פתר את הענין.
                  אגב כעת ברירת מחדל שהוא נותן את הפעולה האחרונה בסוף הדף, אולי כדאי שהברירת מחדל יהיה שיראו את הפעולה האחרונה בדף למעלה.

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

                    שידרגתי את הקוד כולל תיקון של כמה דברים שלא עבדו טוב @פישל טיפלתי בבעיה במערכות גדולות

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

                      @CUBASE תודה רבה
                      אני רואה כעת שהוא כעת מראה על המסך טוען נתונים אך בפועל הוא לא מסנן לי... במערכות גדולות

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

                        @פישל ניסית לחכות קצת לראות אם מתעדכן גם לאחר הטוען נתונים?

                        אם גם כך זה לא עובד אז אין לי מה לעשות, מצטער, אולי אם הייתה ברשותי מערכת גדולה הייתי יכול לשגע את ה-GPT כמו שעשיתי בבעיות אחרות שהיו...

                        תגובה 1 תגובה אחרונה תגובה ציטוט 2
                        • הוזכר על-ידי  C CUBASE 
                        • פוסט ראשון
                          פוסט אחרון