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
|
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; }
$.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);
}
});
};
html.dialog({
modal: true,
title: title,
width: 400,
buttons: { 'OK': submit , 'Cancel': close }
});
html.dialog('open');
};
Admin.cancelMute = function(id, nick) {
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'});
})
*/
|