lavkach3

Форк
0
/
ws_process.js 
55 строк · 2.4 Кб
1
htmx.on('htmx:wsBeforeMessage', (e) => {
2
    console.log('wsBeforeMessage')
3
    const message = JSON.parse(e.detail.message)
4
    console.log(message)
5
    if (message.message_type === 'COMPANY_CHANGED') {
6
        document.location.reload()
7
    } else if (message.tag === 'LOGOUT') {
8
        debugger
9
        document.cookie = "token={{token}};expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;"
10
        document.cookie = "refresh_token={{refresh_token}};expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;"
11
        document.location.replace('/basic/user/login?/')
12
        //document.location.replace('/basic/user/login?/')
13
    } else if (message.tag === 'MODEL') {
14
        var elements = htmx.findAll(`[ui_key="${message.vars.model}--${message.vars.id}"]`)
15
        if (message.vars.method === 'create') {
16
            let elements = htmx.findAll('[id^="table--"]');
17
            elements.forEach(element => {
18
                htmx.trigger(element, 'update')
19
            });
20
            console.log('create')
21
        } else if (message.vars.method === 'update') {
22
            // Ловим эвенты если записи изменились
23
            // Ищем элементы на странице, и если у них lsn больше  чем  lsn  из  записи  в  базе  данных
24
            // то ничего не меняем
25
            for (var i = elements.length - 1; i >= 0; i--) {
26
                var el = elements[i]
27
                console.log(el.attributes.lsn)
28
                var elLsn = Number(el.attributes.lsn.nodeValue)
29
                el.attributes.lsn.nodeValue = message.vars.lsn
30
                htmx.trigger(el, 'backend_update')
31
                var myToast = Toastify({
32
                    text: message.message,
33
                    duration: 3000,
34
                    style: {
35
                        className: "tost",
36
                    },
37
                })
38
                myToast.showToast();
39
            }
40
        } else if (message.vars.method === 'delete') {
41
            elements.forEach(element => {
42
                element.remove(); // Удаляем каждый элемент
43
            });
44
            var myToast = Toastify({
45
                text: 'Object deleted',
46
            })
47
            myToast.showToast();
48
        }
49
    } else if (message.tag === 'REFRESH') {
50
        refreshToken()
51
        setTimeout(() => {
52
            location.reload();
53
        }, 1000)
54
    }
55
})

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.