mirror of
https://github.com/mediacms-io/mediacms.git
synced 2026-05-05 20:23:26 -04:00
all
This commit is contained in:
@@ -506,7 +506,14 @@ class MediaBulkUserActions(APIView):
|
|||||||
|
|
||||||
m.save(update_fields=["state", "listable"])
|
m.save(update_fields=["state", "listable"])
|
||||||
|
|
||||||
return Response({"detail": f"State updated to {state} for {media.count()} media items"})
|
if state == "private":
|
||||||
|
MediaPermission.objects.filter(media__in=media).delete()
|
||||||
|
for m in media:
|
||||||
|
rbac_cats = m.category.filter(is_rbac_category=True)
|
||||||
|
if rbac_cats.exists():
|
||||||
|
m.category.remove(*rbac_cats)
|
||||||
|
|
||||||
|
return Response({"detail": f"State updated to {state}"})
|
||||||
|
|
||||||
elif action == "change_owner":
|
elif action == "change_owner":
|
||||||
owner = request.data.get('owner')
|
owner = request.data.get('owner')
|
||||||
|
|||||||
@@ -25,13 +25,18 @@ export const BulkActionPublishStateModal: React.FC<BulkActionPublishStateModalPr
|
|||||||
onError,
|
onError,
|
||||||
csrfToken,
|
csrfToken,
|
||||||
}) => {
|
}) => {
|
||||||
const [selectedState, setSelectedState] = useState('public');
|
const isLmsEmbedMode =
|
||||||
|
sessionStorage.getItem('lms_embed_mode') === 'true' ||
|
||||||
|
new URLSearchParams(window.location.search).get('mode') === 'lms_embed_mode';
|
||||||
|
const availableStates = isLmsEmbedMode ? PUBLISH_STATES.filter((s) => s.value !== 'public') : PUBLISH_STATES;
|
||||||
|
const defaultState = availableStates[0].value;
|
||||||
|
|
||||||
|
const [selectedState, setSelectedState] = useState(defaultState);
|
||||||
const [isProcessing, setIsProcessing] = useState(false);
|
const [isProcessing, setIsProcessing] = useState(false);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!isOpen) {
|
if (!isOpen) {
|
||||||
// Reset state when modal closes
|
setSelectedState(defaultState);
|
||||||
setSelectedState('public');
|
|
||||||
}
|
}
|
||||||
}, [isOpen]);
|
}, [isOpen]);
|
||||||
|
|
||||||
@@ -97,7 +102,7 @@ export const BulkActionPublishStateModal: React.FC<BulkActionPublishStateModalPr
|
|||||||
onChange={(e) => setSelectedState(e.target.value)}
|
onChange={(e) => setSelectedState(e.target.value)}
|
||||||
disabled={isProcessing}
|
disabled={isProcessing}
|
||||||
>
|
>
|
||||||
{PUBLISH_STATES.map((state) => (
|
{availableStates.map((state) => (
|
||||||
<option key={state.value} value={state.value}>
|
<option key={state.value} value={state.value}>
|
||||||
{state.label}
|
{state.label}
|
||||||
</option>
|
</option>
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user