mirror of https://github.com/calzoneman/sync.git
Add channel list search to ACP
This commit is contained in:
parent
278570f3ed
commit
4af0291470
29
acp.js
29
acp.js
|
@ -60,6 +60,35 @@ module.exports = function (Server) {
|
|||
user.socket.emit("acp-userdata", rows);
|
||||
});
|
||||
|
||||
user.socket.on("acp-lookup-channel", function (data) {
|
||||
var db = Server.db.getConnection();
|
||||
if(!db) {
|
||||
return;
|
||||
}
|
||||
|
||||
var query;
|
||||
if(data.field === "owner") {
|
||||
query = Server.db.createQuery(
|
||||
"SELECT * FROM channels WHERE owner LIKE ?",
|
||||
["%" + data.value + "%"]
|
||||
);
|
||||
} else if (data.field === "name") {
|
||||
query = Server.db.createQuery(
|
||||
"SELECT * FROM channels WHERE name LIKE ?",
|
||||
["%" + data.value + "%"]
|
||||
);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
var results = db.querySync(query);
|
||||
if(!results)
|
||||
return;
|
||||
|
||||
var rows = results.fetchAllSync();
|
||||
user.socket.emit("acp-channeldata", rows);
|
||||
});
|
||||
|
||||
user.socket.on("acp-reset-password", function(data) {
|
||||
if(Auth.getGlobalRank(data.name) >= user.global_rank)
|
||||
return;
|
||||
|
|
21
www/acp.html
21
www/acp.html
|
@ -42,6 +42,7 @@
|
|||
<li id="li_announce"><a href="javascript:void(0)" id="show_announce">Announcement Manager</a></li>
|
||||
<li id="li_gbans"><a href="javascript:void(0)" id="show_gbans">Global Bans</a></li>
|
||||
<li id="li_userlookup"><a href="javascript:void(0)" id="show_userlookup">Users</a></li>
|
||||
<li id="li_chanlookup"><a href="javascript:void(0)" id="show_chanlookup">Channels</a></li>
|
||||
<li id="li_chanloaded"><a href="javascript:void(0)" id="show_chanloaded">Loaded Channels</a></li>
|
||||
<li id="li_actionlog"><a href="javascript:void(0)" id="show_actionlog">Action Log</a></li>
|
||||
<li id="li_stats"><a href="javascript:void(0)" id="show_stats">Server Stats</a></li>
|
||||
|
@ -163,6 +164,26 @@
|
|||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
<div class="span12" id="chanlookup">
|
||||
<h3>Channels</h3>
|
||||
<form class="form-inline" action="javascript:void(0)">
|
||||
<input type="text" id="chanlookup_value" placeholder="Name">
|
||||
<select id="chanlookup_field">
|
||||
<option value="name">Channel Name</option>
|
||||
<option value="owner">Channel Owner</option>
|
||||
</select>
|
||||
<button class="btn" id="chanlookup_submit">Search</button>
|
||||
</form>
|
||||
<table class="table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th id="chanlookup_id">ID</th>
|
||||
<th id="chanlookup_name">Name</th>
|
||||
<th id="chanlookup_owner">Owner</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
<div class="span12" id="channellist">
|
||||
<h3>Loaded Channels</h3>
|
||||
<button class="btn" id="listloaded_refresh">Refresh</button>
|
||||
|
|
|
@ -80,6 +80,17 @@ $("#userlookup_email").click(function() {
|
|||
tableResort($("#userlookup table"), "email");
|
||||
});
|
||||
|
||||
menuHandler("#show_chanlookup", "#chanlookup");
|
||||
$("#chanlookup_id").click(function() {
|
||||
tableResort($("#chanlookup table"), "id");
|
||||
});
|
||||
$("#chanlookup_name").click(function() {
|
||||
tableResort($("#chanlookup table"), "name");
|
||||
});
|
||||
$("#chanlookup_owner").click(function() {
|
||||
tableResort($("#chanlookup table"), "owner");
|
||||
});
|
||||
|
||||
menuHandler("#show_chanloaded", "#channellist");
|
||||
$("#show_chanloaded").click(function() {
|
||||
socket.emit("acp-list-loaded");
|
||||
|
@ -240,6 +251,13 @@ $("#userlookup_submit").click(function() {
|
|||
socket.emit("acp-lookup-user", $("#userlookup_name").val());
|
||||
});
|
||||
|
||||
$("#chanlookup_submit").click(function () {
|
||||
socket.emit("acp-lookup-channel", {
|
||||
field: $("#chanlookup_field").val(),
|
||||
value: $("#chanlookup_value").val()
|
||||
});
|
||||
});
|
||||
|
||||
function setupCallbacks() {
|
||||
socket.on("connect", function() {
|
||||
if(NAME && SESSION) {
|
||||
|
@ -384,6 +402,33 @@ function setupCallbacks() {
|
|||
alert("Password reset successful. Reset hash: " + data.hash);
|
||||
});
|
||||
|
||||
socket.on("acp-channeldata", function(data) {
|
||||
var tbl = $("#chanlookup table");
|
||||
var p = tbl.data("paginator");
|
||||
if(p) {
|
||||
p.items = data;
|
||||
}
|
||||
else {
|
||||
var opts = {
|
||||
preLoadPage: function () {
|
||||
tbl.find("tbody").remove();
|
||||
},
|
||||
generator: function (u, page, index) {
|
||||
var tr = $("<tr/>").appendTo(tbl);
|
||||
$("<td/>").text(u.id).appendTo(tr);
|
||||
$("<td/>").text(u.name).appendTo(tr);
|
||||
$("<td/>").text(u.owner).appendTo(tr);
|
||||
}
|
||||
};
|
||||
p = Paginate(data, opts);
|
||||
p.paginator.insertBefore(tbl);
|
||||
tbl.data("paginator", p);
|
||||
}
|
||||
tbl.data("sortby", "id");
|
||||
tbl.data("sort_desc", false);
|
||||
tableResort(tbl);
|
||||
});
|
||||
|
||||
socket.on("acp-list-loaded", function(data) {
|
||||
$("#channellist tbody").remove();
|
||||
data.sort(function(a, b) {
|
||||
|
|
Loading…
Reference in New Issue