This commit is contained in:
Markos Gogoulos
2026-03-02 09:41:33 +02:00
parent 5ac0515d05
commit 45774fbc8c
19 changed files with 50 additions and 61 deletions

View File

@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
import { ApiUrlContext, LinksConsumer, MemberContext } from '../utils/contexts';
import { PageStore, ProfilePageStore } from '../utils/stores';
import { ProfilePageActions, PageActions } from '../utils/actions';
import { inEmbeddedApp, inSelectMediaEmbedMode, associateMediaWithLtiCategory, translateString } from '../utils/helpers/';
import { inEmbeddedApp, inSelectMediaEmbedMode, translateString } from '../utils/helpers/';
import { MediaListWrapper } from '../components/MediaListWrapper';
import ProfilePagesHeader from '../components/profile-page/ProfilePagesHeader';
import ProfilePagesContent from '../components/profile-page/ProfilePagesContent';
@@ -213,9 +213,6 @@ export class ProfileMediaPage extends Page {
newSelectedMedia.add(mediaId);
console.log('Selected media item:', mediaId);
// Associate media with the current LTI course category (fire-and-forget)
associateMediaWithLtiCategory(mediaId);
// Send postMessage to parent window (Moodle TinyMCE plugin)
if (window.parent !== window) {
// Construct the embed URL

View File

@@ -11,7 +11,7 @@ import { ProfileMediaFilters } from '../components/search-filters/ProfileMediaFi
import { ProfileMediaTags } from '../components/search-filters/ProfileMediaTags';
import { ProfileMediaSorting } from '../components/search-filters/ProfileMediaSorting';
import { BulkActionsModals } from '../components/BulkActionsModals';
import { inEmbeddedApp, inSelectMediaEmbedMode, associateMediaWithLtiCategory, translateString } from '../utils/helpers';
import { inEmbeddedApp, inSelectMediaEmbedMode } from '../utils/helpers';
import { withBulkActions } from '../utils/hoc/withBulkActions';
import { Page } from './_Page';
@@ -357,9 +357,6 @@ class ProfileSharedByMePage extends Page {
newSelectedMedia.add(mediaId);
console.log('Selected media item:', mediaId);
// Associate media with the current LTI course category (fire-and-forget)
associateMediaWithLtiCategory(mediaId);
// Send postMessage to parent window (Moodle TinyMCE plugin)
if (window.parent !== window) {
// Construct the embed URL

View File

@@ -10,7 +10,7 @@ import { LazyLoadItemListAsync } from '../components/item-list/LazyLoadItemListA
import { ProfileMediaFilters } from '../components/search-filters/ProfileMediaFilters';
import { ProfileMediaTags } from '../components/search-filters/ProfileMediaTags';
import { ProfileMediaSorting } from '../components/search-filters/ProfileMediaSorting';
import { inEmbeddedApp, inSelectMediaEmbedMode, associateMediaWithLtiCategory, translateString } from '../utils/helpers';
import { inEmbeddedApp, inSelectMediaEmbedMode } from '../utils/helpers';
import { Page } from './_Page';
@@ -355,9 +355,6 @@ export class ProfileSharedWithMePage extends Page {
newSelectedMedia.add(mediaId);
console.log('Selected media item:', mediaId);
// Associate media with the current LTI course category (fire-and-forget)
associateMediaWithLtiCategory(mediaId);
// Send postMessage to parent window (Moodle TinyMCE plugin)
if (window.parent !== window) {
// Construct the embed URL

View File

@@ -49,33 +49,3 @@ export function getLtiContextId(): string | null {
return null;
}
}
export function associateMediaWithLtiCategory(mediaId: string): void {
const ltiContextId = getLtiContextId();
if (!ltiContextId || !mediaId) {
return;
}
const csrfMatch = document.cookie.match(/(?:^|;\s*)csrftoken=([^;]+)/);
const csrfToken = csrfMatch ? csrfMatch[1] : '';
fetch('/api/v1/media/user/bulk_actions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRFToken': csrfToken,
},
body: JSON.stringify({
action: 'add_to_category',
media_ids: [mediaId],
lti_context_id: ltiContextId,
}),
}).then(response => {
if (!response.ok) {
console.warn('[MediaCMS LTI] Failed to associate media with course category:', response.statusText);
}
}).catch(error => {
console.warn('[MediaCMS LTI] Failed to associate media with course category:', error);
});
}

View File

@@ -14,4 +14,4 @@ export * from './quickSort';
export * from './requests';
export { translateString } from './translate';
export { replaceString } from './replacementStrings';
export { inEmbeddedApp, inSelectMediaEmbedMode, isSelectMediaMode, associateMediaWithLtiCategory } from './embeddedApp';
export { inEmbeddedApp, inSelectMediaEmbedMode, isSelectMediaMode } from './embeddedApp';