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

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/edifactmsgs.tt (-110 / +111 lines)
Lines 45-168 Link Here
45
    [% INCLUDE 'datatables.inc' %]
45
    [% INCLUDE 'datatables.inc' %]
46
    [% Asset.js("js/modals/edifact-modal.js") | $raw %]
46
    [% Asset.js("js/modals/edifact-modal.js") | $raw %]
47
    <script>
47
    <script>
48
        $(document).ready(function() {
48
        $(document).ready(function () {
49
            let edi_msgs_table_url = '/api/v1/acquisitions/edifiles?';
49
            let edi_msgs_table_url = "/api/v1/acquisitions/edifiles?";
50
50
51
            var edi_msgs_table = $("#edi_msgs").kohaTable({
51
            var edi_msgs_table = $("#edi_msgs").kohaTable(
52
                "ajax": {
52
                {
53
                    "url": edi_msgs_table_url
53
                    ajax: {
54
                },
54
                        url: edi_msgs_table_url,
55
                "embed": [
56
                    "vendor",
57
                    "basket",
58
                    "errors"
59
                ],
60
                "order": [[ 1, "desc" ]],
61
                "columns": [
62
                    {
63
                        "data": "type",
64
                        "title": _("Type"),
65
                        "searchable": true,
66
                        "orderable": true
67
                    },
68
                    {
69
                        "data": "transfer_date",
70
                        "title": _("Transferred"),
71
                        "searchable": true,
72
                        "orderable": true,
73
                        "render": function(data, type, row, meta) {
74
                            return $date(row.transfer_date);
75
                        }
76
                    },
55
                    },
77
                    {
56
                    embed: ["vendor", "basket", "errors"],
78
                        "data": "status",
57
                    order: [[1, "desc"]],
79
                        "title": _("Status"),
58
                    columns: [
80
                        "searchable": true,
59
                        {
81
                        "orderable": true,
60
                            data: "type",
82
                        "render": function(daya, type, row, meta) {
61
                            title: _("Type"),
83
                            let rendered = '';
62
                            searchable: true,
84
                            if ( row.errors.length > 0 ) {
63
                            orderable: true,
85
                                let errorsList = '<ul>';
64
                        },
86
                                row.errors.forEach(error => {
65
                        {
87
                                    if (error.details) {
66
                            data: "transfer_date",
88
                                        errorsList += '<li>'
67
                            title: _("Transferred"),
89
                                        errorsList += error.details
68
                            searchable: true,
90
                                        if (error.section) {
69
                            orderable: true,
91
                                            errorsList += '</br><pre>' + error.section + '</pre>';
70
                            render: function (data, type, row, meta) {
71
                                return $date(row.transfer_date);
72
                            },
73
                        },
74
                        {
75
                            data: "status",
76
                            title: _("Status"),
77
                            searchable: true,
78
                            orderable: true,
79
                            render: function (daya, type, row, meta) {
80
                                let rendered = "";
81
                                if (row.errors.length > 0) {
82
                                    let errorsList = "<ul>";
83
                                    row.errors.forEach(error => {
84
                                        if (error.details) {
85
                                            errorsList += "<li>";
86
                                            errorsList += "<strong>" + error.details + "</strong>";
87
                                            if (error.section) {
88
                                                errorsList += "<br/><pre>" + error.section + "</pre>";
89
                                            }
90
                                            errorsList += "</li>";
92
                                        }
91
                                        }
93
                                        errorsList += '</li>';
92
                                    });
93
                                    errorsList += "</ul>";
94
                                    rendered = row.status + ' (<a href="#" data-bs-toggle="modal" data-bs-target="#EDI_errors_modal" data-bs-errors="' + errorsList + '" data-bs-filename="' + row.filename + '">' + _("with errors") + "</a>)";
95
                                } else {
96
                                    rendered = row.status;
97
                                }
98
                                return rendered;
99
                            },
100
                        },
101
                        {
102
                            data: "vendor.name",
103
                            title: _("Vendor"),
104
                            searchable: true,
105
                            orderable: true,
106
                            render: function (data, type, row, meta) {
107
                                let link;
108
                                if (row.vendor) {
109
                                    link = '<a href="/cgi-bin/koha/acquisition/vendors/' + row.vendor_id + '">' + row.vendor.name + "</a>";
110
                                } else {
111
                                    link = '<a href="/cgi-bin/koha/acquisition/vendors/' + row.vendor_id + '">' + row.vendor_id + "</a>";
112
                                }
113
                                return link;
114
                            },
115
                        },
116
                        {
117
                            data: "basket_id:type",
118
                            title: _("Details"),
119
                            searchable: false,
120
                            orderable: true,
121
                            render: function (data, type, row, meta) {
122
                                let rendered = "";
123
                                if (row.type == "QUOTE" || row.type == "ORDERS") {
124
                                    if (row.basket_id) {
125
                                        rendered = '<a href="/cgi-bin/koha/acqui/basket.pl?basketno=' + row.basket_id + '">' + _("Basket") + ": " + row.basket_id + "</a>";
94
                                    }
126
                                    }
95
                                });
127
                                } else {
96
                                errorsList += '</ul>';
128
                                    rendered = '<a href="/cgi-bin/koha/acqui/invoices.pl?message_id=' + row.id + '&op=do_search">' + _("Invoices") + "</a>";
97
                                rendered = row.status + ' (<a href="#" data-bs-toggle="modal" data-bs-target="#EDI_errors_modal" data-bs-errors="'+ errorsList + '" data-bs-filename="' + row.filename + '">' + _("with errors") + '</a>)';
98
                            } else {
99
                                rendered = row.status;
100
                            }
101
                            return rendered;
102
                        }
103
                    },
104
                    {
105
                        "data": "vendor.name",
106
                        "title": _("Vendor"),
107
                        "searchable": true,
108
                        "orderable": true,
109
                        "render": function(data, type, row, meta) {
110
                            let link;
111
                            if ( row.vendor ) {
112
                               link = '<a href="/cgi-bin/koha/acquisition/vendors/'+row.vendor_id+'">'+row.vendor.name+'</a>';
113
                            } else {
114
                               link = '<a href="/cgi-bin/koha/acquisition/vendors/'+row.vendor_id+'">'+row.vendor_id+'</a>';
115
                            }
116
                            return link;
117
                        }
118
                    },
119
                    {
120
                        "data": "basket_id:type",
121
                        "title": _("Details"),
122
                        "searchable": false,
123
                        "orderable": true,
124
                        "render": function(data, type, row, meta) {
125
                            let rendered = '';
126
                            if ( row.type == 'QUOTE' || row.type == 'ORDERS' ) {
127
                                if ( row.basket_id ) {
128
                                    rendered = '<a href="/cgi-bin/koha/acqui/basket.pl?basketno='+row.basket_id+'">'+_("Basket")+': '+row.basket_id+'</a>';
129
                                }
129
                                }
130
                            } else {
130
                                return rendered;
131
                                rendered = '<a href="/cgi-bin/koha/acqui/invoices.pl?message_id='+row.id+'&op=do_search">'+_("Invoices")+'</a>';
131
                            },
132
                            }
132
                        },
133
                            return rendered;
133
                        {
134
                        }
134
                            data: "filename",
135
                    },
135
                            title: _("Filename"),
136
                    {
136
                            searchable: true,
137
                        "data": "filename",
137
                            orderable: true,
138
                        "title": _("Filename"),
138
                        },
139
                        "searchable": true,
139
                        {
140
                        "orderable": true
140
                            title: _("Actions"),
141
                    },
141
                            className: "actions",
142
                    {
142
                            searchable: false,
143
                        "title": _("Actions"),
143
                            orderable: false,
144
                        "className": "actions",
144
                            render: function (data, type, row, meta) {
145
                        "searchable": false,
145
                                var result =
146
                        "orderable": false,
146
                                    '<a class="btn btn-default btn-xs view_message" target="_blank" href="/cgi-bin/koha/acqui/edimsg.pl?id=' + encodeURIComponent(row.id) + '"><i class="fa fa-search"></i> ' + _("View message") + "</a> ";
147
                        "render": function(data, type, row, meta) {
147
                                result += '<form action="/cgi-bin/koha/acqui/edifactmsgs.pl" method="post"><input type="hidden" name="message_id" value="' + encodeURIComponent(row.id) + '" />';
148
                            var result = '<a class="btn btn-default btn-xs view_message" target="_blank" href="/cgi-bin/koha/acqui/edimsg.pl?id='+encodeURIComponent(row.id)+'"><i class="fa fa-search"></i> '+_("View message")+'</a> ';
148
                                result += '<input type="hidden" name="csrf_token" value="' + $('meta[name="csrf-token"]').attr("content").trim() + '" />';
149
                            result += '<form action="/cgi-bin/koha/acqui/edifactmsgs.pl" method="post"><input type="hidden" name="message_id" value="'+encodeURIComponent(row.id)+'" />';
149
                                result += '<input type="hidden" name="op" value="cud-delete" /><button type="submit" class="btn btn-default btn-xs delete_msg"><i class="fa fa-trash-can"></i> ' + _("Delete") + "</button> ";
150
                            result += '<input type="hidden" name="csrf_token" value="' + $('meta[name="csrf-token"]').attr('content').trim() + '" />';
150
                                if (row.status == "new") {
151
                            result += '<input type="hidden" name="op" value="cud-delete" /><button type="submit" class="btn btn-default btn-xs delete_msg"><i class="fa fa-trash-can"></i> '+_("Delete")+'</button> ';
151
                                    result +=
152
                            if ( row.status == 'new' ) {
152
                                        '<a class="btn btn-default btn-xs import_msg" href="/cgi-bin/koha/acqui/edifactmsgs.pl?op=import&amp;message_id=' + encodeURIComponent(row.id) + '"><i class="fa fa-cog"></i> ' + _("Import") + "</a> ";
153
                                result += '<a class="btn btn-default btn-xs import_msg" href="/cgi-bin/koha/acqui/edifactmsgs.pl?op=import&amp;message_id='+encodeURIComponent(row.id)+'"><i class="fa fa-cog"></i> '+_("Import")+'</a> ';
153
                                }
154
                            }
154
                                return result;
155
                            return result;
155
                            },
156
                        }
156
                        },
157
                    }
157
                    ],
158
                ]
158
                },
159
            }, 0, 0);
159
                0,
160
                0
161
            );
160
162
161
            $("body").on("click", ".delete_msg" ,function(){
163
            $("body").on("click", ".delete_msg", function () {
162
                return confirm(_("Are you sure you want to delete this message?"));
164
                return confirm(_("Are you sure you want to delete this message?"));
163
            });
165
            });
164
        });
166
        });
165
    </script>
167
    </script>
166
[% END %]
168
[% END %]
167
169
168
[% INCLUDE 'intranet-bottom.inc' %]
170
[% INCLUDE 'intranet-bottom.inc' %]
169
- 

Return to bug 40333