Compare commits

..

4 Commits

Author SHA1 Message Date
Markos Gogoulos
65f045d451 fix 2025-10-20 13:49:04 +03:00
Markos Gogoulos
53f8ed6bea fix 2025-10-20 13:47:21 +03:00
Markos Gogoulos
b580ed707b fix 2025-10-20 13:46:48 +03:00
Markos Gogoulos
9fb26a7c07 execute bulk actions on user media 2025-10-20 11:12:56 +03:00
6 changed files with 36 additions and 46 deletions

View File

@ -1 +1 @@
VERSION = "6.9.103"
VERSION = "6.8.210"

View File

@ -658,10 +658,10 @@ def change_media_owner(media_id, new_user):
return None
# Change the owner
previous_user = media.user
# previous_user = media.user
# keep original user as owner by adding a models.MediaPermission entry with permission=owner
if not models.MediaPermission.objects.filter(media=media, user=previous_user, permission="owner").exists():
models.MediaPermission.objects.create(media=media, user=previous_user, owner_user=new_user, permission="owner")
# if not models.MediaPermission.objects.filter(media=media, user=previous_user, permission="owner").exists():
# models.MediaPermission.objects.create(media=media, user=previous_user, owner_user=new_user, permission="owner")
media.user = new_user
media.save(update_fields=["user"])

View File

@ -341,4 +341,19 @@ body.dark_theme {
--user-action-form-inner-input-border-color: #303030;
--user-action-form-inner-input-text-color: rgba(255, 255, 255, 0.88);
--user-action-form-inner-input-bg-color: #121212;
/* ################################################## */
.media-edit-nav {
background-color: #1a1a1a !important;
a {
color: #cccccc !important;
&[style*="font-weight: bold"] {
color: #ffffff !important;
border-bottom-color: #ffffff !important;
}
}
}
}

View File

@ -24,35 +24,10 @@ export function MediaItem(props) {
const finalClassname = containerClassname +
(props.showSelection ? ' with-selection' : '') +
(props.isSelected ? ' selected' : '') +
(props.hasAnySelection ? ' has-any-selection' : '');
const handleItemClick = (e) => {
// Only handle clicks when selection mode is active AND at least one item is selected
if (props.showSelection && props.hasAnySelection) {
// Check if click was on the checkbox (already handled)
if (e.target.type === 'checkbox' || e.target.closest('.item-selection-checkbox')) {
return;
}
// Check if click was on the edit icon or publish icon
if (e.target.closest('.item-edit-icon') || e.target.closest('.item-view-icon')) {
return;
}
// Prevent default link behavior
e.preventDefault();
e.stopPropagation();
// Toggle the checkbox
if (props.onCheckboxChange) {
props.onCheckboxChange({ target: { checked: !props.isSelected } });
}
}
};
(props.isSelected ? ' selected' : '');
return (
<div className={finalClassname} onClick={handleItemClick}>
<div className={finalClassname}>
<div className="item-content">
{props.showSelection && (
<div className="item-selection-checkbox">

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long