Migrated tree logic to new @jbtronics/bs-treeview package-

This commit is contained in:
Jan Böhmer 2022-08-07 01:55:44 +02:00
parent c5b6068911
commit 461de131c6

View file

@ -3,7 +3,7 @@ import {Controller} from "@hotwired/stimulus";
import "../../js/lib/bootstrap-treeview/src/css/bootstrap-treeview.css" import "../../js/lib/bootstrap-treeview/src/css/bootstrap-treeview.css"
//import "../../js/lib/bootstrap-treeview/src/js/bootstrap-treeview.js" //import "../../js/lib/bootstrap-treeview/src/js/bootstrap-treeview.js"
import BSTreeView from "../../ts_src/BSTreeView"; import {BSTreeView} from "@jbtronics/bs-treeview";
export default class extends Controller { export default class extends Controller {
static targets = [ "tree" ]; static targets = [ "tree" ];
@ -11,6 +11,8 @@ export default class extends Controller {
_url = null; _url = null;
_data = null; _data = null;
_tree = null;
connect() { connect() {
const treeElement = this.treeTarget; const treeElement = this.treeTarget;
if (!treeElement) { if (!treeElement) {
@ -48,7 +50,7 @@ export default class extends Controller {
//Get primary color from css variable //Get primary color from css variable
const primary_color = getComputedStyle(document.documentElement).getPropertyValue('--bs-warning'); const primary_color = getComputedStyle(document.documentElement).getPropertyValue('--bs-warning');
const tree = new BSTreeView(this.treeTarget, { this._tree = new BSTreeView(this.treeTarget, {
data: data, data: data,
enableLinks: true, enableLinks: true,
showIcon: false, showIcon: false,
@ -82,11 +84,11 @@ export default class extends Controller {
} }
collapseAll() { collapseAll() {
$(this.treeTarget).treeview('collapseAll', {silent: true}); this._tree.collapseAll({silent: true});
} }
expandAll() { expandAll() {
$(this.treeTarget).treeview('expandAll', {silent: true}); this._tree.expandAll({silent: true});
} }
searchInput(event) { searchInput(event) {
@ -94,8 +96,8 @@ export default class extends Controller {
//Do nothing if no data was passed //Do nothing if no data was passed
const tree = this.treeTarget; const tree = this.treeTarget;
$(tree).treeview('collapseAll', {silent: true}); this._tree.collapseAll({silent: true});
$(tree).treeview('search', [data]); this._tree.search([data]);
} }
/** /**
@ -103,15 +105,7 @@ export default class extends Controller {
* @private * @private
*/ */
_isInitialized() { _isInitialized() {
const $tree = $(this.treeTarget).treeview(true); return this._tree !== null;
//If the tree is not initialized yet, we just get an empty jquery object with the treeview functions missing
if(typeof $tree.findNodes === 'undefined' ) {
return false;
}
return true;
} }
_getData() { _getData() {