Use resources to update Announcement visibility

pull/3124/head
Julio Montoya 6 years ago
parent 8555749c07
commit 84e769569d
  1. 45
      public/main/announcements/announcements.php
  2. 37
      public/main/inc/lib/AnnouncementManager.php

@ -352,33 +352,32 @@ switch ($action) {
exit;
break;
case 'showhide':
if (!isset($_GET['isStudentView']) || 'false' != $_GET['isStudentView']) {
if (isset($_GET['id']) && $_GET['id']) {
if (0 != $sessionId &&
false == api_is_allowed_to_session_edit(false, true)
) {
api_not_allowed();
}
case 'set_visibility':
if (!empty($announcement_id)) {
if (0 != $sessionId &&
false == api_is_allowed_to_session_edit(false, true)
) {
api_not_allowed();
}
if (!$allowToEdit) {
api_not_allowed(true);
}
$status = isset($_GET['status']) ? $_GET['status'] : null;
if (!$allowToEdit) {
api_not_allowed(true);
}
if (!api_is_session_general_coach() ||
api_is_element_in_the_session(TOOL_ANNOUNCEMENT, $_GET['id'])
) {
AnnouncementManager::change_visibility_announcement(
$_course,
$_GET['id']
);
Display::addFlash(Display::return_message(get_lang('The visibility has been changed.')));
header('Location: '.$homeUrl);
exit;
}
if (!api_is_session_general_coach() ||
api_is_element_in_the_session(TOOL_ANNOUNCEMENT, $announcement_id)
) {
AnnouncementManager::change_visibility_announcement(
$_course,
$announcement_id,
$status
);
Display::addFlash(Display::return_message(get_lang('The visibility has been changed.')));
header('Location: '.$homeUrl);
exit;
}
}
break;
case 'add':
case 'modify':

@ -206,14 +206,28 @@ class AnnouncementManager
* This functions switches the visibility a course resource
* using the visibility field in 'item_property'.
*
* @param array $courseInfo
* @param int $id ID of the element of the corresponding type
* @param array $courseInfo
* @param int $id
* @param string $status
*
* @return bool False on failure, True on success
*/
public static function change_visibility_announcement($courseInfo, $id)
public static function change_visibility_announcement($courseInfo, $id, $status)
{
$session_id = api_get_session_id();
$repo = Container::getAnnouncementRepository();
$announcement = $repo->find($id);
if ($announcement) {
switch ($status) {
case 'invisible':
$repo->setVisibilityDraft($announcement);
break;
case 'visible':
$repo->setVisibilityPublished($announcement);
break;
}
}
/*$session_id = api_get_session_id();
$item_visibility = api_get_item_visibility(
$courseInfo,
TOOL_ANNOUNCEMENT,
@ -236,7 +250,7 @@ class AnnouncementManager
'visible',
api_get_user_id()
);
}
}*/
return true;
}
@ -479,12 +493,14 @@ class AnnouncementManager
$image_visibility = 'invisible';
$alt_visibility = get_lang('Visible');
$setNewStatus = 'visible';
if ($announcement->isVisible($course, $session)) {
$image_visibility = 'visible';
$alt_visibility = get_lang('Hide');
$setNewStatus = 'invisible';
}
global $stok;
$modify_icons .= "<a href=\"".api_get_self()."?".api_get_cidreq()."&action=showhide&id=".$id."&sec_token=".$stok."\">".
$modify_icons .= "<a href=\"".api_get_self()."?".api_get_cidreq()."&action=set_visibility&status=".$setNewStatus."&id=".$id."&sec_token=".$stok."\">".
Display::return_icon($image_visibility.'.png', $alt_visibility, '', ICON_SIZE_SMALL)."</a>";
if (api_is_allowed_to_edit(false, true)) {
@ -1575,7 +1591,6 @@ class AnnouncementManager
$courseId = 0,
$sessionId = 0
) {
$user_id = $userId ?: api_get_user_id();
$group_id = api_get_group_id();
$session_id = $sessionId ?: api_get_session_id();
if (empty($courseId)) {
@ -1990,14 +2005,16 @@ class AnnouncementManager
}
if ($visibility) {
$image_visibility = "visible";
$image_visibility = 'visible';
$setNewStatus = 'invisible';
$alt_visibility = get_lang('Hide');
} else {
$image_visibility = "invisible";
$image_visibility = 'invisible';
$setNewStatus = 'visible';
$alt_visibility = get_lang('Visible');
}
$modify_icons .= "<a href=\"".$actionUrl."&action=showhide&id=".$announcementId."&sec_token=".$stok."\">".
$modify_icons .= "<a href=\"".$actionUrl."&action=set_visibility&status=".$setNewStatus."&id=".$announcementId."&sec_token=".$stok."\">".
Display::return_icon($image_visibility.'.png', $alt_visibility, '', ICON_SIZE_SMALL)."</a>";
// DISPLAY MOVE UP COMMAND only if it is not the top announcement

Loading…
Cancel
Save