MCPcopy Create free account
hub / github.com/Eltaurus-Lt/CourseDump2022 / menuToggles

Class menuToggles

menu.js:44–106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42}
43
44class menuToggles {
45 constructor() {
46 this.DownloadMedia = document.getElementById("setting-downloadMedia");
47 this.ExtraFields = document.getElementById("setting-extraFields");
48 this.LevelTags = document.getElementById("setting-levelTags");
49 this.AnkiPrompt = document.getElementById("setting-ankiPrompt");
50
51 this.LearningProgress = document.getElementById("setting-learningProgress");
52 this.AlternativeAnswers = document.getElementById("setting-alternativeAnswers");
53 this.LearnableMeta = document.getElementById("setting-learnableMeta");
54 this.LearnableIds = document.getElementById("setting-learnableIds");
55 this.SkipMedia = document.getElementById("setting-skipMedia");
56 this.CourseMeta = document.getElementById("setting-courseMeta");
57
58 this.Video = document.getElementById("setting-videoFiles");
59
60 this.all = document.querySelectorAll('input[type="checkbox"].toggle');
61 }
62
63 async toSettings() {
64 let current_settings = {
65 "download_media": this.DownloadMedia.checked,
66 "extra_fields": this.ExtraFields.checked,
67 "level_tags": this.LevelTags.checked,
68 "anki_import_prompt": this.AnkiPrompt.checked,
69
70 "learning_progress": this.LearningProgress.checked,
71 "alternative_answers": this.AlternativeAnswers.checked,
72 "learnable_meta": this.LearnableMeta.checked,
73 "learnable_ids": this.LearnableIds.checked,
74 "skip_media_download": this.SkipMedia.checked,
75 "course_metadata": this.CourseMeta.checked,
76
77 "videofiles_limit": this.Video.checked ? 'Infinity' : 0
78 };
79
80 for (const [setting, default_value] of Object.entries(default_settings)) {
81 if (!(setting in current_settings && current_settings[setting] !== 'undefined')) {
82 current_settings[setting] = default_value;
83 }
84 }
85
86 saveToStorage({ 'settings': current_settings });
87 }
88
89 async fromSettings() {
90 const settings = await loadSettings();
91
92 this.DownloadMedia.checked = settings["download_media"];
93 this.ExtraFields.checked = settings["extra_fields"];
94 this.LevelTags.checked = settings["level_tags"];
95 this.AnkiPrompt.checked = settings["anki_import_prompt"];
96
97 this.LearningProgress.checked = settings["learning_progress"];
98 this.AlternativeAnswers.checked = settings["alternative_answers"];
99 this.LearnableMeta.checked = settings["learnable_meta"];
100 this.LearnableIds.checked = settings["learnable_ids"];
101 this.SkipMedia.checked = settings["skip_media_download"];

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected