View | Details | Raw Unified | Return to bug 38255
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalTitlePackagesList.vue (-59 / +57 lines)
Lines 5-97 Link Here
5
</template>
5
</template>
6
6
7
<script>
7
<script>
8
import { createVNode, render } from "vue"
8
import { createVNode, render } from "vue";
9
import { useDataTable } from "../../composables/datatables"
9
import { useDataTable } from "../../composables/datatables";
10
10
11
export default {
11
export default {
12
    setup() {
12
    setup() {
13
        const table_id = "package_list"
13
        const table_id = "package_list";
14
        useDataTable(table_id)
14
        useDataTable(table_id);
15
15
16
        return {
16
        return {
17
            table_id,
17
            table_id,
18
        }
18
        };
19
    },
19
    },
20
    data() {
20
    data() {
21
        return {}
21
        return {};
22
    },
22
    },
23
    methods: {
23
    methods: {
24
        show_resource: function (resource_id) {
24
        show_resource: function (resource_id) {
25
            this.$router.push({
25
            this.$router.push({
26
                name: "EHoldingsLocalResourcesShow",
26
                name: "EHoldingsLocalResourcesShow",
27
                params: { resource_id },
27
                params: { resource_id },
28
            })
28
            });
29
        },
29
        },
30
        build_datatable: function () {
30
        build_datatable: function () {
31
            let show_resource = this.show_resource
31
            let show_resource = this.show_resource;
32
            let router = this.$router
32
            let router = this.$router;
33
            let resources = this.resources
33
            let resources = this.resources;
34
            let table_id = this.table_id
34
            let table_id = this.table_id;
35
35
36
            $("#" + table_id).kohaTable({
36
            $("#" + table_id).kohaTable({
37
                    data: resources,
37
                data: resources,
38
                    embed: ["package.name"],
38
                embed: ["package.name"],
39
                    order: [[0, "asc"]],
39
                order: [[0, "asc"]],
40
                    autoWidth: false,
40
                autoWidth: false,
41
                    columns: [
41
                columns: [
42
                        {
42
                    {
43
                            title: __("Name"),
43
                        title: __("Name"),
44
                            data: "package.name",
44
                        data: "package.name",
45
                            searchable: true,
45
                        searchable: true,
46
                            orderable: true,
46
                        orderable: true,
47
                            render: function (data, type, row, meta) {
47
                        render: function (data, type, row, meta) {
48
                                // Rendering done in drawCallback
48
                            // Rendering done in drawCallback
49
                                return ""
49
                            return "";
50
                            },
51
                            width: "100%",
52
                        },
50
                        },
53
                    ],
51
                        width: "100%",
54
                    drawCallback: function (settings) {
52
                    },
55
                        var api = new $.fn.dataTable.Api(settings)
53
                ],
54
                drawCallback: function (settings) {
55
                    var api = new $.fn.dataTable.Api(settings);
56
56
57
                        $.each(
57
                    $.each(
58
                            $(this).find("tbody tr td:first-child"),
58
                        $(this).find("tbody tr td:first-child"),
59
                            function (index, e) {
59
                        function (index, e) {
60
                                let tr = $(this).parent()
60
                            let tr = $(this).parent();
61
                                let row = api.row(tr).data()
61
                            let row = api.row(tr).data();
62
                                if (!row) return // Happen if the table is empty
62
                            if (!row) return; // Happen if the table is empty
63
                                let { href } = router.resolve({
63
                            let { href } = router.resolve({
64
                                    name: "EHoldingsLocalResourcesShow",
64
                                name: "EHoldingsLocalResourcesShow",
65
                                    params: { resource_id: row.resource_id },
65
                                params: { resource_id: row.resource_id },
66
                                })
66
                            });
67
                                let n = createVNode(
67
                            let n = createVNode(
68
                                    "a",
68
                                "a",
69
                                    {
69
                                {
70
                                        role: "button",
70
                                    role: "button",
71
                                        href,
71
                                    href,
72
                                        onClick: e => {
72
                                    onClick: e => {
73
                                            e.preventDefault()
73
                                        e.preventDefault();
74
                                            show_resource(row.resource_id)
74
                                        show_resource(row.resource_id);
75
                                        },
76
                                    },
75
                                    },
77
                                    `${row.package.name}`
76
                                },
78
                                )
77
                                `${row.package.name}`
79
                                render(n, e)
78
                            );
80
                            }
79
                            render(n, e);
81
                        )
80
                        }
82
                    },
81
                    );
83
                })
82
                },
84
            )
83
            });
85
        },
84
        },
86
    },
85
    },
87
    mounted() {
86
    mounted() {
88
        this.build_datatable()
87
        this.build_datatable();
89
    },
88
    },
90
    props: {
89
    props: {
91
        resources: Array,
90
        resources: Array,
92
    },
91
    },
93
    name: "EHoldingsLocalTitlePackagesList",
92
    name: "EHoldingsLocalTitlePackagesList",
94
}
93
};
95
</script>
94
</script>
96
95
97
<style scoped>
96
<style scoped>
98
- 

Return to bug 38255