Skip to content

Commit cc63e74

Browse files
committed
add liasubfolder to ui
1 parent 0c5be78 commit cc63e74

8 files changed

Lines changed: 120 additions & 11 deletions

File tree

dist/index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/server/public/index.html

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,22 @@ <h3 class="settings-heading" data-i18n="settings.scorm.title">
533533
>Recommended for Moodle 4</span
534534
>
535535
</div>
536+
537+
<div class="form-group">
538+
<label>
539+
<input
540+
type="checkbox"
541+
id="scormLiaSubfolder"
542+
name="option_liaSubfolder"
543+
/>
544+
<span data-i18n="settings.liaSubfolder"
545+
>Separate Content Folder</span
546+
>
547+
</label>
548+
<span class="hint" data-i18n="settings.liaSubfolderHint"
549+
>Place course files (md, images, audio) in a content/ subfolder</span
550+
>
551+
</div>
536552
</div>
537553

538554
<!-- xAPI Settings -->
@@ -695,6 +711,22 @@ <h3 class="settings-heading" data-i18n="settings.xapi.title">
695711
>Output as ZIP file</span
696712
>
697713
</div>
714+
715+
<div class="form-group">
716+
<label>
717+
<input
718+
type="checkbox"
719+
id="xapiLiaSubfolder"
720+
name="option_liaSubfolder"
721+
/>
722+
<span data-i18n="settings.liaSubfolder"
723+
>Separate Content Folder</span
724+
>
725+
</label>
726+
<span class="hint" data-i18n="settings.liaSubfolderHint"
727+
>Place course files (md, images, audio) in a content/ subfolder</span
728+
>
729+
</div>
698730
</div>
699731

700732
<!-- IMS Settings -->
@@ -718,6 +750,22 @@ <h3 class="settings-heading" data-i18n="settings.ims.title">
718750
>Persistent storage in browser</span
719751
>
720752
</div>
753+
754+
<div class="form-group">
755+
<label>
756+
<input
757+
type="checkbox"
758+
id="imsLiaSubfolder"
759+
name="option_liaSubfolder"
760+
/>
761+
<span data-i18n="settings.liaSubfolder"
762+
>Separate Content Folder</span
763+
>
764+
</label>
765+
<span class="hint" data-i18n="settings.liaSubfolderHint"
766+
>Place course files (md, images, audio) in a content/ subfolder</span
767+
>
768+
</div>
721769
</div>
722770

723771
<!-- Web Settings -->

dist/server/public/locales/de.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@
6363
"settings.scorm.useIframeHint": "Für bessere Kompatibilität in einigen LMS",
6464
"settings.scorm.embedMarkdown": "Markdown einbetten",
6565
"settings.scorm.embedMarkdownHint": "Empfohlen für Moodle 4",
66+
"settings.liaSubfolder": "Inhalte in Unterordner",
67+
"settings.liaSubfolderHint": "Kursdateien (md, Bilder, Audio) in einen content/-Unterordner legen",
6668
"settings.xapi.title": "xAPI-Einstellungen",
6769
"settings.xapi.lrsEndpoint": "LRS-Endpunkt",
6870
"settings.xapi.lrsEndpointHint": "URL des Learning Record Store (LRS) Endpunkts",

dist/server/public/locales/en.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@
6363
"settings.scorm.useIframeHint": "For better compatibility in some LMS",
6464
"settings.scorm.embedMarkdown": "Embed Markdown",
6565
"settings.scorm.embedMarkdownHint": "Recommended for Moodle 4",
66+
"settings.liaSubfolder": "Separate Content Folder",
67+
"settings.liaSubfolderHint": "Place course files (md, images, audio) in a content/ subfolder",
6668
"settings.xapi.title": "xAPI Settings",
6769
"settings.xapi.lrsEndpoint": "LRS Endpoint",
6870
"settings.xapi.lrsEndpointHint": "URL of the Learning Record Store (LRS) endpoint",

src/server/public/index.html

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,22 @@ <h3 class="settings-heading" data-i18n="settings.scorm.title">
533533
>Recommended for Moodle 4</span
534534
>
535535
</div>
536+
537+
<div class="form-group">
538+
<label>
539+
<input
540+
type="checkbox"
541+
id="scormLiaSubfolder"
542+
name="option_liaSubfolder"
543+
/>
544+
<span data-i18n="settings.liaSubfolder"
545+
>Separate Content Folder</span
546+
>
547+
</label>
548+
<span class="hint" data-i18n="settings.liaSubfolderHint"
549+
>Place course files (md, images, audio) in a content/ subfolder</span
550+
>
551+
</div>
536552
</div>
537553

538554
<!-- xAPI Settings -->
@@ -695,6 +711,22 @@ <h3 class="settings-heading" data-i18n="settings.xapi.title">
695711
>Output as ZIP file</span
696712
>
697713
</div>
714+
715+
<div class="form-group">
716+
<label>
717+
<input
718+
type="checkbox"
719+
id="xapiLiaSubfolder"
720+
name="option_liaSubfolder"
721+
/>
722+
<span data-i18n="settings.liaSubfolder"
723+
>Separate Content Folder</span
724+
>
725+
</label>
726+
<span class="hint" data-i18n="settings.liaSubfolderHint"
727+
>Place course files (md, images, audio) in a content/ subfolder</span
728+
>
729+
</div>
698730
</div>
699731

700732
<!-- IMS Settings -->
@@ -718,6 +750,22 @@ <h3 class="settings-heading" data-i18n="settings.ims.title">
718750
>Persistent storage in browser</span
719751
>
720752
</div>
753+
754+
<div class="form-group">
755+
<label>
756+
<input
757+
type="checkbox"
758+
id="imsLiaSubfolder"
759+
name="option_liaSubfolder"
760+
/>
761+
<span data-i18n="settings.liaSubfolder"
762+
>Separate Content Folder</span
763+
>
764+
</label>
765+
<span class="hint" data-i18n="settings.liaSubfolderHint"
766+
>Place course files (md, images, audio) in a content/ subfolder</span
767+
>
768+
</div>
721769
</div>
722770

723771
<!-- Web Settings -->

src/server/public/locales/de.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@
6363
"settings.scorm.useIframeHint": "Für bessere Kompatibilität in einigen LMS",
6464
"settings.scorm.embedMarkdown": "Markdown einbetten",
6565
"settings.scorm.embedMarkdownHint": "Empfohlen für Moodle 4",
66+
"settings.liaSubfolder": "Inhalte in Unterordner",
67+
"settings.liaSubfolderHint": "Kursdateien (md, Bilder, Audio) in einen content/-Unterordner legen",
6668
"settings.xapi.title": "xAPI-Einstellungen",
6769
"settings.xapi.lrsEndpoint": "LRS-Endpunkt",
6870
"settings.xapi.lrsEndpointHint": "URL des Learning Record Store (LRS) Endpunkts",

src/server/public/locales/en.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@
6363
"settings.scorm.useIframeHint": "For better compatibility in some LMS",
6464
"settings.scorm.embedMarkdown": "Embed Markdown",
6565
"settings.scorm.embedMarkdownHint": "Recommended for Moodle 4",
66+
"settings.liaSubfolder": "Separate Content Folder",
67+
"settings.liaSubfolderHint": "Place course files (md, images, audio) in a content/ subfolder",
6668
"settings.xapi.title": "xAPI Settings",
6769
"settings.xapi.lrsEndpoint": "LRS Endpoint",
6870
"settings.xapi.lrsEndpointHint": "URL of the Learning Record Store (LRS) endpoint",

src/server/queue/jobQueue.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,7 @@ export class JobQueue extends EventEmitter {
255255
'translate',
256256
'debugging',
257257
'remove',
258+
'lia',
258259
],
259260
scorm2004: [
260261
'scorm',
@@ -264,9 +265,10 @@ export class JobQueue extends EventEmitter {
264265
'translate',
265266
'debugging',
266267
'remove',
268+
'lia',
267269
],
268-
xapi: ['xapi'],
269-
ims: ['ims'],
270+
xapi: ['xapi', 'lia'],
271+
ims: ['ims', 'lia'],
270272
web: ['web'],
271273
pdf: ['pdf'],
272274
android: ['android'],
@@ -283,25 +285,28 @@ export class JobQueue extends EventEmitter {
283285
'scorm1.2': (key: string) => {
284286
// Convert camelCase to kebab-case
285287
const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase()
286-
// Add scorm- prefix if not already present and not a general option
287-
if (
288-
!key.startsWith('scorm') &&
289-
!['mastery-score', 'typical-duration'].includes(kebabKey)
290-
) {
291-
return key.startsWith('scorm') ? kebabKey : `scorm-${kebabKey}`
292-
}
293-
// Handle special cases
288+
// Handle special cases first
289+
if (key === 'liaSubfolder') return 'lia-subfolder'
294290
if (key === 'masteryScore') return 'scorm-masteryScore'
295291
if (key === 'typicalDuration') return 'scorm-typicalDuration'
296292
if (key === 'scormOrganization') return 'scorm-organization'
297293
if (key === 'scormIframe') return 'scorm-iframe'
298294
if (key === 'scormEmbed') return 'scorm-embed'
299295
if (key === 'scormAlwaysActive') return 'scorm-alwaysActive'
296+
// Add scorm- prefix if not already present and not a general option
297+
if (
298+
!key.startsWith('scorm') &&
299+
!['mastery-score', 'typical-duration'].includes(kebabKey)
300+
) {
301+
return `scorm-${kebabKey}`
302+
}
300303
return kebabKey
301304
},
302305
scorm2004: (key: string) => {
303306
// Same as scorm1.2
304307
const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase()
308+
// Handle special cases first
309+
if (key === 'liaSubfolder') return 'lia-subfolder'
305310
if (key === 'masteryScore') return 'scorm-masteryScore'
306311
if (key === 'typicalDuration') return 'scorm-typicalDuration'
307312
if (key === 'scormOrganization') return 'scorm-organization'

0 commit comments

Comments
 (0)