parent
b4ce57cb4d
commit
e435f5220d
@ -0,0 +1,176 @@ |
||||
<?php |
||||
|
||||
/* For licensing terms, see /license.txt */ |
||||
|
||||
namespace Chamilo\PluginBundle\Zoom; |
||||
|
||||
use Chamilo\CoreBundle\Entity\Course; |
||||
use Chamilo\CoreBundle\Entity\CourseRelUser; |
||||
use Chamilo\CoreBundle\Entity\Session; |
||||
use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser; |
||||
use Chamilo\CourseBundle\Entity\CGroupInfo; |
||||
use Chamilo\PluginBundle\Zoom\API\MeetingInfoGet; |
||||
use Chamilo\PluginBundle\Zoom\API\MeetingListItem; |
||||
use Chamilo\PluginBundle\Zoom\API\MeetingSettings; |
||||
use Chamilo\UserBundle\Entity\User; |
||||
use Database; |
||||
use DateInterval; |
||||
use DateTime; |
||||
use DateTimeZone; |
||||
use Doctrine\Common\Collections\ArrayCollection; |
||||
use Doctrine\ORM\Mapping as ORM; |
||||
use Exception; |
||||
|
||||
/** |
||||
* Class Meeting. |
||||
* |
||||
* @ORM\Entity() |
||||
* @ORM\Table(name="plugin_zoom_meeting_activity") |
||||
* @ORM\HasLifecycleCallbacks |
||||
*/ |
||||
class MeetingActivity |
||||
{ |
||||
/** |
||||
* @var int |
||||
* @ORM\Column(type="integer") |
||||
* @ORM\Id |
||||
* @ORM\GeneratedValue() |
||||
*/ |
||||
protected $id; |
||||
|
||||
/** |
||||
* @var Meeting |
||||
* @ORM\ManyToOne(targetEntity="Meeting", inversedBy="activities") |
||||
* @ORM\JoinColumn(name="meeting_id") |
||||
*/ |
||||
protected $meeting; |
||||
|
||||
/** |
||||
* @var string |
||||
* @ORM\Column(type="string", name="name", length=255, nullable=false) |
||||
*/ |
||||
protected $name; |
||||
|
||||
/** |
||||
* @var string |
||||
* @ORM\Column(type="string", name="type", length=255, nullable=false) |
||||
*/ |
||||
protected $type; |
||||
|
||||
/** |
||||
* @var string |
||||
* @ORM\Column(type="text", name="event", nullable=true) |
||||
*/ |
||||
protected $event; |
||||
|
||||
public function __construct() |
||||
{ |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function __toString() |
||||
{ |
||||
return sprintf('Activity %d', $this->id); |
||||
} |
||||
|
||||
/** |
||||
* @return int |
||||
*/ |
||||
public function getId() |
||||
{ |
||||
return $this->id; |
||||
} |
||||
|
||||
/** |
||||
* @return Meeting |
||||
*/ |
||||
public function getMeeting() |
||||
{ |
||||
return $this->meeting; |
||||
} |
||||
|
||||
/** |
||||
* @param Meeting $meeting |
||||
* |
||||
* @return MeetingActivity |
||||
*/ |
||||
public function setMeeting($meeting) |
||||
{ |
||||
$this->meeting = $meeting; |
||||
|
||||
return $this; |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function getName() |
||||
{ |
||||
return $this->name; |
||||
} |
||||
|
||||
/** |
||||
* @param string $name |
||||
* |
||||
* @return MeetingActivity |
||||
*/ |
||||
public function setName($name) |
||||
{ |
||||
$this->name = $name; |
||||
|
||||
return $this; |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function getType() |
||||
{ |
||||
return $this->type; |
||||
} |
||||
|
||||
/** |
||||
* @param string $type |
||||
* |
||||
* @return MeetingActivity |
||||
*/ |
||||
public function setType($type) |
||||
{ |
||||
$this->type = $type; |
||||
|
||||
return $this; |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function getEvent() |
||||
{ |
||||
return $this->event; |
||||
} |
||||
|
||||
public function getEventDecoded() |
||||
{ |
||||
if (!empty($this->event)) { |
||||
return json_decode($this->event); |
||||
} |
||||
|
||||
return ''; |
||||
} |
||||
|
||||
/** |
||||
* @param string $event |
||||
* |
||||
* @return MeetingActivity |
||||
*/ |
||||
public function setEvent($event) |
||||
{ |
||||
$this->event = $event; |
||||
|
||||
return $this; |
||||
} |
||||
|
||||
|
||||
} |
||||
@ -0,0 +1,30 @@ |
||||
<?php |
||||
|
||||
/* For license terms, see /license.txt */ |
||||
|
||||
use Chamilo\PluginBundle\Zoom\Meeting; |
||||
|
||||
$course_plugin = 'zoom'; // needed in order to load the plugin lang variables |
||||
|
||||
require_once __DIR__.'/config.php'; |
||||
|
||||
$plugin = ZoomPlugin::create(); |
||||
$tool_name = $plugin->get_lang('ZoomVideoConferences'); |
||||
$tpl = new Template($plugin->get_lang('ZoomVideoConferences')); |
||||
|
||||
$meetingId = isset($_REQUEST['meetingId']) ? (int) $_REQUEST['meetingId'] : 0; |
||||
if (empty($meetingId)) { |
||||
api_not_allowed(true); |
||||
} |
||||
|
||||
$content = ''; |
||||
/** @var Meeting $meeting */ |
||||
$meeting = $plugin->getMeetingRepository()->findOneBy(['meetingId' => $meetingId]); |
||||
if (null === $meeting) { |
||||
api_not_allowed(true); |
||||
} |
||||
|
||||
$tpl->assign('actions', $plugin->getToolbar()); |
||||
$tpl->assign('meeting', $meeting); |
||||
$tpl->assign('content', $tpl->fetch('zoom/view/activity.tpl')); |
||||
$tpl->display_one_col_template(); |
||||
@ -1,30 +0,0 @@ |
||||
<?php |
||||
|
||||
/* For license terms, see /license.txt */ |
||||
|
||||
$course_plugin = 'zoom'; // needed in order to load the plugin lang variables |
||||
$cidReset = true; |
||||
|
||||
require_once __DIR__.'/config.php'; |
||||
|
||||
api_protect_admin_script(); |
||||
|
||||
$plugin = ZoomPlugin::create(); |
||||
$tool_name = $plugin->get_lang('ZoomVideoConferences'); |
||||
$this_section = SECTION_PLATFORM_ADMIN; |
||||
|
||||
$form = $plugin->getAdminSearchForm(); |
||||
$startDate = new DateTime($form->getSubmitValue('start')); |
||||
$endDate = new DateTime($form->getSubmitValue('end')); |
||||
|
||||
$tpl = new Template($tool_name); |
||||
|
||||
$tpl->assign('meetings', $plugin->getMeetingRepository()->periodMeetings($startDate, $endDate)); |
||||
if ('true' === $plugin->get('enableCloudRecording')) { |
||||
$tpl->assign('recordings', $plugin->getRecordingRepository()->getPeriodRecordings($startDate, $endDate)); |
||||
} |
||||
$tpl->assign('actions', $plugin->getToolbar()); |
||||
$tpl->assign('search_form', $form->returnForm()); |
||||
$tpl->assign('type', 'admin'); |
||||
$tpl->assign('content', $tpl->fetch('zoom/view/list.tpl')); |
||||
$tpl->display_one_col_template(); |
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,28 @@ |
||||
<h4> |
||||
{{ meeting.typeName }} {{ meeting.meetingId }} |
||||
</h4> |
||||
|
||||
<table class="table"> |
||||
<thead> |
||||
<tr> |
||||
<th>{{ 'Name'|get_plugin_lang('ZoomPlugin') }}</th> |
||||
<th>{{ 'Type'|get_lang }}</th> |
||||
<th>{{ 'Event'|get_lang }} </th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
{% for activity in meeting.activities %} |
||||
<tr> |
||||
<td> |
||||
{{ activity.name }} |
||||
</td> |
||||
<td> |
||||
{{ activity.type }} |
||||
</td> |
||||
<td> |
||||
{{ activity.eventDecoded }} |
||||
</td> |
||||
</tr> |
||||
{% endfor %} |
||||
</tbody> |
||||
</table> |
||||
@ -1,62 +0,0 @@ |
||||
{% import "default/document/recycle.tpl" as macro %} |
||||
|
||||
{{ schedule_form }} |
||||
{{ search_form }} |
||||
|
||||
{% if meetings %} |
||||
<h4>{{ 'MeetingsFound'|get_plugin_lang('ZoomPlugin') }}: </h4> |
||||
<table class="table table-hover table-striped"> |
||||
<thead> |
||||
<tr> |
||||
<th>{{ 'Topic'|get_plugin_lang('ZoomPlugin') }}</th> |
||||
<th>{{ 'StartTime'|get_lang }}</th> |
||||
<th>{{ 'ForEveryone'|get_plugin_lang('ZoomPlugin') }}</th> |
||||
{# <th>{{ 'Course'|get_lang }}</th>#} |
||||
{# <th>{{ 'Session'|get_lang }}</th>#} |
||||
{% if allow_recording %} |
||||
<th>{{ 'Recordings'|get_plugin_lang('ZoomPlugin') }}</th> |
||||
{% endif %} |
||||
<th></th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
{% for meeting in meetings %} |
||||
<tr> |
||||
<td>{{ meeting.meetingInfoGet.topic }}</td> |
||||
<td>{{ meeting.formattedStartTime }}</td> |
||||
<td>{{ meeting.user ? 'No' : 'Yes' }}</td> |
||||
{# <td>{{ meeting.course ? meeting.course : '-' }}</td>#} |
||||
{# <td>{{ meeting.session ? meeting.session : '-' }}</td>#} |
||||
<td> |
||||
{% if allow_recording and meeting.recordings.count > 0 %} |
||||
{% for recording in meeting.recordings %} |
||||
<dl> |
||||
<dt> |
||||
{{ recording.formattedStartTime }} ({{ recording.formattedDuration }}) |
||||
</dt> |
||||
<dd> |
||||
<ul> |
||||
{% for file in recording.recordingMeeting.recording_files %} |
||||
<li> |
||||
<a href="{{ file.play_url }}" target="_blank"> |
||||
{{ file.recording_type }}.{{ file.file_type }} |
||||
({{ macro.bytesToSize(file.file_size) }}) |
||||
</a> |
||||
</li> |
||||
{% endfor %} |
||||
</ul> |
||||
</dd> |
||||
</dl> |
||||
{% endfor %} |
||||
{% endif %} |
||||
</td> |
||||
<td> |
||||
<a class="btn btn-primary" href="meeting.php?meetingId={{ meeting.meetingId }}"> |
||||
{{ 'Details'|get_lang }} |
||||
</a> |
||||
</td> |
||||
</tr> |
||||
{% endfor %} |
||||
</tbody> |
||||
</table> |
||||
{% endif %} |
||||
@ -0,0 +1,62 @@ |
||||
{% import "default/document/recycle.tpl" as macro %} |
||||
|
||||
{{ schedule_form }} |
||||
{{ search_form }} |
||||
|
||||
{% if meetings %} |
||||
<h4>{{ 'MeetingsFound'|get_plugin_lang('ZoomPlugin') }}: </h4> |
||||
<table class="table table-hover table-striped"> |
||||
<thead> |
||||
<tr> |
||||
<th>{{ 'Topic'|get_plugin_lang('ZoomPlugin') }}</th> |
||||
<th>{{ 'StartTime'|get_lang }}</th> |
||||
<th>{{ 'ForEveryone'|get_plugin_lang('ZoomPlugin') }}</th> |
||||
{# <th>{{ 'Course'|get_lang }}</th>#} |
||||
{# <th>{{ 'Session'|get_lang }}</th>#} |
||||
{% if allow_recording %} |
||||
<th>{{ 'Recordings'|get_plugin_lang('ZoomPlugin') }}</th> |
||||
{% endif %} |
||||
<th></th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
{% for meeting in meetings %} |
||||
<tr> |
||||
<td>{{ meeting.meetingInfoGet.topic }}</td> |
||||
<td>{{ meeting.formattedStartTime }}</td> |
||||
<td>{{ meeting.user ? 'No' : 'Yes' }}</td> |
||||
{# <td>{{ meeting.course ? meeting.course : '-' }}</td>#} |
||||
{# <td>{{ meeting.session ? meeting.session : '-' }}</td>#} |
||||
<td> |
||||
{% if allow_recording and meeting.recordings.count > 0 %} |
||||
{% for recording in meeting.recordings %} |
||||
<dl> |
||||
<dt> |
||||
{{ recording.formattedStartTime }} ({{ recording.formattedDuration }}) |
||||
</dt> |
||||
<dd> |
||||
<ul> |
||||
{% for file in recording.recordingMeeting.recording_files %} |
||||
<li> |
||||
<a href="{{ file.play_url }}" target="_blank"> |
||||
{{ file.recording_type }}.{{ file.file_type }} |
||||
({{ macro.bytesToSize(file.file_size) }}) |
||||
</a> |
||||
</li> |
||||
{% endfor %} |
||||
</ul> |
||||
</dd> |
||||
</dl> |
||||
{% endfor %} |
||||
{% endif %} |
||||
</td> |
||||
<td> |
||||
<a class="btn btn-primary" href="meeting.php?meetingId={{ meeting.meetingId }}"> |
||||
{{ 'Details'|get_lang }} |
||||
</a> |
||||
</td> |
||||
</tr> |
||||
{% endfor %} |
||||
</tbody> |
||||
</table> |
||||
{% endif %} |
||||
Loading…
Reference in new issue