diff --git a/plugin/zoom/join_meeting.php b/plugin/zoom/join_meeting.php index 89e754c6e2..79208fe47c 100644 --- a/plugin/zoom/join_meeting.php +++ b/plugin/zoom/join_meeting.php @@ -31,7 +31,7 @@ try { if (!empty($startJoinURL)) { echo Display::url($plugin->get_lang('EnterMeeting'), $startJoinURL, ['class' => 'btn btn-primary']); } else { - echo Display::return_message($plugin->get_lang('ConferenceNotStarted'), 'warning'); + //echo Display::return_message($plugin->get_lang('ConferenceNotStarted'), 'warning'); } if ($plugin->userIsConferenceManager($meeting)) { diff --git a/plugin/zoom/lang/english.php b/plugin/zoom/lang/english.php index d8fc51af28..40d22e7782 100755 --- a/plugin/zoom/lang/english.php +++ b/plugin/zoom/lang/english.php @@ -111,7 +111,7 @@ $strings['RegisterTheseGroupMembers'] = "Register these group members"; $strings['ScheduleAMeeting'] = "Schedule a meeting"; $strings['ScheduledMeeting'] = "Scheduled meeting"; $strings['ScheduledMeetings'] = "Scheduled Meetings"; -$strings['ScheduleTheMeeting'] = "Schedule the meeting"; +$strings['ScheduleAMeeting'] = "Schedule a meeting"; $strings['SearchMeeting'] = "Search meeting"; $strings['Session'] = "Session"; $strings['StartDate'] = "Start Date"; diff --git a/plugin/zoom/lang/french.php b/plugin/zoom/lang/french.php index 56cddc4e6b..a08c8b84d2 100755 --- a/plugin/zoom/lang/french.php +++ b/plugin/zoom/lang/french.php @@ -109,7 +109,7 @@ $strings['RegisterTheseGroupMembers'] = "Inscrire les membres de ces groupes"; $strings['ScheduleAMeeting'] = "Programmer une conférence"; $strings['ScheduledMeeting'] = "Conférence programmée"; $strings['ScheduledMeetings'] = "Conférences programmées"; -$strings['ScheduleTheMeeting'] = "Programmer la conférence"; +$strings['ScheduleAMeeting'] = "Programmer une conférence"; $strings['SearchMeeting'] = "Rechercher une conférence"; $strings['Session'] = "Session"; $strings['StartDate'] = "Date de début"; diff --git a/plugin/zoom/lang/spanish.php b/plugin/zoom/lang/spanish.php index abe0956031..e5069c14d8 100644 --- a/plugin/zoom/lang/spanish.php +++ b/plugin/zoom/lang/spanish.php @@ -109,7 +109,7 @@ $strings['RegisterTheseGroupMembers'] = "Inscribir los miembros de estos grupos" $strings['ScheduleAMeeting'] = "Programar una conferencia"; $strings['ScheduledMeeting'] = "Conferencia programada"; $strings['ScheduledMeetings'] = "Conferencias programadas"; -$strings['ScheduleTheMeeting'] = "Programar la conferencia"; +$strings['ScheduleAMeeting'] = "Programar una conferencia"; $strings['SearchMeeting'] = "Buscar una conferencia"; $strings['Session'] = "Sesión"; $strings['StartDate'] = "Fecha de inicio"; diff --git a/plugin/zoom/lib/MeetingEntityRepository.php b/plugin/zoom/lib/MeetingEntityRepository.php index 91ca0b09df..da91eff8c4 100644 --- a/plugin/zoom/lib/MeetingEntityRepository.php +++ b/plugin/zoom/lib/MeetingEntityRepository.php @@ -80,7 +80,7 @@ class MeetingEntityRepository extends EntityRepository Criteria::create()->where( Criteria::expr()->andX( Criteria::expr()->eq('course', null), - is_null($user) + null === $user ? Criteria::expr()->neq('user', null) : Criteria::expr()->eq('user', $user) ) @@ -105,16 +105,15 @@ class MeetingEntityRepository extends EntityRepository /** * @param DateTime $start * @param DateTime $end - * @param User|null $user + * @param User $user * * @return ArrayCollection|Collection|MeetingEntity[] */ - public function periodUserMeetings($start, $end, $user = null) + public function periodUserMeetings($start, $end, $user) { return $this->userMeetings($user)->filter( function ($meeting) use ($start, $end) { - return $meeting->startDateTime >= $start - && $meeting->startDateTime <= $end; + return $meeting->startDateTime >= $start && $meeting->startDateTime <= $end; } ); } diff --git a/plugin/zoom/lib/ZoomPlugin.php b/plugin/zoom/lib/ZoomPlugin.php index e5bf35e9a6..02f873e2ea 100644 --- a/plugin/zoom/lib/ZoomPlugin.php +++ b/plugin/zoom/lib/ZoomPlugin.php @@ -597,7 +597,7 @@ class ZoomPlugin extends Plugin public function getScheduleMeetingForm($user, $course = null, $session = null) { $form = new FormValidator('scheduleMeetingForm'); - $form->addHeader($this->get_lang('ScheduleTheMeeting')); + $form->addHeader($this->get_lang('ScheduleAMeeting')); $startTimeDatePicker = $form->addDateTimePicker('startTime', get_lang('StartTime')); $form->setRequired($startTimeDatePicker); @@ -856,8 +856,14 @@ class ZoomPlugin extends Plugin { $status = $meeting->getMeetingInfoGet()->status; $currentUser = api_get_user_entity(api_get_user_id()); + $isGlobal = 'true' === $this->get('enableGlobalConference') && $meeting->isGlobalMeeting(); switch ($status) { + case 'ended': + if ($currentUser === $meeting->getUser()) { + return $meeting->getMeetingInfoGet()->start_url; + } + break; case 'waiting': // Zoom does not allow for a new meeting to be started on first participant join. // It requires the host to start the meeting first. @@ -865,25 +871,28 @@ class ZoomPlugin extends Plugin // that is use start_url rather than join_url. // the participant will not be registered and will appear as the Zoom user account owner. // For course and user meetings, only the host can start the meeting. - if ( - ($meeting->isGlobalMeeting() && $this->get('enableGlobalConference')) || - $currentUser === $meeting->getUser() - ) { + if ($isGlobal || $currentUser === $meeting->getUser()) { return $meeting->getMeetingInfoGet()->start_url; } break; case 'started': - if ('true' === $this->get('enableParticipantRegistration') && $meeting->requiresRegistration()) { + if ($currentUser === $meeting->getUser()) { + return $meeting->getMeetingInfoGet()->join_url; + } + + // the participant is not registered, he can join only the global meeting (automatic registration) + if ($isGlobal) { + return $this->registerUser($meeting, $currentUser)->getCreatedRegistration()->join_url; + } + + if ('true' === $this->get('enableParticipantRegistration')) { + //if ('true' === $this->get('enableParticipantRegistration') && $meeting->requiresRegistration()) { // the participant must be registered $registrant = $meeting->getRegistrant($currentUser); if (null !== $registrant) { // the participant is registered return $registrant->getCreatedRegistration()->join_url; } - // the participant is not registered, he can join only the global meeting (automatic registration) - if ($meeting->isGlobalMeeting() && $this->get('enableGlobalConference')) { - return $this->registerUser($meeting, $currentUser)->getCreatedRegistration()->join_url; - } } break; }