summaryrefslogtreecommitdiff
path: root/web/viewsjs/relations.js.erb
blob: 3ce59797d4b77b80abba00c62d4d1ed3b547c927 (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
<%
    osm = @trans.t.osm
    page = @trans.t.pages.relations
 %>
function page_init() {
    create_flexigrid('grid-relations', {
        url: '/api/4/relations/all',
        colModel: [
            { display: '<%= h(osm.relation_type) %>', name: 'rtype', width: 220, sortable: true },
            { display: '<span title="<%= h(page.relations_of_type_tooltip) %>"><%= h(osm.relations) %></span>', name: 'count', width: 250, sortable: true, align: 'center' },
            { display: '<%= h(osm.tag) %>', name: 'tag', width: 250, sortable: false },
            { display: '<span title="<%= h(page.prevalent_roles_tooltip) %>"><%= h(page.prevalent_roles) %></span>', name: 'prevalent_roles', width: 550, sortable: false }
        ],
        searchitems: [
            { display: '<%= h(osm.relation_type) %>', name: 'rtype' }
        ],
        sortname: 'count',
        sortorder: 'desc',
        preProcess: function(data) {
            data.rows = jQuery.map(data.data, function(row, i) {
                return { 'cell': [
                    link_to_rtype(row.rtype),
                    fmt_value_with_percent(row.count, row.count_fraction),
                    link_to_tag('type', row.rtype),
                    fmt_prevalent_role_list(row.prevalent_roles)
                ] };
            });
            return data;
        }
    });
};

function fmt_prevalent_role_list(list) {
    if (list === null) {
        return empty('<%= h(page.no_information) %>');
    }
    if (list.length == 0) {
        return empty(page.roles_less_than_one_percent);
    }
    return jQuery.map(list, function(item, i) {
        if (item.role) {
            return tag('span', fmt_role(item.role), { tipsy: 'e', title: html_escape(item.role) + ' (' + fmt_as_percent(item.fraction) + ')' });
        } else {
            return tag('span', empty('<%= h(page.empty_role) %>'), { tipsy: 'e', title: '(' + fmt_as_percent(item.fraction) + ')' });
        }
    }).join(' &bull; ');
}