Skip to content

Commit 2f6d8c5

Browse files
committed
Merge branch 'main' into issue-1218
2 parents 5c40698 + 7681a97 commit 2f6d8c5

30 files changed

+196
-70
lines changed

OpencastV3.class.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ public function getTabNavigation($course_id)
201201
PluginEngine::getURL($this, ['target_view' => 'videos'], 'course#/course/videos')
202202
));
203203

204-
if ($GLOBALS['perm']->have_studip_perm('tutor', $course_id) &&
204+
if (Perm::schedulingAllowed($course_id) &&
205205
Config::get()->OPENCAST_ALLOW_SCHEDULER &&
206206
Helpers::checkCourseDefaultPlaylist($course_id)) {
207207
$main->addSubNavigation('schedule', new Navigation(

app/controllers/redirect.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ public function preview_action($token)
223223

224224
$response = $api_events->fileRequest($image);
225225

226-
header('Content-Type: '. $response['mimetype']);
226+
header('Content-Type: '. $response['mimetype'][0]);
227227

228228
echo $response['body'];
229229
die;

assets/css/opencast.scss

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ $action-menu-icon-size: 20px;
337337
overflow: hidden;
338338
text-overflow: ellipsis;
339339
}
340-
340+
341341
.oc--metadata--empty {
342342

343343
h2, div {
@@ -362,6 +362,14 @@ $action-menu-icon-size: 20px;
362362
opacity: 0.7;
363363
}
364364

365+
.oc--episode--invisible {
366+
background-color: #FFFFCC;
367+
}
368+
369+
.oc--title--invisible-info {
370+
font-size: 0.8em;
371+
}
372+
365373
.oc--loadingbar {
366374
border-radius: 15px;
367375
background-color: darken($episode-background, 20%);
@@ -1198,6 +1206,10 @@ label.oc--file-upload {
11981206
}
11991207
}
12001208

1209+
/* * * S L I D E R * * */
1210+
.slider-target,.slider-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0);box-sizing:border-box;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.slider-target{position:relative}.slider-base,.slider-connects{height:100%;position:relative;width:100%;z-index:1}.slider-connects{overflow:hidden;z-index:0}.slider-connect,.slider-origin{height:100%;position:absolute;right:0;top:0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform-style:preserve-3d;transform-style:flat;width:100%;will-change:transform;z-index:1}.slider-txt-dir-rtl.slider-horizontal .slider-origin{left:0;right:auto}.slider-vertical .slider-origin{top:-100%;width:0}.slider-horizontal .slider-origin{height:0}.slider-handle{-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute}.slider-touch-area{height:100%;width:100%}.slider-state-tap .slider-connect,.slider-state-tap .slider-origin{transition:transform .3s}.slider-state-drag *{cursor:inherit!important}.slider-tooltip-drag .slider-tooltip,.slider-tooltip-focus .slider-tooltip{display:none!important}.slider-tooltip-drag .slider-active .slider-tooltip,.slider-tooltip-drag.slider-state-drag .slider-tooltip:not(.slider-tooltip-hidden),.slider-tooltip-focus.slider-focused .slider-tooltip:not(.slider-tooltip-hidden){display:block!important}.slider-horizontal{height:var(--slider-height,6px)}.slider-horizontal .slider-handle{height:var(--slider-handle-height,16px);right:calc(var(--slider-handle-width, 16px)/2*-1);top:calc((var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2*-1 + -1px);width:var(--slider-handle-width,16px)}.slider-vertical{height:var(--slider-vertical-height,300px);width:var(--slider-height,6px)}.slider-vertical .slider-handle{bottom:calc(var(--slider-handle-width, 16px)/2*-1);height:var(--slider-handle-width,16px);right:calc((var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2*-1 + -1px);width:var(--slider-handle-height,16px)}.slider-txt-dir-rtl.slider-horizontal .slider-handle{left:calc(var(--slider-handle-width, 16px)/2*-1);right:auto}.slider-base{background-color:var(--slider-bg,#d1d5db)}.slider-base,.slider-connects{border-radius:var(--slider-radius,9999px)}.slider-connect{background:var(--slider-connect-bg,#10b981);cursor:pointer}.slider-draggable{cursor:ew-resize}.slider-vertical .slider-draggable{cursor:ns-resize}.slider-handle{background:var(--slider-handle-bg,#fff);border:var(--slider-handle-border,0);border-radius:var(--slider-handle-radius,9999px);box-shadow:var(--slider-handle-shadow,.5px .5px 2px 1px rgba(0,0,0,.32));cursor:-webkit-grab;cursor:grab;height:var(--slider-handle-height,16px);width:var(--slider-handle-width,16px)}.slider-handle:focus{box-shadow:0 0 0 var(--slider-handle-ring-width,3px) var(--slider-handle-ring-color,rgba(16,185,129,.188)),var(--slider-handle-shadow,.5px .5px 2px 1px rgba(0,0,0,.32));outline:none}.slider-active{box-shadow:var(--slider-handle-shadow-active,.5px .5px 2px 1px rgba(0,0,0,.42));cursor:-webkit-grabbing;cursor:grabbing}[disabled] .slider-connect{background:var(--slider-connect-bg-disabled,#9ca3af)}[disabled] .slider-handle,[disabled].slider-handle,[disabled].slider-target{cursor:not-allowed}[disabled] .slider-tooltip{background:var(--slider-tooltip-bg-disabled,#9ca3af);border-color:var(--slider-tooltip-bg-disabled,#9ca3af)}.slider-tooltip{background:var(--slider-tooltip-bg,#10b981);border:1px solid var(--slider-tooltip-bg,#10b981);border-radius:var(--slider-tooltip-radius,5px);color:var(--slider-tooltip-color,#fff);display:block;font-size:var(--slider-tooltip-font-size,.875rem);font-weight:var(--slider-tooltip-font-weight,600);line-height:var(--slider-tooltip-line-height,1.25rem);min-width:var(--slider-tooltip-min-width,20px);padding:var(--slider-tooltip-py,2px) var(--slider-tooltip-px,6px);position:absolute;text-align:center;white-space:nowrap}.slider-horizontal .slider-tooltip-top{bottom:calc(var(--slider-handle-height, 16px) + var(--slider-tooltip-arrow-size, 5px) + var(--slider-tooltip-distance, 3px));left:50%;transform:translate(-50%)}.slider-horizontal .slider-tooltip-top:before{border:var(--slider-tooltip-arrow-size,5px) solid transparent;border-top-color:inherit;bottom:calc(var(--slider-tooltip-arrow-size, 5px)*-2);content:"";height:0;left:50%;position:absolute;transform:translate(-50%);width:0}.slider-horizontal .slider-tooltip-bottom{left:50%;top:calc(var(--slider-handle-height, 16px) + var(--slider-tooltip-arrow-size, 5px) + var(--slider-tooltip-distance, 3px));transform:translate(-50%)}.slider-horizontal .slider-tooltip-bottom:before{border:var(--slider-tooltip-arrow-size,5px) solid transparent;border-bottom-color:inherit;content:"";height:0;left:50%;position:absolute;top:calc(var(--slider-tooltip-arrow-size, 5px)*-2);transform:translate(-50%);width:0}.slider-vertical .slider-tooltip-left{right:calc(var(--slider-handle-height, 16px) + var(--slider-tooltip-arrow-size, 5px) + var(--slider-tooltip-distance, 3px));top:50%;transform:translateY(-50%)}.slider-vertical .slider-tooltip-left:before{border:var(--slider-tooltip-arrow-size,5px) solid transparent;border-left-color:inherit;content:"";height:0;position:absolute;right:calc(var(--slider-tooltip-arrow-size, 5px)*-2);top:50%;transform:translateY(-50%);width:0}.slider-vertical .slider-tooltip-right{left:calc(var(--slider-handle-height, 16px) + var(--slider-tooltip-arrow-size, 5px) + var(--slider-tooltip-distance, 3px));top:50%;transform:translateY(-50%)}.slider-vertical .slider-tooltip-right:before{border:var(--slider-tooltip-arrow-size,5px) solid transparent;border-right-color:inherit;content:"";height:0;left:calc(var(--slider-tooltip-arrow-size, 5px)*-2);position:absolute;top:50%;transform:translateY(-50%);width:0}.slider-horizontal .slider-origin>.slider-tooltip{left:auto;transform:translate(50%)}.slider-horizontal .slider-origin>.slider-tooltip-top{bottom:calc(var(--slider-tooltip-arrow-size, 5px) + (var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2 + var(--slider-tooltip-distance, 3px) + 1px)}.slider-horizontal .slider-origin>.slider-tooltip-bottom{top:calc(var(--slider-tooltip-arrow-size, 5px) + (var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2 + var(--slider-tooltip-distance, 3px) + var(--slider-height, 6px) - 1px)}.slider-vertical .slider-origin>.slider-tooltip{top:auto;transform:translateY(calc((var(--slider-tooltip-line-height, 1.25rem) - var(--slider-tooltip-py, 2px))*-1 + 1px))}.slider-vertical .slider-origin>.slider-tooltip-left{right:calc(var(--slider-tooltip-arrow-size, 5px) + var(--slider-height, 6px) + (var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2 + var(--slider-tooltip-distance, 3px) - 1px)}.slider-vertical .slider-origin>.slider-tooltip-right{left:calc(var(--slider-tooltip-arrow-size, 5px) + var(--slider-height, 6px) + (var(--slider-handle-height, 16px) - var(--slider-height, 6px))/2 + var(--slider-tooltip-distance, 3px) - var(--slider-height, 6px) + 1px)}
1211+
1212+
12011213
/*SChedule Loading*/
12021214
.oc--schedule-loading {
12031215

cronjobs/opencast_discover_videos.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public function execute($last_result, $parameters = array())
9191
$offset += $limit;
9292

9393
// load events from opencast and filter the processed ones
94-
foreach ($oc_events as $event) {
94+
if (!empty($oc_events)) foreach ($oc_events as $event) {
9595
$current_event = null;
9696

9797
// only add videos / reinspect videos if they are readily processed
@@ -174,7 +174,7 @@ public function execute($last_result, $parameters = array())
174174
$plvideo->store();
175175
}
176176
}
177-
} while (sizeof($oc_events) > 0);
177+
} while (!empty($oc_events));
178178

179179
// Check if local videos are no longer available in OC
180180
foreach (array_diff($local_event_ids, $event_ids) as $event_id) {

lib/Models/Helpers.php

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,15 +334,30 @@ public static function compareACLs($a, $b)
334334

335335
}
336336

337+
/**
338+
* Notify users about the video event
339+
*
340+
* @Notification OpencastNotifyUsers
341+
*
342+
* @param string $eventType
343+
* @param object $event
344+
* @param Opencast\Models\Videos $video
345+
*/
337346
public static function notifyUsers($eventType, $event, $video)
338347
{
339348
// get the first course the video is assigned to
340349
if (!empty($video->playlists) && !empty($video->playlists[0]->courses)) {
341350
$course_id = $video->playlists[0]->courses[0]->id;
342351
}
343352

344-
// notify user
345-
foreach($video->perms->findBySQL("perm = 'owner'")[0] as $vuser) {
353+
// Notify user:
354+
// Here we need to notify the users with owner permission about the video event.
355+
$targeted_perm = 'owner';
356+
$video_owners = VideosUserPerms::findBySQL('video_id = ? AND perm = ?', [$video->id, $targeted_perm]);
357+
if (empty($video_owners)) {
358+
return;
359+
}
360+
foreach($video_owners as $vuser) {
346361
$url = \URLHelper::getURL('plugins.php/opencastv3/contents/index', [], true);
347362

348363
if (!empty($course_id)) {

lib/Models/PlaylistSeminars.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,9 @@ public static function getCoursesArray(Array $courses_ids, String $user_id = nul
233233
'id' => $course->id,
234234
'name' => $course->getFullname('number-name'),
235235
'semester' => $course->getFullname('sem-duration-name'),
236-
'end_semester_begin' => $course->end_semester->beginn ?: 0,
236+
'end_semester_begin' => isset($course->end_semester->beginn)
237+
? $course->end_semester->beginn
238+
: 0,
237239
'lecturers' => $lecturers,
238240
];
239241
}

lib/Models/REST/Config.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ class Config
3232
public static function getOCBaseVersion($config_id)
3333
{
3434
$config = ConfigModel::getBaseServerConf($config_id);
35+
36+
// populate config_id if calling the RestClient directly
37+
$config['config_id'] = $config['id'];
3538
$oc = new RestClient($config);
3639

3740
$response = $oc->opencastApi->sysinfo->getVersion('opencast');

lib/Models/REST/IngestClient.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,10 @@ public function schedule($mediaPackage, $workflowDefinitionId = '', $capabilitie
7979
$query['capture.device.names'] = $capabilities;
8080
}
8181

82-
$options = $this->ocRestClient->getQueryParams($query);
83-
$response = $this->ocRestClient->performGet($uri, $options);
82+
$options = $this->ocRestClient->getFormParams($query);
83+
$response = $this->ocRestClient->performPost($uri, $options);
8484

85-
return $response['code'] == 200;
85+
return (in_array($response['code'], [200, 201]) !== false);
8686
} else {
8787
$response = $this->opencastApi->ingest->schedule($mediaPackage, $workflowDefinitionId);
8888
return (in_array($response['code'], [200, 201]) !== false);

lib/Models/REST/RestClient.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,10 @@ public function __construct($config)
7171
'lucene' => false
7272
],
7373
'guzzle' => [
74-
'verify' => $config['settings']['ssl_ignore_cert_errors'] === true ? false : true
74+
'verify' => (
75+
isset($config['settings']['ssl_ignore_cert_errors'])
76+
&& $config['settings']['ssl_ignore_cert_errors'] === true)
77+
? false : true
7578
]
7679
];
7780

lib/Models/ScheduleHelper.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -981,6 +981,7 @@ public static function addUpdateResource($resource_id, $config_id, $capture_agen
981981
// We Update the resource first.
982982
$success = Resources::setResource($resource_id, $config_id, $capture_agent, $workflow_id, $livestream_workflow_id);
983983
// If is updated.
984+
/*
984985
if ($success) {
985986
// We update current scheduled events that uses this resource.
986987
if ($scheduled_recordings = ScheduledRecordings::getScheduleRecordingList($resource_id)) {
@@ -994,6 +995,7 @@ public static function addUpdateResource($resource_id, $config_id, $capture_agen
994995
}
995996
}
996997
}
998+
*/
997999
return $success;
9981000
}
9991001

0 commit comments

Comments
 (0)