mirror of
https://github.com/mediacms-io/mediacms.git
synced 2026-03-15 17:31:56 -04:00
a
This commit is contained in:
@@ -1 +1 @@
|
||||
VERSION = "8.92"
|
||||
VERSION = "8.93"
|
||||
|
||||
@@ -649,11 +649,17 @@ class MediaBulkUserActions(APIView):
|
||||
return Response({"detail": "No matching categories found or access denied"}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
added_count = 0
|
||||
tag = None
|
||||
for category in categories:
|
||||
if category.is_lms_course:
|
||||
tag, _ = Tag.objects.get_or_create(title=category.title[:100])
|
||||
|
||||
for m in media:
|
||||
if not m.category.filter(uid=category.uid).exists():
|
||||
m.category.add(category)
|
||||
added_count += 1
|
||||
if tag:
|
||||
m.tags.add(tag)
|
||||
|
||||
return Response({"detail": f"Added {added_count} media items to {categories.count()} categories"})
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import React from 'react';
|
||||
import './BulkActionsDropdown.scss';
|
||||
import { translateString } from '../utils/helpers/';
|
||||
import { inEmbeddedApp } from '../utils/helpers/embeddedApp';
|
||||
|
||||
interface BulkActionsDropdownProps {
|
||||
selectedCount: number;
|
||||
@@ -18,45 +19,46 @@ interface BulkActionGroup {
|
||||
actions: BulkAction[];
|
||||
}
|
||||
|
||||
const BULK_ACTION_GROUPS: BulkActionGroup[] = [
|
||||
{
|
||||
label: translateString('Sharing'),
|
||||
actions: [
|
||||
{ value: 'add-remove-coviewers', label: translateString('Share with Co-Viewers'), enabled: true },
|
||||
{ value: 'add-remove-coeditors', label: translateString('Share with Co-Editors'), enabled: true },
|
||||
{ value: 'add-remove-coowners', label: translateString('Share with Co-Owners'), enabled: true },
|
||||
{ value: 'add-remove-category', label: translateString('Share with Course Members'), enabled: true },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: translateString('Organization'),
|
||||
actions: [
|
||||
{ value: 'add-remove-playlist', label: translateString('Add to / Remove from Playlist'), enabled: true },
|
||||
{ value: 'add-remove-tags', label: translateString('Add / Remove Tags'), enabled: true },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: translateString('Settings'),
|
||||
actions: [
|
||||
{ value: 'enable-comments', label: translateString('Enable Comments'), enabled: true },
|
||||
{ value: 'disable-comments', label: translateString('Disable Comments'), enabled: true },
|
||||
{ value: 'delete-comments', label: translateString('Delete Comments'), enabled: true },
|
||||
{ value: 'enable-download', label: translateString('Enable Download'), enabled: true },
|
||||
{ value: 'disable-download', label: translateString('Disable Download'), enabled: true },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: translateString('Management'),
|
||||
actions: [
|
||||
{ value: 'publish-state', label: translateString('Publish State'), enabled: true },
|
||||
{ value: 'change-owner', label: translateString('Change Owner'), enabled: true },
|
||||
{ value: 'copy-media', label: translateString('Copy Media'), enabled: true },
|
||||
{ value: 'delete-media', label: translateString('Delete Media'), enabled: true },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
export const BulkActionsDropdown: React.FC<BulkActionsDropdownProps> = ({ selectedCount, onActionSelect }) => {
|
||||
const isLmsMode = inEmbeddedApp();
|
||||
|
||||
const BULK_ACTION_GROUPS: BulkActionGroup[] = [
|
||||
{
|
||||
label: translateString('Sharing'),
|
||||
actions: [
|
||||
{ value: 'add-remove-coviewers', label: translateString('Share with Co-Viewers'), enabled: true },
|
||||
{ value: 'add-remove-coeditors', label: translateString('Share with Co-Editors'), enabled: true },
|
||||
{ value: 'add-remove-coowners', label: translateString('Share with Co-Owners'), enabled: true },
|
||||
{ value: 'add-remove-category', label: isLmsMode ? translateString('Share with Course Members') : translateString('Add / Remove from Categories'), enabled: true },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: translateString('Organization'),
|
||||
actions: [
|
||||
{ value: 'add-remove-playlist', label: translateString('Add to / Remove from Playlist'), enabled: true },
|
||||
{ value: 'add-remove-tags', label: translateString('Add / Remove Tags'), enabled: true },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: translateString('Settings'),
|
||||
actions: [
|
||||
{ value: 'enable-comments', label: translateString('Enable Comments'), enabled: true },
|
||||
{ value: 'disable-comments', label: translateString('Disable Comments'), enabled: true },
|
||||
{ value: 'delete-comments', label: translateString('Delete Comments'), enabled: true },
|
||||
{ value: 'enable-download', label: translateString('Enable Download'), enabled: true },
|
||||
{ value: 'disable-download', label: translateString('Disable Download'), enabled: true },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: translateString('Management'),
|
||||
actions: [
|
||||
{ value: 'publish-state', label: translateString('Publish State'), enabled: true },
|
||||
{ value: 'change-owner', label: translateString('Change Owner'), enabled: true },
|
||||
{ value: 'copy-media', label: translateString('Copy Media'), enabled: true },
|
||||
{ value: 'delete-media', label: translateString('Delete Media'), enabled: true },
|
||||
],
|
||||
},
|
||||
];
|
||||
const noSelection = selectedCount === 0;
|
||||
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user