test: UI tests for org chart mobile
fix(mobile): detach node before emptying hierarchy
fix(mobile): sibling group not rendering for first level
diff --git a/erpnext/public/js/hierarchy_chart/hierarchy_chart_mobile.js b/erpnext/public/js/hierarchy_chart/hierarchy_chart_mobile.js
index 5a6f168..bd7946a 100644
--- a/erpnext/public/js/hierarchy_chart/hierarchy_chart_mobile.js
+++ b/erpnext/public/js/hierarchy_chart/hierarchy_chart_mobile.js
@@ -128,6 +128,9 @@
if (this.$hierarchy)
this.$hierarchy.remove();
+ if (this.$sibling_group)
+ this.$sibling_group.empty();
+
this.$hierarchy = $(
`<ul class="hierarchy-mobile">
<li class="root-level level"></li>
@@ -173,7 +176,7 @@
if (this.$sibling_group) {
const sibling_parent = this.$sibling_group.find('.node-group').attr('data-parent');
- if (node.parent_id !== sibling_parent)
+ if (node.parent_id !== undefined && node.parent_id != sibling_parent)
this.$sibling_group.empty();
}
@@ -376,9 +379,10 @@
let node_element = $(`#${node.id}`);
node_element.click(function() {
- let el = $(this).detach();
+ let el = undefined;
if (node.is_root) {
+ el = $(this).detach();
me.$hierarchy.empty();
$(`#connectors`).empty();
me.add_node_to_hierarchy(el, node);
@@ -386,6 +390,7 @@
me.remove_levels_after_node(node);
me.remove_orphaned_connectors();
} else {
+ el = $(this).detach();
me.add_node_to_hierarchy(el, node);
me.collapse_node();
}
@@ -514,10 +519,10 @@
level = $('.hierarchy-mobile > li:eq('+ level + ')');
level.nextAll('li').remove();
- let current_node = level.find(`#${node.id}`);
let node_object = this.nodes[node.id];
-
+ let current_node = level.find(`#${node.id}`).detach();
current_node.removeClass('active-child active-path');
+
node_object.expanded = 0;
node_object.$children = undefined;
diff --git a/erpnext/tests/ui_test_helpers.py b/erpnext/tests/ui_test_helpers.py
index 8e67b1c..99748dc 100644
--- a/erpnext/tests/ui_test_helpers.py
+++ b/erpnext/tests/ui_test_helpers.py
@@ -11,10 +11,11 @@
emp2 = create_employee('Test Employee 2', 'CTO')
emp3 = create_employee('Test Employee 3', 'Head of Marketing and Sales', emp1)
emp4 = create_employee('Test Employee 4', 'Project Manager', emp2)
- emp5 = create_employee('Test Employee 5', 'Analyst', emp3)
- emp6 = create_employee('Test Employee 6', 'Software Developer', emp4)
+ emp5 = create_employee('Test Employee 5', 'Engineer', emp2)
+ emp6 = create_employee('Test Employee 6', 'Analyst', emp3)
+ emp7 = create_employee('Test Employee 7', 'Software Developer', emp4)
- employees = [emp1, emp2, emp3, emp4, emp5, emp6]
+ employees = [emp1, emp2, emp3, emp4, emp5, emp6, emp7]
return employees
def create_company():