VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /var/www/html/libs/absol-form/js/blocks/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/libs/absol-form/js/blocks/YesNoQuestion.js
import {AssemblerInstance} from "../core/Assembler";
import BaseBlock from "../core/BaseBlock";
import inheritComponentClass from "../core/inheritComponentClass";
import YesNoQuestionDialog from "absol-acomp/js/YesNoQuestionDialog";
import {_} from "../core/FCore";


/***
 * @extends BaseBlock
 * @constructor
 */
function YesNoQuestion() {
    BaseBlock.call(this);
}

inheritComponentClass(YesNoQuestion, BaseBlock);

YesNoQuestion.prototype.tag = 'YesNoQuestion';
YesNoQuestion.prototype.menuIcon = 'span.mdi.mdi-chat-question-outline';

YesNoQuestion.prototype.exec = function () {
    var self = this;
    if (window.ModalElement && window.ModalElement.question) {
        ModalElement.question({
            title: this.attributes.title, message: this.attributes.message, onclick: function (buttonIdx) {
                self.resolve(buttonIdx == 0);
            }
        });
    } else {
        this.executeBuildInModal();
    }
};

YesNoQuestion.prototype.executeBuildInModal = function () {
    var self = this;
    var modal = _({
        tag: 'modal',
        child: {
            tag: YesNoQuestionDialog.tag,
            props: {
                dialogTitle: this.attributes.title,
                message: this.attributes.message
            },
            on: {
                action: function (event) {
                    modal.remove();
                    self.resolve(event.action === 'yes');
                }
            }
        }
    }).addTo(document.body);
};

YesNoQuestion.prototype.resolve = function (val) {
    this.result = val;
    this.pinFire('result');
};

YesNoQuestion.prototype.pinHandlers.signal = {
    receives: function (value) {
        if (value) this.exec();
    },
    descriptor: {
        type: "bool"
    }
};

YesNoQuestion.prototype.pinHandlers.result = {
    get: function () {
        return this.result;
    },
    descriptor: {
        type: 'bool'
    }
};

AssemblerInstance.addClass(YesNoQuestion);


export default YesNoQuestion;

VaKeR 2022