Commit f8c4c932 authored by Kulya's avatar Kulya 😊

n_res

parent db5be3fe
Pipeline #17 canceled with stages
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
@import "node_modules/bootstrap-sass/assets/stylesheets";
@import "node_modules/bootstrap-sass/assets/javascripts";
<?php
return [
/*
|--------------------------------------------------------------------------
| Authentication Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used during authentication for various
| messages that we need to display to the user. You are free to modify
| these language lines according to your application's requirements.
|
*/
'failed' => 'These credentials do not match our records.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
];
<?php
//ENGLISH LANGUAGE FILE
return [
'f_lang_link' => '/uz',
's_lang_link' => '/ru',
'f_lang' => 'O`zbekcha',
's_lang' => 'Русский',
'welcome' => 'Wellcome to vMajlis!',
'enter' => 'Enter',
'logout' => 'Exit',
'recheck' => 'Recheck',
'recheck_timeout_msg' => 'Seconds until recheck',
'recheck_timeout_msg_sec' => 'sec',
'videoselector' => 'Video Conference System',
'enter_login' => 'Enter login',
'for_enter_conference' => 'for begin conference',
'registration' => 'Registration',
'yes' => 'Ok',
'no' => 'Cancel',
'enter_password'=> 'Enter password',
'repeat_password'=> 'Repeat password',
'enter_to_admin_panel'=>'Enter to Administration panel',
"wbr_subject_temp"=>"Invite to webinar: ",
"vmj_choose_scrren"=>'Choose screen',
"entertoanotherakkount" => 'Change login',
"exitfromakkount" => 'Exit',
"settings" => 'Settings',
"welcomez" => 'Welcome,',
"chooseconferenceforenter" => 'Choose conferrence:',
'myscreen' =>'Экран ',
];
\ No newline at end of file
<?php
return [
/*
|--------------------------------------------------------------------------
| Pagination Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the paginator library to build
| the simple pagination links. You are free to change them to anything
| you want to customize your views to better match your application.
|
*/
'previous' => '&laquo; Previous',
'next' => 'Next &raquo;',
];
<?php
return [
/*
|--------------------------------------------------------------------------
| Password Reset Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are the default lines which match reasons
| that are given by the password broker for a password update attempt
| has failed, such as for an invalid token or invalid new password.
|
*/
'password' => 'Passwords must be at least six characters and match the confirmation.',
'reset' => 'Your password has been reset!',
'sent' => 'We have e-mailed your password reset link!',
'token' => 'This password reset token is invalid.',
'user' => "We can't find a user with that e-mail address.",
];
<?php
return [
/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| as the size rules. Feel free to tweak each of these messages here.
|
*/
'accepted' => 'The :attribute must be accepted.',
'active_url' => 'The :attribute is not a valid URL.',
'after' => 'The :attribute must be a date after :date.',
'alpha' => 'The :attribute may only contain letters.',
'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
'alpha_num' => 'The :attribute may only contain letters and numbers.',
'array' => 'The :attribute must be an array.',
'before' => 'The :attribute must be a date before :date.',
'between' => [
'numeric' => 'The :attribute must be between :min and :max.',
'file' => 'The :attribute must be between :min and :max kilobytes.',
'string' => 'The :attribute must be between :min and :max characters.',
'array' => 'The :attribute must have between :min and :max items.',
],
'boolean' => 'The :attribute field must be true or false.',
'confirmed' => 'The :attribute confirmation does not match.',
'date' => 'The :attribute is not a valid date.',
'date_format' => 'The :attribute does not match the format :format.',
'different' => 'The :attribute and :other must be different.',
'digits' => 'The :attribute must be :digits digits.',
'digits_between' => 'The :attribute must be between :min and :max digits.',
'email' => 'The :attribute must be a valid email address.',
'exists' => 'The selected :attribute is invalid.',
'filled' => 'The :attribute field is required.',
'image' => 'The :attribute must be an image.',
'in' => 'The selected :attribute is invalid.',
'integer' => 'The :attribute must be an integer.',
'ip' => 'The :attribute must be a valid IP address.',
'json' => 'The :attribute must be a valid JSON string.',
'max' => [
'numeric' => 'The :attribute may not be greater than :max.',
'file' => 'The :attribute may not be greater than :max kilobytes.',
'string' => 'The :attribute may not be greater than :max characters.',
'array' => 'The :attribute may not have more than :max items.',
],
'mimes' => 'The :attribute must be a file of type: :values.',
'min' => [
'numeric' => 'The :attribute must be at least :min.',
'file' => 'The :attribute must be at least :min kilobytes.',
'string' => 'The :attribute must be at least :min characters.',
'array' => 'The :attribute must have at least :min items.',
],
'not_in' => 'The selected :attribute is invalid.',
'numeric' => 'The :attribute must be a number.',
'regex' => 'The :attribute format is invalid.',
'required' => 'The :attribute field is required.',
'required_if' => 'The :attribute field is required when :other is :value.',
'required_unless' => 'The :attribute field is required unless :other is in :values.',
'required_with' => 'The :attribute field is required when :values is present.',
'required_with_all' => 'The :attribute field is required when :values is present.',
'required_without' => 'The :attribute field is required when :values is not present.',
'required_without_all' => 'The :attribute field is required when none of :values are present.',
'same' => 'The :attribute and :other must match.',
'size' => [
'numeric' => 'The :attribute must be :size.',
'file' => 'The :attribute must be :size kilobytes.',
'string' => 'The :attribute must be :size characters.',
'array' => 'The :attribute must contain :size items.',
],
'string' => 'The :attribute must be a string.',
'timezone' => 'The :attribute must be a valid zone.',
'unique' => 'The :attribute has already been taken.',
'url' => 'The :attribute format is invalid.',
/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
|--------------------------------------------------------------------------
|
| Here you may specify custom validation messages for attributes using the
| convention "attribute.rule" to name the lines. This makes it quick to
| specify a specific custom language line for a given attribute rule.
|
*/
'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
],
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/
'attributes' => [],
];
<?php
//EN
return [
'welcome' => 'Welcome!',
];
?>
\ No newline at end of file
<?php
//RUSSIAN LANGUAGE FILE
return [
'f_lang_link' => '/uz',
's_lang_link' => '/en',
'f_lang' => 'O`zbekcha',
's_lang' => 'English',
'welcome' => 'Добро пожаловать!',
'enter' => 'Войти',
'logout' => 'Выйти',
'choose_conference' => 'Выберите конференцию',
'enter_conference' => 'Войти в конференцию',
'videoselector' => 'Видеоселектор',
'enter_login' => 'Введите логин',
'for_enter_conference' => 'для входа в конференцию',
'registration' => 'Регистрация',
'yes' => 'Да',
'no' => 'Нет',
'myscreen' =>'Экран ',
'enter_password'=> 'Введите пароль',
'repeat_password'=> 'Повторите пароль',
'enter_to_admin_panel'=>'Вход в панель управления',
'username_already_used' => "Пользователь занят!",
'username_not_found' => "Пользователь не найден!",
"empty_speaker_name"=>"Не указан имя выступающего!",
"empty_wbr_subject"=>"Не указан тема Вебинара!",
"empty_wbr_link"=>"Не указан ссылка на Вебинар!",
"empty_speaker_mail"=>"Не указан эл.почта!",
"wbr_subject_temp"=>"Приглашение на вебинар: ",
"vmj_choose_scrren"=>'Выберите экран',
"entertoanotherakkount" => 'Войти в другой аккаунт',
"exitfromakkount" => 'Выйти c аккаунта',
"settings" => 'Настройки',
"welcomez" => 'Добро пожаловать,',
"chooseconferenceforenter" => 'Выберите конференцию для входа:',
"incoming_calling" => 'Входящий звонок',
"incoming_calling_from" => 'Входящий звонок от: ',
"answertocall" => 'Ответить',
"rejectcall" => 'Сбросить',
"no_device_access" => "Устройство НЕДОСТУПНО!",
"take_please_device_access" => "Необходим доступ к камере, микрофону и динамику...<br><h2>Доступные устройства:</h2>",
];
\ No newline at end of file
<?php
//RU
return [
'welcome' => 'Добро пожаловать!',
'conduct_webinars' => 'Проведение Вебинаров',
'invite' => 'Пригласить',
'invite_to_webinar' => 'Пригласить в вебинар',
'start_webinar' => 'Провести вебинар',
'change_screens' => 'Поменять местами',
'share_screen' => 'Поделиться экраном',
'files' => 'Файлы',
'mute_video' => 'Отключить видео',
'mute_audio' => 'Отключить звук',
'finish_webinar' => 'Закончить вебинар',
'chat' => 'Чат',
'listeners' => 'Слушатели',
'add_files' => 'Добавить файлы',
'the_name' => 'Название',
'size' => 'Размер',
'actions' => 'Действия',
'choice_devices' => 'Выбрать устройства',
'by_default' => 'По умолчанию',
'cameras' => 'Камеры',
'mics' => 'Микрофоны',
'dynamics' => 'Динамики',
'the_list_of_webinars' => 'Список вебинаров',
'link' => 'Ссылка',
'resolution' => 'Разрешение',
'date' => 'Дата',
'the_theme' => 'Тема'
];
?>
\ No newline at end of file
<?php
//UZBEK LANGUAGE FILE
return [
'f_lang_link' => '/ru',
's_lang_link' => '/en',
'f_lang' => 'Русский',
's_lang' => 'English',
'welcome' => 'vMajlisga xush kelibsiz!',
'enter' => 'Kirish',
'logout' => 'Chiqish',
'enter_conference' => 'Конференцияга кириш',
'videoselector' => 'Video selektor',
'enter_login' => 'Foydalanuvchi nom',
'for_enter_conference' => 'kiriting, konferensiyaga kirish uchun',
'registration' => 'Ro`yxatdan o`tish',
'yes' => 'Ha',
'no' => 'Yo`q',
'recheck' => 'Qayta tekshirish',
'recheck_timeout_msg' => 'Qayta tekshirishgacha',
'recheck_timeout_msg_sec' => 'soniya',
'enter_password'=> 'Parol kiriting',
'repeat_password'=> 'Parolni qaytaring',
'enter_to_admin_panel'=>'Boshqaruv bo`limiga kirish',
"empty_speaker_name"=>"Boshlovchi nomi ko`rsatilmabdi!",
"empty_wbr_subject"=>"Vebinar mavzusi yo`q!",
"empty_wbr_link"=>"Vebinarga ssilka yo`q!",
"empty_speaker_mail"=>"El.manzil ko`rsatilmadi!",
"wbr_subject_temp"=>"Vebinarga taklif: ",
"vmj_choose_scrren"=>'Ekran tanlang',
"entertoanotherakkount" => 'Boshqa nom bilan kirish',
"exitfromakkount" => 'Chiqish',
"settings" => 'Sozlamalar',
"welcomez" => 'Hush kelibsiz,',
"chooseconferenceforenter" => 'Kirish uchun xonani tanlang:',
];
\ No newline at end of file
<?php
//UZ
return [
'welcome' => 'Xush kelibsiz!',
];
?>
\ No newline at end of file
<!-- resources/views/tasks.blade.php -->
@extends('layouts.app')
@section('subtitle',"Управление администраторами")
@section('head_css')
<link href="/assets/css/admins.css" rel="stylesheet" type="text/css" />
@endsection
@section('footer_js')
<script src="/assets/js/admins.js" type="text/javascript"></script>
@endsection
@section('content')
<!--button id="add_new_user">
<i class="fa fa-user-plus"></i>
</button-->
<h2 class="users_heading">Управление администраторами</h2>
<div class="m-demo__preview" style="text-align:center;">
<div class="m-btn-group m-btn-group--pill m-btn-group--pilldown btn-group m-btn-group btn-group-lg m-btn-group--air" role="group" aria-label="Large button group">
<button type="button" data-peertype="webrtc" class="userlisttabs btn btn-brandtech ">
WebRTC
</button>
<button type="button" data-peertype="sip" class="userlisttabs btn btn-brandtech">
SIP
</button>
<button type="button" id="add_new_admin" class="btn btn-brandtech ">
<i class="fa fa-user-plus"></i>
</button>
</div>
</div>
<div class="wrap_table_users">
<table class="table_users_list" align="center" width="100%">
<thead>
<tr>
<td>#</td>
<td rowspan="2">Логин</td>
<td rowspan="2">Имя</td>
<td rowspan="2">Пароль</td>
<td rowspan="2">Действия</td>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
@endsection
\ No newline at end of file
<?php
if (!App::environment('local')) { die("Error auth"); }
$tmz = config('app.timezone');
$data = array("success"=>"ok","date"=>time(), "timezone"=>$tmz);
header('Content-Type: application/json');
echo json_encode($data);
?>
\ No newline at end of file
<center><h1>Login page</h1></center>
\ No newline at end of file
<center><h1>Register page</h1></center>
\ No newline at end of file
<style>
video {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<div> <video id="videoPlayer" controls></video> </div>
<script>
(function(){
var url = "https://online.vmajlis.uz/dash/stream.mpd";
var player = dashjs.MediaPlayer().create();
player.setLowLatencyEnabled(true);
player.initialize(document.querySelector("#videoPlayer"), url, true);
})();
</script>
<div>
<!--https://dash.akamaized.net/envivio/EnvivioDash3/manifest.mpd-->
<!--video data-dashjs-player autoplay src="https://test.vmajlis.uz/dash/stream.mpd" controls></video-->
</div>
</body>
<!-- resources/views/tasks.blade.php -->
@extends('layouts.app')
@section('subtitle',"Комната")
@section('head_css')
<link href="/assets/css/cabinet.css" rel="stylesheet" type="text/css" />
<script src="/assets/js/verto_libs/jquery-2.1.1.min.js" type="text/javascript"></script>
@endsection
@section('content')
<input type="file" id="avatar" name='picture'/>
<input type="file" id="logo" name='picture'/>
<input type="hidden" id="uid" value=<?=$uid?>/>
<a href="/logout" class="logout"><i class='fa fa-sign-out-alt'></i></a>
<a href="#" id="settings"><i class='fa fa-bars'></i></a>
<div class="personal-card">
<h3 class="personal-card__heading">Личный кабинет</h3>
<div class="personal-card__content">
<div class="container-for-avatar">
<h4 class="avatar-heading">Аватар</h4>
<img class="img-avatar" src="/files/<?=$avatar_id?>" alt="avatar">
<button class="change-avatar-btn">Поменять фото &nbsp; <i class="fa fa-photo"></i></button>
</div>
<div class="container-for-count">
<h4 class="count-heading">Счет</h4>
<span class="count-value" title="Пополнить">125000 UZS &nbsp;<i class="fa fa-plus"></i></span>
</div>
<div class="container-for-password">
<h4 class="pass-heading">Пароль</h4>
<input type="password" class="inp_pass" id="new_pass" placeholder="Введите новый пароль..."/>
<input type="password" class="inp_pass" id="confirm_new_pass" placeholder="Подтвердите пароль..."/>
<span class="status_pass">Пароли не совпадают</span>
</div>
<div class="container-for-brand">
<h4 class="brand-heading">Логотип</h4>
<img class="img-brand" title="Логотип по умолчанию" src="/files/<?=$logo_id?>" alt="avatar">
<button class="change-brand-btn">Свое лого &nbsp; <i class="fa fa-photo"></i></button>
</div>
</div>
</div>
@endsection
@section('footer_js')
<script src="/assets/js/burger_menu/burger_menu.js"> </script>
<script src="/assets/js/fileupload.js"> </script>
<script src="/assets/js/cabinet.js"> </script>
@endsection
\ No newline at end of file
<!-- resources/views/common/errors.blade.php -->
@if (count($errors) > 0)
<!-- Список ошибок формы -->
<div class="alert alert-danger">
<strong>Упс! Что-то пошло не так!</strong>
<br><br>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
\ No newline at end of file
<!-- resources/views/tasks.blade.php -->
@extends('layouts.app')
@section('subtitle',"Управление")
@section('head_css')
<link href="/assets/css/dashboard.css?ver=1.0" rel="stylesheet" type="text/css" />
@endsection
@section('footer_js')
<script src="/assets/js/dashboard.js" type="text/javascript"></script>
@endsection
@section('content')
<div class="panel_heading">
<h2>Панель управления</h2>
</div>
<div class="container-fluid wrap-card">
<div class="row">
<div class="col-xl-6 col-md-12 col-sm-12">
<!--begin:: Widgets/Sale Reports-->
<div class="m-portlet m-portlet--full-height list-rooms">
<div class="m-portlet__head">
<div class="m-portlet__head-caption">
<div class="m-portlet__head-title">
<h3 class="m-portlet__head-text">
Список конференций
</h3>
</div>
</div>
<div class="m-portlet__head-tools">
<ul class="nav nav-pills nav-pills--brand m-nav-pills--align-right m-nav-pills--btn-pill m-nav-pills--btn-sm" role="tablist">
<li class="nav-item m-tabs__item">
<a class="nav-link m-tabs__link active" data-toggle="tab" href="#m_widget11_tab1_content" role="tab">
Комнаты
</a>
</li>
<li class="nav-item m-tabs__item">
<a class="nav-link m-tabs__link" data-toggle="tab" href="#m_widget11_tab2_content" role="tab">
Вебинары
</a>
</li>
</ul>
</div>
</div>
<div class="m-portlet__body">
<!--Begin::Tab Content-->
<div class="tab-content">
<!--begin::tab 1 content-->
<div class="tab-pane active rooms_wrap" id="m_widget11_tab1_content">
<!--begin::Widget 11-->
<div class="m-widget11 ">
<div class="table-responsive">
<!--begin::Table-->
<table class="table">
<!--begin::Thead-->
<thead>
<tr>
<!--td class="m-widget11__label">
#
</td-->
<td class="m-widget11__app">
Название
</td>
<td class="m-widget11__sales">
Номер конференции
</td>
<td class="m-widget11__price">
Участники
</td>
<td class="m-widget11__total m--align-right">
Действия
</td>
</tr>
</thead>
<!--end::Thead-->
<!--begin::Tbody-->
<tbody class="all_room"></tbody>
<!--end::Tbody-->
</table>
<!--end::Table-->
</div>
</div>
<!--end::Widget 11-->
</div>
<!--end::tab 1 content-->
<!--begin::tab 2 Вебинары content-->
<div class="tab-pane rooms_wrap" id="m_widget11_tab2_content">
<div class="m-widget11">
<div class="table-responsive">
<!--begin::Table-->
<table class="table">
<!--begin::Thead-->
<thead>
<tr>
<!--td class="m-widget11__label">
#
</td-->
<td class="m-widget11__app">
Название
</td>
<td class="m-widget11__sales">
Номер конференции
</td>
<td class="m-widget11__price">
Участники
</td>
<td class="m-widget11__total m--align-right">
Действия
</td>
</tr>
</thead>
<!--end::Thead-->
<!--begin::Tbody-->
<tbody class="webinar_rooms">
</tbody>
<!--end::Tbody-->
</table>
<!--end::Table-->
</div>
</div>
</div>
<!--end::tab 2 Вебинары content-->
</div>
<!--End::Tab Content-->
</div>
</div>
<!--end:: Widgets/Sale Reports-->
</div>
<div class="col-xl-6 col-md-12 col-sm-12">
<!--begin:: Widgets/Product Sales-->
<div class="m-portlet m-portlet--bordered-semi m-portlet--space m-portlet--full-height list-rooms">
<div class="m-portlet__head">
<div class="m-portlet__head-caption">
<div class="m-portlet__head-title">
<h3 class="m-portlet__head-text">
Статистика
<span class="m-portlet__head-desc">
vMajlis - видеоконференцсвязь
</span>
</h3>
</div>
</div>
</div>
<div class="m-portlet__body">
<div class="m-widget25">
<!--span class="m-widget25__price m--font-brand">
50
</span>
<span class="m-widget25__desc">
Видеосовещаний уже прошло
</span-->
<div class="m-widget25--progress">
<div class="m-widget25__progress">
<span class="m-widget25__progress-number" id="percent-value-cpu"></span>
<div class="m--space-10"></div>
<div class="progress m-progress--sm">
<div class="progress-bar m--bg-danger" id="cpu-progress-bar" role="progressbar" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<span class="m-widget25__progress-sub">
CPU : <span class="cpu-span"></span>
</span>
</div>
<div class=" m-widget25__progress">
<span class="m-widget25__progress-number" id="percent-value-memory"></span>
<div class="m--space-10"></div>
<div class="progress m-progress--sm">
<div class="progress-bar m--bg-accent" id="memory-progress-bar" role="progressbar" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<span class="m-widget25__progress-sub">
MEMORY : <span class="memory-span"></span>
</span>
</div>
<div class="m-widget25__progress" >
<span class="m-widget25__progress-number" id="percent-value-disk"></span>
<div class="m--space-10"></div>
<div class="progress m-progress--sm">
<div class="progress-bar m--bg-warning" id='disk-progress-bar' role="progressbar" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<span class="m-widget25__progress-sub">
DISK : <span class="disk-span"></span>
</span>
</div>
<div class="m-widget25__progress" >
<span class="m-widget25__progress-number" id="percent-value-calls"></span>
<div class="m--space-10"></div>
<div class="progress m-progress--sm">
<div class="progress-bar m--bg-primary" id='calls-progress-bar' role="progressbar" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<span class="m-widget25__progress-sub">
CALLS : <span class="calls-span"></span>
</span>
</div>
</div>
</div>
</div>
</div>
<!--end:: Widgets/Product Sales-->
</div>
</div>
<!--End::Section-->
<button id="add_room">Добавить конференцию</button>
</div>
<div id="clientsList" class="hiddenblock">
<div class="form-group m-form__group row">
<label class="col-form-label col-lg-12 col-sm-12">Выберите пользователей:</label>
<div class="col-lg-12 col-md-12 col-sm-12">
<select class="form-control m-select2" id="m_select_userslist" name="room_users" multiple="multiple"><?php
foreach( $clients as $clnt ){
$name = (!empty($clnt["name"])) ? $clnt["name"] : $clnt["effective_caller_id_name"];
$tp = (!empty($clnt["peertype"])) ? $clnt["peertype"] : "sip";
echo'<option value="'.$clnt["userid"].'">'.$name.' ('.$clnt["userid"].')</option>';
}
?></select>
</div>
</div>
</div>
<!-- TODO: Текущие задачи -->
@endsection
\ No newline at end of file
<?php
//$data = array("speakername"=>"Michael Jackson","subject"=>"Music is everythink of we!","link"="https://webinar.vmajlis.uz/WLqH5Y6WcM");
?>
<div class="body-message">
<p style="text-align:left; font-size:.925em;">Уважаемый друг!&nbsp;<strong>{{ $speakername }}</strong>, приглашает вас на вебинар.</p>
<p> Тема вебинара : <strong> "{{ $subject }}" </strong></p>
<p style="text-align:left; font-size:.925em;">Ссылка для участия: <a class="lnk_to_webinar" href="{{ $link }}" style="text-decoration:none; color:#5056FF;">{{ $link }}</a></p>
<a class="entr-webinar" href="{{ $link }}" style="border: none; font-size: .725em; padding: 10px; text-transform: uppercase;text-decoration:none;background: #5056FF; font-weight: bold; color: white; cursor: pointer; letter-spacing: 1.15px; border-radius: 2.5px;"> Зайти в вебинар</a>
<!--img src="<?php //echo $message->embedData($data, $name); ?>"-->
</div>
<!-- resources/views/tasks.blade.php -->
@extends('layouts.app')
@section('subtitle',"Home")
@section('head_css')
<link href="/assets/css/enterweb.css" rel="stylesheet" type="text/css" />
<link href="/assets/css/langs.css" rel="stylesheet" type="text/css" />
@endsection
@section('footer_js')
<script src="/assets/js/enterweb.js" type="text/javascript"></script>
@endsection
@section('content')
<div class="_container">
<div class="logo">
<h1>TechnoWEB</h1>
<h3>@lang('wbr.conduct_webinars')</h3>
</div>
<div class="wrap-btns">
<div class="wrap-inp-webcode">
<input id="web_code" type="text" autofocus placeholder ="Введите код для входа в вебинар..."/>
<button id="check_webcode"><i class="fa fa-check fa-2x"></i></button>
</div>
<button id="enter_webinar">@lang('wbr.start_webinar')</button>
<center class="langbox"><a href="{{ $f_lang_link }}" class="l_lang">{{ $f_lang_text }}</a> | <a href="{{ $s_lang_link }}" class="r_lang">{{ $s_lang_text }}</a></center>
</div>
</div>
<footer>
<a href="https://technounit.uz">TECHNOUNIT GROUP</a><br>
<span>2018</span>
</footer>
@endsection
\ No newline at end of file
{"error":"No authentication"}
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<title>Be right back.</title>
<link href="https://fonts.googleapis.com/css?family=Lato:100" rel="stylesheet" type="text/css">
<style>
html, body {
height: 100%;
}
body {
margin: 0;
padding: 0;
width: 100%;
color: #B0BEC5;
display: table;
font-weight: 100;
font-family: 'Lato';
}
.container {
text-align: center;
display: table-cell;
vertical-align: middle;
}
.content {
text-align: center;
display: inline-block;
}
.title {
font-size: 72px;
margin-bottom: 40px;
}
</style>
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Be right back.</div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Be right back.</title>
<link href="https://fonts.googleapis.com/css?family=Lato:100" rel="stylesheet" type="text/css">
<style>
html, body {
height: 100%;
}
body {
margin: 0;
padding: 0;
width: 100%;
color: #B0BEC5;
display: table;
font-weight: 100;
font-family: 'Lato';
}
.container {
text-align: center;
display: table-cell;
vertical-align: middle;
}
.content {
text-align: center;
display: inline-block;
}
.title {
font-size: 72px;
margin-bottom: 40px;
}
</style>
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Be right back.</div>
</div>
</div>
</body>
</html>
<html><head><script>
// https://github.com/muaz-khan/DetectRTC
var DetectRTC = {};
var screenCallback;
DetectRTC.screen = {
chromeMediaSource: 'screen',
getSourceId: function(callback) {
if (!callback) throw '"callback" parameter is mandatory.';
screenCallback = callback;
window.postMessage('get-sourceId', '*');
},
getCustomSourceId: function(arr, callback) {
if (!arr || !arr.forEach) throw '"arr" parameter is mandatory and it must be an array.';
if (!callback) throw '"callback" parameter is mandatory.';
screenCallback = callback;
window.postMessage({
'get-custom-sourceId': arr
}, '*');
},
getSourceIdWithAudio: function(callback) {
if (!callback) throw '"callback" parameter is mandatory.';
screenCallback = callback;
window.postMessage('audio-plus-tab', '*');
},
onMessageCallback: function(data) {
// "cancel" button is clicked
if (data == 'PermissionDeniedError') {
DetectRTC.screen.chromeMediaSource = 'PermissionDeniedError';
if (screenCallback) return screenCallback('PermissionDeniedError');
else throw new Error('PermissionDeniedError');
}
// extension notified his presence
if (data == 'rtcmulticonnection-extension-loaded') {
DetectRTC.screen.chromeMediaSource = 'desktop';
}
// extension shared temp sourceId
if (data.sourceId) {
DetectRTC.screen.sourceId = data.sourceId;
if (screenCallback) {
screenCallback(DetectRTC.screen.sourceId, data.canRequestAudioTrack === true);
}
}
},
getChromeExtensionStatus: function(callback) {
// https://chrome.google.com/webstore/detail/screen-capturing/ajhifddimkapgcifgcodmmfdlknahffk
var extensionid = 'ajhifddimkapgcifgcodmmfdlknahffk';
var image = document.createElement('img');
image.src = 'chrome-extension://' + extensionid + '/icon.png';
image.onload = function() {
if (!DetectRTC.screen) DetectRTC.screen = {};
if (!DetectRTC.screen.chromeMediaSource) DetectRTC.screen.chromeMediaSource = '';
if (DetectRTC.screen.chromeMediaSource === 'desktop') {
callback('installed-enabled');
return;
}
DetectRTC.screen.chromeMediaSource = 'screen';
window.postMessage('are-you-there', '*');
setTimeout(function() {
console.log("MediaSource",DetectRTC.screen.chromeMediaSource);
if (DetectRTC.screen.chromeMediaSource == 'screen') {
//callback('installed-enabled');
callback('installed-disabled');
} else {
callback('installed-enabled');
}
}, 2000);
};
image.onerror = function() {
callback('not-installed');
};
}
};
window.addEventListener('message', function(event) {
if (!event.data || !(typeof event.data == 'string' || event.data.sourceId || event.data.captureSourceId || event.data.captureCustomSourceId || event.data.getChromeExtensionStatus || event.data.captureSourceIdWithAudio)) return;
if (event.data.getChromeExtensionStatus) {
DetectRTC.screen.getChromeExtensionStatus(function(status) {
window.parent.postMessage({
chromeExtensionStatus: status
}, '*');
});
return;
}
if(event.data.captureCustomSourceId) {
captureSourceId(null, event.data.captureCustomSourceId);
}
if (event.data.captureSourceId) {
captureSourceId();
}
if (event.data.captureSourceIdWithAudio) {
captureSourceId('system_audio');
}
DetectRTC.screen.onMessageCallback(event.data);
});
function captureSourceId(system_audio, custom_sourceId) {
// check if desktop-capture extension installed.
DetectRTC.screen.getChromeExtensionStatus(function(status) {
if (status != 'installed-enabled') {
window.parent.postMessage({
chromeExtensionStatus: status
}, '*');
return;
}
if(!!custom_sourceId) {
DetectRTC.screen.getCustomSourceId(custom_sourceId, function(sourceId, canRequestAudioTrack) {
window.parent.postMessage({
chromeMediaSourceId: sourceId,
canRequestAudioTrack: !!canRequestAudioTrack
}, '*');
});
}
else if(!system_audio && !custom_sourceId) {
DetectRTC.screen.getSourceId(function(sourceId) {
window.parent.postMessage({
chromeMediaSourceId: sourceId
}, '*');
});
}
else {
DetectRTC.screen.getSourceIdWithAudio(function(sourceId, canRequestAudioTrack) {
window.parent.postMessage({
chromeMediaSourceId: sourceId,
canRequestAudioTrack: !!canRequestAudioTrack
}, '*');
});
}
});
}
</script>
</head><body><div id="janus-extension-installed" style="display: none;"></div></body></html>
\ No newline at end of file
<html>
<head>
<link href="/assets/css/fa5.css" rel="stylesheet" type="text/css" />
<style>
body{
margin: 0;
padding: 0;
}
.iconslist i {
font-size: 4em;
padding: 5px;
display: inline-block;
width: 70px;
}
.headbox{
position:fixed;
width:100%;
height:40px;
font-size: 16px;
font-weight:bold;
background-color: #f7b3ff;
padding: 10px;
}
.container{
padding-top:40px;
}
</style>
</head>
<body>
<div class="headbox"><a href="/"> << Back</a></div>
<div class="container">
<?php $cssSrc = file_get_contents(public_path()."/assets/css/fa5.css");
preg_match_all("/.fa-(.*?):before\{content/",$cssSrc,$mtchs);
?>
<div class="iconslist">
<?php foreach( $mtchs[1] as $fk=>$fn){
if($fk>0){
echo $fk. ' <i title="fa fa-'.$fn.'" class="fa fa-'.$fn.'"></i> <i title="fab fa-'.$fn.'" class="fab fa-'.$fn.'"></i> <i title="far fa-'.$fn.'" class="far fa-'.$fn.'"></i> <i title="fas fa-'.$fn.'" class="fas fa-'.$fn.'"></i> - fa-'.$fn.'<br>';
}
} ?></div>
</div>
</body>
</html>
\ No newline at end of file
<!-- resources/views/tasks.blade.php -->
@extends('layouts.app')
@section('subtitle',"Управление разбиениями")
@section('head_css')
<link href="/assets/css/layouts.css" rel="stylesheet" type="text/css" />
@endsection
@section('footer_js')
<script src="/assets/js/layouts.js" type="text/javascript"></script>
@endsection
@section('content')
<h2 class="users_heading">Управление разбиениями</h2>
<div class="wrap_table_users">
<table class="table_users_list" align="center" >
<thead>
<tr>
<td>#</td>
<td rowspan="2">Имя</td>
<td rowspan="2">Кол-во участников</td>
<td rowspan="2">Действия</td>
</tr>
</thead>
<tbody id="all_layouts_list">
</tbody>
</table>
<button onclick="add_layouts();" class="add_new_user">
Добавить+
</button>
</div>
@endsection
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="Keywords" content="@yield('subtitle') vMajlis, VoIP, HTML5, WebRTC, RTCWeb, SIP, IMS, Video chat, VP8, live demo " />
<meta name="Description" content="vMajlis - videoconference" />
<meta name="Description" content="@yield('meta_description')" />
<meta name="author" content="Technounit-GROUP" />
<meta name="theme-color" content="#514A9D">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="csrf-token" content="{{ csrf_token() }}">
<meta charset="utf-8" />
@if(View::hasSection('subtitle'))
<title> vMajlis || @yield('subtitle')</title>
@endif
<link href="/assets/vendors/custom/fullcalendar/fullcalendar.bundle.css" rel="stylesheet" type="text/css" />
<!--end::Page Vendors -->
<link href="/assets/vendors/base/vendors.bundle.css" rel="stylesheet" type="text/css" />
<link href="/assets/css/fa5.css" rel="stylesheet" type="text/css" />
<link href="/assets/vendors/base/sweetalert2.css" rel="stylesheet" type="text/css" />
<link href="/assets/demo/default/base/style.bundle.css" rel="stylesheet" type="text/css" />
<link href="/assets/css/jquery_ui.css" rel="stylesheet" type="text/css" />
<link href="/assets/css/nav.css" rel="stylesheet" type="text/css" />
<link href="/assets/css/styles.css?t=<?php echo time(); ?>" rel="stylesheet" type="text/css" />
@yield('head_css')
<!-- CSS и JavaScript -->
<style>
#title-bar {
height: 35px;
text-align: center;
line-height: 35px;
vertical-align: middle;
background-color: #03a9f4;
padding: 0;
margin: 0px;
position: absolute;
top: 0;
left: 0;
width: 100%;
}
#title img{
margin-left:10px;
}
#title {
color:white;
display:inline-block;
float:left;
}
#title-bar-btns button {
border: none;
cursor:pointer;
/*margin: 0;
padding: 0;
height: 20px;
width: 20px;
line-height: 20px;
font-weight: 500;
color: #3f50d8;
*/
}
#title-bar-btns {
display:inline-block;
float:right;
}
</style>
<script>
<?php
$locale = \App::getLocale();
$langPath = base_path('resources/lang/'.$locale);
$allLang = collect(File::allFiles($langPath))->flatMap(function ($file) {
return [
($translation = $file->getBasename('.php')) => trans($translation),
];
})->toJson();
?>
window.translations = <?php echo $allLang; ?>;
window.trans = function(key, replace = {}){
let translation = key.split('.').reduce((t, i) => t[i] || null, window.translations);
for (var placeholder in replace) {
translation = translation.replace(`:${placeholder}`, replace[placeholder]);
}
return translation;
}
/*if(typeof process !== 'undefined' && typeof process.versions !== 'undefined' && typeof process.versions.electron !== 'undefined'){
var elscript=document.createElement('script');
elscript.onload=function(){
};
elscript.src='/assets/js/libs/vmj_electron.js';
document.head.appendChild(elscript);
};*/
if(navigator.userAgent.match(/vMajlis\/(\d+)\./)){
var toolbarwin = '<div id="title-bar">'
+'<div id="title">'
+'<span style="vertical-align: middle;">'
+' <img src="/img/vmajlis_mini.png" style="width:20px;height:20px;"/>'
+'</span>'
+' vMajlis 2'
+'</div>'
+' <div id="title-bar-btns">'
+' <button id="min-btn" class="m-badge m-badge--primary">-</button>'
+' <button id="max-btn" class="m-badge m-badge--primary">+</button>'
+' <button id="close-btn" class="m-badge m-badge--primary">x</button>'
+' </div>'
+'</div>';
var jqscript=document.createElement('script');
jqscript.onload=function(){
$("body").append(toolbarwin);
(function () {
// Retrieve remote BrowserWindow
const {BrowserWindow} = require('electron').remote
function init() {
// Minimize task
document.getElementById("min-btn").addEventListener("click", (e) => {
var window = BrowserWindow.getFocusedWindow();
window.minimize();
});
// Maximize window
document.getElementById("max-btn").addEventListener("click", (e) => {
var window = BrowserWindow.getFocusedWindow();
if(window.isMaximized()){
window.unmaximize();
}else{
window.maximize();
}
});
// Close app
document.getElementById("close-btn").addEventListener("click", (e) => {
var window = BrowserWindow.getFocusedWindow();
window.close();
});
};
document.onreadystatechange = () => {
if (document.readyState == "complete") {
init();
}
};
})();
};
jqscript.src='/assets/js/libs/jquery-2.1.1.min.js';
document.head.appendChild(jqscript);
}
</script>
</head>
<body id="body_vmj">
@if( (Auth::check()) && ( (Request::path() === '/') || (Request::path() === 'users') || (Request::path() === 'layouts') || (Request::path() === 'admins') || (Request::path() === 'settings') ) )
@include('menu')
@endif
<?php /*
<!--div class="container">
<nav class="navbar navbar-default">
<!-- Содержимое Navbar -->
</nav>
</div>*/ ?>
@yield('content')
<!--script src="/assets/js/libs/jquery-2.1.1.min.js" type="text/javascript"></script-->
<script src="/assets/vendors/base/vendors.bundle.js" type="text/javascript"></script>
<script src="/assets/demo/default/base/scripts.bundle.js" type="text/javascript"></script>
<script src="/assets/vendors/custom/fullcalendar/fullcalendar.bundle.js" type="text/javascript"></script>
<script src="/assets/vendors/base/sweetalert2.all.min.js" type="text/javascript"></script>
<script src="/assets/js/full-screen-helper.min.js" type="text/javascript"></script>
<script src="/assets/js/jquery_ui.js" type="text/javascript"></script>
<script src="/assets/js/libs/jquery.cookie.js" type="text/javascript"></script>
@if( Auth::check() || (Request::path() === '/') )
<script src="/assets/js/admin_user.js" type="text/javascript"></script>
<script src="/assets/js/funcs.js" type="text/javascript"></script>
<script src="/assets/js/main.js" type="text/javascript"></script>
@endif
@yield('footer_js')
<script type="text/javascript">
$(function(){
$('#nav-icon1,.over_lay').click(function(){
$('#nav-icon1').toggleClass('open');
$(".over_lay").toggle();
$('.column_menu').animate({width:'toggle'},150,function(){ load_main_menu(); });
});
});
</script>
<script>
/*window.onload = function() {
var startPos;
var geoSuccess = function(position) {
startPos = position;
document.getElementById('startLat').innerHTML = startPos.coords.latitude;
document.getElementById('startLon').innerHTML = startPos.coords.longitude;
};
var geoError = function(position) {
console.log('Error occurred. Error code: ' + error.code);
// error.code can be:
// 0: unknown error
// 1: permission denied
// 2: position unavailable (error response from location provider)
// 3: timed out
};
navigator.geolocation.getCurrentPosition(geoSuccess, geoError);
};*/
</script>
@if (!empty($sw_msg))
<script>
swal({
position: 'top-end',
type: 'success',
title: '{{ $sw_msg }}' ,
showConfirmButton: false,
timer: 1000 ,
position:'center'
});
</script>
@endif
<!--div class="coords" id="startLat" style="color:#fff; display:inline-block;"> </div>:<div class="coords" id="startLon" style="color:#fff; display:inline-block;"> </div-->
<!--a href="tel:+998977076909" class="btn">+998977076909</a-->
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head style="width:100%; height:100%;">
<title>Mahalla Conference Live</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="Keywords" content="@yield('subtitle') vMajlis, VoIP, HTML5, WebRTC, RTCWeb, SIP, IMS, Video chat, VP8, live demo " />
<meta name="Description" content="vMajlis - videoconference" />
<meta name="Description" content="@yield('meta_description')" />
<meta name="author" content="Technounit-GROUP" />
<meta name="theme-color" content="#514A9D">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="csrf-token" content="{{ csrf_token() }}">
<link href="/assets/css/styles.css" rel="stylesheet">
<link href="/assets/js/videojs/video-js.min.css" rel="stylesheet">
<script src="/assets/js/videojs/video.min.js"></script>
<script src="/assets/js/videojs/dash.all.min.js"></script>
<script src="/assets/js/videojs/videojs-dash.min.js"></script>
<meta name="theme-color" content="#504FA0">
</head>
<body style="width:100%; height:100%; overflow: hidden;">
<?php
/*
@if( Auth::check() ) (Request::path() === '/')
@include('menu')
@endif
*/
?>
<a class="logoutlink" href="/logout"><?php echo trans("lang.logout"); ?></a>
@yield('content')
<!--script src="/assets/js/libs/jquery-2.1.1.min.js" type="text/javascript"></script-->
<script src="/assets/vendors/base/vendors.bundle.js" type="text/javascript"></script>
<script src="/assets/demo/default/base/scripts.bundle.js" type="text/javascript"></script>
<script src="/assets/vendors/custom/fullcalendar/fullcalendar.bundle.js" type="text/javascript"></script>
<script src="/assets/vendors/base/sweetalert2.all.min.js" type="text/javascript"></script>
<script src="/assets/js/full-screen-helper.min.js" type="text/javascript"></script>
<script src="/assets/js/jquery_ui.js" type="text/javascript"></script>
<script src="/assets/js/libs/jquery.cookie.js" type="text/javascript"></script>
@yield('footer_js')
</body>
</html>
\ No newline at end of file
@extends('layouts.app')
@section('subtitle',"Live")
@section('head_css')
<link href="/assets/css/meet.css" rel="stylesheet" type="text/css" />
@endsection
@section('content')
<video id="mahlivevideo" autoplay="autoplay" style="width:100%; height:100%; position:absolute; left:0px; top:0px;" class="video-js vjs-default-skin" controls width="100%" height="100%" poster="/assets/images/mah.jpg"></video>
@endsection
@section('footer_js')
<!--script src="/assets/js/libs/jquery-2.1.1.min.js" type="text/javascript"></script-->
<link href="/assets/js/videojs/video-js.min.css" rel="stylesheet">
<script src="/assets/js/videojs/video.min.js"></script>
<script src="/assets/js/videojs/dash.all.min.js"></script>
<script src="/assets/js/videojs/videojs-dash.min.js"></script>
<script>
var player = videojs('mahlivevideo');
player.ready(function() {
player.src({
//src: 'https://<?php echo $_SERVER["HTTP_HOST"]; ?>/dash/stream.mpd'
src: 'https://<?php echo $_SERVER["HTTP_HOST"]; ?>/dash/live<?php echo $uroom; ?>.mpd'
});
player.play();
});
setInterval(function(){
$.ajax({
method:'POST',
url:'/ajax',
dataType:'json',
data:{
func:'isConfStreaming',
room: '<?php echo $uroom; ?>'
},
success:function(result){
if(result.result !== 'ok'){
location.href="/";
}
}
});
},1000);
</script>
@endsection
\ No newline at end of file
@extends('layouts.app')
@section('subtitle',"Live")
@section('head_css')
<link href="/assets/css/meet.css" rel="stylesheet" type="text/css" />
<style>
/* latin-ext */
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 100;
src: local('Lato Hairline'), local('Lato-Hairline'), url(/assets/fonts/lato1.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 100;
src: local('Lato Hairline'), local('Lato-Hairline'), url(/assets/fonts/lato2.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
html, body {
height: 100%;
}
body {
margin: 0;
padding: 0;
width: 100%;
color: #B0BEC5;
display: table;
font-weight: 100;
font-family: 'Lato';
}
.container {
text-align: center;
display: table-cell;
vertical-align: middle;
}
.content {
text-align: center;
display: inline-block;
}
.title {
font-size: 72px;
margin-bottom: 40px;
}
.titlemini {
font-size: 30px;
margin-bottom: 40px;
}
</style>
@endsection
@section('content')
<div class="no_live_stream_block container">
<h2 class="title">Majlis bo`lmayapdi!</h2>
<h4 class="titlemini">Tekshirilmoqda...</h4>
</div>
@endsection
@section('footer_js')
<script src="/assets/js/libs/jquery-2.1.1.min.js" type="text/javascript"></script>
<script>
setInterval(function(){
$.ajax({
method:'POST',
url:'/ajax',
dataType:'json',
data:{
func:'isConfStreaming',
room: '<?php echo $uroom; ?>'
},
success:function(result){
if(result.result == 'ok'){
location.href="/majlis";
}
}
});
},1000);
</script>
@endsection
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
<!--div class="main_menu">
<button id="menu">
<i class="fa fa-bars"></i>
</button>
</div-->
<div id="nav-icon1">
<span></span>
<span></span>
<span></span>
</div>
<div class="over_lay" style="position:absolute;left:0;top:0;width:100%;height:100vh;background:rgba(0,0,0,.3);"></div>
<div class="column_menu">
<div class="heading_menu">
<div id="close_settings"><!--i class="fa fa-times"></i--></div>
<label>МЕНЮ</label>
</div>
<ul class="menu_item">
</ul>
</div>
@extends('layouts.app')
@section('subtitle',"MyCam")
@section('head_css')
<link href="/assets/css/mycam.css" rel="stylesheet" type="text/css" />
<style>
.face{
border: 2px solid red;
position:absolute;
z-index: 999999999;
}
</style>
@endsection
@section('footer_js')
<script src="/assets/js/mycam.js?t=<?php echo time(); ?>" type="text/javascript"></script>
<script src="/assets/js/jquery.facedetection.min.js" type="text/javascript"></script>
<script type="text/javascript">
// Face Detecting...................
setTimeout(function(){
setInterval(function(){
$('#mycam').faceDetection({
confidence:0,
interval:1,
complete: function (faces) {
$('.face').remove();
console.log(faces);
for( var i=0; i<faces.length; i++){
//var kLeft = faces[i].x + ( faces[i].scaleX * 100);
//var kTop = faces[i].y + ( faces[i].scaleY * 100);
var kLeft = faces[i].x * faces[i].scaleX;
var kTop = faces[i].y * faces[i].scaleY;
var kWidth = faces[i].width * faces[i].scaleX ;
var kHeight = faces[i].height * faces[i].scaleY;
$('<div>',{
'class':'face',
'css':{
'position':'absolute',
'left':kLeft + 'px',
'top':kTop + 'px',
'width':kWidth + 'px',
'height':kHeight + 'px',
}
}).appendTo($( "body" ) );
}
}
});
},500);
},10000);
// Face Detecting END...................
</script>
@endsection
@section('content')
<video id="mycam" autoplay="autoplay" style="width:100%;height:100%;object-fit:inherit;z-index:0"></video>
@endsection
\ No newline at end of file
<html><head><script>
// https://github.com/muaz-khan/DetectRTC
var DetectRTC = {};
var screenCallback;
DetectRTC.screen = {
chromeMediaSource: 'screen',
getSourceId: function(callback) {
if (!callback) throw '"callback" parameter is mandatory.';
screenCallback = callback;
window.postMessage('get-sourceId', '*');
},
getCustomSourceId: function(arr, callback) {
if (!arr || !arr.forEach) throw '"arr" parameter is mandatory and it must be an array.';
if (!callback) throw '"callback" parameter is mandatory.';
screenCallback = callback;
window.postMessage({
'get-custom-sourceId': arr
}, '*');
},
getSourceIdWithAudio: function(callback) {
if (!callback) throw '"callback" parameter is mandatory.';
screenCallback = callback;
window.postMessage('audio-plus-tab', '*');
},
onMessageCallback: function(data) {
// "cancel" button is clicked
if (data == 'PermissionDeniedError') {
DetectRTC.screen.chromeMediaSource = 'PermissionDeniedError';
if (screenCallback) return screenCallback('PermissionDeniedError');
else throw new Error('PermissionDeniedError');
}
// extension notified his presence
if (data == 'rtcmulticonnection-extension-loaded') {
DetectRTC.screen.chromeMediaSource = 'desktop';
}
// extension shared temp sourceId
if (data.sourceId) {
DetectRTC.screen.sourceId = data.sourceId;
if (screenCallback) {
screenCallback(DetectRTC.screen.sourceId, data.canRequestAudioTrack === true);
}
}
},
getChromeExtensionStatus: function(callback) {
// https://chrome.google.com/webstore/detail/screen-capturing/ajhifddimkapgcifgcodmmfdlknahffk
var extensionid = 'ajhifddimkapgcifgcodmmfdlknahffk';
var image = document.createElement('img');
image.src = 'chrome-extension://' + extensionid + '/icon.png';
image.onload = function() {
if (!DetectRTC.screen) DetectRTC.screen = {};
if (!DetectRTC.screen.chromeMediaSource) DetectRTC.screen.chromeMediaSource = '';
if (DetectRTC.screen.chromeMediaSource === 'desktop') {
callback('installed-enabled');
return;
}
DetectRTC.screen.chromeMediaSource = 'screen';
window.postMessage('are-you-there', '*');
setTimeout(function() {
if (DetectRTC.screen.chromeMediaSource == 'screen') {
callback('installed-disabled');
} else {
callback('installed-enabled');
}
}, 2000);
};
image.onerror = function() {
callback('not-installed');
};
}
};
window.addEventListener('message', function(event) {
if (!event.data || !(typeof event.data == 'string' || event.data.sourceId || event.data.captureSourceId || event.data.captureCustomSourceId || event.data.getChromeExtensionStatus || event.data.captureSourceIdWithAudio)) return;
console.log("DetectEvent",event);
if (event.data.getChromeExtensionStatus) {
DetectRTC.screen.getChromeExtensionStatus(function(status) {
window.parent.postMessage({
chromeExtensionStatus: status
}, '*');
});
return;
}
if(event.data.captureCustomSourceId) {
captureSourceId(null, event.data.captureCustomSourceId);
}
if (event.data.captureSourceId) {
captureSourceId();
}
if (event.data.captureSourceIdWithAudio) {
captureSourceId('system_audio');
}
DetectRTC.screen.onMessageCallback(event.data);
});
function captureSourceId(system_audio, custom_sourceId) {
// check if desktop-capture extension installed.
DetectRTC.screen.getChromeExtensionStatus(function(status) {
if (status != 'installed-enabled') {
window.parent.postMessage({
chromeExtensionStatus: status
}, '*');
return;
}
if(!!custom_sourceId) {
DetectRTC.screen.getCustomSourceId(custom_sourceId, function(sourceId, canRequestAudioTrack) {
window.parent.postMessage({
chromeMediaSourceId: sourceId,
canRequestAudioTrack: !!canRequestAudioTrack
}, '*');
});
}
else if(!system_audio && !custom_sourceId) {
DetectRTC.screen.getSourceId(function(sourceId) {
window.parent.postMessage({
chromeMediaSourceId: sourceId
}, '*');
});
}
else {
DetectRTC.screen.getSourceIdWithAudio(function(sourceId, canRequestAudioTrack) {
window.parent.postMessage({
chromeMediaSourceId: sourceId,
canRequestAudioTrack: !!canRequestAudioTrack
}, '*');
});
}
});
}
</script>
</head><body><div id="janus-extension-installed" style="display: none;"></div></body></html>
\ No newline at end of file
<!-- resources/views/tasks.blade.php -->
@extends('layouts.app')
@section('subtitle',"Управление профилями конференций")
@section('content')
<button id="add_new_user">
<i class="fa fa-user-plus"></i>
</button>
<h2 class="users_heading">Управление профилями конференций</h2>
<div class="wrap_table_users">
<table class="table_users_list" align="center" >
<thead>
<tr>
<td>#</td>
<td rowspan="2">Номер</td>
<td rowspan="2">Имя</td>
<!--td rowspan="2">Пароль</td-->
<td rowspan="2">Комната</td>
<td rowspan="2">Действия</td>
</tr>
</thead>
<tbody>
</tbody>
</table>
<button class="add_new_user">
Добавить профиль+
</button>
</div>
@endsection
\ No newline at end of file
<!-- resources/views/tasks.blade.php -->
@extends('layouts.app')
@section('subtitle',"Настройки")
@section('content')
<div>
<h2>Настройки</h2>
</div>
@endsection
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<script>
if(!location.hash.replace('#', '').length) {
location.href = location.href.split('#')[0] + '#' + (Math.random() * 100).toString().replace('.', '');
location.reload();
}
</script>
<title>Remote Screen Control using RTCMultiConnection</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<link rel="author" type="text/html" href="https://plus.google.com/+MuazKhan">
<meta name="author" content="Muaz Khan">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<script src="https://cdn.webrtc-experiment.com/socket.io.js"></script>
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
<script src="https://cdn.webrtc-experiment.com/CodecsHandler.js"></script>
<script src="https://cdn.webrtc-experiment.com/IceServersHandler.js"></script>
<script src="https://cdn.webrtc-experiment.com/RTCMultiConnection.js"></script>
</head>
<body>
<h1>
Remote Screen Control using <a href="http://www.RTCMultiConnection.org/">RTCMultiConnection</a>
</h1>
<p>
Remote user can get full control over remote pages e.g. scroll remote pages, click any link or button, edit text in remote pages, move mouse etc.
</p>
<div id="edit-panel">
<div>
<label for="x">X</label>
<input type="number" name="x" id="x" value="0" />
</div>
<div>
<label for="y">Y</label>
<input type="number" name="y" id="y" value="0" />
</div>
<div>
<label for="w">Width (-1 = Full size)</label>
<input type="number" name="w" id="w" value="-1" />
</div>
<div>
<label for="h">Height (-1 = Full size)</label>
<input type="number" name="h" id="h" value="-1" />
</div>
<div>
<button id="update">Update</button>
</div>
</div>
<h2>Remote Screen:</h2>
<div id="LocalVideo"></div>
<script>
// this script tag is taken from: https://github.com/andersevenrud/webrtc-screenshare-crop-demo
var CROP_X = 10;
var CROP_Y = 20;
var CROP_W = 320; // default width
var CROP_H = 240; // default height
var VIDEO_WIDTH = 0;
var VIDEO_HEIGHT = 0;
var MAX_VIDEO_WIDTH = 1920;
var MAX_VIDEO_HEIGHT = 1080;
var _canvas;
var _context;
function updateScreenCoordinates() {
var x = CROP_X;
var y = CROP_Y;
var w = CROP_W;
var h = CROP_H;
if (x >= 0) {
CROP_X = x;
}
if (y >= 0) {
CROP_Y = y;
}
CROP_W = w || 0;
CROP_H = h || 0;
if (_canvas) {
if (_canvas.parentNode) {
_canvas.parentNode.removeChild(_canvas);
}
_canvas = null;
_context = null;
}
connection.send({
CROP_X: CROP_X,
CROP_Y: CROP_Y,
CROP_W: CROP_W,
CROP_H: CROP_H
});
}
/**
* Crops a video frame and shows it to the user
*/
function CropFrame(ev, stream, video, callback) {
if (!_canvas) {
if (CROP_X < 0) {
CROP_X = 0;
}
if (CROP_Y < 0) {
CROP_Y = 0;
}
if (CROP_W <= 0) {
CROP_W = VIDEO_WIDTH;
}
if (CROP_H <= 0) {
CROP_H = VIDEO_HEIGHT;
}
if (CROP_W > MAX_VIDEO_WIDTH) {
CROP_W = MAX_VIDEO_WIDTH;
}
if (CROP_H > MAX_VIDEO_HEIGHT) {
CROP_W = MAX_VIDEO_HEIGHT;
}
_canvas = document.createElement('canvas');
_canvas.width = CROP_W;
_canvas.height = CROP_H;
_context = _canvas.getContext('2d');
document.getElementById("LocalVideo").appendChild(_canvas);
}
_context.drawImage(video, CROP_X, CROP_Y, CROP_W, CROP_H, 0, 0, CROP_W, CROP_H);
// We need to scale down the image or else we get HTTP 414 Errors
// Also we scale down because of RTC message length restriction
var scanvas = document.createElement('canvas');
scanvas.width = _canvas.width;
scanvas.height = _canvas.height;
var wRatio = _canvas.width / 320;
var hRatio = _canvas.height / 240;
var maxRatio = Math.max(wRatio, hRatio);
if (maxRatio > 1) {
scanvas.width = _canvas.width / maxRatio;
scanvas.height = _canvas.height / maxRatio;
}
scanvas.getContext('2d').drawImage(_canvas, 0, 0, scanvas.width, scanvas.height);
callback(scanvas.toDataURL("image/jpeg"));
}
</script>
<script>
(function() {
var params = {},
r = /([^&=]+)=?([^&]*)/g;
function d(s) {
return decodeURIComponent(s.replace(/\+/g, ' '));
}
var match, search = window.location.search;
while (match = r.exec(search.substring(1)))
params[d(match[1])] = d(match[2]);
window.params = params;
})();
var connection = new RTCMultiConnection();
// https://github.com/muaz-khan/WebRTC-Experiment/tree/master/socketio-over-nodejs
var SIGNALING_SERVER = 'https://socketio-over-nodejs2.herokuapp.com:443/';
connection.openSignalingChannel = function(config) {
var channel = config.channel || connection.channel || 'default-namespace';
var sender = Math.round(Math.random() * 9999999999) + 9999999999;
io.connect(SIGNALING_SERVER).emit('new-channel', {
channel: channel,
sender: sender
});
var socket = io.connect(SIGNALING_SERVER + channel);
socket.channel = channel;
socket.on('connect', function() {
if (config.callback) config.callback(socket);
});
socket.send = function(message) {
socket.emit('message', {
sender: sender,
data: message
});
};
socket.on('message', config.onmessage);
};
connection.session = {
screen: true,
data: true,
oneway: true
};
connection.onmessage = function(event) {
CROP_X = event.data.CROP_X;
CROP_Y = event.data.CROP_Y;
CROP_W = event.data.CROP_W;
CROP_H = event.data.CROP_H;
if (!_canvas) return;
_canvas.width = CROP_W;
_canvas.height = CROP_H;
};
connection.onstream = function(event) {
var inited = false;
event.mediaElement.addEventListener('timeupdate', function(ev) {
if (!inited) {
VIDEO_WIDTH = event.mediaElement.offsetWidth;
VIDEO_HEIGHT = event.mediaElement.offsetHeight;
event.mediaElement.style.display = 'none';
event.mediaElement.style.visibility = 'hidden';
inited = true;
}
CropFrame(ev, event.stream, event.mediaElement);
});
};
if (params.sessionid) {
// for participants
connection.channel = connection.sessionid = params.sessionid;
connection.join({
sessionid: params.sessionid,
userid: params.sessionid,
extra: {},
session: connection.session
});
} else {
// for initiator
connection.channel = connection.sessionid = connection.userid;
connection.open({
dontTransmit: true,
onMediaCaptured: function() {
var domain = 'https://www.webrtc-experiment.com';
var resultingURL = domain + '/RTCMultiConnection/remote-screen-control.html?sessionid=' + connection.sessionid;
document.querySelector('h1').innerHTML = '<a href="' + resultingURL + '" target="_blank">Share this private room URL</a>';
}
});
}
</script>
</body>
</html>
\ No newline at end of file
<!-- resources/views/tasks.blade.php -->
@extends('layouts.app')
@section('subtitle',"Комната")
@section('head_css')
<link href="/assets/css/room.css" rel="stylesheet" type="text/css" />
@endsection
@section('content')
<input type="hidden" id="room_number" value="{{ $number }}">
<div class="screen_wrap">
<div class="main_screen">
<button id="show-close-panel"><i class="fa fa-2x fa-angle-right fa-rotate-270"></i></button>
<video id="webcam" autoplay="autoplay" style="width:100%;height:100%;object-fit:inherit;z-index:0"></video>
<div class="main_grid">
</div>
</div>
<div class="list_users">
<!--h4>Список участников: <span class="uscounts"></span></h4-->
<ul class="nav nav-tabs m-tabs-line m-tabs-line--brand userslist_tabs" role="tablist">
<li class="nav-item m-tabs__item">
<a class="nav-link m-tabs__link active" data-toggle="tab" href="#m_tabs_6_1" role="tab">
<i class="fa fa-video-camera"></i>
Видео: <span class="uscounts"></span>
</a>
</li>
<li class="nav-item m-tabs__item">
<a class="nav-link m-tabs__link" data-toggle="tab" href="#m_tabs_6_2" role="tab">
<i class="fa fa-microphone"></i>
Аудио: <span class="uscounts"></span>
</a>
</li>
</ul>
<button id="close-list-user">
<i class="fa fa-times"></i>
</button>
<div class="tab-content">
<div class="table_users_wrapper tab-pane active" id="m_tabs_6_1" role="tabpanel">
<table class="table_users">
<thead>
<tr>
<th>Имя</th>
<th>Действия</th>
</tr>
</thead>
<tbody class="body_list_users" id="room_body_list_users">
</tbody>
</table>
</div>
<div class="table_voiceusers_wrapper tab-pane" id="m_tabs_6_2" role="tabpanel">
<table class="table_users">
<thead>
<tr>
<td>Имя</td>
<td>Действия</td>
</tr>
</thead>
<tbody class="body_list_users" id="room_body_list_voiceusers">
</tbody>
</table>
</div>
</div>
<div class="footer_user">
<h4>VMAJLIS 2.0 ( {{ $number }} ) <span class="nowtime"></span></h4>
</div>
</div>
</div>
<div class="info_block">
<span class="close_info"><i class="fa fa-times"></i></span>
<div class="label_info"><label>ИНФО:</label></div>
<hr width="60%" color="white !important" noshade size="1px">
<ul class="list_info">
</ul>
</div>
<div class="list_rec">
<span class="close-rec-list"><i class="fa fa-times"></i></span><br>
<label class="label-rec-list">Список записей:</label>
<hr width="100%" color="#4669AD" style="color:#4669AD;" noshade size="1px">
<ol class="list-links-rec">
<li><i class="fa fa-folder"></i><a class="link_video_rec" data-path="path1" href="#">path/videos/recordings_23_11_2018.mp4</a></li>
<li><i class="fa fa-folder"></i><a class="link_video_rec" data-path="path2" href="#">path/videos/recordings_23_11_2018.mp4</a></li>
<li><i class="fa fa-folder"></i><a class="link_video_rec" data-path="path3" href="#">path/videos/recordings_23_11_2018.mp4</a></li>
</ol>
</div>
<div class="footer footer_under_room">
<div class="wrap-settings-footer">
<div class="wrap-icons">
<button type="button" class="itooltips" id="to_back" onClick="location.href='/';" title="Назад к списку комнат"><i class="fa fa-arrow-circle-left"></i></button>
<button type="button" class="itooltips" id="full_screen" title="Полнэкранный режим"><i class="fa fa-window-maximize "></i></button>
<button type="button" class="itooltips" id="chat" title="Чат"><i class="fa fa-comment "></i></button>
<button type="button" class="itooltips" onclick="mute_all()" title="Выключить всем звук" ><i class="fa fa-microphone-slash"></i></button>
<button type="button" class="itooltips" onclick="unmute_all()" title="Включить всем звук" ><i class="fa fa-microphone "></i></button>
<button type="button" class="itooltips" onclick="kick_all()" title="Всех выключить" ><i class="fa fa-times "></i></button>
<button type="button" class="itooltips" id="info" title="Инфо"><i class="fa fa-info " ></i></button>
<button type="button" class="itooltips" id="conf_recording" onclick="room_record()" title="Запись"><i class="fa fa-circle" ></i></button>
<button type="button" class="itooltips" id="translation" onclick="room_stream()" title="Трансляция"><i class="fa fa-podcast" ></i></button>
<button type="button" class="itooltips" id="show-users" title="Показать пользователей"><i class="fa fa-users"></i></button>
<button type="button" class="itooltips" title="Выбрать расположение" data-toggle="dropdown" m-dropdown-toggle="click" class="dropdown"><i class="fa fa-th"></i></button>
<button type="button" class="itooltips" id="show-list-recs"title="Записи видео"><i class="fa fa-list"></i></button>
<ul class="dropdown-menu layouts_list">
</ul>
</div>
</div>
</div>
@endsection
@section('footer_js')
<!--script src="/assets/js/verto_libs/jquery-2.1.1.min.js" type="text/javascript"></script-->
<script src="/assets/js/verto_libs/getScreenId.js" type="text/javascript"></script>
<script src="/assets/js/verto_libs/jquery.cookie.js" type="text/javascript"></script>
<script src="/assets/js/verto_libs/jquery.dataTables.min.js" type="text/javascript"></script>
<script src="/assets/js/verto_libs/jquery.hipchat.js" type="text/javascript"></script>
<script src="/assets/js/verto_libs/jquery.json-2.4.min.js" type="text/javascript"></script>
<!--script src="/assets/js/verto_libs/jquery.mobile.min.js" type="text/javascript"></script*--->
<script src="/assets/js/verto_libs/md5.min.js" type="text/javascript"></script>
<script src="/assets/js/verto_libs/verto-min.js" type="text/javascript"></script>
<script src="/assets/js/adminrtc.js" type="text/javascript"></script>
<script src="/assets/js/room.js" type="text/javascript"></script>
@endsection
\ No newline at end of file
<!-- resources/views/tasks.blade.php -->
@extends('layouts.app')
@section('subtitle',"Настройки")
@section('content')
<div>
<h2>Настройки</h2>
</div>
@endsection
\ No newline at end of file
@extends('layouts.app')
@section('subtitle',"Screen")
@section('head_css')
<link href="/assets/css/sharing.css" rel="stylesheet" type="text/css" />
@endsection
@section('footer_js')
<!--script src="/assets/js/libs/jquery-2.1.1.min.js" type="text/javascript"></script-->
<script src="/assets/js/libs/getScreenId.js" type="text/javascript"></script>
<script src="/assets/js/libs/jquery.cookie.js" type="text/javascript"></script>
<script src="/assets/js/libs/jquery.dataTables.min.js" type="text/javascript"></script>
<script src="/assets/js/libs/jquery.hipchat.js" type="text/javascript"></script>
<script src="/assets/js/libs/jquery.json-2.4.min.js" type="text/javascript"></script>
<!--script src="/assets/js/verto_libs/jquery.mobile.min.js" type="text/javascript"></script*--->
<script src="/assets/js/libs/md5.min.js" type="text/javascript"></script>
<script src="/assets/js/libs/vmjlib.js?t=<?php echo time(); ?>" type="text/javascript"></script>
<script src="/assets/js/sharing.js?t=<?php echo time(); ?>" type="text/javascript"></script>
<script src="/assets/js/uplmeet.js" type="text/javascript"></script>
@endsection
@section('content')
<?php
/*
\Session::forget('sharename');
\Session::forget('sharenum');
\Session::forget('shareroom');
\Session::forget('sharepass');
*/
?>
<input type="hidden" id="sharename" value="{{ $sharename }}">
<input type="hidden" id="sharenum" value="{{ $sharenum }}">
<input type="hidden" id="shareroom" value="{{ $shareroom }}">
<input type="hidden" id="sharepass" value="{{ $sharepass }}">
<div class="screen_wrap" >
<div class="main_screen" id="conf_main_screen">
<video id="swebcam" autoplay="autoplay" style="width:100%;height:100%;object-fit:contain;z-index:10"></video>
<div class="footer">
<!-- LOGO SVG START -->
<div class="logo-svg">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Creator: CorelDRAW 2018 (64-Bit) -->
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="55px" height="55px" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
viewBox="0 0 213.42 213.19"
xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<style type="text/css">
<![CDATA[
.fil1 {fill:#2788FA}
.fil0 {fill:#F40537}
.fil2 {fill:url(#id0)}
]]>
</style>
<linearGradient id="id0" gradientUnits="userSpaceOnUse" x1="21.44" y1="106.66" x2="193.16" y2="106.66">
<stop offset="0" style="stop-opacity:1; stop-color:#F40537"/>
<stop offset="1" style="stop-opacity:1; stop-color:#2788FA"/>
</linearGradient>
</defs>
<g id="Слой_x0020_1">
<metadata id="CorelCorpID_0Corel-Layer"/>
<g id="_212760512">
<path class="fil0" d="M53.52 77.44c-3.52,-2.44 -8.01,-2.09 -10.11,1.03 -2.07,3.95 5.67,20.36 7.62,25.22 3.28,8.16 6.09,16.73 9.59,24.55 1.29,4.06 3.1,6.81 6.04,8.17 3.59,1.66 8.86,1.2 10.45,-1.85 4.34,-2.06 8.22,-15.96 11.11,-23.16 1.72,-4.27 3.61,-7.91 1.87,-12.67 -1.54,-4.18 -2.63,-8.84 -6.08,-11.03 -3.17,2.36 -9.67,22.99 -12.67,29.65 -5.73,-6.86 -11,-35.17 -17.82,-39.91z"/>
<path class="fil1" d="M94.3 75.92c-3.27,0.8 -5.11,1.4 -4.97,5.01 0.18,4.55 17.48,55.04 25.52,55.26 3.64,2.69 10.65,0.3 11.57,-4.65 2.92,-2.45 13.85,-32.8 13.66,-34.87 3.52,-0.28 12.4,29.09 15.71,35.28 2.45,4.56 8.02,7.26 13.68,3.73 4.6,-1.91 -16.17,-53.49 -22.04,-57.91 -4.07,-3.07 -9.2,-2.03 -12.9,0.71 -2.45,1.81 -13.99,32.71 -16.48,38.7 -2.47,-3.1 -10.23,-24.95 -11.83,-29.12 -2.57,-6.71 -3.17,-11.88 -11.92,-12.14z"/>
</g>
<path class="fil2" d="M4.57 93.79c13.31,-16.84 26.62,-32.41 41.45,-47.23 14.95,-14.95 30.19,-28.23 47.9,-42.07 7.89,-6.17 17.59,-5.8 25.76,0 17.49,12.44 33.72,26.89 48.69,41.85 14.81,14.81 28.74,28.73 40.66,47.45 5.37,8.45 5.73,17.53 0,25.75 -12.23,17.51 -26.72,33.51 -41.72,48.5 -14.78,14.77 -30.2,28.67 -47.63,40.79 -8.23,5.72 -17.67,5.91 -25.76,0 -17.72,-12.91 -32.29,-26.46 -47.1,-41.26 -14.97,-14.96 -28.97,-30.1 -42.25,-48.03 -5.97,-8.05 -6.22,-17.89 0,-25.75zm13.66 1.72c11.53,-14.57 23.06,-28.05 35.9,-40.88 12.95,-12.94 26.15,-24.43 41.48,-36.41 6.84,-5.34 15.24,-5.03 22.31,0 15.15,10.76 29.21,23.27 42.17,36.22 12.83,12.82 24.9,24.87 35.22,41.07 4.65,7.31 4.96,15.18 0,22.29 -10.59,15.15 -23.14,29 -36.13,41.98 -12.8,12.79 -26.16,24.81 -41.26,35.31 -7.12,4.95 -15.3,5.11 -22.31,0 -15.34,-11.18 -27.96,-22.9 -40.79,-35.72 -12.96,-12.95 -25.08,-26.05 -36.59,-41.57 -5.16,-6.97 -5.38,-15.49 0,-22.29z"/>
<path class="fil1" d="M53.52 77.44c-3.52,-2.44 -8.01,-2.09 -10.11,1.03 -2.07,3.95 5.67,20.36 7.62,25.22 3.28,8.16 6.09,16.73 9.59,24.55 1.29,4.06 3.1,6.81 6.04,8.17 3.59,1.66 8.86,1.2 10.45,-1.85 4.34,-2.06 8.22,-15.96 11.11,-23.16 1.72,-4.27 3.61,-7.91 1.87,-12.67 -1.54,-4.18 -2.63,-8.84 -6.08,-11.03 -3.17,2.36 -9.67,22.99 -12.67,29.65 -5.73,-6.86 -11,-35.17 -17.82,-39.91z"/>
<path class="fil1" d="M94.3 75.92c-3.27,0.8 -5.11,1.4 -4.97,5.01 0.18,4.55 17.48,55.04 25.52,55.26 3.64,2.69 10.65,0.3 11.57,-4.65 2.92,-2.45 13.85,-32.8 13.66,-34.87 3.52,-0.28 12.4,29.09 15.71,35.28 2.45,4.56 8.02,7.26 13.68,3.73 4.6,-1.91 -16.17,-53.49 -22.04,-57.91 -4.07,-3.07 -9.2,-2.03 -12.9,0.71 -2.45,1.81 -13.99,32.71 -16.48,38.7 -2.47,-3.1 -10.23,-24.95 -11.83,-29.12 -2.57,-6.71 -3.17,-11.88 -11.92,-12.14z"/>
<path class="fil0" d="M4.79 93.79c13.31,-16.84 26.62,-32.41 41.45,-47.23 14.96,-14.95 30.2,-28.23 47.9,-42.07 7.89,-6.17 17.6,-5.8 25.76,0 17.49,12.44 33.72,26.89 48.69,41.85 14.82,14.81 28.75,28.73 40.66,47.45 5.38,8.45 5.73,17.53 0,25.75 -12.22,17.51 -26.71,33.51 -41.71,48.5 -14.79,14.77 -30.2,28.67 -47.64,40.79 -8.22,5.72 -17.67,5.91 -25.76,0 -17.72,-12.91 -32.28,-26.46 -47.1,-41.26 -14.97,-14.96 -28.96,-30.1 -42.25,-48.03 -5.96,-8.05 -6.21,-17.89 0,-25.75zm13.66 1.72c11.53,-14.57 23.06,-28.05 35.9,-40.88 12.96,-12.94 26.16,-24.43 41.49,-36.41 6.83,-5.34 15.24,-5.03 22.31,0 15.15,10.76 29.2,23.27 42.17,36.22 12.83,12.82 24.9,24.87 35.21,41.07 4.66,7.31 4.97,15.18 0,22.29 -10.58,15.15 -23.13,29 -36.12,41.98 -12.81,12.79 -26.16,24.81 -41.26,35.31 -7.12,4.95 -15.3,5.11 -22.31,0 -15.35,-11.18 -27.96,-22.9 -40.79,-35.72 -12.97,-12.95 -25.09,-26.05 -36.6,-41.57 -5.16,-6.97 -5.38,-15.49 0,-22.29z"/>
</g>
</svg>
</div>
<!-- LOGO SVG END -->
<div class="wrap-settings-footer">
<div class="wrap-icons-cl" style="display:block;">
<button type="button" class="sbutton itooltips" id="to_back" onClick="endexit();" title="Закончить показ экрана"><i class="fa fa-times"></i></button>
<button type="button" class="sbutton itooltips" id="screenshare" onclick="screenshare(this)" title="Демонстрация экрана"><i class="flaticon-imac" ></i></button>
<button type="button" class="sbutton itooltips" id="full_screen" onclick="clfull_screen(this)" title="Полнэкранный режим"><i class="fa fa-expand"></i></button>
</div>
</div>
</div>
</div>
@endsection
\ No newline at end of file
<!-- resources/views/tasks.blade.php -->
@extends('layouts.app')
@section('subtitle',"Комната")
@section('head_css')
<link href="/assets/css/speaker.css?t=<?php echo time(); ?>" rel="stylesheet" type="text/css" />
<link href="/assets/css/datedropper.min.css?t=<?php echo time(); ?>" rel="stylesheet" type="text/css" />
<script src="/assets/js/verto_libs/jquery-2.1.1.min.js?t=<?php echo time(); ?>" type="text/javascript"></script>
@endsection
@section('content')
<?php if(!empty($uid)) { echo "<input id='wid' type='hidden' value='".$uid."'/>"; } ?>
<?php if(!empty($usertype)) { echo "<input id='wusrtype' type='hidden' value='".$usertype."'/>"; } ?>
<?php if(!empty($name)) { echo "<input id='wname' type='hidden' value='".$name."'/>"; } ?>
<?php if(!empty($number)) { echo "<input id='wnum' type='hidden' value='".$number."'/>"; } ?>
<?php if(!empty($password)) { echo "<input id='wpass' type='hidden' value='".$password."'/>"; } ?>
<script>
<?php if(!empty($webinar)) { echo 'var webinar = JSON.parse(\''.json_encode($webinar).'\'); console.log("webinar:",webinar);'; } ?>
</script>
<a href="/logout" class="logout"><i class='fa fa-sign-out-alt'></i></a>
<a href="#" id="settings"><i class='fa fa-bars'></i></a>
<?php if(!empty($webinar)){ ?>
<div class="main-container">
<video class="video-speaker" id="video" autoplay></video>
<input type="file" id="file" name='file' multiple />
<input type="hidden" id="wroom" value="<?=$webinar['room']?>" />
<input type="hidden" id="theme" value="<?=$webinar['title']?>" />
<?php if( !empty($webinarlink) ) { ?>
<div class="sidebar">
<center><a class="change_screen tooltip-right" data-id-now="" data-live="false" data-toggle="tooltip" data-placement="" title="@lang('wbr.change_screens')"><i class="fa fa-chalkboard"></i></a></center>
<center><a class="share_btn tooltip-right" title="@lang('wbr.invite_to_webinar')" onclick="sharewebinarlink('<?php echo $webinarlink; ?>');" ><i class="fa fa-plus-square"></i></a></center>
<center><a class="share_screen tooltip-right" title="@lang('wbr.share_screen')" ><i class="fa fa-share-alt-square"></i></a></center>
<center><a class="list_files tooltip-right" title="@lang('wbr.files')"><i class="fa fa-paperclip"></i></a></center>
<center><a class="mute_video tooltip-right" title="@lang('wbr.mute_video')"><i class="fa fa-video"></i></a></center>
<center><a class="mute_audio tooltip-right" title="@lang('wbr.mute_audio')"><i class="fa fa-microphone"></i></a></center>
<center><a class="exit_btn tooltip-right" title="@lang('wbr.finish_webinar')" ><i class="fa fa-sign-out-alt"></i></a></center>
</div>
<div class="mail-input">
<i class="fa fa-times close-inp"></i>
<input type="email" maxlength="70" placeholder="Введите адрес слушателя">
<button id='invite-mail'>@lang('wbr.invite')</button>
</div>
<div class="wrap-table-files">
<i class="fa fa-times close_f_table"></i>
<div class="container-table-files">
<table class="table-files">
<thead>
<tr>
<td>#</td>
<td>@lang('wbr.the_name')</td>
<td>@lang('wbr.size')</td>
<td>@lang('wbr.actions')</td>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<button class="add_file btn_add_file">@lang('wbr.add_files')&nbsp;<i class="fa fa-plus"></i></button>
<span class="loading"><i class="fa fa-spinner fa-pulse fa-2x fa-fw"></i></span>
</div>
<?php } ?>
<div class="main-wrap-device">
<h3>@lang('wbr.choice_devices')</h3>
<button id="btn_default">@lang('wbr.by_default')</button>
<div class="wrap-devices">
<div class="wrap-head-dev head_videoinput">
<h5 class="head_dev ">@lang('wbr.cameras')</h5>
<span></span>
</div>
<div class="wrap-video kind_videoinput"></div>
<div class="wrap-head-dev head_audioinput">
<h5 class="head_dev ">@lang('wbr.mics')</h5>
<span></span>
</div>
<div class="wrap-audio kind_audioinput"></div>
<div class="wrap-head-dev head_audiooutput">
<h5 class="head_dev">@lang('wbr.dynamics')</h5>
<span></span>
</div>
<div class="wrap-output kind_audiooutput"></div>
</div>
</div>
<i class="show_chat fa fa fa-angle-left"></i>
<div class="container-chat">
<div class="close_chat"><i class="fa fa fa-angle-right"></i></div>
<div class="chat-screen ">
<div class="header-chat">
<a href="#" class="chat-nav active">@lang('wbr.chat')
<i class="fa fa-envelope"></i>
</a>
<a href="#" class="attenders-nav">@lang('wbr.listeners')
<i class="fa fa-users"></i>
</a>
</div>
<div class="wrap-messages"></div>
<div class="wrap-listeners"></div>
<div class="wrap-for-inputs">
<textarea id="message_inp" placeholder="Введите текс сообщения..."></textarea>
<button id="btn-send-message"><i class="fa fa-paper-plane"></i></button>
</div>
</div>
</div>
</div>
<?php } else { ?>
<?php
// List Speaker Webinars List if count of webinars more then 1
if( !empty($webinars)) { ?>
<input type="hidden" id="trigger">
<div class="tab-wrap">
<h3>@lang('wbr.the_list_of_webinars')</h3>
<table class="functional-table">
<thead>
<tr>
<td>@lang('wbr.the_theme')</td>
<td>@lang('wbr.resolution')</td>
<td>@lang('wbr.date')</td>
<td>@lang('wbr.link')</td>
<td>@lang('wbr.actions')</td>
</tr>
</thead>
<tbody>
<?php
foreach($webinars as $wbnr) {
$prms = json_decode($wbnr->params,true);
?>
<tr id="<?=$wbnr->id?>">
<td><a class="btn gotowebinar" data-wb-id="<?=$wbnr->id?>"><?php echo $wbnr->title;?></a></td>
<td><?php echo $prms['resolution'];?></td>
<td><?php echo gmdate("Y-m-d H:i:s", $wbnr->created);?></td>
<td class="link_web"><?php echo '<a href='."#".'>'.$wbnr->link .'</a>'?></td>
<td><?php echo '<a href="#" class="delete_webinar" data-web="'. $wbnr->id .'" ><i class="fa fa-trash-alt"></i></a>';?></td>
<?php //<td><?php echo $wbnr->files;</td> ?>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
<?php }else{ ?>
<div class="grid-web-items">
<div class="item">
<h3>Функционал</h3>
<table class="functional-table">
<tbody>
<tr><td>Качество видео</td><td>FullHD</td></tr>
<tr><td>Количество файлов</td><td>5</td></tr>
<tr><td>Ограничение по времени</td><td>60мин</td></tr>
<tr><td>Количество пользователей</td><td>10</td></tr>
<tr><td>История вебинаров</td><td>3</td></tr>
</tbody>
</table>
<button id="create-webinar">СОЗДАТЬ ВЕБИНАР</button>
</div>
</div>
<?php } ?>
<?php } ?>
<footer>
<a href="https://technounit.uz">TECHNOUNIT GROUP</a><br>
<span>2019</span>
</footer>
@endsection
@section('footer_js')
<script src="/assets/js/burger_menu/burger_menu.js?t=<?php echo time(); ?>"> </script>
<script src="/assets/js/datedropper.min.js?t=<?php echo time(); ?>"> </script>
<script src="/assets/js/libs/jquery.json-2.4.min.js?t=<?php echo time(); ?>"> </script>
<script src="/assets/js/libs/jquery.dataTables.min.js?t=<?php echo time(); ?>"> </script>
<script src="/assets/js/libs/vmjlib.js?t=<?php echo time(); ?>"> </script>
<script src="/assets/js/fileupload.js?t=<?php echo time(); ?>"> </script>
<script src="/assets/js/getScreenId.js?t=<?php echo time(); ?>"> </script>
<script src="/assets/js/createweb.js?t=<?php echo time(); ?>"> </script>
<script src="/assets/js/chat.js?t=<?php echo time(); ?>"> </script>
@endsection
\ No newline at end of file
<!-- resources/views/tests.blade.php -->
@section('subtitle',"Tests")
<head>
<script src="/assets/js/dash.all.min.js" type="text/javascript"></script>
<style>
video {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<div>
<video id="videoPlayer" controls></video>
</div>
<script>
(function(){
var url = "https://online.vmajlis.uz/dash/stream.mpd";
var player = dashjs.MediaPlayer().create();
player.setLowLatencyEnabled(true);
player.initialize(document.querySelector("#videoPlayer"), url, true);
})();
</script>
<div>
<!-- sdfgdfghdfhdf ghttps://dash.akamaized.net/envivio/EnvivioDash3/manifest.mpd-->
<!--video data-dashjs-player autoplay src="https://test.vmajlis.uz/dash/stream.mpd" controls></video-->
</div>
</body>
<!-- resources/views/tests.blade.php -->
@section('subtitle',"Tests")
<head>
<script src="/assets/ptz/pelcod_decoder.js" type="text/javascript"></script>
<script src="/assets/ptz/read_serial_port.js" type="text/javascript"></script>
<script src="/assets/ptz/read_socket.js" type="text/javascript"></script>
<style>
video {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<div>
<video id="videoPlayer" controls></video>
</div>
<script>
var PelcoD_Decoder = require("../pelcod_decoder.js").PelcoD_Decoder;
var log_string = '';
var pelcod_decoder = new PelcoD_Decoder();
pelcod_decoder.on('log',function(msg) {
console.log('=> ' + msg);
log_string = msg;
});
function AppendStringToByteArray(str,bytes)
{
for (var i = 0; i < str.length; ++i)
{
var charCode = str.charCodeAt(i);
if (charCode > 0xFF) bytes.push('.'); // char > 1 byte unicode.
else bytes.push(charCode);
}
}
</script>
<div>
<!-- sdfgdfghdfhdf ghttps://dash.akamaized.net/envivio/EnvivioDash3/manifest.mpd-->
<!--video data-dashjs-player autoplay src="https://test.vmajlis.uz/dash/stream.mpd" controls></video-->
</div>
</body>
<!-- resources/views/tests.blade.php -->
@section('subtitle',"Tests")
<script src="/assets/js/dash.all.min.js" type="text/javascript"></script>
<style>
video {
width: 100%;
height: 100%;
}
</style>
<body>
<div>
<video id="videoPlayer" controls></video>
</div>
<script>
(function(){
//var url = "https://online.vmajlis.uz/dash/stream.mpd";
var url = "https://online.vmajlis.uz/dash/stream.mpd";
var player = dashjs.MediaPlayer().create();
player.setLowLatencyEnabled(true);
player.initialize(document.querySelector("#videoPlayer"), url, true);
})();
</script>
<div>
<!--https://dash.akamaized.net/envivio/EnvivioDash3/manifest.mpd-->
<!--video data-dashjs-player autoplay src="https://test.vmajlis.uz/dash/stream.mpd" controls></video-->
</div>
</body>
<!-- resources/views/tasks.blade.php -->
@extends('layouts.app')
@section('subtitle',"Управление пользователями")
@section('head_css')
<link href="/assets/css/users.css" rel="stylesheet" type="text/css" />
@endsection
@section('footer_js')
<script src="/assets/js/users.js" type="text/javascript"></script>
@endsection
@section('content')
<!--button id="add_new_user">
<i class="fa fa-user-plus"></i>
</button-->
<h2 class="users_heading">Управление пользователями</h2>
<div class="m-demo__preview" style="text-align:center;">
<div class="m-btn-group m-btn-group--pill m-btn-group--pilldown btn-group m-btn-group btn-group-lg m-btn-group--air" role="group" aria-label="Large button group">
<button type="button" data-peertype="webrtc" class="userlisttabs btn btn-brandtech ">
WebRTC
</button>
<button type="button" data-peertype="sip" class="userlisttabs btn btn-brandtech">
SIP
</button>
<button type="button" id="add_new_user" class="btn btn-brandtech ">
<i class="fa fa-user-plus"></i>
</button>
</div>
</div>
<div class="wrap_table_users">
<table class="table_users_list" align="center" width="100%">
<thead>
<tr>
<td>#</td>
<td rowspan="2">Номер</td>
<td rowspan="2">Имя</td>
<!--td rowspan="2">Пароль</td-->
<td rowspan="2">Комната</td>
<td rowspan="2">Качество</td>
<td rowspan="2">Действия</td>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
@endsection
\ No newline at end of file
<!-- resources/views/tasks.blade.php -->
@extends('layouts.app')
<?php //@ sec t io n( ' subtitle',) ?>
@section('meta_description',"Webinar || Technounit-GROUP")
@section('head_css')
<title> vMajlis || Webinar "{{ $webinar->title }}" </title>
<link href="/assets/css/bootstrap/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="/assets/css/webinar.css" rel="stylesheet" type="text/css" />
@endsection
@section('footer_js')
<script src="/assets/js/webinar.js" type="text/javascript"></script>
<script src="/assets/js/bootstrap/bootstrap.min.js" type="text/javascript"></script>
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,700,800&amp;subset=cyrillic" rel="stylesheet">
@endsection
@section('content')
<body>
<header class="container-fluid m-0 p-0">
<div class="row row-wrap-header justify-content-between align-items-center">
<div class="col-xl-3 col-lg-3 col-md-5 col-sm-4 col-xs-12 d-flex justify-content-center align-items-center">
<div class="theme-name">Тема:&nbsp{{ $webinar->title }}</div>
</div>
<input id="number_room" type="hidden" value="{{ $webinar->room }}">
<input id="visitor_name" type="hidden" value="{{ $user['name'] }}">
<input id="vid" type="hidden" value="{{ $user['vid'] }}">
<input id ="msg_to" type="hidden">
<div class="header-info col-xl-4 col-lg-4 col-md-7 col-sm-8 col-xs-12 d-flex justify-content-center">
<div class="nowdate"></div><span class="vertical-line">|</span>
<div class="file-list"><i class="fa fa-file-alt"></i>Файлы</div><span class="vertical-line">|</span>
<?php $frst_char = iconv_substr($user['name'],0,1,"UTF-8"); ?>
<div class="profile-block"><span class="ava"><?=$frst_char;?></span>{{ $user['name'] }}</div><span class="vertical-line">|</span>
<div class="exit"><a href="/logout"><i class="fa fa-sign-out"></i>Выйти</a></div>
</div>
</div>
</header>
<div class="wrap-video-chat">
<div class="row-wrap">
<div class="wrap-table-files"> <i class="fa fa-times close_f_table"></i>
<div class="container-table-files">
<table class="table-files"> <thead> <tr> <td>#</td> <td>Название</td> <td>Размер</td> <td>Действия</td> </tr> </thead> <tbody>
</tbody>
</table>
</div>
</div>
<div id="for_full_screen" class="wrap-video">
<div class="logo_webinar"><img src="img/newLogo3.png" width="90" height="30"></div>
<div class="time">
</div>
<div class="scroll_string">
<marquee behavior="scroll" direction="left">Тема вебинара:{{ $webinar->title }}.
Добро пожаловать в мой вебинар
Количество файлов:5
Спикер:Emilio
Вебинар длится:1 час 2 минуты
<i class="fa fa-user"></i></marquee>
</div>
<video id="web_screen" loop muted autoplay="autoplay" style="object-fit:contain;"></video>
<div class="control-buttons">
<button class="play-video"><i class="fa fa-pause"></i></button>
<button class="full-screen"><i class="fa fa-arrows-alt"></i></button>
</div>
</div>
<div class="show-chat"><i class="fa fa-angle-left"></i></div>
<div class="main-wrap-chat">
<div class="container-chat">
<div class="close-chat"><i class="fa fa-angle-right"></i></div>
<div class="wrap-navs">
<a class="chat-nav active">Чат <i class="fa fa-envelope"></i></a>
<a class="attenders-nav">Слушатели <i class="fa fa-users"></i></a>
</div>
<div class="wrap-messages"></div>
<div class="wrap-listeners"></div>
<div class="wrap-for-inputs">
<textarea placeholder="Введите сообщение"maxlength="300"></textarea>
<button id="send-msg"><i class="fa fa-paper-plane"></i></button>
</div>
</div>
</div>
</div>
</div>
<?php
echo'
<script>
var script=document.createElement("script");
var isfull=false;
script.onload=function(){
var videotag=document.getElementById("web_screen");
var controltag=document.createElement("div");
controltag.setAttribute("id","vMajlisLiveContiner");
controltag.style.cssText="position:relative; width:100%; height:100%; bottom:0;right:0;z-index:999999999;cursor:pointer;text-align:center;";
var logotag=document.createElement("img");
logotag.src="https://online.vmajlis.uz/assets/images/vmajlis1.png";
//logotag.style.cssText="position:absolute; width:115px; height:40px; position:absolute; bottom:5px; right:5px;z-index:99999999999;";
//logotag.addEventListener("click", function() { console.log("Logo Clicked...");
//window.open("https://vmajlis.uz/","_blank"); }); controltag.appendChild(logotag);
//fsntag.appendChild(fsnimg);document.body.appendChild(controltag);
controltag.addEventListener("click", function() { console.log("VideoContiner clicked....");
document.getElementById("vMajlisLivePlayer").play(); });
//videotag.addEventListener("playing", function() { console.log("Stream Playing....."); controltag.appendChild(fsntag); });
videotag.setAttribute("id","vMajlisLivePlayer");videotag.setAttribute("data-dashjs-player",true);
//videotag.setAttribute("autoplay",true);
videotag.setAttribute("poster","https://online.vmajlis.uz/assets/images/vmajlis_background.png");//videotag.setAttribute("controls",false);
//videotag.setAttribute("style","position:absolute; top:0; left:0; width: 100%; height: 100%; z-index:888888");/*document.body.appendChild(videotag);*/
//controltag.appendChild(videotag);
var url="https://online.vmajlis.uz/dash/vmjwebinar_'.$webinar->room.'.mpd";
var player=dashjs.MediaPlayer().create();player.setLowLatencyEnabled(true);
player.initialize(document.querySelector("#vMajlisLivePlayer"),url,true);
};
script.src="https://online.vmajlis.uz/assets/js/dash.all.min.js";
document.head.appendChild(script);
var hrtop = document.getElementsByTagName("h2"); if( typeof hrtop[0] !== "undefined" ) {hrtop[0].style.cssText="position: absolute; z-index: 9999999999999; width: 95%; background: #fff; margin: 0;";}
function full_screen(){
var e=document.getElementById("vMajlisLiveContiner");
e&&(e.requestFullscreen?e.requestFullscreen():e.msRequestFullscreen?e.msRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen&&e.webkitRequestFullscreen(),isfull=!0)
}
function exit_full_screen(){
document.webkitFullscreenEnabled?document.webkitExitFullscreen():document.mozFullScreenEnabled&&document.mozCancelFullScreen(),isfull=!1
}
</script>
'
?>
</body>
</html>
@endsection
\ No newline at end of file
<!-- resources/views/tasks.blade.php -->
@extends('layouts.app')
<?php //@ sec t io n( ' subtitle',) ?>
@section('meta_description',"Webinar || Technounit-GROUP")
@section('head_css')
<title> vMajlis || Webinar </title>
<link href="/assets/css/bootstrap/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="/assets/css/webinarauth.css" rel="stylesheet" type="text/css" />
@endsection
@section('footer_js')
<script src="/assets/js/bootstrap/bootstrap.min.js" type="text/javascript"></script>
<script src="/assets/js/webinarauth.js" type="text/javascript"></script>
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,700,800&amp;subset=cyrillic" rel="stylesheet">
@endsection
@section('content')
<body>
<div class="container-fluid m-0 p-0">
<div class="client-side-logo">
<h1>TechnoWEB</h1>
<h3>Проведение вебинаров</h3>
</div>
<form method="post">
<input type="hidden" name="_token" id="csrf-token" value="{{ Session::token() }}" />
<input type="hidden" name="func" value="authwebinarclient">
<input type="text" id="client-name" required name="webinarname" placeholder="Ваше имя...">
<button type="submit" class="enter-to-webinar">Войти</button>
</form>
</div>
<footer>
<a href="https://technounit.uz">TECHNOUNIT GROUP</a><br>
<span>2018</span>
</footer>
</body>
</html>
@endsection
\ No newline at end of file
<!-- resources/views/tasks.blade.php -->
@extends('layouts.app')
@section('subtitle',"Авторизация")
@section('head_css')
<link href="/assets/css/welcome.css?t=<?php echo time(); ?>" rel="stylesheet" type="text/css" />
<link href="/assets/css/langs.css?t=<?php echo time(); ?>" rel="stylesheet" type="text/css" />
@endsection
@section('footer_js')
<script src="/assets/js/welcome.js?t=<?php echo time(); ?>" type="text/javascript"></script>
<script src="/assets/js/login.js?t=<?php echo time(); ?>" type="text/javascript"></script>
@endsection
@section('footer_js_text')
'/assets/js/welcome.js',
'/assets/js/login.js',
@endsection
@section('content')
<div class="_container">
<div class="cog">
<i class=" far fa-user-shield"></i>
</div>
<a href="https://vmajlis.uz?mode=test" target="_blank" class="link-to-site">
<i title="Перейти на сайт" class=" fa fa-globe"></i>
<a>
<div class="logo">
<h1>vMajlis<sub>2.0</sub></h1>
<h3>@lang('lang.videoselector')</h3>
</div>
<div class="wrap_btn_lang_enter">
<button id="enter">@lang('lang.enter') <?php if( (!empty($vmj_uid)) && (!empty($vmj_mdp)) ) { echo "(" .$vmj_uid."__".$vmj_mdp.")"; } ?></button>
<center class="langbox"><a href="@lang('lang.f_lang_link')" class="l_lang">@lang('lang.f_lang')</a> | <a href="@lang('lang.s_lang_link')" class="r_lang">@lang('lang.s_lang')</a> </center>
</div>
</div>
<footer>
<a target="_blank" href="https://technounit.uz">TECHNOUNIT GROUP </a><br>
<span>2019</span>
</footer>
@endsection
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment