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/gadevoir/app/fragment/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/gadevoir/app/fragment/IncomeFrg.js
import Fragment from "absol/src/AppPattern/Fragment";
import {$, _} from "../dom/Core";
import OOP from "absol/src/HTML5/OOP";
import '../../style/incomefrg.css';

/**
 * @typedef {{from: string, conversationId: string, incomeType:("voice"|"video")}} Income
 */

/***
 *
 * @augments Income
 * @augments Fragment
 * @constructor
 * @param {Income} props
 */
function IncomeFrg(props) {
    Fragment.call(this);
    this.from = null;
    this.conversationId = null;
    this.incomeType = 'voice';
    /***
     *
     * @type {GDVClient|null}
     */
    this.connector = null;
    Object.assign(this, props);
    this.ev_incomeCancel = this.ev_incomeCancel.bind(this);
}

OOP.mixClass(IncomeFrg, Fragment);

IncomeFrg.prototype.createView = function () {
    this.$view = _({
        class: ['gdv-fragment', 'gdv-income-frag'],
        child: [
            {
                class: 'gdv-income-frag-info',
                child: [
                    {
                        class: 'gdv-income-frag-name',
                        child: { text: this.from }
                    },
                    {
                        class: 'gdv-income-frag-type',
                        child: { text: 'income voice chat' }
                    },
                    {
                        class: 'gdv-income-frag-status',
                        child: { text: 'CALLING' }
                    }
                ]
            },
            {
                class: 'gdv-income-frag-button-ctn',
                child: [
                    {
                        tag: 'button',
                        class: ['gdv-income-frag-action-btn', 'gdv-income-frag-hangup-btn'],
                        child: 'span.mdi.mdi-phone-hangup'
                    },
                    {
                        tag: 'button',
                        class: ['gdv-income-frag-action-btn', 'gdv-income-frag-answer-btn'],
                        child: 'span.mdi.mdi-phone'
                    }
                ]
            }]
    });
    this.$hangupBtn = $('.gdv-income-frag-hangup-btn', this.$view)
        .on('click', this.hangup.bind(this));
    this.$answerBtn = $('.gdv-income-frag-answer-btn', this.$view)
        .on('click', this.answer.bind(this));
    this.$status = $('.gdv-income-frag-status', this.$view);
};

IncomeFrg.prototype.onStart = function () {
    this.phone = this.getContext("PHONE");
};

IncomeFrg.prototype.onStop = function () {

};

IncomeFrg.prototype.answer = function () {
    this.phone.pickup();
    this.returns = { answer: "ACCEPT", conversationId: this.conversationId, type: this.incomeType };
    this.stop();
}

IncomeFrg.prototype.hangup = function () {
    this.phone.hangup();
    this.returns = { answer: "DENY", conversationId: this.conversationId };
    this.stop();
};
IncomeFrg.prototype.ev_incomeCancel = function (incomeData) {
    if (incomeData.conversationId === this.conversationId) {
        this.$status.firstChild.data = "CANCELED";
        this.$answerBtn.disabled = true;
        this.$hangupBtn.disabled = true;
        this.returns = { answer: "CANCELED", conversationId: this.conversationId };
        setTimeout(this.stop.bind(this), 2000);
    }
};


export default IncomeFrg;



VaKeR 2022