aboutsummaryrefslogtreecommitdiffstats
path: root/web/js/fixmystreet-admin.js
blob: 1aabf83492f4db1ce539a775862f774917b2458d (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
$(function(){
    // available for admin pages

    // hide the open311_only section and reveal it only when send_method is relevant
    var $open311_only = $('.admin-open311-only');
 
    function hide_or_show_open311(hide_fast) {
        var send_method = $('#send_method').val();
        var show_open311 = false;
        if ($('#endpoint').val()) {
            show_open311 = true; // always show the form if there is an endpoint value
        } else if (send_method && send_method.toLowerCase() != 'email') {
            show_open311 = true;
        }
        if (show_open311) {
            $open311_only.slideDown();
        } else {
            if (hide_fast) {
                $open311_only.hide();
            } else {
                $open311_only.slideUp();
            }
        }
    }

    if ($open311_only) {
        $('#send_method').on('change', hide_or_show_open311);
        hide_or_show_open311(true);
    }

    if ($('body').hasClass("show-admin-notes")) {

        // admin hints: maybe better implemented as tooltips?
        $(".admin-hint").on('click', function(){
            if ($(this).hasClass('admin-hint-show')) {
                $(this).removeClass('admin-hint-show');
            } else {
                $(this).addClass('admin-hint-show');
            }
        });

        // on a body's page, hide/show deleted contact categories
        var $table_with_deleted_contacts = $('table tr.is-deleted td.contact-category').closest('table');
        if ($table_with_deleted_contacts.length == 1) {
            var $toggle_deleted_btn = $("<input type='submit' class='btn' value='Hide deleted contacts' id='toggle-deleted-contacts-btn' style='margin:1em 0;'/>");
            $table_with_deleted_contacts.before($toggle_deleted_btn);
            $toggle_deleted_btn.on('click', function(e){
                e.preventDefault();
                var $cols = $table_with_deleted_contacts.find('tr.is-deleted');
                if ($cols.first().is(':visible')) {
                    $cols.hide();
                    $(this).prop("value", 'Show deleted contacts');
                } else {
                    $cols.show();
                    $(this).prop("value", 'Hide deleted contacts');
                }
            });
        }
    }
});