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
|
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 errorbox = $('<div class="errorbox" style="display: none">');
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(errorbox)
.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: false,
title: title,
width: 400,
buttons: { 'OK': submit , 'Cancel': close }
});
html.dialog('open');
};
|