summaryrefslogtreecommitdiff
path: root/web/viewsjs/reports/language_comparison_table_for_keys_in_the_wiki.js.erb
blob: f4f99cda72be99da14c7c54f3be11bfda220b6b8 (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
<%
    osm = @trans.t.osm

    @languages = @db.execute('SELECT language FROM wiki_languages ORDER by language').map do |row|
        row['language']
    end

    lang_lookup = Hash.new
    @languages.each_with_index do |lang, idx|
        lang_lookup[lang] = idx + 1
    end
    @languages_lookup = @languages.map{ |lang| "'#{lang}': #{lang_lookup[lang]}" }.join(', ')
%>
function page_init() {
    var lang_to_idx = {
        <%= @languages_lookup %>
    };
    var rp = calculate_flexigrid_rp(jQuery('div.box')) - 1;
    current_grid = 'grid-keys';
    grids[current_grid] = jQuery('#grid-keys').flexigrid({
        url: '/api/4/keys/wiki_pages',
        method: 'GET',
        dataType: 'json',
        colModel: [
            { display: '<br/><%= osm.key %>', name: 'key', width: 200, sortable: true },
            <% @languages.each do |lang| %>
            { display: '<%= ::Language[lang].native_name %><br /><span class="lang" style="margin-top: 2px;"><%= lang %></span>', name: '<%= lang %>', align: 'center', width: 60, sortable: false },
            <% end %>
        ],
        searchitems: [
            { display: '<%= osm.key %>', name: 'key' }
        ],
        sortname: 'key',
        sortorder: 'asc',
        showToggleBtn: false,
        showTableToggleBtn: false,
        usepager: true,
        useRp: false,
        rp: rp,
        height: 'auto',
        onSuccess: function(grid) {
            grid.fixHeight();
        },
        preProcess: function(data) {
            return {
                total: data.total,
                page: data.page,
                rows: jQuery.map(data.data, function(row, i) {
                    d = [link_to_key(row.key) <%= @languages.map{ ", ''"}.join() %>];
                    for (var lang in row.lang) {
                        ptype = row.lang[lang];
                        d[lang_to_idx[lang]] = '<img width="16" height="16" src="/img/sources/wiki/wiki-' + ptype + '.png" alt="[' + ptype + ']"/>';
                    }
                    return { 'cell': d };
                })
            };
        }
    });
}