![]() 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 : |
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;