summaryrefslogtreecommitdiff
path: root/ishtar_common/templates/blocks/JQueryJqGrid.html
blob: 26855f4ea31a61eb4fb3cb527d05bfecb9b3b8eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
{% load i18n %}
</table>

<button id='search_{{name}}' class='submit'>{% trans "Search" %}</button>

{% if url_new %}
<p><a href="#" onclick="open_window('{{url_new}}');">{{new_message}}</a></p>
{% endif %}

<h4>{% trans "Search and select an item" %}</h4>

<table id='grid_{{name}}' class='jqgrid'></table>
<div id='pager_{{name}}'></div>

<div id='foot_{{name}}' class='gridfooter'>
{% if source_full %}
{% trans "Export as CSV" %} ({{encoding}})
<a href='{{source}}csv' target='_blank'>{{simple}}</a> - 
<a href='{{source_full}}csv' target='_blank'>{{full}}</a>
{% else %}
<a href="{{source}}csv" target="_blank">{% trans "Export as CSV" %} ({{encoding}})</a>
{% endif %}
</div>

{% if multiple %}
<input type="button" id="add_button_{{name}}" value="{% trans "Add" %}"/>
<ul id="selectmulti_{{name}}" class="selectmulti"></ul>
{% endif %}

<input type="hidden" id="hidden_{{name}}" name="{{name}}"/>

<script type="text/javascript">
var query_vars = new Array({{col_idx|safe}});
var selItems_{{sname}} = new Array();
jQuery(document).ready(function(){
  jQuery("#search_{{name}}").click(function (){
    if ($("#progress").length > 0){
        $("#progress").show();
    }
    var data = "";
    for (idx in query_vars)
    {
        var key = query_vars[idx];
        var val = jQuery("#id_"+key).val();
        if (val){
            if (data) data += "&";
            data += key + "=" + val;
        }
    }
    var mygrid = jQuery("#grid_{{name}}");
    var url = "{{source}}?submited=1&" + data;
    mygrid.setGridParam({url:url});
    mygrid.trigger("reloadGrid");
    if ($("#progress").length > 0){
        $("#progress").hide();
    }
    return false;
  });

  jQuery("#grid_{{name}}").jqGrid({
    url:'{{source}}',
    datatype: "json",
    mtype: 'GET',
    colNames:['id', '', {{col_names|safe}}],
    colModel:[
      {name:'id', index:'id', hidden:true},
      {name:'link', index:'link', width:80},
      {{extra_cols|safe}}
    ],
    sortname: 'value',
    viewrecords: true,
    sortorder: "asc",
    emptyrecords: "{{no_result}}",
    loadtext: "{{loading}}",
    pager: '#pager_{{name}}',
    width:740,
    rowNum:20,
    jsonReader : {repeatitems: false},
  });
{% if multiple %}
  jQuery("#add_button_{{name}}").click(function (){
    var mygrid = jQuery("#grid_{{name}}");
    var idx = mygrid.getGridParam('selrow');
    var lbl_cols = new Array({{multi_cols|safe}});
    var label = "";
    for (var id in lbl_cols){
        if(id == 1){
            label += " (";
        }else if (id > 1){
            label += " ; ";
        }
        label += mygrid.getCell(idx, lbl_cols[id]);
    }
    if (id > 0){
        label += ")";
    }
    for (id in selItems_{{sname}}){
        if(selItems_{{sname}}[id] == idx){
            return false;
        }
    }
    selItems_{{sname}}.push(idx);
    jQuery("#selectmulti_{{name}}").append(
               "<li id='selected_{{name}}_"+idx+"'>\
<a href='#' class='remove' \
  onclick=\"multiRemoveItem(selItems_{{sname}}, '{{name}}', "+ idx +");\
  return false;\" title=\"{{remove}}\">X</a>" + label + "</li>");
    return true;
  });
  jQuery("#submit_form").click(function (){
    jQuery("#hidden_{{name}}").val(selItems_{{sname}});
    return true;
  });
{% else %}
  jQuery("#submit_form").click(function (){
    var mygrid = jQuery("#grid_{{name}}");
    jQuery("#hidden_{{name}}").val(mygrid.getGridParam('selrow'));
    return true;
  });
{% endif %}
});
</script>