diff --git a/src/public/app/widgets/type_widgets/options/advanced/database_anonymization.js b/src/public/app/widgets/type_widgets/options/advanced/database_anonymization.ts
similarity index 80%
rename from src/public/app/widgets/type_widgets/options/advanced/database_anonymization.js
rename to src/public/app/widgets/type_widgets/options/advanced/database_anonymization.ts
index e47f40b39..1b17253ea 100644
--- a/src/public/app/widgets/type_widgets/options/advanced/database_anonymization.js
+++ b/src/public/app/widgets/type_widgets/options/advanced/database_anonymization.ts
@@ -2,6 +2,7 @@ import OptionsWidget from "../options_widget.js";
import toastService from "../../../../services/toast.js";
import server from "../../../../services/server.js";
import { t } from "../../../../services/i18n.js";
+import type { OptionMap } from "../../../../../../services/options_interface.js";
const TPL = `
@@ -33,7 +34,22 @@ const TPL = `
`;
+// TODO: Deduplicate with server
+interface AnonymizeResponse {
+ success: boolean;
+ anonymizedFilePath: string;
+}
+
+interface AnonymizedDbResponse {
+ filePath: string;
+}
+
export default class DatabaseAnonymizationOptions extends OptionsWidget {
+
+ private $anonymizeFullButton!: JQuery;
+ private $anonymizeLightButton!: JQuery;
+ private $existingAnonymizedDatabases!: JQuery;
+
doRender() {
this.$widget = $(TPL);
this.$anonymizeFullButton = this.$widget.find(".anonymize-full-button");
@@ -41,7 +57,7 @@ export default class DatabaseAnonymizationOptions extends OptionsWidget {
this.$anonymizeFullButton.on("click", async () => {
toastService.showMessage(t("database_anonymization.creating_fully_anonymized_database"));
- const resp = await server.post("database/anonymize/full");
+ const resp = await server.post("database/anonymize/full");
if (!resp.success) {
toastService.showError(t("database_anonymization.error_creating_anonymized_database"));
@@ -55,7 +71,7 @@ export default class DatabaseAnonymizationOptions extends OptionsWidget {
this.$anonymizeLightButton.on("click", async () => {
toastService.showMessage(t("database_anonymization.creating_lightly_anonymized_database"));
- const resp = await server.post("database/anonymize/light");
+ const resp = await server.post("database/anonymize/light");
if (!resp.success) {
toastService.showError(t("database_anonymization.error_creating_anonymized_database"));
@@ -69,8 +85,8 @@ export default class DatabaseAnonymizationOptions extends OptionsWidget {
this.$existingAnonymizedDatabases = this.$widget.find(".existing-anonymized-databases");
}
- optionsLoaded(options) {
- server.get("database/anonymized-databases").then((anonymizedDatabases) => {
+ optionsLoaded(options: OptionMap) {
+ server.get("database/anonymized-databases").then((anonymizedDatabases) => {
this.$existingAnonymizedDatabases.empty();
if (!anonymizedDatabases.length) {
diff --git a/src/public/app/widgets/type_widgets/options/advanced/database_integrity_check.js b/src/public/app/widgets/type_widgets/options/advanced/database_integrity_check.ts
similarity index 84%
rename from src/public/app/widgets/type_widgets/options/advanced/database_integrity_check.js
rename to src/public/app/widgets/type_widgets/options/advanced/database_integrity_check.ts
index 48b6927ae..ecd9c3b95 100644
--- a/src/public/app/widgets/type_widgets/options/advanced/database_integrity_check.js
+++ b/src/public/app/widgets/type_widgets/options/advanced/database_integrity_check.ts
@@ -6,22 +6,33 @@ import { t } from "../../../../services/i18n.js";
const TPL = `
${t("database_integrity_check.title")}
-
+
${t("database_integrity_check.description")}
-
+
${t("database_integrity_check.check_button")}
${t("consistency_checks.find_and_fix_button")}
`;
+// TODO: Deduplicate with server
+interface Response {
+ results: {
+ integrity_check: string;
+ }[];
+}
+
export default class DatabaseIntegrityCheckOptions extends OptionsWidget {
+
+ private $checkIntegrityButton!: JQuery;
+ private $findAndFixConsistencyIssuesButton!: JQuery;
+
doRender() {
this.$widget = $(TPL);
this.$checkIntegrityButton = this.$widget.find(".check-integrity-button");
this.$checkIntegrityButton.on("click", async () => {
toastService.showMessage(t("database_integrity_check.checking_integrity"));
- const { results } = await server.get("database/check-integrity");
+ const { results } = await server.get("database/check-integrity");
if (results.length === 1 && results[0].integrity_check === "ok") {
toastService.showMessage(t("database_integrity_check.integrity_check_succeeded"));
diff --git a/src/public/app/widgets/type_widgets/options/advanced/sync.js b/src/public/app/widgets/type_widgets/options/advanced/sync.ts
similarity index 81%
rename from src/public/app/widgets/type_widgets/options/advanced/sync.js
rename to src/public/app/widgets/type_widgets/options/advanced/sync.ts
index 472ff8dbd..a98a7d6c9 100644
--- a/src/public/app/widgets/type_widgets/options/advanced/sync.js
+++ b/src/public/app/widgets/type_widgets/options/advanced/sync.ts
@@ -2,16 +2,21 @@ import OptionsWidget from "../options_widget.js";
import server from "../../../../services/server.js";
import toastService from "../../../../services/toast.js";
import { t } from "../../../../services/i18n.js";
+import type { OptionMap } from "../../../../../../services/options_interface.js";
const TPL = `
${t("sync.title")}
- ${t("sync.force_full_sync_button")}
-
+ ${t("sync.force_full_sync_button")}
+
${t("sync.fill_entity_changes_button")}
`;
export default class AdvancedSyncOptions extends OptionsWidget {
+
+ private $forceFullSyncButton!: JQuery;
+ private $fillEntityChangesButton!: JQuery;
+
doRender() {
this.$widget = $(TPL);
this.$forceFullSyncButton = this.$widget.find(".force-full-sync-button");
@@ -31,5 +36,5 @@ export default class AdvancedSyncOptions extends OptionsWidget {
});
}
- async optionsLoaded(options) {}
+ async optionsLoaded(options: OptionMap) {}
}
diff --git a/src/public/app/widgets/type_widgets/options/advanced/vacuum_database.js b/src/public/app/widgets/type_widgets/options/advanced/vacuum_database.ts
similarity index 94%
rename from src/public/app/widgets/type_widgets/options/advanced/vacuum_database.js
rename to src/public/app/widgets/type_widgets/options/advanced/vacuum_database.ts
index 19c4a21a8..f4b007e61 100644
--- a/src/public/app/widgets/type_widgets/options/advanced/vacuum_database.js
+++ b/src/public/app/widgets/type_widgets/options/advanced/vacuum_database.ts
@@ -6,13 +6,15 @@ import { t } from "../../../../services/i18n.js";
const TPL = `
${t("vacuum_database.title")}
-
+
${t("vacuum_database.description")}
-
+
${t("vacuum_database.button_text")}
`;
export default class VacuumDatabaseOptions extends OptionsWidget {
+ private $vacuumDatabaseButton!: JQuery;
+
doRender() {
this.$widget = $(TPL);
this.$vacuumDatabaseButton = this.$widget.find(".vacuum-database-button");