This commit is contained in:
nnduc
2026-10-24 14:03:52 +07:00
commit 4fe046de58
4790 changed files with 311146 additions and 0 deletions
@@ -0,0 +1,6 @@
<div class="placeholder show">
<i class="material-symbols">adaptive_audio_mic</i>
<h1>{{ conference.title }}</h1>
<h4 class="line">{{ __('visio.waiting_participants') }}</h4>
</div>
+7
View File
@@ -0,0 +1,7 @@
<div id="remote_level">
<div class="avatar">
<img src="{{ contact.picture }}">
</div>
</div>
<p class="center">{{ contact.truename }}</p>
<p class="state center"></p>
+126
View File
@@ -0,0 +1,126 @@
<section id="visio_lobby">
<ul class="list thick">
<li>
{% if contact %}
<span class="primary icon bubble">
<img src="{{ contact.picture }}">
</span>
<div>
<p class="line">
{% if calling %}
<i class="material-symbols icon blue">call</i>
{{ __('visiolobby.calling', contact.truename) }}
{% else %}
<i class="material-symbols icon blue">phone_callback</i>
{{ __('visiolobby.called', contact.truename) }}
{% endif %}
</p>
<p>{{ __('visiolobby.setup') }}</p>
</div>
{% else %}
<span class="primary icon bubble">
<img src="{{ conference.picture }}">
</span>
<div>
<p class="line">
{% if calling %}
<i class="material-symbols icon blue">call</i>
{{ __('visiolobby.muji_create', conference.title) }}
{% else %}
<i class="material-symbols icon blue">phone_callback</i>
{{ __('visiolobby.muji_join', conference.title) }}
{% endif %}
</p>
<p>{{ __('visiolobby.setup') }}</p>
</div>
{% endif %}
</li>
</ul>
<div class="placeholder">
<i class="material-symbols">camera_video</i>
<h4>{{ __('visiolobby.devices_disco') }}</h4>
</div>
<form>
<div>
<ul class="list">
<li id="default_microphone" class="muted">
<span class="primary icon gray">
<i class="material-symbols enabled">settings_voice</i>
<i class="material-symbols disabled">mic_off</i>
</span>
<div>
<div class="select">
<select name="default_microphone"></select>
</div>
<label for="default_microphone">{{ __('visiolobby.microphone_label') }}</label>
<span class="supporting">
{{ __('visiolobby.no_mic_sound') }}<br />
{{ __('visiolobby.no_mic_sound2') }}
</span>
</div>
</li>
<li>
<div id="mic_preview">
<div class="level">
<span class="disabled color green"></span>
<span class="disabled color green"></span>
<span class="disabled color green"></span>
<span class="disabled color green"></span>
<span class="disabled color green"></span>
<span class="disabled color yellow"></span>
<span class="disabled color yellow"></span>
<span class="disabled color yellow"></span>
<span class="disabled color yellow"></span>
<span class="disabled color red"></span>
</div>
</div>
</li>
{% if withvideo %}
<li>
<span class="primary icon gray">
<i class="material-symbols">video_camera_back</i>
</span>
<div>
<div class="select">
<select name="default_camera"></select>
</div>
<label for="default_camera">{{ __('visiolobby.camera_label') }}</label>
</div>
</li>
<li>
<span class="primary"></span>
<div><video id="camera_preview" muted></video></div>
</li>
{% endif %}
</ul>
</div>
</form>
</section>
<footer>
{% if not contact %}
<button onclick="VisioUtils.cancelLobby();" class="button flat red">
{{ __('button.cancel') }}
</button>
<button id="lobby_start" onclick="Visio_ajaxMujiPrepare('{% if calling %}{{ conference.jid|echapJS }}{% else %}{{ id|echapJS }}{% endif %}', {% if withvideo %}true{% else %}false{% endif %});" class="button color green disabled">
<i class="material-symbols">{% if withvideo %}videocam{% else %}call{% endif %}</i>
{% if calling %}{{ __('button.create') }}{% else %}{{ __('button.join') }}{% endif %}
</button>
{% elif calling %}
<button onclick="VisioUtils.cancelLobby();" class="button flat red">
{{ __('button.cancel') }}
</button>
<button id="lobby_start" onclick="MovimVisio.init('{{ fullJid|echapJS }}', '{{ contact.id|echapJS }}', null, {% if withvideo %}true{% else %}false{% endif %}, false, null, '{{ contact.truename|echapJS }}', '{{ contact.picture|echapJS }}');" class="button color green disabled">
<i class="material-symbols">{% if withvideo %}videocam{% else %}call{% endif %}</i>
{{ __('button.call') }}
</button>
{% else %}
<button onclick="VisioUtils.cancelLobby('{{ fullJid|echapJS }}', '{{ id|echapJS }}');" class="button color red">
<i class="material-symbols">call_end</i>
{{ __('button.refuse') }}
</button>
<button id="lobby_start" onclick="MovimVisio.init('{{ fullJid|echapJS }}', '{{ contact.id|echapJS }}', '{{ id|echapJS }}', {% if withvideo %}true{% else %}false{% endif %}, false, null, '{{ contact.truename|echapJS }}', '{{ contact.picture|echapJS }}');" class="button color green disabled">
<i class="material-symbols">{% if withvideo %}videocam{% else %}call{% endif %}</i>
{{ __('button.reply') }}
</button>
{% endif %}
</footer>
@@ -0,0 +1,25 @@
<section>
<ul class="list thick">
<li>
<span class="primary icon bubble">
<img src="{{ contact.picture }}">
</span>
<div>
<p class="line">
<i class="material-symbols icon blue">call</i>
{{ __('visiolobby.calling', contact.truename) }}
</p>
<p>{{ __('visio.hang_up') }}</p>
</div>
</li>
</ul>
<h4 class="gray">{{ __('visio.hang_up_text') }}</h4>
</section>
<footer>
<button onclick="Dialog_ajaxClear()" class="button flat">
{{ __('button.cancel') }}
</button>
<button onclick="Visio_ajaxGoodbye('{{ jid|echapJS }}', '{{ sid|echapJS }}'); Dialog_ajaxClear()" class="button color red">
<i class="material-symbols">call_end</i>
</button>
</footer>
+84
View File
@@ -0,0 +1,84 @@
<div id="visio">
<header>
<ul class="list">
<li>
<span id="switch_chat" class="primary icon color none active" onclick="VisioUtils.switchChat()">
<i class="material-symbols">back_to_tab</i>
</span>
<span id="toggle_fullscreen" class="control icon color none active" onclick="VisioUtils.toggleFullScreen()">
<i class="material-symbols">fullscreen</i>
</span>
<span id="toggle_mode" class="control icon color none active" onclick="VisioUtils.toggleMode()">
<i class="material-symbols">tile_small</i>
</span>
<span id="toggle_dtmf" class="control icon color none active" onclick="VisioUtils.toggleDtmf()">
<i class="material-symbols">dialpad</i>
</span>
<span id="toggle_audio" class="divided control icon color none active" onclick="VisioUtils.toggleAudio()">
<i class="material-symbols">mic</i>
</span>
<span id="toggle_video" class="control icon color none active" onclick="VisioUtils.toggleVideo()">
<i class="material-symbols">videocam_off</i>
</span>
<span id="switch_camera" class="control icon color none active">
<i class="material-symbols">switch_camera</i>
</span>
<span id="screen_sharing" class="control icon color none active toggleable" onclick="VisioUtils.toggleScreenSharing()">
<i class="material-symbols">screen_share</i>
</span>
<div>
<p></p>
<p class="line">
<i id="network_condition" class="material-symbols excellent"></i>
<span id="no_mic_sound" class="disabled all">
<i class="material-symbols">mic_none</i>
{{ __('visiolobby.no_mic_sound') }}
</span>
</p>
</div>
</li>
</ul>
</header>
<select id="visio_source"></select>
<div id="dtmf" class="hide">
<div>
<button class="flat button color gray" type="button" onclick="VisioUtils.insertDtmf('1')">1</button>
<button class="flat button color gray" type="button" onclick="VisioUtils.insertDtmf('2')">2</button>
<button class="flat button color gray" type="button" onclick="VisioUtils.insertDtmf('3')">3</button>
</div>
<div>
<button class="flat button color gray" type="button" onclick="VisioUtils.insertDtmf('4')">4</button>
<button class="flat button color gray" type="button" onclick="VisioUtils.insertDtmf('5')">5</button>
<button class="flat button color gray" type="button" onclick="VisioUtils.insertDtmf('6')">6</button>
</div>
<div>
<button class="flat button color gray" type="button" onclick="VisioUtils.insertDtmf('7')">7</button>
<button class="flat button color gray" type="button" onclick="VisioUtils.insertDtmf('8')">8</button>
<button class="flat button color gray" type="button" onclick="VisioUtils.insertDtmf('9')">9</button>
</div>
<div>
<button class="flat button color gray" type="button" onclick="VisioUtils.insertDtmf('*')">🞳</button>
<button class="flat button color gray" type="button" onclick="VisioUtils.insertDtmf('0')">0</button>
<button class="flat button color gray" type="button" onclick="VisioUtils.insertDtmf('#')">#</button>
</div>
<p class="dtmf"><span></span></p>
</div>
<div id="participants"></div>
<ul class="list infos" class="list middle">
<li>
<div id="visio_contact"></div>
</li>
</ul>
<audio id="local_audio" autoplay muted></audio>
<video id="screen_sharing_video" autoplay muted poster="{{ base_uri }}theme/img/empty.png"></video>
<video id="local_video" autoplay muted poster="{{ base_uri }}theme/img/empty.png"></video>
</div>