@allurereport/web-allure2
Version:
The static files for Allure Classic Report
44 lines (36 loc) • 1.26 kB
JavaScript
import { View } from "backbone.marionette";
import { className, on } from "@/decorators/index.js";
import template from "./NodeSorterView.hbs";
import "./styles.scss";
const AVAILABLE_SORTERS = ["sorter.order", "sorter.name", "sorter.duration", "sorter.status"];
("sorter")
class NodeSorterView extends View {
template = template;
initialize({ settings }) {
this.settings = settings;
}
("click .sorter__item")
onChangeSorting(e) {
const el = this.$(e.currentTarget);
this.settings.setTreeSorting({
sorter: el.data("name"),
ascending: !el.data("asc"),
});
const ascending = el.data("asc");
this.$(".sorter_enabled").toggleClass("sorter_enabled");
el.data("asc", !ascending);
el.find(".sorter__name").toggleClass("sorter_enabled");
el.find(ascending ? "[data-asc]" : "[data-desc]").toggleClass("sorter_enabled");
}
serializeData() {
const sortSettings = this.settings.getTreeSorting();
return {
sorters: AVAILABLE_SORTERS.map((sorter) => ({
name: sorter,
asc: sortSettings.sorter === sorter && sortSettings.ascending,
desc: sortSettings.sorter === sorter && !sortSettings.ascending,
})),
};
}
}
export default NodeSorterView;