This commit is contained in:
Markos Gogoulos
2026-05-02 16:45:41 +03:00
parent f44b58580c
commit 41d3e8c92b
6 changed files with 18 additions and 17 deletions
-1
View File
@@ -238,7 +238,6 @@ class MediaPublishForm(forms.ModelForm):
)
elif not shared:
self.instance.permissions.all().delete()
self.instance.embed_courses.all().delete()
rbac_cats = self.instance.category.filter(is_rbac_category=True)
self.instance.category.remove(*rbac_cats)
+2 -10
View File
@@ -514,7 +514,6 @@ class MediaBulkUserActions(APIView):
if remove_sharing:
MediaPermission.objects.filter(media__in=media).delete()
EmbedMediaCourse.objects.filter(media__in=media).delete()
for m in media:
rbac_cats = m.category.filter(is_rbac_category=True)
if rbac_cats.exists():
@@ -695,18 +694,14 @@ class MediaBulkUserActions(APIView):
return Response({"detail": "No matching categories found"}, status=status.HTTP_400_BAD_REQUEST)
removed_count = 0
tag = None
for category in categories:
if category.is_lms_course:
tag = Tag.objects.filter(title=category.title[:100]).first()
for m in media:
if m.category.filter(uid=category.uid).exists():
m.category.remove(category)
removed_count += 1
if tag:
m.tags.remove(tag)
EmbedMediaCourse.objects.filter(media=m, category=category).delete()
if not m.category.filter(is_rbac_category=True).exists() and not m.permissions.exclude(user=m.user).exists():
m.permissions.filter(user=m.user).delete()
return Response({"detail": f"Removed {removed_count} media items from {categories.count()} categories"})
@@ -785,7 +780,6 @@ class MediaBulkUserActions(APIView):
if remove_permissions:
MediaPermission.objects.filter(media__in=selected_media, user__in=group_users).exclude(user=F('media__user')).delete()
MediaPermission.objects.filter(media_id__in=selected_embedded_media_ids).exclude(user=F('media__user')).delete()
selected_embedded.delete()
if remove_comments:
Comment.objects.filter(media__in=selected_media).delete()
@@ -796,7 +790,6 @@ class MediaBulkUserActions(APIView):
if remove_permissions:
MediaPermission.objects.filter(media__in=other_course_media, user__in=group_users).exclude(user=F('media__user')).delete()
MediaPermission.objects.filter(media_id__in=other_embedded_media_ids).exclude(user=F('media__user')).delete()
other_embedded.delete()
if remove_comments:
Comment.objects.filter(media__in=other_course_media).delete()
for m in other_course_media:
@@ -808,7 +801,6 @@ class MediaBulkUserActions(APIView):
if remove_permissions:
MediaPermission.objects.filter(media__in=all_course_media, user__in=group_users).exclude(user=F('media__user')).delete()
MediaPermission.objects.filter(media_id__in=embedded_media_ids).exclude(user=F('media__user')).delete()
embed_qs.delete()
if remove_comments:
Comment.objects.filter(media__in=all_course_media).delete()
if embedded_media_ids:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -76,8 +76,18 @@ const setupIframeOverlays = (editor, handleIframeAction) => {
const iframes = editorBody.querySelectorAll('iframe');
iframes.forEach((iframe) => {
// Skip if already wrapped
// If already wrapped, ensure contenteditable and EDIT button are present
if (iframe.parentElement?.classList.contains('tiny-mediacms-iframe-wrapper')) {
const existingWrapper = iframe.parentElement;
existingWrapper.setAttribute('contenteditable', 'false');
if (!existingWrapper.querySelector('.tiny-mediacms-edit-btn')) {
const editBtn = editor.getDoc().createElement('button');
editBtn.className = 'tiny-mediacms-edit-btn';
editBtn.setAttribute('type', 'button');
editBtn.setAttribute('title', 'Edit media embed options');
editBtn.textContent = 'EDIT';
existingWrapper.appendChild(editBtn);
}
return;
}
@@ -130,14 +140,14 @@ const setupIframeOverlays = (editor, handleIframeAction) => {
position: relative;
line-height: 0;
vertical-align: top;
margin-top: 50px;
margin-top: 24px;
}
.tiny-mediacms-iframe-wrapper iframe {
display: block;
}
.tiny-mediacms-edit-btn {
position: absolute;
top: -44px;
top: -20px;
left: 50%;
transform: translateX(-50%);
background: rgba(0, 0, 0, 0.7);
@@ -28,4 +28,4 @@
"aspectRatioClass": "ratio-16-9"
}
}}
<div class="tiny-mediacms-iframe-wrapper" style="max-width:{{maxWidth}}px;width:100%;margin:0 auto;padding:0;"><iframe src="{{src}}" width="{{maxWidth}}" height="{{height}}" style="width:100%;max-width:{{maxWidth}}px;height:auto;aspect-ratio:{{aspectRatioCSS}};display:block;margin:0 auto;border:0;" frameborder="0" allowfullscreen></iframe></div>
<div class="tiny-mediacms-iframe-wrapper" contenteditable="false" style="max-width:{{maxWidth}}px;width:100%;margin:0 auto;padding:0;"><iframe src="{{src}}" width="{{maxWidth}}" height="{{height}}" style="width:100%;max-width:{{maxWidth}}px;height:auto;aspect-ratio:{{aspectRatioCSS}};display:block;margin:0 auto;border:0;" frameborder="0" allowfullscreen></iframe></div>