aboutsummaryrefslogtreecommitdiffstats
path: root/src/templates/dashboard/multiple_select_filter_widget.html
blob: 4a65bd955752619190deb526c558262e8175c01c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<script src="/static/js/dashboard.js">
</script>

<input name="filter_field" id="filter_field" type="hidden"/>
<div id="grid_wrapper" class="container-fluid p-4">
    <div class="row">
        {% for object_class, object_list in display_objects %}
            <div class="col-12 col-lg d-flex flex-column pt-2 my-2">
                <div class="w-100">
                    <h4 class="text-capitalize">{{object_class}}</h4>
                </div>
                <div id="{{object_class}}" class="row h-100">
                {% for obj in object_list %}
                    <div class="col-12 col-md-6 col-xl-4 my-2">
                        <div id="{{ obj.id|default:'not_provided' }}" class="card h-100" onclick="multi_filter_widget.processClick('{{obj.id}}');">
                            <div class="card-header">
                                <p class="h5 font-weight-bold mt-2">{{obj.name}}</p>
                            </div>
                            <div class="card-body">
                                <p class="grid-item-description">{{obj.description}}</p>
                            </div>
                            <div class="card-footer">
                                <button type="button" class="btn btn-success grid-item-select-btn w-100">{% if obj.multiple %}Add{% else %}Select{% endif %}</button>
                            </div>
                        </div>
                    </div>
                {% endfor %}
                </div>
            </div>
        {% endfor %}
    </div>
</div>

<div id="dropdown_wrapper" class="px-3 list-group-flush w-25 mt-2">
</div>
<script>
function multipleSelectFilterWidgetEntry() {
    const graph_neighbors = {{ neighbors|safe }};
    const filter_items = {{ filter_items|safe }};
    const initial_value = {{ initial_value|default_if_none:"{}"|safe }};

    //global variables
    multi_filter_widget = new MultipleSelectFilterWidget(graph_neighbors, filter_items, initial_value);
    form_submission_callbacks.push(() => multi_filter_widget.finish());
}

multipleSelectFilterWidgetEntry();
</script>