mirror of
https://github.com/mediacms-io/mediacms.git
synced 2026-03-09 06:27:21 -04:00
foo
This commit is contained in:
@@ -201,11 +201,11 @@ class MediaPublishForm(forms.ModelForm):
|
|||||||
|
|
||||||
# Check query parameter
|
# Check query parameter
|
||||||
mode = self.request.GET.get('mode', '')
|
mode = self.request.GET.get('mode', '')
|
||||||
if mode == 'embed_mode':
|
if mode == 'lms_embed_mode':
|
||||||
return True
|
return True
|
||||||
|
|
||||||
# Check session storage
|
# Check session storage
|
||||||
if self.request.session.get('media_cms_embed_mode') == 'true':
|
if self.request.session.get('lms_embed_mode') == 'true':
|
||||||
return True
|
return True
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|||||||
@@ -3,17 +3,17 @@ export function inEmbeddedApp() {
|
|||||||
const params = new URL(globalThis.location.href).searchParams;
|
const params = new URL(globalThis.location.href).searchParams;
|
||||||
const mode = params.get('mode');
|
const mode = params.get('mode');
|
||||||
|
|
||||||
if (mode === 'embed_mode') {
|
if (mode === 'lms_embed_mode') {
|
||||||
sessionStorage.setItem('media_cms_embed_mode', 'true');
|
sessionStorage.setItem('lms_embed_mode', 'true');
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mode === 'standard') {
|
if (mode === 'standard') {
|
||||||
sessionStorage.removeItem('media_cms_embed_mode');
|
sessionStorage.removeItem('lms_embed_mode');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return sessionStorage.getItem('media_cms_embed_mode') === 'true';
|
return sessionStorage.getItem('lms_embed_mode') === 'true';
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,33 +9,37 @@ function xmldb_filter_mediacms_install() {
|
|||||||
global $CFG, $DB;
|
global $CFG, $DB;
|
||||||
require_once($CFG->libdir . '/filterlib.php');
|
require_once($CFG->libdir . '/filterlib.php');
|
||||||
|
|
||||||
// 1. Enable the filter globally.
|
// Enable the filter globally.
|
||||||
filter_set_global_state('filter_mediacms', TEXTFILTER_ON);
|
filter_set_global_state('filter_mediacms', TEXTFILTER_ON);
|
||||||
|
|
||||||
// 2. Move to top priority (lowest sortorder).
|
// Move to top priority (lowest sortorder).
|
||||||
// Get all global active filters.
|
$syscontextid = context_system::instance()->id;
|
||||||
$filters = $DB->get_records('filter_active', ['contextid' => SYSCONTEXTID], 'sortorder ASC', 'filter, id, sortorder');
|
$filters = $DB->get_records('filter_active', ['contextid' => $syscontextid], 'sortorder ASC');
|
||||||
|
|
||||||
// If we are already the only one or something failed, stop.
|
|
||||||
if (empty($filters)) {
|
if (empty($filters)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prepare the new order: mediacms first, then everyone else (excluding mediacms if present).
|
// Separate mediacms from other filters by inspecting the record property,
|
||||||
$sortedfilters = ['filter_mediacms'];
|
// not the array key (get_records indexes by id, not by filter name).
|
||||||
foreach ($filters as $filtername => $record) {
|
$mediacmsrecord = null;
|
||||||
if ($filtername !== 'filter_mediacms') {
|
$otherrecords = [];
|
||||||
$sortedfilters[] = $filtername;
|
foreach ($filters as $record) {
|
||||||
|
if ($record->filter === 'filter_mediacms') {
|
||||||
|
$mediacmsrecord = $record;
|
||||||
|
} else {
|
||||||
|
$otherrecords[] = $record;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write back the new sort orders.
|
// Reassign sortorders: mediacms first, then everyone else.
|
||||||
$sortorder = 1;
|
$sortorder = 1;
|
||||||
foreach ($sortedfilters as $filtername) {
|
if ($mediacmsrecord) {
|
||||||
if ($record = $DB->get_record('filter_active', ['filter' => $filtername, 'contextid' => SYSCONTEXTID])) {
|
$mediacmsrecord->sortorder = $sortorder++;
|
||||||
$record->sortorder = $sortorder;
|
$DB->update_record('filter_active', $mediacmsrecord);
|
||||||
$DB->update_record('filter_active', $record);
|
}
|
||||||
$sortorder++;
|
foreach ($otherrecords as $record) {
|
||||||
}
|
$record->sortorder = $sortorder++;
|
||||||
|
$DB->update_record('filter_active', $record);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class SelectMediaView(View):
|
|||||||
|
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
"""Display media selection interface - redirects to user's profile page"""
|
"""Display media selection interface - redirects to user's profile page"""
|
||||||
profile_url = f"/user/{request.user.username}?mode=embed_mode&action=select_media"
|
profile_url = f"/user/{request.user.username}?mode=lms_embed_mode&action=select_media"
|
||||||
return HttpResponseRedirect(profile_url)
|
return HttpResponseRedirect(profile_url)
|
||||||
|
|
||||||
@method_decorator(csrf_exempt)
|
@method_decorator(csrf_exempt)
|
||||||
|
|||||||
@@ -234,7 +234,7 @@ class LaunchView(View):
|
|||||||
# Check if base_url already has query parameters
|
# Check if base_url already has query parameters
|
||||||
separator = '&' if '?' in base_url else '?'
|
separator = '&' if '?' in base_url else '?'
|
||||||
|
|
||||||
query_parts = ['mode=embed_mode']
|
query_parts = ['mode=lms_embed_mode']
|
||||||
query_parts.extend(embed_params)
|
query_parts.extend(embed_params)
|
||||||
|
|
||||||
return f"{base_url}{separator}{'&'.join(query_parts)}"
|
return f"{base_url}{separator}{'&'.join(query_parts)}"
|
||||||
@@ -429,7 +429,7 @@ class LaunchView(View):
|
|||||||
except Media.DoesNotExist:
|
except Media.DoesNotExist:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return reverse('lti:my_media') + '?mode=embed_mode'
|
return reverse('lti:my_media') + '?mode=lms_embed_mode'
|
||||||
|
|
||||||
def handle_state_not_found(self, request, platform=None):
|
def handle_state_not_found(self, request, platform=None):
|
||||||
"""
|
"""
|
||||||
@@ -582,7 +582,7 @@ class LaunchView(View):
|
|||||||
base_url = reverse('lti:embed_media', args=[media_token])
|
base_url = reverse('lti:embed_media', args=[media_token])
|
||||||
redirect_url = self.build_url_with_embed_params(base_url, embed_params)
|
redirect_url = self.build_url_with_embed_params(base_url, embed_params)
|
||||||
else:
|
else:
|
||||||
redirect_url = reverse('lti:select_media') + '?mode=embed_mode'
|
redirect_url = reverse('lti:select_media') + '?mode=lms_embed_mode'
|
||||||
|
|
||||||
# Use HTML meta refresh to ensure session cookie is preserved in cross-site contexts
|
# Use HTML meta refresh to ensure session cookie is preserved in cross-site contexts
|
||||||
html_content = f"""
|
html_content = f"""
|
||||||
@@ -657,7 +657,7 @@ class MyMediaLTIView(View):
|
|||||||
if not lti_session:
|
if not lti_session:
|
||||||
return JsonResponse({'error': 'Not authenticated via LTI'}, status=403)
|
return JsonResponse({'error': 'Not authenticated via LTI'}, status=403)
|
||||||
|
|
||||||
profile_url = f"/user/{request.user.username}?mode=embed_mode"
|
profile_url = f"/user/{request.user.username}?mode=lms_embed_mode"
|
||||||
return HttpResponseRedirect(profile_url)
|
return HttpResponseRedirect(profile_url)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -229,10 +229,10 @@
|
|||||||
try {
|
try {
|
||||||
const params = new URLSearchParams(window.location.search);
|
const params = new URLSearchParams(window.location.search);
|
||||||
const mode = params.get('mode');
|
const mode = params.get('mode');
|
||||||
if (mode === 'embed_mode') {
|
if (mode === 'lms_embed_mode') {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return sessionStorage.getItem('media_cms_embed_mode') === 'true';
|
return sessionStorage.getItem('lms_embed_mode') === 'true';
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user