Change Area layout rendering with dataview table
This commit is contained in:
parent
eb2a93642b
commit
df293b86c6
|
@ -2,7 +2,6 @@ import Layout from "./Layout";
|
|||
import ExoContext from "../../../../../common/ExoContext";
|
||||
import Area from "../../../../../core/src/domain/Area";
|
||||
import DvRenderer from "../../../utils/dv/DvRenderer";
|
||||
import {Link} from "obsidian-dataview";
|
||||
import Effort from "../../../../../core/src/domain/effort/Effort";
|
||||
|
||||
export default class AreaLayout implements Layout<Area> {
|
||||
|
@ -35,12 +34,19 @@ export default class AreaLayout implements Layout<Area> {
|
|||
}
|
||||
|
||||
private async createTable(unresolvedEfforts: Effort[]) {
|
||||
let effortsLinks: Link[] = unresolvedEfforts.map(e => {
|
||||
const headers = ["Effort", "Area", "Status", "Votes"];
|
||||
const rows = unresolvedEfforts.map(e => {
|
||||
const effortLink = this.toLink(e);
|
||||
const aresStr = e.area?.name ?? "--"; // TODO use inherited area
|
||||
const statusStr = e.status;
|
||||
const votesStr = "--"; // TODO implement votes
|
||||
return [effortLink, aresStr, statusStr, votesStr];
|
||||
});
|
||||
return await this.dvRender.table(headers, rows);
|
||||
}
|
||||
|
||||
private toLink(e: Effort) {
|
||||
let file = this.ctx.appUtils.getObjectFileOrThrow(e);
|
||||
return this.dvRender.dvApi.fileLink(file.path);
|
||||
});
|
||||
const dvDiv = document.createElement("div");
|
||||
await this.dvRender.list(effortsLinks, dvDiv);
|
||||
return dvDiv;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,12 +19,26 @@ export default class DvRenderer {
|
|||
this.dvApi = dvApi;
|
||||
}
|
||||
|
||||
async list(links: Link[], el: HTMLElement) {
|
||||
await this.dvApi.list(
|
||||
links,
|
||||
el,
|
||||
this.component,
|
||||
// noinspection JSUnusedGlobalSymbols
|
||||
async list(links: Link[]) {
|
||||
const div = document.createElement("div");
|
||||
div.addClass("dv-renderer");
|
||||
|
||||
await this.dvApi.list(links, div, this.component,
|
||||
this.mdCtx.sourcePath // TODO maybe this in unnecessary
|
||||
);
|
||||
|
||||
return div;
|
||||
}
|
||||
|
||||
async table(headers: string[], rows: any[][]) {
|
||||
const div = document.createElement("div");
|
||||
div.addClass("dv-renderer");
|
||||
|
||||
await this.dvApi.table(headers, rows, div, this.component,
|
||||
this.mdCtx.sourcePath // TODO maybe this in unnecessary
|
||||
);
|
||||
|
||||
return div;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue