upgrade
This commit is contained in:
57
plugin/zoom/view/activity.tpl
Normal file
57
plugin/zoom/view/activity.tpl
Normal file
@@ -0,0 +1,57 @@
|
||||
<h4>
|
||||
{{ meeting.typeName }} {{ meeting.meetingId }}
|
||||
</h4>
|
||||
|
||||
<a class="btn btn-primary" href="meeting.php?meetingId={{ meeting.meetingId }}&{{ url_extra }}">
|
||||
{{ 'Edit'|get_lang }}
|
||||
</a>
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ 'Type'|get_lang }}</th>
|
||||
<th>{{ 'Action'|get_plugin_lang('ZoomPlugin') }}</th>
|
||||
{# <th>{{ 'User'|get_lang }}</th>#}
|
||||
<th>{{ 'Date'|get_lang }}</th>
|
||||
<th>{{ 'Details'|get_lang }} </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for activity in meeting.activities %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ activity.type }}
|
||||
</td>
|
||||
<td>
|
||||
{{ activity.name }}
|
||||
</td>
|
||||
<td>
|
||||
{{ activity.createdAt | api_convert_and_format_date(3)}}
|
||||
</td>
|
||||
{# <td>#}
|
||||
{# {% if _u.is_admin %}#}
|
||||
{# <a href="{{ _p.web_main }}admin/user_information.php?user_id={{ activity.user.id }}" >#}
|
||||
{# {{ activity.user.firstname }} {{ activity.user.lastname }} ({{ activity.user.username }})#}
|
||||
{# </a>#}
|
||||
{# {% else %}#}
|
||||
{# {{ activity.user.firstname }} {{ activity.user.lastname }} ({{ activity.user.username }})#}
|
||||
{# {% endif %}#}
|
||||
{# </td>#}
|
||||
<td>
|
||||
{% if activity.eventDecoded.registrant %}
|
||||
{{ 'User' | get_lang }} :
|
||||
{{ activity.eventDecoded.registrant.first_name }} -
|
||||
{{ activity.eventDecoded.registrant.last_name }} -
|
||||
{{ activity.eventDecoded.registrant.email }} -
|
||||
{{ activity.eventDecoded.registrant.status }}
|
||||
{% endif %}
|
||||
|
||||
{% if activity.eventDecoded.participant %}
|
||||
{{ 'User' | get_lang }} :
|
||||
{{ activity.eventDecoded.participant.user_name }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
324
plugin/zoom/view/calendar.tpl
Normal file
324
plugin/zoom/view/calendar.tpl
Normal file
@@ -0,0 +1,324 @@
|
||||
<div id="loading" style="margin-left:150px;position:absolute;display:none">
|
||||
{{ "Loading"|get_lang }} …
|
||||
</div>
|
||||
|
||||
<div id="calendar"></div>
|
||||
|
||||
<div class="modal fade" tabindex="-1" role="dialog" id="simple-dialog-form">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="{{ 'Close'|get_lang }}">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title">{{ 'Details'|get_lang }}</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="form-horizontal">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">{{ 'Type' }}</label>
|
||||
<div class="col-sm-8">
|
||||
<p id="simple_type"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">{{ "Date"|get_lang }}</label>
|
||||
<div class="col-sm-8">
|
||||
<p>
|
||||
<span id="simple_start_date"></span>
|
||||
<span id="simple_end_date"></span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">{{ "Title"|get_lang }}</label>
|
||||
<div class="col-sm-8">
|
||||
<p id="simple_title"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">{{ "Description"|get_lang }}</label>
|
||||
<div class="col-sm-8">
|
||||
<p id="simple_content"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label">{{ "AccountEmail"|get_plugin_lang('ZoomPlugin') }}</label>
|
||||
<div class="col-sm-8">
|
||||
<p id="simple_account"></p>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{ 'Close'|get_lang }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
var cookieData = Cookies.getJSON('agenda_cookies');
|
||||
var defaultView = (cookieData && cookieData.view) || '{{ default_view }}';
|
||||
var defaultStartDate = (cookieData && cookieData.start) || moment.now();
|
||||
|
||||
var CustomListViewGrid = ListViewGrid.extend({
|
||||
fgSegHtml: function (seg) {
|
||||
var view = this.view;
|
||||
var classes = ['fc-list-item'].concat(this.getSegCustomClasses(seg));
|
||||
var bgColor = this.getSegBackgroundColor(seg);
|
||||
var event = seg.event;
|
||||
var url = event.url;
|
||||
var timeHtml;
|
||||
|
||||
if (view.isMultiDayEvent(event)) { // if the event appears to span more than one day
|
||||
if (seg.isStart || seg.isEnd) { // outer segment that probably lasts part of the day
|
||||
timeHtml = htmlEscape(this.getEventTimeText(seg));
|
||||
} else { // inner segment that lasts the whole day
|
||||
timeHtml = view.getAllDayHtml();
|
||||
}
|
||||
} else {
|
||||
// Display the normal time text for the *event's* times
|
||||
timeHtml = htmlEscape(this.getEventTimeText(event));
|
||||
}
|
||||
|
||||
if (url) {
|
||||
classes.push('fc-has-url');
|
||||
}
|
||||
|
||||
return '<tr class="' + classes.join(' ') + '">' +
|
||||
(this.displayEventTime
|
||||
? '<td class="fc-list-item-time ' + view.widgetContentClass + '">' + (timeHtml || '') + '</td>'
|
||||
: ''
|
||||
) +
|
||||
'<td class="fc-list-item-marker ' + view.widgetContentClass + '">' +
|
||||
'<span class="fc-event-dot"' +
|
||||
(bgColor ? ' style="background-color:' + bgColor + '"' : '') +
|
||||
'></span>' +
|
||||
'</td>' +
|
||||
'<td class="fc-list-item-title ' + view.widgetContentClass + '">' +
|
||||
'<a' + (url ? ' href="' + htmlEscape(url) + '"' : '') + '>' +
|
||||
htmlEscape(seg.event.title || '') + (seg.event.description || '') +
|
||||
'</a>' +
|
||||
'</td>' +
|
||||
'</tr>';
|
||||
},
|
||||
|
||||
// render the event segments in the view
|
||||
renderSegList: function (allSegs) {
|
||||
var segsByDay = this.groupSegsByDay(allSegs); // sparse array
|
||||
var dayIndex;
|
||||
var daySegs;
|
||||
var i;
|
||||
var tableEl = $('<table class="fc-list-table"><tbody/></table>');
|
||||
var tbodyEl = tableEl.find('tbody');
|
||||
var eventList = [];
|
||||
for (dayIndex = 0; dayIndex < segsByDay.length; dayIndex++) {
|
||||
daySegs = segsByDay[dayIndex];
|
||||
if (daySegs) { // sparse array, so might be undefined
|
||||
this.sortEventSegs(daySegs);
|
||||
for (i = 0; i < daySegs.length; i++) {
|
||||
var event = daySegs[i].event;
|
||||
if (jQuery.inArray(event.id, eventList) !== -1) {
|
||||
continue;
|
||||
}
|
||||
eventList.push(event.id);
|
||||
// append a day header
|
||||
tbodyEl.append(this.dayHeaderHtml(
|
||||
this.view.start.clone().add(dayIndex, 'days'),
|
||||
event
|
||||
));
|
||||
|
||||
tbodyEl.append(daySegs[i].el); // append event row
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.el.empty().append(tableEl);
|
||||
},
|
||||
// generates the HTML for the day headers that live amongst the event rows
|
||||
dayHeaderHtml: function (dayDate, event) {
|
||||
var view = this.view;
|
||||
var mainFormat = 'LL';
|
||||
var altFormat = 'dddd';
|
||||
var checkIfSame = true;
|
||||
if (event.end) {
|
||||
checkIfSame = event.end.format(mainFormat) === dayDate.format(mainFormat);
|
||||
}
|
||||
|
||||
return '<tr class="fc-list-heading" data-date="' + dayDate.format('YYYY-MM-DD') + '">' +
|
||||
'<td class="' + view.widgetHeaderClass + '" colspan="3">' +
|
||||
(
|
||||
mainFormat
|
||||
? view.buildGotoAnchorHtml(
|
||||
dayDate,
|
||||
{ 'class': 'fc-list-heading-main' },
|
||||
htmlEscape(dayDate.format(mainFormat)) // inner HTML
|
||||
)
|
||||
: ''
|
||||
) +
|
||||
(
|
||||
(checkIfSame === false && mainFormat)
|
||||
? view.buildGotoAnchorHtml(
|
||||
dayDate,
|
||||
{ 'class': 'fc-list-heading-main' },
|
||||
' - ' + htmlEscape(event.end.format(mainFormat)) // inner HTML
|
||||
)
|
||||
: ''
|
||||
) +
|
||||
(
|
||||
altFormat
|
||||
? view.buildGotoAnchorHtml(
|
||||
dayDate,
|
||||
{ 'class': 'fc-list-heading-alt' },
|
||||
htmlEscape(dayDate.format(altFormat)) // inner HTML
|
||||
)
|
||||
: ''
|
||||
) +
|
||||
'</td>' +
|
||||
'</tr>'
|
||||
}
|
||||
})
|
||||
|
||||
var FC = $.fullCalendar; // a reference to FullCalendar's root namespace
|
||||
var View = ListView; // the class that all views must inherit from
|
||||
var CustomView; // our subclass
|
||||
|
||||
CustomView = View.extend({ // make a subclass of View
|
||||
initialize: function () {
|
||||
this.grid = new CustomListViewGrid(this);
|
||||
this.scroller = new Scroller({
|
||||
overflowX: 'hidden',
|
||||
overflowY: 'auto'
|
||||
});
|
||||
}
|
||||
})
|
||||
|
||||
FC.views.CustomView = CustomView; // register our class with the view system
|
||||
var height = '';
|
||||
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
|
||||
height = 'auto';
|
||||
}
|
||||
|
||||
$('#calendar').fullCalendar({
|
||||
height: height,
|
||||
header: {
|
||||
left: 'today,prev,next',
|
||||
center: 'title',
|
||||
right: 'month,agendaWeek,agendaDay,CustomView'
|
||||
},
|
||||
views: {
|
||||
CustomView: { // name of view
|
||||
type: 'list',
|
||||
buttonText: '{{ 'AgendaList'|get_lang | escape('js') }}',
|
||||
duration: { month: 1 },
|
||||
defaults: {
|
||||
'listDayAltFormat': 'dddd' // day-of-week is nice-to-have
|
||||
}
|
||||
},
|
||||
month: {
|
||||
'displayEventEnd': true
|
||||
}
|
||||
},
|
||||
locale: '{{ region_value }}',
|
||||
defaultView: defaultView,
|
||||
defaultDate: defaultStartDate,
|
||||
firstHour: 8,
|
||||
firstDay: 1,
|
||||
{% if fullcalendar_settings %}
|
||||
{{ fullcalendar_settings }}
|
||||
{% endif %}
|
||||
selectable: false,
|
||||
selectHelper: true,
|
||||
viewRender: function (view, element) {
|
||||
var data = {
|
||||
'view': view.name,
|
||||
'start': view.intervalStart.format('YYYY-MM-DD')
|
||||
};
|
||||
Cookies.set('agenda_cookies', data, 1); // Expires 1 day
|
||||
},
|
||||
eventRender: function (event, element) {
|
||||
{% if on_hover_info.description %}
|
||||
if (event.description) {
|
||||
element.qtip({
|
||||
content: event.description,
|
||||
position: {
|
||||
at: 'top center',
|
||||
my: 'bottom center',
|
||||
viewport: $(window)
|
||||
}
|
||||
});
|
||||
}
|
||||
{% endif %}
|
||||
},
|
||||
eventClick: function (calEvent, jsEvent, view) {
|
||||
var start = calEvent.start;
|
||||
var end = calEvent.end;
|
||||
var diffDays = moment(end).diff(start, 'days');
|
||||
var endDateMinusOne = '';
|
||||
|
||||
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
|
||||
// If event is not editable then just return the qtip
|
||||
{% if on_hover_info.description %}
|
||||
if (calEvent.description) {
|
||||
$(this).qtip({
|
||||
overwrite: false,
|
||||
show: { ready: true },
|
||||
content: calEvent.description,
|
||||
position: {
|
||||
at: 'top center',
|
||||
my: 'bottom center',
|
||||
viewport: $(window)
|
||||
}
|
||||
});
|
||||
}
|
||||
{% endif %}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var clone = end.clone();
|
||||
endDateMinusOne = clone.subtract(1, 'days').format('{{ js_format_date }}');
|
||||
var startDateToString = start.format("{{ js_format_date }}");
|
||||
|
||||
// Simple form
|
||||
$('#simple_start_date').text(startDateToString);
|
||||
if (diffDays > 1) {
|
||||
$('#simple_end_date').text(' - ' + endDateMinusOne);
|
||||
} else if (diffDays == 0) {
|
||||
var start_date_value = start.format('ll');
|
||||
var startTime = start.format('LT');
|
||||
var endTime = end.format('LT');
|
||||
$('#simple_start_date').html('');
|
||||
$('#simple_end_date').html(start_date_value + ' (' + startTime + ' - ' + endTime + ') ');
|
||||
} else {
|
||||
$('#simple_end_date').text('');
|
||||
}
|
||||
|
||||
$('#simple_type').text(calEvent.typeName);
|
||||
$('#simple_title').text(calEvent.title);
|
||||
$('#simple_content').empty().text(calEvent.description);
|
||||
|
||||
if (calEvent.accountEmail) {
|
||||
$('#simple_account').text(calEvent.accountEmail).parents('.form-group').show();
|
||||
} else {
|
||||
$('#simple_account').empty().parents('.form-group').hide();
|
||||
}
|
||||
|
||||
$('#simple-dialog-form').modal('show');
|
||||
},
|
||||
editable: false,
|
||||
events: "{{ web_agenda_ajax_url }}&a=get_events",
|
||||
axisFormat: 'H(:mm)', // pm-am format -> h(:mm)a
|
||||
timeFormat: 'H:mm', // pm-am format -> h:mm
|
||||
loading: function (bool) {
|
||||
if (bool) {
|
||||
$('#loading').show();
|
||||
} else {
|
||||
$('#loading').hide();
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
</script>
|
||||
196
plugin/zoom/view/join.tpl
Normal file
196
plugin/zoom/view/join.tpl
Normal file
@@ -0,0 +1,196 @@
|
||||
{% include 'zoom/view/meeting_details.tpl' %}
|
||||
|
||||
{% if is_conference_manager and meeting.isSignAttendance %}
|
||||
<p class="text-info">
|
||||
<span class="fa fa-list-alt"></span>
|
||||
{{ 'ConferenceWithAttendance'|get_plugin_lang('ZoomPlugin') }}
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
<hr>
|
||||
|
||||
{% set btn_start = '' %}
|
||||
|
||||
{% if start_url %}
|
||||
{% set btn_start %}
|
||||
<a href="{{ start_url }}" class="btn btn-primary">
|
||||
{{ 'EnterMeeting'|get_plugin_lang('ZoomPlugin') }}
|
||||
</a>
|
||||
{% endset %}
|
||||
{% endif %}
|
||||
|
||||
{% if not is_conference_manager %}
|
||||
{% if meeting.isSignAttendance %}
|
||||
<div class="row">
|
||||
<div class="col-md-offset-3 col-md-6">
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">
|
||||
<span class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></span>
|
||||
{{ 'Attendance'|get_lang }}
|
||||
</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p>{{ meeting.reasonToSignAttendance }}</p>
|
||||
|
||||
{% if signature %}
|
||||
<div class="thumbnail">
|
||||
<img src="{{ signature.file }}"
|
||||
alt="{{ 'SignatureDone'|get_plugin_lang('ZoomPlugin') }}">
|
||||
<div class="caption text-center">
|
||||
{{ signature.registeredAt|api_convert_and_format_date(constant('DATE_TIME_FORMAT_LONG')) }}
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
{% set btn_start = '' %}
|
||||
|
||||
{% if 'started' == meeting.meetingInfoGet.status %}
|
||||
<button class="btn btn-info" id="btn-sign" data-toggle="modal"
|
||||
data-target="#signature-modal">
|
||||
<i class="fa fa-pencil fa-fw" aria-hidden="true"></i>
|
||||
{{ 'Sign'|get_plugin_lang('ZoomPlugin') }}
|
||||
</button>
|
||||
|
||||
<div class="modal fade" tabindex="-1" role="dialog" id="signature-modal"
|
||||
data-backdrop="static">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal"
|
||||
aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title">{{ 'SignAttendance'|get_plugin_lang('ZoomPlugin') }}</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div id="signature-modal--signature-area" class="well">
|
||||
<canvas></canvas>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<span id="signature-modal--loader" aria-hidden="true"
|
||||
class="fa fa-refresh fa-spin"
|
||||
aria-label="{{ 'Loading'|get_lang }}" style="display: none;">
|
||||
</span>
|
||||
<span id="signature-modal--save-controls">
|
||||
<button id="signature-modal--btn-save" class="btn btn-primary">
|
||||
<em class="fa fa-save" aria-hidden="true"></em>
|
||||
{{ 'Save'|get_lang }}
|
||||
</button>
|
||||
<button id="signature-modal--btn-clean" class="btn btn-default">
|
||||
<em class="fa fa-eraser" aria-hidden="true"></em>
|
||||
{{ 'Clean'|get_lang }}
|
||||
</button>
|
||||
</span>
|
||||
<div id="signature-modal--close-controls" style="display: none;">
|
||||
<span id="signature-modal--results"></span>
|
||||
<button class="btn btn-default"
|
||||
data-dismiss="modal">{{ 'Close'|get_lang }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
var $signatureArea = $('#signature-modal--signature-area')
|
||||
var $loader = $('#signature-modal--loader')
|
||||
var $saveControls = $('#signature-modal--save-controls')
|
||||
var $btnSave = $('#signature-modal--btn-save')
|
||||
var $btnClean = $('#signature-modal--btn-clean')
|
||||
var $closeControls = $('#signature-modal--close-controls')
|
||||
var $txtResults = $('#signature-modal--results')
|
||||
|
||||
var imageFormat = 'image/png'
|
||||
var canvas = document.querySelector('#signature-modal--signature-area canvas')
|
||||
var signaturePad = new SignaturePad(canvas)
|
||||
|
||||
$('#signature-modal')
|
||||
.on('shown.bs.modal', function (e) {
|
||||
var parentWidth = $signatureArea.width()
|
||||
var parentHeight = $signatureArea.height()
|
||||
|
||||
canvas.setAttribute('width', parentWidth + 'px')
|
||||
canvas.setAttribute('height', parentHeight + 'px')
|
||||
|
||||
signaturePad = new SignaturePad(canvas)
|
||||
})
|
||||
.on('hide.bs.modal', function (e) {
|
||||
$loader.hide()
|
||||
$saveControls.show()
|
||||
$closeControls.hide()
|
||||
$signatureArea.show()
|
||||
$btnSave.prop('disabled', false)
|
||||
$btnClean.prop('disabled', false)
|
||||
})
|
||||
|
||||
$btnClean.on('click', function () {
|
||||
signaturePad.clear()
|
||||
})
|
||||
|
||||
$btnSave.on('click', function () {
|
||||
if (signaturePad.isEmpty()) {
|
||||
alert('{{ 'ProvideASignatureFirst'|get_plugin_lang('ZoomPlugin')|e('js') }}')
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
var dataURL = signaturePad.toDataURL(imageFormat)
|
||||
|
||||
$.ajax({
|
||||
beforeSend: function () {
|
||||
$loader.show()
|
||||
$btnSave.prop('disabled', true)
|
||||
$btnClean.prop('disabled', true)
|
||||
},
|
||||
type: 'POST',
|
||||
url: 'meeting.ajax.php?{{ _p.web_cid_query }}',
|
||||
data: {
|
||||
a: 'sign_attempt',
|
||||
meetingId: {{ meeting.meetingId }},
|
||||
file: dataURL
|
||||
},
|
||||
success: function (data) {
|
||||
$btnSave.prop('disabled', false)
|
||||
$btnClean.prop('disabled', false)
|
||||
$loader.hide()
|
||||
$saveControls.hide()
|
||||
$signatureArea.hide()
|
||||
|
||||
signaturePad.clear()
|
||||
|
||||
if ('1' === data) {
|
||||
$txtResults.html('{{ 'Saved'|get_lang }}')
|
||||
|
||||
window.location.reload()
|
||||
} else {
|
||||
$txtResults.html('{{ 'Error'|get_lang }}')
|
||||
}
|
||||
|
||||
$closeControls.show()
|
||||
},
|
||||
})
|
||||
})
|
||||
})
|
||||
</script>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{{ btn_start }}
|
||||
|
||||
{% if details_url %}
|
||||
<a href="{{ details_url }}" class="btn btn-default">
|
||||
{{ 'Details'|get_lang }}
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% if btn_announcement %}
|
||||
{{ btn_announcement }}
|
||||
{% endif %}
|
||||
136
plugin/zoom/view/meeting.tpl
Normal file
136
plugin/zoom/view/meeting.tpl
Normal file
@@ -0,0 +1,136 @@
|
||||
<h4>
|
||||
{{ meeting.typeName }} {{ meeting.meetingId }}
|
||||
{% if meeting.meetingInfoGet.status %}
|
||||
({{ meeting.meetingInfoGet.status }})
|
||||
{% endif %}
|
||||
</h4>
|
||||
|
||||
<div class="btn-group" role="group">
|
||||
|
||||
{% if meeting.meetingInfoGet.status != 'finished' %}
|
||||
<a class="btn btn-primary" href="join_meeting.php?meetingId={{ meeting.meetingId }}&{{ url_extra }}">
|
||||
{{ 'ViewMeeting'|get_plugin_lang('ZoomPlugin') }}
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% if isConferenceManager %}
|
||||
{% if meeting.status == 'waiting' %}
|
||||
<a class="btn btn-primary" href="{{ meeting.meetingInfoGet.start_url }}" target="_blank">
|
||||
{{ 'StartMeeting'|get_plugin_lang('ZoomPlugin') }}
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<a class="btn btn-default" href="activity.php?meetingId={{ meeting.meetingId }}&{{ url_extra }}">
|
||||
{{ 'Activity'|get_plugin_lang('ZoomPlugin') }}
|
||||
</a>
|
||||
|
||||
<a href="attendance.php?meetingId={{ meeting.meetingId ~ '&' ~ url_extra }}" class="btn btn-info">
|
||||
{{ 'Attendance'|get_lang }}
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if isConferenceManager %}
|
||||
<br />
|
||||
<br />
|
||||
<div class="panel panel-default conference">
|
||||
<div class="panel-body">
|
||||
<div class="share">
|
||||
{{ 'JoinURLToSendToParticipants'| get_plugin_lang('ZoomPlugin') }}
|
||||
</div>
|
||||
<div class="form-inline">
|
||||
<div class="form-group">
|
||||
<input id="share_button_flash" type="text"
|
||||
style="width:460px"
|
||||
class="form-control" readonly
|
||||
value="{{ _p.web }}plugin/zoom/join_meeting.php?meetingId={{ meeting.meetingId }}&{{ url_extra }}"
|
||||
>
|
||||
<button onclick="copyTextToClipBoard('share_button_flash');" class="btn btn-default">
|
||||
<span class="fa fa-copy"></span> {{ 'CopyTextToClipboard' | get_lang }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if currentUserJoinURL %}
|
||||
{#<p>#}
|
||||
{# <a href="{{ currentUserJoinURL }}" target="_blank">#}
|
||||
{# {{ 'JoinMeeting'|get_plugin_lang('ZoomPlugin') }}#}
|
||||
{# </a>#}
|
||||
{#</p>#}
|
||||
{% endif %}
|
||||
|
||||
{% if isConferenceManager %}
|
||||
{{ editMeetingForm }}
|
||||
{{ deleteMeetingForm }}
|
||||
{% if registerParticipantForm %}
|
||||
<hr>
|
||||
{{ registerParticipantForm }}
|
||||
{% endif %}
|
||||
|
||||
{% if registerPresenterForm %}
|
||||
{{ registerPresenterForm }}
|
||||
{% endif %}
|
||||
|
||||
{{ fileForm }}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-m6">
|
||||
{% if presenters %}
|
||||
<h3>{{ 'Presenters'|get_plugin_lang('ZoomPlugin') }}</h3>
|
||||
<table class="table">
|
||||
{% for presenter in presenters %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ presenter.fullName }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-m6">
|
||||
{# {% if registrants and meeting.meetingInfoGet.settings.approval_type != 2 %}#}
|
||||
{% if registrants.count > 0 %}
|
||||
<script>
|
||||
function copyJoinURL(event, url) {
|
||||
event.target.textContent = '{{ 'CopyingJoinURL'|get_plugin_lang('ZoomPlugin')|escape }}';
|
||||
navigator.clipboard.writeText(url).then(
|
||||
function() {
|
||||
event.target.textContent = '{{ 'JoinURLCopied'|get_plugin_lang('ZoomPlugin')|escape }}';
|
||||
}, function() {
|
||||
event.target.textContent = '{{ 'CouldNotCopyJoinURL'|get_plugin_lang('ZoomPlugin')|escape }}' + ' ' + url;
|
||||
}
|
||||
);
|
||||
}
|
||||
</script>
|
||||
<h3>{{ 'Users' | get_lang }}</h3>
|
||||
<br />
|
||||
<table class="table">
|
||||
{% for registrant in registrants %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ registrant.fullName }}
|
||||
</td>
|
||||
<td>
|
||||
{# {% if registrant.joinUrl %}#}
|
||||
{# <a class="btn btn-primary" onclick="copyJoinURL(event, '{{ registrant.joinUrl }}')">#}
|
||||
{# {{ 'CopyJoinAsURL'|get_plugin_lang('ZoomPlugin') }}#}
|
||||
{# </a>#}
|
||||
{# {% else %}#}
|
||||
{# <a class="btn btn-primary disabled" >#}
|
||||
{# {{ 'JoinURLNotAvailable'|get_plugin_lang('ZoomPlugin') }}#}
|
||||
{# </a>#}
|
||||
{# {% endif %}#}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
{% include 'zoom/view/meeting_details.tpl' %}
|
||||
{% endif %}
|
||||
23
plugin/zoom/view/meeting_details.tpl
Normal file
23
plugin/zoom/view/meeting_details.tpl
Normal file
@@ -0,0 +1,23 @@
|
||||
<h2 class="page-header">
|
||||
{{ meeting.topic}}
|
||||
<small>{{ meeting.typeName }}</small>
|
||||
</h2>
|
||||
|
||||
<dl class="meeting_properties dl-horizontal">
|
||||
{% if meeting.requiresDateAndDuration %}
|
||||
<dt>{{ 'StartTime'|get_lang }}</dt>
|
||||
<dd>{{ meeting.formattedStartTime }}</dd>
|
||||
|
||||
<dt>{{ 'Duration'|get_lang }}</dt>
|
||||
<dd>{{ meeting.formattedDuration }}</dd>
|
||||
{% endif %}
|
||||
|
||||
{% if meeting.accountEmail %}
|
||||
<dt>{{ 'AccountEmail'|get_lang }}</dt>
|
||||
<dd>{{ meeting.accountEmail }}</dd>
|
||||
{% endif %}
|
||||
</dl>
|
||||
|
||||
{% if meeting.agenda %}
|
||||
<p class="lead">{{ meeting.agenda|nl2br }}</p>
|
||||
{% endif %}
|
||||
64
plugin/zoom/view/meetings.tpl
Normal file
64
plugin/zoom/view/meetings.tpl
Normal file
@@ -0,0 +1,64 @@
|
||||
{% 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>{{ 'Type'|get_lang }}</th>
|
||||
<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.typeName }}</td>
|
||||
<td>{{ meeting.topic }}</td>
|
||||
<td>{{ meeting.formattedStartTime }}</td>
|
||||
<td>{{ meeting.user ? 'No'|get_lang : 'Yes'|get_lang }}</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 }}) {{ 'Password' | get_lang }}: {{ recording.recordingMeeting.password }}
|
||||
</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 %}
|
||||
60
plugin/zoom/view/start.tpl
Normal file
60
plugin/zoom/view/start.tpl
Normal file
@@ -0,0 +1,60 @@
|
||||
{% if instant_meeting_form %}
|
||||
{{ instant_meeting_form }}
|
||||
{% endif %}
|
||||
|
||||
{% if group_form %}
|
||||
{{ group_form }}
|
||||
{% endif %}
|
||||
|
||||
{% if meetings.count %}
|
||||
<div class="page-header">
|
||||
<h2>{{ 'ScheduledMeetings'|get_lang }}</h2>
|
||||
</div>
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th>{{ 'Type'|get_lang }}</th>
|
||||
<th>{{ 'Topic'|get_plugin_lang('ZoomPlugin') }}</th>
|
||||
<th>{{ 'Agenda'|get_plugin_lang('ZoomPlugin') }}</th>
|
||||
<th>{{ 'StartTime'|get_lang }}</th>
|
||||
<th>{{ 'Duration'|get_lang }}</th>
|
||||
<th>{{ 'Actions'|get_lang }}</th>
|
||||
</tr>
|
||||
{% for meeting in meetings %}
|
||||
<tr>
|
||||
<td>{{ meeting.typeName }}</td>
|
||||
<td>
|
||||
{{ meeting.meetingInfoGet.topic }}
|
||||
{{ meeting.webinarSchema.topic }}
|
||||
</td>
|
||||
<td>
|
||||
{{ meeting.meetingInfoGet.agenda|nl2br }}
|
||||
{{ meeting.webinarSchema.agenda|nl2br }}
|
||||
</td>
|
||||
<td>{{ meeting.formattedStartTime }}</td>
|
||||
<td>{{ meeting.formattedDuration }}</td>
|
||||
<td>
|
||||
<a class="btn btn-primary" href="join_meeting.php?meetingId={{ meeting.meetingId }}&{{ _p.web_cid_query }}">
|
||||
{{ 'Join'|get_plugin_lang('ZoomPlugin') }}
|
||||
</a>
|
||||
|
||||
{% if is_manager %}
|
||||
<a class="btn btn-default" href="meeting.php?meetingId={{ meeting.meetingId }}&{{ _p.web_cid_query }}">
|
||||
{{ 'Details'|get_plugin_lang('ZoomPlugin') }}
|
||||
</a>
|
||||
|
||||
<a class="btn btn-danger"
|
||||
href="start.php?action=delete&meetingId={{ meeting.meetingId }}&{{ _p.web_cid_query }}"
|
||||
onclick="javascript:if(!confirm('{{ 'AreYouSureToDelete' | get_lang }}')) return false;"
|
||||
>
|
||||
{{ 'Delete'|get_lang }}
|
||||
</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endif %}
|
||||
|
||||
{% if schedule_meeting_form %}
|
||||
{{ schedule_meeting_form }}
|
||||
{% endif %}
|
||||
3
plugin/zoom/view/subscription.tpl
Normal file
3
plugin/zoom/view/subscription.tpl
Normal file
@@ -0,0 +1,3 @@
|
||||
{% include 'zoom/view/meeting_details.tpl' %}
|
||||
|
||||
{{ frm_register_unregister }}
|
||||
Reference in New Issue
Block a user