97 lines
3.6 KiB
JavaScript
Raw Normal View History

2022-06-12 14:03:59 +02:00
import server from "../../services/server.js";
import utils from "../../services/utils.js";
2024-07-20 09:42:55 +03:00
import { t } from "../../services/i18n.js";
2022-06-12 14:03:59 +02:00
import BasicWidget from "../basic_widget.js";
2024-09-04 11:08:04 +00:00
import openService from "../../services/open.js";
2022-06-12 14:03:59 +02:00
const TPL = `
<div class="about-dialog modal fade mx-auto" tabindex="-1" role="dialog">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
2024-07-20 09:42:55 +03:00
<h5 class="modal-title mr-auto">${t("about.title")}</h5>
2022-06-12 14:03:59 +02:00
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="margin-left: 0;">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
2024-07-29 10:40:30 +08:00
<table class="table table-borderless text-nowrap">
2022-06-12 14:03:59 +02:00
<tr>
2024-07-20 09:42:55 +03:00
<th>${t("about.homepage")}</th>
2024-07-15 20:21:43 +03:00
<td><a href="https://github.com/TriliumNext/Notes" class="external">https://github.com/TriliumNext/Notes</a></td>
2022-06-12 14:03:59 +02:00
</tr>
<tr>
2024-07-20 09:42:55 +03:00
<th>${t("about.app_version")}</th>
2022-06-12 14:03:59 +02:00
<td class="app-version"></td>
</tr>
<tr>
2024-07-20 09:42:55 +03:00
<th>${t("about.db_version")}</th>
2022-06-12 14:03:59 +02:00
<td class="db-version"></td>
</tr>
<tr>
2024-07-20 09:42:55 +03:00
<th>${t("about.sync_version")}</th>
2022-06-12 14:03:59 +02:00
<td class="sync-version"></td>
</tr>
<tr>
2024-07-20 09:42:55 +03:00
<th>${t("about.build_date")}</th>
2022-06-12 14:03:59 +02:00
<td class="build-date"></td>
</tr>
<tr>
2024-07-20 09:51:09 +03:00
<th>${t("about.build_revision")}</th>
<td><a href="" class="build-revision external" target="_blank"></a></td>
2022-06-12 14:03:59 +02:00
</tr>
<tr>
2024-07-20 09:42:55 +03:00
<th>${t("about.data_directory")}</th>
2022-06-12 14:03:59 +02:00
<td class="data-directory"></td>
</tr>
</table>
</div>
</div>
</div>
</div>`;
export default class AboutDialog extends BasicWidget {
doRender() {
this.$widget = $(TPL);
this.$appVersion = this.$widget.find(".app-version");
this.$dbVersion = this.$widget.find(".db-version");
this.$syncVersion = this.$widget.find(".sync-version");
this.$buildDate = this.$widget.find(".build-date");
this.$buildRevision = this.$widget.find(".build-revision");
this.$dataDirectory = this.$widget.find(".data-directory");
}
async refresh() {
const appInfo = await server.get('app-info');
this.$appVersion.text(appInfo.appVersion);
this.$dbVersion.text(appInfo.dbVersion);
this.$syncVersion.text(appInfo.syncVersion);
this.$buildDate.text(appInfo.buildDate);
this.$buildRevision.text(appInfo.buildRevision);
2024-07-15 20:21:43 +03:00
this.$buildRevision.attr('href', `https://github.com/TriliumNext/Notes/commit/${appInfo.buildRevision}`);
if (utils.isElectron()) {
this.$dataDirectory.html($('<a></a>', {
2024-09-04 12:10:13 +00:00
href: '#',
text: appInfo.dataDirectory,
}));
2024-09-04 11:52:05 +00:00
this.$dataDirectory.find("a").on('click', (event) => {
event.preventDefault();
2024-09-04 12:10:13 +00:00
openService.openDirectory(appInfo.dataDirectory);
2024-09-04 11:08:04 +00:00
})
} else {
this.$dataDirectory.text(appInfo.dataDirectory);
}
2022-06-12 14:03:59 +02:00
}
async openAboutDialogEvent() {
await this.refresh();
utils.openDialog(this.$widget);
}
}