feat(vocab): restore manual hard vocabulary removal
This commit is contained in:
@@ -78,6 +78,9 @@
|
||||
<button v-else-if="showSkipButton" @click="skip">
|
||||
{{ $t('socialnetwork.vocab.practice.skip') }}
|
||||
</button>
|
||||
<button v-if="isCurrentMarkedHard" @click="unmarkCurrentAsHard">
|
||||
{{ $t('socialnetwork.vocab.practice.unmarkHard') }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div v-if="lastWrongReview" class="solution-card solution-card--persistent">
|
||||
@@ -414,12 +417,13 @@ export default {
|
||||
});
|
||||
return true;
|
||||
},
|
||||
unmarkCurrentAsHard() {
|
||||
async unmarkCurrentAsHard() {
|
||||
if (!this.current) return;
|
||||
const matchingKey = this.findMatchingHardKey(this.current);
|
||||
if (!matchingKey) return;
|
||||
this.removeHardEntriesForItem(this.current);
|
||||
this.saveHardVocabMap();
|
||||
await this.clearSrsHardStatus(this.current);
|
||||
this.maybeFinishHardPhase();
|
||||
},
|
||||
addCurrentToCycle() {
|
||||
@@ -1252,7 +1256,7 @@ export default {
|
||||
clearSrsHardStatus(item) {
|
||||
const itemKey = String(item?.itemKey || item?.id || '').trim();
|
||||
if (!itemKey || !this.openParams?.courseId) return;
|
||||
apiClient.patch('/api/vocab/srs/hard', {
|
||||
return apiClient.patch('/api/vocab/srs/hard', {
|
||||
courseId: this.openParams.courseId,
|
||||
itemKey
|
||||
}).catch((error) => {
|
||||
|
||||
@@ -46,6 +46,13 @@
|
||||
<strong>{{ entry.learning }}</strong>
|
||||
<span>{{ entry.reference }}</span>
|
||||
</div>
|
||||
<button
|
||||
type="button"
|
||||
class="button-secondary course-hard-list__remove"
|
||||
@click="unmarkHardVocab(entry)"
|
||||
>
|
||||
{{ $t('socialnetwork.vocab.courses.unmarkVocabHard') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -606,6 +613,21 @@ export default {
|
||||
this.hardVocabList = [];
|
||||
}
|
||||
},
|
||||
async unmarkHardVocab(entry) {
|
||||
const itemKey = String(entry?.itemKey || entry?.key || '').trim();
|
||||
if (!itemKey || !this.courseId) return;
|
||||
try {
|
||||
await apiClient.patch('/api/vocab/srs/hard', {
|
||||
courseId: this.courseId,
|
||||
itemKey
|
||||
});
|
||||
this.hardVocabList = this.hardVocabList
|
||||
.filter((item) => String(item?.itemKey || item?.key || '').trim() !== itemKey);
|
||||
} catch (error) {
|
||||
console.warn('Konnte die Hart-Markierung nicht entfernen:', error);
|
||||
await this.refreshHardVocabList();
|
||||
}
|
||||
},
|
||||
handleWindowFocus() {
|
||||
this.refreshHardVocabList();
|
||||
this.syncSrsSessionProgress();
|
||||
|
||||
Reference in New Issue
Block a user