Lines 5-10
$(document).ready(function () {
Link Here
|
5 |
let button = $(event.relatedTarget); |
5 |
let button = $(event.relatedTarget); |
6 |
let ticket_id = button.data("concern"); |
6 |
let ticket_id = button.data("concern"); |
7 |
let resolved = button.data("resolved"); |
7 |
let resolved = button.data("resolved"); |
|
|
8 |
let assignee = button.data("assignee"); |
8 |
modal.find(".modal-footer input").val(ticket_id); |
9 |
modal.find(".modal-footer input").val(ticket_id); |
9 |
|
10 |
|
10 |
if (resolved) { |
11 |
if (resolved) { |
Lines 18-23
$(document).ready(function () {
Link Here
|
18 |
// Display ticket details |
19 |
// Display ticket details |
19 |
let display = '<div class="list-group">'; |
20 |
let display = '<div class="list-group">'; |
20 |
display += '<div class="list-group-item">'; |
21 |
display += '<div class="list-group-item">'; |
|
|
22 |
if (assignee) { |
23 |
display += |
24 |
'<span class="pull-right"><span class="label">' + |
25 |
__("Assignee") + |
26 |
"</span>: " + |
27 |
assignee + |
28 |
"</span>"; |
29 |
} |
21 |
display += '<span class="wrapfix">' + detail + "</span>"; |
30 |
display += '<span class="wrapfix">' + detail + "</span>"; |
22 |
display += "</div>"; |
31 |
display += "</div>"; |
23 |
display += '<div id="concern-updates" class="list-group-item">'; |
32 |
display += '<div id="concern-updates" class="list-group-item">'; |
Lines 33-39
$(document).ready(function () {
Link Here
|
33 |
url: "/api/v1/tickets/" + ticket_id + "/updates", |
42 |
url: "/api/v1/tickets/" + ticket_id + "/updates", |
34 |
method: "GET", |
43 |
method: "GET", |
35 |
headers: { |
44 |
headers: { |
36 |
"x-koha-embed": ["user", "+strings"], |
45 |
"x-koha-embed": ["user", "assignee", "+strings"], |
37 |
}, |
46 |
}, |
38 |
}) |
47 |
}) |
39 |
.success(function (data) { |
48 |
.success(function (data) { |
Lines 67-78
$(document).ready(function () {
Link Here
|
67 |
$datetime(item.date) + |
76 |
$datetime(item.date) + |
68 |
")"; |
77 |
")"; |
69 |
if (item.status) { |
78 |
if (item.status) { |
70 |
updates += '<span class="wrapfix pull-right">'; |
79 |
updates += '<span class="clearfix pull-right">'; |
71 |
updates += item._strings.status |
80 |
updates += item._strings.status |
72 |
? escape_str(item._strings.status.str) |
81 |
? escape_str(item._strings.status.str) |
73 |
: ""; |
82 |
: ""; |
74 |
updates += "</span>"; |
83 |
updates += "</span>"; |
75 |
} |
84 |
} |
|
|
85 |
if (item.assignee) { |
86 |
updates += '<span class="clearfix pull-right">'; |
87 |
updates += $patron_to_html(item.assignee, { |
88 |
display_cardnumber: false, |
89 |
url: true, |
90 |
}); |
91 |
updates += "</span>"; |
92 |
} |
76 |
updates += "</span>"; |
93 |
updates += "</span>"; |
77 |
updates += "</div>"; |
94 |
updates += "</div>"; |
78 |
}); |
95 |
}); |
Lines 83-98
$(document).ready(function () {
Link Here
|
83 |
// Clear any previously entered update message |
100 |
// Clear any previously entered update message |
84 |
$("#update_message").val(""); |
101 |
$("#update_message").val(""); |
85 |
$("#public").prop("checked", false); |
102 |
$("#public").prop("checked", false); |
|
|
103 |
|
104 |
// Patron select2 |
105 |
$("#assignee_id").kohaSelect({ |
106 |
dropdownParent: $(".modal-content", "#ticketDetailsModal"), |
107 |
width: "50%", |
108 |
dropdownAutoWidth: true, |
109 |
allowClear: true, |
110 |
minimumInputLength: 3, |
111 |
ajax: { |
112 |
url: "/api/v1/patrons", |
113 |
delay: 250, |
114 |
dataType: "json", |
115 |
headers: { |
116 |
"x-koha-embed": "library", |
117 |
}, |
118 |
data: function (params) { |
119 |
let q = buildPatronSearchQuery(params.term); |
120 |
let query = { |
121 |
q: JSON.stringify(q), |
122 |
_page: params.page, |
123 |
_order_by: "+me.surname,+me.firstname", |
124 |
}; |
125 |
return query; |
126 |
}, |
127 |
processResults: function (data, params) { |
128 |
let results = []; |
129 |
data.results.forEach(function (patron) { |
130 |
patron.id = patron.patron_id; |
131 |
results.push(patron); |
132 |
}); |
133 |
return { |
134 |
results: results, |
135 |
pagination: { more: data.pagination.more }, |
136 |
}; |
137 |
}, |
138 |
}, |
139 |
templateResult: function (patron) { |
140 |
if (patron.library_id == loggedInLibrary) { |
141 |
loggedInClass = "ac-currentlibrary"; |
142 |
} else { |
143 |
loggedInClass = ""; |
144 |
} |
145 |
|
146 |
let $patron = $("<span></span>") |
147 |
.append( |
148 |
"" + |
149 |
(patron.surname |
150 |
? escape_str(patron.surname) + ", " |
151 |
: "") + |
152 |
(patron.firstname |
153 |
? escape_str(patron.firstname) + " " |
154 |
: "") + |
155 |
(patron.cardnumber |
156 |
? " (" + escape_str(patron.cardnumber) + ")" |
157 |
: "") + |
158 |
"<small>" + |
159 |
(patron.date_of_birth |
160 |
? ' <span class="age_years">' + |
161 |
$get_age(patron.date_of_birth) + |
162 |
" " + |
163 |
__("years") + |
164 |
"</span>" |
165 |
: "") + |
166 |
(patron.library |
167 |
? ' <span class="ac-library">' + |
168 |
escape_str(patron.library.name) + |
169 |
"</span>" |
170 |
: "") + |
171 |
"</small>" |
172 |
) |
173 |
.addClass(loggedInClass); |
174 |
return $patron; |
175 |
}, |
176 |
templateSelection: function (patron) { |
177 |
if (!patron.surname) { |
178 |
return patron.text; |
179 |
} |
180 |
return ( |
181 |
escape_str(patron.surname) + |
182 |
", " + |
183 |
escape_str(patron.firstname) |
184 |
); |
185 |
}, |
186 |
placeholder: "Search for a patron", |
187 |
}); |
86 |
}); |
188 |
}); |
87 |
|
189 |
|
88 |
$("#ticketDetailsModal").on("click", ".updateSubmit", function (e) { |
190 |
$("#ticketDetailsModal").on("click", ".updateSubmit", function (e) { |
89 |
let clicked = $(this); |
191 |
let clicked = $(this); |
90 |
let ticket_id = $("#ticket_id").val(); |
192 |
let ticket_id = $("#ticket_id").val(); |
|
|
193 |
let assignee_id = $("#assignee_id").val(); |
91 |
let params = { |
194 |
let params = { |
92 |
public: $("#public").is(":checked"), |
195 |
public: $("#public").is(":checked"), |
93 |
message: $("#update_message").val(), |
196 |
message: $("#update_message").val(), |
94 |
user_id: logged_in_user_borrowernumber, |
197 |
user_id: logged_in_user_borrowernumber, |
95 |
status: clicked.data("status"), |
198 |
status: clicked.data("status"), |
|
|
199 |
assignee_id: assignee_id, |
96 |
}; |
200 |
}; |
97 |
|
201 |
|
98 |
$("#comment-spinner").show(); |
202 |
$("#comment-spinner").show(); |
99 |
- |
|
|