1d78e0a0a2274e1d814e27803a183df6795582f3
[koha.git] / koha-tmpl / intranet-tmpl / prog / js / select2.js
1 /* global __ */
2 $.fn.select2.defaults.set("allowClear", true);
3 $.fn.select2.defaults.set("placeholder", "");
4 $.fn.select2.defaults.set("width", "element" );
5
6 // Internationalization
7 $.fn.select2.defaults.set("language", {
8     errorLoading:function(){ return __("The results could not be loaded"); },
9     inputTooLong:function(args){
10         var n = args.input.length - args.maximum;
11         return __("Please delete %s character(s)").format(n);
12     },
13     inputTooShort:function(args){
14         var n = args.minimum - args.input.length;
15         return __("Please enter %s or more characters").format(n);
16     },
17     formatResult: function(item) {
18         return $('<div>', {title: item.element[0].title}).text(item.text);
19     },
20     loadingMore:function(){ return __("Loading more results…"); },
21     maximumSelected:function(args){
22         return __("You can only select %s item(s)").format(args.maximum);
23     },
24     noResults:function(){return __("No results found"); },
25     searching:function(){return __("Searching…"); },
26     removeAllItems:function(){return __("Remove all items"); },
27     removeItem:function(){return __("Remove item"); }
28 });
29
30 $(document).ready(function(){
31     $(".select2").select2();
32     $(".select2").on("select2:clear", function () {
33         $(this).on("select2:opening.cancelOpen", function (evt) {
34             evt.preventDefault();
35
36             $(this).off("select2:opening.cancelOpen");
37         });
38     });
39 });
40
41 function kohaSelect2Transport(params, success, failure) {
42     var read_headers = function (data, textStatus, jqXHR) {
43         var more = false;
44         var link = jqXHR.getResponseHeader('Link') || '';
45         if (link.search(/<([^>]+)>;\s*rel\s*=\s*['"]?next['"]?\s*(,|$)/i) > -1) {
46             more = true;
47         }
48
49         return {
50             results: data,
51             pagination: {
52                 more: more
53             }
54         };
55     };
56     var $request = $.ajax(params);
57     $request.then(read_headers).then(success);
58     $request.fail(failure);
59 }