2 <div id="package_list_result">
4 <a href="#" @click.prevent="toggle_filters($event)"
5 ><i class="fa fa-search"></i>
7 display_filters ? $__("Hide filters") : $__("Show filters")
10 <fieldset v-if="display_filters" id="filters">
13 <label>{{ $__("Package name") }}:</label>
16 id="package_name_filter"
17 v-model="filters.package_name"
18 @keyup.enter="filter_table"
22 <label>{{ $__("Selection status") }}:</label>
24 id="selection_type_filter"
25 v-model="filters.selection_type"
27 <option value="0">{{ $__("All") }}</option>
28 <option value="1">{{ $__("Selected") }}</option>
29 <option value="2">{{ $__("Not selected") }}</option>
37 :value="$__('Filter')"
41 <table :id="table_id"></table>
46 import { createVNode, render } from "vue"
47 import { useDataTable } from "../../composables/datatables"
51 const table_id = "package_list"
52 useDataTable(table_id)
64 display_filters: false,
68 show_resource: function (resource_id) {
70 "/cgi-bin/koha/erm/eholdings/ebsco/resources/" + resource_id
73 toggle_filters: function (e) {
74 this.display_filters = !this.display_filters
76 filter_table: function () {
77 $("#" + this.table_id)
81 build_datatable: function () {
82 let show_resource = this.show_resource
83 let resources = this.resources
84 let filters = this.filters
85 let table_id = this.table_id
87 $.fn.dataTable.ext.search = $.fn.dataTable.ext.search.filter(
88 search => search.name != "apply_filter"
90 $("#" + table_id).dataTable(
91 $.extend(true, {}, dataTablesDefaults, {
93 embed: ["package.name"],
95 dom: '<"top pager"<"table_entries"ilp>>tr<"bottom pager"ip>',
104 data: "package.name",
107 render: function (data, type, row, meta) {
108 // Rendering done in drawCallback
114 drawCallback: function (settings) {
115 var api = new $.fn.dataTable.Api(settings)
117 if (!api.rows({ search: "applied" }).count()) return
120 $(this).find("tbody tr td:first-child"),
121 function (index, e) {
122 let tr = $(this).parent()
123 let row = api.row(tr).data()
124 if (!row) return // Happen if the table is empty
130 "/cgi-bin/koha/erm/eholdings/ebsco/resources/" +
134 show_resource(row.resource_id)
137 `${row.package.name}`
139 if (row.is_selected) {
140 n = createVNode("span", {}, [
144 class: "fa fa-check-square-o",
149 title: __("Is selected"),
157 initComplete: function () {
158 $.fn.dataTable.ext.search.push(function apply_filter(
165 row.package.name.match(
166 new RegExp(filters.package_name, "i")
168 (filters.selection_type == 0 ||
169 (filters.selection_type == 1 &&
171 (filters.selection_type == 2 &&
181 this.build_datatable()
186 name: "EHoldingsEBSCOTitlePackagesList",