https://t.me/RX1948
Server : Apache
System : Linux s1230 5.15.0-139-generic #149~20.04.1 SMP Tue Jul 14 11:21:49 UTC 2026 x86_64
User : p141464 ( 418825)
PHP Version : 7.4.33.12
Disable Function : NONE
Directory :  /html/relaunch-kmu/wp-content/plugins/wp-gdpr-compliance/Resources/js/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //html/relaunch-kmu/wp-content/plugins/wp-gdpr-compliance/Resources/js/admin/integrations-form.js
import { ajax, ajaxDataParams } from '../utils/helpers'

/**
 * Admin Component for the integrations form (Settings)
 */
export default class IntegrationsForm {
    constructor () {
        this.setProperties()
        this.init()
    }

    setProperties () {
        this.prefix = wpgdprcAdmin.pluginPrefix
        this.ajaxUrl = wpgdprcAdmin.ajaxUrl
        this.ajaxNonce = wpgdprcAdmin.ajaxNonce
        this.ajaxArg = wpgdprcAdmin.ajaxArg
        this.locale = wpgdprcAdmin.locale
        this.formAction = this.prefix + '_update_integration'
        this.wrapper = document.querySelector('.wpgdprc-integrations')
        this.isHiddenClassName = 'is-hidden'
    }

    init () {
        this.handleUpdate()
    }

    handleUpdate () {
        if (!this.wrapper) {
            return
        }

        // handle input updates
        const fields = this.wrapper.querySelectorAll('input[type="text"], input[type="checkbox"]')
        fields.forEach(field => {
            field.addEventListener('change', event => {
                event.target.disabled = true

                const type = field.getAttribute('type')
                const value = type !== 'checkbox' ? event.target.value : event.target.checked
                this.updateIntegration(value, event.target.getAttribute('name'), type, event?.target?.dataset?.integration).then(() => {
                    event.target.disabled = false
                })
            })
        })

        // handle button clicking (and switching between enabled/disabled state)
        const buttons = this.wrapper.querySelectorAll('input[type="submit"]')
        buttons.forEach(button => {
            const section = button.getAttribute('data-type')
            const parent = this.wrapper.querySelector('.wpgdprc-integration-item--' + section)
            const enabledElements = parent.querySelectorAll('.wpgdprc-label, [data-action="manage"]')
            const manageButton = parent.querySelector('[data-action="manage"]')
            const disabledElement = parent.querySelector('[data-enable="1"]')

            button.addEventListener('click', event => {
                event.preventDefault()

                event.target.disabled = true

                const value = event.target.getAttribute('data-enable') === '1'
                this.updateIntegration(value, event.target.getAttribute('name'), 'button', event?.target?.dataset?.type).then(() => {
                    event.target.disabled = false
                })

                if (value) {
                    disabledElement.classList.add(this.isHiddenClassName)
                    enabledElements.forEach(element => {
                        element.classList.remove(this.isHiddenClassName)
                    })
                    // Trigger a click for the manage button so the integration container is expanded
                    manageButton.click()
                } else {
                    disabledElement.classList.remove(this.isHiddenClassName)
                    enabledElements.forEach(element => {
                        element.classList.add(this.isHiddenClassName)
                    })
                }
            })
        })
    }

    async updateIntegration (value, name, type, integration) {
        // Do the call
        try {
            await ajax(this.ajaxUrl, {
                action: this.formAction,
                [this.ajaxArg]: this.ajaxNonce,
                locale: this.locale,
                ...ajaxDataParams({
                    value: value,
                    name: name,
                    type: type,
                    integration: integration
                })
            }, 'POST').then(response => {
                return response.json()
            }).then(response => {
                const success = typeof response.success !== 'undefined' ? response.success : false
                if (!success) {
                    console.dir(response)
                    return
                }

                // @TODO show feedback that setting is updated
                console.dir(response)
            })
        } catch (error) {
            console.error(error)
        }
    }
}

https://t.me/RX1948 - 2025