diff --git a/main/session/resume_session.php b/main/session/resume_session.php index 6dd7e0b1935..2bcdf9fe55b 100644 --- a/main/session/resume_session.php +++ b/main/session/resume_session.php @@ -398,14 +398,14 @@ } $editUrl = null; - /* + if (isset($sessionInfo['duration']) && !empty($sessionInfo['duration'])) { $editUrl = $codePath . 'session/session_user_edit.php?session_id=' . $sessionId . '&user_id=' . $userId; $editUrl = Display::url( Display::return_icon('agenda.png', get_lang('SessionDurationEdit')), $editUrl ); - }*/ + } $table->setCellContents($row, 0, $userLink); $link = $reportingLink.$courseUserLink.$removeLink.$addUserToUrlLink.$editUrl; diff --git a/main/session/session_user_edit.php b/main/session/session_user_edit.php index 998b6e9a369..2076f3b7169 100644 --- a/main/session/session_user_edit.php +++ b/main/session/session_user_edit.php @@ -43,12 +43,17 @@ $userId ); +$extension = 0; + if (count($userAccess) == 0) { // User never accessed the session. End date is still open $msg = sprintf(get_lang('UserNeverAccessedSessionDefaultDurationIsX'), $sessionInfo['duration']); } else { // The user already accessed the session. Show a clear detail of the days count. + $duration = $sessionInfo['duration']; $days = SessionManager::getDayLeftInSession($sessionInfo, $userId); + $userSubscription = SessionManager::getUserSession($userId, $sessionId); + $extension = $userSubscription['duration']; $firstAccess = api_strtotime($userAccess['login_course_date'], 'UTC'); $firstAccessString = api_convert_and_format_date($userAccess['login_course_date'], DATE_FORMAT_SHORT, 'UTC'); if ($days > 0) { @@ -61,29 +66,74 @@ $msg = sprintf(get_lang('FirstAccessWasXSessionDurationYEndDateInZDays'), $firstAccessString, $duration, $days); } else { + if (!empty($subscription['duration'])) { + $duration = $duration + $subscription['duration']; + } $endDateInSeconds = $firstAccess + $duration * 24 * 60 * 60; $last = api_convert_and_format_date($endDateInSeconds, DATE_FORMAT_SHORT); $msg = sprintf(get_lang('FirstAccessWasXSessionDurationYEndDateWasZ'), $firstAccessString, $duration, $last); } } -$form->addElement('html', sprintf(get_lang('UserXSessionY'), $userInfo['complete_name'], $sessionInfo['name'])); -$form->addElement('html', '
'); -$form->addElement('html', $msg); -$form->addElement('text', 'duration', [get_lang('ExtraDurationForUser'), null, get_lang('Days')]); +$header = '
'; +$header .= '
'; +$header .= '
'; +$header .= Display::img($userInfo['avatar'], $userInfo['complete_name']); +$header .= '
'; +$header .= '
'; + +$header .= '
'; + +$userData = $userInfo['complete_name'] + .PHP_EOL + .$user_info['mail'] + .PHP_EOL + .$user_info['official_code']; + +$header .= '

Usuario: ' . Display::url( + $userData, + api_get_path(WEB_CODE_PATH).'social/profile.php?u='.$user_info['user_id'] +) .'

'; + +$header .= '

Sesión: ' . $sessionInfo['name'] . '

'; + +$header .= '

'; +$header .='
'; + +$header .= '
'; +$header .= '
'; + +$header .= $msg; +$header .= '

'.'

'; + +$header .= '
'; +$header .= '
'; + +$form->addElement('html', $header); + +$formData = '
'; +$formData .= '
'; + +$form->addElement('html', $formData); +$form->addElement('number', 'duration', [get_lang('ExtraDurationForUser'), null, get_lang('Days')]); $form->addButtonSave(get_lang('Save')); -$form->setDefaults(['duration' => 0]); +$formData = '
'; +$formData .= '
'; + +$form->addElement('html', $formData); + +$form->setDefaults(['duration' => $extension]); $message = null; if ($form->validate()) { $duration = $form->getSubmitValue('duration'); - // Only update if the duration is different from the default duration - if ($duration != 0) { - SessionManager::editUserSessionDuration($duration, $userId, $sessionId); - $message = Display::return_message(get_lang('ItemUpdated'), 'confirmation'); - } else { - $message = Display::return_message(get_lang('DurationIsSameAsDefault'), 'warning'); - } + + SessionManager::editUserSessionDuration($duration, $userId, $sessionId); + $message = Display::return_message(get_lang('ItemUpdated'), 'confirmation'); + + $url = $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING']; + header("Location: " . $url); + exit(); } // display the header