simplify database interface

This commit is contained in:
Alex Yatskov 2017-10-29 10:42:39 -07:00
parent 7d29e5b533
commit c62cc01642
3 changed files with 12 additions and 31 deletions

View File

@ -220,7 +220,7 @@ class Database {
return result;
}
async getTitles() {
async summarize() {
if (this.db) {
return this.db.dictionaries.toArray();
} else {
@ -228,21 +228,6 @@ class Database {
}
}
async getTitlesWithSequences() {
if (!this.db) {
throw 'Database not initialized';
}
const titles = [];
await this.db.dictionaries.each(row => {
if (row.hasSequences) {
titles.push(row.title);
}
});
return titles;
}
async importDictionary(archive, callback) {
if (!this.db) {
throw 'Database not initialized';

View File

@ -109,12 +109,12 @@ async function formMainDictionaryOptionsPopulate(options) {
select.append($('<option class="text-muted" value="">Not selected</option>'));
let mainDictionary = '';
const formOptions = [$];
const titles = await utilDatabaseGetTitlesWithSequences();
for (const title of titles) {
select.append($(`<option value="${title}">${title}</option>`));
if (title === options.general.mainDictionary) {
mainDictionary = title;
for (const dictRow of await utilDatabaseSummarize()) {
if (dictRow.hasSequences) {
select.append($(`<option value="${dictRow.title}">${dictRow.title}</option>`));
if (dictRow.title === options.general.mainDictionary) {
mainDictionary = dictRow.title;
}
}
}
@ -271,7 +271,7 @@ async function dictionaryGroupsPopulate(options) {
const dictGroups = $('#dict-groups').empty();
const dictWarning = $('#dict-warning').hide();
const dictRows = await utilDatabaseGetTitles();
const dictRows = await utilDatabaseSummarize();
if (dictRows.length === 0) {
dictWarning.show();
}

View File

@ -75,18 +75,14 @@ function utilAnkiGetDeckNames() {
return utilBackend().anki.getDeckNames();
}
function utilDatabaseSummarize() {
return utilBackend().translator.database.summarize();
}
function utilAnkiGetModelFieldNames(modelName) {
return utilBackend().anki.getModelFieldNames(modelName);
}
function utilDatabaseGetTitles() {
return utilBackend().translator.database.getTitles();
}
function utilDatabaseGetTitlesWithSequences() {
return utilBackend().translator.database.getTitlesWithSequences();
}
function utilDatabasePurge() {
return utilBackend().translator.database.purge();
}