2025-06-25 11:03:43 +03:00
|
|
|
import froca from "../../services/froca.js";
|
|
|
|
|
import renderTable from "./table_view/renderer.js";
|
2025-06-25 16:18:34 +03:00
|
|
|
import type { StateInfo } from "./table_view/storage.js";
|
2025-06-25 10:31:41 +03:00
|
|
|
import ViewMode, { ViewModeArgs } from "./view_mode";
|
|
|
|
|
|
|
|
|
|
const TPL = /*html*/`
|
|
|
|
|
<div class="table-view">
|
2025-06-25 10:40:04 +03:00
|
|
|
<style>
|
|
|
|
|
.table-view {
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
position: relative;
|
|
|
|
|
height: 100%;
|
|
|
|
|
user-select: none;
|
|
|
|
|
padding: 10px;
|
|
|
|
|
}
|
2025-06-25 10:49:33 +03:00
|
|
|
|
|
|
|
|
.table-view-container {
|
|
|
|
|
height: 100%;
|
|
|
|
|
}
|
2025-06-25 10:40:04 +03:00
|
|
|
</style>
|
|
|
|
|
|
2025-06-25 10:49:33 +03:00
|
|
|
<div class="table-view-container">
|
|
|
|
|
<p>Table view goes here.</p>
|
|
|
|
|
</div>
|
2025-06-25 10:31:41 +03:00
|
|
|
</div>
|
|
|
|
|
`;
|
|
|
|
|
|
2025-06-25 16:18:34 +03:00
|
|
|
export default class TableView extends ViewMode<StateInfo> {
|
2025-06-25 10:31:41 +03:00
|
|
|
|
|
|
|
|
private $root: JQuery<HTMLElement>;
|
2025-06-25 10:49:33 +03:00
|
|
|
private $container: JQuery<HTMLElement>;
|
2025-06-25 11:23:34 +03:00
|
|
|
private args: ViewModeArgs;
|
2025-06-25 10:31:41 +03:00
|
|
|
|
|
|
|
|
constructor(args: ViewModeArgs) {
|
2025-06-25 16:18:34 +03:00
|
|
|
super(args, "table");
|
2025-06-25 10:31:41 +03:00
|
|
|
|
|
|
|
|
this.$root = $(TPL);
|
2025-06-25 10:49:33 +03:00
|
|
|
this.$container = this.$root.find(".table-view-container");
|
2025-06-25 11:23:34 +03:00
|
|
|
this.args = args;
|
2025-06-25 10:31:41 +03:00
|
|
|
args.$parent.append(this.$root);
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-25 10:40:04 +03:00
|
|
|
get isFullHeight(): boolean {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-25 10:31:41 +03:00
|
|
|
async renderList() {
|
2025-06-25 11:23:34 +03:00
|
|
|
const { noteIds, parentNote } = this.args;
|
|
|
|
|
const notes = await froca.getNotes(noteIds);
|
2025-06-25 11:03:43 +03:00
|
|
|
|
2025-06-25 10:49:33 +03:00
|
|
|
this.$container.empty();
|
2025-06-25 16:18:34 +03:00
|
|
|
renderTable(this.$container[0], parentNote, notes, this.viewStorage);
|
2025-06-25 10:31:41 +03:00
|
|
|
return this.$root;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|