Bug 33066: Remove build_datatable

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>

Signed-off-by: Agustín Moyano <agustinmoyano@theke.io>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 809f90d394)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
Jonathan Druart 2023-03-07 15:37:10 +01:00 committed by Martin Renvoize
parent df2ed10065
commit a6d42b459e
No known key found for this signature in database
GPG Key ID: 422B469130441A0F
1 changed files with 0 additions and 299 deletions

View File

@ -208,305 +208,6 @@ export default {
}
this.$refs.table.redraw(this.table_url())
},
build_datatable: function () {
let show_agreement = this.show_agreement
let edit_agreement = this.edit_agreement
let delete_agreement = this.delete_agreement
let select_agreement = this.select_agreement
let get_lib_from_av = this.get_lib_from_av
let map_av_dt_filter = this.map_av_dt_filter
let datatable_url = this.datatable_url
let default_search = this.$route.query.q
let actions = this.before_route_entered ? "edit_delete" : "select"
let filters = this.filters
let table_id = this.table_id
let logged_in_user = this.logged_in_user
window["vendors"] = this.vendors.map(e => {
e["_id"] = e["id"]
e["_str"] = e["name"]
return e
})
let vendors_map = this.vendors.reduce((map, e) => {
map[e.id] = e
return map
}, {})
let avs = [
"av_agreement_statuses",
"av_agreement_closure_reasons",
"av_agreement_renewal_priorities",
]
avs.forEach(function (av_cat) {
window[av_cat] = map_av_dt_filter(av_cat)
})
window["av_agreement_is_perpetual"] = [
{ _id: 0, _str: _("No") },
{ _id: 1, _str: _("Yes") },
]
let additional_filters = {
"user_roles.user_id": function () {
return filters.by_mine ? logged_in_user.borrowernumber : ""
},
}
const table = $("#" + table_id).kohaTable(
{
ajax: {
url: datatable_url,
},
embed: ["user_roles"],
order: [[0, "asc"]],
autoWidth: false,
search: { search: default_search },
columnDefs: [
{
targets: [0, 2],
render: function (data, type, row, meta) {
if (type == "display") {
return escape_str(data)
}
return data
},
},
],
columns: [
{
title: __("Name"),
data: "me.agreement_id:me.name",
searchable: true,
orderable: true,
render: function (data, type, row, meta) {
// Rendering done in drawCallback
return ""
},
},
{
title: __("Vendor"),
data: "vendor_id",
searchable: true,
orderable: true,
render: function (data, type, row, meta) {
return row.vendor_id != undefined
? escape_str(
vendors_map[row.vendor_id].name
)
: ""
},
},
{
title: __("Description"),
data: "description",
searchable: true,
orderable: true,
},
{
title: __("Status"),
data: "status",
searchable: true,
orderable: true,
render: function (data, type, row, meta) {
return escape_str(
get_lib_from_av(
"av_agreement_statuses",
row.status
)
)
},
},
{
title: __("Closure reason"),
data: "closure_reason",
searchable: true,
orderable: true,
render: function (data, type, row, meta) {
return escape_str(
get_lib_from_av(
"av_agreement_closure_reasons",
row.closure_reason
)
)
},
},
{
title: __("Is perpetual"),
data: "is_perpetual",
searchable: true,
orderable: true,
render: function (data, type, row, meta) {
return escape_str(
row.is_perpetual ? _("Yes") : _("No")
)
},
},
{
title: __("Renewal priority"),
data: "renewal_priority",
searchable: true,
orderable: true,
render: function (data, type, row, meta) {
return escape_str(
get_lib_from_av(
"av_agreement_renewal_priorities",
row.renewal_priority
)
)
},
},
{
title: __("Actions"),
data: function (row, type, val, meta) {
return '<div class="actions"></div>'
},
className: "actions noExport",
searchable: false,
orderable: false,
},
],
drawCallback: function (settings) {
var api = new $.fn.dataTable.Api(settings)
if (actions == "edit_delete") {
$.each(
$(this).find("td .actions"),
function (index, e) {
let tr = $(this).parent().parent()
let agreement_id = api
.row(tr)
.data().agreement_id
let agreement_name = api.row(tr).data().name
let editButton = createVNode(
"a",
{
class: "btn btn-default btn-xs",
role: "button",
onClick: () => {
edit_agreement(agreement_id)
},
},
[
createVNode("i", {
class: "fa fa-pencil",
"aria-hidden": "true",
}),
__("Edit"),
]
)
let deleteButton = createVNode(
"a",
{
class: "btn btn-default btn-xs",
role: "button",
onClick: () => {
delete_agreement(
agreement_id,
agreement_name
)
},
},
[
createVNode("i", {
class: "fa fa-trash",
"aria-hidden": "true",
}),
__("Delete"),
]
)
let n = createVNode("span", {}, [
editButton,
" ",
deleteButton,
])
render(n, e)
}
)
} else {
$.each(
$(this).find("td .actions"),
function (index, e) {
let tr = $(this).parent().parent()
let agreement_id = api
.row(tr)
.data().agreement_id
let selectButton = createVNode(
"a",
{
class: "btn btn-default btn-xs",
role: "button",
onClick: () => {
select_agreement(agreement_id)
},
},
[
createVNode("i", {
class: "fa fa-check",
"aria-hidden": "true",
}),
__("Select"),
]
)
let n = createVNode("span", {}, [
selectButton,
])
render(n, e)
}
)
}
$.each(
$(this).find("tbody tr td:first-child"),
function (index, e) {
let tr = $(this).parent()
let row = api.row(tr).data()
if (!row) return // Happen if the table is empty
let n = createVNode(
"a",
{
role: "button",
onClick: () => {
show_agreement(row.agreement_id)
},
},
`${row.name} (#${row.agreement_id})`
)
render(n, e)
}
)
},
preDrawCallback: function (settings) {
$("#" + table_id)
.find("thead th")
.eq(1)
.attr("data-filter", "vendors")
$("#" + table_id)
.find("thead th")
.eq(3)
.attr("data-filter", "av_agreement_statuses")
$("#" + table_id)
.find("thead th")
.eq(4)
.attr("data-filter", "av_agreement_closure_reasons")
$("#" + table_id)
.find("thead th")
.eq(5)
.attr("data-filter", "av_agreement_is_perpetual")
$("#" + table_id)
.find("thead th")
.eq(6)
.attr(
"data-filter",
"av_agreement_renewal_priorities"
)
},
},
agreement_table_settings,
1,
additional_filters
)
},
getTableColumns: function () {
let get_lib_from_av = this.get_lib_from_av
let escape_str = this.escape_str