summaryrefslogtreecommitdiff
path: root/static/js/admin.js
blob: 543309f02398a8f201a8baf0e5da3547260f063a (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
124
125
var Admin = {};

Admin._dialogHtml = '<div class="dialog">';

Admin._select = function(name, opts) {
    var sel = $('<select>').attr('name', name);
    $.each(opts, function(i, o) {
        sel.append($('<option>').html(o));
    });
    return sel;
}

Admin.mute = function(nick) {
    var time = $('<input type="text" name="time" size="3">');
    var unit = Admin._select('unit', ['minutes', 'hours', 'days']);
    var reason = $('<textarea name="reason" rows="4" cols="30">');
    var html = $('<div>')
        .append($('<div>').text(nick + ' will be muted for:'))
        .append(time)
        .append(unit)
        .append($('<br>'))
        .append($('<br>'))
        .append($('<div>').text('Reason:'))
        .append(reason)
        .appendTo($(Admin._dialogHtml));
    var title = 'Mute ' + nick;
    var close = function() { html.dialog('close'); }
    var submit = function() {
        html.find('[name]').removeClass('ui-state-error');

        var t = parseInt(time.val());
        var u = unit.val();
        var r = reason.val();

        if (!t) { time.addClass('ui-state-error'); }
        if (!u) { reason.addClass('ui-state-error'); }
        if (!r) { reason.addClass('ui-state-error'); }
        if (!t || !u || !r) { return; }

        html.dialog("option", "disabled", true);

        $.ajax({
            type: 'POST',
            timeout: 5000,
            url: '/mute',
            cache: false,
            data: { 'time': t, 'unit': u,
                    'reason': r, 'nick': nick },
            success: close,
            error: function(s) {
                alert("Error muting user: " + s.responseText);
                close();
            }
        });
    };
    html.dialog({
        modal: true,
        title: title,
        width: 400,
        buttons: { 'OK': submit , 'Cancel': close }
    });
    html.dialog('open');
};

Admin.cancelMute = function(id, nick) {
  //alert ("cancelling mutes disabled w/e");
  //return;
    var reason = $('<textarea name="reason" rows="4" cols="30">');
    var html = $('<div>')
        .append($('<div>').text('Cancelling mute for ' + nick))
        .append($('<br>'))
        .append($('<div>').text('Reason:'))
        .append(reason)
        .appendTo($(Admin._dialogHtml));
    var title = 'Cancelling mute for ' + nick;
    var close = function() { html.dialog('close'); }
    var submit = function() {
        html.find('[name]').removeClass('ui-state-error');

        var r = reason.val();
        if (!r) { 
            reason.addClass('ui-state-error'); 
            return;
        }

        var onSuccess = function(resp) {
            location.reload();
        };

        $.ajax({
            type: 'POST',
            timeout: 5000,
            url: '/cancel-mute',
            cache: false,
            data: { 'mute_id': id, 'reason': r },
            success: onSuccess,
            error: function(s) {
                alert("Error cancelling mute: " + s.responseText);
                close();
            }
        });
    };
    html.dialog({
        modal: true,
        title: title,
        width: 400,
        buttons: { 'OK': submit , 'Cancel': close }
    });
    html.dialog('open');
}


/*
$('.msgDiv').live('mouseenter', function() {
    $(this).css({'border': '1px dotted red',
                 'margin': '-1' }); 
})

$('.msgDiv').live('mouseleave', function() { 
    $(this).css({'border': 'none',
                 'margin': '0'});
})


*/