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 ExoContext from "../../../../../common/ExoContext";
|
||||||
import Area from "../../../../../core/src/domain/Area";
|
import Area from "../../../../../core/src/domain/Area";
|
||||||
import DvRenderer from "../../../utils/dv/DvRenderer";
|
import DvRenderer from "../../../utils/dv/DvRenderer";
|
||||||
import {Link} from "obsidian-dataview";
|
|
||||||
import Effort from "../../../../../core/src/domain/effort/Effort";
|
import Effort from "../../../../../core/src/domain/effort/Effort";
|
||||||
|
|
||||||
export default class AreaLayout implements Layout<Area> {
|
export default class AreaLayout implements Layout<Area> {
|
||||||
|
@ -35,12 +34,19 @@ export default class AreaLayout implements Layout<Area> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private async createTable(unresolvedEfforts: Effort[]) {
|
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);
|
let file = this.ctx.appUtils.getObjectFileOrThrow(e);
|
||||||
return this.dvRender.dvApi.fileLink(file.path);
|
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;
|
this.dvApi = dvApi;
|
||||||
}
|
}
|
||||||
|
|
||||||
async list(links: Link[], el: HTMLElement) {
|
// noinspection JSUnusedGlobalSymbols
|
||||||
await this.dvApi.list(
|
async list(links: Link[]) {
|
||||||
links,
|
const div = document.createElement("div");
|
||||||
el,
|
div.addClass("dv-renderer");
|
||||||
this.component,
|
|
||||||
|
await this.dvApi.list(links, div, this.component,
|
||||||
this.mdCtx.sourcePath // TODO maybe this in unnecessary
|
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